@cardenelabs/cdl 0.22.0 → 0.24.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 +133 -1
- package/dist/index.cjs +7028 -6463
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +71 -3
- package/dist/index.d.ts +71 -3
- package/dist/index.js +7027 -6464
- package/dist/index.js.map +1 -1
- package/dist/react.cjs +22896 -22450
- 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 +22896 -22450
- package/dist/react.js.map +1 -1
- package/dist/{render-Czv0tUon.d.cts → render-CfXUl0Yz.d.cts} +18 -1
- package/dist/{render-Czv0tUon.d.ts → render-CfXUl0Yz.d.ts} +18 -1
- package/package.json +1 -1
- package/src/builder.ts +7 -0
- package/src/index.ts +4 -0
- package/src/kinds/generic.tsx +92 -14
- package/src/layout/edges.ts +627 -0
- package/src/layout/order.ts +201 -0
- package/src/layout/spec.ts +1 -0
- package/src/layout.ts +25 -1
- package/src/presets.ts +12 -13
- package/src/render/edges.tsx +42 -17
- package/src/types.ts +18 -0
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,136 @@ CDL (Chainome Diagram Language) の主要変更履歴。
|
|
|
5
5
|
|
|
6
6
|
## [Unreleased]
|
|
7
7
|
|
|
8
|
+
## [0.24.0] - 2026-09-02
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- **見せ方を持つ箱に目印を出すようにした** (#620)
|
|
13
|
+
|
|
14
|
+
`#616` で足した `look` が消費側の画面に出なかった。 dragon の `cdl-theme.css` が
|
|
15
|
+
`node-body > rect` の `fill` を `!important` で固定しており、`look` が決めた面
|
|
16
|
+
(`none` / 薄い面 / 墨のベタ) が全て既定の面に潰れていた。
|
|
17
|
+
|
|
18
|
+
消費側は「見せ方を持つ箱」 と「持たない箱」 を区別できない。 markup に手掛かりが無かった。
|
|
19
|
+
|
|
20
|
+
`look` を持つ kind の箱に `data-cdl-look` を出す。 持たない kind には出さない
|
|
21
|
+
(空文字を出すと消費側の `:not()` が効かなくなる)。
|
|
22
|
+
|
|
23
|
+
- **辺に役目を持たせ、順路を朱で引けるようにした** (#618)
|
|
24
|
+
|
|
25
|
+
辺の見せ方が 1 通りしかなく、太さも名前の置き方も図の役目に関わらず同じだった。
|
|
26
|
+
`infra-demo` は「要求が通る道」 と「App が持つ預け先」 の 2 種を持つが、どちらも同じ線で
|
|
27
|
+
描かれ、どこから読むかが決まらない。
|
|
28
|
+
|
|
29
|
+
| 足したもの | 既定 | 書くと |
|
|
30
|
+
|---|---|---|
|
|
31
|
+
| `role: "main"` | tone の色 | 「いま」 の色 (`--cdl-now`) で引く |
|
|
32
|
+
| `labelPlate: false` | 丸い下地を敷く | 字だけを線の上に置く |
|
|
33
|
+
|
|
34
|
+
線の太さの既定を下げた (光って 5 → 2.5、光らず 2.5 → 1.25)。
|
|
35
|
+
消費側 (dragon) が `!important` で 2.25 に上書きしており、箱の枠 (1.75) より太かった。
|
|
36
|
+
|
|
37
|
+
**値は 3 層を通る**。 `InfraConnection` (書き手の入口) → `edge()` (基底の組立て) →
|
|
38
|
+
`CdlEdge` (描く側) のすべてに足さないと、設定しても何も起きない。
|
|
39
|
+
当初 1 層目だけに足して黙って落ちた。
|
|
40
|
+
|
|
41
|
+
- **箱の見せ方を色でなく形で選べるようにした** (#616)
|
|
42
|
+
|
|
43
|
+
箱の見せ方が全種別で同じで、違いは枠線の色と右上の絵記号だけだった。
|
|
44
|
+
色で種別を分ける形は、消費側の配色によっては読めない。 dragon の茶墨は種別の色が
|
|
45
|
+
4 つとも暗く彩度が低く、枠線の面積では差が出ない (隔たりは 18.6 以上あるが効かない)。
|
|
46
|
+
|
|
47
|
+
`KindStyle` に `look` を足し、面と枠の描き方を 5 通りから選べるようにした。
|
|
48
|
+
|
|
49
|
+
| `look` | 描き方 | 何を示すか | 当てた種別 |
|
|
50
|
+
|---|---|---|---|
|
|
51
|
+
| `outline` | 面を塗らず枠だけ | 図の外にある | `person` |
|
|
52
|
+
| `tint` | 文字色 6% の面 | 通り道 | `cdn` |
|
|
53
|
+
| `solid` | 文字色のベタ + 紙色の字 | ここが働く | `service` |
|
|
54
|
+
| `ledger` | 面 + 底に二重の罫 | 消えては困る | `queue` |
|
|
55
|
+
| `dashed` | 面を塗らず破線の枠 | 作り直せる | `cache` |
|
|
56
|
+
|
|
57
|
+
未指定は従来どおりで、`look` を書いた 5 種別だけが変わる。
|
|
58
|
+
|
|
59
|
+
**`ledger` は四角の箱にだけ効く**。 円筒や雲は形そのものが役目を示しており、底の罫を
|
|
60
|
+
足す場所が無い。 `database` は円筒なので当てていない。
|
|
61
|
+
|
|
62
|
+
**ベタ塗りでも枠は種別の色のまま**。 「光っている節の枠は種別の色」 は既存の契約で、
|
|
63
|
+
`node-styling` が守っている。 面だけを墨で塗る。
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
## [0.23.0] - 2026-09-02
|
|
67
|
+
|
|
68
|
+
### Added
|
|
69
|
+
|
|
70
|
+
- **交わる線を弧で跨ぐようにした** (#608)
|
|
71
|
+
|
|
72
|
+
engine は交差を数えるだけで、交わった所の描き方を持たなかった。
|
|
73
|
+
2 本が同じ点で重なるので十字に潰れ、下をくぐる線が切れたようにも見える。
|
|
74
|
+
破線どうしだと刻みが噛み合って、その一点だけ塗り潰されたように見えていた。
|
|
75
|
+
|
|
76
|
+
経路が確定した後に交点を洗い出し、横に走る側の直線区間へ半径 11 の弧を差し込む。
|
|
77
|
+
横が跨ぐのは、図を横に読むので縦線を跨ぐ方が視線の流れを切らないため。
|
|
78
|
+
両方が縦なら後から出た方が右へ膨らむ。
|
|
79
|
+
|
|
80
|
+
差し込むのは直線の区間だけ。 角の丸めと弓は形そのものが意味を持つので制御点ごと書き戻す。
|
|
81
|
+
端から 26 の内側にある交点は跨がない = そこは端の印が立つ場所で弧と重なる。
|
|
82
|
+
|
|
83
|
+
- **同じ通り道を並んで走る線をずらすようにした** (#610)
|
|
84
|
+
|
|
85
|
+
線が箱を避ける通り道は「塞ぐ箱の端 + 余白」 で決まるので、同じ箱を避ける線は必ず同じ列を
|
|
86
|
+
通る。 engine は重なりを警告に出すが、直す仕掛けを持っていなかった。
|
|
87
|
+
|
|
88
|
+
破線どうしが重なると刻みが噛み合って隙間が埋まり、実線に見える。
|
|
89
|
+
ER 図では実線が「識別する関係」 を指すので、関係の種類そのものが違って読める。
|
|
90
|
+
|
|
91
|
+
経路が確定した後に、同じ直線を 40 以上並んで走る区間を見つけて、後から出る線の側を
|
|
92
|
+
26 ずらす。 ずらした先が箱なら反対側を試し、両側とも塞がるならずらさない。
|
|
93
|
+
|
|
94
|
+
同じ節から出る線は重ねたまま残す (#211)。 幹線から順に降りる 1 本の線として読め、
|
|
95
|
+
読み手は共有した起点から分岐を辿れる。
|
|
96
|
+
端点を含む区間も動かさない = 動かすと線の根元が箱の辺の中央から外れる。
|
|
97
|
+
|
|
98
|
+
4 つの表と 4 つの関係を持つ ER 図で、並走が 4 件から 2 件に減る。
|
|
99
|
+
|
|
100
|
+
- **同じ辺に入る線の終点を辺に沿って離すようにした** (#611)
|
|
101
|
+
|
|
102
|
+
複数の線が 1 つの辺に入ると、終点が辺の中央 1 点に集まって根元が重なる。
|
|
103
|
+
|
|
104
|
+
出る側は触らない。 起点が 1 点に収束する形は「1 つの節から複数の線が発散する」 という
|
|
105
|
+
意味を持つ (#429)。 入る側にはその意味が無く、重なりは意図した形ではなく副産物なので、
|
|
106
|
+
そちらだけを直す。
|
|
107
|
+
|
|
108
|
+
経路を引き終えてから末尾を「辺に沿って助走 → 辺へ垂直に入る」 の 2 区間に差し替える。
|
|
109
|
+
終点を先に動かすと引き方の分岐が変わり、迂回していた線が箱を貫通した。
|
|
110
|
+
|
|
111
|
+
離す間隔は行 1 つ分 (56)。 4 隅に刺さらないよう両端に余白を残し、詰まるなら離さない。
|
|
112
|
+
同じ 2 点を結ぶ線 (#941 が重なりを残すと決めた範囲)、箱に当たる線、交差が増える線は
|
|
113
|
+
元のまま残す。
|
|
114
|
+
|
|
115
|
+
1 つの節に線が集まる図で、根元の重なりが 3 組から 1 組 (3 本) / 10 組から 6 組 (5 本) に減る。
|
|
116
|
+
経路の大半を共有する線どうしは、分かれる点が交差として数えられるので離れない。
|
|
117
|
+
|
|
118
|
+
- **関係から lane と stack の並びを決める純関数を足した** (#599)
|
|
119
|
+
|
|
120
|
+
### Changed
|
|
121
|
+
|
|
122
|
+
- **群を分ける空行をやめて行の間隔を揃えた** (#606)
|
|
123
|
+
|
|
124
|
+
群の区切りは **行頭の印** が持っている = ER は鍵の名前に下線、クラス図は持ち物が四角で
|
|
125
|
+
振る舞いが山形。 空行はその 2 つ目の手掛かりで、代わりに行の間隔を不揃いにしていた
|
|
126
|
+
(鍵と値を持つ箱だけ境目が広がる)。
|
|
127
|
+
|
|
128
|
+
空行を外すと、2 行の箱どうしが同じ高さで完全に揃う。
|
|
129
|
+
|
|
130
|
+
#604 で空行の送りを半分にする形を入れたが、群を示す役目が行頭の印と重複していたため
|
|
131
|
+
実装ごと戻した。
|
|
132
|
+
|
|
133
|
+
- **札を線に沿って動かして他の線と箱から離すようにした** (#601)
|
|
134
|
+
|
|
135
|
+
ここまでの置き直しは全て縦方向で、線に沿って動かす経路が無かった。
|
|
136
|
+
いま被っている札だけを対象にするので、落ち着いている図の座標は動かない。
|
|
137
|
+
|
|
8
138
|
## [0.22.0] - 2026-08-30
|
|
9
139
|
|
|
10
140
|
### Changed
|
|
@@ -1113,7 +1243,9 @@ Initial OSS release.
|
|
|
1113
1243
|
使わない = annotated tag を push しても GitHub Release は作られず、 Release を作っていない版で
|
|
1114
1244
|
行き止まりになる。
|
|
1115
1245
|
|
|
1116
|
-
[Unreleased]: https://github.com/cardene777/cdl/compare/v0.
|
|
1246
|
+
[Unreleased]: https://github.com/cardene777/cdl/compare/v0.24.0...HEAD
|
|
1247
|
+
[0.24.0]: https://github.com/cardene777/cdl/compare/v0.23.0...v0.24.0
|
|
1248
|
+
[0.23.0]: https://github.com/cardene777/cdl/compare/v0.22.0...v0.23.0
|
|
1117
1249
|
[0.22.0]: https://github.com/cardene777/cdl/compare/v0.21.2...v0.22.0
|
|
1118
1250
|
[0.21.2]: https://github.com/cardene777/cdl/compare/v0.21.1...v0.21.2
|
|
1119
1251
|
[0.21.1]: https://github.com/cardene777/cdl/compare/v0.21.0...v0.21.1
|