@cardenelabs/cdl 0.104.0 → 0.105.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 +45 -1
- package/dist/index.cjs +66 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +66 -1
- package/dist/index.js.map +1 -1
- package/dist/react.cjs +66 -1
- package/dist/react.cjs.map +1 -1
- package/dist/react.js +66 -1
- package/dist/react.js.map +1 -1
- package/package.json +1 -1
- package/src/layout/spec.ts +116 -0
- package/src/visual-validate.ts +17 -5
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,49 @@ CDL (Chainome Diagram Language) の主要変更履歴。
|
|
|
5
5
|
|
|
6
6
|
## [Unreleased]
|
|
7
7
|
|
|
8
|
+
## [0.105.0] - 2026-09-30
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
|
|
12
|
+
- **箱の題の幅を、その種別が描く大きさから見積もるようにした** (#946)
|
|
13
|
+
|
|
14
|
+
軸 3 (`text-readability`) は「字数 × 1 字の幅 + 余白」 が箱の幅を超えるかで、題が切れる
|
|
15
|
+
可能性を見る。 1 字の幅を 22 の定数で持っていたが、`NODE_KINDS` を全件描いて題の字の
|
|
16
|
+
大きさを読むと **22 で描く種別は 1 つも無かった**。
|
|
17
|
+
|
|
18
|
+
| 大きさ | 種別の数 |
|
|
19
|
+
|---|---|
|
|
20
|
+
| 18 | 34 |
|
|
21
|
+
| 20 | 21 |
|
|
22
|
+
| 15 | 21 |
|
|
23
|
+
| 16 | 6 |
|
|
24
|
+
| 13 | 5 |
|
|
25
|
+
| 24 | 3 |
|
|
26
|
+
| 34 / 32 / 17 | 各 1 |
|
|
27
|
+
|
|
28
|
+
見積りが実物の 1.2 倍から 1.7 倍になり、収まっている題まで挙がっていた。
|
|
29
|
+
0.99.0 (#933) でどの種別も箱の題を読むようになってから差が表に出て、引く側 (見本帳) では
|
|
30
|
+
35 枚が新しく挙がっていた。 いずれも実際には収まっている。
|
|
31
|
+
|
|
32
|
+
種別ごとの大きさを `titleFontSize` に持ち、見積りをそこから出すようにした。
|
|
33
|
+
|
|
34
|
+
**内側の余白 (52) は、題を箱の中に描く種別にだけ足す**。
|
|
35
|
+
形だけを描く `dyn-*` 5 種は名前を箱の上に描き、図表 15 種も題を箱の上に描く。
|
|
36
|
+
箱の内側の余白に縛られないので、足すと収まっている題が挙がる。
|
|
37
|
+
どの種別が外に描くかは `drawsTitleOutsideBox` が持つ。
|
|
38
|
+
|
|
39
|
+
**一覧は実物と突き合わせる**。
|
|
40
|
+
`test/title-width-estimate.test.tsx` が `NODE_KINDS` を全件描き、表の値が実測を下回らず
|
|
41
|
+
実測 + 1 未満であることと、題の役割名 (`node-label` / `shape-name` / `figure-title`) が
|
|
42
|
+
述語と揃っていることを見る。 種別が増えた時に黙ってずれない。
|
|
43
|
+
|
|
44
|
+
表が持つのは **箱が十分に大きい時の大きさ** になる。 `shape-*` の多くは箱の高さに比例して
|
|
45
|
+
字を縮めるため、狭い箱では実物のほうが小さい。 見積りが実物を下回らない側に倒れるので、
|
|
46
|
+
切れる題を見逃す向きには外れない。
|
|
47
|
+
|
|
48
|
+
軸 `responsive-viewport` が使う基準の 22 は動かしていない。
|
|
49
|
+
図の中の文字全体を見る目安で、題の幅を見る本軸とは別の判定になる。
|
|
50
|
+
|
|
8
51
|
## [0.104.0] - 2026-09-30
|
|
9
52
|
|
|
10
53
|
### Fixed
|
|
@@ -4220,7 +4263,8 @@ Initial OSS release.
|
|
|
4220
4263
|
使わない = annotated tag を push しても GitHub Release は作られず、 Release を作っていない版で
|
|
4221
4264
|
行き止まりになる。
|
|
4222
4265
|
|
|
4223
|
-
[Unreleased]: https://github.com/cardene777/cdl/compare/v0.
|
|
4266
|
+
[Unreleased]: https://github.com/cardene777/cdl/compare/v0.105.0...HEAD
|
|
4267
|
+
[0.105.0]: https://github.com/cardene777/cdl/compare/v0.104.0...v0.105.0
|
|
4224
4268
|
[0.104.0]: https://github.com/cardene777/cdl/compare/v0.103.0...v0.104.0
|
|
4225
4269
|
[0.103.0]: https://github.com/cardene777/cdl/compare/v0.102.0...v0.103.0
|
|
4226
4270
|
[0.102.0]: https://github.com/cardene777/cdl/compare/v0.101.0...v0.102.0
|
package/dist/index.cjs
CHANGED
|
@@ -12377,6 +12377,71 @@ var KINDS_FITTING_OWN_TITLE = /* @__PURE__ */ new Set([
|
|
|
12377
12377
|
function fitsOwnTitleWidth(kind) {
|
|
12378
12378
|
return KINDS_FITTING_OWN_TITLE.has(kind ?? "");
|
|
12379
12379
|
}
|
|
12380
|
+
var KINDS_DRAWING_TITLE_OUTSIDE = /* @__PURE__ */ new Set([
|
|
12381
|
+
"dyn-rect",
|
|
12382
|
+
"dyn-circle",
|
|
12383
|
+
"dyn-arc",
|
|
12384
|
+
"dyn-wave",
|
|
12385
|
+
"dyn-polygon",
|
|
12386
|
+
...KINDS_DRAWING_OWN_PAYLOAD
|
|
12387
|
+
]);
|
|
12388
|
+
function drawsTitleOutsideBox(kind) {
|
|
12389
|
+
return KINDS_DRAWING_TITLE_OUTSIDE.has(kind ?? "");
|
|
12390
|
+
}
|
|
12391
|
+
var TITLE_FONT_SIZE_DEFAULT = 18;
|
|
12392
|
+
var TITLE_FONT_SIZE = new Map([
|
|
12393
|
+
...["dyn-rect", "dyn-circle", "dyn-arc", "dyn-wave", "dyn-polygon"].map(
|
|
12394
|
+
(k) => [k, 13]
|
|
12395
|
+
),
|
|
12396
|
+
...[
|
|
12397
|
+
"shape-code-block",
|
|
12398
|
+
"shape-cylinder",
|
|
12399
|
+
"shape-diamond",
|
|
12400
|
+
"shape-iot-sensor",
|
|
12401
|
+
"shape-robot-arm",
|
|
12402
|
+
"shape-stack",
|
|
12403
|
+
"shape-terminal"
|
|
12404
|
+
].map((k) => [k, 15]),
|
|
12405
|
+
...[
|
|
12406
|
+
"shape-cloud",
|
|
12407
|
+
"shape-file",
|
|
12408
|
+
"shape-folder",
|
|
12409
|
+
"shape-hexagon",
|
|
12410
|
+
"shape-message-bubble",
|
|
12411
|
+
"shape-window"
|
|
12412
|
+
].map((k) => [k, 16]),
|
|
12413
|
+
["shape-kanban-card", 17],
|
|
12414
|
+
...[
|
|
12415
|
+
"admin",
|
|
12416
|
+
"api",
|
|
12417
|
+
"backend",
|
|
12418
|
+
"cache",
|
|
12419
|
+
"cdn",
|
|
12420
|
+
"cloud",
|
|
12421
|
+
"database",
|
|
12422
|
+
"decision",
|
|
12423
|
+
"developer",
|
|
12424
|
+
"external-user",
|
|
12425
|
+
"frontend",
|
|
12426
|
+
"merkle-tree",
|
|
12427
|
+
"message-bus",
|
|
12428
|
+
"microservice",
|
|
12429
|
+
"oracle",
|
|
12430
|
+
"person",
|
|
12431
|
+
"queue",
|
|
12432
|
+
"service",
|
|
12433
|
+
"signer",
|
|
12434
|
+
"user-group",
|
|
12435
|
+
"webhook"
|
|
12436
|
+
].map((k) => [k, 20]),
|
|
12437
|
+
...["card", "event", "function"].map((k) => [k, 24]),
|
|
12438
|
+
["actor", 32],
|
|
12439
|
+
["storage", 34]
|
|
12440
|
+
]);
|
|
12441
|
+
function titleFontSize(kind) {
|
|
12442
|
+
return TITLE_FONT_SIZE.get(kind ?? "") ?? TITLE_FONT_SIZE_DEFAULT;
|
|
12443
|
+
}
|
|
12444
|
+
var TITLE_BOX_PADDING = 52;
|
|
12380
12445
|
var KINDS_DRAWN_BY_GENERIC = [
|
|
12381
12446
|
"person",
|
|
12382
12447
|
"user-group",
|
|
@@ -17161,7 +17226,7 @@ function runAxes(laid, diag, violations, counts, push, profile, skippedAxes, \u5
|
|
|
17161
17226
|
const titleTrimmed = n.title?.trim() ?? "";
|
|
17162
17227
|
if (!titleTrimmed) continue;
|
|
17163
17228
|
const titleLen = titleTrimmed.length;
|
|
17164
|
-
const expectedW = titleLen *
|
|
17229
|
+
const expectedW = titleLen * titleFontSize(n.kind) + (drawsTitleOutsideBox(n.kind) ? 0 : TITLE_BOX_PADDING);
|
|
17165
17230
|
if (expectedW > n.w + 8) {
|
|
17166
17231
|
push(
|
|
17167
17232
|
"text-readability",
|