@cardenelabs/cdl 0.25.0 → 0.26.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,33 @@ CDL (Chainome Diagram Language) の主要変更履歴。
5
5
 
6
6
  ## [Unreleased]
7
7
 
8
+ ## [0.26.0] - 2026-09-03
9
+
10
+ ### Added
11
+
12
+ - **クラス図の箱にも行の縞と配色を通した** (#627)
13
+
14
+ クラス図の箱は ER 図と同じ作り (行頭の印 + 左に名前 + 右に型) をしている。
15
+ 名前と型が離れて並ぶので、行を横に追う目印が要るのは ER 図と同じだった。
16
+
17
+ `classDiagram` に `rowStripe` と `palette` を足し、既定を `er` と揃えた。
18
+ どちらも書けば上書きでき、`rowStripe: false` で縞を外せる。
19
+
20
+ ### Changed
21
+
22
+ - **行が 1 つの箱には縞を敷かなくなった** (#627)
23
+
24
+ 縞の役目は「隣り合う行を見分ける」 こと。
25
+ 1 行しか無い箱には見分ける相手が居ないので、敷くとその 1 行が「主役」 に見える。
26
+
27
+ 実際にクラス図へ当てて確かめると、1 行の箱 (`Auditable` / `Sku`) で縞が強調に読めた。
28
+ 2 行以上の箱では意図どおり行の区切りとして読めた。
29
+
30
+ 閾値ではなく **役目から導いた規則** なので、図種を増やしても同じ判断ができる。
31
+ 判定は描き手 (`storage.tsx`) が持つ = 組み立て器ごとに書くと、次の図種で取り残される。
32
+
33
+ ER 図にも同じ規則が効く (1 行の表で縞が消える)。
34
+
8
35
  ## [0.25.0] - 2026-09-03
9
36
 
10
37
  ### Added
@@ -1288,7 +1315,9 @@ Initial OSS release.
1288
1315
  使わない = annotated tag を push しても GitHub Release は作られず、 Release を作っていない版で
1289
1316
  行き止まりになる。
1290
1317
 
1291
- [Unreleased]: https://github.com/cardene777/cdl/compare/v0.24.0...HEAD
1318
+ [Unreleased]: https://github.com/cardene777/cdl/compare/v0.26.0...HEAD
1319
+ [0.26.0]: https://github.com/cardene777/cdl/compare/v0.25.0...v0.26.0
1320
+ [0.25.0]: https://github.com/cardene777/cdl/compare/v0.24.0...v0.25.0
1292
1321
  [0.24.0]: https://github.com/cardene777/cdl/compare/v0.23.0...v0.24.0
1293
1322
  [0.23.0]: https://github.com/cardene777/cdl/compare/v0.22.0...v0.23.0
1294
1323
  [0.22.0]: https://github.com/cardene777/cdl/compare/v0.21.2...v0.22.0
package/dist/index.cjs CHANGED
@@ -22766,6 +22766,7 @@ var ROW_GLYPH_CX = ROW_PAD_X_PX + ROW_GLYPH_HALF + 1;
22766
22766
  var ROW_GLYPH_LEAD = 40;
22767
22767
  var ROW_TYPE_FONT = 22;
22768
22768
  var SUBTITLE_BASELINE = 118;
22769
+ var STRIPE_MIN_ROWS = 2;
22769
22770
  var SUBTITLE_FONT = 20;
22770
22771
  var UNDERLINE_DROP = 7;
22771
22772
  function RowGlyph({ mark, x, y, color }) {
@@ -22823,7 +22824,7 @@ function StorageNode({
22823
22824
  strokeWidth: active ? 3 : 1.25
22824
22825
  }
22825
22826
  ),
22826
- node.rowStripe && rows.map((_, idx) => {
22827
+ node.rowStripe && rows.length >= STRIPE_MIN_ROWS && rows.map((_, idx) => {
22827
22828
  if (idx % 2 !== 0) return null;
22828
22829
  const \u5E2F = rowStripeBand("storage", idx, \u884C\u306E\u4E0B\u3052);
22829
22830
  if (!\u5E2F) return null;
@@ -30834,7 +30835,8 @@ function stripAccess(row) {
30834
30835
  function classDiagram(preset) {
30835
30836
  const classW = resolveStorageBoxW(preset.classWidth, "classDiagram", "classWidth");
30836
30837
  const tone = preset.defaultTone ?? "info";
30837
- const b = diagram(preset.id, { topic: preset.topic });
30838
+ const \u7E1E\u3092\u6577\u304F = preset.rowStripe ?? true;
30839
+ const b = diagram(preset.id, { topic: preset.topic, palette: preset.palette });
30838
30840
  const classes = [];
30839
30841
  const phaseActivate = [];
30840
30842
  const \u7BB1 = [];
@@ -30882,7 +30884,9 @@ function classDiagram(preset) {
30882
30884
  // 種類の札は **書いた時だけ** 出す (#578)。 「クラス」 と書いた札は箱がクラスで
30883
30885
  // あることしか言わず、図の中の全ての箱に同じ字が並ぶ
30884
30886
  ...m.c.stereotype ? { eyebrow: m.c.stereotype } : {},
30885
- ...m.rows.length > 0 ? { rows: m.rows, rowMarks: m.rowMarks } : {}
30887
+ ...m.rows.length > 0 ? { rows: m.rows, rowMarks: m.rowMarks } : {},
30888
+ // 縞は行を持つ箱にだけ敷く (#627)。 行が無い箱に書いても描き手が読まない
30889
+ ...m.rows.length > 0 && \u7E1E\u3092\u6577\u304F ? { rowStripe: true } : {}
30886
30890
  });
30887
30891
  classes.push(m.c.id);
30888
30892
  phaseActivate.push(m.c.id);