@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/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 art;
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 art;
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 art;
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 art;
3054
- return /* @__PURE__ */ jsxRuntime.jsx("g", { transform: `translate(${dx} ${dy}) scale(${s})`, children: art });
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) => Math.max(displayWidth(text) * size * MONO_ADVANCE_RATIO, textWidth(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 art = /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
17484
- /* @__PURE__ */ jsxRuntime.jsx("rect", { x: x + 6, y: y + 6, width: bw, height: bh, rx: 8, fill: frame.stroke, opacity: 0.2, stroke: "none" }),
17485
- /* @__PURE__ */ jsxRuntime.jsx("rect", { "data-cdl-role": "node-body", x, y, width: bw, height: bh, rx: 8, ...frame }),
17486
- /* @__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" }),
17487
- /* @__PURE__ */ jsxRuntime.jsx("text", { "data-cdl-role": "blockchain-block-title", x: x + 14, y: y + 22, fontSize: 13, fontWeight: 700, fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace", fill: "#ffffff", children: \u5E45\u3067\u5207\u308B(\u898B\u51FA\u3057, 13, \u898B\u51FA\u3057\u306E\u5E45, \u5B57\u306E\u5E45) }),
17488
- /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: x + bw - 16, cy: y + 16, r: 5.5, fill: "#7cd88f", stroke: "#ffffff", strokeWidth: 1.5 }),
17489
- fields.map((f, i) => /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
17490
- /* @__PURE__ */ jsxRuntime.jsx("text", { x: x + 14, y: y + 54 + i * 22, fontSize: 10.5, fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace", fill: "var(--cdl-text-dim, #5a6270)", children: f.label }),
17491
- /* @__PURE__ */ jsxRuntime.jsx("text", { "data-cdl-role": `blockchain-block-${f.key}`, x: x + bw - 14, y: y + 54 + i * 22, fontSize: 11, fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace", fontWeight: 600, textAnchor: "end", fill: "var(--cdl-text, #1a1f2a)", children: \u5E45\u3067\u5207\u308B(f.value, 11, bw - 28 - \u5B57\u306E\u5E45(f.label, 10.5) - 8, \u5B57\u306E\u5E45) }),
17492
- /* @__PURE__ */ jsxRuntime.jsx("line", { x1: x + 14, y1: y + 60 + i * 22, x2: x + bw - 14, y2: y + 60 + i * 22, stroke: "var(--cdl-divider, #d4d4d8)", strokeWidth: 0.5, opacity: 0.5 })
17493
- ] }, i)),
17494
- /* @__PURE__ */ jsxRuntime.jsxs("g", { transform: `translate(${cx - 32}, ${y + bh - 26})`, children: [
17495
- /* @__PURE__ */ jsxRuntime.jsx("rect", { x: 0, y: 0, width: 22, height: 18, rx: 3, fill: "none", stroke: frame.stroke, strokeWidth: 1.5 }),
17496
- /* @__PURE__ */ jsxRuntime.jsx("line", { x1: 22, y1: 9, x2: 42, y2: 9, stroke: frame.stroke, strokeWidth: 1.5 }),
17497
- /* @__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 })
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 }) {