sketchmark 1.1.2 → 1.1.4
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 +101 -104
- package/dist/animation/index.d.ts +5 -0
- package/dist/animation/index.d.ts.map +1 -1
- package/dist/index.cjs +258 -76
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +258 -76
- package/dist/index.js.map +1 -1
- package/dist/sketchmark.iife.js +258 -76
- package/dist/ui/embed.d.ts +24 -1
- package/dist/ui/embed.d.ts.map +1 -1
- package/package.json +70 -72
package/README.md
CHANGED
|
@@ -60,52 +60,55 @@ a --> b label="greets"
|
|
|
60
60
|
end
|
|
61
61
|
`.trim();
|
|
62
62
|
|
|
63
|
-
const instance = render({
|
|
64
|
-
container: document.getElementById('diagram'),
|
|
65
|
-
dsl,
|
|
66
|
-
renderer: 'svg',
|
|
67
|
-
svgOptions: { showTitle: true, theme: 'light', transparent: true },
|
|
68
|
-
});
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
### Reusable UI Widgets
|
|
72
|
-
|
|
73
|
-
```javascript
|
|
74
|
-
import { SketchmarkCanvas, SketchmarkEditor } from 'sketchmark';
|
|
75
|
-
|
|
76
|
-
const editor = new SketchmarkEditor({
|
|
77
|
-
container: document.getElementById('editor'),
|
|
78
|
-
value: `
|
|
79
|
-
diagram
|
|
80
|
-
box app label="App"
|
|
81
|
-
box api label="API"
|
|
82
|
-
app --> api
|
|
83
|
-
end
|
|
84
|
-
`.trim(),
|
|
85
|
-
});
|
|
86
|
-
|
|
87
|
-
const canvas = new SketchmarkCanvas({
|
|
88
|
-
container: document.getElementById('viewport'),
|
|
89
|
-
});
|
|
90
|
-
|
|
91
|
-
canvas.bindEditor(editor);
|
|
92
|
-
```
|
|
93
|
-
|
|
94
|
-
```javascript
|
|
95
|
-
import { SketchmarkEmbed } from 'sketchmark';
|
|
96
|
-
|
|
63
|
+
const instance = render({
|
|
64
|
+
container: document.getElementById('diagram'),
|
|
65
|
+
dsl,
|
|
66
|
+
renderer: 'svg',
|
|
67
|
+
svgOptions: { showTitle: true, theme: 'light', transparent: true },
|
|
68
|
+
});
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### Reusable UI Widgets
|
|
72
|
+
|
|
73
|
+
```javascript
|
|
74
|
+
import { SketchmarkCanvas, SketchmarkEditor } from 'sketchmark';
|
|
75
|
+
|
|
76
|
+
const editor = new SketchmarkEditor({
|
|
77
|
+
container: document.getElementById('editor'),
|
|
78
|
+
value: `
|
|
79
|
+
diagram
|
|
80
|
+
box app label="App"
|
|
81
|
+
box api label="API"
|
|
82
|
+
app --> api
|
|
83
|
+
end
|
|
84
|
+
`.trim(),
|
|
85
|
+
});
|
|
86
|
+
|
|
87
|
+
const canvas = new SketchmarkCanvas({
|
|
88
|
+
container: document.getElementById('viewport'),
|
|
89
|
+
});
|
|
90
|
+
|
|
91
|
+
canvas.bindEditor(editor);
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
```javascript
|
|
95
|
+
import { SketchmarkEmbed } from 'sketchmark';
|
|
96
|
+
|
|
97
97
|
const embed = new SketchmarkEmbed({
|
|
98
98
|
container: document.getElementById('article-embed'),
|
|
99
99
|
dsl,
|
|
100
100
|
width: 960,
|
|
101
101
|
height: 540,
|
|
102
102
|
playStepDelay: 700,
|
|
103
|
+
fitPadding: 24,
|
|
104
|
+
zoomMin: 0.08,
|
|
105
|
+
zoomMax: 4,
|
|
103
106
|
});
|
|
104
107
|
```
|
|
105
108
|
|
|
106
|
-
Use `SketchmarkCanvas` for the full playground-style surface, and `SketchmarkEmbed` for fixed-size embeds that clip overflow and
|
|
107
|
-
|
|
108
|
-
---
|
|
109
|
+
Use `SketchmarkCanvas` for the full playground-style surface, and `SketchmarkEmbed` for fixed-size embeds that clip overflow, auto-fit large diagrams, and expose built-in `+`, `-`, and reset-to-fit controls alongside step playback.
|
|
110
|
+
|
|
111
|
+
---
|
|
109
112
|
|
|
110
113
|
## Framework Setup
|
|
111
114
|
|
|
@@ -114,10 +117,6 @@ Use `SketchmarkCanvas` for the full playground-style surface, and `SketchmarkEmb
|
|
|
114
117
|
```html
|
|
115
118
|
<!DOCTYPE html>
|
|
116
119
|
<html>
|
|
117
|
-
<head>
|
|
118
|
-
<!-- rough.js MUST load before sketchmark -->
|
|
119
|
-
<script src="https://unpkg.com/roughjs@4.6.6/bundled/rough.js"></script>
|
|
120
|
-
</head>
|
|
121
120
|
<body>
|
|
122
121
|
<div id="diagram"></div>
|
|
123
122
|
|
|
@@ -400,34 +399,34 @@ a --> b label="HTTPS" stroke="#cc0000" stroke-width=2 color="#aa0000" font-size=
|
|
|
400
399
|
|
|
401
400
|
---
|
|
402
401
|
|
|
403
|
-
## Groups
|
|
404
|
-
|
|
405
|
-
Groups visually contain one or more nodes, tables, charts, markdown blocks,
|
|
406
|
-
or other groups by referencing their ids with `items=[...]`.
|
|
407
|
-
|
|
408
|
-
```
|
|
409
|
-
box a label="Node A"
|
|
410
|
-
box b label="Node B"
|
|
411
|
-
box c label="Node C"
|
|
412
|
-
|
|
413
|
-
group inner label="Inner Group" layout=row items=[c]
|
|
414
|
-
group outer label="Outer Group" layout=column items=[a,b,inner]
|
|
415
|
-
```
|
|
416
|
-
|
|
417
|
-
General form:
|
|
418
|
-
|
|
419
|
-
```
|
|
420
|
-
group <id> [label="..."] [layout=row|column|grid] [gap=N] [padding=N]
|
|
421
|
-
[columns=N] [align=start|center|end]
|
|
422
|
-
[justify=start|center|end|space-between|space-around]
|
|
423
|
-
[theme=...] [fill="..."] [stroke="..."] [width=N] [height=N]
|
|
424
|
-
[items=[id1,id2,...]]
|
|
425
|
-
```
|
|
426
|
-
|
|
427
|
-
- Groups are always declared at the top level.
|
|
428
|
-
- `items` order is the visual child order.
|
|
429
|
-
- Nested groups are created by referencing another group id from `items=[...]`.
|
|
430
|
-
- All authored nodes, groups, tables, charts, and markdown blocks must have explicit ids.
|
|
402
|
+
## Groups
|
|
403
|
+
|
|
404
|
+
Groups visually contain one or more nodes, tables, charts, markdown blocks,
|
|
405
|
+
or other groups by referencing their ids with `items=[...]`.
|
|
406
|
+
|
|
407
|
+
```
|
|
408
|
+
box a label="Node A"
|
|
409
|
+
box b label="Node B"
|
|
410
|
+
box c label="Node C"
|
|
411
|
+
|
|
412
|
+
group inner label="Inner Group" layout=row items=[c]
|
|
413
|
+
group outer label="Outer Group" layout=column items=[a,b,inner]
|
|
414
|
+
```
|
|
415
|
+
|
|
416
|
+
General form:
|
|
417
|
+
|
|
418
|
+
```
|
|
419
|
+
group <id> [label="..."] [layout=row|column|grid] [gap=N] [padding=N]
|
|
420
|
+
[columns=N] [align=start|center|end]
|
|
421
|
+
[justify=start|center|end|space-between|space-around]
|
|
422
|
+
[theme=...] [fill="..."] [stroke="..."] [width=N] [height=N]
|
|
423
|
+
[items=[id1,id2,...]]
|
|
424
|
+
```
|
|
425
|
+
|
|
426
|
+
- Groups are always declared at the top level.
|
|
427
|
+
- `items` order is the visual child order.
|
|
428
|
+
- Nested groups are created by referencing another group id from `items=[...]`.
|
|
429
|
+
- All authored nodes, groups, tables, charts, and markdown blocks must have explicit ids.
|
|
431
430
|
|
|
432
431
|
### Group Properties
|
|
433
432
|
|
|
@@ -449,13 +448,13 @@ group <id> [label="..."] [layout=row|column|grid] [gap=N] [padding=N]
|
|
|
449
448
|
|
|
450
449
|
#### `bare` keyword
|
|
451
450
|
|
|
452
|
-
`bare` is an alias for a group with no visible border or fill:
|
|
453
|
-
|
|
454
|
-
```
|
|
455
|
-
box a label="Floating A"
|
|
456
|
-
box b label="Floating B"
|
|
457
|
-
bare myContainer layout=row items=[a,b]
|
|
458
|
-
```
|
|
451
|
+
`bare` is an alias for a group with no visible border or fill:
|
|
452
|
+
|
|
453
|
+
```
|
|
454
|
+
box a label="Floating A"
|
|
455
|
+
box b label="Floating B"
|
|
456
|
+
bare myContainer layout=row items=[a,b]
|
|
457
|
+
```
|
|
459
458
|
|
|
460
459
|
---
|
|
461
460
|
|
|
@@ -582,9 +581,9 @@ theme muted fill="#f5f5f5" stroke="#999999" color="#444444"
|
|
|
582
581
|
|
|
583
582
|
box client label="Client" theme=primary
|
|
584
583
|
box server label="Server" theme=warning
|
|
585
|
-
cylinder db label="DB" theme=success
|
|
586
|
-
group services label="Services" theme=muted items=[client,server,db]
|
|
587
|
-
```
|
|
584
|
+
cylinder db label="DB" theme=success
|
|
585
|
+
group services label="Services" theme=muted items=[client,server,db]
|
|
586
|
+
```
|
|
588
587
|
|
|
589
588
|
---
|
|
590
589
|
|
|
@@ -635,7 +634,7 @@ step <action> <target> [options]
|
|
|
635
634
|
| Action | Target | Options | Description |
|
|
636
635
|
|--------|--------|---------|-------------|
|
|
637
636
|
| `highlight` | node/edge/group | — | Pulsing glow highlight (only one element at a time) |
|
|
638
|
-
| `draw` | node/edge/group/table/chart/markdown | `duration=N` | Animated reveal; drawing a group also reveals its subtree unless descendants have their own later draw step |
|
|
637
|
+
| `draw` | node/edge/group/table/chart/markdown | `duration=N` | Animated reveal; drawing a group also reveals its subtree unless descendants have their own later draw step |
|
|
639
638
|
| `fade` | node/edge/group | — | Fade to 22% opacity |
|
|
640
639
|
| `unfade` | node/edge/group | — | Restore from fade |
|
|
641
640
|
| `erase` | node/edge/group | `duration=N` | Fade to invisible (opacity 0) |
|
|
@@ -677,8 +676,6 @@ step crossout wrong # X through "wrong" node
|
|
|
677
676
|
step bracket sun leaf # curly brace spanning "sun" and "leaf"
|
|
678
677
|
```
|
|
679
678
|
|
|
680
|
-
Annotations require rough.js to be loaded. They are drawn into a dedicated SVG layer on top of the diagram.
|
|
681
|
-
|
|
682
679
|
### Parallel Steps (Beat)
|
|
683
680
|
|
|
684
681
|
Fire multiple steps simultaneously with `beat { }`:
|
|
@@ -853,25 +850,25 @@ config pointer=hand # hand cursor
|
|
|
853
850
|
|
|
854
851
|
The pointer only appears during annotation steps — it follows the guide path as the annotation draws in, then fades out.
|
|
855
852
|
|
|
856
|
-
### Pre-hidden Elements (Draw Targets)
|
|
857
|
-
|
|
858
|
-
Any element targeted by a `step draw` action starts **hidden** and only appears when that step fires. Elements NOT targeted by `draw` are always visible.
|
|
859
|
-
|
|
860
|
-
For groups, this applies to the whole subtree:
|
|
861
|
-
|
|
862
|
-
- `step draw group1` pre-hides the group and all descendant nodes, nested groups, tables, charts, notes, and markdown blocks.
|
|
863
|
-
- When the group step fires, descendants without their own later `draw` step are revealed immediately.
|
|
864
|
-
- Descendants with an explicit later `draw` step stay hidden until that later step.
|
|
865
|
-
- Edges are still independent; a group draw does not automatically reveal connected edges.
|
|
866
|
-
|
|
867
|
-
For group targets, these actions also apply recursively to the same subtree:
|
|
868
|
-
|
|
869
|
-
- `fade` / `unfade`
|
|
870
|
-
- `show` / `hide`
|
|
871
|
-
- `erase`
|
|
872
|
-
- Edges still remain explicit for these actions too.
|
|
873
|
-
|
|
874
|
-
---
|
|
853
|
+
### Pre-hidden Elements (Draw Targets)
|
|
854
|
+
|
|
855
|
+
Any element targeted by a `step draw` action starts **hidden** and only appears when that step fires. Elements NOT targeted by `draw` are always visible.
|
|
856
|
+
|
|
857
|
+
For groups, this applies to the whole subtree:
|
|
858
|
+
|
|
859
|
+
- `step draw group1` pre-hides the group and all descendant nodes, nested groups, tables, charts, notes, and markdown blocks.
|
|
860
|
+
- When the group step fires, descendants without their own later `draw` step are revealed immediately.
|
|
861
|
+
- Descendants with an explicit later `draw` step stay hidden until that later step.
|
|
862
|
+
- Edges are still independent; a group draw does not automatically reveal connected edges.
|
|
863
|
+
|
|
864
|
+
For group targets, these actions also apply recursively to the same subtree:
|
|
865
|
+
|
|
866
|
+
- `fade` / `unfade`
|
|
867
|
+
- `show` / `hide`
|
|
868
|
+
- `erase`
|
|
869
|
+
- Edges still remain explicit for these actions too.
|
|
870
|
+
|
|
871
|
+
---
|
|
875
872
|
|
|
876
873
|
## Config Options
|
|
877
874
|
|
|
@@ -1110,8 +1107,8 @@ exportHTML(instance.svg, dslSource, { filename: 'diagram.html' });
|
|
|
1110
1107
|
| `<-->` | Edge | `a <--> b` |
|
|
1111
1108
|
| `--` | Edge | `a -- b` |
|
|
1112
1109
|
| `---` | Edge | `a --- b` |
|
|
1113
|
-
| `group` | Group | `group myGroup label="Services" layout=column items=[api,db]` |
|
|
1114
|
-
| `bare` | Group | `bare myWrap layout=row items=[a,b]` |
|
|
1110
|
+
| `group` | Group | `group myGroup label="Services" layout=column items=[api,db]` |
|
|
1111
|
+
| `bare` | Group | `bare myWrap layout=row items=[a,b]` |
|
|
1115
1112
|
| `table` | Table | `table myTable label="Users" { header Name Age }` |
|
|
1116
1113
|
| `bar-chart` | Chart | `bar-chart sales label="Sales" data [...]` |
|
|
1117
1114
|
| `line-chart` | Chart | `line-chart trend data [...]` |
|
|
@@ -1255,4 +1252,4 @@ interface DiagramInstance {
|
|
|
1255
1252
|
3. **Animation only works with SVG renderer** — the canvas renderer does not support animated steps.
|
|
1256
1253
|
4. **`step draw` makes elements start hidden** — any element you intend to `draw` will be invisible until its step fires.
|
|
1257
1254
|
5. **Node IDs must be unique** — duplicate IDs are silently deduplicated (only first definition kept).
|
|
1258
|
-
6. **Group children inherit group's coordinate space** — edges can connect across group boundaries using the node/group ID directly.
|
|
1255
|
+
6. **Group children inherit group's coordinate space** — edges can connect across group boundaries using the node/group ID directly.
|
|
@@ -20,6 +20,7 @@ export declare class AnimationController {
|
|
|
20
20
|
private _config?;
|
|
21
21
|
private _step;
|
|
22
22
|
private _pendingStepTimers;
|
|
23
|
+
private _pendingNarrationTimers;
|
|
23
24
|
private _transforms;
|
|
24
25
|
private _listeners;
|
|
25
26
|
readonly drawTargetEdges: Set<string>;
|
|
@@ -34,6 +35,7 @@ export declare class AnimationController {
|
|
|
34
35
|
private readonly _groupDescendantIds;
|
|
35
36
|
private _captionEl;
|
|
36
37
|
private _captionTextEl;
|
|
38
|
+
private _narrationRunId;
|
|
37
39
|
private _annotationLayer;
|
|
38
40
|
private _annotations;
|
|
39
41
|
private _pointerEl;
|
|
@@ -67,7 +69,10 @@ export declare class AnimationController {
|
|
|
67
69
|
prev(): boolean;
|
|
68
70
|
play(msPerStep?: number): Promise<void>;
|
|
69
71
|
goTo(index: number): void;
|
|
72
|
+
private _clearTimerBucket;
|
|
70
73
|
private _clearPendingStepTimers;
|
|
74
|
+
private _cancelNarrationTyping;
|
|
75
|
+
private _scheduleTimer;
|
|
71
76
|
private _scheduleStep;
|
|
72
77
|
private _stepWaitMs;
|
|
73
78
|
private _playbackWaitMs;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/animation/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAoB,WAAW,EAAE,MAAM,cAAc,CAAC;AAGlE,MAAM,MAAM,kBAAkB,GAC1B,aAAa,GACb,eAAe,GACf,iBAAiB,GACjB,iBAAiB,GACjB,eAAe,CAAC;AACpB,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,kBAAkB,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf;AACD,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,EAAE,cAAc,KAAK,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/animation/index.ts"],"names":[],"mappings":"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"}
|