js-draw 1.14.0 → 1.16.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (99) hide show
  1. package/dist/Editor.css +288 -1
  2. package/dist/bundle.js +2 -2
  3. package/dist/bundledStyles.js +1 -1
  4. package/dist/cjs/Editor.js +5 -0
  5. package/dist/cjs/components/util/StrokeSmoother.js +11 -4
  6. package/dist/cjs/rendering/caching/CacheRecordManager.js +1 -1
  7. package/dist/cjs/rendering/renderers/CanvasRenderer.js +1 -1
  8. package/dist/cjs/testing/sendHtmlSwipe.d.ts +4 -0
  9. package/dist/cjs/testing/sendHtmlSwipe.js +14 -0
  10. package/dist/cjs/toolbar/EdgeToolbar.d.ts +1 -0
  11. package/dist/cjs/toolbar/EdgeToolbar.js +30 -110
  12. package/dist/cjs/toolbar/IconProvider.d.ts +1 -0
  13. package/dist/cjs/toolbar/IconProvider.js +27 -0
  14. package/dist/cjs/toolbar/localization.d.ts +28 -1
  15. package/dist/cjs/toolbar/localization.js +30 -1
  16. package/dist/cjs/toolbar/utils/HelpDisplay.d.ts +37 -0
  17. package/dist/cjs/toolbar/utils/HelpDisplay.js +442 -0
  18. package/dist/cjs/toolbar/utils/HelpDisplay.test.d.ts +1 -0
  19. package/dist/cjs/toolbar/utils/localization.d.ts +9 -0
  20. package/dist/cjs/toolbar/utils/localization.js +11 -0
  21. package/dist/cjs/toolbar/utils/makeDraggable.d.ts +16 -0
  22. package/dist/cjs/toolbar/utils/makeDraggable.js +130 -0
  23. package/dist/cjs/toolbar/widgets/ActionButtonWidget.d.ts +7 -0
  24. package/dist/cjs/toolbar/widgets/ActionButtonWidget.js +14 -2
  25. package/dist/cjs/toolbar/widgets/BaseWidget.d.ts +8 -1
  26. package/dist/cjs/toolbar/widgets/BaseWidget.js +25 -3
  27. package/dist/cjs/toolbar/widgets/DocumentPropertiesWidget.d.ts +3 -1
  28. package/dist/cjs/toolbar/widgets/DocumentPropertiesWidget.js +19 -4
  29. package/dist/cjs/toolbar/widgets/HandToolWidget.d.ts +3 -1
  30. package/dist/cjs/toolbar/widgets/HandToolWidget.js +19 -7
  31. package/dist/cjs/toolbar/widgets/InsertImageWidget.js +1 -0
  32. package/dist/cjs/toolbar/widgets/PenToolWidget.d.ts +4 -2
  33. package/dist/cjs/toolbar/widgets/PenToolWidget.js +27 -8
  34. package/dist/cjs/toolbar/widgets/SelectionToolWidget.d.ts +3 -1
  35. package/dist/cjs/toolbar/widgets/SelectionToolWidget.js +19 -5
  36. package/dist/cjs/toolbar/widgets/components/makeColorInput.d.ts +2 -0
  37. package/dist/cjs/toolbar/widgets/components/makeColorInput.js +17 -7
  38. package/dist/cjs/toolbar/widgets/components/makeGridSelector.d.ts +6 -0
  39. package/dist/cjs/toolbar/widgets/components/makeGridSelector.js +3 -0
  40. package/dist/cjs/tools/FindTool.js +18 -5
  41. package/dist/cjs/tools/PanZoom.d.ts +8 -2
  42. package/dist/cjs/tools/PanZoom.js +29 -10
  43. package/dist/cjs/tools/SelectionTool/Selection.js +16 -2
  44. package/dist/cjs/util/addLongPressOrHoverCssClasses.d.ts +3 -1
  45. package/dist/cjs/util/addLongPressOrHoverCssClasses.js +2 -1
  46. package/dist/cjs/util/cloneElementWithStyles.d.ts +6 -0
  47. package/dist/cjs/util/cloneElementWithStyles.js +32 -0
  48. package/dist/cjs/version.js +1 -1
  49. package/dist/mjs/Editor.mjs +5 -0
  50. package/dist/mjs/components/util/StrokeSmoother.mjs +11 -4
  51. package/dist/mjs/rendering/caching/CacheRecordManager.mjs +1 -1
  52. package/dist/mjs/rendering/renderers/CanvasRenderer.mjs +1 -1
  53. package/dist/mjs/testing/sendHtmlSwipe.d.ts +4 -0
  54. package/dist/mjs/testing/sendHtmlSwipe.mjs +12 -0
  55. package/dist/mjs/toolbar/EdgeToolbar.d.ts +1 -0
  56. package/dist/mjs/toolbar/EdgeToolbar.mjs +30 -110
  57. package/dist/mjs/toolbar/IconProvider.d.ts +1 -0
  58. package/dist/mjs/toolbar/IconProvider.mjs +27 -0
  59. package/dist/mjs/toolbar/localization.d.ts +28 -1
  60. package/dist/mjs/toolbar/localization.mjs +30 -1
  61. package/dist/mjs/toolbar/utils/HelpDisplay.d.ts +37 -0
  62. package/dist/mjs/toolbar/utils/HelpDisplay.mjs +437 -0
  63. package/dist/mjs/toolbar/utils/HelpDisplay.test.d.ts +1 -0
  64. package/dist/mjs/toolbar/utils/localization.d.ts +9 -0
  65. package/dist/mjs/toolbar/utils/localization.mjs +8 -0
  66. package/dist/mjs/toolbar/utils/makeDraggable.d.ts +16 -0
  67. package/dist/mjs/toolbar/utils/makeDraggable.mjs +128 -0
  68. package/dist/mjs/toolbar/widgets/ActionButtonWidget.d.ts +7 -0
  69. package/dist/mjs/toolbar/widgets/ActionButtonWidget.mjs +14 -2
  70. package/dist/mjs/toolbar/widgets/BaseWidget.d.ts +8 -1
  71. package/dist/mjs/toolbar/widgets/BaseWidget.mjs +25 -3
  72. package/dist/mjs/toolbar/widgets/DocumentPropertiesWidget.d.ts +3 -1
  73. package/dist/mjs/toolbar/widgets/DocumentPropertiesWidget.mjs +19 -4
  74. package/dist/mjs/toolbar/widgets/HandToolWidget.d.ts +3 -1
  75. package/dist/mjs/toolbar/widgets/HandToolWidget.mjs +19 -7
  76. package/dist/mjs/toolbar/widgets/InsertImageWidget.mjs +1 -0
  77. package/dist/mjs/toolbar/widgets/PenToolWidget.d.ts +4 -2
  78. package/dist/mjs/toolbar/widgets/PenToolWidget.mjs +27 -8
  79. package/dist/mjs/toolbar/widgets/SelectionToolWidget.d.ts +3 -1
  80. package/dist/mjs/toolbar/widgets/SelectionToolWidget.mjs +19 -5
  81. package/dist/mjs/toolbar/widgets/components/makeColorInput.d.ts +2 -0
  82. package/dist/mjs/toolbar/widgets/components/makeColorInput.mjs +17 -7
  83. package/dist/mjs/toolbar/widgets/components/makeGridSelector.d.ts +6 -0
  84. package/dist/mjs/toolbar/widgets/components/makeGridSelector.mjs +3 -0
  85. package/dist/mjs/tools/FindTool.mjs +18 -5
  86. package/dist/mjs/tools/PanZoom.d.ts +8 -2
  87. package/dist/mjs/tools/PanZoom.mjs +29 -10
  88. package/dist/mjs/tools/SelectionTool/Selection.mjs +16 -2
  89. package/dist/mjs/util/addLongPressOrHoverCssClasses.d.ts +3 -1
  90. package/dist/mjs/util/addLongPressOrHoverCssClasses.mjs +2 -1
  91. package/dist/mjs/util/cloneElementWithStyles.d.ts +6 -0
  92. package/dist/mjs/util/cloneElementWithStyles.mjs +30 -0
  93. package/dist/mjs/version.mjs +1 -1
  94. package/package.json +3 -3
  95. package/src/toolbar/EdgeToolbar.scss +23 -2
  96. package/src/toolbar/toolbar.scss +2 -0
  97. package/src/toolbar/utils/HelpDisplay.scss +315 -0
  98. package/src/toolbar/widgets/components/makeColorInput.scss +7 -0
  99. package/src/tools/SelectionTool/SelectionTool.scss +4 -0
package/dist/Editor.css CHANGED
@@ -1,3 +1,4 @@
1
+ @charset "UTF-8";
1
2
  :root .insert-image-widget-dropdown-content.insert-image-widget-dropdown-content.insert-image-widget-dropdown-content > div > div {
2
3
  padding: 5px;
3
4
  }
@@ -160,6 +161,11 @@
160
161
  display: inline-flex;
161
162
  }
162
163
 
164
+ .color-input-container > .color-input-wrapper {
165
+ display: flex;
166
+ justify-content: stretch;
167
+ }
168
+
163
169
  .color-input-container .pipetteButton > svg {
164
170
  width: 100%;
165
171
  }
@@ -587,11 +593,27 @@
587
593
  transform: translate(0, 0);
588
594
  }
589
595
  }
596
+ @keyframes toolbar--edgemenu-transition-in-reduce-motion {
597
+ from {
598
+ opacity: 0;
599
+ }
600
+ to {
601
+ opacity: 1;
602
+ }
603
+ }
590
604
  @keyframes toolbar--edgemenu-transition-out {
591
605
  to {
592
606
  transform: translate(0, 100%);
593
607
  }
594
608
  }
609
+ @keyframes toolbar--edgemenu-transition-out-reduce-motion {
610
+ from {
611
+ opacity: 1;
612
+ }
613
+ to {
614
+ opacity: 0;
615
+ }
616
+ }
595
617
  @keyframes toolbar--edgemenu-container-transition-in {
596
618
  from {
597
619
  overflow-y: hidden;
@@ -848,7 +870,7 @@
848
870
  }
849
871
  @media (prefers-reduced-motion: reduce) {
850
872
  .toolbar-edgemenu-container {
851
- transition: none;
873
+ transition: 0.15s ease-in-out background-color, 0.2s ease-in-out opacity;
852
874
  }
853
875
  }
854
876
  .toolbar-edgemenu-container.dropdown-below-edge {
@@ -903,6 +925,9 @@
903
925
  transition: none;
904
926
  }
905
927
  }
928
+ .toolbar-edgemenu-container .toolbar-help-overlay-button {
929
+ align-items: last baseline;
930
+ }
906
931
 
907
932
  .toolbar-edgemenu-container .toolbar-edgemenu {
908
933
  --toolbar-button-height: 48px;
@@ -989,6 +1014,9 @@
989
1014
  margin-top: 5px;
990
1015
  min-height: 35px;
991
1016
  }
1017
+ .toolbar-edgemenu-container .toolbar-edgemenu .toolbar-spacedList > div:first-child {
1018
+ margin-top: 0;
1019
+ }
992
1020
  .toolbar-edgemenu-container .toolbar-edgemenu .toolbar-spacedList > div > label {
993
1021
  padding-right: 35px;
994
1022
  min-width: var(--align-items-to-x);
@@ -1033,6 +1061,262 @@
1033
1061
  display: inline-block;
1034
1062
  }
1035
1063
 
1064
+ .toolbar-help-overlay {
1065
+ width: 100%;
1066
+ height: 100%;
1067
+ max-width: none;
1068
+ max-height: none;
1069
+ border: none;
1070
+ margin: 0;
1071
+ padding: 0;
1072
+ z-index: 5;
1073
+ touch-action: none;
1074
+ overflow: hidden;
1075
+ color: white;
1076
+ --icon-color: white;
1077
+ background-color: transparent;
1078
+ display: flex;
1079
+ flex-direction: column;
1080
+ transition: 0.3s ease transform;
1081
+ }
1082
+ .toolbar-help-overlay::backdrop {
1083
+ background-color: rgba(0, 0, 0, 0.8);
1084
+ backdrop-filter: blur(1px);
1085
+ -webkit-backdrop-filter: blur(1px);
1086
+ }
1087
+ .toolbar-help-overlay, .toolbar-help-overlay::backdrop {
1088
+ animation: 0.25s ease transition-in;
1089
+ }
1090
+ @keyframes transition-in {
1091
+ 0% {
1092
+ opacity: 0;
1093
+ }
1094
+ 100% {
1095
+ opacity: 1;
1096
+ }
1097
+ }
1098
+ @keyframes transition-out {
1099
+ 0% {
1100
+ opacity: 1;
1101
+ }
1102
+ 100% {
1103
+ opacity: 0;
1104
+ }
1105
+ }
1106
+ .toolbar-help-overlay.-hiding, .toolbar-help-overlay.-hiding::backdrop {
1107
+ animation: 0.25s ease transition-out;
1108
+ opacity: 0;
1109
+ }
1110
+ .toolbar-help-overlay.-dragging {
1111
+ transition: none;
1112
+ }
1113
+ @media (prefers-reduced-motion: reduce) {
1114
+ .toolbar-help-overlay {
1115
+ transition: none;
1116
+ }
1117
+ }
1118
+ @media screen and (min-width: 800px) {
1119
+ .toolbar-help-overlay > .navigation-buttons {
1120
+ order: 1;
1121
+ margin-top: auto;
1122
+ }
1123
+ }
1124
+ .toolbar-help-overlay .with-text-shadow, .toolbar-help-overlay .help-page-container > .label, .toolbar-help-overlay button {
1125
+ text-shadow: 0 0 3px rgba(20, 20, 20, 0.9);
1126
+ filter: drop-shadow(0px 0px 2px rgba(0, 0, 0, 0.5));
1127
+ }
1128
+ .toolbar-help-overlay button:not(:disabled) {
1129
+ cursor: pointer;
1130
+ }
1131
+ .toolbar-help-overlay button {
1132
+ background: transparent;
1133
+ border: none;
1134
+ color: var(--help-overlay-foreground);
1135
+ border-radius: 15px;
1136
+ }
1137
+ .toolbar-help-overlay .close-button {
1138
+ align-self: flex-start;
1139
+ width: 48px;
1140
+ height: 48px;
1141
+ z-index: 1;
1142
+ }
1143
+ .toolbar-help-overlay .close-button > svg {
1144
+ width: 100%;
1145
+ }
1146
+ .toolbar-help-overlay .navigation-content {
1147
+ flex-grow: 1;
1148
+ display: flex;
1149
+ }
1150
+ .toolbar-help-overlay .help-page-container {
1151
+ display: flex;
1152
+ align-items: center;
1153
+ flex-grow: 1;
1154
+ touch-action: none;
1155
+ }
1156
+ .toolbar-help-overlay .help-page-container > .label {
1157
+ flex-grow: 1;
1158
+ text-align: center;
1159
+ font-size: 18.5pt;
1160
+ margin-left: 15px;
1161
+ margin-right: 15px;
1162
+ margin-top: 0px;
1163
+ z-index: 1;
1164
+ transition: 0.5s ease margin-top;
1165
+ }
1166
+ .toolbar-help-overlay .help-page-container > .label.-large-space-below {
1167
+ margin-top: 0;
1168
+ margin-bottom: auto;
1169
+ }
1170
+ .toolbar-help-overlay .help-page-container > .label.-small-space-above {
1171
+ margin-top: 40px;
1172
+ margin-bottom: auto;
1173
+ }
1174
+ .toolbar-help-overlay .help-page-container > .label.-large-space-above {
1175
+ margin-top: auto;
1176
+ margin-bottom: 10px;
1177
+ }
1178
+ @media (prefers-reduced-motion: reduce) {
1179
+ .toolbar-help-overlay .help-page-container > .label {
1180
+ transition: none;
1181
+ }
1182
+ }
1183
+ .toolbar-help-overlay .help-page-container > .cloned-element-container {
1184
+ position: absolute;
1185
+ z-index: 0;
1186
+ user-select: none;
1187
+ -webkit-user-select: none;
1188
+ border-radius: 10px;
1189
+ opacity: 0.01;
1190
+ background-color: rgba(100, 100, 100, 0.01);
1191
+ box-shadow: none;
1192
+ transition: 0.5s ease opacity, 0.5s ease background-color;
1193
+ }
1194
+ .toolbar-help-overlay .help-page-container > .cloned-element-container * {
1195
+ pointer-events: none !important;
1196
+ }
1197
+ .toolbar-help-overlay .help-page-container > .cloned-element-container > * {
1198
+ margin: 0;
1199
+ opacity: 0.01 !important;
1200
+ transition: 0.3s ease opacity !important;
1201
+ }
1202
+ .toolbar-help-overlay .help-page-container > .cloned-element-container:not(.-clickable) * {
1203
+ cursor: unset !important;
1204
+ }
1205
+ .toolbar-help-overlay .help-page-container > .cloned-element-container.-clickable, .toolbar-help-overlay .help-page-container > .cloned-element-container.-background {
1206
+ z-index: 1;
1207
+ touch-action: none;
1208
+ }
1209
+ .toolbar-help-overlay .help-page-container > .cloned-element-container.-clickable {
1210
+ cursor: pointer;
1211
+ z-index: 2;
1212
+ }
1213
+ .toolbar-help-overlay .help-page-container > .cloned-element-container.-clickable.has-long-press-or-hover {
1214
+ opacity: 0.5 !important;
1215
+ }
1216
+ .toolbar-help-overlay .help-page-container > .cloned-element-container.-clickable.has-long-press-or-hover, .toolbar-help-overlay .help-page-container > .cloned-element-container.-active {
1217
+ background-color: var(--background-color-1);
1218
+ }
1219
+ .toolbar-help-overlay .help-page-container > .cloned-element-container.-active {
1220
+ opacity: 1;
1221
+ background-color: var(--background-color-1);
1222
+ box-shadow: 0 0 3px rgba(100, 100, 100, 0.5);
1223
+ }
1224
+ .toolbar-help-overlay .help-page-container > .cloned-element-container.-active > * {
1225
+ opacity: 1 !important;
1226
+ }
1227
+ .toolbar-help-overlay .navigation-buttons {
1228
+ display: flex;
1229
+ flex-direction: row;
1230
+ justify-content: space-between;
1231
+ direction: ltr;
1232
+ }
1233
+ .toolbar-help-overlay .navigation-buttons > button:disabled {
1234
+ opacity: 0.5;
1235
+ }
1236
+ .toolbar-help-overlay .navigation-buttons > .next, .toolbar-help-overlay .navigation-buttons > .previous {
1237
+ font-size: 1em;
1238
+ padding: 10px;
1239
+ transition: 0.2s ease font-size;
1240
+ z-index: 3;
1241
+ }
1242
+ @media (prefers-reduced-motion: reduce) {
1243
+ .toolbar-help-overlay .navigation-buttons > .next, .toolbar-help-overlay .navigation-buttons > .previous {
1244
+ transition: none;
1245
+ }
1246
+ }
1247
+ .toolbar-help-overlay .navigation-buttons:not(.-has-previous) > .next:not(:disabled) {
1248
+ animation: 0.5s ease highlight-button 0.5s;
1249
+ }
1250
+ @keyframes highlight-button {
1251
+ 0% {
1252
+ transform: scale(1);
1253
+ }
1254
+ 50% {
1255
+ transform: scale(1.2);
1256
+ }
1257
+ 55% {
1258
+ transform: scale(1.2) rotate(2deg);
1259
+ }
1260
+ 65% {
1261
+ transform: scale(1.2) rotate(-2deg);
1262
+ }
1263
+ 100% {
1264
+ transform: scale(1);
1265
+ }
1266
+ }
1267
+ @media (prefers-reduced-motion: reduce) {
1268
+ .toolbar-help-overlay .navigation-buttons:not(.-has-previous) > .next:not(:disabled) {
1269
+ animation: none;
1270
+ }
1271
+ }
1272
+ .toolbar-help-overlay .navigation-buttons > .next::after {
1273
+ content: "❯";
1274
+ margin-left: 3px;
1275
+ }
1276
+ .toolbar-help-overlay .navigation-buttons > .previous::before {
1277
+ content: "❮";
1278
+ margin-right: 3px;
1279
+ }
1280
+ .toolbar-help-overlay .navigation-buttons.-has-next > .next {
1281
+ font-size: 1.4em;
1282
+ }
1283
+ .toolbar-help-overlay .navigation-buttons.-has-previous > .previous {
1284
+ font-size: 1.4em;
1285
+ }
1286
+ .toolbar-help-overlay .navigation-buttons.-highlight-next > .next, .toolbar-help-overlay .navigation-buttons.-highlight-previous > .previous {
1287
+ font-weight: bold;
1288
+ background-color: rgba(200, 200, 200, 0.1);
1289
+ font-size: 1.4em;
1290
+ }
1291
+ .toolbar-help-overlay .navigation-help {
1292
+ margin-top: 1em;
1293
+ font-size: 0.7em;
1294
+ }
1295
+
1296
+ .toolbar-element .toolbar-help-overlay-button {
1297
+ height: 0;
1298
+ position: relative;
1299
+ display: flex;
1300
+ justify-content: end;
1301
+ }
1302
+ .toolbar-element .toolbar-help-overlay-button > .button {
1303
+ margin: 0;
1304
+ padding: 5px;
1305
+ padding-top: 0;
1306
+ padding-bottom: 0;
1307
+ box-shadow: none;
1308
+ text-align: center;
1309
+ opacity: 0.5;
1310
+ }
1311
+ .toolbar-element .toolbar-help-overlay-button > .button > .icon {
1312
+ width: 1.18em;
1313
+ height: 1.18em;
1314
+ transition: 0.2s ease filter;
1315
+ }
1316
+ .toolbar-element .toolbar-help-overlay-button > .button:focus-visible > .icon, .toolbar-element .toolbar-help-overlay-button > .button:hover > .icon {
1317
+ filter: drop-shadow(0px 0px 1px var(--shadow-color));
1318
+ }
1319
+
1036
1320
  .ScrollbarTool-overlay {
1037
1321
  width: 0;
1038
1322
  height: 0;
@@ -1155,6 +1439,9 @@
1155
1439
  .overlay.handleOverlay .selection-tool-selection-inner-container > * {
1156
1440
  pointer-events: all;
1157
1441
  }
1442
+ .overlay.handleOverlay .selection-tool-selection-inner-container.-empty {
1443
+ opacity: 0;
1444
+ }
1158
1445
 
1159
1446
  @keyframes selection-duplicated-animation {
1160
1447
  0% {