@cardenelabs/cdl 0.73.0 → 0.75.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +76 -1
- package/dist/index.cjs +301 -196
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +301 -196
- package/dist/index.js.map +1 -1
- package/dist/react.cjs +361 -256
- package/dist/react.cjs.map +1 -1
- package/dist/react.js +361 -256
- package/dist/react.js.map +1 -1
- package/package.json +1 -1
- package/src/kinds/shape-blockchain.tsx +129 -47
- package/src/kinds/shape-commerce.tsx +45 -14
- package/src/kinds/shape-finance.tsx +73 -19
- package/src/kinds/shape-people.tsx +3 -3
- package/src/kinds/shape-region.tsx +93 -1
package/dist/react.cjs
CHANGED
|
@@ -2872,6 +2872,66 @@ function textWidth(s, size, \u5B57\u9001\u308A = 0) {
|
|
|
2872
2872
|
}
|
|
2873
2873
|
return \u5E45 * size + \u5B57\u9001\u308A * \u5B57\u6570;
|
|
2874
2874
|
}
|
|
2875
|
+
|
|
2876
|
+
// src/kinds/row-align.ts
|
|
2877
|
+
var GENERIC_ROW_LEFT_SIZE_PX = 18;
|
|
2878
|
+
var GENERIC_ROW_RIGHT_SIZE_PX = 21;
|
|
2879
|
+
var MONO_ADVANCE_RATIO = 0.6;
|
|
2880
|
+
var STORAGE_CHAR_ADVANCE_PX = 26 * MONO_ADVANCE_RATIO;
|
|
2881
|
+
var ROW_PAD_X_PX = 26;
|
|
2882
|
+
var ROW_COL_GAP_PX = 16;
|
|
2883
|
+
var STORAGE_COL_GAP_PX = 32;
|
|
2884
|
+
var ROW_RIGHT_PAD_PX = 26;
|
|
2885
|
+
var DELIMITERS = [" -> ", " \u2192 ", " = ", ": ", ":"];
|
|
2886
|
+
function splitRow(row) {
|
|
2887
|
+
for (const d of DELIMITERS) {
|
|
2888
|
+
const idx = row.indexOf(d);
|
|
2889
|
+
if (idx > 0) {
|
|
2890
|
+
return {
|
|
2891
|
+
left: row.slice(0, idx).trim(),
|
|
2892
|
+
right: row.slice(idx + d.length).trim(),
|
|
2893
|
+
split: true
|
|
2894
|
+
};
|
|
2895
|
+
}
|
|
2896
|
+
}
|
|
2897
|
+
return { left: row.trim(), right: "", split: false };
|
|
2898
|
+
}
|
|
2899
|
+
function rowColumnWidth(text, size, mono) {
|
|
2900
|
+
return mono ? displayWidth(text) * size * MONO_ADVANCE_RATIO : textWidth(text, size);
|
|
2901
|
+
}
|
|
2902
|
+
function displayWidth(text) {
|
|
2903
|
+
let w = 0;
|
|
2904
|
+
for (const ch of text) {
|
|
2905
|
+
const code = ch.codePointAt(0) ?? 0;
|
|
2906
|
+
w += code >= 32 && code <= 126 ? 1 : 2;
|
|
2907
|
+
}
|
|
2908
|
+
return w;
|
|
2909
|
+
}
|
|
2910
|
+
function \u6841\u3067\u5272\u308B(text, \u6841) {
|
|
2911
|
+
let w = 0;
|
|
2912
|
+
let \u53D6\u3063\u305F = "";
|
|
2913
|
+
for (const ch of text) {
|
|
2914
|
+
const code = ch.codePointAt(0) ?? 0;
|
|
2915
|
+
const \u5B57\u306E\u6841 = code >= 32 && code <= 126 ? 1 : 2;
|
|
2916
|
+
if (w + \u5B57\u306E\u6841 > \u6841) break;
|
|
2917
|
+
w += \u5B57\u306E\u6841;
|
|
2918
|
+
\u53D6\u3063\u305F += ch;
|
|
2919
|
+
}
|
|
2920
|
+
return [\u53D6\u3063\u305F, text.slice(\u53D6\u3063\u305F.length)];
|
|
2921
|
+
}
|
|
2922
|
+
function \u6841\u3067\u7701\u304F(text, \u4E0A\u9650) {
|
|
2923
|
+
if (displayWidth(text) <= \u4E0A\u9650) return text;
|
|
2924
|
+
return `${\u6841\u3067\u5272\u308B(text, \u4E0A\u9650 - 1)[0]}\u2026`;
|
|
2925
|
+
}
|
|
2926
|
+
function requiredRowsWidth(rows, kind) {
|
|
2927
|
+
if (!rows || rows.length === 0) return 0;
|
|
2928
|
+
const splits = rows.map(splitRow);
|
|
2929
|
+
const \u4E00\u756A\u5E83\u3044 = (\u53D6\u308B) => splits.reduce((m, s) => Math.max(m, \u53D6\u308B(s)), 0);
|
|
2930
|
+
const storage = ROW_PAD_X_PX + \u4E00\u756A\u5E83\u3044((s) => rowColumnWidth(s.left, 26, true)) + STORAGE_COL_GAP_PX + \u4E00\u756A\u5E83\u3044((s) => rowColumnWidth(s.right, 26, true)) + ROW_RIGHT_PAD_PX;
|
|
2931
|
+
const generic = ROW_PAD_X_PX + \u4E00\u756A\u5E83\u3044((s) => rowColumnWidth(s.left, GENERIC_ROW_LEFT_SIZE_PX, false)) + ROW_COL_GAP_PX + \u4E00\u756A\u5E83\u3044((s) => rowColumnWidth(s.right, GENERIC_ROW_RIGHT_SIZE_PX, true)) + ROW_RIGHT_PAD_PX;
|
|
2932
|
+
if (kind === void 0) return Math.ceil(Math.max(storage, generic));
|
|
2933
|
+
return Math.ceil(kind === "storage" ? storage : generic);
|
|
2934
|
+
}
|
|
2875
2935
|
var TITLE_MAX = 18;
|
|
2876
2936
|
var TITLE_MIN = 9;
|
|
2877
2937
|
var TITLE_RATIO = 0.17;
|
|
@@ -3052,7 +3112,38 @@ function fitArt(region, extent, art) {
|
|
|
3052
3112
|
const dx = region.cx - s * \u7D75cx;
|
|
3053
3113
|
const dy = region.cy - s * \u7D75cy;
|
|
3054
3114
|
if (s >= 1 && dx === 0 && dy === 0) return \u7D44\u3080(1);
|
|
3055
|
-
return
|
|
3115
|
+
return (
|
|
3116
|
+
/*
|
|
3117
|
+
* 包みに印を付ける (#886)。 **`scale(` を持つ変換は他にもある** = `event` は目立たせる
|
|
3118
|
+
* ための脈動を `scale(0.78)` から `scale(1)` で描き、絵を箱に収める縮小ではない。
|
|
3119
|
+
* 祖先の変換を正規表現で見る形だと、その脈動まで「絵の縮小」 として数える。
|
|
3120
|
+
*/
|
|
3121
|
+
/* @__PURE__ */ jsxRuntime.jsx("g", { "data-cdl-art-fit": "1", transform: `translate(${dx} ${dy}) scale(${s})`, children: \u7D44\u3080(s) })
|
|
3122
|
+
);
|
|
3123
|
+
}
|
|
3124
|
+
var \u5E2F\u306E\u9AD8\u3055\u306B\u5BFE\u3059\u308B\u4E0A\u9650 = 0.8;
|
|
3125
|
+
function \u7D75\u306E\u4E2D\u306E\u5B57\u306E\u5E45(text, size, letterSpacing = 0) {
|
|
3126
|
+
return Math.max(
|
|
3127
|
+
displayWidth(text) * size * MONO_ADVANCE_RATIO,
|
|
3128
|
+
textWidth(text, size, letterSpacing)
|
|
3129
|
+
);
|
|
3130
|
+
}
|
|
3131
|
+
function \u6253\u3061\u6D88\u3057\u306E\u500D\u7387(\u500D\u7387, \u5B57\u3089) {
|
|
3132
|
+
const \u623B\u3057 = Number.isFinite(\u500D\u7387) && \u500D\u7387 > 0 ? 1 / \u500D\u7387 : 1;
|
|
3133
|
+
let \u4E0A\u9650 = Number.POSITIVE_INFINITY;
|
|
3134
|
+
for (const \u5B572 of \u5B57\u3089) {
|
|
3135
|
+
if (!(Number.isFinite(\u5B572.size) && \u5B572.size > 0)) continue;
|
|
3136
|
+
const { \u5E45, \u9AD8\u3055 } = \u5B572.\u5E2F;
|
|
3137
|
+
if (Number.isFinite(\u9AD8\u3055) && \u9AD8\u3055 > 0) {
|
|
3138
|
+
\u4E0A\u9650 = Math.min(\u4E0A\u9650, \u9AD8\u3055 * \u5E2F\u306E\u9AD8\u3055\u306B\u5BFE\u3059\u308B\u4E0A\u9650 / \u5B572.size);
|
|
3139
|
+
}
|
|
3140
|
+
const \u5B9F\u5E45 = \u7D75\u306E\u4E2D\u306E\u5B57\u306E\u5E45(\u5B572.text, \u5B572.size, \u5B572.letterSpacing ?? 0);
|
|
3141
|
+
if (Number.isFinite(\u5E45) && \u5E45 > 0 && \u5B9F\u5E45 > 0) {
|
|
3142
|
+
\u4E0A\u9650 = Math.min(\u4E0A\u9650, \u5E45 / \u5B9F\u5E45);
|
|
3143
|
+
}
|
|
3144
|
+
}
|
|
3145
|
+
if (!Number.isFinite(\u4E0A\u9650)) return 1;
|
|
3146
|
+
return Math.max(1, Math.min(\u623B\u3057, \u4E0A\u9650));
|
|
3056
3147
|
}
|
|
3057
3148
|
|
|
3058
3149
|
// src/kinds/compact-title.ts
|
|
@@ -9607,66 +9698,6 @@ function recomputeContainedLanes(lanes, nodes) {
|
|
|
9607
9698
|
});
|
|
9608
9699
|
}
|
|
9609
9700
|
|
|
9610
|
-
// src/kinds/row-align.ts
|
|
9611
|
-
var GENERIC_ROW_LEFT_SIZE_PX = 18;
|
|
9612
|
-
var GENERIC_ROW_RIGHT_SIZE_PX = 21;
|
|
9613
|
-
var MONO_ADVANCE_RATIO = 0.6;
|
|
9614
|
-
var STORAGE_CHAR_ADVANCE_PX = 26 * MONO_ADVANCE_RATIO;
|
|
9615
|
-
var ROW_PAD_X_PX = 26;
|
|
9616
|
-
var ROW_COL_GAP_PX = 16;
|
|
9617
|
-
var STORAGE_COL_GAP_PX = 32;
|
|
9618
|
-
var ROW_RIGHT_PAD_PX = 26;
|
|
9619
|
-
var DELIMITERS = [" -> ", " \u2192 ", " = ", ": ", ":"];
|
|
9620
|
-
function splitRow(row) {
|
|
9621
|
-
for (const d of DELIMITERS) {
|
|
9622
|
-
const idx = row.indexOf(d);
|
|
9623
|
-
if (idx > 0) {
|
|
9624
|
-
return {
|
|
9625
|
-
left: row.slice(0, idx).trim(),
|
|
9626
|
-
right: row.slice(idx + d.length).trim(),
|
|
9627
|
-
split: true
|
|
9628
|
-
};
|
|
9629
|
-
}
|
|
9630
|
-
}
|
|
9631
|
-
return { left: row.trim(), right: "", split: false };
|
|
9632
|
-
}
|
|
9633
|
-
function rowColumnWidth(text, size, mono) {
|
|
9634
|
-
return mono ? displayWidth(text) * size * MONO_ADVANCE_RATIO : textWidth(text, size);
|
|
9635
|
-
}
|
|
9636
|
-
function displayWidth(text) {
|
|
9637
|
-
let w = 0;
|
|
9638
|
-
for (const ch of text) {
|
|
9639
|
-
const code = ch.codePointAt(0) ?? 0;
|
|
9640
|
-
w += code >= 32 && code <= 126 ? 1 : 2;
|
|
9641
|
-
}
|
|
9642
|
-
return w;
|
|
9643
|
-
}
|
|
9644
|
-
function \u6841\u3067\u5272\u308B(text, \u6841) {
|
|
9645
|
-
let w = 0;
|
|
9646
|
-
let \u53D6\u3063\u305F = "";
|
|
9647
|
-
for (const ch of text) {
|
|
9648
|
-
const code = ch.codePointAt(0) ?? 0;
|
|
9649
|
-
const \u5B57\u306E\u6841 = code >= 32 && code <= 126 ? 1 : 2;
|
|
9650
|
-
if (w + \u5B57\u306E\u6841 > \u6841) break;
|
|
9651
|
-
w += \u5B57\u306E\u6841;
|
|
9652
|
-
\u53D6\u3063\u305F += ch;
|
|
9653
|
-
}
|
|
9654
|
-
return [\u53D6\u3063\u305F, text.slice(\u53D6\u3063\u305F.length)];
|
|
9655
|
-
}
|
|
9656
|
-
function \u6841\u3067\u7701\u304F(text, \u4E0A\u9650) {
|
|
9657
|
-
if (displayWidth(text) <= \u4E0A\u9650) return text;
|
|
9658
|
-
return `${\u6841\u3067\u5272\u308B(text, \u4E0A\u9650 - 1)[0]}\u2026`;
|
|
9659
|
-
}
|
|
9660
|
-
function requiredRowsWidth(rows, kind) {
|
|
9661
|
-
if (!rows || rows.length === 0) return 0;
|
|
9662
|
-
const splits = rows.map(splitRow);
|
|
9663
|
-
const \u4E00\u756A\u5E83\u3044 = (\u53D6\u308B) => splits.reduce((m, s) => Math.max(m, \u53D6\u308B(s)), 0);
|
|
9664
|
-
const storage = ROW_PAD_X_PX + \u4E00\u756A\u5E83\u3044((s) => rowColumnWidth(s.left, 26, true)) + STORAGE_COL_GAP_PX + \u4E00\u756A\u5E83\u3044((s) => rowColumnWidth(s.right, 26, true)) + ROW_RIGHT_PAD_PX;
|
|
9665
|
-
const generic = ROW_PAD_X_PX + \u4E00\u756A\u5E83\u3044((s) => rowColumnWidth(s.left, GENERIC_ROW_LEFT_SIZE_PX, false)) + ROW_COL_GAP_PX + \u4E00\u756A\u5E83\u3044((s) => rowColumnWidth(s.right, GENERIC_ROW_RIGHT_SIZE_PX, true)) + ROW_RIGHT_PAD_PX;
|
|
9666
|
-
if (kind === void 0) return Math.ceil(Math.max(storage, generic));
|
|
9667
|
-
return Math.ceil(kind === "storage" ? storage : generic);
|
|
9668
|
-
}
|
|
9669
|
-
|
|
9670
9701
|
// src/layout/head-label.ts
|
|
9671
9702
|
var \u7AEF\u306E\u5B57\u3092\u623B\u3059\u8DDD\u96E2 = 22;
|
|
9672
9703
|
var \u7AEF\u306E\u5B57\u3068\u7DDA\u306E\u9699\u9593 = 8;
|
|
@@ -17311,15 +17342,6 @@ var \u540D\u306E\u5B57 = 10.5;
|
|
|
17311
17342
|
var \u5024\u306E\u5B57 = 11;
|
|
17312
17343
|
var \u884C\u306E\u9593\u9694 = 22;
|
|
17313
17344
|
var \u898B\u51FA\u3057\u306E\u5E2F = 32;
|
|
17314
|
-
var \u5E2F\u306B\u5BFE\u3059\u308B\u4E0A\u9650 = 0.8;
|
|
17315
|
-
function \u6253\u3061\u6D88\u3057\u306E\u500D\u7387(k) {
|
|
17316
|
-
const \u623B\u3057 = Number.isFinite(k) && k > 0 ? 1 / k : 1;
|
|
17317
|
-
const \u4E0A\u9650 = Math.min(
|
|
17318
|
-
\u884C\u306E\u9593\u9694 * \u5E2F\u306B\u5BFE\u3059\u308B\u4E0A\u9650 / \u5024\u306E\u5B57,
|
|
17319
|
-
\u898B\u51FA\u3057\u306E\u5E2F * \u5E2F\u306B\u5BFE\u3059\u308B\u4E0A\u9650 / \u898B\u51FA\u3057\u306E\u5B57
|
|
17320
|
-
);
|
|
17321
|
-
return Math.max(1, Math.min(\u623B\u3057, \u4E0A\u9650));
|
|
17322
|
-
}
|
|
17323
17345
|
var BLOCK_SHADOW = 6;
|
|
17324
17346
|
var NFT_W = 220;
|
|
17325
17347
|
var NFT_H = 240;
|
|
@@ -17330,6 +17352,15 @@ var CHAIN_BLOCK_H = 66;
|
|
|
17330
17352
|
var CHAIN_LINK_W = 12;
|
|
17331
17353
|
var CHAIN_SHADOW = 3;
|
|
17332
17354
|
var CHAIN_BLOCK_SW = 2.5;
|
|
17355
|
+
var CHAIN_HEAD_H = 16;
|
|
17356
|
+
var CHAIN_TEXT_W = CHAIN_BLOCK_W - 8;
|
|
17357
|
+
var CHAIN_ROW_GAP = 14;
|
|
17358
|
+
var CHAIN_NO_SIZE = 10;
|
|
17359
|
+
var CONTRACT_CALL_SIZE = 11;
|
|
17360
|
+
var NFT_ID_SIZE = 15;
|
|
17361
|
+
var CHAIN_HASH_SIZE = 7;
|
|
17362
|
+
var BTC_NO_SIZE = 9;
|
|
17363
|
+
var ETH_NO_SIZE = 9;
|
|
17333
17364
|
var NODE_HEX_R = 44;
|
|
17334
17365
|
var NODE_PEER_R = 12;
|
|
17335
17366
|
var NODE_PEER_GAP = 22;
|
|
@@ -17443,30 +17474,40 @@ function ShapeSmartContractNode({ node, active, lang }) {
|
|
|
17443
17474
|
gearPts.push(`${gearCx + Math.cos(a3) * gearTipR},${gearCy + Math.sin(a3) * gearTipR}`);
|
|
17444
17475
|
gearPts.push(`${gearCx + Math.cos(a4) * gearBodyR},${gearCy + Math.sin(a4) * gearBodyR}`);
|
|
17445
17476
|
}
|
|
17446
|
-
const
|
|
17447
|
-
|
|
17448
|
-
|
|
17449
|
-
|
|
17450
|
-
|
|
17451
|
-
|
|
17452
|
-
|
|
17453
|
-
|
|
17454
|
-
|
|
17455
|
-
|
|
17456
|
-
|
|
17457
|
-
|
|
17458
|
-
|
|
17459
|
-
|
|
17460
|
-
|
|
17461
|
-
|
|
17462
|
-
|
|
17463
|
-
|
|
17477
|
+
const \u6253\u3061\u6D88\u3059\u5B57\u3089 = [
|
|
17478
|
+
{
|
|
17479
|
+
text: \u5B57\u5F15("smartContract.call"),
|
|
17480
|
+
size: CONTRACT_CALL_SIZE,
|
|
17481
|
+
\u5E2F: { \u5E45: docW - 32, \u9AD8\u3055: 18 }
|
|
17482
|
+
}
|
|
17483
|
+
];
|
|
17484
|
+
const art = (\u500D\u7387) => {
|
|
17485
|
+
const \u500D = \u6253\u3061\u6D88\u3057\u306E\u500D\u7387(\u500D\u7387, \u6253\u3061\u6D88\u3059\u5B57\u3089);
|
|
17486
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
|
|
17487
|
+
/* @__PURE__ */ jsxRuntime.jsx("path", { "data-cdl-role": "node-body", d: path, ...frame, strokeLinejoin: "round" }),
|
|
17488
|
+
/* @__PURE__ */ jsxRuntime.jsx("path", { d: foldPath, fill: "none", stroke: frame.stroke, strokeWidth: frame.strokeWidth, strokeLinejoin: "round" }),
|
|
17489
|
+
[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)),
|
|
17490
|
+
/* @__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") }),
|
|
17491
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
17492
|
+
"polygon",
|
|
17493
|
+
{
|
|
17494
|
+
points: gearPts.join(" "),
|
|
17495
|
+
fill: "var(--cdl-tone-accent, #2d6a8f)",
|
|
17496
|
+
stroke: frame.stroke,
|
|
17497
|
+
strokeWidth: 1.2,
|
|
17498
|
+
strokeLinejoin: "round",
|
|
17499
|
+
children: /* @__PURE__ */ jsxRuntime.jsx("animateTransform", { attributeName: "transform", type: "rotate", from: `0 ${gearCx} ${gearCy}`, to: `360 ${gearCx} ${gearCy}`, dur: "8s", repeatCount: "indefinite" })
|
|
17500
|
+
}
|
|
17501
|
+
),
|
|
17502
|
+
/* @__PURE__ */ jsxRuntime.jsx("circle", { cx: gearCx, cy: gearCy, r: gearBodyR * 0.4, fill: "var(--cdl-node-fill, #ffffff)", stroke: "none" })
|
|
17503
|
+
] });
|
|
17504
|
+
};
|
|
17464
17505
|
return /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
|
|
17465
17506
|
fitArt(r, smartContractExtent(frame.strokeWidth), art),
|
|
17466
17507
|
bottomLabel2(node, r.cx, r.label)
|
|
17467
17508
|
] });
|
|
17468
17509
|
}
|
|
17469
|
-
var \u5B57\u306E\u5E45 = (text, size) =>
|
|
17510
|
+
var \u5B57\u306E\u5E45 = (text, size) => \u7D75\u306E\u4E2D\u306E\u5B57\u306E\u5E45(text, size);
|
|
17470
17511
|
var BLOCK_DEFAULT_FIELDS = [
|
|
17471
17512
|
{ key: "hash", label: "blockchainBlock.hash", value: { text: "0xaf31c9d2..." } },
|
|
17472
17513
|
{ key: "prev", label: "blockchainBlock.prev", value: { text: "0x7b3f92c1..." } },
|
|
@@ -17495,8 +17536,19 @@ function ShapeBlockchainBlockNode({ node, active, lang }) {
|
|
|
17495
17536
|
};
|
|
17496
17537
|
});
|
|
17497
17538
|
const \u898B\u51FA\u3057\u306E\u5E45 = bw - 14 - 30;
|
|
17539
|
+
const \u6253\u3061\u6D88\u3059\u5B57\u3089 = [
|
|
17540
|
+
{ text: \u898B\u51FA\u3057, size: \u898B\u51FA\u3057\u306E\u5B57, \u5E2F: { \u5E45: \u898B\u51FA\u3057\u306E\u5E45, \u9AD8\u3055: \u898B\u51FA\u3057\u306E\u5E2F } },
|
|
17541
|
+
...fields.flatMap((f) => [
|
|
17542
|
+
{ text: f.label, size: \u540D\u306E\u5B57, \u5E2F: { \u5E45: bw - 28, \u9AD8\u3055: \u884C\u306E\u9593\u9694 } },
|
|
17543
|
+
{
|
|
17544
|
+
text: f.value,
|
|
17545
|
+
size: \u5024\u306E\u5B57,
|
|
17546
|
+
\u5E2F: { \u5E45: bw - 28 - \u5B57\u306E\u5E45(f.label, \u540D\u306E\u5B57) - 8, \u9AD8\u3055: \u884C\u306E\u9593\u9694 }
|
|
17547
|
+
}
|
|
17548
|
+
])
|
|
17549
|
+
];
|
|
17498
17550
|
const art = (\u500D\u7387) => {
|
|
17499
|
-
const \u500D = \u6253\u3061\u6D88\u3057\u306E\u500D\u7387(\u500D\u7387);
|
|
17551
|
+
const \u500D = \u6253\u3061\u6D88\u3057\u306E\u500D\u7387(\u500D\u7387, \u6253\u3061\u6D88\u3059\u5B57\u3089);
|
|
17500
17552
|
const \u984C\u306E\u5927\u304D\u3055 = \u898B\u51FA\u3057\u306E\u5B57 * \u500D;
|
|
17501
17553
|
const \u540D\u306E\u5927\u304D\u3055 = \u540D\u306E\u5B57 * \u500D;
|
|
17502
17554
|
const \u5024\u306E\u5927\u304D\u3055 = \u5024\u306E\u5B57 * \u500D;
|
|
@@ -17504,11 +17556,11 @@ function ShapeBlockchainBlockNode({ node, active, lang }) {
|
|
|
17504
17556
|
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: x + 6, y: y + 6, width: bw, height: bh, rx: 8, fill: frame.stroke, opacity: 0.2, stroke: "none" }),
|
|
17505
17557
|
/* @__PURE__ */ jsxRuntime.jsx("rect", { "data-cdl-role": "node-body", x, y, width: bw, height: bh, rx: 8, ...frame }),
|
|
17506
17558
|
/* @__PURE__ */ jsxRuntime.jsx("path", { d: `M ${x} ${y + 32} L ${x} ${y + 8} Q ${x} ${y}, ${x + 8} ${y} L ${x + bw - 8} ${y} Q ${x + bw} ${y}, ${x + bw} ${y + 8} L ${x + bw} ${y + 32} Z`, fill: "var(--cdl-tone-accent, #2d6a8f)", fillOpacity: 0.9, stroke: "none" }),
|
|
17507
|
-
/* @__PURE__ */ jsxRuntime.jsx("text", { "data-cdl-role": "blockchain-block-title", x: x + 14, y: y + 22, fontSize: \u984C\u306E\u5927\u304D\u3055, fontWeight: 700, fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace", fill: "#ffffff", children: \u5E45\u3067\u5207\u308B(\u898B\u51FA\u3057, \u984C\u306E\u5927\u304D\u3055, \u898B\u51FA\u3057\u306E\u5E45, \u5B57\u306E\u5E45) }),
|
|
17559
|
+
/* @__PURE__ */ jsxRuntime.jsx("text", { "data-cdl-role": "blockchain-block-title", "data-cdl-counter-scaled": "1", x: x + 14, y: y + 22, fontSize: \u984C\u306E\u5927\u304D\u3055, fontWeight: 700, fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace", fill: "#ffffff", children: \u5E45\u3067\u5207\u308B(\u898B\u51FA\u3057, \u984C\u306E\u5927\u304D\u3055, \u898B\u51FA\u3057\u306E\u5E45, \u5B57\u306E\u5E45) }),
|
|
17508
17560
|
/* @__PURE__ */ jsxRuntime.jsx("circle", { cx: x + bw - 16, cy: y + 16, r: 5.5, fill: "#7cd88f", stroke: "#ffffff", strokeWidth: 1.5 }),
|
|
17509
17561
|
fields.map((f, i) => /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
|
|
17510
|
-
/* @__PURE__ */ jsxRuntime.jsx("text", { x: x + 14, y: y + 54 + i * \u884C\u306E\u9593\u9694, fontSize: \u540D\u306E\u5927\u304D\u3055, fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace", fill: "var(--cdl-text-dim, #5a6270)", children: f.label }),
|
|
17511
|
-
/* @__PURE__ */ jsxRuntime.jsx("text", { "data-cdl-role": `blockchain-block-${f.key}`, x: x + bw - 14, y: y + 54 + i * \u884C\u306E\u9593\u9694, fontSize: \u5024\u306E\u5927\u304D\u3055, fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace", fontWeight: 600, textAnchor: "end", fill: "var(--cdl-text, #1a1f2a)", children: \u5E45\u3067\u5207\u308B(f.value, \u5024\u306E\u5927\u304D\u3055, bw - 28 - \u5B57\u306E\u5E45(f.label, \u540D\u306E\u5927\u304D\u3055) - 8, \u5B57\u306E\u5E45) }),
|
|
17562
|
+
/* @__PURE__ */ jsxRuntime.jsx("text", { "data-cdl-counter-scaled": "1", x: x + 14, y: y + 54 + i * \u884C\u306E\u9593\u9694, fontSize: \u540D\u306E\u5927\u304D\u3055, fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace", fill: "var(--cdl-text-dim, #5a6270)", children: f.label }),
|
|
17563
|
+
/* @__PURE__ */ jsxRuntime.jsx("text", { "data-cdl-role": `blockchain-block-${f.key}`, "data-cdl-counter-scaled": "1", x: x + bw - 14, y: y + 54 + i * \u884C\u306E\u9593\u9694, fontSize: \u5024\u306E\u5927\u304D\u3055, fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace", fontWeight: 600, textAnchor: "end", fill: "var(--cdl-text, #1a1f2a)", children: \u5E45\u3067\u5207\u308B(f.value, \u5024\u306E\u5927\u304D\u3055, bw - 28 - \u5B57\u306E\u5E45(f.label, \u540D\u306E\u5927\u304D\u3055) - 8, \u5B57\u306E\u5E45) }),
|
|
17512
17564
|
/* @__PURE__ */ jsxRuntime.jsx("line", { x1: x + 14, y1: y + 60 + i * \u884C\u306E\u9593\u9694, x2: x + bw - 14, y2: y + 60 + i * \u884C\u306E\u9593\u9694, stroke: "var(--cdl-divider, #d4d4d8)", strokeWidth: 0.5, opacity: 0.5 })
|
|
17513
17565
|
] }, i)),
|
|
17514
17566
|
/* @__PURE__ */ jsxRuntime.jsxs("g", { transform: `translate(${cx - 32}, ${y + bh - 26})`, children: [
|
|
@@ -17531,38 +17583,45 @@ function ShapeBlockchainNode({ node, active }) {
|
|
|
17531
17583
|
const linkW = CHAIN_LINK_W;
|
|
17532
17584
|
const totalW = blockCount * blockW + (blockCount - 1) * linkW;
|
|
17533
17585
|
const startX = cx - totalW / 2;
|
|
17534
|
-
const
|
|
17535
|
-
|
|
17536
|
-
|
|
17537
|
-
|
|
17538
|
-
|
|
17539
|
-
|
|
17540
|
-
|
|
17541
|
-
|
|
17542
|
-
|
|
17543
|
-
/* @__PURE__ */ jsxRuntime.
|
|
17544
|
-
"
|
|
17545
|
-
|
|
17546
|
-
"
|
|
17547
|
-
|
|
17548
|
-
|
|
17549
|
-
|
|
17550
|
-
|
|
17551
|
-
|
|
17552
|
-
|
|
17553
|
-
|
|
17554
|
-
|
|
17555
|
-
|
|
17556
|
-
|
|
17557
|
-
|
|
17558
|
-
|
|
17559
|
-
|
|
17560
|
-
|
|
17561
|
-
|
|
17562
|
-
|
|
17563
|
-
|
|
17564
|
-
|
|
17565
|
-
|
|
17586
|
+
const \u6253\u3061\u6D88\u3059\u5B57\u3089 = [
|
|
17587
|
+
{ text: "#420", size: CHAIN_NO_SIZE, \u5E2F: { \u5E45: CHAIN_TEXT_W, \u9AD8\u3055: CHAIN_HEAD_H } },
|
|
17588
|
+
{ text: "0x\u2026", size: CHAIN_HASH_SIZE, \u5E2F: { \u5E45: CHAIN_TEXT_W, \u9AD8\u3055: CHAIN_ROW_GAP } }
|
|
17589
|
+
];
|
|
17590
|
+
const art = (\u500D\u7387) => {
|
|
17591
|
+
const \u500D = \u6253\u3061\u6D88\u3057\u306E\u500D\u7387(\u500D\u7387, \u6253\u3061\u6D88\u3059\u5B57\u3089);
|
|
17592
|
+
return /* @__PURE__ */ jsxRuntime.jsx("g", { children: Array.from({ length: blockCount }, (_, i) => i).map((i) => {
|
|
17593
|
+
const bx = startX + i * (blockW + linkW);
|
|
17594
|
+
const isCurrent = i === blockCount - 1;
|
|
17595
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
|
|
17596
|
+
i > 0 && /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
|
|
17597
|
+
/* @__PURE__ */ jsxRuntime.jsx("line", { x1: bx - linkW, y1: cy, x2: bx, y2: cy, stroke: frame.stroke, strokeWidth: 3, strokeLinecap: "round" }),
|
|
17598
|
+
/* @__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" }) })
|
|
17599
|
+
] }),
|
|
17600
|
+
/* @__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" }),
|
|
17601
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
17602
|
+
"rect",
|
|
17603
|
+
{
|
|
17604
|
+
"data-cdl-role": i === 0 ? "node-body" : void 0,
|
|
17605
|
+
x: bx,
|
|
17606
|
+
y: cy - blockH / 2,
|
|
17607
|
+
width: blockW,
|
|
17608
|
+
height: blockH,
|
|
17609
|
+
rx: 4,
|
|
17610
|
+
fill: isCurrent ? "var(--cdl-tone-accent, #2d6a8f)" : "var(--cdl-node-fill, #ffffff)",
|
|
17611
|
+
stroke: frame.stroke,
|
|
17612
|
+
strokeWidth: isCurrent ? 2.5 : 1.5
|
|
17613
|
+
}
|
|
17614
|
+
),
|
|
17615
|
+
/* @__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" }),
|
|
17616
|
+
/* @__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: [
|
|
17617
|
+
"#",
|
|
17618
|
+
420 + i
|
|
17619
|
+
] }),
|
|
17620
|
+
/* @__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: "#" }),
|
|
17621
|
+
/* @__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" })
|
|
17622
|
+
] }, i);
|
|
17623
|
+
}) });
|
|
17624
|
+
};
|
|
17566
17625
|
return /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
|
|
17567
17626
|
fitArt(r, chainExtent(), art),
|
|
17568
17627
|
bottomLabel2(node, r.cx, r.label)
|
|
@@ -17580,33 +17639,39 @@ function ShapeBitcoinChainNode({ node, active }) {
|
|
|
17580
17639
|
const linkW = CHAIN_LINK_W;
|
|
17581
17640
|
const totalW = blockCount * blockW + (blockCount - 1) * linkW;
|
|
17582
17641
|
const startX = cx - totalW / 2;
|
|
17583
|
-
const
|
|
17584
|
-
|
|
17585
|
-
|
|
17586
|
-
|
|
17587
|
-
|
|
17588
|
-
|
|
17589
|
-
|
|
17590
|
-
|
|
17591
|
-
|
|
17592
|
-
|
|
17593
|
-
|
|
17594
|
-
|
|
17595
|
-
|
|
17596
|
-
|
|
17597
|
-
|
|
17598
|
-
|
|
17599
|
-
|
|
17600
|
-
|
|
17601
|
-
|
|
17602
|
-
|
|
17603
|
-
|
|
17604
|
-
|
|
17605
|
-
|
|
17606
|
-
|
|
17607
|
-
|
|
17608
|
-
|
|
17609
|
-
|
|
17642
|
+
const \u6253\u3061\u6D88\u3059\u5B57\u3089 = [
|
|
17643
|
+
{ text: "#820", size: BTC_NO_SIZE, \u5E2F: { \u5E45: CHAIN_TEXT_W, \u9AD8\u3055: 20 } }
|
|
17644
|
+
];
|
|
17645
|
+
const art = (\u500D\u7387) => {
|
|
17646
|
+
const \u500D = \u6253\u3061\u6D88\u3057\u306E\u500D\u7387(\u500D\u7387, \u6253\u3061\u6D88\u3059\u5B57\u3089);
|
|
17647
|
+
return /* @__PURE__ */ jsxRuntime.jsx("g", { children: Array.from({ length: blockCount }, (_, i) => i).map((i) => {
|
|
17648
|
+
const bx = startX + i * (blockW + linkW);
|
|
17649
|
+
const isCurrent = i === blockCount - 1;
|
|
17650
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
|
|
17651
|
+
i > 0 && /* @__PURE__ */ jsxRuntime.jsx("line", { x1: bx - linkW, y1: cy, x2: bx, y2: cy, stroke: btcOrange, strokeWidth: 3.5, strokeLinecap: "round" }),
|
|
17652
|
+
/* @__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" }),
|
|
17653
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
17654
|
+
"rect",
|
|
17655
|
+
{
|
|
17656
|
+
"data-cdl-role": i === 0 ? "node-body" : void 0,
|
|
17657
|
+
x: bx,
|
|
17658
|
+
y: cy - blockH / 2,
|
|
17659
|
+
width: blockW,
|
|
17660
|
+
height: blockH,
|
|
17661
|
+
rx: 4,
|
|
17662
|
+
fill: isCurrent ? btcOrange : "var(--cdl-node-fill, #ffffff)",
|
|
17663
|
+
stroke: btcOrange,
|
|
17664
|
+
strokeWidth: isCurrent ? 2.5 : 1.5
|
|
17665
|
+
}
|
|
17666
|
+
),
|
|
17667
|
+
/* @__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" }),
|
|
17668
|
+
/* @__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: [
|
|
17669
|
+
"#",
|
|
17670
|
+
820 + i
|
|
17671
|
+
] })
|
|
17672
|
+
] }, i);
|
|
17673
|
+
}) });
|
|
17674
|
+
};
|
|
17610
17675
|
return /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
|
|
17611
17676
|
fitArt(r, chainExtent(), art),
|
|
17612
17677
|
bottomLabel2(node, r.cx, r.label)
|
|
@@ -17646,7 +17711,7 @@ function ShapeEthereumChainNode({ node, active }) {
|
|
|
17646
17711
|
}
|
|
17647
17712
|
),
|
|
17648
17713
|
/* @__PURE__ */ jsxRuntime.jsx(EthereumDiamond, { cx: bx + blockW / 2, cy: cy - 6, h: 16, colors: iconColors }),
|
|
17649
|
-
/* @__PURE__ */ jsxRuntime.jsxs("text", { x: bx + blockW / 2, y: cy + 22, fontSize:
|
|
17714
|
+
/* @__PURE__ */ jsxRuntime.jsxs("text", { "data-cdl-counter-scaled": "0", x: bx + blockW / 2, y: cy + 22, fontSize: ETH_NO_SIZE, fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace", fontWeight: 700, textAnchor: "middle", fill: isCurrent ? "#ffffff" : "var(--cdl-text-dim, #5a6270)", children: [
|
|
17650
17715
|
"#",
|
|
17651
17716
|
21400 + i
|
|
17652
17717
|
] })
|
|
@@ -17825,39 +17890,46 @@ function ShapeNftNode({ node, active }) {
|
|
|
17825
17890
|
const artH = cardH * 0.72;
|
|
17826
17891
|
const artCx = x + cardW / 2;
|
|
17827
17892
|
const artCy = y + artH / 2;
|
|
17828
|
-
const
|
|
17829
|
-
|
|
17830
|
-
|
|
17831
|
-
|
|
17832
|
-
|
|
17833
|
-
|
|
17834
|
-
|
|
17835
|
-
|
|
17836
|
-
|
|
17837
|
-
|
|
17838
|
-
|
|
17839
|
-
|
|
17840
|
-
|
|
17841
|
-
|
|
17842
|
-
|
|
17843
|
-
|
|
17844
|
-
|
|
17845
|
-
|
|
17846
|
-
|
|
17847
|
-
|
|
17848
|
-
|
|
17849
|
-
|
|
17850
|
-
|
|
17851
|
-
|
|
17852
|
-
|
|
17853
|
-
|
|
17854
|
-
|
|
17855
|
-
|
|
17856
|
-
|
|
17857
|
-
|
|
17858
|
-
|
|
17859
|
-
|
|
17860
|
-
|
|
17893
|
+
const \u6253\u3061\u6D88\u3059\u5B57\u3089 = [
|
|
17894
|
+
{ text: "#1024", size: NFT_ID_SIZE, \u5E2F: { \u5E45: cardW - 16 - 34, \u9AD8\u3055: cardH - artH } }
|
|
17895
|
+
];
|
|
17896
|
+
const art = (\u500D\u7387) => {
|
|
17897
|
+
const \u500D = \u6253\u3061\u6D88\u3057\u306E\u500D\u7387(\u500D\u7387, \u6253\u3061\u6D88\u3059\u5B57\u3089);
|
|
17898
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
|
|
17899
|
+
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: x + 4, y: y + 4, width: cardW, height: cardH, rx: 14, fill: frame.stroke, opacity: 0.2, stroke: "none" }),
|
|
17900
|
+
/* @__PURE__ */ jsxRuntime.jsx("rect", { "data-cdl-role": "node-body", x, y, width: cardW, height: cardH, rx: 14, ...frame }),
|
|
17901
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
17902
|
+
"path",
|
|
17903
|
+
{
|
|
17904
|
+
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`,
|
|
17905
|
+
fill: "var(--cdl-tone-accent, #2d6a8f)",
|
|
17906
|
+
fillOpacity: 0.15,
|
|
17907
|
+
stroke: "none"
|
|
17908
|
+
}
|
|
17909
|
+
),
|
|
17910
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
17911
|
+
"text",
|
|
17912
|
+
{
|
|
17913
|
+
"data-cdl-counter-scaled": "0",
|
|
17914
|
+
x: artCx,
|
|
17915
|
+
y: artCy + 24,
|
|
17916
|
+
fontSize: 68,
|
|
17917
|
+
fontWeight: 900,
|
|
17918
|
+
letterSpacing: 4,
|
|
17919
|
+
textAnchor: "middle",
|
|
17920
|
+
fill: "var(--cdl-tone-accent, #2d6a8f)",
|
|
17921
|
+
fontFamily: "Georgia, serif",
|
|
17922
|
+
children: "NFT"
|
|
17923
|
+
}
|
|
17924
|
+
),
|
|
17925
|
+
/* @__PURE__ */ jsxRuntime.jsx("line", { x1: x, y1: y + artH, x2: x + cardW, y2: y + artH, stroke: frame.stroke, strokeWidth: 1, opacity: 0.5 }),
|
|
17926
|
+
/* @__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" }),
|
|
17927
|
+
/* @__PURE__ */ jsxRuntime.jsxs("g", { transform: `translate(${x + cardW - 20}, ${y + artH + 22})`, children: [
|
|
17928
|
+
/* @__PURE__ */ jsxRuntime.jsx("circle", { cx: 0, cy: 0, r: 10, fill: "#27c93f", stroke: "#ffffff", strokeWidth: 2 }),
|
|
17929
|
+
/* @__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" })
|
|
17930
|
+
] })
|
|
17931
|
+
] });
|
|
17932
|
+
};
|
|
17861
17933
|
return /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
|
|
17862
17934
|
fitArt(r, nftExtent(frame.strokeWidth), art),
|
|
17863
17935
|
bottomLabel2(node, r.cx, r.label)
|
|
@@ -17986,7 +18058,7 @@ function ShapeBankNode({ node, active }) {
|
|
|
17986
18058
|
}),
|
|
17987
18059
|
/* @__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" }),
|
|
17988
18060
|
/* @__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 }),
|
|
17989
|
-
/* @__PURE__ */ jsxRuntime.jsx("text", { x: r.cx, y: y + pedimentH / 2 + 10, fontSize: 18, fontWeight: 700, textAnchor: "middle", fill: "#ffffff", fontFamily: "Georgia, serif", children: "$" }),
|
|
18061
|
+
/* @__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: "$" }),
|
|
17990
18062
|
/* @__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 }),
|
|
17991
18063
|
Array.from({ length: nCols }, (_, i) => i).map((i) => {
|
|
17992
18064
|
const colCx = x + 12 + colGap + i * (colW + colGap) + colW / 2;
|
|
@@ -18052,7 +18124,7 @@ function ShapeTrustBankNode({ node, active, lang }) {
|
|
|
18052
18124
|
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);
|
|
18053
18125
|
}),
|
|
18054
18126
|
/* @__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" }),
|
|
18055
|
-
/* @__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") }),
|
|
18127
|
+
/* @__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") }),
|
|
18056
18128
|
/* @__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 }),
|
|
18057
18129
|
Array.from({ length: nCols }, (_, i) => i).map((i) => {
|
|
18058
18130
|
const colCx = x + 15 + colGap + i * (colW + colGap) + colW / 2;
|
|
@@ -18126,6 +18198,9 @@ function ShapeCreditCardNode({ node, active }) {
|
|
|
18126
18198
|
}
|
|
18127
18199
|
var BROKERAGE_TICK_H = 12;
|
|
18128
18200
|
var BROKERAGE_LOGO_H = 26;
|
|
18201
|
+
var BROKERAGE_TICK_INNER_H = 8;
|
|
18202
|
+
var BROKERAGE_TICKER_SIZE = 5.5;
|
|
18203
|
+
var BROKERAGE_SIGN_SIZE = 12;
|
|
18129
18204
|
var BROKERAGE_GRID_TOP = 62;
|
|
18130
18205
|
var BROKERAGE_CELL_W = 14;
|
|
18131
18206
|
var BROKERAGE_CELL_H = 18;
|
|
@@ -18174,35 +18249,46 @@ function ShapeBrokerageNode({ node, active, lang }) {
|
|
|
18174
18249
|
);
|
|
18175
18250
|
const gridStartX = x + (w - (cols * cellW + (cols - 1) * gapX)) / 2;
|
|
18176
18251
|
const goldCells = /* @__PURE__ */ new Set([`0,1`, `0,4`, `1,2`, `2,3`, `3,5`]);
|
|
18177
|
-
const \
|
|
18178
|
-
|
|
18179
|
-
|
|
18180
|
-
|
|
18181
|
-
|
|
18182
|
-
|
|
18183
|
-
|
|
18184
|
-
|
|
18185
|
-
|
|
18186
|
-
|
|
18187
|
-
|
|
18188
|
-
|
|
18189
|
-
|
|
18190
|
-
|
|
18191
|
-
|
|
18192
|
-
})
|
|
18193
|
-
|
|
18194
|
-
|
|
18195
|
-
|
|
18196
|
-
|
|
18197
|
-
|
|
18198
|
-
|
|
18199
|
-
|
|
18200
|
-
|
|
18252
|
+
const \u6253\u3061\u6D88\u3059\u5B57\u3089 = [
|
|
18253
|
+
{
|
|
18254
|
+
text: \u5B57\u5F15("brokerage.ticker"),
|
|
18255
|
+
size: BROKERAGE_TICKER_SIZE,
|
|
18256
|
+
\u5E2F: { \u5E45: w - 4, \u9AD8\u3055: BROKERAGE_TICK_INNER_H }
|
|
18257
|
+
}
|
|
18258
|
+
];
|
|
18259
|
+
const \u7D75 = (\u500D\u7387) => {
|
|
18260
|
+
const \u500D = \u6253\u3061\u6D88\u3057\u306E\u500D\u7387(\u500D\u7387, \u6253\u3061\u6D88\u3059\u5B57\u3089);
|
|
18261
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
|
|
18262
|
+
/* @__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" }),
|
|
18263
|
+
/* @__PURE__ */ jsxRuntime.jsx("rect", { "data-cdl-role": "node-body", x, y, width: w, height: h, fill: "#255a7a", stroke: accentDarker, strokeWidth: frame.strokeWidth }),
|
|
18264
|
+
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: x - BROKERAGE_SHADE_OUT, y, width: BROKERAGE_SHADE_OUT * 2, height: h, fill: accentDarker }),
|
|
18265
|
+
/* @__PURE__ */ jsxRuntime.jsx("rect", { x, y, width: w, height: BROKERAGE_TICK_H, fill: "#0f1830", stroke: "none" }),
|
|
18266
|
+
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: x + 2, y: y + 2, width: w - 4, height: 8, fill: "#1a2340", stroke: "none" }),
|
|
18267
|
+
/* @__PURE__ */ jsxRuntime.jsx("text", { "data-cdl-counter-scaled": "1", x: cx, y: y + 9, fontSize: BROKERAGE_TICKER_SIZE * \u500D, fontWeight: 700, textAnchor: "middle", fill: "#4ea36a", fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace", children: \u5B57\u5F15("brokerage.ticker") }),
|
|
18268
|
+
/* @__PURE__ */ jsxRuntime.jsx("rect", { x, y: y + BROKERAGE_TICK_H, width: w, height: BROKERAGE_LOGO_H, fill: "#e5c07b", stroke: "none" }),
|
|
18269
|
+
/* @__PURE__ */ jsxRuntime.jsx("text", { "data-cdl-counter-scaled": "0", x: cx, y: y + 30, fontSize: BROKERAGE_SIGN_SIZE, fontWeight: 700, letterSpacing: 2.5, textAnchor: "middle", fill: "#0f1830", children: \u5B57\u5F15("brokerage.sign") }),
|
|
18270
|
+
Array.from({ length: rows }).map(
|
|
18271
|
+
(_, ri) => Array.from({ length: cols }).map((_2, ci) => {
|
|
18272
|
+
const wx = gridStartX + ci * (cellW + gapX);
|
|
18273
|
+
const wy = gridStartY + ri * (cellH + gapY);
|
|
18274
|
+
const isGold = goldCells.has(`${ri},${ci}`);
|
|
18275
|
+
return /* @__PURE__ */ jsxRuntime.jsx("rect", { x: wx, y: wy, width: cellW, height: cellH, fill: isGold ? "#e5c07b" : accentDarker }, `w${ri}${ci}`);
|
|
18276
|
+
})
|
|
18277
|
+
),
|
|
18278
|
+
/* @__PURE__ */ jsxRuntime.jsx("rect", { x, y: y + h - BROKERAGE_BASE_H, width: w, height: 12, fill: accentDarker }),
|
|
18279
|
+
/* @__PURE__ */ jsxRuntime.jsx("circle", { cx, cy: y + h - 8, r: 12, fill: "#a89d8f", stroke: accentDarker, strokeWidth: 1.5 }),
|
|
18280
|
+
/* @__PURE__ */ jsxRuntime.jsx("circle", { cx, cy: y + h - 8, r: 9, fill: "#8b949e", stroke: accentDarker, strokeWidth: 1 }),
|
|
18281
|
+
/* @__PURE__ */ jsxRuntime.jsx("line", { x1: cx - 9, y1: y + h - 8, x2: cx + 9, y2: y + h - 8, stroke: accentDarker, strokeWidth: 0.8 }),
|
|
18282
|
+
/* @__PURE__ */ jsxRuntime.jsx("line", { x1: cx, y1: y + h - 17, x2: cx, y2: y + h - 1, stroke: accentDarker, strokeWidth: 0.8 }),
|
|
18283
|
+
/* @__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" })
|
|
18284
|
+
] });
|
|
18285
|
+
};
|
|
18201
18286
|
return /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
|
|
18202
18287
|
fitArt(r, \u5E83\u304C\u308A, \u7D75),
|
|
18203
18288
|
bottomLabel3(node, r.cx, r.label)
|
|
18204
18289
|
] });
|
|
18205
18290
|
}
|
|
18291
|
+
var EXCHANGE_SUB_SIZE = 8;
|
|
18206
18292
|
function ShapeExchangeNode({ node, active, lang }) {
|
|
18207
18293
|
const \u5B57\u5F15 = \u5B57\u5F15\u304D\u3092\u4F5C\u308B(lang);
|
|
18208
18294
|
const frame = commonFrame5(active);
|
|
@@ -18230,7 +18316,7 @@ function ShapeExchangeNode({ node, active, lang }) {
|
|
|
18230
18316
|
const hexPath = hexPoints.map((p, i) => `${i === 0 ? "M" : "L"} ${p.x} ${p.y}`).join(" ") + " Z";
|
|
18231
18317
|
const \u7BC0\u70B9 = Math.max(0, nodeR) + 8 + 1.5 / 2;
|
|
18232
18318
|
const \u516D\u89D2 = hexR + frame.strokeWidth / 2;
|
|
18233
|
-
const \u5B57\u4E0B = 26 +
|
|
18319
|
+
const \u5B57\u4E0B = 26 + EXCHANGE_SUB_SIZE * 0.25;
|
|
18234
18320
|
const \u5916 = Math.max(\u7BC0\u70B9, \u516D\u89D2);
|
|
18235
18321
|
const \u305A\u308C = cy - r.cy;
|
|
18236
18322
|
const \u5E83\u304C\u308A = {
|
|
@@ -18239,21 +18325,27 @@ function ShapeExchangeNode({ node, active, lang }) {
|
|
|
18239
18325
|
\u5DE6: \u5916,
|
|
18240
18326
|
\u53F3: \u5916
|
|
18241
18327
|
};
|
|
18242
|
-
const \
|
|
18243
|
-
|
|
18244
|
-
|
|
18245
|
-
|
|
18246
|
-
|
|
18247
|
-
|
|
18248
|
-
|
|
18249
|
-
|
|
18250
|
-
|
|
18251
|
-
|
|
18252
|
-
|
|
18253
|
-
|
|
18254
|
-
|
|
18255
|
-
|
|
18256
|
-
|
|
18328
|
+
const \u6253\u3061\u6D88\u3059\u5B57\u3089 = [
|
|
18329
|
+
{ text: \u5B57\u5F15("exchange.sub"), size: EXCHANGE_SUB_SIZE, \u5E2F: { \u5E45: \u5916 * 2, \u9AD8\u3055: 14 } }
|
|
18330
|
+
];
|
|
18331
|
+
const \u7D75 = (\u500D\u7387) => {
|
|
18332
|
+
const \u500D = \u6253\u3061\u6D88\u3057\u306E\u500D\u7387(\u500D\u7387, \u6253\u3061\u6D88\u3059\u5B57\u3089);
|
|
18333
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
|
|
18334
|
+
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}`)),
|
|
18335
|
+
nodes.map((n, i) => {
|
|
18336
|
+
const isGreen = i % 2 === 0;
|
|
18337
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("circle", { r: 4, fill: isGreen ? "#4ea36a" : "#c15a4a", stroke: "none", children: [
|
|
18338
|
+
/* @__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` }),
|
|
18339
|
+
/* @__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` })
|
|
18340
|
+
] }, `d${i}`);
|
|
18341
|
+
}),
|
|
18342
|
+
/* @__PURE__ */ jsxRuntime.jsx("path", { d: hexPath, fill: "#255a7a", stroke: accentDarker, strokeWidth: frame.strokeWidth, strokeLinejoin: "round" }),
|
|
18343
|
+
/* @__PURE__ */ jsxRuntime.jsx("text", { "data-cdl-counter-scaled": "0", x: cx, y: cy - 8, fontSize: 10, fontWeight: 700, letterSpacing: 2, textAnchor: "middle", fill: "#e5c07b", children: \u5B57\u5F15("exchange.sign") }),
|
|
18344
|
+
/* @__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" }),
|
|
18345
|
+
/* @__PURE__ */ jsxRuntime.jsx("text", { "data-cdl-counter-scaled": "1", x: cx, y: cy + 26, fontSize: EXCHANGE_SUB_SIZE * \u500D, fontWeight: 700, textAnchor: "middle", fill: "#a4b5f2", children: \u5B57\u5F15("exchange.sub") }),
|
|
18346
|
+
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}`))
|
|
18347
|
+
] });
|
|
18348
|
+
};
|
|
18257
18349
|
return /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
|
|
18258
18350
|
fitArt(r, \u5E83\u304C\u308A, \u7D75),
|
|
18259
18351
|
bottomLabel3(node, r.cx, r.label)
|
|
@@ -18308,13 +18400,13 @@ function ShapeAtmNode({ node, active, lang }) {
|
|
|
18308
18400
|
const \u7D75 = /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
|
|
18309
18401
|
/* @__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" }),
|
|
18310
18402
|
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: centerX - totalW / 2, y: signY, width: totalW, height: signH, fill: accentDarker, stroke: "#000", strokeWidth: ATM_SIGN_SW }),
|
|
18311
|
-
/* @__PURE__ */ jsxRuntime.jsx("text", { x: centerX, y: signY + 17, fontSize: 11, fontWeight: 700, letterSpacing: 2, textAnchor: "middle", fill: "#e5c07b", children: \u5B57\u5F15("atm.sign") }),
|
|
18403
|
+
/* @__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") }),
|
|
18312
18404
|
/* @__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 }),
|
|
18313
18405
|
/* @__PURE__ */ jsxRuntime.jsxs("g", { transform: `translate(${centerX} ${atmY}) scale(${\u9762})`, children: [
|
|
18314
18406
|
/* @__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 }),
|
|
18315
|
-
/* @__PURE__ */ jsxRuntime.jsx("text", { x: 0, y: 30, fontSize: 10, fontWeight: 700, letterSpacing: 1, textAnchor: "middle", fill: "#e5c07b", children: "\u304A\u5F15\u51FA\u3057" }),
|
|
18316
|
-
/* @__PURE__ */ jsxRuntime.jsx("text", { x: 0, y: 44, fontSize: 8, fontWeight: 700, textAnchor: "middle", fill: "#a4b5f2", children: \u5B57\u5F15("atm.screen") }),
|
|
18317
|
-
/* @__PURE__ */ jsxRuntime.jsx("text", { x: 0, y: 56, fontSize: 10, fontWeight: 700, textAnchor: "middle", fill: "#4ea36a", children: "\xA5 20,000" }),
|
|
18407
|
+
/* @__PURE__ */ jsxRuntime.jsx("text", { "data-cdl-counter-scaled": "0", x: 0, y: 30, fontSize: 10, fontWeight: 700, letterSpacing: 1, textAnchor: "middle", fill: "#e5c07b", children: "\u304A\u5F15\u51FA\u3057" }),
|
|
18408
|
+
/* @__PURE__ */ jsxRuntime.jsx("text", { "data-cdl-counter-scaled": "0", x: 0, y: 44, fontSize: 8, fontWeight: 700, textAnchor: "middle", fill: "#a4b5f2", children: \u5B57\u5F15("atm.screen") }),
|
|
18409
|
+
/* @__PURE__ */ jsxRuntime.jsx("text", { "data-cdl-counter-scaled": "0", x: 0, y: 56, fontSize: 10, fontWeight: 700, textAnchor: "middle", fill: "#4ea36a", children: "\xA5 20,000" }),
|
|
18318
18410
|
/* @__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 }),
|
|
18319
18411
|
(() => {
|
|
18320
18412
|
const keys = [
|
|
@@ -18340,7 +18432,7 @@ function ShapeAtmNode({ node, active, lang }) {
|
|
|
18340
18432
|
const ky = 74 + row * (keyH + 2);
|
|
18341
18433
|
return /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
|
|
18342
18434
|
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: kx, y: ky, width: keyW, height: keyH, fill: k[1], stroke: "#0f1830", strokeWidth: 0.8 }),
|
|
18343
|
-
/* @__PURE__ */ jsxRuntime.jsx("text", { x: kx + keyW / 2, y: ky + 7, fontSize: (
|
|
18435
|
+
/* @__PURE__ */ jsxRuntime.jsx("text", { "data-cdl-counter-scaled": "0", x: kx + keyW / 2, y: ky + 7, fontSize: (
|
|
18344
18436
|
/* 決める鍵 (末尾) は 2 字あるので小さく描く。 字は言語で変わるため位置で見分ける */
|
|
18345
18437
|
i === keys.length - 1 ? 6 : 7
|
|
18346
18438
|
), fontWeight: 700, textAnchor: "middle", fill: "#ffffff", children: k[0] })
|
|
@@ -18349,7 +18441,7 @@ function ShapeAtmNode({ node, active, lang }) {
|
|
|
18349
18441
|
})(),
|
|
18350
18442
|
/* @__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 }),
|
|
18351
18443
|
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: \u9762\u5DE6 + 15, y: 118, width: ATM_PANEL_W - 30, height: 4, rx: 0.5, fill: "#e5c07b" }),
|
|
18352
|
-
/* @__PURE__ */ jsxRuntime.jsx("text", { x: 0, y: 132, fontSize: 6, fontWeight: 700, letterSpacing: 1, textAnchor: "middle", fill: "#e5c07b", children: \u5B57\u5F15("atm.cardSlot") }),
|
|
18444
|
+
/* @__PURE__ */ jsxRuntime.jsx("text", { "data-cdl-counter-scaled": "0", x: 0, y: 132, fontSize: 6, fontWeight: 700, letterSpacing: 1, textAnchor: "middle", fill: "#e5c07b", children: \u5B57\u5F15("atm.cardSlot") }),
|
|
18353
18445
|
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: \u9762\u5DE6 + 12, y: 136, width: ATM_PANEL_W - 24, height: 4, rx: 1, fill: "#0f1830" })
|
|
18354
18446
|
] }),
|
|
18355
18447
|
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: centerX - totalW / 2, y: floorY, width: totalW, height: 6, fill: "#8b949e", stroke: "none" }),
|
|
@@ -18522,7 +18614,7 @@ function ShapeWarehouseNode({ node, active, lang }) {
|
|
|
18522
18614
|
/* @__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" }),
|
|
18523
18615
|
/* @__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 }),
|
|
18524
18616
|
/* @__PURE__ */ jsxRuntime.jsx("rect", { x, y: y + roofH, width: bw, height: signH, fill: "#c15a4a", stroke: "#8b3f2f", strokeWidth: 1.5 }),
|
|
18525
|
-
/* @__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") }),
|
|
18617
|
+
/* @__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") }),
|
|
18526
18618
|
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: shutterX, y: shutterY, width: shutterW, height: shutterH, fill: "#8b949e", stroke: accentDarker, strokeWidth: 2 }),
|
|
18527
18619
|
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: shutterX, y: shutterY, width: shutterW, height: 5, fill: "#5a6270", stroke: "none" }),
|
|
18528
18620
|
Array.from({ length: 10 }, (_, i) => i).map((i) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -18677,6 +18769,10 @@ var API_ROW_PITCH_MIN = 30;
|
|
|
18677
18769
|
var API_ROW_BOTTOM_PAD = 12;
|
|
18678
18770
|
var API_ROWS = 3;
|
|
18679
18771
|
var API_H_MIN = API_ROW_TOP + (API_ROWS - 1) * API_ROW_PITCH_MIN + API_ROW_H + API_ROW_BOTTOM_PAD;
|
|
18772
|
+
var API_PATH_SIZE = 12;
|
|
18773
|
+
var API_SIGN_SIZE = 14;
|
|
18774
|
+
var API_METHOD_BOX_W = 54;
|
|
18775
|
+
var API_METHOD_TEXT_W = 48;
|
|
18680
18776
|
var API_W_MIN = 200;
|
|
18681
18777
|
var API_W_MAX = 300;
|
|
18682
18778
|
function ShapeApiGatewayNode({ node, active, lang }) {
|
|
@@ -18691,28 +18787,37 @@ function ShapeApiGatewayNode({ node, active, lang }) {
|
|
|
18691
18787
|
const x = cx - bw / 2;
|
|
18692
18788
|
const y = r.cy - \u7E26 / 2 + \u4F59\u767D;
|
|
18693
18789
|
const \u5E83\u304C\u308A = { \u4E0A: \u7E26 / 2, \u4E0B: \u7E26 / 2, \u5DE6: bw / 2 + \u4F59\u767D, \u53F3: bw / 2 + \u4F59\u767D };
|
|
18694
|
-
const \u7A2E\u985E\u306E\u5B57 = (s) => Math.min(11, 11 *
|
|
18790
|
+
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)));
|
|
18695
18791
|
const rowPitch = Math.max(
|
|
18696
18792
|
API_ROW_PITCH_MIN,
|
|
18697
18793
|
(bh - API_ROW_TOP - API_ROW_H - API_ROW_BOTTOM_PAD) / (API_ROWS - 1)
|
|
18698
18794
|
);
|
|
18699
|
-
const \
|
|
18700
|
-
|
|
18701
|
-
|
|
18702
|
-
|
|
18703
|
-
|
|
18704
|
-
|
|
18705
|
-
|
|
18706
|
-
|
|
18707
|
-
|
|
18708
|
-
|
|
18709
|
-
|
|
18710
|
-
|
|
18711
|
-
|
|
18712
|
-
/* @__PURE__ */ jsxRuntime.jsx("
|
|
18713
|
-
/* @__PURE__ */ jsxRuntime.jsx("
|
|
18714
|
-
|
|
18715
|
-
|
|
18795
|
+
const \u884C\u3089 = [
|
|
18796
|
+
{ method: "GET", path: \u5B57\u5F15("apiGateway.users"), color: "#27c93f" },
|
|
18797
|
+
{ method: "POST", path: \u5B57\u5F15("apiGateway.orders"), color: "#e5c07b" },
|
|
18798
|
+
{ method: \u5B57\u5F15("apiGateway.delete"), path: \u5B57\u5F15("apiGateway.session"), color: "#c9302c" }
|
|
18799
|
+
];
|
|
18800
|
+
const \u6253\u3061\u6D88\u3059\u5B57\u3089 = \u884C\u3089.map((e) => ({
|
|
18801
|
+
text: e.path,
|
|
18802
|
+
size: API_PATH_SIZE,
|
|
18803
|
+
\u5E2F: { \u5E45: bw - 32 - 64 - 16, \u9AD8\u3055: API_ROW_H }
|
|
18804
|
+
}));
|
|
18805
|
+
const \u7D75 = (\u500D\u7387) => {
|
|
18806
|
+
const \u500D = \u6253\u3061\u6D88\u3057\u306E\u500D\u7387(\u500D\u7387, \u6253\u3061\u6D88\u3059\u5B57\u3089);
|
|
18807
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
|
|
18808
|
+
/* @__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" }),
|
|
18809
|
+
/* @__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 }),
|
|
18810
|
+
/* @__PURE__ */ jsxRuntime.jsx("rect", { x, y, width: bw, height: 36, rx: 10, fill: "var(--cdl-tone-accent, #2d6a8f)", stroke: "none" }),
|
|
18811
|
+
/* @__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") }),
|
|
18812
|
+
\u884C\u3089.map((e, i) => /* @__PURE__ */ jsxRuntime.jsxs("g", { transform: `translate(${x + 16}, ${y + API_ROW_TOP + i * rowPitch})`, children: [
|
|
18813
|
+
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: 0, y: 0, width: bw - 32, height: API_ROW_H, rx: 4, fill: "#0f1419", stroke: "none" }),
|
|
18814
|
+
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: 0, y: 0, width: API_METHOD_BOX_W, height: API_ROW_H, rx: 4, fill: e.color, stroke: "none" }),
|
|
18815
|
+
/* @__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 }),
|
|
18816
|
+
/* @__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 }),
|
|
18817
|
+
/* @__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" }) })
|
|
18818
|
+
] }, i))
|
|
18819
|
+
] });
|
|
18820
|
+
};
|
|
18716
18821
|
return /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
|
|
18717
18822
|
fitArt(r, \u5E83\u304C\u308A, \u7D75),
|
|
18718
18823
|
bottomLabel4(node, r.cx, r.label)
|
|
@@ -18932,11 +19037,11 @@ function ShapeNotaryNode({ node, active }) {
|
|
|
18932
19037
|
/* @__PURE__ */ jsxRuntime.jsx("line", { x1: chestX - 14, y1: chestY + 14, x2: chestX + 14, y2: chestY + 14, stroke: "#8b949e", strokeWidth: 1 }),
|
|
18933
19038
|
/* @__PURE__ */ jsxRuntime.jsx("line", { x1: chestX - 14, y1: chestY + 22, x2: chestX + 8, y2: chestY + 22, stroke: "#8b949e", strokeWidth: 1 }),
|
|
18934
19039
|
/* @__PURE__ */ jsxRuntime.jsx("line", { x1: chestX - 14, y1: chestY + 34, x2: chestX + 2, y2: chestY + 34, stroke: "#0f3450", strokeWidth: 1.5 }),
|
|
18935
|
-
/* @__PURE__ */ jsxRuntime.jsx("text", { x: chestX + 6, y: chestY + 37, fontSize: 8, fill: "#0f3450", fontFamily: "cursive", fontStyle: "italic", children: "\u2713" }),
|
|
19040
|
+
/* @__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" }),
|
|
18936
19041
|
haloBadge(bx, by, `nt-halo-${node.id}`, "#c15a4a", /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
|
|
18937
19042
|
/* @__PURE__ */ jsxRuntime.jsx("circle", { cx: 0, cy: 0, r: 12, fill: "#c15a4a", stroke: "none" }),
|
|
18938
19043
|
/* @__PURE__ */ jsxRuntime.jsx("circle", { cx: 0, cy: 0, r: 8, fill: "none", stroke: "#ffffff", strokeWidth: 1.2 }),
|
|
18939
|
-
/* @__PURE__ */ jsxRuntime.jsx("text", { x: 0, y: 4, fontFamily: "Georgia, serif", fontSize: 10, fontWeight: 700, fill: "#ffffff", textAnchor: "middle", children: "\u5370" })
|
|
19044
|
+
/* @__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" })
|
|
18940
19045
|
] }))
|
|
18941
19046
|
] })),
|
|
18942
19047
|
bottomLabel5(node, r.cx, r.label)
|
|
@@ -18995,7 +19100,7 @@ function ShapeCustomerServiceNode({ node, active }) {
|
|
|
18995
19100
|
p.render,
|
|
18996
19101
|
collarV(cx, cy, p.strokeColor),
|
|
18997
19102
|
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: chestX - 22, y: chestY + 5, width: 44, height: 22, rx: 11, fill: "#e5c07b", stroke: "#a67c00", strokeWidth: 2 }),
|
|
18998
|
-
/* @__PURE__ */ jsxRuntime.jsx("text", { x: chestX, y: chestY + 20, fontSize: 12, fontWeight: 900, fill: "#5a3a10", textAnchor: "middle", letterSpacing: 2, children: "24H" }),
|
|
19103
|
+
/* @__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" }),
|
|
18999
19104
|
haloBadge(bx, by, `cs-halo-${node.id}`, "#a67c00", /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
|
|
19000
19105
|
/* @__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" }),
|
|
19001
19106
|
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: -13, y: 2, width: 6, height: 11, rx: 1.5, fill: "#e5c07b", stroke: "#a67c00", strokeWidth: 1.5 }),
|