@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/index.cjs
CHANGED
|
@@ -359,7 +359,14 @@ function resolveLang(value) {
|
|
|
359
359
|
}
|
|
360
360
|
var en = {
|
|
361
361
|
/** `shape-terminal` の 2 行目 (命令の出力) */
|
|
362
|
-
|
|
362
|
+
/*
|
|
363
|
+
* `shape-terminal` の出力の行。
|
|
364
|
+
*
|
|
365
|
+
* **いちばん長い行が絵の倍率を決める** (#891)。 端末の中身は自分の座標で組んでから箱へ
|
|
366
|
+
* 収めるので、この行が長いほど全部の字が小さくなる。 120x110 の箱では 20 字の版で
|
|
367
|
+
* 7.71 world まで落ちていた。
|
|
368
|
+
*/
|
|
369
|
+
"terminal.output": "\u2192 12 chunks",
|
|
363
370
|
/** `shape-code-block` の札の file 名 */
|
|
364
371
|
"codeBlock.fileName": "utils.ts",
|
|
365
372
|
/** `shape-kanban-card` の課題の番号 */
|
|
@@ -394,8 +401,14 @@ var en = {
|
|
|
394
401
|
"paymentProvider.sign": "PAY",
|
|
395
402
|
/** `shape-payment-provider` の状態の札 */
|
|
396
403
|
"paymentProvider.status": "PROCESSING",
|
|
397
|
-
/**
|
|
398
|
-
|
|
404
|
+
/**
|
|
405
|
+
* `shape-brokerage` の株価の帯。
|
|
406
|
+
*
|
|
407
|
+
* **1 銘柄に絞る** (#888)。 電光掲示板の内側は幅 136 しか無く、2 銘柄を指定 11 で描くと
|
|
408
|
+
* 幅 181 になってビルの外へ出る。 板が流れている雰囲気は帯そのもの (黒地に緑の等幅) が
|
|
409
|
+
* 担うので、銘柄を減らしても絵は変わらない。
|
|
410
|
+
*/
|
|
411
|
+
"brokerage.ticker": "\u25B2NKY 38,240",
|
|
399
412
|
/** `shape-brokerage` の看板 */
|
|
400
413
|
"brokerage.sign": "$ SECURITIES",
|
|
401
414
|
/** `shape-exchange` の看板 */
|
|
@@ -580,7 +593,7 @@ var en = {
|
|
|
580
593
|
"readout.trafficLight.green": "green"
|
|
581
594
|
};
|
|
582
595
|
var ja = {
|
|
583
|
-
"terminal.output": "\u2192
|
|
596
|
+
"terminal.output": "\u2192 12 \u500B\u3092\u7D50\u5408",
|
|
584
597
|
"codeBlock.fileName": "\u5171\u901A.ts",
|
|
585
598
|
"kanbanCard.id": "#1111",
|
|
586
599
|
"kanbanCard.status": "\u9032\u884C\u4E2D",
|
|
@@ -598,7 +611,7 @@ var ja = {
|
|
|
598
611
|
"trustBank.sign": "\u4FE1\u8A17",
|
|
599
612
|
"paymentProvider.sign": "\u6C7A\u6E08",
|
|
600
613
|
"paymentProvider.status": "\u51E6\u7406\u4E2D",
|
|
601
|
-
"brokerage.ticker": "\u25B2\u65E5\u7D4C 38,240
|
|
614
|
+
"brokerage.ticker": "\u25B2\u65E5\u7D4C 38,240",
|
|
602
615
|
"brokerage.sign": "\xA5 \u8A3C\u5238",
|
|
603
616
|
"exchange.sign": "\u53D6\u5F15\u6240",
|
|
604
617
|
"exchange.sub": "\u6E05\u7B97",
|
|
@@ -1655,6 +1668,7 @@ function textWidth(s, size, \u5B57\u9001\u308A = 0) {
|
|
|
1655
1668
|
}
|
|
1656
1669
|
return \u5E45 * size + \u5B57\u9001\u308A * \u5B57\u6570;
|
|
1657
1670
|
}
|
|
1671
|
+
var \u7E2E\u3093\u3060\u7D75\u306E\u5B57\u306E\u4E0B\u9650 = 8;
|
|
1658
1672
|
|
|
1659
1673
|
// src/kinds/row-align.ts
|
|
1660
1674
|
var GENERIC_ROW_LEFT_SIZE_PX = 18;
|
|
@@ -25254,6 +25268,11 @@ function \u5272\u5408\u8868\u8A18(frac) {
|
|
|
25254
25268
|
const v = Math.round(frac * 1e3) / 10;
|
|
25255
25269
|
return `${Number.isInteger(v) ? v : v.toFixed(1)}%`;
|
|
25256
25270
|
}
|
|
25271
|
+
var \u7A74\u306B\u5BFE\u3059\u308B\u4E0A\u9650 = 0.8;
|
|
25272
|
+
function \u4E2D\u592E\u306E\u5B57(\u6BD4\u4F8B\u3057\u305F\u5927\u304D\u3055, \u7A74\u306E\u534A\u5F84, \u6587) {
|
|
25273
|
+
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);
|
|
25274
|
+
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);
|
|
25275
|
+
}
|
|
25257
25276
|
function ChartPieNode({
|
|
25258
25277
|
node,
|
|
25259
25278
|
active,
|
|
@@ -25311,6 +25330,11 @@ function ChartPieNode({
|
|
|
25311
25330
|
const cx = node.w / 2;
|
|
25312
25331
|
const cy = PAD_TOP2 + chartAreaH / 2;
|
|
25313
25332
|
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) : [];
|
|
25333
|
+
const \u7A74 = \u524D\u3042\u308A ? \u524D\u306E\u5185\u534A\u5F84 : \u5916\u306E\u5185\u534A\u5F84;
|
|
25334
|
+
const \u5408\u8A08\u306E\u6587 = \u5B9F\u5024\u8868\u8A18(Math.round(\u524D\u3042\u308A ? \u4ECA\u306E\u5408\u8A08 : total));
|
|
25335
|
+
const \u5408\u8A08\u306E\u5B57 = \u4E2D\u592E\u306E\u5B57(Math.round(radius * 0.26), \u7A74, \u5408\u8A08\u306E\u6587);
|
|
25336
|
+
const \u898B\u51FA\u3057\u306E\u5B572 = \u4E2D\u592E\u306E\u5B57(Math.round(radius * 0.12), \u7A74, "\u5408\u8A08");
|
|
25337
|
+
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);
|
|
25314
25338
|
const slices = \u8F2A\u3092\u7D44\u3080(data, cx, cy, radius, \u5916\u306E\u5185\u534A\u5F84, \u4ECA\u306E\u5272\u5408);
|
|
25315
25339
|
const \u958B\u304D = \u9032\u307F\u3092\u7573\u3080(drawing, progress);
|
|
25316
25340
|
const \u5207\u308A\u629C\u304Did = `cdl-pie-draw-${instanceId}`;
|
|
@@ -25389,19 +25413,19 @@ function ChartPieNode({
|
|
|
25389
25413
|
x: cx,
|
|
25390
25414
|
y: cy - 2,
|
|
25391
25415
|
textAnchor: "middle",
|
|
25392
|
-
fontSize:
|
|
25416
|
+
fontSize: \u5408\u8A08\u306E\u5B57,
|
|
25393
25417
|
fontWeight: 600,
|
|
25394
25418
|
fill: "var(--cdl-text, #1a1f2a)",
|
|
25395
|
-
children: \
|
|
25419
|
+
children: \u5408\u8A08\u306E\u6587
|
|
25396
25420
|
}
|
|
25397
25421
|
),
|
|
25398
25422
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
25399
25423
|
"text",
|
|
25400
25424
|
{
|
|
25401
25425
|
x: cx,
|
|
25402
|
-
y: cy +
|
|
25426
|
+
y: cy + \u5408\u8A08\u306E\u4E0B,
|
|
25403
25427
|
textAnchor: "middle",
|
|
25404
|
-
fontSize:
|
|
25428
|
+
fontSize: \u898B\u51FA\u3057\u306E\u5B572,
|
|
25405
25429
|
fill: "var(--cdl-text-dim, #5a6270)",
|
|
25406
25430
|
children: "\u5408\u8A08"
|
|
25407
25431
|
}
|
|
@@ -25604,6 +25628,10 @@ function \u8868\u306E\u5F62({ node, active, data, \u5272\u5408, x0, y0, drawing,
|
|
|
25604
25628
|
const \u5185\u534A\u5F84 = R * 0.58;
|
|
25605
25629
|
const cx = PAD + R;
|
|
25606
25630
|
const cy = node.h / 2;
|
|
25631
|
+
const \u5408\u8A08\u306E\u6587 = \u5B9F\u5024\u8868\u8A18(Math.round(data.reduce((acc, d) => acc + d.value, 0)));
|
|
25632
|
+
const \u5408\u8A08\u306E\u5B57 = \u4E2D\u592E\u306E\u5B57(Math.round(R * 0.26), \u5185\u534A\u5F84, \u5408\u8A08\u306E\u6587);
|
|
25633
|
+
const \u898B\u51FA\u3057\u306E\u5B572 = \u4E2D\u592E\u306E\u5B57(Math.round(R * 0.12), \u5185\u534A\u5F84, "\u5408\u8A08");
|
|
25634
|
+
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);
|
|
25607
25635
|
const \u8868\u5DE6 = node.w - PAD - \u8868\u5E45;
|
|
25608
25636
|
const \u53F3\u7AEF = node.w - PAD;
|
|
25609
25637
|
const \u5272\u5408\u53F3 = \u53F3\u7AEF - \u5B9F\u6570\u5E45 - 24;
|
|
@@ -25645,19 +25673,19 @@ function \u8868\u306E\u5F62({ node, active, data, \u5272\u5408, x0, y0, drawing,
|
|
|
25645
25673
|
x: cx,
|
|
25646
25674
|
y: cy - 2,
|
|
25647
25675
|
textAnchor: "middle",
|
|
25648
|
-
fontSize:
|
|
25676
|
+
fontSize: \u5408\u8A08\u306E\u5B57,
|
|
25649
25677
|
fontWeight: 600,
|
|
25650
25678
|
fill: "var(--cdl-text, #1a1f2a)",
|
|
25651
|
-
children: \
|
|
25679
|
+
children: \u5408\u8A08\u306E\u6587
|
|
25652
25680
|
}
|
|
25653
25681
|
),
|
|
25654
25682
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
25655
25683
|
"text",
|
|
25656
25684
|
{
|
|
25657
25685
|
x: cx,
|
|
25658
|
-
y: cy +
|
|
25686
|
+
y: cy + \u5408\u8A08\u306E\u4E0B,
|
|
25659
25687
|
textAnchor: "middle",
|
|
25660
|
-
fontSize:
|
|
25688
|
+
fontSize: \u898B\u51FA\u3057\u306E\u5B572,
|
|
25661
25689
|
fill: "var(--cdl-text-dim, #5a6270)",
|
|
25662
25690
|
children: "\u5408\u8A08"
|
|
25663
25691
|
}
|
|
@@ -28434,6 +28462,7 @@ function ShapeTerminalNode({ node, active, lang }) {
|
|
|
28434
28462
|
const lineFont = "ui-monospace, SFMono-Regular, Menlo, monospace";
|
|
28435
28463
|
const \u4F59\u767D = 16;
|
|
28436
28464
|
const \u5E2F = 28;
|
|
28465
|
+
const \u5E2F\u306E\u5B57 = 12.5;
|
|
28437
28466
|
const \u89D2 = 10;
|
|
28438
28467
|
const \u5148\u982D = 26;
|
|
28439
28468
|
const \u884C\u9593 = 22;
|
|
@@ -28443,7 +28472,7 @@ function ShapeTerminalNode({ node, active, lang }) {
|
|
|
28443
28472
|
{ \u5DE6: 16, \u5B57: 12.5, \u8272: "#7cd88f", \u6587: "$" },
|
|
28444
28473
|
{ \u5DE6: 30, \u5B57: 12.5, \u8272: "#e6edf3", \u6587: "pnpm build" }
|
|
28445
28474
|
],
|
|
28446
|
-
[{ \u5DE6: 16, \u5B57: 12, \u8272: "#8b95a5", \u6587: \u5B57\u5F15("terminal.output") }],
|
|
28475
|
+
[{ \u5DE6: 16, \u5B57: 12.5, \u8272: "#8b95a5", \u6587: \u5B57\u5F15("terminal.output") }],
|
|
28447
28476
|
[{ \u5DE6: 16, \u5B57: 12.5, \u8272: "#7cd88f", \u6587: "$" }]
|
|
28448
28477
|
];
|
|
28449
28478
|
const \u81EA\u7136\u5E45 = Math.max(...\u884C.flat().map((c) => c.\u5DE6 + \u7B49\u5E45\u306E\u6841(c.\u6587) * MONO_ADVANCE * c.\u5B57)) + \u4F59\u767D;
|
|
@@ -28485,7 +28514,7 @@ function ShapeTerminalNode({ node, active, lang }) {
|
|
|
28485
28514
|
{
|
|
28486
28515
|
x: x + w / 2,
|
|
28487
28516
|
y: y + barH / 2 + 4 * \u500D,
|
|
28488
|
-
fontSize:
|
|
28517
|
+
fontSize: \u5E2F\u306E\u5B57 * \u500D,
|
|
28489
28518
|
fontFamily: lineFont,
|
|
28490
28519
|
textAnchor: "middle",
|
|
28491
28520
|
fill: "#7a8290",
|
|
@@ -28576,6 +28605,7 @@ function ShapeCodeBlockNode({ node, active, lang }) {
|
|
|
28576
28605
|
const \u592A\u3055 = 9;
|
|
28577
28606
|
const \u9699\u9593 = 6;
|
|
28578
28607
|
const \u6301\u3061\u4E0A\u3052 = 8;
|
|
28608
|
+
const \u884C\u756A\u53F7\u306E\u5B57 = 11;
|
|
28579
28609
|
const lines = [
|
|
28580
28610
|
[
|
|
28581
28611
|
{ c: "#c678dd", w: 40 },
|
|
@@ -28598,14 +28628,13 @@ function ShapeCodeBlockNode({ node, active, lang }) {
|
|
|
28598
28628
|
{ c: "#e6edf3", w: 40 }
|
|
28599
28629
|
]
|
|
28600
28630
|
];
|
|
28601
|
-
const \
|
|
28602
|
-
|
|
28603
|
-
|
|
28604
|
-
)
|
|
28605
|
-
|
|
28606
|
-
|
|
28607
|
-
const \
|
|
28608
|
-
const \u500D = Math.min(1, w / \u81EA\u7136\u5E45, bodyH / \u81EA\u7136\u9AD8);
|
|
28631
|
+
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);
|
|
28632
|
+
const \u500D = Math.min(1, bodyH / \u81EA\u7136\u9AD8);
|
|
28633
|
+
const \u6253\u3061\u6D88\u3059\u5B57\u3089 = [
|
|
28634
|
+
{ text: \u5B57\u5F15("codeBlock.fileName"), size: 11, \u5E2F: { \u5E45: \u30BF\u30D6\u5E45, \u9AD8\u3055: \u30BF\u30D6\u9AD8 } },
|
|
28635
|
+
{ text: "1", size: \u884C\u756A\u53F7\u306E\u5B57, \u5E2F: { \u5E45: \u6E9D - \u6301\u3061\u4E0A\u3052, \u9AD8\u3055: \u884C\u9593 } }
|
|
28636
|
+
];
|
|
28637
|
+
const \u500D\u8FD4\u3057 = \u6253\u3061\u6D88\u3057\u306E\u500D\u7387(\u500D, \u6253\u3061\u6D88\u3059\u5B57\u3089);
|
|
28609
28638
|
const tabW = \u30BF\u30D6\u5E45 * \u500D;
|
|
28610
28639
|
const tabH = \u30BF\u30D6\u9AD8 * \u500D;
|
|
28611
28640
|
const \u4E38 = \u89D2 * \u500D;
|
|
@@ -28641,9 +28670,10 @@ function ShapeCodeBlockNode({ node, active, lang }) {
|
|
|
28641
28670
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
28642
28671
|
"text",
|
|
28643
28672
|
{
|
|
28673
|
+
"data-cdl-counter-scaled": "1",
|
|
28644
28674
|
x: x + tabW / 2,
|
|
28645
28675
|
y: y + tabH / 2 + 4 * \u500D,
|
|
28646
|
-
fontSize: 11 * \u500D,
|
|
28676
|
+
fontSize: 11 * \u500D * \u500D\u8FD4\u3057,
|
|
28647
28677
|
fontFamily: lineFont,
|
|
28648
28678
|
textAnchor: "middle",
|
|
28649
28679
|
fill: "#e6edf3",
|
|
@@ -28665,9 +28695,10 @@ function ShapeCodeBlockNode({ node, active, lang }) {
|
|
|
28665
28695
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
28666
28696
|
"text",
|
|
28667
28697
|
{
|
|
28698
|
+
"data-cdl-counter-scaled": "1",
|
|
28668
28699
|
x: x + gutterW - \u6301\u3061\u4E0A\u3052 * \u500D,
|
|
28669
28700
|
y: codeY0 + i * lineH,
|
|
28670
|
-
fontSize:
|
|
28701
|
+
fontSize: \u884C\u756A\u53F7\u306E\u5B57 * \u500D * \u500D\u8FD4\u3057,
|
|
28671
28702
|
fontFamily: lineFont,
|
|
28672
28703
|
textAnchor: "end",
|
|
28673
28704
|
fill: "#4a5266",
|
|
@@ -28675,12 +28706,13 @@ function ShapeCodeBlockNode({ node, active, lang }) {
|
|
|
28675
28706
|
}
|
|
28676
28707
|
),
|
|
28677
28708
|
toks.map((t, j) => {
|
|
28678
|
-
const
|
|
28709
|
+
const \u63CF\u304F\u5E45 = Math.min(t.w * \u500D, x + w - \u4F59\u767D * \u500D - cursor);
|
|
28710
|
+
const rect = \u63CF\u304F\u5E45 > 0 ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
28679
28711
|
"rect",
|
|
28680
28712
|
{
|
|
28681
28713
|
x: cursor,
|
|
28682
28714
|
y: codeY0 + i * lineH - \u6301\u3061\u4E0A\u3052 * \u500D,
|
|
28683
|
-
width:
|
|
28715
|
+
width: \u63CF\u304F\u5E45,
|
|
28684
28716
|
height: \u592A\u3055 * \u500D,
|
|
28685
28717
|
rx: 2 * \u500D,
|
|
28686
28718
|
fill: t.c,
|
|
@@ -28688,7 +28720,7 @@ function ShapeCodeBlockNode({ node, active, lang }) {
|
|
|
28688
28720
|
stroke: "none"
|
|
28689
28721
|
},
|
|
28690
28722
|
j
|
|
28691
|
-
);
|
|
28723
|
+
) : null;
|
|
28692
28724
|
cursor += (t.w + \u9699\u9593) * \u500D;
|
|
28693
28725
|
return rect;
|
|
28694
28726
|
})
|
|
@@ -28733,21 +28765,23 @@ function ShapeKanbanCardNode({ node, active, lang }) {
|
|
|
28733
28765
|
const w = Math.max(0, node.w - \u7DDA * 2 - \u5F71);
|
|
28734
28766
|
const h = Math.max(0, node.h - \u7DDA * 2 - \u5F71);
|
|
28735
28767
|
const \u5E2F\u9593\u4F59\u767D = 4;
|
|
28736
|
-
const \u5DE6\u53F3\u4F59\u767D =
|
|
28737
|
-
const \u4E0A\u6BB5\u9699\u9593 =
|
|
28768
|
+
const \u5DE6\u53F3\u4F59\u767D = 12;
|
|
28769
|
+
const \u4E0A\u6BB5\u9699\u9593 = 6;
|
|
28738
28770
|
const \u512A\u5148\u5E2F\u9AD8 = 10;
|
|
28739
28771
|
const ID\u6587 = \u5B57\u5F15("kanbanCard.id");
|
|
28740
28772
|
const ID\u57FA\u6E96 = 30;
|
|
28741
28773
|
const ID\u5B57 = 11;
|
|
28742
28774
|
const ID\u5B57\u9593 = 1;
|
|
28743
28775
|
const PILL\u4E0A = 20;
|
|
28744
|
-
const PILL\u5E45 =
|
|
28776
|
+
const PILL\u5E45 = 62;
|
|
28745
28777
|
const PILL\u9AD8 = 16;
|
|
28746
|
-
const PILL\u5B57 =
|
|
28778
|
+
const PILL\u5B57 = 11;
|
|
28779
|
+
const PILL\u5B57\u9593 = 0;
|
|
28747
28780
|
const FOOTER\u4E0B = 22;
|
|
28748
28781
|
const AVATAR\u4E2D\u5FC3Y = 4;
|
|
28749
28782
|
const AVATAR\u534A\u5F84 = 9;
|
|
28750
28783
|
const AVATAR\u67A0 = 1.5;
|
|
28784
|
+
const AVATAR\u5B57 = 11;
|
|
28751
28785
|
const \u540D\u524D\u5B57 = 17;
|
|
28752
28786
|
const \u8AAC\u660E\u57FA\u6E96\u6BD4 = 20 / 17;
|
|
28753
28787
|
const \u8AAC\u660E\u5B57\u6BD4 = 12 / 17;
|
|
@@ -28830,7 +28864,7 @@ function ShapeKanbanCardNode({ node, active, lang }) {
|
|
|
28830
28864
|
y: pillY + 12 * \u500D,
|
|
28831
28865
|
fontSize: PILL\u5B57 * \u500D,
|
|
28832
28866
|
fontWeight: 700,
|
|
28833
|
-
letterSpacing:
|
|
28867
|
+
letterSpacing: PILL\u5B57\u9593 * \u500D,
|
|
28834
28868
|
textAnchor: "middle",
|
|
28835
28869
|
fill: "#5a4a1a",
|
|
28836
28870
|
fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace",
|
|
@@ -28878,7 +28912,7 @@ function ShapeKanbanCardNode({ node, active, lang }) {
|
|
|
28878
28912
|
{
|
|
28879
28913
|
x: 9 * \u500D,
|
|
28880
28914
|
y: 8 * \u500D,
|
|
28881
|
-
fontSize:
|
|
28915
|
+
fontSize: AVATAR\u5B57 * \u500D,
|
|
28882
28916
|
fontWeight: 700,
|
|
28883
28917
|
textAnchor: "middle",
|
|
28884
28918
|
fill: "#ffffff",
|
|
@@ -28902,7 +28936,7 @@ function ShapeKanbanCardNode({ node, active, lang }) {
|
|
|
28902
28936
|
{
|
|
28903
28937
|
x: 23 * \u500D,
|
|
28904
28938
|
y: 8 * \u500D,
|
|
28905
|
-
fontSize:
|
|
28939
|
+
fontSize: AVATAR\u5B57 * \u500D,
|
|
28906
28940
|
fontWeight: 700,
|
|
28907
28941
|
textAnchor: "middle",
|
|
28908
28942
|
fill: "#ffffff",
|
|
@@ -29876,7 +29910,7 @@ var SMART_CONTRACT_H = 220;
|
|
|
29876
29910
|
var BLOCK_W = 240;
|
|
29877
29911
|
var BLOCK_H = 220;
|
|
29878
29912
|
var \u898B\u51FA\u3057\u306E\u5B57 = 13;
|
|
29879
|
-
var \u540D\u306E\u5B57 =
|
|
29913
|
+
var \u540D\u306E\u5B57 = 11;
|
|
29880
29914
|
var \u5024\u306E\u5B57 = 11;
|
|
29881
29915
|
var \u884C\u306E\u9593\u9694 = 22;
|
|
29882
29916
|
var \u898B\u51FA\u3057\u306E\u5E2F = 32;
|
|
@@ -29893,12 +29927,12 @@ var CHAIN_BLOCK_SW = 2.5;
|
|
|
29893
29927
|
var CHAIN_HEAD_H = 16;
|
|
29894
29928
|
var CHAIN_TEXT_W = CHAIN_BLOCK_W - 8;
|
|
29895
29929
|
var CHAIN_ROW_GAP = 14;
|
|
29896
|
-
var CHAIN_NO_SIZE =
|
|
29930
|
+
var CHAIN_NO_SIZE = 11;
|
|
29897
29931
|
var CONTRACT_CALL_SIZE = 11;
|
|
29898
29932
|
var NFT_ID_SIZE = 15;
|
|
29899
|
-
var CHAIN_HASH_SIZE =
|
|
29900
|
-
var BTC_NO_SIZE =
|
|
29901
|
-
var ETH_NO_SIZE =
|
|
29933
|
+
var CHAIN_HASH_SIZE = 11;
|
|
29934
|
+
var BTC_NO_SIZE = 11;
|
|
29935
|
+
var ETH_NO_SIZE = 11;
|
|
29902
29936
|
var NODE_HEX_R = 44;
|
|
29903
29937
|
var NODE_PEER_R = 12;
|
|
29904
29938
|
var NODE_PEER_GAP = 22;
|
|
@@ -30227,34 +30261,40 @@ function ShapeEthereumChainNode({ node, active }) {
|
|
|
30227
30261
|
const linkW = CHAIN_LINK_W;
|
|
30228
30262
|
const totalW = blockCount * blockW + (blockCount - 1) * linkW;
|
|
30229
30263
|
const startX = cx - totalW / 2;
|
|
30230
|
-
const
|
|
30231
|
-
|
|
30232
|
-
|
|
30233
|
-
|
|
30234
|
-
|
|
30235
|
-
|
|
30236
|
-
|
|
30237
|
-
|
|
30238
|
-
|
|
30239
|
-
|
|
30240
|
-
|
|
30241
|
-
|
|
30242
|
-
|
|
30243
|
-
|
|
30244
|
-
|
|
30245
|
-
|
|
30246
|
-
|
|
30247
|
-
|
|
30248
|
-
|
|
30249
|
-
|
|
30250
|
-
|
|
30251
|
-
|
|
30252
|
-
|
|
30253
|
-
|
|
30254
|
-
|
|
30255
|
-
|
|
30256
|
-
|
|
30257
|
-
|
|
30264
|
+
const \u6253\u3061\u6D88\u3059\u5B57\u3089 = [
|
|
30265
|
+
{ text: "#214", size: ETH_NO_SIZE, \u5E2F: { \u5E45: CHAIN_TEXT_W, \u9AD8\u3055: 20 } }
|
|
30266
|
+
];
|
|
30267
|
+
const art = (\u500D\u7387) => {
|
|
30268
|
+
const \u500D = \u6253\u3061\u6D88\u3057\u306E\u500D\u7387(\u500D\u7387, \u6253\u3061\u6D88\u3059\u5B57\u3089);
|
|
30269
|
+
return /* @__PURE__ */ jsxRuntime.jsx("g", { children: Array.from({ length: blockCount }, (_, i) => i).map((i) => {
|
|
30270
|
+
const bx = startX + i * (blockW + linkW);
|
|
30271
|
+
const isCurrent = i === blockCount - 1;
|
|
30272
|
+
const iconColors = isCurrent ? { light: "#ffffff", medium: "#e5e5f5", dark: "#c9c9e0", darker: "#a4a4c9", stroke: "#ffffff" } : { light: "#8a92b2", medium: "#62688f", dark: "#454a75", darker: "#3c3c3b", stroke: ethPurple };
|
|
30273
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
|
|
30274
|
+
i > 0 && /* @__PURE__ */ jsxRuntime.jsx("line", { x1: bx - linkW, y1: cy, x2: bx, y2: cy, stroke: ethPurple, strokeWidth: 3.5, strokeLinecap: "round" }),
|
|
30275
|
+
/* @__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" }),
|
|
30276
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
30277
|
+
"rect",
|
|
30278
|
+
{
|
|
30279
|
+
"data-cdl-role": i === 0 ? "node-body" : void 0,
|
|
30280
|
+
x: bx,
|
|
30281
|
+
y: cy - blockH / 2,
|
|
30282
|
+
width: blockW,
|
|
30283
|
+
height: blockH,
|
|
30284
|
+
rx: 4,
|
|
30285
|
+
fill: isCurrent ? ethPurple : "var(--cdl-node-fill, #ffffff)",
|
|
30286
|
+
stroke: ethPurple,
|
|
30287
|
+
strokeWidth: isCurrent ? 2.5 : 1.5
|
|
30288
|
+
}
|
|
30289
|
+
),
|
|
30290
|
+
/* @__PURE__ */ jsxRuntime.jsx(EthereumDiamond, { cx: bx + blockW / 2, cy: cy - 6, h: 16, colors: iconColors }),
|
|
30291
|
+
/* @__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: [
|
|
30292
|
+
"#",
|
|
30293
|
+
214 + i
|
|
30294
|
+
] })
|
|
30295
|
+
] }, i);
|
|
30296
|
+
}) });
|
|
30297
|
+
};
|
|
30258
30298
|
return /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
|
|
30259
30299
|
fitArt(r, chainExtent(), art),
|
|
30260
30300
|
bottomLabel2(node, r.cx, r.label)
|
|
@@ -30705,7 +30745,7 @@ function ShapePaymentProviderNode({ node, active, lang }) {
|
|
|
30705
30745
|
/* @__PURE__ */ jsxRuntime.jsx("circle", { cx, cy: cy + 4, r: 10, fill: "#e5c07b", stroke: accentDarker, strokeWidth: 1.5 }),
|
|
30706
30746
|
/* @__PURE__ */ jsxRuntime.jsx("text", { x: cx, y: cy + 9, fontSize: 13, fontWeight: 700, textAnchor: "middle", fill: accentDarker, fontFamily: "Georgia, serif", children: "$" })
|
|
30707
30747
|
] }),
|
|
30708
|
-
/* @__PURE__ */ jsxRuntime.jsx("text", { x: cx, y: y + boxH - 16, fontSize:
|
|
30748
|
+
/* @__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") }),
|
|
30709
30749
|
bottomLabel3(node, r.cx, r.label)
|
|
30710
30750
|
] });
|
|
30711
30751
|
}
|
|
@@ -30734,12 +30774,12 @@ function ShapeCreditCardNode({ node, active }) {
|
|
|
30734
30774
|
bottomLabel3(node, r.cx, r.label)
|
|
30735
30775
|
] });
|
|
30736
30776
|
}
|
|
30737
|
-
var BROKERAGE_TICK_H =
|
|
30777
|
+
var BROKERAGE_TICK_H = 18;
|
|
30738
30778
|
var BROKERAGE_LOGO_H = 26;
|
|
30739
|
-
var
|
|
30740
|
-
var
|
|
30779
|
+
var BROKERAGE_TICKER_SIZE = 11;
|
|
30780
|
+
var BROKERAGE_TICK_INNER_H = 14;
|
|
30741
30781
|
var BROKERAGE_SIGN_SIZE = 12;
|
|
30742
|
-
var BROKERAGE_GRID_TOP =
|
|
30782
|
+
var BROKERAGE_GRID_TOP = 68;
|
|
30743
30783
|
var BROKERAGE_CELL_W = 14;
|
|
30744
30784
|
var BROKERAGE_CELL_H = 18;
|
|
30745
30785
|
var BROKERAGE_GAP_X = 8;
|
|
@@ -30801,10 +30841,10 @@ function ShapeBrokerageNode({ node, active, lang }) {
|
|
|
30801
30841
|
/* @__PURE__ */ jsxRuntime.jsx("rect", { "data-cdl-role": "node-body", x, y, width: w, height: h, fill: "#255a7a", stroke: accentDarker, strokeWidth: frame.strokeWidth }),
|
|
30802
30842
|
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: x - BROKERAGE_SHADE_OUT, y, width: BROKERAGE_SHADE_OUT * 2, height: h, fill: accentDarker }),
|
|
30803
30843
|
/* @__PURE__ */ jsxRuntime.jsx("rect", { x, y, width: w, height: BROKERAGE_TICK_H, fill: "#0f1830", stroke: "none" }),
|
|
30804
|
-
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: x + 2, y: y + 2, width: w - 4, height:
|
|
30805
|
-
/* @__PURE__ */ jsxRuntime.jsx("text", { "data-cdl-counter-scaled": "1", x: cx, y: y +
|
|
30844
|
+
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: x + 2, y: y + 2, width: w - 4, height: BROKERAGE_TICK_INNER_H, fill: "#1a2340", stroke: "none" }),
|
|
30845
|
+
/* @__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") }),
|
|
30806
30846
|
/* @__PURE__ */ jsxRuntime.jsx("rect", { x, y: y + BROKERAGE_TICK_H, width: w, height: BROKERAGE_LOGO_H, fill: "#e5c07b", stroke: "none" }),
|
|
30807
|
-
/* @__PURE__ */ jsxRuntime.jsx("text", { "data-cdl-counter-scaled": "0", x: cx, y: y +
|
|
30847
|
+
/* @__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") }),
|
|
30808
30848
|
Array.from({ length: rows }).map(
|
|
30809
30849
|
(_, ri) => Array.from({ length: cols }).map((_2, ci) => {
|
|
30810
30850
|
const wx = gridStartX + ci * (cellW + gapX);
|
|
@@ -30826,7 +30866,8 @@ function ShapeBrokerageNode({ node, active, lang }) {
|
|
|
30826
30866
|
bottomLabel3(node, r.cx, r.label)
|
|
30827
30867
|
] });
|
|
30828
30868
|
}
|
|
30829
|
-
var EXCHANGE_SUB_SIZE =
|
|
30869
|
+
var EXCHANGE_SUB_SIZE = 11;
|
|
30870
|
+
var EXCHANGE_HEX_R = 52;
|
|
30830
30871
|
function ShapeExchangeNode({ node, active, lang }) {
|
|
30831
30872
|
const \u5B57\u5F15 = \u5B57\u5F15\u304D\u3092\u4F5C\u308B(lang);
|
|
30832
30873
|
const frame = commonFrame5(active);
|
|
@@ -30846,7 +30887,8 @@ function ShapeExchangeNode({ node, active, lang }) {
|
|
|
30846
30887
|
idx: i
|
|
30847
30888
|
};
|
|
30848
30889
|
});
|
|
30849
|
-
const hexR =
|
|
30890
|
+
const hexR = EXCHANGE_HEX_R;
|
|
30891
|
+
const \u516D\u89D2\u306E\u6A2A\u5E45 = (d) => hexR * Math.sqrt(3) * Math.min(1, Math.max(0, (hexR - Math.abs(d)) / (hexR / 2)));
|
|
30850
30892
|
const hexPoints = [-90, -30, 30, 90, 150, 210].map((deg) => {
|
|
30851
30893
|
const rad = deg * Math.PI / 180;
|
|
30852
30894
|
return { x: cx + Math.cos(rad) * hexR, y: cy + Math.sin(rad) * hexR };
|
|
@@ -30854,7 +30896,7 @@ function ShapeExchangeNode({ node, active, lang }) {
|
|
|
30854
30896
|
const hexPath = hexPoints.map((p, i) => `${i === 0 ? "M" : "L"} ${p.x} ${p.y}`).join(" ") + " Z";
|
|
30855
30897
|
const \u7BC0\u70B9 = Math.max(0, nodeR) + 8 + 1.5 / 2;
|
|
30856
30898
|
const \u516D\u89D2 = hexR + frame.strokeWidth / 2;
|
|
30857
|
-
const \u5B57\u4E0B =
|
|
30899
|
+
const \u5B57\u4E0B = 28 + EXCHANGE_SUB_SIZE * 0.25;
|
|
30858
30900
|
const \u5916 = Math.max(\u7BC0\u70B9, \u516D\u89D2);
|
|
30859
30901
|
const \u305A\u308C = cy - r.cy;
|
|
30860
30902
|
const \u5E83\u304C\u308A = {
|
|
@@ -30864,7 +30906,11 @@ function ShapeExchangeNode({ node, active, lang }) {
|
|
|
30864
30906
|
\u53F3: \u5916
|
|
30865
30907
|
};
|
|
30866
30908
|
const \u6253\u3061\u6D88\u3059\u5B57\u3089 = [
|
|
30867
|
-
{
|
|
30909
|
+
{
|
|
30910
|
+
text: \u5B57\u5F15("exchange.sub"),
|
|
30911
|
+
size: EXCHANGE_SUB_SIZE,
|
|
30912
|
+
\u5E2F: { \u5E45: \u516D\u89D2\u306E\u6A2A\u5E45(\u5B57\u4E0B), \u9AD8\u3055: 14 }
|
|
30913
|
+
}
|
|
30868
30914
|
];
|
|
30869
30915
|
const \u7D75 = (\u500D\u7387) => {
|
|
30870
30916
|
const \u500D = \u6253\u3061\u6D88\u3057\u306E\u500D\u7387(\u500D\u7387, \u6253\u3061\u6D88\u3059\u5B57\u3089);
|
|
@@ -30878,9 +30924,9 @@ function ShapeExchangeNode({ node, active, lang }) {
|
|
|
30878
30924
|
] }, `d${i}`);
|
|
30879
30925
|
}),
|
|
30880
30926
|
/* @__PURE__ */ jsxRuntime.jsx("path", { d: hexPath, fill: "#255a7a", stroke: accentDarker, strokeWidth: frame.strokeWidth, strokeLinejoin: "round" }),
|
|
30881
|
-
/* @__PURE__ */ jsxRuntime.jsx("text", { "data-cdl-counter-scaled": "0", x: cx, y: cy -
|
|
30927
|
+
/* @__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") }),
|
|
30882
30928
|
/* @__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" }),
|
|
30883
|
-
/* @__PURE__ */ jsxRuntime.jsx("text", { "data-cdl-counter-scaled": "1", x: cx, y: cy +
|
|
30929
|
+
/* @__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") }),
|
|
30884
30930
|
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}`))
|
|
30885
30931
|
] });
|
|
30886
30932
|
};
|
|
@@ -30898,10 +30944,10 @@ var ATM_SHADOW_RX_RATIO = 0.6;
|
|
|
30898
30944
|
var ATM_FLOOR_UP = 6;
|
|
30899
30945
|
var ATM_FLOOR_H = 10;
|
|
30900
30946
|
var ATM_FLOOR_RESERVE = 12;
|
|
30901
|
-
var ATM_PANEL_W =
|
|
30947
|
+
var ATM_PANEL_W = 152;
|
|
30902
30948
|
var ATM_PANEL_H = 146;
|
|
30903
30949
|
var ATM_W_MIN = 100;
|
|
30904
|
-
var ATM_W_MAX =
|
|
30950
|
+
var ATM_W_MAX = ATM_PANEL_W;
|
|
30905
30951
|
var ATM_H_MIN = ATM_SIGN_H + ATM_SIGN_GAP + 30 + ATM_FLOOR_RESERVE;
|
|
30906
30952
|
function ShapeAtmNode({ node, active, lang }) {
|
|
30907
30953
|
const \u5B57\u5F15 = \u5B57\u5F15\u304D\u3092\u4F5C\u308B(lang);
|
|
@@ -30942,9 +30988,9 @@ function ShapeAtmNode({ node, active, lang }) {
|
|
|
30942
30988
|
/* @__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 }),
|
|
30943
30989
|
/* @__PURE__ */ jsxRuntime.jsxs("g", { transform: `translate(${centerX} ${atmY}) scale(${\u9762})`, children: [
|
|
30944
30990
|
/* @__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 }),
|
|
30945
|
-
/* @__PURE__ */ jsxRuntime.jsx("text", { "data-cdl-counter-scaled": "0", x: 0, y:
|
|
30946
|
-
/* @__PURE__ */ jsxRuntime.jsx("text", { "data-cdl-counter-scaled": "0", x: 0, y:
|
|
30947
|
-
/* @__PURE__ */ jsxRuntime.jsx("text", { "data-cdl-counter-scaled": "0", x: 0, y: 56, fontSize:
|
|
30991
|
+
/* @__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" }),
|
|
30992
|
+
/* @__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") }),
|
|
30993
|
+
/* @__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" }),
|
|
30948
30994
|
/* @__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 }),
|
|
30949
30995
|
(() => {
|
|
30950
30996
|
const keys = [
|
|
@@ -30962,7 +31008,7 @@ function ShapeAtmNode({ node, active, lang }) {
|
|
|
30962
31008
|
const keyW = 18;
|
|
30963
31009
|
const keyH = 10;
|
|
30964
31010
|
const keyGap = 4;
|
|
30965
|
-
const startX = \u9762\u5DE6 +
|
|
31011
|
+
const startX = \u9762\u5DE6 + (ATM_PANEL_W - (5 * keyW + 4 * keyGap)) / 2;
|
|
30966
31012
|
return keys.map((k, i) => {
|
|
30967
31013
|
const row = Math.floor(i / 5);
|
|
30968
31014
|
const col = i % 5;
|
|
@@ -30979,7 +31025,7 @@ function ShapeAtmNode({ node, active, lang }) {
|
|
|
30979
31025
|
})(),
|
|
30980
31026
|
/* @__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 }),
|
|
30981
31027
|
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: \u9762\u5DE6 + 15, y: 118, width: ATM_PANEL_W - 30, height: 4, rx: 0.5, fill: "#e5c07b" }),
|
|
30982
|
-
/* @__PURE__ */ jsxRuntime.jsx("text", { "data-cdl-counter-scaled": "0", x: 0, y: 132, fontSize:
|
|
31028
|
+
/* @__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") }),
|
|
30983
31029
|
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: \u9762\u5DE6 + 12, y: 136, width: ATM_PANEL_W - 24, height: 4, rx: 1, fill: "#0f1830" })
|
|
30984
31030
|
] }),
|
|
30985
31031
|
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: centerX - totalW / 2, y: floorY, width: totalW, height: 6, fill: "#8b949e", stroke: "none" }),
|
|
@@ -31088,6 +31134,7 @@ function ShapeStorefrontNode({ node, active, lang }) {
|
|
|
31088
31134
|
const doorH = facadeH - 30;
|
|
31089
31135
|
const doorX = x + bw - doorW - 12;
|
|
31090
31136
|
const doorY = facadeY + 20;
|
|
31137
|
+
const \u672D\u5E45 = Math.min(doorW - 6, 50);
|
|
31091
31138
|
return /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
|
|
31092
31139
|
/* @__PURE__ */ jsxRuntime.jsx("ellipse", { cx, cy: y + bh + 8, rx: bw * 0.5, ry: 5, fill: frame.stroke, opacity: 0.2, stroke: "none" }),
|
|
31093
31140
|
/* @__PURE__ */ jsxRuntime.jsx("rect", { x, y, width: bw, height: signH, fill: accent, stroke: accentDark, strokeWidth: 2 }),
|
|
@@ -31104,8 +31151,8 @@ function ShapeStorefrontNode({ node, active, lang }) {
|
|
|
31104
31151
|
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: doorX + 4, y: doorY + 4, width: doorW - 8, height: doorH - 8, fill: "#8b949e", stroke: accentDarker, strokeWidth: 1.5 }),
|
|
31105
31152
|
/* @__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 }),
|
|
31106
31153
|
/* @__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 }),
|
|
31107
|
-
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: doorX + doorW / 2 -
|
|
31108
|
-
/* @__PURE__ */ jsxRuntime.jsx("text", { x: doorX + doorW / 2, y: doorY + doorH * 0.85 +
|
|
31154
|
+
/* @__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 }),
|
|
31155
|
+
/* @__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") }),
|
|
31109
31156
|
/* @__PURE__ */ jsxRuntime.jsx("circle", { cx: doorX + 6, cy: doorY + doorH * 0.55, r: 1.5, fill: "#c15a4a" }),
|
|
31110
31157
|
/* @__PURE__ */ jsxRuntime.jsx("rect", { x: x - 6, y: y + bh - 6, width: bw + 12, height: 8, fill: "#5a6270", stroke: "none" }),
|
|
31111
31158
|
bottomLabel4(node, r.cx, r.label)
|