@pie-lib/render-ui 4.35.2-next.0 → 4.37.0-mui-update.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 +22 -9
- package/lib/append-css-rules.js +10 -37
- package/lib/append-css-rules.js.map +1 -1
- package/lib/assets/enableAudioAutoplayImage.js +1 -2
- package/lib/assets/enableAudioAutoplayImage.js.map +1 -1
- package/lib/collapsible/index.js +31 -64
- package/lib/collapsible/index.js.map +1 -1
- package/lib/color.js +57 -201
- package/lib/color.js.map +1 -1
- package/lib/feedback.js +56 -97
- package/lib/feedback.js.map +1 -1
- package/lib/has-media.js +2 -7
- package/lib/has-media.js.map +1 -1
- package/lib/has-text.js +1 -7
- package/lib/has-text.js.map +1 -1
- package/lib/html-and-math.js +10 -30
- package/lib/html-and-math.js.map +1 -1
- package/lib/index.js +1 -24
- package/lib/index.js.map +1 -1
- package/lib/input-container.js +43 -44
- package/lib/input-container.js.map +1 -1
- package/lib/preview-layout.js +22 -58
- package/lib/preview-layout.js.map +1 -1
- package/lib/preview-prompt.js +89 -136
- package/lib/preview-prompt.js.map +1 -1
- package/lib/purpose.js +1 -7
- package/lib/purpose.js.map +1 -1
- package/lib/readable.js +1 -7
- package/lib/readable.js.map +1 -1
- package/lib/response-indicators.js +37 -86
- package/lib/response-indicators.js.map +1 -1
- package/lib/ui-layout.js +70 -81
- package/lib/ui-layout.js.map +1 -1
- package/lib/withUndoReset.js +51 -97
- package/lib/withUndoReset.js.map +1 -1
- package/package.json +14 -11
- package/src/collapsible/index.jsx +17 -17
- package/src/color.js +1 -5
- package/src/feedback.jsx +44 -46
- package/src/input-container.jsx +41 -32
- package/src/preview-layout.jsx +11 -23
- package/src/preview-prompt.jsx +62 -62
- package/src/response-indicators.jsx +22 -29
- package/src/ui-layout.jsx +60 -40
- package/src/withUndoReset.jsx +48 -50
package/lib/withUndoReset.js
CHANGED
|
@@ -1,98 +1,69 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
-
|
|
7
5
|
Object.defineProperty(exports, "__esModule", {
|
|
8
6
|
value: true
|
|
9
7
|
});
|
|
10
8
|
exports["default"] = void 0;
|
|
11
|
-
|
|
9
|
+
var _objectDestructuringEmpty2 = _interopRequireDefault(require("@babel/runtime/helpers/objectDestructuringEmpty"));
|
|
12
10
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
13
|
-
|
|
14
|
-
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
15
|
-
|
|
16
11
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
17
|
-
|
|
18
12
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
19
|
-
|
|
20
13
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
21
|
-
|
|
22
|
-
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
23
|
-
|
|
24
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
25
|
-
|
|
26
14
|
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
27
|
-
|
|
28
15
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
29
|
-
|
|
16
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
30
17
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
31
|
-
|
|
32
18
|
var React = _interopRequireWildcard(require("react"));
|
|
33
|
-
|
|
34
19
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
35
|
-
|
|
36
|
-
var
|
|
37
|
-
|
|
38
|
-
var
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
var
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
var styles = function styles(theme) {
|
|
20
|
+
var _Button = _interopRequireDefault(require("@mui/material/Button"));
|
|
21
|
+
var _styles = require("@mui/material/styles");
|
|
22
|
+
var _Restore = _interopRequireDefault(require("@mui/icons-material/Restore"));
|
|
23
|
+
var _Undo = _interopRequireDefault(require("@mui/icons-material/Undo"));
|
|
24
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
25
|
+
function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
|
|
26
|
+
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
27
|
+
var Wrapper = (0, _styles.styled)('div')({
|
|
28
|
+
display: 'flex',
|
|
29
|
+
flexDirection: 'column'
|
|
30
|
+
});
|
|
31
|
+
var ResetUndoContainer = (0, _styles.styled)('div')({
|
|
32
|
+
display: 'flex',
|
|
33
|
+
alignItems: 'center',
|
|
34
|
+
justifyContent: 'center'
|
|
35
|
+
});
|
|
36
|
+
var StyledIcon = (0, _styles.styled)('div')(function (_ref) {
|
|
37
|
+
var theme = _ref.theme;
|
|
55
38
|
return {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
alignItems: 'center',
|
|
63
|
-
justifyContent: 'center'
|
|
64
|
-
},
|
|
65
|
-
icon: {
|
|
66
|
-
width: '24px',
|
|
67
|
-
height: '24px',
|
|
68
|
-
color: 'gray',
|
|
69
|
-
marginRight: theme.spacing.unit
|
|
70
|
-
},
|
|
71
|
-
buttonContainer: {
|
|
72
|
-
display: 'flex',
|
|
73
|
-
alignItems: 'center',
|
|
74
|
-
marginLeft: theme.spacing.unit * 3,
|
|
75
|
-
marginRight: theme.spacing.unit * 3
|
|
76
|
-
}
|
|
39
|
+
width: '24px',
|
|
40
|
+
height: '24px',
|
|
41
|
+
color: 'gray',
|
|
42
|
+
marginRight: theme.spacing(1),
|
|
43
|
+
display: 'flex',
|
|
44
|
+
alignItems: 'center'
|
|
77
45
|
};
|
|
78
|
-
};
|
|
46
|
+
});
|
|
47
|
+
var StyledButton = (0, _styles.styled)(_Button["default"])(function (_ref2) {
|
|
48
|
+
var theme = _ref2.theme;
|
|
49
|
+
return {
|
|
50
|
+
display: 'flex',
|
|
51
|
+
alignItems: 'center',
|
|
52
|
+
marginLeft: theme.spacing(3),
|
|
53
|
+
marginRight: theme.spacing(3)
|
|
54
|
+
};
|
|
55
|
+
});
|
|
56
|
+
|
|
79
57
|
/**
|
|
80
58
|
* HOC that adds undo and reset functionality for session values
|
|
81
59
|
*/
|
|
82
|
-
|
|
83
|
-
|
|
84
60
|
var withUndoReset = function withUndoReset(WrappedComponent) {
|
|
85
61
|
var WithUndoReset = /*#__PURE__*/function (_React$Component) {
|
|
86
|
-
(0, _inherits2["default"])(WithUndoReset, _React$Component);
|
|
87
|
-
|
|
88
|
-
var _super = _createSuper(WithUndoReset);
|
|
89
|
-
|
|
90
62
|
function WithUndoReset(props) {
|
|
91
63
|
var _this;
|
|
92
|
-
|
|
93
64
|
(0, _classCallCheck2["default"])(this, WithUndoReset);
|
|
94
|
-
_this =
|
|
95
|
-
(0, _defineProperty2["default"])(
|
|
65
|
+
_this = _callSuper(this, WithUndoReset, [props]);
|
|
66
|
+
(0, _defineProperty2["default"])(_this, "onSessionChange", function (session) {
|
|
96
67
|
_this.setState(function (state) {
|
|
97
68
|
return {
|
|
98
69
|
session: session,
|
|
@@ -102,7 +73,7 @@ var withUndoReset = function withUndoReset(WrappedComponent) {
|
|
|
102
73
|
return _this.props.onSessionChange(session);
|
|
103
74
|
});
|
|
104
75
|
});
|
|
105
|
-
(0, _defineProperty2["default"])(
|
|
76
|
+
(0, _defineProperty2["default"])(_this, "onUndo", function () {
|
|
106
77
|
_this.setState(function (state) {
|
|
107
78
|
var newChanges = (0, _toConsumableArray2["default"])(state.changes);
|
|
108
79
|
newChanges.pop();
|
|
@@ -114,7 +85,7 @@ var withUndoReset = function withUndoReset(WrappedComponent) {
|
|
|
114
85
|
return _this.props.onSessionChange(_this.state.session);
|
|
115
86
|
});
|
|
116
87
|
});
|
|
117
|
-
(0, _defineProperty2["default"])(
|
|
88
|
+
(0, _defineProperty2["default"])(_this, "onReset", function () {
|
|
118
89
|
_this.setState(function (state) {
|
|
119
90
|
return {
|
|
120
91
|
session: state.sessionInitialValues,
|
|
@@ -131,51 +102,34 @@ var withUndoReset = function withUndoReset(WrappedComponent) {
|
|
|
131
102
|
};
|
|
132
103
|
return _this;
|
|
133
104
|
}
|
|
134
|
-
|
|
135
|
-
(0, _createClass2["default"])(WithUndoReset, [{
|
|
105
|
+
(0, _inherits2["default"])(WithUndoReset, _React$Component);
|
|
106
|
+
return (0, _createClass2["default"])(WithUndoReset, [{
|
|
136
107
|
key: "render",
|
|
137
108
|
value: function render() {
|
|
138
|
-
var
|
|
139
|
-
classes = _this$props.classes,
|
|
140
|
-
rest = (0, _objectWithoutProperties2["default"])(_this$props, _excluded);
|
|
109
|
+
var rest = (0, _extends2["default"])({}, ((0, _objectDestructuringEmpty2["default"])(this.props), this.props));
|
|
141
110
|
var _this$state = this.state,
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
return /*#__PURE__*/React.createElement(
|
|
145
|
-
className: classes.wrapper
|
|
146
|
-
}, /*#__PURE__*/React.createElement("div", {
|
|
147
|
-
className: classes.resetUndoContainer
|
|
148
|
-
}, /*#__PURE__*/React.createElement(_Button["default"], {
|
|
149
|
-
className: classes.buttonContainer,
|
|
111
|
+
changes = _this$state.changes,
|
|
112
|
+
session = _this$state.session;
|
|
113
|
+
return /*#__PURE__*/React.createElement(Wrapper, null, /*#__PURE__*/React.createElement(ResetUndoContainer, null, /*#__PURE__*/React.createElement(StyledButton, {
|
|
150
114
|
color: "primary",
|
|
151
115
|
disabled: changes.length === 0,
|
|
152
116
|
onClick: this.onUndo
|
|
153
|
-
}, /*#__PURE__*/React.createElement(_Undo["default"], {
|
|
154
|
-
className: classes.icon
|
|
155
|
-
}), " Undo"), /*#__PURE__*/React.createElement(_Button["default"], {
|
|
156
|
-
className: classes.buttonContainer,
|
|
117
|
+
}, /*#__PURE__*/React.createElement(StyledIcon, null, /*#__PURE__*/React.createElement(_Undo["default"], null)), "Undo"), /*#__PURE__*/React.createElement(StyledButton, {
|
|
157
118
|
color: "primary",
|
|
158
119
|
disabled: changes.length === 0,
|
|
159
120
|
onClick: this.onReset
|
|
160
|
-
}, /*#__PURE__*/React.createElement(_Restore["default"], {
|
|
161
|
-
className: classes.icon
|
|
162
|
-
}), " Start Over")), /*#__PURE__*/React.createElement(WrappedComponent, (0, _extends2["default"])({}, rest, {
|
|
121
|
+
}, /*#__PURE__*/React.createElement(StyledIcon, null, /*#__PURE__*/React.createElement(_Restore["default"], null)), "Start Over")), /*#__PURE__*/React.createElement(WrappedComponent, (0, _extends2["default"])({}, rest, {
|
|
163
122
|
session: session,
|
|
164
123
|
onSessionChange: this.onSessionChange
|
|
165
124
|
})));
|
|
166
125
|
}
|
|
167
126
|
}]);
|
|
168
|
-
return WithUndoReset;
|
|
169
127
|
}(React.Component);
|
|
170
|
-
|
|
171
128
|
(0, _defineProperty2["default"])(WithUndoReset, "propTypes", {
|
|
172
|
-
classes: _propTypes["default"].object,
|
|
173
129
|
session: _propTypes["default"].object,
|
|
174
130
|
onSessionChange: _propTypes["default"].func
|
|
175
131
|
});
|
|
176
|
-
return
|
|
132
|
+
return WithUndoReset;
|
|
177
133
|
};
|
|
178
|
-
|
|
179
|
-
var _default = withUndoReset;
|
|
180
|
-
exports["default"] = _default;
|
|
134
|
+
var _default = exports["default"] = withUndoReset;
|
|
181
135
|
//# sourceMappingURL=withUndoReset.js.map
|
package/lib/withUndoReset.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"withUndoReset.js","names":["React","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_Button","_styles","_Restore","_Undo","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_callSuper","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","apply","Boolean","prototype","valueOf","Wrapper","styled","display","flexDirection","ResetUndoContainer","alignItems","justifyContent","StyledIcon","_ref","theme","width","height","color","marginRight","spacing","StyledButton","Button","_ref2","marginLeft","withUndoReset","WrappedComponent","WithUndoReset","_React$Component","props","_this","_classCallCheck2","_defineProperty2","session","setState","state","changes","concat","_toConsumableArray2","onSessionChange","newChanges","pop","length","sessionInitialValues","JSON","parse","stringify","_inherits2","_createClass2","key","value","render","rest","_extends2","_objectDestructuringEmpty2","_this$state","createElement","disabled","onClick","onUndo","onReset","Component","PropTypes","object","func","_default","exports"],"sources":["../src/withUndoReset.jsx"],"sourcesContent":["import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport Button from '@mui/material/Button';\nimport { styled } from '@mui/material/styles';\nimport Restore from '@mui/icons-material/Restore';\nimport Undo from '@mui/icons-material/Undo';\n\nconst Wrapper = styled('div')({\n display: 'flex',\n flexDirection: 'column',\n});\n\nconst ResetUndoContainer = styled('div')({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n});\n\nconst StyledIcon = styled('div')(({ theme }) => ({\n width: '24px',\n height: '24px',\n color: 'gray',\n marginRight: theme.spacing(1),\n display: 'flex',\n alignItems: 'center',\n}));\n\nconst StyledButton = styled(Button)(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n marginLeft: theme.spacing(3),\n marginRight: theme.spacing(3),\n}));\n\n/**\n * HOC that adds undo and reset functionality for session values\n */\nconst withUndoReset = (WrappedComponent) => {\n class WithUndoReset extends React.Component {\n static propTypes = {\n session: PropTypes.object,\n onSessionChange: PropTypes.func,\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n sessionInitialValues: JSON.parse(JSON.stringify(props.session)),\n session: props.session,\n changes: [],\n };\n }\n\n onSessionChange = (session) => {\n this.setState(\n (state) => ({ session, changes: [...state.changes, session] }),\n () => this.props.onSessionChange(session),\n );\n };\n\n onUndo = () => {\n this.setState(\n (state) => {\n const newChanges = [...state.changes];\n\n newChanges.pop();\n\n return {\n changes: newChanges,\n session: newChanges.length ? newChanges[newChanges.length - 1] : state.sessionInitialValues,\n };\n },\n () => this.props.onSessionChange(this.state.session),\n );\n };\n\n onReset = () => {\n this.setState(\n (state) => ({ session: state.sessionInitialValues, changes: [] }),\n () => this.props.onSessionChange(this.state.sessionInitialValues),\n );\n };\n\n render() {\n const { ...rest } = this.props;\n const { changes, session } = this.state;\n\n return (\n <Wrapper>\n <ResetUndoContainer>\n <StyledButton color=\"primary\" disabled={changes.length === 0} onClick={this.onUndo}>\n <StyledIcon>\n <Undo />\n </StyledIcon>\n Undo\n </StyledButton>\n <StyledButton color=\"primary\" disabled={changes.length === 0} onClick={this.onReset}>\n <StyledIcon>\n <Restore />\n </StyledIcon>\n Start Over\n </StyledButton>\n </ResetUndoContainer>\n <WrappedComponent {...rest} session={session} onSessionChange={this.onSessionChange} />\n </Wrapper>\n );\n }\n }\n\n return WithUndoReset;\n};\n\nexport default withUndoReset;\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pie-lib/render-ui",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.37.0-mui-update.0",
|
|
4
4
|
"description": "Some shared ui elements when rendering - but not worthy of their own package yet.",
|
|
5
5
|
"module": "src/index.js",
|
|
6
6
|
"main": "lib/index.js",
|
|
@@ -9,11 +9,13 @@
|
|
|
9
9
|
},
|
|
10
10
|
"scripts": {},
|
|
11
11
|
"dependencies": {
|
|
12
|
-
"@
|
|
13
|
-
"@
|
|
14
|
-
"@
|
|
15
|
-
"@
|
|
16
|
-
"@pie-lib/
|
|
12
|
+
"@emotion/react": "^11.14.0",
|
|
13
|
+
"@emotion/styled": "^11.14.1",
|
|
14
|
+
"@mui/icons-material": "^7.3.4",
|
|
15
|
+
"@mui/material": "^7.3.4",
|
|
16
|
+
"@pie-lib/icons": "^2.26.0-mui-update.0",
|
|
17
|
+
"@pie-lib/math-rendering": "^3.28.0-mui-update.0",
|
|
18
|
+
"@pie-lib/test-utils": "^0.24.0-mui-update.0",
|
|
17
19
|
"classnames": "^2.2.6",
|
|
18
20
|
"debug": "^4.1.1",
|
|
19
21
|
"lodash": "^4.17.11",
|
|
@@ -21,12 +23,13 @@
|
|
|
21
23
|
"react-transition-group": "^2.5.2"
|
|
22
24
|
},
|
|
23
25
|
"peerDependencies": {
|
|
24
|
-
"
|
|
25
|
-
"react
|
|
26
|
+
"@pie-lib/test-utils": "^0.20.0-mui-update.0",
|
|
27
|
+
"react": "^18.2.0",
|
|
28
|
+
"react-dom": "^18.2.0"
|
|
26
29
|
},
|
|
27
30
|
"devDependencies": {
|
|
28
|
-
"react": "^
|
|
29
|
-
"react-dom": "^
|
|
31
|
+
"react": "^18.2.0",
|
|
32
|
+
"react-dom": "^18.2.0"
|
|
30
33
|
},
|
|
31
|
-
"gitHead": "
|
|
34
|
+
"gitHead": "4d8ccede3634986a13ea7df987defd26d089f0d6"
|
|
32
35
|
}
|
|
@@ -1,12 +1,21 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
3
|
-
import Collapse from '@material
|
|
2
|
+
import { styled } from '@mui/material/styles';
|
|
3
|
+
import Collapse from '@mui/material/Collapse';
|
|
4
4
|
import { renderMath } from '@pie-lib/math-rendering';
|
|
5
5
|
import PropTypes from 'prop-types';
|
|
6
6
|
|
|
7
|
+
const Title = styled('span')(({ theme }) => ({
|
|
8
|
+
color: theme.palette.primary.light,
|
|
9
|
+
borderBottom: `1px dotted ${theme.palette.primary.light}`,
|
|
10
|
+
cursor: 'pointer',
|
|
11
|
+
}));
|
|
12
|
+
|
|
13
|
+
const StyledCollapse = styled(Collapse)(({ theme }) => ({
|
|
14
|
+
paddingTop: theme.spacing(2),
|
|
15
|
+
}));
|
|
16
|
+
|
|
7
17
|
export class Collapsible extends React.Component {
|
|
8
18
|
static propTypes = {
|
|
9
|
-
classes: PropTypes.object.isRequired,
|
|
10
19
|
className: PropTypes.string,
|
|
11
20
|
children: PropTypes.object,
|
|
12
21
|
labels: PropTypes.shape({
|
|
@@ -36,29 +45,20 @@ export class Collapsible extends React.Component {
|
|
|
36
45
|
}
|
|
37
46
|
|
|
38
47
|
render() {
|
|
39
|
-
const {
|
|
48
|
+
const { labels, children, className } = this.props;
|
|
40
49
|
const title = this.state.expanded ? labels.visible || 'Hide' : labels.hidden || 'Show';
|
|
41
50
|
|
|
42
51
|
return (
|
|
43
52
|
<div className={className} ref={(r) => (this.root = r)}>
|
|
44
53
|
<div onClick={this.toggleExpanded}>
|
|
45
|
-
<
|
|
54
|
+
<Title>{title}</Title>
|
|
46
55
|
</div>
|
|
47
|
-
<
|
|
56
|
+
<StyledCollapse in={this.state.expanded} timeout="auto" unmountOnExit>
|
|
48
57
|
{children}
|
|
49
|
-
</
|
|
58
|
+
</StyledCollapse>
|
|
50
59
|
</div>
|
|
51
60
|
);
|
|
52
61
|
}
|
|
53
62
|
}
|
|
54
63
|
|
|
55
|
-
export default
|
|
56
|
-
title: {
|
|
57
|
-
color: theme.palette.primary.light,
|
|
58
|
-
borderBottom: `1px dotted ${theme.palette.primary.light}`,
|
|
59
|
-
cursor: 'pointer',
|
|
60
|
-
},
|
|
61
|
-
collapsible: {
|
|
62
|
-
paddingTop: theme.spacing.unit * 2,
|
|
63
|
-
},
|
|
64
|
-
}))(Collapsible);
|
|
64
|
+
export default Collapsible;
|
package/src/color.js
CHANGED
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
import green from '@material
|
|
2
|
-
import orange from '@material-ui/core/colors/orange';
|
|
3
|
-
import pink from '@material-ui/core/colors/pink';
|
|
4
|
-
import indigo from '@material-ui/core/colors/indigo';
|
|
5
|
-
import red from '@material-ui/core/colors/red';
|
|
1
|
+
import { green, orange, pink, indigo, red } from '@mui/material/colors';
|
|
6
2
|
|
|
7
3
|
export const defaults = {
|
|
8
4
|
TEXT: 'black',
|
package/src/feedback.jsx
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Lifted from multiple-choice - TODO: create a shared package for it.
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
4
|
+
import { styled } from '@mui/material/styles';
|
|
5
5
|
|
|
6
6
|
import React from 'react';
|
|
7
7
|
import { TransitionGroup, CSSTransition } from 'react-transition-group';
|
|
@@ -9,77 +9,75 @@ import classNames from 'classnames';
|
|
|
9
9
|
import PropTypes from 'prop-types';
|
|
10
10
|
import * as color from './color';
|
|
11
11
|
|
|
12
|
-
const
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
'
|
|
19
|
-
color: '#946202',
|
|
20
|
-
},
|
|
12
|
+
const FeedbackContainer = styled('div')({
|
|
13
|
+
transformOrigin: '0% 0px 0px',
|
|
14
|
+
width: '100%',
|
|
15
|
+
display: 'block',
|
|
16
|
+
overflow: 'hidden',
|
|
17
|
+
'&.incorrect': {
|
|
18
|
+
color: '#946202',
|
|
21
19
|
},
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
const FeedbackContent = styled('div')({
|
|
23
|
+
WebkitFontSmoothing: 'antialiased',
|
|
24
|
+
backgroundColor: `var(--feedback-bg-color, ${color.disabled()})`,
|
|
25
|
+
borderRadius: '4px',
|
|
26
|
+
lineHeight: '25px',
|
|
27
|
+
margin: '0px',
|
|
28
|
+
padding: '10px',
|
|
29
|
+
verticalAlign: 'middle',
|
|
30
|
+
color: 'var(--feedback-color, white)',
|
|
31
|
+
'&.correct': {
|
|
33
32
|
backgroundColor: `var(--feedback-correct-bg-color, ${color.correct()})`,
|
|
34
33
|
},
|
|
35
|
-
incorrect: {
|
|
34
|
+
'&.incorrect': {
|
|
36
35
|
backgroundColor: `var(--feedback-incorrect-bg-color, ${color.incorrect()})`,
|
|
37
36
|
},
|
|
38
|
-
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
const transitionClasses = {
|
|
40
|
+
feedbackEnter: 'feedback-enter',
|
|
41
|
+
feedbackEnterActive: 'feedback-enter-active',
|
|
42
|
+
feedbackLeave: 'feedback-leave',
|
|
43
|
+
feedbackLeaveActive: 'feedback-leave-active',
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
const TransitionWrapper = styled('div')({
|
|
47
|
+
[`&.${transitionClasses.feedbackEnter}`]: {
|
|
39
48
|
height: '1px',
|
|
40
49
|
},
|
|
41
|
-
feedbackEnterActive: {
|
|
50
|
+
[`&.${transitionClasses.feedbackEnterActive}`]: {
|
|
42
51
|
height: '45px',
|
|
43
52
|
transition: 'height 500ms',
|
|
44
53
|
},
|
|
45
|
-
feedbackLeave: {
|
|
54
|
+
[`&.${transitionClasses.feedbackLeave}`]: {
|
|
46
55
|
height: '45px',
|
|
47
56
|
},
|
|
48
|
-
feedbackLeaveActive: {
|
|
57
|
+
[`&.${transitionClasses.feedbackLeaveActive}`]: {
|
|
49
58
|
height: '1px',
|
|
50
59
|
transition: 'height 200ms',
|
|
51
60
|
},
|
|
52
|
-
};
|
|
61
|
+
});
|
|
53
62
|
|
|
54
63
|
export class Feedback extends React.Component {
|
|
55
64
|
static propTypes = {
|
|
56
65
|
correctness: PropTypes.string,
|
|
57
66
|
feedback: PropTypes.string,
|
|
58
|
-
classes: PropTypes.object.isRequired,
|
|
59
67
|
};
|
|
60
68
|
|
|
61
69
|
render() {
|
|
62
|
-
const { correctness, feedback
|
|
70
|
+
const { correctness, feedback } = this.props;
|
|
63
71
|
|
|
64
72
|
function chooseFeedback(correctness) {
|
|
65
73
|
if (correctness && feedback) {
|
|
66
74
|
return (
|
|
67
|
-
<CSSTransition
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
}}
|
|
74
|
-
key="hasFeedback"
|
|
75
|
-
timeout={{ enter: 500, exit: 300 }}
|
|
76
|
-
>
|
|
77
|
-
<div className={classes.corespringFeedback}>
|
|
78
|
-
<div
|
|
79
|
-
className={classNames(classes.content, classes[correctness])}
|
|
80
|
-
dangerouslySetInnerHTML={{ __html: feedback }}
|
|
81
|
-
/>
|
|
82
|
-
</div>
|
|
75
|
+
<CSSTransition classNames={transitionClasses} key="hasFeedback" timeout={{ enter: 500, exit: 300 }}>
|
|
76
|
+
<TransitionWrapper>
|
|
77
|
+
<FeedbackContainer>
|
|
78
|
+
<FeedbackContent className={classNames(correctness)} dangerouslySetInnerHTML={{ __html: feedback }} />
|
|
79
|
+
</FeedbackContainer>
|
|
80
|
+
</TransitionWrapper>
|
|
83
81
|
</CSSTransition>
|
|
84
82
|
);
|
|
85
83
|
} else {
|
|
@@ -95,4 +93,4 @@ export class Feedback extends React.Component {
|
|
|
95
93
|
}
|
|
96
94
|
}
|
|
97
95
|
|
|
98
|
-
export default
|
|
96
|
+
export default Feedback;
|
package/src/input-container.jsx
CHANGED
|
@@ -1,41 +1,50 @@
|
|
|
1
|
-
import InputLabel from '@material
|
|
1
|
+
import InputLabel from '@mui/material/InputLabel';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import React from 'react';
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import FormControl from '@material-ui/core/FormControl';
|
|
4
|
+
import { styled } from '@mui/material/styles';
|
|
5
|
+
import FormControl from '@mui/material/FormControl';
|
|
7
6
|
|
|
8
|
-
const
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
const StyledFormControl = styled(FormControl)(({ theme }) => ({
|
|
8
|
+
margin: 0,
|
|
9
|
+
padding: 0,
|
|
10
|
+
flex: '1 0 auto',
|
|
11
|
+
minWidth: theme.spacing(4),
|
|
12
|
+
}));
|
|
11
13
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
14
|
+
const StyledInputLabel = styled(InputLabel)(() => ({
|
|
15
|
+
fontSize: 'inherit',
|
|
16
|
+
whiteSpace: 'nowrap',
|
|
17
|
+
margin: 0,
|
|
18
|
+
padding: 0,
|
|
19
|
+
alignSelf: 'flex-start',
|
|
20
|
+
position: 'absolute',
|
|
21
|
+
top: 0,
|
|
22
|
+
left: 0,
|
|
23
|
+
transformOrigin: 'top left',
|
|
24
|
+
pointerEvents: 'none',
|
|
25
|
+
// override MUI's default transform styles
|
|
26
|
+
'&.MuiInputLabel-shrink': {
|
|
27
|
+
transform: 'scale(0.75) translate(0, -0.75em)',
|
|
28
|
+
},
|
|
29
|
+
'&:not(.MuiInputLabel-shrink)': {
|
|
30
|
+
transform: 'translate(0, 0)',
|
|
31
|
+
},
|
|
32
|
+
}));
|
|
21
33
|
|
|
22
|
-
|
|
34
|
+
const InputContainer = ({ label, className, children }) => (
|
|
35
|
+
<StyledFormControl className={className}>
|
|
36
|
+
<StyledInputLabel shrink>{label}</StyledInputLabel>
|
|
37
|
+
{children}
|
|
38
|
+
</StyledFormControl>
|
|
39
|
+
);
|
|
40
|
+
|
|
41
|
+
InputContainer.propTypes = {
|
|
23
42
|
label: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired,
|
|
24
43
|
className: PropTypes.string,
|
|
25
|
-
children: PropTypes.oneOfType([
|
|
26
|
-
|
|
44
|
+
children: PropTypes.oneOfType([
|
|
45
|
+
PropTypes.arrayOf(PropTypes.node),
|
|
46
|
+
PropTypes.node,
|
|
47
|
+
]).isRequired,
|
|
27
48
|
};
|
|
28
49
|
|
|
29
|
-
export default
|
|
30
|
-
formControl: {
|
|
31
|
-
marginLeft: 0,
|
|
32
|
-
marginRight: 0,
|
|
33
|
-
paddingBottom: theme.spacing.unit,
|
|
34
|
-
flex: '1 0 auto',
|
|
35
|
-
minWidth: theme.spacing.unit * 4,
|
|
36
|
-
},
|
|
37
|
-
label: {
|
|
38
|
-
fontSize: 'inherit',
|
|
39
|
-
whiteSpace: 'nowrap',
|
|
40
|
-
},
|
|
41
|
-
}))(RawInputContainer);
|
|
50
|
+
export default InputContainer;
|