Release Diagram Tools 0.2.0
Verify / verify (push) Canceled after 0s

This commit is contained in:
2026-09-02 12:11:46 +02:00
parent b78f20f66a
commit f128568e4e
24 changed files with 599 additions and 77 deletions
+5
View File
@@ -1,5 +1,10 @@
# Changelog
## 0.2.0 - 2026-09-02
- Add safe deterministic entity-relationship, mind-map and timeline grammars,
richer diagnostics and accessible outline/export coverage.
## 0.1.0 - 2026-09-01
- Add bounded flowchart, sequence, class and state parser/layout.
+3 -3
View File
@@ -1,5 +1,5 @@
==============================================================================
@add-ideas/toolbox-contract@0.2.3
@add-ideas/toolbox-contract@0.3.0
Declared licence: Apache-2.0
==============================================================================
--- LICENSE ---
@@ -198,7 +198,7 @@ Declared licence: Apache-2.0
==============================================================================
@add-ideas/toolbox-helpers@0.1.0
@add-ideas/toolbox-helpers@0.2.0
Declared licence: GPL-3.0-or-later
==============================================================================
--- LICENSE ---
@@ -879,7 +879,7 @@ Public License instead of this License. But first, please read
==============================================================================
@add-ideas/toolbox-shell-react@0.2.3
@add-ideas/toolbox-shell-react@0.3.0
Declared licence: Apache-2.0
==============================================================================
--- LICENSE ---
+13 -1
View File
@@ -1,7 +1,19 @@
# Diagram Tools
Diagram Tools is a local, script-free editor for bounded flowchart, sequence,
class, state, entity-relationship, mind-map and timeline sources. It provides
line diagnostics, reusable examples, accessible outlines, pan/zoom, local
source import/export, normalized JSON, inert SVG and local PNG export. Mermaid
directives, styling, click handlers and external resources are never executed.
Diagram Tools is a GPL-3.0-or-later local text/visual editor with an independent safe Mermaid-like subset for flowchart/graph, sequence, class and state diagrams. It produces deterministic SVG, a local 2× PNG, syntax diagnostics, scroll/drag pan, 25300% zoom and an accessible textual outline.
Supported syntax is deliberately small: node declarations/shapes and four edge styles; participants/messages; class declarations/members/relations; state nodes/transitions. Directives, clicks, styles, scripts, HTML and remote assets are rejected. Caps: 50,000 characters, 2,000 lines, 200 nodes, 500 edges, 2,400 px layout edge and 20 megapixel PNG.
Supported syntax is deliberately small: node declarations/shapes and four edge
styles; participants/messages/notes; class declarations, bounded member blocks
and relations; labelled state nodes, start/end boundaries and transitions; ER
attributes/relations; hierarchical mind maps; and timeline sections/events.
Directives, clicks, styles, scripts, HTML and remote assets are rejected. Caps:
50,000 characters, 2,000 lines, 200 nodes, 500 edges and a 20 megapixel PNG;
large vector canvases remain scrollable instead of clipping model content.
Run `npm ci`, `npm run check`, `npm run test:browser`, then `npm run package:release -- --force`.
+1 -1
View File
@@ -1,3 +1,3 @@
# Source identity
Diagram Tools 0.1.0 · `de.add-ideas.diagram-tools` · https://git.add-ideas.de/lotobo/diagram-tools · GPL-3.0-or-later. Deterministic releases normalize file order, time and permissions and add SHA-256.
Diagram Tools 0.2.0 · `de.add-ideas.diagram-tools` · https://git.add-ideas.de/lotobo/diagram-tools · GPL-3.0-or-later. Deterministic releases normalize file order, time and permissions and add SHA-256.
+12 -1
View File
@@ -1,3 +1,14 @@
# Architecture
`core/diagram.ts` parses one fixed grammar into nodes, edges and line diagnostics, then lays it out deterministically as escaped SVG. Sequence diagrams use lifelines; other modes use a bounded grid. React shows the last successful SVG after errors and delegates PNG rasterization to a local canvas.
`core/diagram.ts` parses fixed, bounded flowchart, sequence, class, state, ER,
mind-map and timeline grammars into nodes, edges and line diagnostics, then lays
them out deterministically as escaped SVG. ER attribute blocks and sequence
notes, class member blocks and labelled state transitions/boundaries become
inert model data; directives, click handlers, remote resources and styling
commands are rejected rather than interpreted. Layout dimensions are derived
from the bounded model rather than clipping nodes to a fixed viewport.
React retains the last successful SVG after errors, imports/exports source and
the normalized JSON model, and delegates optional PNG rasterization to a local
canvas. Generated SVG contains only application-owned geometry and escaped
text.
+1 -1
View File
@@ -1,4 +1,4 @@
const CACHE = "diagram-tools-v0.1.0",
const CACHE = "diagram-tools-v0.2.0",
APP = [
"./",
"./index.html",
+15 -2
View File
@@ -3,7 +3,7 @@
"schemaVersion": 1,
"id": "de.add-ideas.diagram-tools",
"name": "Diagram Tools",
"version": "0.1.0",
"version": "0.2.0",
"description": "Create safe diagrams locally.",
"entry": "./",
"icon": "./favicon.svg",
@@ -21,9 +21,22 @@
"crossOriginIsolated": false,
"topLevelContext": false
},
"io": {
"accepts": [
{ "mediaType": "text/plain", "extensions": [".txt", ".mmd", ".mermaid"] },
{ "mediaType": "application/json", "extensions": [".json"] }
],
"produces": [
{ "mediaType": "image/svg+xml", "extensions": [".svg"] },
{ "mediaType": "image/png", "extensions": [".png"] },
{ "mediaType": "application/json", "extensions": [".json"] },
{ "mediaType": "text/plain", "extensions": [".txt", ".mmd"] }
]
},
"capabilities": { "required": [], "optional": [] },
"privacy": {
"processing": "local",
"fileUploads": false,
"fileUploads": true,
"telemetry": false,
"label": "Diagram source and exports remain local."
},