js-draw 1.3.1 → 1.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/README.md +2 -2
- package/dist/Editor.css +55 -13
- package/dist/bundle.js +2 -2
- package/dist/bundledStyles.js +1 -1
- package/dist/cjs/Editor.d.ts +36 -3
- package/dist/cjs/Editor.js +63 -26
- package/dist/cjs/commands/Erase.js +1 -1
- package/dist/cjs/commands/UnresolvedCommand.d.ts +1 -1
- package/dist/cjs/components/AbstractComponent.d.ts +1 -1
- package/dist/cjs/components/AbstractComponent.js +1 -1
- package/dist/cjs/components/BackgroundComponent.d.ts +1 -1
- package/dist/cjs/components/BackgroundComponent.js +13 -7
- package/dist/cjs/components/SVGGlobalAttributesObject.d.ts +2 -2
- package/dist/cjs/components/SVGGlobalAttributesObject.js +10 -14
- package/dist/cjs/{EditorImage.d.ts → image/EditorImage.d.ts} +30 -8
- package/dist/cjs/{EditorImage.js → image/EditorImage.js} +51 -7
- package/dist/cjs/image/export/adjustExportedSVGSize.d.ts +6 -0
- package/dist/cjs/image/export/adjustExportedSVGSize.js +22 -0
- package/dist/cjs/image/export/editorImageToSVG.d.ts +8 -0
- package/dist/cjs/image/export/editorImageToSVG.js +63 -0
- package/dist/cjs/image/lib.d.ts +1 -0
- package/dist/cjs/image/lib.js +8 -0
- package/dist/cjs/lib.d.ts +1 -1
- package/dist/cjs/lib.js +2 -3
- package/dist/cjs/localizations/comments.d.ts +6 -0
- package/dist/cjs/localizations/comments.js +10 -0
- package/dist/cjs/localizations/es.js +68 -48
- package/dist/cjs/rendering/caching/RenderingCache.d.ts +1 -1
- package/dist/cjs/rendering/caching/RenderingCacheNode.d.ts +1 -1
- package/dist/cjs/rendering/caching/RenderingCacheNode.js +4 -3
- package/dist/cjs/rendering/renderers/AbstractRenderer.d.ts +1 -0
- package/dist/cjs/rendering/renderers/AbstractRenderer.js +8 -0
- package/dist/cjs/rendering/renderers/SVGRenderer.d.ts +28 -1
- package/dist/cjs/rendering/renderers/SVGRenderer.js +58 -7
- package/dist/cjs/toolbar/AbstractToolbar.d.ts +11 -3
- package/dist/cjs/toolbar/AbstractToolbar.js +20 -6
- package/dist/cjs/toolbar/EdgeToolbar.js +5 -6
- package/dist/cjs/toolbar/IconProvider.d.ts +1 -0
- package/dist/cjs/toolbar/IconProvider.js +43 -0
- package/dist/cjs/toolbar/widgets/ActionButtonWidget.d.ts +3 -1
- package/dist/cjs/toolbar/widgets/ActionButtonWidget.js +19 -1
- package/dist/cjs/toolbar/widgets/BaseToolWidget.d.ts +1 -0
- package/dist/cjs/toolbar/widgets/BaseToolWidget.js +3 -0
- package/dist/cjs/toolbar/widgets/BaseWidget.d.ts +5 -0
- package/dist/cjs/toolbar/widgets/BaseWidget.js +30 -2
- package/dist/cjs/toolbar/widgets/DocumentPropertiesWidget.js +1 -1
- package/dist/cjs/toolbar/widgets/HandToolWidget.d.ts +1 -0
- package/dist/cjs/toolbar/widgets/HandToolWidget.js +6 -0
- package/dist/cjs/toolbar/widgets/InsertImageWidget.js +1 -1
- package/dist/cjs/toolbar/widgets/OverflowWidget.d.ts +1 -0
- package/dist/cjs/toolbar/widgets/OverflowWidget.js +3 -0
- package/dist/cjs/toolbar/widgets/SaveActionWidget.d.ts +1 -0
- package/dist/cjs/toolbar/widgets/SaveActionWidget.js +3 -0
- package/dist/cjs/tools/BaseTool.d.ts +3 -0
- package/dist/cjs/tools/BaseTool.js +13 -2
- package/dist/cjs/tools/FindTool.d.ts +1 -0
- package/dist/cjs/tools/FindTool.js +4 -1
- package/dist/cjs/tools/PanZoom.d.ts +1 -0
- package/dist/cjs/tools/PanZoom.js +4 -0
- package/dist/cjs/tools/Pen.d.ts +0 -1
- package/dist/cjs/tools/Pen.js +1 -4
- package/dist/cjs/tools/PipetteTool.d.ts +1 -0
- package/dist/cjs/tools/PipetteTool.js +3 -0
- package/dist/cjs/tools/SelectionTool/SelectAllShortcutHandler.d.ts +1 -0
- package/dist/cjs/tools/SelectionTool/SelectAllShortcutHandler.js +3 -0
- package/dist/cjs/tools/SelectionTool/Selection.d.ts +2 -0
- package/dist/cjs/tools/SelectionTool/Selection.js +44 -8
- package/dist/cjs/tools/SelectionTool/SelectionHandle.d.ts +14 -6
- package/dist/cjs/tools/SelectionTool/SelectionHandle.js +26 -8
- package/dist/cjs/tools/SelectionTool/SelectionTool.js +5 -0
- package/dist/cjs/tools/SoundUITool.d.ts +1 -0
- package/dist/cjs/tools/SoundUITool.js +4 -1
- package/dist/cjs/tools/TextTool.js +2 -2
- package/dist/cjs/tools/ToolController.d.ts +2 -0
- package/dist/cjs/tools/ToolController.js +13 -2
- package/dist/cjs/tools/ToolSwitcherShortcut.d.ts +1 -0
- package/dist/cjs/tools/ToolSwitcherShortcut.js +3 -0
- package/dist/cjs/types.d.ts +9 -4
- package/dist/cjs/types.js +4 -3
- package/dist/cjs/util/ReactiveValue.d.ts +1 -1
- package/dist/cjs/util/ReactiveValue.js +2 -2
- package/dist/cjs/version.js +1 -1
- package/dist/mjs/Editor.d.ts +36 -3
- package/dist/mjs/Editor.mjs +64 -27
- package/dist/mjs/Editor.toSVGAsync.test.d.ts +1 -0
- package/dist/mjs/commands/Erase.mjs +1 -1
- package/dist/mjs/commands/UnresolvedCommand.d.ts +1 -1
- package/dist/mjs/components/AbstractComponent.d.ts +1 -1
- package/dist/mjs/components/AbstractComponent.mjs +1 -1
- package/dist/mjs/components/BackgroundComponent.d.ts +1 -1
- package/dist/mjs/components/BackgroundComponent.mjs +13 -7
- package/dist/mjs/components/SVGGlobalAttributesObject.d.ts +2 -2
- package/dist/mjs/components/SVGGlobalAttributesObject.mjs +10 -14
- package/dist/mjs/{EditorImage.d.ts → image/EditorImage.d.ts} +30 -8
- package/dist/mjs/{EditorImage.mjs → image/EditorImage.mjs} +51 -7
- package/dist/mjs/image/EditorImage.test.d.ts +1 -0
- package/dist/mjs/image/export/adjustExportedSVGSize.d.ts +6 -0
- package/dist/mjs/image/export/adjustExportedSVGSize.mjs +20 -0
- package/dist/mjs/image/export/editorImageToSVG.d.ts +8 -0
- package/dist/mjs/image/export/editorImageToSVG.mjs +55 -0
- package/dist/mjs/image/lib.d.ts +1 -0
- package/dist/mjs/image/lib.mjs +1 -0
- package/dist/mjs/lib.d.ts +1 -1
- package/dist/mjs/lib.mjs +1 -1
- package/dist/mjs/localizations/comments.d.ts +6 -0
- package/dist/mjs/localizations/comments.mjs +8 -0
- package/dist/mjs/localizations/es.mjs +68 -48
- package/dist/mjs/rendering/caching/RenderingCache.d.ts +1 -1
- package/dist/mjs/rendering/caching/RenderingCacheNode.d.ts +1 -1
- package/dist/mjs/rendering/caching/RenderingCacheNode.mjs +4 -3
- package/dist/mjs/rendering/renderers/AbstractRenderer.d.ts +1 -0
- package/dist/mjs/rendering/renderers/AbstractRenderer.mjs +8 -0
- package/dist/mjs/rendering/renderers/SVGRenderer.d.ts +28 -1
- package/dist/mjs/rendering/renderers/SVGRenderer.mjs +58 -7
- package/dist/mjs/toolbar/AbstractToolbar.d.ts +11 -3
- package/dist/mjs/toolbar/AbstractToolbar.mjs +20 -6
- package/dist/mjs/toolbar/EdgeToolbar.mjs +5 -6
- package/dist/mjs/toolbar/IconProvider.d.ts +1 -0
- package/dist/mjs/toolbar/IconProvider.mjs +43 -0
- package/dist/mjs/toolbar/widgets/ActionButtonWidget.d.ts +3 -1
- package/dist/mjs/toolbar/widgets/ActionButtonWidget.mjs +21 -2
- package/dist/mjs/toolbar/widgets/BaseToolWidget.d.ts +1 -0
- package/dist/mjs/toolbar/widgets/BaseToolWidget.mjs +3 -0
- package/dist/mjs/toolbar/widgets/BaseWidget.d.ts +5 -0
- package/dist/mjs/toolbar/widgets/BaseWidget.mjs +30 -2
- package/dist/mjs/toolbar/widgets/DocumentPropertiesWidget.mjs +1 -1
- package/dist/mjs/toolbar/widgets/HandToolWidget.d.ts +1 -0
- package/dist/mjs/toolbar/widgets/HandToolWidget.mjs +6 -0
- package/dist/mjs/toolbar/widgets/InsertImageWidget.mjs +1 -1
- package/dist/mjs/toolbar/widgets/OverflowWidget.d.ts +1 -0
- package/dist/mjs/toolbar/widgets/OverflowWidget.mjs +3 -0
- package/dist/mjs/toolbar/widgets/SaveActionWidget.d.ts +1 -0
- package/dist/mjs/toolbar/widgets/SaveActionWidget.mjs +3 -0
- package/dist/mjs/tools/BaseTool.d.ts +3 -0
- package/dist/mjs/tools/BaseTool.mjs +13 -2
- package/dist/mjs/tools/FindTool.d.ts +1 -0
- package/dist/mjs/tools/FindTool.mjs +4 -1
- package/dist/mjs/tools/PanZoom.d.ts +1 -0
- package/dist/mjs/tools/PanZoom.mjs +4 -0
- package/dist/mjs/tools/Pen.d.ts +0 -1
- package/dist/mjs/tools/Pen.mjs +1 -4
- package/dist/mjs/tools/PipetteTool.d.ts +1 -0
- package/dist/mjs/tools/PipetteTool.mjs +3 -0
- package/dist/mjs/tools/SelectionTool/SelectAllShortcutHandler.d.ts +1 -0
- package/dist/mjs/tools/SelectionTool/SelectAllShortcutHandler.mjs +3 -0
- package/dist/mjs/tools/SelectionTool/Selection.d.ts +2 -0
- package/dist/mjs/tools/SelectionTool/Selection.mjs +45 -9
- package/dist/mjs/tools/SelectionTool/SelectionHandle.d.ts +14 -6
- package/dist/mjs/tools/SelectionTool/SelectionHandle.mjs +25 -7
- package/dist/mjs/tools/SelectionTool/SelectionTool.mjs +5 -0
- package/dist/mjs/tools/SoundUITool.d.ts +1 -0
- package/dist/mjs/tools/SoundUITool.mjs +4 -1
- package/dist/mjs/tools/TextTool.mjs +2 -2
- package/dist/mjs/tools/ToolController.d.ts +2 -0
- package/dist/mjs/tools/ToolController.mjs +13 -2
- package/dist/mjs/tools/ToolSwitcherShortcut.d.ts +1 -0
- package/dist/mjs/tools/ToolSwitcherShortcut.mjs +3 -0
- package/dist/mjs/types.d.ts +9 -4
- package/dist/mjs/types.mjs +4 -3
- package/dist/mjs/util/ReactiveValue.d.ts +1 -1
- package/dist/mjs/util/ReactiveValue.mjs +2 -2
- package/dist/mjs/version.mjs +1 -1
- package/package.json +5 -5
- package/src/Editor.scss +6 -0
- package/src/toolbar/EdgeToolbar.scss +19 -2
- package/src/tools/SelectionTool/SelectionTool.scss +74 -0
- package/src/tools/tools.scss +1 -1
- package/src/tools/SelectionTool/SelectionTool.css +0 -35
- /package/dist/cjs/{EditorImage.test.d.ts → Editor.toSVGAsync.test.d.ts} +0 -0
- /package/dist/{mjs → cjs/image}/EditorImage.test.d.ts +0 -0
package/README.md
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|

|
6
6
|
|
7
|
-
For example usage, see [one of the examples](https://github.com/personalizedrefrigerator/js-draw/blob/main/docs/examples.md) or read [the documentation](https://personalizedrefrigerator.github.io/js-draw/typedoc/
|
7
|
+
For example usage, see [one of the examples](https://github.com/personalizedrefrigerator/js-draw/blob/main/docs/examples.md) or read [the documentation](https://personalizedrefrigerator.github.io/js-draw/typedoc/).
|
8
8
|
|
9
9
|
If you're coming from version 0.25, [read the migration guide!](https://js-draw.web.app/typedoc/modules/Additional_Documentation.MigratingToVersion1__.html)
|
10
10
|
|
@@ -41,7 +41,7 @@ const editor = new Editor(document.body);
|
|
41
41
|
|
42
42
|
If you're not using a bundler, consider using the pre-bundled editor:
|
43
43
|
```html
|
44
|
-
<!-- Replace 0.
|
44
|
+
<!-- Replace 1.0.0 with the latest version of js-draw -->
|
45
45
|
<script src="https://cdn.jsdelivr.net/npm/js-draw@1.0.0/dist/bundle.js"></script>
|
46
46
|
<script>
|
47
47
|
const editor = new jsdraw.Editor(document.body);
|
package/dist/Editor.css
CHANGED
@@ -527,19 +527,24 @@
|
|
527
527
|
--button-label-hover-offset-y: var(--label-hover-offset-size);
|
528
528
|
--button-label-hover-offset-x: 0;
|
529
529
|
}
|
530
|
-
@media screen and (min-width:
|
530
|
+
@media screen and (min-width: 540px) {
|
531
531
|
.toolbar-edge-toolbar {
|
532
532
|
flex-wrap: nowrap;
|
533
533
|
}
|
534
534
|
.toolbar-edge-toolbar > .toolbar-action-row {
|
535
535
|
max-width: 50vw;
|
536
|
+
flex-grow: 0;
|
537
|
+
flex-shrink: 0;
|
536
538
|
}
|
537
539
|
}
|
538
540
|
@media screen and (max-width: 700px) {
|
539
541
|
.toolbar-edge-toolbar.one-row > * > .toolbar-toolContainer.label-inline {
|
540
542
|
font-size: 0.9em;
|
541
543
|
}
|
542
|
-
.toolbar-edge-toolbar.one-row > * > .toolbar-toolContainer.label-inline .toolbar-button
|
544
|
+
.toolbar-edge-toolbar.one-row > * > .toolbar-toolContainer.label-inline > .toolbar-button {
|
545
|
+
width: var(--toolbar-button-size);
|
546
|
+
}
|
547
|
+
.toolbar-edge-toolbar.one-row > * > .toolbar-toolContainer.label-inline > .toolbar-button label {
|
543
548
|
opacity: 0;
|
544
549
|
animation: 0.2s linear hide-initially;
|
545
550
|
}
|
@@ -583,25 +588,25 @@
|
|
583
588
|
}
|
584
589
|
}
|
585
590
|
@media screen and (max-width: 700px) and (hover: hover) {
|
586
|
-
.toolbar-edge-toolbar.one-row > * > .toolbar-toolContainer.label-inline .toolbar-button:hover > label {
|
591
|
+
.toolbar-edge-toolbar.one-row > * > .toolbar-toolContainer.label-inline > .toolbar-button:hover > label {
|
587
592
|
opacity: 0.8;
|
588
593
|
animation: 1s ease show-label;
|
589
594
|
}
|
590
595
|
}
|
591
596
|
@media screen and (max-width: 700px) {
|
592
|
-
.toolbar-edge-toolbar.one-row > * > .toolbar-toolContainer.label-inline .toolbar-button:active > label {
|
597
|
+
.toolbar-edge-toolbar.one-row > * > .toolbar-toolContainer.label-inline > .toolbar-button:active > label {
|
593
598
|
opacity: 0.8;
|
594
599
|
animation: 0.5s ease show-label;
|
595
600
|
}
|
596
|
-
.toolbar-edge-toolbar.one-row > * > .toolbar-toolContainer.label-inline .toolbar-button:focus-visible > label {
|
601
|
+
.toolbar-edge-toolbar.one-row > * > .toolbar-toolContainer.label-inline > .toolbar-button:focus-visible > label {
|
597
602
|
animation: 1.5s ease rehide-label;
|
598
603
|
opacity: 0;
|
599
604
|
}
|
600
|
-
.toolbar-edge-toolbar.one-row > * > .toolbar-toolContainer.label-inline .toolbar-button:has(:focus-visible) > label {
|
605
|
+
.toolbar-edge-toolbar.one-row > * > .toolbar-toolContainer.label-inline > .toolbar-button:has(:focus-visible) > label {
|
601
606
|
animation: 1.5s ease rehide-label;
|
602
607
|
opacity: 0;
|
603
608
|
}
|
604
|
-
.toolbar-edge-toolbar.one-row > * > .toolbar-toolContainer.label-inline .toolbar-button > label {
|
609
|
+
.toolbar-edge-toolbar.one-row > * > .toolbar-toolContainer.label-inline > .toolbar-button > label {
|
605
610
|
opacity: 0;
|
606
611
|
position: absolute;
|
607
612
|
margin-top: var(--button-label-hover-offset-y);
|
@@ -615,10 +620,16 @@
|
|
615
620
|
}
|
616
621
|
}
|
617
622
|
@media screen and (max-width: 700px) and (prefers-reduced-motion: reduce) {
|
618
|
-
.toolbar-edge-toolbar.one-row > * > .toolbar-toolContainer.label-inline .toolbar-button > label {
|
623
|
+
.toolbar-edge-toolbar.one-row > * > .toolbar-toolContainer.label-inline > .toolbar-button > label {
|
619
624
|
transition: none;
|
620
625
|
}
|
621
626
|
}
|
627
|
+
@media screen and (max-width: 700px) {
|
628
|
+
.toolbar-edge-toolbar.one-row > * > .toolbar-toolContainer.label-inline > .toolbar-button > .toolbar-icon.toolbar-icon {
|
629
|
+
margin-left: 0;
|
630
|
+
margin-right: 0;
|
631
|
+
}
|
632
|
+
}
|
622
633
|
.toolbar-edge-toolbar > div.toolbar-element {
|
623
634
|
flex-direction: row;
|
624
635
|
display: flex;
|
@@ -1081,12 +1092,39 @@
|
|
1081
1092
|
border: 1px solid var(--foreground-color-1);
|
1082
1093
|
background: var(--background-color-1);
|
1083
1094
|
position: absolute;
|
1084
|
-
|
1095
|
+
box-sizing: border-box;
|
1096
|
+
padding: 3px;
|
1097
|
+
}
|
1098
|
+
.selection-tool-handle .icon {
|
1099
|
+
width: 100%;
|
1100
|
+
height: 100%;
|
1085
1101
|
}
|
1086
|
-
|
1087
1102
|
.selection-tool-handle.selection-tool-circle {
|
1088
1103
|
border-radius: 100%;
|
1089
1104
|
}
|
1105
|
+
.selection-tool-handle.selection-tool-rotate {
|
1106
|
+
cursor: grab;
|
1107
|
+
}
|
1108
|
+
|
1109
|
+
.selection-tool-handle.selection-tool-resize-x {
|
1110
|
+
cursor: ew-resize;
|
1111
|
+
}
|
1112
|
+
.selection-tool-handle.selection-tool-resize-y {
|
1113
|
+
cursor: ns-resize;
|
1114
|
+
}
|
1115
|
+
.selection-tool-handle.selection-tool-resize-xy {
|
1116
|
+
cursor: nw-resize;
|
1117
|
+
}
|
1118
|
+
|
1119
|
+
.selection-tool-rotated-near-perpendicular .selection-tool-handle.selection-tool-resize-x {
|
1120
|
+
cursor: ns-resize;
|
1121
|
+
}
|
1122
|
+
.selection-tool-rotated-near-perpendicular .selection-tool-handle.selection-tool-resize-y {
|
1123
|
+
cursor: ew-resize;
|
1124
|
+
}
|
1125
|
+
.selection-tool-rotated-near-perpendicular .selection-tool-handle.selection-tool-resize-xy {
|
1126
|
+
cursor: sw-resize;
|
1127
|
+
}
|
1090
1128
|
|
1091
1129
|
.overlay.handleOverlay {
|
1092
1130
|
height: 0;
|
@@ -1095,13 +1133,13 @@
|
|
1095
1133
|
|
1096
1134
|
@keyframes selection-duplicated-animation {
|
1097
1135
|
0% {
|
1098
|
-
|
1136
|
+
scale: 1 1;
|
1099
1137
|
}
|
1100
1138
|
50% {
|
1101
|
-
|
1139
|
+
scale: 1.02 1.02;
|
1102
1140
|
}
|
1103
1141
|
100% {
|
1104
|
-
|
1142
|
+
scale: 1 1;
|
1105
1143
|
}
|
1106
1144
|
}
|
1107
1145
|
/* Do not run the animation when the user has disabled motion animations. */
|
@@ -1268,6 +1306,10 @@ visible.
|
|
1268
1306
|
--primary-action-foreground-color: #7ae;
|
1269
1307
|
}
|
1270
1308
|
}
|
1309
|
+
.imageEditorContainer {
|
1310
|
+
--icon-color: var(--foreground-color-1);
|
1311
|
+
}
|
1312
|
+
|
1271
1313
|
.imageEditorContainer {
|
1272
1314
|
color: var(--foreground-color-1);
|
1273
1315
|
font-family: system-ui, -apple-system, sans-serif;
|