@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 +65 -1
- package/dist/index.cjs +6 -4
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +6 -4
- package/dist/index.js.map +1 -1
- package/dist/react.cjs +6 -4
- package/dist/react.cjs.map +1 -1
- package/dist/react.js +6 -4
- package/dist/react.js.map +1 -1
- package/package.json +1 -1
- package/src/kinds/mind-map.tsx +18 -3
- package/src/kinds/shape-blockchain.tsx +7 -2
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.
|
|
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
|
|
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),
|
|
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(\
|
|
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) => \
|
|
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);
|