js-draw 1.2.2 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +29 -29
- package/dist/Editor.css +65 -4
- package/dist/bundle.js +2 -2
- package/dist/bundledStyles.js +1 -1
- package/dist/cjs/Editor.d.ts +73 -40
- package/dist/cjs/Editor.js +90 -24
- package/dist/cjs/EditorImage.d.ts +58 -6
- package/dist/cjs/EditorImage.js +336 -60
- package/dist/cjs/SVGLoader.d.ts +10 -4
- package/dist/cjs/SVGLoader.js +30 -10
- package/dist/cjs/UndoRedoHistory.d.ts +2 -2
- package/dist/cjs/UndoRedoHistory.js +4 -2
- package/dist/cjs/Viewport.d.ts +2 -1
- package/dist/cjs/Viewport.js +12 -3
- package/dist/cjs/commands/Command.d.ts +1 -0
- package/dist/cjs/commands/Command.js +1 -0
- package/dist/cjs/commands/Erase.js +1 -1
- package/dist/cjs/commands/SerializableCommand.d.ts +1 -1
- package/dist/cjs/commands/SerializableCommand.js +16 -2
- package/dist/cjs/commands/localization.d.ts +2 -0
- package/dist/cjs/commands/localization.js +2 -0
- package/dist/cjs/components/AbstractComponent.d.ts +38 -0
- package/dist/cjs/components/AbstractComponent.js +31 -0
- package/dist/cjs/components/BackgroundComponent.d.ts +10 -1
- package/dist/cjs/components/BackgroundComponent.js +60 -6
- package/dist/cjs/components/SVGGlobalAttributesObject.d.ts +2 -1
- package/dist/cjs/components/SVGGlobalAttributesObject.js +30 -1
- package/dist/cjs/components/Stroke.d.ts +1 -0
- package/dist/cjs/components/Stroke.js +44 -0
- package/dist/cjs/components/UnknownSVGObject.d.ts +2 -1
- package/dist/cjs/components/UnknownSVGObject.js +30 -1
- package/dist/cjs/lib.d.ts +2 -45
- package/dist/cjs/lib.js +2 -45
- package/dist/cjs/rendering/RenderingStyle.d.ts +1 -0
- package/dist/cjs/rendering/renderers/AbstractRenderer.js +1 -1
- package/dist/cjs/shortcuts/KeyboardShortcutManager.d.ts +2 -2
- package/dist/cjs/shortcuts/KeyboardShortcutManager.js +2 -2
- package/dist/cjs/toolbar/localization.d.ts +1 -0
- package/dist/cjs/toolbar/localization.js +1 -0
- package/dist/cjs/toolbar/widgets/BaseWidget.js +5 -0
- package/dist/cjs/toolbar/widgets/DocumentPropertiesWidget.js +54 -25
- package/dist/cjs/toolbar/widgets/components/makeGridSelector.js +8 -0
- package/dist/cjs/tools/PanZoom.js +13 -8
- package/dist/cjs/tools/ScrollbarTool.d.ts +18 -0
- package/dist/cjs/tools/ScrollbarTool.js +85 -0
- package/dist/cjs/tools/SelectionTool/SelectionTool.selecting.test.d.ts +1 -0
- package/dist/cjs/tools/ToolController.js +2 -0
- package/dist/cjs/types.d.ts +3 -1
- package/dist/cjs/util/assertions.d.ts +4 -0
- package/dist/cjs/util/assertions.js +12 -1
- package/dist/cjs/version.js +1 -1
- package/dist/mjs/Editor.d.ts +73 -40
- package/dist/mjs/Editor.mjs +90 -24
- package/dist/mjs/EditorImage.d.ts +58 -6
- package/dist/mjs/EditorImage.mjs +313 -61
- package/dist/mjs/SVGLoader.d.ts +10 -4
- package/dist/mjs/SVGLoader.mjs +29 -9
- package/dist/mjs/UndoRedoHistory.d.ts +2 -2
- package/dist/mjs/UndoRedoHistory.mjs +4 -2
- package/dist/mjs/Viewport.d.ts +2 -1
- package/dist/mjs/Viewport.mjs +12 -3
- package/dist/mjs/commands/Command.d.ts +1 -0
- package/dist/mjs/commands/Command.mjs +1 -0
- package/dist/mjs/commands/Erase.mjs +1 -1
- package/dist/mjs/commands/SerializableCommand.d.ts +1 -1
- package/dist/mjs/commands/SerializableCommand.mjs +16 -2
- package/dist/mjs/commands/localization.d.ts +2 -0
- package/dist/mjs/commands/localization.mjs +2 -0
- package/dist/mjs/components/AbstractComponent.d.ts +38 -0
- package/dist/mjs/components/AbstractComponent.mjs +30 -0
- package/dist/mjs/components/BackgroundComponent.d.ts +10 -1
- package/dist/mjs/components/BackgroundComponent.mjs +37 -6
- package/dist/mjs/components/SVGGlobalAttributesObject.d.ts +2 -1
- package/dist/mjs/components/SVGGlobalAttributesObject.mjs +7 -1
- package/dist/mjs/components/Stroke.d.ts +1 -0
- package/dist/mjs/components/Stroke.mjs +44 -0
- package/dist/mjs/components/UnknownSVGObject.d.ts +2 -1
- package/dist/mjs/components/UnknownSVGObject.mjs +7 -1
- package/dist/mjs/lib.d.ts +2 -45
- package/dist/mjs/lib.mjs +2 -45
- package/dist/mjs/rendering/RenderingStyle.d.ts +1 -0
- package/dist/mjs/rendering/renderers/AbstractRenderer.mjs +1 -1
- package/dist/mjs/shortcuts/KeyboardShortcutManager.d.ts +2 -2
- package/dist/mjs/shortcuts/KeyboardShortcutManager.mjs +2 -2
- package/dist/mjs/toolbar/localization.d.ts +1 -0
- package/dist/mjs/toolbar/localization.mjs +1 -0
- package/dist/mjs/toolbar/widgets/BaseWidget.mjs +5 -0
- package/dist/mjs/toolbar/widgets/DocumentPropertiesWidget.mjs +54 -25
- package/dist/mjs/toolbar/widgets/components/makeGridSelector.mjs +8 -0
- package/dist/mjs/tools/PanZoom.mjs +13 -8
- package/dist/mjs/tools/ScrollbarTool.d.ts +18 -0
- package/dist/mjs/tools/ScrollbarTool.mjs +79 -0
- package/dist/mjs/tools/SelectionTool/SelectionTool.selecting.test.d.ts +1 -0
- package/dist/mjs/tools/ToolController.mjs +2 -0
- package/dist/mjs/types.d.ts +3 -1
- package/dist/mjs/util/assertions.d.ts +4 -0
- package/dist/mjs/util/assertions.mjs +10 -0
- package/dist/mjs/version.mjs +1 -1
- package/package.json +3 -4
- package/src/Editor.scss +8 -0
- package/src/dialogs/dialogs.scss +2 -1
- package/src/toolbar/EdgeToolbar.scss +4 -1
- package/src/toolbar/widgets/DocumentPropertiesWidget.scss +12 -0
- package/src/toolbar/widgets/components/makeGridSelector.scss +1 -1
- package/src/tools/ScrollbarTool.scss +57 -0
- package/src/tools/{SoundUITool.css → SoundUITool.scss} +4 -0
- package/src/tools/tools.scss +2 -1
package/README.md
CHANGED
@@ -199,49 +199,49 @@ The editor's color theme is specified using CSS. Its default theme looks like th
|
|
199
199
|
/* Deafult colors for the editor -- light mode */
|
200
200
|
|
201
201
|
/* Used for unselected buttons and dialog text. */
|
202
|
-
|
203
|
-
|
202
|
+
--background-color-1: white;
|
203
|
+
--foreground-color-1: black;
|
204
204
|
|
205
|
-
|
206
|
-
|
207
|
-
|
205
|
+
/* Used for some menu/toolbar backgrounds. */
|
206
|
+
--background-color-2: #f5f5f5;
|
207
|
+
--foreground-color-2: #2c303a;
|
208
208
|
|
209
|
-
|
210
|
-
|
211
|
-
|
209
|
+
/* Used for other menu/toolbar backgrounds. */
|
210
|
+
--background-color-3: #e5e5e5;
|
211
|
+
--foreground-color-3: #1c202a;
|
212
212
|
|
213
|
-
|
214
|
-
|
215
|
-
|
213
|
+
/* Used for selected buttons. */
|
214
|
+
--selection-background-color: #cbdaf1;
|
215
|
+
--selection-foreground-color: #2c303a;
|
216
216
|
|
217
|
-
|
218
|
-
|
217
|
+
/* Used for dialog backgrounds */
|
218
|
+
--background-color-transparent: rgba(105, 100, 100, 0.5);
|
219
219
|
|
220
|
-
|
221
|
-
|
220
|
+
/* Used for shadows */
|
221
|
+
--shadow-color: rgba(0, 0, 0, 0.5);
|
222
222
|
|
223
|
-
|
224
|
-
|
223
|
+
/* Color used for some button/input foregrounds */
|
224
|
+
--primary-action-foreground-color: #15b;
|
225
225
|
}
|
226
226
|
|
227
227
|
@media (prefers-color-scheme: dark) {
|
228
228
|
.imageEditorContainer {
|
229
229
|
/* Default colors for the editor -- dark mode */
|
230
|
-
|
231
|
-
|
230
|
+
--background-color-1: #151515;
|
231
|
+
--foreground-color-1: white;
|
232
232
|
|
233
|
-
|
234
|
-
|
233
|
+
--background-color-2: #222;
|
234
|
+
--foreground-color-2: #efefef;
|
235
235
|
|
236
|
-
|
237
|
-
|
236
|
+
--background-color-3: #272627;
|
237
|
+
--foreground-color-3: #eee;
|
238
238
|
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
239
|
+
--selection-background-color: #607;
|
240
|
+
--selection-foreground-color: white;
|
241
|
+
--shadow-color: rgba(250, 250, 250, 0.5);
|
242
|
+
--background-color-transparent: rgba(50, 50, 50, 0.5);
|
243
243
|
|
244
|
-
|
244
|
+
--primary-action-foreground-color: #7ae;
|
245
245
|
}
|
246
246
|
}
|
247
247
|
```
|
@@ -261,7 +261,7 @@ body .imageEditorContainer {
|
|
261
261
|
--foreground-color-3: black;
|
262
262
|
|
263
263
|
--background-color-transparent: rgba(255, 240, 200, 0.5);
|
264
|
-
|
264
|
+
--shadow-color: rgba(0, 0, 0, 0.5);
|
265
265
|
|
266
266
|
--selection-background-color: yellow;
|
267
267
|
--selection-foreground-color: black;
|
package/dist/Editor.css
CHANGED
@@ -79,6 +79,15 @@
|
|
79
79
|
width: 100%;
|
80
80
|
text-align: end;
|
81
81
|
}
|
82
|
+
.toolbar-document-properties-widget > * {
|
83
|
+
--align-items-to-x: 120px;
|
84
|
+
}
|
85
|
+
.toolbar-document-properties-widget .js-draw-size-input-row.js-draw-size-input-row {
|
86
|
+
display: flex;
|
87
|
+
}
|
88
|
+
.toolbar-document-properties-widget .js-draw-size-input-row.js-draw-size-input-row.size-input-row--automatic-size {
|
89
|
+
display: none;
|
90
|
+
}
|
82
91
|
|
83
92
|
.toolbar-thicknessSliderContainer {
|
84
93
|
display: flex;
|
@@ -229,7 +238,7 @@
|
|
229
238
|
flex-shrink: 1;
|
230
239
|
margin: 2px;
|
231
240
|
}
|
232
|
-
.toolbar-grid-selector .choice-button
|
241
|
+
.toolbar-grid-selector .choice-button.focus-visible {
|
233
242
|
outline: 2px solid var(--foreground-color-1);
|
234
243
|
}
|
235
244
|
.toolbar-grid-selector .choice-button input {
|
@@ -963,6 +972,7 @@
|
|
963
972
|
}
|
964
973
|
.toolbar-edgemenu-container .toolbar-edgemenu .toolbar-spacedList {
|
965
974
|
box-sizing: border-box;
|
975
|
+
--align-items-to-x: 105px;
|
966
976
|
}
|
967
977
|
.toolbar-edgemenu-container .toolbar-edgemenu .toolbar-spacedList > div {
|
968
978
|
display: flex;
|
@@ -972,13 +982,14 @@
|
|
972
982
|
}
|
973
983
|
.toolbar-edgemenu-container .toolbar-edgemenu .toolbar-spacedList > div > label {
|
974
984
|
padding-right: 35px;
|
975
|
-
min-width:
|
985
|
+
min-width: var(--align-items-to-x);
|
976
986
|
flex-shrink: 1;
|
977
987
|
box-sizing: border-box;
|
978
988
|
}
|
979
989
|
.toolbar-edgemenu-container .toolbar-edgemenu .toolbar-spacedList > div > input[type=checkbox] {
|
980
990
|
width: 20px;
|
981
991
|
height: 20px;
|
992
|
+
margin-left: 0;
|
982
993
|
}
|
983
994
|
.toolbar-edgemenu-container .toolbar-edgemenu .toolbar-spacedList > div > input:not([type=checkbox]) {
|
984
995
|
flex-grow: 1;
|
@@ -1013,6 +1024,52 @@
|
|
1013
1024
|
display: inline-block;
|
1014
1025
|
}
|
1015
1026
|
|
1027
|
+
.ScrollbarTool-overlay {
|
1028
|
+
width: 0;
|
1029
|
+
height: 0;
|
1030
|
+
overflow: visible;
|
1031
|
+
opacity: 0.2;
|
1032
|
+
pointer-events: none;
|
1033
|
+
--fade-out-animation: 1s ease 0s fade-out;
|
1034
|
+
--scrollbar-size: 3px;
|
1035
|
+
}
|
1036
|
+
@media (prefers-reduced-motion: reduce) {
|
1037
|
+
.ScrollbarTool-overlay {
|
1038
|
+
--fade-out-animation: none !important;
|
1039
|
+
}
|
1040
|
+
}
|
1041
|
+
@keyframes fade-out {
|
1042
|
+
from {
|
1043
|
+
opacity: 0.2;
|
1044
|
+
}
|
1045
|
+
to {
|
1046
|
+
opacity: 0;
|
1047
|
+
}
|
1048
|
+
}
|
1049
|
+
.ScrollbarTool-overlay:not(.just-updated) {
|
1050
|
+
animation: var(--fade-out-animation);
|
1051
|
+
opacity: 0;
|
1052
|
+
}
|
1053
|
+
.ScrollbarTool-overlay .vertical-scrollbar, .ScrollbarTool-overlay .horizontal-scrollbar {
|
1054
|
+
width: var(--scrollbar-size);
|
1055
|
+
height: var(--scrollbar-size);
|
1056
|
+
min-width: var(--scrollbar-size);
|
1057
|
+
min-height: var(--scrollbar-size);
|
1058
|
+
background-color: var(--foreground-color-1);
|
1059
|
+
border-radius: var(--scrollbar-size);
|
1060
|
+
position: absolute;
|
1061
|
+
}
|
1062
|
+
.ScrollbarTool-overlay .vertical-scrollbar.represents-no-scroll, .ScrollbarTool-overlay .horizontal-scrollbar.represents-no-scroll {
|
1063
|
+
animation: var(--fade-out-animation);
|
1064
|
+
opacity: 0;
|
1065
|
+
}
|
1066
|
+
.ScrollbarTool-overlay:not(.scrollbar-left) .vertical-scrollbar {
|
1067
|
+
margin-left: calc(var(--editor-current-display-width-px) - var(--scrollbar-size));
|
1068
|
+
}
|
1069
|
+
.ScrollbarTool-overlay:not(.scrollbar-top) .horizontal-scrollbar {
|
1070
|
+
margin-top: calc(var(--editor-current-display-height-px) - var(--scrollbar-size));
|
1071
|
+
}
|
1072
|
+
|
1016
1073
|
.selection-tool-selection-background {
|
1017
1074
|
background-color: var(--selection-background-color);
|
1018
1075
|
opacity: 0.5;
|
@@ -1063,6 +1120,10 @@
|
|
1063
1120
|
overflow: hidden;
|
1064
1121
|
}
|
1065
1122
|
|
1123
|
+
.js-draw-sound-ui-toggle button {
|
1124
|
+
margin-top: 1px;
|
1125
|
+
}
|
1126
|
+
|
1066
1127
|
.js-draw-sound-ui-toggle:focus-within, .js-draw-sound-ui-toggle.sound-ui-tool-enabled {
|
1067
1128
|
overflow: visible;
|
1068
1129
|
z-index: 5;
|
@@ -1102,7 +1163,7 @@
|
|
1102
1163
|
text-decoration: underline;
|
1103
1164
|
}
|
1104
1165
|
|
1105
|
-
.dialog-container {
|
1166
|
+
.dialog-container.dialog-container {
|
1106
1167
|
background-color: var(--background-color-transparent);
|
1107
1168
|
backdrop-filter: blur(5px);
|
1108
1169
|
-webkit-backdrop-filter: blur(5px);
|
@@ -1115,7 +1176,7 @@
|
|
1115
1176
|
align-items: center;
|
1116
1177
|
justify-content: center;
|
1117
1178
|
}
|
1118
|
-
.dialog-container dialog {
|
1179
|
+
.dialog-container.dialog-container dialog {
|
1119
1180
|
background-color: var(--background-color-1);
|
1120
1181
|
color: var(--foreground-color-1);
|
1121
1182
|
border: none;
|