@meltemi/diagrams-model 1.10.0 → 1.10.18

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 (61) hide show
  1. package/dist/c4.d.ts.map +1 -1
  2. package/dist/c4.js +7 -0
  3. package/dist/c4.js.map +1 -1
  4. package/dist/diagram-types.d.ts.map +1 -1
  5. package/dist/diagram-types.js +6 -0
  6. package/dist/diagram-types.js.map +1 -1
  7. package/dist/diff.d.ts +1 -1
  8. package/dist/diff.d.ts.map +1 -1
  9. package/dist/diff.js +23 -0
  10. package/dist/diff.js.map +1 -1
  11. package/dist/flow.d.ts +60 -10
  12. package/dist/flow.d.ts.map +1 -1
  13. package/dist/flow.js +405 -67
  14. package/dist/flow.js.map +1 -1
  15. package/dist/index.d.ts +3 -3
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +3 -3
  18. package/dist/index.js.map +1 -1
  19. package/dist/json.d.ts +29 -0
  20. package/dist/json.d.ts.map +1 -1
  21. package/dist/json.js +19 -1
  22. package/dist/json.js.map +1 -1
  23. package/dist/messages/changes.d.ts +1 -0
  24. package/dist/messages/changes.d.ts.map +1 -1
  25. package/dist/messages/changes.js +2 -0
  26. package/dist/messages/changes.js.map +1 -1
  27. package/dist/messages/en.d.ts +67 -3
  28. package/dist/messages/en.d.ts.map +1 -1
  29. package/dist/messages/en.js +77 -9
  30. package/dist/messages/en.js.map +1 -1
  31. package/dist/messages/es.d.ts.map +1 -1
  32. package/dist/messages/es.js +45 -8
  33. package/dist/messages/es.js.map +1 -1
  34. package/dist/messages/index.d.ts +36 -2
  35. package/dist/messages/index.d.ts.map +1 -1
  36. package/dist/outline.d.ts +2 -2
  37. package/dist/outline.d.ts.map +1 -1
  38. package/dist/outline.js +9 -3
  39. package/dist/outline.js.map +1 -1
  40. package/dist/scenario.d.ts +15 -2
  41. package/dist/scenario.d.ts.map +1 -1
  42. package/dist/scenario.js +37 -1
  43. package/dist/scenario.js.map +1 -1
  44. package/dist/schema.d.ts +82 -11
  45. package/dist/schema.d.ts.map +1 -1
  46. package/dist/schema.js +106 -7
  47. package/dist/schema.js.map +1 -1
  48. package/dist/sequence.d.ts.map +1 -1
  49. package/dist/sequence.js +252 -12
  50. package/dist/sequence.js.map +1 -1
  51. package/dist/story.d.ts +8 -0
  52. package/dist/story.d.ts.map +1 -1
  53. package/dist/story.js +39 -12
  54. package/dist/story.js.map +1 -1
  55. package/dist/style-values.d.ts +9 -0
  56. package/dist/style-values.d.ts.map +1 -1
  57. package/dist/style-values.js +82 -27
  58. package/dist/style-values.js.map +1 -1
  59. package/dist/types.d.ts +94 -9
  60. package/dist/types.d.ts.map +1 -1
  61. package/package.json +8 -3
package/dist/outline.js CHANGED
@@ -1,12 +1,18 @@
1
1
  /** The style properties that make a note or a free text draw an outline a dash can follow. */
2
2
  const OUTLINE_PROPERTIES = ["fill", "stroke", "pattern"];
3
+ /**
4
+ * A sticky is always filled, and a fill is no line: only a `stroke` gives its card the outline a
5
+ * dash follows.
6
+ */
7
+ const STICKY_OUTLINE_PROPERTIES = ["stroke"];
3
8
  /**
4
9
  * Whether an element draws an outline: its own `style` statements, the classes its declaration or
5
- * those statements apply, or a `rule <kind>` of the diagram set `fill`, `stroke` or `pattern`. A
6
- * theme's rules and classes do not count, since the model resolves no theme.
10
+ * those statements apply, or a `rule <kind>` of the diagram set `fill`, `stroke` or `pattern` (a
11
+ * sticky: `stroke`). A theme's rules and classes do not count, since the model resolves no theme.
7
12
  */
8
13
  export function outlined(source, element) {
9
- const writes = (properties) => OUTLINE_PROPERTIES.some((name) => properties[name] !== undefined);
14
+ const names = element.kind === "sticky" ? STICKY_OUTLINE_PROPERTIES : OUTLINE_PROPERTIES;
15
+ const writes = (properties) => names.some((name) => properties[name] !== undefined);
10
16
  const entries = source.styles.filter((s) => s.targetKind === "element" && s.target === element.id);
11
17
  if (entries.some((entry) => writes(entry.properties)))
12
18
  return true;
@@ -1 +1 @@
1
- {"version":3,"file":"outline.js","sourceRoot":"","sources":["../src/outline.ts"],"names":[],"mappings":"AAEA,8FAA8F;AAC9F,MAAM,kBAAkB,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAU,CAAC;AASlE;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAC,MAAqB,EAAE,OAAgB;IAC9D,MAAM,MAAM,GAAG,CAAC,UAA6C,EAAE,EAAE,CAC/D,kBAAkB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,CAAC;IACpE,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAClC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,EAAE,CAC7D,CAAC;IACF,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACnE,MAAM,IAAI,GAAe,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5F,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC;QACjE,IAAI,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC;YAAE,OAAO,IAAI,CAAC;IAC/D,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;AAC5F,CAAC"}
1
+ {"version":3,"file":"outline.js","sourceRoot":"","sources":["../src/outline.ts"],"names":[],"mappings":"AAEA,8FAA8F;AAC9F,MAAM,kBAAkB,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAU,CAAC;AAElE;;;GAGG;AACH,MAAM,yBAAyB,GAAG,CAAC,QAAQ,CAAU,CAAC;AAStD;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAC,MAAqB,EAAE,OAAgB;IAC9D,MAAM,KAAK,GACT,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,kBAAkB,CAAC;IAC7E,MAAM,MAAM,GAAG,CAAC,UAA6C,EAAE,EAAE,CAC/D,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAClC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,EAAE,CAC7D,CAAC;IACF,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACnE,MAAM,IAAI,GAAe,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5F,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC;QACjE,IAAI,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC;YAAE,OAAO,IAAI,CAAC;IAC/D,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;AAC5F,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { FlowDiagram, SequenceEvent } from "./types.js";
1
+ import type { FlowDiagram, Relation, SequenceEvent } from "./types.js";
2
2
  /**
3
3
  * The events of one path through a sequence diagram (decision 0019). Alternatives and critical
4
4
  * regions keep their chosen branch, options and breaks are taken or skipped, and loops become their
@@ -6,6 +6,19 @@ import type { FlowDiagram, SequenceEvent } from "./types.js";
6
6
  * one iteration and are taken. Message keys of repetitions after the first end in `@k`.
7
7
  */
8
8
  export declare function resolveScenario(diagram: FlowDiagram, scenarioId: string): readonly SequenceEvent[] | undefined;
9
- /** Every event of a tree, depth first, fragments before their branches' events. */
9
+ /**
10
+ * Every event of a tree, depth first: fragments before their branches' events, calls before the
11
+ * events of their blocks.
12
+ */
10
13
  export declare function flattenEvents(events: readonly SequenceEvent[]): SequenceEvent[];
14
+ /**
15
+ * Where ` as <id>` names a relation: after its label, else after its target; a `return` (whose
16
+ * node is its keyword statement) after its label, else after the keyword.
17
+ */
18
+ export declare function relationNameAnchor(relation: Relation): number;
19
+ /** Where a relation's label string is: after `:` of a relation, or after `return`; undefined without one. */
20
+ export declare function relationLabelSpan(relation: Relation): {
21
+ start: number;
22
+ end: number;
23
+ } | undefined;
11
24
  //# sourceMappingURL=scenario.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"scenario.d.ts","sourceRoot":"","sources":["../src/scenario.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EAGX,aAAa,EAEd,MAAM,YAAY,CAAC;AAKpB;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,WAAW,EACpB,UAAU,EAAE,MAAM,GACjB,SAAS,aAAa,EAAE,GAAG,SAAS,CAItC;AA8ED,mFAAmF;AACnF,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,aAAa,EAAE,GAAG,aAAa,EAAE,CAU/E"}
1
+ {"version":3,"file":"scenario.d.ts","sourceRoot":"","sources":["../src/scenario.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,WAAW,EAEX,QAAQ,EAER,aAAa,EAEd,MAAM,YAAY,CAAC;AAKpB;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,WAAW,EACpB,UAAU,EAAE,MAAM,GACjB,SAAS,aAAa,EAAE,GAAG,SAAS,CAItC;AAuFD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,aAAa,EAAE,GAAG,aAAa,EAAE,CAW/E;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAO7D;AAED,6GAA6G;AAC7G,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAShG"}
package/dist/scenario.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { isToken } from "@meltemi/diagrams-language";
1
2
  /**
2
3
  * The events of one path through a sequence diagram (decision 0019). Alternatives and critical
3
4
  * regions keep their chosen branch, options and breaks are taken or skipped, and loops become their
@@ -19,6 +20,15 @@ function suffixed(key, suffix) {
19
20
  function resolveEvents(events, decisions, suffix) {
20
21
  const out = [];
21
22
  for (const event of events) {
23
+ if (event.kind === "message" && event.events.length > 0) {
24
+ // A call keeps its block, resolved as a branch is: a loop around it repeats it whole.
25
+ out.push({
26
+ ...event,
27
+ key: suffixed(event.key, suffix),
28
+ events: resolveEvents(event.events, decisions, suffix),
29
+ });
30
+ continue;
31
+ }
22
32
  if (event.kind !== "fragment") {
23
33
  out.push(suffix === "" ? event : { ...event, key: suffixed(event.key, suffix) });
24
34
  continue;
@@ -74,7 +84,10 @@ function resolveFragment(fragment, decisions, suffix) {
74
84
  ];
75
85
  }
76
86
  }
77
- /** Every event of a tree, depth first, fragments before their branches' events. */
87
+ /**
88
+ * Every event of a tree, depth first: fragments before their branches' events, calls before the
89
+ * events of their blocks.
90
+ */
78
91
  export function flattenEvents(events) {
79
92
  const out = [];
80
93
  const visit = (list) => {
@@ -83,9 +96,32 @@ export function flattenEvents(events) {
83
96
  if (event.kind === "fragment")
84
97
  for (const branch of event.branches)
85
98
  visit(branch.events);
99
+ if (event.kind === "message")
100
+ visit(event.events);
86
101
  }
87
102
  };
88
103
  visit(events);
89
104
  return out;
90
105
  }
106
+ /**
107
+ * Where ` as <id>` names a relation: after its label, else after its target; a `return` (whose
108
+ * node is its keyword statement) after its label, else after the keyword.
109
+ */
110
+ export function relationNameAnchor(relation) {
111
+ return (relationLabelSpan(relation)?.end ??
112
+ (relation.node.kind === "RelationStatement"
113
+ ? relation.node.target.end
114
+ : relation.node.keyword.end));
115
+ }
116
+ /** Where a relation's label string is: after `:` of a relation, or after `return`; undefined without one. */
117
+ export function relationLabelSpan(relation) {
118
+ const node = relation.node;
119
+ if (node.kind === "RelationStatement") {
120
+ return node.label && isToken(node.label)
121
+ ? { start: node.label.start, end: node.label.end }
122
+ : undefined;
123
+ }
124
+ const label = node.args[0];
125
+ return label?.kind === "StringLiteral" ? { start: label.start, end: label.end } : undefined;
126
+ }
91
127
  //# sourceMappingURL=scenario.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scenario.js","sourceRoot":"","sources":["../src/scenario.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scenario.js","sourceRoot":"","sources":["../src/scenario.ts"],"names":[],"mappings":"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"}
package/dist/schema.d.ts CHANGED
@@ -6,8 +6,11 @@ export type ValueSpec = {
6
6
  readonly kind: "enum";
7
7
  readonly values: readonly string[];
8
8
  readonly default?: string;
9
- } | {
9
+ }
10
+ /** A quoted string; with `nonEmpty`, one with some text, such as a font stack. */
11
+ | {
10
12
  readonly kind: "string";
13
+ readonly nonEmpty?: boolean;
11
14
  } | {
12
15
  readonly kind: "icon";
13
16
  }
@@ -69,6 +72,13 @@ export type ValueSpec = {
69
72
  /** A quoted `http:`, `https:` or `mailto:` URL, or a relative one. */
70
73
  | {
71
74
  readonly kind: "url";
75
+ }
76
+ /**
77
+ * `tag "Text"`: one line of quoted text, not empty, written any number of times in a block (a
78
+ * sequence message's or participant's), each a pill of its owner.
79
+ */
80
+ | {
81
+ readonly kind: "tag";
72
82
  };
73
83
  export type PropertyTable = Readonly<Record<string, ValueSpec>>;
74
84
  export declare const DIRECTIONS: readonly ["LR", "RL", "TB", "BT"];
@@ -96,7 +106,7 @@ export declare const ANIMATION_DEFAULT_DURATIONS: {
96
106
  /** Element kinds of flow diagrams. */
97
107
  export declare const ELEMENT_KINDS: readonly ["node", "decision", "data", "group", "note", "tag"];
98
108
  /** Object kinds of free diagrams. */
99
- export declare const FREE_ELEMENT_KINDS: readonly ["box", "text", "icon", "image", "note", "line", "group"];
109
+ export declare const FREE_ELEMENT_KINDS: readonly ["box", "text", "icon", "image", "note", "sticky", "line", "pen", "group"];
100
110
  /** Participant kinds of sequence diagrams. */
101
111
  export declare const PARTICIPANT_KINDS: readonly ["participant", "actor", "boundary", "control", "entity", "database", "collections", "queue"];
102
112
  /** Element kinds of sequence diagrams: the participants and their groups. */
@@ -116,13 +126,13 @@ export declare const C4_LEVELS: readonly ["context", "container", "component"];
116
126
  /** The type line C4 shapes draw under the label. */
117
127
  export declare const ENTITY_TYPE_NAMES: Readonly<Record<string, string>>;
118
128
  /** Every element kind of every compiled profile. */
119
- export declare const ALL_ELEMENT_KINDS: readonly ["node", "decision", "data", "group", "note", "tag", "box", "text", "icon", "image", "participant", "actor", "boundary", "control", "entity", "database", "collections", "queue", "person", "system", "container", "datastore", "component"];
129
+ export declare const ALL_ELEMENT_KINDS: readonly ["node", "decision", "data", "group", "note", "tag", "box", "text", "icon", "image", "sticky", "line", "pen", "participant", "actor", "boundary", "control", "entity", "database", "collections", "queue", "person", "system", "container", "datastore", "component"];
120
130
  /** Fragment operators of sequence diagrams. */
121
131
  export declare const FRAGMENT_OPERATORS: readonly ["alt", "opt", "loop", "par", "break", "critical", "region"];
122
132
  /** The keyword of further branches of the operators that have them. */
123
133
  export declare const FRAGMENT_BRANCH_KEYWORDS: Readonly<Record<string, string>>;
124
134
  /** Event statements of sequence diagrams, besides messages. */
125
- export declare const SEQUENCE_EVENTS: readonly ["activate", "deactivate", "create", "destroy", "note", "alt", "opt", "loop", "par", "break", "critical", "region", "divider", "delay"];
135
+ export declare const SEQUENCE_EVENTS: readonly ["activate", "deactivate", "create", "destroy", "note", "alt", "opt", "loop", "par", "break", "critical", "region", "divider", "delay", "return"];
126
136
  /** Statements of a `scenario` block. */
127
137
  export declare const SCENARIO_STATEMENTS: readonly ["choose", "repeat", "skip", "take"];
128
138
  export declare const LINE_STYLES: readonly ["solid", "dashed", "dotted"];
@@ -152,8 +162,23 @@ export declare const CORNERS: readonly ["sharp", "rounded"];
152
162
  /** How a theme paints strokes: clean, or in two jittered passes of a hand-drawn look. */
153
163
  export declare const SKETCH_LEVELS: readonly ["none", "light", "rough"];
154
164
  /** Targets of `rule <kind> { }`: the element kinds of every profile, `relation` and `fragment`. */
155
- export declare const RULE_KINDS: readonly ["node", "decision", "data", "group", "note", "tag", "box", "text", "icon", "image", "participant", "actor", "boundary", "control", "entity", "database", "collections", "queue", "person", "system", "container", "datastore", "component", "relation", "fragment"];
156
- export declare const PRESETS: readonly ["document", "slide"];
165
+ export declare const RULE_KINDS: readonly ["node", "decision", "data", "group", "note", "tag", "box", "text", "icon", "image", "sticky", "line", "pen", "participant", "actor", "boundary", "control", "entity", "database", "collections", "queue", "person", "system", "container", "datastore", "component", "relation", "fragment"];
166
+ /**
167
+ * Canvas presets: a document warns past 1,200 px, a slide keeps 16:9, and a board grows with what
168
+ * is drawn on it, unreported.
169
+ */
170
+ export declare const PRESETS: readonly ["document", "slide", "board"];
171
+ /** How a list group (`layout column|row` in a free group block) arranges its children. */
172
+ export declare const LIST_LAYOUTS: readonly ["column", "row"];
173
+ /** Where the children of a list sit across its axis (`align` in a free group block). */
174
+ export declare const LIST_ALIGNS: readonly ["start", "center", "end", "stretch"];
175
+ /** The distance a list's `spacing` may write between its children, in pixels. */
176
+ export declare const LIST_SPACING_RANGE: {
177
+ readonly min: 0;
178
+ readonly max: 400;
179
+ };
180
+ /** The properties of a free group block that make it a list. */
181
+ export declare const LIST_PROPERTIES: readonly ["layout", "spacing", "align"];
157
182
  /**
158
183
  * Where the icon of a node, decision, data store or box goes: beside, above or below its text, or
159
184
  * at the centre as the picture of the box, the label at the edge `labelPosition` names.
@@ -185,7 +210,8 @@ export declare const ROTATION_RANGE: {
185
210
  };
186
211
  /**
187
212
  * The element kinds `rotation` turns: every element of flow diagrams and free compositions but
188
- * groups, which hold other elements, and lines, whose points are written as they are drawn.
213
+ * groups, which hold other elements, and lines and pens, whose points are written as they are
214
+ * drawn.
189
215
  */
190
216
  export declare function takesRotation(kind: string): boolean;
191
217
  /** Whether a profile's elements take `rotation`: sequence diagrams and C4 views do not. */
@@ -203,8 +229,13 @@ export declare const MARK_MODES: readonly ["meltemi", "none"];
203
229
  /** Themes whose tokens are built into the layout package; file themes may extend them. */
204
230
  export declare const BUILT_IN_THEMES: readonly ["technical.light", "technical.dark", "editorial.light", "editorial.dark", "stage.light", "stage.dark", "sketch.light", "sketch.dark"];
205
231
  export declare const DEFAULT_THEME = "technical.light";
232
+ /**
233
+ * The colour tokens of whiteboards: highlighter strokes, the default fill of stickies and their
234
+ * text. Colour tokens like the others; the theme panel groups them apart.
235
+ */
236
+ export declare const THEME_WHITEBOARD_TOKENS: readonly ["highlight", "sticky", "stickyText"];
206
237
  /** Colour tokens of a theme, in the order they are documented. */
207
- export declare const THEME_COLOR_TOKENS: readonly ["background", "surface", "ink", "muted", "line", "connector", "band", "bandLine", "tag", "tagText", "accent", "accentEnd", "success", "warning", "danger", "info"];
238
+ export declare const THEME_COLOR_TOKENS: readonly ["background", "surface", "ink", "muted", "line", "connector", "band", "bandLine", "tag", "tagText", "accent", "accentEnd", "success", "warning", "danger", "info", "highlight", "sticky", "stickyText"];
208
239
  /**
209
240
  * Colour tokens the canvas draws its selection and guides with; they mean nothing in an export,
210
241
  * so they are not colour names in styles. Built-in themes write none: the canvas uses `accent`.
@@ -225,8 +256,18 @@ export declare const THEME_DURATION_TOKENS: {
225
256
  /** Tokens accepted inside `theme <id> { }` blocks. */
226
257
  export declare const THEME_TOKENS: PropertyTable;
227
258
  /**
228
- * Style properties that only free diagrams accept: the size and weight of text, and where it sits
229
- * across (`textAlign`) and down (`verticalAlign`) its box.
259
+ * The text properties of every profile (decision 0067): the font stack a target's text is
260
+ * measured and drawn with, and its size and weight. Every target that draws text takes them;
261
+ * icons, images and pens refuse them (`TEXTLESS_KINDS`).
262
+ */
263
+ export declare const TEXT_STYLE_PROPERTIES: PropertyTable;
264
+ export declare const TEXT_PROPERTIES: readonly string[];
265
+ /** The element kinds that draw no text of their own, and so refuse the text properties. */
266
+ export declare const TEXTLESS_KINDS: readonly string[];
267
+ /**
268
+ * Style properties that only free diagrams accept: where text sits across (`textAlign`) and down
269
+ * (`verticalAlign`) its box, and the `opacity` of elements, groups, lines and pens (0 is
270
+ * invisible, 1 opaque).
230
271
  */
231
272
  export declare const FREE_STYLE_PROPERTIES: PropertyTable;
232
273
  /**
@@ -237,6 +278,35 @@ export declare const STYLE_PROPERTIES: PropertyTable;
237
278
  /** Style properties that apply only to elements, and only to relations. */
238
279
  export declare const ELEMENT_ONLY_PROPERTIES: readonly string[];
239
280
  export declare const RELATION_ONLY_PROPERTIES: readonly string[];
281
+ /**
282
+ * Style properties a free line refuses: the element properties but `opacity`, which fades a line as
283
+ * it fades a box. A line takes the relation properties.
284
+ */
285
+ export declare const LINE_REFUSED_PROPERTIES: readonly string[];
286
+ /** The style properties a pen stroke takes. */
287
+ export declare const PEN_PROPERTIES: readonly string[];
288
+ /**
289
+ * Style properties a pen refuses: a box's fill, shape, radius and pattern, a connector's routing
290
+ * and corners, the icon properties and the text properties. `rotation` is refused apart, as a
291
+ * line's is: a pen's points are written in its statement.
292
+ */
293
+ export declare const PEN_REFUSED_PROPERTIES: readonly string[];
294
+ /** The `width` of a pen stroke: one pixel at least, unlike outlines and connectors. */
295
+ export declare const PEN_WIDTH_RANGE: {
296
+ readonly min: 1;
297
+ readonly max: 64;
298
+ };
299
+ /**
300
+ * The style properties a sticky takes: its card's fill and outline, its text, an icon at the top
301
+ * left, rotation and opacity.
302
+ */
303
+ export declare const STICKY_PROPERTIES: readonly string[];
304
+ /**
305
+ * Style properties a sticky refuses: a box's `pattern`, the icon placements of a box (its icon
306
+ * sits at the top left) and the relation properties. `shape` is refused apart, naming the kinds
307
+ * that take it.
308
+ */
309
+ export declare const STICKY_REFUSED_PROPERTIES: readonly string[];
240
310
  /**
241
311
  * Classes every built-in theme provides. Colours are token names, so the classes follow the
242
312
  * theme. A class of the same name in a file theme or a diagram shadows them.
@@ -305,7 +375,7 @@ export declare const EXPORT_EXTENSIONS: Readonly<Record<Format, string>>;
305
375
  /** Statements of a `story` block, of a scene, and the actions a scene runs. */
306
376
  export declare const STORY_STATEMENTS: readonly ["title", "description", "scene"];
307
377
  export declare const SCENE_STATEMENTS: readonly ["view", "transition"];
308
- export declare const STORY_ACTIONS: readonly ["reveal", "hide", "highlight", "focus", "camera", "trace", "hold", "parallel"];
378
+ export declare const STORY_ACTIONS: readonly ["reveal", "hide", "highlight", "focus", "camera", "trace", "draw", "hold", "parallel"];
309
379
  export declare const STORY_TRANSITIONS: readonly ["cut", "fade", "morph"];
310
380
  /** Times an action or transition takes when it writes no `over`, in milliseconds. */
311
381
  export declare const STORY_DEFAULT_TIMES: {
@@ -315,6 +385,7 @@ export declare const STORY_DEFAULT_TIMES: {
315
385
  readonly camera: 800;
316
386
  readonly highlight: 1000;
317
387
  readonly trace: 1200;
388
+ readonly draw: 800;
318
389
  readonly hold: 0;
319
390
  readonly parallel: 0;
320
391
  readonly cut: 0;
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
package/dist/schema.js CHANGED
@@ -38,7 +38,9 @@ export const FREE_ELEMENT_KINDS = [
38
38
  "icon",
39
39
  "image",
40
40
  "note",
41
+ "sticky",
41
42
  "line",
43
+ "pen",
42
44
  "group",
43
45
  ];
44
46
  /** Participant kinds of sequence diagrams. */
@@ -88,6 +90,9 @@ export const ALL_ELEMENT_KINDS = [
88
90
  "text",
89
91
  "icon",
90
92
  "image",
93
+ "sticky",
94
+ "line",
95
+ "pen",
91
96
  ...PARTICIPANT_KINDS,
92
97
  ...ENTITY_KINDS,
93
98
  ];
@@ -117,6 +122,7 @@ export const SEQUENCE_EVENTS = [
117
122
  ...FRAGMENT_OPERATORS,
118
123
  "divider",
119
124
  "delay",
125
+ "return",
120
126
  ];
121
127
  /** Statements of a `scenario` block. */
122
128
  export const SCENARIO_STATEMENTS = ["choose", "repeat", "skip", "take"];
@@ -173,7 +179,19 @@ export const CORNERS = ["sharp", "rounded"];
173
179
  export const SKETCH_LEVELS = ["none", "light", "rough"];
174
180
  /** Targets of `rule <kind> { }`: the element kinds of every profile, `relation` and `fragment`. */
175
181
  export const RULE_KINDS = [...ALL_ELEMENT_KINDS, "relation", "fragment"];
176
- export const PRESETS = ["document", "slide"];
182
+ /**
183
+ * Canvas presets: a document warns past 1,200 px, a slide keeps 16:9, and a board grows with what
184
+ * is drawn on it, unreported.
185
+ */
186
+ export const PRESETS = ["document", "slide", "board"];
187
+ /** How a list group (`layout column|row` in a free group block) arranges its children. */
188
+ export const LIST_LAYOUTS = ["column", "row"];
189
+ /** Where the children of a list sit across its axis (`align` in a free group block). */
190
+ export const LIST_ALIGNS = ["start", "center", "end", "stretch"];
191
+ /** The distance a list's `spacing` may write between its children, in pixels. */
192
+ export const LIST_SPACING_RANGE = { min: 0, max: 400 };
193
+ /** The properties of a free group block that make it a list. */
194
+ export const LIST_PROPERTIES = ["layout", "spacing", "align"];
177
195
  /**
178
196
  * Where the icon of a node, decision, data store or box goes: beside, above or below its text, or
179
197
  * at the centre as the picture of the box, the label at the edge `labelPosition` names.
@@ -226,10 +244,11 @@ export function takesShape(kind) {
226
244
  export const ROTATION_RANGE = { min: 0, max: 360 };
227
245
  /**
228
246
  * The element kinds `rotation` turns: every element of flow diagrams and free compositions but
229
- * groups, which hold other elements, and lines, whose points are written as they are drawn.
247
+ * groups, which hold other elements, and lines and pens, whose points are written as they are
248
+ * drawn.
230
249
  */
231
250
  export function takesRotation(kind) {
232
- return kind !== "group" && kind !== "line";
251
+ return kind !== "group" && kind !== "line" && kind !== "pen";
233
252
  }
234
253
  /** Whether a profile's elements take `rotation`: sequence diagrams and C4 views do not. */
235
254
  export function profileTakesRotation(profile) {
@@ -255,6 +274,11 @@ export const BUILT_IN_THEMES = [
255
274
  "sketch.dark",
256
275
  ];
257
276
  export const DEFAULT_THEME = "technical.light";
277
+ /**
278
+ * The colour tokens of whiteboards: highlighter strokes, the default fill of stickies and their
279
+ * text. Colour tokens like the others; the theme panel groups them apart.
280
+ */
281
+ export const THEME_WHITEBOARD_TOKENS = ["highlight", "sticky", "stickyText"];
258
282
  /** Colour tokens of a theme, in the order they are documented. */
259
283
  export const THEME_COLOR_TOKENS = [
260
284
  "background",
@@ -273,6 +297,7 @@ export const THEME_COLOR_TOKENS = [
273
297
  "warning",
274
298
  "danger",
275
299
  "info",
300
+ ...THEME_WHITEBOARD_TOKENS,
276
301
  ];
277
302
  /**
278
303
  * Colour tokens the canvas draws its selection and guides with; they mean nothing in an export,
@@ -339,14 +364,27 @@ export const THEME_TOKENS = {
339
364
  ])),
340
365
  };
341
366
  /**
342
- * Style properties that only free diagrams accept: the size and weight of text, and where it sits
343
- * across (`textAlign`) and down (`verticalAlign`) its box.
367
+ * The text properties of every profile (decision 0067): the font stack a target's text is
368
+ * measured and drawn with, and its size and weight. Every target that draws text takes them;
369
+ * icons, images and pens refuse them (`TEXTLESS_KINDS`).
344
370
  */
345
- export const FREE_STYLE_PROPERTIES = {
371
+ export const TEXT_STYLE_PROPERTIES = {
372
+ font: { kind: "string", nonEmpty: true },
346
373
  fontSize: { kind: "number", min: 6, max: 160 },
347
374
  fontWeight: { kind: "number", min: 400, max: 700, values: FONT_WEIGHTS },
375
+ };
376
+ export const TEXT_PROPERTIES = Object.keys(TEXT_STYLE_PROPERTIES);
377
+ /** The element kinds that draw no text of their own, and so refuse the text properties. */
378
+ export const TEXTLESS_KINDS = ["icon", "image", "pen"];
379
+ /**
380
+ * Style properties that only free diagrams accept: where text sits across (`textAlign`) and down
381
+ * (`verticalAlign`) its box, and the `opacity` of elements, groups, lines and pens (0 is
382
+ * invisible, 1 opaque).
383
+ */
384
+ export const FREE_STYLE_PROPERTIES = {
348
385
  textAlign: { kind: "enum", values: TEXT_ALIGNS },
349
386
  verticalAlign: { kind: "enum", values: VERTICAL_ALIGNS },
387
+ opacity: { kind: "number", min: 0, max: 1 },
350
388
  };
351
389
  /**
352
390
  * Properties of classes and rules: the `style` properties without `class`. Theme classes and rules
@@ -358,7 +396,8 @@ export const STYLE_PROPERTIES = {
358
396
  stroke: { kind: "color", tokens: true },
359
397
  color: { kind: "color", tokens: true },
360
398
  line: { kind: "enum", values: LINE_STYLES },
361
- width: { kind: "number", min: 0, max: 16 },
399
+ /** An outline, a connector or a pen stroke; a pen refuses 0 (`PEN_WIDTH_RANGE`). */
400
+ width: { kind: "number", min: 0, max: 64 },
362
401
  pattern: { kind: "enum", values: PATTERNS },
363
402
  arrowhead: { kind: "enum", values: ARROWHEADS },
364
403
  arrowtail: { kind: "enum", values: ARROWHEADS },
@@ -376,6 +415,7 @@ export const STYLE_PROPERTIES = {
376
415
  radius: RADIUS,
377
416
  /** Degrees an element is turned, clockwise about the centre of its box. */
378
417
  rotation: { kind: "number", ...ROTATION_RANGE },
418
+ ...TEXT_STYLE_PROPERTIES,
379
419
  ...FREE_STYLE_PROPERTIES,
380
420
  };
381
421
  /** Style properties that apply only to elements, and only to relations. */
@@ -395,6 +435,56 @@ export const RELATION_ONLY_PROPERTIES = [
395
435
  "routing",
396
436
  "corners",
397
437
  ];
438
+ /**
439
+ * Style properties a free line refuses: the element properties but `opacity`, which fades a line as
440
+ * it fades a box. A line takes the relation properties.
441
+ */
442
+ export const LINE_REFUSED_PROPERTIES = ELEMENT_ONLY_PROPERTIES.filter((name) => name !== "opacity");
443
+ /** The style properties a pen stroke takes. */
444
+ export const PEN_PROPERTIES = [
445
+ "stroke",
446
+ "width",
447
+ "line",
448
+ "opacity",
449
+ "arrowhead",
450
+ "arrowtail",
451
+ ];
452
+ /**
453
+ * Style properties a pen refuses: a box's fill, shape, radius and pattern, a connector's routing
454
+ * and corners, the icon properties and the text properties. `rotation` is refused apart, as a
455
+ * line's is: a pen's points are written in its statement.
456
+ */
457
+ export const PEN_REFUSED_PROPERTIES = Object.keys(STYLE_PROPERTIES).filter((name) => !PEN_PROPERTIES.includes(name) && name !== "rotation");
458
+ /** The `width` of a pen stroke: one pixel at least, unlike outlines and connectors. */
459
+ export const PEN_WIDTH_RANGE = { min: 1, max: 64 };
460
+ /**
461
+ * The style properties a sticky takes: its card's fill and outline, its text, an icon at the top
462
+ * left, rotation and opacity.
463
+ */
464
+ export const STICKY_PROPERTIES = [
465
+ "fill",
466
+ "stroke",
467
+ "color",
468
+ "line",
469
+ "width",
470
+ "font",
471
+ "fontSize",
472
+ "fontWeight",
473
+ "textAlign",
474
+ "verticalAlign",
475
+ "radius",
476
+ "rotation",
477
+ "opacity",
478
+ "icon",
479
+ "iconColor",
480
+ "iconSize",
481
+ ];
482
+ /**
483
+ * Style properties a sticky refuses: a box's `pattern`, the icon placements of a box (its icon
484
+ * sits at the top left) and the relation properties. `shape` is refused apart, naming the kinds
485
+ * that take it.
486
+ */
487
+ export const STICKY_REFUSED_PROPERTIES = Object.keys(STYLE_PROPERTIES).filter((name) => !STICKY_PROPERTIES.includes(name) && name !== "shape");
398
488
  /**
399
489
  * Classes every built-in theme provides. Colours are token names, so the classes follow the
400
490
  * theme. A class of the same name in a file theme or a diagram shadows them.
@@ -509,6 +599,10 @@ export const FREE_PROFILE = {
509
599
  layer: { kind: "name" },
510
600
  link: { kind: "link" },
511
601
  url: { kind: "url" },
602
+ // A list: the children in source order along a column or a row.
603
+ layout: { kind: "enum", values: LIST_LAYOUTS },
604
+ spacing: { kind: "number", ...LIST_SPACING_RANGE },
605
+ align: { kind: "enum", values: LIST_ALIGNS },
512
606
  },
513
607
  relationProperties: {
514
608
  description: { kind: "string" },
@@ -542,6 +636,7 @@ export const SEQUENCE_PROFILE = {
542
636
  preset: { kind: "enum", values: PRESETS },
543
637
  canvas: { kind: "size", min: 100, max: 10000 },
544
638
  autonumber: { kind: "number", min: 0, max: 100000 },
639
+ spacing: { kind: "number", min: 0, max: 400 },
545
640
  },
546
641
  elementKinds: SEQUENCE_ELEMENT_KINDS,
547
642
  shorthand: { box: "participant", data: "database" },
@@ -551,6 +646,7 @@ export const SEQUENCE_PROFILE = {
551
646
  class: { kind: "classes" },
552
647
  link: { kind: "link" },
553
648
  url: { kind: "url" },
649
+ tag: { kind: "tag" },
554
650
  },
555
651
  groupProperties: {
556
652
  description: { kind: "string" },
@@ -563,6 +659,7 @@ export const SEQUENCE_PROFILE = {
563
659
  assumption: { kind: "string" },
564
660
  class: { kind: "classes" },
565
661
  kind: { kind: "enum", values: MESSAGE_KINDS },
662
+ tag: { kind: "tag" },
566
663
  },
567
664
  arrows: { "->": "solid", "-->": "dashed", "<->": "solid", "<-->": "dashed" },
568
665
  diagramBlocks: ["placement", "style", "animate", "class", "rule", "scenario"],
@@ -678,6 +775,7 @@ export const STORY_ACTIONS = [
678
775
  "focus",
679
776
  "camera",
680
777
  "trace",
778
+ "draw",
681
779
  "hold",
682
780
  "parallel",
683
781
  ];
@@ -690,6 +788,7 @@ export const STORY_DEFAULT_TIMES = {
690
788
  camera: 800,
691
789
  highlight: 1000,
692
790
  trace: 1200,
791
+ draw: 800,
693
792
  hold: 0,
694
793
  parallel: 0,
695
794
  cut: 0,