@cardenelabs/cdl 0.75.0 → 0.77.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 +82 -1
- package/dist/index.cjs +138 -91
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +138 -91
- package/dist/index.js.map +1 -1
- package/dist/react.cjs +138 -91
- package/dist/react.cjs.map +1 -1
- package/dist/react.js +138 -91
- package/dist/react.js.map +1 -1
- package/package.json +1 -1
- package/src/kinds/chart-pie.tsx +38 -9
- package/src/kinds/shape-blockchain.tsx +21 -15
- package/src/kinds/shape-commerce.tsx +5 -3
- package/src/kinds/shape-finance.tsx +64 -36
- package/src/kinds/shape-software.tsx +73 -36
- package/src/kinds/text-width.ts +12 -0
- package/src/lang.ts +18 -5
- package/src/visual-validate.ts +0 -5
package/dist/react.cjs
CHANGED
|
@@ -364,7 +364,14 @@ function resolveLang(value) {
|
|
|
364
364
|
}
|
|
365
365
|
var en = {
|
|
366
366
|
/** `shape-terminal` の 2 行目 (命令の出力) */
|
|
367
|
-
|
|
367
|
+
/*
|
|
368
|
+
* `shape-terminal` の出力の行。
|
|
369
|
+
*
|
|
370
|
+
* **いちばん長い行が絵の倍率を決める** (#891)。 端末の中身は自分の座標で組んでから箱へ
|
|
371
|
+
* 収めるので、この行が長いほど全部の字が小さくなる。 120x110 の箱では 20 字の版で
|
|
372
|
+
* 7.71 world まで落ちていた。
|
|
373
|
+
*/
|
|
374
|
+
"terminal.output": "\u2192 12 chunks",
|
|
368
375
|
/** `shape-code-block` の札の file 名 */
|
|
369
376
|
"codeBlock.fileName": "utils.ts",
|
|
370
377
|
/** `shape-kanban-card` の課題の番号 */
|
|
@@ -399,8 +406,14 @@ var en = {
|
|
|
399
406
|
"paymentProvider.sign": "PAY",
|
|
400
407
|
/** `shape-payment-provider` の状態の札 */
|
|
401
408
|
"paymentProvider.status": "PROCESSING",
|
|
402
|
-
/**
|
|
403
|
-
|
|
409
|
+
/**
|
|
410
|
+
* `shape-brokerage` の株価の帯。
|
|
411
|
+
*
|
|
412
|
+
* **1 銘柄に絞る** (#888)。 電光掲示板の内側は幅 136 しか無く、2 銘柄を指定 11 で描くと
|
|
413
|
+
* 幅 181 になってビルの外へ出る。 板が流れている雰囲気は帯そのもの (黒地に緑の等幅) が
|
|
414
|
+
* 担うので、銘柄を減らしても絵は変わらない。
|
|
415
|
+
*/
|
|
416
|
+
"brokerage.ticker": "\u25B2NKY 38,240",
|
|
404
417
|
/** `shape-brokerage` の看板 */
|
|
405
418
|
"brokerage.sign": "$ SECURITIES",
|
|
406
419
|
/** `shape-exchange` の看板 */
|
|
@@ -585,7 +598,7 @@ var en = {
|
|
|
585
598
|
"readout.trafficLight.green": "green"
|
|
586
599
|
};
|
|
587
600
|
var ja = {
|
|
588
|
-
"terminal.output": "\u2192
|
|
601
|
+
"terminal.output": "\u2192 12 \u500B\u3092\u7D50\u5408",
|
|
589
602
|
"codeBlock.fileName": "\u5171\u901A.ts",
|
|
590
603
|
"kanbanCard.id": "#1111",
|
|
591
604
|
"kanbanCard.status": "\u9032\u884C\u4E2D",
|
|
@@ -603,7 +616,7 @@ var ja = {
|
|
|
603
616
|
"trustBank.sign": "\u4FE1\u8A17",
|
|
604
617
|
"paymentProvider.sign": "\u6C7A\u6E08",
|
|
605
618
|
"paymentProvider.status": "\u51E6\u7406\u4E2D",
|
|
606
|
-
"brokerage.ticker": "\u25B2\u65E5\u7D4C 38,240
|
|
619
|
+
"brokerage.ticker": "\u25B2\u65E5\u7D4C 38,240",
|
|
607
620
|
"brokerage.sign": "\xA5 \u8A3C\u5238",
|
|
608
621
|
"exchange.sign": "\u53D6\u5F15\u6240",
|
|
609
622
|
"exchange.sub": "\u6E05\u7B97",
|
|
@@ -2872,6 +2885,7 @@ function textWidth(s, size, \u5B57\u9001\u308A = 0) {
|
|
|
2872
2885
|
}
|
|
2873
2886
|
return \u5E45 * size + \u5B57\u9001\u308A * \u5B57\u6570;
|
|
2874
2887
|
}
|
|
2888
|
+
var \u7E2E\u3093\u3060\u7D75\u306E\u5B57\u306E\u4E0B\u9650 = 8;
|
|
2875
2889
|
|
|
2876
2890
|
// src/kinds/row-align.ts
|
|
2877
2891
|
var GENERIC_ROW_LEFT_SIZE_PX = 18;
|
|
@@ -12716,6 +12730,11 @@ function \u5272\u5408\u8868\u8A18(frac) {
|
|
|
12716
12730
|
const v = Math.round(frac * 1e3) / 10;
|
|
12717
12731
|
return `${Number.isInteger(v) ? v : v.toFixed(1)}%`;
|
|
12718
12732
|
}
|
|
12733
|
+
var \u7A74\u306B\u5BFE\u3059\u308B\u4E0A\u9650 = 0.8;
|
|
12734
|
+
function \u4E2D\u592E\u306E\u5B57(\u6BD4\u4F8B\u3057\u305F\u5927\u304D\u3055, \u7A74\u306E\u534A\u5F84, \u6587) {
|
|
12735
|
+
const \u5165\u308B\u5927\u304D\u3055 = \u7A74\u306E\u534A\u5F84 * 2 * \u7A74\u306B\u5BFE\u3059\u308B\u4E0A\u9650 / Math.max(textWidth(\u6587, 1), 1e-6);
|
|
12736
|
+
return Math.min(Math.max(\u6BD4\u4F8B\u3057\u305F\u5927\u304D\u3055, \u7E2E\u3093\u3060\u7D75\u306E\u5B57\u306E\u4E0B\u9650), \u5165\u308B\u5927\u304D\u3055);
|
|
12737
|
+
}
|
|
12719
12738
|
function ChartPieNode({
|
|
12720
12739
|
node,
|
|
12721
12740
|
active,
|
|
@@ -12773,6 +12792,11 @@ function ChartPieNode({
|
|
|
12773
12792
|
const cx = node.w / 2;
|
|
12774
12793
|
const cy = PAD_TOP2 + chartAreaH / 2;
|
|
12775
12794
|
const \u524D\u306Eslices = \u524D\u3042\u308A ? \u8F2A\u3092\u7D44\u3080(data, cx, cy, \u524D\u306E\u5916\u534A\u5F84, \u524D\u306E\u5185\u534A\u5F84, \u524D\u306E\u5272\u5408) : [];
|
|
12795
|
+
const \u7A74 = \u524D\u3042\u308A ? \u524D\u306E\u5185\u534A\u5F84 : \u5916\u306E\u5185\u534A\u5F84;
|
|
12796
|
+
const \u5408\u8A08\u306E\u6587 = \u5B9F\u5024\u8868\u8A18(Math.round(\u524D\u3042\u308A ? \u4ECA\u306E\u5408\u8A08 : total));
|
|
12797
|
+
const \u5408\u8A08\u306E\u5B57 = \u4E2D\u592E\u306E\u5B57(Math.round(radius * 0.26), \u7A74, \u5408\u8A08\u306E\u6587);
|
|
12798
|
+
const \u898B\u51FA\u3057\u306E\u5B572 = \u4E2D\u592E\u306E\u5B57(Math.round(radius * 0.12), \u7A74, "\u5408\u8A08");
|
|
12799
|
+
const \u5408\u8A08\u306E\u4E0B = Math.max(Math.round(radius * 0.2), \u5408\u8A08\u306E\u5B57 * 0.25 + \u898B\u51FA\u3057\u306E\u5B572 * 0.8);
|
|
12776
12800
|
const slices = \u8F2A\u3092\u7D44\u3080(data, cx, cy, radius, \u5916\u306E\u5185\u534A\u5F84, \u4ECA\u306E\u5272\u5408);
|
|
12777
12801
|
const \u958B\u304D = \u9032\u307F\u3092\u7573\u3080(drawing, progress);
|
|
12778
12802
|
const \u5207\u308A\u629C\u304Did = `cdl-pie-draw-${instanceId}`;
|
|
@@ -12851,19 +12875,19 @@ function ChartPieNode({
|
|
|
12851
12875
|
x: cx,
|
|
12852
12876
|
y: cy - 2,
|
|
12853
12877
|
textAnchor: "middle",
|
|
12854
|
-
fontSize:
|
|
12878
|
+
fontSize: \u5408\u8A08\u306E\u5B57,
|
|
12855
12879
|
fontWeight: 600,
|
|
12856
12880
|
fill: "var(--cdl-text, #1a1f2a)",
|
|
12857
|
-
children: \
|
|
12881
|
+
children: \u5408\u8A08\u306E\u6587
|
|
12858
12882
|
}
|
|
12859
12883
|
),
|
|
12860
12884
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
12861
12885
|
"text",
|
|
12862
12886
|
{
|
|
12863
12887
|
x: cx,
|
|
12864
|
-
y: cy +
|
|
12888
|
+
y: cy + \u5408\u8A08\u306E\u4E0B,
|
|
12865
12889
|
textAnchor: "middle",
|
|
12866
|
-
fontSize:
|
|
12890
|
+
fontSize: \u898B\u51FA\u3057\u306E\u5B572,
|
|
12867
12891
|
fill: "var(--cdl-text-dim, #5a6270)",
|
|
12868
12892
|
children: "\u5408\u8A08"
|
|
12869
12893
|
}
|
|
@@ -13066,6 +13090,10 @@ function \u8868\u306E\u5F62({ node, active, data, \u5272\u5408, x0, y0, drawing,
|
|
|
13066
13090
|
const \u5185\u534A\u5F84 = R * 0.58;
|
|
13067
13091
|
const cx = PAD + R;
|
|
13068
13092
|
const cy = node.h / 2;
|
|
13093
|
+
const \u5408\u8A08\u306E\u6587 = \u5B9F\u5024\u8868\u8A18(Math.round(data.reduce((acc, d) => acc + d.value, 0)));
|
|
13094
|
+
const \u5408\u8A08\u306E\u5B57 = \u4E2D\u592E\u306E\u5B57(Math.round(R * 0.26), \u5185\u534A\u5F84, \u5408\u8A08\u306E\u6587);
|
|
13095
|
+
const \u898B\u51FA\u3057\u306E\u5B572 = \u4E2D\u592E\u306E\u5B57(Math.round(R * 0.12), \u5185\u534A\u5F84, "\u5408\u8A08");
|
|
13096
|
+
const \u5408\u8A08\u306E\u4E0B = Math.max(Math.round(R * 0.2), \u5408\u8A08\u306E\u5B57 * 0.25 + \u898B\u51FA\u3057\u306E\u5B572 * 0.8);
|
|
13069
13097
|
const \u8868\u5DE6 = node.w - PAD - \u8868\u5E45;
|
|
13070
13098
|
const \u53F3\u7AEF = node.w - PAD;
|
|
13071
13099
|
const \u5272\u5408\u53F3 = \u53F3\u7AEF - \u5B9F\u6570\u5E45 - 24;
|
|
@@ -13107,19 +13135,19 @@ function \u8868\u306E\u5F62({ node, active, data, \u5272\u5408, x0, y0, drawing,
|
|
|
13107
13135
|
x: cx,
|
|
13108
13136
|
y: cy - 2,
|
|
13109
13137
|
textAnchor: "middle",
|
|
13110
|
-
fontSize:
|
|
13138
|
+
fontSize: \u5408\u8A08\u306E\u5B57,
|
|
13111
13139
|
fontWeight: 600,
|
|
13112
13140
|
fill: "var(--cdl-text, #1a1f2a)",
|
|
13113
|
-
children: \
|
|
13141
|
+
children: \u5408\u8A08\u306E\u6587
|
|
13114
13142
|
}
|
|
13115
13143
|
),
|
|
13116
13144
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
13117
13145
|
"text",
|
|
13118
13146
|
{
|
|
13119
13147
|
x: cx,
|
|
13120
|
-
y: cy +
|
|
13148
|
+
y: cy + \u5408\u8A08\u306E\u4E0B,
|
|
13121
13149
|
textAnchor: "middle",
|
|
13122
|
-
fontSize:
|
|
13150
|
+
fontSize: \u898B\u51FA\u3057\u306E\u5B572,
|
|
13123
13151
|
fill: "var(--cdl-text-dim, #5a6270)",
|
|
13124
13152
|
children: "\u5408\u8A08"
|
|
13125
13153
|
}
|
|
@@ -15896,6 +15924,7 @@ function ShapeTerminalNode({ node, active, lang }) {
|
|
|
15896
15924
|
const lineFont = "ui-monospace, SFMono-Regular, Menlo, monospace";
|
|
15897
15925
|
const \u4F59\u767D = 16;
|
|
15898
15926
|
const \u5E2F = 28;
|
|
15927
|
+
const \u5E2F\u306E\u5B57 = 12.5;
|
|
15899
15928
|
const \u89D2 = 10;
|
|
15900
15929
|
const \u5148\u982D = 26;
|
|
15901
15930
|
const \u884C\u9593 = 22;
|
|
@@ -15905,7 +15934,7 @@ function ShapeTerminalNode({ node, active, lang }) {
|
|
|
15905
15934
|
{ \u5DE6: 16, \u5B57: 12.5, \u8272: "#7cd88f", \u6587: "$" },
|
|
15906
15935
|
{ \u5DE6: 30, \u5B57: 12.5, \u8272: "#e6edf3", \u6587: "pnpm build" }
|
|
15907
15936
|
],
|
|
15908
|
-
[{ \u5DE6: 16, \u5B57: 12, \u8272: "#8b95a5", \u6587: \u5B57\u5F15("terminal.output") }],
|
|
15937
|
+
[{ \u5DE6: 16, \u5B57: 12.5, \u8272: "#8b95a5", \u6587: \u5B57\u5F15("terminal.output") }],
|
|
15909
15938
|
[{ \u5DE6: 16, \u5B57: 12.5, \u8272: "#7cd88f", \u6587: "$" }]
|
|
15910
15939
|
];
|
|
15911
15940
|
const \u81EA\u7136\u5E45 = Math.max(...\u884C.flat().map((c) => c.\u5DE6 + \u7B49\u5E45\u306E\u6841(c.\u6587) * MONO_ADVANCE * c.\u5B57)) + \u4F59\u767D;
|
|
@@ -15947,7 +15976,7 @@ function ShapeTerminalNode({ node, active, lang }) {
|
|
|
15947
15976
|
{
|
|
15948
15977
|
x: x + w / 2,
|
|
15949
15978
|
y: y + barH / 2 + 4 * \u500D,
|
|
15950
|
-
fontSize:
|
|
15979
|
+
fontSize: \u5E2F\u306E\u5B57 * \u500D,
|
|
15951
15980
|
fontFamily: lineFont,
|
|
15952
15981
|
textAnchor: "middle",
|
|
15953
15982
|
fill: "#7a8290",
|
|
@@ -16038,6 +16067,7 @@ function ShapeCodeBlockNode({ node, active, lang }) {
|
|
|
16038
16067
|
const \u592A\u3055 = 9;
|
|
16039
16068
|
const \u9699\u9593 = 6;
|
|
16040
16069
|
const \u6301\u3061\u4E0A\u3052 = 8;
|
|
16070
|
+
const \u884C\u756A\u53F7\u306E\u5B57 = 11;
|
|
16041
16071
|
const lines = [
|
|
16042
16072
|
[
|
|
16043
16073
|
{ c: "#c678dd", w: 40 },
|
|
@@ -16060,14 +16090,13 @@ function ShapeCodeBlockNode({ node, active, lang }) {
|
|
|
16060
16090
|
{ c: "#e6edf3", w: 40 }
|
|
16061
16091
|
]
|
|
16062
16092
|
];
|
|
16063
|
-
const \
|
|
16064
|
-
|
|
16065
|
-
|
|
16066
|
-
)
|
|
16067
|
-
|
|
16068
|
-
|
|
16069
|
-
const \
|
|
16070
|
-
const \u500D = Math.min(1, w / \u81EA\u7136\u5E45, bodyH / \u81EA\u7136\u9AD8);
|
|
16093
|
+
const \u81EA\u7136\u9AD8 = \u30BF\u30D6\u9AD8 + \u884C\u982D + \u884C\u9593 * (lines.length - 1) + Math.max(\u592A\u3055 - \u6301\u3061\u4E0A\u3052, \u884C\u756A\u53F7\u306E\u5B57 * DESCENT3);
|
|
16094
|
+
const \u500D = Math.min(1, bodyH / \u81EA\u7136\u9AD8);
|
|
16095
|
+
const \u6253\u3061\u6D88\u3059\u5B57\u3089 = [
|
|
16096
|
+
{ text: \u5B57\u5F15("codeBlock.fileName"), size: 11, \u5E2F: { \u5E45: \u30BF\u30D6\u5E45, \u9AD8\u3055: \u30BF\u30D6\u9AD8 } },
|
|
16097
|
+
{ text: "1", size: \u884C\u756A\u53F7\u306E\u5B57, \u5E2F: { \u5E45: \u6E9D - \u6301\u3061\u4E0A\u3052, \u9AD8\u3055: \u884C\u9593 } }
|
|
16098
|
+
];
|
|
16099
|
+
const \u500D\u8FD4\u3057 = \u6253\u3061\u6D88\u3057\u306E\u500D\u7387(\u500D, \u6253\u3061\u6D88\u3059\u5B57\u3089);
|
|
16071
16100
|
const tabW = \u30BF\u30D6\u5E45 * \u500D;
|
|
16072
16101
|
const tabH = \u30BF\u30D6\u9AD8 * \u500D;
|
|
16073
16102
|
const \u4E38 = \u89D2 * \u500D;
|
|
@@ -16103,9 +16132,10 @@ function ShapeCodeBlockNode({ node, active, lang }) {
|
|
|
16103
16132
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
16104
16133
|
"text",
|
|
16105
16134
|
{
|
|
16135
|
+
"data-cdl-counter-scaled": "1",
|
|
16106
16136
|
x: x + tabW / 2,
|
|
16107
16137
|
y: y + tabH / 2 + 4 * \u500D,
|
|
16108
|
-
fontSize: 11 * \u500D,
|
|
16138
|
+
fontSize: 11 * \u500D * \u500D\u8FD4\u3057,
|
|
16109
16139
|
fontFamily: lineFont,
|
|
16110
16140
|
textAnchor: "middle",
|
|
16111
16141
|
fill: "#e6edf3",
|
|
@@ -16127,9 +16157,10 @@ function ShapeCodeBlockNode({ node, active, lang }) {
|
|
|
16127
16157
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
16128
16158
|
"text",
|
|
16129
16159
|
{
|
|
16160
|
+
"data-cdl-counter-scaled": "1",
|
|
16130
16161
|
x: x + gutterW - \u6301\u3061\u4E0A\u3052 * \u500D,
|
|
16131
16162
|
y: codeY0 + i * lineH,
|
|
16132
|
-
fontSize:
|
|
16163
|
+
fontSize: \u884C\u756A\u53F7\u306E\u5B57 * \u500D * \u500D\u8FD4\u3057,
|
|
16133
16164
|
fontFamily: lineFont,
|
|
16134
16165
|
textAnchor: "end",
|
|
16135
16166
|
fill: "#4a5266",
|
|
@@ -16137,12 +16168,13 @@ function ShapeCodeBlockNode({ node, active, lang }) {
|
|
|
16137
16168
|
}
|
|
16138
16169
|
),
|
|
16139
16170
|
toks.map((t, j) => {
|
|
16140
|
-
const
|
|
16171
|
+
const \u63CF\u304F\u5E45 = Math.min(t.w * \u500D, x + w - \u4F59\u767D * \u500D - cursor);
|
|
16172
|
+
const rect = \u63CF\u304F\u5E45 > 0 ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
16141
16173
|
"rect",
|
|
16142
16174
|
{
|
|
16143
16175
|
x: cursor,
|
|
16144
16176
|
y: codeY0 + i * lineH - \u6301\u3061\u4E0A\u3052 * \u500D,
|
|
16145
|
-
width:
|
|
16177
|
+
width: \u63CF\u304F\u5E45,
|
|
16146
16178
|
height: \u592A\u3055 * \u500D,
|
|
16147
16179
|
rx: 2 * \u500D,
|
|
16148
16180
|
fill: t.c,
|
|
@@ -16150,7 +16182,7 @@ function ShapeCodeBlockNode({ node, active, lang }) {
|
|
|
16150
16182
|
stroke: "none"
|
|
16151
16183
|
},
|
|
16152
16184
|
j
|
|
16153
|
-
);
|
|
16185
|
+
) : null;
|
|
16154
16186
|
cursor += (t.w + \u9699\u9593) * \u500D;
|
|
16155
16187
|
return rect;
|
|
16156
16188
|
})
|
|
@@ -16195,21 +16227,23 @@ function ShapeKanbanCardNode({ node, active, lang }) {
|
|
|
16195
16227
|
const w = Math.max(0, node.w - \u7DDA * 2 - \u5F71);
|
|
16196
16228
|
const h = Math.max(0, node.h - \u7DDA * 2 - \u5F71);
|
|
16197
16229
|
const \u5E2F\u9593\u4F59\u767D = 4;
|
|
16198
|
-
const \u5DE6\u53F3\u4F59\u767D =
|
|
16199
|
-
const \u4E0A\u6BB5\u9699\u9593 =
|
|
16230
|
+
const \u5DE6\u53F3\u4F59\u767D = 12;
|
|
16231
|
+
const \u4E0A\u6BB5\u9699\u9593 = 6;
|
|
16200
16232
|
const \u512A\u5148\u5E2F\u9AD8 = 10;
|
|
16201
16233
|
const ID\u6587 = \u5B57\u5F15("kanbanCard.id");
|
|
16202
16234
|
const ID\u57FA\u6E96 = 30;
|
|
16203
16235
|
const ID\u5B57 = 11;
|
|
16204
16236
|
const ID\u5B57\u9593 = 1;
|
|
16205
16237
|
const PILL\u4E0A = 20;
|
|
16206
|
-
const PILL\u5E45 =
|
|
16238
|
+
const PILL\u5E45 = 62;
|
|
16207
16239
|
const PILL\u9AD8 = 16;
|
|
16208
|
-
const PILL\u5B57 =
|
|
16240
|
+
const PILL\u5B57 = 11;
|
|
16241
|
+
const PILL\u5B57\u9593 = 0;
|
|
16209
16242
|
const FOOTER\u4E0B = 22;
|
|
16210
16243
|
const AVATAR\u4E2D\u5FC3Y = 4;
|
|
16211
16244
|
const AVATAR\u534A\u5F84 = 9;
|
|
16212
16245
|
const AVATAR\u67A0 = 1.5;
|
|
16246
|
+
const AVATAR\u5B57 = 11;
|
|
16213
16247
|
const \u540D\u524D\u5B57 = 17;
|
|
16214
16248
|
const \u8AAC\u660E\u57FA\u6E96\u6BD4 = 20 / 17;
|
|
16215
16249
|
const \u8AAC\u660E\u5B57\u6BD4 = 12 / 17;
|
|
@@ -16292,7 +16326,7 @@ function ShapeKanbanCardNode({ node, active, lang }) {
|
|
|
16292
16326
|
y: pillY + 12 * \u500D,
|
|
16293
16327
|
fontSize: PILL\u5B57 * \u500D,
|
|
16294
16328
|
fontWeight: 700,
|
|
16295
|
-
letterSpacing:
|
|
16329
|
+
letterSpacing: PILL\u5B57\u9593 * \u500D,
|
|
16296
16330
|
textAnchor: "middle",
|
|
16297
16331
|
fill: "#5a4a1a",
|
|
16298
16332
|
fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace",
|
|
@@ -16340,7 +16374,7 @@ function ShapeKanbanCardNode({ node, active, lang }) {
|
|
|
16340
16374
|
{
|
|
16341
16375
|
x: 9 * \u500D,
|
|
16342
16376
|
y: 8 * \u500D,
|
|
16343
|
-
fontSize:
|
|
16377
|
+
fontSize: AVATAR\u5B57 * \u500D,
|
|
16344
16378
|
fontWeight: 700,
|
|
16345
16379
|
textAnchor: "middle",
|
|
16346
16380
|
fill: "#ffffff",
|
|
@@ -16364,7 +16398,7 @@ function ShapeKanbanCardNode({ node, active, lang }) {
|
|
|
16364
16398
|
{
|
|
16365
16399
|
x: 23 * \u500D,
|
|
16366
16400
|
y: 8 * \u500D,
|
|
16367
|
-
fontSize:
|
|
16401
|
+
fontSize: AVATAR\u5B57 * \u500D,
|
|
16368
16402
|
fontWeight: 700,
|
|
16369
16403
|
textAnchor: "middle",
|
|
16370
16404
|
fill: "#ffffff",
|
|
@@ -17338,7 +17372,7 @@ var SMART_CONTRACT_H = 220;
|
|
|
17338
17372
|
var BLOCK_W = 240;
|
|
17339
17373
|
var BLOCK_H = 220;
|
|
17340
17374
|
var \u898B\u51FA\u3057\u306E\u5B57 = 13;
|
|
17341
|
-
var \u540D\u306E\u5B57 =
|
|
17375
|
+
var \u540D\u306E\u5B57 = 11;
|
|
17342
17376
|
var \u5024\u306E\u5B57 = 11;
|
|
17343
17377
|
var \u884C\u306E\u9593\u9694 = 22;
|
|
17344
17378
|
var \u898B\u51FA\u3057\u306E\u5E2F = 32;
|
|
@@ -17355,12 +17389,12 @@ var CHAIN_BLOCK_SW = 2.5;
|
|
|
17355
17389
|
var CHAIN_HEAD_H = 16;
|
|
17356
17390
|
var CHAIN_TEXT_W = CHAIN_BLOCK_W - 8;
|
|
17357
17391
|
var CHAIN_ROW_GAP = 14;
|
|
17358
|
-
var CHAIN_NO_SIZE =
|
|
17392
|
+
var CHAIN_NO_SIZE = 11;
|
|
17359
17393
|
var CONTRACT_CALL_SIZE = 11;
|
|
17360
17394
|
var NFT_ID_SIZE = 15;
|
|
17361
|
-
var CHAIN_HASH_SIZE =
|
|
17362
|
-
var BTC_NO_SIZE =
|
|
17363
|
-
var ETH_NO_SIZE =
|
|
17395
|
+
var CHAIN_HASH_SIZE = 11;
|
|
17396
|
+
var BTC_NO_SIZE = 11;
|
|
17397
|
+
var ETH_NO_SIZE = 11;
|
|
17364
17398
|
var NODE_HEX_R = 44;
|
|
17365
17399
|
var NODE_PEER_R = 12;
|
|
17366
17400
|
var NODE_PEER_GAP = 22;
|
|
@@ -17689,34 +17723,40 @@ function ShapeEthereumChainNode({ node, active }) {
|
|
|
17689
17723
|
const linkW = CHAIN_LINK_W;
|
|
17690
17724
|
const totalW = blockCount * blockW + (blockCount - 1) * linkW;
|
|
17691
17725
|
const startX = cx - totalW / 2;
|
|
17692
|
-
const
|
|
17693
|
-
|
|
17694
|
-
|
|
17695
|
-
|
|
17696
|
-
|
|
17697
|
-
|
|
17698
|
-
|
|
17699
|
-
|
|
17700
|
-
|
|
17701
|
-
|
|
17702
|
-
|
|
17703
|
-
|
|
17704
|
-
|
|
17705
|
-
|
|
17706
|
-
|
|
17707
|
-
|
|
17708
|
-
|
|
17709
|
-
|
|
17710
|
-
|
|
17711
|
-
|
|
17712
|
-
|
|
17713
|
-
|
|
17714
|
-
|
|
17715
|
-
|
|
17716
|
-
|
|
17717
|
-
|
|
17718
|
-
|
|
17719
|
-
|
|
17726
|
+
const \u6253\u3061\u6D88\u3059\u5B57\u3089 = [
|
|
17727
|
+
{ text: "#214", size: ETH_NO_SIZE, \u5E2F: { \u5E45: CHAIN_TEXT_W, \u9AD8\u3055: 20 } }
|
|
17728
|
+
];
|
|
17729
|
+
const art = (\u500D\u7387) => {
|
|
17730
|
+
const \u500D = \u6253\u3061\u6D88\u3057\u306E\u500D\u7387(\u500D\u7387, \u6253\u3061\u6D88\u3059\u5B57\u3089);
|
|
17731
|
+
return /* @__PURE__ */ jsxRuntime.jsx("g", { children: Array.from({ length: blockCount }, (_, i) => i).map((i) => {
|
|
17732
|
+
const bx = startX + i * (blockW + linkW);
|
|
17733
|
+
const isCurrent = i === blockCount - 1;
|
|
17734
|
+
const iconColors = isCurrent ? { light: "#ffffff", medium: "#e5e5f5", dark: "#c9c9e0", darker: "#a4a4c9", stroke: "#ffffff" } : { light: "#8a92b2", medium: "#62688f", dark: "#454a75", darker: "#3c3c3b", stroke: ethPurple };
|
|
17735
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
|
|
17736
|
+
i > 0 && /* @__PURE__ */ jsxRuntime.jsx("line", { x1: bx - linkW, y1: cy, x2: bx, y2: cy, stroke: ethPurple, strokeWidth: 3.5, strokeLinecap: "round" }),
|
|
17737
|
+
/* @__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" }),
|
|
17738
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
17739
|
+
"rect",
|
|
17740
|
+
{
|
|
17741
|
+
"data-cdl-role": i === 0 ? "node-body" : void 0,
|
|
17742
|
+
x: bx,
|
|
17743
|
+
y: cy - blockH / 2,
|
|
17744
|
+
width: blockW,
|
|
17745
|
+
height: blockH,
|
|
17746
|
+
rx: 4,
|
|
17747
|
+
fill: isCurrent ? ethPurple : "var(--cdl-node-fill, #ffffff)",
|
|
17748
|
+
stroke: ethPurple,
|
|
17749
|
+
strokeWidth: isCurrent ? 2.5 : 1.5
|
|
17750
|
+
}
|
|
17751
|
+
),
|
|
17752
|
+
/* @__PURE__ */ jsxRuntime.jsx(EthereumDiamond, { cx: bx + blockW / 2, cy: cy - 6, h: 16, colors: iconColors }),
|
|
17753
|
+
/* @__PURE__ */ jsxRuntime.jsxs("text", { "data-cdl-counter-scaled": "1", x: bx + blockW / 2, y: cy + 22, fontSize: ETH_NO_SIZE * \u500D, fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace", fontWeight: 700, textAnchor: "middle", fill: isCurrent ? "#ffffff" : "var(--cdl-text-dim, #5a6270)", children: [
|
|
17754
|
+
"#",
|
|
17755
|
+
214 + i
|
|
17756
|
+
] })
|
|
17757
|
+
] }, i);
|
|
17758
|
+
}) });
|
|
17759
|
+
};
|
|
17720
17760
|
return /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
|
|
17721
17761
|
fitArt(r, chainExtent(), art),
|
|
17722
17762
|
bottomLabel2(node, r.cx, r.label)
|
|
@@ -18167,7 +18207,7 @@ function ShapePaymentProviderNode({ node, active, lang }) {
|
|
|
18167
18207
|
/* @__PURE__ */ jsxRuntime.jsx("circle", { cx, cy: cy + 4, r: 10, fill: "#e5c07b", stroke: accentDarker, strokeWidth: 1.5 }),
|
|
18168
18208
|
/* @__PURE__ */ jsxRuntime.jsx("text", { x: cx, y: cy + 9, fontSize: 13, fontWeight: 700, textAnchor: "middle", fill: accentDarker, fontFamily: "Georgia, serif", children: "$" })
|
|
18169
18209
|
] }),
|
|
18170
|
-
/* @__PURE__ */ jsxRuntime.jsx("text", { x: cx, y: y + boxH - 16, fontSize:
|
|
18210
|
+
/* @__PURE__ */ jsxRuntime.jsx("text", { x: cx, y: y + boxH - 16, fontSize: 11, fontWeight: 700, letterSpacing: 2, textAnchor: "middle", fill: "#a4b5f2", children: \u5B57\u5F15("paymentProvider.status") }),
|
|
18171
18211
|
bottomLabel3(node, r.cx, r.label)
|
|
18172
18212
|
] });
|
|
18173
18213
|
}
|
|
@@ -18196,12 +18236,12 @@ function ShapeCreditCardNode({ node, active }) {
|
|
|
18196
18236
|
bottomLabel3(node, r.cx, r.label)
|
|
18197
18237
|
] });
|
|
18198
18238
|
}
|
|
18199
|
-
var BROKERAGE_TICK_H =
|
|
18239
|
+
var BROKERAGE_TICK_H = 18;
|
|
18200
18240
|
var BROKERAGE_LOGO_H = 26;
|
|
18201
|
-
var
|
|
18202
|
-
var
|
|
18241
|
+
var BROKERAGE_TICKER_SIZE = 11;
|
|
18242
|
+
var BROKERAGE_TICK_INNER_H = 14;
|
|
18203
18243
|
var BROKERAGE_SIGN_SIZE = 12;
|
|
18204
|
-
var BROKERAGE_GRID_TOP =
|
|
18244
|
+
var BROKERAGE_GRID_TOP = 68;
|
|
18205
18245
|
var BROKERAGE_CELL_W = 14;
|
|
18206
18246
|
var BROKERAGE_CELL_H = 18;
|
|
18207
18247
|
var BROKERAGE_GAP_X = 8;
|
|
@@ -18263,10 +18303,10 @@ function ShapeBrokerageNode({ node, active, lang }) {
|
|
|
18263
18303
|
/* @__PURE__ */ jsxRuntime.jsx("rect", { "data-cdl-role": "node-body", x, y, width: w, height: h, fill: "#255a7a", stroke: accentDarker, strokeWidth: frame.strokeWidth }),
|
|
18264
18304
|
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: x - BROKERAGE_SHADE_OUT, y, width: BROKERAGE_SHADE_OUT * 2, height: h, fill: accentDarker }),
|
|
18265
18305
|
/* @__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:
|
|
18267
|
-
/* @__PURE__ */ jsxRuntime.jsx("text", { "data-cdl-counter-scaled": "1", x: cx, y: y +
|
|
18306
|
+
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: x + 2, y: y + 2, width: w - 4, height: BROKERAGE_TICK_INNER_H, fill: "#1a2340", stroke: "none" }),
|
|
18307
|
+
/* @__PURE__ */ jsxRuntime.jsx("text", { "data-cdl-counter-scaled": "1", x: cx, y: y + 12, fontSize: BROKERAGE_TICKER_SIZE * \u500D, fontWeight: 700, textAnchor: "middle", fill: "#4ea36a", fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace", children: \u5B57\u5F15("brokerage.ticker") }),
|
|
18268
18308
|
/* @__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 +
|
|
18309
|
+
/* @__PURE__ */ jsxRuntime.jsx("text", { "data-cdl-counter-scaled": "0", x: cx, y: y + BROKERAGE_TICK_H + 18, fontSize: BROKERAGE_SIGN_SIZE, fontWeight: 700, letterSpacing: 2.5, textAnchor: "middle", fill: "#0f1830", children: \u5B57\u5F15("brokerage.sign") }),
|
|
18270
18310
|
Array.from({ length: rows }).map(
|
|
18271
18311
|
(_, ri) => Array.from({ length: cols }).map((_2, ci) => {
|
|
18272
18312
|
const wx = gridStartX + ci * (cellW + gapX);
|
|
@@ -18288,7 +18328,8 @@ function ShapeBrokerageNode({ node, active, lang }) {
|
|
|
18288
18328
|
bottomLabel3(node, r.cx, r.label)
|
|
18289
18329
|
] });
|
|
18290
18330
|
}
|
|
18291
|
-
var EXCHANGE_SUB_SIZE =
|
|
18331
|
+
var EXCHANGE_SUB_SIZE = 11;
|
|
18332
|
+
var EXCHANGE_HEX_R = 52;
|
|
18292
18333
|
function ShapeExchangeNode({ node, active, lang }) {
|
|
18293
18334
|
const \u5B57\u5F15 = \u5B57\u5F15\u304D\u3092\u4F5C\u308B(lang);
|
|
18294
18335
|
const frame = commonFrame5(active);
|
|
@@ -18308,7 +18349,8 @@ function ShapeExchangeNode({ node, active, lang }) {
|
|
|
18308
18349
|
idx: i
|
|
18309
18350
|
};
|
|
18310
18351
|
});
|
|
18311
|
-
const hexR =
|
|
18352
|
+
const hexR = EXCHANGE_HEX_R;
|
|
18353
|
+
const \u516D\u89D2\u306E\u6A2A\u5E45 = (d) => hexR * Math.sqrt(3) * Math.min(1, Math.max(0, (hexR - Math.abs(d)) / (hexR / 2)));
|
|
18312
18354
|
const hexPoints = [-90, -30, 30, 90, 150, 210].map((deg) => {
|
|
18313
18355
|
const rad = deg * Math.PI / 180;
|
|
18314
18356
|
return { x: cx + Math.cos(rad) * hexR, y: cy + Math.sin(rad) * hexR };
|
|
@@ -18316,7 +18358,7 @@ function ShapeExchangeNode({ node, active, lang }) {
|
|
|
18316
18358
|
const hexPath = hexPoints.map((p, i) => `${i === 0 ? "M" : "L"} ${p.x} ${p.y}`).join(" ") + " Z";
|
|
18317
18359
|
const \u7BC0\u70B9 = Math.max(0, nodeR) + 8 + 1.5 / 2;
|
|
18318
18360
|
const \u516D\u89D2 = hexR + frame.strokeWidth / 2;
|
|
18319
|
-
const \u5B57\u4E0B =
|
|
18361
|
+
const \u5B57\u4E0B = 28 + EXCHANGE_SUB_SIZE * 0.25;
|
|
18320
18362
|
const \u5916 = Math.max(\u7BC0\u70B9, \u516D\u89D2);
|
|
18321
18363
|
const \u305A\u308C = cy - r.cy;
|
|
18322
18364
|
const \u5E83\u304C\u308A = {
|
|
@@ -18326,7 +18368,11 @@ function ShapeExchangeNode({ node, active, lang }) {
|
|
|
18326
18368
|
\u53F3: \u5916
|
|
18327
18369
|
};
|
|
18328
18370
|
const \u6253\u3061\u6D88\u3059\u5B57\u3089 = [
|
|
18329
|
-
{
|
|
18371
|
+
{
|
|
18372
|
+
text: \u5B57\u5F15("exchange.sub"),
|
|
18373
|
+
size: EXCHANGE_SUB_SIZE,
|
|
18374
|
+
\u5E2F: { \u5E45: \u516D\u89D2\u306E\u6A2A\u5E45(\u5B57\u4E0B), \u9AD8\u3055: 14 }
|
|
18375
|
+
}
|
|
18330
18376
|
];
|
|
18331
18377
|
const \u7D75 = (\u500D\u7387) => {
|
|
18332
18378
|
const \u500D = \u6253\u3061\u6D88\u3057\u306E\u500D\u7387(\u500D\u7387, \u6253\u3061\u6D88\u3059\u5B57\u3089);
|
|
@@ -18340,9 +18386,9 @@ function ShapeExchangeNode({ node, active, lang }) {
|
|
|
18340
18386
|
] }, `d${i}`);
|
|
18341
18387
|
}),
|
|
18342
18388
|
/* @__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 -
|
|
18389
|
+
/* @__PURE__ */ jsxRuntime.jsx("text", { "data-cdl-counter-scaled": "0", x: cx, y: cy - 10, fontSize: 11, fontWeight: 700, letterSpacing: 1, textAnchor: "middle", fill: "#e5c07b", children: \u5B57\u5F15("exchange.sign") }),
|
|
18344
18390
|
/* @__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 +
|
|
18391
|
+
/* @__PURE__ */ jsxRuntime.jsx("text", { "data-cdl-counter-scaled": "1", x: cx, y: cy + 28, fontSize: EXCHANGE_SUB_SIZE * \u500D, fontWeight: 700, textAnchor: "middle", fill: "#a4b5f2", children: \u5B57\u5F15("exchange.sub") }),
|
|
18346
18392
|
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
18393
|
] });
|
|
18348
18394
|
};
|
|
@@ -18360,10 +18406,10 @@ var ATM_SHADOW_RX_RATIO = 0.6;
|
|
|
18360
18406
|
var ATM_FLOOR_UP = 6;
|
|
18361
18407
|
var ATM_FLOOR_H = 10;
|
|
18362
18408
|
var ATM_FLOOR_RESERVE = 12;
|
|
18363
|
-
var ATM_PANEL_W =
|
|
18409
|
+
var ATM_PANEL_W = 152;
|
|
18364
18410
|
var ATM_PANEL_H = 146;
|
|
18365
18411
|
var ATM_W_MIN = 100;
|
|
18366
|
-
var ATM_W_MAX =
|
|
18412
|
+
var ATM_W_MAX = ATM_PANEL_W;
|
|
18367
18413
|
var ATM_H_MIN = ATM_SIGN_H + ATM_SIGN_GAP + 30 + ATM_FLOOR_RESERVE;
|
|
18368
18414
|
function ShapeAtmNode({ node, active, lang }) {
|
|
18369
18415
|
const \u5B57\u5F15 = \u5B57\u5F15\u304D\u3092\u4F5C\u308B(lang);
|
|
@@ -18404,9 +18450,9 @@ function ShapeAtmNode({ node, active, lang }) {
|
|
|
18404
18450
|
/* @__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 }),
|
|
18405
18451
|
/* @__PURE__ */ jsxRuntime.jsxs("g", { transform: `translate(${centerX} ${atmY}) scale(${\u9762})`, children: [
|
|
18406
18452
|
/* @__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 }),
|
|
18407
|
-
/* @__PURE__ */ jsxRuntime.jsx("text", { "data-cdl-counter-scaled": "0", x: 0, y:
|
|
18408
|
-
/* @__PURE__ */ jsxRuntime.jsx("text", { "data-cdl-counter-scaled": "0", x: 0, y:
|
|
18409
|
-
/* @__PURE__ */ jsxRuntime.jsx("text", { "data-cdl-counter-scaled": "0", x: 0, y: 56, fontSize:
|
|
18453
|
+
/* @__PURE__ */ jsxRuntime.jsx("text", { "data-cdl-counter-scaled": "0", x: 0, y: 28, fontSize: 11, fontWeight: 700, letterSpacing: 1, textAnchor: "middle", fill: "#e5c07b", children: "\u304A\u5F15\u51FA\u3057" }),
|
|
18454
|
+
/* @__PURE__ */ jsxRuntime.jsx("text", { "data-cdl-counter-scaled": "0", x: 0, y: 42, fontSize: 11, fontWeight: 700, textAnchor: "middle", fill: "#a4b5f2", children: \u5B57\u5F15("atm.screen") }),
|
|
18455
|
+
/* @__PURE__ */ jsxRuntime.jsx("text", { "data-cdl-counter-scaled": "0", x: 0, y: 56, fontSize: 11, fontWeight: 700, textAnchor: "middle", fill: "#4ea36a", children: "\xA5 20,000" }),
|
|
18410
18456
|
/* @__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 }),
|
|
18411
18457
|
(() => {
|
|
18412
18458
|
const keys = [
|
|
@@ -18424,7 +18470,7 @@ function ShapeAtmNode({ node, active, lang }) {
|
|
|
18424
18470
|
const keyW = 18;
|
|
18425
18471
|
const keyH = 10;
|
|
18426
18472
|
const keyGap = 4;
|
|
18427
|
-
const startX = \u9762\u5DE6 +
|
|
18473
|
+
const startX = \u9762\u5DE6 + (ATM_PANEL_W - (5 * keyW + 4 * keyGap)) / 2;
|
|
18428
18474
|
return keys.map((k, i) => {
|
|
18429
18475
|
const row = Math.floor(i / 5);
|
|
18430
18476
|
const col = i % 5;
|
|
@@ -18441,7 +18487,7 @@ function ShapeAtmNode({ node, active, lang }) {
|
|
|
18441
18487
|
})(),
|
|
18442
18488
|
/* @__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 }),
|
|
18443
18489
|
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: \u9762\u5DE6 + 15, y: 118, width: ATM_PANEL_W - 30, height: 4, rx: 0.5, fill: "#e5c07b" }),
|
|
18444
|
-
/* @__PURE__ */ jsxRuntime.jsx("text", { "data-cdl-counter-scaled": "0", x: 0, y: 132, fontSize:
|
|
18490
|
+
/* @__PURE__ */ jsxRuntime.jsx("text", { "data-cdl-counter-scaled": "0", x: 0, y: 132, fontSize: 11, fontWeight: 700, letterSpacing: 1, textAnchor: "middle", fill: "#e5c07b", children: \u5B57\u5F15("atm.cardSlot") }),
|
|
18445
18491
|
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: \u9762\u5DE6 + 12, y: 136, width: ATM_PANEL_W - 24, height: 4, rx: 1, fill: "#0f1830" })
|
|
18446
18492
|
] }),
|
|
18447
18493
|
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: centerX - totalW / 2, y: floorY, width: totalW, height: 6, fill: "#8b949e", stroke: "none" }),
|
|
@@ -18550,6 +18596,7 @@ function ShapeStorefrontNode({ node, active, lang }) {
|
|
|
18550
18596
|
const doorH = facadeH - 30;
|
|
18551
18597
|
const doorX = x + bw - doorW - 12;
|
|
18552
18598
|
const doorY = facadeY + 20;
|
|
18599
|
+
const \u672D\u5E45 = Math.min(doorW - 6, 50);
|
|
18553
18600
|
return /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
|
|
18554
18601
|
/* @__PURE__ */ jsxRuntime.jsx("ellipse", { cx, cy: y + bh + 8, rx: bw * 0.5, ry: 5, fill: frame.stroke, opacity: 0.2, stroke: "none" }),
|
|
18555
18602
|
/* @__PURE__ */ jsxRuntime.jsx("rect", { x, y, width: bw, height: signH, fill: accent, stroke: accentDark, strokeWidth: 2 }),
|
|
@@ -18566,8 +18613,8 @@ function ShapeStorefrontNode({ node, active, lang }) {
|
|
|
18566
18613
|
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: doorX + 4, y: doorY + 4, width: doorW - 8, height: doorH - 8, fill: "#8b949e", stroke: accentDarker, strokeWidth: 1.5 }),
|
|
18567
18614
|
/* @__PURE__ */ jsxRuntime.jsx("line", { x1: doorX + 4, y1: doorY + doorH * 0.38, x2: doorX + doorW - 4, y2: doorY + doorH * 0.38, stroke: accentDarker, strokeWidth: 1 }),
|
|
18568
18615
|
/* @__PURE__ */ jsxRuntime.jsx("line", { x1: doorX + 4, y1: doorY + doorH * 0.72, x2: doorX + doorW - 4, y2: doorY + doorH * 0.72, stroke: accentDarker, strokeWidth: 1 }),
|
|
18569
|
-
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: doorX + doorW / 2 -
|
|
18570
|
-
/* @__PURE__ */ jsxRuntime.jsx("text", { x: doorX + doorW / 2, y: doorY + doorH * 0.85 +
|
|
18616
|
+
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: doorX + doorW / 2 - \u672D\u5E45 / 2, y: doorY + doorH * 0.85, width: \u672D\u5E45, height: 16, fill: "#e5c07b", stroke: "#a67c00", strokeWidth: 1.5 }),
|
|
18617
|
+
/* @__PURE__ */ jsxRuntime.jsx("text", { x: doorX + doorW / 2, y: doorY + doorH * 0.85 + 11, fontSize: 11, fontWeight: 700, letterSpacing: 1, textAnchor: "middle", fill: "#5a3a10", children: \u5B57\u5F15("storefront.open") }),
|
|
18571
18618
|
/* @__PURE__ */ jsxRuntime.jsx("circle", { cx: doorX + 6, cy: doorY + doorH * 0.55, r: 1.5, fill: "#c15a4a" }),
|
|
18572
18619
|
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: x - 6, y: y + bh - 6, width: bw + 12, height: 8, fill: "#5a6270", stroke: "none" }),
|
|
18573
18620
|
bottomLabel4(node, r.cx, r.label)
|