@cardenelabs/cdl 0.12.1 → 0.13.1

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/dist/react.d.cts CHANGED
@@ -1,2 +1,2 @@
1
1
  import 'react';
2
- export { n as CdlDiagramView, j as CdlDiagramViewProps } from './render-C7FKvMqq.cjs';
2
+ export { n as CdlDiagramView, j as CdlDiagramViewProps } from './render-B5JHcUrb.cjs';
package/dist/react.d.ts CHANGED
@@ -1,2 +1,2 @@
1
1
  import 'react';
2
- export { n as CdlDiagramView, j as CdlDiagramViewProps } from './render-C7FKvMqq.js';
2
+ export { n as CdlDiagramView, j as CdlDiagramViewProps } from './render-B5JHcUrb.js';
package/dist/react.js CHANGED
@@ -4857,6 +4857,7 @@ function payloadTexts(node) {
4857
4857
  }
4858
4858
  if (node.mindData) {
4859
4859
  \u8DB3\u3059(node.mindData.rootTitle);
4860
+ \u8DB3\u3059(node.mindData.rootSubtitle);
4860
4861
  for (const b of node.mindData.branches) {
4861
4862
  \u8DB3\u3059(b.title);
4862
4863
  \u8DB3\u3059(b.subtitle);
@@ -5567,10 +5568,10 @@ function fitTextSize(text, maxWidth, targetSize, minSize) {
5567
5568
  }
5568
5569
  var COMPACT_MAX_H = 100;
5569
5570
  var COMPACT_PADDING_X = 16;
5570
- var MIN_SIZE = 11;
5571
+ var MIN_TEXT_SIZE = 11;
5571
5572
  var ASCENT = 0.72;
5572
5573
  var DESCENT = 0.25;
5573
- var MIN_BAND_H = MIN_SIZE * (ASCENT + DESCENT);
5574
+ var MIN_BAND_H = MIN_TEXT_SIZE * (ASCENT + DESCENT);
5574
5575
  var EYEBROW_BASELINE = 38;
5575
5576
  var EYEBROW_SIZE = 18;
5576
5577
  var EYEBROW_GAP = 8;
@@ -5592,10 +5593,10 @@ function titlePlacement(node, \u901A\u5E38, opts = {}) {
5592
5593
  node.title,
5593
5594
  Math.max(0, node.w - COMPACT_PADDING_X),
5594
5595
  \u901A\u5E38.size,
5595
- MIN_SIZE
5596
+ MIN_TEXT_SIZE
5596
5597
  );
5597
5598
  const \u5E2F\u3067 = Math.floor(\u5E2F / (ASCENT + DESCENT));
5598
- const size = Math.max(MIN_SIZE, Math.min(\u5E45\u3067, \u5E2F\u3067));
5599
+ const size = Math.max(MIN_TEXT_SIZE, Math.min(\u5E45\u3067, \u5E2F\u3067));
5599
5600
  const \u5B57\u9AD8 = size * (ASCENT + DESCENT);
5600
5601
  const y = \u5B57\u9AD8 <= \u5E2F ? \u4E0A + \u5E2F / 2 + size * (ASCENT - DESCENT) / 2 : \u4E0A > 0 ? \u4E0A + size * ASCENT : (\u9AD8\u3055 - \u5B57\u9AD8) / 2 + size * ASCENT;
5601
5602
  return { x: node.w / 2, y, size, anchor: "middle" };
@@ -6575,9 +6576,10 @@ function resolveTreeData(nodes, values) {
6575
6576
  });
6576
6577
  }
6577
6578
  function resolveMindData(data, values) {
6578
- const \u8AAD\u3080 = data.rootTitle.includes("{") || data.branches.some((b) => b.title.includes("{") || (b.subtitle?.includes("{") ?? false));
6579
+ const \u8AAD\u3080 = data.rootTitle.includes("{") || (data.rootSubtitle?.includes("{") ?? false) || data.branches.some((b) => b.title.includes("{") || (b.subtitle?.includes("{") ?? false));
6579
6580
  if (!\u8AAD\u3080) return data;
6580
6581
  const root = resolveBoundText(data.rootTitle, values);
6582
+ const rootSubtitle = data.rootSubtitle === void 0 ? void 0 : resolveBoundText(data.rootSubtitle, values);
6581
6583
  const branches = data.branches.map((b) => {
6582
6584
  const title = resolveBoundText(b.title, values);
6583
6585
  const subtitle = b.subtitle === void 0 ? void 0 : resolveBoundText(b.subtitle, values);
@@ -6588,8 +6590,13 @@ function resolveMindData(data, values) {
6588
6590
  };
6589
6591
  return title.ok && (subtitle?.ok ?? true) ? \u89E3\u6C7A\u5F8C2 : { ...\u89E3\u6C7A\u5F8C2, unresolved: true };
6590
6592
  });
6591
- const \u89E3\u6C7A\u5F8C = { ...data, rootTitle: root.value, branches };
6592
- return root.ok ? \u89E3\u6C7A\u5F8C : { ...\u89E3\u6C7A\u5F8C, unresolved: true };
6593
+ const \u89E3\u6C7A\u5F8C = {
6594
+ ...data,
6595
+ rootTitle: root.value,
6596
+ ...rootSubtitle ? { rootSubtitle: rootSubtitle.value } : {},
6597
+ branches
6598
+ };
6599
+ return root.ok && (rootSubtitle?.ok ?? true) ? \u89E3\u6C7A\u5F8C : { ...\u89E3\u6C7A\u5F8C, unresolved: true };
6593
6600
  }
6594
6601
 
6595
6602
  // src/kinds/draw-progress.ts
@@ -7319,6 +7326,12 @@ function \u5E45\u3067\u5207\u308B(text, fontSize, \u4F7F\u3048\u308B\u5E452, \u6
7319
7326
  }
7320
7327
  return `${\u51FA}${\u7701\u7565}`;
7321
7328
  }
7329
+ var \u7E2E\u3081\u306E\u4E0B\u9650 = MIN_TEXT_SIZE;
7330
+ function \u5E45\u306B\u53CE\u3081\u308B(text, fontSize, \u4F7F\u3048\u308B\u5E452, \u6E2C\u308B = textWidth) {
7331
+ let size = fontSize;
7332
+ while (size > \u7E2E\u3081\u306E\u4E0B\u9650 && \u6E2C\u308B(text, size) > \u4F7F\u3048\u308B\u5E452) size -= 1;
7333
+ return { text: \u5E45\u3067\u5207\u308B(text, size, \u4F7F\u3048\u308B\u5E452, \u6E2C\u308B), fontSize: size };
7334
+ }
7322
7335
  function \u66F8\u8A18\u7D20\u306B\u5206\u3051\u308B(text) {
7323
7336
  const \u533A\u5207\u308A = Intl.Segmenter;
7324
7337
  if (typeof \u533A\u5207\u308A !== "function") return [...text];
@@ -7332,12 +7345,13 @@ function \u7BB1\u306B\u7A4D\u3080(\u884C, \u7BB1\u306E\u5E45, \u7BB1\u306E\u9AD8
7332
7345
  const \u6B8B\u3059 = [...\u5019\u88DC];
7333
7346
  while (\u6B8B\u3059.length > 1 && \u9AD8\u3055(\u6B8B\u3059) > \u4F7F\u3048\u308B\u9AD8\u3055) \u6B8B\u3059.pop();
7334
7347
  const \u5E45 = \u4F7F\u3048\u308B\u5E45(\u7BB1\u306E\u5E45);
7335
- const \u7DCF\u9AD8 = \u9AD8\u3055(\u6B8B\u3059);
7348
+ const \u53CE\u3081\u305F = \u6B8B\u3059.map((r) => ({ ...r, ...\u5E45\u306B\u53CE\u3081\u308B(r.text, r.fontSize, \u5E45) }));
7349
+ const \u7DCF\u9AD8 = \u9AD8\u3055(\u53CE\u3081\u305F);
7336
7350
  let \u7A4D\u307F = -\u7DCF\u9AD8 / 2;
7337
- return \u6B8B\u3059.map((r) => {
7351
+ return \u53CE\u3081\u305F.map((r) => {
7338
7352
  const dy = \u7A4D\u307F + (\u884C\u9001\u308A\u306E\u6BD4 + \u5B57\u306E\u9AD8\u3055\u306E\u6BD4) / 2 * r.fontSize;
7339
7353
  \u7A4D\u307F += r.fontSize * \u884C\u9001\u308A\u306E\u6BD4;
7340
- return { ...r, text: \u5E45\u3067\u5207\u308B(r.text, r.fontSize, \u5E45), dy };
7354
+ return { ...r, dy };
7341
7355
  });
7342
7356
  }
7343
7357
  var MIND_TONES = ["accent", "teal", "success", "warning", "info", "error"];
@@ -7405,6 +7419,7 @@ function MindMapNode({
7405
7419
  n.h
7406
7420
  );
7407
7421
  const \u88DC\u8DB3\u3042\u308A = (n.subtitle ?? "").trim() !== "";
7422
+ const \u53CE\u3081\u305F\u540D\u524D = \u88DC\u8DB3\u3042\u308A ? void 0 : \u5E45\u306B\u53CE\u3081\u308B(n.title, n.isRoot ? 15 : 13, \u4F7F\u3048\u308B\u5E45(n.w));
7408
7423
  const \u6587\u5B57\u306E\u8272 = n.isRoot ? "var(--cdl-text-on-tone, #ffffff)" : "var(--cdl-chip-text, #1a1f2a)";
7409
7424
  return /* @__PURE__ */ jsxs("g", { "data-cdl-unresolved": n.unresolved ? "true" : void 0, children: [
7410
7425
  /* @__PURE__ */ jsx(
@@ -7420,7 +7435,7 @@ function MindMapNode({
7420
7435
  strokeWidth: n.isRoot ? 2 : 1.75
7421
7436
  }
7422
7437
  ),
7423
- \u88DC\u8DB3\u3042\u308A ? \u884C.map((r) => /* @__PURE__ */ jsx(
7438
+ \u53CE\u3081\u305F\u540D\u524D === void 0 ? \u884C.map((r) => /* @__PURE__ */ jsx(
7424
7439
  "text",
7425
7440
  {
7426
7441
  "data-cdl-role": r.\u5F79\u5272 === "subtitle" ? "mind-node-subtitle" : void 0,
@@ -7437,17 +7452,18 @@ function MindMapNode({
7437
7452
  )) : (
7438
7453
  // 補足が無くても **幅に収める** (#526)。 `箱に積む` を通らないこの経路だけが
7439
7454
  // 幅を見ておらず、長い名前がそのまま箱の外へ出て枝の線と重なっていた
7440
- // (実測 = 中心の箱で文字 163px に対し箱 120px)
7455
+ // (実測 = 中心の箱で文字 163px に対し箱 120px)
7456
+ // 収める手段は縮めるのが先で、切るのは下限まで縮めても入らない時だけ (#534)
7441
7457
  /* @__PURE__ */ jsx(
7442
7458
  "text",
7443
7459
  {
7444
7460
  x: n.x,
7445
7461
  y: n.y + 5,
7446
- fontSize: n.isRoot ? 15 : 13,
7462
+ fontSize: \u53CE\u3081\u305F\u540D\u524D.fontSize,
7447
7463
  fontWeight: n.isRoot ? 700 : 600,
7448
7464
  textAnchor: "middle",
7449
7465
  fill: \u6587\u5B57\u306E\u8272,
7450
- children: \u5E45\u3067\u5207\u308B(n.title, n.isRoot ? 15 : 13, \u4F7F\u3048\u308B\u5E45(n.w))
7466
+ children: \u53CE\u3081\u305F\u540D\u524D.text
7451
7467
  }
7452
7468
  )
7453
7469
  )
@@ -7463,6 +7479,8 @@ function computeMindMapLayout(mindData, cx, cy, canvasW, canvasH) {
7463
7479
  nodes.push({
7464
7480
  id: mindData.rootId,
7465
7481
  title: mindData.rootTitle,
7482
+ // 中心も枝と同じく 2 行に積める (#530)。 高さ 52 に 15px + 9px の 2 行が入る
7483
+ ...mindData.rootSubtitle === void 0 ? {} : { subtitle: mindData.rootSubtitle },
7466
7484
  x: cx,
7467
7485
  y: cy,
7468
7486
  w: rootW,
@@ -8041,6 +8059,7 @@ function TreeNode({
8041
8059
  n.h
8042
8060
  );
8043
8061
  const \u88DC\u8DB3\u3042\u308A = (n.subtitle ?? "").trim() !== "";
8062
+ const \u53CE\u3081\u305F\u540D\u524D = \u88DC\u8DB3\u3042\u308A ? void 0 : \u5E45\u306B\u53CE\u3081\u308B(n.title, isRoot ? 13 : 12, \u4F7F\u3048\u308B\u5E45(n.w));
8044
8063
  return /* @__PURE__ */ jsx(
8045
8064
  "g",
8046
8065
  {
@@ -8059,7 +8078,7 @@ function TreeNode({
8059
8078
  fill: `url(#${gradientId})`
8060
8079
  }
8061
8080
  ),
8062
- \u88DC\u8DB3\u3042\u308A ? \u7BB1\u306E\u6587\u5B57({
8081
+ \u53CE\u3081\u305F\u540D\u524D === void 0 ? \u7BB1\u306E\u6587\u5B57({
8063
8082
  \u884C,
8064
8083
  x: n.w / 2,
8065
8084
  \u7BB1\u306E\u9AD8\u3055: n.h,
@@ -8073,11 +8092,11 @@ function TreeNode({
8073
8092
  {
8074
8093
  x: n.w / 2,
8075
8094
  y: n.h / 2 + 5,
8076
- fontSize: 13,
8095
+ fontSize: \u53CE\u3081\u305F\u540D\u524D.fontSize,
8077
8096
  fontWeight: 700,
8078
8097
  textAnchor: "middle",
8079
8098
  fill: "var(--cdl-text-on-tone, #ffffff)",
8080
- children: \u5E45\u3067\u5207\u308B(n.title, 13, \u4F7F\u3048\u308B\u5E45(n.w))
8099
+ children: \u53CE\u3081\u305F\u540D\u524D.text
8081
8100
  }
8082
8101
  )
8083
8102
  )
@@ -8097,7 +8116,7 @@ function TreeNode({
8097
8116
  }
8098
8117
  ),
8099
8118
  /* @__PURE__ */ jsx("rect", { x: 0, y: 0, width: 4, height: n.h, rx: 2, fill: accent }),
8100
- \u88DC\u8DB3\u3042\u308A ? \u7BB1\u306E\u6587\u5B57({
8119
+ \u53CE\u3081\u305F\u540D\u524D === void 0 ? \u7BB1\u306E\u6587\u5B57({
8101
8120
  \u884C,
8102
8121
  x: n.w / 2 + 2,
8103
8122
  \u7BB1\u306E\u9AD8\u3055: n.h,
@@ -8108,11 +8127,11 @@ function TreeNode({
8108
8127
  {
8109
8128
  x: n.w / 2 + 2,
8110
8129
  y: n.h / 2 + 4,
8111
- fontSize: 12,
8130
+ fontSize: \u53CE\u3081\u305F\u540D\u524D.fontSize,
8112
8131
  fontWeight: 600,
8113
8132
  textAnchor: "middle",
8114
8133
  fill: "var(--cdl-chip-text, #1a1f2a)",
8115
- children: \u5E45\u3067\u5207\u308B(n.title, 12, \u4F7F\u3048\u308B\u5E45(n.w))
8134
+ children: \u53CE\u3081\u305F\u540D\u524D.text
8116
8135
  }
8117
8136
  )
8118
8137
  ] })
@@ -9998,15 +10017,15 @@ var externalLabel = (node, cx, bottomY) => /* @__PURE__ */ jsxs(Fragment, { chil
9998
10017
  )
9999
10018
  ] });
10000
10019
  var LABEL_EYEBROW_SPACING = 2;
10001
- function \u5E45\u306B\u53CE\u3081\u308B(\u6587\u5B57\u5217, \u5927\u304D\u3055, \u5B57\u9593, \u7BB1\u5E45) {
10020
+ function \u5E45\u306B\u53CE\u3081\u308B2(\u6587\u5B57\u5217, \u5927\u304D\u3055, \u5B57\u9593, \u7BB1\u5E45) {
10002
10021
  const \u5E45 = textWidth(\u6587\u5B57\u5217, \u5927\u304D\u3055, \u5B57\u9593);
10003
10022
  const \u500D\u7387 = \u5E45 > 0 && \u7BB1\u5E45 > 0 ? Math.min(1, \u7BB1\u5E45 / \u5E45) : 1;
10004
10023
  return { size: \u5927\u304D\u3055 * \u500D\u7387, spacing: \u5B57\u9593 * \u500D\u7387 };
10005
10024
  }
10006
10025
  function bottomLabel(node, cx, plan) {
10007
- const \u80A9 = \u5E45\u306B\u53CE\u3081\u308B(node.eyebrow ?? "", plan.\u80A9\u66F8?.size ?? 0, LABEL_EYEBROW_SPACING, node.w);
10008
- const \u540D = \u5E45\u306B\u53CE\u3081\u308B(node.title ?? "", plan.\u540D\u524D.size, 0, node.w);
10009
- const \u8AAC = \u5E45\u306B\u53CE\u3081\u308B(node.subtitle ?? "", plan.\u8AAC\u660E?.size ?? 0, 0, node.w);
10026
+ const \u80A9 = \u5E45\u306B\u53CE\u3081\u308B2(node.eyebrow ?? "", plan.\u80A9\u66F8?.size ?? 0, LABEL_EYEBROW_SPACING, node.w);
10027
+ const \u540D = \u5E45\u306B\u53CE\u3081\u308B2(node.title ?? "", plan.\u540D\u524D.size, 0, node.w);
10028
+ const \u8AAC = \u5E45\u306B\u53CE\u3081\u308B2(node.subtitle ?? "", plan.\u8AAC\u660E?.size ?? 0, 0, node.w);
10010
10029
  return /* @__PURE__ */ jsxs(Fragment, { children: [
10011
10030
  node.eyebrow && plan.\u80A9\u66F8 && /* @__PURE__ */ jsx("text", { x: cx, y: plan.\u80A9\u66F8.y, fontSize: \u80A9.size, fontWeight: 700, letterSpacing: \u80A9.spacing, textAnchor: "middle", fill: "var(--cdl-tone-accent, #2d6a8f)", children: node.eyebrow }),
10012
10031
  /* @__PURE__ */ jsx("text", { "data-cdl-role": "node-label", x: cx, y: plan.\u540D\u524D.y, fontSize: \u540D.size, fontWeight: 700, textAnchor: "middle", fill: "var(--cdl-text, #1a1f2a)", children: node.title }),
@@ -11323,15 +11342,15 @@ function \u5B57\u5E45(\u6587\u5B57\u5217, \u5927\u304D\u3055, \u5B57\u9593) {
11323
11342
  }
11324
11343
  return \u5E45 + \u5B57\u9593 * \u5B57\u6570;
11325
11344
  }
11326
- function \u5E45\u306B\u53CE\u3081\u308B2(\u6587\u5B57\u5217, \u5927\u304D\u3055, \u5B57\u9593, \u7BB1\u5E45) {
11345
+ function \u5E45\u306B\u53CE\u3081\u308B3(\u6587\u5B57\u5217, \u5927\u304D\u3055, \u5B57\u9593, \u7BB1\u5E45) {
11327
11346
  const \u5E45 = \u5B57\u5E45(\u6587\u5B57\u5217, \u5927\u304D\u3055, \u5B57\u9593);
11328
11347
  const \u500D\u7387 = \u5E45 > 0 && \u7BB1\u5E45 > 0 ? Math.min(1, \u7BB1\u5E45 / \u5E45) : 1;
11329
11348
  return { size: \u5927\u304D\u3055 * \u500D\u7387, spacing: \u5B57\u9593 * \u500D\u7387 };
11330
11349
  }
11331
11350
  function bottomLabel3(node, cx, plan) {
11332
- const \u80A9 = \u5E45\u306B\u53CE\u3081\u308B2(node.eyebrow ?? "", plan.\u80A9\u66F8?.size ?? 0, LABEL_EYEBROW_SPACING2, node.w);
11333
- const \u540D = \u5E45\u306B\u53CE\u3081\u308B2(node.title ?? "", plan.\u540D\u524D.size, 0, node.w);
11334
- const \u8AAC = \u5E45\u306B\u53CE\u3081\u308B2(node.subtitle ?? "", plan.\u8AAC\u660E?.size ?? 0, 0, node.w);
11351
+ const \u80A9 = \u5E45\u306B\u53CE\u3081\u308B3(node.eyebrow ?? "", plan.\u80A9\u66F8?.size ?? 0, LABEL_EYEBROW_SPACING2, node.w);
11352
+ const \u540D = \u5E45\u306B\u53CE\u3081\u308B3(node.title ?? "", plan.\u540D\u524D.size, 0, node.w);
11353
+ const \u8AAC = \u5E45\u306B\u53CE\u3081\u308B3(node.subtitle ?? "", plan.\u8AAC\u660E?.size ?? 0, 0, node.w);
11335
11354
  return /* @__PURE__ */ jsxs(Fragment, { children: [
11336
11355
  node.eyebrow && plan.\u80A9\u66F8 && /* @__PURE__ */ jsx("text", { x: cx, y: plan.\u80A9\u66F8.y, fontSize: \u80A9.size, fontWeight: 700, letterSpacing: \u80A9.spacing, textAnchor: "middle", fill: "var(--cdl-tone-accent, #2d6a8f)", children: node.eyebrow }),
11337
11356
  /* @__PURE__ */ jsx("text", { "data-cdl-role": "node-label", x: cx, y: plan.\u540D\u524D.y, fontSize: \u540D.size, fontWeight: 700, textAnchor: "middle", fill: "var(--cdl-text, #1a1f2a)", children: node.title }),
@@ -11772,15 +11791,15 @@ function \u5B57\u5E452(\u6587\u5B57\u5217, \u5927\u304D\u3055, \u5B57\u9593) {
11772
11791
  }
11773
11792
  return \u5E45 + \u5B57\u9593 * \u5B57\u6570;
11774
11793
  }
11775
- function \u5E45\u306B\u53CE\u3081\u308B3(\u6587\u5B57\u5217, \u5927\u304D\u3055, \u5B57\u9593, \u7BB1\u5E45) {
11794
+ function \u5E45\u306B\u53CE\u3081\u308B4(\u6587\u5B57\u5217, \u5927\u304D\u3055, \u5B57\u9593, \u7BB1\u5E45) {
11776
11795
  const \u5E45 = \u5B57\u5E452(\u6587\u5B57\u5217, \u5927\u304D\u3055, \u5B57\u9593);
11777
11796
  const \u500D\u7387 = \u5E45 > 0 && \u7BB1\u5E45 > 0 ? Math.min(1, \u7BB1\u5E45 / \u5E45) : 1;
11778
11797
  return { size: \u5927\u304D\u3055 * \u500D\u7387, spacing: \u5B57\u9593 * \u500D\u7387 };
11779
11798
  }
11780
11799
  function bottomLabel4(node, cx, plan) {
11781
- const \u80A9 = \u5E45\u306B\u53CE\u3081\u308B3(node.eyebrow ?? "", plan.\u80A9\u66F8?.size ?? 0, LABEL_EYEBROW_SPACING3, node.w);
11782
- const \u540D = \u5E45\u306B\u53CE\u3081\u308B3(node.title ?? "", plan.\u540D\u524D.size, 0, node.w);
11783
- const \u8AAC = \u5E45\u306B\u53CE\u3081\u308B3(node.subtitle ?? "", plan.\u8AAC\u660E?.size ?? 0, 0, node.w);
11800
+ const \u80A9 = \u5E45\u306B\u53CE\u3081\u308B4(node.eyebrow ?? "", plan.\u80A9\u66F8?.size ?? 0, LABEL_EYEBROW_SPACING3, node.w);
11801
+ const \u540D = \u5E45\u306B\u53CE\u3081\u308B4(node.title ?? "", plan.\u540D\u524D.size, 0, node.w);
11802
+ const \u8AAC = \u5E45\u306B\u53CE\u3081\u308B4(node.subtitle ?? "", plan.\u8AAC\u660E?.size ?? 0, 0, node.w);
11784
11803
  return /* @__PURE__ */ jsxs(Fragment, { children: [
11785
11804
  node.eyebrow && plan.\u80A9\u66F8 && /* @__PURE__ */ jsx("text", { x: cx, y: plan.\u80A9\u66F8.y, fontSize: \u80A9.size, fontWeight: 700, letterSpacing: \u80A9.spacing, textAnchor: "middle", fill: "var(--cdl-tone-accent, #2d6a8f)", children: node.eyebrow }),
11786
11805
  /* @__PURE__ */ jsx("text", { "data-cdl-role": "node-label", x: cx, y: plan.\u540D\u524D.y, fontSize: \u540D.size, fontWeight: 700, textAnchor: "middle", fill: "var(--cdl-text, #1a1f2a)", children: node.title }),