@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/react.cjs CHANGED
@@ -399,8 +399,14 @@ var en = {
399
399
  "paymentProvider.sign": "PAY",
400
400
  /** `shape-payment-provider` の状態の札 */
401
401
  "paymentProvider.status": "PROCESSING",
402
- /** `shape-brokerage` の株価の帯 */
403
- "brokerage.ticker": "\u25B2NKY 38,240 \u25B2AAPL 194",
402
+ /**
403
+ * `shape-brokerage` の株価の帯。
404
+ *
405
+ * **1 銘柄に絞る** (#888)。 電光掲示板の内側は幅 136 しか無く、2 銘柄を指定 11 で描くと
406
+ * 幅 181 になってビルの外へ出る。 板が流れている雰囲気は帯そのもの (黒地に緑の等幅) が
407
+ * 担うので、銘柄を減らしても絵は変わらない。
408
+ */
409
+ "brokerage.ticker": "\u25B2NKY 38,240",
404
410
  /** `shape-brokerage` の看板 */
405
411
  "brokerage.sign": "$ SECURITIES",
406
412
  /** `shape-exchange` の看板 */
@@ -603,7 +609,7 @@ var ja = {
603
609
  "trustBank.sign": "\u4FE1\u8A17",
604
610
  "paymentProvider.sign": "\u6C7A\u6E08",
605
611
  "paymentProvider.status": "\u51E6\u7406\u4E2D",
606
- "brokerage.ticker": "\u25B2\u65E5\u7D4C 38,240 \u25B2\u6771\u8A3C 2,710",
612
+ "brokerage.ticker": "\u25B2\u65E5\u7D4C 38,240",
607
613
  "brokerage.sign": "\xA5 \u8A3C\u5238",
608
614
  "exchange.sign": "\u53D6\u5F15\u6240",
609
615
  "exchange.sub": "\u6E05\u7B97",
@@ -16203,9 +16209,9 @@ function ShapeKanbanCardNode({ node, active, lang }) {
16203
16209
  const ID\u5B57 = 11;
16204
16210
  const ID\u5B57\u9593 = 1;
16205
16211
  const PILL\u4E0A = 20;
16206
- const PILL\u5E45 = 54;
16212
+ const PILL\u5E45 = 70;
16207
16213
  const PILL\u9AD8 = 16;
16208
- const PILL\u5B57 = 9;
16214
+ const PILL\u5B57 = 11;
16209
16215
  const FOOTER\u4E0B = 22;
16210
16216
  const AVATAR\u4E2D\u5FC3Y = 4;
16211
16217
  const AVATAR\u534A\u5F84 = 9;
@@ -17338,7 +17344,7 @@ var SMART_CONTRACT_H = 220;
17338
17344
  var BLOCK_W = 240;
17339
17345
  var BLOCK_H = 220;
17340
17346
  var \u898B\u51FA\u3057\u306E\u5B57 = 13;
17341
- var \u540D\u306E\u5B57 = 10.5;
17347
+ var \u540D\u306E\u5B57 = 11;
17342
17348
  var \u5024\u306E\u5B57 = 11;
17343
17349
  var \u884C\u306E\u9593\u9694 = 22;
17344
17350
  var \u898B\u51FA\u3057\u306E\u5E2F = 32;
@@ -17352,6 +17358,15 @@ var CHAIN_BLOCK_H = 66;
17352
17358
  var CHAIN_LINK_W = 12;
17353
17359
  var CHAIN_SHADOW = 3;
17354
17360
  var CHAIN_BLOCK_SW = 2.5;
17361
+ var CHAIN_HEAD_H = 16;
17362
+ var CHAIN_TEXT_W = CHAIN_BLOCK_W - 8;
17363
+ var CHAIN_ROW_GAP = 14;
17364
+ var CHAIN_NO_SIZE = 11;
17365
+ var CONTRACT_CALL_SIZE = 11;
17366
+ var NFT_ID_SIZE = 15;
17367
+ var CHAIN_HASH_SIZE = 11;
17368
+ var BTC_NO_SIZE = 11;
17369
+ var ETH_NO_SIZE = 11;
17355
17370
  var NODE_HEX_R = 44;
17356
17371
  var NODE_PEER_R = 12;
17357
17372
  var NODE_PEER_GAP = 22;
@@ -17465,24 +17480,34 @@ function ShapeSmartContractNode({ node, active, lang }) {
17465
17480
  gearPts.push(`${gearCx + Math.cos(a3) * gearTipR},${gearCy + Math.sin(a3) * gearTipR}`);
17466
17481
  gearPts.push(`${gearCx + Math.cos(a4) * gearBodyR},${gearCy + Math.sin(a4) * gearBodyR}`);
17467
17482
  }
17468
- const art = /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
17469
- /* @__PURE__ */ jsxRuntime.jsx("path", { "data-cdl-role": "node-body", d: path, ...frame, strokeLinejoin: "round" }),
17470
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: foldPath, fill: "none", stroke: frame.stroke, strokeWidth: frame.strokeWidth, strokeLinejoin: "round" }),
17471
- [y + 40, y + 58, y + 76, y + 94].map((ly, i) => /* @__PURE__ */ jsxRuntime.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)),
17472
- /* @__PURE__ */ jsxRuntime.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") }),
17473
- /* @__PURE__ */ jsxRuntime.jsx(
17474
- "polygon",
17475
- {
17476
- points: gearPts.join(" "),
17477
- fill: "var(--cdl-tone-accent, #2d6a8f)",
17478
- stroke: frame.stroke,
17479
- strokeWidth: 1.2,
17480
- strokeLinejoin: "round",
17481
- children: /* @__PURE__ */ jsxRuntime.jsx("animateTransform", { attributeName: "transform", type: "rotate", from: `0 ${gearCx} ${gearCy}`, to: `360 ${gearCx} ${gearCy}`, dur: "8s", repeatCount: "indefinite" })
17482
- }
17483
- ),
17484
- /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: gearCx, cy: gearCy, r: gearBodyR * 0.4, fill: "var(--cdl-node-fill, #ffffff)", stroke: "none" })
17485
- ] });
17483
+ const \u6253\u3061\u6D88\u3059\u5B57\u3089 = [
17484
+ {
17485
+ text: \u5B57\u5F15("smartContract.call"),
17486
+ size: CONTRACT_CALL_SIZE,
17487
+ \u5E2F: { \u5E45: docW - 32, \u9AD8\u3055: 18 }
17488
+ }
17489
+ ];
17490
+ const art = (\u500D\u7387) => {
17491
+ const \u500D = \u6253\u3061\u6D88\u3057\u306E\u500D\u7387(\u500D\u7387, \u6253\u3061\u6D88\u3059\u5B57\u3089);
17492
+ return /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
17493
+ /* @__PURE__ */ jsxRuntime.jsx("path", { "data-cdl-role": "node-body", d: path, ...frame, strokeLinejoin: "round" }),
17494
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: foldPath, fill: "none", stroke: frame.stroke, strokeWidth: frame.strokeWidth, strokeLinejoin: "round" }),
17495
+ [y + 40, y + 58, y + 76, y + 94].map((ly, i) => /* @__PURE__ */ jsxRuntime.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)),
17496
+ /* @__PURE__ */ jsxRuntime.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") }),
17497
+ /* @__PURE__ */ jsxRuntime.jsx(
17498
+ "polygon",
17499
+ {
17500
+ points: gearPts.join(" "),
17501
+ fill: "var(--cdl-tone-accent, #2d6a8f)",
17502
+ stroke: frame.stroke,
17503
+ strokeWidth: 1.2,
17504
+ strokeLinejoin: "round",
17505
+ children: /* @__PURE__ */ jsxRuntime.jsx("animateTransform", { attributeName: "transform", type: "rotate", from: `0 ${gearCx} ${gearCy}`, to: `360 ${gearCx} ${gearCy}`, dur: "8s", repeatCount: "indefinite" })
17506
+ }
17507
+ ),
17508
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: gearCx, cy: gearCy, r: gearBodyR * 0.4, fill: "var(--cdl-node-fill, #ffffff)", stroke: "none" })
17509
+ ] });
17510
+ };
17486
17511
  return /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
17487
17512
  fitArt(r, smartContractExtent(frame.strokeWidth), art),
17488
17513
  bottomLabel2(node, r.cx, r.label)
@@ -17564,38 +17589,45 @@ function ShapeBlockchainNode({ node, active }) {
17564
17589
  const linkW = CHAIN_LINK_W;
17565
17590
  const totalW = blockCount * blockW + (blockCount - 1) * linkW;
17566
17591
  const startX = cx - totalW / 2;
17567
- const art = /* @__PURE__ */ jsxRuntime.jsx("g", { children: Array.from({ length: blockCount }, (_, i) => i).map((i) => {
17568
- const bx = startX + i * (blockW + linkW);
17569
- const isCurrent = i === blockCount - 1;
17570
- return /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
17571
- i > 0 && /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
17572
- /* @__PURE__ */ jsxRuntime.jsx("line", { x1: bx - linkW, y1: cy, x2: bx, y2: cy, stroke: frame.stroke, strokeWidth: 3, strokeLinecap: "round" }),
17573
- /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: bx - linkW / 2, cy, r: 2.5, fill: "var(--cdl-tone-accent, #2d6a8f)", stroke: "none", children: /* @__PURE__ */ jsxRuntime.jsx("animate", { attributeName: "opacity", values: "0.3;1;0.3", dur: `${1 + i * 0.2}s`, repeatCount: "indefinite" }) })
17574
- ] }),
17575
- /* @__PURE__ */ jsxRuntime.jsx("rect", { x: bx + 3, y: cy - blockH / 2 + 3, width: blockW, height: blockH, rx: 4, fill: frame.stroke, opacity: 0.18, stroke: "none" }),
17576
- /* @__PURE__ */ jsxRuntime.jsx(
17577
- "rect",
17578
- {
17579
- "data-cdl-role": i === 0 ? "node-body" : void 0,
17580
- x: bx,
17581
- y: cy - blockH / 2,
17582
- width: blockW,
17583
- height: blockH,
17584
- rx: 4,
17585
- fill: isCurrent ? "var(--cdl-tone-accent, #2d6a8f)" : "var(--cdl-node-fill, #ffffff)",
17586
- stroke: frame.stroke,
17587
- strokeWidth: isCurrent ? 2.5 : 1.5
17588
- }
17589
- ),
17590
- /* @__PURE__ */ jsxRuntime.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" }),
17591
- /* @__PURE__ */ jsxRuntime.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: [
17592
- "#",
17593
- 420 + i
17594
- ] }),
17595
- /* @__PURE__ */ jsxRuntime.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: "#" }),
17596
- /* @__PURE__ */ jsxRuntime.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" })
17597
- ] }, i);
17598
- }) });
17592
+ const \u6253\u3061\u6D88\u3059\u5B57\u3089 = [
17593
+ { text: "#420", size: CHAIN_NO_SIZE, \u5E2F: { \u5E45: CHAIN_TEXT_W, \u9AD8\u3055: CHAIN_HEAD_H } },
17594
+ { text: "0x\u2026", size: CHAIN_HASH_SIZE, \u5E2F: { \u5E45: CHAIN_TEXT_W, \u9AD8\u3055: CHAIN_ROW_GAP } }
17595
+ ];
17596
+ const art = (\u500D\u7387) => {
17597
+ const \u500D = \u6253\u3061\u6D88\u3057\u306E\u500D\u7387(\u500D\u7387, \u6253\u3061\u6D88\u3059\u5B57\u3089);
17598
+ return /* @__PURE__ */ jsxRuntime.jsx("g", { children: Array.from({ length: blockCount }, (_, i) => i).map((i) => {
17599
+ const bx = startX + i * (blockW + linkW);
17600
+ const isCurrent = i === blockCount - 1;
17601
+ return /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
17602
+ i > 0 && /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
17603
+ /* @__PURE__ */ jsxRuntime.jsx("line", { x1: bx - linkW, y1: cy, x2: bx, y2: cy, stroke: frame.stroke, strokeWidth: 3, strokeLinecap: "round" }),
17604
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: bx - linkW / 2, cy, r: 2.5, fill: "var(--cdl-tone-accent, #2d6a8f)", stroke: "none", children: /* @__PURE__ */ jsxRuntime.jsx("animate", { attributeName: "opacity", values: "0.3;1;0.3", dur: `${1 + i * 0.2}s`, repeatCount: "indefinite" }) })
17605
+ ] }),
17606
+ /* @__PURE__ */ jsxRuntime.jsx("rect", { x: bx + 3, y: cy - blockH / 2 + 3, width: blockW, height: blockH, rx: 4, fill: frame.stroke, opacity: 0.18, stroke: "none" }),
17607
+ /* @__PURE__ */ jsxRuntime.jsx(
17608
+ "rect",
17609
+ {
17610
+ "data-cdl-role": i === 0 ? "node-body" : void 0,
17611
+ x: bx,
17612
+ y: cy - blockH / 2,
17613
+ width: blockW,
17614
+ height: blockH,
17615
+ rx: 4,
17616
+ fill: isCurrent ? "var(--cdl-tone-accent, #2d6a8f)" : "var(--cdl-node-fill, #ffffff)",
17617
+ stroke: frame.stroke,
17618
+ strokeWidth: isCurrent ? 2.5 : 1.5
17619
+ }
17620
+ ),
17621
+ /* @__PURE__ */ jsxRuntime.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" }),
17622
+ /* @__PURE__ */ jsxRuntime.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: [
17623
+ "#",
17624
+ 420 + i
17625
+ ] }),
17626
+ /* @__PURE__ */ jsxRuntime.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: "#" }),
17627
+ /* @__PURE__ */ jsxRuntime.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" })
17628
+ ] }, i);
17629
+ }) });
17630
+ };
17599
17631
  return /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
17600
17632
  fitArt(r, chainExtent(), art),
17601
17633
  bottomLabel2(node, r.cx, r.label)
@@ -17613,33 +17645,39 @@ function ShapeBitcoinChainNode({ node, active }) {
17613
17645
  const linkW = CHAIN_LINK_W;
17614
17646
  const totalW = blockCount * blockW + (blockCount - 1) * linkW;
17615
17647
  const startX = cx - totalW / 2;
17616
- const art = /* @__PURE__ */ jsxRuntime.jsx("g", { children: Array.from({ length: blockCount }, (_, i) => i).map((i) => {
17617
- const bx = startX + i * (blockW + linkW);
17618
- const isCurrent = i === blockCount - 1;
17619
- return /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
17620
- i > 0 && /* @__PURE__ */ jsxRuntime.jsx("line", { x1: bx - linkW, y1: cy, x2: bx, y2: cy, stroke: btcOrange, strokeWidth: 3.5, strokeLinecap: "round" }),
17621
- /* @__PURE__ */ jsxRuntime.jsx("rect", { x: bx + 3, y: cy - blockH / 2 + 3, width: blockW, height: blockH, rx: 4, fill: frame.stroke, opacity: 0.18, stroke: "none" }),
17622
- /* @__PURE__ */ jsxRuntime.jsx(
17623
- "rect",
17624
- {
17625
- "data-cdl-role": i === 0 ? "node-body" : void 0,
17626
- x: bx,
17627
- y: cy - blockH / 2,
17628
- width: blockW,
17629
- height: blockH,
17630
- rx: 4,
17631
- fill: isCurrent ? btcOrange : "var(--cdl-node-fill, #ffffff)",
17632
- stroke: btcOrange,
17633
- strokeWidth: isCurrent ? 2.5 : 1.5
17634
- }
17635
- ),
17636
- /* @__PURE__ */ jsxRuntime.jsx("text", { x: bx + blockW / 2, y: cy - 4, fontSize: 30, fontWeight: 700, textAnchor: "middle", fill: isCurrent ? "#ffffff" : btcOrange, fontFamily: "Georgia, serif", children: "\u20BF" }),
17637
- /* @__PURE__ */ jsxRuntime.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: [
17638
- "#",
17639
- 820 + i
17640
- ] })
17641
- ] }, i);
17642
- }) });
17648
+ const \u6253\u3061\u6D88\u3059\u5B57\u3089 = [
17649
+ { text: "#820", size: BTC_NO_SIZE, \u5E2F: { \u5E45: CHAIN_TEXT_W, \u9AD8\u3055: 20 } }
17650
+ ];
17651
+ const art = (\u500D\u7387) => {
17652
+ const \u500D = \u6253\u3061\u6D88\u3057\u306E\u500D\u7387(\u500D\u7387, \u6253\u3061\u6D88\u3059\u5B57\u3089);
17653
+ return /* @__PURE__ */ jsxRuntime.jsx("g", { children: Array.from({ length: blockCount }, (_, i) => i).map((i) => {
17654
+ const bx = startX + i * (blockW + linkW);
17655
+ const isCurrent = i === blockCount - 1;
17656
+ return /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
17657
+ i > 0 && /* @__PURE__ */ jsxRuntime.jsx("line", { x1: bx - linkW, y1: cy, x2: bx, y2: cy, stroke: btcOrange, strokeWidth: 3.5, strokeLinecap: "round" }),
17658
+ /* @__PURE__ */ jsxRuntime.jsx("rect", { x: bx + 3, y: cy - blockH / 2 + 3, width: blockW, height: blockH, rx: 4, fill: frame.stroke, opacity: 0.18, stroke: "none" }),
17659
+ /* @__PURE__ */ jsxRuntime.jsx(
17660
+ "rect",
17661
+ {
17662
+ "data-cdl-role": i === 0 ? "node-body" : void 0,
17663
+ x: bx,
17664
+ y: cy - blockH / 2,
17665
+ width: blockW,
17666
+ height: blockH,
17667
+ rx: 4,
17668
+ fill: isCurrent ? btcOrange : "var(--cdl-node-fill, #ffffff)",
17669
+ stroke: btcOrange,
17670
+ strokeWidth: isCurrent ? 2.5 : 1.5
17671
+ }
17672
+ ),
17673
+ /* @__PURE__ */ jsxRuntime.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" }),
17674
+ /* @__PURE__ */ jsxRuntime.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: [
17675
+ "#",
17676
+ 820 + i
17677
+ ] })
17678
+ ] }, i);
17679
+ }) });
17680
+ };
17643
17681
  return /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
17644
17682
  fitArt(r, chainExtent(), art),
17645
17683
  bottomLabel2(node, r.cx, r.label)
@@ -17657,34 +17695,40 @@ function ShapeEthereumChainNode({ node, active }) {
17657
17695
  const linkW = CHAIN_LINK_W;
17658
17696
  const totalW = blockCount * blockW + (blockCount - 1) * linkW;
17659
17697
  const startX = cx - totalW / 2;
17660
- const art = /* @__PURE__ */ jsxRuntime.jsx("g", { children: Array.from({ length: blockCount }, (_, i) => i).map((i) => {
17661
- const bx = startX + i * (blockW + linkW);
17662
- const isCurrent = i === blockCount - 1;
17663
- const iconColors = isCurrent ? { light: "#ffffff", medium: "#e5e5f5", dark: "#c9c9e0", darker: "#a4a4c9", stroke: "#ffffff" } : { light: "#8a92b2", medium: "#62688f", dark: "#454a75", darker: "#3c3c3b", stroke: ethPurple };
17664
- return /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
17665
- i > 0 && /* @__PURE__ */ jsxRuntime.jsx("line", { x1: bx - linkW, y1: cy, x2: bx, y2: cy, stroke: ethPurple, strokeWidth: 3.5, strokeLinecap: "round" }),
17666
- /* @__PURE__ */ jsxRuntime.jsx("rect", { x: bx + 3, y: cy - blockH / 2 + 3, width: blockW, height: blockH, rx: 4, fill: frame.stroke, opacity: 0.18, stroke: "none" }),
17667
- /* @__PURE__ */ jsxRuntime.jsx(
17668
- "rect",
17669
- {
17670
- "data-cdl-role": i === 0 ? "node-body" : void 0,
17671
- x: bx,
17672
- y: cy - blockH / 2,
17673
- width: blockW,
17674
- height: blockH,
17675
- rx: 4,
17676
- fill: isCurrent ? ethPurple : "var(--cdl-node-fill, #ffffff)",
17677
- stroke: ethPurple,
17678
- strokeWidth: isCurrent ? 2.5 : 1.5
17679
- }
17680
- ),
17681
- /* @__PURE__ */ jsxRuntime.jsx(EthereumDiamond, { cx: bx + blockW / 2, cy: cy - 6, h: 16, colors: iconColors }),
17682
- /* @__PURE__ */ jsxRuntime.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: [
17683
- "#",
17684
- 21400 + i
17685
- ] })
17686
- ] }, i);
17687
- }) });
17698
+ const \u6253\u3061\u6D88\u3059\u5B57\u3089 = [
17699
+ { text: "#214", size: ETH_NO_SIZE, \u5E2F: { \u5E45: CHAIN_TEXT_W, \u9AD8\u3055: 20 } }
17700
+ ];
17701
+ const art = (\u500D\u7387) => {
17702
+ const \u500D = \u6253\u3061\u6D88\u3057\u306E\u500D\u7387(\u500D\u7387, \u6253\u3061\u6D88\u3059\u5B57\u3089);
17703
+ return /* @__PURE__ */ jsxRuntime.jsx("g", { children: Array.from({ length: blockCount }, (_, i) => i).map((i) => {
17704
+ const bx = startX + i * (blockW + linkW);
17705
+ const isCurrent = i === blockCount - 1;
17706
+ const iconColors = isCurrent ? { light: "#ffffff", medium: "#e5e5f5", dark: "#c9c9e0", darker: "#a4a4c9", stroke: "#ffffff" } : { light: "#8a92b2", medium: "#62688f", dark: "#454a75", darker: "#3c3c3b", stroke: ethPurple };
17707
+ return /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
17708
+ i > 0 && /* @__PURE__ */ jsxRuntime.jsx("line", { x1: bx - linkW, y1: cy, x2: bx, y2: cy, stroke: ethPurple, strokeWidth: 3.5, strokeLinecap: "round" }),
17709
+ /* @__PURE__ */ jsxRuntime.jsx("rect", { x: bx + 3, y: cy - blockH / 2 + 3, width: blockW, height: blockH, rx: 4, fill: frame.stroke, opacity: 0.18, stroke: "none" }),
17710
+ /* @__PURE__ */ jsxRuntime.jsx(
17711
+ "rect",
17712
+ {
17713
+ "data-cdl-role": i === 0 ? "node-body" : void 0,
17714
+ x: bx,
17715
+ y: cy - blockH / 2,
17716
+ width: blockW,
17717
+ height: blockH,
17718
+ rx: 4,
17719
+ fill: isCurrent ? ethPurple : "var(--cdl-node-fill, #ffffff)",
17720
+ stroke: ethPurple,
17721
+ strokeWidth: isCurrent ? 2.5 : 1.5
17722
+ }
17723
+ ),
17724
+ /* @__PURE__ */ jsxRuntime.jsx(EthereumDiamond, { cx: bx + blockW / 2, cy: cy - 6, h: 16, colors: iconColors }),
17725
+ /* @__PURE__ */ jsxRuntime.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: [
17726
+ "#",
17727
+ 214 + i
17728
+ ] })
17729
+ ] }, i);
17730
+ }) });
17731
+ };
17688
17732
  return /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
17689
17733
  fitArt(r, chainExtent(), art),
17690
17734
  bottomLabel2(node, r.cx, r.label)
@@ -17858,39 +17902,46 @@ function ShapeNftNode({ node, active }) {
17858
17902
  const artH = cardH * 0.72;
17859
17903
  const artCx = x + cardW / 2;
17860
17904
  const artCy = y + artH / 2;
17861
- const art = /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
17862
- /* @__PURE__ */ jsxRuntime.jsx("rect", { x: x + 4, y: y + 4, width: cardW, height: cardH, rx: 14, fill: frame.stroke, opacity: 0.2, stroke: "none" }),
17863
- /* @__PURE__ */ jsxRuntime.jsx("rect", { "data-cdl-role": "node-body", x, y, width: cardW, height: cardH, rx: 14, ...frame }),
17864
- /* @__PURE__ */ jsxRuntime.jsx(
17865
- "path",
17866
- {
17867
- 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`,
17868
- fill: "var(--cdl-tone-accent, #2d6a8f)",
17869
- fillOpacity: 0.15,
17870
- stroke: "none"
17871
- }
17872
- ),
17873
- /* @__PURE__ */ jsxRuntime.jsx(
17874
- "text",
17875
- {
17876
- x: artCx,
17877
- y: artCy + 24,
17878
- fontSize: 68,
17879
- fontWeight: 900,
17880
- letterSpacing: 4,
17881
- textAnchor: "middle",
17882
- fill: "var(--cdl-tone-accent, #2d6a8f)",
17883
- fontFamily: "Georgia, serif",
17884
- children: "NFT"
17885
- }
17886
- ),
17887
- /* @__PURE__ */ jsxRuntime.jsx("line", { x1: x, y1: y + artH, x2: x + cardW, y2: y + artH, stroke: frame.stroke, strokeWidth: 1, opacity: 0.5 }),
17888
- /* @__PURE__ */ jsxRuntime.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" }),
17889
- /* @__PURE__ */ jsxRuntime.jsxs("g", { transform: `translate(${x + cardW - 20}, ${y + artH + 22})`, children: [
17890
- /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: 0, cy: 0, r: 10, fill: "#27c93f", stroke: "#ffffff", strokeWidth: 2 }),
17891
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M -4 0 L -1 3 L 4 -3", fill: "none", stroke: "#ffffff", strokeWidth: 2.5, strokeLinecap: "round", strokeLinejoin: "round" })
17892
- ] })
17893
- ] });
17905
+ const \u6253\u3061\u6D88\u3059\u5B57\u3089 = [
17906
+ { text: "#1024", size: NFT_ID_SIZE, \u5E2F: { \u5E45: cardW - 16 - 34, \u9AD8\u3055: cardH - artH } }
17907
+ ];
17908
+ const art = (\u500D\u7387) => {
17909
+ const \u500D = \u6253\u3061\u6D88\u3057\u306E\u500D\u7387(\u500D\u7387, \u6253\u3061\u6D88\u3059\u5B57\u3089);
17910
+ return /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
17911
+ /* @__PURE__ */ jsxRuntime.jsx("rect", { x: x + 4, y: y + 4, width: cardW, height: cardH, rx: 14, fill: frame.stroke, opacity: 0.2, stroke: "none" }),
17912
+ /* @__PURE__ */ jsxRuntime.jsx("rect", { "data-cdl-role": "node-body", x, y, width: cardW, height: cardH, rx: 14, ...frame }),
17913
+ /* @__PURE__ */ jsxRuntime.jsx(
17914
+ "path",
17915
+ {
17916
+ 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`,
17917
+ fill: "var(--cdl-tone-accent, #2d6a8f)",
17918
+ fillOpacity: 0.15,
17919
+ stroke: "none"
17920
+ }
17921
+ ),
17922
+ /* @__PURE__ */ jsxRuntime.jsx(
17923
+ "text",
17924
+ {
17925
+ "data-cdl-counter-scaled": "0",
17926
+ x: artCx,
17927
+ y: artCy + 24,
17928
+ fontSize: 68,
17929
+ fontWeight: 900,
17930
+ letterSpacing: 4,
17931
+ textAnchor: "middle",
17932
+ fill: "var(--cdl-tone-accent, #2d6a8f)",
17933
+ fontFamily: "Georgia, serif",
17934
+ children: "NFT"
17935
+ }
17936
+ ),
17937
+ /* @__PURE__ */ jsxRuntime.jsx("line", { x1: x, y1: y + artH, x2: x + cardW, y2: y + artH, stroke: frame.stroke, strokeWidth: 1, opacity: 0.5 }),
17938
+ /* @__PURE__ */ jsxRuntime.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" }),
17939
+ /* @__PURE__ */ jsxRuntime.jsxs("g", { transform: `translate(${x + cardW - 20}, ${y + artH + 22})`, children: [
17940
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: 0, cy: 0, r: 10, fill: "#27c93f", stroke: "#ffffff", strokeWidth: 2 }),
17941
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M -4 0 L -1 3 L 4 -3", fill: "none", stroke: "#ffffff", strokeWidth: 2.5, strokeLinecap: "round", strokeLinejoin: "round" })
17942
+ ] })
17943
+ ] });
17944
+ };
17894
17945
  return /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
17895
17946
  fitArt(r, nftExtent(frame.strokeWidth), art),
17896
17947
  bottomLabel2(node, r.cx, r.label)
@@ -18019,7 +18070,7 @@ function ShapeBankNode({ node, active }) {
18019
18070
  }),
18020
18071
  /* @__PURE__ */ jsxRuntime.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" }),
18021
18072
  /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: r.cx, cy: y + pedimentH / 2 + 4, r: 14, fill: "var(--cdl-tone-accent, #2d6a8f)", stroke: frame.stroke, strokeWidth: 1.5 }),
18022
- /* @__PURE__ */ jsxRuntime.jsx("text", { x: r.cx, y: y + pedimentH / 2 + 10, fontSize: 18, fontWeight: 700, textAnchor: "middle", fill: "#ffffff", fontFamily: "Georgia, serif", children: "$" }),
18073
+ /* @__PURE__ */ jsxRuntime.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: "$" }),
18023
18074
  /* @__PURE__ */ jsxRuntime.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 }),
18024
18075
  Array.from({ length: nCols }, (_, i) => i).map((i) => {
18025
18076
  const colCx = x + 12 + colGap + i * (colW + colGap) + colW / 2;
@@ -18085,7 +18136,7 @@ function ShapeTrustBankNode({ node, active, lang }) {
18085
18136
  return /* @__PURE__ */ jsxRuntime.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);
18086
18137
  }),
18087
18138
  /* @__PURE__ */ jsxRuntime.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" }),
18088
- /* @__PURE__ */ jsxRuntime.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") }),
18139
+ /* @__PURE__ */ jsxRuntime.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") }),
18089
18140
  /* @__PURE__ */ jsxRuntime.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 }),
18090
18141
  Array.from({ length: nCols }, (_, i) => i).map((i) => {
18091
18142
  const colCx = x + 15 + colGap + i * (colW + colGap) + colW / 2;
@@ -18128,7 +18179,7 @@ function ShapePaymentProviderNode({ node, active, lang }) {
18128
18179
  /* @__PURE__ */ jsxRuntime.jsx("circle", { cx, cy: cy + 4, r: 10, fill: "#e5c07b", stroke: accentDarker, strokeWidth: 1.5 }),
18129
18180
  /* @__PURE__ */ jsxRuntime.jsx("text", { x: cx, y: cy + 9, fontSize: 13, fontWeight: 700, textAnchor: "middle", fill: accentDarker, fontFamily: "Georgia, serif", children: "$" })
18130
18181
  ] }),
18131
- /* @__PURE__ */ jsxRuntime.jsx("text", { x: cx, y: y + boxH - 16, fontSize: 9, fontWeight: 700, letterSpacing: 2, textAnchor: "middle", fill: "#a4b5f2", children: \u5B57\u5F15("paymentProvider.status") }),
18182
+ /* @__PURE__ */ jsxRuntime.jsx("text", { x: cx, y: y + boxH - 16, fontSize: 11, fontWeight: 700, letterSpacing: 2, textAnchor: "middle", fill: "#a4b5f2", children: \u5B57\u5F15("paymentProvider.status") }),
18132
18183
  bottomLabel3(node, r.cx, r.label)
18133
18184
  ] });
18134
18185
  }
@@ -18157,9 +18208,12 @@ function ShapeCreditCardNode({ node, active }) {
18157
18208
  bottomLabel3(node, r.cx, r.label)
18158
18209
  ] });
18159
18210
  }
18160
- var BROKERAGE_TICK_H = 12;
18211
+ var BROKERAGE_TICK_H = 18;
18161
18212
  var BROKERAGE_LOGO_H = 26;
18162
- var BROKERAGE_GRID_TOP = 62;
18213
+ var BROKERAGE_TICKER_SIZE = 11;
18214
+ var BROKERAGE_TICK_INNER_H = 14;
18215
+ var BROKERAGE_SIGN_SIZE = 12;
18216
+ var BROKERAGE_GRID_TOP = 68;
18163
18217
  var BROKERAGE_CELL_W = 14;
18164
18218
  var BROKERAGE_CELL_H = 18;
18165
18219
  var BROKERAGE_GAP_X = 8;
@@ -18207,35 +18261,47 @@ function ShapeBrokerageNode({ node, active, lang }) {
18207
18261
  );
18208
18262
  const gridStartX = x + (w - (cols * cellW + (cols - 1) * gapX)) / 2;
18209
18263
  const goldCells = /* @__PURE__ */ new Set([`0,1`, `0,4`, `1,2`, `2,3`, `3,5`]);
18210
- const \u7D75 = /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
18211
- /* @__PURE__ */ jsxRuntime.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" }),
18212
- /* @__PURE__ */ jsxRuntime.jsx("rect", { "data-cdl-role": "node-body", x, y, width: w, height: h, fill: "#255a7a", stroke: accentDarker, strokeWidth: frame.strokeWidth }),
18213
- /* @__PURE__ */ jsxRuntime.jsx("rect", { x: x - BROKERAGE_SHADE_OUT, y, width: BROKERAGE_SHADE_OUT * 2, height: h, fill: accentDarker }),
18214
- /* @__PURE__ */ jsxRuntime.jsx("rect", { x, y, width: w, height: BROKERAGE_TICK_H, fill: "#0f1830", stroke: "none" }),
18215
- /* @__PURE__ */ jsxRuntime.jsx("rect", { x: x + 2, y: y + 2, width: w - 4, height: 8, fill: "#1a2340", stroke: "none" }),
18216
- /* @__PURE__ */ jsxRuntime.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") }),
18217
- /* @__PURE__ */ jsxRuntime.jsx("rect", { x, y: y + BROKERAGE_TICK_H, width: w, height: BROKERAGE_LOGO_H, fill: "#e5c07b", stroke: "none" }),
18218
- /* @__PURE__ */ jsxRuntime.jsx("text", { x: cx, y: y + 30, fontSize: 12, fontWeight: 700, letterSpacing: 2.5, textAnchor: "middle", fill: "#0f1830", children: \u5B57\u5F15("brokerage.sign") }),
18219
- Array.from({ length: rows }).map(
18220
- (_, ri) => Array.from({ length: cols }).map((_2, ci) => {
18221
- const wx = gridStartX + ci * (cellW + gapX);
18222
- const wy = gridStartY + ri * (cellH + gapY);
18223
- const isGold = goldCells.has(`${ri},${ci}`);
18224
- return /* @__PURE__ */ jsxRuntime.jsx("rect", { x: wx, y: wy, width: cellW, height: cellH, fill: isGold ? "#e5c07b" : accentDarker }, `w${ri}${ci}`);
18225
- })
18226
- ),
18227
- /* @__PURE__ */ jsxRuntime.jsx("rect", { x, y: y + h - BROKERAGE_BASE_H, width: w, height: 12, fill: accentDarker }),
18228
- /* @__PURE__ */ jsxRuntime.jsx("circle", { cx, cy: y + h - 8, r: 12, fill: "#a89d8f", stroke: accentDarker, strokeWidth: 1.5 }),
18229
- /* @__PURE__ */ jsxRuntime.jsx("circle", { cx, cy: y + h - 8, r: 9, fill: "#8b949e", stroke: accentDarker, strokeWidth: 1 }),
18230
- /* @__PURE__ */ jsxRuntime.jsx("line", { x1: cx - 9, y1: y + h - 8, x2: cx + 9, y2: y + h - 8, stroke: accentDarker, strokeWidth: 0.8 }),
18231
- /* @__PURE__ */ jsxRuntime.jsx("line", { x1: cx, y1: y + h - 17, x2: cx, y2: y + h - 1, stroke: accentDarker, strokeWidth: 0.8 }),
18232
- /* @__PURE__ */ jsxRuntime.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" })
18233
- ] });
18264
+ const \u6253\u3061\u6D88\u3059\u5B57\u3089 = [
18265
+ {
18266
+ text: \u5B57\u5F15("brokerage.ticker"),
18267
+ size: BROKERAGE_TICKER_SIZE,
18268
+ \u5E2F: { \u5E45: w - 4, \u9AD8\u3055: BROKERAGE_TICK_INNER_H }
18269
+ }
18270
+ ];
18271
+ const \u7D75 = (\u500D\u7387) => {
18272
+ const \u500D = \u6253\u3061\u6D88\u3057\u306E\u500D\u7387(\u500D\u7387, \u6253\u3061\u6D88\u3059\u5B57\u3089);
18273
+ return /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
18274
+ /* @__PURE__ */ jsxRuntime.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" }),
18275
+ /* @__PURE__ */ jsxRuntime.jsx("rect", { "data-cdl-role": "node-body", x, y, width: w, height: h, fill: "#255a7a", stroke: accentDarker, strokeWidth: frame.strokeWidth }),
18276
+ /* @__PURE__ */ jsxRuntime.jsx("rect", { x: x - BROKERAGE_SHADE_OUT, y, width: BROKERAGE_SHADE_OUT * 2, height: h, fill: accentDarker }),
18277
+ /* @__PURE__ */ jsxRuntime.jsx("rect", { x, y, width: w, height: BROKERAGE_TICK_H, fill: "#0f1830", stroke: "none" }),
18278
+ /* @__PURE__ */ jsxRuntime.jsx("rect", { x: x + 2, y: y + 2, width: w - 4, height: BROKERAGE_TICK_INNER_H, fill: "#1a2340", stroke: "none" }),
18279
+ /* @__PURE__ */ jsxRuntime.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") }),
18280
+ /* @__PURE__ */ jsxRuntime.jsx("rect", { x, y: y + BROKERAGE_TICK_H, width: w, height: BROKERAGE_LOGO_H, fill: "#e5c07b", stroke: "none" }),
18281
+ /* @__PURE__ */ jsxRuntime.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") }),
18282
+ Array.from({ length: rows }).map(
18283
+ (_, ri) => Array.from({ length: cols }).map((_2, ci) => {
18284
+ const wx = gridStartX + ci * (cellW + gapX);
18285
+ const wy = gridStartY + ri * (cellH + gapY);
18286
+ const isGold = goldCells.has(`${ri},${ci}`);
18287
+ return /* @__PURE__ */ jsxRuntime.jsx("rect", { x: wx, y: wy, width: cellW, height: cellH, fill: isGold ? "#e5c07b" : accentDarker }, `w${ri}${ci}`);
18288
+ })
18289
+ ),
18290
+ /* @__PURE__ */ jsxRuntime.jsx("rect", { x, y: y + h - BROKERAGE_BASE_H, width: w, height: 12, fill: accentDarker }),
18291
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx, cy: y + h - 8, r: 12, fill: "#a89d8f", stroke: accentDarker, strokeWidth: 1.5 }),
18292
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx, cy: y + h - 8, r: 9, fill: "#8b949e", stroke: accentDarker, strokeWidth: 1 }),
18293
+ /* @__PURE__ */ jsxRuntime.jsx("line", { x1: cx - 9, y1: y + h - 8, x2: cx + 9, y2: y + h - 8, stroke: accentDarker, strokeWidth: 0.8 }),
18294
+ /* @__PURE__ */ jsxRuntime.jsx("line", { x1: cx, y1: y + h - 17, x2: cx, y2: y + h - 1, stroke: accentDarker, strokeWidth: 0.8 }),
18295
+ /* @__PURE__ */ jsxRuntime.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" })
18296
+ ] });
18297
+ };
18234
18298
  return /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
18235
18299
  fitArt(r, \u5E83\u304C\u308A, \u7D75),
18236
18300
  bottomLabel3(node, r.cx, r.label)
18237
18301
  ] });
18238
18302
  }
18303
+ var EXCHANGE_SUB_SIZE = 11;
18304
+ var EXCHANGE_HEX_R = 52;
18239
18305
  function ShapeExchangeNode({ node, active, lang }) {
18240
18306
  const \u5B57\u5F15 = \u5B57\u5F15\u304D\u3092\u4F5C\u308B(lang);
18241
18307
  const frame = commonFrame5(active);
@@ -18255,7 +18321,8 @@ function ShapeExchangeNode({ node, active, lang }) {
18255
18321
  idx: i
18256
18322
  };
18257
18323
  });
18258
- const hexR = 45;
18324
+ const hexR = EXCHANGE_HEX_R;
18325
+ const \u516D\u89D2\u306E\u6A2A\u5E45 = (d) => hexR * Math.sqrt(3) * Math.min(1, Math.max(0, (hexR - Math.abs(d)) / (hexR / 2)));
18259
18326
  const hexPoints = [-90, -30, 30, 90, 150, 210].map((deg) => {
18260
18327
  const rad = deg * Math.PI / 180;
18261
18328
  return { x: cx + Math.cos(rad) * hexR, y: cy + Math.sin(rad) * hexR };
@@ -18263,7 +18330,7 @@ function ShapeExchangeNode({ node, active, lang }) {
18263
18330
  const hexPath = hexPoints.map((p, i) => `${i === 0 ? "M" : "L"} ${p.x} ${p.y}`).join(" ") + " Z";
18264
18331
  const \u7BC0\u70B9 = Math.max(0, nodeR) + 8 + 1.5 / 2;
18265
18332
  const \u516D\u89D2 = hexR + frame.strokeWidth / 2;
18266
- const \u5B57\u4E0B = 26 + 8 * 0.25;
18333
+ const \u5B57\u4E0B = 28 + EXCHANGE_SUB_SIZE * 0.25;
18267
18334
  const \u5916 = Math.max(\u7BC0\u70B9, \u516D\u89D2);
18268
18335
  const \u305A\u308C = cy - r.cy;
18269
18336
  const \u5E83\u304C\u308A = {
@@ -18272,21 +18339,31 @@ function ShapeExchangeNode({ node, active, lang }) {
18272
18339
  \u5DE6: \u5916,
18273
18340
  \u53F3: \u5916
18274
18341
  };
18275
- const \u7D75 = /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
18276
- nodes.map((n, i) => /* @__PURE__ */ jsxRuntime.jsx("line", { x1: cx, y1: cy, x2: n.cx, y2: n.cy, stroke: accentDarker, strokeWidth: 1.5, strokeDasharray: "3 2" }, `l${i}`)),
18277
- nodes.map((n, i) => {
18278
- const isGreen = i % 2 === 0;
18279
- return /* @__PURE__ */ jsxRuntime.jsxs("circle", { r: 4, fill: isGreen ? "#4ea36a" : "#c15a4a", stroke: "none", children: [
18280
- /* @__PURE__ */ jsxRuntime.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` }),
18281
- /* @__PURE__ */ jsxRuntime.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` })
18282
- ] }, `d${i}`);
18283
- }),
18284
- /* @__PURE__ */ jsxRuntime.jsx("path", { d: hexPath, fill: "#255a7a", stroke: accentDarker, strokeWidth: frame.strokeWidth, strokeLinejoin: "round" }),
18285
- /* @__PURE__ */ jsxRuntime.jsx("text", { x: cx, y: cy - 8, fontSize: 10, fontWeight: 700, letterSpacing: 2, textAnchor: "middle", fill: "#e5c07b", children: \u5B57\u5F15("exchange.sign") }),
18286
- /* @__PURE__ */ jsxRuntime.jsx("text", { "data-cdl-role": "node-body", x: cx, y: cy + 12, fontSize: 22, fontWeight: 700, textAnchor: "middle", fill: "#e5c07b", children: "\u21C4" }),
18287
- /* @__PURE__ */ jsxRuntime.jsx("text", { x: cx, y: cy + 26, fontSize: 8, fontWeight: 700, textAnchor: "middle", fill: "#a4b5f2", children: \u5B57\u5F15("exchange.sub") }),
18288
- nodes.map((n, i) => /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: n.cx, cy: n.cy, r: 8, fill: n.fill, stroke: accentDarker, strokeWidth: 1.5 }, `n${i}`))
18289
- ] });
18342
+ const \u6253\u3061\u6D88\u3059\u5B57\u3089 = [
18343
+ {
18344
+ text: \u5B57\u5F15("exchange.sub"),
18345
+ size: EXCHANGE_SUB_SIZE,
18346
+ \u5E2F: { \u5E45: \u516D\u89D2\u306E\u6A2A\u5E45(\u5B57\u4E0B), \u9AD8\u3055: 14 }
18347
+ }
18348
+ ];
18349
+ const \u7D75 = (\u500D\u7387) => {
18350
+ const \u500D = \u6253\u3061\u6D88\u3057\u306E\u500D\u7387(\u500D\u7387, \u6253\u3061\u6D88\u3059\u5B57\u3089);
18351
+ return /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
18352
+ nodes.map((n, i) => /* @__PURE__ */ jsxRuntime.jsx("line", { x1: cx, y1: cy, x2: n.cx, y2: n.cy, stroke: accentDarker, strokeWidth: 1.5, strokeDasharray: "3 2" }, `l${i}`)),
18353
+ nodes.map((n, i) => {
18354
+ const isGreen = i % 2 === 0;
18355
+ return /* @__PURE__ */ jsxRuntime.jsxs("circle", { r: 4, fill: isGreen ? "#4ea36a" : "#c15a4a", stroke: "none", children: [
18356
+ /* @__PURE__ */ jsxRuntime.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` }),
18357
+ /* @__PURE__ */ jsxRuntime.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` })
18358
+ ] }, `d${i}`);
18359
+ }),
18360
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: hexPath, fill: "#255a7a", stroke: accentDarker, strokeWidth: frame.strokeWidth, strokeLinejoin: "round" }),
18361
+ /* @__PURE__ */ jsxRuntime.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") }),
18362
+ /* @__PURE__ */ jsxRuntime.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" }),
18363
+ /* @__PURE__ */ jsxRuntime.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") }),
18364
+ nodes.map((n, i) => /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: n.cx, cy: n.cy, r: 8, fill: n.fill, stroke: accentDarker, strokeWidth: 1.5 }, `n${i}`))
18365
+ ] });
18366
+ };
18290
18367
  return /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
18291
18368
  fitArt(r, \u5E83\u304C\u308A, \u7D75),
18292
18369
  bottomLabel3(node, r.cx, r.label)
@@ -18301,10 +18378,10 @@ var ATM_SHADOW_RX_RATIO = 0.6;
18301
18378
  var ATM_FLOOR_UP = 6;
18302
18379
  var ATM_FLOOR_H = 10;
18303
18380
  var ATM_FLOOR_RESERVE = 12;
18304
- var ATM_PANEL_W = 140;
18381
+ var ATM_PANEL_W = 152;
18305
18382
  var ATM_PANEL_H = 146;
18306
18383
  var ATM_W_MIN = 100;
18307
- var ATM_W_MAX = 140;
18384
+ var ATM_W_MAX = ATM_PANEL_W;
18308
18385
  var ATM_H_MIN = ATM_SIGN_H + ATM_SIGN_GAP + 30 + ATM_FLOOR_RESERVE;
18309
18386
  function ShapeAtmNode({ node, active, lang }) {
18310
18387
  const \u5B57\u5F15 = \u5B57\u5F15\u304D\u3092\u4F5C\u308B(lang);
@@ -18341,13 +18418,13 @@ function ShapeAtmNode({ node, active, lang }) {
18341
18418
  const \u7D75 = /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
18342
18419
  /* @__PURE__ */ jsxRuntime.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" }),
18343
18420
  /* @__PURE__ */ jsxRuntime.jsx("rect", { x: centerX - totalW / 2, y: signY, width: totalW, height: signH, fill: accentDarker, stroke: "#000", strokeWidth: ATM_SIGN_SW }),
18344
- /* @__PURE__ */ jsxRuntime.jsx("text", { x: centerX, y: signY + 17, fontSize: 11, fontWeight: 700, letterSpacing: 2, textAnchor: "middle", fill: "#e5c07b", children: \u5B57\u5F15("atm.sign") }),
18421
+ /* @__PURE__ */ jsxRuntime.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") }),
18345
18422
  /* @__PURE__ */ jsxRuntime.jsx("rect", { "data-cdl-role": "node-body", x: atmX, y: atmY, width: atmW, height: atmH, rx: 6, fill: "#255a7a", stroke: accentDarker, strokeWidth: frame.strokeWidth }),
18346
18423
  /* @__PURE__ */ jsxRuntime.jsxs("g", { transform: `translate(${centerX} ${atmY}) scale(${\u9762})`, children: [
18347
18424
  /* @__PURE__ */ jsxRuntime.jsx("rect", { x: \u9762\u5DE6 + 8, y: 10, width: ATM_PANEL_W - 16, height: 52, rx: 3, fill: "#0f1830", stroke: "#000", strokeWidth: 1.5 }),
18348
- /* @__PURE__ */ jsxRuntime.jsx("text", { x: 0, y: 30, fontSize: 10, fontWeight: 700, letterSpacing: 1, textAnchor: "middle", fill: "#e5c07b", children: "\u304A\u5F15\u51FA\u3057" }),
18349
- /* @__PURE__ */ jsxRuntime.jsx("text", { x: 0, y: 44, fontSize: 8, fontWeight: 700, textAnchor: "middle", fill: "#a4b5f2", children: \u5B57\u5F15("atm.screen") }),
18350
- /* @__PURE__ */ jsxRuntime.jsx("text", { x: 0, y: 56, fontSize: 10, fontWeight: 700, textAnchor: "middle", fill: "#4ea36a", children: "\xA5 20,000" }),
18425
+ /* @__PURE__ */ jsxRuntime.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" }),
18426
+ /* @__PURE__ */ jsxRuntime.jsx("text", { "data-cdl-counter-scaled": "0", x: 0, y: 42, fontSize: 11, fontWeight: 700, textAnchor: "middle", fill: "#a4b5f2", children: \u5B57\u5F15("atm.screen") }),
18427
+ /* @__PURE__ */ jsxRuntime.jsx("text", { "data-cdl-counter-scaled": "0", x: 0, y: 56, fontSize: 11, fontWeight: 700, textAnchor: "middle", fill: "#4ea36a", children: "\xA5 20,000" }),
18351
18428
  /* @__PURE__ */ jsxRuntime.jsx("rect", { x: \u9762\u5DE6 + 8, y: 68, width: ATM_PANEL_W - 16, height: 42, rx: 2, fill: "#8b949e", stroke: "#5a6270", strokeWidth: 1 }),
18352
18429
  (() => {
18353
18430
  const keys = [
@@ -18365,7 +18442,7 @@ function ShapeAtmNode({ node, active, lang }) {
18365
18442
  const keyW = 18;
18366
18443
  const keyH = 10;
18367
18444
  const keyGap = 4;
18368
- const startX = \u9762\u5DE6 + 14;
18445
+ const startX = \u9762\u5DE6 + (ATM_PANEL_W - (5 * keyW + 4 * keyGap)) / 2;
18369
18446
  return keys.map((k, i) => {
18370
18447
  const row = Math.floor(i / 5);
18371
18448
  const col = i % 5;
@@ -18373,7 +18450,7 @@ function ShapeAtmNode({ node, active, lang }) {
18373
18450
  const ky = 74 + row * (keyH + 2);
18374
18451
  return /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
18375
18452
  /* @__PURE__ */ jsxRuntime.jsx("rect", { x: kx, y: ky, width: keyW, height: keyH, fill: k[1], stroke: "#0f1830", strokeWidth: 0.8 }),
18376
- /* @__PURE__ */ jsxRuntime.jsx("text", { x: kx + keyW / 2, y: ky + 7, fontSize: (
18453
+ /* @__PURE__ */ jsxRuntime.jsx("text", { "data-cdl-counter-scaled": "0", x: kx + keyW / 2, y: ky + 7, fontSize: (
18377
18454
  /* 決める鍵 (末尾) は 2 字あるので小さく描く。 字は言語で変わるため位置で見分ける */
18378
18455
  i === keys.length - 1 ? 6 : 7
18379
18456
  ), fontWeight: 700, textAnchor: "middle", fill: "#ffffff", children: k[0] })
@@ -18382,7 +18459,7 @@ function ShapeAtmNode({ node, active, lang }) {
18382
18459
  })(),
18383
18460
  /* @__PURE__ */ jsxRuntime.jsx("rect", { x: \u9762\u5DE6 + 12, y: 116, width: ATM_PANEL_W - 24, height: 8, rx: 1.5, fill: "#0f1830", stroke: accentDarker, strokeWidth: 1 }),
18384
18461
  /* @__PURE__ */ jsxRuntime.jsx("rect", { x: \u9762\u5DE6 + 15, y: 118, width: ATM_PANEL_W - 30, height: 4, rx: 0.5, fill: "#e5c07b" }),
18385
- /* @__PURE__ */ jsxRuntime.jsx("text", { x: 0, y: 132, fontSize: 6, fontWeight: 700, letterSpacing: 1, textAnchor: "middle", fill: "#e5c07b", children: \u5B57\u5F15("atm.cardSlot") }),
18462
+ /* @__PURE__ */ jsxRuntime.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") }),
18386
18463
  /* @__PURE__ */ jsxRuntime.jsx("rect", { x: \u9762\u5DE6 + 12, y: 136, width: ATM_PANEL_W - 24, height: 4, rx: 1, fill: "#0f1830" })
18387
18464
  ] }),
18388
18465
  /* @__PURE__ */ jsxRuntime.jsx("rect", { x: centerX - totalW / 2, y: floorY, width: totalW, height: 6, fill: "#8b949e", stroke: "none" }),
@@ -18491,6 +18568,7 @@ function ShapeStorefrontNode({ node, active, lang }) {
18491
18568
  const doorH = facadeH - 30;
18492
18569
  const doorX = x + bw - doorW - 12;
18493
18570
  const doorY = facadeY + 20;
18571
+ const \u672D\u5E45 = Math.min(doorW - 6, 50);
18494
18572
  return /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
18495
18573
  /* @__PURE__ */ jsxRuntime.jsx("ellipse", { cx, cy: y + bh + 8, rx: bw * 0.5, ry: 5, fill: frame.stroke, opacity: 0.2, stroke: "none" }),
18496
18574
  /* @__PURE__ */ jsxRuntime.jsx("rect", { x, y, width: bw, height: signH, fill: accent, stroke: accentDark, strokeWidth: 2 }),
@@ -18507,8 +18585,8 @@ function ShapeStorefrontNode({ node, active, lang }) {
18507
18585
  /* @__PURE__ */ jsxRuntime.jsx("rect", { x: doorX + 4, y: doorY + 4, width: doorW - 8, height: doorH - 8, fill: "#8b949e", stroke: accentDarker, strokeWidth: 1.5 }),
18508
18586
  /* @__PURE__ */ jsxRuntime.jsx("line", { x1: doorX + 4, y1: doorY + doorH * 0.38, x2: doorX + doorW - 4, y2: doorY + doorH * 0.38, stroke: accentDarker, strokeWidth: 1 }),
18509
18587
  /* @__PURE__ */ jsxRuntime.jsx("line", { x1: doorX + 4, y1: doorY + doorH * 0.72, x2: doorX + doorW - 4, y2: doorY + doorH * 0.72, stroke: accentDarker, strokeWidth: 1 }),
18510
- /* @__PURE__ */ jsxRuntime.jsx("rect", { x: doorX + doorW / 2 - 20, y: doorY + doorH * 0.85, width: 40, height: 12, fill: "#e5c07b", stroke: "#a67c00", strokeWidth: 1.5 }),
18511
- /* @__PURE__ */ jsxRuntime.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") }),
18588
+ /* @__PURE__ */ jsxRuntime.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 }),
18589
+ /* @__PURE__ */ jsxRuntime.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") }),
18512
18590
  /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: doorX + 6, cy: doorY + doorH * 0.55, r: 1.5, fill: "#c15a4a" }),
18513
18591
  /* @__PURE__ */ jsxRuntime.jsx("rect", { x: x - 6, y: y + bh - 6, width: bw + 12, height: 8, fill: "#5a6270", stroke: "none" }),
18514
18592
  bottomLabel4(node, r.cx, r.label)
@@ -18555,7 +18633,7 @@ function ShapeWarehouseNode({ node, active, lang }) {
18555
18633
  /* @__PURE__ */ jsxRuntime.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" }),
18556
18634
  /* @__PURE__ */ jsxRuntime.jsx("rect", { "data-cdl-role": "node-body", x, y: y + roofH, width: bw, height: bh - roofH - 12, fill: "#a89d8f", stroke: "#5a6270", strokeWidth: frame.strokeWidth }),
18557
18635
  /* @__PURE__ */ jsxRuntime.jsx("rect", { x, y: y + roofH, width: bw, height: signH, fill: "#c15a4a", stroke: "#8b3f2f", strokeWidth: 1.5 }),
18558
- /* @__PURE__ */ jsxRuntime.jsx("text", { x: cx, y: y + roofH + 17, fontSize: 12, fontWeight: 900, letterSpacing: 6, textAnchor: "middle", fill: "#ffffff", children: \u5B57\u5F15("warehouse.sign") }),
18636
+ /* @__PURE__ */ jsxRuntime.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") }),
18559
18637
  /* @__PURE__ */ jsxRuntime.jsx("rect", { x: shutterX, y: shutterY, width: shutterW, height: shutterH, fill: "#8b949e", stroke: accentDarker, strokeWidth: 2 }),
18560
18638
  /* @__PURE__ */ jsxRuntime.jsx("rect", { x: shutterX, y: shutterY, width: shutterW, height: 5, fill: "#5a6270", stroke: "none" }),
18561
18639
  Array.from({ length: 10 }, (_, i) => i).map((i) => /* @__PURE__ */ jsxRuntime.jsx(
@@ -18710,6 +18788,10 @@ var API_ROW_PITCH_MIN = 30;
18710
18788
  var API_ROW_BOTTOM_PAD = 12;
18711
18789
  var API_ROWS = 3;
18712
18790
  var API_H_MIN = API_ROW_TOP + (API_ROWS - 1) * API_ROW_PITCH_MIN + API_ROW_H + API_ROW_BOTTOM_PAD;
18791
+ var API_PATH_SIZE = 12;
18792
+ var API_SIGN_SIZE = 14;
18793
+ var API_METHOD_BOX_W = 54;
18794
+ var API_METHOD_TEXT_W = 48;
18713
18795
  var API_W_MIN = 200;
18714
18796
  var API_W_MAX = 300;
18715
18797
  function ShapeApiGatewayNode({ node, active, lang }) {
@@ -18724,28 +18806,37 @@ function ShapeApiGatewayNode({ node, active, lang }) {
18724
18806
  const x = cx - bw / 2;
18725
18807
  const y = r.cy - \u7E26 / 2 + \u4F59\u767D;
18726
18808
  const \u5E83\u304C\u308A = { \u4E0A: \u7E26 / 2, \u4E0B: \u7E26 / 2, \u5DE6: bw / 2 + \u4F59\u767D, \u53F3: bw / 2 + \u4F59\u767D };
18727
- const \u7A2E\u985E\u306E\u5B57 = (s) => Math.min(11, 11 * 48 / Math.max(displayWidth(s) * 11 * MONO_ADVANCE_RATIO, textWidth(s, 11)));
18809
+ 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)));
18728
18810
  const rowPitch = Math.max(
18729
18811
  API_ROW_PITCH_MIN,
18730
18812
  (bh - API_ROW_TOP - API_ROW_H - API_ROW_BOTTOM_PAD) / (API_ROWS - 1)
18731
18813
  );
18732
- const \u7D75 = /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
18733
- /* @__PURE__ */ jsxRuntime.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" }),
18734
- /* @__PURE__ */ jsxRuntime.jsx("rect", { "data-cdl-role": "node-body", x, y, width: bw, height: bh, rx: 10, fill: "#1a2332", stroke: frame.stroke, strokeWidth: frame.strokeWidth }),
18735
- /* @__PURE__ */ jsxRuntime.jsx("rect", { x, y, width: bw, height: 36, rx: 10, fill: "var(--cdl-tone-accent, #2d6a8f)", stroke: "none" }),
18736
- /* @__PURE__ */ jsxRuntime.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") }),
18737
- [
18738
- { method: "GET", path: \u5B57\u5F15("apiGateway.users"), color: "#27c93f" },
18739
- { method: "POST", path: \u5B57\u5F15("apiGateway.orders"), color: "#e5c07b" },
18740
- { method: \u5B57\u5F15("apiGateway.delete"), path: \u5B57\u5F15("apiGateway.session"), color: "#c9302c" }
18741
- ].map((e, i) => /* @__PURE__ */ jsxRuntime.jsxs("g", { transform: `translate(${x + 16}, ${y + API_ROW_TOP + i * rowPitch})`, children: [
18742
- /* @__PURE__ */ jsxRuntime.jsx("rect", { x: 0, y: 0, width: bw - 32, height: API_ROW_H, rx: 4, fill: "#0f1419", stroke: "none" }),
18743
- /* @__PURE__ */ jsxRuntime.jsx("rect", { x: 0, y: 0, width: 54, height: API_ROW_H, rx: 4, fill: e.color, stroke: "none" }),
18744
- /* @__PURE__ */ jsxRuntime.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 }),
18745
- /* @__PURE__ */ jsxRuntime.jsx("text", { x: 64, y: 16, fontSize: 12, fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace", fill: "#e6edf3", children: e.path }),
18746
- /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: bw - 44, cy: 12, r: 4, fill: "#27c93f", stroke: "none", children: /* @__PURE__ */ jsxRuntime.jsx("animate", { attributeName: "opacity", values: "0.4;1;0.4", dur: `${1.2 + i * 0.3}s`, repeatCount: "indefinite" }) })
18747
- ] }, i))
18748
- ] });
18814
+ const \u884C\u3089 = [
18815
+ { method: "GET", path: \u5B57\u5F15("apiGateway.users"), color: "#27c93f" },
18816
+ { method: "POST", path: \u5B57\u5F15("apiGateway.orders"), color: "#e5c07b" },
18817
+ { method: \u5B57\u5F15("apiGateway.delete"), path: \u5B57\u5F15("apiGateway.session"), color: "#c9302c" }
18818
+ ];
18819
+ const \u6253\u3061\u6D88\u3059\u5B57\u3089 = \u884C\u3089.map((e) => ({
18820
+ text: e.path,
18821
+ size: API_PATH_SIZE,
18822
+ \u5E2F: { \u5E45: bw - 32 - 64 - 16, \u9AD8\u3055: API_ROW_H }
18823
+ }));
18824
+ const \u7D75 = (\u500D\u7387) => {
18825
+ const \u500D = \u6253\u3061\u6D88\u3057\u306E\u500D\u7387(\u500D\u7387, \u6253\u3061\u6D88\u3059\u5B57\u3089);
18826
+ return /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
18827
+ /* @__PURE__ */ jsxRuntime.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" }),
18828
+ /* @__PURE__ */ jsxRuntime.jsx("rect", { "data-cdl-role": "node-body", x, y, width: bw, height: bh, rx: 10, fill: "#1a2332", stroke: frame.stroke, strokeWidth: frame.strokeWidth }),
18829
+ /* @__PURE__ */ jsxRuntime.jsx("rect", { x, y, width: bw, height: 36, rx: 10, fill: "var(--cdl-tone-accent, #2d6a8f)", stroke: "none" }),
18830
+ /* @__PURE__ */ jsxRuntime.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") }),
18831
+ \u884C\u3089.map((e, i) => /* @__PURE__ */ jsxRuntime.jsxs("g", { transform: `translate(${x + 16}, ${y + API_ROW_TOP + i * rowPitch})`, children: [
18832
+ /* @__PURE__ */ jsxRuntime.jsx("rect", { x: 0, y: 0, width: bw - 32, height: API_ROW_H, rx: 4, fill: "#0f1419", stroke: "none" }),
18833
+ /* @__PURE__ */ jsxRuntime.jsx("rect", { x: 0, y: 0, width: API_METHOD_BOX_W, height: API_ROW_H, rx: 4, fill: e.color, stroke: "none" }),
18834
+ /* @__PURE__ */ jsxRuntime.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 }),
18835
+ /* @__PURE__ */ jsxRuntime.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 }),
18836
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: bw - 44, cy: 12, r: 4, fill: "#27c93f", stroke: "none", children: /* @__PURE__ */ jsxRuntime.jsx("animate", { attributeName: "opacity", values: "0.4;1;0.4", dur: `${1.2 + i * 0.3}s`, repeatCount: "indefinite" }) })
18837
+ ] }, i))
18838
+ ] });
18839
+ };
18749
18840
  return /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
18750
18841
  fitArt(r, \u5E83\u304C\u308A, \u7D75),
18751
18842
  bottomLabel4(node, r.cx, r.label)
@@ -18965,11 +19056,11 @@ function ShapeNotaryNode({ node, active }) {
18965
19056
  /* @__PURE__ */ jsxRuntime.jsx("line", { x1: chestX - 14, y1: chestY + 14, x2: chestX + 14, y2: chestY + 14, stroke: "#8b949e", strokeWidth: 1 }),
18966
19057
  /* @__PURE__ */ jsxRuntime.jsx("line", { x1: chestX - 14, y1: chestY + 22, x2: chestX + 8, y2: chestY + 22, stroke: "#8b949e", strokeWidth: 1 }),
18967
19058
  /* @__PURE__ */ jsxRuntime.jsx("line", { x1: chestX - 14, y1: chestY + 34, x2: chestX + 2, y2: chestY + 34, stroke: "#0f3450", strokeWidth: 1.5 }),
18968
- /* @__PURE__ */ jsxRuntime.jsx("text", { x: chestX + 6, y: chestY + 37, fontSize: 8, fill: "#0f3450", fontFamily: "cursive", fontStyle: "italic", children: "\u2713" }),
19059
+ /* @__PURE__ */ jsxRuntime.jsx("text", { "data-cdl-counter-scaled": "0", x: chestX + 6, y: chestY + 37, fontSize: 8, fill: "#0f3450", fontFamily: "cursive", fontStyle: "italic", children: "\u2713" }),
18969
19060
  haloBadge(bx, by, `nt-halo-${node.id}`, "#c15a4a", /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
18970
19061
  /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: 0, cy: 0, r: 12, fill: "#c15a4a", stroke: "none" }),
18971
19062
  /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: 0, cy: 0, r: 8, fill: "none", stroke: "#ffffff", strokeWidth: 1.2 }),
18972
- /* @__PURE__ */ jsxRuntime.jsx("text", { x: 0, y: 4, fontFamily: "Georgia, serif", fontSize: 10, fontWeight: 700, fill: "#ffffff", textAnchor: "middle", children: "\u5370" })
19063
+ /* @__PURE__ */ jsxRuntime.jsx("text", { "data-cdl-counter-scaled": "0", x: 0, y: 4, fontFamily: "Georgia, serif", fontSize: 10, fontWeight: 700, fill: "#ffffff", textAnchor: "middle", children: "\u5370" })
18973
19064
  ] }))
18974
19065
  ] })),
18975
19066
  bottomLabel5(node, r.cx, r.label)
@@ -19028,7 +19119,7 @@ function ShapeCustomerServiceNode({ node, active }) {
19028
19119
  p.render,
19029
19120
  collarV(cx, cy, p.strokeColor),
19030
19121
  /* @__PURE__ */ jsxRuntime.jsx("rect", { x: chestX - 22, y: chestY + 5, width: 44, height: 22, rx: 11, fill: "#e5c07b", stroke: "#a67c00", strokeWidth: 2 }),
19031
- /* @__PURE__ */ jsxRuntime.jsx("text", { x: chestX, y: chestY + 20, fontSize: 12, fontWeight: 900, fill: "#5a3a10", textAnchor: "middle", letterSpacing: 2, children: "24H" }),
19122
+ /* @__PURE__ */ jsxRuntime.jsx("text", { "data-cdl-counter-scaled": "0", x: chestX, y: chestY + 20, fontSize: 12, fontWeight: 900, fill: "#5a3a10", textAnchor: "middle", letterSpacing: 2, children: "24H" }),
19032
19123
  haloBadge(bx, by, `cs-halo-${node.id}`, "#a67c00", /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
19033
19124
  /* @__PURE__ */ jsxRuntime.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" }),
19034
19125
  /* @__PURE__ */ jsxRuntime.jsx("rect", { x: -13, y: 2, width: 6, height: 11, rx: 1.5, fill: "#e5c07b", stroke: "#a67c00", strokeWidth: 1.5 }),