@cardenelabs/cdl 0.53.0 → 0.54.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 +27 -1
- package/README.md +2 -2
- package/dist/index.cjs +50 -27
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +10 -10
- package/dist/index.d.ts +10 -10
- package/dist/index.js +50 -27
- package/dist/index.js.map +1 -1
- 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.map +1 -1
- package/dist/{render-C0PJ2weJ.d.cts → render-Cp41meYv.d.cts} +7 -6
- package/dist/{render-C0PJ2weJ.d.ts → render-Cp41meYv.d.ts} +7 -6
- package/package.json +1 -1
- package/src/layout/head-label.ts +2 -2
- package/src/presets.ts +67 -34
- package/src/render/relation-focus.ts +1 -1
- package/src/types.ts +7 -6
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,31 @@ CDL (Chainome Diagram Language) の主要変更履歴。
|
|
|
5
5
|
|
|
6
6
|
## [Unreleased]
|
|
7
7
|
|
|
8
|
+
## [0.54.0] - 2026-09-11
|
|
9
|
+
|
|
10
|
+
### Changed
|
|
11
|
+
|
|
12
|
+
- **図の組み立て関数が自動で書き足す字を、英語から日本語にした** (#835)
|
|
13
|
+
|
|
14
|
+
組み立て関数は書き手の入力とは別に、箱の札・説明・最後の段の説明を書き足す。 そこに英語が混ざっていた。
|
|
15
|
+
|
|
16
|
+
| 組み立て関数 | 直す前 | 直した後 |
|
|
17
|
+
|---|---|---|
|
|
18
|
+
| `flowchart` の形の札 | `process` `decision` `start` `end` `loop` | 処理 / 判断 / 開始 / 終了 / 繰り返し |
|
|
19
|
+
| `network` の機器の札 | `router` `switch` `firewall` `server` `client` | ルーター / スイッチ / ファイアウォール / サーバー / 端末 |
|
|
20
|
+
| `stateMachine2` の入れ子の札 | `状態 / nested in active` (親の識別子) | `状態 / Activeの中` (親の題) |
|
|
21
|
+
| `stateMachine2` の入る時と出る時 | `entry: clearForm` / `exit: stopSpinner` | `入る時: clearForm` / `出る時: stopSpinner` |
|
|
22
|
+
| 17 種の最後の段の説明 | 「全 step 順次実行。」 「network 全 device + link を visible 化。」 など | 「すべての段を上から順に通った流れ。」 「すべての機器と接続を並べた構成。」 など |
|
|
23
|
+
|
|
24
|
+
入れ子の札は、親を後から宣言しても親の題を引く。 段の札 (`badge`) と、描く側が描かない図表の札は変えていない。
|
|
25
|
+
|
|
26
|
+
- **文書で関係の種類を呼ぶ語を、見本帳と同じ UML の用語にした** (#833)
|
|
27
|
+
|
|
28
|
+
`README.md` の端の形の説明は、関係の種類を `継ぐ` `満たす` `持つ` と作った語で呼んでいた。
|
|
29
|
+
見本帳 (dragon) が 継承 / 実装 / 集約 / コンポジション / 関連 / 依存 に揃えたので、同じ語にした。
|
|
30
|
+
型と表の説明 (`EdgeStyle` / `EdgeHead` / `EdgeHeadFill` / `CLASS_RELATION_LOOK` / `SequenceMessageKind`) も同じ語にした。
|
|
31
|
+
見本帳を写した検査の関係名とテスト名も見本帳と同じ語にした。 実装は変えていない。
|
|
32
|
+
|
|
8
33
|
## [0.53.0] - 2026-09-11
|
|
9
34
|
|
|
10
35
|
### Fixed
|
|
@@ -2462,7 +2487,8 @@ Initial OSS release.
|
|
|
2462
2487
|
使わない = annotated tag を push しても GitHub Release は作られず、 Release を作っていない版で
|
|
2463
2488
|
行き止まりになる。
|
|
2464
2489
|
|
|
2465
|
-
[Unreleased]: https://github.com/cardene777/cdl/compare/v0.
|
|
2490
|
+
[Unreleased]: https://github.com/cardene777/cdl/compare/v0.54.0...HEAD
|
|
2491
|
+
[0.54.0]: https://github.com/cardene777/cdl/compare/v0.53.0...v0.54.0
|
|
2466
2492
|
[0.53.0]: https://github.com/cardene777/cdl/compare/v0.52.0...v0.53.0
|
|
2467
2493
|
[0.52.0]: https://github.com/cardene777/cdl/compare/v0.51.0...v0.52.0
|
|
2468
2494
|
[0.51.0]: https://github.com/cardene777/cdl/compare/v0.50.0...v0.51.0
|
package/README.md
CHANGED
|
@@ -200,8 +200,8 @@ export const custom = diagram("custom", { topic: "Custom" })
|
|
|
200
200
|
| `dotted-flow` | 点線 + 進行点 glow (3 重円) が path 上を流れる、 node 貫通自動判定 |
|
|
201
201
|
|
|
202
202
|
端の形 (`head`) は線の種類とは **別の軸** で、線の先端に何を置くかを決める。
|
|
203
|
-
実線 × 三角 (
|
|
204
|
-
実線 × 三角 (
|
|
203
|
+
実線 × 三角 (継承) と破線 × 三角 (実装) は線種で分かれ、
|
|
204
|
+
実線 × 三角 (継承) と実線 × 菱 (集約) は端で分かれる。
|
|
205
205
|
|
|
206
206
|
| EdgeHead | 形 | 表すもの |
|
|
207
207
|
|---|---|---|
|
package/dist/index.cjs
CHANGED
|
@@ -32169,7 +32169,7 @@ function flow(preset) {
|
|
|
32169
32169
|
build() {
|
|
32170
32170
|
b.phase(
|
|
32171
32171
|
"flow",
|
|
32172
|
-
{ duration: 2400, title: preset.topic, body: "\
|
|
32172
|
+
{ duration: 2400, title: preset.topic, body: "\u3059\u3079\u3066\u306E\u6BB5\u3092\u4E0A\u304B\u3089\u9806\u306B\u901A\u3063\u305F\u6D41\u308C\u3002" },
|
|
32173
32173
|
(p) => p.activate(...phaseActivate).badge("flow")
|
|
32174
32174
|
);
|
|
32175
32175
|
return b.build();
|
|
@@ -32227,7 +32227,7 @@ function sequence(preset) {
|
|
|
32227
32227
|
});
|
|
32228
32228
|
b.phase(
|
|
32229
32229
|
"sequence",
|
|
32230
|
-
{ duration: 2400, title: preset.topic, body: "
|
|
32230
|
+
{ duration: 2400, title: preset.topic, body: "\u3059\u3079\u3066\u306E\u3084\u308A\u53D6\u308A\u3092\u6642\u9593\u306E\u9806\u306B\u4E26\u3079\u305F\u59FF\u3002" },
|
|
32231
32231
|
(p) => p.activate(preset.id).badge("sequence")
|
|
32232
32232
|
);
|
|
32233
32233
|
return b.build();
|
|
@@ -32288,7 +32288,7 @@ function topology(preset) {
|
|
|
32288
32288
|
build() {
|
|
32289
32289
|
b.phase(
|
|
32290
32290
|
"topo",
|
|
32291
|
-
{ duration: 2400, title: preset.topic, body: "
|
|
32291
|
+
{ duration: 2400, title: preset.topic, body: "\u3059\u3079\u3066\u306E\u69CB\u6210\u8981\u7D20\u3068\u63A5\u7D9A\u3092\u4E26\u3079\u305F\u69CB\u6210\u3002" },
|
|
32292
32292
|
(p) => p.activate(...phaseActivate).badge("topology")
|
|
32293
32293
|
);
|
|
32294
32294
|
return b.build();
|
|
@@ -32376,7 +32376,7 @@ function er(preset) {
|
|
|
32376
32376
|
build() {
|
|
32377
32377
|
b.phase(
|
|
32378
32378
|
"er",
|
|
32379
|
-
{ duration: 2400, title: preset.topic, body: "
|
|
32379
|
+
{ duration: 2400, title: preset.topic, body: "\u3059\u3079\u3066\u306E\u8868\u3068\u95A2\u4FC2\u3092\u4E26\u3079\u305F\u69CB\u9020\u3002" },
|
|
32380
32380
|
(p) => p.activate(...phaseActivate).badge("er")
|
|
32381
32381
|
);
|
|
32382
32382
|
return b.build();
|
|
@@ -32494,7 +32494,7 @@ function stateMachine(preset) {
|
|
|
32494
32494
|
});
|
|
32495
32495
|
b.phase(
|
|
32496
32496
|
"fsm",
|
|
32497
|
-
{ duration: 2400, title: preset.topic, body: "
|
|
32497
|
+
{ duration: 2400, title: preset.topic, body: "\u3059\u3079\u3066\u306E\u72B6\u614B\u3068\u9077\u79FB\u3092\u4E26\u3079\u305F\u59FF\u3002" },
|
|
32498
32498
|
(p) => p.activate(...phaseActivate).badge("fsm")
|
|
32499
32499
|
);
|
|
32500
32500
|
return b.build();
|
|
@@ -32549,7 +32549,7 @@ function infrastructure(preset) {
|
|
|
32549
32549
|
build() {
|
|
32550
32550
|
b.phase(
|
|
32551
32551
|
"infra",
|
|
32552
|
-
{ duration: 2400, title: preset.topic, body: "
|
|
32552
|
+
{ duration: 2400, title: preset.topic, body: "\u3059\u3079\u3066\u306E\u69CB\u6210\u8981\u7D20\u3068\u63A5\u7D9A\u3092\u4E26\u3079\u305F\u69CB\u6210\u3002" },
|
|
32553
32553
|
(p) => p.activate(...phaseActivate).badge("infrastructure")
|
|
32554
32554
|
);
|
|
32555
32555
|
return b.build();
|
|
@@ -32666,7 +32666,7 @@ function classDiagram(preset) {
|
|
|
32666
32666
|
});
|
|
32667
32667
|
b.phase(
|
|
32668
32668
|
"class",
|
|
32669
|
-
{ duration: 2400, title: preset.topic, body: "
|
|
32669
|
+
{ duration: 2400, title: preset.topic, body: "\u3059\u3079\u3066\u306E\u30AF\u30E9\u30B9\u3068\u95A2\u4FC2\u3092\u4E26\u3079\u305F\u69CB\u9020\u3002" },
|
|
32670
32670
|
(p) => p.activate(...phaseActivate).badge("class")
|
|
32671
32671
|
);
|
|
32672
32672
|
return b.build();
|
|
@@ -32704,7 +32704,7 @@ function tree(preset) {
|
|
|
32704
32704
|
});
|
|
32705
32705
|
b.phase(
|
|
32706
32706
|
"tree",
|
|
32707
|
-
{ duration: 2400, title: preset.topic, body: "
|
|
32707
|
+
{ duration: 2400, title: preset.topic, body: "\u3059\u3079\u3066\u306E\u9805\u76EE\u3092\u89AA\u5B50\u306E\u968E\u5C64\u3067\u4E26\u3079\u305F\u6728\u3002" },
|
|
32708
32708
|
(p) => p.activate(nodeId).badge("tree")
|
|
32709
32709
|
);
|
|
32710
32710
|
return b.build();
|
|
@@ -32743,7 +32743,7 @@ function userJourney(preset) {
|
|
|
32743
32743
|
});
|
|
32744
32744
|
b.phase(
|
|
32745
32745
|
"journey",
|
|
32746
|
-
{ duration: 2400, title: preset.topic, body: "
|
|
32746
|
+
{ duration: 2400, title: preset.topic, body: "\u3059\u3079\u3066\u306E\u6BB5\u968E\u3092\u3001\u6C17\u6301\u3061\u306E\u66F2\u7DDA\u3068\u63A5\u70B9\u3067\u4E26\u3079\u305F\u4F53\u9A13\u3002" },
|
|
32747
32747
|
(p) => p.activate(nodeId).badge("journey")
|
|
32748
32748
|
);
|
|
32749
32749
|
return b.build();
|
|
@@ -32787,7 +32787,7 @@ function mindMap(preset) {
|
|
|
32787
32787
|
});
|
|
32788
32788
|
b.phase(
|
|
32789
32789
|
"mindmap",
|
|
32790
|
-
{ duration: 2400, title: preset.topic, body: "
|
|
32790
|
+
{ duration: 2400, title: preset.topic, body: "\u4E2D\u5FC3\u306E\u4E3B\u984C\u304B\u3089\u3001\u3059\u3079\u3066\u306E\u679D\u3092\u653E\u5C04\u72B6\u306B\u5E83\u3052\u305F\u59FF\u3002" },
|
|
32791
32791
|
(p) => p.activate(nodeId).badge("mindmap")
|
|
32792
32792
|
);
|
|
32793
32793
|
return b.build();
|
|
@@ -32825,7 +32825,7 @@ function funnel(preset) {
|
|
|
32825
32825
|
});
|
|
32826
32826
|
b.phase(
|
|
32827
32827
|
"funnel",
|
|
32828
|
-
{ duration: 2400, title: preset.topic, body: "
|
|
32828
|
+
{ duration: 2400, title: preset.topic, body: "\u3059\u3079\u3066\u306E\u6BB5\u968E\u3092\u3001\u4EBA\u6570\u3068\u3068\u3082\u306B\u4E0A\u304B\u3089\u7D5E\u308A\u8FBC\u3093\u3060\u59FF\u3002" },
|
|
32829
32829
|
(p) => p.activate(nodeId).badge("funnel")
|
|
32830
32830
|
);
|
|
32831
32831
|
return b.build();
|
|
@@ -32874,7 +32874,7 @@ function quadrant(preset) {
|
|
|
32874
32874
|
});
|
|
32875
32875
|
b.phase(
|
|
32876
32876
|
"quadrant",
|
|
32877
|
-
{ duration: 2400, title: preset.topic, body: "
|
|
32877
|
+
{ duration: 2400, title: preset.topic, body: "2 \u672C\u306E\u8EF8\u3067\u5206\u3051\u305F 4 \u3064\u306E\u67A0\u306B\u3001\u3059\u3079\u3066\u306E\u9805\u76EE\u3092\u7F6E\u3044\u305F\u59FF\u3002" },
|
|
32878
32878
|
(p) => p.activate(nodeId).badge("quadrant")
|
|
32879
32879
|
);
|
|
32880
32880
|
return b.build();
|
|
@@ -32925,7 +32925,7 @@ function chart(preset) {
|
|
|
32925
32925
|
});
|
|
32926
32926
|
b.phase(
|
|
32927
32927
|
"chart",
|
|
32928
|
-
{ duration: 2400, title: preset.topic, body:
|
|
32928
|
+
{ duration: 2400, title: preset.topic, body: "\u3059\u3079\u3066\u306E\u5024\u3092\u63CF\u3044\u305F\u30B0\u30E9\u30D5\u3002" },
|
|
32929
32929
|
(p) => p.activate(nodeId).badge(preset.type)
|
|
32930
32930
|
);
|
|
32931
32931
|
return b.build();
|
|
@@ -32978,7 +32978,7 @@ function gantt(preset) {
|
|
|
32978
32978
|
});
|
|
32979
32979
|
b.phase(
|
|
32980
32980
|
"gantt",
|
|
32981
|
-
{ duration: 2400, title: preset.topic, body: "
|
|
32981
|
+
{ duration: 2400, title: preset.topic, body: "\u3059\u3079\u3066\u306E\u4F5C\u696D\u3092\u3001\u671F\u9593\u306E\u5E2F\u3068\u524D\u5F8C\u95A2\u4FC2\u306E\u77E2\u5370\u3067\u4E26\u3079\u305F\u5DE5\u7A0B\u3002" },
|
|
32982
32982
|
(p) => p.activate(nodeId).badge("gantt")
|
|
32983
32983
|
);
|
|
32984
32984
|
return b.build();
|
|
@@ -32994,11 +32994,11 @@ var SHAPE_KIND = {
|
|
|
32994
32994
|
loop: "card"
|
|
32995
32995
|
};
|
|
32996
32996
|
var SHAPE_EYEBROW = {
|
|
32997
|
-
process: "
|
|
32998
|
-
decision: "
|
|
32999
|
-
start: "
|
|
33000
|
-
end: "
|
|
33001
|
-
loop: "
|
|
32997
|
+
process: "\u51E6\u7406",
|
|
32998
|
+
decision: "\u5224\u65AD",
|
|
32999
|
+
start: "\u958B\u59CB",
|
|
33000
|
+
end: "\u7D42\u4E86",
|
|
33001
|
+
loop: "\u7E70\u308A\u8FD4\u3057"
|
|
33002
33002
|
};
|
|
33003
33003
|
function flowchart(preset) {
|
|
33004
33004
|
const laneW = preset.laneWidth ?? 380;
|
|
@@ -33046,7 +33046,7 @@ function flowchart(preset) {
|
|
|
33046
33046
|
build() {
|
|
33047
33047
|
b.phase(
|
|
33048
33048
|
"flowchart",
|
|
33049
|
-
{ duration: 2400, title: preset.topic, body: "
|
|
33049
|
+
{ duration: 2400, title: preset.topic, body: "\u3059\u3079\u3066\u306E\u51E6\u7406\u3068\u5206\u5C90\u3092\u3001\u62C5\u5F53\u3054\u3068\u306E\u30EC\u30FC\u30F3\u306B\u4E26\u3079\u305F\u6D41\u308C\u3002" },
|
|
33050
33050
|
(p) => p.activate(...phaseActivate).badge("flowchart")
|
|
33051
33051
|
);
|
|
33052
33052
|
return b.build();
|
|
@@ -33061,6 +33061,13 @@ var NET_KIND_MAP = {
|
|
|
33061
33061
|
server: "backend",
|
|
33062
33062
|
client: "actor"
|
|
33063
33063
|
};
|
|
33064
|
+
var NET_KIND_LABEL = {
|
|
33065
|
+
router: "\u30EB\u30FC\u30BF\u30FC",
|
|
33066
|
+
switch: "\u30B9\u30A4\u30C3\u30C1",
|
|
33067
|
+
firewall: "\u30D5\u30A1\u30A4\u30A2\u30A6\u30A9\u30FC\u30EB",
|
|
33068
|
+
server: "\u30B5\u30FC\u30D0\u30FC",
|
|
33069
|
+
client: "\u7AEF\u672B"
|
|
33070
|
+
};
|
|
33064
33071
|
function network(preset) {
|
|
33065
33072
|
const laneW = preset.laneWidth ?? 320;
|
|
33066
33073
|
const tone = preset.defaultTone ?? "info";
|
|
@@ -33076,7 +33083,7 @@ function network(preset) {
|
|
|
33076
33083
|
b.lane(laneId, { width: laneW });
|
|
33077
33084
|
colLaneIds.set(d.col, laneId);
|
|
33078
33085
|
}
|
|
33079
|
-
const eyebrowParts = [d.kind];
|
|
33086
|
+
const eyebrowParts = [NET_KIND_LABEL[d.kind]];
|
|
33080
33087
|
if (d.segment) eyebrowParts.push(d.segment);
|
|
33081
33088
|
b.node(d.id, {
|
|
33082
33089
|
lane: laneId,
|
|
@@ -33102,7 +33109,7 @@ function network(preset) {
|
|
|
33102
33109
|
build() {
|
|
33103
33110
|
b.phase(
|
|
33104
33111
|
"network",
|
|
33105
|
-
{ duration: 2400, title: preset.topic, body: "
|
|
33112
|
+
{ duration: 2400, title: preset.topic, body: "\u3059\u3079\u3066\u306E\u6A5F\u5668\u3068\u63A5\u7D9A\u3092\u4E26\u3079\u305F\u69CB\u6210\u3002" },
|
|
33106
33113
|
(p) => p.activate(...phaseActivate).badge("network")
|
|
33107
33114
|
);
|
|
33108
33115
|
return b.build();
|
|
@@ -33118,18 +33125,21 @@ function stateMachine2(preset) {
|
|
|
33118
33125
|
const stateOrder = /* @__PURE__ */ new Map();
|
|
33119
33126
|
const phaseActivate = [];
|
|
33120
33127
|
let transIdx = 0;
|
|
33128
|
+
const \u984C = /* @__PURE__ */ new Map();
|
|
33129
|
+
const \u89AA = /* @__PURE__ */ new Map();
|
|
33121
33130
|
const api = {
|
|
33122
33131
|
state(s) {
|
|
33123
33132
|
const laneId = `lane-${s.id}`;
|
|
33124
33133
|
b.lane(laneId, { width: laneW });
|
|
33134
|
+
\u984C.set(s.id, s.title);
|
|
33135
|
+
if (s.parent) \u89AA.set(s.id, s.parent);
|
|
33125
33136
|
const eyebrowParts = [];
|
|
33126
33137
|
if (s.initial) eyebrowParts.push("\u521D\u671F");
|
|
33127
33138
|
else if (s.final) eyebrowParts.push("\u6700\u7D42");
|
|
33128
33139
|
else eyebrowParts.push("\u72B6\u614B");
|
|
33129
|
-
if (s.parent) eyebrowParts.push(`nested in ${s.parent}`);
|
|
33130
33140
|
const subtitleParts = [];
|
|
33131
|
-
if (s.entry) subtitleParts.push(
|
|
33132
|
-
if (s.exit) subtitleParts.push(
|
|
33141
|
+
if (s.entry) subtitleParts.push(`\u5165\u308B\u6642: ${s.entry}`);
|
|
33142
|
+
if (s.exit) subtitleParts.push(`\u51FA\u308B\u6642: ${s.exit}`);
|
|
33133
33143
|
b.node(s.id, {
|
|
33134
33144
|
lane: laneId,
|
|
33135
33145
|
stack: 0,
|
|
@@ -33162,10 +33172,23 @@ function stateMachine2(preset) {
|
|
|
33162
33172
|
build() {
|
|
33163
33173
|
b.phase(
|
|
33164
33174
|
"sm2",
|
|
33165
|
-
{
|
|
33175
|
+
{
|
|
33176
|
+
duration: 2400,
|
|
33177
|
+
title: preset.topic,
|
|
33178
|
+
body: "\u5165\u308C\u5B50\u306E\u72B6\u614B\u3068\u3001\u5165\u308B\u6642\u30FB\u51FA\u308B\u6642\u306E\u51E6\u7406\u3092\u542B\u3081\u305F\u3001\u3059\u3079\u3066\u306E\u72B6\u614B\u3068\u9077\u79FB\u3002"
|
|
33179
|
+
},
|
|
33166
33180
|
(p) => p.activate(...phaseActivate).badge("statemachine2")
|
|
33167
33181
|
);
|
|
33168
|
-
|
|
33182
|
+
const d = b.build();
|
|
33183
|
+
return {
|
|
33184
|
+
...d,
|
|
33185
|
+
nodes: d.nodes.map((n) => {
|
|
33186
|
+
const \u89AA\u306E\u8B58\u5225\u5B50 = \u89AA.get(n.id);
|
|
33187
|
+
if (\u89AA\u306E\u8B58\u5225\u5B50 === void 0) return n;
|
|
33188
|
+
const \u89AA\u306E\u984C = \u984C.get(\u89AA\u306E\u8B58\u5225\u5B50) ?? \u89AA\u306E\u8B58\u5225\u5B50;
|
|
33189
|
+
return { ...n, eyebrow: `${n.eyebrow ?? "\u72B6\u614B"} / ${\u89AA\u306E\u984C}\u306E\u4E2D` };
|
|
33190
|
+
})
|
|
33191
|
+
};
|
|
33169
33192
|
}
|
|
33170
33193
|
};
|
|
33171
33194
|
return api;
|