sketchmark 1.1.3 → 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 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 follow animation targets as steps advance.
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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/animation/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/animation/index.ts"],"names":[],"mappings":"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"}