@khanacademy/perseus 10.0.1 → 10.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/CHANGELOG.md +15 -0
- package/dist/components/zoomable.d.ts +2 -0
- package/dist/es/index.css +26 -0
- package/dist/es/index.js +103 -114
- package/dist/es/index.js.map +1 -1
- package/dist/index.css +26 -0
- package/dist/index.js +103 -114
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/src/__tests__/__snapshots__/renderer.test.tsx.snap +1 -1
- package/src/components/__stories__/zoomable.stories.tsx +9 -1
- package/src/components/zoomable-tex.tsx +2 -0
- package/src/components/zoomable.tsx +10 -3
- package/src/styles/widgets/image.less +32 -0
- package/src/widgets/__stories__/image.stories.tsx +37 -0
- package/src/widgets/__tests__/__snapshots__/categorizer.test.ts.snap +1 -1
- package/src/widgets/__tests__/__snapshots__/group.test.tsx.snap +2 -2
- package/src/widgets/__tests__/__snapshots__/image.test.ts.snap +9 -11
- package/src/widgets/__tests__/__snapshots__/matrix.test.ts.snap +1 -1
- package/src/widgets/__tests__/__snapshots__/number-line.test.ts.snap +1 -1
- package/src/widgets/image.tsx +8 -31
- package/tsconfig-build.tsbuildinfo +1 -1
package/dist/es/index.js
CHANGED
|
@@ -17566,7 +17566,8 @@ class Zoomable extends React.Component {
|
|
|
17566
17566
|
zoomed
|
|
17567
17567
|
} = this.state;
|
|
17568
17568
|
const {
|
|
17569
|
-
animateHeight
|
|
17569
|
+
animateHeight,
|
|
17570
|
+
disableEntranceAnimation
|
|
17570
17571
|
} = this.props;
|
|
17571
17572
|
const property = animateHeight ? "opacity transform height" : "opacity transform";
|
|
17572
17573
|
|
|
@@ -17578,7 +17579,9 @@ class Zoomable extends React.Component {
|
|
|
17578
17579
|
} : {};
|
|
17579
17580
|
|
|
17580
17581
|
// Do a fancy little slide as we fade the contents in the first time.
|
|
17581
|
-
const
|
|
17582
|
+
const shouldSlide = !disableEntranceAnimation && !visible;
|
|
17583
|
+
const translateOffset = shouldSlide ? " translate(0, 8px)" : "";
|
|
17584
|
+
const opacity = shouldSlide ? 0 : 1;
|
|
17582
17585
|
const scaleString = (scale != null ? scale : 1).toString();
|
|
17583
17586
|
const transform = zoomed ? `scale(1, 1) ${translateOffset}` : `scale(${scaleString}, ${scaleString}) ${translateOffset}`;
|
|
17584
17587
|
const style = _extends({
|
|
@@ -17587,7 +17590,7 @@ class Zoomable extends React.Component {
|
|
|
17587
17590
|
height: zoomed ? expandedHeight : compactHeight,
|
|
17588
17591
|
transform: transform,
|
|
17589
17592
|
transformOrigin: "0 0",
|
|
17590
|
-
opacity:
|
|
17593
|
+
opacity: opacity,
|
|
17591
17594
|
WebkitTapHighlightColor: "transparent"
|
|
17592
17595
|
}, transitionStyle);
|
|
17593
17596
|
return /*#__PURE__*/React.createElement("span", {
|
|
@@ -17605,6 +17608,7 @@ class Zoomable extends React.Component {
|
|
|
17605
17608
|
Zoomable.defaultProps = {
|
|
17606
17609
|
animateHeight: false,
|
|
17607
17610
|
readyToMeasure: true,
|
|
17611
|
+
disableEntranceAnimation: false,
|
|
17608
17612
|
computeChildBounds: parentNode => {
|
|
17609
17613
|
const firstChild = parentNode.firstElementChild;
|
|
17610
17614
|
return {
|
|
@@ -17655,7 +17659,9 @@ class ZoomableTeX extends React.Component {
|
|
|
17655
17659
|
render() {
|
|
17656
17660
|
return /*#__PURE__*/React.createElement(Zoomable, {
|
|
17657
17661
|
readyToMeasure: this.state.isRendered,
|
|
17658
|
-
computeChildBounds: computeMathBounds
|
|
17662
|
+
computeChildBounds: computeMathBounds,
|
|
17663
|
+
animateHeight: false,
|
|
17664
|
+
disableEntranceAnimation: true
|
|
17659
17665
|
}, /*#__PURE__*/React.createElement(context$1.Consumer, null, ({
|
|
17660
17666
|
setAssetStatus
|
|
17661
17667
|
}) => /*#__PURE__*/React.createElement(Tex, {
|
|
@@ -17899,33 +17905,33 @@ class Lint extends React.Component {
|
|
|
17899
17905
|
let warningText;
|
|
17900
17906
|
let warningTextStyle;
|
|
17901
17907
|
if (this.props.severity === Severity.Error) {
|
|
17902
|
-
severityStyle = styles$
|
|
17908
|
+
severityStyle = styles$z.indicatorError;
|
|
17903
17909
|
warningText = "Error";
|
|
17904
|
-
warningTextStyle = styles$
|
|
17910
|
+
warningTextStyle = styles$z.publishBlockingError;
|
|
17905
17911
|
} else if (this.props.severity === Severity.Warning) {
|
|
17906
|
-
severityStyle = styles$
|
|
17912
|
+
severityStyle = styles$z.indicatorWarning;
|
|
17907
17913
|
warningText = "Warning";
|
|
17908
|
-
warningTextStyle = styles$
|
|
17914
|
+
warningTextStyle = styles$z.warning;
|
|
17909
17915
|
} else {
|
|
17910
|
-
severityStyle = styles$
|
|
17916
|
+
severityStyle = styles$z.indicatorGuideline;
|
|
17911
17917
|
warningText = "Recommendation";
|
|
17912
|
-
warningTextStyle = styles$
|
|
17918
|
+
warningTextStyle = styles$z.warning;
|
|
17913
17919
|
}
|
|
17914
17920
|
return /*#__PURE__*/React.createElement("a", {
|
|
17915
17921
|
href: `https://khanacademy.org/r/linter-rules#${this.props.ruleName}`,
|
|
17916
17922
|
target: "lint-help-window",
|
|
17917
17923
|
className: css(style)
|
|
17918
17924
|
}, /*#__PURE__*/React.createElement("span", {
|
|
17919
|
-
className: css(styles$
|
|
17925
|
+
className: css(styles$z.indicator, severityStyle)
|
|
17920
17926
|
}, this.props.severity === 1 && /*#__PURE__*/React.createElement(InlineIcon, exclamationIcon)), /*#__PURE__*/React.createElement("div", {
|
|
17921
|
-
className: css(styles$
|
|
17927
|
+
className: css(styles$z.tooltip, tooltipAbove && styles$z.tooltipAbove)
|
|
17922
17928
|
}, this.props.message.split("\n\n").map((m, i) => /*#__PURE__*/React.createElement("p", {
|
|
17923
17929
|
key: i,
|
|
17924
|
-
className: css(styles$
|
|
17930
|
+
className: css(styles$z.tooltipParagraph)
|
|
17925
17931
|
}, /*#__PURE__*/React.createElement("span", {
|
|
17926
17932
|
className: css(warningTextStyle)
|
|
17927
17933
|
}, warningText, ":", " "), m)), /*#__PURE__*/React.createElement("div", {
|
|
17928
|
-
className: css(styles$
|
|
17934
|
+
className: css(styles$z.tail, tooltipAbove && styles$z.tailAbove)
|
|
17929
17935
|
})));
|
|
17930
17936
|
};
|
|
17931
17937
|
}
|
|
@@ -17969,20 +17975,20 @@ class Lint extends React.Component {
|
|
|
17969
17975
|
}
|
|
17970
17976
|
if (blockHighlight) {
|
|
17971
17977
|
return /*#__PURE__*/React.createElement("span", {
|
|
17972
|
-
className: css(styles$
|
|
17973
|
-
}, this.renderLink(styles$
|
|
17978
|
+
className: css(styles$z.lintContainer, styles$z.lintContainerBlock)
|
|
17979
|
+
}, this.renderLink(styles$z.radioWidgetHoverTarget), /*#__PURE__*/React.createElement("span", null, children));
|
|
17974
17980
|
}
|
|
17975
17981
|
if (inline) {
|
|
17976
17982
|
return /*#__PURE__*/React.createElement("span", {
|
|
17977
|
-
className: css(styles$
|
|
17978
|
-
}, this.renderLink(styles$
|
|
17983
|
+
className: css(styles$z.lintContainer)
|
|
17984
|
+
}, this.renderLink(styles$z.inlineHoverTarget), /*#__PURE__*/React.createElement("span", null, children));
|
|
17979
17985
|
}
|
|
17980
17986
|
return /*#__PURE__*/React.createElement("div", {
|
|
17981
|
-
className: css(styles$
|
|
17982
|
-
}, this.renderLink(styles$
|
|
17987
|
+
className: css(styles$z.lintContainer)
|
|
17988
|
+
}, this.renderLink(styles$z.hoverTarget), /*#__PURE__*/React.createElement("div", null, children));
|
|
17983
17989
|
}
|
|
17984
17990
|
}
|
|
17985
|
-
const styles$
|
|
17991
|
+
const styles$z = StyleSheet.create({
|
|
17986
17992
|
// This is the class of the outermost element.
|
|
17987
17993
|
// We use relative positioning so that the lint indicator can be
|
|
17988
17994
|
// positioned absolutely relative to the position of the linty container.
|
|
@@ -19730,7 +19736,7 @@ class Renderer extends React.Component {
|
|
|
19730
19736
|
paddingLeft: margin,
|
|
19731
19737
|
paddingRight: margin
|
|
19732
19738
|
};
|
|
19733
|
-
const mobileInnerStyle = _extends({}, innerStyle, styles$
|
|
19739
|
+
const mobileInnerStyle = _extends({}, innerStyle, styles$y.mobileZoomableParentFix);
|
|
19734
19740
|
return /*#__PURE__*/React.createElement("div", {
|
|
19735
19741
|
key: state.key,
|
|
19736
19742
|
className: "perseus-block-math",
|
|
@@ -19851,7 +19857,7 @@ class Renderer extends React.Component {
|
|
|
19851
19857
|
paddingLeft: 0,
|
|
19852
19858
|
paddingRight: 0
|
|
19853
19859
|
};
|
|
19854
|
-
const mobileInnerStyle = _extends({}, innerStyle, styles$
|
|
19860
|
+
const mobileInnerStyle = _extends({}, innerStyle, styles$y.mobileZoomableParentFix);
|
|
19855
19861
|
const wrappedOutput = /*#__PURE__*/React.createElement("div", {
|
|
19856
19862
|
style: _extends({}, mobileInnerStyle, {
|
|
19857
19863
|
overflowX: "auto"
|
|
@@ -20467,7 +20473,7 @@ Renderer.defaultProps = {
|
|
|
20467
20473
|
onSerializedStateUpdated: () => {},
|
|
20468
20474
|
linterContext: PerseusLinter.linterContextDefault
|
|
20469
20475
|
};
|
|
20470
|
-
const styles$
|
|
20476
|
+
const styles$y = {
|
|
20471
20477
|
mobileZoomableParentFix: {
|
|
20472
20478
|
// NOTE(abdul): There is an issue where transform animations will
|
|
20473
20479
|
// cause the Zoomable component to disappear when running on the
|
|
@@ -21245,10 +21251,10 @@ class InputNumber extends React.Component {
|
|
|
21245
21251
|
// Note: This is _very_ similar to what `numeric-input.jsx` does. If
|
|
21246
21252
|
// you modify this, double-check if you also need to modify that
|
|
21247
21253
|
// component.
|
|
21248
|
-
const inputStyles = [styles$
|
|
21254
|
+
const inputStyles = [styles$x.default, this.props.size === "small" ? styles$x.small : null, this.props.rightAlign ? styles$x.rightAlign : styles$x.leftAlign];
|
|
21249
21255
|
// Unanswered
|
|
21250
21256
|
if (rubric && !this.props.currentValue) {
|
|
21251
|
-
inputStyles.push(styles$
|
|
21257
|
+
inputStyles.push(styles$x.answerStateUnanswered);
|
|
21252
21258
|
}
|
|
21253
21259
|
return /*#__PURE__*/React.createElement(InputWithExamples
|
|
21254
21260
|
// eslint-disable-next-line react/no-string-refs
|
|
@@ -21333,7 +21339,7 @@ InputNumber.defaultProps = {
|
|
|
21333
21339
|
apiOptions: ApiOptions.defaults,
|
|
21334
21340
|
linterContext: linterContextDefault
|
|
21335
21341
|
};
|
|
21336
|
-
const styles$
|
|
21342
|
+
const styles$x = StyleSheet.create({
|
|
21337
21343
|
default: {
|
|
21338
21344
|
width: 80,
|
|
21339
21345
|
height: "auto"
|
|
@@ -22322,7 +22328,7 @@ const FocusRing = function FocusRing(props) {
|
|
|
22322
22328
|
};
|
|
22323
22329
|
return /*#__PURE__*/React.createElement("span", {
|
|
22324
22330
|
"data-test-id": "focus-ring",
|
|
22325
|
-
className: css(styles$
|
|
22331
|
+
className: css(styles$w.ring),
|
|
22326
22332
|
style: style
|
|
22327
22333
|
}, children);
|
|
22328
22334
|
};
|
|
@@ -22331,7 +22337,7 @@ FocusRing.defaultProps = {
|
|
|
22331
22337
|
color: kaGreen$1,
|
|
22332
22338
|
multipleSelect: false
|
|
22333
22339
|
};
|
|
22334
|
-
const styles$
|
|
22340
|
+
const styles$w = StyleSheet.create({
|
|
22335
22341
|
ring: {
|
|
22336
22342
|
margin: "auto",
|
|
22337
22343
|
display: "inline-block",
|
|
@@ -22368,7 +22374,7 @@ function getChoiceLetter(pos) {
|
|
|
22368
22374
|
}
|
|
22369
22375
|
|
|
22370
22376
|
const CHOICE_ICON_SIZE = 24;
|
|
22371
|
-
const styles$
|
|
22377
|
+
const styles$v = StyleSheet.create({
|
|
22372
22378
|
iconWrapper: {
|
|
22373
22379
|
display: "inline-block",
|
|
22374
22380
|
position: "relative"
|
|
@@ -22391,7 +22397,7 @@ const CrossOutLine = function CrossOutLine(props) {
|
|
|
22391
22397
|
width: CROSS_OUT_LINE_SIZE,
|
|
22392
22398
|
height: CROSS_OUT_LINE_SIZE,
|
|
22393
22399
|
viewBox: `0 0 ${CROSS_OUT_LINE_SIZE} ${CROSS_OUT_LINE_SIZE}`,
|
|
22394
|
-
className: css(styles$
|
|
22400
|
+
className: css(styles$u.crossOutLine),
|
|
22395
22401
|
"data-test-id": "choice-icon__cross-out-line"
|
|
22396
22402
|
}, /*#__PURE__*/React.createElement("line", {
|
|
22397
22403
|
// The line stretches from the bottom-left to top-right.
|
|
@@ -22406,7 +22412,7 @@ const CrossOutLine = function CrossOutLine(props) {
|
|
|
22406
22412
|
strokeLinecap: "round"
|
|
22407
22413
|
}));
|
|
22408
22414
|
};
|
|
22409
|
-
const styles$
|
|
22415
|
+
const styles$u = StyleSheet.create({
|
|
22410
22416
|
crossOutLine: {
|
|
22411
22417
|
// Center the icon within the container.
|
|
22412
22418
|
position: "absolute",
|
|
@@ -22487,7 +22493,7 @@ const ChoiceIcon = function ChoiceIcon(props) {
|
|
|
22487
22493
|
} = props;
|
|
22488
22494
|
const dynamicStyles = getDynamicStyles(checked, showCorrectness, pressed, multipleSelect, correct);
|
|
22489
22495
|
return /*#__PURE__*/React.createElement("div", {
|
|
22490
|
-
className: css(styles$
|
|
22496
|
+
className: css(styles$v.iconWrapper)
|
|
22491
22497
|
}, /*#__PURE__*/React.createElement(FocusRing, {
|
|
22492
22498
|
color: Color.blue,
|
|
22493
22499
|
visible: focused || hovered,
|
|
@@ -22496,13 +22502,13 @@ const ChoiceIcon = function ChoiceIcon(props) {
|
|
|
22496
22502
|
// @ts-expect-error - TS2322 - Type '{ backgroundColor: string | null | undefined; borderColor: string; color: string; borderRadius: number; }' is not assignable to type 'Properties<string | number, string & {}>'.
|
|
22497
22503
|
style: dynamicStyles,
|
|
22498
22504
|
"data-test-id": "choice-icon__library-choice-icon",
|
|
22499
|
-
className: css(styles$
|
|
22505
|
+
className: css(styles$t.circle, showCorrectness && correct && styles$t.circleCorrect, showCorrectness && !correct && styles$t.circleIncorrect, showCorrectness && !correct && (checked || previouslyAnswered) && styles$t.circleIncorrectAnswered)
|
|
22500
22506
|
// used in BaseRadio editMode to check
|
|
22501
22507
|
// if we actually clicked on the radio icon
|
|
22502
22508
|
,
|
|
22503
22509
|
"data-is-radio-icon": true
|
|
22504
22510
|
}, /*#__PURE__*/React.createElement("div", {
|
|
22505
|
-
className: css(styles$
|
|
22511
|
+
className: css(styles$t.innerWrapper)
|
|
22506
22512
|
}, /*#__PURE__*/React.createElement(ChoiceInner, {
|
|
22507
22513
|
pos: pos,
|
|
22508
22514
|
showCorrectness: showCorrectness,
|
|
@@ -22511,7 +22517,7 @@ const ChoiceIcon = function ChoiceIcon(props) {
|
|
|
22511
22517
|
color: dynamicStyles.borderColor
|
|
22512
22518
|
}));
|
|
22513
22519
|
};
|
|
22514
|
-
const styles$
|
|
22520
|
+
const styles$t = StyleSheet.create({
|
|
22515
22521
|
innerWrapper: {
|
|
22516
22522
|
width: CHOICE_ICON_SIZE,
|
|
22517
22523
|
height: CHOICE_ICON_SIZE,
|
|
@@ -22603,19 +22609,19 @@ const OptionStatus = function OptionStatus(props) {
|
|
|
22603
22609
|
}
|
|
22604
22610
|
let textStyle;
|
|
22605
22611
|
if (correct) {
|
|
22606
|
-
textStyle = styles$
|
|
22612
|
+
textStyle = styles$s.correct;
|
|
22607
22613
|
} else {
|
|
22608
22614
|
if (checked || previouslyAnswered) {
|
|
22609
|
-
textStyle = styles$
|
|
22615
|
+
textStyle = styles$s.incorrectAnswered;
|
|
22610
22616
|
} else {
|
|
22611
|
-
textStyle = styles$
|
|
22617
|
+
textStyle = styles$s.incorrect;
|
|
22612
22618
|
}
|
|
22613
22619
|
}
|
|
22614
22620
|
return /*#__PURE__*/React.createElement("div", {
|
|
22615
|
-
className: css(styles$
|
|
22621
|
+
className: css(styles$s.text, textStyle)
|
|
22616
22622
|
}, renderText(checked, correct, crossedOut));
|
|
22617
22623
|
};
|
|
22618
|
-
const styles$
|
|
22624
|
+
const styles$s = StyleSheet.create({
|
|
22619
22625
|
text: {
|
|
22620
22626
|
alignItems: "center",
|
|
22621
22627
|
display: "flex",
|
|
@@ -22690,8 +22696,8 @@ const Choice = function Choice(props) {
|
|
|
22690
22696
|
crossedOut: updatedCrossedOut
|
|
22691
22697
|
});
|
|
22692
22698
|
}
|
|
22693
|
-
const descriptionClassName = classNames("description", css(styles$
|
|
22694
|
-
const rationaleClassName = classNames("perseus-radio-rationale-content", css(styles$
|
|
22699
|
+
const descriptionClassName = classNames("description", css(styles$r.description));
|
|
22700
|
+
const rationaleClassName = classNames("perseus-radio-rationale-content", css(styles$r.rationale));
|
|
22695
22701
|
|
|
22696
22702
|
// We want to show the choices as dimmed out when the choices are disabled.
|
|
22697
22703
|
// However, we don't want to do this when we're in review mode in the
|
|
@@ -22850,7 +22856,7 @@ const Choice = function Choice(props) {
|
|
|
22850
22856
|
"data-test-id": `perseus-radio-rationale-content-${pos}`
|
|
22851
22857
|
}, rationale));
|
|
22852
22858
|
};
|
|
22853
|
-
const styles$
|
|
22859
|
+
const styles$r = StyleSheet.create({
|
|
22854
22860
|
description: {
|
|
22855
22861
|
display: "inline-block",
|
|
22856
22862
|
width: "100%"
|
|
@@ -23041,10 +23047,10 @@ const BaseRadio = function BaseRadio(props) {
|
|
|
23041
23047
|
const isMobile = apiOptions.isMobile;
|
|
23042
23048
|
const firstChoiceHighlighted = choices[0].highlighted;
|
|
23043
23049
|
const lastChoiceHighlighted = choices[choices.length - 1].highlighted;
|
|
23044
|
-
const className = classNames("perseus-widget-radio", !editMode && "perseus-rendered-radio", css(styles$
|
|
23045
|
-
const instructionsClassName = classNames("instructions", css(styles$
|
|
23050
|
+
const className = classNames("perseus-widget-radio", !editMode && "perseus-rendered-radio", css(styles$q.radio, styles$q.responsiveRadioContainer, firstChoiceHighlighted && isMobile && styles$q.radioContainerFirstHighlighted, lastChoiceHighlighted && isMobile && styles$q.radioContainerLastHighlighted));
|
|
23051
|
+
const instructionsClassName = classNames("instructions", css(styles$q.instructions, isMobile && styles$q.instructionsMobile));
|
|
23046
23052
|
const instructions = getInstructionsText(multipleSelect, countChoices, numCorrect);
|
|
23047
|
-
const responsiveClassName = css(styles$
|
|
23053
|
+
const responsiveClassName = css(styles$q.responsiveFieldset);
|
|
23048
23054
|
const fieldset = /*#__PURE__*/React.createElement("fieldset", {
|
|
23049
23055
|
className: `perseus-widget-radio-fieldset ${responsiveClassName}`
|
|
23050
23056
|
}, /*#__PURE__*/React.createElement("legend", {
|
|
@@ -23095,7 +23101,7 @@ const BaseRadio = function BaseRadio(props) {
|
|
|
23095
23101
|
const aphroditeClassName = checked => {
|
|
23096
23102
|
// Whether or not to show correctness borders
|
|
23097
23103
|
// for this choice and the next choice.
|
|
23098
|
-
return css(sharedStyles.aboveScratchpad, styles$
|
|
23104
|
+
return css(sharedStyles.aboveScratchpad, styles$q.item, styles$q.responsiveItem, checked && styles$q.selectedItem, checked && choice.highlighted && styles$q.aboveBackdrop, checked && choice.highlighted && apiOptions.isMobile && styles$q.aboveBackdropMobile, nextChoiceHighlighted && apiOptions.isMobile && styles$q.nextHighlighted);
|
|
23099
23105
|
};
|
|
23100
23106
|
|
|
23101
23107
|
// HACK(abdulrahman): Preloads the selection-state
|
|
@@ -23169,14 +23175,14 @@ const BaseRadio = function BaseRadio(props) {
|
|
|
23169
23175
|
// Allow for horizontal scrolling if content is too wide, which may be
|
|
23170
23176
|
// an issue especially on phones.
|
|
23171
23177
|
return /*#__PURE__*/React.createElement("div", {
|
|
23172
|
-
className: css(styles$
|
|
23178
|
+
className: css(styles$q.responsiveContainer)
|
|
23173
23179
|
}, fieldset);
|
|
23174
23180
|
};
|
|
23175
23181
|
BaseRadio.defaultProps = {
|
|
23176
23182
|
editMode: false,
|
|
23177
23183
|
multipleSelect: false
|
|
23178
23184
|
};
|
|
23179
|
-
const styles$
|
|
23185
|
+
const styles$q = StyleSheet.create({
|
|
23180
23186
|
instructions: {
|
|
23181
23187
|
display: "block",
|
|
23182
23188
|
color: gray17,
|
|
@@ -23815,9 +23821,9 @@ class Categorizer extends React.Component {
|
|
|
23815
23821
|
indexedItems = Util.shuffle(indexedItems, this.props.problemNum);
|
|
23816
23822
|
}
|
|
23817
23823
|
const table = /*#__PURE__*/React.createElement("table", {
|
|
23818
|
-
className: "categorizer-table " + css(styles$
|
|
23824
|
+
className: "categorizer-table " + css(styles$p.mobileTable)
|
|
23819
23825
|
}, /*#__PURE__*/React.createElement("thead", null, /*#__PURE__*/React.createElement("tr", null, /*#__PURE__*/React.createElement("td", {
|
|
23820
|
-
className: css(styles$
|
|
23826
|
+
className: css(styles$p.emptyHeaderCell)
|
|
23821
23827
|
}), this.props.categories.map((category, i) => {
|
|
23822
23828
|
// Array index is the correct key here, as that's
|
|
23823
23829
|
// how category grading actually works -- no way
|
|
@@ -23825,7 +23831,7 @@ class Categorizer extends React.Component {
|
|
|
23825
23831
|
// middle. (If we later add that, this should be
|
|
23826
23832
|
// fixed.)
|
|
23827
23833
|
return /*#__PURE__*/React.createElement("th", {
|
|
23828
|
-
className: css(styles$
|
|
23834
|
+
className: css(styles$p.header),
|
|
23829
23835
|
key: i
|
|
23830
23836
|
}, /*#__PURE__*/React.createElement(Renderer, {
|
|
23831
23837
|
content: category,
|
|
@@ -23845,7 +23851,7 @@ class Categorizer extends React.Component {
|
|
|
23845
23851
|
})), self.props.categories.map((catName, catNum) => {
|
|
23846
23852
|
const selected = self.props.values[itemNum] === catNum;
|
|
23847
23853
|
return /*#__PURE__*/React.createElement("td", {
|
|
23848
|
-
className: "category " + css(styles$
|
|
23854
|
+
className: "category " + css(styles$p.cell),
|
|
23849
23855
|
key: catNum
|
|
23850
23856
|
}, /*#__PURE__*/React.createElement("div", {
|
|
23851
23857
|
className: ClassNames.INTERACTIVE,
|
|
@@ -23864,7 +23870,7 @@ class Categorizer extends React.Component {
|
|
|
23864
23870
|
onChange: this.onChange.bind(this, itemNum, catNum),
|
|
23865
23871
|
onClick: e => e.stopPropagation()
|
|
23866
23872
|
}), !isMobile && /*#__PURE__*/React.createElement("span", {
|
|
23867
|
-
className: css(styles$
|
|
23873
|
+
className: css(styles$p.radioSpan, selected && styles$p.checkedRadioSpan, this.props.static && selected && styles$p.staticCheckedRadioSpan)
|
|
23868
23874
|
}, selected ? /*#__PURE__*/React.createElement(InlineIcon, iconCircle) : /*#__PURE__*/React.createElement(InlineIcon, iconCircleThin))));
|
|
23869
23875
|
}));
|
|
23870
23876
|
/* eslint-enable max-len */
|
|
@@ -23876,7 +23882,7 @@ class Categorizer extends React.Component {
|
|
|
23876
23882
|
"categorizer-container": true,
|
|
23877
23883
|
"static-mode": this.props.static
|
|
23878
23884
|
});
|
|
23879
|
-
const inlineStyles = this.props.apiOptions.isMobile ? [styles$
|
|
23885
|
+
const inlineStyles = this.props.apiOptions.isMobile ? [styles$p.fullBleedContainer] : [];
|
|
23880
23886
|
return /*#__PURE__*/React.createElement("div", {
|
|
23881
23887
|
className: extraClassNames + " " + css(...inlineStyles)
|
|
23882
23888
|
}, table);
|
|
@@ -23921,7 +23927,7 @@ const pageMargin = 16;
|
|
|
23921
23927
|
|
|
23922
23928
|
// Stylesheets aren't directly testable
|
|
23923
23929
|
/* c8 ignore next */
|
|
23924
|
-
const styles$
|
|
23930
|
+
const styles$p = StyleSheet.create({
|
|
23925
23931
|
mobileTable: {
|
|
23926
23932
|
[mediaQueries.smOrSmaller]: {
|
|
23927
23933
|
minWidth: "auto"
|
|
@@ -24157,7 +24163,7 @@ class CSProgram extends React.Component {
|
|
|
24157
24163
|
// creator "went wild".
|
|
24158
24164
|
// http://www.html5rocks.com/en/tutorials/security/sandboxed-iframes/
|
|
24159
24165
|
return /*#__PURE__*/React.createElement("div", {
|
|
24160
|
-
className: css(styles$
|
|
24166
|
+
className: css(styles$o.widthOverride, styleContainer && styles$o.container)
|
|
24161
24167
|
}, /*#__PURE__*/React.createElement("iframe", {
|
|
24162
24168
|
sandbox: sandboxOptions,
|
|
24163
24169
|
src: url,
|
|
@@ -24186,7 +24192,7 @@ CSProgram.defaultProps = {
|
|
|
24186
24192
|
// optional message
|
|
24187
24193
|
message: null
|
|
24188
24194
|
};
|
|
24189
|
-
const styles$
|
|
24195
|
+
const styles$o = StyleSheet.create({
|
|
24190
24196
|
// Override the inherited width from the perseus paragraph class
|
|
24191
24197
|
// 820 is minimum width for 420px editor and 400px canvas
|
|
24192
24198
|
widthOverride: {
|
|
@@ -24229,7 +24235,7 @@ class Definition extends React.Component {
|
|
|
24229
24235
|
}) => /*#__PURE__*/React.createElement(Popover, {
|
|
24230
24236
|
content: /*#__PURE__*/React.createElement(PopoverContentCore, {
|
|
24231
24237
|
color: "white",
|
|
24232
|
-
style: styles$
|
|
24238
|
+
style: styles$n.tooltipBody,
|
|
24233
24239
|
closeButtonVisible: true
|
|
24234
24240
|
}, /*#__PURE__*/React.createElement(Renderer, {
|
|
24235
24241
|
apiOptions: this.props.apiOptions,
|
|
@@ -24260,7 +24266,7 @@ Definition.defaultProps = {
|
|
|
24260
24266
|
togglePrompt: "define me",
|
|
24261
24267
|
definition: "definition goes here"
|
|
24262
24268
|
};
|
|
24263
|
-
const styles$
|
|
24269
|
+
const styles$n = {
|
|
24264
24270
|
tooltipBody: {
|
|
24265
24271
|
color: Color.offBlack,
|
|
24266
24272
|
fontSize: 20,
|
|
@@ -24419,15 +24425,15 @@ class Explanation extends React.Component {
|
|
|
24419
24425
|
const onClick = this._onClick;
|
|
24420
24426
|
if (isMobile) {
|
|
24421
24427
|
linkContainer = /*#__PURE__*/React.createElement("div", {
|
|
24422
|
-
className: css(styles$
|
|
24428
|
+
className: css(styles$m.linkContainer)
|
|
24423
24429
|
}, /*#__PURE__*/React.createElement("a", {
|
|
24424
|
-
className: css(styles$
|
|
24430
|
+
className: css(styles$m.mobileExplanationLink),
|
|
24425
24431
|
href: href,
|
|
24426
24432
|
onClick: onClick,
|
|
24427
24433
|
role: "button",
|
|
24428
24434
|
"aria-expanded": this.state.expanded
|
|
24429
24435
|
}, linkAnchor), this.state.expanded && /*#__PURE__*/React.createElement("svg", {
|
|
24430
|
-
className: css(styles$
|
|
24436
|
+
className: css(styles$m.disclosureArrow)
|
|
24431
24437
|
}, /*#__PURE__*/React.createElement("polygon", {
|
|
24432
24438
|
style: {
|
|
24433
24439
|
fill: backgroundColor
|
|
@@ -24440,13 +24446,13 @@ class Explanation extends React.Component {
|
|
|
24440
24446
|
// an anchor tag (if rendered in a modal) or a Wonder Blocks
|
|
24441
24447
|
// link component in lesson page, see: `article-page.jsx`.
|
|
24442
24448
|
linkContainer = /*#__PURE__*/React.createElement("div", {
|
|
24443
|
-
className: css(styles$
|
|
24449
|
+
className: css(styles$m.linkContainer, styles$m.articleLink)
|
|
24444
24450
|
}, /*#__PURE__*/React.createElement(Link, {
|
|
24445
|
-
className: css(styles$
|
|
24451
|
+
className: css(styles$m.explanationLink)
|
|
24446
24452
|
// HACK(michaelpolyak): WB Link doesn't passthrough
|
|
24447
24453
|
// class name.
|
|
24448
24454
|
,
|
|
24449
|
-
style: styles$
|
|
24455
|
+
style: styles$m.explanationLink,
|
|
24450
24456
|
href: href,
|
|
24451
24457
|
onClick: onClick,
|
|
24452
24458
|
role: "button",
|
|
@@ -24456,9 +24462,9 @@ class Explanation extends React.Component {
|
|
|
24456
24462
|
// NOTE: For exercises, the baseElements `Link` is an
|
|
24457
24463
|
// anchor tag, see: `perseus-api.jsx`.
|
|
24458
24464
|
linkContainer = /*#__PURE__*/React.createElement("div", {
|
|
24459
|
-
className: css(styles$
|
|
24465
|
+
className: css(styles$m.linkContainer, styles$m.exerciseLink)
|
|
24460
24466
|
}, /*#__PURE__*/React.createElement(Link, {
|
|
24461
|
-
className: css(styles$
|
|
24467
|
+
className: css(styles$m.explanationLink),
|
|
24462
24468
|
href: href,
|
|
24463
24469
|
onClick: onClick,
|
|
24464
24470
|
role: "button",
|
|
@@ -24466,11 +24472,11 @@ class Explanation extends React.Component {
|
|
|
24466
24472
|
}, `[${linkAnchor}]`));
|
|
24467
24473
|
}
|
|
24468
24474
|
}
|
|
24469
|
-
const expandedStyle = isMobile ? styles$
|
|
24475
|
+
const expandedStyle = isMobile ? styles$m.contentExpandedMobile : styles$m.contentExpanded;
|
|
24470
24476
|
return /*#__PURE__*/React.createElement("div", {
|
|
24471
|
-
className: css(styles$
|
|
24477
|
+
className: css(styles$m.container)
|
|
24472
24478
|
}, linkContainer, this.state.expanded && /*#__PURE__*/React.createElement("div", {
|
|
24473
|
-
className: css(styles$
|
|
24479
|
+
className: css(styles$m.content, isMobile && styles$m.contentMobile, this.state.expanded && expandedStyle)
|
|
24474
24480
|
// eslint-disable-next-line react/no-string-refs
|
|
24475
24481
|
,
|
|
24476
24482
|
ref: "content"
|
|
@@ -24494,7 +24500,7 @@ const verticalContentPadding = 10;
|
|
|
24494
24500
|
const arrowWidth = 30;
|
|
24495
24501
|
const arrowHeight = 14;
|
|
24496
24502
|
const backgroundColor = gray95;
|
|
24497
|
-
const styles$
|
|
24503
|
+
const styles$m = StyleSheet.create({
|
|
24498
24504
|
container: {
|
|
24499
24505
|
display: "inline",
|
|
24500
24506
|
position: "relative"
|
|
@@ -24619,15 +24625,15 @@ class GradedGroupAnswerBar extends React.Component {
|
|
|
24619
24625
|
onCheckAnswer,
|
|
24620
24626
|
onNextQuestion
|
|
24621
24627
|
} = this.props;
|
|
24622
|
-
const answerBarStyle = _extends({}, styles$
|
|
24628
|
+
const answerBarStyle = _extends({}, styles$l.answerBar, {
|
|
24623
24629
|
backgroundColor: answerBarState === "CORRECT" ? Color.offWhite : "white",
|
|
24624
24630
|
// Center the "Correct!" message only when there's no next question
|
|
24625
24631
|
justifyContent: answerBarState === "CORRECT" && !onNextQuestion ? "center" : "space-between"
|
|
24626
24632
|
});
|
|
24627
24633
|
const message = answerBarState === "INCORRECT" ? /*#__PURE__*/React.createElement("span", {
|
|
24628
|
-
style: styles$
|
|
24634
|
+
style: styles$l.text
|
|
24629
24635
|
}, /*#__PURE__*/React.createElement("span", {
|
|
24630
|
-
style: styles$
|
|
24636
|
+
style: styles$l.tryAgainIcon
|
|
24631
24637
|
}, /*#__PURE__*/React.createElement(InlineIcon, iconTryAgain)), /*#__PURE__*/React.createElement("span", {
|
|
24632
24638
|
style: {
|
|
24633
24639
|
marginLeft: 8
|
|
@@ -24646,7 +24652,7 @@ class GradedGroupAnswerBar extends React.Component {
|
|
|
24646
24652
|
return /*#__PURE__*/React.createElement("div", {
|
|
24647
24653
|
style: answerBarStyle
|
|
24648
24654
|
}, /*#__PURE__*/React.createElement("span", {
|
|
24649
|
-
style: styles$
|
|
24655
|
+
style: styles$l.text
|
|
24650
24656
|
}, /*#__PURE__*/React.createElement("span", {
|
|
24651
24657
|
style: {
|
|
24652
24658
|
fontSize: 28,
|
|
@@ -24668,7 +24674,7 @@ class GradedGroupAnswerBar extends React.Component {
|
|
|
24668
24674
|
}
|
|
24669
24675
|
}
|
|
24670
24676
|
const fontSize = 17;
|
|
24671
|
-
const styles$
|
|
24677
|
+
const styles$l = {
|
|
24672
24678
|
answerBar: {
|
|
24673
24679
|
display: "flex",
|
|
24674
24680
|
alignItems: "center",
|
|
@@ -24845,7 +24851,7 @@ class GradedGroup extends React.Component {
|
|
|
24845
24851
|
// @ts-expect-error - TS2322 - Type 'string' is not assignable to type 'null'.
|
|
24846
24852
|
gradeStatus = i18n._("Incorrect");
|
|
24847
24853
|
}
|
|
24848
|
-
const mobileClass = this.props.inGradedGroupSet ? css(styles$
|
|
24854
|
+
const mobileClass = this.props.inGradedGroupSet ? css(styles$k.gradedGroupInSet) : css(styles$k.gradedGroup);
|
|
24849
24855
|
const classes = classNames({
|
|
24850
24856
|
[mobileClass]: apiOptions.isMobile,
|
|
24851
24857
|
"perseus-graded-group": true,
|
|
@@ -24864,7 +24870,7 @@ class GradedGroup extends React.Component {
|
|
|
24864
24870
|
return /*#__PURE__*/React.createElement("div", {
|
|
24865
24871
|
className: classes
|
|
24866
24872
|
}, !!this.props.title && /*#__PURE__*/React.createElement("div", {
|
|
24867
|
-
className: css(styles$
|
|
24873
|
+
className: css(styles$k.title)
|
|
24868
24874
|
}, this.props.title), /*#__PURE__*/React.createElement(Renderer, _extends({}, this.props, {
|
|
24869
24875
|
// eslint-disable-next-line react/no-string-refs
|
|
24870
24876
|
ref: "renderer",
|
|
@@ -24896,7 +24902,7 @@ class GradedGroup extends React.Component {
|
|
|
24896
24902
|
}, i18n._("Next question")), this.props.hint && this.props.hint.content && (this.state.showHint ? /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("button", {
|
|
24897
24903
|
// @ts-expect-error - TS2322 - Type 'string' is not assignable to type 'number | undefined'.
|
|
24898
24904
|
tabIndex: "0",
|
|
24899
|
-
className: css(styles$
|
|
24905
|
+
className: css(styles$k.explanationTitle),
|
|
24900
24906
|
onClick: () => this.setState({
|
|
24901
24907
|
showHint: false
|
|
24902
24908
|
}),
|
|
@@ -24928,7 +24934,7 @@ class GradedGroup extends React.Component {
|
|
|
24928
24934
|
showHint: true
|
|
24929
24935
|
});
|
|
24930
24936
|
},
|
|
24931
|
-
className: css(styles$
|
|
24937
|
+
className: css(styles$k.showHintLink)
|
|
24932
24938
|
}, i18n._("Explain"))), apiOptions.isMobile && answerBarState !== "HIDDEN" && /*#__PURE__*/React.createElement(GradedGroupAnswerBar, {
|
|
24933
24939
|
apiOptions: apiOptions,
|
|
24934
24940
|
answerBarState: answerBarState,
|
|
@@ -24949,7 +24955,7 @@ GradedGroup.defaultProps = {
|
|
|
24949
24955
|
const traverseChildWidgets$3 = function traverseChildWidgets(props, traverseRenderer) {
|
|
24950
24956
|
return _.extend({}, props, traverseRenderer(props));
|
|
24951
24957
|
};
|
|
24952
|
-
const styles$
|
|
24958
|
+
const styles$k = StyleSheet.create({
|
|
24953
24959
|
gradedGroupInSet: {
|
|
24954
24960
|
// Reset a few desktop-only styles that come from graded-group.less
|
|
24955
24961
|
marginLeft: 0,
|
|
@@ -25020,7 +25026,7 @@ class Indicators extends React.Component {
|
|
|
25020
25026
|
}
|
|
25021
25027
|
render() {
|
|
25022
25028
|
return /*#__PURE__*/React.createElement("ul", {
|
|
25023
|
-
className: css(styles$
|
|
25029
|
+
className: css(styles$j.indicatorContainer)
|
|
25024
25030
|
}, this.props.gradedGroups.map(({
|
|
25025
25031
|
title
|
|
25026
25032
|
}, i) => /*#__PURE__*/React.createElement("li", {
|
|
@@ -25029,7 +25035,7 @@ class Indicators extends React.Component {
|
|
|
25029
25035
|
title
|
|
25030
25036
|
}),
|
|
25031
25037
|
key: title,
|
|
25032
|
-
className: css(styles$
|
|
25038
|
+
className: css(styles$j.indicator, i === this.props.currentGroup && styles$j.selectedIndicator),
|
|
25033
25039
|
tabIndex: 0,
|
|
25034
25040
|
onClick: () => this.props.onChangeCurrentGroup(i),
|
|
25035
25041
|
onKeyDown: e => this.handleKeyDown(e, i)
|
|
@@ -25093,7 +25099,7 @@ class GradedGroupSet extends React.Component {
|
|
|
25093
25099
|
} = getDependencies();
|
|
25094
25100
|
if (JIPT.useJIPT && this.props.gradedGroups.length > 1) {
|
|
25095
25101
|
return /*#__PURE__*/React.createElement("div", {
|
|
25096
|
-
className: css(styles$
|
|
25102
|
+
className: css(styles$j.container)
|
|
25097
25103
|
}, this.props.gradedGroups.map((gradedGroup, i) => {
|
|
25098
25104
|
return (
|
|
25099
25105
|
/*#__PURE__*/
|
|
@@ -25116,13 +25122,13 @@ class GradedGroupSet extends React.Component {
|
|
|
25116
25122
|
const numGroups = this.props.gradedGroups.length;
|
|
25117
25123
|
const handleNextQuestion = this.state.currentGroup < numGroups - 1 ? this.handleNextQuestion : null;
|
|
25118
25124
|
return /*#__PURE__*/React.createElement("div", {
|
|
25119
|
-
className: css(styles$
|
|
25125
|
+
className: css(styles$j.container)
|
|
25120
25126
|
}, /*#__PURE__*/React.createElement("div", {
|
|
25121
|
-
className: css(styles$
|
|
25127
|
+
className: css(styles$j.top)
|
|
25122
25128
|
}, /*#__PURE__*/React.createElement("div", {
|
|
25123
|
-
className: css(styles$
|
|
25129
|
+
className: css(styles$j.title)
|
|
25124
25130
|
}, currentGroup.title), /*#__PURE__*/React.createElement("div", {
|
|
25125
|
-
className: css(styles$
|
|
25131
|
+
className: css(styles$j.spacer)
|
|
25126
25132
|
}), /*#__PURE__*/React.createElement(Indicators, {
|
|
25127
25133
|
currentGroup: this.state.currentGroup,
|
|
25128
25134
|
gradedGroups: this.props.gradedGroups,
|
|
@@ -25164,7 +25170,7 @@ var GradedGroupSet$1 = {
|
|
|
25164
25170
|
tracking: "all",
|
|
25165
25171
|
isLintable: true
|
|
25166
25172
|
};
|
|
25167
|
-
const styles$
|
|
25173
|
+
const styles$j = StyleSheet.create({
|
|
25168
25174
|
top: {
|
|
25169
25175
|
display: "flex",
|
|
25170
25176
|
flexDirection: "row"
|
|
@@ -25246,7 +25252,7 @@ class ButtonGroup extends React.Component {
|
|
|
25246
25252
|
id: "" + i,
|
|
25247
25253
|
ref: "button" + i,
|
|
25248
25254
|
key: "" + i,
|
|
25249
|
-
className: css(styles$
|
|
25255
|
+
className: css(styles$i.buttonStyle, button.value === value && styles$i.selectedStyle),
|
|
25250
25256
|
onClick: () => this.toggleSelect(button.value)
|
|
25251
25257
|
}, button.content || "" + button.value);
|
|
25252
25258
|
});
|
|
@@ -25263,7 +25269,7 @@ ButtonGroup.defaultProps = {
|
|
|
25263
25269
|
value: null,
|
|
25264
25270
|
allowEmpty: true
|
|
25265
25271
|
};
|
|
25266
|
-
const styles$
|
|
25272
|
+
const styles$i = StyleSheet.create({
|
|
25267
25273
|
buttonStyle: {
|
|
25268
25274
|
backgroundColor: "white",
|
|
25269
25275
|
border: "1px solid #ccc",
|
|
@@ -26698,10 +26704,9 @@ class ImageWidget extends React.Component {
|
|
|
26698
26704
|
// This minWidth takes precedence over minWidth applied via
|
|
26699
26705
|
// Aphrodite.
|
|
26700
26706
|
const minWidth = isImageFullWidth ? null : "0 !important";
|
|
26701
|
-
titleAndCaption = /*#__PURE__*/React.createElement("
|
|
26707
|
+
titleAndCaption = /*#__PURE__*/React.createElement("figcaption", {
|
|
26702
26708
|
className: className
|
|
26703
26709
|
}, /*#__PURE__*/React.createElement("div", {
|
|
26704
|
-
className: css(styles$i.caption),
|
|
26705
26710
|
style: {
|
|
26706
26711
|
// @ts-expect-error - TS2322 - Type 'string | null' is not assignable to type 'MinWidth<string | number> | undefined'.
|
|
26707
26712
|
minWidth: minWidth
|
|
@@ -26712,7 +26717,7 @@ class ImageWidget extends React.Component {
|
|
|
26712
26717
|
linterContext: this.props.linterContext
|
|
26713
26718
|
})));
|
|
26714
26719
|
}
|
|
26715
|
-
return /*#__PURE__*/React.createElement("
|
|
26720
|
+
return /*#__PURE__*/React.createElement("figure", {
|
|
26716
26721
|
className: "perseus-image-widget"
|
|
26717
26722
|
}, image, alt, titleAndCaption);
|
|
26718
26723
|
}
|
|
@@ -26728,7 +26733,7 @@ class ImageWidget extends React.Component {
|
|
|
26728
26733
|
}));
|
|
26729
26734
|
}
|
|
26730
26735
|
if (this.props.caption) {
|
|
26731
|
-
caption = /*#__PURE__*/React.createElement("
|
|
26736
|
+
caption = /*#__PURE__*/React.createElement("figcaption", {
|
|
26732
26737
|
className: "perseus-image-caption"
|
|
26733
26738
|
}, /*#__PURE__*/React.createElement(Renderer, {
|
|
26734
26739
|
content: this.props.caption,
|
|
@@ -26736,7 +26741,7 @@ class ImageWidget extends React.Component {
|
|
|
26736
26741
|
linterContext: this.props.linterContext
|
|
26737
26742
|
}));
|
|
26738
26743
|
}
|
|
26739
|
-
return /*#__PURE__*/React.createElement("
|
|
26744
|
+
return /*#__PURE__*/React.createElement("figure", {
|
|
26740
26745
|
className: "perseus-image-widget"
|
|
26741
26746
|
}, title, image, alt, caption);
|
|
26742
26747
|
}
|
|
@@ -26760,22 +26765,6 @@ ImageWidget.defaultProps = {
|
|
|
26760
26765
|
caption: "",
|
|
26761
26766
|
linterContext: linterContextDefault
|
|
26762
26767
|
};
|
|
26763
|
-
const styles$i = StyleSheet.create({
|
|
26764
|
-
caption: {
|
|
26765
|
-
display: "inline-block",
|
|
26766
|
-
marginTop: baseUnitPx,
|
|
26767
|
-
maxWidth: 640,
|
|
26768
|
-
[mediaQueries.lgOrSmaller]: {
|
|
26769
|
-
// TODO(david): This maxWidth is not being used because
|
|
26770
|
-
// it's overriden by the 512px max-width we have on
|
|
26771
|
-
// paragraphs.
|
|
26772
|
-
maxWidth: 540
|
|
26773
|
-
},
|
|
26774
|
-
[mediaQueries.smOrSmaller]: {
|
|
26775
|
-
maxWidth: 450
|
|
26776
|
-
}
|
|
26777
|
-
}
|
|
26778
|
-
});
|
|
26779
26768
|
var Image$1 = {
|
|
26780
26769
|
name: "image",
|
|
26781
26770
|
// This widget's accessibility depends on its contents: if the image has
|