@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,60 +1,60 @@
1
1
  import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
- import { withStyles } from '@material-ui/core/styles';
4
- import cn from 'classnames';
5
- import Button from '@material-ui/core/Button';
3
+ import { styled } from '@mui/material/styles';
4
+ import Button from '@mui/material/Button';
6
5
  import { color } from '@pie-lib/render-ui';
7
6
  import { allTools } from './tools';
8
- import { withDragContext, DragSource, DropTarget } from '@pie-lib/drag';
7
+ import { DragProvider } from '@pie-lib/drag';
8
+ import { useDraggable, useDroppable } from '@dnd-kit/core';
9
+ import { CSS } from '@dnd-kit/utilities';
10
+ import { arrayMove } from '@dnd-kit/sortable';
9
11
  import Translator from '@pie-lib/translator';
10
12
 
11
13
  const { translator } = Translator;
12
14
 
13
- const buttonStyles = () => ({
14
- root: {
15
- color: color.text(),
16
- },
17
- selected: {
18
- backgroundColor: color.background(),
15
+ const StyledMiniButton = styled(Button, {
16
+ shouldForwardProp: (prop) => !['selected'].includes(prop),
17
+ })(({ selected, disabled }) => ({
18
+ color: color.text(),
19
+ backgroundColor: color.background(),
20
+ ...(selected && {
19
21
  border: `1px solid ${color.secondary()}`,
20
- },
21
- notSelected: {
22
+ }),
23
+ ...(!selected && {
22
24
  '& span': {
23
25
  color: color.primary(),
24
26
  },
25
- backgroundColor: color.background(),
26
- },
27
- disabled: {
27
+ }),
28
+ ...(disabled && {
28
29
  '& span': {
29
30
  color: color.primary(),
30
31
  },
31
32
  backgroundColor: color.disabled(),
32
- },
33
- });
33
+ }),
34
+ }));
34
35
 
35
- export const MiniButton = withStyles(buttonStyles)((props) => {
36
- const { disabled, classes, className, selected, value, onClick, language } = props;
36
+ export const MiniButton = (props) => {
37
+ const { disabled, className, selected, value, onClick, language } = props;
37
38
  const translatorKey = value.toLowerCase();
38
39
 
39
40
  return (
40
- <Button
41
+ <StyledMiniButton
41
42
  size="small"
42
43
  disabled={disabled}
43
- className={cn(classes.root, selected && classes.selected, className)}
44
- classes={{ disabled: cn(disabled && classes.disabled) }}
44
+ className={className}
45
+ selected={selected}
45
46
  value={value}
46
47
  key={value}
47
48
  variant="outlined"
48
49
  onClick={(e) => onClick({ ...e, buttonValue: value })}
49
50
  >
50
51
  {translator.t(`graphing.${translatorKey}`, { lng: language })}
51
- </Button>
52
+ </StyledMiniButton>
52
53
  );
53
- });
54
+ };
54
55
 
55
56
  MiniButton.propTypes = {
56
57
  disabled: PropTypes.bool,
57
- classes: PropTypes.object,
58
58
  className: PropTypes.string,
59
59
  disabledClassName: PropTypes.string,
60
60
  selected: PropTypes.bool,
@@ -62,9 +62,23 @@ MiniButton.propTypes = {
62
62
  onClick: PropTypes.func,
63
63
  };
64
64
 
65
+ const StyledToolsContainer = styled('div')(({ theme }) => ({
66
+ display: 'flex',
67
+ flexWrap: 'wrap',
68
+ }));
69
+
70
+ const StyledButton = styled(MiniButton)(({ theme }) => ({
71
+ marginRight: theme.spacing(0.5),
72
+ marginBottom: theme.spacing(0.5),
73
+ color: color.text(),
74
+ }));
75
+
76
+ const StyledWrapper = styled('div')({
77
+ position: 'relative',
78
+ });
79
+
65
80
  export class ToggleBar extends React.Component {
66
81
  static propTypes = {
67
- classes: PropTypes.object.isRequired,
68
82
  className: PropTypes.string,
69
83
  options: PropTypes.arrayOf(PropTypes.string),
70
84
  selectedToolType: PropTypes.string,
@@ -81,162 +95,137 @@ export class ToggleBar extends React.Component {
81
95
 
82
96
  moveTool = (dragIndex, hoverIndex) => {
83
97
  const { options, onChangeToolsOrder } = this.props;
84
- const dragged = options[dragIndex];
85
-
86
- options.splice(dragIndex, 1);
87
- options.splice(hoverIndex, 0, dragged);
98
+ const newOptions = arrayMove(options, dragIndex, hoverIndex);
99
+ console.log('New Options Order:', newOptions);
100
+ onChangeToolsOrder(newOptions);
101
+ };
88
102
 
89
- onChangeToolsOrder(options);
103
+ handleDragEnd = (event) => {
104
+ const { active, over } = event;
105
+
106
+ console.log('Drag End Event:', event);
107
+ if (!over || !active) return;
108
+
109
+ const activeData = active.data.current;
110
+ const overData = over.data.current;
111
+
112
+ if (activeData?.type === 'tool' && overData?.type === 'tool') {
113
+ const dragIndex = activeData.index;
114
+ const hoverIndex = overData.index;
115
+
116
+ if (dragIndex !== hoverIndex) {
117
+ this.moveTool(dragIndex, hoverIndex);
118
+ }
119
+ }
90
120
  };
91
121
 
92
122
  render() {
93
- const { classes, className, disabled, options, selectedToolType, draggableTools, language } = this.props;
123
+ const { className, disabled, options, selectedToolType, draggableTools, language } = this.props;
94
124
 
95
125
  return (
96
- <div className={cn(className, classes.toolsContainer)}>
97
- {(options || []).map((option, index) => {
98
- if ((allTools || []).includes(option)) {
99
- const isSelected = option === selectedToolType;
100
- const toolRef = React.createRef();
101
-
102
- return (
103
- <DragTool
104
- key={option}
105
- index={index}
106
- draggable={draggableTools}
107
- moveTool={this.moveTool}
108
- classes={classes}
109
- toolRef={toolRef}
110
- >
111
- <MiniButton
112
- className={cn(classes.button, isSelected && classes.selected)}
113
- disabled={disabled}
114
- disableRipple={true}
115
- onClick={this.select}
126
+ <DragProvider onDragEnd={this.handleDragEnd}>
127
+ <StyledToolsContainer className={className}>
128
+ {(options || []).map((option, index) => {
129
+ if ((allTools || []).includes(option)) {
130
+ const isSelected = option === selectedToolType;
131
+ const toolRef = React.createRef();
132
+
133
+ return (
134
+ <DragTool
135
+ key={option}
136
+ index={index}
116
137
  value={option}
117
- selected={isSelected}
118
- language={language}
119
- />
120
- </DragTool>
121
- );
122
- }
123
- })}
124
- </div>
138
+ draggable={draggableTools}
139
+ moveTool={this.moveTool}
140
+ toolRef={toolRef}
141
+ >
142
+ <StyledButton
143
+ disabled={disabled}
144
+ disableRipple={true}
145
+ onClick={this.select}
146
+ value={option}
147
+ selected={isSelected}
148
+ language={language}
149
+ />
150
+ </DragTool>
151
+ );
152
+ }
153
+ })}
154
+ </StyledToolsContainer>
155
+ </DragProvider>
125
156
  );
126
157
  }
127
158
  }
128
159
 
129
- const styles = (theme) => ({
130
- toolsContainer: {
131
- display: 'flex',
132
- flexWrap: 'wrap',
133
- },
134
- button: {
135
- marginRight: theme.spacing.unit / 2,
136
- marginBottom: theme.spacing.unit / 2,
137
- color: color.text(),
138
- },
139
- under: {
140
- position: 'absolute',
141
- top: 0,
142
- left: 0,
143
- zIndex: -1,
144
- pointerEvents: 'none',
145
- },
146
- wrapper: {
147
- position: 'relative',
148
- },
149
- hidden: {
150
- opacity: 0,
151
- },
152
- });
153
-
154
- export default withDragContext(withStyles(styles)(ToggleBar));
155
-
156
- const DRAG_TYPE = 'tool';
157
-
158
- export class Item extends React.Component {
159
- static propTypes = {
160
- classes: PropTypes.object.isRequired,
161
- className: PropTypes.string,
162
- children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),
163
- connectDragSource: PropTypes.func.isRequired,
164
- connectDragPreview: PropTypes.func.isRequired,
165
- connectDropTarget: PropTypes.func.isRequired,
166
- isDragging: PropTypes.bool,
167
- toolRef: PropTypes.any,
160
+ // DragTool functional component using @dnd-kit hooks
161
+ function DragTool({
162
+ children,
163
+ index,
164
+ draggable,
165
+ moveTool,
166
+ toolRef,
167
+ value
168
+ }) {
169
+ const {
170
+ attributes,
171
+ listeners,
172
+ setNodeRef: setDragNodeRef,
173
+ transform,
174
+ transition,
175
+ isDragging,
176
+ } = useDraggable({
177
+ id: `tool-${value}-${index}`,
178
+ disabled: !draggable,
179
+ data: {
180
+ type: 'tool',
181
+ index,
182
+ value,
183
+ },
184
+ });
185
+
186
+ const {
187
+ setNodeRef: setDropNodeRef,
188
+ isOver,
189
+ } = useDroppable({
190
+ id: `drop-tool-${value}-${index}`,
191
+ data: {
192
+ type: 'tool',
193
+ index,
194
+ accepts: ['tool'],
195
+ },
196
+ });
197
+
198
+ // Combine refs
199
+ const setNodeRef = (node) => {
200
+ setDragNodeRef(node);
201
+ setDropNodeRef(node);
202
+ if (toolRef?.current) {
203
+ toolRef.current = node;
204
+ }
168
205
  };
169
206
 
170
- static defaultProps = {};
171
-
172
- render() {
173
- const {
174
- classes,
175
- children,
176
- connectDragSource,
177
- connectDropTarget,
178
- connectDragPreview,
179
- isDragging,
180
- toolRef,
181
- } = this.props;
207
+ const style = {
208
+ transform: CSS.Transform.toString(transform),
209
+ transition,
210
+ opacity: isDragging ? 0.5 : 1,
211
+ };
182
212
 
183
- return (
184
- <div className={classes.wrapper} ref={toolRef}>
185
- {connectDragSource(connectDropTarget(<div className={isDragging && classes.hidden}>{children}</div>))}
186
- {connectDragPreview(<div className={classes.under}>{children}</div>)}
213
+ return (
214
+ <StyledWrapper ref={setNodeRef} style={style}>
215
+ <div {...attributes} {...listeners}>
216
+ {children}
187
217
  </div>
188
- );
189
- }
218
+ </StyledWrapper>
219
+ );
190
220
  }
191
221
 
192
- const itemSource = {
193
- canDrag(props) {
194
- return props.draggable;
195
- },
196
- beginDrag(props) {
197
- return {
198
- index: props.index,
199
- };
200
- },
201
- };
202
-
203
- const itemTarget = {
204
- hover(props, monitor) {
205
- const dragIndex = monitor.getItem().index;
206
- const { toolRef, index: hoverIndex } = props;
207
-
208
- if (dragIndex === hoverIndex || !toolRef.current) {
209
- return;
210
- }
211
-
212
- const hoverBoundingRect = toolRef.current?.getBoundingClientRect();
213
- const hoverMiddleX = (hoverBoundingRect.right - hoverBoundingRect.left) / 2;
214
- const clientOffset = monitor.getClientOffset();
215
- const hoverClientX = clientOffset.x - hoverBoundingRect.left;
216
-
217
- if (dragIndex < hoverIndex && hoverClientX < hoverMiddleX) {
218
- return;
219
- }
220
-
221
- if (dragIndex > hoverIndex && hoverClientX > hoverMiddleX) {
222
- return;
223
- }
224
-
225
- props.moveTool(dragIndex, hoverIndex);
226
- monitor.getItem().index = hoverIndex;
227
- },
222
+ DragTool.propTypes = {
223
+ children: PropTypes.node,
224
+ index: PropTypes.number,
225
+ draggable: PropTypes.bool,
226
+ moveTool: PropTypes.func,
227
+ toolRef: PropTypes.object,
228
+ value: PropTypes.string,
228
229
  };
229
230
 
230
- const collectTarget = (connect) => ({ connectDropTarget: connect.dropTarget() });
231
-
232
- const collectSource = (connect, monitor) => ({
233
- connectDragSource: connect.dragSource(),
234
- connectDragPreview: connect.dragPreview(),
235
- isDragging: monitor.isDragging(),
236
- });
237
-
238
- const DragTool = DropTarget(
239
- DRAG_TYPE,
240
- itemTarget,
241
- collectTarget,
242
- )(DragSource(DRAG_TYPE, itemSource, collectSource)(Item));
231
+ export default ToggleBar;
@@ -1,21 +1,14 @@
1
1
  import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
- import { withStyles } from '@material-ui/core/styles';
4
3
  import classNames from 'classnames';
5
4
  import { types, gridDraggable } from '@pie-lib/plot';
6
5
  import { color } from '@pie-lib/render-ui';
7
6
  import * as utils from '../../utils';
8
7
  import { disabled, disabledSecondary, correct, incorrect, missing } from '../shared/styles';
8
+ import { styled } from '@mui/material/styles';
9
9
 
10
- /**
11
- * A low level circle component
12
- *
13
- * TODO: This and base point have a lot of similarities - merge commonality
14
- *
15
- */
16
10
  class RawCircle extends React.Component {
17
11
  static propTypes = {
18
- classes: PropTypes.object.isRequired,
19
12
  className: PropTypes.string,
20
13
  correctness: PropTypes.string,
21
14
  disabled: PropTypes.bool,
@@ -26,14 +19,14 @@ class RawCircle extends React.Component {
26
19
  };
27
20
 
28
21
  render() {
29
- const { classes, disabled, className, correctness, x, y, radius, graphProps, ...rest } = this.props;
22
+ const { disabled, className, correctness, x, y, radius, graphProps, ...rest } = this.props;
30
23
  const { scale } = graphProps;
31
24
  const rx = Math.abs(scale.x(x + radius) - scale.x(x));
32
25
  const ry = Math.abs(scale.y(y + radius) - scale.y(y));
33
26
 
34
27
  return (
35
- <ellipse
36
- className={classNames(classes.bgCircle, disabled && classes.disabledSecondary, classes[correctness], className)}
28
+ <StyledEllipse
29
+ className={classNames(className, disabled && 'disabledSecondary', correctness)}
37
30
  cx={scale.x(x)}
38
31
  cy={scale.y(y)}
39
32
  rx={rx}
@@ -44,6 +37,7 @@ class RawCircle extends React.Component {
44
37
  }
45
38
  }
46
39
 
40
+ // helper to convert old style functions
47
41
  const applyStyle = (fn) => ({
48
42
  ...fn('stroke'),
49
43
  '&:hover': {
@@ -52,25 +46,23 @@ const applyStyle = (fn) => ({
52
46
  },
53
47
  });
54
48
 
55
- const styles = () => ({
56
- bgCircle: {
57
- fill: 'transparent',
58
- stroke: color.defaults.BLACK,
59
- strokeWidth: 3,
60
- transition: 'stroke 200ms ease-in, stroke-width 200ms ease-in',
61
- '&:hover': {
62
- strokeWidth: 6,
63
- stroke: color.defaults.PRIMARY_DARK,
64
- },
49
+ const StyledEllipse = styled('ellipse')(() => ({
50
+ fill: 'transparent',
51
+ stroke: color.defaults.BLACK,
52
+ strokeWidth: 3,
53
+ transition: 'stroke 200ms ease-in, stroke-width 200ms ease-in',
54
+ '&:hover': {
55
+ strokeWidth: 6,
56
+ stroke: color.defaults.PRIMARY_DARK,
65
57
  },
66
- disabled: applyStyle(disabled),
67
- disabledSecondary: applyStyle(disabledSecondary),
68
- correct: applyStyle(correct),
69
- incorrect: applyStyle(incorrect),
70
- missing: applyStyle(missing),
71
- });
58
+ '&.disabled': applyStyle(disabled),
59
+ '&.disabledSecondary': applyStyle(disabledSecondary),
60
+ '&.correct': applyStyle(correct),
61
+ '&.incorrect': applyStyle(incorrect),
62
+ '&.missing': applyStyle(missing),
63
+ }));
72
64
 
73
- export const BgCircle = withStyles(styles)(RawCircle);
65
+ export const BgCircle = RawCircle;
74
66
 
75
67
  export default gridDraggable({
76
68
  bounds: (props, { domain, range }) => {