@cardenelabs/cdl 0.24.0 → 0.26.0
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/CHANGELOG.md +75 -1
- package/dist/index.cjs +46 -4
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +33 -2
- package/dist/index.d.ts +33 -2
- package/dist/index.js +46 -4
- package/dist/index.js.map +1 -1
- package/dist/react.cjs +33 -0
- package/dist/react.cjs.map +1 -1
- package/dist/react.d.cts +1 -1
- package/dist/react.d.ts +1 -1
- package/dist/react.js +33 -0
- package/dist/react.js.map +1 -1
- package/dist/{render-CfXUl0Yz.d.cts → render-ViWKnlu1.d.cts} +23 -0
- package/dist/{render-CfXUl0Yz.d.ts → render-ViWKnlu1.d.ts} +23 -0
- package/package.json +1 -1
- package/src/builder.ts +6 -0
- package/src/kinds/storage.tsx +46 -0
- package/src/layout/spec.ts +23 -0
- package/src/layout.ts +6 -0
- package/src/presets.ts +38 -2
- package/src/render/stage.tsx +7 -0
- package/src/render/template-fields.ts +2 -0
- package/src/types.ts +23 -0
|
@@ -293,6 +293,16 @@ type CdlNode = {
|
|
|
293
293
|
* 空文字の行と `null` の印を組にすると **群の間** になる (持ち物と振る舞いの間など)。
|
|
294
294
|
*/
|
|
295
295
|
rowMarks?: readonly (RowMark | null)[];
|
|
296
|
+
/**
|
|
297
|
+
* 行に 1 行おきの縞を敷くか (#1553)。
|
|
298
|
+
*
|
|
299
|
+
* 表の箱は小さい字が密に並ぶので、行を横に追う時の目印が無い。
|
|
300
|
+
* 色を増やさずに、面を 1 行おきに変えて追えるようにする。
|
|
301
|
+
*
|
|
302
|
+
* **既定では敷かない**。 `er` が設計の形で立てた実体だけが持つ。
|
|
303
|
+
* クラス図も同じ `storage` を使うが、持ち物と振る舞いは行頭の印で既に分かれている。
|
|
304
|
+
*/
|
|
305
|
+
rowStripe?: boolean;
|
|
296
306
|
/**
|
|
297
307
|
* 時系列のやり取りの中身 (#578)。 `sequence-board` 種別が読む。
|
|
298
308
|
*
|
|
@@ -2432,6 +2442,17 @@ type CdlDiagram = {
|
|
|
2432
2442
|
* 既定は `"extract"` = 付け忘れても検知が緩まない向き。
|
|
2433
2443
|
*/
|
|
2434
2444
|
structuredData?: "extract" | "exclude";
|
|
2445
|
+
/**
|
|
2446
|
+
* この図をどの配色で描くか (#1553)。 書かない図は消費側の既定で描かれる。
|
|
2447
|
+
*
|
|
2448
|
+
* **cdl は色の値を持たない**。 名前を `data-cdl-palette` として markup に出すだけで、
|
|
2449
|
+
* 実際の値は消費側 (dragon の theme 等) が名前を見て決める。 値を engine に持たせると、
|
|
2450
|
+
* 消費側が配色を変えるたびに engine の release が要る。
|
|
2451
|
+
*
|
|
2452
|
+
* 空文字は書かなかった扱いにする = 空を出すと消費側の `[data-cdl-palette]` が
|
|
2453
|
+
* 既定の図にも当たる。
|
|
2454
|
+
*/
|
|
2455
|
+
palette?: string;
|
|
2435
2456
|
/**
|
|
2436
2457
|
* 矢印をいつ出すか (既定 = `"phase"`、 #582)。
|
|
2437
2458
|
*
|
|
@@ -2629,6 +2650,8 @@ type BBox = {
|
|
|
2629
2650
|
type LaidDiagram = {
|
|
2630
2651
|
id: string;
|
|
2631
2652
|
topic: string;
|
|
2653
|
+
/** どの配色で描くか (#1553)。 `CdlDiagram.palette` をそのまま持ち越す */
|
|
2654
|
+
palette?: string;
|
|
2632
2655
|
viewBox: {
|
|
2633
2656
|
x: number;
|
|
2634
2657
|
y: number;
|
|
@@ -293,6 +293,16 @@ type CdlNode = {
|
|
|
293
293
|
* 空文字の行と `null` の印を組にすると **群の間** になる (持ち物と振る舞いの間など)。
|
|
294
294
|
*/
|
|
295
295
|
rowMarks?: readonly (RowMark | null)[];
|
|
296
|
+
/**
|
|
297
|
+
* 行に 1 行おきの縞を敷くか (#1553)。
|
|
298
|
+
*
|
|
299
|
+
* 表の箱は小さい字が密に並ぶので、行を横に追う時の目印が無い。
|
|
300
|
+
* 色を増やさずに、面を 1 行おきに変えて追えるようにする。
|
|
301
|
+
*
|
|
302
|
+
* **既定では敷かない**。 `er` が設計の形で立てた実体だけが持つ。
|
|
303
|
+
* クラス図も同じ `storage` を使うが、持ち物と振る舞いは行頭の印で既に分かれている。
|
|
304
|
+
*/
|
|
305
|
+
rowStripe?: boolean;
|
|
296
306
|
/**
|
|
297
307
|
* 時系列のやり取りの中身 (#578)。 `sequence-board` 種別が読む。
|
|
298
308
|
*
|
|
@@ -2432,6 +2442,17 @@ type CdlDiagram = {
|
|
|
2432
2442
|
* 既定は `"extract"` = 付け忘れても検知が緩まない向き。
|
|
2433
2443
|
*/
|
|
2434
2444
|
structuredData?: "extract" | "exclude";
|
|
2445
|
+
/**
|
|
2446
|
+
* この図をどの配色で描くか (#1553)。 書かない図は消費側の既定で描かれる。
|
|
2447
|
+
*
|
|
2448
|
+
* **cdl は色の値を持たない**。 名前を `data-cdl-palette` として markup に出すだけで、
|
|
2449
|
+
* 実際の値は消費側 (dragon の theme 等) が名前を見て決める。 値を engine に持たせると、
|
|
2450
|
+
* 消費側が配色を変えるたびに engine の release が要る。
|
|
2451
|
+
*
|
|
2452
|
+
* 空文字は書かなかった扱いにする = 空を出すと消費側の `[data-cdl-palette]` が
|
|
2453
|
+
* 既定の図にも当たる。
|
|
2454
|
+
*/
|
|
2455
|
+
palette?: string;
|
|
2435
2456
|
/**
|
|
2436
2457
|
* 矢印をいつ出すか (既定 = `"phase"`、 #582)。
|
|
2437
2458
|
*
|
|
@@ -2629,6 +2650,8 @@ type BBox = {
|
|
|
2629
2650
|
type LaidDiagram = {
|
|
2630
2651
|
id: string;
|
|
2631
2652
|
topic: string;
|
|
2653
|
+
/** どの配色で描くか (#1553)。 `CdlDiagram.palette` をそのまま持ち越す */
|
|
2654
|
+
palette?: string;
|
|
2632
2655
|
viewBox: {
|
|
2633
2656
|
x: number;
|
|
2634
2657
|
y: number;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cardenelabs/cdl",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.26.0",
|
|
4
4
|
"description": "CDL (Chainome Diagram Language). Mermaid-like declarative DSL that compiles to animated SVG diagrams. Built for blockchain / Solidity flows, generic enough for sequence / flow / state / ER / topology diagrams.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "cardene777",
|
package/src/builder.ts
CHANGED
|
@@ -1638,6 +1638,10 @@ export function diagram(
|
|
|
1638
1638
|
* `"exclude"` を付ける。 詳細は `CdlDiagram.structuredData` の doc 参照。
|
|
1639
1639
|
*/
|
|
1640
1640
|
structuredData?: "extract" | "exclude";
|
|
1641
|
+
/**
|
|
1642
|
+
* この図をどの配色で描くか (#1553)。 詳細は `CdlDiagram.palette` の doc 参照。
|
|
1643
|
+
*/
|
|
1644
|
+
palette?: string;
|
|
1641
1645
|
},
|
|
1642
1646
|
): DiagramBuilder {
|
|
1643
1647
|
const lanes: CdlLane[] = [];
|
|
@@ -3774,6 +3778,8 @@ export function diagram(
|
|
|
3774
3778
|
topic: options.topic,
|
|
3775
3779
|
// 既定 (extract) は省略して JSON 形状を変えない。 exclude を明示した図だけ持たせる。
|
|
3776
3780
|
...(options.structuredData === "exclude" ? { structuredData: "exclude" as const } : {}),
|
|
3781
|
+
// 配色の名前は素通しする。 空文字の遮断は `layout` が持つ (後段が必ず通るため)
|
|
3782
|
+
...(options.palette !== undefined ? { palette: options.palette } : {}),
|
|
3777
3783
|
// inputs / formulas / scrollTriggers / eventBindings は空なら省略 (static diagram の JSON 形状維持)
|
|
3778
3784
|
...(inputs.length > 0 ? { inputs: [...inputs] } : {}),
|
|
3779
3785
|
...(formulas.length > 0 ? { formulas: [...formulas] } : {}),
|
package/src/kinds/storage.tsx
CHANGED
|
@@ -12,6 +12,7 @@ import {
|
|
|
12
12
|
SUBTITLE_ROW_SHIFT,
|
|
13
13
|
rowBaselineY,
|
|
14
14
|
rowGlyphDepth,
|
|
15
|
+
rowStripeBand,
|
|
15
16
|
} from "../layout/spec";
|
|
16
17
|
import {
|
|
17
18
|
ROW_PAD_X_PX,
|
|
@@ -52,6 +53,15 @@ const ROW_GLYPH_RISE = 8;
|
|
|
52
53
|
*/
|
|
53
54
|
const SUBTITLE_BASELINE = 118;
|
|
54
55
|
|
|
56
|
+
/**
|
|
57
|
+
* 縞を敷く最少の行数 (#627)。
|
|
58
|
+
*
|
|
59
|
+
* 縞の役目は「隣り合う行を見分ける」 こと。 1 行しか無い箱には見分ける相手が居ないので、
|
|
60
|
+
* 敷くとその 1 行が「主役」 に見える。 閾値ではなく役目から導いた値なので、
|
|
61
|
+
* 図種を増やしても同じ規則が効く。
|
|
62
|
+
*/
|
|
63
|
+
const STRIPE_MIN_ROWS = 2;
|
|
64
|
+
|
|
55
65
|
/** 呼び名の級。 行の名前 (26) より小さく、型 (24) と同じ */
|
|
56
66
|
const SUBTITLE_FONT = 20;
|
|
57
67
|
|
|
@@ -159,6 +169,42 @@ export function StorageNode({
|
|
|
159
169
|
stroke={active ? accent : "var(--cdl-divider, #d4d4d8)"}
|
|
160
170
|
strokeWidth={active ? 3 : 1.25}
|
|
161
171
|
/>
|
|
172
|
+
{/*
|
|
173
|
+
1 行おきの縞 (#1553)。
|
|
174
|
+
|
|
175
|
+
**面の直後に置く**。 面より前だと塗り潰され、行の字より後だと字を隠す。
|
|
176
|
+
位置は `rowStripeBand` が baseline から導く = 縞だけが定数を持つと、行送りを
|
|
177
|
+
変えた時に字だけ動いて縞が取り残される。
|
|
178
|
+
|
|
179
|
+
帯の左右は枠の内側に 1 だけ寄せる。 枠と同じ x に置くと、角の丸みから帯の角が
|
|
180
|
+
はみ出して四隅に色が出る。
|
|
181
|
+
|
|
182
|
+
**行が 1 つの箱には敷かない** (#627)。 縞の役目は「隣り合う行を見分ける」 ことで、
|
|
183
|
+
1 行しか無い箱には見分ける相手が居ない。 敷くとその 1 行が「主役」 に見える
|
|
184
|
+
(実測 = クラス図の 1 行の箱で縞が強調に読めた)。
|
|
185
|
+
*/}
|
|
186
|
+
{node.rowStripe &&
|
|
187
|
+
rows.length >= STRIPE_MIN_ROWS &&
|
|
188
|
+
rows.map((_, idx) => {
|
|
189
|
+
if (idx % 2 !== 0) return null;
|
|
190
|
+
const 帯 = rowStripeBand("storage", idx, 行の下げ);
|
|
191
|
+
if (!帯) return null;
|
|
192
|
+
// 箱の下端をまたぐ縞は描かない。 行数と箱の高さは独立に決まるので、行が多い図では
|
|
193
|
+
// 最後の行が箱の外に来る
|
|
194
|
+
if (帯.y + 帯.h > node.h) return null;
|
|
195
|
+
return (
|
|
196
|
+
<rect
|
|
197
|
+
key={`stripe-${idx}`}
|
|
198
|
+
data-cdl-role="node-row-stripe"
|
|
199
|
+
data-cdl-row-index={idx}
|
|
200
|
+
x={1}
|
|
201
|
+
y={帯.y}
|
|
202
|
+
width={node.w - 2}
|
|
203
|
+
height={帯.h}
|
|
204
|
+
fill="var(--cdl-row-stripe, var(--cdl-label-bg, #f3f4f6))"
|
|
205
|
+
/>
|
|
206
|
+
);
|
|
207
|
+
})}
|
|
162
208
|
{node.eyebrow && (
|
|
163
209
|
<text x={26} y={38} fontSize={18} fontWeight={700} letterSpacing={2} fill={accent}>
|
|
164
210
|
{node.eyebrow}
|
package/src/layout/spec.ts
CHANGED
|
@@ -204,6 +204,29 @@ export function rowBaselineY(kind: string | undefined, index: number): number |
|
|
|
204
204
|
: ROW_TOP_GENERIC + genericTextShift(kind) + index * ROW_PITCH_GENERIC;
|
|
205
205
|
}
|
|
206
206
|
|
|
207
|
+
/**
|
|
208
|
+
* 1 行おきに敷く縞の帯 (#1553)。 node 上端から見た上端 `y` と高さ `h` を返す。
|
|
209
|
+
*
|
|
210
|
+
* **baseline から導く**。 縞だけが自前の定数を持つと、行送りを変えた時に字だけ動いて
|
|
211
|
+
* 縞が取り残される。 行を描かない種別では `null` を返す (`rowBaselineY` と同じ判定)。
|
|
212
|
+
*
|
|
213
|
+
* 帯は baseline を挟む。 上端を baseline に置くと字が帯の上へはみ出すため、
|
|
214
|
+
* 行送りの半分だけ上へ出して行の高さぶんを覆う。
|
|
215
|
+
*
|
|
216
|
+
* `shift` は呼び名で行の塊が下がる分 (`SUBTITLE_ROW_SHIFT`)。 描画側が行に足すのと
|
|
217
|
+
* 同じ値を帯にも足す = 別々に持つと呼び名のある箱でだけ縞と字がずれる。
|
|
218
|
+
*/
|
|
219
|
+
export function rowStripeBand(
|
|
220
|
+
kind: string | undefined,
|
|
221
|
+
index: number,
|
|
222
|
+
shift: number,
|
|
223
|
+
): { y: number; h: number } | null {
|
|
224
|
+
const baseline = rowBaselineY(kind, index);
|
|
225
|
+
if (baseline === null) return null;
|
|
226
|
+
const pitch = kind === "storage" ? ROW_PITCH_STORAGE : ROW_PITCH_GENERIC;
|
|
227
|
+
return { y: baseline + shift - pitch / 2, h: pitch };
|
|
228
|
+
}
|
|
229
|
+
|
|
207
230
|
/**
|
|
208
231
|
* `kinds/generic.tsx` が字の塊を下へずらす量 (SSOT)。
|
|
209
232
|
*
|
package/src/layout.ts
CHANGED
|
@@ -397,6 +397,12 @@ export function layout(diag: CdlDiagram): LaidDiagram {
|
|
|
397
397
|
...(diag.derived ? { derived: diag.derived } : {}),
|
|
398
398
|
// 矢印をいつ出すか (#582)。 描き手が読む欄なので、そのまま持ち越す
|
|
399
399
|
...(diag.edgeReveal ? { edgeReveal: diag.edgeReveal } : {}),
|
|
400
|
+
// どの配色で描くか (#1553)。 空文字は書かなかった扱いにする = 空の目印を出すと、
|
|
401
|
+
// 消費側の `[data-cdl-palette]` が配色を書いていない図にも当たる。
|
|
402
|
+
//
|
|
403
|
+
// **遮断はここだけに置く**。 描画は必ず組み立てを通り、組み立て API も `er` も
|
|
404
|
+
// 素通しにしてある。 上流にも置くと、どの入力でも通らない分岐が残る
|
|
405
|
+
...(diag.palette ? { palette: diag.palette } : {}),
|
|
400
406
|
bboxes,
|
|
401
407
|
collisions,
|
|
402
408
|
nearCollisions,
|
package/src/presets.ts
CHANGED
|
@@ -762,6 +762,22 @@ export type ErPreset = {
|
|
|
762
762
|
* 広げるため、 狭く宣言すると宣言座標と実座標がずれる)。
|
|
763
763
|
*/
|
|
764
764
|
entityWidth?: number;
|
|
765
|
+
/**
|
|
766
|
+
* 行に 1 行おきの縞を敷くか (#1553、 既定 = 敷く)。
|
|
767
|
+
*
|
|
768
|
+
* ER 図は小さい字が密に並ぶので、行を横に追う時の目印が無い。
|
|
769
|
+
* 色を増やさずに面を 1 行おきに変えて追えるようにする。
|
|
770
|
+
*
|
|
771
|
+
* 設計の形 (`columns` を書いた実体) だけが対象。 `rows` を直接書いた古い形は
|
|
772
|
+
* 行頭の印を持たないので敷かない。
|
|
773
|
+
*/
|
|
774
|
+
rowStripe?: boolean;
|
|
775
|
+
/**
|
|
776
|
+
* この図をどの配色で描くか (#1553)。 書かない図は消費側の既定で描かれる。
|
|
777
|
+
*
|
|
778
|
+
* cdl は色の値を持たない。 名前を markup に出すだけで、実際の値は消費側が決める。
|
|
779
|
+
*/
|
|
780
|
+
palette?: string;
|
|
765
781
|
};
|
|
766
782
|
|
|
767
783
|
export type ErBuilder = {
|
|
@@ -785,7 +801,9 @@ export type ErBuilder = {
|
|
|
785
801
|
export function er(preset: ErPreset): ErBuilder {
|
|
786
802
|
const entityW = resolveStorageBoxW(preset.entityWidth, "er", "entityWidth");
|
|
787
803
|
const tone: Tone = preset.defaultTone ?? "info";
|
|
788
|
-
const
|
|
804
|
+
const 縞を敷く = preset.rowStripe ?? true;
|
|
805
|
+
// 配色の名前は素通しする。 空文字の遮断は `diagram` が持つ = ここで重ねると到達しない分岐になる
|
|
806
|
+
const b = diagram(preset.id, { topic: preset.topic, palette: preset.palette });
|
|
789
807
|
|
|
790
808
|
const entities: string[] = [];
|
|
791
809
|
const phaseActivate: string[] = [];
|
|
@@ -829,6 +847,9 @@ export function er(preset: ErPreset): ErBuilder {
|
|
|
829
847
|
...(設計の形 && e.subtitle ? { subtitle: e.subtitle } : {}),
|
|
830
848
|
rows,
|
|
831
849
|
...(設計の形 ? { rowMarks: 印 } : {}),
|
|
850
|
+
// 縞は設計の形だけに敷く (#1553)。 `rows` を直接書いた古い形は行頭の印を持たず、
|
|
851
|
+
// 群の区切りも線で表しているので、縞を足すと手掛かりが 3 つになる
|
|
852
|
+
...(設計の形 && 縞を敷く ? { rowStripe: true } : {}),
|
|
832
853
|
});
|
|
833
854
|
entities.push(e.id);
|
|
834
855
|
phaseActivate.push(e.id);
|
|
@@ -1404,6 +1425,17 @@ export type ClassDiagramPreset = {
|
|
|
1404
1425
|
* 帯ではなく **箱** の幅。 帯は `箱の幅 + 余白 × 2` で宣言する。
|
|
1405
1426
|
*/
|
|
1406
1427
|
classWidth?: number;
|
|
1428
|
+
/**
|
|
1429
|
+
* 行に 1 行おきの縞を敷くか (既定 = 敷く、 #627)。
|
|
1430
|
+
*
|
|
1431
|
+
* クラス図の箱は ER 図と同じ作り (行頭の印 + 左に名前 + 右に型) をしており、名前と型が
|
|
1432
|
+
* 離れて並ぶので行を横に追う目印が要る。 `er()` と同じ既定にする。
|
|
1433
|
+
*/
|
|
1434
|
+
rowStripe?: boolean;
|
|
1435
|
+
/**
|
|
1436
|
+
* 図の配色の名前 (#627)。 描き手は色を持たないので、名前をそのまま markup に出す。
|
|
1437
|
+
*/
|
|
1438
|
+
palette?: string;
|
|
1407
1439
|
};
|
|
1408
1440
|
|
|
1409
1441
|
export type ClassDiagramBuilder = {
|
|
@@ -1426,7 +1458,9 @@ export type ClassDiagramBuilder = {
|
|
|
1426
1458
|
export function classDiagram(preset: ClassDiagramPreset): ClassDiagramBuilder {
|
|
1427
1459
|
const classW = resolveStorageBoxW(preset.classWidth, "classDiagram", "classWidth");
|
|
1428
1460
|
const tone: Tone = preset.defaultTone ?? "info";
|
|
1429
|
-
|
|
1461
|
+
// 縞と配色は `er()` と同じ扱い (#627)。 箱の作りが同じなので、既定も揃える
|
|
1462
|
+
const 縞を敷く = preset.rowStripe ?? true;
|
|
1463
|
+
const b = diagram(preset.id, { topic: preset.topic, palette: preset.palette });
|
|
1430
1464
|
|
|
1431
1465
|
const classes: string[] = [];
|
|
1432
1466
|
const phaseActivate: string[] = [];
|
|
@@ -1488,6 +1522,8 @@ export function classDiagram(preset: ClassDiagramPreset): ClassDiagramBuilder {
|
|
|
1488
1522
|
// あることしか言わず、図の中の全ての箱に同じ字が並ぶ
|
|
1489
1523
|
...(m.c.stereotype ? { eyebrow: m.c.stereotype } : {}),
|
|
1490
1524
|
...(m.rows.length > 0 ? { rows: m.rows, rowMarks: m.rowMarks } : {}),
|
|
1525
|
+
// 縞は行を持つ箱にだけ敷く (#627)。 行が無い箱に書いても描き手が読まない
|
|
1526
|
+
...(m.rows.length > 0 && 縞を敷く ? { rowStripe: true } : {}),
|
|
1491
1527
|
});
|
|
1492
1528
|
classes.push(m.c.id);
|
|
1493
1529
|
phaseActivate.push(m.c.id);
|
package/src/render/stage.tsx
CHANGED
|
@@ -144,6 +144,13 @@ export function CdlStage({
|
|
|
144
144
|
// 倍率は SVG 要素そのものに載せる。 中身を包む `<g>` を作らないので、
|
|
145
145
|
// 倍率 1 / 未指定の DOM は従来と 1 byte も変わらない。
|
|
146
146
|
data-cdl-scale={diagramScale === 1 ? undefined : diagramScale}
|
|
147
|
+
// どの配色で描くか (#1553)。 cdl は色の値を持たず、名前だけを出す。
|
|
148
|
+
// 消費側 (dragon の theme 等) が名前を見て変数の値を決める。
|
|
149
|
+
//
|
|
150
|
+
// **ここでは空文字を弾かない**。 公開経路は `CdlDiagramView` だけで、必ず組み立てを
|
|
151
|
+
// 通るため、空文字は `layout` が既に落としている。 ここにも守りを置くと、
|
|
152
|
+
// どの入力でも通らない分岐が残る
|
|
153
|
+
data-cdl-palette={laid.palette}
|
|
147
154
|
>
|
|
148
155
|
<defs>
|
|
149
156
|
{/* CAR-643 = cdl は geometry only。 shadow / border effect の filter は cdl SVG 内に
|
package/src/types.ts
CHANGED
|
@@ -351,6 +351,16 @@ export type CdlNode = {
|
|
|
351
351
|
* 空文字の行と `null` の印を組にすると **群の間** になる (持ち物と振る舞いの間など)。
|
|
352
352
|
*/
|
|
353
353
|
rowMarks?: readonly (RowMark | null)[];
|
|
354
|
+
/**
|
|
355
|
+
* 行に 1 行おきの縞を敷くか (#1553)。
|
|
356
|
+
*
|
|
357
|
+
* 表の箱は小さい字が密に並ぶので、行を横に追う時の目印が無い。
|
|
358
|
+
* 色を増やさずに、面を 1 行おきに変えて追えるようにする。
|
|
359
|
+
*
|
|
360
|
+
* **既定では敷かない**。 `er` が設計の形で立てた実体だけが持つ。
|
|
361
|
+
* クラス図も同じ `storage` を使うが、持ち物と振る舞いは行頭の印で既に分かれている。
|
|
362
|
+
*/
|
|
363
|
+
rowStripe?: boolean;
|
|
354
364
|
/**
|
|
355
365
|
* 時系列のやり取りの中身 (#578)。 `sequence-board` 種別が読む。
|
|
356
366
|
*
|
|
@@ -2507,6 +2517,17 @@ export type CdlDiagram = {
|
|
|
2507
2517
|
* 既定は `"extract"` = 付け忘れても検知が緩まない向き。
|
|
2508
2518
|
*/
|
|
2509
2519
|
structuredData?: "extract" | "exclude";
|
|
2520
|
+
/**
|
|
2521
|
+
* この図をどの配色で描くか (#1553)。 書かない図は消費側の既定で描かれる。
|
|
2522
|
+
*
|
|
2523
|
+
* **cdl は色の値を持たない**。 名前を `data-cdl-palette` として markup に出すだけで、
|
|
2524
|
+
* 実際の値は消費側 (dragon の theme 等) が名前を見て決める。 値を engine に持たせると、
|
|
2525
|
+
* 消費側が配色を変えるたびに engine の release が要る。
|
|
2526
|
+
*
|
|
2527
|
+
* 空文字は書かなかった扱いにする = 空を出すと消費側の `[data-cdl-palette]` が
|
|
2528
|
+
* 既定の図にも当たる。
|
|
2529
|
+
*/
|
|
2530
|
+
palette?: string;
|
|
2510
2531
|
/**
|
|
2511
2532
|
* 矢印をいつ出すか (既定 = `"phase"`、 #582)。
|
|
2512
2533
|
*
|
|
@@ -2711,6 +2732,8 @@ export type BBox = {
|
|
|
2711
2732
|
export type LaidDiagram = {
|
|
2712
2733
|
id: string;
|
|
2713
2734
|
topic: string;
|
|
2735
|
+
/** どの配色で描くか (#1553)。 `CdlDiagram.palette` をそのまま持ち越す */
|
|
2736
|
+
palette?: string;
|
|
2714
2737
|
viewBox: { x: number; y: number; w: number; h: number };
|
|
2715
2738
|
/**
|
|
2716
2739
|
* 図全体の倍率 (`CdlViewport.scale` を正規化した値)。
|