@pie-lib/graphing 2.34.2-next.0 → 2.35.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.
Files changed (155) hide show
  1. package/CHANGELOG.md +10 -8
  2. package/lib/axis/arrow.js +19 -55
  3. package/lib/axis/arrow.js.map +1 -1
  4. package/lib/axis/axes.js +104 -186
  5. package/lib/axis/axes.js.map +1 -1
  6. package/lib/axis/index.js +1 -6
  7. package/lib/axis/index.js.map +1 -1
  8. package/lib/bg.js +21 -49
  9. package/lib/bg.js.map +1 -1
  10. package/lib/container/actions.js +2 -8
  11. package/lib/container/actions.js.map +1 -1
  12. package/lib/container/index.js +14 -59
  13. package/lib/container/index.js.map +1 -1
  14. package/lib/container/marks.js +1 -6
  15. package/lib/container/marks.js.map +1 -1
  16. package/lib/container/middleware.js +2 -8
  17. package/lib/container/middleware.js.map +1 -1
  18. package/lib/container/reducer.js +1 -8
  19. package/lib/container/reducer.js.map +1 -1
  20. package/lib/coordinates-label.js +23 -55
  21. package/lib/coordinates-label.js.map +1 -1
  22. package/lib/graph-with-controls.js +113 -183
  23. package/lib/graph-with-controls.js.map +1 -1
  24. package/lib/graph.js +59 -116
  25. package/lib/graph.js.map +1 -1
  26. package/lib/grid-setup.js +161 -223
  27. package/lib/grid-setup.js.map +1 -1
  28. package/lib/grid.js +28 -73
  29. package/lib/grid.js.map +1 -1
  30. package/lib/index.js +1 -13
  31. package/lib/index.js.map +1 -1
  32. package/lib/key-legend.js +41 -85
  33. package/lib/key-legend.js.map +1 -1
  34. package/lib/label-svg-icon.js +1 -7
  35. package/lib/label-svg-icon.js.map +1 -1
  36. package/lib/labels.js +61 -119
  37. package/lib/labels.js.map +1 -1
  38. package/lib/mark-label.js +113 -163
  39. package/lib/mark-label.js.map +1 -1
  40. package/lib/toggle-bar.js +158 -242
  41. package/lib/toggle-bar.js.map +1 -1
  42. package/lib/tool-menu.js +16 -48
  43. package/lib/tool-menu.js.map +1 -1
  44. package/lib/tools/absolute/component.js +4 -10
  45. package/lib/tools/absolute/component.js.map +1 -1
  46. package/lib/tools/absolute/index.js +3 -16
  47. package/lib/tools/absolute/index.js.map +1 -1
  48. package/lib/tools/circle/bg-circle.js +42 -92
  49. package/lib/tools/circle/bg-circle.js.map +1 -1
  50. package/lib/tools/circle/component.js +79 -165
  51. package/lib/tools/circle/component.js.map +1 -1
  52. package/lib/tools/circle/index.js +3 -13
  53. package/lib/tools/circle/index.js.map +1 -1
  54. package/lib/tools/exponential/component.js +4 -10
  55. package/lib/tools/exponential/component.js.map +1 -1
  56. package/lib/tools/exponential/index.js +3 -18
  57. package/lib/tools/exponential/index.js.map +1 -1
  58. package/lib/tools/index.js +3 -16
  59. package/lib/tools/index.js.map +1 -1
  60. package/lib/tools/line/component.js +27 -48
  61. package/lib/tools/line/component.js.map +1 -1
  62. package/lib/tools/line/index.js +1 -6
  63. package/lib/tools/line/index.js.map +1 -1
  64. package/lib/tools/parabola/component.js +4 -10
  65. package/lib/tools/parabola/component.js.map +1 -1
  66. package/lib/tools/parabola/index.js +3 -16
  67. package/lib/tools/parabola/index.js.map +1 -1
  68. package/lib/tools/point/component.js +24 -71
  69. package/lib/tools/point/component.js.map +1 -1
  70. package/lib/tools/point/index.js +3 -11
  71. package/lib/tools/point/index.js.map +1 -1
  72. package/lib/tools/polygon/component.js +82 -183
  73. package/lib/tools/polygon/component.js.map +1 -1
  74. package/lib/tools/polygon/index.js +6 -23
  75. package/lib/tools/polygon/index.js.map +1 -1
  76. package/lib/tools/polygon/line.js +48 -91
  77. package/lib/tools/polygon/line.js.map +1 -1
  78. package/lib/tools/polygon/polygon.js +65 -98
  79. package/lib/tools/polygon/polygon.js.map +1 -1
  80. package/lib/tools/ray/component.js +41 -60
  81. package/lib/tools/ray/component.js.map +1 -1
  82. package/lib/tools/ray/index.js +1 -6
  83. package/lib/tools/ray/index.js.map +1 -1
  84. package/lib/tools/segment/component.js +25 -43
  85. package/lib/tools/segment/component.js.map +1 -1
  86. package/lib/tools/segment/index.js +1 -6
  87. package/lib/tools/segment/index.js.map +1 -1
  88. package/lib/tools/shared/arrow-head.js +69 -28
  89. package/lib/tools/shared/arrow-head.js.map +1 -1
  90. package/lib/tools/shared/icons/CorrectSVG.js +3 -8
  91. package/lib/tools/shared/icons/CorrectSVG.js.map +1 -1
  92. package/lib/tools/shared/icons/IncorrectSVG.js +3 -8
  93. package/lib/tools/shared/icons/IncorrectSVG.js.map +1 -1
  94. package/lib/tools/shared/icons/MissingSVG.js +3 -8
  95. package/lib/tools/shared/icons/MissingSVG.js.map +1 -1
  96. package/lib/tools/shared/line/index.js +126 -187
  97. package/lib/tools/shared/line/index.js.map +1 -1
  98. package/lib/tools/shared/line/line-path.js +70 -100
  99. package/lib/tools/shared/line/line-path.js.map +1 -1
  100. package/lib/tools/shared/line/with-root-edge.js +21 -55
  101. package/lib/tools/shared/line/with-root-edge.js.map +1 -1
  102. package/lib/tools/shared/point/arrow-point.js +23 -62
  103. package/lib/tools/shared/point/arrow-point.js.map +1 -1
  104. package/lib/tools/shared/point/arrow.js +24 -52
  105. package/lib/tools/shared/point/arrow.js.map +1 -1
  106. package/lib/tools/shared/point/base-point.js +54 -72
  107. package/lib/tools/shared/point/base-point.js.map +1 -1
  108. package/lib/tools/shared/point/index.js +22 -57
  109. package/lib/tools/shared/point/index.js.map +1 -1
  110. package/lib/tools/shared/styles.js +10 -38
  111. package/lib/tools/shared/styles.js.map +1 -1
  112. package/lib/tools/shared/types.js +2 -9
  113. package/lib/tools/shared/types.js.map +1 -1
  114. package/lib/tools/sine/component.js +8 -19
  115. package/lib/tools/sine/component.js.map +1 -1
  116. package/lib/tools/sine/index.js +3 -16
  117. package/lib/tools/sine/index.js.map +1 -1
  118. package/lib/tools/vector/component.js +24 -44
  119. package/lib/tools/vector/component.js.map +1 -1
  120. package/lib/tools/vector/index.js +1 -6
  121. package/lib/tools/vector/index.js.map +1 -1
  122. package/lib/undo-redo.js +29 -69
  123. package/lib/undo-redo.js.map +1 -1
  124. package/lib/use-debounce.js +4 -11
  125. package/lib/use-debounce.js.map +1 -1
  126. package/lib/utils.js +51 -128
  127. package/lib/utils.js.map +1 -1
  128. package/package.json +15 -13
  129. package/src/axis/arrow.jsx +7 -12
  130. package/src/axis/axes.jsx +40 -45
  131. package/src/coordinates-label.jsx +13 -18
  132. package/src/graph-with-controls.jsx +52 -59
  133. package/src/grid-setup.jsx +204 -206
  134. package/src/grid.jsx +1 -3
  135. package/src/key-legend.jsx +52 -56
  136. package/src/labels.jsx +21 -30
  137. package/src/mark-label.jsx +83 -81
  138. package/src/toggle-bar.jsx +155 -166
  139. package/src/tools/circle/bg-circle.jsx +20 -28
  140. package/src/tools/circle/component.jsx +28 -63
  141. package/src/tools/line/component.jsx +22 -15
  142. package/src/tools/polygon/component.jsx +1 -2
  143. package/src/tools/polygon/line.jsx +28 -32
  144. package/src/tools/polygon/polygon.jsx +52 -45
  145. package/src/tools/ray/component.jsx +38 -25
  146. package/src/tools/segment/component.jsx +19 -18
  147. package/src/tools/shared/arrow-head.jsx +60 -7
  148. package/src/tools/shared/line/index.jsx +39 -2
  149. package/src/tools/shared/line/line-path.jsx +54 -58
  150. package/src/tools/shared/point/arrow-point.jsx +10 -24
  151. package/src/tools/shared/point/arrow.jsx +5 -11
  152. package/src/tools/shared/point/base-point.jsx +42 -19
  153. package/src/tools/shared/point/index.jsx +27 -44
  154. package/src/tools/vector/component.jsx +11 -16
  155. package/src/undo-redo.jsx +19 -21
@@ -1,49 +1,108 @@
1
1
  import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import { color, InputContainer } from '@pie-lib/render-ui';
4
- import { withStyles } from '@material-ui/core/styles';
5
- import ExpansionPanelSummary from '@material-ui/core/ExpansionPanelSummary';
6
- import Typography from '@material-ui/core/Typography';
7
- import ExpansionPanelDetails from '@material-ui/core/ExpansionPanelDetails';
8
- import ExpansionPanel from '@material-ui/core/ExpansionPanel';
9
- import ExpandMoreIcon from '@material-ui/icons/ExpandMore';
4
+ import {
5
+ Accordion,
6
+ AccordionSummary,
7
+ AccordionDetails,
8
+ Typography,
9
+ } from '@mui/material';
10
+ import ExpandMoreIcon from '@mui/icons-material/ExpandMore';
10
11
  import { NumberTextFieldCustom, Toggle } from '@pie-lib/config-ui';
11
12
  import EditableHTML from '@pie-lib/editable-html';
13
+ import { styled } from '@mui/material/styles';
14
+
15
+ const Wrapper = styled('div')(({ theme }) => ({
16
+ width: '450px',
17
+ }));
18
+
19
+ const Content = styled('div')(({ theme }) => ({
20
+ display: 'flex',
21
+ flexDirection: 'column',
22
+ width: '100%',
23
+ }));
24
+
25
+ const ColumnView = styled('div')(({ theme }) => ({
26
+ display: 'flex',
27
+ flexDirection: 'column',
28
+ alignItems: 'center',
29
+ }));
30
+
31
+ const RowView = styled('div')(({ theme }) => ({
32
+ display: 'flex',
33
+ justifyContent: 'space-around',
34
+ alignItems: 'center',
35
+ }));
36
+
37
+ const TextFieldSmall = styled('div')(({ theme }) => ({
38
+ width: '130px',
39
+ margin: `${theme.spacing(1)} ${theme.spacing(0.5)}`,
40
+ }));
41
+
42
+ const TextFieldMedium = styled('div')(({ theme }) => ({
43
+ width: '160px',
44
+ margin: `${theme.spacing(1)} ${theme.spacing(0.5)}`,
45
+ }));
46
+
47
+ const TextFieldLarge = styled('div')(({ theme }) => ({
48
+ width: '230px',
49
+ margin: `${theme.spacing(1)} ${theme.spacing(0.5)}`,
50
+ }));
51
+
52
+ const ItalicText = styled(Typography)(({ theme }) => ({
53
+ fontStyle: 'italic',
54
+ margin: `${theme.spacing(1)} 0`,
55
+ }));
56
+
57
+ const Dimensions = styled('div')(({ theme }) => ({
58
+ display: 'flex',
59
+ justifyContent: 'space-between',
60
+ alignItems: 'center',
61
+ }));
62
+
63
+ const DisabledText = styled(Typography)(({ theme }) => ({
64
+ color: color.disabled(),
65
+ }));
66
+
67
+ const AxisLabel = styled('div')(({ theme }) => ({
68
+ paddingTop: theme.spacing(2),
69
+ }));
12
70
 
13
71
  const GridConfig = (props) => {
14
- const { classes, disabled, displayedFields, labelValue, labelValues, gridValue, gridValues, onChange } = props;
72
+ const { disabled, displayedFields, labelValue, labelValues, gridValue, gridValues, onChange } = props;
15
73
  const { labelStep = {}, step = {} } = displayedFields;
16
74
 
17
75
  return (
18
- <div className={classes.columnView}>
76
+ <ColumnView>
19
77
  {step && step.enabled && (
20
- <NumberTextFieldCustom
21
- className={classes.mediumTextField}
22
- label={step.label || ''}
23
- value={gridValue}
24
- customValues={gridValues}
25
- variant="outlined"
26
- disabled={disabled}
27
- onChange={(e, v) => onChange('step', v)}
28
- />
78
+ <TextFieldMedium>
79
+ <NumberTextFieldCustom
80
+ label={step.label || ''}
81
+ value={gridValue}
82
+ customValues={gridValues}
83
+ variant="outlined"
84
+ disabled={disabled}
85
+ onChange={(e, v) => onChange('step', v)}
86
+ />
87
+ </TextFieldMedium>
29
88
  )}
30
89
  {labelStep && labelStep.enabled && (
31
- <NumberTextFieldCustom
32
- className={classes.mediumTextField}
33
- label={labelStep.label || ''}
34
- value={labelValue}
35
- customValues={labelValues}
36
- variant="outlined"
37
- disabled={disabled}
38
- onChange={(e, v) => onChange('labelStep', v)}
39
- />
90
+ <TextFieldMedium>
91
+ <NumberTextFieldCustom
92
+ label={labelStep.label || ''}
93
+ value={labelValue}
94
+ customValues={labelValues}
95
+ variant="outlined"
96
+ disabled={disabled}
97
+ onChange={(e, v) => onChange('labelStep', v)}
98
+ />
99
+ </TextFieldMedium>
40
100
  )}
41
- </div>
101
+ </ColumnView>
42
102
  );
43
103
  };
44
104
 
45
105
  GridConfig.propTypes = {
46
- classes: PropTypes.object,
47
106
  disabled: PropTypes.bool,
48
107
  displayedFields: PropTypes.object,
49
108
  labelValue: PropTypes.number,
@@ -54,65 +113,62 @@ GridConfig.propTypes = {
54
113
  };
55
114
 
56
115
  const AxisConfig = (props) => {
57
- const { classes, disabled, displayedFields, displayHeader, label, maxValue, minValue, onChange, type } = props;
116
+ const { disabled, displayedFields, displayHeader, label, maxValue, minValue, onChange, type } = props;
58
117
  const { axisLabel = {}, min = {}, max = {} } = displayedFields;
59
- const activePlugins = [
60
- 'bold',
61
- 'italic',
62
- 'underline',
63
- 'strikethrough',
64
- // 'languageCharacters'
65
- ];
118
+ const activePlugins = ['bold', 'italic', 'underline', 'strikethrough'];
66
119
 
67
120
  return (
68
- <div className={classes.columnView}>
121
+ <ColumnView>
69
122
  {displayHeader && (
70
123
  <Typography variant="subtitle2">
71
- <i>{type === 'domain' ? 'x' : 'y'}</i>
72
- -axis
124
+ <i>{type === 'domain' ? 'x' : 'y'}</i>-axis
73
125
  </Typography>
74
126
  )}
75
127
  {min && min.enabled && (
76
- <NumberTextFieldCustom
77
- className={classes.mediumTextField}
78
- label={min.label || ''}
79
- value={minValue}
80
- min={-10000}
81
- max={maxValue - 0.05}
82
- variant="outlined"
83
- disabled={disabled}
84
- onChange={(e, v) => onChange('min', v)}
85
- />
128
+ <TextFieldMedium>
129
+ <NumberTextFieldCustom
130
+ label={min.label || ''}
131
+ value={minValue}
132
+ min={-10000}
133
+ max={maxValue - 0.05}
134
+ variant="outlined"
135
+ disabled={disabled}
136
+ onChange={(e, v) => onChange('min', v)}
137
+ />
138
+ </TextFieldMedium>
86
139
  )}
87
140
  {max && max.enabled && (
88
- <NumberTextFieldCustom
89
- className={classes.mediumTextField}
90
- label={max.label || ''}
91
- value={maxValue}
92
- min={minValue + 0.05}
93
- max={10000}
94
- variant="outlined"
95
- disabled={disabled}
96
- onChange={(e, v) => onChange('max', v)}
97
- />
141
+ <TextFieldMedium>
142
+ <NumberTextFieldCustom
143
+ label={max.label || ''}
144
+ value={maxValue}
145
+ min={minValue + 0.05}
146
+ max={10000}
147
+ variant="outlined"
148
+ disabled={disabled}
149
+ onChange={(e, v) => onChange('max', v)}
150
+ />
151
+ </TextFieldMedium>
98
152
  )}
99
153
  {axisLabel && axisLabel.enabled && (
100
- <InputContainer label={axisLabel.label || ''} className={classes.mediumTextField}>
101
- <EditableHTML
102
- className={classes.axisLabel}
103
- onChange={(value) => onChange('axisLabel', value)}
104
- markup={label || ''}
105
- charactersLimit={5}
106
- activePlugins={activePlugins}
107
- />
108
- </InputContainer>
154
+ <TextFieldMedium>
155
+ <InputContainer label={axisLabel.label || ''}>
156
+ <AxisLabel>
157
+ <EditableHTML
158
+ onChange={(value) => onChange('axisLabel', value)}
159
+ markup={label || ''}
160
+ charactersLimit={5}
161
+ activePlugins={activePlugins}
162
+ />
163
+ </AxisLabel>
164
+ </InputContainer>
165
+ </TextFieldMedium>
109
166
  )}
110
- </div>
167
+ </ColumnView>
111
168
  );
112
169
  };
113
170
 
114
171
  AxisConfig.propTypes = {
115
- classes: PropTypes.object,
116
172
  disabled: PropTypes.bool,
117
173
  displayedFields: PropTypes.object,
118
174
  displayHeader: PropTypes.bool,
@@ -122,9 +178,9 @@ AxisConfig.propTypes = {
122
178
  type: PropTypes.string,
123
179
  onChange: PropTypes.func,
124
180
  };
181
+
125
182
  const GridSetup = (props) => {
126
183
  const {
127
- classes,
128
184
  domain,
129
185
  displayedFields = {},
130
186
  gridValues = {},
@@ -137,6 +193,7 @@ const GridSetup = (props) => {
137
193
  sizeConstraints,
138
194
  standardGrid,
139
195
  } = props;
196
+
140
197
  const gridProps = { min: 2, max: 41 };
141
198
  const {
142
199
  axisLabel = {},
@@ -148,6 +205,7 @@ const GridSetup = (props) => {
148
205
  standardGridEnabled,
149
206
  step = {},
150
207
  } = displayedFields || {};
208
+
151
209
  const displayAxisType = min.enabled || max.enabled || axisLabel.enabled || step.enabled || labelStep.enabled;
152
210
  const gridConfigFields = { step, labelStep };
153
211
  const axisConfigFields = { min, max, axisLabel };
@@ -155,7 +213,6 @@ const GridSetup = (props) => {
155
213
  const onIncludeAxes = (includeAxes) => {
156
214
  const noAxesConfig = (type) => {
157
215
  const axis = type === 'domain' ? domain : range;
158
-
159
216
  return {
160
217
  min: 1,
161
218
  max: axis.max < gridProps.min || axis.max > gridProps.max ? 16 : axis.max,
@@ -192,35 +249,25 @@ const GridSetup = (props) => {
192
249
 
193
250
  const onSizeChanged = (key, value) => {
194
251
  const graph = { ...size, [key]: value };
195
-
196
- if (standardGrid) {
197
- graph.height = value;
198
- }
199
-
252
+ if (standardGrid) graph.height = value;
200
253
  onChange({ graph });
201
254
  };
202
255
 
203
256
  const onDomainChanged = (key, value) => {
204
257
  domain[key] = value;
205
-
206
- if (standardGrid && key !== 'axisLabel') {
207
- range[key] = value;
208
- }
209
-
258
+ if (standardGrid && key !== 'axisLabel') range[key] = value;
210
259
  onChange({ domain, range });
211
260
  };
212
261
 
213
262
  const onRangeChanged = (key, value) => {
214
263
  range[key] = value;
215
-
216
264
  onChange({ range });
217
265
  };
218
266
 
219
267
  const axesConfig = (
220
- <React.Fragment>
221
- <div className={classes.rowView}>
268
+ <>
269
+ <RowView>
222
270
  <AxisConfig
223
- classes={classes}
224
271
  displayedFields={axisConfigFields}
225
272
  displayHeader={displayAxisType}
226
273
  type="domain"
@@ -231,7 +278,6 @@ const GridSetup = (props) => {
231
278
  onChange={onDomainChanged}
232
279
  />
233
280
  <AxisConfig
234
- classes={classes}
235
281
  displayedFields={axisConfigFields}
236
282
  displayHeader={displayAxisType}
237
283
  type="range"
@@ -242,16 +288,15 @@ const GridSetup = (props) => {
242
288
  includeAxes={includeAxes}
243
289
  onChange={onRangeChanged}
244
290
  />
245
- </div>
291
+ </RowView>
246
292
  {(min.enabled || max.enabled) && (
247
- <Typography className={classes.text}>
293
+ <ItalicText>
248
294
  If you want the axis to be visible, use a zero or negative Min Value, and a positive Max Value
249
- </Typography>
295
+ </ItalicText>
250
296
  )}
251
297
  {(step.enabled || labelStep.enabled) && (
252
- <div className={classes.rowView}>
298
+ <RowView>
253
299
  <GridConfig
254
- classes={classes}
255
300
  displayedFields={gridConfigFields}
256
301
  gridValue={domain.step}
257
302
  labelValue={domain.labelStep}
@@ -260,7 +305,6 @@ const GridSetup = (props) => {
260
305
  onChange={onDomainChanged}
261
306
  />
262
307
  <GridConfig
263
- classes={classes}
264
308
  disabled={standardGrid}
265
309
  displayedFields={gridConfigFields}
266
310
  gridValue={range.step}
@@ -269,46 +313,47 @@ const GridSetup = (props) => {
269
313
  labelValues={labelValues.range || []}
270
314
  onChange={onRangeChanged}
271
315
  />
272
- </div>
316
+ </RowView>
273
317
  )}
274
- {labelStep.enabled && (
275
- <Typography className={classes.text}>For unnumbered gridlines, enter a label interval of 0</Typography>
276
- )}
277
- </React.Fragment>
318
+ {labelStep.enabled && <ItalicText>For unnumbered gridlines, enter a label interval of 0</ItalicText>}
319
+ </>
278
320
  );
279
321
 
280
- const gridlinesConfig = max.enabled ? (
281
- <div className={classes.columnView}>
282
- <NumberTextFieldCustom
283
- className={classes.largeTextField}
284
- label="Number of Vertical Gridlines"
285
- value={domain.max}
286
- min={!includeAxes && gridProps.min}
287
- max={!includeAxes && gridProps.max}
288
- variant="outlined"
289
- onChange={(e, v) => onDomainChanged('max', v)}
290
- />
291
- <NumberTextFieldCustom
292
- className={classes.largeTextField}
293
- label="Number of Horizontal Gridlines"
294
- value={range.max}
295
- min={!includeAxes && gridProps.min}
296
- max={!includeAxes && gridProps.max}
297
- variant="outlined"
298
- disabled={standardGrid}
299
- onChange={(e, v) => onRangeChanged('max', v)}
300
- />
301
- </div>
302
- ) : null;
322
+ const gridlinesConfig =
323
+ max.enabled ? (
324
+ <ColumnView>
325
+ <TextFieldLarge>
326
+ <NumberTextFieldCustom
327
+ label="Number of Vertical Gridlines"
328
+ value={domain.max}
329
+ min={!includeAxes && gridProps.min}
330
+ max={!includeAxes && gridProps.max}
331
+ variant="outlined"
332
+ onChange={(e, v) => onDomainChanged('max', v)}
333
+ />
334
+ </TextFieldLarge>
335
+ <TextFieldLarge>
336
+ <NumberTextFieldCustom
337
+ label="Number of Horizontal Gridlines"
338
+ value={range.max}
339
+ min={!includeAxes && gridProps.min}
340
+ max={!includeAxes && gridProps.max}
341
+ variant="outlined"
342
+ disabled={standardGrid}
343
+ onChange={(e, v) => onRangeChanged('max', v)}
344
+ />
345
+ </TextFieldLarge>
346
+ </ColumnView>
347
+ ) : null;
303
348
 
304
349
  return (
305
- <div className={classes.wrapper}>
306
- <ExpansionPanel onChange={onChangeView}>
307
- <ExpansionPanelSummary expandIcon={<ExpandMoreIcon />}>
350
+ <Wrapper>
351
+ <Accordion onChange={onChangeView}>
352
+ <AccordionSummary expandIcon={<ExpandMoreIcon />}>
308
353
  <Typography variant="subtitle1">Customize Grid Setup</Typography>
309
- </ExpansionPanelSummary>
310
- <ExpansionPanelDetails>
311
- <div className={classes.content}>
354
+ </AccordionSummary>
355
+ <AccordionDetails>
356
+ <Content>
312
357
  {includeAxesEnabled && (
313
358
  <Toggle label="Include axes and labels?" toggle={onIncludeAxes} checked={includeAxes} />
314
359
  )}
@@ -321,45 +366,46 @@ const GridSetup = (props) => {
321
366
  )}
322
367
  {includeAxes ? axesConfig : gridlinesConfig}
323
368
  {dimensionsEnabled && (
324
- <div className={classes.dimensions}>
369
+ <Dimensions>
325
370
  <div>
326
371
  <Typography>Dimensions(px)</Typography>
327
- <Typography className={classes.disabled}>
372
+ <DisabledText>
328
373
  Min {sizeConstraints.min}, Max {sizeConstraints.max}
329
- </Typography>
374
+ </DisabledText>
330
375
  </div>
331
- <NumberTextFieldCustom
332
- className={classes.textField}
333
- label="Width"
334
- value={size.width}
335
- min={sizeConstraints.min}
336
- max={sizeConstraints.max}
337
- step={sizeConstraints.step}
338
- variant="outlined"
339
- onChange={(e, v) => onSizeChanged('width', v)}
340
- />
341
- <NumberTextFieldCustom
342
- className={classes.textField}
343
- label="Height"
344
- value={size.height}
345
- min={sizeConstraints.min}
346
- max={sizeConstraints.max}
347
- step={sizeConstraints.step}
348
- variant="outlined"
349
- disabled={standardGrid}
350
- onChange={(e, v) => onSizeChanged('height', v)}
351
- />
352
- </div>
376
+ <TextFieldSmall>
377
+ <NumberTextFieldCustom
378
+ label="Width"
379
+ value={size.width}
380
+ min={sizeConstraints.min}
381
+ max={sizeConstraints.max}
382
+ step={sizeConstraints.step}
383
+ variant="outlined"
384
+ onChange={(e, v) => onSizeChanged('width', v)}
385
+ />
386
+ </TextFieldSmall>
387
+ <TextFieldSmall>
388
+ <NumberTextFieldCustom
389
+ label="Height"
390
+ value={size.height}
391
+ min={sizeConstraints.min}
392
+ max={sizeConstraints.max}
393
+ step={sizeConstraints.step}
394
+ variant="outlined"
395
+ disabled={standardGrid}
396
+ onChange={(e, v) => onSizeChanged('height', v)}
397
+ />
398
+ </TextFieldSmall>
399
+ </Dimensions>
353
400
  )}
354
- </div>
355
- </ExpansionPanelDetails>
356
- </ExpansionPanel>
357
- </div>
401
+ </Content>
402
+ </AccordionDetails>
403
+ </Accordion>
404
+ </Wrapper>
358
405
  );
359
406
  };
360
407
 
361
408
  GridSetup.propTypes = {
362
- classes: PropTypes.object,
363
409
  domain: PropTypes.object,
364
410
  displayedFields: PropTypes.object,
365
411
  gridValues: PropTypes.object,
@@ -373,52 +419,4 @@ GridSetup.propTypes = {
373
419
  standardGrid: PropTypes.bool,
374
420
  };
375
421
 
376
- const styles = (theme) => ({
377
- wrapper: {
378
- width: '450px',
379
- },
380
- content: {
381
- display: 'flex',
382
- flexDirection: 'column',
383
- width: '100%',
384
- },
385
- columnView: {
386
- display: 'flex',
387
- flexDirection: 'column',
388
- alignItems: 'center',
389
- },
390
- rowView: {
391
- display: 'flex',
392
- justifyContent: 'space-around',
393
- alignItems: 'center',
394
- },
395
- textField: {
396
- width: '130px',
397
- margin: `${theme.spacing.unit}px ${theme.spacing.unit / 2}px`,
398
- },
399
- mediumTextField: {
400
- width: '160px',
401
- margin: `${theme.spacing.unit}px ${theme.spacing.unit / 2}px`,
402
- },
403
- largeTextField: {
404
- width: '230px',
405
- margin: `${theme.spacing.unit}px ${theme.spacing.unit / 2}px`,
406
- },
407
- text: {
408
- fontStyle: 'italic',
409
- margin: `${theme.spacing.unit}px 0`,
410
- },
411
- dimensions: {
412
- display: 'flex',
413
- justifyContent: 'space-between',
414
- alignItems: 'center',
415
- },
416
- disabled: {
417
- color: color.disabled(),
418
- },
419
- axisLabel: {
420
- paddingTop: theme.spacing.unit * 2,
421
- },
422
- });
423
-
424
- export default withStyles(styles)(GridSetup);
422
+ export default GridSetup;
package/src/grid.jsx CHANGED
@@ -2,14 +2,12 @@ import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import * as vx from '@vx/grid';
4
4
  import { types } from '@pie-lib/plot';
5
- import { withStyles } from '@material-ui/core/styles';
6
5
  import { getTickValues } from './utils';
7
6
 
8
7
  export class Grid extends React.Component {
9
8
  static propTypes = {
10
9
  disabled: PropTypes.bool,
11
10
  disabledAdditionalGrid: PropTypes.bool,
12
- classes: PropTypes.object.isRequired,
13
11
  graphProps: types.GraphPropsType.isRequired,
14
12
  };
15
13
 
@@ -132,4 +130,4 @@ export class Grid extends React.Component {
132
130
  }
133
131
  }
134
132
 
135
- export default withStyles(() => ({}))(Grid);
133
+ export default Grid;