@cardenelabs/cdl 0.110.0 → 0.112.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 CHANGED
@@ -5,6 +5,68 @@ CDL (Chainome Diagram Language) の主要変更履歴。
5
5
 
6
6
  ## [Unreleased]
7
7
 
8
+ ## [0.112.0] - 2026-09-30
9
+
10
+ ### Fixed
11
+
12
+ - **放射の図が札の縦を 4 分の 1 しか使わなかった** (#962)
13
+
14
+ 隣り合う枝の縦の間隔の上限が px の定数 (96) で、枝が横に伸びる量と無関係だった。
15
+ 枝が左右 2 本ずつの図では割り算の側が 432 になるため上限が必ず効き、
16
+ 横に 230 伸びる図でも縦は 96 までしか開かない。 枝の傾きが 12 度にしかならなかった。
17
+
18
+ 上限を **枝が横に伸びる量** から出すようにした。
19
+ 横の伸びを超えない範囲で開けば、隣り合う枝の傾きは 45 度を超えない。
20
+ #913 が防ぎたかった「細長く伸びる」 を、px ではなく角度で抑える形になる。
21
+
22
+ | 図の形 | 直す前 | 直した後 |
23
+ |---|---|---|
24
+ | 左右 2 本ずつ | 144 | 278 |
25
+ | 入れ子あり (左 3 葉 / 右 1 葉) | 236 | 394 |
26
+ | 枝 14 本 | 480 | 480 (変わらない) |
27
+
28
+ 枝が多い図では割り算の側が先に効くため、札 720x480 では位置が変わらない。
29
+
30
+ 見本帳 (`cardene777/dragon`) の 3 図を実際の画面で測ると、札の縦を使う割合が
31
+ 25% から 48%、43% から 65%、23% から 46% になった。
32
+
33
+ ## [0.111.0] - 2026-09-30
34
+
35
+ ### Fixed
36
+
37
+ - **収まっている行を、測り方の食い違いで切っていた** (#959)
38
+
39
+ `shape-blockchain.tsx` の名前の塊は、縮める倍率を `幅の倍率` (中で `textWidth` を使う) で
40
+ 出し、切る時は `絵の中の字の幅` で測っていた。 後者は等幅の字送りと字形の大きい方を採るので
41
+ 前者以上の値になる。 倍率が「収まる」 と言った行を、切る側が「はみ出す」 と判定していた。
42
+
43
+ 幅 140 の箱に 3 行 (肩書 / 題 / 説明) を渡すと、9 種で説明の行が切れる。
44
+ `shape-smart-contract` / `shape-rpc-node` / `shape-wallet` / `shape-nft` / `shape-token` /
45
+ `shape-blockchain-node` / `shape-bitcoin-chain` / `shape-ethereum-chain` / `shape-blockchain`。
46
+
47
+ 1 つの行の幅を、縮める時と切る時で同じ測り方で見るようにした。
48
+
49
+ ### Added
50
+
51
+ - **全種別に 3 行の名前を渡す検査を足した** (#959)
52
+
53
+ engine の検査は種別を全件描く形をいくつも持つが、**渡す題が 1 行だけ** だった。
54
+ 実際の図は肩書と題と説明の 3 行を持ち、一番広い行が題でない箱が普通にある。
55
+
56
+ その形が 1 度も描かれていなかったため、0.108.0 (#953) で入れた下限が題以外の行まで切る
57
+ 欠陥を engine 単体では見つけられず、引く側 (`cardene777/dragon`) の見本 606 枚を回して
58
+ 初めて出た (#957)。 本検査を足した時点でも、同じ穴が別の理由で 9 種に残っていた。
59
+
60
+ 98 種を 5 つの箱で描き、**渡した 3 つの文字列を切った形だけ** を数える。
61
+ 絵が自分で書く literal (`shape-blockchain` の `0x…` 等) は書き手の字ではないので数えない。
62
+
63
+ 箱を 5 つ使うのは、1 つだと帯の広い種別で空振りするため (260x260 だけを見ていた時に
64
+ 見つかったのは 1 種で、幅 140 を足すと 9 種に増えた)。
65
+
66
+ 切ってよい種別は理由を添えて宣言に書き、**両方向で見る** = 宣言に在って実物が切らなければ
67
+ 落ちる。 現在の宣言は `shape-blockchain-block` 1 件で、箱の中に決まった大きさで字を置く
68
+ 振る舞い (#526) による。
69
+
8
70
  ## [0.110.0] - 2026-09-30
9
71
 
10
72
  ### Fixed
@@ -4417,7 +4479,9 @@ Initial OSS release.
4417
4479
  使わない = annotated tag を push しても GitHub Release は作られず、 Release を作っていない版で
4418
4480
  行き止まりになる。
4419
4481
 
4420
- [Unreleased]: https://github.com/cardene777/cdl/compare/v0.110.0...HEAD
4482
+ [Unreleased]: https://github.com/cardene777/cdl/compare/v0.112.0...HEAD
4483
+ [0.112.0]: https://github.com/cardene777/cdl/compare/v0.111.0...v0.112.0
4484
+ [0.111.0]: https://github.com/cardene777/cdl/compare/v0.110.0...v0.111.0
4421
4485
  [0.110.0]: https://github.com/cardene777/cdl/compare/v0.109.0...v0.110.0
4422
4486
  [0.109.0]: https://github.com/cardene777/cdl/compare/v0.108.0...v0.109.0
4423
4487
  [0.108.0]: https://github.com/cardene777/cdl/compare/v0.107.0...v0.108.0
package/dist/index.cjs CHANGED
@@ -16008,7 +16008,7 @@ var MIND_BOX_GAP = 24;
16008
16008
  var \u679D\u306E\u592A\u3055 = (\u6BB5) => Math.max(1.2, 3.2 - \u6BB5 * 0.7);
16009
16009
  var BRANCH_BOX_H_MAX = 48;
16010
16010
  var SUB_BOX_H_MAX = 40;
16011
- var ROW_GAP_MAX = 96;
16011
+ var \u7E26\u306E\u9593\u9694\u306E\u4E0A\u9650 = (\u679D\u306E\u6A2A\u306E\u4F38\u3073) => \u679D\u306E\u6A2A\u306E\u4F38\u3073;
16012
16012
  var MIND_PAD = 40;
16013
16013
  function \u653E\u5C04\u306E\u4E2D\u8EAB(node, stateValues = {}) {
16014
16014
  const mindData = node.mindData ? resolveMindData(node.mindData, stateValues) : void 0;
@@ -16237,7 +16237,7 @@ function computeMindMapLayout(mindData, cx, cy, canvasW, canvasH) {
16237
16237
  );
16238
16238
  const sideLaneCount = Math.max(leavesOfSide(leftBranches), leavesOfSide(rightBranches));
16239
16239
  const laneBandH = Math.max(0, canvasH - BRANCH_BOX_H_MAX);
16240
- const rowGap = sideLaneCount > 1 ? Math.min(laneBandH / (sideLaneCount - 1), ROW_GAP_MAX) : subBranchH + 14;
16240
+ const rowGap = sideLaneCount > 1 ? Math.min(laneBandH / (sideLaneCount - 1), \u7E26\u306E\u9593\u9694\u306E\u4E0A\u9650(layer1XOffset)) : subBranchH + 14;
16241
16241
  const effSubH = Math.min(SUB_BOX_H_MAX, rowGap * 0.7);
16242
16242
  const effBranchH = Math.min(BRANCH_BOX_H_MAX, rowGap * 0.7);
16243
16243
  const \u7AEF\u306E\u4F59\u308A = Math.max(effSubH, effBranchH) / 2;
@@ -30877,10 +30877,12 @@ function blockchainNodeExtent(strokeWidth) {
30877
30877
  function bottomLabel2(node, cx, plan) {
30878
30878
  const \u53CE\u3081\u308B = (t, \u5927\u304D\u3055, \u5B57\u9593, \u984C\u304B = false) => {
30879
30879
  const \u6E2C\u308B = (u, f, ls) => \u5B57\u306E\u5E45(u, f) + ls * [...u].length;
30880
+ const \u7D20\u306E\u5E45 = \u6E2C\u308B(t, \u5927\u304D\u3055, \u5B57\u9593);
30881
+ const \u53CE\u307E\u308B = \u7D20\u306E\u5E45 > node.w && node.w > 0 ? node.w / \u7D20\u306E\u5E45 : 1;
30880
30882
  const \u4E0B\u9650 = \u984C\u304B ? \u5207\u3063\u3066\u53CE\u307E\u308B\u4E0B\u9650(t, \u5927\u304D\u3055, \u5B57\u9593, node.w, \u6E2C\u308B) : 0;
30881
- const \u500D\u7387 = Math.max(\u5E45\u306E\u500D\u7387(t, \u5927\u304D\u3055, \u5B57\u9593, node.w), \u4E0B\u9650);
30883
+ const \u500D\u7387 = Math.max(\u53CE\u307E\u308B, \u4E0B\u9650);
30882
30884
  const size = \u5927\u304D\u3055 * \u500D\u7387;
30883
- return { \u500D\u7387, text: \u5E2F\u3067\u5207\u308B(t, size, node.w, (u, f) => \u5B57\u306E\u5E45(u, f) + \u5B57\u9593 * \u500D\u7387 * [...u].length) };
30885
+ return { \u500D\u7387, text: \u5E2F\u3067\u5207\u308B(t, size, node.w, (u, f) => \u6E2C\u308B(u, f, \u5B57\u9593 * \u500D\u7387)) };
30884
30886
  };
30885
30887
  const \u80A9 = node.eyebrow && plan.\u80A9\u66F8 ? \u53CE\u3081\u308B(node.eyebrow, plan.\u80A9\u66F8.size, 2) : { \u500D\u7387: 1, text: node.eyebrow ?? "" };
30886
30888
  const \u540D = \u53CE\u3081\u308B(node.title ?? "", plan.\u540D\u524D.size, 0, true);