@yorab/react-paint 0.4.0 → 0.4.1

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 CHANGED
@@ -1,3 +1,11 @@
1
+ # V.0.4.1
2
+
3
+ - prevent mounting selection canvas when viewer mode
4
+ - prevent drawing selection when not needed
5
+ - Click on toolbar tool group always enable a tool
6
+ - fix input and select options not being impacted by
7
+ - new reponsive for toolbar
8
+
1
9
  # V.0.4.0
2
10
 
3
11
  - Add possibility to customize UI from props
@@ -568,6 +568,7 @@ var App = function App(_ref5) {
568
568
  fontHoverBackgroundColor: fontHoverBackgroundColor,
569
569
  canvasBackgroundColor: canvasBackgroundColor
570
570
  }, isEditMode && /*#__PURE__*/_react["default"].createElement(_Toolbar["default"], {
571
+ width: canvasSize.width,
571
572
  disabled: disabled,
572
573
  activeTool: activeTool,
573
574
  clearCanvas: clearCanvas,
@@ -612,7 +613,8 @@ var App = function App(_ref5) {
612
613
  setSelectionMode: setSelectionMode,
613
614
  selectionColor: canvasSelectionColor,
614
615
  selectionWidth: canvasSelectionWidth,
615
- selectionPadding: canvasSelectionPadding
616
+ selectionPadding: canvasSelectionPadding,
617
+ isEditMode: isEditMode
616
618
  }), isEditMode && layersManipulation && /*#__PURE__*/_react["default"].createElement(_Layouts["default"], {
617
619
  withGrid: withGrid,
618
620
  setWithGrid: setWithGrid,
@@ -39,19 +39,24 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
39
39
 
40
40
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
41
41
 
42
- var drawCanvas = function drawCanvas(drawCtx, selectionCtx, selectionMode, canvasSize, activeTool, canvasOffset, shapes, selectionPadding, selectionWidth, selectionColor, selectedShape) {
42
+ var renderDrawCanvas = function renderDrawCanvas(drawCtx, selectionMode, canvasSize, canvasOffset, shapes, selectionPadding, selectedShape) {
43
43
  var width = canvasSize.width,
44
44
  height = canvasSize.height,
45
45
  scaleRatio = canvasSize.scaleRatio;
46
46
  drawCtx.clearRect(0, 0, width, height);
47
- selectionCtx.clearRect(0, 0, width, height);
48
47
 
49
48
  for (var i = shapes.length - 1; i >= 0; i--) {
50
49
  if (selectionMode.mode !== _Mode.SelectionModeLib.textedition || shapes[i] !== selectedShape) {
51
50
  (0, _draw.drawShape)(drawCtx, shapes[i], scaleRatio, canvasOffset, selectionPadding);
52
51
  }
53
52
  }
53
+ };
54
54
 
55
+ var renderSelectionCanvas = function renderSelectionCanvas(selectionCtx, selectionMode, canvasSize, activeTool, canvasOffset, selectionPadding, selectionWidth, selectionColor, selectedShape) {
56
+ var width = canvasSize.width,
57
+ height = canvasSize.height,
58
+ scaleRatio = canvasSize.scaleRatio;
59
+ selectionCtx.clearRect(0, 0, width, height);
55
60
  selectedShape && activeTool !== _Shapes.ShapeEnum.brush && (0, _draw.drawSelection)({
56
61
  ctx: selectionCtx,
57
62
  shape: selectedShape,
@@ -111,7 +116,8 @@ var Canvas = /*#__PURE__*/_react["default"].forwardRef(function (_ref2, ref) {
111
116
  setSelectionMode = _ref2.setSelectionMode,
112
117
  selectionWidth = _ref2.selectionWidth,
113
118
  selectionColor = _ref2.selectionColor,
114
- selectionPadding = _ref2.selectionPadding;
119
+ selectionPadding = _ref2.selectionPadding,
120
+ isEditMode = _ref2.isEditMode;
115
121
  var drawCanvasRef = (0, _react.useRef)(null);
116
122
  var selectionCanvasRef = (0, _react.useRef)(null); // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
117
123
 
@@ -163,14 +169,21 @@ var Canvas = /*#__PURE__*/_react["default"].forwardRef(function (_ref2, ref) {
163
169
  updateSingleShape(resizedShape);
164
170
  }, [updateSingleShape, selectedShape]);
165
171
  (0, _react.useEffect)(function () {
166
- var _drawCanvasRef$curren2, _selectionCanvasRef$c;
172
+ var _drawCanvasRef$curren2;
167
173
 
168
174
  var drawCtx = (_drawCanvasRef$curren2 = drawCanvasRef.current) === null || _drawCanvasRef$curren2 === void 0 ? void 0 : _drawCanvasRef$curren2.getContext('2d');
175
+ drawCtx && window.requestAnimationFrame(function () {
176
+ return renderDrawCanvas(drawCtx, selectionMode, canvasSize, canvasOffset, shapes, selectionPadding, selectedShape);
177
+ });
178
+ }, [shapes, selectionMode, selectedShape, canvasOffset, canvasSize, selectionPadding]);
179
+ (0, _react.useEffect)(function () {
180
+ var _selectionCanvasRef$c;
181
+
169
182
  var selectionCtx = (_selectionCanvasRef$c = selectionCanvasRef.current) === null || _selectionCanvasRef$c === void 0 ? void 0 : _selectionCanvasRef$c.getContext('2d');
170
- drawCtx && selectionCtx && window.requestAnimationFrame(function () {
171
- return drawCanvas(drawCtx, selectionCtx, selectionMode, canvasSize, activeTool, canvasOffset, shapes, selectionPadding, selectionWidth, selectionColor, selectedShape);
183
+ selectionCtx && window.requestAnimationFrame(function () {
184
+ return renderSelectionCanvas(selectionCtx, selectionMode, canvasSize, activeTool, canvasOffset, selectionPadding, selectionWidth, selectionColor, selectedShape);
172
185
  });
173
- }, [shapes, selectionMode, selectedShape, activeTool, canvasOffset, canvasSize, selectionPadding, selectionWidth, selectionColor]);
186
+ }, [selectionMode, selectedShape, activeTool, canvasOffset, canvasSize, selectionPadding, selectionWidth, selectionColor]);
174
187
  return /*#__PURE__*/_react["default"].createElement(StyledCanvasBox, null, /*#__PURE__*/_react["default"].createElement(StyledCanvasContainer, {
175
188
  "data-grid": withGrid,
176
189
  "data-grow": canGrow
@@ -179,13 +192,13 @@ var Canvas = /*#__PURE__*/_react["default"].forwardRef(function (_ref2, ref) {
179
192
  "data-grow": canGrow,
180
193
  width: canvasSize.width,
181
194
  height: canvasSize.height
182
- }), /*#__PURE__*/_react["default"].createElement(StyledSelectionCanvas, {
195
+ }), isEditMode && /*#__PURE__*/_react["default"].createElement(StyledSelectionCanvas, {
183
196
  ref: selectionCanvasRef,
184
197
  width: canvasSize.width,
185
198
  height: canvasSize.height,
186
199
  "data-grow": canGrow,
187
200
  cursor: activeTool !== _Shapes.ToolEnum.selection && activeTool !== _Shapes.ToolEnum.move || hoverMode.mode === _Mode.SelectionModeLib.resize ? 'crosshair' : activeTool === _Shapes.ToolEnum.move || hoverMode.mode === _Mode.SelectionModeLib.translate ? 'move' : hoverMode.mode === _Mode.SelectionModeLib.rotate ? 'grab' : 'default'
188
- }), selectionMode.mode === _Mode.SelectionModeLib.textedition && (selectedShape === null || selectedShape === void 0 ? void 0 : selectedShape.type) === _Shapes.ShapeEnum.text && /*#__PURE__*/_react["default"].createElement(_EditTextBox["default"], {
201
+ }), isEditMode && selectionMode.mode === _Mode.SelectionModeLib.textedition && (selectedShape === null || selectedShape === void 0 ? void 0 : selectedShape.type) === _Shapes.ShapeEnum.text && /*#__PURE__*/_react["default"].createElement(_EditTextBox["default"], {
189
202
  scaleRatio: canvasSize.scaleRatio,
190
203
  disabled: disabled,
191
204
  shape: selectedShape,
@@ -49,10 +49,6 @@ var StyledCustomColor = /*#__PURE__*/(0, _react2.styled)("div")({
49
49
  }]
50
50
  }
51
51
  });
52
- var StyledColorButton = /*#__PURE__*/(0, _react2.styled)(_Button["default"])({
53
- name: "StyledColorButton",
54
- "class": "sttf061"
55
- });
56
52
 
57
53
  var ColorField = function ColorField(_ref3) {
58
54
  var selectedSettings = _ref3.selectedSettings,
@@ -98,7 +94,7 @@ var ColorField = function ColorField(_ref3) {
98
94
  title: title,
99
95
  alignment: "left"
100
96
  }, /*#__PURE__*/_react["default"].createElement("div", null, _style.STYLE_COLORS.map(function (color, index) {
101
- return /*#__PURE__*/_react["default"].createElement(StyledColorButton, {
97
+ return /*#__PURE__*/_react["default"].createElement(_Button["default"], {
102
98
  title: color,
103
99
  key: index,
104
100
  selected: color === value,
@@ -109,14 +105,14 @@ var ColorField = function ColorField(_ref3) {
109
105
  }, /*#__PURE__*/_react["default"].createElement(StyledColor, {
110
106
  color: color === 'transparent' ? "url('data:image/svg+xml,".concat(_icons.encodedTransparentIcon, "')") : color
111
107
  }));
112
- }), /*#__PURE__*/_react["default"].createElement(StyledColorButton, {
108
+ }), /*#__PURE__*/_react["default"].createElement(_Button["default"], {
113
109
  type: "color",
114
110
  title: "Custom color",
115
111
  selected: !_fp["default"].includes(value, _style.STYLE_COLORS),
116
112
  value: value,
117
113
  onChange: handleChange
118
114
  }, /*#__PURE__*/_react["default"].createElement(StyledCustomColor, {
119
- color: _fp["default"].includes(value, _style.STYLE_COLORS) ? 'black' : value
115
+ color: _fp["default"].includes(value, _style.STYLE_COLORS) ? 'var(--font-color)' : value
120
116
  }, /*#__PURE__*/_react["default"].createElement("span", {
121
117
  dangerouslySetInnerHTML: {
122
118
  __html: _icons.paletteIcon
@@ -52,6 +52,16 @@ var MenuGroup = function MenuGroup(_ref) {
52
52
  var _ref3;
53
53
 
54
54
  var activeTool = _ref.activeTool,
55
+ withActionsInMenu = _ref.withActionsInMenu,
56
+ _ref$hasActionToUndo = _ref.hasActionToUndo,
57
+ hasActionToUndo = _ref$hasActionToUndo === void 0 ? false : _ref$hasActionToUndo,
58
+ _ref$hasActionToRedo = _ref.hasActionToRedo,
59
+ hasActionToRedo = _ref$hasActionToRedo === void 0 ? false : _ref$hasActionToRedo,
60
+ _ref$hasActionToClear = _ref.hasActionToClear,
61
+ hasActionToClear = _ref$hasActionToClear === void 0 ? false : _ref$hasActionToClear,
62
+ undoAction = _ref.undoAction,
63
+ redoAction = _ref.redoAction,
64
+ clearCanvas = _ref.clearCanvas,
55
65
  alignment = _ref.alignment,
56
66
  group = _ref.group,
57
67
  _ref$vertical = _ref.vertical,
@@ -126,8 +136,7 @@ var MenuGroup = function MenuGroup(_ref) {
126
136
 
127
137
  var withPicture = _fp["default"].includes(_Shapes.ShapeEnum.picture, availableTools);
128
138
 
129
- var withDivider = withPicture && (withLoadAndSave || withExport);
130
- var withMenu = withPicture || withLoadAndSave || withExport;
139
+ var withMenu = withActionsInMenu || withPicture || withLoadAndSave || withExport;
131
140
  return withMenu ? /*#__PURE__*/_react["default"].createElement(StyledRelative, null, /*#__PURE__*/_react["default"].createElement(_Button["default"], {
132
141
  selected: isActive,
133
142
  title: group.title,
@@ -137,7 +146,33 @@ var MenuGroup = function MenuGroup(_ref) {
137
146
  }), isOpen && /*#__PURE__*/_react["default"].createElement(StyledPanel, {
138
147
  vertical: vertical,
139
148
  alignment: alignment
140
- }, withPicture && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_LoadFileTool["default"], {
149
+ }, withActionsInMenu && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_Tool["default"], {
150
+ withText: true,
151
+ type: _Shapes.ToolEnum.undo,
152
+ disabled: disabled || !hasActionToUndo,
153
+ lib: "Undo",
154
+ img: _icons.undoIcon,
155
+ isActive: activeTool === _Shapes.ToolEnum.undo,
156
+ setActive: undoAction
157
+ }), /*#__PURE__*/_react["default"].createElement(_Tool["default"], {
158
+ withText: true,
159
+ type: _Shapes.ToolEnum.redo,
160
+ disabled: disabled || !hasActionToRedo,
161
+ lib: "Redo",
162
+ img: _icons.redoIcon,
163
+ isActive: activeTool === _Shapes.ToolEnum.redo,
164
+ setActive: redoAction
165
+ }), /*#__PURE__*/_react["default"].createElement(_Tool["default"], {
166
+ withText: true,
167
+ type: _Shapes.ToolEnum.clear,
168
+ disabled: disabled || !hasActionToClear,
169
+ lib: "Clear",
170
+ img: _icons.clearIcon,
171
+ isActive: activeTool === _Shapes.ToolEnum.clear,
172
+ setActive: function setActive() {
173
+ return clearCanvas();
174
+ }
175
+ }), (withPicture || withLoadAndSave) && /*#__PURE__*/_react["default"].createElement("hr", null)), withPicture && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_LoadFileTool["default"], {
141
176
  withText: true,
142
177
  disabled: disabled,
143
178
  loadFile: addPicture,
@@ -151,7 +186,7 @@ var MenuGroup = function MenuGroup(_ref) {
151
186
  title: "Add picture from URL",
152
187
  icon: _icons.publicIcon,
153
188
  children: "Add picture from URL"
154
- })), withDivider && /*#__PURE__*/_react["default"].createElement("hr", null), withLoadAndSave && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_LoadFileTool["default"], {
189
+ }), withLoadAndSave && /*#__PURE__*/_react["default"].createElement("hr", null)), withLoadAndSave && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_LoadFileTool["default"], {
155
190
  withText: true,
156
191
  disabled: disabled,
157
192
  loadFile: loadFile,
@@ -39,6 +39,8 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
39
39
 
40
40
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
41
41
 
42
+ var ACTIONS_MENU_BREAKPOINT = 400;
43
+ var TOOLS_MENU_BREAKPOINT = 280;
42
44
  var StyledShrinkableTools = /*#__PURE__*/(0, _react2.styled)("div")({
43
45
  name: "StyledShrinkableTools",
44
46
  "class": "so6hnjf"
@@ -47,33 +49,27 @@ var StyledToolbox = /*#__PURE__*/(0, _react2.styled)("div")({
47
49
  name: "StyledToolbox",
48
50
  "class": "s1c1dllr"
49
51
  });
50
- var StyledShrinkableToolsInner = /*#__PURE__*/(0, _react2.styled)("div")({
51
- name: "StyledShrinkableToolsInner",
52
- "class": "s1g032mh"
53
- });
54
52
  var StyledToolsModal = /*#__PURE__*/(0, _react2.styled)(_Modal["default"])({
55
53
  name: "StyledToolsModal",
56
- "class": "s4owjrv"
54
+ "class": "s1g032mh"
57
55
  });
58
56
  var TOOLBAR_STRUCTURE = [{
59
57
  title: 'brush',
60
- img: _icons.gestureIcon,
61
58
  tools: [_Shapes.ShapeEnum.brush],
62
59
  vertical: false
63
60
  }, {
64
61
  title: 'lines',
65
- img: _icons.arrowIcon,
66
62
  tools: [_Shapes.ShapeEnum.line, _Shapes.ShapeEnum.curve, _Shapes.ShapeEnum.polygon],
67
63
  vertical: false
68
64
  }, {
69
65
  title: 'shapes',
70
- img: _icons.shapesIcon,
71
66
  tools: [_Shapes.ShapeEnum.rect, _Shapes.ShapeEnum.square, _Shapes.ShapeEnum.circle, _Shapes.ShapeEnum.ellipse],
72
67
  vertical: false
73
68
  }, _Shapes.ShapeEnum.text];
74
69
 
75
70
  var Toolbar = function Toolbar(_ref) {
76
- var _ref$disabled = _ref.disabled,
71
+ var width = _ref.width,
72
+ _ref$disabled = _ref.disabled,
77
73
  disabled = _ref$disabled === void 0 ? false : _ref$disabled,
78
74
  activeTool = _ref.activeTool,
79
75
  _ref$hasActionToUndo = _ref.hasActionToUndo,
@@ -104,6 +100,16 @@ var Toolbar = function Toolbar(_ref) {
104
100
  isPictureUrlModalOpen = _useState4[0],
105
101
  setIsPictureUrlModalOpen = _useState4[1];
106
102
 
103
+ var _useState5 = (0, _react.useState)(width < ACTIONS_MENU_BREAKPOINT),
104
+ _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
105
+ actionsInMenu = _useState6[0],
106
+ setActionsInMenu = _useState6[1];
107
+
108
+ var _useState7 = (0, _react.useState)(width < TOOLS_MENU_BREAKPOINT),
109
+ _useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
110
+ toolsInMenu = _useState8[0],
111
+ setToolsInMenu = _useState8[1];
112
+
107
113
  var toggleTools = function toggleTools() {
108
114
  setIsMenuOpen(function (prev) {
109
115
  return !prev;
@@ -125,15 +131,44 @@ var Toolbar = function Toolbar(_ref) {
125
131
  setIsMenuOpen(false);
126
132
  };
127
133
 
134
+ (0, _react.useEffect)(function () {
135
+ setActionsInMenu(width < ACTIONS_MENU_BREAKPOINT);
136
+ setToolsInMenu(width < TOOLS_MENU_BREAKPOINT);
137
+ }, [width]);
128
138
  var currentStructure = (0, _toolbar.getCurrentStructure)(availableTools, TOOLBAR_STRUCTURE);
129
- return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(StyledToolbox, null, /*#__PURE__*/_react["default"].createElement(_Tool["default"], {
139
+ var isAnyToolSelected = availableTools.includes(activeTool);
140
+ return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(StyledToolbox, null, /*#__PURE__*/_react["default"].createElement(_MenuGroup["default"], {
141
+ withActionsInMenu: actionsInMenu,
142
+ disabled: disabled,
143
+ vertical: true,
144
+ alignment: "left",
145
+ group: {
146
+ title: 'Menu',
147
+ img: _icons.menuIcon
148
+ },
149
+ activeTool: activeTool,
150
+ addPicture: addPicture,
151
+ loadFile: loadFile,
152
+ saveFile: saveFile,
153
+ togglePictureUrlModal: openPictureUrlModal,
154
+ exportCanvasInFile: exportCanvasInFile,
155
+ availableTools: availableTools,
156
+ withLoadAndSave: withLoadAndSave,
157
+ withExport: withExport,
158
+ hasActionToUndo: hasActionToUndo,
159
+ hasActionToRedo: hasActionToRedo,
160
+ hasActionToClear: hasActionToClear,
161
+ undoAction: undoAction,
162
+ redoAction: redoAction,
163
+ clearCanvas: clearCanvas
164
+ }), /*#__PURE__*/_react["default"].createElement(_Tool["default"], {
130
165
  type: _Shapes.ToolEnum.selection,
131
166
  disabled: disabled,
132
167
  lib: "selection",
133
168
  img: _icons.selectIcon,
134
169
  isActive: activeTool === _Shapes.ToolEnum.selection,
135
170
  setActive: setActiveTool
136
- }), /*#__PURE__*/_react["default"].createElement(_Tool["default"], {
171
+ }), !actionsInMenu && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_Tool["default"], {
137
172
  type: _Shapes.ToolEnum.undo,
138
173
  disabled: disabled || !hasActionToUndo,
139
174
  lib: "Undo",
@@ -156,7 +191,13 @@ var Toolbar = function Toolbar(_ref) {
156
191
  setActive: function setActive() {
157
192
  return clearCanvas();
158
193
  }
159
- }), /*#__PURE__*/_react["default"].createElement(StyledShrinkableTools, null, /*#__PURE__*/_react["default"].createElement(StyledShrinkableToolsInner, null, currentStructure.map(function (group, i) {
194
+ })), /*#__PURE__*/_react["default"].createElement(StyledShrinkableTools, null, toolsInMenu ? /*#__PURE__*/_react["default"].createElement(_Button["default"], {
195
+ disabled: disabled,
196
+ onClick: toggleTools,
197
+ title: "Toggle tools",
198
+ icon: _icons.shapesIcon,
199
+ selected: isAnyToolSelected
200
+ }) : currentStructure.map(function (group, i) {
160
201
  return /*#__PURE__*/_react["default"].createElement(_ToolbarGroup["default"], {
161
202
  disabled: disabled,
162
203
  key: i,
@@ -164,29 +205,7 @@ var Toolbar = function Toolbar(_ref) {
164
205
  group: group,
165
206
  setActiveTool: setActiveTool
166
207
  });
167
- })), /*#__PURE__*/_react["default"].createElement(_Button["default"], {
168
- disabled: disabled,
169
- onClick: toggleTools,
170
- title: "Toggle tools",
171
- icon: _icons.dotsIcon
172
- })), /*#__PURE__*/_react["default"].createElement(_MenuGroup["default"], {
173
- disabled: disabled,
174
- vertical: true,
175
- alignment: "right",
176
- group: {
177
- title: 'Menu',
178
- img: _icons.menuIcon
179
- },
180
- activeTool: activeTool,
181
- addPicture: addPicture,
182
- loadFile: loadFile,
183
- saveFile: saveFile,
184
- togglePictureUrlModal: openPictureUrlModal,
185
- exportCanvasInFile: exportCanvasInFile,
186
- availableTools: availableTools,
187
- withLoadAndSave: withLoadAndSave,
188
- withExport: withExport
189
- })), isMenuOpen && /*#__PURE__*/_react["default"].createElement(StyledToolsModal, {
208
+ }))), isMenuOpen && /*#__PURE__*/_react["default"].createElement(StyledToolsModal, {
190
209
  onClose: toggleTools
191
210
  }, availableTools.map(function (toolType) {
192
211
  return toolType === _Shapes.ShapeEnum.picture ? null : /*#__PURE__*/_react["default"].createElement(_Tool["default"], {
@@ -106,11 +106,11 @@ var ToolbarGroup = function ToolbarGroup(_ref) {
106
106
 
107
107
  var isActive = _fp["default"].includes(activeTool, group === null || group === void 0 ? void 0 : group.tools);
108
108
 
109
- var groupIcon = (_ref2 = localActiveTool ? (0, _style.getShapePicture)(localActiveTool) : group.img) !== null && _ref2 !== void 0 ? _ref2 : group.title;
109
+ var groupIcon = (_ref2 = localActiveTool ? (0, _style.getShapePicture)(localActiveTool) : group.tools && group.tools[0] && (0, _style.getShapePicture)(group.tools[0])) !== null && _ref2 !== void 0 ? _ref2 : group.title;
110
110
 
111
111
  var openPanel = function openPanel() {
112
- if (localActiveTool) setActiveToolFromProps(localActiveTool);
113
- setIsOpen(true);
112
+ if (localActiveTool) setActiveToolFromProps(localActiveTool);else group.tools && group.tools[0] && setActiveTool(group.tools[0]);
113
+ setIsOpen(true); // group.tools && group.tools[0] && setActiveTool(group.tools[0])
114
114
  };
115
115
 
116
116
  return /*#__PURE__*/_react["default"].createElement(StyledRelative, null, /*#__PURE__*/_react["default"].createElement(_Button["default"], {
package/dist/styles.css CHANGED
@@ -33,9 +33,9 @@
33
33
 
34
34
  .s1unz6yq{position:absolute;display:inline-block;outline:none;left:0px;top:0px;-webkit-transform-origin:left top;-ms-transform-origin:left top;transform-origin:left top;box-sizing:border-box;-webkit-transform:var(--s1unz6yq-0);-ms-transform:var(--s1unz6yq-0);transform:var(--s1unz6yq-0);color:var(--s1unz6yq-1);padding:var(--s1unz6yq-2);font-size:var(--s1unz6yq-3);line-height:var(--s1unz6yq-3);font-family:var(--s1unz6yq-5);}
35
35
  .s9czb9p{-webkit-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;}
36
- .s1538eht{position:relative;background-color:var(--canvas-bg);background-repeat:repeat;background-size:16px;overflow:hidden;}.s1538eht[data-grid='true']{background-image:url("data:image/svg+xml,%3Csvg%20id%3D%22svg%22%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%22400%22%20height%3D%22400%22%20viewBox%3D%220%2C%200%2C%20400%2C400%22%3E%3Cg%20id%3D%22svgg%22%3E%3Cpath%20id%3D%22path0%22%20d%3D%22M204.800%2094.600%20C%20204.800%20188.933%2C204.802%20189.200%2C205.600%20189.200%20C%20206.248%20189.200%2C206.400%20189.467%2C206.400%20190.600%20C%20206.400%20191.733%2C206.552%20192.000%2C207.200%20192.000%20C%20207.733%20192.000%2C208.000%20192.267%2C208.000%20192.800%20C%20208.000%20193.244%2C208.267%20193.600%2C208.600%20193.600%20C%20208.933%20193.600%2C209.200%20193.956%2C209.200%20194.400%20C%20209.200%20195.067%2C209.467%20195.200%2C210.800%20195.200%20C%20212.133%20195.200%2C212.400%20195.333%2C212.400%20196.000%20C%20212.400%20196.798%2C212.667%20196.800%2C306.200%20196.800%20L%20400.000%20196.800%20400.000%2098.400%20L%20400.000%200.000%20302.400%200.000%20L%20204.800%200.000%20204.800%2094.600%20M0.000%20302.400%20L%200.000%20400.000%2098.400%20400.000%20L%20196.800%20400.000%20196.800%20306.200%20C%20196.800%20212.667%2C196.798%20212.400%2C196.000%20212.400%20C%20195.333%20212.400%2C195.200%20212.133%2C195.200%20210.800%20C%20195.200%20209.467%2C195.067%20209.200%2C194.400%20209.200%20C%20193.956%20209.200%2C193.600%20208.933%2C193.600%20208.600%20C%20193.600%20208.267%2C193.244%20208.000%2C192.800%20208.000%20C%20192.267%20208.000%2C192.000%20207.733%2C192.000%20207.200%20C%20192.000%20206.552%2C191.733%20206.400%2C190.600%20206.400%20C%20189.467%20206.400%2C189.200%20206.248%2C189.200%20205.600%20C%20189.200%20204.802%2C188.933%20204.800%2C94.600%20204.800%20L%200.000%20204.800%200.000%20302.400%20%22%20stroke%3D%22none%22%20fill%3D%22%23fcfcfc%22%20fill-rule%3D%22evenodd%22%3E%3C%2Fpath%3E%3Cpath%20id%3D%22path1%22%20d%3D%22M0.000%20100.000%20L%200.000%20200.000%2096.800%20200.000%20C%20193.333%20200.000%2C193.600%20199.998%2C193.600%20199.200%20C%20193.600%20198.533%2C193.867%20198.400%2C195.200%20198.400%20C%20196.533%20198.400%2C196.800%20198.267%2C196.800%20197.600%20C%20196.800%20197.067%2C197.067%20196.800%2C197.600%20196.800%20C%20198.267%20196.800%2C198.400%20196.533%2C198.400%20195.200%20C%20198.400%20193.867%2C198.533%20193.600%2C199.200%20193.600%20C%20199.998%20193.600%2C200.000%20193.333%2C200.000%2096.800%20L%20200.000%200.000%20100.000%200.000%20L%200.000%200.000%200.000%20100.000%20M208.000%20202.400%20C%20208.000%20203.067%2C207.733%20203.200%2C206.400%20203.200%20C%20205.067%20203.200%2C204.800%20203.333%2C204.800%20204.000%20C%20204.800%20204.533%2C204.533%20204.800%2C204.000%20204.800%20C%20203.333%20204.800%2C203.200%20205.067%2C203.200%20206.400%20C%20203.200%20207.733%2C203.067%20208.000%2C202.400%20208.000%20C%20201.602%20208.000%2C201.600%20208.267%2C201.600%20304.000%20L%20201.600%20400.000%20300.800%20400.000%20L%20400.000%20400.000%20400.000%20300.800%20L%20400.000%20201.600%20304.000%20201.600%20C%20208.267%20201.600%2C208.000%20201.602%2C208.000%20202.400%20%22%20stroke%3D%22none%22%20fill%3D%22%23e4e4e4%22%20fill-rule%3D%22evenodd%22%3E%3C%2Fpath%3E%3Cpath%20id%3D%22path2%22%20d%3D%22%22%20stroke%3D%22none%22%20fill%3D%22%23f4100f0%22%20fill-rule%3D%22evenodd%22%3E%3C%2Fpath%3E%3Cpath%20id%3D%22path3%22%20d%3D%22%22%20stroke%3D%22none%22%20fill%3D%22%23f4100f0%22%20fill-rule%3D%22evenodd%22%3E%3C%2Fpath%3E%3Cpath%20id%3D%22path4%22%20d%3D%22%22%20stroke%3D%22none%22%20fill%3D%22%23f4100f0%22%20fill-rule%3D%22evenodd%22%3E%3C%2Fpath%3E%3C%2Fg%3E%3C%2Fsvg%3E");}.s1538eht[data-grow='true']{width:100%;height:100%;}
37
- .s101qxdc{position:absolute;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;max-width:100%;touch-action:none;display:block;}.s101qxdc[data-grow='true']{width:100%;}
38
- .sa4oq48{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative;max-width:100%;touch-action:none;display:block;cursor:var(--sa4oq48-0);}.sa4oq48[data-grow='true']{width:100%;}
36
+ .s1538eht{position:relative;background-color:var(--canvas-bg);background-repeat:repeat;background-size:16px;overflow:hidden;display:grid;}.s1538eht[data-grid='true']{background-image:url("data:image/svg+xml,%3Csvg%20id%3D%22svg%22%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%22400%22%20height%3D%22400%22%20viewBox%3D%220%2C%200%2C%20400%2C400%22%3E%3Cg%20id%3D%22svgg%22%3E%3Cpath%20id%3D%22path0%22%20d%3D%22M204.800%2094.600%20C%20204.800%20188.933%2C204.802%20189.200%2C205.600%20189.200%20C%20206.248%20189.200%2C206.400%20189.467%2C206.400%20190.600%20C%20206.400%20191.733%2C206.552%20192.000%2C207.200%20192.000%20C%20207.733%20192.000%2C208.000%20192.267%2C208.000%20192.800%20C%20208.000%20193.244%2C208.267%20193.600%2C208.600%20193.600%20C%20208.933%20193.600%2C209.200%20193.956%2C209.200%20194.400%20C%20209.200%20195.067%2C209.467%20195.200%2C210.800%20195.200%20C%20212.133%20195.200%2C212.400%20195.333%2C212.400%20196.000%20C%20212.400%20196.798%2C212.667%20196.800%2C306.200%20196.800%20L%20400.000%20196.800%20400.000%2098.400%20L%20400.000%200.000%20302.400%200.000%20L%20204.800%200.000%20204.800%2094.600%20M0.000%20302.400%20L%200.000%20400.000%2098.400%20400.000%20L%20196.800%20400.000%20196.800%20306.200%20C%20196.800%20212.667%2C196.798%20212.400%2C196.000%20212.400%20C%20195.333%20212.400%2C195.200%20212.133%2C195.200%20210.800%20C%20195.200%20209.467%2C195.067%20209.200%2C194.400%20209.200%20C%20193.956%20209.200%2C193.600%20208.933%2C193.600%20208.600%20C%20193.600%20208.267%2C193.244%20208.000%2C192.800%20208.000%20C%20192.267%20208.000%2C192.000%20207.733%2C192.000%20207.200%20C%20192.000%20206.552%2C191.733%20206.400%2C190.600%20206.400%20C%20189.467%20206.400%2C189.200%20206.248%2C189.200%20205.600%20C%20189.200%20204.802%2C188.933%20204.800%2C94.600%20204.800%20L%200.000%20204.800%200.000%20302.400%20%22%20stroke%3D%22none%22%20fill%3D%22%23fcfcfc%22%20fill-rule%3D%22evenodd%22%3E%3C%2Fpath%3E%3Cpath%20id%3D%22path1%22%20d%3D%22M0.000%20100.000%20L%200.000%20200.000%2096.800%20200.000%20C%20193.333%20200.000%2C193.600%20199.998%2C193.600%20199.200%20C%20193.600%20198.533%2C193.867%20198.400%2C195.200%20198.400%20C%20196.533%20198.400%2C196.800%20198.267%2C196.800%20197.600%20C%20196.800%20197.067%2C197.067%20196.800%2C197.600%20196.800%20C%20198.267%20196.800%2C198.400%20196.533%2C198.400%20195.200%20C%20198.400%20193.867%2C198.533%20193.600%2C199.200%20193.600%20C%20199.998%20193.600%2C200.000%20193.333%2C200.000%2096.800%20L%20200.000%200.000%20100.000%200.000%20L%200.000%200.000%200.000%20100.000%20M208.000%20202.400%20C%20208.000%20203.067%2C207.733%20203.200%2C206.400%20203.200%20C%20205.067%20203.200%2C204.800%20203.333%2C204.800%20204.000%20C%20204.800%20204.533%2C204.533%20204.800%2C204.000%20204.800%20C%20203.333%20204.800%2C203.200%20205.067%2C203.200%20206.400%20C%20203.200%20207.733%2C203.067%20208.000%2C202.400%20208.000%20C%20201.602%20208.000%2C201.600%20208.267%2C201.600%20304.000%20L%20201.600%20400.000%20300.800%20400.000%20L%20400.000%20400.000%20400.000%20300.800%20L%20400.000%20201.600%20304.000%20201.600%20C%20208.267%20201.600%2C208.000%20201.602%2C208.000%20202.400%20%22%20stroke%3D%22none%22%20fill%3D%22%23e4e4e4%22%20fill-rule%3D%22evenodd%22%3E%3C%2Fpath%3E%3Cpath%20id%3D%22path2%22%20d%3D%22%22%20stroke%3D%22none%22%20fill%3D%22%23f4100f0%22%20fill-rule%3D%22evenodd%22%3E%3C%2Fpath%3E%3Cpath%20id%3D%22path3%22%20d%3D%22%22%20stroke%3D%22none%22%20fill%3D%22%23f4100f0%22%20fill-rule%3D%22evenodd%22%3E%3C%2Fpath%3E%3Cpath%20id%3D%22path4%22%20d%3D%22%22%20stroke%3D%22none%22%20fill%3D%22%23f4100f0%22%20fill-rule%3D%22evenodd%22%3E%3C%2Fpath%3E%3C%2Fg%3E%3C%2Fsvg%3E");}.s1538eht[data-grow='true']{width:100%;height:100%;}
37
+ .s101qxdc{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;max-width:100%;touch-action:none;display:block;grid-area:1 / 1;}.s101qxdc[data-grow='true']{width:100%;}
38
+ .sa4oq48{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative;max-width:100%;touch-action:none;display:block;grid-area:1 / 1;cursor:var(--sa4oq48-0);}.sa4oq48[data-grow='true']{width:100%;}
39
39
  .sq3bzv4{min-width:32px;height:32px;font-size:14px;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle;box-sizing:border-box;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;background:none;border:none;cursor:pointer;border-radius:var(--font-radius);color:var(--font-color);margin:2px 4px;padding:0;}.sq3bzv4[data-selected='1']{color:var(--font-selected-color);background:var(--font-selected-bg);}.sq3bzv4[data-hidden='1']{visibility:hidden;}.sq3bzv4[data-disabled='1']{cursor:default;color:var(--font-disabled-color);background:var(--font-disabled-bg);}.sq3bzv4[data-selected='0'][data-disabled='0']{background:var(--font-bg);color:var(--font-color);}.sq3bzv4[data-selected='0'][data-disabled='0']:hover{color:var(--font-hover-color);background:var(--font-hover-bg);}.sq3bzv4[data-disabled='0']{cursor:pointer;}.sq3bzv4 svg{fill:currentColor;width:20px;height:20px;}.sq3bzv4 input{position:absolute;visibility:hidden;}
40
40
  .sst453j{width:100%;box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;padding:2px 6px;}
41
41
  .s1q5lsc2{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}
@@ -58,24 +58,22 @@
58
58
  .s1c8tp02{z-index:3;position:absolute;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;left:0;right:0;bottom:0;top:0;}
59
59
  .svkxpz4{display:grid;background:var(--toolbar-bg);box-shadow:0 3px 8px rgb(0 0 0 / 24%);padding:12px;border-radius:8px;white-space:nowrap;position:relative;}
60
60
  .s1s9jyyg{position:absolute;left:0;top:0;right:0;bottom:0;background:#00000073;}
61
- .s95bkm9 form{grid-template-columns:3fr 1fr 1fr;}.s95bkm9 form input{color:var(--font-color);border:1px solid var(--font-color);outline:none;}
62
- .so6hnjf{-webkit-flex:1;-ms-flex:1;flex:1;position:relative;height:100%;text-align:center;max-height:72px;}
61
+ .s95bkm9 form{grid-template-columns:3fr 1fr 1fr;}.s95bkm9 form input{color:var(--font-color);border:1px solid var(--font-color);background:var(--toolbar-bg);outline:none;}
62
+ .so6hnjf{-webkit-flex:1;-ms-flex:1;flex:1;position:relative;height:100%;text-align:center;max-height:36px;overflow:hidden;}
63
63
  .s1c1dllr{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;max-height:36px;background:var(--toolbar-bg);border-bottom:1px solid var(--divider-color);box-sizing:border-box;}
64
- .s1g032mh{display:inline-block;text-align:left;margin-right:36px;text-align:right;}.s1g032mh + *{position:absolute;right:0;bottom:36px;}
65
- .s4owjrv{grid-template-columns:1fr 1fr 1fr;}
64
+ .s1g032mh{grid-template-columns:1fr 1fr 1fr;}
66
65
  .snh2jyk{width:24px;height:24px;box-sizing:border-box;border-radius:50%;border:1px solid gray;background:var(--snh2jyk-0);background-repeat:repeat;background-size:16px;}
67
- .sfm1cqx{width:36px;height:36px;box-sizing:border-box;border-radius:50%;color:var(--sfm1cqx-0);display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:baseline;-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;font-size:48px;line-height:36px;position:relative;bottom:6px;font-weight:bold;}
68
- .sttf061{border-radius:50%;}
66
+ .sfm1cqx{width:24px;height:24px;box-sizing:border-box;border-radius:50%;color:var(--sfm1cqx-0);display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:baseline;-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;line-height:36px;font-weight:bold;}
69
67
  .layoutPanelOpened .sj7hhjx.sj7hhjx{color:var(--font-selected-color);background:var(--font-selected-bg);}.sj7hhjx[data-hidden='1']{display:none;}
70
68
  .s9mugpt{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}
71
69
  .s1ktxhkr{padding:16px;}
72
70
  .smpmxx5{font-family:var(--smpmxx5-0);}
73
71
 
74
72
  .s1qssg4n{display:inline-block;width:6px;height:2px;background:transparent;vertical-align:middle;}
75
- .se26iq6{display:inline-block;}.se26iq6[data-type='0'] .s1qssg4n{background:black;}.se26iq6[data-type='1']{position:relative;left:3px;}.se26iq6[data-type='1'] .s1qssg4n:nth-child(3n-1){background:black;width:12px;}.se26iq6[data-type='1'] .s1qssg4n:nth-child(n+11){display:none;}.se26iq6[data-type='2'] .s1qssg4n:nth-child(2n+1){background:black;}
76
- .s1xxj4yl{position:absolute;left:0;top:50%;-webkit-transform:translate3d(-25%,-50%,0px);-ms-transform:translate3d(-25%,-50%,0px);transform:translate3d(-25%,-50%,0px);display:inline-block;width:0;height:0;border-top:5px solid transparent;border-bottom:5px solid transparent;border-right:15px solid black;}
77
- .sbd6jc8{position:absolute;right:0;top:50%;-webkit-transform:translate3d(25%,-50%,0px);-ms-transform:translate3d(25%,-50%,0px);transform:translate3d(25%,-50%,0px);display:inline-block;width:0;height:0;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:15px solid black;}
78
- .scawaat{position:relative;display:inline-block;width:60px;height:2px;background:black;vertical-align:middle;}.scawaat[data-type='0'] .s1xxj4yl,.scawaat[data-type='1'] .s1xxj4yl{display:none;}.scawaat[data-type='0'] .sbd6jc8,.scawaat[data-type='2'] .sbd6jc8{display:none;}
73
+ .se26iq6{display:inline-block;}.se26iq6[data-type='0'] .s1qssg4n{background:currentColor;}.se26iq6[data-type='1']{position:relative;left:3px;}.se26iq6[data-type='1'] .s1qssg4n:nth-child(3n-1){background:currentColor;width:12px;}.se26iq6[data-type='1'] .s1qssg4n:nth-child(n+11){display:none;}.se26iq6[data-type='2'] .s1qssg4n:nth-child(2n+1){background:currentColor;}
74
+ .s1xxj4yl{position:absolute;left:0;top:50%;-webkit-transform:translate3d(-25%,-50%,0px);-ms-transform:translate3d(-25%,-50%,0px);transform:translate3d(-25%,-50%,0px);display:inline-block;width:0;height:0;border-top:5px solid transparent;border-bottom:5px solid transparent;border-right:15px solid currentColor;}
75
+ .sbd6jc8{position:absolute;right:0;top:50%;-webkit-transform:translate3d(25%,-50%,0px);-ms-transform:translate3d(25%,-50%,0px);transform:translate3d(25%,-50%,0px);display:inline-block;width:0;height:0;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:15px solid currentColor;}
76
+ .scawaat{position:relative;display:inline-block;width:60px;height:2px;background:currentColor;vertical-align:middle;}.scawaat[data-type='0'] .s1xxj4yl,.scawaat[data-type='1'] .s1xxj4yl{display:none;}.scawaat[data-type='0'] .sbd6jc8,.scawaat[data-type='2'] .sbd6jc8{display:none;}
79
77
  .s16z54di{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;background:var(--toolbar-bg);position:relative;height:36px;border-top:1px solid var(--divider-color);box-sizing:border-box;}
80
78
  .sa7lzh9{-webkit-flex:1;-ms-flex:1;flex:1;}
81
79
  .s1xssqat{display:inline-block;padding:12px 48px;margin:4px;max-width:calc(100% - 24px);overflow-wrap:break-word;box-sizing:border-box;-webkit-transition:all 500ms;transition:all 500ms;opacity:0;-webkit-transform:translate3d(0px,40px,0px);-ms-transform:translate3d(0px,40px,0px);transform:translate3d(0px,40px,0px);}.s1xssqat[data-type='0']{background:#646464;color:white;}.s1xssqat[data-type='1']{background:#c3a200;color:black;}.s1xssqat[data-type='2']{background:#911717;color:white;}.s1xssqat[data-type='3']{background:#088900;color:white;}.s1xssqat[data-is-shown='1']{opacity:1;-webkit-transform:translate3d(0px,0px,0px);-ms-transform:translate3d(0px,0px,0px);transform:translate3d(0px,0px,0px);}.s1xssqat[data-is-shown='0']{opacity:0;-webkit-transform:translate3d(0px,40px,0px);-ms-transform:translate3d(0px,40px,0px);transform:translate3d(0px,40px,0px);}
@@ -83,5 +81,5 @@
83
81
  .s9j48u3{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;position:absolute;z-index:2;top:0;bottom:0;left:0;right:0;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background:#00000050;-webkit-transition:opacity 300ms linear;transition:opacity 300ms linear;opacity:0;}.s9j48u3[data-loading='visible']{opacity:1;}
84
82
  .s4auclc{width:40px;height:40px;position:relative;-webkit-transform:rotate(10deg);-ms-transform:rotate(10deg);transform:rotate(10deg);-webkit-animation:react-paint-rotation-s4auclc 1s infinite;animation:react-paint-rotation-s4auclc 1s infinite;}@-webkit-keyframes react-paint-rotation-s4auclc{from{-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg);}to{-webkit-transform:rotate(360deg);-ms-transform:rotate(360deg);transform:rotate(360deg);}}@keyframes react-paint-rotation-s4auclc{from{-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg);}to{-webkit-transform:rotate(360deg);-ms-transform:rotate(360deg);transform:rotate(360deg);}}
85
83
  .s1l3fbq{border-radius:50%;position:absolute;width:15px;height:15px;}.s1l3fbq:nth-child(1){left:0;background-color:#5c6bc0;}.s1l3fbq:nth-child(2){right:0;background-color:#8bc34a;}.s1l3fbq:nth-child(3){bottom:0;background-color:#ffb74d;}.s1l3fbq:nth-child(4){bottom:0;right:0;background-color:#f44336;}
86
- .s1v9piyg{--toolbar-bg:var(--s1v9piyg-0);--divider-color:var(--s1v9piyg-1);--font-radius:var(--s1v9piyg-2);--font-disabled-color:var(--s1v9piyg-3);--font-disabled-bg:var(--s1v9piyg-4);--font-color:var(--s1v9piyg-5);--font-bg:var(--s1v9piyg-6);--font-selected-color:var(--s1v9piyg-7);--font-selected-bg:var(--s1v9piyg-8);--font-hover-color:var(--s1v9piyg-9);--font-hover-bg:var(--s1v9piyg-10);--canvas-bg:var(--s1v9piyg-11);display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;color:var(--font-color);position:relative;overflow:hidden;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.s1v9piyg hr{width:100%;border:none;border-top:1px solid var(--divider-color);}.s1v9piyg[data-grow='false']{max-width:var(--s1v9piyg-12);}.s1v9piyg[data-shrink='false']{min-width:var(--s1v9piyg-13);}
84
+ .s1v9piyg{--toolbar-bg:var(--s1v9piyg-0);--divider-color:var(--s1v9piyg-1);--font-radius:var(--s1v9piyg-2);--font-disabled-color:var(--s1v9piyg-3);--font-disabled-bg:var(--s1v9piyg-4);--font-color:var(--s1v9piyg-5);--font-bg:var(--s1v9piyg-6);--font-selected-color:var(--s1v9piyg-7);--font-selected-bg:var(--s1v9piyg-8);--font-hover-color:var(--s1v9piyg-9);--font-hover-bg:var(--s1v9piyg-10);--canvas-bg:var(--s1v9piyg-11);display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;color:var(--font-color);position:relative;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.s1v9piyg hr{width:100%;border:none;border-top:1px solid var(--divider-color);}.s1v9piyg[data-grow='false']{max-width:var(--s1v9piyg-12);}.s1v9piyg[data-shrink='false']{min-width:var(--s1v9piyg-13);}
87
85
  .s6o5tmu{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;position:relative;max-width:100%;z-index:1;aspect-ratio:var(--s6o5tmu-2);}.s6o5tmu[data-grow='true']{width:100%;}.s6o5tmu[data-grow='false']{width:var(--s6o5tmu-1);}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yorab/react-paint",
3
- "version": "0.4.0",
3
+ "version": "0.4.1",
4
4
  "keywords": [],
5
5
  "author": "Yohann Rabatel",
6
6
  "license": "MIT",