@zenuml/core 3.47.2 → 3.47.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.
Files changed (27) hide show
  1. package/.claude/skills/zenuml-ux-research/SKILL.md +183 -0
  2. package/.claude/skills/zenuml-ux-research/references/assertion-catalog.md +261 -0
  3. package/.claude/skills/zenuml-ux-research/references/best-practices-overview.md +56 -0
  4. package/.claude/skills/zenuml-ux-research/references/report-template.md +89 -0
  5. package/.claude/skills/zenuml-ux-research/references/scenarios/edit-message-label.md +37 -0
  6. package/.claude/skills/zenuml-ux-research/references/scenarios/insert-message.md +36 -0
  7. package/.claude/skills/zenuml-ux-research/references/scenarios/insert-participant.md +31 -0
  8. package/.claude/skills/zenuml-ux-research/references/scenarios/rename-participant.md +33 -0
  9. package/.claude/skills/zenuml-ux-research/references/scenarios/undo-insert.md +35 -0
  10. package/dist/stats.html +1 -1
  11. package/dist/zenuml.esm.mjs +16234 -14426
  12. package/dist/zenuml.js +578 -536
  13. package/docs/superpowers/plans/2026-04-15-keyboard-editing-on-diagram.md +1992 -0
  14. package/docs/superpowers/plans/2026-04-15-zenuml-ux-research-skill.md +1452 -0
  15. package/docs/ux-research/.gitkeep +0 -0
  16. package/docs/ux-research/2026-04-15-rename-participant.md +156 -0
  17. package/docs/ux-research/2026-04-18-insert-participant.md +151 -0
  18. package/e2e/fixtures/create-message.html +26 -0
  19. package/e2e/fixtures/editable-label.html +1 -0
  20. package/e2e/fixtures/empty-diagram.html +23 -0
  21. package/e2e/fixtures/insert-participant.html +23 -0
  22. package/e2e/fixtures/reorder-cross-fragment.html +31 -0
  23. package/e2e/fixtures/reorder-fragment.html +29 -0
  24. package/e2e/fixtures/reorder-message.html +27 -0
  25. package/e2e/fixtures/type-switch.html +29 -0
  26. package/index.html +44 -0
  27. package/package.json +2 -2
@@ -0,0 +1,31 @@
1
+ ---
2
+ id: insert-participant
3
+ title: Insert a participant on a blank diagram
4
+ ---
5
+
6
+ ## User intent
7
+ The user opens ZenUML to a blank diagram and wants to add one participant named `Alice` so they can start modelling.
8
+
9
+ ## Starting DSL
10
+ ```
11
+ ```
12
+
13
+ ## Target DSL
14
+ ```
15
+ Alice
16
+ ```
17
+
18
+ ## Relevant assertion categories
19
+ INS, FOC, EDT, KBD
20
+
21
+ ## Walkthrough hints (not prescriptive)
22
+ - Blank canvas is the highest-stakes discoverability test — the skill should record how long it takes to find the insertion affordance.
23
+ - Candidate insertion paths to try in order:
24
+ 1. Click on the canvas background.
25
+ 2. Look for a visible "+" or "Add participant" affordance.
26
+ 3. Keyboard: try pressing Enter or `p` on an empty canvas.
27
+ 4. Fall back to typing directly into the DSL editor pane.
28
+ - The moment the user successfully names the new participant `Alice` is the scenario's end state.
29
+
30
+ ## Known issues to watch for (optional)
31
+ - If the only path is direct DSL editing, that itself is a finding (violates INS-01).
@@ -0,0 +1,33 @@
1
+ ---
2
+ id: rename-participant
3
+ title: Rename a participant via keyboard
4
+ ---
5
+
6
+ ## User intent
7
+ The user has a participant `A` on the canvas and wants to rename it to `Alice` without leaving the keyboard.
8
+
9
+ ## Starting DSL
10
+ ```
11
+ A
12
+ ```
13
+
14
+ ## Target DSL
15
+ ```
16
+ Alice
17
+ ```
18
+
19
+ ## Relevant assertion categories
20
+ KBD, EDT, SEL, FOC
21
+
22
+ ## Walkthrough hints (not prescriptive)
23
+ - This scenario is the canonical test of KBD-03 (Enter enters edit mode) and EDT-02 (caret at end of text).
24
+ - Candidate paths to try in order:
25
+ 1. Tab into the diagram widget, arrow-key to select `A`, press Enter, type `lice`, press Enter.
26
+ 2. Click `A` to select, press Enter, retype.
27
+ 3. Double-click `A` to enter edit mode.
28
+ 4. Fall back to editing the DSL editor directly.
29
+ - Watch specifically for: whether Enter does anything on the selected participant; whether the caret is placed at the end or the whole label is pre-selected; whether Escape cancels cleanly.
30
+
31
+ ## Known issues to watch for (optional)
32
+ - If Enter does nothing on a selected participant, that is a KBD-03 violation at high severity.
33
+ - If only mouse double-click works, that is a KBD-only violation (no mouse-free path).
@@ -0,0 +1,35 @@
1
+ ---
2
+ id: undo-insert
3
+ title: Undo a just-inserted message
4
+ ---
5
+
6
+ ## User intent
7
+ The user has two participants `A` and `B`, inserts a message `A->B: hello`, then immediately presses Ctrl/Cmd+Z to undo. The expected result is that the message is removed and the state is back to just the two participants.
8
+
9
+ ## Starting DSL
10
+ ```
11
+ A
12
+ B
13
+ ```
14
+
15
+ ## Target DSL
16
+ ```
17
+ A
18
+ B
19
+ ```
20
+ (after: insert `A->B: hello`, then undo)
21
+
22
+ ## Relevant assertion categories
23
+ UND, FOC, SEL, KBD
24
+
25
+ ## Walkthrough hints (not prescriptive)
26
+ - This scenario exercises the full insertion-then-undo round trip.
27
+ - Steps:
28
+ 1. Follow the `insert-message` scenario's walkthrough to get to the post-insert state.
29
+ 2. Press Ctrl+Z (or Cmd+Z on macOS).
30
+ 3. Observe: is the message removed? Is the DSL editor reverted? Is selection/focus restored to whatever it was before the insert?
31
+ - Watch specifically for: undo granularity (one Ctrl+Z should undo the whole insert, not the individual keystrokes of the label edit) and focus restoration (FOC-03).
32
+
33
+ ## Known issues to watch for (optional)
34
+ - If the undo leaves the label partially typed, UND-02 is violated.
35
+ - If focus ends up on the document body after undo, FOC-03 is violated.