@diagrammo/dgmo 0.8.20 → 0.8.21
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/dist/cli.cjs +92 -90
- package/dist/editor.cjs +13 -1
- package/dist/editor.cjs.map +1 -1
- package/dist/editor.js +13 -1
- package/dist/editor.js.map +1 -1
- package/dist/highlight.cjs +13 -1
- package/dist/highlight.cjs.map +1 -1
- package/dist/highlight.js +13 -1
- package/dist/highlight.js.map +1 -1
- package/dist/index.cjs +4144 -940
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +318 -84
- package/dist/index.d.ts +318 -84
- package/dist/index.js +4132 -938
- package/dist/index.js.map +1 -1
- package/docs/guide/chart-mindmap.md +198 -0
- package/docs/guide/chart-sequence.md +23 -1
- package/docs/guide/chart-wireframe.md +100 -0
- package/docs/guide/index.md +8 -0
- package/docs/language-reference.md +137 -2
- package/package.json +1 -1
- package/src/boxes-and-lines/collapse.ts +21 -3
- package/src/boxes-and-lines/layout.ts +51 -9
- package/src/boxes-and-lines/parser.ts +8 -1
- package/src/boxes-and-lines/renderer.ts +121 -23
- package/src/boxes-and-lines/types.ts +1 -0
- package/src/completion.ts +26 -0
- package/src/d3.ts +153 -32
- package/src/dgmo-router.ts +6 -0
- package/src/editor/keywords.ts +12 -0
- package/src/graph/layout.ts +73 -9
- package/src/graph/state-collapse.ts +78 -0
- package/src/graph/state-renderer.ts +139 -34
- package/src/index.ts +28 -0
- package/src/kanban/renderer.ts +303 -57
- package/src/mindmap/collapse.ts +88 -0
- package/src/mindmap/layout.ts +605 -0
- package/src/mindmap/parser.ts +379 -0
- package/src/mindmap/renderer.ts +543 -0
- package/src/mindmap/text-wrap.ts +207 -0
- package/src/mindmap/types.ts +55 -0
- package/src/render.ts +18 -21
- package/src/sequence/renderer.ts +129 -18
- package/src/sharing.ts +2 -0
- package/src/sitemap/layout.ts +35 -12
- package/src/utils/export-container.ts +3 -2
- package/src/utils/legend-d3.ts +1 -0
- package/src/utils/legend-layout.ts +2 -2
- package/src/utils/parsing.ts +2 -0
- package/src/wireframe/layout.ts +460 -0
- package/src/wireframe/parser.ts +956 -0
- package/src/wireframe/renderer.ts +1293 -0
- package/src/wireframe/types.ts +110 -0
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
// ============================================================
|
|
2
|
+
// Wireframe Diagram Types
|
|
3
|
+
// ============================================================
|
|
4
|
+
|
|
5
|
+
import type { DgmoError } from '../diagnostics';
|
|
6
|
+
import type { TagGroup } from '../utils/tag-groups';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* All wireframe element types.
|
|
10
|
+
* Visual-mnemonic elements are inferred from bracket syntax;
|
|
11
|
+
* keyword elements use a small vocabulary (9 keywords).
|
|
12
|
+
*/
|
|
13
|
+
export type WireframeElementType =
|
|
14
|
+
| 'group'
|
|
15
|
+
| 'textInput'
|
|
16
|
+
| 'button'
|
|
17
|
+
| 'dropdown'
|
|
18
|
+
| 'checkbox'
|
|
19
|
+
| 'radio'
|
|
20
|
+
| 'heading'
|
|
21
|
+
| 'divider'
|
|
22
|
+
| 'text'
|
|
23
|
+
| 'listItem'
|
|
24
|
+
| 'nav'
|
|
25
|
+
| 'tabs'
|
|
26
|
+
| 'table'
|
|
27
|
+
| 'image'
|
|
28
|
+
| 'modal'
|
|
29
|
+
| 'skeleton'
|
|
30
|
+
| 'alert'
|
|
31
|
+
| 'progress'
|
|
32
|
+
| 'chart';
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Single flat interface for all wireframe elements (ADR-8).
|
|
36
|
+
* No separate WireframeGroup — all elements carry group fields
|
|
37
|
+
* with sensible defaults (isContainer=false, orientation='vertical', isSkeleton=false).
|
|
38
|
+
*/
|
|
39
|
+
export interface WireframeElement {
|
|
40
|
+
id: string;
|
|
41
|
+
type: WireframeElementType;
|
|
42
|
+
/** Display label / placeholder text / heading text */
|
|
43
|
+
label: string;
|
|
44
|
+
/** Child elements (non-empty only when isContainer=true) */
|
|
45
|
+
children: WireframeElement[];
|
|
46
|
+
/** Pipe metadata key-value pairs */
|
|
47
|
+
metadata: Record<string, string>;
|
|
48
|
+
/** State keywords: disabled, active, ghost, destructive, etc. */
|
|
49
|
+
states: string[];
|
|
50
|
+
/** Free-text annotations from pipe metadata */
|
|
51
|
+
annotations: string[];
|
|
52
|
+
/** 1-based line number in source */
|
|
53
|
+
lineNumber: number;
|
|
54
|
+
/** Measured indentation (column) */
|
|
55
|
+
indent: number;
|
|
56
|
+
/** True when element has children (set during parse via indent stack) */
|
|
57
|
+
isContainer: boolean;
|
|
58
|
+
/** Stacking direction for group children */
|
|
59
|
+
orientation: 'vertical' | 'horizontal';
|
|
60
|
+
/** True when inside a skeleton block */
|
|
61
|
+
isSkeleton: boolean;
|
|
62
|
+
|
|
63
|
+
// ── Type-specific fields ─────────────────────────────────
|
|
64
|
+
/** Heading level: 1 for `#`, 2 for `##` */
|
|
65
|
+
headingLevel?: number;
|
|
66
|
+
/** Dropdown options (for type='dropdown') */
|
|
67
|
+
options?: string[];
|
|
68
|
+
/** Checked state (for type='checkbox') */
|
|
69
|
+
checked?: boolean;
|
|
70
|
+
/** Selected state (for type='radio') */
|
|
71
|
+
selected?: boolean;
|
|
72
|
+
/** Image hint: 'default' | 'round' | 'wide' */
|
|
73
|
+
imageHint?: 'default' | 'round' | 'wide';
|
|
74
|
+
/** Progress value 0-100 (for type='progress') */
|
|
75
|
+
progressValue?: number;
|
|
76
|
+
/** Chart hint: 'line' | 'bar' | 'pie' */
|
|
77
|
+
chartHint?: 'line' | 'bar' | 'pie';
|
|
78
|
+
/** Table dimensions for skeleton shorthand (for type='table') */
|
|
79
|
+
tableRows?: number;
|
|
80
|
+
tableCols?: number;
|
|
81
|
+
/** Table header row labels (for type='table') */
|
|
82
|
+
tableHeaders?: string[];
|
|
83
|
+
/** Table data rows — each row is an array of cell content strings (for type='table') */
|
|
84
|
+
tableData?: string[][];
|
|
85
|
+
/** Inline elements on the same line (multi-element line) */
|
|
86
|
+
inlineElements?: WireframeElement[];
|
|
87
|
+
/** Label element for label-field pairing */
|
|
88
|
+
labelFor?: WireframeElement;
|
|
89
|
+
/** Color from tag system */
|
|
90
|
+
color?: string;
|
|
91
|
+
/** Field variant: password, textarea */
|
|
92
|
+
fieldVariant?: 'password' | 'textarea';
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/** Form factor / layout mode */
|
|
96
|
+
export type WireframeFormFactor = 'desktop' | 'mobile';
|
|
97
|
+
|
|
98
|
+
export interface ParsedWireframe {
|
|
99
|
+
title: string | null;
|
|
100
|
+
titleLineNumber: number | null;
|
|
101
|
+
formFactor: WireframeFormFactor;
|
|
102
|
+
/** Top-level elements (roots of the hierarchy) */
|
|
103
|
+
roots: WireframeElement[];
|
|
104
|
+
/** Modal elements (rendered separately below main) */
|
|
105
|
+
modals: WireframeElement[];
|
|
106
|
+
tagGroups: TagGroup[];
|
|
107
|
+
options: Record<string, string>;
|
|
108
|
+
diagnostics: DgmoError[];
|
|
109
|
+
error: string | null;
|
|
110
|
+
}
|