@cardenelabs/dragon 0.19.0 → 0.20.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/README.md +1 -1
- package/dist/index.cjs +19 -4
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +8 -2
- package/dist/index.d.ts +8 -2
- package/dist/index.js +19 -4
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/src/compile.ts +20 -3
- package/src/json-parser.ts +4 -1
- package/src/keywords.ts +6 -1
- package/src/schemas/diagram.json +1 -1
- package/src/types.ts +4 -1
- package/src/v05/parser.ts +4 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cardenelabs/dragon",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.20.0",
|
|
4
4
|
"description": "Dragon — Mermaid 感覚で animated SVG を生成する Text DSL。 cdl engine を内部利用。",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "cardene777",
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
"prepublishOnly": "pnpm run typecheck && pnpm run test && pnpm run build"
|
|
58
58
|
},
|
|
59
59
|
"dependencies": {
|
|
60
|
-
"@cardenelabs/cdl": "^0.
|
|
60
|
+
"@cardenelabs/cdl": "^0.27.0"
|
|
61
61
|
},
|
|
62
62
|
"peerDependencies": {
|
|
63
63
|
"react": "^19.0.0",
|
package/src/compile.ts
CHANGED
|
@@ -583,6 +583,8 @@ function 静止した図の焦点を外す(diagram: CdlDiagram, doc: DslDocument
|
|
|
583
583
|
}
|
|
584
584
|
}
|
|
585
585
|
|
|
586
|
+
const 既定の配色を持つ図種: ReadonlySet<DslDocument["type"]> = new Set(["er", "class"]);
|
|
587
|
+
|
|
586
588
|
/**
|
|
587
589
|
* 図の配色と、表の箱の行の縞を当てる (#1553)。
|
|
588
590
|
*
|
|
@@ -591,10 +593,14 @@ function 静止した図の焦点を外す(diagram: CdlDiagram, doc: DslDocument
|
|
|
591
593
|
* cdl は色を持たない。 名前だけを `data-cdl-palette` として markup に出し、消費側
|
|
592
594
|
* (`cdl-theme.css`) が名前を見て 7 つの口 (台 / 行の面 / 縞 / 枠 / 字 / 型名 / 線) に色を当てる。
|
|
593
595
|
*
|
|
594
|
-
* ER
|
|
595
|
-
*
|
|
596
|
+
* ER 図とクラス図は書かなくても `kinari` (生成りに茶) になる。
|
|
597
|
+
* どちらも箱の作りが同じ (行頭の印 + 左に名前 + 右に型) で、名前と型が離れて並ぶため、
|
|
598
|
+
* 行を横に追う目印 (行の縞) が要る。
|
|
599
|
+
* 縞の色は配色からしか来ないので、既定が無いと縞が箱の面と同じ色に落ちて 1 本も出ない。
|
|
596
600
|
* 書き手が `palette:` を書いた時はそちらが勝つ。
|
|
597
601
|
*
|
|
602
|
+
* クラス図の意匠は `docs/design/class/note.md` が持つ。
|
|
603
|
+
*
|
|
598
604
|
* ## 行の縞
|
|
599
605
|
*
|
|
600
606
|
* cdl の `er()` 組み立て器は縞を既定で敷くが、**動きを持つ ER 図はその経路を通らない**
|
|
@@ -605,7 +611,7 @@ function 静止した図の焦点を外す(diagram: CdlDiagram, doc: DslDocument
|
|
|
605
611
|
* ここで対象を絞って「書いたのに出ない」 欄を残さない。
|
|
606
612
|
*/
|
|
607
613
|
function 配色と縞を当てる(diagram: CdlDiagram, doc: DslDocument): void {
|
|
608
|
-
const 配色 = doc.palette ?? (doc.type
|
|
614
|
+
const 配色 = doc.palette ?? (既定の配色を持つ図種.has(doc.type) ? "kinari" : undefined);
|
|
609
615
|
if (配色 !== undefined) diagram.palette = 配色;
|
|
610
616
|
if (doc.type !== "er") return;
|
|
611
617
|
for (const node of diagram.nodes) {
|
|
@@ -6685,6 +6691,17 @@ const 縦列を選べる図種: ReadonlySet<PresetType> = new Set<PresetType>([
|
|
|
6685
6691
|
"swimlane",
|
|
6686
6692
|
"class",
|
|
6687
6693
|
"state",
|
|
6694
|
+
/*
|
|
6695
|
+
* ER 図 (#1571)。
|
|
6696
|
+
*
|
|
6697
|
+
* `er` の組み立て器は実体 1 つにつき帯を 1 本作り、必ず段 0 に置く = 表が横 1 列にしか
|
|
6698
|
+
* 並ばない。 関係を 4 本持つ実体があると、どう並べ替えても 2 本は隣を飛び越す
|
|
6699
|
+
* (意匠帳 `docs/design/er/note.md` § 記法の制約 が 4 通りを実測しており、1 列は縦横比 7.0 /
|
|
6700
|
+
* 最長の線 4068、格子は 3.5 / 836)。
|
|
6701
|
+
*
|
|
6702
|
+
* **全ての箱が縦列を書いた時だけ** 効くので、書かない図はいままでどおり組み立て器が並べる。
|
|
6703
|
+
*/
|
|
6704
|
+
"er",
|
|
6688
6705
|
]);
|
|
6689
6706
|
|
|
6690
6707
|
/**
|
package/src/json-parser.ts
CHANGED
|
@@ -197,7 +197,10 @@ export interface DragonJson {
|
|
|
197
197
|
* 図の配色 (#1553)。 記法の最上位 `palette:` と同じ。
|
|
198
198
|
*
|
|
199
199
|
* 名前だけを図に載せる = cdl は色を持たず、値は `cdl-theme.css` が決める。
|
|
200
|
-
* ER
|
|
200
|
+
* ER 図とクラス図は書かなくても `kinari` (生成りに茶) になる。 どちらも箱の作りが同じ
|
|
201
|
+
* (行頭の印 + 左に名前 + 右に型) で、名前と型が離れて並ぶため、行を横に追う目印
|
|
202
|
+
* (行の縞) が要る。 縞の色は配色からしか来ないので、既定が無いと縞が箱の面と同じ色に
|
|
203
|
+
* 落ちて 1 本も出ない。 書き手が `palette:` を書いた時はそちらが勝つ。
|
|
201
204
|
*/
|
|
202
205
|
palette?: DslPalette;
|
|
203
206
|
}
|
package/src/keywords.ts
CHANGED
|
@@ -61,7 +61,12 @@ export type DslPalette = (typeof PALETTES)[number];
|
|
|
61
61
|
/**
|
|
62
62
|
* 配色の別名。 向きと同じく日本語と英語の両方で書ける。
|
|
63
63
|
*
|
|
64
|
-
* `kinari` =
|
|
64
|
+
* `kinari` = 生成りに茶、 `celadon` = 青磁に墨。
|
|
65
|
+
*
|
|
66
|
+
* ER 図とクラス図は書かなくても `kinari` (生成りに茶) になる。 どちらも箱の作りが同じ
|
|
67
|
+
* (行頭の印 + 左に名前 + 右に型) で、名前と型が離れて並ぶため、行を横に追う目印
|
|
68
|
+
* (行の縞) が要る。 縞の色は配色からしか来ないので、既定が無いと縞が箱の面と同じ色に
|
|
69
|
+
* 落ちて 1 本も出ない。 書き手が `palette:` を書いた時はそちらが勝つ。
|
|
65
70
|
*/
|
|
66
71
|
export const PALETTE_ALIAS: Record<string, DslPalette> = {
|
|
67
72
|
kinari: "kinari",
|
package/src/schemas/diagram.json
CHANGED
|
@@ -2216,7 +2216,7 @@
|
|
|
2216
2216
|
"kinari",
|
|
2217
2217
|
"celadon"
|
|
2218
2218
|
],
|
|
2219
|
-
"description": "
|
|
2219
|
+
"description": "図の配色 (`kinari` = 生成りに茶、`celadon` = 青磁に墨) で、ER 図とクラス図は書かなくても `kinari` になり、書いた `palette` が優先され、名前だけが図に載って色の値は消費側が決める。"
|
|
2220
2220
|
},
|
|
2221
2221
|
"reveal": {
|
|
2222
2222
|
"type": "string",
|
package/src/types.ts
CHANGED
|
@@ -182,7 +182,10 @@ export type DslDocument = {
|
|
|
182
182
|
* 図の配色 (`palette:`、 #1553)。
|
|
183
183
|
*
|
|
184
184
|
* 名前だけを持つ。 実際の色は消費側 (`cdl-theme.css`) が決めるので、ここには値を書かない。
|
|
185
|
-
* ER
|
|
185
|
+
* ER 図とクラス図は書かなくても `kinari` (生成りに茶) になる。 どちらも箱の作りが同じ
|
|
186
|
+
* (行頭の印 + 左に名前 + 右に型) で、名前と型が離れて並ぶため、行を横に追う目印
|
|
187
|
+
* (行の縞) が要る。 縞の色は配色からしか来ないので、既定が無いと縞が箱の面と同じ色に
|
|
188
|
+
* 落ちて 1 本も出ない。 書き手が `palette:` を書いた時はそちらが勝つ。
|
|
186
189
|
*/
|
|
187
190
|
palette?: DslPalette;
|
|
188
191
|
groups?: Record<string, DslGroup>;
|
package/src/v05/parser.ts
CHANGED
|
@@ -176,7 +176,10 @@ export const TOP_LEVEL_KEYS = [
|
|
|
176
176
|
* cdl は色を持たないので、名前だけを図に載せる。 消費側 (`cdl-theme.css`) が名前を見て
|
|
177
177
|
* 7 つの口 (台 / 行の面 / 縞 / 枠 / 字 / 型名 / 線) に色を当てる。
|
|
178
178
|
*
|
|
179
|
-
* ER
|
|
179
|
+
* ER 図とクラス図は書かなくても `kinari` (生成りに茶) になる。 どちらも箱の作りが同じ
|
|
180
|
+
* (行頭の印 + 左に名前 + 右に型) で、名前と型が離れて並ぶため、行を横に追う目印
|
|
181
|
+
* (行の縞) が要る。 縞の色は配色からしか来ないので、既定が無いと縞が箱の面と同じ色に
|
|
182
|
+
* 落ちて 1 本も出ない。 書き手が `palette:` を書いた時はそちらが勝つ。
|
|
180
183
|
*/
|
|
181
184
|
"palette",
|
|
182
185
|
] as const;
|