@cardenelabs/cdl 0.57.0 → 0.58.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 +38 -1
- package/dist/index.cjs +247 -91
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +7 -3
- package/dist/index.d.ts +7 -3
- package/dist/index.js +247 -92
- package/dist/index.js.map +1 -1
- package/dist/react.cjs +225 -72
- package/dist/react.cjs.map +1 -1
- package/dist/react.d.cts +1 -1
- package/dist/react.d.ts +1 -1
- package/dist/react.js +225 -72
- package/dist/react.js.map +1 -1
- package/dist/{render-Cp41meYv.d.cts → render-DpwY2hzM.d.cts} +39 -1
- package/dist/{render-Cp41meYv.d.ts → render-DpwY2hzM.d.ts} +39 -1
- package/package.json +9 -12
- package/src/builder.ts +7 -0
- package/src/index.ts +6 -0
- package/src/kinds/shape-blockchain.tsx +40 -22
- package/src/kinds/shape-commerce.tsx +24 -12
- package/src/kinds/shape-finance.tsx +25 -17
- package/src/kinds/shape-software.tsx +30 -11
- package/src/lang.ts +168 -0
- package/src/layout.ts +4 -0
- package/src/render/interactive-panel.tsx +18 -1
- package/src/render/nodes.tsx +18 -14
- package/src/render/stage.tsx +2 -0
- package/src/types.ts +15 -0
package/dist/react.js
CHANGED
|
@@ -356,6 +356,122 @@ function useReducedMotion() {
|
|
|
356
356
|
return useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);
|
|
357
357
|
}
|
|
358
358
|
|
|
359
|
+
// src/lang.ts
|
|
360
|
+
function resolveLang(value) {
|
|
361
|
+
return value === "ja" ? "ja" : "en";
|
|
362
|
+
}
|
|
363
|
+
var en = {
|
|
364
|
+
/** `shape-terminal` の 2 行目 (命令の出力) */
|
|
365
|
+
"terminal.output": "\u2192 12 chunks in 1.8s",
|
|
366
|
+
/** `shape-code-block` の札の file 名 */
|
|
367
|
+
"codeBlock.fileName": "utils.ts",
|
|
368
|
+
/** `shape-kanban-card` の課題の番号 */
|
|
369
|
+
"kanbanCard.id": "CAR-1111",
|
|
370
|
+
/** `shape-kanban-card` の状態の札 */
|
|
371
|
+
"kanbanCard.status": "IN PROG",
|
|
372
|
+
/** `shape-kanban-card` の題の下の説明 */
|
|
373
|
+
"kanbanCard.task": "shape-driven kind \u5B9F\u88C5",
|
|
374
|
+
/** `shape-kanban-card` の期日 */
|
|
375
|
+
"kanbanCard.due": "Jul 10",
|
|
376
|
+
/** `shape-smart-contract` の契約の本文の 1 行 */
|
|
377
|
+
"smartContract.call": "function execute()",
|
|
378
|
+
/** `shape-blockchain-block` の題を渡さない時の見出し */
|
|
379
|
+
"blockchainBlock.title": "Block #421,873",
|
|
380
|
+
/** `shape-blockchain-block` の 1 行目の名前 (塊を識別する値) */
|
|
381
|
+
"blockchainBlock.hash": "hash",
|
|
382
|
+
/** `shape-blockchain-block` の 2 行目の名前 (1 つ前の塊の識別値) */
|
|
383
|
+
"blockchainBlock.prev": "prev",
|
|
384
|
+
/** `shape-blockchain-block` の 3 行目の名前 (取引をまとめた木の根) */
|
|
385
|
+
"blockchainBlock.merkle": "merkle",
|
|
386
|
+
/** `shape-blockchain-block` の 4 行目の名前 (採掘で試した値) */
|
|
387
|
+
"blockchainBlock.nonce": "nonce",
|
|
388
|
+
/** `shape-blockchain-block` の 5 行目の名前 (取引の件数) */
|
|
389
|
+
"blockchainBlock.tx": "tx",
|
|
390
|
+
/** `shape-blockchain-block` の 5 行目の値 */
|
|
391
|
+
"blockchainBlock.txCount": "142 tx",
|
|
392
|
+
/** `shape-rpc-node` の稼働の札 */
|
|
393
|
+
"rpcNode.status": "RPC ONLINE",
|
|
394
|
+
/** `shape-trust-bank` の看板 */
|
|
395
|
+
"trustBank.sign": "TRUST",
|
|
396
|
+
/** `shape-payment-provider` の看板 */
|
|
397
|
+
"paymentProvider.sign": "PAY",
|
|
398
|
+
/** `shape-payment-provider` の状態の札 */
|
|
399
|
+
"paymentProvider.status": "PROCESSING",
|
|
400
|
+
/** `shape-brokerage` の株価の帯 */
|
|
401
|
+
"brokerage.ticker": "\u25B2NKY 38,240 \u25B2AAPL 194",
|
|
402
|
+
/** `shape-brokerage` の看板 */
|
|
403
|
+
"brokerage.sign": "$ SECURITIES",
|
|
404
|
+
/** `shape-exchange` の看板 */
|
|
405
|
+
"exchange.sign": "EXCHANGE",
|
|
406
|
+
/** `shape-exchange` の看板の下の札 */
|
|
407
|
+
"exchange.sub": "clearing",
|
|
408
|
+
/** `shape-atm` の天井の看板 */
|
|
409
|
+
"atm.sign": "ATM CORNER",
|
|
410
|
+
/** `shape-atm` の画面の案内 */
|
|
411
|
+
"atm.screen": "SELECT AMOUNT",
|
|
412
|
+
/** `shape-atm` の決める鍵 */
|
|
413
|
+
"atm.ok": "OK",
|
|
414
|
+
/** `shape-atm` のカードを入れる口の札 */
|
|
415
|
+
"atm.cardSlot": "CARD SLOT",
|
|
416
|
+
/** `shape-storefront` の看板 */
|
|
417
|
+
"storefront.sign": "SHOP",
|
|
418
|
+
/** `shape-storefront` の扉の札 */
|
|
419
|
+
"storefront.open": "OPEN",
|
|
420
|
+
/** `shape-warehouse` の看板 */
|
|
421
|
+
"warehouse.sign": "WAREHOUSE",
|
|
422
|
+
/** `shape-api-gateway` の看板 */
|
|
423
|
+
"apiGateway.sign": "API GATEWAY",
|
|
424
|
+
/** `shape-api-gateway` の 3 行目の要求の種類 */
|
|
425
|
+
"apiGateway.delete": "DEL",
|
|
426
|
+
/** `shape-api-gateway` の 1 行目の宛先 */
|
|
427
|
+
"apiGateway.users": "/users",
|
|
428
|
+
/** `shape-api-gateway` の 2 行目の宛先 */
|
|
429
|
+
"apiGateway.orders": "/orders",
|
|
430
|
+
/** `shape-api-gateway` の 3 行目の宛先 */
|
|
431
|
+
"apiGateway.session": "/session"
|
|
432
|
+
};
|
|
433
|
+
var ja = {
|
|
434
|
+
"terminal.output": "\u2192 1.8 \u79D2\u3067\u5B8C\u4E86",
|
|
435
|
+
"codeBlock.fileName": "\u5171\u901A.ts",
|
|
436
|
+
"kanbanCard.id": "#1111",
|
|
437
|
+
"kanbanCard.status": "\u9032\u884C\u4E2D",
|
|
438
|
+
"kanbanCard.task": "\u5F62\u3092\u5B9F\u88C5",
|
|
439
|
+
"kanbanCard.due": "7/10",
|
|
440
|
+
"smartContract.call": "\u81EA\u52D5\u3067\u5B9F\u884C\u3059\u308B",
|
|
441
|
+
"blockchainBlock.title": "\u30D6\u30ED\u30C3\u30AF #421,873",
|
|
442
|
+
"blockchainBlock.hash": "\u30CF\u30C3\u30B7\u30E5",
|
|
443
|
+
"blockchainBlock.prev": "\u76F4\u524D",
|
|
444
|
+
"blockchainBlock.merkle": "\u6728\u306E\u6839",
|
|
445
|
+
"blockchainBlock.nonce": "\u30CE\u30F3\u30B9",
|
|
446
|
+
"blockchainBlock.tx": "\u53D6\u5F15",
|
|
447
|
+
"blockchainBlock.txCount": "142 \u4EF6",
|
|
448
|
+
"rpcNode.status": "RPC \u7A3C\u50CD\u4E2D",
|
|
449
|
+
"trustBank.sign": "\u4FE1\u8A17",
|
|
450
|
+
"paymentProvider.sign": "\u6C7A\u6E08",
|
|
451
|
+
"paymentProvider.status": "\u51E6\u7406\u4E2D",
|
|
452
|
+
"brokerage.ticker": "\u25B2\u65E5\u7D4C 38,240 \u25B2\u6771\u8A3C 2,710",
|
|
453
|
+
"brokerage.sign": "\xA5 \u8A3C\u5238",
|
|
454
|
+
"exchange.sign": "\u53D6\u5F15\u6240",
|
|
455
|
+
"exchange.sub": "\u6E05\u7B97",
|
|
456
|
+
"atm.sign": "ATM \u30B3\u30FC\u30CA\u30FC",
|
|
457
|
+
"atm.screen": "\u91D1\u984D\u3092\u9078\u629E",
|
|
458
|
+
"atm.ok": "\u78BA\u5B9A",
|
|
459
|
+
"atm.cardSlot": "\u30AB\u30FC\u30C9\u633F\u5165\u53E3",
|
|
460
|
+
"storefront.sign": "\u5546\u5E97",
|
|
461
|
+
"storefront.open": "\u55B6\u696D",
|
|
462
|
+
"warehouse.sign": "\u5009\u5EAB",
|
|
463
|
+
"apiGateway.sign": "API \u5165\u53E3",
|
|
464
|
+
"apiGateway.delete": "DELETE",
|
|
465
|
+
"apiGateway.users": "/\u5229\u7528\u8005",
|
|
466
|
+
"apiGateway.orders": "/\u6CE8\u6587",
|
|
467
|
+
"apiGateway.session": "/\u63A5\u7D9A"
|
|
468
|
+
};
|
|
469
|
+
var CDL_TEXT = { en, ja };
|
|
470
|
+
function \u5B57\u5F15\u304D\u3092\u4F5C\u308B(lang) {
|
|
471
|
+
const \u8A00\u8A9E = lang ?? "en";
|
|
472
|
+
return (key) => CDL_TEXT[\u8A00\u8A9E][key];
|
|
473
|
+
}
|
|
474
|
+
|
|
359
475
|
// src/layout/clearance-constants.ts
|
|
360
476
|
var CLEARANCE_NODE_LABEL = 32;
|
|
361
477
|
var CLEARANCE_LANE_LABEL = 24;
|
|
@@ -9634,6 +9750,9 @@ function layout(diag) {
|
|
|
9634
9750
|
// **遮断はここだけに置く**。 描画は必ず組み立てを通り、組み立て API も `er` も
|
|
9635
9751
|
// 素通しにしてある。 上流にも置くと、どの入力でも通らない分岐が残る
|
|
9636
9752
|
...diag.palette ? { palette: diag.palette } : {},
|
|
9753
|
+
// 描画側の固定の字の言語 (#847)。 既定 (`en`) と型の外の値は持たせない = 配置の結果の形を
|
|
9754
|
+
// 変更前と揃え、記法の書き損じで一部の字だけ日本語になる形を作らない
|
|
9755
|
+
...resolveLang(diag.lang) === "ja" ? { lang: "ja" } : {},
|
|
9637
9756
|
// 種類も配色と同じく空の目印を出さない。 遮断をここに揃えると手書きの図にも効く
|
|
9638
9757
|
...diag.type ? { type: diag.type } : {},
|
|
9639
9758
|
bboxes,
|
|
@@ -15245,6 +15364,11 @@ var commonFrame2 = (active) => ({
|
|
|
15245
15364
|
var ASCENT3 = 0.72;
|
|
15246
15365
|
var DESCENT3 = 0.25;
|
|
15247
15366
|
var MONO_ADVANCE = 0.62;
|
|
15367
|
+
function \u7B49\u5E45\u306E\u6841(s) {
|
|
15368
|
+
let \u6841 = 0;
|
|
15369
|
+
for (const c of s) \u6841 += (c.codePointAt(0) ?? 0) >= 11904 ? 2 : 1;
|
|
15370
|
+
return \u6841;
|
|
15371
|
+
}
|
|
15248
15372
|
var LABEL_SUB_RATIO = 11 / 16;
|
|
15249
15373
|
var LABEL_EYE_RATIO = 12 / 16;
|
|
15250
15374
|
var LABEL_EYE_GAP = 8;
|
|
@@ -15342,7 +15466,8 @@ function ShapeWindowNode({ node, active }) {
|
|
|
15342
15466
|
commonLabel2(node, node.cx, \u540D\u524D.y, \u540D\u524D.size)
|
|
15343
15467
|
] });
|
|
15344
15468
|
}
|
|
15345
|
-
function ShapeTerminalNode({ node, active }) {
|
|
15469
|
+
function ShapeTerminalNode({ node, active, lang }) {
|
|
15470
|
+
const \u5B57\u5F15 = \u5B57\u5F15\u304D\u3092\u4F5C\u308B(lang);
|
|
15346
15471
|
const frame = commonFrame2(active);
|
|
15347
15472
|
const \u7DDA = frame.strokeWidth / 2;
|
|
15348
15473
|
const x = node.cx - node.w / 2 + \u7DDA;
|
|
@@ -15363,10 +15488,10 @@ function ShapeTerminalNode({ node, active }) {
|
|
|
15363
15488
|
{ \u5DE6: 16, \u5B57: 12.5, \u8272: "#7cd88f", \u6587: "$" },
|
|
15364
15489
|
{ \u5DE6: 30, \u5B57: 12.5, \u8272: "#e6edf3", \u6587: "pnpm build" }
|
|
15365
15490
|
],
|
|
15366
|
-
[{ \u5DE6: 16, \u5B57: 12, \u8272: "#8b95a5", \u6587: "
|
|
15491
|
+
[{ \u5DE6: 16, \u5B57: 12, \u8272: "#8b95a5", \u6587: \u5B57\u5F15("terminal.output") }],
|
|
15367
15492
|
[{ \u5DE6: 16, \u5B57: 12.5, \u8272: "#7cd88f", \u6587: "$" }]
|
|
15368
15493
|
];
|
|
15369
|
-
const \u81EA\u7136\u5E45 = Math.max(...\u884C.flat().map((
|
|
15494
|
+
const \u81EA\u7136\u5E45 = Math.max(...\u884C.flat().map((c) => c.\u5DE6 + \u7B49\u5E45\u306E\u6841(c.\u6587) * MONO_ADVANCE * c.\u5B57)) + \u4F59\u767D;
|
|
15370
15495
|
const \u81EA\u7136\u9AD8 = \u5E2F + \u5148\u982D + \u884C\u9593 * (\u884C.length - 1) + Math.max(\u30AB\u30FC\u30BD\u30EB.\u4E0B, 12.5 * DESCENT3);
|
|
15371
15496
|
const \u500D = Math.min(1, w / \u81EA\u7136\u5E45, bodyH / \u81EA\u7136\u9AD8);
|
|
15372
15497
|
const barH = \u5E2F * \u500D;
|
|
@@ -15476,7 +15601,8 @@ function ShapeTerminalNode({ node, active }) {
|
|
|
15476
15601
|
)
|
|
15477
15602
|
] });
|
|
15478
15603
|
}
|
|
15479
|
-
function ShapeCodeBlockNode({ node, active }) {
|
|
15604
|
+
function ShapeCodeBlockNode({ node, active, lang }) {
|
|
15605
|
+
const \u5B57\u5F15 = \u5B57\u5F15\u304D\u3092\u4F5C\u308B(lang);
|
|
15480
15606
|
const frame = commonFrame2(active);
|
|
15481
15607
|
const \u7DDA = frame.strokeWidth / 2;
|
|
15482
15608
|
const x = node.cx - node.w / 2 + \u7DDA;
|
|
@@ -15566,7 +15692,7 @@ function ShapeCodeBlockNode({ node, active }) {
|
|
|
15566
15692
|
fontFamily: lineFont,
|
|
15567
15693
|
textAnchor: "middle",
|
|
15568
15694
|
fill: "#e6edf3",
|
|
15569
|
-
children: "
|
|
15695
|
+
children: \u5B57\u5F15("codeBlock.fileName")
|
|
15570
15696
|
}
|
|
15571
15697
|
),
|
|
15572
15698
|
/* @__PURE__ */ jsx("circle", { cx: x + tabW - \u4E38, cy: y + tabH / 2, r: 3 * \u500D, fill: "#7cd88f", stroke: "none" }),
|
|
@@ -15642,7 +15768,8 @@ function ShapeCodeBlockNode({ node, active }) {
|
|
|
15642
15768
|
)
|
|
15643
15769
|
] });
|
|
15644
15770
|
}
|
|
15645
|
-
function ShapeKanbanCardNode({ node, active }) {
|
|
15771
|
+
function ShapeKanbanCardNode({ node, active, lang }) {
|
|
15772
|
+
const \u5B57\u5F15 = \u5B57\u5F15\u304D\u3092\u4F5C\u308B(lang);
|
|
15646
15773
|
const frame = commonFrame2(active);
|
|
15647
15774
|
const \u7DDA = frame.strokeWidth / 2;
|
|
15648
15775
|
const \u5F71 = 3;
|
|
@@ -15654,7 +15781,7 @@ function ShapeKanbanCardNode({ node, active }) {
|
|
|
15654
15781
|
const \u5DE6\u53F3\u4F59\u767D = 14;
|
|
15655
15782
|
const \u4E0A\u6BB5\u9699\u9593 = 8;
|
|
15656
15783
|
const \u512A\u5148\u5E2F\u9AD8 = 10;
|
|
15657
|
-
const ID\u6587 = "
|
|
15784
|
+
const ID\u6587 = \u5B57\u5F15("kanbanCard.id");
|
|
15658
15785
|
const ID\u57FA\u6E96 = 30;
|
|
15659
15786
|
const ID\u5B57 = 11;
|
|
15660
15787
|
const ID\u5B57\u9593 = 1;
|
|
@@ -15673,7 +15800,7 @@ function ShapeKanbanCardNode({ node, active }) {
|
|
|
15673
15800
|
const \u4E0B\u5E2F = FOOTER\u4E0B - AVATAR\u4E2D\u5FC3Y + AVATAR\u534A\u5F84 + AVATAR\u67A0 / 2 + \u5E2F\u9593\u4F59\u767D;
|
|
15674
15801
|
const \u4E2D\u5E2F = \u540D\u524D\u5B57 * ASCENT3 + \u540D\u524D\u5B57 * \u8AAC\u660E\u57FA\u6E96\u6BD4 + \u540D\u524D\u5B57 * \u8AAC\u660E\u5B57\u6BD4 * DESCENT3;
|
|
15675
15802
|
const \u81EA\u7136\u9AD8 = \u4E0A\u5E2F + \u4E2D\u5E2F + \u4E0B\u5E2F;
|
|
15676
|
-
const ID\u5E45 = ID\u6587
|
|
15803
|
+
const ID\u5E45 = \u7B49\u5E45\u306E\u6841(ID\u6587) * MONO_ADVANCE * ID\u5B57 + ID\u5B57\u9593 * [...ID\u6587].length;
|
|
15677
15804
|
const \u81EA\u7136\u5E45 = \u5DE6\u53F3\u4F59\u767D + ID\u5E45 + \u4E0A\u6BB5\u9699\u9593 + PILL\u5E45 + \u5DE6\u53F3\u4F59\u767D;
|
|
15678
15805
|
const \u500D = Math.min(1, w / \u81EA\u7136\u5E45, h / \u81EA\u7136\u9AD8);
|
|
15679
15806
|
const priorityBarH = \u512A\u5148\u5E2F\u9AD8 * \u500D;
|
|
@@ -15752,7 +15879,7 @@ function ShapeKanbanCardNode({ node, active }) {
|
|
|
15752
15879
|
textAnchor: "middle",
|
|
15753
15880
|
fill: "#5a4a1a",
|
|
15754
15881
|
fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace",
|
|
15755
|
-
children: "
|
|
15882
|
+
children: \u5B57\u5F15("kanbanCard.status")
|
|
15756
15883
|
}
|
|
15757
15884
|
),
|
|
15758
15885
|
/* @__PURE__ */ jsx(
|
|
@@ -15776,7 +15903,7 @@ function ShapeKanbanCardNode({ node, active }) {
|
|
|
15776
15903
|
fontSize: \u540D\u524D.size * \u8AAC\u660E\u5B57\u6BD4,
|
|
15777
15904
|
textAnchor: "middle",
|
|
15778
15905
|
fill: "var(--cdl-text-dim, #5a6270)",
|
|
15779
|
-
children:
|
|
15906
|
+
children: \u5B57\u5F15("kanbanCard.task")
|
|
15780
15907
|
}
|
|
15781
15908
|
),
|
|
15782
15909
|
/* @__PURE__ */ jsxs("g", { transform: `translate(${x + \u5DE6\u53F3\u4F59\u767D * \u500D}, ${footY})`, children: [
|
|
@@ -15839,7 +15966,7 @@ function ShapeKanbanCardNode({ node, active }) {
|
|
|
15839
15966
|
fontWeight: 600,
|
|
15840
15967
|
textAnchor: "end",
|
|
15841
15968
|
fill: "var(--cdl-text-dim, #5a6270)",
|
|
15842
|
-
children: "
|
|
15969
|
+
children: \u5B57\u5F15("kanbanCard.due")
|
|
15843
15970
|
}
|
|
15844
15971
|
)
|
|
15845
15972
|
] })
|
|
@@ -16883,7 +17010,8 @@ function EthereumDiamond({ cx, cy, h, colors }) {
|
|
|
16883
17010
|
/* @__PURE__ */ jsx("path", { d: `M ${cx} ${midY} L ${cx + w} ${cy + h * 0.05} L ${cx} ${lowerBotY} Z`, fill: c.dark, stroke: c.stroke, strokeWidth: 0.6, strokeLinejoin: "round" })
|
|
16884
17011
|
] });
|
|
16885
17012
|
}
|
|
16886
|
-
function ShapeSmartContractNode({ node, active }) {
|
|
17013
|
+
function ShapeSmartContractNode({ node, active, lang }) {
|
|
17014
|
+
const \u5B57\u5F15 = \u5B57\u5F15\u304D\u3092\u4F5C\u308B(lang);
|
|
16887
17015
|
const frame = commonFrame4(active);
|
|
16888
17016
|
const r = shapeRegion(node);
|
|
16889
17017
|
const docW = SMART_CONTRACT_W;
|
|
@@ -16919,7 +17047,7 @@ function ShapeSmartContractNode({ node, active }) {
|
|
|
16919
17047
|
/* @__PURE__ */ jsx("path", { "data-cdl-role": "node-body", d: path, ...frame, strokeLinejoin: "round" }),
|
|
16920
17048
|
/* @__PURE__ */ jsx("path", { d: foldPath, fill: "none", stroke: frame.stroke, strokeWidth: frame.strokeWidth, strokeLinejoin: "round" }),
|
|
16921
17049
|
[y + 40, y + 58, y + 76, y + 94].map((ly, i) => /* @__PURE__ */ jsx("rect", { x: x + 16, y: ly - 3, width: docW - 32 - i * 22, height: 5, rx: 1, fill: "var(--cdl-divider, #d4d4d8)", fillOpacity: 0.7, stroke: "none" }, i)),
|
|
16922
|
-
/* @__PURE__ */ jsx("text", { x: x + 16, y: y + docH - 46, fontSize: 11, fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace", fill: "var(--cdl-tone-accent, #2d6a8f)", children: "
|
|
17050
|
+
/* @__PURE__ */ jsx("text", { x: x + 16, y: y + docH - 46, fontSize: 11, fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace", fill: "var(--cdl-tone-accent, #2d6a8f)", children: \u5B57\u5F15("smartContract.call") }),
|
|
16923
17051
|
/* @__PURE__ */ jsx(
|
|
16924
17052
|
"polygon",
|
|
16925
17053
|
{
|
|
@@ -16940,14 +17068,14 @@ function ShapeSmartContractNode({ node, active }) {
|
|
|
16940
17068
|
}
|
|
16941
17069
|
var \u5B57\u306E\u5E45 = (text, size) => Math.max(displayWidth(text) * size * MONO_ADVANCE_RATIO, textWidth(text, size));
|
|
16942
17070
|
var BLOCK_DEFAULT_FIELDS = [
|
|
16943
|
-
{ label: "hash", value: "0xaf31c9d2..." },
|
|
16944
|
-
{ label: "prev", value: "0x7b3f92c1..." },
|
|
16945
|
-
{ label: "merkle", value: "0xc1892f4a..." },
|
|
16946
|
-
{ label: "nonce", value: "82,914" },
|
|
16947
|
-
{ label: "tx", value:
|
|
17071
|
+
{ key: "hash", label: "blockchainBlock.hash", value: { text: "0xaf31c9d2..." } },
|
|
17072
|
+
{ key: "prev", label: "blockchainBlock.prev", value: { text: "0x7b3f92c1..." } },
|
|
17073
|
+
{ key: "merkle", label: "blockchainBlock.merkle", value: { text: "0xc1892f4a..." } },
|
|
17074
|
+
{ key: "nonce", label: "blockchainBlock.nonce", value: { text: "82,914" } },
|
|
17075
|
+
{ key: "tx", label: "blockchainBlock.tx", value: { \u8F9E\u66F8: "blockchainBlock.txCount" } }
|
|
16948
17076
|
];
|
|
16949
|
-
|
|
16950
|
-
|
|
17077
|
+
function ShapeBlockchainBlockNode({ node, active, lang }) {
|
|
17078
|
+
const \u5B57\u5F15 = \u5B57\u5F15\u304D\u3092\u4F5C\u308B(lang);
|
|
16951
17079
|
const frame = commonFrame4(active);
|
|
16952
17080
|
const r = shapeRegion(node);
|
|
16953
17081
|
const bw = BLOCK_W;
|
|
@@ -16957,11 +17085,15 @@ function ShapeBlockchainBlockNode({ node, active }) {
|
|
|
16957
17085
|
const x = cx - bw / 2;
|
|
16958
17086
|
const y = cy - bh / 2;
|
|
16959
17087
|
const \u6E21\u3055\u308C\u305F = (v) => (v ?? "").trim();
|
|
16960
|
-
const \u898B\u51FA\u3057 = \u6E21\u3055\u308C\u305F(node.title) ||
|
|
16961
|
-
const fields = BLOCK_DEFAULT_FIELDS.map((f) =>
|
|
16962
|
-
|
|
16963
|
-
|
|
16964
|
-
|
|
17088
|
+
const \u898B\u51FA\u3057 = \u6E21\u3055\u308C\u305F(node.title) || \u5B57\u5F15("blockchainBlock.title");
|
|
17089
|
+
const fields = BLOCK_DEFAULT_FIELDS.map((f) => {
|
|
17090
|
+
const \u65E2\u5B9A\u5024 = "text" in f.value ? f.value.text : \u5B57\u5F15(f.value.\u8F9E\u66F8);
|
|
17091
|
+
return {
|
|
17092
|
+
key: f.key,
|
|
17093
|
+
label: \u5B57\u5F15(f.label),
|
|
17094
|
+
value: f.key === "hash" ? \u6E21\u3055\u308C\u305F(node.subtitle) || \u65E2\u5B9A\u5024 : \u65E2\u5B9A\u5024
|
|
17095
|
+
};
|
|
17096
|
+
});
|
|
16965
17097
|
const \u898B\u51FA\u3057\u306E\u5E45 = bw - 14 - 30;
|
|
16966
17098
|
const art = /* @__PURE__ */ jsxs("g", { children: [
|
|
16967
17099
|
/* @__PURE__ */ jsx("rect", { x: x + 6, y: y + 6, width: bw, height: bh, rx: 8, fill: frame.stroke, opacity: 0.2, stroke: "none" }),
|
|
@@ -16971,7 +17103,7 @@ function ShapeBlockchainBlockNode({ node, active }) {
|
|
|
16971
17103
|
/* @__PURE__ */ jsx("circle", { cx: x + bw - 16, cy: y + 16, r: 5.5, fill: "#7cd88f", stroke: "#ffffff", strokeWidth: 1.5 }),
|
|
16972
17104
|
fields.map((f, i) => /* @__PURE__ */ jsxs("g", { children: [
|
|
16973
17105
|
/* @__PURE__ */ 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 }),
|
|
16974
|
-
/* @__PURE__ */ jsx("text", { "data-cdl-role": `blockchain-block-${f.
|
|
17106
|
+
/* @__PURE__ */ 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) }),
|
|
16975
17107
|
/* @__PURE__ */ 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 })
|
|
16976
17108
|
] }, i)),
|
|
16977
17109
|
/* @__PURE__ */ jsxs("g", { transform: `translate(${cx - 32}, ${y + bh - 26})`, children: [
|
|
@@ -17176,7 +17308,8 @@ function ShapeBlockchainNodeNode({ node, active }) {
|
|
|
17176
17308
|
bottomLabel2(node, r.cx, r.label)
|
|
17177
17309
|
] });
|
|
17178
17310
|
}
|
|
17179
|
-
function ShapeRpcNodeNode({ node, active }) {
|
|
17311
|
+
function ShapeRpcNodeNode({ node, active, lang }) {
|
|
17312
|
+
const \u5B57\u5F15 = \u5B57\u5F15\u304D\u3092\u4F5C\u308B(lang);
|
|
17180
17313
|
const frame = commonFrame4(active);
|
|
17181
17314
|
const r = shapeRegion(node);
|
|
17182
17315
|
const cx = r.cx;
|
|
@@ -17189,7 +17322,7 @@ function ShapeRpcNodeNode({ node, active }) {
|
|
|
17189
17322
|
/* @__PURE__ */ jsx("rect", { "data-cdl-role": "node-body", x, y, width: bw, height: bh, rx: 10, fill: "#1a2332", stroke: frame.stroke, strokeWidth: frame.strokeWidth }),
|
|
17190
17323
|
/* @__PURE__ */ jsx("rect", { x, y, width: bw, height: 30, rx: 10, fill: "#2d3a4f", stroke: "none" }),
|
|
17191
17324
|
/* @__PURE__ */ jsx("circle", { cx: x + 14, cy: y + 15, r: 5, fill: "#27c93f", stroke: "none", children: /* @__PURE__ */ jsx("animate", { attributeName: "opacity", values: "0.4;1;0.4", dur: "1.5s", repeatCount: "indefinite" }) }),
|
|
17192
|
-
/* @__PURE__ */ jsx("text", { x: x + 26, y: y + 20, fontSize: 12, fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace", fontWeight: 700, fill: "#7cd88f", children: "
|
|
17325
|
+
/* @__PURE__ */ jsx("text", { x: x + 26, y: y + 20, fontSize: 12, fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace", fontWeight: 700, fill: "#7cd88f", children: \u5B57\u5F15("rpcNode.status") }),
|
|
17193
17326
|
/* @__PURE__ */ jsx("text", { x: cx, y: cy + 6, fontSize: 30, fontWeight: 700, textAnchor: "middle", fill: "#e6edf3", fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace", children: "{...}" }),
|
|
17194
17327
|
/* @__PURE__ */ jsx("text", { x: cx, y: cy + 26, fontSize: 11, textAnchor: "middle", fill: "#7a8290", fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace", children: "JSON-RPC 2.0" }),
|
|
17195
17328
|
/* @__PURE__ */ jsx("rect", { x: x + 16, y: y + bh - 24, width: bw - 32, height: 8, rx: 4, fill: "#0f1419", stroke: "none" }),
|
|
@@ -17475,7 +17608,8 @@ var TRUST_BASE_H = 14;
|
|
|
17475
17608
|
var TRUST_BODY_OUT = 8;
|
|
17476
17609
|
var TRUST_BLD_W_MIN = 140;
|
|
17477
17610
|
var TRUST_BLD_W_MAX = 280;
|
|
17478
|
-
function ShapeTrustBankNode({ node, active }) {
|
|
17611
|
+
function ShapeTrustBankNode({ node, active, lang }) {
|
|
17612
|
+
const \u5B57\u5F15 = \u5B57\u5F15\u304D\u3092\u4F5C\u308B(lang);
|
|
17479
17613
|
const frame = commonFrame5(active);
|
|
17480
17614
|
const r = shapeRegion(node);
|
|
17481
17615
|
const \u7DDA = frame.strokeWidth / 2;
|
|
@@ -17512,7 +17646,7 @@ function ShapeTrustBankNode({ node, active }) {
|
|
|
17512
17646
|
return /* @__PURE__ */ jsx("rect", { x: r.cx - w / 2, y: y + bldH + i * BANK_STEP_DY, width: w, height: BANK_STEP_H, fill: "var(--cdl-divider, #d4d4d8)", fillOpacity: 0.5 + i * 0.15, stroke: frame.stroke, strokeWidth: BANK_STEP_SW }, i);
|
|
17513
17647
|
}),
|
|
17514
17648
|
/* @__PURE__ */ jsx("path", { d: `M ${x - 6} ${y + pedimentH} L ${r.cx} ${y + 2} L ${x + bldW + 6} ${y + pedimentH} Z`, fill: "var(--cdl-node-fill, #ffffff)", stroke: frame.stroke, strokeWidth: frame.strokeWidth, strokeLinejoin: "round" }),
|
|
17515
|
-
/* @__PURE__ */ jsx("text", { x: r.cx, y: y + pedimentH - 8, fontSize: 15, fontWeight: 700, letterSpacing: 2, textAnchor: "middle", fill: "var(--cdl-tone-accent, #2d6a8f)", fontFamily: "Georgia, serif", children: "
|
|
17649
|
+
/* @__PURE__ */ jsx("text", { x: r.cx, y: y + pedimentH - 8, fontSize: 15, fontWeight: 700, letterSpacing: 2, textAnchor: "middle", fill: "var(--cdl-tone-accent, #2d6a8f)", fontFamily: "Georgia, serif", children: \u5B57\u5F15("trustBank.sign") }),
|
|
17516
17650
|
/* @__PURE__ */ jsx("rect", { x: x - 4, y: y + pedimentH, width: bldW + 8, height: architraveH, fill: "var(--cdl-divider, #d4d4d8)", fillOpacity: 0.4, stroke: frame.stroke, strokeWidth: frame.strokeWidth }),
|
|
17517
17651
|
Array.from({ length: nCols }, (_, i) => i).map((i) => {
|
|
17518
17652
|
const colCx = x + 15 + colGap + i * (colW + colGap) + colW / 2;
|
|
@@ -17531,7 +17665,8 @@ function ShapeTrustBankNode({ node, active }) {
|
|
|
17531
17665
|
bottomLabel3(node, r.cx, r.label)
|
|
17532
17666
|
] });
|
|
17533
17667
|
}
|
|
17534
|
-
function ShapePaymentProviderNode({ node, active }) {
|
|
17668
|
+
function ShapePaymentProviderNode({ node, active, lang }) {
|
|
17669
|
+
const \u5B57\u5F15 = \u5B57\u5F15\u304D\u3092\u4F5C\u308B(lang);
|
|
17535
17670
|
const frame = commonFrame5(active);
|
|
17536
17671
|
const r = shapeRegion(node);
|
|
17537
17672
|
const cx = r.cx;
|
|
@@ -17548,13 +17683,13 @@ function ShapePaymentProviderNode({ node, active }) {
|
|
|
17548
17683
|
/* @__PURE__ */ jsx("rect", { "data-cdl-role": "node-body", x, y, width: boxW, height: boxH, rx: 10, fill: "#255a7a", stroke: accentDark, strokeWidth: frame.strokeWidth }),
|
|
17549
17684
|
/* @__PURE__ */ jsx("rect", { x, y, width: boxW, height: headerH, rx: 10, fill: accentDarker }),
|
|
17550
17685
|
/* @__PURE__ */ jsx("rect", { x, y: y + headerH - 8, width: boxW, height: 8, fill: accentDarker }),
|
|
17551
|
-
/* @__PURE__ */ jsx("text", { x: cx, y: y + 22, fontSize: 16, fontWeight: 700, letterSpacing: 4, textAnchor: "middle", fill: "#e5c07b", children: "
|
|
17686
|
+
/* @__PURE__ */ jsx("text", { x: cx, y: y + 22, fontSize: 16, fontWeight: 700, letterSpacing: 4, textAnchor: "middle", fill: "#e5c07b", children: \u5B57\u5F15("paymentProvider.sign") }),
|
|
17552
17687
|
/* @__PURE__ */ jsxs("g", { children: [
|
|
17553
17688
|
/* @__PURE__ */ jsx("circle", { cx, cy: cy + 4, r: 22, fill: "none", stroke: "#e5c07b", strokeWidth: 3.5, strokeDasharray: "38 24", strokeLinecap: "round", children: /* @__PURE__ */ jsx("animateTransform", { attributeName: "transform", type: "rotate", from: `0 ${cx} ${cy + 4}`, to: `360 ${cx} ${cy + 4}`, dur: "2s", repeatCount: "indefinite" }) }),
|
|
17554
17689
|
/* @__PURE__ */ jsx("circle", { cx, cy: cy + 4, r: 10, fill: "#e5c07b", stroke: accentDarker, strokeWidth: 1.5 }),
|
|
17555
17690
|
/* @__PURE__ */ jsx("text", { x: cx, y: cy + 9, fontSize: 13, fontWeight: 700, textAnchor: "middle", fill: accentDarker, fontFamily: "Georgia, serif", children: "$" })
|
|
17556
17691
|
] }),
|
|
17557
|
-
/* @__PURE__ */ jsx("text", { x: cx, y: y + boxH - 16, fontSize: 9, fontWeight: 700, letterSpacing: 2, textAnchor: "middle", fill: "#a4b5f2", children: "
|
|
17692
|
+
/* @__PURE__ */ jsx("text", { x: cx, y: y + boxH - 16, fontSize: 9, fontWeight: 700, letterSpacing: 2, textAnchor: "middle", fill: "#a4b5f2", children: \u5B57\u5F15("paymentProvider.status") }),
|
|
17558
17693
|
bottomLabel3(node, r.cx, r.label)
|
|
17559
17694
|
] });
|
|
17560
17695
|
}
|
|
@@ -17602,7 +17737,8 @@ var BROKERAGE_SHADE_OUT = 2;
|
|
|
17602
17737
|
var BROKERAGE_W_MIN = BROKERAGE_COLS * BROKERAGE_CELL_W + (BROKERAGE_COLS - 1) * BROKERAGE_GAP_X + 6;
|
|
17603
17738
|
var BROKERAGE_W_MAX = 140;
|
|
17604
17739
|
var BROKERAGE_H_MIN = BROKERAGE_TICK_H + BROKERAGE_LOGO_H + BROKERAGE_BASE_H;
|
|
17605
|
-
function ShapeBrokerageNode({ node, active }) {
|
|
17740
|
+
function ShapeBrokerageNode({ node, active, lang }) {
|
|
17741
|
+
const \u5B57\u5F15 = \u5B57\u5F15\u304D\u3092\u4F5C\u308B(lang);
|
|
17606
17742
|
const frame = commonFrame5(active);
|
|
17607
17743
|
const r = shapeRegion(node);
|
|
17608
17744
|
const cx = r.cx;
|
|
@@ -17638,9 +17774,9 @@ function ShapeBrokerageNode({ node, active }) {
|
|
|
17638
17774
|
/* @__PURE__ */ jsx("rect", { x: x - BROKERAGE_SHADE_OUT, y, width: BROKERAGE_SHADE_OUT * 2, height: h, fill: accentDarker }),
|
|
17639
17775
|
/* @__PURE__ */ jsx("rect", { x, y, width: w, height: BROKERAGE_TICK_H, fill: "#0f1830", stroke: "none" }),
|
|
17640
17776
|
/* @__PURE__ */ jsx("rect", { x: x + 2, y: y + 2, width: w - 4, height: 8, fill: "#1a2340", stroke: "none" }),
|
|
17641
|
-
/* @__PURE__ */ jsx("text", { x: cx, y: y + 9, fontSize: 5.5, fontWeight: 700, textAnchor: "middle", fill: "#4ea36a", fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace", children:
|
|
17777
|
+
/* @__PURE__ */ jsx("text", { x: cx, y: y + 9, fontSize: 5.5, fontWeight: 700, textAnchor: "middle", fill: "#4ea36a", fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace", children: \u5B57\u5F15("brokerage.ticker") }),
|
|
17642
17778
|
/* @__PURE__ */ jsx("rect", { x, y: y + BROKERAGE_TICK_H, width: w, height: BROKERAGE_LOGO_H, fill: "#e5c07b", stroke: "none" }),
|
|
17643
|
-
/* @__PURE__ */ jsx("text", { x: cx, y: y + 30, fontSize: 12, fontWeight: 700, letterSpacing: 2.5, textAnchor: "middle", fill: "#0f1830", children: "
|
|
17779
|
+
/* @__PURE__ */ jsx("text", { x: cx, y: y + 30, fontSize: 12, fontWeight: 700, letterSpacing: 2.5, textAnchor: "middle", fill: "#0f1830", children: \u5B57\u5F15("brokerage.sign") }),
|
|
17644
17780
|
Array.from({ length: rows }).map(
|
|
17645
17781
|
(_, ri) => Array.from({ length: cols }).map((_2, ci) => {
|
|
17646
17782
|
const wx = gridStartX + ci * (cellW + gapX);
|
|
@@ -17661,7 +17797,8 @@ function ShapeBrokerageNode({ node, active }) {
|
|
|
17661
17797
|
bottomLabel3(node, r.cx, r.label)
|
|
17662
17798
|
] });
|
|
17663
17799
|
}
|
|
17664
|
-
function ShapeExchangeNode({ node, active }) {
|
|
17800
|
+
function ShapeExchangeNode({ node, active, lang }) {
|
|
17801
|
+
const \u5B57\u5F15 = \u5B57\u5F15\u304D\u3092\u4F5C\u308B(lang);
|
|
17665
17802
|
const frame = commonFrame5(active);
|
|
17666
17803
|
const r = shapeRegion(node);
|
|
17667
17804
|
const cx = r.cx;
|
|
@@ -17706,9 +17843,9 @@ function ShapeExchangeNode({ node, active }) {
|
|
|
17706
17843
|
] }, `d${i}`);
|
|
17707
17844
|
}),
|
|
17708
17845
|
/* @__PURE__ */ jsx("path", { d: hexPath, fill: "#255a7a", stroke: accentDarker, strokeWidth: frame.strokeWidth, strokeLinejoin: "round" }),
|
|
17709
|
-
/* @__PURE__ */ jsx("text", { x: cx, y: cy - 8, fontSize: 10, fontWeight: 700, letterSpacing: 2, textAnchor: "middle", fill: "#e5c07b", children: "
|
|
17846
|
+
/* @__PURE__ */ jsx("text", { x: cx, y: cy - 8, fontSize: 10, fontWeight: 700, letterSpacing: 2, textAnchor: "middle", fill: "#e5c07b", children: \u5B57\u5F15("exchange.sign") }),
|
|
17710
17847
|
/* @__PURE__ */ jsx("text", { "data-cdl-role": "node-body", x: cx, y: cy + 12, fontSize: 22, fontWeight: 700, textAnchor: "middle", fill: "#e5c07b", children: "\u21C4" }),
|
|
17711
|
-
/* @__PURE__ */ jsx("text", { x: cx, y: cy + 26, fontSize: 8, fontWeight: 700, textAnchor: "middle", fill: "#a4b5f2", children: "
|
|
17848
|
+
/* @__PURE__ */ jsx("text", { x: cx, y: cy + 26, fontSize: 8, fontWeight: 700, textAnchor: "middle", fill: "#a4b5f2", children: \u5B57\u5F15("exchange.sub") }),
|
|
17712
17849
|
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}`))
|
|
17713
17850
|
] });
|
|
17714
17851
|
return /* @__PURE__ */ jsxs("g", { children: [
|
|
@@ -17730,7 +17867,8 @@ var ATM_PANEL_H = 146;
|
|
|
17730
17867
|
var ATM_W_MIN = 100;
|
|
17731
17868
|
var ATM_W_MAX = 140;
|
|
17732
17869
|
var ATM_H_MIN = ATM_SIGN_H + ATM_SIGN_GAP + 30 + ATM_FLOOR_RESERVE;
|
|
17733
|
-
function ShapeAtmNode({ node, active }) {
|
|
17870
|
+
function ShapeAtmNode({ node, active, lang }) {
|
|
17871
|
+
const \u5B57\u5F15 = \u5B57\u5F15\u304D\u3092\u4F5C\u308B(lang);
|
|
17734
17872
|
const frame = commonFrame5(active);
|
|
17735
17873
|
const r = shapeRegion(node);
|
|
17736
17874
|
const cx = r.cx;
|
|
@@ -17764,12 +17902,12 @@ function ShapeAtmNode({ node, active }) {
|
|
|
17764
17902
|
const \u7D75 = /* @__PURE__ */ jsxs("g", { children: [
|
|
17765
17903
|
/* @__PURE__ */ jsx("ellipse", { cx, cy: y + totalH + ATM_SHADOW_DY, rx: totalW * ATM_SHADOW_RX_RATIO, ry: ATM_SHADOW_RY, fill: frame.stroke, opacity: 0.15, stroke: "none" }),
|
|
17766
17904
|
/* @__PURE__ */ jsx("rect", { x: centerX - totalW / 2, y: signY, width: totalW, height: signH, fill: accentDarker, stroke: "#000", strokeWidth: ATM_SIGN_SW }),
|
|
17767
|
-
/* @__PURE__ */ jsx("text", { x: centerX, y: signY + 17, fontSize: 11, fontWeight: 700, letterSpacing: 2, textAnchor: "middle", fill: "#e5c07b", children: "
|
|
17905
|
+
/* @__PURE__ */ jsx("text", { x: centerX, y: signY + 17, fontSize: 11, fontWeight: 700, letterSpacing: 2, textAnchor: "middle", fill: "#e5c07b", children: \u5B57\u5F15("atm.sign") }),
|
|
17768
17906
|
/* @__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 }),
|
|
17769
17907
|
/* @__PURE__ */ jsxs("g", { transform: `translate(${centerX} ${atmY}) scale(${\u9762})`, children: [
|
|
17770
17908
|
/* @__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 }),
|
|
17771
17909
|
/* @__PURE__ */ jsx("text", { x: 0, y: 30, fontSize: 10, fontWeight: 700, letterSpacing: 1, textAnchor: "middle", fill: "#e5c07b", children: "\u304A\u5F15\u51FA\u3057" }),
|
|
17772
|
-
/* @__PURE__ */ jsx("text", { x: 0, y: 44, fontSize: 8, fontWeight: 700, textAnchor: "middle", fill: "#a4b5f2", children: "
|
|
17910
|
+
/* @__PURE__ */ jsx("text", { x: 0, y: 44, fontSize: 8, fontWeight: 700, textAnchor: "middle", fill: "#a4b5f2", children: \u5B57\u5F15("atm.screen") }),
|
|
17773
17911
|
/* @__PURE__ */ jsx("text", { x: 0, y: 56, fontSize: 10, fontWeight: 700, textAnchor: "middle", fill: "#4ea36a", children: "\xA5 20,000" }),
|
|
17774
17912
|
/* @__PURE__ */ jsx("rect", { x: \u9762\u5DE6 + 8, y: 68, width: ATM_PANEL_W - 16, height: 42, rx: 2, fill: "#8b949e", stroke: "#5a6270", strokeWidth: 1 }),
|
|
17775
17913
|
(() => {
|
|
@@ -17783,7 +17921,7 @@ function ShapeAtmNode({ node, active }) {
|
|
|
17783
17921
|
["5", "#5a6270"],
|
|
17784
17922
|
["6", "#5a6270"],
|
|
17785
17923
|
["0", "#5a6270"],
|
|
17786
|
-
["
|
|
17924
|
+
[\u5B57\u5F15("atm.ok"), "#4ea36a"]
|
|
17787
17925
|
];
|
|
17788
17926
|
const keyW = 18;
|
|
17789
17927
|
const keyH = 10;
|
|
@@ -17796,13 +17934,16 @@ function ShapeAtmNode({ node, active }) {
|
|
|
17796
17934
|
const ky = 74 + row * (keyH + 2);
|
|
17797
17935
|
return /* @__PURE__ */ jsxs("g", { children: [
|
|
17798
17936
|
/* @__PURE__ */ jsx("rect", { x: kx, y: ky, width: keyW, height: keyH, fill: k[1], stroke: "#0f1830", strokeWidth: 0.8 }),
|
|
17799
|
-
/* @__PURE__ */ jsx("text", { x: kx + keyW / 2, y: ky + 7, fontSize:
|
|
17937
|
+
/* @__PURE__ */ jsx("text", { x: kx + keyW / 2, y: ky + 7, fontSize: (
|
|
17938
|
+
/* 決める鍵 (末尾) は 2 字あるので小さく描く。 字は言語で変わるため位置で見分ける */
|
|
17939
|
+
i === keys.length - 1 ? 6 : 7
|
|
17940
|
+
), fontWeight: 700, textAnchor: "middle", fill: "#ffffff", children: k[0] })
|
|
17800
17941
|
] }, `k${i}`);
|
|
17801
17942
|
});
|
|
17802
17943
|
})(),
|
|
17803
17944
|
/* @__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 }),
|
|
17804
17945
|
/* @__PURE__ */ jsx("rect", { x: \u9762\u5DE6 + 15, y: 118, width: ATM_PANEL_W - 30, height: 4, rx: 0.5, fill: "#e5c07b" }),
|
|
17805
|
-
/* @__PURE__ */ jsx("text", { x: 0, y: 132, fontSize: 6, fontWeight: 700, letterSpacing: 1, textAnchor: "middle", fill: "#e5c07b", children: "
|
|
17946
|
+
/* @__PURE__ */ jsx("text", { x: 0, y: 132, fontSize: 6, fontWeight: 700, letterSpacing: 1, textAnchor: "middle", fill: "#e5c07b", children: \u5B57\u5F15("atm.cardSlot") }),
|
|
17806
17947
|
/* @__PURE__ */ jsx("rect", { x: \u9762\u5DE6 + 12, y: 136, width: ATM_PANEL_W - 24, height: 4, rx: 1, fill: "#0f1830" })
|
|
17807
17948
|
] }),
|
|
17808
17949
|
/* @__PURE__ */ jsx("rect", { x: centerX - totalW / 2, y: floorY, width: totalW, height: 6, fill: "#8b949e", stroke: "none" }),
|
|
@@ -17887,7 +18028,8 @@ function ShapeWebsiteNode({ node, active }) {
|
|
|
17887
18028
|
bottomLabel4(node, r.cx, r.label)
|
|
17888
18029
|
] });
|
|
17889
18030
|
}
|
|
17890
|
-
function ShapeStorefrontNode({ node, active }) {
|
|
18031
|
+
function ShapeStorefrontNode({ node, active, lang }) {
|
|
18032
|
+
const \u5B57\u5F15 = \u5B57\u5F15\u304D\u3092\u4F5C\u308B(lang);
|
|
17891
18033
|
const frame = commonFrame6(active);
|
|
17892
18034
|
const r = shapeRegion(node);
|
|
17893
18035
|
const cx = r.cx;
|
|
@@ -17913,7 +18055,7 @@ function ShapeStorefrontNode({ node, active }) {
|
|
|
17913
18055
|
return /* @__PURE__ */ jsxs("g", { children: [
|
|
17914
18056
|
/* @__PURE__ */ jsx("ellipse", { cx, cy: y + bh + 8, rx: bw * 0.5, ry: 5, fill: frame.stroke, opacity: 0.2, stroke: "none" }),
|
|
17915
18057
|
/* @__PURE__ */ jsx("rect", { x, y, width: bw, height: signH, fill: accent, stroke: accentDark, strokeWidth: 2 }),
|
|
17916
|
-
/* @__PURE__ */ jsx("text", { x: cx, y: y + 18, fontSize: 16, fontWeight: 900, letterSpacing: 8, textAnchor: "middle", fill: "#ffffff", children: "
|
|
18058
|
+
/* @__PURE__ */ jsx("text", { x: cx, y: y + 18, fontSize: 16, fontWeight: 900, letterSpacing: 8, textAnchor: "middle", fill: "#ffffff", children: \u5B57\u5F15("storefront.sign") }),
|
|
17917
18059
|
/* @__PURE__ */ jsx("rect", { "data-cdl-role": "node-body", x, y: facadeY, width: bw, height: facadeH, fill: "#e0e4e8", stroke: "#5a6270", strokeWidth: frame.strokeWidth }),
|
|
17918
18060
|
/* @__PURE__ */ jsx("rect", { x: winX, y: winY, width: winW, height: winH, fill: "#a4c5d9", stroke: accentDarker, strokeWidth: 2 }),
|
|
17919
18061
|
/* @__PURE__ */ jsx("line", { x1: winX + winW / 2, y1: winY, x2: winX + winW / 2, y2: winY + winH, stroke: accentDarker, strokeWidth: 1 }),
|
|
@@ -17927,7 +18069,7 @@ function ShapeStorefrontNode({ node, active }) {
|
|
|
17927
18069
|
/* @__PURE__ */ jsx("line", { x1: doorX + 4, y1: doorY + doorH * 0.38, x2: doorX + doorW - 4, y2: doorY + doorH * 0.38, stroke: accentDarker, strokeWidth: 1 }),
|
|
17928
18070
|
/* @__PURE__ */ jsx("line", { x1: doorX + 4, y1: doorY + doorH * 0.72, x2: doorX + doorW - 4, y2: doorY + doorH * 0.72, stroke: accentDarker, strokeWidth: 1 }),
|
|
17929
18071
|
/* @__PURE__ */ jsx("rect", { x: doorX + doorW / 2 - 20, y: doorY + doorH * 0.85, width: 40, height: 12, fill: "#e5c07b", stroke: "#a67c00", strokeWidth: 1.5 }),
|
|
17930
|
-
/* @__PURE__ */ jsx("text", { x: doorX + doorW / 2, y: doorY + doorH * 0.85 + 9, fontSize: 8, fontWeight: 700, letterSpacing: 1, textAnchor: "middle", fill: "#5a3a10", children: "
|
|
18072
|
+
/* @__PURE__ */ jsx("text", { x: doorX + doorW / 2, y: doorY + doorH * 0.85 + 9, fontSize: 8, fontWeight: 700, letterSpacing: 1, textAnchor: "middle", fill: "#5a3a10", children: \u5B57\u5F15("storefront.open") }),
|
|
17931
18073
|
/* @__PURE__ */ jsx("circle", { cx: doorX + 6, cy: doorY + doorH * 0.55, r: 1.5, fill: "#c15a4a" }),
|
|
17932
18074
|
/* @__PURE__ */ jsx("rect", { x: x - 6, y: y + bh - 6, width: bw + 12, height: 8, fill: "#5a6270", stroke: "none" }),
|
|
17933
18075
|
bottomLabel4(node, r.cx, r.label)
|
|
@@ -17944,7 +18086,8 @@ var WAREHOUSE_SHADOW_RX_RATIO = 0.5;
|
|
|
17944
18086
|
var WAREHOUSE_H_MIN = WAREHOUSE_ROOF_H + WAREHOUSE_SIGN_H + 68;
|
|
17945
18087
|
var WAREHOUSE_W_MIN = 160;
|
|
17946
18088
|
var WAREHOUSE_W_MAX = 240;
|
|
17947
|
-
function ShapeWarehouseNode({ node, active }) {
|
|
18089
|
+
function ShapeWarehouseNode({ node, active, lang }) {
|
|
18090
|
+
const \u5B57\u5F15 = \u5B57\u5F15\u304D\u3092\u4F5C\u308B(lang);
|
|
17948
18091
|
const frame = commonFrame6(active);
|
|
17949
18092
|
const r = shapeRegion(node);
|
|
17950
18093
|
const cx = r.cx;
|
|
@@ -17973,7 +18116,7 @@ function ShapeWarehouseNode({ node, active }) {
|
|
|
17973
18116
|
/* @__PURE__ */ jsx("path", { d: `M ${x - WAREHOUSE_ROOF_OUT} ${y + roofH} L ${x + 12} ${y + 2} L ${x + bw - 12} ${y + 2} L ${x + bw + WAREHOUSE_ROOF_OUT} ${y + roofH} Z`, fill: "#5a6270", stroke: accentDarker, strokeWidth: WAREHOUSE_ROOF_SW, strokeLinejoin: "round" }),
|
|
17974
18117
|
/* @__PURE__ */ jsx("rect", { "data-cdl-role": "node-body", x, y: y + roofH, width: bw, height: bh - roofH - 12, fill: "#a89d8f", stroke: "#5a6270", strokeWidth: frame.strokeWidth }),
|
|
17975
18118
|
/* @__PURE__ */ jsx("rect", { x, y: y + roofH, width: bw, height: signH, fill: "#c15a4a", stroke: "#8b3f2f", strokeWidth: 1.5 }),
|
|
17976
|
-
/* @__PURE__ */ jsx("text", { x: cx, y: y + roofH + 17, fontSize: 12, fontWeight: 900, letterSpacing: 6, textAnchor: "middle", fill: "#ffffff", children: "
|
|
18119
|
+
/* @__PURE__ */ jsx("text", { x: cx, y: y + roofH + 17, fontSize: 12, fontWeight: 900, letterSpacing: 6, textAnchor: "middle", fill: "#ffffff", children: \u5B57\u5F15("warehouse.sign") }),
|
|
17977
18120
|
/* @__PURE__ */ jsx("rect", { x: shutterX, y: shutterY, width: shutterW, height: shutterH, fill: "#8b949e", stroke: accentDarker, strokeWidth: 2 }),
|
|
17978
18121
|
/* @__PURE__ */ jsx("rect", { x: shutterX, y: shutterY, width: shutterW, height: 5, fill: "#5a6270", stroke: "none" }),
|
|
17979
18122
|
Array.from({ length: 10 }, (_, i) => i).map((i) => /* @__PURE__ */ jsx(
|
|
@@ -18130,7 +18273,8 @@ var API_ROWS = 3;
|
|
|
18130
18273
|
var API_H_MIN = API_ROW_TOP + (API_ROWS - 1) * API_ROW_PITCH_MIN + API_ROW_H + API_ROW_BOTTOM_PAD;
|
|
18131
18274
|
var API_W_MIN = 200;
|
|
18132
18275
|
var API_W_MAX = 300;
|
|
18133
|
-
function ShapeApiGatewayNode({ node, active }) {
|
|
18276
|
+
function ShapeApiGatewayNode({ node, active, lang }) {
|
|
18277
|
+
const \u5B57\u5F15 = \u5B57\u5F15\u304D\u3092\u4F5C\u308B(lang);
|
|
18134
18278
|
const frame = commonFrame6(active);
|
|
18135
18279
|
const r = shapeRegion(node);
|
|
18136
18280
|
const cx = r.cx;
|
|
@@ -18141,6 +18285,7 @@ function ShapeApiGatewayNode({ node, active }) {
|
|
|
18141
18285
|
const x = cx - bw / 2;
|
|
18142
18286
|
const y = r.cy - \u7E26 / 2 + \u4F59\u767D;
|
|
18143
18287
|
const \u5E83\u304C\u308A = { \u4E0A: \u7E26 / 2, \u4E0B: \u7E26 / 2, \u5DE6: bw / 2 + \u4F59\u767D, \u53F3: bw / 2 + \u4F59\u767D };
|
|
18288
|
+
const \u7A2E\u985E\u306E\u5B57 = (s) => Math.min(11, 11 * 48 / Math.max(displayWidth(s) * 11 * MONO_ADVANCE_RATIO, textWidth(s, 11)));
|
|
18144
18289
|
const rowPitch = Math.max(
|
|
18145
18290
|
API_ROW_PITCH_MIN,
|
|
18146
18291
|
(bh - API_ROW_TOP - API_ROW_H - API_ROW_BOTTOM_PAD) / (API_ROWS - 1)
|
|
@@ -18149,15 +18294,15 @@ function ShapeApiGatewayNode({ node, active }) {
|
|
|
18149
18294
|
/* @__PURE__ */ jsx("rect", { x: x + DROP_SHADOW_D, y: y + DROP_SHADOW_D, width: bw, height: bh, rx: 10, fill: frame.stroke, opacity: 0.2, stroke: "none" }),
|
|
18150
18295
|
/* @__PURE__ */ jsx("rect", { "data-cdl-role": "node-body", x, y, width: bw, height: bh, rx: 10, fill: "#1a2332", stroke: frame.stroke, strokeWidth: frame.strokeWidth }),
|
|
18151
18296
|
/* @__PURE__ */ jsx("rect", { x, y, width: bw, height: 36, rx: 10, fill: "var(--cdl-tone-accent, #2d6a8f)", stroke: "none" }),
|
|
18152
|
-
/* @__PURE__ */ jsx("text", { x: cx, y: y + 24, fontSize: 14, fontWeight: 700, letterSpacing: 3, textAnchor: "middle", fill: "#ffffff", fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace", children: "
|
|
18297
|
+
/* @__PURE__ */ jsx("text", { x: cx, y: y + 24, fontSize: 14, fontWeight: 700, letterSpacing: 3, textAnchor: "middle", fill: "#ffffff", fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace", children: \u5B57\u5F15("apiGateway.sign") }),
|
|
18153
18298
|
[
|
|
18154
|
-
{ method: "GET", path: "
|
|
18155
|
-
{ method: "POST", path: "
|
|
18156
|
-
{ method: "
|
|
18299
|
+
{ method: "GET", path: \u5B57\u5F15("apiGateway.users"), color: "#27c93f" },
|
|
18300
|
+
{ method: "POST", path: \u5B57\u5F15("apiGateway.orders"), color: "#e5c07b" },
|
|
18301
|
+
{ method: \u5B57\u5F15("apiGateway.delete"), path: \u5B57\u5F15("apiGateway.session"), color: "#c9302c" }
|
|
18157
18302
|
].map((e, i) => /* @__PURE__ */ jsxs("g", { transform: `translate(${x + 16}, ${y + API_ROW_TOP + i * rowPitch})`, children: [
|
|
18158
18303
|
/* @__PURE__ */ jsx("rect", { x: 0, y: 0, width: bw - 32, height: API_ROW_H, rx: 4, fill: "#0f1419", stroke: "none" }),
|
|
18159
18304
|
/* @__PURE__ */ jsx("rect", { x: 0, y: 0, width: 54, height: API_ROW_H, rx: 4, fill: e.color, stroke: "none" }),
|
|
18160
|
-
/* @__PURE__ */ jsx("text", { x: 27, y: 16, fontSize:
|
|
18305
|
+
/* @__PURE__ */ jsx("text", { x: 27, y: 16, fontSize: \u7A2E\u985E\u306E\u5B57(e.method), fontWeight: 700, textAnchor: "middle", fill: "#ffffff", fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace", children: e.method }),
|
|
18161
18306
|
/* @__PURE__ */ jsx("text", { x: 64, y: 16, fontSize: 12, fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace", fill: "#e6edf3", children: e.path }),
|
|
18162
18307
|
/* @__PURE__ */ jsx("circle", { cx: bw - 44, cy: 12, r: 4, fill: "#27c93f", stroke: "none", children: /* @__PURE__ */ jsx("animate", { attributeName: "opacity", values: "0.4;1;0.4", dur: `${1.2 + i * 0.3}s`, repeatCount: "indefinite" }) })
|
|
18163
18308
|
] }, i))
|
|
@@ -18462,7 +18607,8 @@ function CdlNodeView({
|
|
|
18462
18607
|
stateValues,
|
|
18463
18608
|
currentPhaseId,
|
|
18464
18609
|
chartLineScale,
|
|
18465
|
-
\u95A2\u4FC2\u306E\u53D7\u3051\u53E3
|
|
18610
|
+
\u95A2\u4FC2\u306E\u53D7\u3051\u53E3,
|
|
18611
|
+
lang
|
|
18466
18612
|
}) {
|
|
18467
18613
|
const value = node.value ? interpolate(node.value, stateValues) : void 0;
|
|
18468
18614
|
const rows = (node.rows ?? []).map((r) => interpolate(r, stateValues));
|
|
@@ -18678,11 +18824,11 @@ function CdlNodeView({
|
|
|
18678
18824
|
case "shape-window":
|
|
18679
18825
|
return /* @__PURE__ */ jsx(ShapeWindowNode, { node: resolvedNode, active });
|
|
18680
18826
|
case "shape-terminal":
|
|
18681
|
-
return /* @__PURE__ */ jsx(ShapeTerminalNode, { node: resolvedNode, active });
|
|
18827
|
+
return /* @__PURE__ */ jsx(ShapeTerminalNode, { node: resolvedNode, active, lang });
|
|
18682
18828
|
case "shape-code-block":
|
|
18683
|
-
return /* @__PURE__ */ jsx(ShapeCodeBlockNode, { node: resolvedNode, active });
|
|
18829
|
+
return /* @__PURE__ */ jsx(ShapeCodeBlockNode, { node: resolvedNode, active, lang });
|
|
18684
18830
|
case "shape-kanban-card":
|
|
18685
|
-
return /* @__PURE__ */ jsx(ShapeKanbanCardNode, { node: resolvedNode, active });
|
|
18831
|
+
return /* @__PURE__ */ jsx(ShapeKanbanCardNode, { node: resolvedNode, active, lang });
|
|
18686
18832
|
case "shape-message-bubble":
|
|
18687
18833
|
return /* @__PURE__ */ jsx(ShapeMessageBubbleNode, { node: resolvedNode, active });
|
|
18688
18834
|
case "shape-gear":
|
|
@@ -18700,11 +18846,11 @@ function CdlNodeView({
|
|
|
18700
18846
|
case "shape-satellite":
|
|
18701
18847
|
return /* @__PURE__ */ jsx(ShapeSatelliteNode, { node: resolvedNode, active });
|
|
18702
18848
|
case "shape-smart-contract":
|
|
18703
|
-
return /* @__PURE__ */ jsx(ShapeSmartContractNode, { node: resolvedNode, active });
|
|
18849
|
+
return /* @__PURE__ */ jsx(ShapeSmartContractNode, { node: resolvedNode, active, lang });
|
|
18704
18850
|
case "shape-blockchain-block":
|
|
18705
|
-
return /* @__PURE__ */ jsx(ShapeBlockchainBlockNode, { node: resolvedNode, active });
|
|
18851
|
+
return /* @__PURE__ */ jsx(ShapeBlockchainBlockNode, { node: resolvedNode, active, lang });
|
|
18706
18852
|
case "shape-rpc-node":
|
|
18707
|
-
return /* @__PURE__ */ jsx(ShapeRpcNodeNode, { node: resolvedNode, active });
|
|
18853
|
+
return /* @__PURE__ */ jsx(ShapeRpcNodeNode, { node: resolvedNode, active, lang });
|
|
18708
18854
|
case "shape-wallet":
|
|
18709
18855
|
return /* @__PURE__ */ jsx(ShapeWalletNode, { node: resolvedNode, active });
|
|
18710
18856
|
case "shape-nft":
|
|
@@ -18722,29 +18868,29 @@ function CdlNodeView({
|
|
|
18722
18868
|
case "shape-bank":
|
|
18723
18869
|
return /* @__PURE__ */ jsx(ShapeBankNode, { node: resolvedNode, active });
|
|
18724
18870
|
case "shape-trust-bank":
|
|
18725
|
-
return /* @__PURE__ */ jsx(ShapeTrustBankNode, { node: resolvedNode, active });
|
|
18871
|
+
return /* @__PURE__ */ jsx(ShapeTrustBankNode, { node: resolvedNode, active, lang });
|
|
18726
18872
|
case "shape-payment-provider":
|
|
18727
|
-
return /* @__PURE__ */ jsx(ShapePaymentProviderNode, { node: resolvedNode, active });
|
|
18873
|
+
return /* @__PURE__ */ jsx(ShapePaymentProviderNode, { node: resolvedNode, active, lang });
|
|
18728
18874
|
case "shape-credit-card":
|
|
18729
18875
|
return /* @__PURE__ */ jsx(ShapeCreditCardNode, { node: resolvedNode, active });
|
|
18730
18876
|
case "shape-brokerage":
|
|
18731
|
-
return /* @__PURE__ */ jsx(ShapeBrokerageNode, { node: resolvedNode, active });
|
|
18877
|
+
return /* @__PURE__ */ jsx(ShapeBrokerageNode, { node: resolvedNode, active, lang });
|
|
18732
18878
|
case "shape-exchange":
|
|
18733
|
-
return /* @__PURE__ */ jsx(ShapeExchangeNode, { node: resolvedNode, active });
|
|
18879
|
+
return /* @__PURE__ */ jsx(ShapeExchangeNode, { node: resolvedNode, active, lang });
|
|
18734
18880
|
case "shape-atm":
|
|
18735
|
-
return /* @__PURE__ */ jsx(ShapeAtmNode, { node: resolvedNode, active });
|
|
18881
|
+
return /* @__PURE__ */ jsx(ShapeAtmNode, { node: resolvedNode, active, lang });
|
|
18736
18882
|
case "shape-website":
|
|
18737
18883
|
return /* @__PURE__ */ jsx(ShapeWebsiteNode, { node: resolvedNode, active });
|
|
18738
18884
|
case "shape-storefront":
|
|
18739
|
-
return /* @__PURE__ */ jsx(ShapeStorefrontNode, { node: resolvedNode, active });
|
|
18885
|
+
return /* @__PURE__ */ jsx(ShapeStorefrontNode, { node: resolvedNode, active, lang });
|
|
18740
18886
|
case "shape-warehouse":
|
|
18741
|
-
return /* @__PURE__ */ jsx(ShapeWarehouseNode, { node: resolvedNode, active });
|
|
18887
|
+
return /* @__PURE__ */ jsx(ShapeWarehouseNode, { node: resolvedNode, active, lang });
|
|
18742
18888
|
case "shape-online-shop":
|
|
18743
18889
|
return /* @__PURE__ */ jsx(ShapeOnlineShopNode, { node: resolvedNode, active });
|
|
18744
18890
|
case "shape-cdn-edge":
|
|
18745
18891
|
return /* @__PURE__ */ jsx(ShapeCdnEdgeNode, { node: resolvedNode, active });
|
|
18746
18892
|
case "shape-api-gateway":
|
|
18747
|
-
return /* @__PURE__ */ jsx(ShapeApiGatewayNode, { node: resolvedNode, active });
|
|
18893
|
+
return /* @__PURE__ */ jsx(ShapeApiGatewayNode, { node: resolvedNode, active, lang });
|
|
18748
18894
|
case "shape-auditor":
|
|
18749
18895
|
return /* @__PURE__ */ jsx(ShapeAuditorNode, { node: resolvedNode, active });
|
|
18750
18896
|
case "shape-regulator":
|
|
@@ -19119,6 +19265,7 @@ function CdlStage({
|
|
|
19119
19265
|
{
|
|
19120
19266
|
node,
|
|
19121
19267
|
active: activeSet.has(node.id),
|
|
19268
|
+
lang: laid.lang,
|
|
19122
19269
|
\u95A2\u4FC2\u306E\u53D7\u3051\u53E3: \u7BB1\u306E\u53D7\u3051\u53E3,
|
|
19123
19270
|
drawing: \u63CF\u304F,
|
|
19124
19271
|
progress: \u63CF\u304F ? \u63CF\u304F\u9032\u307F : progress,
|
|
@@ -22820,6 +22967,12 @@ function ProgressGroupReadout({
|
|
|
22820
22967
|
}) })
|
|
22821
22968
|
] });
|
|
22822
22969
|
}
|
|
22970
|
+
function sequenceLabelAnchor(x, name, fontSize, viewW) {
|
|
22971
|
+
const half = textWidth(name, fontSize) / 2;
|
|
22972
|
+
if (x - half < 0) return "start";
|
|
22973
|
+
if (x + half > viewW) return "end";
|
|
22974
|
+
return "middle";
|
|
22975
|
+
}
|
|
22823
22976
|
function SequenceTimelineReadout({
|
|
22824
22977
|
id,
|
|
22825
22978
|
label,
|
|
@@ -22871,7 +23024,7 @@ function SequenceTimelineReadout({
|
|
|
22871
23024
|
const x = xFor(e.t);
|
|
22872
23025
|
return /* @__PURE__ */ jsxs("g", { "data-cdl-event-marker": e.name, children: [
|
|
22873
23026
|
/* @__PURE__ */ jsx("circle", { cx: x, cy: trackY, r: 5, fill: color, stroke: "#fff", strokeWidth: 1.5, children: /* @__PURE__ */ jsx("title", { children: `${e.name}: t=${e.t}` }) }),
|
|
22874
|
-
/* @__PURE__ */ jsx("text", { x, y: trackY - 12, textAnchor:
|
|
23027
|
+
/* @__PURE__ */ jsx("text", { x, y: trackY - 12, textAnchor: sequenceLabelAnchor(x, e.name, 10, viewW), fontSize: 10, fill: "var(--v4-ink, #1a1f2a)", children: e.name }),
|
|
22875
23028
|
/* @__PURE__ */ jsx("text", { x, y: trackY + 18, textAnchor: "middle", fontSize: 9, fill: "var(--v4-mute, #64748b)", children: e.t })
|
|
22876
23029
|
] }, i);
|
|
22877
23030
|
})
|