@cardenelabs/cdl 0.75.0 → 0.77.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/dist/react.js CHANGED
@@ -362,7 +362,14 @@ function resolveLang(value) {
362
362
  }
363
363
  var en = {
364
364
  /** `shape-terminal` の 2 行目 (命令の出力) */
365
- "terminal.output": "\u2192 12 chunks in 1.8s",
365
+ /*
366
+ * `shape-terminal` の出力の行。
367
+ *
368
+ * **いちばん長い行が絵の倍率を決める** (#891)。 端末の中身は自分の座標で組んでから箱へ
369
+ * 収めるので、この行が長いほど全部の字が小さくなる。 120x110 の箱では 20 字の版で
370
+ * 7.71 world まで落ちていた。
371
+ */
372
+ "terminal.output": "\u2192 12 chunks",
366
373
  /** `shape-code-block` の札の file 名 */
367
374
  "codeBlock.fileName": "utils.ts",
368
375
  /** `shape-kanban-card` の課題の番号 */
@@ -397,8 +404,14 @@ var en = {
397
404
  "paymentProvider.sign": "PAY",
398
405
  /** `shape-payment-provider` の状態の札 */
399
406
  "paymentProvider.status": "PROCESSING",
400
- /** `shape-brokerage` の株価の帯 */
401
- "brokerage.ticker": "\u25B2NKY 38,240 \u25B2AAPL 194",
407
+ /**
408
+ * `shape-brokerage` の株価の帯。
409
+ *
410
+ * **1 銘柄に絞る** (#888)。 電光掲示板の内側は幅 136 しか無く、2 銘柄を指定 11 で描くと
411
+ * 幅 181 になってビルの外へ出る。 板が流れている雰囲気は帯そのもの (黒地に緑の等幅) が
412
+ * 担うので、銘柄を減らしても絵は変わらない。
413
+ */
414
+ "brokerage.ticker": "\u25B2NKY 38,240",
402
415
  /** `shape-brokerage` の看板 */
403
416
  "brokerage.sign": "$ SECURITIES",
404
417
  /** `shape-exchange` の看板 */
@@ -583,7 +596,7 @@ var en = {
583
596
  "readout.trafficLight.green": "green"
584
597
  };
585
598
  var ja = {
586
- "terminal.output": "\u2192 1.8 \u79D2\u3067\u5B8C\u4E86",
599
+ "terminal.output": "\u2192 12 \u500B\u3092\u7D50\u5408",
587
600
  "codeBlock.fileName": "\u5171\u901A.ts",
588
601
  "kanbanCard.id": "#1111",
589
602
  "kanbanCard.status": "\u9032\u884C\u4E2D",
@@ -601,7 +614,7 @@ var ja = {
601
614
  "trustBank.sign": "\u4FE1\u8A17",
602
615
  "paymentProvider.sign": "\u6C7A\u6E08",
603
616
  "paymentProvider.status": "\u51E6\u7406\u4E2D",
604
- "brokerage.ticker": "\u25B2\u65E5\u7D4C 38,240 \u25B2\u6771\u8A3C 2,710",
617
+ "brokerage.ticker": "\u25B2\u65E5\u7D4C 38,240",
605
618
  "brokerage.sign": "\xA5 \u8A3C\u5238",
606
619
  "exchange.sign": "\u53D6\u5F15\u6240",
607
620
  "exchange.sub": "\u6E05\u7B97",
@@ -2870,6 +2883,7 @@ function textWidth(s, size, \u5B57\u9001\u308A = 0) {
2870
2883
  }
2871
2884
  return \u5E45 * size + \u5B57\u9001\u308A * \u5B57\u6570;
2872
2885
  }
2886
+ var \u7E2E\u3093\u3060\u7D75\u306E\u5B57\u306E\u4E0B\u9650 = 8;
2873
2887
 
2874
2888
  // src/kinds/row-align.ts
2875
2889
  var GENERIC_ROW_LEFT_SIZE_PX = 18;
@@ -12714,6 +12728,11 @@ function \u5272\u5408\u8868\u8A18(frac) {
12714
12728
  const v = Math.round(frac * 1e3) / 10;
12715
12729
  return `${Number.isInteger(v) ? v : v.toFixed(1)}%`;
12716
12730
  }
12731
+ var \u7A74\u306B\u5BFE\u3059\u308B\u4E0A\u9650 = 0.8;
12732
+ function \u4E2D\u592E\u306E\u5B57(\u6BD4\u4F8B\u3057\u305F\u5927\u304D\u3055, \u7A74\u306E\u534A\u5F84, \u6587) {
12733
+ const \u5165\u308B\u5927\u304D\u3055 = \u7A74\u306E\u534A\u5F84 * 2 * \u7A74\u306B\u5BFE\u3059\u308B\u4E0A\u9650 / Math.max(textWidth(\u6587, 1), 1e-6);
12734
+ return Math.min(Math.max(\u6BD4\u4F8B\u3057\u305F\u5927\u304D\u3055, \u7E2E\u3093\u3060\u7D75\u306E\u5B57\u306E\u4E0B\u9650), \u5165\u308B\u5927\u304D\u3055);
12735
+ }
12717
12736
  function ChartPieNode({
12718
12737
  node,
12719
12738
  active,
@@ -12771,6 +12790,11 @@ function ChartPieNode({
12771
12790
  const cx = node.w / 2;
12772
12791
  const cy = PAD_TOP2 + chartAreaH / 2;
12773
12792
  const \u524D\u306Eslices = \u524D\u3042\u308A ? \u8F2A\u3092\u7D44\u3080(data, cx, cy, \u524D\u306E\u5916\u534A\u5F84, \u524D\u306E\u5185\u534A\u5F84, \u524D\u306E\u5272\u5408) : [];
12793
+ const \u7A74 = \u524D\u3042\u308A ? \u524D\u306E\u5185\u534A\u5F84 : \u5916\u306E\u5185\u534A\u5F84;
12794
+ const \u5408\u8A08\u306E\u6587 = \u5B9F\u5024\u8868\u8A18(Math.round(\u524D\u3042\u308A ? \u4ECA\u306E\u5408\u8A08 : total));
12795
+ const \u5408\u8A08\u306E\u5B57 = \u4E2D\u592E\u306E\u5B57(Math.round(radius * 0.26), \u7A74, \u5408\u8A08\u306E\u6587);
12796
+ const \u898B\u51FA\u3057\u306E\u5B572 = \u4E2D\u592E\u306E\u5B57(Math.round(radius * 0.12), \u7A74, "\u5408\u8A08");
12797
+ const \u5408\u8A08\u306E\u4E0B = Math.max(Math.round(radius * 0.2), \u5408\u8A08\u306E\u5B57 * 0.25 + \u898B\u51FA\u3057\u306E\u5B572 * 0.8);
12774
12798
  const slices = \u8F2A\u3092\u7D44\u3080(data, cx, cy, radius, \u5916\u306E\u5185\u534A\u5F84, \u4ECA\u306E\u5272\u5408);
12775
12799
  const \u958B\u304D = \u9032\u307F\u3092\u7573\u3080(drawing, progress);
12776
12800
  const \u5207\u308A\u629C\u304Did = `cdl-pie-draw-${instanceId}`;
@@ -12849,19 +12873,19 @@ function ChartPieNode({
12849
12873
  x: cx,
12850
12874
  y: cy - 2,
12851
12875
  textAnchor: "middle",
12852
- fontSize: Math.round(radius * 0.26),
12876
+ fontSize: \u5408\u8A08\u306E\u5B57,
12853
12877
  fontWeight: 600,
12854
12878
  fill: "var(--cdl-text, #1a1f2a)",
12855
- children: \u5B9F\u5024\u8868\u8A18(Math.round(\u524D\u3042\u308A ? \u4ECA\u306E\u5408\u8A08 : total))
12879
+ children: \u5408\u8A08\u306E\u6587
12856
12880
  }
12857
12881
  ),
12858
12882
  /* @__PURE__ */ jsx(
12859
12883
  "text",
12860
12884
  {
12861
12885
  x: cx,
12862
- y: cy + Math.round(radius * 0.2),
12886
+ y: cy + \u5408\u8A08\u306E\u4E0B,
12863
12887
  textAnchor: "middle",
12864
- fontSize: Math.round(radius * 0.12),
12888
+ fontSize: \u898B\u51FA\u3057\u306E\u5B572,
12865
12889
  fill: "var(--cdl-text-dim, #5a6270)",
12866
12890
  children: "\u5408\u8A08"
12867
12891
  }
@@ -13064,6 +13088,10 @@ function \u8868\u306E\u5F62({ node, active, data, \u5272\u5408, x0, y0, drawing,
13064
13088
  const \u5185\u534A\u5F84 = R * 0.58;
13065
13089
  const cx = PAD + R;
13066
13090
  const cy = node.h / 2;
13091
+ const \u5408\u8A08\u306E\u6587 = \u5B9F\u5024\u8868\u8A18(Math.round(data.reduce((acc, d) => acc + d.value, 0)));
13092
+ const \u5408\u8A08\u306E\u5B57 = \u4E2D\u592E\u306E\u5B57(Math.round(R * 0.26), \u5185\u534A\u5F84, \u5408\u8A08\u306E\u6587);
13093
+ const \u898B\u51FA\u3057\u306E\u5B572 = \u4E2D\u592E\u306E\u5B57(Math.round(R * 0.12), \u5185\u534A\u5F84, "\u5408\u8A08");
13094
+ const \u5408\u8A08\u306E\u4E0B = Math.max(Math.round(R * 0.2), \u5408\u8A08\u306E\u5B57 * 0.25 + \u898B\u51FA\u3057\u306E\u5B572 * 0.8);
13067
13095
  const \u8868\u5DE6 = node.w - PAD - \u8868\u5E45;
13068
13096
  const \u53F3\u7AEF = node.w - PAD;
13069
13097
  const \u5272\u5408\u53F3 = \u53F3\u7AEF - \u5B9F\u6570\u5E45 - 24;
@@ -13105,19 +13133,19 @@ function \u8868\u306E\u5F62({ node, active, data, \u5272\u5408, x0, y0, drawing,
13105
13133
  x: cx,
13106
13134
  y: cy - 2,
13107
13135
  textAnchor: "middle",
13108
- fontSize: Math.round(R * 0.26),
13136
+ fontSize: \u5408\u8A08\u306E\u5B57,
13109
13137
  fontWeight: 600,
13110
13138
  fill: "var(--cdl-text, #1a1f2a)",
13111
- children: \u5B9F\u5024\u8868\u8A18(Math.round(data.reduce((acc, d) => acc + d.value, 0)))
13139
+ children: \u5408\u8A08\u306E\u6587
13112
13140
  }
13113
13141
  ),
13114
13142
  /* @__PURE__ */ jsx(
13115
13143
  "text",
13116
13144
  {
13117
13145
  x: cx,
13118
- y: cy + Math.round(R * 0.2),
13146
+ y: cy + \u5408\u8A08\u306E\u4E0B,
13119
13147
  textAnchor: "middle",
13120
- fontSize: Math.round(R * 0.12),
13148
+ fontSize: \u898B\u51FA\u3057\u306E\u5B572,
13121
13149
  fill: "var(--cdl-text-dim, #5a6270)",
13122
13150
  children: "\u5408\u8A08"
13123
13151
  }
@@ -15894,6 +15922,7 @@ function ShapeTerminalNode({ node, active, lang }) {
15894
15922
  const lineFont = "ui-monospace, SFMono-Regular, Menlo, monospace";
15895
15923
  const \u4F59\u767D = 16;
15896
15924
  const \u5E2F = 28;
15925
+ const \u5E2F\u306E\u5B57 = 12.5;
15897
15926
  const \u89D2 = 10;
15898
15927
  const \u5148\u982D = 26;
15899
15928
  const \u884C\u9593 = 22;
@@ -15903,7 +15932,7 @@ function ShapeTerminalNode({ node, active, lang }) {
15903
15932
  { \u5DE6: 16, \u5B57: 12.5, \u8272: "#7cd88f", \u6587: "$" },
15904
15933
  { \u5DE6: 30, \u5B57: 12.5, \u8272: "#e6edf3", \u6587: "pnpm build" }
15905
15934
  ],
15906
- [{ \u5DE6: 16, \u5B57: 12, \u8272: "#8b95a5", \u6587: \u5B57\u5F15("terminal.output") }],
15935
+ [{ \u5DE6: 16, \u5B57: 12.5, \u8272: "#8b95a5", \u6587: \u5B57\u5F15("terminal.output") }],
15907
15936
  [{ \u5DE6: 16, \u5B57: 12.5, \u8272: "#7cd88f", \u6587: "$" }]
15908
15937
  ];
15909
15938
  const \u81EA\u7136\u5E45 = Math.max(...\u884C.flat().map((c) => c.\u5DE6 + \u7B49\u5E45\u306E\u6841(c.\u6587) * MONO_ADVANCE * c.\u5B57)) + \u4F59\u767D;
@@ -15945,7 +15974,7 @@ function ShapeTerminalNode({ node, active, lang }) {
15945
15974
  {
15946
15975
  x: x + w / 2,
15947
15976
  y: y + barH / 2 + 4 * \u500D,
15948
- fontSize: 11 * \u500D,
15977
+ fontSize: \u5E2F\u306E\u5B57 * \u500D,
15949
15978
  fontFamily: lineFont,
15950
15979
  textAnchor: "middle",
15951
15980
  fill: "#7a8290",
@@ -16036,6 +16065,7 @@ function ShapeCodeBlockNode({ node, active, lang }) {
16036
16065
  const \u592A\u3055 = 9;
16037
16066
  const \u9699\u9593 = 6;
16038
16067
  const \u6301\u3061\u4E0A\u3052 = 8;
16068
+ const \u884C\u756A\u53F7\u306E\u5B57 = 11;
16039
16069
  const lines = [
16040
16070
  [
16041
16071
  { c: "#c678dd", w: 40 },
@@ -16058,14 +16088,13 @@ function ShapeCodeBlockNode({ node, active, lang }) {
16058
16088
  { c: "#e6edf3", w: 40 }
16059
16089
  ]
16060
16090
  ];
16061
- const \u6700\u9577 = Math.max(
16062
- ...lines.map(
16063
- (tokens) => tokens.reduce((sum, token) => sum + token.w, 0) + \u9699\u9593 * (tokens.length - 1)
16064
- )
16065
- );
16066
- const \u81EA\u7136\u5E45 = \u6E9D + \u5B57\u4E0B\u3052 + \u6700\u9577 + \u4F59\u767D;
16067
- const \u81EA\u7136\u9AD8 = \u30BF\u30D6\u9AD8 + \u884C\u982D + \u884C\u9593 * (lines.length - 1) + Math.max(\u592A\u3055 - \u6301\u3061\u4E0A\u3052, 10.5 * DESCENT3);
16068
- const \u500D = Math.min(1, w / \u81EA\u7136\u5E45, bodyH / \u81EA\u7136\u9AD8);
16091
+ const \u81EA\u7136\u9AD8 = \u30BF\u30D6\u9AD8 + \u884C\u982D + \u884C\u9593 * (lines.length - 1) + Math.max(\u592A\u3055 - \u6301\u3061\u4E0A\u3052, \u884C\u756A\u53F7\u306E\u5B57 * DESCENT3);
16092
+ const \u500D = Math.min(1, bodyH / \u81EA\u7136\u9AD8);
16093
+ const \u6253\u3061\u6D88\u3059\u5B57\u3089 = [
16094
+ { text: \u5B57\u5F15("codeBlock.fileName"), size: 11, \u5E2F: { \u5E45: \u30BF\u30D6\u5E45, \u9AD8\u3055: \u30BF\u30D6\u9AD8 } },
16095
+ { text: "1", size: \u884C\u756A\u53F7\u306E\u5B57, \u5E2F: { \u5E45: \u6E9D - \u6301\u3061\u4E0A\u3052, \u9AD8\u3055: \u884C\u9593 } }
16096
+ ];
16097
+ const \u500D\u8FD4\u3057 = \u6253\u3061\u6D88\u3057\u306E\u500D\u7387(\u500D, \u6253\u3061\u6D88\u3059\u5B57\u3089);
16069
16098
  const tabW = \u30BF\u30D6\u5E45 * \u500D;
16070
16099
  const tabH = \u30BF\u30D6\u9AD8 * \u500D;
16071
16100
  const \u4E38 = \u89D2 * \u500D;
@@ -16101,9 +16130,10 @@ function ShapeCodeBlockNode({ node, active, lang }) {
16101
16130
  /* @__PURE__ */ jsx(
16102
16131
  "text",
16103
16132
  {
16133
+ "data-cdl-counter-scaled": "1",
16104
16134
  x: x + tabW / 2,
16105
16135
  y: y + tabH / 2 + 4 * \u500D,
16106
- fontSize: 11 * \u500D,
16136
+ fontSize: 11 * \u500D * \u500D\u8FD4\u3057,
16107
16137
  fontFamily: lineFont,
16108
16138
  textAnchor: "middle",
16109
16139
  fill: "#e6edf3",
@@ -16125,9 +16155,10 @@ function ShapeCodeBlockNode({ node, active, lang }) {
16125
16155
  /* @__PURE__ */ jsx(
16126
16156
  "text",
16127
16157
  {
16158
+ "data-cdl-counter-scaled": "1",
16128
16159
  x: x + gutterW - \u6301\u3061\u4E0A\u3052 * \u500D,
16129
16160
  y: codeY0 + i * lineH,
16130
- fontSize: 10.5 * \u500D,
16161
+ fontSize: \u884C\u756A\u53F7\u306E\u5B57 * \u500D * \u500D\u8FD4\u3057,
16131
16162
  fontFamily: lineFont,
16132
16163
  textAnchor: "end",
16133
16164
  fill: "#4a5266",
@@ -16135,12 +16166,13 @@ function ShapeCodeBlockNode({ node, active, lang }) {
16135
16166
  }
16136
16167
  ),
16137
16168
  toks.map((t, j) => {
16138
- const rect = /* @__PURE__ */ jsx(
16169
+ const \u63CF\u304F\u5E45 = Math.min(t.w * \u500D, x + w - \u4F59\u767D * \u500D - cursor);
16170
+ const rect = \u63CF\u304F\u5E45 > 0 ? /* @__PURE__ */ jsx(
16139
16171
  "rect",
16140
16172
  {
16141
16173
  x: cursor,
16142
16174
  y: codeY0 + i * lineH - \u6301\u3061\u4E0A\u3052 * \u500D,
16143
- width: t.w * \u500D,
16175
+ width: \u63CF\u304F\u5E45,
16144
16176
  height: \u592A\u3055 * \u500D,
16145
16177
  rx: 2 * \u500D,
16146
16178
  fill: t.c,
@@ -16148,7 +16180,7 @@ function ShapeCodeBlockNode({ node, active, lang }) {
16148
16180
  stroke: "none"
16149
16181
  },
16150
16182
  j
16151
- );
16183
+ ) : null;
16152
16184
  cursor += (t.w + \u9699\u9593) * \u500D;
16153
16185
  return rect;
16154
16186
  })
@@ -16193,21 +16225,23 @@ function ShapeKanbanCardNode({ node, active, lang }) {
16193
16225
  const w = Math.max(0, node.w - \u7DDA * 2 - \u5F71);
16194
16226
  const h = Math.max(0, node.h - \u7DDA * 2 - \u5F71);
16195
16227
  const \u5E2F\u9593\u4F59\u767D = 4;
16196
- const \u5DE6\u53F3\u4F59\u767D = 14;
16197
- const \u4E0A\u6BB5\u9699\u9593 = 8;
16228
+ const \u5DE6\u53F3\u4F59\u767D = 12;
16229
+ const \u4E0A\u6BB5\u9699\u9593 = 6;
16198
16230
  const \u512A\u5148\u5E2F\u9AD8 = 10;
16199
16231
  const ID\u6587 = \u5B57\u5F15("kanbanCard.id");
16200
16232
  const ID\u57FA\u6E96 = 30;
16201
16233
  const ID\u5B57 = 11;
16202
16234
  const ID\u5B57\u9593 = 1;
16203
16235
  const PILL\u4E0A = 20;
16204
- const PILL\u5E45 = 54;
16236
+ const PILL\u5E45 = 62;
16205
16237
  const PILL\u9AD8 = 16;
16206
- const PILL\u5B57 = 9;
16238
+ const PILL\u5B57 = 11;
16239
+ const PILL\u5B57\u9593 = 0;
16207
16240
  const FOOTER\u4E0B = 22;
16208
16241
  const AVATAR\u4E2D\u5FC3Y = 4;
16209
16242
  const AVATAR\u534A\u5F84 = 9;
16210
16243
  const AVATAR\u67A0 = 1.5;
16244
+ const AVATAR\u5B57 = 11;
16211
16245
  const \u540D\u524D\u5B57 = 17;
16212
16246
  const \u8AAC\u660E\u57FA\u6E96\u6BD4 = 20 / 17;
16213
16247
  const \u8AAC\u660E\u5B57\u6BD4 = 12 / 17;
@@ -16290,7 +16324,7 @@ function ShapeKanbanCardNode({ node, active, lang }) {
16290
16324
  y: pillY + 12 * \u500D,
16291
16325
  fontSize: PILL\u5B57 * \u500D,
16292
16326
  fontWeight: 700,
16293
- letterSpacing: 1 * \u500D,
16327
+ letterSpacing: PILL\u5B57\u9593 * \u500D,
16294
16328
  textAnchor: "middle",
16295
16329
  fill: "#5a4a1a",
16296
16330
  fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace",
@@ -16338,7 +16372,7 @@ function ShapeKanbanCardNode({ node, active, lang }) {
16338
16372
  {
16339
16373
  x: 9 * \u500D,
16340
16374
  y: 8 * \u500D,
16341
- fontSize: 10 * \u500D,
16375
+ fontSize: AVATAR\u5B57 * \u500D,
16342
16376
  fontWeight: 700,
16343
16377
  textAnchor: "middle",
16344
16378
  fill: "#ffffff",
@@ -16362,7 +16396,7 @@ function ShapeKanbanCardNode({ node, active, lang }) {
16362
16396
  {
16363
16397
  x: 23 * \u500D,
16364
16398
  y: 8 * \u500D,
16365
- fontSize: 10 * \u500D,
16399
+ fontSize: AVATAR\u5B57 * \u500D,
16366
16400
  fontWeight: 700,
16367
16401
  textAnchor: "middle",
16368
16402
  fill: "#ffffff",
@@ -17336,7 +17370,7 @@ var SMART_CONTRACT_H = 220;
17336
17370
  var BLOCK_W = 240;
17337
17371
  var BLOCK_H = 220;
17338
17372
  var \u898B\u51FA\u3057\u306E\u5B57 = 13;
17339
- var \u540D\u306E\u5B57 = 10.5;
17373
+ var \u540D\u306E\u5B57 = 11;
17340
17374
  var \u5024\u306E\u5B57 = 11;
17341
17375
  var \u884C\u306E\u9593\u9694 = 22;
17342
17376
  var \u898B\u51FA\u3057\u306E\u5E2F = 32;
@@ -17353,12 +17387,12 @@ var CHAIN_BLOCK_SW = 2.5;
17353
17387
  var CHAIN_HEAD_H = 16;
17354
17388
  var CHAIN_TEXT_W = CHAIN_BLOCK_W - 8;
17355
17389
  var CHAIN_ROW_GAP = 14;
17356
- var CHAIN_NO_SIZE = 10;
17390
+ var CHAIN_NO_SIZE = 11;
17357
17391
  var CONTRACT_CALL_SIZE = 11;
17358
17392
  var NFT_ID_SIZE = 15;
17359
- var CHAIN_HASH_SIZE = 7;
17360
- var BTC_NO_SIZE = 9;
17361
- var ETH_NO_SIZE = 9;
17393
+ var CHAIN_HASH_SIZE = 11;
17394
+ var BTC_NO_SIZE = 11;
17395
+ var ETH_NO_SIZE = 11;
17362
17396
  var NODE_HEX_R = 44;
17363
17397
  var NODE_PEER_R = 12;
17364
17398
  var NODE_PEER_GAP = 22;
@@ -17687,34 +17721,40 @@ function ShapeEthereumChainNode({ node, active }) {
17687
17721
  const linkW = CHAIN_LINK_W;
17688
17722
  const totalW = blockCount * blockW + (blockCount - 1) * linkW;
17689
17723
  const startX = cx - totalW / 2;
17690
- const art = /* @__PURE__ */ jsx("g", { children: Array.from({ length: blockCount }, (_, i) => i).map((i) => {
17691
- const bx = startX + i * (blockW + linkW);
17692
- const isCurrent = i === blockCount - 1;
17693
- const iconColors = isCurrent ? { light: "#ffffff", medium: "#e5e5f5", dark: "#c9c9e0", darker: "#a4a4c9", stroke: "#ffffff" } : { light: "#8a92b2", medium: "#62688f", dark: "#454a75", darker: "#3c3c3b", stroke: ethPurple };
17694
- return /* @__PURE__ */ jsxs("g", { children: [
17695
- i > 0 && /* @__PURE__ */ jsx("line", { x1: bx - linkW, y1: cy, x2: bx, y2: cy, stroke: ethPurple, strokeWidth: 3.5, strokeLinecap: "round" }),
17696
- /* @__PURE__ */ jsx("rect", { x: bx + 3, y: cy - blockH / 2 + 3, width: blockW, height: blockH, rx: 4, fill: frame.stroke, opacity: 0.18, stroke: "none" }),
17697
- /* @__PURE__ */ jsx(
17698
- "rect",
17699
- {
17700
- "data-cdl-role": i === 0 ? "node-body" : void 0,
17701
- x: bx,
17702
- y: cy - blockH / 2,
17703
- width: blockW,
17704
- height: blockH,
17705
- rx: 4,
17706
- fill: isCurrent ? ethPurple : "var(--cdl-node-fill, #ffffff)",
17707
- stroke: ethPurple,
17708
- strokeWidth: isCurrent ? 2.5 : 1.5
17709
- }
17710
- ),
17711
- /* @__PURE__ */ jsx(EthereumDiamond, { cx: bx + blockW / 2, cy: cy - 6, h: 16, colors: iconColors }),
17712
- /* @__PURE__ */ jsxs("text", { "data-cdl-counter-scaled": "0", x: bx + blockW / 2, y: cy + 22, fontSize: ETH_NO_SIZE, fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace", fontWeight: 700, textAnchor: "middle", fill: isCurrent ? "#ffffff" : "var(--cdl-text-dim, #5a6270)", children: [
17713
- "#",
17714
- 21400 + i
17715
- ] })
17716
- ] }, i);
17717
- }) });
17724
+ const \u6253\u3061\u6D88\u3059\u5B57\u3089 = [
17725
+ { text: "#214", size: ETH_NO_SIZE, \u5E2F: { \u5E45: CHAIN_TEXT_W, \u9AD8\u3055: 20 } }
17726
+ ];
17727
+ const art = (\u500D\u7387) => {
17728
+ const \u500D = \u6253\u3061\u6D88\u3057\u306E\u500D\u7387(\u500D\u7387, \u6253\u3061\u6D88\u3059\u5B57\u3089);
17729
+ return /* @__PURE__ */ jsx("g", { children: Array.from({ length: blockCount }, (_, i) => i).map((i) => {
17730
+ const bx = startX + i * (blockW + linkW);
17731
+ const isCurrent = i === blockCount - 1;
17732
+ const iconColors = isCurrent ? { light: "#ffffff", medium: "#e5e5f5", dark: "#c9c9e0", darker: "#a4a4c9", stroke: "#ffffff" } : { light: "#8a92b2", medium: "#62688f", dark: "#454a75", darker: "#3c3c3b", stroke: ethPurple };
17733
+ return /* @__PURE__ */ jsxs("g", { children: [
17734
+ i > 0 && /* @__PURE__ */ jsx("line", { x1: bx - linkW, y1: cy, x2: bx, y2: cy, stroke: ethPurple, strokeWidth: 3.5, strokeLinecap: "round" }),
17735
+ /* @__PURE__ */ jsx("rect", { x: bx + 3, y: cy - blockH / 2 + 3, width: blockW, height: blockH, rx: 4, fill: frame.stroke, opacity: 0.18, stroke: "none" }),
17736
+ /* @__PURE__ */ jsx(
17737
+ "rect",
17738
+ {
17739
+ "data-cdl-role": i === 0 ? "node-body" : void 0,
17740
+ x: bx,
17741
+ y: cy - blockH / 2,
17742
+ width: blockW,
17743
+ height: blockH,
17744
+ rx: 4,
17745
+ fill: isCurrent ? ethPurple : "var(--cdl-node-fill, #ffffff)",
17746
+ stroke: ethPurple,
17747
+ strokeWidth: isCurrent ? 2.5 : 1.5
17748
+ }
17749
+ ),
17750
+ /* @__PURE__ */ jsx(EthereumDiamond, { cx: bx + blockW / 2, cy: cy - 6, h: 16, colors: iconColors }),
17751
+ /* @__PURE__ */ jsxs("text", { "data-cdl-counter-scaled": "1", x: bx + blockW / 2, y: cy + 22, fontSize: ETH_NO_SIZE * \u500D, fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace", fontWeight: 700, textAnchor: "middle", fill: isCurrent ? "#ffffff" : "var(--cdl-text-dim, #5a6270)", children: [
17752
+ "#",
17753
+ 214 + i
17754
+ ] })
17755
+ ] }, i);
17756
+ }) });
17757
+ };
17718
17758
  return /* @__PURE__ */ jsxs("g", { children: [
17719
17759
  fitArt(r, chainExtent(), art),
17720
17760
  bottomLabel2(node, r.cx, r.label)
@@ -18165,7 +18205,7 @@ function ShapePaymentProviderNode({ node, active, lang }) {
18165
18205
  /* @__PURE__ */ jsx("circle", { cx, cy: cy + 4, r: 10, fill: "#e5c07b", stroke: accentDarker, strokeWidth: 1.5 }),
18166
18206
  /* @__PURE__ */ jsx("text", { x: cx, y: cy + 9, fontSize: 13, fontWeight: 700, textAnchor: "middle", fill: accentDarker, fontFamily: "Georgia, serif", children: "$" })
18167
18207
  ] }),
18168
- /* @__PURE__ */ jsx("text", { x: cx, y: y + boxH - 16, fontSize: 9, fontWeight: 700, letterSpacing: 2, textAnchor: "middle", fill: "#a4b5f2", children: \u5B57\u5F15("paymentProvider.status") }),
18208
+ /* @__PURE__ */ jsx("text", { x: cx, y: y + boxH - 16, fontSize: 11, fontWeight: 700, letterSpacing: 2, textAnchor: "middle", fill: "#a4b5f2", children: \u5B57\u5F15("paymentProvider.status") }),
18169
18209
  bottomLabel3(node, r.cx, r.label)
18170
18210
  ] });
18171
18211
  }
@@ -18194,12 +18234,12 @@ function ShapeCreditCardNode({ node, active }) {
18194
18234
  bottomLabel3(node, r.cx, r.label)
18195
18235
  ] });
18196
18236
  }
18197
- var BROKERAGE_TICK_H = 12;
18237
+ var BROKERAGE_TICK_H = 18;
18198
18238
  var BROKERAGE_LOGO_H = 26;
18199
- var BROKERAGE_TICK_INNER_H = 8;
18200
- var BROKERAGE_TICKER_SIZE = 5.5;
18239
+ var BROKERAGE_TICKER_SIZE = 11;
18240
+ var BROKERAGE_TICK_INNER_H = 14;
18201
18241
  var BROKERAGE_SIGN_SIZE = 12;
18202
- var BROKERAGE_GRID_TOP = 62;
18242
+ var BROKERAGE_GRID_TOP = 68;
18203
18243
  var BROKERAGE_CELL_W = 14;
18204
18244
  var BROKERAGE_CELL_H = 18;
18205
18245
  var BROKERAGE_GAP_X = 8;
@@ -18261,10 +18301,10 @@ function ShapeBrokerageNode({ node, active, lang }) {
18261
18301
  /* @__PURE__ */ jsx("rect", { "data-cdl-role": "node-body", x, y, width: w, height: h, fill: "#255a7a", stroke: accentDarker, strokeWidth: frame.strokeWidth }),
18262
18302
  /* @__PURE__ */ jsx("rect", { x: x - BROKERAGE_SHADE_OUT, y, width: BROKERAGE_SHADE_OUT * 2, height: h, fill: accentDarker }),
18263
18303
  /* @__PURE__ */ jsx("rect", { x, y, width: w, height: BROKERAGE_TICK_H, fill: "#0f1830", stroke: "none" }),
18264
- /* @__PURE__ */ jsx("rect", { x: x + 2, y: y + 2, width: w - 4, height: 8, fill: "#1a2340", stroke: "none" }),
18265
- /* @__PURE__ */ jsx("text", { "data-cdl-counter-scaled": "1", x: cx, y: y + 9, fontSize: BROKERAGE_TICKER_SIZE * \u500D, fontWeight: 700, textAnchor: "middle", fill: "#4ea36a", fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace", children: \u5B57\u5F15("brokerage.ticker") }),
18304
+ /* @__PURE__ */ jsx("rect", { x: x + 2, y: y + 2, width: w - 4, height: BROKERAGE_TICK_INNER_H, fill: "#1a2340", stroke: "none" }),
18305
+ /* @__PURE__ */ jsx("text", { "data-cdl-counter-scaled": "1", x: cx, y: y + 12, fontSize: BROKERAGE_TICKER_SIZE * \u500D, fontWeight: 700, textAnchor: "middle", fill: "#4ea36a", fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace", children: \u5B57\u5F15("brokerage.ticker") }),
18266
18306
  /* @__PURE__ */ jsx("rect", { x, y: y + BROKERAGE_TICK_H, width: w, height: BROKERAGE_LOGO_H, fill: "#e5c07b", stroke: "none" }),
18267
- /* @__PURE__ */ jsx("text", { "data-cdl-counter-scaled": "0", x: cx, y: y + 30, fontSize: BROKERAGE_SIGN_SIZE, fontWeight: 700, letterSpacing: 2.5, textAnchor: "middle", fill: "#0f1830", children: \u5B57\u5F15("brokerage.sign") }),
18307
+ /* @__PURE__ */ jsx("text", { "data-cdl-counter-scaled": "0", x: cx, y: y + BROKERAGE_TICK_H + 18, fontSize: BROKERAGE_SIGN_SIZE, fontWeight: 700, letterSpacing: 2.5, textAnchor: "middle", fill: "#0f1830", children: \u5B57\u5F15("brokerage.sign") }),
18268
18308
  Array.from({ length: rows }).map(
18269
18309
  (_, ri) => Array.from({ length: cols }).map((_2, ci) => {
18270
18310
  const wx = gridStartX + ci * (cellW + gapX);
@@ -18286,7 +18326,8 @@ function ShapeBrokerageNode({ node, active, lang }) {
18286
18326
  bottomLabel3(node, r.cx, r.label)
18287
18327
  ] });
18288
18328
  }
18289
- var EXCHANGE_SUB_SIZE = 8;
18329
+ var EXCHANGE_SUB_SIZE = 11;
18330
+ var EXCHANGE_HEX_R = 52;
18290
18331
  function ShapeExchangeNode({ node, active, lang }) {
18291
18332
  const \u5B57\u5F15 = \u5B57\u5F15\u304D\u3092\u4F5C\u308B(lang);
18292
18333
  const frame = commonFrame5(active);
@@ -18306,7 +18347,8 @@ function ShapeExchangeNode({ node, active, lang }) {
18306
18347
  idx: i
18307
18348
  };
18308
18349
  });
18309
- const hexR = 45;
18350
+ const hexR = EXCHANGE_HEX_R;
18351
+ const \u516D\u89D2\u306E\u6A2A\u5E45 = (d) => hexR * Math.sqrt(3) * Math.min(1, Math.max(0, (hexR - Math.abs(d)) / (hexR / 2)));
18310
18352
  const hexPoints = [-90, -30, 30, 90, 150, 210].map((deg) => {
18311
18353
  const rad = deg * Math.PI / 180;
18312
18354
  return { x: cx + Math.cos(rad) * hexR, y: cy + Math.sin(rad) * hexR };
@@ -18314,7 +18356,7 @@ function ShapeExchangeNode({ node, active, lang }) {
18314
18356
  const hexPath = hexPoints.map((p, i) => `${i === 0 ? "M" : "L"} ${p.x} ${p.y}`).join(" ") + " Z";
18315
18357
  const \u7BC0\u70B9 = Math.max(0, nodeR) + 8 + 1.5 / 2;
18316
18358
  const \u516D\u89D2 = hexR + frame.strokeWidth / 2;
18317
- const \u5B57\u4E0B = 26 + EXCHANGE_SUB_SIZE * 0.25;
18359
+ const \u5B57\u4E0B = 28 + EXCHANGE_SUB_SIZE * 0.25;
18318
18360
  const \u5916 = Math.max(\u7BC0\u70B9, \u516D\u89D2);
18319
18361
  const \u305A\u308C = cy - r.cy;
18320
18362
  const \u5E83\u304C\u308A = {
@@ -18324,7 +18366,11 @@ function ShapeExchangeNode({ node, active, lang }) {
18324
18366
  \u53F3: \u5916
18325
18367
  };
18326
18368
  const \u6253\u3061\u6D88\u3059\u5B57\u3089 = [
18327
- { text: \u5B57\u5F15("exchange.sub"), size: EXCHANGE_SUB_SIZE, \u5E2F: { \u5E45: \u5916 * 2, \u9AD8\u3055: 14 } }
18369
+ {
18370
+ text: \u5B57\u5F15("exchange.sub"),
18371
+ size: EXCHANGE_SUB_SIZE,
18372
+ \u5E2F: { \u5E45: \u516D\u89D2\u306E\u6A2A\u5E45(\u5B57\u4E0B), \u9AD8\u3055: 14 }
18373
+ }
18328
18374
  ];
18329
18375
  const \u7D75 = (\u500D\u7387) => {
18330
18376
  const \u500D = \u6253\u3061\u6D88\u3057\u306E\u500D\u7387(\u500D\u7387, \u6253\u3061\u6D88\u3059\u5B57\u3089);
@@ -18338,9 +18384,9 @@ function ShapeExchangeNode({ node, active, lang }) {
18338
18384
  ] }, `d${i}`);
18339
18385
  }),
18340
18386
  /* @__PURE__ */ jsx("path", { d: hexPath, fill: "#255a7a", stroke: accentDarker, strokeWidth: frame.strokeWidth, strokeLinejoin: "round" }),
18341
- /* @__PURE__ */ jsx("text", { "data-cdl-counter-scaled": "0", x: cx, y: cy - 8, fontSize: 10, fontWeight: 700, letterSpacing: 2, textAnchor: "middle", fill: "#e5c07b", children: \u5B57\u5F15("exchange.sign") }),
18387
+ /* @__PURE__ */ jsx("text", { "data-cdl-counter-scaled": "0", x: cx, y: cy - 10, fontSize: 11, fontWeight: 700, letterSpacing: 1, textAnchor: "middle", fill: "#e5c07b", children: \u5B57\u5F15("exchange.sign") }),
18342
18388
  /* @__PURE__ */ jsx("text", { "data-cdl-counter-scaled": "0", "data-cdl-role": "node-body", x: cx, y: cy + 12, fontSize: 22, fontWeight: 700, textAnchor: "middle", fill: "#e5c07b", children: "\u21C4" }),
18343
- /* @__PURE__ */ jsx("text", { "data-cdl-counter-scaled": "1", x: cx, y: cy + 26, fontSize: EXCHANGE_SUB_SIZE * \u500D, fontWeight: 700, textAnchor: "middle", fill: "#a4b5f2", children: \u5B57\u5F15("exchange.sub") }),
18389
+ /* @__PURE__ */ jsx("text", { "data-cdl-counter-scaled": "1", x: cx, y: cy + 28, fontSize: EXCHANGE_SUB_SIZE * \u500D, fontWeight: 700, textAnchor: "middle", fill: "#a4b5f2", children: \u5B57\u5F15("exchange.sub") }),
18344
18390
  nodes.map((n, i) => /* @__PURE__ */ jsx("circle", { cx: n.cx, cy: n.cy, r: 8, fill: n.fill, stroke: accentDarker, strokeWidth: 1.5 }, `n${i}`))
18345
18391
  ] });
18346
18392
  };
@@ -18358,10 +18404,10 @@ var ATM_SHADOW_RX_RATIO = 0.6;
18358
18404
  var ATM_FLOOR_UP = 6;
18359
18405
  var ATM_FLOOR_H = 10;
18360
18406
  var ATM_FLOOR_RESERVE = 12;
18361
- var ATM_PANEL_W = 140;
18407
+ var ATM_PANEL_W = 152;
18362
18408
  var ATM_PANEL_H = 146;
18363
18409
  var ATM_W_MIN = 100;
18364
- var ATM_W_MAX = 140;
18410
+ var ATM_W_MAX = ATM_PANEL_W;
18365
18411
  var ATM_H_MIN = ATM_SIGN_H + ATM_SIGN_GAP + 30 + ATM_FLOOR_RESERVE;
18366
18412
  function ShapeAtmNode({ node, active, lang }) {
18367
18413
  const \u5B57\u5F15 = \u5B57\u5F15\u304D\u3092\u4F5C\u308B(lang);
@@ -18402,9 +18448,9 @@ function ShapeAtmNode({ node, active, lang }) {
18402
18448
  /* @__PURE__ */ jsx("rect", { "data-cdl-role": "node-body", x: atmX, y: atmY, width: atmW, height: atmH, rx: 6, fill: "#255a7a", stroke: accentDarker, strokeWidth: frame.strokeWidth }),
18403
18449
  /* @__PURE__ */ jsxs("g", { transform: `translate(${centerX} ${atmY}) scale(${\u9762})`, children: [
18404
18450
  /* @__PURE__ */ jsx("rect", { x: \u9762\u5DE6 + 8, y: 10, width: ATM_PANEL_W - 16, height: 52, rx: 3, fill: "#0f1830", stroke: "#000", strokeWidth: 1.5 }),
18405
- /* @__PURE__ */ jsx("text", { "data-cdl-counter-scaled": "0", x: 0, y: 30, fontSize: 10, fontWeight: 700, letterSpacing: 1, textAnchor: "middle", fill: "#e5c07b", children: "\u304A\u5F15\u51FA\u3057" }),
18406
- /* @__PURE__ */ jsx("text", { "data-cdl-counter-scaled": "0", x: 0, y: 44, fontSize: 8, fontWeight: 700, textAnchor: "middle", fill: "#a4b5f2", children: \u5B57\u5F15("atm.screen") }),
18407
- /* @__PURE__ */ jsx("text", { "data-cdl-counter-scaled": "0", x: 0, y: 56, fontSize: 10, fontWeight: 700, textAnchor: "middle", fill: "#4ea36a", children: "\xA5 20,000" }),
18451
+ /* @__PURE__ */ jsx("text", { "data-cdl-counter-scaled": "0", x: 0, y: 28, fontSize: 11, fontWeight: 700, letterSpacing: 1, textAnchor: "middle", fill: "#e5c07b", children: "\u304A\u5F15\u51FA\u3057" }),
18452
+ /* @__PURE__ */ jsx("text", { "data-cdl-counter-scaled": "0", x: 0, y: 42, fontSize: 11, fontWeight: 700, textAnchor: "middle", fill: "#a4b5f2", children: \u5B57\u5F15("atm.screen") }),
18453
+ /* @__PURE__ */ jsx("text", { "data-cdl-counter-scaled": "0", x: 0, y: 56, fontSize: 11, fontWeight: 700, textAnchor: "middle", fill: "#4ea36a", children: "\xA5 20,000" }),
18408
18454
  /* @__PURE__ */ jsx("rect", { x: \u9762\u5DE6 + 8, y: 68, width: ATM_PANEL_W - 16, height: 42, rx: 2, fill: "#8b949e", stroke: "#5a6270", strokeWidth: 1 }),
18409
18455
  (() => {
18410
18456
  const keys = [
@@ -18422,7 +18468,7 @@ function ShapeAtmNode({ node, active, lang }) {
18422
18468
  const keyW = 18;
18423
18469
  const keyH = 10;
18424
18470
  const keyGap = 4;
18425
- const startX = \u9762\u5DE6 + 14;
18471
+ const startX = \u9762\u5DE6 + (ATM_PANEL_W - (5 * keyW + 4 * keyGap)) / 2;
18426
18472
  return keys.map((k, i) => {
18427
18473
  const row = Math.floor(i / 5);
18428
18474
  const col = i % 5;
@@ -18439,7 +18485,7 @@ function ShapeAtmNode({ node, active, lang }) {
18439
18485
  })(),
18440
18486
  /* @__PURE__ */ jsx("rect", { x: \u9762\u5DE6 + 12, y: 116, width: ATM_PANEL_W - 24, height: 8, rx: 1.5, fill: "#0f1830", stroke: accentDarker, strokeWidth: 1 }),
18441
18487
  /* @__PURE__ */ jsx("rect", { x: \u9762\u5DE6 + 15, y: 118, width: ATM_PANEL_W - 30, height: 4, rx: 0.5, fill: "#e5c07b" }),
18442
- /* @__PURE__ */ jsx("text", { "data-cdl-counter-scaled": "0", x: 0, y: 132, fontSize: 6, fontWeight: 700, letterSpacing: 1, textAnchor: "middle", fill: "#e5c07b", children: \u5B57\u5F15("atm.cardSlot") }),
18488
+ /* @__PURE__ */ jsx("text", { "data-cdl-counter-scaled": "0", x: 0, y: 132, fontSize: 11, fontWeight: 700, letterSpacing: 1, textAnchor: "middle", fill: "#e5c07b", children: \u5B57\u5F15("atm.cardSlot") }),
18443
18489
  /* @__PURE__ */ jsx("rect", { x: \u9762\u5DE6 + 12, y: 136, width: ATM_PANEL_W - 24, height: 4, rx: 1, fill: "#0f1830" })
18444
18490
  ] }),
18445
18491
  /* @__PURE__ */ jsx("rect", { x: centerX - totalW / 2, y: floorY, width: totalW, height: 6, fill: "#8b949e", stroke: "none" }),
@@ -18548,6 +18594,7 @@ function ShapeStorefrontNode({ node, active, lang }) {
18548
18594
  const doorH = facadeH - 30;
18549
18595
  const doorX = x + bw - doorW - 12;
18550
18596
  const doorY = facadeY + 20;
18597
+ const \u672D\u5E45 = Math.min(doorW - 6, 50);
18551
18598
  return /* @__PURE__ */ jsxs("g", { children: [
18552
18599
  /* @__PURE__ */ jsx("ellipse", { cx, cy: y + bh + 8, rx: bw * 0.5, ry: 5, fill: frame.stroke, opacity: 0.2, stroke: "none" }),
18553
18600
  /* @__PURE__ */ jsx("rect", { x, y, width: bw, height: signH, fill: accent, stroke: accentDark, strokeWidth: 2 }),
@@ -18564,8 +18611,8 @@ function ShapeStorefrontNode({ node, active, lang }) {
18564
18611
  /* @__PURE__ */ jsx("rect", { x: doorX + 4, y: doorY + 4, width: doorW - 8, height: doorH - 8, fill: "#8b949e", stroke: accentDarker, strokeWidth: 1.5 }),
18565
18612
  /* @__PURE__ */ jsx("line", { x1: doorX + 4, y1: doorY + doorH * 0.38, x2: doorX + doorW - 4, y2: doorY + doorH * 0.38, stroke: accentDarker, strokeWidth: 1 }),
18566
18613
  /* @__PURE__ */ jsx("line", { x1: doorX + 4, y1: doorY + doorH * 0.72, x2: doorX + doorW - 4, y2: doorY + doorH * 0.72, stroke: accentDarker, strokeWidth: 1 }),
18567
- /* @__PURE__ */ jsx("rect", { x: doorX + doorW / 2 - 20, y: doorY + doorH * 0.85, width: 40, height: 12, fill: "#e5c07b", stroke: "#a67c00", strokeWidth: 1.5 }),
18568
- /* @__PURE__ */ jsx("text", { x: doorX + doorW / 2, y: doorY + doorH * 0.85 + 9, fontSize: 8, fontWeight: 700, letterSpacing: 1, textAnchor: "middle", fill: "#5a3a10", children: \u5B57\u5F15("storefront.open") }),
18614
+ /* @__PURE__ */ jsx("rect", { x: doorX + doorW / 2 - \u672D\u5E45 / 2, y: doorY + doorH * 0.85, width: \u672D\u5E45, height: 16, fill: "#e5c07b", stroke: "#a67c00", strokeWidth: 1.5 }),
18615
+ /* @__PURE__ */ jsx("text", { x: doorX + doorW / 2, y: doorY + doorH * 0.85 + 11, fontSize: 11, fontWeight: 700, letterSpacing: 1, textAnchor: "middle", fill: "#5a3a10", children: \u5B57\u5F15("storefront.open") }),
18569
18616
  /* @__PURE__ */ jsx("circle", { cx: doorX + 6, cy: doorY + doorH * 0.55, r: 1.5, fill: "#c15a4a" }),
18570
18617
  /* @__PURE__ */ jsx("rect", { x: x - 6, y: y + bh - 6, width: bw + 12, height: 8, fill: "#5a6270", stroke: "none" }),
18571
18618
  bottomLabel4(node, r.cx, r.label)