@cardenelabs/cdl 0.40.8 → 0.40.9

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,23 @@ CDL (Chainome Diagram Language) の主要変更履歴。
5
5
 
6
6
  ## [Unreleased]
7
7
 
8
+ ## [0.40.9] - 2026-09-08
9
+
10
+ ### Fixed
11
+
12
+ - **件が 1 つの `chart-stat` に意味のない `100%` と全周の弧を出さなくした** (#759)
13
+
14
+ 割合は「この図に載っている全件の合計に対する取り分」 なので、件が 1 つだと分母が
15
+ 自分自身になり必ず `100%` になる。 値が動いても割合は動かない。
16
+
17
+ | 件数 | 名前 / 数値 | 割合の字 / 弧 / 下地 |
18
+ |---|---|---|
19
+ | 1 | 出る | 出さない |
20
+ | 2 以上 | 出る | 出る (変わらず) |
21
+
22
+ 判定は件数で行う。 `割合 === 1` で判定すると、件が 2 つ以上でも片方が 0 の図まで消える。
23
+ その図の `100%` は「他が 0 で自分が全部」 という読みが成立する。
24
+
8
25
  ## [0.40.8] - 2026-09-08
9
26
 
10
27
  ### Changed
@@ -1987,7 +2004,8 @@ Initial OSS release.
1987
2004
  使わない = annotated tag を push しても GitHub Release は作られず、 Release を作っていない版で
1988
2005
  行き止まりになる。
1989
2006
 
1990
- [Unreleased]: https://github.com/cardene777/cdl/compare/v0.40.8...HEAD
2007
+ [Unreleased]: https://github.com/cardene777/cdl/compare/v0.40.9...HEAD
2008
+ [0.40.9]: https://github.com/cardene777/cdl/compare/v0.40.8...v0.40.9
1991
2009
  [0.40.8]: https://github.com/cardene777/cdl/compare/v0.40.7...v0.40.8
1992
2010
  [0.40.7]: https://github.com/cardene777/cdl/compare/v0.40.6...v0.40.7
1993
2011
  [0.40.6]: https://github.com/cardene777/cdl/compare/v0.40.5...v0.40.6
package/dist/index.cjs CHANGED
@@ -25230,6 +25230,7 @@ function ChartStatNode({
25230
25230
  const data = resolveChartData(node.chartData ?? [], stateValues);
25231
25231
  const total = data.reduce((acc, d) => acc + d.value, 0) || 1;
25232
25232
  const \u533A\u753B = \u533A\u753B\u306E\u5272\u4ED8(node.w, node.h, data.length);
25233
+ const \u5272\u5408\u3092\u51FA\u3059 = data.length > 1;
25233
25234
  return /* @__PURE__ */ jsxRuntime.jsxs("g", { transform: `translate(${x0} ${y0})`, children: [
25234
25235
  /* @__PURE__ */ jsxRuntime.jsx(
25235
25236
  "rect",
@@ -25251,83 +25252,91 @@ function ChartStatNode({
25251
25252
  const \u8272 = \u5370\u306E\u8272(d.tone, idx);
25252
25253
  const \u6570\u5024 = \u5B9F\u5024\u8868\u8A18(d.value);
25253
25254
  const \u6570\u5024\u306E\u7D1A = \u53CE\u3081\u308B\u7D1A(\u6570\u5024, \u67A02.w - \u533A\u753B.\u4F59\u767D * 2, \u533A\u753B.\u6570\u5024\u306E\u7D1A, \u533A\u753B.\u540D\u524D\u306E\u7D1A + 1);
25254
- return /* @__PURE__ */ jsxRuntime.jsxs("g", { "data-cdl-role": "chart-stat-item", transform: `translate(${\u67A02.x} ${\u67A02.y})`, children: [
25255
- idx > 0 && /* @__PURE__ */ jsxRuntime.jsx(
25256
- "line",
25257
- {
25258
- "data-cdl-role": "chart-stat-divider",
25259
- x1: 0,
25260
- y1: \u533A\u753B.\u4F59\u767D,
25261
- x2: 0,
25262
- y2: \u67A02.h - \u533A\u753B.\u4F59\u767D,
25263
- stroke: "var(--cdl-divider, #d4d4d8)",
25264
- strokeWidth: 1
25265
- }
25266
- ),
25267
- /* @__PURE__ */ jsxRuntime.jsx(
25268
- "text",
25269
- {
25270
- "data-cdl-role": "chart-stat-label",
25271
- x: \u67A02.w / 2,
25272
- y: \u533A\u753B.\u540D\u524D\u306Ey,
25273
- fontSize: \u533A\u753B.\u540D\u524D\u306E\u7D1A,
25274
- fontWeight: 700,
25275
- textAnchor: "middle",
25276
- fill: "var(--cdl-text-dim, #5a6270)",
25277
- children: d.label
25278
- }
25279
- ),
25280
- /* @__PURE__ */ jsxRuntime.jsx(
25281
- "text",
25282
- {
25283
- "data-cdl-role": "chart-stat-value",
25284
- "data-cdl-unresolved": d.unresolved ? "true" : void 0,
25285
- x: \u67A02.w / 2,
25286
- y: \u533A\u753B.\u6570\u5024\u306Ey,
25287
- fontSize: \u6570\u5024\u306E\u7D1A,
25288
- fontWeight: 700,
25289
- textAnchor: "middle",
25290
- fill: \u8272,
25291
- children: \u6570\u5024
25292
- }
25293
- ),
25294
- /* @__PURE__ */ jsxRuntime.jsx(
25295
- "circle",
25296
- {
25297
- "data-cdl-role": "chart-stat-track",
25298
- cx: \u67A02.w / 2,
25299
- cy: \u533A\u753B.\u5F27\u306Ey,
25300
- r: \u533A\u753B.\u5F27\u306E\u534A\u5F84,
25301
- fill: "none",
25302
- stroke: "var(--cdl-divider, #d4d4d8)",
25303
- strokeWidth: \u533A\u753B.\u5F27\u306E\u592A\u3055,
25304
- strokeOpacity: 0.5
25305
- }
25306
- ),
25307
- frac > 0 && /* @__PURE__ */ jsxRuntime.jsx(
25308
- "path",
25309
- {
25310
- "data-cdl-role": "chart-stat-arc",
25311
- d: \u5F27\u306E\u90533(\u67A02.w / 2, \u533A\u753B.\u5F27\u306Ey, \u533A\u753B.\u5F27\u306E\u534A\u5F84, Math.min(frac, 0.9999)),
25312
- fill: "none",
25313
- stroke: \u8272,
25314
- strokeWidth: \u533A\u753B.\u5F27\u306E\u592A\u3055,
25315
- strokeLinecap: "round"
25316
- }
25317
- ),
25318
- /* @__PURE__ */ jsxRuntime.jsx(
25319
- "text",
25320
- {
25321
- "data-cdl-role": "chart-stat-share",
25322
- x: \u67A02.w / 2,
25323
- y: \u533A\u753B.\u5272\u5408\u306Ey,
25324
- fontSize: \u533A\u753B.\u5272\u5408\u306E\u7D1A,
25325
- textAnchor: "middle",
25326
- fill: "var(--cdl-text-dim, #5a6270)",
25327
- children: \u5272\u5408\u8868\u8A18(frac)
25328
- }
25329
- )
25330
- ] }, `stat-${idx}`);
25255
+ return /* @__PURE__ */ jsxRuntime.jsxs(
25256
+ "g",
25257
+ {
25258
+ "data-cdl-role": "chart-stat-item",
25259
+ transform: `translate(${\u67A02.x} ${\u67A02.y})`,
25260
+ children: [
25261
+ idx > 0 && /* @__PURE__ */ jsxRuntime.jsx(
25262
+ "line",
25263
+ {
25264
+ "data-cdl-role": "chart-stat-divider",
25265
+ x1: 0,
25266
+ y1: \u533A\u753B.\u4F59\u767D,
25267
+ x2: 0,
25268
+ y2: \u67A02.h - \u533A\u753B.\u4F59\u767D,
25269
+ stroke: "var(--cdl-divider, #d4d4d8)",
25270
+ strokeWidth: 1
25271
+ }
25272
+ ),
25273
+ /* @__PURE__ */ jsxRuntime.jsx(
25274
+ "text",
25275
+ {
25276
+ "data-cdl-role": "chart-stat-label",
25277
+ x: \u67A02.w / 2,
25278
+ y: \u533A\u753B.\u540D\u524D\u306Ey,
25279
+ fontSize: \u533A\u753B.\u540D\u524D\u306E\u7D1A,
25280
+ fontWeight: 700,
25281
+ textAnchor: "middle",
25282
+ fill: "var(--cdl-text-dim, #5a6270)",
25283
+ children: d.label
25284
+ }
25285
+ ),
25286
+ /* @__PURE__ */ jsxRuntime.jsx(
25287
+ "text",
25288
+ {
25289
+ "data-cdl-role": "chart-stat-value",
25290
+ "data-cdl-unresolved": d.unresolved ? "true" : void 0,
25291
+ x: \u67A02.w / 2,
25292
+ y: \u533A\u753B.\u6570\u5024\u306Ey,
25293
+ fontSize: \u6570\u5024\u306E\u7D1A,
25294
+ fontWeight: 700,
25295
+ textAnchor: "middle",
25296
+ fill: \u8272,
25297
+ children: \u6570\u5024
25298
+ }
25299
+ ),
25300
+ \u5272\u5408\u3092\u51FA\u3059 && /* @__PURE__ */ jsxRuntime.jsx(
25301
+ "circle",
25302
+ {
25303
+ "data-cdl-role": "chart-stat-track",
25304
+ cx: \u67A02.w / 2,
25305
+ cy: \u533A\u753B.\u5F27\u306Ey,
25306
+ r: \u533A\u753B.\u5F27\u306E\u534A\u5F84,
25307
+ fill: "none",
25308
+ stroke: "var(--cdl-divider, #d4d4d8)",
25309
+ strokeWidth: \u533A\u753B.\u5F27\u306E\u592A\u3055,
25310
+ strokeOpacity: 0.5
25311
+ }
25312
+ ),
25313
+ \u5272\u5408\u3092\u51FA\u3059 && frac > 0 && /* @__PURE__ */ jsxRuntime.jsx(
25314
+ "path",
25315
+ {
25316
+ "data-cdl-role": "chart-stat-arc",
25317
+ d: \u5F27\u306E\u90533(\u67A02.w / 2, \u533A\u753B.\u5F27\u306Ey, \u533A\u753B.\u5F27\u306E\u534A\u5F84, Math.min(frac, 0.9999)),
25318
+ fill: "none",
25319
+ stroke: \u8272,
25320
+ strokeWidth: \u533A\u753B.\u5F27\u306E\u592A\u3055,
25321
+ strokeLinecap: "round"
25322
+ }
25323
+ ),
25324
+ \u5272\u5408\u3092\u51FA\u3059 && /* @__PURE__ */ jsxRuntime.jsx(
25325
+ "text",
25326
+ {
25327
+ "data-cdl-role": "chart-stat-share",
25328
+ x: \u67A02.w / 2,
25329
+ y: \u533A\u753B.\u5272\u5408\u306Ey,
25330
+ fontSize: \u533A\u753B.\u5272\u5408\u306E\u7D1A,
25331
+ textAnchor: "middle",
25332
+ fill: "var(--cdl-text-dim, #5a6270)",
25333
+ children: \u5272\u5408\u8868\u8A18(frac)
25334
+ }
25335
+ )
25336
+ ]
25337
+ },
25338
+ `stat-${idx}`
25339
+ );
25331
25340
  })
25332
25341
  ] });
25333
25342
  }