@cardenelabs/cdl 0.19.0 → 0.20.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 +44 -1
- package/dist/index.cjs +99 -24
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +99 -24
- package/dist/index.js.map +1 -1
- package/dist/react.cjs +99 -24
- package/dist/react.cjs.map +1 -1
- package/dist/react.js +99 -24
- package/dist/react.js.map +1 -1
- package/package.json +1 -1
- package/src/kinds/actor.tsx +8 -4
- package/src/kinds/card.tsx +5 -2
- package/src/kinds/event.tsx +5 -2
- package/src/kinds/function.tsx +5 -2
- package/src/kinds/generic.tsx +6 -2
- package/src/kinds/storage.tsx +6 -2
- package/src/layout/edges.ts +27 -5
- package/src/layout/nodes.ts +52 -5
- package/src/layout/spec.ts +128 -0
package/dist/index.js
CHANGED
|
@@ -11976,6 +11976,54 @@ function buildDiagramAltText(topic, phase) {
|
|
|
11976
11976
|
else if (body) parts.push(body);
|
|
11977
11977
|
return parts.join(" ");
|
|
11978
11978
|
}
|
|
11979
|
+
var \u6BB5\u306E\u4F4D\u7F6E = {
|
|
11980
|
+
actor: { \u76EE\u5370: { y: 38, size: 18 }, \u540D\u524D: { y: 86, size: 32 }, \u8AAC\u660E: { y: 140, size: 20 } },
|
|
11981
|
+
function: { \u76EE\u5370: { y: 38, size: 18 }, \u540D\u524D: { y: 86, size: 24 }, \u8AAC\u660E: { y: 126, size: 20 } },
|
|
11982
|
+
event: { \u76EE\u5370: { y: 38, size: 18 }, \u540D\u524D: { y: 88, size: 26 }, \u8AAC\u660E: { y: 128, size: 21 } },
|
|
11983
|
+
card: { \u76EE\u5370: { y: 38, size: 18 }, \u540D\u524D: { y: 86, size: 24 }, \u8AAC\u660E: { y: 124, size: 21 } },
|
|
11984
|
+
storage: {
|
|
11985
|
+
\u76EE\u5370: { y: 38, size: 18 },
|
|
11986
|
+
\u540D\u524D: { y: STORAGE_TITLE_BASELINE, size: STORAGE_TITLE_FONT },
|
|
11987
|
+
\u8AAC\u660E: { y: 118, size: 20 }
|
|
11988
|
+
}
|
|
11989
|
+
};
|
|
11990
|
+
var \u6C4E\u7528\u306E\u6BB5 = {
|
|
11991
|
+
\u76EE\u5370: { y: 32, size: 17 },
|
|
11992
|
+
\u540D\u524D: { y: GENERIC_TITLE_TOP, size: GENERIC_TITLE_FONT },
|
|
11993
|
+
\u8AAC\u660E: { y: 96, size: 17 }
|
|
11994
|
+
};
|
|
11995
|
+
function \u6BB5\u3092\u7A4D\u3080\u7BB1\u304B(kind, hasRows) {
|
|
11996
|
+
if (hasRows) return false;
|
|
11997
|
+
if (kind === void 0) return false;
|
|
11998
|
+
if (genericTextCentered(kind, false)) return false;
|
|
11999
|
+
return kind in \u6BB5\u306E\u4F4D\u7F6E || rendersRows(kind);
|
|
12000
|
+
}
|
|
12001
|
+
function \u6BB5\u3092\u5F15\u304F(kind) {
|
|
12002
|
+
const \u56FA\u6709 = \u6BB5\u306E\u4F4D\u7F6E[kind];
|
|
12003
|
+
if (\u56FA\u6709) return \u56FA\u6709;
|
|
12004
|
+
if (rendersRows(kind)) return \u6C4E\u7528\u306E\u6BB5;
|
|
12005
|
+
return null;
|
|
12006
|
+
}
|
|
12007
|
+
function \u76EE\u5370\u306A\u3057\u306E\u7E70\u308A\u4E0A\u3052(kind, hasRows = false) {
|
|
12008
|
+
if (!\u6BB5\u3092\u7A4D\u3080\u7BB1\u304B(kind, hasRows)) return 0;
|
|
12009
|
+
const \u6BB5 = \u6BB5\u3092\u5F15\u304F(kind);
|
|
12010
|
+
if (!\u6BB5) return 0;
|
|
12011
|
+
const \u4E0A\u3052\u308B = \u6BB5.\u540D\u524D.y - \u6BB5.\u76EE\u5370.y + (\u6BB5.\u76EE\u5370.size - \u6BB5.\u540D\u524D.size) * GLYPH_CAP_RATIO;
|
|
12012
|
+
return Math.max(0, Math.round(\u4E0A\u3052\u308B));
|
|
12013
|
+
}
|
|
12014
|
+
function \u8AAC\u660E\u306A\u3057\u3067\u7E2E\u3080\u91CF(kind, hasRows = false) {
|
|
12015
|
+
if (!\u6BB5\u3092\u7A4D\u3080\u7BB1\u304B(kind, hasRows)) return 0;
|
|
12016
|
+
const \u6BB5 = \u6BB5\u3092\u5F15\u304F(kind);
|
|
12017
|
+
if (!\u6BB5) return 0;
|
|
12018
|
+
return Math.max(0, \u6BB5.\u8AAC\u660E.y - \u6BB5.\u540D\u524D.y);
|
|
12019
|
+
}
|
|
12020
|
+
function \u4E2D\u8EAB\u304B\u3089\u51FA\u3059\u9AD8\u3055(kind, \u6E80\u8F09h, \u4E2D\u8EAB) {
|
|
12021
|
+
if (!\u6BB5\u3092\u7A4D\u3080\u7BB1\u304B(kind, \u4E2D\u8EAB.hasRows)) return \u6E80\u8F09h;
|
|
12022
|
+
if (\u4E2D\u8EAB.hasValue) return \u6E80\u8F09h;
|
|
12023
|
+
const \u5F15\u304F = (\u4E2D\u8EAB.hasEyebrow ? 0 : \u76EE\u5370\u306A\u3057\u306E\u7E70\u308A\u4E0A\u3052(kind)) + (\u4E2D\u8EAB.hasSubtitle ? 0 : \u8AAC\u660E\u306A\u3057\u3067\u7E2E\u3080\u91CF(kind));
|
|
12024
|
+
return Math.max(MIN_BOX_H, \u6E80\u8F09h - \u5F15\u304F);
|
|
12025
|
+
}
|
|
12026
|
+
var MIN_BOX_H = 44;
|
|
11979
12027
|
|
|
11980
12028
|
// src/layout/footer-shape.ts
|
|
11981
12029
|
var SHAPE_DRAW_UP_EXTENT = {
|
|
@@ -13603,7 +13651,7 @@ function layoutEdges(diag, nodes, lanes = []) {
|
|
|
13603
13651
|
for (const p of list) parallelGroupedIds.add(p.e.id);
|
|
13604
13652
|
}
|
|
13605
13653
|
const distributedInParallel = /* @__PURE__ */ new Set();
|
|
13606
|
-
const FAN_LABEL_GAP =
|
|
13654
|
+
const FAN_LABEL_GAP = CLEARANCE_LABEL_LABEL;
|
|
13607
13655
|
const computeEffectiveSides = (p) => {
|
|
13608
13656
|
if (p.e.routing === "back-detour") {
|
|
13609
13657
|
return { effFromSide: "top", effToSide: "top" };
|
|
@@ -13993,7 +14041,17 @@ function layoutEdges(diag, nodes, lanes = []) {
|
|
|
13993
14041
|
const applyFanDispersion = (list, tracked) => {
|
|
13994
14042
|
if (list.length < 2) return;
|
|
13995
14043
|
const obstaclePatterns = new Set(list.map((r) => detectsBlockingObstacle(r.p)));
|
|
13996
|
-
if (obstaclePatterns.size > 1)
|
|
14044
|
+
if (obstaclePatterns.size > 1) {
|
|
14045
|
+
const \u5F62\u3054\u3068 = /* @__PURE__ */ new Map();
|
|
14046
|
+
for (const r of list) {
|
|
14047
|
+
const \u5F62 = detectsBlockingObstacle(r.p);
|
|
14048
|
+
\u5F62\u3054\u3068.set(\u5F62, [...\u5F62\u3054\u3068.get(\u5F62) ?? [], r]);
|
|
14049
|
+
}
|
|
14050
|
+
for (const \u540C\u3058\u5F62 of \u5F62\u3054\u3068.values()) {
|
|
14051
|
+
if (\u540C\u3058\u5F62.length < list.length) applyFanDispersion(\u540C\u3058\u5F62, tracked);
|
|
14052
|
+
}
|
|
14053
|
+
return;
|
|
14054
|
+
}
|
|
13997
14055
|
if (list.some((r) => r.e.overlay)) return;
|
|
13998
14056
|
const items = list.map((r) => ({
|
|
13999
14057
|
r,
|
|
@@ -15086,7 +15144,8 @@ function autoStorageHeight(n, defaultH) {
|
|
|
15086
15144
|
if (n.h != null) return n.h;
|
|
15087
15145
|
const \u5370\u3042\u308A = n.rowMarks !== void 0;
|
|
15088
15146
|
const \u547C\u3073\u540D\u306E\u5206 = \u5370\u3042\u308A && n.subtitle ? SUBTITLE_ROW_SHIFT : 0;
|
|
15089
|
-
|
|
15147
|
+
const \u7E70\u308A\u4E0A\u3052 = n.eyebrow ? 0 : \u76EE\u5370\u306A\u3057\u306E\u7E70\u308A\u4E0A\u3052("storage");
|
|
15148
|
+
if (!n.rows || n.rows.length === 0) return 115 + \u547C\u3073\u540D\u306E\u5206 - \u7E70\u308A\u4E0A\u3052;
|
|
15090
15149
|
const \u5FC5\u8981 = requiredRowsHeight("storage", n.rows.length) ?? defaultH;
|
|
15091
15150
|
if (\u5370\u3042\u308A) return \u5FC5\u8981 + \u547C\u3073\u540D\u306E\u5206;
|
|
15092
15151
|
return Math.max(defaultH, \u5FC5\u8981);
|
|
@@ -15097,6 +15156,16 @@ function autoRowsWidth(n, defaultW) {
|
|
|
15097
15156
|
const required = requiredRowsWidth(n.rows, n.kind);
|
|
15098
15157
|
return Math.max(defaultW, required);
|
|
15099
15158
|
}
|
|
15159
|
+
function \u7BB1\u306E\u9AD8\u3055(n, \u65E2\u5B9Ah) {
|
|
15160
|
+
if (n.h != null) return n.h;
|
|
15161
|
+
if (n.kind === "storage") return autoStorageHeight(n, \u65E2\u5B9Ah);
|
|
15162
|
+
return \u4E2D\u8EAB\u304B\u3089\u51FA\u3059\u9AD8\u3055(n.kind, \u65E2\u5B9Ah, {
|
|
15163
|
+
hasEyebrow: Boolean(n.eyebrow),
|
|
15164
|
+
hasSubtitle: Boolean(n.subtitle),
|
|
15165
|
+
hasValue: Boolean(n.value),
|
|
15166
|
+
hasRows: (n.rows?.length ?? 0) > 0
|
|
15167
|
+
});
|
|
15168
|
+
}
|
|
15100
15169
|
function requiredStackGapForEdgeLabels(diag, allStacks) {
|
|
15101
15170
|
const byId = new Map(diag.nodes.map((n) => [n.id, n]));
|
|
15102
15171
|
const rankOf = new Map(allStacks.map((stack, i) => [stack, i]));
|
|
@@ -15126,7 +15195,7 @@ function layoutNodes(diag, lanes) {
|
|
|
15126
15195
|
const rowH = /* @__PURE__ */ new Map();
|
|
15127
15196
|
for (const stack of allStacks) {
|
|
15128
15197
|
const nodesAtStack = diag.nodes.filter((n) => n.stack === stack);
|
|
15129
|
-
const h = Math.max(...nodesAtStack.map((n) =>
|
|
15198
|
+
const h = Math.max(...nodesAtStack.map((n) => \u7BB1\u306E\u9AD8\u3055(n, NODE_SIZE[n.kind].h)));
|
|
15130
15199
|
rowH.set(stack, h);
|
|
15131
15200
|
}
|
|
15132
15201
|
const rowCy = /* @__PURE__ */ new Map();
|
|
@@ -15179,8 +15248,8 @@ function layoutNodes(diag, lanes) {
|
|
|
15179
15248
|
const cx = lane.x + lane.width / 2;
|
|
15180
15249
|
const \u6BB5\u306E\u82AF = rowCy.get(n.stack);
|
|
15181
15250
|
const \u6BB5\u306E\u9AD8\u3055 = rowH.get(n.stack);
|
|
15182
|
-
const \u81EA\u524D\u306E\u9AD8\u3055 = n.rowMarks !== void 0;
|
|
15183
|
-
const h = n.h ?? (\u81EA\u524D\u306E\u9AD8\u3055 ?
|
|
15251
|
+
const \u81EA\u524D\u306E\u9AD8\u3055 = n.rowMarks !== void 0 || \u6BB5\u3092\u7A4D\u3080\u7BB1\u304B(n.kind, (n.rows?.length ?? 0) > 0);
|
|
15252
|
+
const h = n.h ?? (\u81EA\u524D\u306E\u9AD8\u3055 ? \u7BB1\u306E\u9AD8\u3055(n, size.h) : \u6BB5\u306E\u9AD8\u3055);
|
|
15184
15253
|
const cy = \u6BB5\u306E\u82AF;
|
|
15185
15254
|
const w = autoRowsWidth(n, size.w);
|
|
15186
15255
|
out.push({
|
|
@@ -16621,10 +16690,10 @@ function \u66F8\u8A18\u7D20\u306B\u5206\u3051\u308B(text) {
|
|
|
16621
16690
|
if (typeof \u533A\u5207\u308A !== "function") return [...text];
|
|
16622
16691
|
return [...new \u533A\u5207\u308A(void 0, { granularity: "grapheme" }).segment(text)].map((g) => g.segment);
|
|
16623
16692
|
}
|
|
16624
|
-
function \u7BB1\u306B\u7A4D\u3080(\u884C, \u7BB1\u306E\u5E45, \u7BB1\u306E\u9AD8\
|
|
16693
|
+
function \u7BB1\u306B\u7A4D\u3080(\u884C, \u7BB1\u306E\u5E45, \u7BB1\u306E\u9AD8\u30552) {
|
|
16625
16694
|
const \u5019\u88DC = \u884C.filter((r, i) => i === 0 || r.text.trim() !== "");
|
|
16626
16695
|
if (\u5019\u88DC.length === 0) return [];
|
|
16627
|
-
const \u4F7F\u3048\u308B\u9AD8\u3055 = \u7BB1\u306E\u9AD8\
|
|
16696
|
+
const \u4F7F\u3048\u308B\u9AD8\u3055 = \u7BB1\u306E\u9AD8\u30552 - \u4E0A\u4E0B\u306E\u4F59\u767D * 2;
|
|
16628
16697
|
const \u9AD8\u3055 = (rs) => rs.reduce((a, r) => a + r.fontSize * \u884C\u9001\u308A\u306E\u6BD4, 0);
|
|
16629
16698
|
const \u6B8B\u3059 = [...\u5019\u88DC];
|
|
16630
16699
|
while (\u6B8B\u3059.length > 1 && \u9AD8\u3055(\u6B8B\u3059) > \u4F7F\u3048\u308B\u9AD8\u3055) \u6B8B\u3059.pop();
|
|
@@ -16843,7 +16912,7 @@ function \u30D9\u30B8\u30A8\u306E\u7D2F\u7A4D\u5272\u5408(\u70B9, \u5236\u5FA1\u
|
|
|
16843
16912
|
function \u7BB1\u306E\u6587\u5B57({
|
|
16844
16913
|
\u884C,
|
|
16845
16914
|
x,
|
|
16846
|
-
\u7BB1\u306E\u9AD8\u3055,
|
|
16915
|
+
\u7BB1\u306E\u9AD8\u3055: \u7BB1\u306E\u9AD8\u30552,
|
|
16847
16916
|
fill,
|
|
16848
16917
|
\u540D\u524D\u306E\u592A\u3055
|
|
16849
16918
|
}) {
|
|
@@ -16852,7 +16921,7 @@ function \u7BB1\u306E\u6587\u5B57({
|
|
|
16852
16921
|
{
|
|
16853
16922
|
"data-cdl-role": r.\u5F79\u5272 === "subtitle" ? "tree-node-subtitle" : void 0,
|
|
16854
16923
|
x,
|
|
16855
|
-
y: \u7BB1\u306E\u9AD8\
|
|
16924
|
+
y: \u7BB1\u306E\u9AD8\u30552 / 2 + r.dy,
|
|
16856
16925
|
fontSize: r.fontSize,
|
|
16857
16926
|
fontWeight: r.\u5F79\u5272 === "title" ? \u540D\u524D\u306E\u592A\u3055 : 500,
|
|
16858
16927
|
textAnchor: "middle",
|
|
@@ -21531,7 +21600,8 @@ function ActorNode({ node, active, value }) {
|
|
|
21531
21600
|
const accent = nodeAccent(node, "var(--cdl-tone-accent, #2d6a8f)");
|
|
21532
21601
|
const x = node.cx - node.w / 2;
|
|
21533
21602
|
const y = node.cy - node.h / 2;
|
|
21534
|
-
const \
|
|
21603
|
+
const \u7E70\u308A\u4E0A\u3052 = node.eyebrow ? 0 : \u76EE\u5370\u306A\u3057\u306E\u7E70\u308A\u4E0A\u3052("actor");
|
|
21604
|
+
const \u540D\u524D = titlePlacement(node, { x: 26, y: 86 - \u7E70\u308A\u4E0A\u3052, size: 32 }, { hasEyebrow: Boolean(node.eyebrow) });
|
|
21535
21605
|
return /* @__PURE__ */ jsxs("g", { transform: `translate(${x} ${y})`, children: [
|
|
21536
21606
|
/* @__PURE__ */ jsx(
|
|
21537
21607
|
"rect",
|
|
@@ -21566,13 +21636,13 @@ function ActorNode({ node, active, value }) {
|
|
|
21566
21636
|
{
|
|
21567
21637
|
"data-cdl-role": "node-row-divider",
|
|
21568
21638
|
x1: 26,
|
|
21569
|
-
y1: 110,
|
|
21639
|
+
y1: 110 - \u7E70\u308A\u4E0A\u3052,
|
|
21570
21640
|
x2: node.w - 26,
|
|
21571
|
-
y2: 110,
|
|
21641
|
+
y2: 110 - \u7E70\u308A\u4E0A\u3052,
|
|
21572
21642
|
stroke: "var(--cdl-row-divider, #7e848e)"
|
|
21573
21643
|
}
|
|
21574
21644
|
),
|
|
21575
|
-
node.subtitle && /* @__PURE__ */ jsx("text", { x: 26, y: 140, fontSize: 20, fill: "var(--cdl-text-dim, #5a6270)", children: node.subtitle }),
|
|
21645
|
+
node.subtitle && /* @__PURE__ */ jsx("text", { x: 26, y: 140 - \u7E70\u308A\u4E0A\u3052, fontSize: 20, fill: "var(--cdl-text-dim, #5a6270)", children: node.subtitle }),
|
|
21576
21646
|
value && /* @__PURE__ */ jsx(
|
|
21577
21647
|
"text",
|
|
21578
21648
|
{
|
|
@@ -21597,7 +21667,8 @@ function CardNode({ node, active }) {
|
|
|
21597
21667
|
}
|
|
21598
21668
|
const compact = isCompactBox(node.h);
|
|
21599
21669
|
const \u5C0F\u578B\u306B\u547C\u3073\u540D = compact && Boolean(node.subtitle);
|
|
21600
|
-
const
|
|
21670
|
+
const \u7E70\u308A\u4E0A\u3052 = node.eyebrow ? 0 : \u76EE\u5370\u306A\u3057\u306E\u7E70\u308A\u4E0A\u3052("card");
|
|
21671
|
+
const titleY = compact ? \u5C0F\u578B\u306B\u547C\u3073\u540D ? node.h / 2 - 2 : node.h / 2 + 8 : 86 - \u7E70\u308A\u4E0A\u3052;
|
|
21601
21672
|
const titleX = compact ? node.w / 2 : 26;
|
|
21602
21673
|
const paddingX = compact ? 16 : 52;
|
|
21603
21674
|
const availableW = node.w - paddingX;
|
|
@@ -21634,7 +21705,7 @@ function CardNode({ node, active }) {
|
|
|
21634
21705
|
children: node.title
|
|
21635
21706
|
}
|
|
21636
21707
|
),
|
|
21637
|
-
!compact && node.subtitle && /* @__PURE__ */ jsx("text", { x: 26, y: 124, fontSize: subtitleSize, fill: "var(--cdl-text-dim, #5a6270)", children: node.subtitle }),
|
|
21708
|
+
!compact && node.subtitle && /* @__PURE__ */ jsx("text", { x: 26, y: 124 - \u7E70\u308A\u4E0A\u3052, fontSize: subtitleSize, fill: "var(--cdl-text-dim, #5a6270)", children: node.subtitle }),
|
|
21638
21709
|
\u5C0F\u578B\u306B\u547C\u3073\u540D && /* @__PURE__ */ jsx(
|
|
21639
21710
|
"text",
|
|
21640
21711
|
{
|
|
@@ -21898,7 +21969,8 @@ function EventNode({
|
|
|
21898
21969
|
const accent = nodeAccent(node, "var(--cdl-tone-success, #4ea36a)");
|
|
21899
21970
|
const x = node.cx - node.w / 2;
|
|
21900
21971
|
const y = node.cy - node.h / 2;
|
|
21901
|
-
const \
|
|
21972
|
+
const \u7E70\u308A\u4E0A\u3052 = node.eyebrow ? 0 : \u76EE\u5370\u306A\u3057\u306E\u7E70\u308A\u4E0A\u3052("event");
|
|
21973
|
+
const \u540D\u524D = titlePlacement(node, { x: 26, y: 88 - \u7E70\u308A\u4E0A\u3052, size: 26 }, { hasEyebrow: Boolean(node.eyebrow) });
|
|
21902
21974
|
const scale = active ? 0.78 + 0.22 * progress : 0.92;
|
|
21903
21975
|
const opacity = active ? 0.5 + 0.5 * progress : 0.65;
|
|
21904
21976
|
return /* @__PURE__ */ jsx(
|
|
@@ -21940,7 +22012,7 @@ function EventNode({
|
|
|
21940
22012
|
"text",
|
|
21941
22013
|
{
|
|
21942
22014
|
x: 26,
|
|
21943
|
-
y: 128,
|
|
22015
|
+
y: 128 - \u7E70\u308A\u4E0A\u3052,
|
|
21944
22016
|
fontSize: 21,
|
|
21945
22017
|
fill: "var(--cdl-text-dim, #5a6270)",
|
|
21946
22018
|
style: { fontFamily: "'JetBrains Mono', monospace" },
|
|
@@ -21956,7 +22028,8 @@ function FunctionNode({ node, active }) {
|
|
|
21956
22028
|
const stroke = nodeAccent(node, active ? "var(--cdl-tone-accent, #2d6a8f)" : "var(--cdl-tone-teal, #2f8770)");
|
|
21957
22029
|
const x = node.cx - node.w / 2;
|
|
21958
22030
|
const y = node.cy - node.h / 2;
|
|
21959
|
-
const \
|
|
22031
|
+
const \u7E70\u308A\u4E0A\u3052 = node.eyebrow ? 0 : \u76EE\u5370\u306A\u3057\u306E\u7E70\u308A\u4E0A\u3052("function");
|
|
22032
|
+
const \u540D\u524D = titlePlacement(node, { x: 26, y: 86 - \u7E70\u308A\u4E0A\u3052, size: 24 }, { hasEyebrow: Boolean(node.eyebrow) });
|
|
21960
22033
|
return /* @__PURE__ */ jsxs("g", { transform: `translate(${x} ${y})`, children: [
|
|
21961
22034
|
/* @__PURE__ */ jsx(
|
|
21962
22035
|
"rect",
|
|
@@ -21988,7 +22061,7 @@ function FunctionNode({ node, active }) {
|
|
|
21988
22061
|
children: node.title
|
|
21989
22062
|
}
|
|
21990
22063
|
),
|
|
21991
|
-
node.subtitle && /* @__PURE__ */ jsx("text", { x: 26, y: 126, fontSize: 20, fill: "var(--cdl-text-dim, #5a6270)", children: node.subtitle })
|
|
22064
|
+
node.subtitle && /* @__PURE__ */ jsx("text", { x: 26, y: 126 - \u7E70\u308A\u4E0A\u3052, fontSize: 20, fill: "var(--cdl-text-dim, #5a6270)", children: node.subtitle })
|
|
21992
22065
|
] });
|
|
21993
22066
|
}
|
|
21994
22067
|
var ROW_GLYPH_HALF = 7;
|
|
@@ -22023,7 +22096,8 @@ function StorageNode({
|
|
|
22023
22096
|
const accent = nodeAccent(node, "var(--cdl-tone-accent, #2d6a8f)");
|
|
22024
22097
|
const x = node.cx - node.w / 2;
|
|
22025
22098
|
const y = node.cy - node.h / 2;
|
|
22026
|
-
const \
|
|
22099
|
+
const \u7E70\u308A\u4E0A\u3052 = node.eyebrow || rows.length > 0 ? 0 : \u76EE\u5370\u306A\u3057\u306E\u7E70\u308A\u4E0A\u3052("storage");
|
|
22100
|
+
const \u540D\u524D = titlePlacement(node, { x: 26, y: STORAGE_TITLE_BASELINE - \u7E70\u308A\u4E0A\u3052, size: STORAGE_TITLE_FONT }, { hasEyebrow: Boolean(node.eyebrow) });
|
|
22027
22101
|
const splits = rows.map((r) => splitRow(r));
|
|
22028
22102
|
const leftMaxWidth = splits.reduce((m, s) => Math.max(m, displayWidth(s.left)), 0);
|
|
22029
22103
|
const rightColX = ROW_PAD_X_PX + leftMaxWidth * STORAGE_CHAR_ADVANCE_PX + STORAGE_COL_GAP_PX;
|
|
@@ -22060,7 +22134,7 @@ function StorageNode({
|
|
|
22060
22134
|
{
|
|
22061
22135
|
"data-cdl-role": "node-subtitle",
|
|
22062
22136
|
x: ROW_PAD_X_PX,
|
|
22063
|
-
y: SUBTITLE_BASELINE,
|
|
22137
|
+
y: SUBTITLE_BASELINE - \u7E70\u308A\u4E0A\u3052,
|
|
22064
22138
|
fontSize: SUBTITLE_FONT,
|
|
22065
22139
|
fill: "var(--cdl-text-dim, #5a6270)",
|
|
22066
22140
|
children: node.subtitle
|
|
@@ -22378,9 +22452,10 @@ function GenericNode({
|
|
|
22378
22452
|
const textAnchor = centered ? "middle" : "start";
|
|
22379
22453
|
const textX = centered ? w / 2 : 20;
|
|
22380
22454
|
const cylinderShift = genericTextShift(node.kind);
|
|
22455
|
+
const \u7E70\u308A\u4E0A\u3052 = node.eyebrow || centered ? 0 : \u76EE\u5370\u306A\u3057\u306E\u7E70\u308A\u4E0A\u3052(node.kind, hasRows);
|
|
22381
22456
|
const eyebrowY = centered ? h / 2 - 26 : 32 + cylinderShift;
|
|
22382
|
-
const titleY = genericTitleBaselineY(node.kind, h, hasRows);
|
|
22383
|
-
const subtitleY = centered ? h / 2 + 28 : 96 + cylinderShift;
|
|
22457
|
+
const titleY = genericTitleBaselineY(node.kind, h, hasRows) - \u7E70\u308A\u4E0A\u3052;
|
|
22458
|
+
const subtitleY = centered ? h / 2 + 28 : 96 + cylinderShift - \u7E70\u308A\u4E0A\u3052;
|
|
22384
22459
|
const iconX = centered ? w / 2 + 40 : w - 48;
|
|
22385
22460
|
const iconY = centered ? h / 2 - 44 : 18 + cylinderShift;
|
|
22386
22461
|
const dominantBaseline = centered ? "middle" : void 0;
|