@miragon/modeler-shell 0.1.0 → 0.2.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 (97) hide show
  1. package/API.md +1051 -84
  2. package/README.md +162 -31
  3. package/dist/appearance-BBaM_4bD.d.ts +323 -0
  4. package/dist/appearance-XX3JC3pI.d.cts +323 -0
  5. package/dist/{chunk-6LQOFACK.js → chunk-66HCSJNY.js} +1247 -31
  6. package/dist/chunk-66HCSJNY.js.map +1 -0
  7. package/dist/{chunk-RJRFR6N3.js → chunk-KYDG5DMX.js} +2 -2
  8. package/dist/{chunk-5JSZ4VGA.js → chunk-OADW3GPA.js} +240 -6
  9. package/dist/chunk-OADW3GPA.js.map +1 -0
  10. package/dist/core.cjs +260 -6
  11. package/dist/core.cjs.map +1 -1
  12. package/dist/core.d.cts +81 -6
  13. package/dist/core.d.ts +81 -6
  14. package/dist/core.js +43 -3
  15. package/dist/diagram-js.cjs +34 -2
  16. package/dist/diagram-js.cjs.map +1 -1
  17. package/dist/diagram-js.d.cts +10 -3
  18. package/dist/diagram-js.d.ts +10 -3
  19. package/dist/diagram-js.js +14 -2
  20. package/dist/diagram-js.js.map +1 -1
  21. package/dist/index.cjs +1654 -197
  22. package/dist/index.cjs.map +1 -1
  23. package/dist/index.d.cts +18 -9
  24. package/dist/index.d.ts +18 -9
  25. package/dist/index.js +44 -4
  26. package/dist/shell.css +692 -3
  27. package/dist/testing-vscode-stub.js +2 -2
  28. package/dist/testing.cjs +2849 -550
  29. package/dist/testing.cjs.map +1 -1
  30. package/dist/testing.d.cts +75 -9
  31. package/dist/testing.d.ts +75 -9
  32. package/dist/testing.js +2744 -558
  33. package/dist/testing.js.map +1 -1
  34. package/dist/toasts-Bp0REqdq.d.cts +142 -0
  35. package/dist/toasts-Bp0REqdq.d.ts +142 -0
  36. package/dist/{types-OuFlqZp0.d.cts → types-CnRrINRs.d.cts} +170 -9
  37. package/dist/{types-DnZn9CPw.d.ts → types-PuDZczzy.d.ts} +170 -9
  38. package/dist/vscode-extension.js +2 -2
  39. package/dist/vscode-webview.cjs +1541 -178
  40. package/dist/vscode-webview.cjs.map +1 -1
  41. package/dist/vscode-webview.d.cts +6 -4
  42. package/dist/vscode-webview.d.ts +6 -4
  43. package/dist/vscode-webview.js +11 -2
  44. package/dist/vscode-webview.js.map +1 -1
  45. package/package.json +2 -2
  46. package/src/core/feedback/appearance.ts +141 -0
  47. package/src/core/feedback/problems.ts +23 -0
  48. package/src/core/feedback/toasts.ts +118 -0
  49. package/src/core/fit.ts +18 -3
  50. package/src/core/index.ts +43 -0
  51. package/src/core/keymap.ts +20 -0
  52. package/src/core/messages.ts +71 -0
  53. package/src/core/types.ts +24 -2
  54. package/src/core/web-chrome/bottom-row.ts +37 -0
  55. package/src/core/web-chrome/drop.ts +78 -0
  56. package/src/core/web-chrome/top-row.ts +66 -0
  57. package/src/diagram-js/service.ts +4 -1
  58. package/src/diagram-js/viewport.ts +19 -0
  59. package/src/dom/buttons.css +124 -0
  60. package/src/dom/feedback/appearance.ts +184 -0
  61. package/src/dom/feedback/feedback.css +435 -0
  62. package/src/dom/feedback/problems-popover.ts +287 -0
  63. package/src/dom/feedback/toasts.ts +431 -0
  64. package/src/dom/index.ts +13 -0
  65. package/src/dom/keys.ts +8 -0
  66. package/src/dom/menu.ts +28 -17
  67. package/src/dom/mount.ts +290 -20
  68. package/src/dom/problems.ts +5 -4
  69. package/src/dom/shell-dom.css +7 -4
  70. package/src/dom/types.ts +188 -6
  71. package/src/dom/web/drop-zone.ts +181 -0
  72. package/src/dom/web/empty-state.ts +144 -0
  73. package/src/dom/web/legal.ts +75 -0
  74. package/src/dom/web/menu-groups.ts +69 -0
  75. package/src/dom/web/primary.ts +124 -0
  76. package/src/dom/web/web.css +386 -0
  77. package/src/shell.css +3 -0
  78. package/src/testing/case-tools.ts +164 -0
  79. package/src/testing/cases.ts +209 -144
  80. package/src/testing/checks.ts +51 -15
  81. package/src/testing/facts.ts +56 -2
  82. package/src/testing/geometry.ts +206 -26
  83. package/src/testing/harness.ts +56 -7
  84. package/src/testing/index.ts +4 -0
  85. package/src/testing/page-tools.ts +24 -1
  86. package/src/testing/page.ts +10 -0
  87. package/src/testing/web-cases.ts +913 -0
  88. package/src/testing/web-checks.ts +1049 -0
  89. package/src/testing/web-facts.ts +713 -0
  90. package/src/vscode/webview/mount.ts +13 -1
  91. package/dist/chunk-5JSZ4VGA.js.map +0 -1
  92. package/dist/chunk-6LQOFACK.js.map +0 -1
  93. package/dist/keymap-CObQE6q6.d.cts +0 -151
  94. package/dist/keymap-DORzHnK-.d.ts +0 -151
  95. package/dist/types-B6NfkiUG.d.cts +0 -66
  96. package/dist/types-B6NfkiUG.d.ts +0 -66
  97. /package/dist/{chunk-RJRFR6N3.js.map → chunk-KYDG5DMX.js.map} +0 -0
package/dist/core.js CHANGED
@@ -1,17 +1,23 @@
1
1
  import {
2
+ APPEARANCE_STORAGE_KEY,
2
3
  CHROME_ISLANDS,
3
4
  FIT_ANIMATION_MS,
4
5
  INVALID_STATUS_DELAY_MS,
6
+ LEGAL_LINE_HEIGHT,
5
7
  MAX_FIT_ZOOM,
8
+ MAX_TOASTS,
6
9
  PALETTE_CLEARANCE,
7
10
  REDUCED_MOTION_CLASS,
8
11
  SHELL,
9
12
  SHELL_TOKENS,
10
13
  TEXT_FIELD_SELECTOR,
14
+ TOAST_DURATION_MS,
15
+ TOAST_MAX_WIDTH,
11
16
  TOOLTIP_DELAY_MS,
12
17
  VIEW_TOLERANCE,
13
18
  ZOOM_MAX,
14
19
  ZOOM_MIN,
20
+ acceptsFile,
15
21
  appearanceAttributes,
16
22
  appearanceFromBodyClasses,
17
23
  appearanceFromColorThemeKind,
@@ -19,10 +25,14 @@ import {
19
25
  ariaKeyShortcutsFromLabel,
20
26
  canZoomIn,
21
27
  canZoomOut,
28
+ commandKeyLabel,
22
29
  decideKey,
23
30
  decidePaletteRow,
31
+ decideTopRow,
24
32
  defaultMessages,
25
33
  detectPlatform,
34
+ documentMode,
35
+ dragVerdict,
26
36
  easeStandard,
27
37
  fitInsets,
28
38
  fitViewbox,
@@ -31,9 +41,12 @@ import {
31
41
  freeRectCenter,
32
42
  interpolateViewbox,
33
43
  isUndoRedoKey,
44
+ legalLineHeight,
34
45
  legendStartsOpen,
35
46
  matchChromeKey,
47
+ parseAppearanceChoice,
36
48
  placeTooltip,
49
+ problemSummary,
37
50
  reducedMotionFromBodyClasses,
38
51
  requestedAppearance,
39
52
  resolveAppearance,
@@ -41,22 +54,35 @@ import {
41
54
  sameView,
42
55
  shellSizesFromTokens,
43
56
  shortcutLabel,
44
- zoomReadout
45
- } from "./chunk-5JSZ4VGA.js";
57
+ toastLifetime,
58
+ toastStackBottom,
59
+ toastStackWidth,
60
+ toastToEvict,
61
+ webHeadMarkup,
62
+ webModeScript,
63
+ zoomReadout,
64
+ zoomRowRaised
65
+ } from "./chunk-OADW3GPA.js";
46
66
  export {
67
+ APPEARANCE_STORAGE_KEY,
47
68
  CHROME_ISLANDS,
48
69
  FIT_ANIMATION_MS,
49
70
  INVALID_STATUS_DELAY_MS,
71
+ LEGAL_LINE_HEIGHT,
50
72
  MAX_FIT_ZOOM,
73
+ MAX_TOASTS,
51
74
  PALETTE_CLEARANCE,
52
75
  REDUCED_MOTION_CLASS,
53
76
  SHELL,
54
77
  SHELL_TOKENS,
55
78
  TEXT_FIELD_SELECTOR,
79
+ TOAST_DURATION_MS,
80
+ TOAST_MAX_WIDTH,
56
81
  TOOLTIP_DELAY_MS,
57
82
  VIEW_TOLERANCE,
58
83
  ZOOM_MAX,
59
84
  ZOOM_MIN,
85
+ acceptsFile,
60
86
  appearanceAttributes,
61
87
  appearanceFromBodyClasses,
62
88
  appearanceFromColorThemeKind,
@@ -64,10 +90,14 @@ export {
64
90
  ariaKeyShortcutsFromLabel,
65
91
  canZoomIn,
66
92
  canZoomOut,
93
+ commandKeyLabel,
67
94
  decideKey,
68
95
  decidePaletteRow,
96
+ decideTopRow,
69
97
  defaultMessages,
70
98
  detectPlatform,
99
+ documentMode,
100
+ dragVerdict,
71
101
  easeStandard,
72
102
  fitInsets,
73
103
  fitViewbox,
@@ -76,9 +106,12 @@ export {
76
106
  freeRectCenter,
77
107
  interpolateViewbox,
78
108
  isUndoRedoKey,
109
+ legalLineHeight,
79
110
  legendStartsOpen,
80
111
  matchChromeKey,
112
+ parseAppearanceChoice,
81
113
  placeTooltip,
114
+ problemSummary,
82
115
  reducedMotionFromBodyClasses,
83
116
  requestedAppearance,
84
117
  resolveAppearance,
@@ -86,6 +119,13 @@ export {
86
119
  sameView,
87
120
  shellSizesFromTokens,
88
121
  shortcutLabel,
89
- zoomReadout
122
+ toastLifetime,
123
+ toastStackBottom,
124
+ toastStackWidth,
125
+ toastToEvict,
126
+ webHeadMarkup,
127
+ webModeScript,
128
+ zoomReadout,
129
+ zoomRowRaised
90
130
  };
91
131
  //# sourceMappingURL=core.js.map
@@ -262,7 +262,27 @@ var defaultMessages = {
262
262
  emptyHint: "Pick a tool from the palette to start.",
263
263
  insertExample: "Insert example",
264
264
  invalidFile: (diagram) => `This file isn't a valid ${diagram} right now. The diagram shows the last valid version and is read-only until you fix the text.`,
265
- keyNames: { ctrl: "Ctrl", shift: "Shift", plus: "Plus", minus: "Minus" }
265
+ keyNames: { ctrl: "Ctrl", shift: "Shift", plus: "Plus", minus: "Minus" },
266
+ share: "Share",
267
+ legal: "Legal",
268
+ copyright: (year) => `\xA9 ${year} Miragon GmbH`,
269
+ opensInNewTab: "Opens in a new tab",
270
+ newDiagram: "New diagram",
271
+ openFile: "Open\u2026",
272
+ showExample: "Show example",
273
+ importFile: "Import\u2026",
274
+ appearance: "Appearance",
275
+ appearanceSystem: "System",
276
+ appearanceLight: "Light",
277
+ appearanceDark: "Dark",
278
+ problemsTitle: "Problems",
279
+ problemSeverity: (severity) => severity === "error" ? "Error" : "Warning",
280
+ close: "Close",
281
+ dropFile: "Drop file here",
282
+ dropForbidden: (reason) => reason === "multiple" ? "Drop one file at a time" : reason === "dialog" ? "Close the dialog to drop a file" : "This modeler can't open this file type",
283
+ dropHint: "Or drop a file here",
284
+ openFileLink: "Open a file\u2026",
285
+ cannotOpenFile: (name, accepted) => `Couldn't open \u201C${name}\u201D. Drop a ${accepted} file.`
266
286
  };
267
287
 
268
288
  // src/diagram-js/palette-skin.ts
@@ -616,7 +636,8 @@ var ShellDiagramService = class {
616
636
  onKeyboardKeydown = (context) => {
617
637
  const event = context.keyEvent;
618
638
  if (!event) return void 0;
619
- if (matchChromeKey(event)) return !isTextField(event.target);
639
+ if (matchChromeKey(event))
640
+ return !isTextField(event.target) && this.shell?.isEmptyStateShown?.() !== true;
620
641
  if (this.shell?.host === "ide" && isUndoRedoKey(event)) return false;
621
642
  return void 0;
622
643
  };
@@ -782,6 +803,17 @@ var DiagramViewport = class {
782
803
  }
783
804
  this.notify();
784
805
  }
806
+ newDocument() {
807
+ if (this.destroyed) return;
808
+ this.cancelAnimation();
809
+ this.userMoved = false;
810
+ this.firstFitPending = true;
811
+ this.emptyViewPending = true;
812
+ this.emptyViewDue = false;
813
+ this.autoFitDue = false;
814
+ this.pendingView = void 0;
815
+ this.fittable = void 0;
816
+ }
785
817
  restore(viewbox) {
786
818
  if (this.destroyed) return;
787
819
  this.importing = false;