@cardenelabs/cdl 0.72.0 → 0.74.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 +68 -1
- package/dist/index.cjs +77 -23
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +77 -23
- package/dist/index.js.map +1 -1
- package/dist/react.cjs +137 -83
- package/dist/react.cjs.map +1 -1
- package/dist/react.js +137 -83
- package/dist/react.js.map +1 -1
- package/package.json +1 -1
- package/src/kinds/shape-blockchain.tsx +58 -12
- package/src/kinds/shape-region.tsx +113 -7
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;
|
|
@@ -3038,20 +3098,52 @@ function fitLabel(band, block, pos) {
|
|
|
3038
3098
|
};
|
|
3039
3099
|
}
|
|
3040
3100
|
function fitArt(region, extent, art) {
|
|
3101
|
+
const \u7D44\u3080 = (k) => typeof art === "function" ? art(k) : art;
|
|
3041
3102
|
const \u7E26 = extent.\u4E0A + extent.\u4E0B;
|
|
3042
3103
|
const \u6A2A = extent.\u5DE6 + extent.\u53F3;
|
|
3043
|
-
if (!Number.isFinite(\u7E26) || !Number.isFinite(\u6A2A) || \u7E26 <= 0 || \u6A2A <= 0) return
|
|
3104
|
+
if (!Number.isFinite(\u7E26) || !Number.isFinite(\u6A2A) || \u7E26 <= 0 || \u6A2A <= 0) return \u7D44\u3080(1);
|
|
3044
3105
|
if (!Number.isFinite(region.availH) || !Number.isFinite(region.availW) || region.availH <= 0 || region.availW <= 0) {
|
|
3045
|
-
return
|
|
3106
|
+
return \u7D44\u3080(1);
|
|
3046
3107
|
}
|
|
3047
3108
|
const s = Math.min(1, region.availH / \u7E26, region.availW / \u6A2A);
|
|
3048
|
-
if (!Number.isFinite(s) || s <= 0) return
|
|
3109
|
+
if (!Number.isFinite(s) || s <= 0) return \u7D44\u3080(1);
|
|
3049
3110
|
const \u7D75cx = region.cx + (extent.\u53F3 - extent.\u5DE6) / 2;
|
|
3050
3111
|
const \u7D75cy = region.cy + (extent.\u4E0B - extent.\u4E0A) / 2;
|
|
3051
3112
|
const dx = region.cx - s * \u7D75cx;
|
|
3052
3113
|
const dy = region.cy - s * \u7D75cy;
|
|
3053
|
-
if (s >= 1 && dx === 0 && dy === 0) return
|
|
3054
|
-
return
|
|
3114
|
+
if (s >= 1 && dx === 0 && dy === 0) return \u7D44\u3080(1);
|
|
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));
|
|
3055
3147
|
}
|
|
3056
3148
|
|
|
3057
3149
|
// src/kinds/compact-title.ts
|
|
@@ -9606,66 +9698,6 @@ function recomputeContainedLanes(lanes, nodes) {
|
|
|
9606
9698
|
});
|
|
9607
9699
|
}
|
|
9608
9700
|
|
|
9609
|
-
// src/kinds/row-align.ts
|
|
9610
|
-
var GENERIC_ROW_LEFT_SIZE_PX = 18;
|
|
9611
|
-
var GENERIC_ROW_RIGHT_SIZE_PX = 21;
|
|
9612
|
-
var MONO_ADVANCE_RATIO = 0.6;
|
|
9613
|
-
var STORAGE_CHAR_ADVANCE_PX = 26 * MONO_ADVANCE_RATIO;
|
|
9614
|
-
var ROW_PAD_X_PX = 26;
|
|
9615
|
-
var ROW_COL_GAP_PX = 16;
|
|
9616
|
-
var STORAGE_COL_GAP_PX = 32;
|
|
9617
|
-
var ROW_RIGHT_PAD_PX = 26;
|
|
9618
|
-
var DELIMITERS = [" -> ", " \u2192 ", " = ", ": ", ":"];
|
|
9619
|
-
function splitRow(row) {
|
|
9620
|
-
for (const d of DELIMITERS) {
|
|
9621
|
-
const idx = row.indexOf(d);
|
|
9622
|
-
if (idx > 0) {
|
|
9623
|
-
return {
|
|
9624
|
-
left: row.slice(0, idx).trim(),
|
|
9625
|
-
right: row.slice(idx + d.length).trim(),
|
|
9626
|
-
split: true
|
|
9627
|
-
};
|
|
9628
|
-
}
|
|
9629
|
-
}
|
|
9630
|
-
return { left: row.trim(), right: "", split: false };
|
|
9631
|
-
}
|
|
9632
|
-
function rowColumnWidth(text, size, mono) {
|
|
9633
|
-
return mono ? displayWidth(text) * size * MONO_ADVANCE_RATIO : textWidth(text, size);
|
|
9634
|
-
}
|
|
9635
|
-
function displayWidth(text) {
|
|
9636
|
-
let w = 0;
|
|
9637
|
-
for (const ch of text) {
|
|
9638
|
-
const code = ch.codePointAt(0) ?? 0;
|
|
9639
|
-
w += code >= 32 && code <= 126 ? 1 : 2;
|
|
9640
|
-
}
|
|
9641
|
-
return w;
|
|
9642
|
-
}
|
|
9643
|
-
function \u6841\u3067\u5272\u308B(text, \u6841) {
|
|
9644
|
-
let w = 0;
|
|
9645
|
-
let \u53D6\u3063\u305F = "";
|
|
9646
|
-
for (const ch of text) {
|
|
9647
|
-
const code = ch.codePointAt(0) ?? 0;
|
|
9648
|
-
const \u5B57\u306E\u6841 = code >= 32 && code <= 126 ? 1 : 2;
|
|
9649
|
-
if (w + \u5B57\u306E\u6841 > \u6841) break;
|
|
9650
|
-
w += \u5B57\u306E\u6841;
|
|
9651
|
-
\u53D6\u3063\u305F += ch;
|
|
9652
|
-
}
|
|
9653
|
-
return [\u53D6\u3063\u305F, text.slice(\u53D6\u3063\u305F.length)];
|
|
9654
|
-
}
|
|
9655
|
-
function \u6841\u3067\u7701\u304F(text, \u4E0A\u9650) {
|
|
9656
|
-
if (displayWidth(text) <= \u4E0A\u9650) return text;
|
|
9657
|
-
return `${\u6841\u3067\u5272\u308B(text, \u4E0A\u9650 - 1)[0]}\u2026`;
|
|
9658
|
-
}
|
|
9659
|
-
function requiredRowsWidth(rows, kind) {
|
|
9660
|
-
if (!rows || rows.length === 0) return 0;
|
|
9661
|
-
const splits = rows.map(splitRow);
|
|
9662
|
-
const \u4E00\u756A\u5E83\u3044 = (\u53D6\u308B) => splits.reduce((m, s) => Math.max(m, \u53D6\u308B(s)), 0);
|
|
9663
|
-
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;
|
|
9664
|
-
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;
|
|
9665
|
-
if (kind === void 0) return Math.ceil(Math.max(storage, generic));
|
|
9666
|
-
return Math.ceil(kind === "storage" ? storage : generic);
|
|
9667
|
-
}
|
|
9668
|
-
|
|
9669
9701
|
// src/layout/head-label.ts
|
|
9670
9702
|
var \u7AEF\u306E\u5B57\u3092\u623B\u3059\u8DDD\u96E2 = 22;
|
|
9671
9703
|
var \u7AEF\u306E\u5B57\u3068\u7DDA\u306E\u9699\u9593 = 8;
|
|
@@ -17305,6 +17337,11 @@ var SMART_CONTRACT_W = 220;
|
|
|
17305
17337
|
var SMART_CONTRACT_H = 220;
|
|
17306
17338
|
var BLOCK_W = 240;
|
|
17307
17339
|
var BLOCK_H = 220;
|
|
17340
|
+
var \u898B\u51FA\u3057\u306E\u5B57 = 13;
|
|
17341
|
+
var \u540D\u306E\u5B57 = 10.5;
|
|
17342
|
+
var \u5024\u306E\u5B57 = 11;
|
|
17343
|
+
var \u884C\u306E\u9593\u9694 = 22;
|
|
17344
|
+
var \u898B\u51FA\u3057\u306E\u5E2F = 32;
|
|
17308
17345
|
var BLOCK_SHADOW = 6;
|
|
17309
17346
|
var NFT_W = 220;
|
|
17310
17347
|
var NFT_H = 240;
|
|
@@ -17451,7 +17488,7 @@ function ShapeSmartContractNode({ node, active, lang }) {
|
|
|
17451
17488
|
bottomLabel2(node, r.cx, r.label)
|
|
17452
17489
|
] });
|
|
17453
17490
|
}
|
|
17454
|
-
var \u5B57\u306E\u5E45 = (text, size) =>
|
|
17491
|
+
var \u5B57\u306E\u5E45 = (text, size) => \u7D75\u306E\u4E2D\u306E\u5B57\u306E\u5E45(text, size);
|
|
17455
17492
|
var BLOCK_DEFAULT_FIELDS = [
|
|
17456
17493
|
{ key: "hash", label: "blockchainBlock.hash", value: { text: "0xaf31c9d2..." } },
|
|
17457
17494
|
{ key: "prev", label: "blockchainBlock.prev", value: { text: "0x7b3f92c1..." } },
|
|
@@ -17480,23 +17517,40 @@ function ShapeBlockchainBlockNode({ node, active, lang }) {
|
|
|
17480
17517
|
};
|
|
17481
17518
|
});
|
|
17482
17519
|
const \u898B\u51FA\u3057\u306E\u5E45 = bw - 14 - 30;
|
|
17483
|
-
const
|
|
17484
|
-
|
|
17485
|
-
|
|
17486
|
-
|
|
17487
|
-
|
|
17488
|
-
|
|
17489
|
-
|
|
17490
|
-
|
|
17491
|
-
|
|
17492
|
-
|
|
17493
|
-
|
|
17494
|
-
|
|
17495
|
-
|
|
17496
|
-
|
|
17497
|
-
|
|
17498
|
-
|
|
17499
|
-
|
|
17520
|
+
const \u6253\u3061\u6D88\u3059\u5B57\u3089 = [
|
|
17521
|
+
{ text: \u898B\u51FA\u3057, size: \u898B\u51FA\u3057\u306E\u5B57, \u5E2F: { \u5E45: \u898B\u51FA\u3057\u306E\u5E45, \u9AD8\u3055: \u898B\u51FA\u3057\u306E\u5E2F } },
|
|
17522
|
+
...fields.flatMap((f) => [
|
|
17523
|
+
{ text: f.label, size: \u540D\u306E\u5B57, \u5E2F: { \u5E45: bw - 28, \u9AD8\u3055: \u884C\u306E\u9593\u9694 } },
|
|
17524
|
+
{
|
|
17525
|
+
text: f.value,
|
|
17526
|
+
size: \u5024\u306E\u5B57,
|
|
17527
|
+
\u5E2F: { \u5E45: bw - 28 - \u5B57\u306E\u5E45(f.label, \u540D\u306E\u5B57) - 8, \u9AD8\u3055: \u884C\u306E\u9593\u9694 }
|
|
17528
|
+
}
|
|
17529
|
+
])
|
|
17530
|
+
];
|
|
17531
|
+
const art = (\u500D\u7387) => {
|
|
17532
|
+
const \u500D = \u6253\u3061\u6D88\u3057\u306E\u500D\u7387(\u500D\u7387, \u6253\u3061\u6D88\u3059\u5B57\u3089);
|
|
17533
|
+
const \u984C\u306E\u5927\u304D\u3055 = \u898B\u51FA\u3057\u306E\u5B57 * \u500D;
|
|
17534
|
+
const \u540D\u306E\u5927\u304D\u3055 = \u540D\u306E\u5B57 * \u500D;
|
|
17535
|
+
const \u5024\u306E\u5927\u304D\u3055 = \u5024\u306E\u5B57 * \u500D;
|
|
17536
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
|
|
17537
|
+
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: x + 6, y: y + 6, width: bw, height: bh, rx: 8, fill: frame.stroke, opacity: 0.2, stroke: "none" }),
|
|
17538
|
+
/* @__PURE__ */ jsxRuntime.jsx("rect", { "data-cdl-role": "node-body", x, y, width: bw, height: bh, rx: 8, ...frame }),
|
|
17539
|
+
/* @__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" }),
|
|
17540
|
+
/* @__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) }),
|
|
17541
|
+
/* @__PURE__ */ jsxRuntime.jsx("circle", { cx: x + bw - 16, cy: y + 16, r: 5.5, fill: "#7cd88f", stroke: "#ffffff", strokeWidth: 1.5 }),
|
|
17542
|
+
fields.map((f, i) => /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
|
|
17543
|
+
/* @__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 }),
|
|
17544
|
+
/* @__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) }),
|
|
17545
|
+
/* @__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 })
|
|
17546
|
+
] }, i)),
|
|
17547
|
+
/* @__PURE__ */ jsxRuntime.jsxs("g", { transform: `translate(${cx - 32}, ${y + bh - 26})`, children: [
|
|
17548
|
+
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: 0, y: 0, width: 22, height: 18, rx: 3, fill: "none", stroke: frame.stroke, strokeWidth: 1.5 }),
|
|
17549
|
+
/* @__PURE__ */ jsxRuntime.jsx("line", { x1: 22, y1: 9, x2: 42, y2: 9, stroke: frame.stroke, strokeWidth: 1.5 }),
|
|
17550
|
+
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: 42, y: 0, width: 22, height: 18, rx: 3, fill: "var(--cdl-tone-accent, #2d6a8f)", fillOpacity: 0.5, stroke: frame.stroke, strokeWidth: 1.5 })
|
|
17551
|
+
] })
|
|
17552
|
+
] });
|
|
17553
|
+
};
|
|
17500
17554
|
return /* @__PURE__ */ jsxRuntime.jsx("g", { children: fitArt(r, blockchainBlockExtent(frame.strokeWidth), art) });
|
|
17501
17555
|
}
|
|
17502
17556
|
function ShapeBlockchainNode({ node, active }) {
|