@cardenelabs/cdl 0.75.0 → 0.76.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 +48 -1
- package/dist/index.cjs +80 -61
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +80 -61
- package/dist/index.js.map +1 -1
- package/dist/react.cjs +80 -61
- package/dist/react.cjs.map +1 -1
- package/dist/react.js +80 -61
- package/dist/react.js.map +1 -1
- package/package.json +1 -1
- 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 +3 -2
- package/src/lang.ts +9 -3
- package/src/visual-validate.ts +0 -5
package/dist/react.js
CHANGED
|
@@ -397,8 +397,14 @@ var en = {
|
|
|
397
397
|
"paymentProvider.sign": "PAY",
|
|
398
398
|
/** `shape-payment-provider` の状態の札 */
|
|
399
399
|
"paymentProvider.status": "PROCESSING",
|
|
400
|
-
/**
|
|
401
|
-
|
|
400
|
+
/**
|
|
401
|
+
* `shape-brokerage` の株価の帯。
|
|
402
|
+
*
|
|
403
|
+
* **1 銘柄に絞る** (#888)。 電光掲示板の内側は幅 136 しか無く、2 銘柄を指定 11 で描くと
|
|
404
|
+
* 幅 181 になってビルの外へ出る。 板が流れている雰囲気は帯そのもの (黒地に緑の等幅) が
|
|
405
|
+
* 担うので、銘柄を減らしても絵は変わらない。
|
|
406
|
+
*/
|
|
407
|
+
"brokerage.ticker": "\u25B2NKY 38,240",
|
|
402
408
|
/** `shape-brokerage` の看板 */
|
|
403
409
|
"brokerage.sign": "$ SECURITIES",
|
|
404
410
|
/** `shape-exchange` の看板 */
|
|
@@ -601,7 +607,7 @@ var ja = {
|
|
|
601
607
|
"trustBank.sign": "\u4FE1\u8A17",
|
|
602
608
|
"paymentProvider.sign": "\u6C7A\u6E08",
|
|
603
609
|
"paymentProvider.status": "\u51E6\u7406\u4E2D",
|
|
604
|
-
"brokerage.ticker": "\u25B2\u65E5\u7D4C 38,240
|
|
610
|
+
"brokerage.ticker": "\u25B2\u65E5\u7D4C 38,240",
|
|
605
611
|
"brokerage.sign": "\xA5 \u8A3C\u5238",
|
|
606
612
|
"exchange.sign": "\u53D6\u5F15\u6240",
|
|
607
613
|
"exchange.sub": "\u6E05\u7B97",
|
|
@@ -16201,9 +16207,9 @@ function ShapeKanbanCardNode({ node, active, lang }) {
|
|
|
16201
16207
|
const ID\u5B57 = 11;
|
|
16202
16208
|
const ID\u5B57\u9593 = 1;
|
|
16203
16209
|
const PILL\u4E0A = 20;
|
|
16204
|
-
const PILL\u5E45 =
|
|
16210
|
+
const PILL\u5E45 = 70;
|
|
16205
16211
|
const PILL\u9AD8 = 16;
|
|
16206
|
-
const PILL\u5B57 =
|
|
16212
|
+
const PILL\u5B57 = 11;
|
|
16207
16213
|
const FOOTER\u4E0B = 22;
|
|
16208
16214
|
const AVATAR\u4E2D\u5FC3Y = 4;
|
|
16209
16215
|
const AVATAR\u534A\u5F84 = 9;
|
|
@@ -17336,7 +17342,7 @@ var SMART_CONTRACT_H = 220;
|
|
|
17336
17342
|
var BLOCK_W = 240;
|
|
17337
17343
|
var BLOCK_H = 220;
|
|
17338
17344
|
var \u898B\u51FA\u3057\u306E\u5B57 = 13;
|
|
17339
|
-
var \u540D\u306E\u5B57 =
|
|
17345
|
+
var \u540D\u306E\u5B57 = 11;
|
|
17340
17346
|
var \u5024\u306E\u5B57 = 11;
|
|
17341
17347
|
var \u884C\u306E\u9593\u9694 = 22;
|
|
17342
17348
|
var \u898B\u51FA\u3057\u306E\u5E2F = 32;
|
|
@@ -17353,12 +17359,12 @@ var CHAIN_BLOCK_SW = 2.5;
|
|
|
17353
17359
|
var CHAIN_HEAD_H = 16;
|
|
17354
17360
|
var CHAIN_TEXT_W = CHAIN_BLOCK_W - 8;
|
|
17355
17361
|
var CHAIN_ROW_GAP = 14;
|
|
17356
|
-
var CHAIN_NO_SIZE =
|
|
17362
|
+
var CHAIN_NO_SIZE = 11;
|
|
17357
17363
|
var CONTRACT_CALL_SIZE = 11;
|
|
17358
17364
|
var NFT_ID_SIZE = 15;
|
|
17359
|
-
var CHAIN_HASH_SIZE =
|
|
17360
|
-
var BTC_NO_SIZE =
|
|
17361
|
-
var ETH_NO_SIZE =
|
|
17365
|
+
var CHAIN_HASH_SIZE = 11;
|
|
17366
|
+
var BTC_NO_SIZE = 11;
|
|
17367
|
+
var ETH_NO_SIZE = 11;
|
|
17362
17368
|
var NODE_HEX_R = 44;
|
|
17363
17369
|
var NODE_PEER_R = 12;
|
|
17364
17370
|
var NODE_PEER_GAP = 22;
|
|
@@ -17687,34 +17693,40 @@ function ShapeEthereumChainNode({ node, active }) {
|
|
|
17687
17693
|
const linkW = CHAIN_LINK_W;
|
|
17688
17694
|
const totalW = blockCount * blockW + (blockCount - 1) * linkW;
|
|
17689
17695
|
const startX = cx - totalW / 2;
|
|
17690
|
-
const
|
|
17691
|
-
|
|
17692
|
-
|
|
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
|
-
|
|
17696
|
+
const \u6253\u3061\u6D88\u3059\u5B57\u3089 = [
|
|
17697
|
+
{ text: "#214", size: ETH_NO_SIZE, \u5E2F: { \u5E45: CHAIN_TEXT_W, \u9AD8\u3055: 20 } }
|
|
17698
|
+
];
|
|
17699
|
+
const art = (\u500D\u7387) => {
|
|
17700
|
+
const \u500D = \u6253\u3061\u6D88\u3057\u306E\u500D\u7387(\u500D\u7387, \u6253\u3061\u6D88\u3059\u5B57\u3089);
|
|
17701
|
+
return /* @__PURE__ */ jsx("g", { children: Array.from({ length: blockCount }, (_, i) => i).map((i) => {
|
|
17702
|
+
const bx = startX + i * (blockW + linkW);
|
|
17703
|
+
const isCurrent = i === blockCount - 1;
|
|
17704
|
+
const iconColors = isCurrent ? { light: "#ffffff", medium: "#e5e5f5", dark: "#c9c9e0", darker: "#a4a4c9", stroke: "#ffffff" } : { light: "#8a92b2", medium: "#62688f", dark: "#454a75", darker: "#3c3c3b", stroke: ethPurple };
|
|
17705
|
+
return /* @__PURE__ */ jsxs("g", { children: [
|
|
17706
|
+
i > 0 && /* @__PURE__ */ jsx("line", { x1: bx - linkW, y1: cy, x2: bx, y2: cy, stroke: ethPurple, strokeWidth: 3.5, strokeLinecap: "round" }),
|
|
17707
|
+
/* @__PURE__ */ jsx("rect", { x: bx + 3, y: cy - blockH / 2 + 3, width: blockW, height: blockH, rx: 4, fill: frame.stroke, opacity: 0.18, stroke: "none" }),
|
|
17708
|
+
/* @__PURE__ */ jsx(
|
|
17709
|
+
"rect",
|
|
17710
|
+
{
|
|
17711
|
+
"data-cdl-role": i === 0 ? "node-body" : void 0,
|
|
17712
|
+
x: bx,
|
|
17713
|
+
y: cy - blockH / 2,
|
|
17714
|
+
width: blockW,
|
|
17715
|
+
height: blockH,
|
|
17716
|
+
rx: 4,
|
|
17717
|
+
fill: isCurrent ? ethPurple : "var(--cdl-node-fill, #ffffff)",
|
|
17718
|
+
stroke: ethPurple,
|
|
17719
|
+
strokeWidth: isCurrent ? 2.5 : 1.5
|
|
17720
|
+
}
|
|
17721
|
+
),
|
|
17722
|
+
/* @__PURE__ */ jsx(EthereumDiamond, { cx: bx + blockW / 2, cy: cy - 6, h: 16, colors: iconColors }),
|
|
17723
|
+
/* @__PURE__ */ 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: [
|
|
17724
|
+
"#",
|
|
17725
|
+
214 + i
|
|
17726
|
+
] })
|
|
17727
|
+
] }, i);
|
|
17728
|
+
}) });
|
|
17729
|
+
};
|
|
17718
17730
|
return /* @__PURE__ */ jsxs("g", { children: [
|
|
17719
17731
|
fitArt(r, chainExtent(), art),
|
|
17720
17732
|
bottomLabel2(node, r.cx, r.label)
|
|
@@ -18165,7 +18177,7 @@ function ShapePaymentProviderNode({ node, active, lang }) {
|
|
|
18165
18177
|
/* @__PURE__ */ jsx("circle", { cx, cy: cy + 4, r: 10, fill: "#e5c07b", stroke: accentDarker, strokeWidth: 1.5 }),
|
|
18166
18178
|
/* @__PURE__ */ jsx("text", { x: cx, y: cy + 9, fontSize: 13, fontWeight: 700, textAnchor: "middle", fill: accentDarker, fontFamily: "Georgia, serif", children: "$" })
|
|
18167
18179
|
] }),
|
|
18168
|
-
/* @__PURE__ */ jsx("text", { x: cx, y: y + boxH - 16, fontSize:
|
|
18180
|
+
/* @__PURE__ */ jsx("text", { x: cx, y: y + boxH - 16, fontSize: 11, fontWeight: 700, letterSpacing: 2, textAnchor: "middle", fill: "#a4b5f2", children: \u5B57\u5F15("paymentProvider.status") }),
|
|
18169
18181
|
bottomLabel3(node, r.cx, r.label)
|
|
18170
18182
|
] });
|
|
18171
18183
|
}
|
|
@@ -18194,12 +18206,12 @@ function ShapeCreditCardNode({ node, active }) {
|
|
|
18194
18206
|
bottomLabel3(node, r.cx, r.label)
|
|
18195
18207
|
] });
|
|
18196
18208
|
}
|
|
18197
|
-
var BROKERAGE_TICK_H =
|
|
18209
|
+
var BROKERAGE_TICK_H = 18;
|
|
18198
18210
|
var BROKERAGE_LOGO_H = 26;
|
|
18199
|
-
var
|
|
18200
|
-
var
|
|
18211
|
+
var BROKERAGE_TICKER_SIZE = 11;
|
|
18212
|
+
var BROKERAGE_TICK_INNER_H = 14;
|
|
18201
18213
|
var BROKERAGE_SIGN_SIZE = 12;
|
|
18202
|
-
var BROKERAGE_GRID_TOP =
|
|
18214
|
+
var BROKERAGE_GRID_TOP = 68;
|
|
18203
18215
|
var BROKERAGE_CELL_W = 14;
|
|
18204
18216
|
var BROKERAGE_CELL_H = 18;
|
|
18205
18217
|
var BROKERAGE_GAP_X = 8;
|
|
@@ -18261,10 +18273,10 @@ function ShapeBrokerageNode({ node, active, lang }) {
|
|
|
18261
18273
|
/* @__PURE__ */ jsx("rect", { "data-cdl-role": "node-body", x, y, width: w, height: h, fill: "#255a7a", stroke: accentDarker, strokeWidth: frame.strokeWidth }),
|
|
18262
18274
|
/* @__PURE__ */ jsx("rect", { x: x - BROKERAGE_SHADE_OUT, y, width: BROKERAGE_SHADE_OUT * 2, height: h, fill: accentDarker }),
|
|
18263
18275
|
/* @__PURE__ */ jsx("rect", { x, y, width: w, height: BROKERAGE_TICK_H, fill: "#0f1830", stroke: "none" }),
|
|
18264
|
-
/* @__PURE__ */ jsx("rect", { x: x + 2, y: y + 2, width: w - 4, height:
|
|
18265
|
-
/* @__PURE__ */ jsx("text", { "data-cdl-counter-scaled": "1", x: cx, y: y +
|
|
18276
|
+
/* @__PURE__ */ jsx("rect", { x: x + 2, y: y + 2, width: w - 4, height: BROKERAGE_TICK_INNER_H, fill: "#1a2340", stroke: "none" }),
|
|
18277
|
+
/* @__PURE__ */ 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") }),
|
|
18266
18278
|
/* @__PURE__ */ jsx("rect", { x, y: y + BROKERAGE_TICK_H, width: w, height: BROKERAGE_LOGO_H, fill: "#e5c07b", stroke: "none" }),
|
|
18267
|
-
/* @__PURE__ */ jsx("text", { "data-cdl-counter-scaled": "0", x: cx, y: y +
|
|
18279
|
+
/* @__PURE__ */ 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") }),
|
|
18268
18280
|
Array.from({ length: rows }).map(
|
|
18269
18281
|
(_, ri) => Array.from({ length: cols }).map((_2, ci) => {
|
|
18270
18282
|
const wx = gridStartX + ci * (cellW + gapX);
|
|
@@ -18286,7 +18298,8 @@ function ShapeBrokerageNode({ node, active, lang }) {
|
|
|
18286
18298
|
bottomLabel3(node, r.cx, r.label)
|
|
18287
18299
|
] });
|
|
18288
18300
|
}
|
|
18289
|
-
var EXCHANGE_SUB_SIZE =
|
|
18301
|
+
var EXCHANGE_SUB_SIZE = 11;
|
|
18302
|
+
var EXCHANGE_HEX_R = 52;
|
|
18290
18303
|
function ShapeExchangeNode({ node, active, lang }) {
|
|
18291
18304
|
const \u5B57\u5F15 = \u5B57\u5F15\u304D\u3092\u4F5C\u308B(lang);
|
|
18292
18305
|
const frame = commonFrame5(active);
|
|
@@ -18306,7 +18319,8 @@ function ShapeExchangeNode({ node, active, lang }) {
|
|
|
18306
18319
|
idx: i
|
|
18307
18320
|
};
|
|
18308
18321
|
});
|
|
18309
|
-
const hexR =
|
|
18322
|
+
const hexR = EXCHANGE_HEX_R;
|
|
18323
|
+
const \u516D\u89D2\u306E\u6A2A\u5E45 = (d) => hexR * Math.sqrt(3) * Math.min(1, Math.max(0, (hexR - Math.abs(d)) / (hexR / 2)));
|
|
18310
18324
|
const hexPoints = [-90, -30, 30, 90, 150, 210].map((deg) => {
|
|
18311
18325
|
const rad = deg * Math.PI / 180;
|
|
18312
18326
|
return { x: cx + Math.cos(rad) * hexR, y: cy + Math.sin(rad) * hexR };
|
|
@@ -18314,7 +18328,7 @@ function ShapeExchangeNode({ node, active, lang }) {
|
|
|
18314
18328
|
const hexPath = hexPoints.map((p, i) => `${i === 0 ? "M" : "L"} ${p.x} ${p.y}`).join(" ") + " Z";
|
|
18315
18329
|
const \u7BC0\u70B9 = Math.max(0, nodeR) + 8 + 1.5 / 2;
|
|
18316
18330
|
const \u516D\u89D2 = hexR + frame.strokeWidth / 2;
|
|
18317
|
-
const \u5B57\u4E0B =
|
|
18331
|
+
const \u5B57\u4E0B = 28 + EXCHANGE_SUB_SIZE * 0.25;
|
|
18318
18332
|
const \u5916 = Math.max(\u7BC0\u70B9, \u516D\u89D2);
|
|
18319
18333
|
const \u305A\u308C = cy - r.cy;
|
|
18320
18334
|
const \u5E83\u304C\u308A = {
|
|
@@ -18324,7 +18338,11 @@ function ShapeExchangeNode({ node, active, lang }) {
|
|
|
18324
18338
|
\u53F3: \u5916
|
|
18325
18339
|
};
|
|
18326
18340
|
const \u6253\u3061\u6D88\u3059\u5B57\u3089 = [
|
|
18327
|
-
{
|
|
18341
|
+
{
|
|
18342
|
+
text: \u5B57\u5F15("exchange.sub"),
|
|
18343
|
+
size: EXCHANGE_SUB_SIZE,
|
|
18344
|
+
\u5E2F: { \u5E45: \u516D\u89D2\u306E\u6A2A\u5E45(\u5B57\u4E0B), \u9AD8\u3055: 14 }
|
|
18345
|
+
}
|
|
18328
18346
|
];
|
|
18329
18347
|
const \u7D75 = (\u500D\u7387) => {
|
|
18330
18348
|
const \u500D = \u6253\u3061\u6D88\u3057\u306E\u500D\u7387(\u500D\u7387, \u6253\u3061\u6D88\u3059\u5B57\u3089);
|
|
@@ -18338,9 +18356,9 @@ function ShapeExchangeNode({ node, active, lang }) {
|
|
|
18338
18356
|
] }, `d${i}`);
|
|
18339
18357
|
}),
|
|
18340
18358
|
/* @__PURE__ */ jsx("path", { d: hexPath, fill: "#255a7a", stroke: accentDarker, strokeWidth: frame.strokeWidth, strokeLinejoin: "round" }),
|
|
18341
|
-
/* @__PURE__ */ jsx("text", { "data-cdl-counter-scaled": "0", x: cx, y: cy -
|
|
18359
|
+
/* @__PURE__ */ 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") }),
|
|
18342
18360
|
/* @__PURE__ */ 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" }),
|
|
18343
|
-
/* @__PURE__ */ jsx("text", { "data-cdl-counter-scaled": "1", x: cx, y: cy +
|
|
18361
|
+
/* @__PURE__ */ 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") }),
|
|
18344
18362
|
nodes.map((n, i) => /* @__PURE__ */ jsx("circle", { cx: n.cx, cy: n.cy, r: 8, fill: n.fill, stroke: accentDarker, strokeWidth: 1.5 }, `n${i}`))
|
|
18345
18363
|
] });
|
|
18346
18364
|
};
|
|
@@ -18358,10 +18376,10 @@ var ATM_SHADOW_RX_RATIO = 0.6;
|
|
|
18358
18376
|
var ATM_FLOOR_UP = 6;
|
|
18359
18377
|
var ATM_FLOOR_H = 10;
|
|
18360
18378
|
var ATM_FLOOR_RESERVE = 12;
|
|
18361
|
-
var ATM_PANEL_W =
|
|
18379
|
+
var ATM_PANEL_W = 152;
|
|
18362
18380
|
var ATM_PANEL_H = 146;
|
|
18363
18381
|
var ATM_W_MIN = 100;
|
|
18364
|
-
var ATM_W_MAX =
|
|
18382
|
+
var ATM_W_MAX = ATM_PANEL_W;
|
|
18365
18383
|
var ATM_H_MIN = ATM_SIGN_H + ATM_SIGN_GAP + 30 + ATM_FLOOR_RESERVE;
|
|
18366
18384
|
function ShapeAtmNode({ node, active, lang }) {
|
|
18367
18385
|
const \u5B57\u5F15 = \u5B57\u5F15\u304D\u3092\u4F5C\u308B(lang);
|
|
@@ -18402,9 +18420,9 @@ function ShapeAtmNode({ node, active, lang }) {
|
|
|
18402
18420
|
/* @__PURE__ */ jsx("rect", { "data-cdl-role": "node-body", x: atmX, y: atmY, width: atmW, height: atmH, rx: 6, fill: "#255a7a", stroke: accentDarker, strokeWidth: frame.strokeWidth }),
|
|
18403
18421
|
/* @__PURE__ */ jsxs("g", { transform: `translate(${centerX} ${atmY}) scale(${\u9762})`, children: [
|
|
18404
18422
|
/* @__PURE__ */ jsx("rect", { x: \u9762\u5DE6 + 8, y: 10, width: ATM_PANEL_W - 16, height: 52, rx: 3, fill: "#0f1830", stroke: "#000", strokeWidth: 1.5 }),
|
|
18405
|
-
/* @__PURE__ */ jsx("text", { "data-cdl-counter-scaled": "0", x: 0, y:
|
|
18406
|
-
/* @__PURE__ */ jsx("text", { "data-cdl-counter-scaled": "0", x: 0, y:
|
|
18407
|
-
/* @__PURE__ */ jsx("text", { "data-cdl-counter-scaled": "0", x: 0, y: 56, fontSize:
|
|
18423
|
+
/* @__PURE__ */ 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" }),
|
|
18424
|
+
/* @__PURE__ */ jsx("text", { "data-cdl-counter-scaled": "0", x: 0, y: 42, fontSize: 11, fontWeight: 700, textAnchor: "middle", fill: "#a4b5f2", children: \u5B57\u5F15("atm.screen") }),
|
|
18425
|
+
/* @__PURE__ */ jsx("text", { "data-cdl-counter-scaled": "0", x: 0, y: 56, fontSize: 11, fontWeight: 700, textAnchor: "middle", fill: "#4ea36a", children: "\xA5 20,000" }),
|
|
18408
18426
|
/* @__PURE__ */ jsx("rect", { x: \u9762\u5DE6 + 8, y: 68, width: ATM_PANEL_W - 16, height: 42, rx: 2, fill: "#8b949e", stroke: "#5a6270", strokeWidth: 1 }),
|
|
18409
18427
|
(() => {
|
|
18410
18428
|
const keys = [
|
|
@@ -18422,7 +18440,7 @@ function ShapeAtmNode({ node, active, lang }) {
|
|
|
18422
18440
|
const keyW = 18;
|
|
18423
18441
|
const keyH = 10;
|
|
18424
18442
|
const keyGap = 4;
|
|
18425
|
-
const startX = \u9762\u5DE6 +
|
|
18443
|
+
const startX = \u9762\u5DE6 + (ATM_PANEL_W - (5 * keyW + 4 * keyGap)) / 2;
|
|
18426
18444
|
return keys.map((k, i) => {
|
|
18427
18445
|
const row = Math.floor(i / 5);
|
|
18428
18446
|
const col = i % 5;
|
|
@@ -18439,7 +18457,7 @@ function ShapeAtmNode({ node, active, lang }) {
|
|
|
18439
18457
|
})(),
|
|
18440
18458
|
/* @__PURE__ */ jsx("rect", { x: \u9762\u5DE6 + 12, y: 116, width: ATM_PANEL_W - 24, height: 8, rx: 1.5, fill: "#0f1830", stroke: accentDarker, strokeWidth: 1 }),
|
|
18441
18459
|
/* @__PURE__ */ jsx("rect", { x: \u9762\u5DE6 + 15, y: 118, width: ATM_PANEL_W - 30, height: 4, rx: 0.5, fill: "#e5c07b" }),
|
|
18442
|
-
/* @__PURE__ */ jsx("text", { "data-cdl-counter-scaled": "0", x: 0, y: 132, fontSize:
|
|
18460
|
+
/* @__PURE__ */ 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") }),
|
|
18443
18461
|
/* @__PURE__ */ jsx("rect", { x: \u9762\u5DE6 + 12, y: 136, width: ATM_PANEL_W - 24, height: 4, rx: 1, fill: "#0f1830" })
|
|
18444
18462
|
] }),
|
|
18445
18463
|
/* @__PURE__ */ jsx("rect", { x: centerX - totalW / 2, y: floorY, width: totalW, height: 6, fill: "#8b949e", stroke: "none" }),
|
|
@@ -18548,6 +18566,7 @@ function ShapeStorefrontNode({ node, active, lang }) {
|
|
|
18548
18566
|
const doorH = facadeH - 30;
|
|
18549
18567
|
const doorX = x + bw - doorW - 12;
|
|
18550
18568
|
const doorY = facadeY + 20;
|
|
18569
|
+
const \u672D\u5E45 = Math.min(doorW - 6, 50);
|
|
18551
18570
|
return /* @__PURE__ */ jsxs("g", { children: [
|
|
18552
18571
|
/* @__PURE__ */ jsx("ellipse", { cx, cy: y + bh + 8, rx: bw * 0.5, ry: 5, fill: frame.stroke, opacity: 0.2, stroke: "none" }),
|
|
18553
18572
|
/* @__PURE__ */ jsx("rect", { x, y, width: bw, height: signH, fill: accent, stroke: accentDark, strokeWidth: 2 }),
|
|
@@ -18564,8 +18583,8 @@ function ShapeStorefrontNode({ node, active, lang }) {
|
|
|
18564
18583
|
/* @__PURE__ */ jsx("rect", { x: doorX + 4, y: doorY + 4, width: doorW - 8, height: doorH - 8, fill: "#8b949e", stroke: accentDarker, strokeWidth: 1.5 }),
|
|
18565
18584
|
/* @__PURE__ */ jsx("line", { x1: doorX + 4, y1: doorY + doorH * 0.38, x2: doorX + doorW - 4, y2: doorY + doorH * 0.38, stroke: accentDarker, strokeWidth: 1 }),
|
|
18566
18585
|
/* @__PURE__ */ jsx("line", { x1: doorX + 4, y1: doorY + doorH * 0.72, x2: doorX + doorW - 4, y2: doorY + doorH * 0.72, stroke: accentDarker, strokeWidth: 1 }),
|
|
18567
|
-
/* @__PURE__ */ jsx("rect", { x: doorX + doorW / 2 -
|
|
18568
|
-
/* @__PURE__ */ jsx("text", { x: doorX + doorW / 2, y: doorY + doorH * 0.85 +
|
|
18586
|
+
/* @__PURE__ */ 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 }),
|
|
18587
|
+
/* @__PURE__ */ 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") }),
|
|
18569
18588
|
/* @__PURE__ */ jsx("circle", { cx: doorX + 6, cy: doorY + doorH * 0.55, r: 1.5, fill: "#c15a4a" }),
|
|
18570
18589
|
/* @__PURE__ */ jsx("rect", { x: x - 6, y: y + bh - 6, width: bw + 12, height: 8, fill: "#5a6270", stroke: "none" }),
|
|
18571
18590
|
bottomLabel4(node, r.cx, r.label)
|