@cardenelabs/cdl 0.38.0 → 0.39.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,26 @@ CDL (Chainome Diagram Language) の主要変更履歴。
5
5
 
6
6
  ## [Unreleased]
7
7
 
8
+ ## [0.39.0] - 2026-09-07
9
+
10
+ ### Added
11
+
12
+ - **弧と帯で量を表す 3 種も段の `draw` で起点から現れるようにした** (#715)
13
+
14
+ 半円ゲージ (`chart-gauge`) は 9 時から上を通って 3 時へ弧が伸び、放射 (`chart-radial`) は
15
+ 各輪が 12 時から時計回りに開き、積層帯 (`chart-stacked-bar`) は左から帯が伸びる。
16
+
17
+ どれも「量を長さで表す」 図なので、起点と伸びる向きが図の意味から決まる。 それまで
18
+ `draw` が効く種別は 9 つで、この 3 種は書いても何も起きなかった (実測で 6 秒間、
19
+ 半円ゲージの弧の `d` が一度も変わらなかった)。 見本帳に並べると動く図と動かない図が混ざる。
20
+
21
+ **切り抜くのは量を表す形だけ**。 放射の軌道 (全周の薄い輪) は「あとどれだけで一周か」 を
22
+ 示す枠なので最初から出す。 半円ゲージの合計の字は主役なので、左から半分ずつ現れると読めない。
23
+ 積層帯の区画の字だけは区画と一緒に切り抜く (字は区画の上に乗っているため)。
24
+
25
+ 形を表す属性は今までどおり触らない。 弧の `d` と区画の `width` は進みに関わらず実値で、
26
+ 見える範囲だけが変わる。 `draw` を書かない図の絵は 1 文字も変わらない。
27
+
8
28
  ## [0.38.0] - 2026-09-07
9
29
 
10
30
  ### Fixed
@@ -1740,7 +1760,8 @@ Initial OSS release.
1740
1760
  使わない = annotated tag を push しても GitHub Release は作られず、 Release を作っていない版で
1741
1761
  行き止まりになる。
1742
1762
 
1743
- [Unreleased]: https://github.com/cardene777/cdl/compare/v0.38.0...HEAD
1763
+ [Unreleased]: https://github.com/cardene777/cdl/compare/v0.39.0...HEAD
1764
+ [0.39.0]: https://github.com/cardene777/cdl/compare/v0.38.0...v0.39.0
1744
1765
  [0.38.0]: https://github.com/cardene777/cdl/compare/v0.37.0...v0.38.0
1745
1766
  [0.37.0]: https://github.com/cardene777/cdl/compare/v0.36.0...v0.37.0
1746
1767
  [0.36.0]: https://github.com/cardene777/cdl/compare/v0.35.0...v0.36.0
package/SPEC.md CHANGED
@@ -140,11 +140,15 @@ phase でも線を引き直すことになる。
140
140
  | `chart-line` | 左端 | 線が右へ伸びる | 点と数字は線の先が届いた時 |
141
141
  | `chart-bar` | 横軸 | 棒が上へ伸びる | 数字は棒の頭に付いて動く |
142
142
  | `chart-pie` | 12 時 | 扇が時計回りに開く | 凡例はその扇が開き始めた時 |
143
+ | `chart-slope` | 左の軸 | 線が右の軸へ伸びる | 右の値は線が右の軸に着いた時 |
143
144
  | `journey-map` | 左端 | 気持ちの線が右へ伸びる | 段はその点に線の先が届いた時 |
144
145
  | `mind-map` | 中心 | 枝が段ごとに外へ伸びる | 箱はその枝が届いた時 |
145
146
  | `tree-hierarchy` | 根 | 枝が段ごとに下へ伸びる | 箱はその枝が届いた時 |
146
147
  | `gantt-timeline` | 各帯の始端 | 帯が右へ伸びる | 依存の矢印は帯が出揃った時 |
147
148
  | `funnel-stages` | 上端 | 段が上から順に積まれる | 件数と離脱率はその段が出切った時 |
149
+ | `chart-gauge` | 9 時 | 弧が上を通って 3 時へ伸びる | 合計と内訳は最初から出る |
150
+ | `chart-radial` | 12 時 | 各輪が時計回りに開く | 軌道と一覧は最初から出る |
151
+ | `chart-stacked-bar` | 左端 | 帯が右へ伸びる | 区画の字はその区画が広がった時 |
148
152
 
149
153
  対応種別の一覧は `validate.ts` の `DRAW_KINDS` が持ち、 知らせの文面もそこから組み立てる。
150
154
 
@@ -155,7 +159,8 @@ phase でも線を引き直すことになる。
155
159
 
156
160
  **枝が複数ある種別は段ごとに順に伸ばす** (`mind-map` / `tree-hierarchy`)。 深さを等分し、
157
161
  中心 / 根に近い段から順に伸ばす。 全部を同時に伸ばすと、離れた枝が宙に浮いたまま伸びる。
158
- 進みの畳み方と dash の当て方は `kinds/draw-progress.ts` が SSOT。
162
+ 進みの畳み方と dash の当て方は `kinds/draw-progress.ts` が、 弧で量を表す図の切り抜きは
163
+ `kinds/draw-arc.tsx` が SSOT。
159
164
 
160
165
  `draw` を書かない図は従来どおり全体を描き、 DOM に属性も要素も足さない。
161
166
 
package/dist/index.cjs CHANGED
@@ -20808,7 +20808,10 @@ var DRAW_KINDS = /* @__PURE__ */ new Set([
20808
20808
  "mind-map",
20809
20809
  "tree-hierarchy",
20810
20810
  "gantt-timeline",
20811
- "funnel-stages"
20811
+ "funnel-stages",
20812
+ "chart-gauge",
20813
+ "chart-radial",
20814
+ "chart-stacked-bar"
20812
20815
  ]);
20813
20816
  var KINDS = new Set(NODE_KINDS);
20814
20817
  var ENG_BANNED = /\b(FUNCTION|STORAGE|EVENT LOG|BALANCES MAPPING|READ|WRITE|EMIT|CALL)\b/;
@@ -24354,6 +24357,15 @@ function interpolateColor(template, stateValues, fallback) {
24354
24357
  if (!template) return fallback;
24355
24358
  return interpolate(template, stateValues);
24356
24359
  }
24360
+ function \u6247\u5F62\u306E\u5207\u308A\u629C\u304D(cx, cy, r, \u958B\u304D, \u8D77\u70B9 = -Math.PI / 2, \u5168\u5468 = Math.PI * 2) {
24361
+ if (\u958B\u304D <= 0) return null;
24362
+ if (\u958B\u304D >= 1 && \u5168\u5468 >= Math.PI * 2) return /* @__PURE__ */ jsxRuntime.jsx("circle", { cx, cy, r });
24363
+ const a0 = \u8D77\u70B9;
24364
+ const a1 = a0 + Math.min(1, \u958B\u304D) * \u5168\u5468;
24365
+ const large = a1 - a0 > Math.PI ? 1 : 0;
24366
+ const d = `M ${cx} ${cy} L ${cx + r * Math.cos(a0)} ${cy + r * Math.sin(a0)} A ${r} ${r} 0 ${large} 1 ${cx + r * Math.cos(a1)} ${cy + r * Math.sin(a1)} Z`;
24367
+ return /* @__PURE__ */ jsxRuntime.jsx("path", { d });
24368
+ }
24357
24369
 
24358
24370
  // src/kinds/chart-number.ts
24359
24371
  function \u5B9F\u5024\u8868\u8A18(v) {
@@ -24801,15 +24813,6 @@ function \u8F2A\u306E\u9053(cx, cy, R, r, a0, a1) {
24801
24813
  const large = a1 - a0 > Math.PI ? 1 : 0;
24802
24814
  return `M ${cx + R * Math.cos(a0)} ${cy + R * Math.sin(a0)} A ${R} ${R} 0 ${large} 1 ${cx + R * Math.cos(a1)} ${cy + R * Math.sin(a1)} L ${cx + r * Math.cos(a1)} ${cy + r * Math.sin(a1)} A ${r} ${r} 0 ${large} 0 ${cx + r * Math.cos(a0)} ${cy + r * Math.sin(a0)} Z`;
24803
24815
  }
24804
- function \u6247\u5F62\u306E\u5207\u308A\u629C\u304D(cx, cy, r, \u958B\u304D) {
24805
- if (\u958B\u304D <= 0) return null;
24806
- if (\u958B\u304D >= 1) return /* @__PURE__ */ jsxRuntime.jsx("circle", { cx, cy, r });
24807
- const a0 = -Math.PI / 2;
24808
- const a1 = a0 + \u958B\u304D * Math.PI * 2;
24809
- const large = \u958B\u304D > 0.5 ? 1 : 0;
24810
- const d = `M ${cx} ${cy} L ${cx + r * Math.cos(a0)} ${cy + r * Math.sin(a0)} A ${r} ${r} 0 ${large} 1 ${cx + r * Math.cos(a1)} ${cy + r * Math.sin(a1)} Z`;
24811
- return /* @__PURE__ */ jsxRuntime.jsx("path", { d });
24812
- }
24813
24816
  function sliceColor(tone, idx) {
24814
24817
  if (tone) return TONE[tone];
24815
24818
  return chartSeriesColor(idx);
@@ -24817,7 +24820,9 @@ function sliceColor(tone, idx) {
24817
24820
  function ChartGaugeNode({
24818
24821
  node,
24819
24822
  active,
24820
- stateValues = {}
24823
+ stateValues = {},
24824
+ drawing = false,
24825
+ progress = 1
24821
24826
  }) {
24822
24827
  const x0 = node.cx - node.w / 2;
24823
24828
  const y0 = node.cy - node.h / 2;
@@ -24862,6 +24867,21 @@ function ChartGaugeNode({
24862
24867
  const \u898B\u51FA\u3057\u306E\u7D1A = Math.max(9, Math.round(\u5408\u8A08\u306E\u7D1A * 0.38));
24863
24868
  const \u5185\u8A33\u306E\u5E45 = \u4F7F\u3048\u308B\u5E452 / Math.max(data.length, 1);
24864
24869
  const \u5185\u8A33\u306Ey = cy + \u5F27\u3068\u5185\u8A33\u306E\u9593;
24870
+ const \u4F38\u3073 = \u9032\u307F\u3092\u7573\u3080(drawing, progress);
24871
+ const \u5207\u308A\u629C\u304Did = `cdl-gauge-draw-${react.useId().replace(/[^A-Za-z0-9_-]/g, "")}`;
24872
+ const \u5F27\u305F\u3061 = slices.map((s, idx) => /* @__PURE__ */ jsxRuntime.jsx(
24873
+ "path",
24874
+ {
24875
+ "data-cdl-role": "chart-gauge-arc",
24876
+ "data-cdl-unresolved": s.d.unresolved ? "true" : void 0,
24877
+ d: s.path,
24878
+ fill: arcColor(s.d.tone, idx),
24879
+ stroke: "var(--cdl-node-fill, #ffffff)",
24880
+ strokeWidth: 3,
24881
+ strokeLinejoin: "round"
24882
+ },
24883
+ `arc-${idx}`
24884
+ ));
24865
24885
  return /* @__PURE__ */ jsxRuntime.jsxs("g", { transform: `translate(${x0} ${y0})`, children: [
24866
24886
  /* @__PURE__ */ jsxRuntime.jsx(
24867
24887
  "rect",
@@ -24877,19 +24897,8 @@ function ChartGaugeNode({
24877
24897
  strokeWidth: active ? 3 : 1.25
24878
24898
  }
24879
24899
  ),
24880
- slices.map((s, idx) => /* @__PURE__ */ jsxRuntime.jsx(
24881
- "path",
24882
- {
24883
- "data-cdl-role": "chart-gauge-arc",
24884
- "data-cdl-unresolved": s.d.unresolved ? "true" : void 0,
24885
- d: s.path,
24886
- fill: arcColor(s.d.tone, idx),
24887
- stroke: "var(--cdl-node-fill, #ffffff)",
24888
- strokeWidth: 3,
24889
- strokeLinejoin: "round"
24890
- },
24891
- `arc-${idx}`
24892
- )),
24900
+ drawing && /* @__PURE__ */ jsxRuntime.jsx("defs", { children: /* @__PURE__ */ jsxRuntime.jsx("clipPath", { id: \u5207\u308A\u629C\u304Did, children: \u6247\u5F62\u306E\u5207\u308A\u629C\u304D(cx, cy, radius + 2, \u4F38\u3073, Math.PI, Math.PI) }) }),
24901
+ drawing ? /* @__PURE__ */ jsxRuntime.jsx("g", { clipPath: `url(#${\u5207\u308A\u629C\u304Did})`, children: \u5F27\u305F\u3061 }) : \u5F27\u305F\u3061,
24893
24902
  /* @__PURE__ */ jsxRuntime.jsx(
24894
24903
  "text",
24895
24904
  {
@@ -24954,7 +24963,9 @@ function arcColor(tone, idx) {
24954
24963
  function ChartRadialNode({
24955
24964
  node,
24956
24965
  active,
24957
- stateValues = {}
24966
+ stateValues = {},
24967
+ drawing = false,
24968
+ progress = 1
24958
24969
  }) {
24959
24970
  const x0 = node.cx - node.w / 2;
24960
24971
  const y0 = node.cy - node.h / 2;
@@ -24993,6 +25004,20 @@ function ChartRadialNode({
24993
25004
  };
24994
25005
  });
24995
25006
  const \u4E00\u89A7\u306E\u59CB\u307E\u308A = PAD + (\u4F7F\u3048\u308B\u9AD8\u3055 - \u884C\u306E\u9AD8\u3055 * data.length) / 2 + \u884C\u306E\u9AD8\u3055 / 2;
25007
+ const \u958B\u304D = \u9032\u307F\u3092\u7573\u3080(drawing, progress);
25008
+ const \u5207\u308A\u629C\u304Did = `cdl-radial-draw-${react.useId().replace(/[^A-Za-z0-9_-]/g, "")}`;
25009
+ const \u53D6\u308A\u5206\u305F\u3061 = rings.map(
25010
+ (r, idx) => r.\u53D6\u308A\u5206 === null ? null : /* @__PURE__ */ jsxRuntime.jsx(
25011
+ "path",
25012
+ {
25013
+ "data-cdl-role": "chart-radial-arc",
25014
+ "data-cdl-unresolved": r.d.unresolved ? "true" : void 0,
25015
+ d: r.\u53D6\u308A\u5206,
25016
+ fill: arcColor2(r.d.tone, idx)
25017
+ },
25018
+ `arc-${idx}`
25019
+ )
25020
+ );
24996
25021
  return /* @__PURE__ */ jsxRuntime.jsxs("g", { transform: `translate(${x0} ${y0})`, children: [
24997
25022
  /* @__PURE__ */ jsxRuntime.jsx(
24998
25023
  "rect",
@@ -25018,18 +25043,8 @@ function ChartRadialNode({
25018
25043
  },
25019
25044
  `track-${idx}`
25020
25045
  )),
25021
- rings.map(
25022
- (r, idx) => r.\u53D6\u308A\u5206 === null ? null : /* @__PURE__ */ jsxRuntime.jsx(
25023
- "path",
25024
- {
25025
- "data-cdl-role": "chart-radial-arc",
25026
- "data-cdl-unresolved": r.d.unresolved ? "true" : void 0,
25027
- d: r.\u53D6\u308A\u5206,
25028
- fill: arcColor2(r.d.tone, idx)
25029
- },
25030
- `arc-${idx}`
25031
- )
25032
- ),
25046
+ drawing && /* @__PURE__ */ jsxRuntime.jsx("defs", { children: /* @__PURE__ */ jsxRuntime.jsx("clipPath", { id: \u5207\u308A\u629C\u304Did, children: \u6247\u5F62\u306E\u5207\u308A\u629C\u304D(\u5F27\u306Ecx, cy, \u5916\u534A\u5F84 + \u5E2F\u306E\u5E45, \u958B\u304D) }) }),
25047
+ drawing ? /* @__PURE__ */ jsxRuntime.jsx("g", { clipPath: `url(#${\u5207\u308A\u629C\u304Did})`, children: \u53D6\u308A\u5206\u305F\u3061 }) : \u53D6\u308A\u5206\u305F\u3061,
25033
25048
  data.map((d, idx) => {
25034
25049
  const y = \u4E00\u89A7\u306E\u59CB\u307E\u308A + \u884C\u306E\u9AD8\u3055 * idx;
25035
25050
  return /* @__PURE__ */ jsxRuntime.jsxs("g", { "data-cdl-role": "chart-radial-item", children: [
@@ -25352,7 +25367,9 @@ var SLICE_MIN_W_FOR_VALUE = 84;
25352
25367
  function ChartStackedBarNode({
25353
25368
  node,
25354
25369
  active,
25355
- stateValues = {}
25370
+ stateValues = {},
25371
+ drawing = false,
25372
+ progress = 1
25356
25373
  }) {
25357
25374
  const x0 = node.cx - node.w / 2;
25358
25375
  const y0 = node.cy - node.h / 2;
@@ -25370,6 +25387,8 @@ function ChartStackedBarNode({
25370
25387
  const \u4E00\u89A7\u306E\u9AD8\u3055 = 26;
25371
25388
  const \u5168\u4F53\u306E\u9AD8\u3055 = \u5E2F\u305F\u3061.length * \u5E2F\u306E\u9AD8\u3055 + (\u5E2F\u305F\u3061.length - 1) * \u5E2F\u306E\u9593 + 16 + \u4E00\u89A7\u306E\u9AD8\u3055;
25372
25389
  const \u4E0A\u7AEF = Math.max(PAD, (node.h - \u5168\u4F53\u306E\u9AD8\u3055) / 2);
25390
+ const \u4F38\u3073 = \u9032\u307F\u3092\u7573\u3080(drawing, progress);
25391
+ const \u5207\u308A\u629C\u304Did = `cdl-stacked-bar-draw-${react.useId().replace(/[^A-Za-z0-9_-]/g, "")}`;
25373
25392
  return /* @__PURE__ */ jsxRuntime.jsxs("g", { transform: `translate(${x0} ${y0})`, children: [
25374
25393
  /* @__PURE__ */ jsxRuntime.jsx(
25375
25394
  "rect",
@@ -25385,6 +25404,7 @@ function ChartStackedBarNode({
25385
25404
  strokeWidth: active ? 3 : 1.25
25386
25405
  }
25387
25406
  ),
25407
+ drawing && /* @__PURE__ */ jsxRuntime.jsx("defs", { children: /* @__PURE__ */ jsxRuntime.jsx("clipPath", { id: \u5207\u308A\u629C\u304Did, children: /* @__PURE__ */ jsxRuntime.jsx("rect", { x: 0, y: 0, width: \u5E2F\u306E\u5DE6 + \u5E2F\u306E\u5E45 * \u4F38\u3073, height: node.h }) }) }),
25388
25408
  \u5E2F\u305F\u3061.map((\u5E2F, \u6BB5) => {
25389
25409
  const y = \u4E0A\u7AEF + \u6BB5 * (\u5E2F\u306E\u9AD8\u3055 + \u5E2F\u306E\u9593);
25390
25410
  let \u5DE6 = \u5E2F\u306E\u5DE6;
@@ -25401,68 +25421,62 @@ function ChartStackedBarNode({
25401
25421
  children: \u5E2F.\u540D\u524D
25402
25422
  }
25403
25423
  ),
25404
- \u5E2F.\u533A\u753B.map((s, idx) => {
25405
- const w = \u5E2F\u306E\u5E45 * s.\u5272\u5408;
25406
- const x = \u5DE6;
25407
- \u5DE6 += w;
25408
- const \u8272 = \u5370\u306E\u82723(s.tone, idx);
25409
- return /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
25410
- /* @__PURE__ */ jsxRuntime.jsx(
25411
- "rect",
25412
- {
25413
- "data-cdl-role": "chart-stacked-bar-slice",
25414
- "data-cdl-unresolved": s.unresolved ? "true" : void 0,
25415
- x,
25416
- y,
25417
- width: Math.max(0, w),
25418
- height: \u5E2F\u306E\u9AD8\u3055,
25419
- fill: \u8272
25420
- }
25421
- ),
25422
- w >= SLICE_MIN_W_FOR_TEXT && /* @__PURE__ */ jsxRuntime.jsx(
25423
- "text",
25424
- {
25425
- "data-cdl-role": "chart-stacked-bar-slice-text",
25426
- x: x + w / 2,
25427
- y: y + \u5E2F\u306E\u9AD8\u3055 / 2 + (w >= SLICE_MIN_W_FOR_VALUE ? -2 : 4),
25428
- fontSize: \u533A\u753B\u306E\u7D1A,
25429
- fontWeight: 700,
25430
- textAnchor: "middle",
25431
- fill: "#ffffff",
25432
- children: \u5272\u5408\u8868\u8A18(s.\u5272\u5408)
25433
- }
25434
- ),
25435
- w >= SLICE_MIN_W_FOR_VALUE && /* @__PURE__ */ jsxRuntime.jsx(
25436
- "text",
25437
- {
25438
- "data-cdl-role": "chart-stacked-bar-slice-value",
25439
- x: x + w / 2,
25440
- y: y + \u5E2F\u306E\u9AD8\u3055 / 2 + 13,
25441
- fontSize: \u533A\u753B\u306E\u7D1A - 1,
25442
- textAnchor: "middle",
25443
- fill: "#ffffff",
25444
- fillOpacity: 0.85,
25445
- children: \u5B9F\u5024\u8868\u8A18(s.\u5B9F\u5024)
25446
- }
25447
- )
25448
- ] }, `slice-${idx}`);
25449
- })
25424
+ (() => {
25425
+ const \u533A\u753B\u305F\u3061 = \u5E2F.\u533A\u753B.map((s, idx) => {
25426
+ const w = \u5E2F\u306E\u5E45 * s.\u5272\u5408;
25427
+ const x = \u5DE6;
25428
+ \u5DE6 += w;
25429
+ const \u8272 = \u5370\u306E\u82723(s.tone, idx);
25430
+ return /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
25431
+ /* @__PURE__ */ jsxRuntime.jsx(
25432
+ "rect",
25433
+ {
25434
+ "data-cdl-role": "chart-stacked-bar-slice",
25435
+ "data-cdl-unresolved": s.unresolved ? "true" : void 0,
25436
+ x,
25437
+ y,
25438
+ width: Math.max(0, w),
25439
+ height: \u5E2F\u306E\u9AD8\u3055,
25440
+ fill: \u8272
25441
+ }
25442
+ ),
25443
+ w >= SLICE_MIN_W_FOR_TEXT && /* @__PURE__ */ jsxRuntime.jsx(
25444
+ "text",
25445
+ {
25446
+ "data-cdl-role": "chart-stacked-bar-slice-text",
25447
+ x: x + w / 2,
25448
+ y: y + \u5E2F\u306E\u9AD8\u3055 / 2 + (w >= SLICE_MIN_W_FOR_VALUE ? -2 : 4),
25449
+ fontSize: \u533A\u753B\u306E\u7D1A,
25450
+ fontWeight: 700,
25451
+ textAnchor: "middle",
25452
+ fill: "#ffffff",
25453
+ children: \u5272\u5408\u8868\u8A18(s.\u5272\u5408)
25454
+ }
25455
+ ),
25456
+ w >= SLICE_MIN_W_FOR_VALUE && /* @__PURE__ */ jsxRuntime.jsx(
25457
+ "text",
25458
+ {
25459
+ "data-cdl-role": "chart-stacked-bar-slice-value",
25460
+ x: x + w / 2,
25461
+ y: y + \u5E2F\u306E\u9AD8\u3055 / 2 + 13,
25462
+ fontSize: \u533A\u753B\u306E\u7D1A - 1,
25463
+ textAnchor: "middle",
25464
+ fill: "#ffffff",
25465
+ fillOpacity: 0.85,
25466
+ children: \u5B9F\u5024\u8868\u8A18(s.\u5B9F\u5024)
25467
+ }
25468
+ )
25469
+ ] }, `slice-${idx}`);
25470
+ });
25471
+ return drawing ? /* @__PURE__ */ jsxRuntime.jsx("g", { clipPath: `url(#${\u5207\u308A\u629C\u304Did})`, children: \u533A\u753B\u305F\u3061 }) : \u533A\u753B\u305F\u3061;
25472
+ })()
25450
25473
  ] }, `bar-${\u6BB5}`);
25451
25474
  }),
25452
25475
  \u4E00\u89A7\u306E\u4E26\u3073(data, \u5E2F\u306E\u5DE6, node.w - PAD, \u540D\u524D\u306E\u7D1A).map(({ d, idx, x, \u884C }) => {
25453
25476
  const y = \u4E0A\u7AEF + \u5E2F\u305F\u3061.length * (\u5E2F\u306E\u9AD8\u3055 + \u5E2F\u306E\u9593) - \u5E2F\u306E\u9593 + 16 + \u4E00\u89A7\u306E\u9AD8\u3055 / 2 + \u884C * \u4E00\u89A7\u306E\u9AD8\u3055;
25454
25477
  return /* @__PURE__ */ jsxRuntime.jsxs("g", { "data-cdl-role": "chart-stacked-bar-legend", children: [
25455
25478
  /* @__PURE__ */ jsxRuntime.jsx("rect", { x, y: y - 5, width: 10, height: 10, rx: 2, fill: \u5370\u306E\u82723(d.tone, idx) }),
25456
- /* @__PURE__ */ jsxRuntime.jsx(
25457
- "text",
25458
- {
25459
- x: x + 16,
25460
- y: y + 4,
25461
- fontSize: \u540D\u524D\u306E\u7D1A,
25462
- fill: "var(--cdl-text, #1a1f2a)",
25463
- children: d.label
25464
- }
25465
- )
25479
+ /* @__PURE__ */ jsxRuntime.jsx("text", { x: x + 16, y: y + 4, fontSize: \u540D\u524D\u306E\u7D1A, fill: "var(--cdl-text, #1a1f2a)", children: d.label })
25466
25480
  ] }, `legend-${idx}`);
25467
25481
  })
25468
25482
  ] });
@@ -30423,9 +30437,27 @@ function CdlNodeView({
30423
30437
  }
30424
30438
  );
30425
30439
  case "chart-gauge":
30426
- return /* @__PURE__ */ jsxRuntime.jsx(ChartGaugeNode, { node: resolvedNode, active, stateValues });
30440
+ return /* @__PURE__ */ jsxRuntime.jsx(
30441
+ ChartGaugeNode,
30442
+ {
30443
+ node: resolvedNode,
30444
+ active,
30445
+ stateValues,
30446
+ drawing,
30447
+ progress
30448
+ }
30449
+ );
30427
30450
  case "chart-stacked-bar":
30428
- return /* @__PURE__ */ jsxRuntime.jsx(ChartStackedBarNode, { node: resolvedNode, active, stateValues });
30451
+ return /* @__PURE__ */ jsxRuntime.jsx(
30452
+ ChartStackedBarNode,
30453
+ {
30454
+ node: resolvedNode,
30455
+ active,
30456
+ stateValues,
30457
+ drawing,
30458
+ progress
30459
+ }
30460
+ );
30429
30461
  case "chart-slope":
30430
30462
  return /* @__PURE__ */ jsxRuntime.jsx(
30431
30463
  ChartSlopeNode,
@@ -30442,7 +30474,16 @@ function CdlNodeView({
30442
30474
  case "chart-stat":
30443
30475
  return /* @__PURE__ */ jsxRuntime.jsx(ChartStatNode, { node: resolvedNode, active, stateValues });
30444
30476
  case "chart-radial":
30445
- return /* @__PURE__ */ jsxRuntime.jsx(ChartRadialNode, { node: resolvedNode, active, stateValues });
30477
+ return /* @__PURE__ */ jsxRuntime.jsx(
30478
+ ChartRadialNode,
30479
+ {
30480
+ node: resolvedNode,
30481
+ active,
30482
+ stateValues,
30483
+ drawing,
30484
+ progress
30485
+ }
30486
+ );
30446
30487
  case "chart-bar":
30447
30488
  return /* @__PURE__ */ jsxRuntime.jsx(
30448
30489
  ChartBarNode,