@cardenelabs/cdl 0.74.0 → 0.76.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/index.js CHANGED
@@ -392,8 +392,14 @@ var en = {
392
392
  "paymentProvider.sign": "PAY",
393
393
  /** `shape-payment-provider` の状態の札 */
394
394
  "paymentProvider.status": "PROCESSING",
395
- /** `shape-brokerage` の株価の帯 */
396
- "brokerage.ticker": "\u25B2NKY 38,240 \u25B2AAPL 194",
395
+ /**
396
+ * `shape-brokerage` の株価の帯。
397
+ *
398
+ * **1 銘柄に絞る** (#888)。 電光掲示板の内側は幅 136 しか無く、2 銘柄を指定 11 で描くと
399
+ * 幅 181 になってビルの外へ出る。 板が流れている雰囲気は帯そのもの (黒地に緑の等幅) が
400
+ * 担うので、銘柄を減らしても絵は変わらない。
401
+ */
402
+ "brokerage.ticker": "\u25B2NKY 38,240",
397
403
  /** `shape-brokerage` の看板 */
398
404
  "brokerage.sign": "$ SECURITIES",
399
405
  /** `shape-exchange` の看板 */
@@ -596,7 +602,7 @@ var ja = {
596
602
  "trustBank.sign": "\u4FE1\u8A17",
597
603
  "paymentProvider.sign": "\u6C7A\u6E08",
598
604
  "paymentProvider.status": "\u51E6\u7406\u4E2D",
599
- "brokerage.ticker": "\u25B2\u65E5\u7D4C 38,240 \u25B2\u6771\u8A3C 2,710",
605
+ "brokerage.ticker": "\u25B2\u65E5\u7D4C 38,240",
600
606
  "brokerage.sign": "\xA5 \u8A3C\u5238",
601
607
  "exchange.sign": "\u53D6\u5F15\u6240",
602
608
  "exchange.sub": "\u6E05\u7B97",
@@ -28739,9 +28745,9 @@ function ShapeKanbanCardNode({ node, active, lang }) {
28739
28745
  const ID\u5B57 = 11;
28740
28746
  const ID\u5B57\u9593 = 1;
28741
28747
  const PILL\u4E0A = 20;
28742
- const PILL\u5E45 = 54;
28748
+ const PILL\u5E45 = 70;
28743
28749
  const PILL\u9AD8 = 16;
28744
- const PILL\u5B57 = 9;
28750
+ const PILL\u5B57 = 11;
28745
28751
  const FOOTER\u4E0B = 22;
28746
28752
  const AVATAR\u4E2D\u5FC3Y = 4;
28747
28753
  const AVATAR\u534A\u5F84 = 9;
@@ -29874,7 +29880,7 @@ var SMART_CONTRACT_H = 220;
29874
29880
  var BLOCK_W = 240;
29875
29881
  var BLOCK_H = 220;
29876
29882
  var \u898B\u51FA\u3057\u306E\u5B57 = 13;
29877
- var \u540D\u306E\u5B57 = 10.5;
29883
+ var \u540D\u306E\u5B57 = 11;
29878
29884
  var \u5024\u306E\u5B57 = 11;
29879
29885
  var \u884C\u306E\u9593\u9694 = 22;
29880
29886
  var \u898B\u51FA\u3057\u306E\u5E2F = 32;
@@ -29888,6 +29894,15 @@ var CHAIN_BLOCK_H = 66;
29888
29894
  var CHAIN_LINK_W = 12;
29889
29895
  var CHAIN_SHADOW = 3;
29890
29896
  var CHAIN_BLOCK_SW = 2.5;
29897
+ var CHAIN_HEAD_H = 16;
29898
+ var CHAIN_TEXT_W = CHAIN_BLOCK_W - 8;
29899
+ var CHAIN_ROW_GAP = 14;
29900
+ var CHAIN_NO_SIZE = 11;
29901
+ var CONTRACT_CALL_SIZE = 11;
29902
+ var NFT_ID_SIZE = 15;
29903
+ var CHAIN_HASH_SIZE = 11;
29904
+ var BTC_NO_SIZE = 11;
29905
+ var ETH_NO_SIZE = 11;
29891
29906
  var NODE_HEX_R = 44;
29892
29907
  var NODE_PEER_R = 12;
29893
29908
  var NODE_PEER_GAP = 22;
@@ -30001,24 +30016,34 @@ function ShapeSmartContractNode({ node, active, lang }) {
30001
30016
  gearPts.push(`${gearCx + Math.cos(a3) * gearTipR},${gearCy + Math.sin(a3) * gearTipR}`);
30002
30017
  gearPts.push(`${gearCx + Math.cos(a4) * gearBodyR},${gearCy + Math.sin(a4) * gearBodyR}`);
30003
30018
  }
30004
- const art = /* @__PURE__ */ jsxs("g", { children: [
30005
- /* @__PURE__ */ jsx("path", { "data-cdl-role": "node-body", d: path, ...frame, strokeLinejoin: "round" }),
30006
- /* @__PURE__ */ jsx("path", { d: foldPath, fill: "none", stroke: frame.stroke, strokeWidth: frame.strokeWidth, strokeLinejoin: "round" }),
30007
- [y + 40, y + 58, y + 76, y + 94].map((ly, i) => /* @__PURE__ */ jsx("rect", { x: x + 16, y: ly - 3, width: docW - 32 - i * 22, height: 5, rx: 1, fill: "var(--cdl-divider, #d4d4d8)", fillOpacity: 0.7, stroke: "none" }, i)),
30008
- /* @__PURE__ */ jsx("text", { x: x + 16, y: y + docH - 46, fontSize: 11, fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace", fill: "var(--cdl-tone-accent, #2d6a8f)", children: \u5B57\u5F15("smartContract.call") }),
30009
- /* @__PURE__ */ jsx(
30010
- "polygon",
30011
- {
30012
- points: gearPts.join(" "),
30013
- fill: "var(--cdl-tone-accent, #2d6a8f)",
30014
- stroke: frame.stroke,
30015
- strokeWidth: 1.2,
30016
- strokeLinejoin: "round",
30017
- children: /* @__PURE__ */ jsx("animateTransform", { attributeName: "transform", type: "rotate", from: `0 ${gearCx} ${gearCy}`, to: `360 ${gearCx} ${gearCy}`, dur: "8s", repeatCount: "indefinite" })
30018
- }
30019
- ),
30020
- /* @__PURE__ */ jsx("circle", { cx: gearCx, cy: gearCy, r: gearBodyR * 0.4, fill: "var(--cdl-node-fill, #ffffff)", stroke: "none" })
30021
- ] });
30019
+ const \u6253\u3061\u6D88\u3059\u5B57\u3089 = [
30020
+ {
30021
+ text: \u5B57\u5F15("smartContract.call"),
30022
+ size: CONTRACT_CALL_SIZE,
30023
+ \u5E2F: { \u5E45: docW - 32, \u9AD8\u3055: 18 }
30024
+ }
30025
+ ];
30026
+ const art = (\u500D\u7387) => {
30027
+ const \u500D = \u6253\u3061\u6D88\u3057\u306E\u500D\u7387(\u500D\u7387, \u6253\u3061\u6D88\u3059\u5B57\u3089);
30028
+ return /* @__PURE__ */ jsxs("g", { children: [
30029
+ /* @__PURE__ */ jsx("path", { "data-cdl-role": "node-body", d: path, ...frame, strokeLinejoin: "round" }),
30030
+ /* @__PURE__ */ jsx("path", { d: foldPath, fill: "none", stroke: frame.stroke, strokeWidth: frame.strokeWidth, strokeLinejoin: "round" }),
30031
+ [y + 40, y + 58, y + 76, y + 94].map((ly, i) => /* @__PURE__ */ jsx("rect", { x: x + 16, y: ly - 3, width: docW - 32 - i * 22, height: 5, rx: 1, fill: "var(--cdl-divider, #d4d4d8)", fillOpacity: 0.7, stroke: "none" }, i)),
30032
+ /* @__PURE__ */ jsx("text", { "data-cdl-counter-scaled": "1", x: x + 16, y: y + docH - 46, fontSize: CONTRACT_CALL_SIZE * \u500D, fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace", fill: "var(--cdl-tone-accent, #2d6a8f)", children: \u5B57\u5F15("smartContract.call") }),
30033
+ /* @__PURE__ */ jsx(
30034
+ "polygon",
30035
+ {
30036
+ points: gearPts.join(" "),
30037
+ fill: "var(--cdl-tone-accent, #2d6a8f)",
30038
+ stroke: frame.stroke,
30039
+ strokeWidth: 1.2,
30040
+ strokeLinejoin: "round",
30041
+ children: /* @__PURE__ */ jsx("animateTransform", { attributeName: "transform", type: "rotate", from: `0 ${gearCx} ${gearCy}`, to: `360 ${gearCx} ${gearCy}`, dur: "8s", repeatCount: "indefinite" })
30042
+ }
30043
+ ),
30044
+ /* @__PURE__ */ jsx("circle", { cx: gearCx, cy: gearCy, r: gearBodyR * 0.4, fill: "var(--cdl-node-fill, #ffffff)", stroke: "none" })
30045
+ ] });
30046
+ };
30022
30047
  return /* @__PURE__ */ jsxs("g", { children: [
30023
30048
  fitArt(r, smartContractExtent(frame.strokeWidth), art),
30024
30049
  bottomLabel2(node, r.cx, r.label)
@@ -30100,38 +30125,45 @@ function ShapeBlockchainNode({ node, active }) {
30100
30125
  const linkW = CHAIN_LINK_W;
30101
30126
  const totalW = blockCount * blockW + (blockCount - 1) * linkW;
30102
30127
  const startX = cx - totalW / 2;
30103
- const art = /* @__PURE__ */ jsx("g", { children: Array.from({ length: blockCount }, (_, i) => i).map((i) => {
30104
- const bx = startX + i * (blockW + linkW);
30105
- const isCurrent = i === blockCount - 1;
30106
- return /* @__PURE__ */ jsxs("g", { children: [
30107
- i > 0 && /* @__PURE__ */ jsxs("g", { children: [
30108
- /* @__PURE__ */ jsx("line", { x1: bx - linkW, y1: cy, x2: bx, y2: cy, stroke: frame.stroke, strokeWidth: 3, strokeLinecap: "round" }),
30109
- /* @__PURE__ */ jsx("circle", { cx: bx - linkW / 2, cy, r: 2.5, fill: "var(--cdl-tone-accent, #2d6a8f)", stroke: "none", children: /* @__PURE__ */ jsx("animate", { attributeName: "opacity", values: "0.3;1;0.3", dur: `${1 + i * 0.2}s`, repeatCount: "indefinite" }) })
30110
- ] }),
30111
- /* @__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" }),
30112
- /* @__PURE__ */ jsx(
30113
- "rect",
30114
- {
30115
- "data-cdl-role": i === 0 ? "node-body" : void 0,
30116
- x: bx,
30117
- y: cy - blockH / 2,
30118
- width: blockW,
30119
- height: blockH,
30120
- rx: 4,
30121
- fill: isCurrent ? "var(--cdl-tone-accent, #2d6a8f)" : "var(--cdl-node-fill, #ffffff)",
30122
- stroke: frame.stroke,
30123
- strokeWidth: isCurrent ? 2.5 : 1.5
30124
- }
30125
- ),
30126
- /* @__PURE__ */ jsx("rect", { x: bx, y: cy - blockH / 2, width: blockW, height: 16, rx: 4, fill: isCurrent ? "#1a4a68" : "var(--cdl-divider, #d4d4d8)", fillOpacity: isCurrent ? 1 : 0.4, stroke: "none" }),
30127
- /* @__PURE__ */ jsxs("text", { x: bx + blockW / 2, y: cy - blockH / 2 + 12, fontSize: 10, fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace", fontWeight: 700, textAnchor: "middle", fill: isCurrent ? "#ffffff" : "var(--cdl-text-dim, #5a6270)", children: [
30128
- "#",
30129
- 420 + i
30130
- ] }),
30131
- /* @__PURE__ */ jsx("text", { x: bx + blockW / 2, y: cy + 8, fontSize: 14, fontWeight: 700, textAnchor: "middle", fill: isCurrent ? "#ffffff" : "var(--cdl-tone-accent, #2d6a8f)", fontFamily: "Georgia, serif", children: "#" }),
30132
- /* @__PURE__ */ jsx("text", { x: bx + blockW / 2, y: cy + 22, fontSize: 7, fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace", textAnchor: "middle", fill: isCurrent ? "#ffffff" : "var(--cdl-text-dim, #5a6270)", opacity: 0.9, children: "0x\u2026" })
30133
- ] }, i);
30134
- }) });
30128
+ const \u6253\u3061\u6D88\u3059\u5B57\u3089 = [
30129
+ { text: "#420", size: CHAIN_NO_SIZE, \u5E2F: { \u5E45: CHAIN_TEXT_W, \u9AD8\u3055: CHAIN_HEAD_H } },
30130
+ { text: "0x\u2026", size: CHAIN_HASH_SIZE, \u5E2F: { \u5E45: CHAIN_TEXT_W, \u9AD8\u3055: CHAIN_ROW_GAP } }
30131
+ ];
30132
+ const art = (\u500D\u7387) => {
30133
+ const \u500D = \u6253\u3061\u6D88\u3057\u306E\u500D\u7387(\u500D\u7387, \u6253\u3061\u6D88\u3059\u5B57\u3089);
30134
+ return /* @__PURE__ */ jsx("g", { children: Array.from({ length: blockCount }, (_, i) => i).map((i) => {
30135
+ const bx = startX + i * (blockW + linkW);
30136
+ const isCurrent = i === blockCount - 1;
30137
+ return /* @__PURE__ */ jsxs("g", { children: [
30138
+ i > 0 && /* @__PURE__ */ jsxs("g", { children: [
30139
+ /* @__PURE__ */ jsx("line", { x1: bx - linkW, y1: cy, x2: bx, y2: cy, stroke: frame.stroke, strokeWidth: 3, strokeLinecap: "round" }),
30140
+ /* @__PURE__ */ jsx("circle", { cx: bx - linkW / 2, cy, r: 2.5, fill: "var(--cdl-tone-accent, #2d6a8f)", stroke: "none", children: /* @__PURE__ */ jsx("animate", { attributeName: "opacity", values: "0.3;1;0.3", dur: `${1 + i * 0.2}s`, repeatCount: "indefinite" }) })
30141
+ ] }),
30142
+ /* @__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" }),
30143
+ /* @__PURE__ */ jsx(
30144
+ "rect",
30145
+ {
30146
+ "data-cdl-role": i === 0 ? "node-body" : void 0,
30147
+ x: bx,
30148
+ y: cy - blockH / 2,
30149
+ width: blockW,
30150
+ height: blockH,
30151
+ rx: 4,
30152
+ fill: isCurrent ? "var(--cdl-tone-accent, #2d6a8f)" : "var(--cdl-node-fill, #ffffff)",
30153
+ stroke: frame.stroke,
30154
+ strokeWidth: isCurrent ? 2.5 : 1.5
30155
+ }
30156
+ ),
30157
+ /* @__PURE__ */ jsx("rect", { x: bx, y: cy - blockH / 2, width: blockW, height: CHAIN_HEAD_H, rx: 4, fill: isCurrent ? "#1a4a68" : "var(--cdl-divider, #d4d4d8)", fillOpacity: isCurrent ? 1 : 0.4, stroke: "none" }),
30158
+ /* @__PURE__ */ jsxs("text", { "data-cdl-counter-scaled": "1", x: bx + blockW / 2, y: cy - blockH / 2 + 12, fontSize: CHAIN_NO_SIZE * \u500D, fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace", fontWeight: 700, textAnchor: "middle", fill: isCurrent ? "#ffffff" : "var(--cdl-text-dim, #5a6270)", children: [
30159
+ "#",
30160
+ 420 + i
30161
+ ] }),
30162
+ /* @__PURE__ */ jsx("text", { "data-cdl-counter-scaled": "0", x: bx + blockW / 2, y: cy + 8, fontSize: 14, fontWeight: 700, textAnchor: "middle", fill: isCurrent ? "#ffffff" : "var(--cdl-tone-accent, #2d6a8f)", fontFamily: "Georgia, serif", children: "#" }),
30163
+ /* @__PURE__ */ jsx("text", { "data-cdl-counter-scaled": "1", x: bx + blockW / 2, y: cy + 22, fontSize: CHAIN_HASH_SIZE * \u500D, fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace", textAnchor: "middle", fill: isCurrent ? "#ffffff" : "var(--cdl-text-dim, #5a6270)", opacity: 0.9, children: "0x\u2026" })
30164
+ ] }, i);
30165
+ }) });
30166
+ };
30135
30167
  return /* @__PURE__ */ jsxs("g", { children: [
30136
30168
  fitArt(r, chainExtent(), art),
30137
30169
  bottomLabel2(node, r.cx, r.label)
@@ -30149,33 +30181,39 @@ function ShapeBitcoinChainNode({ node, active }) {
30149
30181
  const linkW = CHAIN_LINK_W;
30150
30182
  const totalW = blockCount * blockW + (blockCount - 1) * linkW;
30151
30183
  const startX = cx - totalW / 2;
30152
- const art = /* @__PURE__ */ jsx("g", { children: Array.from({ length: blockCount }, (_, i) => i).map((i) => {
30153
- const bx = startX + i * (blockW + linkW);
30154
- const isCurrent = i === blockCount - 1;
30155
- return /* @__PURE__ */ jsxs("g", { children: [
30156
- i > 0 && /* @__PURE__ */ jsx("line", { x1: bx - linkW, y1: cy, x2: bx, y2: cy, stroke: btcOrange, strokeWidth: 3.5, strokeLinecap: "round" }),
30157
- /* @__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" }),
30158
- /* @__PURE__ */ jsx(
30159
- "rect",
30160
- {
30161
- "data-cdl-role": i === 0 ? "node-body" : void 0,
30162
- x: bx,
30163
- y: cy - blockH / 2,
30164
- width: blockW,
30165
- height: blockH,
30166
- rx: 4,
30167
- fill: isCurrent ? btcOrange : "var(--cdl-node-fill, #ffffff)",
30168
- stroke: btcOrange,
30169
- strokeWidth: isCurrent ? 2.5 : 1.5
30170
- }
30171
- ),
30172
- /* @__PURE__ */ jsx("text", { x: bx + blockW / 2, y: cy - 4, fontSize: 30, fontWeight: 700, textAnchor: "middle", fill: isCurrent ? "#ffffff" : btcOrange, fontFamily: "Georgia, serif", children: "\u20BF" }),
30173
- /* @__PURE__ */ jsxs("text", { x: bx + blockW / 2, y: cy + 16, fontSize: 9, fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace", fontWeight: 700, textAnchor: "middle", fill: isCurrent ? "#ffffff" : "var(--cdl-text-dim, #5a6270)", children: [
30174
- "#",
30175
- 820 + i
30176
- ] })
30177
- ] }, i);
30178
- }) });
30184
+ const \u6253\u3061\u6D88\u3059\u5B57\u3089 = [
30185
+ { text: "#820", size: BTC_NO_SIZE, \u5E2F: { \u5E45: CHAIN_TEXT_W, \u9AD8\u3055: 20 } }
30186
+ ];
30187
+ const art = (\u500D\u7387) => {
30188
+ const \u500D = \u6253\u3061\u6D88\u3057\u306E\u500D\u7387(\u500D\u7387, \u6253\u3061\u6D88\u3059\u5B57\u3089);
30189
+ return /* @__PURE__ */ jsx("g", { children: Array.from({ length: blockCount }, (_, i) => i).map((i) => {
30190
+ const bx = startX + i * (blockW + linkW);
30191
+ const isCurrent = i === blockCount - 1;
30192
+ return /* @__PURE__ */ jsxs("g", { children: [
30193
+ i > 0 && /* @__PURE__ */ jsx("line", { x1: bx - linkW, y1: cy, x2: bx, y2: cy, stroke: btcOrange, strokeWidth: 3.5, strokeLinecap: "round" }),
30194
+ /* @__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" }),
30195
+ /* @__PURE__ */ jsx(
30196
+ "rect",
30197
+ {
30198
+ "data-cdl-role": i === 0 ? "node-body" : void 0,
30199
+ x: bx,
30200
+ y: cy - blockH / 2,
30201
+ width: blockW,
30202
+ height: blockH,
30203
+ rx: 4,
30204
+ fill: isCurrent ? btcOrange : "var(--cdl-node-fill, #ffffff)",
30205
+ stroke: btcOrange,
30206
+ strokeWidth: isCurrent ? 2.5 : 1.5
30207
+ }
30208
+ ),
30209
+ /* @__PURE__ */ jsx("text", { "data-cdl-counter-scaled": "0", x: bx + blockW / 2, y: cy - 4, fontSize: 30, fontWeight: 700, textAnchor: "middle", fill: isCurrent ? "#ffffff" : btcOrange, fontFamily: "Georgia, serif", children: "\u20BF" }),
30210
+ /* @__PURE__ */ jsxs("text", { "data-cdl-counter-scaled": "1", x: bx + blockW / 2, y: cy + 16, fontSize: BTC_NO_SIZE * \u500D, fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace", fontWeight: 700, textAnchor: "middle", fill: isCurrent ? "#ffffff" : "var(--cdl-text-dim, #5a6270)", children: [
30211
+ "#",
30212
+ 820 + i
30213
+ ] })
30214
+ ] }, i);
30215
+ }) });
30216
+ };
30179
30217
  return /* @__PURE__ */ jsxs("g", { children: [
30180
30218
  fitArt(r, chainExtent(), art),
30181
30219
  bottomLabel2(node, r.cx, r.label)
@@ -30193,34 +30231,40 @@ function ShapeEthereumChainNode({ node, active }) {
30193
30231
  const linkW = CHAIN_LINK_W;
30194
30232
  const totalW = blockCount * blockW + (blockCount - 1) * linkW;
30195
30233
  const startX = cx - totalW / 2;
30196
- const art = /* @__PURE__ */ jsx("g", { children: Array.from({ length: blockCount }, (_, i) => i).map((i) => {
30197
- const bx = startX + i * (blockW + linkW);
30198
- const isCurrent = i === blockCount - 1;
30199
- const iconColors = isCurrent ? { light: "#ffffff", medium: "#e5e5f5", dark: "#c9c9e0", darker: "#a4a4c9", stroke: "#ffffff" } : { light: "#8a92b2", medium: "#62688f", dark: "#454a75", darker: "#3c3c3b", stroke: ethPurple };
30200
- return /* @__PURE__ */ jsxs("g", { children: [
30201
- i > 0 && /* @__PURE__ */ jsx("line", { x1: bx - linkW, y1: cy, x2: bx, y2: cy, stroke: ethPurple, strokeWidth: 3.5, strokeLinecap: "round" }),
30202
- /* @__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" }),
30203
- /* @__PURE__ */ jsx(
30204
- "rect",
30205
- {
30206
- "data-cdl-role": i === 0 ? "node-body" : void 0,
30207
- x: bx,
30208
- y: cy - blockH / 2,
30209
- width: blockW,
30210
- height: blockH,
30211
- rx: 4,
30212
- fill: isCurrent ? ethPurple : "var(--cdl-node-fill, #ffffff)",
30213
- stroke: ethPurple,
30214
- strokeWidth: isCurrent ? 2.5 : 1.5
30215
- }
30216
- ),
30217
- /* @__PURE__ */ jsx(EthereumDiamond, { cx: bx + blockW / 2, cy: cy - 6, h: 16, colors: iconColors }),
30218
- /* @__PURE__ */ jsxs("text", { x: bx + blockW / 2, y: cy + 22, fontSize: 9, fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace", fontWeight: 700, textAnchor: "middle", fill: isCurrent ? "#ffffff" : "var(--cdl-text-dim, #5a6270)", children: [
30219
- "#",
30220
- 21400 + i
30221
- ] })
30222
- ] }, i);
30223
- }) });
30234
+ const \u6253\u3061\u6D88\u3059\u5B57\u3089 = [
30235
+ { text: "#214", size: ETH_NO_SIZE, \u5E2F: { \u5E45: CHAIN_TEXT_W, \u9AD8\u3055: 20 } }
30236
+ ];
30237
+ const art = (\u500D\u7387) => {
30238
+ const \u500D = \u6253\u3061\u6D88\u3057\u306E\u500D\u7387(\u500D\u7387, \u6253\u3061\u6D88\u3059\u5B57\u3089);
30239
+ return /* @__PURE__ */ jsx("g", { children: Array.from({ length: blockCount }, (_, i) => i).map((i) => {
30240
+ const bx = startX + i * (blockW + linkW);
30241
+ const isCurrent = i === blockCount - 1;
30242
+ const iconColors = isCurrent ? { light: "#ffffff", medium: "#e5e5f5", dark: "#c9c9e0", darker: "#a4a4c9", stroke: "#ffffff" } : { light: "#8a92b2", medium: "#62688f", dark: "#454a75", darker: "#3c3c3b", stroke: ethPurple };
30243
+ return /* @__PURE__ */ jsxs("g", { children: [
30244
+ i > 0 && /* @__PURE__ */ jsx("line", { x1: bx - linkW, y1: cy, x2: bx, y2: cy, stroke: ethPurple, strokeWidth: 3.5, strokeLinecap: "round" }),
30245
+ /* @__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" }),
30246
+ /* @__PURE__ */ jsx(
30247
+ "rect",
30248
+ {
30249
+ "data-cdl-role": i === 0 ? "node-body" : void 0,
30250
+ x: bx,
30251
+ y: cy - blockH / 2,
30252
+ width: blockW,
30253
+ height: blockH,
30254
+ rx: 4,
30255
+ fill: isCurrent ? ethPurple : "var(--cdl-node-fill, #ffffff)",
30256
+ stroke: ethPurple,
30257
+ strokeWidth: isCurrent ? 2.5 : 1.5
30258
+ }
30259
+ ),
30260
+ /* @__PURE__ */ jsx(EthereumDiamond, { cx: bx + blockW / 2, cy: cy - 6, h: 16, colors: iconColors }),
30261
+ /* @__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: [
30262
+ "#",
30263
+ 214 + i
30264
+ ] })
30265
+ ] }, i);
30266
+ }) });
30267
+ };
30224
30268
  return /* @__PURE__ */ jsxs("g", { children: [
30225
30269
  fitArt(r, chainExtent(), art),
30226
30270
  bottomLabel2(node, r.cx, r.label)
@@ -30394,39 +30438,46 @@ function ShapeNftNode({ node, active }) {
30394
30438
  const artH = cardH * 0.72;
30395
30439
  const artCx = x + cardW / 2;
30396
30440
  const artCy = y + artH / 2;
30397
- const art = /* @__PURE__ */ jsxs("g", { children: [
30398
- /* @__PURE__ */ jsx("rect", { x: x + 4, y: y + 4, width: cardW, height: cardH, rx: 14, fill: frame.stroke, opacity: 0.2, stroke: "none" }),
30399
- /* @__PURE__ */ jsx("rect", { "data-cdl-role": "node-body", x, y, width: cardW, height: cardH, rx: 14, ...frame }),
30400
- /* @__PURE__ */ jsx(
30401
- "path",
30402
- {
30403
- d: `M ${x} ${y + artH} L ${x} ${y + 14} Q ${x} ${y}, ${x + 14} ${y} L ${x + cardW - 14} ${y} Q ${x + cardW} ${y}, ${x + cardW} ${y + 14} L ${x + cardW} ${y + artH} Z`,
30404
- fill: "var(--cdl-tone-accent, #2d6a8f)",
30405
- fillOpacity: 0.15,
30406
- stroke: "none"
30407
- }
30408
- ),
30409
- /* @__PURE__ */ jsx(
30410
- "text",
30411
- {
30412
- x: artCx,
30413
- y: artCy + 24,
30414
- fontSize: 68,
30415
- fontWeight: 900,
30416
- letterSpacing: 4,
30417
- textAnchor: "middle",
30418
- fill: "var(--cdl-tone-accent, #2d6a8f)",
30419
- fontFamily: "Georgia, serif",
30420
- children: "NFT"
30421
- }
30422
- ),
30423
- /* @__PURE__ */ jsx("line", { x1: x, y1: y + artH, x2: x + cardW, y2: y + artH, stroke: frame.stroke, strokeWidth: 1, opacity: 0.5 }),
30424
- /* @__PURE__ */ jsx("text", { x: x + 16, y: y + artH + 30, fontSize: 15, fontWeight: 700, fill: "var(--cdl-text, #1a1f2a)", fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace", children: "#1024" }),
30425
- /* @__PURE__ */ jsxs("g", { transform: `translate(${x + cardW - 20}, ${y + artH + 22})`, children: [
30426
- /* @__PURE__ */ jsx("circle", { cx: 0, cy: 0, r: 10, fill: "#27c93f", stroke: "#ffffff", strokeWidth: 2 }),
30427
- /* @__PURE__ */ jsx("path", { d: "M -4 0 L -1 3 L 4 -3", fill: "none", stroke: "#ffffff", strokeWidth: 2.5, strokeLinecap: "round", strokeLinejoin: "round" })
30428
- ] })
30429
- ] });
30441
+ const \u6253\u3061\u6D88\u3059\u5B57\u3089 = [
30442
+ { text: "#1024", size: NFT_ID_SIZE, \u5E2F: { \u5E45: cardW - 16 - 34, \u9AD8\u3055: cardH - artH } }
30443
+ ];
30444
+ const art = (\u500D\u7387) => {
30445
+ const \u500D = \u6253\u3061\u6D88\u3057\u306E\u500D\u7387(\u500D\u7387, \u6253\u3061\u6D88\u3059\u5B57\u3089);
30446
+ return /* @__PURE__ */ jsxs("g", { children: [
30447
+ /* @__PURE__ */ jsx("rect", { x: x + 4, y: y + 4, width: cardW, height: cardH, rx: 14, fill: frame.stroke, opacity: 0.2, stroke: "none" }),
30448
+ /* @__PURE__ */ jsx("rect", { "data-cdl-role": "node-body", x, y, width: cardW, height: cardH, rx: 14, ...frame }),
30449
+ /* @__PURE__ */ jsx(
30450
+ "path",
30451
+ {
30452
+ d: `M ${x} ${y + artH} L ${x} ${y + 14} Q ${x} ${y}, ${x + 14} ${y} L ${x + cardW - 14} ${y} Q ${x + cardW} ${y}, ${x + cardW} ${y + 14} L ${x + cardW} ${y + artH} Z`,
30453
+ fill: "var(--cdl-tone-accent, #2d6a8f)",
30454
+ fillOpacity: 0.15,
30455
+ stroke: "none"
30456
+ }
30457
+ ),
30458
+ /* @__PURE__ */ jsx(
30459
+ "text",
30460
+ {
30461
+ "data-cdl-counter-scaled": "0",
30462
+ x: artCx,
30463
+ y: artCy + 24,
30464
+ fontSize: 68,
30465
+ fontWeight: 900,
30466
+ letterSpacing: 4,
30467
+ textAnchor: "middle",
30468
+ fill: "var(--cdl-tone-accent, #2d6a8f)",
30469
+ fontFamily: "Georgia, serif",
30470
+ children: "NFT"
30471
+ }
30472
+ ),
30473
+ /* @__PURE__ */ jsx("line", { x1: x, y1: y + artH, x2: x + cardW, y2: y + artH, stroke: frame.stroke, strokeWidth: 1, opacity: 0.5 }),
30474
+ /* @__PURE__ */ jsx("text", { "data-cdl-counter-scaled": "1", x: x + 16, y: y + artH + 30, fontSize: NFT_ID_SIZE * \u500D, fontWeight: 700, fill: "var(--cdl-text, #1a1f2a)", fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace", children: "#1024" }),
30475
+ /* @__PURE__ */ jsxs("g", { transform: `translate(${x + cardW - 20}, ${y + artH + 22})`, children: [
30476
+ /* @__PURE__ */ jsx("circle", { cx: 0, cy: 0, r: 10, fill: "#27c93f", stroke: "#ffffff", strokeWidth: 2 }),
30477
+ /* @__PURE__ */ jsx("path", { d: "M -4 0 L -1 3 L 4 -3", fill: "none", stroke: "#ffffff", strokeWidth: 2.5, strokeLinecap: "round", strokeLinejoin: "round" })
30478
+ ] })
30479
+ ] });
30480
+ };
30430
30481
  return /* @__PURE__ */ jsxs("g", { children: [
30431
30482
  fitArt(r, nftExtent(frame.strokeWidth), art),
30432
30483
  bottomLabel2(node, r.cx, r.label)
@@ -30555,7 +30606,7 @@ function ShapeBankNode({ node, active }) {
30555
30606
  }),
30556
30607
  /* @__PURE__ */ jsx("path", { d: `M ${x - BANK_BODY_OUT} ${y + pedimentH} L ${r.cx} ${y - BANK_PEDIMENT_RISE} L ${x + bldW + BANK_BODY_OUT} ${y + pedimentH} Z`, fill: "var(--cdl-node-fill, #ffffff)", stroke: frame.stroke, strokeWidth: frame.strokeWidth, strokeLinejoin: "round" }),
30557
30608
  /* @__PURE__ */ jsx("circle", { cx: r.cx, cy: y + pedimentH / 2 + 4, r: 14, fill: "var(--cdl-tone-accent, #2d6a8f)", stroke: frame.stroke, strokeWidth: 1.5 }),
30558
- /* @__PURE__ */ jsx("text", { x: r.cx, y: y + pedimentH / 2 + 10, fontSize: 18, fontWeight: 700, textAnchor: "middle", fill: "#ffffff", fontFamily: "Georgia, serif", children: "$" }),
30609
+ /* @__PURE__ */ jsx("text", { "data-cdl-counter-scaled": "0", x: r.cx, y: y + pedimentH / 2 + 10, fontSize: 18, fontWeight: 700, textAnchor: "middle", fill: "#ffffff", fontFamily: "Georgia, serif", children: "$" }),
30559
30610
  /* @__PURE__ */ jsx("rect", { x: x - 4, y: y + pedimentH, width: bldW + 8, height: architraveH, fill: "var(--cdl-divider, #d4d4d8)", fillOpacity: 0.4, stroke: frame.stroke, strokeWidth: frame.strokeWidth }),
30560
30611
  Array.from({ length: nCols }, (_, i) => i).map((i) => {
30561
30612
  const colCx = x + 12 + colGap + i * (colW + colGap) + colW / 2;
@@ -30621,7 +30672,7 @@ function ShapeTrustBankNode({ node, active, lang }) {
30621
30672
  return /* @__PURE__ */ jsx("rect", { x: r.cx - w / 2, y: y + bldH + i * BANK_STEP_DY, width: w, height: BANK_STEP_H, fill: "var(--cdl-divider, #d4d4d8)", fillOpacity: 0.5 + i * 0.15, stroke: frame.stroke, strokeWidth: BANK_STEP_SW }, i);
30622
30673
  }),
30623
30674
  /* @__PURE__ */ jsx("path", { d: `M ${x - 6} ${y + pedimentH} L ${r.cx} ${y + 2} L ${x + bldW + 6} ${y + pedimentH} Z`, fill: "var(--cdl-node-fill, #ffffff)", stroke: frame.stroke, strokeWidth: frame.strokeWidth, strokeLinejoin: "round" }),
30624
- /* @__PURE__ */ jsx("text", { x: r.cx, y: y + pedimentH - 8, fontSize: 15, fontWeight: 700, letterSpacing: 2, textAnchor: "middle", fill: "var(--cdl-tone-accent, #2d6a8f)", fontFamily: "Georgia, serif", children: \u5B57\u5F15("trustBank.sign") }),
30675
+ /* @__PURE__ */ jsx("text", { "data-cdl-counter-scaled": "0", x: r.cx, y: y + pedimentH - 8, fontSize: 15, fontWeight: 700, letterSpacing: 2, textAnchor: "middle", fill: "var(--cdl-tone-accent, #2d6a8f)", fontFamily: "Georgia, serif", children: \u5B57\u5F15("trustBank.sign") }),
30625
30676
  /* @__PURE__ */ jsx("rect", { x: x - 4, y: y + pedimentH, width: bldW + 8, height: architraveH, fill: "var(--cdl-divider, #d4d4d8)", fillOpacity: 0.4, stroke: frame.stroke, strokeWidth: frame.strokeWidth }),
30626
30677
  Array.from({ length: nCols }, (_, i) => i).map((i) => {
30627
30678
  const colCx = x + 15 + colGap + i * (colW + colGap) + colW / 2;
@@ -30664,7 +30715,7 @@ function ShapePaymentProviderNode({ node, active, lang }) {
30664
30715
  /* @__PURE__ */ jsx("circle", { cx, cy: cy + 4, r: 10, fill: "#e5c07b", stroke: accentDarker, strokeWidth: 1.5 }),
30665
30716
  /* @__PURE__ */ jsx("text", { x: cx, y: cy + 9, fontSize: 13, fontWeight: 700, textAnchor: "middle", fill: accentDarker, fontFamily: "Georgia, serif", children: "$" })
30666
30717
  ] }),
30667
- /* @__PURE__ */ jsx("text", { x: cx, y: y + boxH - 16, fontSize: 9, fontWeight: 700, letterSpacing: 2, textAnchor: "middle", fill: "#a4b5f2", children: \u5B57\u5F15("paymentProvider.status") }),
30718
+ /* @__PURE__ */ jsx("text", { x: cx, y: y + boxH - 16, fontSize: 11, fontWeight: 700, letterSpacing: 2, textAnchor: "middle", fill: "#a4b5f2", children: \u5B57\u5F15("paymentProvider.status") }),
30668
30719
  bottomLabel3(node, r.cx, r.label)
30669
30720
  ] });
30670
30721
  }
@@ -30693,9 +30744,12 @@ function ShapeCreditCardNode({ node, active }) {
30693
30744
  bottomLabel3(node, r.cx, r.label)
30694
30745
  ] });
30695
30746
  }
30696
- var BROKERAGE_TICK_H = 12;
30747
+ var BROKERAGE_TICK_H = 18;
30697
30748
  var BROKERAGE_LOGO_H = 26;
30698
- var BROKERAGE_GRID_TOP = 62;
30749
+ var BROKERAGE_TICKER_SIZE = 11;
30750
+ var BROKERAGE_TICK_INNER_H = 14;
30751
+ var BROKERAGE_SIGN_SIZE = 12;
30752
+ var BROKERAGE_GRID_TOP = 68;
30699
30753
  var BROKERAGE_CELL_W = 14;
30700
30754
  var BROKERAGE_CELL_H = 18;
30701
30755
  var BROKERAGE_GAP_X = 8;
@@ -30743,35 +30797,47 @@ function ShapeBrokerageNode({ node, active, lang }) {
30743
30797
  );
30744
30798
  const gridStartX = x + (w - (cols * cellW + (cols - 1) * gapX)) / 2;
30745
30799
  const goldCells = /* @__PURE__ */ new Set([`0,1`, `0,4`, `1,2`, `2,3`, `3,5`]);
30746
- const \u7D75 = /* @__PURE__ */ jsxs("g", { children: [
30747
- /* @__PURE__ */ jsx("ellipse", { cx, cy: y + h + BROKERAGE_SHADOW_DY, rx: w * BROKERAGE_SHADOW_RX_RATIO, ry: BROKERAGE_SHADOW_RY, fill: frame.stroke, opacity: 0.2, stroke: "none" }),
30748
- /* @__PURE__ */ jsx("rect", { "data-cdl-role": "node-body", x, y, width: w, height: h, fill: "#255a7a", stroke: accentDarker, strokeWidth: frame.strokeWidth }),
30749
- /* @__PURE__ */ jsx("rect", { x: x - BROKERAGE_SHADE_OUT, y, width: BROKERAGE_SHADE_OUT * 2, height: h, fill: accentDarker }),
30750
- /* @__PURE__ */ jsx("rect", { x, y, width: w, height: BROKERAGE_TICK_H, fill: "#0f1830", stroke: "none" }),
30751
- /* @__PURE__ */ jsx("rect", { x: x + 2, y: y + 2, width: w - 4, height: 8, fill: "#1a2340", stroke: "none" }),
30752
- /* @__PURE__ */ jsx("text", { x: cx, y: y + 9, fontSize: 5.5, fontWeight: 700, textAnchor: "middle", fill: "#4ea36a", fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace", children: \u5B57\u5F15("brokerage.ticker") }),
30753
- /* @__PURE__ */ jsx("rect", { x, y: y + BROKERAGE_TICK_H, width: w, height: BROKERAGE_LOGO_H, fill: "#e5c07b", stroke: "none" }),
30754
- /* @__PURE__ */ jsx("text", { x: cx, y: y + 30, fontSize: 12, fontWeight: 700, letterSpacing: 2.5, textAnchor: "middle", fill: "#0f1830", children: \u5B57\u5F15("brokerage.sign") }),
30755
- Array.from({ length: rows }).map(
30756
- (_, ri) => Array.from({ length: cols }).map((_2, ci) => {
30757
- const wx = gridStartX + ci * (cellW + gapX);
30758
- const wy = gridStartY + ri * (cellH + gapY);
30759
- const isGold = goldCells.has(`${ri},${ci}`);
30760
- return /* @__PURE__ */ jsx("rect", { x: wx, y: wy, width: cellW, height: cellH, fill: isGold ? "#e5c07b" : accentDarker }, `w${ri}${ci}`);
30761
- })
30762
- ),
30763
- /* @__PURE__ */ jsx("rect", { x, y: y + h - BROKERAGE_BASE_H, width: w, height: 12, fill: accentDarker }),
30764
- /* @__PURE__ */ jsx("circle", { cx, cy: y + h - 8, r: 12, fill: "#a89d8f", stroke: accentDarker, strokeWidth: 1.5 }),
30765
- /* @__PURE__ */ jsx("circle", { cx, cy: y + h - 8, r: 9, fill: "#8b949e", stroke: accentDarker, strokeWidth: 1 }),
30766
- /* @__PURE__ */ jsx("line", { x1: cx - 9, y1: y + h - 8, x2: cx + 9, y2: y + h - 8, stroke: accentDarker, strokeWidth: 0.8 }),
30767
- /* @__PURE__ */ jsx("line", { x1: cx, y1: y + h - 17, x2: cx, y2: y + h - 1, stroke: accentDarker, strokeWidth: 0.8 }),
30768
- /* @__PURE__ */ jsx("rect", { x: x - BROKERAGE_FLOOR_OUT, y: y + h + BROKERAGE_FLOOR_DY, width: w + BROKERAGE_FLOOR_OUT * 2, height: BROKERAGE_FLOOR_H, fill: "#5a6270", stroke: "none" })
30769
- ] });
30800
+ const \u6253\u3061\u6D88\u3059\u5B57\u3089 = [
30801
+ {
30802
+ text: \u5B57\u5F15("brokerage.ticker"),
30803
+ size: BROKERAGE_TICKER_SIZE,
30804
+ \u5E2F: { \u5E45: w - 4, \u9AD8\u3055: BROKERAGE_TICK_INNER_H }
30805
+ }
30806
+ ];
30807
+ const \u7D75 = (\u500D\u7387) => {
30808
+ const \u500D = \u6253\u3061\u6D88\u3057\u306E\u500D\u7387(\u500D\u7387, \u6253\u3061\u6D88\u3059\u5B57\u3089);
30809
+ return /* @__PURE__ */ jsxs("g", { children: [
30810
+ /* @__PURE__ */ jsx("ellipse", { cx, cy: y + h + BROKERAGE_SHADOW_DY, rx: w * BROKERAGE_SHADOW_RX_RATIO, ry: BROKERAGE_SHADOW_RY, fill: frame.stroke, opacity: 0.2, stroke: "none" }),
30811
+ /* @__PURE__ */ jsx("rect", { "data-cdl-role": "node-body", x, y, width: w, height: h, fill: "#255a7a", stroke: accentDarker, strokeWidth: frame.strokeWidth }),
30812
+ /* @__PURE__ */ jsx("rect", { x: x - BROKERAGE_SHADE_OUT, y, width: BROKERAGE_SHADE_OUT * 2, height: h, fill: accentDarker }),
30813
+ /* @__PURE__ */ jsx("rect", { x, y, width: w, height: BROKERAGE_TICK_H, fill: "#0f1830", stroke: "none" }),
30814
+ /* @__PURE__ */ jsx("rect", { x: x + 2, y: y + 2, width: w - 4, height: BROKERAGE_TICK_INNER_H, fill: "#1a2340", stroke: "none" }),
30815
+ /* @__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") }),
30816
+ /* @__PURE__ */ jsx("rect", { x, y: y + BROKERAGE_TICK_H, width: w, height: BROKERAGE_LOGO_H, fill: "#e5c07b", stroke: "none" }),
30817
+ /* @__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") }),
30818
+ Array.from({ length: rows }).map(
30819
+ (_, ri) => Array.from({ length: cols }).map((_2, ci) => {
30820
+ const wx = gridStartX + ci * (cellW + gapX);
30821
+ const wy = gridStartY + ri * (cellH + gapY);
30822
+ const isGold = goldCells.has(`${ri},${ci}`);
30823
+ return /* @__PURE__ */ jsx("rect", { x: wx, y: wy, width: cellW, height: cellH, fill: isGold ? "#e5c07b" : accentDarker }, `w${ri}${ci}`);
30824
+ })
30825
+ ),
30826
+ /* @__PURE__ */ jsx("rect", { x, y: y + h - BROKERAGE_BASE_H, width: w, height: 12, fill: accentDarker }),
30827
+ /* @__PURE__ */ jsx("circle", { cx, cy: y + h - 8, r: 12, fill: "#a89d8f", stroke: accentDarker, strokeWidth: 1.5 }),
30828
+ /* @__PURE__ */ jsx("circle", { cx, cy: y + h - 8, r: 9, fill: "#8b949e", stroke: accentDarker, strokeWidth: 1 }),
30829
+ /* @__PURE__ */ jsx("line", { x1: cx - 9, y1: y + h - 8, x2: cx + 9, y2: y + h - 8, stroke: accentDarker, strokeWidth: 0.8 }),
30830
+ /* @__PURE__ */ jsx("line", { x1: cx, y1: y + h - 17, x2: cx, y2: y + h - 1, stroke: accentDarker, strokeWidth: 0.8 }),
30831
+ /* @__PURE__ */ jsx("rect", { x: x - BROKERAGE_FLOOR_OUT, y: y + h + BROKERAGE_FLOOR_DY, width: w + BROKERAGE_FLOOR_OUT * 2, height: BROKERAGE_FLOOR_H, fill: "#5a6270", stroke: "none" })
30832
+ ] });
30833
+ };
30770
30834
  return /* @__PURE__ */ jsxs("g", { children: [
30771
30835
  fitArt(r, \u5E83\u304C\u308A, \u7D75),
30772
30836
  bottomLabel3(node, r.cx, r.label)
30773
30837
  ] });
30774
30838
  }
30839
+ var EXCHANGE_SUB_SIZE = 11;
30840
+ var EXCHANGE_HEX_R = 52;
30775
30841
  function ShapeExchangeNode({ node, active, lang }) {
30776
30842
  const \u5B57\u5F15 = \u5B57\u5F15\u304D\u3092\u4F5C\u308B(lang);
30777
30843
  const frame = commonFrame5(active);
@@ -30791,7 +30857,8 @@ function ShapeExchangeNode({ node, active, lang }) {
30791
30857
  idx: i
30792
30858
  };
30793
30859
  });
30794
- const hexR = 45;
30860
+ const hexR = EXCHANGE_HEX_R;
30861
+ const \u516D\u89D2\u306E\u6A2A\u5E45 = (d) => hexR * Math.sqrt(3) * Math.min(1, Math.max(0, (hexR - Math.abs(d)) / (hexR / 2)));
30795
30862
  const hexPoints = [-90, -30, 30, 90, 150, 210].map((deg) => {
30796
30863
  const rad = deg * Math.PI / 180;
30797
30864
  return { x: cx + Math.cos(rad) * hexR, y: cy + Math.sin(rad) * hexR };
@@ -30799,7 +30866,7 @@ function ShapeExchangeNode({ node, active, lang }) {
30799
30866
  const hexPath = hexPoints.map((p, i) => `${i === 0 ? "M" : "L"} ${p.x} ${p.y}`).join(" ") + " Z";
30800
30867
  const \u7BC0\u70B9 = Math.max(0, nodeR) + 8 + 1.5 / 2;
30801
30868
  const \u516D\u89D2 = hexR + frame.strokeWidth / 2;
30802
- const \u5B57\u4E0B = 26 + 8 * 0.25;
30869
+ const \u5B57\u4E0B = 28 + EXCHANGE_SUB_SIZE * 0.25;
30803
30870
  const \u5916 = Math.max(\u7BC0\u70B9, \u516D\u89D2);
30804
30871
  const \u305A\u308C = cy - r.cy;
30805
30872
  const \u5E83\u304C\u308A = {
@@ -30808,21 +30875,31 @@ function ShapeExchangeNode({ node, active, lang }) {
30808
30875
  \u5DE6: \u5916,
30809
30876
  \u53F3: \u5916
30810
30877
  };
30811
- const \u7D75 = /* @__PURE__ */ jsxs("g", { children: [
30812
- nodes.map((n, i) => /* @__PURE__ */ jsx("line", { x1: cx, y1: cy, x2: n.cx, y2: n.cy, stroke: accentDarker, strokeWidth: 1.5, strokeDasharray: "3 2" }, `l${i}`)),
30813
- nodes.map((n, i) => {
30814
- const isGreen = i % 2 === 0;
30815
- return /* @__PURE__ */ jsxs("circle", { r: 4, fill: isGreen ? "#4ea36a" : "#c15a4a", stroke: "none", children: [
30816
- /* @__PURE__ */ jsx("animate", { attributeName: "cx", values: isGreen ? `${n.cx};${cx};${n.cx}` : `${cx};${n.cx};${cx}`, dur: `${1.5 + i % 3 * 0.3}s`, repeatCount: "indefinite", begin: `${i * 0.15}s` }),
30817
- /* @__PURE__ */ jsx("animate", { attributeName: "cy", values: isGreen ? `${n.cy};${cy};${n.cy}` : `${cy};${n.cy};${cy}`, dur: `${1.5 + i % 3 * 0.3}s`, repeatCount: "indefinite", begin: `${i * 0.15}s` })
30818
- ] }, `d${i}`);
30819
- }),
30820
- /* @__PURE__ */ jsx("path", { d: hexPath, fill: "#255a7a", stroke: accentDarker, strokeWidth: frame.strokeWidth, strokeLinejoin: "round" }),
30821
- /* @__PURE__ */ jsx("text", { x: cx, y: cy - 8, fontSize: 10, fontWeight: 700, letterSpacing: 2, textAnchor: "middle", fill: "#e5c07b", children: \u5B57\u5F15("exchange.sign") }),
30822
- /* @__PURE__ */ jsx("text", { "data-cdl-role": "node-body", x: cx, y: cy + 12, fontSize: 22, fontWeight: 700, textAnchor: "middle", fill: "#e5c07b", children: "\u21C4" }),
30823
- /* @__PURE__ */ jsx("text", { x: cx, y: cy + 26, fontSize: 8, fontWeight: 700, textAnchor: "middle", fill: "#a4b5f2", children: \u5B57\u5F15("exchange.sub") }),
30824
- 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}`))
30825
- ] });
30878
+ const \u6253\u3061\u6D88\u3059\u5B57\u3089 = [
30879
+ {
30880
+ text: \u5B57\u5F15("exchange.sub"),
30881
+ size: EXCHANGE_SUB_SIZE,
30882
+ \u5E2F: { \u5E45: \u516D\u89D2\u306E\u6A2A\u5E45(\u5B57\u4E0B), \u9AD8\u3055: 14 }
30883
+ }
30884
+ ];
30885
+ const \u7D75 = (\u500D\u7387) => {
30886
+ const \u500D = \u6253\u3061\u6D88\u3057\u306E\u500D\u7387(\u500D\u7387, \u6253\u3061\u6D88\u3059\u5B57\u3089);
30887
+ return /* @__PURE__ */ jsxs("g", { children: [
30888
+ nodes.map((n, i) => /* @__PURE__ */ jsx("line", { x1: cx, y1: cy, x2: n.cx, y2: n.cy, stroke: accentDarker, strokeWidth: 1.5, strokeDasharray: "3 2" }, `l${i}`)),
30889
+ nodes.map((n, i) => {
30890
+ const isGreen = i % 2 === 0;
30891
+ return /* @__PURE__ */ jsxs("circle", { r: 4, fill: isGreen ? "#4ea36a" : "#c15a4a", stroke: "none", children: [
30892
+ /* @__PURE__ */ jsx("animate", { attributeName: "cx", values: isGreen ? `${n.cx};${cx};${n.cx}` : `${cx};${n.cx};${cx}`, dur: `${1.5 + i % 3 * 0.3}s`, repeatCount: "indefinite", begin: `${i * 0.15}s` }),
30893
+ /* @__PURE__ */ jsx("animate", { attributeName: "cy", values: isGreen ? `${n.cy};${cy};${n.cy}` : `${cy};${n.cy};${cy}`, dur: `${1.5 + i % 3 * 0.3}s`, repeatCount: "indefinite", begin: `${i * 0.15}s` })
30894
+ ] }, `d${i}`);
30895
+ }),
30896
+ /* @__PURE__ */ jsx("path", { d: hexPath, fill: "#255a7a", stroke: accentDarker, strokeWidth: frame.strokeWidth, strokeLinejoin: "round" }),
30897
+ /* @__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") }),
30898
+ /* @__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" }),
30899
+ /* @__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") }),
30900
+ 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}`))
30901
+ ] });
30902
+ };
30826
30903
  return /* @__PURE__ */ jsxs("g", { children: [
30827
30904
  fitArt(r, \u5E83\u304C\u308A, \u7D75),
30828
30905
  bottomLabel3(node, r.cx, r.label)
@@ -30837,10 +30914,10 @@ var ATM_SHADOW_RX_RATIO = 0.6;
30837
30914
  var ATM_FLOOR_UP = 6;
30838
30915
  var ATM_FLOOR_H = 10;
30839
30916
  var ATM_FLOOR_RESERVE = 12;
30840
- var ATM_PANEL_W = 140;
30917
+ var ATM_PANEL_W = 152;
30841
30918
  var ATM_PANEL_H = 146;
30842
30919
  var ATM_W_MIN = 100;
30843
- var ATM_W_MAX = 140;
30920
+ var ATM_W_MAX = ATM_PANEL_W;
30844
30921
  var ATM_H_MIN = ATM_SIGN_H + ATM_SIGN_GAP + 30 + ATM_FLOOR_RESERVE;
30845
30922
  function ShapeAtmNode({ node, active, lang }) {
30846
30923
  const \u5B57\u5F15 = \u5B57\u5F15\u304D\u3092\u4F5C\u308B(lang);
@@ -30877,13 +30954,13 @@ function ShapeAtmNode({ node, active, lang }) {
30877
30954
  const \u7D75 = /* @__PURE__ */ jsxs("g", { children: [
30878
30955
  /* @__PURE__ */ jsx("ellipse", { cx, cy: y + totalH + ATM_SHADOW_DY, rx: totalW * ATM_SHADOW_RX_RATIO, ry: ATM_SHADOW_RY, fill: frame.stroke, opacity: 0.15, stroke: "none" }),
30879
30956
  /* @__PURE__ */ jsx("rect", { x: centerX - totalW / 2, y: signY, width: totalW, height: signH, fill: accentDarker, stroke: "#000", strokeWidth: ATM_SIGN_SW }),
30880
- /* @__PURE__ */ jsx("text", { x: centerX, y: signY + 17, fontSize: 11, fontWeight: 700, letterSpacing: 2, textAnchor: "middle", fill: "#e5c07b", children: \u5B57\u5F15("atm.sign") }),
30957
+ /* @__PURE__ */ jsx("text", { "data-cdl-counter-scaled": "0", x: centerX, y: signY + 17, fontSize: 11, fontWeight: 700, letterSpacing: 2, textAnchor: "middle", fill: "#e5c07b", children: \u5B57\u5F15("atm.sign") }),
30881
30958
  /* @__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 }),
30882
30959
  /* @__PURE__ */ jsxs("g", { transform: `translate(${centerX} ${atmY}) scale(${\u9762})`, children: [
30883
30960
  /* @__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 }),
30884
- /* @__PURE__ */ jsx("text", { x: 0, y: 30, fontSize: 10, fontWeight: 700, letterSpacing: 1, textAnchor: "middle", fill: "#e5c07b", children: "\u304A\u5F15\u51FA\u3057" }),
30885
- /* @__PURE__ */ jsx("text", { x: 0, y: 44, fontSize: 8, fontWeight: 700, textAnchor: "middle", fill: "#a4b5f2", children: \u5B57\u5F15("atm.screen") }),
30886
- /* @__PURE__ */ jsx("text", { x: 0, y: 56, fontSize: 10, fontWeight: 700, textAnchor: "middle", fill: "#4ea36a", children: "\xA5 20,000" }),
30961
+ /* @__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" }),
30962
+ /* @__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") }),
30963
+ /* @__PURE__ */ jsx("text", { "data-cdl-counter-scaled": "0", x: 0, y: 56, fontSize: 11, fontWeight: 700, textAnchor: "middle", fill: "#4ea36a", children: "\xA5 20,000" }),
30887
30964
  /* @__PURE__ */ jsx("rect", { x: \u9762\u5DE6 + 8, y: 68, width: ATM_PANEL_W - 16, height: 42, rx: 2, fill: "#8b949e", stroke: "#5a6270", strokeWidth: 1 }),
30888
30965
  (() => {
30889
30966
  const keys = [
@@ -30901,7 +30978,7 @@ function ShapeAtmNode({ node, active, lang }) {
30901
30978
  const keyW = 18;
30902
30979
  const keyH = 10;
30903
30980
  const keyGap = 4;
30904
- const startX = \u9762\u5DE6 + 14;
30981
+ const startX = \u9762\u5DE6 + (ATM_PANEL_W - (5 * keyW + 4 * keyGap)) / 2;
30905
30982
  return keys.map((k, i) => {
30906
30983
  const row = Math.floor(i / 5);
30907
30984
  const col = i % 5;
@@ -30909,7 +30986,7 @@ function ShapeAtmNode({ node, active, lang }) {
30909
30986
  const ky = 74 + row * (keyH + 2);
30910
30987
  return /* @__PURE__ */ jsxs("g", { children: [
30911
30988
  /* @__PURE__ */ jsx("rect", { x: kx, y: ky, width: keyW, height: keyH, fill: k[1], stroke: "#0f1830", strokeWidth: 0.8 }),
30912
- /* @__PURE__ */ jsx("text", { x: kx + keyW / 2, y: ky + 7, fontSize: (
30989
+ /* @__PURE__ */ jsx("text", { "data-cdl-counter-scaled": "0", x: kx + keyW / 2, y: ky + 7, fontSize: (
30913
30990
  /* 決める鍵 (末尾) は 2 字あるので小さく描く。 字は言語で変わるため位置で見分ける */
30914
30991
  i === keys.length - 1 ? 6 : 7
30915
30992
  ), fontWeight: 700, textAnchor: "middle", fill: "#ffffff", children: k[0] })
@@ -30918,7 +30995,7 @@ function ShapeAtmNode({ node, active, lang }) {
30918
30995
  })(),
30919
30996
  /* @__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 }),
30920
30997
  /* @__PURE__ */ jsx("rect", { x: \u9762\u5DE6 + 15, y: 118, width: ATM_PANEL_W - 30, height: 4, rx: 0.5, fill: "#e5c07b" }),
30921
- /* @__PURE__ */ jsx("text", { x: 0, y: 132, fontSize: 6, fontWeight: 700, letterSpacing: 1, textAnchor: "middle", fill: "#e5c07b", children: \u5B57\u5F15("atm.cardSlot") }),
30998
+ /* @__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") }),
30922
30999
  /* @__PURE__ */ jsx("rect", { x: \u9762\u5DE6 + 12, y: 136, width: ATM_PANEL_W - 24, height: 4, rx: 1, fill: "#0f1830" })
30923
31000
  ] }),
30924
31001
  /* @__PURE__ */ jsx("rect", { x: centerX - totalW / 2, y: floorY, width: totalW, height: 6, fill: "#8b949e", stroke: "none" }),
@@ -31027,6 +31104,7 @@ function ShapeStorefrontNode({ node, active, lang }) {
31027
31104
  const doorH = facadeH - 30;
31028
31105
  const doorX = x + bw - doorW - 12;
31029
31106
  const doorY = facadeY + 20;
31107
+ const \u672D\u5E45 = Math.min(doorW - 6, 50);
31030
31108
  return /* @__PURE__ */ jsxs("g", { children: [
31031
31109
  /* @__PURE__ */ jsx("ellipse", { cx, cy: y + bh + 8, rx: bw * 0.5, ry: 5, fill: frame.stroke, opacity: 0.2, stroke: "none" }),
31032
31110
  /* @__PURE__ */ jsx("rect", { x, y, width: bw, height: signH, fill: accent, stroke: accentDark, strokeWidth: 2 }),
@@ -31043,8 +31121,8 @@ function ShapeStorefrontNode({ node, active, lang }) {
31043
31121
  /* @__PURE__ */ jsx("rect", { x: doorX + 4, y: doorY + 4, width: doorW - 8, height: doorH - 8, fill: "#8b949e", stroke: accentDarker, strokeWidth: 1.5 }),
31044
31122
  /* @__PURE__ */ jsx("line", { x1: doorX + 4, y1: doorY + doorH * 0.38, x2: doorX + doorW - 4, y2: doorY + doorH * 0.38, stroke: accentDarker, strokeWidth: 1 }),
31045
31123
  /* @__PURE__ */ jsx("line", { x1: doorX + 4, y1: doorY + doorH * 0.72, x2: doorX + doorW - 4, y2: doorY + doorH * 0.72, stroke: accentDarker, strokeWidth: 1 }),
31046
- /* @__PURE__ */ jsx("rect", { x: doorX + doorW / 2 - 20, y: doorY + doorH * 0.85, width: 40, height: 12, fill: "#e5c07b", stroke: "#a67c00", strokeWidth: 1.5 }),
31047
- /* @__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") }),
31124
+ /* @__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 }),
31125
+ /* @__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") }),
31048
31126
  /* @__PURE__ */ jsx("circle", { cx: doorX + 6, cy: doorY + doorH * 0.55, r: 1.5, fill: "#c15a4a" }),
31049
31127
  /* @__PURE__ */ jsx("rect", { x: x - 6, y: y + bh - 6, width: bw + 12, height: 8, fill: "#5a6270", stroke: "none" }),
31050
31128
  bottomLabel4(node, r.cx, r.label)
@@ -31091,7 +31169,7 @@ function ShapeWarehouseNode({ node, active, lang }) {
31091
31169
  /* @__PURE__ */ jsx("path", { d: `M ${x - WAREHOUSE_ROOF_OUT} ${y + roofH} L ${x + 12} ${y + 2} L ${x + bw - 12} ${y + 2} L ${x + bw + WAREHOUSE_ROOF_OUT} ${y + roofH} Z`, fill: "#5a6270", stroke: accentDarker, strokeWidth: WAREHOUSE_ROOF_SW, strokeLinejoin: "round" }),
31092
31170
  /* @__PURE__ */ jsx("rect", { "data-cdl-role": "node-body", x, y: y + roofH, width: bw, height: bh - roofH - 12, fill: "#a89d8f", stroke: "#5a6270", strokeWidth: frame.strokeWidth }),
31093
31171
  /* @__PURE__ */ jsx("rect", { x, y: y + roofH, width: bw, height: signH, fill: "#c15a4a", stroke: "#8b3f2f", strokeWidth: 1.5 }),
31094
- /* @__PURE__ */ jsx("text", { x: cx, y: y + roofH + 17, fontSize: 12, fontWeight: 900, letterSpacing: 6, textAnchor: "middle", fill: "#ffffff", children: \u5B57\u5F15("warehouse.sign") }),
31172
+ /* @__PURE__ */ jsx("text", { "data-cdl-counter-scaled": "0", x: cx, y: y + roofH + 17, fontSize: 12, fontWeight: 900, letterSpacing: 6, textAnchor: "middle", fill: "#ffffff", children: \u5B57\u5F15("warehouse.sign") }),
31095
31173
  /* @__PURE__ */ jsx("rect", { x: shutterX, y: shutterY, width: shutterW, height: shutterH, fill: "#8b949e", stroke: accentDarker, strokeWidth: 2 }),
31096
31174
  /* @__PURE__ */ jsx("rect", { x: shutterX, y: shutterY, width: shutterW, height: 5, fill: "#5a6270", stroke: "none" }),
31097
31175
  Array.from({ length: 10 }, (_, i) => i).map((i) => /* @__PURE__ */ jsx(
@@ -31246,6 +31324,10 @@ var API_ROW_PITCH_MIN = 30;
31246
31324
  var API_ROW_BOTTOM_PAD = 12;
31247
31325
  var API_ROWS = 3;
31248
31326
  var API_H_MIN = API_ROW_TOP + (API_ROWS - 1) * API_ROW_PITCH_MIN + API_ROW_H + API_ROW_BOTTOM_PAD;
31327
+ var API_PATH_SIZE = 12;
31328
+ var API_SIGN_SIZE = 14;
31329
+ var API_METHOD_BOX_W = 54;
31330
+ var API_METHOD_TEXT_W = 48;
31249
31331
  var API_W_MIN = 200;
31250
31332
  var API_W_MAX = 300;
31251
31333
  function ShapeApiGatewayNode({ node, active, lang }) {
@@ -31260,28 +31342,37 @@ function ShapeApiGatewayNode({ node, active, lang }) {
31260
31342
  const x = cx - bw / 2;
31261
31343
  const y = r.cy - \u7E26 / 2 + \u4F59\u767D;
31262
31344
  const \u5E83\u304C\u308A = { \u4E0A: \u7E26 / 2, \u4E0B: \u7E26 / 2, \u5DE6: bw / 2 + \u4F59\u767D, \u53F3: bw / 2 + \u4F59\u767D };
31263
- const \u7A2E\u985E\u306E\u5B57 = (s) => Math.min(11, 11 * 48 / Math.max(displayWidth(s) * 11 * MONO_ADVANCE_RATIO, textWidth(s, 11)));
31345
+ const \u7A2E\u985E\u306E\u5B57 = (s) => Math.min(11, 11 * API_METHOD_TEXT_W / Math.max(displayWidth(s) * 11 * MONO_ADVANCE_RATIO, textWidth(s, 11)));
31264
31346
  const rowPitch = Math.max(
31265
31347
  API_ROW_PITCH_MIN,
31266
31348
  (bh - API_ROW_TOP - API_ROW_H - API_ROW_BOTTOM_PAD) / (API_ROWS - 1)
31267
31349
  );
31268
- const \u7D75 = /* @__PURE__ */ jsxs("g", { children: [
31269
- /* @__PURE__ */ jsx("rect", { x: x + DROP_SHADOW_D, y: y + DROP_SHADOW_D, width: bw, height: bh, rx: 10, fill: frame.stroke, opacity: 0.2, stroke: "none" }),
31270
- /* @__PURE__ */ jsx("rect", { "data-cdl-role": "node-body", x, y, width: bw, height: bh, rx: 10, fill: "#1a2332", stroke: frame.stroke, strokeWidth: frame.strokeWidth }),
31271
- /* @__PURE__ */ jsx("rect", { x, y, width: bw, height: 36, rx: 10, fill: "var(--cdl-tone-accent, #2d6a8f)", stroke: "none" }),
31272
- /* @__PURE__ */ jsx("text", { x: cx, y: y + 24, fontSize: 14, fontWeight: 700, letterSpacing: 3, textAnchor: "middle", fill: "#ffffff", fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace", children: \u5B57\u5F15("apiGateway.sign") }),
31273
- [
31274
- { method: "GET", path: \u5B57\u5F15("apiGateway.users"), color: "#27c93f" },
31275
- { method: "POST", path: \u5B57\u5F15("apiGateway.orders"), color: "#e5c07b" },
31276
- { method: \u5B57\u5F15("apiGateway.delete"), path: \u5B57\u5F15("apiGateway.session"), color: "#c9302c" }
31277
- ].map((e, i) => /* @__PURE__ */ jsxs("g", { transform: `translate(${x + 16}, ${y + API_ROW_TOP + i * rowPitch})`, children: [
31278
- /* @__PURE__ */ jsx("rect", { x: 0, y: 0, width: bw - 32, height: API_ROW_H, rx: 4, fill: "#0f1419", stroke: "none" }),
31279
- /* @__PURE__ */ jsx("rect", { x: 0, y: 0, width: 54, height: API_ROW_H, rx: 4, fill: e.color, stroke: "none" }),
31280
- /* @__PURE__ */ jsx("text", { x: 27, y: 16, fontSize: \u7A2E\u985E\u306E\u5B57(e.method), fontWeight: 700, textAnchor: "middle", fill: "#ffffff", fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace", children: e.method }),
31281
- /* @__PURE__ */ jsx("text", { x: 64, y: 16, fontSize: 12, fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace", fill: "#e6edf3", children: e.path }),
31282
- /* @__PURE__ */ jsx("circle", { cx: bw - 44, cy: 12, r: 4, fill: "#27c93f", stroke: "none", children: /* @__PURE__ */ jsx("animate", { attributeName: "opacity", values: "0.4;1;0.4", dur: `${1.2 + i * 0.3}s`, repeatCount: "indefinite" }) })
31283
- ] }, i))
31284
- ] });
31350
+ const \u884C\u3089 = [
31351
+ { method: "GET", path: \u5B57\u5F15("apiGateway.users"), color: "#27c93f" },
31352
+ { method: "POST", path: \u5B57\u5F15("apiGateway.orders"), color: "#e5c07b" },
31353
+ { method: \u5B57\u5F15("apiGateway.delete"), path: \u5B57\u5F15("apiGateway.session"), color: "#c9302c" }
31354
+ ];
31355
+ const \u6253\u3061\u6D88\u3059\u5B57\u3089 = \u884C\u3089.map((e) => ({
31356
+ text: e.path,
31357
+ size: API_PATH_SIZE,
31358
+ \u5E2F: { \u5E45: bw - 32 - 64 - 16, \u9AD8\u3055: API_ROW_H }
31359
+ }));
31360
+ const \u7D75 = (\u500D\u7387) => {
31361
+ const \u500D = \u6253\u3061\u6D88\u3057\u306E\u500D\u7387(\u500D\u7387, \u6253\u3061\u6D88\u3059\u5B57\u3089);
31362
+ return /* @__PURE__ */ jsxs("g", { children: [
31363
+ /* @__PURE__ */ jsx("rect", { x: x + DROP_SHADOW_D, y: y + DROP_SHADOW_D, width: bw, height: bh, rx: 10, fill: frame.stroke, opacity: 0.2, stroke: "none" }),
31364
+ /* @__PURE__ */ jsx("rect", { "data-cdl-role": "node-body", x, y, width: bw, height: bh, rx: 10, fill: "#1a2332", stroke: frame.stroke, strokeWidth: frame.strokeWidth }),
31365
+ /* @__PURE__ */ jsx("rect", { x, y, width: bw, height: 36, rx: 10, fill: "var(--cdl-tone-accent, #2d6a8f)", stroke: "none" }),
31366
+ /* @__PURE__ */ jsx("text", { "data-cdl-counter-scaled": "0", x: cx, y: y + 24, fontSize: API_SIGN_SIZE, fontWeight: 700, letterSpacing: 3, textAnchor: "middle", fill: "#ffffff", fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace", children: \u5B57\u5F15("apiGateway.sign") }),
31367
+ \u884C\u3089.map((e, i) => /* @__PURE__ */ jsxs("g", { transform: `translate(${x + 16}, ${y + API_ROW_TOP + i * rowPitch})`, children: [
31368
+ /* @__PURE__ */ jsx("rect", { x: 0, y: 0, width: bw - 32, height: API_ROW_H, rx: 4, fill: "#0f1419", stroke: "none" }),
31369
+ /* @__PURE__ */ jsx("rect", { x: 0, y: 0, width: API_METHOD_BOX_W, height: API_ROW_H, rx: 4, fill: e.color, stroke: "none" }),
31370
+ /* @__PURE__ */ jsx("text", { "data-cdl-counter-scaled": "0", x: 27, y: 16, fontSize: \u7A2E\u985E\u306E\u5B57(e.method), fontWeight: 700, textAnchor: "middle", fill: "#ffffff", fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace", children: e.method }),
31371
+ /* @__PURE__ */ jsx("text", { "data-cdl-counter-scaled": "1", x: 64, y: 16, fontSize: API_PATH_SIZE * \u500D, fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace", fill: "#e6edf3", children: e.path }),
31372
+ /* @__PURE__ */ jsx("circle", { cx: bw - 44, cy: 12, r: 4, fill: "#27c93f", stroke: "none", children: /* @__PURE__ */ jsx("animate", { attributeName: "opacity", values: "0.4;1;0.4", dur: `${1.2 + i * 0.3}s`, repeatCount: "indefinite" }) })
31373
+ ] }, i))
31374
+ ] });
31375
+ };
31285
31376
  return /* @__PURE__ */ jsxs("g", { children: [
31286
31377
  fitArt(r, \u5E83\u304C\u308A, \u7D75),
31287
31378
  bottomLabel4(node, r.cx, r.label)
@@ -31501,11 +31592,11 @@ function ShapeNotaryNode({ node, active }) {
31501
31592
  /* @__PURE__ */ jsx("line", { x1: chestX - 14, y1: chestY + 14, x2: chestX + 14, y2: chestY + 14, stroke: "#8b949e", strokeWidth: 1 }),
31502
31593
  /* @__PURE__ */ jsx("line", { x1: chestX - 14, y1: chestY + 22, x2: chestX + 8, y2: chestY + 22, stroke: "#8b949e", strokeWidth: 1 }),
31503
31594
  /* @__PURE__ */ jsx("line", { x1: chestX - 14, y1: chestY + 34, x2: chestX + 2, y2: chestY + 34, stroke: "#0f3450", strokeWidth: 1.5 }),
31504
- /* @__PURE__ */ jsx("text", { x: chestX + 6, y: chestY + 37, fontSize: 8, fill: "#0f3450", fontFamily: "cursive", fontStyle: "italic", children: "\u2713" }),
31595
+ /* @__PURE__ */ jsx("text", { "data-cdl-counter-scaled": "0", x: chestX + 6, y: chestY + 37, fontSize: 8, fill: "#0f3450", fontFamily: "cursive", fontStyle: "italic", children: "\u2713" }),
31505
31596
  haloBadge(bx, by, `nt-halo-${node.id}`, "#c15a4a", /* @__PURE__ */ jsxs("g", { children: [
31506
31597
  /* @__PURE__ */ jsx("circle", { cx: 0, cy: 0, r: 12, fill: "#c15a4a", stroke: "none" }),
31507
31598
  /* @__PURE__ */ jsx("circle", { cx: 0, cy: 0, r: 8, fill: "none", stroke: "#ffffff", strokeWidth: 1.2 }),
31508
- /* @__PURE__ */ jsx("text", { x: 0, y: 4, fontFamily: "Georgia, serif", fontSize: 10, fontWeight: 700, fill: "#ffffff", textAnchor: "middle", children: "\u5370" })
31599
+ /* @__PURE__ */ jsx("text", { "data-cdl-counter-scaled": "0", x: 0, y: 4, fontFamily: "Georgia, serif", fontSize: 10, fontWeight: 700, fill: "#ffffff", textAnchor: "middle", children: "\u5370" })
31509
31600
  ] }))
31510
31601
  ] })),
31511
31602
  bottomLabel5(node, r.cx, r.label)
@@ -31564,7 +31655,7 @@ function ShapeCustomerServiceNode({ node, active }) {
31564
31655
  p.render,
31565
31656
  collarV(cx, cy, p.strokeColor),
31566
31657
  /* @__PURE__ */ jsx("rect", { x: chestX - 22, y: chestY + 5, width: 44, height: 22, rx: 11, fill: "#e5c07b", stroke: "#a67c00", strokeWidth: 2 }),
31567
- /* @__PURE__ */ jsx("text", { x: chestX, y: chestY + 20, fontSize: 12, fontWeight: 900, fill: "#5a3a10", textAnchor: "middle", letterSpacing: 2, children: "24H" }),
31658
+ /* @__PURE__ */ jsx("text", { "data-cdl-counter-scaled": "0", x: chestX, y: chestY + 20, fontSize: 12, fontWeight: 900, fill: "#5a3a10", textAnchor: "middle", letterSpacing: 2, children: "24H" }),
31568
31659
  haloBadge(bx, by, `cs-halo-${node.id}`, "#a67c00", /* @__PURE__ */ jsxs("g", { children: [
31569
31660
  /* @__PURE__ */ jsx("path", { d: "M -11 4 C -11 -10, -6 -12, 0 -12 C 6 -12, 11 -10, 11 4", fill: "none", stroke: "#a67c00", strokeWidth: 2.5, strokeLinecap: "round" }),
31570
31661
  /* @__PURE__ */ jsx("rect", { x: -13, y: 2, width: 6, height: 11, rx: 1.5, fill: "#e5c07b", stroke: "#a67c00", strokeWidth: 1.5 }),