@pie-lib/math-input 6.28.6-esmbeta.0 → 6.29.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 +20 -0
- package/lib/horizontal-keypad.js +16 -44
- package/lib/horizontal-keypad.js.map +1 -1
- package/lib/index.js +3 -25
- package/lib/index.js.map +1 -1
- package/lib/keypad/index.js +233 -314
- package/lib/keypad/index.js.map +1 -1
- package/lib/keypad/keys-layout.js +2 -12
- package/lib/keypad/keys-layout.js.map +1 -1
- package/lib/keys/basic-operators.js +5 -13
- package/lib/keys/basic-operators.js.map +1 -1
- package/lib/keys/chars.js +5 -10
- package/lib/keys/chars.js.map +1 -1
- package/lib/keys/comparison.js +6 -16
- package/lib/keys/comparison.js.map +1 -1
- package/lib/keys/constants.js +4 -10
- package/lib/keys/constants.js.map +1 -1
- package/lib/keys/digits.js +1 -7
- package/lib/keys/digits.js.map +1 -1
- package/lib/keys/edit.js +1 -4
- package/lib/keys/edit.js.map +1 -1
- package/lib/keys/exponent.js +4 -10
- package/lib/keys/exponent.js.map +1 -1
- package/lib/keys/fractions.js +3 -8
- package/lib/keys/fractions.js.map +1 -1
- package/lib/keys/geometry.js +25 -54
- package/lib/keys/geometry.js.map +1 -1
- package/lib/keys/grades.js +10 -46
- package/lib/keys/grades.js.map +1 -1
- package/lib/keys/index.js +13 -32
- package/lib/keys/index.js.map +1 -1
- package/lib/keys/log.js +3 -8
- package/lib/keys/log.js.map +1 -1
- package/lib/keys/logic.js +2 -6
- package/lib/keys/logic.js.map +1 -1
- package/lib/keys/matrices.js +2 -6
- package/lib/keys/matrices.js.map +1 -1
- package/lib/keys/misc.js +10 -22
- package/lib/keys/misc.js.map +1 -1
- package/lib/keys/navigation.js +2 -7
- package/lib/keys/navigation.js.map +1 -1
- package/lib/keys/operators.js +1 -4
- package/lib/keys/operators.js.map +1 -1
- package/lib/keys/statistics.js +5 -12
- package/lib/keys/statistics.js.map +1 -1
- package/lib/keys/sub-sup.js +2 -6
- package/lib/keys/sub-sup.js.map +1 -1
- package/lib/keys/trigonometry.js +6 -14
- package/lib/keys/trigonometry.js.map +1 -1
- package/lib/keys/utils.js +7 -40
- package/lib/keys/utils.js.map +1 -1
- package/lib/keys/vars.js +3 -8
- package/lib/keys/vars.js.map +1 -1
- package/lib/math-input.js +52 -103
- package/lib/math-input.js.map +1 -1
- package/lib/mq/common-mq-styles.js +7 -18
- package/lib/mq/common-mq-styles.js.map +1 -1
- package/lib/mq/custom-elements.js +1 -4
- package/lib/mq/custom-elements.js.map +1 -1
- package/lib/mq/index.js +0 -4
- package/lib/mq/index.js.map +1 -1
- package/lib/mq/input.js +22 -75
- package/lib/mq/input.js.map +1 -1
- package/lib/mq/static.js +31 -92
- package/lib/mq/static.js.map +1 -1
- package/lib/shared/constants.js +3 -6
- package/lib/updateSpans.js +1 -5
- package/lib/updateSpans.js.map +1 -1
- package/package.json +9 -14
- package/src/keypad/index.jsx +151 -151
- package/src/math-input.jsx +35 -44
- package/src/mq/input.jsx +9 -9
- package/esm/index.css +0 -847
- package/esm/index.js +0 -60134
- package/esm/index.js.map +0 -1
- package/esm/package.json +0 -1
package/src/math-input.jsx
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
|
-
import {
|
|
4
|
-
import classNames from 'classnames';
|
|
3
|
+
import { styled } from '@mui/material/styles';
|
|
5
4
|
import * as mq from './mq';
|
|
6
5
|
import { baseSet } from './keys';
|
|
7
6
|
import KeyPad from './keypad';
|
|
@@ -9,9 +8,35 @@ import debug from 'debug';
|
|
|
9
8
|
|
|
10
9
|
const log = debug('pie-lib:math-input');
|
|
11
10
|
|
|
11
|
+
const grey = 'rgba(0, 0, 0, 0.23)';
|
|
12
|
+
|
|
13
|
+
const MathInputContainer = styled('div')(({ theme, focused }) => ({
|
|
14
|
+
borderRadius: '4px',
|
|
15
|
+
border: `solid 1px ${focused ? theme.palette.primary.main : grey}`,
|
|
16
|
+
marginTop: theme.spacing(1),
|
|
17
|
+
marginBottom: theme.spacing(1),
|
|
18
|
+
transition: 'border 200ms linear',
|
|
19
|
+
}));
|
|
20
|
+
|
|
21
|
+
const PadContainer = styled('div')({
|
|
22
|
+
width: '100%',
|
|
23
|
+
display: 'flex',
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
const StyledMqInput = styled(mq.Input)(({ theme }) => ({
|
|
27
|
+
width: '100%',
|
|
28
|
+
border: `solid 0px ${theme.palette.primary.light}`,
|
|
29
|
+
transition: 'border 200ms linear',
|
|
30
|
+
padding: theme.spacing(1),
|
|
31
|
+
'&.mq-focused': {
|
|
32
|
+
outline: 'none',
|
|
33
|
+
boxShadow: 'none',
|
|
34
|
+
border: `solid 0px ${theme.palette.primary.dark}`,
|
|
35
|
+
},
|
|
36
|
+
}));
|
|
37
|
+
|
|
12
38
|
export class MathInput extends React.Component {
|
|
13
39
|
static propTypes = {
|
|
14
|
-
classes: PropTypes.object.isRequired,
|
|
15
40
|
className: PropTypes.string,
|
|
16
41
|
keyset: PropTypes.array,
|
|
17
42
|
displayMode: PropTypes.oneOf(['block', 'block-on-focus']),
|
|
@@ -67,15 +92,14 @@ export class MathInput extends React.Component {
|
|
|
67
92
|
};
|
|
68
93
|
|
|
69
94
|
render() {
|
|
70
|
-
const {
|
|
95
|
+
const { className, keyset, latex } = this.props;
|
|
71
96
|
const { focused } = this.state;
|
|
72
97
|
|
|
73
98
|
const showKeypad = true; // TODO: add support for different displayModes - displayMode === 'block' || focused;
|
|
74
99
|
|
|
75
100
|
return (
|
|
76
|
-
<
|
|
77
|
-
<
|
|
78
|
-
className={classes.mqInput}
|
|
101
|
+
<MathInputContainer className={className} focused={focused}>
|
|
102
|
+
<StyledMqInput
|
|
79
103
|
innerRef={(r) => (this.input = r)}
|
|
80
104
|
onFocus={this.inputFocus}
|
|
81
105
|
onBlur={this.inputBlur}
|
|
@@ -83,46 +107,13 @@ export class MathInput extends React.Component {
|
|
|
83
107
|
onChange={this.changeLatex}
|
|
84
108
|
/>
|
|
85
109
|
{showKeypad && (
|
|
86
|
-
<
|
|
110
|
+
<PadContainer>
|
|
87
111
|
<KeyPad baseSet={baseSet} additionalKeys={keyset} onPress={this.keypadPress} />
|
|
88
|
-
</
|
|
112
|
+
</PadContainer>
|
|
89
113
|
)}
|
|
90
|
-
</
|
|
114
|
+
</MathInputContainer>
|
|
91
115
|
);
|
|
92
116
|
}
|
|
93
117
|
}
|
|
94
118
|
|
|
95
|
-
|
|
96
|
-
const styles = (theme) => ({
|
|
97
|
-
formGroup: {
|
|
98
|
-
display: 'flex',
|
|
99
|
-
textAlign: 'right',
|
|
100
|
-
float: 'right',
|
|
101
|
-
},
|
|
102
|
-
pad: {
|
|
103
|
-
width: '100%',
|
|
104
|
-
display: 'flex',
|
|
105
|
-
},
|
|
106
|
-
mathInput: {
|
|
107
|
-
borderRadius: '4px',
|
|
108
|
-
border: `solid 1px ${grey}`,
|
|
109
|
-
marginTop: theme.spacing.unit,
|
|
110
|
-
marginBottom: theme.spacing.unit,
|
|
111
|
-
transition: 'border 200ms linear',
|
|
112
|
-
},
|
|
113
|
-
focused: {
|
|
114
|
-
border: `solid 1px ${theme.palette.primary.main}`,
|
|
115
|
-
},
|
|
116
|
-
mqInput: {
|
|
117
|
-
width: '100%',
|
|
118
|
-
border: `solid 0px ${theme.palette.primary.light}`,
|
|
119
|
-
transition: 'border 200ms linear',
|
|
120
|
-
padding: theme.spacing.unit,
|
|
121
|
-
'&.mq-focused': {
|
|
122
|
-
outline: 'none',
|
|
123
|
-
boxShadow: 'none',
|
|
124
|
-
border: `solid 0px ${theme.palette.primary.dark}`,
|
|
125
|
-
},
|
|
126
|
-
},
|
|
127
|
-
});
|
|
128
|
-
export default withStyles(styles)(MathInput);
|
|
119
|
+
export default MathInput;
|
package/src/mq/input.jsx
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
|
-
import {
|
|
3
|
+
import { styled } from '@mui/material/styles';
|
|
4
4
|
import debug from 'debug';
|
|
5
|
-
import classNames from 'classnames';
|
|
6
5
|
import { registerLineBreak } from './custom-elements';
|
|
7
6
|
import MathQuill from '@pie-framework/mathquill';
|
|
8
7
|
|
|
@@ -17,13 +16,16 @@ if (typeof window !== 'undefined') {
|
|
|
17
16
|
|
|
18
17
|
const log = debug('math-input:mq:input');
|
|
19
18
|
|
|
19
|
+
const StyledSpan = styled('span')({
|
|
20
|
+
// No specific styles needed, but component is available for future styling
|
|
21
|
+
});
|
|
22
|
+
|
|
20
23
|
/**
|
|
21
24
|
* Wrapper for MathQuill MQ.MathField.
|
|
22
25
|
*/
|
|
23
26
|
export class Input extends React.Component {
|
|
24
27
|
static propTypes = {
|
|
25
28
|
className: PropTypes.string,
|
|
26
|
-
classes: PropTypes.object.isRequired,
|
|
27
29
|
onClick: PropTypes.func,
|
|
28
30
|
onChange: PropTypes.func,
|
|
29
31
|
latex: PropTypes.string,
|
|
@@ -156,11 +158,11 @@ export class Input extends React.Component {
|
|
|
156
158
|
}
|
|
157
159
|
|
|
158
160
|
render() {
|
|
159
|
-
const { onFocus, onBlur,
|
|
161
|
+
const { onFocus, onBlur, className } = this.props;
|
|
160
162
|
|
|
161
163
|
return (
|
|
162
|
-
<
|
|
163
|
-
className={
|
|
164
|
+
<StyledSpan
|
|
165
|
+
className={className}
|
|
164
166
|
onKeyDown={this.onKeyPress}
|
|
165
167
|
onClick={this.onClick}
|
|
166
168
|
onFocus={onFocus}
|
|
@@ -171,6 +173,4 @@ export class Input extends React.Component {
|
|
|
171
173
|
}
|
|
172
174
|
}
|
|
173
175
|
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
export default withStyles(styles)(Input);
|
|
176
|
+
export default Input;
|