@cardenelabs/cdl 0.107.0 → 0.108.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 +34 -1
- package/dist/index.cjs +62 -32
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +62 -32
- package/dist/index.js.map +1 -1
- package/dist/react.cjs +177 -147
- package/dist/react.cjs.map +1 -1
- package/dist/react.js +177 -147
- package/dist/react.js.map +1 -1
- package/package.json +1 -1
- package/src/kinds/shape-basement.tsx +20 -8
- package/src/kinds/shape-blockchain.tsx +17 -10
- package/src/kinds/shape-commerce.tsx +15 -6
- package/src/kinds/shape-finance.tsx +15 -6
- package/src/kinds/shape-hardware.tsx +15 -7
- package/src/kinds/shape-region.tsx +63 -2
package/dist/react.cjs
CHANGED
|
@@ -3194,6 +3194,111 @@ function requiredRowsWidth(rows, kind) {
|
|
|
3194
3194
|
if (kind === void 0) return Math.ceil(Math.max(storage, generic));
|
|
3195
3195
|
return Math.ceil(kind === "storage" ? storage : generic);
|
|
3196
3196
|
}
|
|
3197
|
+
|
|
3198
|
+
// src/kinds/compact-title.ts
|
|
3199
|
+
function estimateTextWidth(text, fontSize) {
|
|
3200
|
+
let w = 0;
|
|
3201
|
+
for (const ch of text) {
|
|
3202
|
+
const isFullWidth = /[\u3000-\u9FFF\uFF00-\uFFEF]/.test(ch);
|
|
3203
|
+
w += fontSize * (isFullWidth ? 1.05 : 0.62);
|
|
3204
|
+
}
|
|
3205
|
+
return w;
|
|
3206
|
+
}
|
|
3207
|
+
function fitTextSize(text, maxWidth, targetSize, minSize) {
|
|
3208
|
+
let size = targetSize;
|
|
3209
|
+
while (size > minSize && estimateTextWidth(text, size) > maxWidth) {
|
|
3210
|
+
size -= 1;
|
|
3211
|
+
}
|
|
3212
|
+
return size;
|
|
3213
|
+
}
|
|
3214
|
+
var COMPACT_MAX_H = 100;
|
|
3215
|
+
var COMPACT_PADDING_X = 16;
|
|
3216
|
+
var MIN_TEXT_SIZE = 11;
|
|
3217
|
+
var ASCENT = 0.72;
|
|
3218
|
+
var DESCENT = 0.25;
|
|
3219
|
+
var MIN_BAND_H = MIN_TEXT_SIZE * (ASCENT + DESCENT);
|
|
3220
|
+
var EYEBROW_BASELINE = 38;
|
|
3221
|
+
var EYEBROW_SIZE = 18;
|
|
3222
|
+
var EYEBROW_GAP = 8;
|
|
3223
|
+
var BOTTOM_INSET = 4;
|
|
3224
|
+
var eyebrowBottom = () => EYEBROW_BASELINE + EYEBROW_SIZE * DESCENT;
|
|
3225
|
+
var titleBandTop = (hasEyebrow) => eyebrowBottom() + EYEBROW_GAP ;
|
|
3226
|
+
var isCompactBox = (h) => h < COMPACT_MAX_H;
|
|
3227
|
+
function titlePlacement(node, \u901A\u5E38, opts = {}) {
|
|
3228
|
+
if (!isCompactBox(node.h)) {
|
|
3229
|
+
return { x: \u901A\u5E38.x, y: \u901A\u5E38.y, size: \u901A\u5E38.size, anchor: "start" };
|
|
3230
|
+
}
|
|
3231
|
+
const \u9AD8\u3055 = Math.max(0, node.h);
|
|
3232
|
+
const \u76EE\u5370\u3042\u308A = opts.hasEyebrow === true;
|
|
3233
|
+
const \u4E0A = \u76EE\u5370\u3042\u308A && \u9AD8\u3055 >= eyebrowBottom() ? titleBandTop() : 0;
|
|
3234
|
+
const \u751F\u306E\u5E2F = Math.max(0, \u9AD8\u3055 - \u4E0A);
|
|
3235
|
+
const \u4E0B\u4F59\u767D = \u751F\u306E\u5E2F >= MIN_BAND_H + BOTTOM_INSET ? BOTTOM_INSET : 0;
|
|
3236
|
+
const \u5E2F = \u751F\u306E\u5E2F - \u4E0B\u4F59\u767D;
|
|
3237
|
+
const \u5E45\u3067 = fitTextSize(
|
|
3238
|
+
node.title,
|
|
3239
|
+
Math.max(0, node.w - COMPACT_PADDING_X),
|
|
3240
|
+
\u901A\u5E38.size,
|
|
3241
|
+
MIN_TEXT_SIZE
|
|
3242
|
+
);
|
|
3243
|
+
const \u5E2F\u3067 = Math.floor(\u5E2F / (ASCENT + DESCENT));
|
|
3244
|
+
const size = Math.max(MIN_TEXT_SIZE, Math.min(\u5E45\u3067, \u5E2F\u3067));
|
|
3245
|
+
const \u5B57\u9AD8 = size * (ASCENT + DESCENT);
|
|
3246
|
+
const y = \u5B57\u9AD8 <= \u5E2F ? \u4E0A + \u5E2F / 2 + size * (ASCENT - DESCENT) / 2 : \u4E0A > 0 ? \u4E0A + size * ASCENT : (\u9AD8\u3055 - \u5B57\u9AD8) / 2 + size * ASCENT;
|
|
3247
|
+
return { x: node.w / 2, y, size, anchor: "middle" };
|
|
3248
|
+
}
|
|
3249
|
+
|
|
3250
|
+
// src/kinds/box-lines.ts
|
|
3251
|
+
var \u884C\u9001\u308A\u306E\u6BD4 = 1.15;
|
|
3252
|
+
var \u5B57\u306E\u9AD8\u3055\u306E\u6BD4 = 0.72;
|
|
3253
|
+
var \u4E0A\u4E0B\u306E\u4F59\u767D = 2;
|
|
3254
|
+
var \u5DE6\u53F3\u306E\u4F59\u767D = 8;
|
|
3255
|
+
function \u4F7F\u3048\u308B\u5E45(\u7BB1\u306E\u5E45) {
|
|
3256
|
+
return \u7BB1\u306E\u5E45 - \u5DE6\u53F3\u306E\u4F59\u767D * 2;
|
|
3257
|
+
}
|
|
3258
|
+
function \u5E45\u3067\u5207\u308B(text, fontSize, \u4F7F\u3048\u308B\u5E452, \u6E2C\u308B = textWidth) {
|
|
3259
|
+
if (\u4F7F\u3048\u308B\u5E452 <= 0) return "";
|
|
3260
|
+
if (\u6E2C\u308B(text, fontSize) <= \u4F7F\u3048\u308B\u5E452) return text;
|
|
3261
|
+
const \u7701\u7565 = "\u2026";
|
|
3262
|
+
const \u7701\u7565\u306E\u5E45 = \u6E2C\u308B(\u7701\u7565, fontSize);
|
|
3263
|
+
if (\u7701\u7565\u306E\u5E45 > \u4F7F\u3048\u308B\u5E452) return "";
|
|
3264
|
+
let \u51FA = "";
|
|
3265
|
+
let \u5E45 = 0;
|
|
3266
|
+
for (const c of \u66F8\u8A18\u7D20\u306B\u5206\u3051\u308B(text)) {
|
|
3267
|
+
const \u5B57\u306E\u5E452 = \u6E2C\u308B(c, fontSize);
|
|
3268
|
+
if (\u5E45 + \u5B57\u306E\u5E452 + \u7701\u7565\u306E\u5E45 > \u4F7F\u3048\u308B\u5E452) break;
|
|
3269
|
+
\u5E45 += \u5B57\u306E\u5E452;
|
|
3270
|
+
\u51FA += c;
|
|
3271
|
+
}
|
|
3272
|
+
return `${\u51FA}${\u7701\u7565}`;
|
|
3273
|
+
}
|
|
3274
|
+
var \u7E2E\u3081\u306E\u4E0B\u9650 = MIN_TEXT_SIZE;
|
|
3275
|
+
function \u5E45\u306B\u53CE\u3081\u308B(text, fontSize, \u4F7F\u3048\u308B\u5E452, \u6E2C\u308B = textWidth) {
|
|
3276
|
+
let size = fontSize;
|
|
3277
|
+
while (size > \u7E2E\u3081\u306E\u4E0B\u9650 && \u6E2C\u308B(text, size) > \u4F7F\u3048\u308B\u5E452) size -= 1;
|
|
3278
|
+
return { text: \u5E45\u3067\u5207\u308B(text, size, \u4F7F\u3048\u308B\u5E452, \u6E2C\u308B), fontSize: size };
|
|
3279
|
+
}
|
|
3280
|
+
function \u66F8\u8A18\u7D20\u306B\u5206\u3051\u308B(text) {
|
|
3281
|
+
const \u533A\u5207\u308A = Intl.Segmenter;
|
|
3282
|
+
if (typeof \u533A\u5207\u308A !== "function") return [...text];
|
|
3283
|
+
return [...new \u533A\u5207\u308A(void 0, { granularity: "grapheme" }).segment(text)].map((g) => g.segment);
|
|
3284
|
+
}
|
|
3285
|
+
function \u7BB1\u306B\u7A4D\u3080(\u884C, \u7BB1\u306E\u5E45, \u7BB1\u306E\u9AD8\u30553) {
|
|
3286
|
+
const \u5019\u88DC = \u884C.filter((r, i) => i === 0 || r.text.trim() !== "");
|
|
3287
|
+
if (\u5019\u88DC.length === 0) return [];
|
|
3288
|
+
const \u4F7F\u3048\u308B\u9AD8\u3055 = \u7BB1\u306E\u9AD8\u30553 - \u4E0A\u4E0B\u306E\u4F59\u767D * 2;
|
|
3289
|
+
const \u9AD8\u3055 = (rs) => rs.reduce((a, r) => a + r.fontSize * \u884C\u9001\u308A\u306E\u6BD4, 0);
|
|
3290
|
+
const \u6B8B\u3059 = [...\u5019\u88DC];
|
|
3291
|
+
while (\u6B8B\u3059.length > 1 && \u9AD8\u3055(\u6B8B\u3059) > \u4F7F\u3048\u308B\u9AD8\u3055) \u6B8B\u3059.pop();
|
|
3292
|
+
const \u5E45 = \u4F7F\u3048\u308B\u5E45(\u7BB1\u306E\u5E45);
|
|
3293
|
+
const \u53CE\u3081\u305F = \u6B8B\u3059.map((r) => ({ ...r, ...\u5E45\u306B\u53CE\u3081\u308B(r.text, r.fontSize, \u5E45) }));
|
|
3294
|
+
const \u7DCF\u9AD8 = \u9AD8\u3055(\u53CE\u3081\u305F);
|
|
3295
|
+
let \u7A4D\u307F = -\u7DCF\u9AD8 / 2;
|
|
3296
|
+
return \u53CE\u3081\u305F.map((r) => {
|
|
3297
|
+
const dy = \u7A4D\u307F + (\u884C\u9001\u308A\u306E\u6BD4 + \u5B57\u306E\u9AD8\u3055\u306E\u6BD4) / 2 * r.fontSize;
|
|
3298
|
+
\u7A4D\u307F += r.fontSize * \u884C\u9001\u308A\u306E\u6BD4;
|
|
3299
|
+
return { ...r, dy };
|
|
3300
|
+
});
|
|
3301
|
+
}
|
|
3197
3302
|
function \u66F8\u3044\u305F\u5024\u304B\u63A7\u3048(\u66F8\u3044\u305F, \u63A7\u3048) {
|
|
3198
3303
|
const v = (\u66F8\u3044\u305F ?? "").trim();
|
|
3199
3304
|
return v === "" ? \u63A7\u3048 : v;
|
|
@@ -3203,14 +3308,22 @@ function \u5E45\u306E\u500D\u7387(text, size, letterSpacing, \u5E45) {
|
|
|
3203
3308
|
const \u5B9F\u5E45 = textWidth(text, size, letterSpacing);
|
|
3204
3309
|
return \u5B9F\u5E45 > \u5E45 ? \u5E45 / \u5B9F\u5E45 : 1;
|
|
3205
3310
|
}
|
|
3311
|
+
function \u8AAD\u3081\u308B\u4E0B\u9650\u306E\u500D\u7387(\u5927\u304D\u3055) {
|
|
3312
|
+
return \u5927\u304D\u3055 > MIN_TITLE_FONT_SIZE ? MIN_TITLE_FONT_SIZE / \u5927\u304D\u3055 : 0;
|
|
3313
|
+
}
|
|
3314
|
+
function \u5207\u3063\u3066\u53CE\u307E\u308B\u4E0B\u9650(\u984C, \u5927\u304D\u3055, \u5B57\u9593, \u5E45\u4E0A\u9650, \u6E2C\u308B) {
|
|
3315
|
+
const \u4E0B\u9650 = \u8AAD\u3081\u308B\u4E0B\u9650\u306E\u500D\u7387(\u5927\u304D\u3055);
|
|
3316
|
+
if (!(\u4E0B\u9650 > 0) || !(\u5E45\u4E0A\u9650 > 0)) return 0;
|
|
3317
|
+
return \u5E45\u3067\u5207\u308B(\u984C, \u5927\u304D\u3055 * \u4E0B\u9650, \u5E45\u4E0A\u9650, (u, f) => \u6E2C\u308B(u, f, \u5B57\u9593 * \u4E0B\u9650)) === "" ? 0 : \u4E0B\u9650;
|
|
3318
|
+
}
|
|
3206
3319
|
var TITLE_MAX = 18;
|
|
3207
3320
|
var TITLE_MIN = 9;
|
|
3208
3321
|
var TITLE_RATIO = 0.17;
|
|
3209
3322
|
var SUB_RATIO = 0.72;
|
|
3210
3323
|
var LINE_GAP = 3;
|
|
3211
3324
|
var BOTTOM_PAD = 4;
|
|
3212
|
-
var
|
|
3213
|
-
var
|
|
3325
|
+
var ASCENT2 = 0.72;
|
|
3326
|
+
var DESCENT2 = 0.25;
|
|
3214
3327
|
var ART_GAP = 4;
|
|
3215
3328
|
var ART_MIN_BAND = 45;
|
|
3216
3329
|
var \u843D\u3068\u3057\u3066\u3082\u63CF\u304F\u7A2E\u5225 = {
|
|
@@ -3275,9 +3388,9 @@ function labelPlan(node) {
|
|
|
3275
3388
|
y -= \u540D\u524D\u5927 + LINE_GAP;
|
|
3276
3389
|
const \u80A9\u66F8 = \u80A9\u66F8\u3042\u308A2 ? { y, size: \u5C0F\u3055\u3044\u5B57 } : null;
|
|
3277
3390
|
const \u4E0A\u306E\u884C = \u80A9\u66F8 ?? \u540D\u524D;
|
|
3278
|
-
return { \u540D\u524D, \u8AAC\u660E, \u80A9\u66F8, \u4E0A\u7AEF: \u4E0A\u306E\u884C.y - \u4E0A\u306E\u884C.size *
|
|
3391
|
+
return { \u540D\u524D, \u8AAC\u660E, \u80A9\u66F8, \u4E0A\u7AEF: \u4E0A\u306E\u884C.y - \u4E0A\u306E\u884C.size * ASCENT2 };
|
|
3279
3392
|
};
|
|
3280
|
-
const \u5165\u308B = (\u8AAC\u660E\u3042\u308A2, \u80A9\u66F8\u3042\u308A2) => \u7A4D\u3080(1, \u8AAC\u660E\u3042\u308A2, \u80A9\u66F8\u3042\u308A2, 1 *
|
|
3393
|
+
const \u5165\u308B = (\u8AAC\u660E\u3042\u308A2, \u80A9\u66F8\u3042\u308A2) => \u7A4D\u3080(1, \u8AAC\u660E\u3042\u308A2, \u80A9\u66F8\u3042\u308A2, 1 * DESCENT2).\u4E0A\u7AEF >= \u5929;
|
|
3281
3394
|
let \u8AAC\u660E\u3042\u308A = Boolean(node.subtitle);
|
|
3282
3395
|
let \u80A9\u66F8\u3042\u308A = Boolean(node.eyebrow);
|
|
3283
3396
|
const \u843D\u3068\u3057\u305F = [];
|
|
@@ -3295,14 +3408,14 @@ function labelPlan(node) {
|
|
|
3295
3408
|
for (let size = \u4E0A\u9650; size >= 1; size--) {
|
|
3296
3409
|
const \u5C0F\u3055\u3044\u5B572 = Math.max(1, Math.round(size * SUB_RATIO));
|
|
3297
3410
|
const \u4E0B\u306E\u884C\u5927 = \u8AAC\u660E\u3042\u308A2 ? \u5C0F\u3055\u3044\u5B572 : size;
|
|
3298
|
-
if (\u7A4D\u3080(size, \u8AAC\u660E\u3042\u308A2, \u80A9\u66F8\u3042\u308A2, \u4E0B\u306E\u884C\u5927 *
|
|
3411
|
+
if (\u7A4D\u3080(size, \u8AAC\u660E\u3042\u308A2, \u80A9\u66F8\u3042\u308A2, \u4E0B\u306E\u884C\u5927 * DESCENT2).\u4E0A\u7AEF >= \u5929) {
|
|
3299
3412
|
\u540D\u524D\u5927 = size;
|
|
3300
3413
|
break;
|
|
3301
3414
|
}
|
|
3302
3415
|
}
|
|
3303
|
-
if (\u540D\u524D\u5927 === 0) \u540D\u524D\u5927 = \u9AD8\u3055 / (
|
|
3416
|
+
if (\u540D\u524D\u5927 === 0) \u540D\u524D\u5927 = \u9AD8\u3055 / (ASCENT2 + DESCENT2);
|
|
3304
3417
|
const \u5C0F\u3055\u3044\u5B57 = Math.max(1, Math.round(\u540D\u524D\u5927 * SUB_RATIO));
|
|
3305
|
-
const \u5F35\u308A\u51FA\u3057 = (\u8AAC\u660E\u3042\u308A2 ? \u5C0F\u3055\u3044\u5B57 : \u540D\u524D\u5927) *
|
|
3418
|
+
const \u5F35\u308A\u51FA\u3057 = (\u8AAC\u660E\u3042\u308A2 ? \u5C0F\u3055\u3044\u5B57 : \u540D\u524D\u5927) * DESCENT2;
|
|
3306
3419
|
const \u4F59\u308A = Math.max(0, \u7A4D\u3080(\u540D\u524D\u5927, \u8AAC\u660E\u3042\u308A2, \u80A9\u66F8\u3042\u308A2, \u5F35\u308A\u51FA\u3057).\u4E0A\u7AEF - \u5929);
|
|
3307
3420
|
const \u4E0B\u4F59\u767D = Math.min(Math.max(BOTTOM_PAD, \u5F35\u308A\u51FA\u3057), \u5F35\u308A\u51FA\u3057 + \u4F59\u308A);
|
|
3308
3421
|
return \u7A4D\u3080(\u540D\u524D\u5927, \u8AAC\u660E\u3042\u308A2, \u80A9\u66F8\u3042\u308A2, \u4E0B\u4F59\u767D);
|
|
@@ -3362,16 +3475,19 @@ function bodyBand(node, opt) {
|
|
|
3362
3475
|
const h = Math.max(0, \u7BB1h - \u7E26\u4F59\u767D * ky);
|
|
3363
3476
|
return { x, y, w, h, cx: x + w / 2, cy: y + h / 2, \u53F3: x + w, \u5E95: y + h };
|
|
3364
3477
|
}
|
|
3365
|
-
function fitLabel(band, block, pos) {
|
|
3478
|
+
function fitLabel(band, block, pos, \u6A2A\u306E\u4E0B\u9650 = 0) {
|
|
3366
3479
|
const \u7E26 = block.\u4E0A + block.\u4E0B;
|
|
3367
3480
|
const \u6A2A = Math.max(0, block.\u5E45);
|
|
3368
3481
|
if (!(\u7E26 > 0)) return { k: 1, x: pos.x, y: pos.y };
|
|
3369
3482
|
if (!(band.h > 0) || !(band.w > 0)) return { k: 0, x: band.x + band.w / 2, y: band.y };
|
|
3370
|
-
const
|
|
3483
|
+
const \u6A2A\u3067 = \u6A2A > 0 ? Math.max(band.w / \u6A2A, \u6A2A\u306E\u4E0B\u9650) : 1;
|
|
3484
|
+
const k = Math.min(1, band.h / \u7E26, \u6A2A\u3067);
|
|
3371
3485
|
const \u534A = \u6A2A * k / 2;
|
|
3372
3486
|
return {
|
|
3373
3487
|
k,
|
|
3374
|
-
|
|
3488
|
+
// 下限で止めた塊は帯より広い。 その時は帯の中央に置いて左右へ均等に出す =
|
|
3489
|
+
// 寄せの式をそのまま当てると片側だけに出る (`compact-title.ts` と同じ判断)
|
|
3490
|
+
x: \u534A * 2 > band.w ? band.x + band.w / 2 : Math.max(band.x + \u534A, Math.min(pos.x, band.x + band.w - \u534A)),
|
|
3375
3491
|
y: Math.max(band.y + block.\u4E0A * k, Math.min(pos.y, band.y + band.h - block.\u4E0B * k))
|
|
3376
3492
|
};
|
|
3377
3493
|
}
|
|
@@ -3424,111 +3540,6 @@ function \u6253\u3061\u6D88\u3057\u306E\u500D\u7387(\u500D\u7387, \u5B57\u3089)
|
|
|
3424
3540
|
return Math.max(1, Math.min(\u623B\u3057, \u4E0A\u9650));
|
|
3425
3541
|
}
|
|
3426
3542
|
|
|
3427
|
-
// src/kinds/compact-title.ts
|
|
3428
|
-
function estimateTextWidth(text, fontSize) {
|
|
3429
|
-
let w = 0;
|
|
3430
|
-
for (const ch of text) {
|
|
3431
|
-
const isFullWidth = /[\u3000-\u9FFF\uFF00-\uFFEF]/.test(ch);
|
|
3432
|
-
w += fontSize * (isFullWidth ? 1.05 : 0.62);
|
|
3433
|
-
}
|
|
3434
|
-
return w;
|
|
3435
|
-
}
|
|
3436
|
-
function fitTextSize(text, maxWidth, targetSize, minSize) {
|
|
3437
|
-
let size = targetSize;
|
|
3438
|
-
while (size > minSize && estimateTextWidth(text, size) > maxWidth) {
|
|
3439
|
-
size -= 1;
|
|
3440
|
-
}
|
|
3441
|
-
return size;
|
|
3442
|
-
}
|
|
3443
|
-
var COMPACT_MAX_H = 100;
|
|
3444
|
-
var COMPACT_PADDING_X = 16;
|
|
3445
|
-
var MIN_TEXT_SIZE = 11;
|
|
3446
|
-
var ASCENT2 = 0.72;
|
|
3447
|
-
var DESCENT2 = 0.25;
|
|
3448
|
-
var MIN_BAND_H = MIN_TEXT_SIZE * (ASCENT2 + DESCENT2);
|
|
3449
|
-
var EYEBROW_BASELINE = 38;
|
|
3450
|
-
var EYEBROW_SIZE = 18;
|
|
3451
|
-
var EYEBROW_GAP = 8;
|
|
3452
|
-
var BOTTOM_INSET = 4;
|
|
3453
|
-
var eyebrowBottom = () => EYEBROW_BASELINE + EYEBROW_SIZE * DESCENT2;
|
|
3454
|
-
var titleBandTop = (hasEyebrow) => eyebrowBottom() + EYEBROW_GAP ;
|
|
3455
|
-
var isCompactBox = (h) => h < COMPACT_MAX_H;
|
|
3456
|
-
function titlePlacement(node, \u901A\u5E38, opts = {}) {
|
|
3457
|
-
if (!isCompactBox(node.h)) {
|
|
3458
|
-
return { x: \u901A\u5E38.x, y: \u901A\u5E38.y, size: \u901A\u5E38.size, anchor: "start" };
|
|
3459
|
-
}
|
|
3460
|
-
const \u9AD8\u3055 = Math.max(0, node.h);
|
|
3461
|
-
const \u76EE\u5370\u3042\u308A = opts.hasEyebrow === true;
|
|
3462
|
-
const \u4E0A = \u76EE\u5370\u3042\u308A && \u9AD8\u3055 >= eyebrowBottom() ? titleBandTop() : 0;
|
|
3463
|
-
const \u751F\u306E\u5E2F = Math.max(0, \u9AD8\u3055 - \u4E0A);
|
|
3464
|
-
const \u4E0B\u4F59\u767D = \u751F\u306E\u5E2F >= MIN_BAND_H + BOTTOM_INSET ? BOTTOM_INSET : 0;
|
|
3465
|
-
const \u5E2F = \u751F\u306E\u5E2F - \u4E0B\u4F59\u767D;
|
|
3466
|
-
const \u5E45\u3067 = fitTextSize(
|
|
3467
|
-
node.title,
|
|
3468
|
-
Math.max(0, node.w - COMPACT_PADDING_X),
|
|
3469
|
-
\u901A\u5E38.size,
|
|
3470
|
-
MIN_TEXT_SIZE
|
|
3471
|
-
);
|
|
3472
|
-
const \u5E2F\u3067 = Math.floor(\u5E2F / (ASCENT2 + DESCENT2));
|
|
3473
|
-
const size = Math.max(MIN_TEXT_SIZE, Math.min(\u5E45\u3067, \u5E2F\u3067));
|
|
3474
|
-
const \u5B57\u9AD8 = size * (ASCENT2 + DESCENT2);
|
|
3475
|
-
const y = \u5B57\u9AD8 <= \u5E2F ? \u4E0A + \u5E2F / 2 + size * (ASCENT2 - DESCENT2) / 2 : \u4E0A > 0 ? \u4E0A + size * ASCENT2 : (\u9AD8\u3055 - \u5B57\u9AD8) / 2 + size * ASCENT2;
|
|
3476
|
-
return { x: node.w / 2, y, size, anchor: "middle" };
|
|
3477
|
-
}
|
|
3478
|
-
|
|
3479
|
-
// src/kinds/box-lines.ts
|
|
3480
|
-
var \u884C\u9001\u308A\u306E\u6BD4 = 1.15;
|
|
3481
|
-
var \u5B57\u306E\u9AD8\u3055\u306E\u6BD4 = 0.72;
|
|
3482
|
-
var \u4E0A\u4E0B\u306E\u4F59\u767D = 2;
|
|
3483
|
-
var \u5DE6\u53F3\u306E\u4F59\u767D = 8;
|
|
3484
|
-
function \u4F7F\u3048\u308B\u5E45(\u7BB1\u306E\u5E45) {
|
|
3485
|
-
return \u7BB1\u306E\u5E45 - \u5DE6\u53F3\u306E\u4F59\u767D * 2;
|
|
3486
|
-
}
|
|
3487
|
-
function \u5E45\u3067\u5207\u308B(text, fontSize, \u4F7F\u3048\u308B\u5E452, \u6E2C\u308B = textWidth) {
|
|
3488
|
-
if (\u4F7F\u3048\u308B\u5E452 <= 0) return "";
|
|
3489
|
-
if (\u6E2C\u308B(text, fontSize) <= \u4F7F\u3048\u308B\u5E452) return text;
|
|
3490
|
-
const \u7701\u7565 = "\u2026";
|
|
3491
|
-
const \u7701\u7565\u306E\u5E45 = \u6E2C\u308B(\u7701\u7565, fontSize);
|
|
3492
|
-
if (\u7701\u7565\u306E\u5E45 > \u4F7F\u3048\u308B\u5E452) return "";
|
|
3493
|
-
let \u51FA = "";
|
|
3494
|
-
let \u5E45 = 0;
|
|
3495
|
-
for (const c of \u66F8\u8A18\u7D20\u306B\u5206\u3051\u308B(text)) {
|
|
3496
|
-
const \u5B57\u306E\u5E452 = \u6E2C\u308B(c, fontSize);
|
|
3497
|
-
if (\u5E45 + \u5B57\u306E\u5E452 + \u7701\u7565\u306E\u5E45 > \u4F7F\u3048\u308B\u5E452) break;
|
|
3498
|
-
\u5E45 += \u5B57\u306E\u5E452;
|
|
3499
|
-
\u51FA += c;
|
|
3500
|
-
}
|
|
3501
|
-
return `${\u51FA}${\u7701\u7565}`;
|
|
3502
|
-
}
|
|
3503
|
-
var \u7E2E\u3081\u306E\u4E0B\u9650 = MIN_TEXT_SIZE;
|
|
3504
|
-
function \u5E45\u306B\u53CE\u3081\u308B(text, fontSize, \u4F7F\u3048\u308B\u5E452, \u6E2C\u308B = textWidth) {
|
|
3505
|
-
let size = fontSize;
|
|
3506
|
-
while (size > \u7E2E\u3081\u306E\u4E0B\u9650 && \u6E2C\u308B(text, size) > \u4F7F\u3048\u308B\u5E452) size -= 1;
|
|
3507
|
-
return { text: \u5E45\u3067\u5207\u308B(text, size, \u4F7F\u3048\u308B\u5E452, \u6E2C\u308B), fontSize: size };
|
|
3508
|
-
}
|
|
3509
|
-
function \u66F8\u8A18\u7D20\u306B\u5206\u3051\u308B(text) {
|
|
3510
|
-
const \u533A\u5207\u308A = Intl.Segmenter;
|
|
3511
|
-
if (typeof \u533A\u5207\u308A !== "function") return [...text];
|
|
3512
|
-
return [...new \u533A\u5207\u308A(void 0, { granularity: "grapheme" }).segment(text)].map((g) => g.segment);
|
|
3513
|
-
}
|
|
3514
|
-
function \u7BB1\u306B\u7A4D\u3080(\u884C, \u7BB1\u306E\u5E45, \u7BB1\u306E\u9AD8\u30553) {
|
|
3515
|
-
const \u5019\u88DC = \u884C.filter((r, i) => i === 0 || r.text.trim() !== "");
|
|
3516
|
-
if (\u5019\u88DC.length === 0) return [];
|
|
3517
|
-
const \u4F7F\u3048\u308B\u9AD8\u3055 = \u7BB1\u306E\u9AD8\u30553 - \u4E0A\u4E0B\u306E\u4F59\u767D * 2;
|
|
3518
|
-
const \u9AD8\u3055 = (rs) => rs.reduce((a, r) => a + r.fontSize * \u884C\u9001\u308A\u306E\u6BD4, 0);
|
|
3519
|
-
const \u6B8B\u3059 = [...\u5019\u88DC];
|
|
3520
|
-
while (\u6B8B\u3059.length > 1 && \u9AD8\u3055(\u6B8B\u3059) > \u4F7F\u3048\u308B\u9AD8\u3055) \u6B8B\u3059.pop();
|
|
3521
|
-
const \u5E45 = \u4F7F\u3048\u308B\u5E45(\u7BB1\u306E\u5E45);
|
|
3522
|
-
const \u53CE\u3081\u305F = \u6B8B\u3059.map((r) => ({ ...r, ...\u5E45\u306B\u53CE\u3081\u308B(r.text, r.fontSize, \u5E45) }));
|
|
3523
|
-
const \u7DCF\u9AD8 = \u9AD8\u3055(\u53CE\u3081\u305F);
|
|
3524
|
-
let \u7A4D\u307F = -\u7DCF\u9AD8 / 2;
|
|
3525
|
-
return \u53CE\u3081\u305F.map((r) => {
|
|
3526
|
-
const dy = \u7A4D\u307F + (\u884C\u9001\u308A\u306E\u6BD4 + \u5B57\u306E\u9AD8\u3055\u306E\u6BD4) / 2 * r.fontSize;
|
|
3527
|
-
\u7A4D\u307F += r.fontSize * \u884C\u9001\u308A\u306E\u6BD4;
|
|
3528
|
-
return { ...r, dy };
|
|
3529
|
-
});
|
|
3530
|
-
}
|
|
3531
|
-
|
|
3532
3543
|
// src/render/tone.ts
|
|
3533
3544
|
var TONE = {
|
|
3534
3545
|
accent: "var(--cdl-tone-accent, #2d6a8f)",
|
|
@@ -11841,7 +11852,7 @@ function CardNode({ node, active }) {
|
|
|
11841
11852
|
const textAnchor = compact ? "middle" : "start";
|
|
11842
11853
|
const subtitleY = 124 - \u305A\u3089\u3057;
|
|
11843
11854
|
const \u6700\u5927\u306E\u884C\u9001\u308A = SUBTITLE_SIZE * \u884C\u9001\u308A\u306E\u500D\u7387;
|
|
11844
|
-
const \u4E8C\u884C\u304C\u5165\u308B = !compact && subtitleY - \u6700\u5927\u306E\u884C\u9001\u308A / 2 - SUBTITLE_SIZE *
|
|
11855
|
+
const \u4E8C\u884C\u304C\u5165\u308B = !compact && subtitleY - \u6700\u5927\u306E\u884C\u9001\u308A / 2 - SUBTITLE_SIZE * ASCENT > titleY + titleSize * DESCENT && subtitleY + \u6700\u5927\u306E\u884C\u9001\u308A / 2 + SUBTITLE_SIZE * DESCENT <= node.h - 4;
|
|
11845
11856
|
const \u8AAC\u660E = node.subtitle ? \u8AAC\u660E\u6587\u3092\u5272\u308A\u4ED8\u3051\u308B(node.subtitle, availableW, { \u4E8C\u884C\u307E\u3067: \u4E8C\u884C\u304C\u5165\u308B }) : void 0;
|
|
11846
11857
|
const subtitleSize = \u8AAC\u660E?.size ?? 21;
|
|
11847
11858
|
const \u884C\u9001\u308A = subtitleSize * \u884C\u9001\u308A\u306E\u500D\u7387;
|
|
@@ -16138,20 +16149,22 @@ var EYEBROW_TRACKING = 2;
|
|
|
16138
16149
|
var SUB_SIZE = 11;
|
|
16139
16150
|
var SUB_GAP = 4;
|
|
16140
16151
|
function labelBlock(node, pos, size, band) {
|
|
16141
|
-
const \u4E0A = node.eyebrow ? size + EYEBROW_GAP2 + EYEBROW_SIZE2 *
|
|
16142
|
-
const \u4E0B = node.subtitle ? size + SUB_GAP + SUB_SIZE *
|
|
16152
|
+
const \u4E0A = node.eyebrow ? size + EYEBROW_GAP2 + EYEBROW_SIZE2 * ASCENT2 : size * ASCENT2;
|
|
16153
|
+
const \u4E0B = node.subtitle ? size + SUB_GAP + SUB_SIZE * DESCENT2 : size * DESCENT2;
|
|
16143
16154
|
const \u5E45 = Math.max(
|
|
16144
16155
|
textWidth(node.title ?? "", size),
|
|
16145
16156
|
node.eyebrow ? textWidth(node.eyebrow, EYEBROW_SIZE2, EYEBROW_TRACKING) : 0,
|
|
16146
16157
|
node.subtitle ? textWidth(node.subtitle, SUB_SIZE) : 0
|
|
16147
16158
|
);
|
|
16148
|
-
const
|
|
16159
|
+
const \u4E0B\u9650 = \u5207\u3063\u3066\u53CE\u307E\u308B\u4E0B\u9650(node.title ?? "", size, 0, band.w, textWidth);
|
|
16160
|
+
const { k, x, y: baseline } = fitLabel(band, { \u4E0A, \u4E0B, \u5E45 }, pos, \u4E0B\u9650);
|
|
16149
16161
|
return { k, x, baseline, \u4E0A\u7AEF: baseline - \u4E0A * k, \u4E0B\u7AEF: baseline + \u4E0B * k };
|
|
16150
16162
|
}
|
|
16151
16163
|
function commonLabel(node, pos, size, band) {
|
|
16152
16164
|
const \u584A = labelBlock(node, pos, size, band);
|
|
16153
16165
|
const k = \u584A.k;
|
|
16154
16166
|
const x = \u584A.x;
|
|
16167
|
+
const \u5207\u308B = (t, \u5927\u304D\u3055, \u5B57\u9593 = 0) => \u5E45\u3067\u5207\u308B(t, \u5927\u304D\u3055 * k, band.w, (u, f) => textWidth(u, f, \u5B57\u9593 * k));
|
|
16155
16168
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
16156
16169
|
node.eyebrow && /* @__PURE__ */ jsxRuntime.jsx(
|
|
16157
16170
|
"text",
|
|
@@ -16163,7 +16176,7 @@ function commonLabel(node, pos, size, band) {
|
|
|
16163
16176
|
letterSpacing: EYEBROW_TRACKING * k,
|
|
16164
16177
|
textAnchor: "middle",
|
|
16165
16178
|
fill: "var(--cdl-tone-accent, #2d6a8f)",
|
|
16166
|
-
children: node.eyebrow
|
|
16179
|
+
children: \u5207\u308B(node.eyebrow, EYEBROW_SIZE2, EYEBROW_TRACKING)
|
|
16167
16180
|
}
|
|
16168
16181
|
),
|
|
16169
16182
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -16176,7 +16189,7 @@ function commonLabel(node, pos, size, band) {
|
|
|
16176
16189
|
fontWeight: 700,
|
|
16177
16190
|
textAnchor: "middle",
|
|
16178
16191
|
fill: "var(--cdl-text, #1a1f2a)",
|
|
16179
|
-
children: node.title
|
|
16192
|
+
children: \u5207\u308B(node.title ?? "", size)
|
|
16180
16193
|
}
|
|
16181
16194
|
),
|
|
16182
16195
|
node.subtitle && /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -16187,7 +16200,7 @@ function commonLabel(node, pos, size, band) {
|
|
|
16187
16200
|
fontSize: SUB_SIZE * k,
|
|
16188
16201
|
textAnchor: "middle",
|
|
16189
16202
|
fill: "var(--cdl-text-dim, #5a6270)",
|
|
16190
|
-
children: node.subtitle
|
|
16203
|
+
children: \u5207\u308B(node.subtitle, SUB_SIZE)
|
|
16191
16204
|
}
|
|
16192
16205
|
)
|
|
16193
16206
|
] });
|
|
@@ -16522,7 +16535,9 @@ function planLabel(node, cx, \u5E45\u4E0A\u9650, plan) {
|
|
|
16522
16535
|
node.eyebrow && plan.\u80A9\u66F8 ? textWidth(node.eyebrow, plan.\u80A9\u66F8.size, EYEBROW_TRACKING) : 0,
|
|
16523
16536
|
node.subtitle && plan.\u8AAC\u660E ? textWidth(node.subtitle, plan.\u8AAC\u660E.size) : 0
|
|
16524
16537
|
);
|
|
16525
|
-
const
|
|
16538
|
+
const \u4E0B\u9650 = \u5207\u3063\u3066\u53CE\u307E\u308B\u4E0B\u9650(node.title ?? "", plan.\u540D\u524D.size, 0, \u5E45\u4E0A\u9650, textWidth);
|
|
16539
|
+
const k = \u5E45 > 0 && \u5E45\u4E0A\u9650 > 0 ? Math.min(1, Math.max(\u5E45\u4E0A\u9650 / \u5E45, \u4E0B\u9650)) : 1;
|
|
16540
|
+
const \u5207\u308B = (t, \u5927\u304D\u3055, \u5B57\u9593 = 0) => \u5E45\u3067\u5207\u308B(t, \u5927\u304D\u3055 * k, \u5E45\u4E0A\u9650, (u, f) => textWidth(u, f, \u5B57\u9593 * k));
|
|
16526
16541
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
16527
16542
|
node.eyebrow && plan.\u80A9\u66F8 && /* @__PURE__ */ jsxRuntime.jsx(
|
|
16528
16543
|
"text",
|
|
@@ -16534,7 +16549,7 @@ function planLabel(node, cx, \u5E45\u4E0A\u9650, plan) {
|
|
|
16534
16549
|
letterSpacing: EYEBROW_TRACKING * k,
|
|
16535
16550
|
textAnchor: "middle",
|
|
16536
16551
|
fill: "var(--cdl-tone-accent, #2d6a8f)",
|
|
16537
|
-
children: node.eyebrow
|
|
16552
|
+
children: \u5207\u308B(node.eyebrow, plan.\u80A9\u66F8.size, EYEBROW_TRACKING)
|
|
16538
16553
|
}
|
|
16539
16554
|
),
|
|
16540
16555
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -16547,7 +16562,7 @@ function planLabel(node, cx, \u5E45\u4E0A\u9650, plan) {
|
|
|
16547
16562
|
fontWeight: 700,
|
|
16548
16563
|
textAnchor: "middle",
|
|
16549
16564
|
fill: "var(--cdl-text, #1a1f2a)",
|
|
16550
|
-
children: node.title
|
|
16565
|
+
children: \u5207\u308B(node.title ?? "", plan.\u540D\u524D.size)
|
|
16551
16566
|
}
|
|
16552
16567
|
),
|
|
16553
16568
|
node.subtitle && plan.\u8AAC\u660E && /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -16558,7 +16573,7 @@ function planLabel(node, cx, \u5E45\u4E0A\u9650, plan) {
|
|
|
16558
16573
|
fontSize: plan.\u8AAC\u660E.size * k,
|
|
16559
16574
|
textAnchor: "middle",
|
|
16560
16575
|
fill: "var(--cdl-text-dim, #5a6270)",
|
|
16561
|
-
children: node.subtitle
|
|
16576
|
+
children: \u5207\u308B(node.subtitle, plan.\u8AAC\u660E.size)
|
|
16562
16577
|
}
|
|
16563
16578
|
)
|
|
16564
16579
|
] });
|
|
@@ -17481,17 +17496,19 @@ var externalLabel = (node, cx, bottomY) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRu
|
|
|
17481
17496
|
var LABEL_EYEBROW_SPACING = 2;
|
|
17482
17497
|
function \u5E45\u306B\u53CE\u3081\u308B2(\u6587\u5B57\u5217, \u5927\u304D\u3055, \u5B57\u9593, \u7BB1\u5E45) {
|
|
17483
17498
|
const \u5E45 = textWidth(\u6587\u5B57\u5217, \u5927\u304D\u3055, \u5B57\u9593);
|
|
17484
|
-
const \u500D\u7387 = \u5E45 > 0 && \u7BB1\u5E45 > 0 ? Math.min(1, \u7BB1\u5E45 / \u5E45) : 1;
|
|
17485
|
-
|
|
17499
|
+
const \u500D\u7387 = \u5E45 > 0 && \u7BB1\u5E45 > 0 ? Math.min(1, Math.max(\u7BB1\u5E45 / \u5E45, \u5207\u3063\u3066\u53CE\u307E\u308B\u4E0B\u9650(\u6587\u5B57\u5217, \u5927\u304D\u3055, \u5B57\u9593, \u7BB1\u5E45, textWidth))) : 1;
|
|
17500
|
+
const size = \u5927\u304D\u3055 * \u500D\u7387;
|
|
17501
|
+
const spacing = \u5B57\u9593 * \u500D\u7387;
|
|
17502
|
+
return { size, spacing, text: \u5E45\u3067\u5207\u308B(\u6587\u5B57\u5217, size, \u7BB1\u5E45, (u, f) => textWidth(u, f, spacing)) };
|
|
17486
17503
|
}
|
|
17487
17504
|
function bottomLabel(node, cx, plan) {
|
|
17488
17505
|
const \u80A9 = \u5E45\u306B\u53CE\u3081\u308B2(node.eyebrow ?? "", plan.\u80A9\u66F8?.size ?? 0, LABEL_EYEBROW_SPACING, node.w);
|
|
17489
17506
|
const \u540D = \u5E45\u306B\u53CE\u3081\u308B2(node.title ?? "", plan.\u540D\u524D.size, 0, node.w);
|
|
17490
17507
|
const \u8AAC = \u5E45\u306B\u53CE\u3081\u308B2(node.subtitle ?? "", plan.\u8AAC\u660E?.size ?? 0, 0, node.w);
|
|
17491
17508
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
17492
|
-
node.eyebrow && plan.\u80A9\u66F8 && /* @__PURE__ */ jsxRuntime.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:
|
|
17493
|
-
/* @__PURE__ */ jsxRuntime.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:
|
|
17494
|
-
node.subtitle && plan.\u8AAC\u660E && /* @__PURE__ */ jsxRuntime.jsx("text", { x: cx, y: plan.\u8AAC\u660E.y, fontSize: \u8AAC.size, textAnchor: "middle", fill: "var(--cdl-text-dim, #5a6270)", children:
|
|
17509
|
+
node.eyebrow && plan.\u80A9\u66F8 && /* @__PURE__ */ jsxRuntime.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: \u80A9.text }),
|
|
17510
|
+
/* @__PURE__ */ jsxRuntime.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: \u540D.text }),
|
|
17511
|
+
node.subtitle && plan.\u8AAC\u660E && /* @__PURE__ */ jsxRuntime.jsx("text", { x: cx, y: plan.\u8AAC\u660E.y, fontSize: \u8AAC.size, textAnchor: "middle", fill: "var(--cdl-text-dim, #5a6270)", children: \u8AAC.text })
|
|
17495
17512
|
] });
|
|
17496
17513
|
}
|
|
17497
17514
|
var RACK_SLOT_TOP = 20;
|
|
@@ -18286,13 +18303,22 @@ function blockchainNodeExtent(strokeWidth) {
|
|
|
18286
18303
|
return { \u4E0A: \u7E26, \u4E0B: \u7E26, \u5DE6: \u6A2A, \u53F3: \u6A2A };
|
|
18287
18304
|
}
|
|
18288
18305
|
function bottomLabel2(node, cx, plan) {
|
|
18289
|
-
const \
|
|
18290
|
-
|
|
18291
|
-
|
|
18306
|
+
const \u53CE\u3081\u308B = (t, \u5927\u304D\u3055, \u5B57\u9593) => {
|
|
18307
|
+
const \u6E2C\u308B = (u, f, ls) => \u5B57\u306E\u5E45(u, f) + ls * [...u].length;
|
|
18308
|
+
const \u500D\u7387 = Math.max(\u5E45\u306E\u500D\u7387(t, \u5927\u304D\u3055, \u5B57\u9593, node.w), \u5207\u3063\u3066\u53CE\u307E\u308B\u4E0B\u9650(t, \u5927\u304D\u3055, \u5B57\u9593, node.w, \u6E2C\u308B));
|
|
18309
|
+
const size = \u5927\u304D\u3055 * \u500D\u7387;
|
|
18310
|
+
return { \u500D\u7387, text: \u5E45\u3067\u5207\u308B(t, size, node.w, (u, f) => \u5B57\u306E\u5E45(u, f) + \u5B57\u9593 * \u500D\u7387 * [...u].length) };
|
|
18311
|
+
};
|
|
18312
|
+
const \u80A9 = node.eyebrow && plan.\u80A9\u66F8 ? \u53CE\u3081\u308B(node.eyebrow, plan.\u80A9\u66F8.size, 2) : { \u500D\u7387: 1, text: node.eyebrow ?? "" };
|
|
18313
|
+
const \u540D = \u53CE\u3081\u308B(node.title ?? "", plan.\u540D\u524D.size, 0);
|
|
18314
|
+
const \u8AAC = node.subtitle && plan.\u8AAC\u660E ? \u53CE\u3081\u308B(node.subtitle, plan.\u8AAC\u660E.size, 0) : { \u500D\u7387: 1, text: node.subtitle ?? "" };
|
|
18315
|
+
const \u80A9\u66F8\u500D\u7387 = \u80A9.\u500D\u7387;
|
|
18316
|
+
const \u540D\u524D\u500D\u7387 = \u540D.\u500D\u7387;
|
|
18317
|
+
const \u8AAC\u660E\u500D\u7387 = \u8AAC.\u500D\u7387;
|
|
18292
18318
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
18293
|
-
node.eyebrow && plan.\u80A9\u66F8 && /* @__PURE__ */ jsxRuntime.jsx("text", { x: cx, y: plan.\u80A9\u66F8.y, fontSize: plan.\u80A9\u66F8.size * \u80A9\u66F8\u500D\u7387, fontWeight: 700, letterSpacing: 2 * \u80A9\u66F8\u500D\u7387, textAnchor: "middle", fill: "var(--cdl-tone-accent, #2d6a8f)", children:
|
|
18294
|
-
/* @__PURE__ */ jsxRuntime.jsx("text", { "data-cdl-role": "node-label", x: cx, y: plan.\u540D\u524D.y, fontSize: plan.\u540D\u524D.size * \u540D\u524D\u500D\u7387, fontWeight: 700, textAnchor: "middle", fill: "var(--cdl-text, #1a1f2a)", children:
|
|
18295
|
-
node.subtitle && plan.\u8AAC\u660E && /* @__PURE__ */ jsxRuntime.jsx("text", { x: cx, y: plan.\u8AAC\u660E.y, fontSize: plan.\u8AAC\u660E.size * \u8AAC\u660E\u500D\u7387, textAnchor: "middle", fill: "var(--cdl-text-dim, #5a6270)", children:
|
|
18319
|
+
node.eyebrow && plan.\u80A9\u66F8 && /* @__PURE__ */ jsxRuntime.jsx("text", { x: cx, y: plan.\u80A9\u66F8.y, fontSize: plan.\u80A9\u66F8.size * \u80A9\u66F8\u500D\u7387, fontWeight: 700, letterSpacing: 2 * \u80A9\u66F8\u500D\u7387, textAnchor: "middle", fill: "var(--cdl-tone-accent, #2d6a8f)", children: \u80A9.text }),
|
|
18320
|
+
/* @__PURE__ */ jsxRuntime.jsx("text", { "data-cdl-role": "node-label", x: cx, y: plan.\u540D\u524D.y, fontSize: plan.\u540D\u524D.size * \u540D\u524D\u500D\u7387, fontWeight: 700, textAnchor: "middle", fill: "var(--cdl-text, #1a1f2a)", children: \u540D.text }),
|
|
18321
|
+
node.subtitle && plan.\u8AAC\u660E && /* @__PURE__ */ jsxRuntime.jsx("text", { x: cx, y: plan.\u8AAC\u660E.y, fontSize: plan.\u8AAC\u660E.size * \u8AAC\u660E\u500D\u7387, textAnchor: "middle", fill: "var(--cdl-text-dim, #5a6270)", children: \u8AAC.text })
|
|
18296
18322
|
] });
|
|
18297
18323
|
}
|
|
18298
18324
|
function EthereumDiamond({ cx, cy, h, colors }) {
|
|
@@ -18901,17 +18927,19 @@ function \u5B57\u5E45(\u6587\u5B57\u5217, \u5927\u304D\u3055, \u5B57\u9593) {
|
|
|
18901
18927
|
}
|
|
18902
18928
|
function \u5E45\u306B\u53CE\u3081\u308B3(\u6587\u5B57\u5217, \u5927\u304D\u3055, \u5B57\u9593, \u7BB1\u5E45) {
|
|
18903
18929
|
const \u5E45 = \u5B57\u5E45(\u6587\u5B57\u5217, \u5927\u304D\u3055, \u5B57\u9593);
|
|
18904
|
-
const \u500D\u7387 = \u5E45 > 0 && \u7BB1\u5E45 > 0 ? Math.min(1, \u7BB1\u5E45 / \u5E45) : 1;
|
|
18905
|
-
|
|
18930
|
+
const \u500D\u7387 = \u5E45 > 0 && \u7BB1\u5E45 > 0 ? Math.min(1, Math.max(\u7BB1\u5E45 / \u5E45, \u5207\u3063\u3066\u53CE\u307E\u308B\u4E0B\u9650(\u6587\u5B57\u5217, \u5927\u304D\u3055, \u5B57\u9593, \u7BB1\u5E45, \u5B57\u5E45))) : 1;
|
|
18931
|
+
const size = \u5927\u304D\u3055 * \u500D\u7387;
|
|
18932
|
+
const spacing = \u5B57\u9593 * \u500D\u7387;
|
|
18933
|
+
return { size, spacing, text: \u5E45\u3067\u5207\u308B(\u6587\u5B57\u5217, size, \u7BB1\u5E45, (u, f) => \u5B57\u5E45(u, f, spacing)) };
|
|
18906
18934
|
}
|
|
18907
18935
|
function bottomLabel3(node, cx, plan) {
|
|
18908
18936
|
const \u80A9 = \u5E45\u306B\u53CE\u3081\u308B3(node.eyebrow ?? "", plan.\u80A9\u66F8?.size ?? 0, LABEL_EYEBROW_SPACING2, node.w);
|
|
18909
18937
|
const \u540D = \u5E45\u306B\u53CE\u3081\u308B3(node.title ?? "", plan.\u540D\u524D.size, 0, node.w);
|
|
18910
18938
|
const \u8AAC = \u5E45\u306B\u53CE\u3081\u308B3(node.subtitle ?? "", plan.\u8AAC\u660E?.size ?? 0, 0, node.w);
|
|
18911
18939
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
18912
|
-
node.eyebrow && plan.\u80A9\u66F8 && /* @__PURE__ */ jsxRuntime.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:
|
|
18913
|
-
/* @__PURE__ */ jsxRuntime.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:
|
|
18914
|
-
node.subtitle && plan.\u8AAC\u660E && /* @__PURE__ */ jsxRuntime.jsx("text", { x: cx, y: plan.\u8AAC\u660E.y, fontSize: \u8AAC.size, textAnchor: "middle", fill: "var(--cdl-text-dim, #5a6270)", children:
|
|
18940
|
+
node.eyebrow && plan.\u80A9\u66F8 && /* @__PURE__ */ jsxRuntime.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: \u80A9.text }),
|
|
18941
|
+
/* @__PURE__ */ jsxRuntime.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: \u540D.text }),
|
|
18942
|
+
node.subtitle && plan.\u8AAC\u660E && /* @__PURE__ */ jsxRuntime.jsx("text", { x: cx, y: plan.\u8AAC\u660E.y, fontSize: \u8AAC.size, textAnchor: "middle", fill: "var(--cdl-text-dim, #5a6270)", children: \u8AAC.text })
|
|
18915
18943
|
] });
|
|
18916
18944
|
}
|
|
18917
18945
|
var BANK_PEDIMENT_H = 44;
|
|
@@ -19384,17 +19412,19 @@ function \u5B57\u5E452(\u6587\u5B57\u5217, \u5927\u304D\u3055, \u5B57\u9593) {
|
|
|
19384
19412
|
}
|
|
19385
19413
|
function \u5E45\u306B\u53CE\u3081\u308B4(\u6587\u5B57\u5217, \u5927\u304D\u3055, \u5B57\u9593, \u7BB1\u5E45) {
|
|
19386
19414
|
const \u5E45 = \u5B57\u5E452(\u6587\u5B57\u5217, \u5927\u304D\u3055, \u5B57\u9593);
|
|
19387
|
-
const \u500D\u7387 = \u5E45 > 0 && \u7BB1\u5E45 > 0 ? Math.min(1, \u7BB1\u5E45 / \u5E45) : 1;
|
|
19388
|
-
|
|
19415
|
+
const \u500D\u7387 = \u5E45 > 0 && \u7BB1\u5E45 > 0 ? Math.min(1, Math.max(\u7BB1\u5E45 / \u5E45, \u5207\u3063\u3066\u53CE\u307E\u308B\u4E0B\u9650(\u6587\u5B57\u5217, \u5927\u304D\u3055, \u5B57\u9593, \u7BB1\u5E45, \u5B57\u5E452))) : 1;
|
|
19416
|
+
const size = \u5927\u304D\u3055 * \u500D\u7387;
|
|
19417
|
+
const spacing = \u5B57\u9593 * \u500D\u7387;
|
|
19418
|
+
return { size, spacing, text: \u5E45\u3067\u5207\u308B(\u6587\u5B57\u5217, size, \u7BB1\u5E45, (u, f) => \u5B57\u5E452(u, f, spacing)) };
|
|
19389
19419
|
}
|
|
19390
19420
|
function bottomLabel4(node, cx, plan) {
|
|
19391
19421
|
const \u80A9 = \u5E45\u306B\u53CE\u3081\u308B4(node.eyebrow ?? "", plan.\u80A9\u66F8?.size ?? 0, LABEL_EYEBROW_SPACING3, node.w);
|
|
19392
19422
|
const \u540D = \u5E45\u306B\u53CE\u3081\u308B4(node.title ?? "", plan.\u540D\u524D.size, 0, node.w);
|
|
19393
19423
|
const \u8AAC = \u5E45\u306B\u53CE\u3081\u308B4(node.subtitle ?? "", plan.\u8AAC\u660E?.size ?? 0, 0, node.w);
|
|
19394
19424
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
19395
|
-
node.eyebrow && plan.\u80A9\u66F8 && /* @__PURE__ */ jsxRuntime.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:
|
|
19396
|
-
/* @__PURE__ */ jsxRuntime.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:
|
|
19397
|
-
node.subtitle && plan.\u8AAC\u660E && /* @__PURE__ */ jsxRuntime.jsx("text", { x: cx, y: plan.\u8AAC\u660E.y, fontSize: \u8AAC.size, textAnchor: "middle", fill: "var(--cdl-text-dim, #5a6270)", children:
|
|
19425
|
+
node.eyebrow && plan.\u80A9\u66F8 && /* @__PURE__ */ jsxRuntime.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: \u80A9.text }),
|
|
19426
|
+
/* @__PURE__ */ jsxRuntime.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: \u540D.text }),
|
|
19427
|
+
node.subtitle && plan.\u8AAC\u660E && /* @__PURE__ */ jsxRuntime.jsx("text", { x: cx, y: plan.\u8AAC\u660E.y, fontSize: \u8AAC.size, textAnchor: "middle", fill: "var(--cdl-text-dim, #5a6270)", children: \u8AAC.text })
|
|
19398
19428
|
] });
|
|
19399
19429
|
}
|
|
19400
19430
|
var DROP_SHADOW_D = 4;
|