@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/CHANGELOG.md +36 -1
- package/dist/index.cjs +55 -33
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +4 -2
- package/dist/index.d.ts +4 -2
- package/dist/index.js +55 -33
- package/dist/index.js.map +1 -1
- package/dist/react.cjs +54 -33
- 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 +54 -33
- package/dist/react.js.map +1 -1
- package/dist/{render-C7FKvMqq.d.cts → render-B5JHcUrb.d.cts} +8 -0
- package/dist/{render-C7FKvMqq.d.ts → render-B5JHcUrb.d.ts} +8 -0
- package/package.json +1 -1
- package/src/kinds/box-lines.ts +12 -2
- package/src/kinds/mind-map.tsx +9 -4
- package/src/kinds/tree.tsx +5 -3
- package/src/presets.ts +3 -0
- package/src/render/payload-binding.ts +14 -4
- package/src/render/template-fields.ts +1 -0
- package/src/types.ts +8 -0
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 = {
|
|
6594
|
-
|
|
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 \
|
|
7306
|
-
|
|
7307
|
-
|
|
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\
|
|
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\
|
|
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
|
|
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, \
|
|
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
|
-
)) :
|
|
7437
|
-
|
|
7438
|
-
|
|
7439
|
-
|
|
7440
|
-
|
|
7441
|
-
|
|
7442
|
-
|
|
7443
|
-
|
|
7444
|
-
|
|
7445
|
-
|
|
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
|
-
}) :
|
|
8063
|
-
|
|
8064
|
-
|
|
8065
|
-
|
|
8066
|
-
|
|
8067
|
-
|
|
8068
|
-
|
|
8069
|
-
|
|
8070
|
-
|
|
8071
|
-
|
|
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
|
] })
|