@cardenelabs/cdl 0.12.0 → 0.13.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/dist/react.cjs CHANGED
@@ -4859,6 +4859,7 @@ function payloadTexts(node) {
4859
4859
  }
4860
4860
  if (node.mindData) {
4861
4861
  \u8DB3\u3059(node.mindData.rootTitle);
4862
+ \u8DB3\u3059(node.mindData.rootSubtitle);
4862
4863
  for (const b of node.mindData.branches) {
4863
4864
  \u8DB3\u3059(b.title);
4864
4865
  \u8DB3\u3059(b.subtitle);
@@ -6577,9 +6578,10 @@ function resolveTreeData(nodes, values) {
6577
6578
  });
6578
6579
  }
6579
6580
  function resolveMindData(data, values) {
6580
- const \u8AAD\u3080 = data.rootTitle.includes("{") || data.branches.some((b) => b.title.includes("{") || (b.subtitle?.includes("{") ?? false));
6581
+ const \u8AAD\u3080 = data.rootTitle.includes("{") || (data.rootSubtitle?.includes("{") ?? false) || data.branches.some((b) => b.title.includes("{") || (b.subtitle?.includes("{") ?? false));
6581
6582
  if (!\u8AAD\u3080) return data;
6582
6583
  const root = resolveBoundText(data.rootTitle, values);
6584
+ const rootSubtitle = data.rootSubtitle === void 0 ? void 0 : resolveBoundText(data.rootSubtitle, values);
6583
6585
  const branches = data.branches.map((b) => {
6584
6586
  const title = resolveBoundText(b.title, values);
6585
6587
  const subtitle = b.subtitle === void 0 ? void 0 : resolveBoundText(b.subtitle, values);
@@ -6590,8 +6592,13 @@ function resolveMindData(data, values) {
6590
6592
  };
6591
6593
  return title.ok && (subtitle?.ok ?? true) ? \u89E3\u6C7A\u5F8C2 : { ...\u89E3\u6C7A\u5F8C2, unresolved: true };
6592
6594
  });
6593
- const \u89E3\u6C7A\u5F8C = { ...data, rootTitle: root.value, branches };
6594
- return root.ok ? \u89E3\u6C7A\u5F8C : { ...\u89E3\u6C7A\u5F8C, unresolved: true };
6595
+ const \u89E3\u6C7A\u5F8C = {
6596
+ ...data,
6597
+ rootTitle: root.value,
6598
+ ...rootSubtitle ? { rootSubtitle: rootSubtitle.value } : {},
6599
+ branches
6600
+ };
6601
+ return root.ok && (rootSubtitle?.ok ?? true) ? \u89E3\u6C7A\u5F8C : { ...\u89E3\u6C7A\u5F8C, unresolved: true };
6595
6602
  }
6596
6603
 
6597
6604
  // src/kinds/draw-progress.ts
@@ -7302,17 +7309,20 @@ var \u884C\u9001\u308A\u306E\u6BD4 = 1.15;
7302
7309
  var \u5B57\u306E\u9AD8\u3055\u306E\u6BD4 = 0.72;
7303
7310
  var \u4E0A\u4E0B\u306E\u4F59\u767D = 2;
7304
7311
  var \u5DE6\u53F3\u306E\u4F59\u767D = 8;
7305
- function \u5E45\u3067\u5207\u308B(text, fontSize, \u4F7F\u3048\u308B\u5E45, \u6E2C\u308B = textWidth) {
7306
- if (\u4F7F\u3048\u308B\u5E45 <= 0) return "";
7307
- if (\u6E2C\u308B(text, fontSize) <= \u4F7F\u3048\u308B\u5E45) return text;
7312
+ function \u4F7F\u3048\u308B\u5E45(\u7BB1\u306E\u5E45) {
7313
+ return \u7BB1\u306E\u5E45 - \u5DE6\u53F3\u306E\u4F59\u767D * 2;
7314
+ }
7315
+ function \u5E45\u3067\u5207\u308B(text, fontSize, \u4F7F\u3048\u308B\u5E452, \u6E2C\u308B = textWidth) {
7316
+ if (\u4F7F\u3048\u308B\u5E452 <= 0) return "";
7317
+ if (\u6E2C\u308B(text, fontSize) <= \u4F7F\u3048\u308B\u5E452) return text;
7308
7318
  const \u7701\u7565 = "\u2026";
7309
7319
  const \u7701\u7565\u306E\u5E45 = \u6E2C\u308B(\u7701\u7565, fontSize);
7310
- if (\u7701\u7565\u306E\u5E45 > \u4F7F\u3048\u308B\u5E45) return "";
7320
+ if (\u7701\u7565\u306E\u5E45 > \u4F7F\u3048\u308B\u5E452) return "";
7311
7321
  let \u51FA = "";
7312
7322
  let \u5E45 = 0;
7313
7323
  for (const c of \u66F8\u8A18\u7D20\u306B\u5206\u3051\u308B(text)) {
7314
7324
  const \u5B57\u306E\u5E452 = \u6E2C\u308B(c, fontSize);
7315
- if (\u5E45 + \u5B57\u306E\u5E452 + \u7701\u7565\u306E\u5E45 > \u4F7F\u3048\u308B\u5E45) break;
7325
+ if (\u5E45 + \u5B57\u306E\u5E452 + \u7701\u7565\u306E\u5E45 > \u4F7F\u3048\u308B\u5E452) break;
7316
7326
  \u5E45 += \u5B57\u306E\u5E452;
7317
7327
  \u51FA += c;
7318
7328
  }
@@ -7330,13 +7340,13 @@ function \u7BB1\u306B\u7A4D\u3080(\u884C, \u7BB1\u306E\u5E45, \u7BB1\u306E\u9AD8
7330
7340
  const \u9AD8\u3055 = (rs) => rs.reduce((a, r) => a + r.fontSize * \u884C\u9001\u308A\u306E\u6BD4, 0);
7331
7341
  const \u6B8B\u3059 = [...\u5019\u88DC];
7332
7342
  while (\u6B8B\u3059.length > 1 && \u9AD8\u3055(\u6B8B\u3059) > \u4F7F\u3048\u308B\u9AD8\u3055) \u6B8B\u3059.pop();
7333
- const \u4F7F\u3048\u308B\u5E45 = \u7BB1\u306E\u5E45 - \u5DE6\u53F3\u306E\u4F59\u767D * 2;
7343
+ const \u5E45 = \u4F7F\u3048\u308B\u5E45(\u7BB1\u306E\u5E45);
7334
7344
  const \u7DCF\u9AD8 = \u9AD8\u3055(\u6B8B\u3059);
7335
7345
  let \u7A4D\u307F = -\u7DCF\u9AD8 / 2;
7336
7346
  return \u6B8B\u3059.map((r) => {
7337
7347
  const dy = \u7A4D\u307F + (\u884C\u9001\u308A\u306E\u6BD4 + \u5B57\u306E\u9AD8\u3055\u306E\u6BD4) / 2 * r.fontSize;
7338
7348
  \u7A4D\u307F += r.fontSize * \u884C\u9001\u308A\u306E\u6BD4;
7339
- return { ...r, text: \u5E45\u3067\u5207\u308B(r.text, r.fontSize, \u4F7F\u3048\u308B\u5E45), dy };
7349
+ return { ...r, text: \u5E45\u3067\u5207\u308B(r.text, r.fontSize, \u5E45), dy };
7340
7350
  });
7341
7351
  }
7342
7352
  var MIND_TONES = ["accent", "teal", "success", "warning", "info", "error"];
@@ -7433,17 +7443,22 @@ function MindMapNode({
7433
7443
  children: r.text
7434
7444
  },
7435
7445
  r.\u5F79\u5272
7436
- )) : /* @__PURE__ */ jsxRuntime.jsx(
7437
- "text",
7438
- {
7439
- x: n.x,
7440
- y: n.y + 5,
7441
- fontSize: n.isRoot ? 15 : 13,
7442
- fontWeight: n.isRoot ? 700 : 600,
7443
- textAnchor: "middle",
7444
- fill: \u6587\u5B57\u306E\u8272,
7445
- children: n.title
7446
- }
7446
+ )) : (
7447
+ // 補足が無くても **幅に収める** (#526)。 `箱に積む` を通らないこの経路だけが
7448
+ // 幅を見ておらず、長い名前がそのまま箱の外へ出て枝の線と重なっていた
7449
+ // (実測 = 中心の箱で文字 163px に対し箱 120px)
7450
+ /* @__PURE__ */ jsxRuntime.jsx(
7451
+ "text",
7452
+ {
7453
+ x: n.x,
7454
+ y: n.y + 5,
7455
+ fontSize: n.isRoot ? 15 : 13,
7456
+ fontWeight: n.isRoot ? 700 : 600,
7457
+ textAnchor: "middle",
7458
+ fill: \u6587\u5B57\u306E\u8272,
7459
+ children: \u5E45\u3067\u5207\u308B(n.title, n.isRoot ? 15 : 13, \u4F7F\u3048\u308B\u5E45(n.w))
7460
+ }
7461
+ )
7447
7462
  )
7448
7463
  ] }, `n-${n.id}`);
7449
7464
  })
@@ -7457,6 +7472,8 @@ function computeMindMapLayout(mindData, cx, cy, canvasW, canvasH) {
7457
7472
  nodes.push({
7458
7473
  id: mindData.rootId,
7459
7474
  title: mindData.rootTitle,
7475
+ // 中心も枝と同じく 2 行に積める (#530)。 高さ 52 に 15px + 9px の 2 行が入る
7476
+ ...mindData.rootSubtitle === void 0 ? {} : { subtitle: mindData.rootSubtitle },
7460
7477
  x: cx,
7461
7478
  y: cy,
7462
7479
  w: rootW,
@@ -8059,17 +8076,21 @@ function TreeNode({
8059
8076
  \u7BB1\u306E\u9AD8\u3055: n.h,
8060
8077
  fill: "var(--cdl-text-on-tone, #ffffff)",
8061
8078
  \u540D\u524D\u306E\u592A\u3055: 700
8062
- }) : /* @__PURE__ */ jsxRuntime.jsx(
8063
- "text",
8064
- {
8065
- x: n.w / 2,
8066
- y: n.h / 2 + 5,
8067
- fontSize: 13,
8068
- fontWeight: 700,
8069
- textAnchor: "middle",
8070
- fill: "var(--cdl-text-on-tone, #ffffff)",
8071
- children: n.title
8072
- }
8079
+ }) : (
8080
+ // 補足が無くても幅に収める (#526)。 `箱の文字` を通らないこの経路だけが
8081
+ // 幅を見ておらず、長い名前が箱の外へ出ていた
8082
+ /* @__PURE__ */ jsxRuntime.jsx(
8083
+ "text",
8084
+ {
8085
+ x: n.w / 2,
8086
+ y: n.h / 2 + 5,
8087
+ fontSize: 13,
8088
+ fontWeight: 700,
8089
+ textAnchor: "middle",
8090
+ fill: "var(--cdl-text-on-tone, #ffffff)",
8091
+ children: \u5E45\u3067\u5207\u308B(n.title, 13, \u4F7F\u3048\u308B\u5E45(n.w))
8092
+ }
8093
+ )
8073
8094
  )
8074
8095
  ] }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
8075
8096
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -8102,7 +8123,7 @@ function TreeNode({
8102
8123
  fontWeight: 600,
8103
8124
  textAnchor: "middle",
8104
8125
  fill: "var(--cdl-chip-text, #1a1f2a)",
8105
- children: n.title
8126
+ children: \u5E45\u3067\u5207\u308B(n.title, 12, \u4F7F\u3048\u308B\u5E45(n.w))
8106
8127
  }
8107
8128
  )
8108
8129
  ] })