@cardenelabs/cdl 0.40.1 → 0.40.3

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.js CHANGED
@@ -11857,6 +11857,38 @@ function interpolateColor(template, stateValues, fallback) {
11857
11857
  if (!template) return fallback;
11858
11858
  return interpolate(template, stateValues);
11859
11859
  }
11860
+
11861
+ // src/kinds/label-stack.ts
11862
+ function \u540D\u672D\u306E\u6BB5\u3092\u307B\u3069\u304F(\u771F\u306Ey, \u9593\u9694, \u4E0A\u9650, \u4E0B\u9650) {
11863
+ const \u4EF6\u6570 = \u771F\u306Ey.length;
11864
+ if (\u4EF6\u6570 === 0) return [];
11865
+ const \u4E26\u3073 = \u771F\u306Ey.map((y, i) => ({ y, i })).sort((a, b) => a.y - b.y || a.i - b.i);
11866
+ const \u7D50\u679C = new Array(\u4EF6\u6570);
11867
+ if (\u9593\u9694 * (\u4EF6\u6570 - 1) > \u4E0B\u9650 - \u4E0A\u9650) {
11868
+ \u4E26\u3073.forEach((e, k) => {
11869
+ \u7D50\u679C[e.i] = \u4EF6\u6570 > 1 ? \u4E0A\u9650 + (\u4E0B\u9650 - \u4E0A\u9650) / (\u4EF6\u6570 - 1) * k : (\u4E0A\u9650 + \u4E0B\u9650) / 2;
11870
+ });
11871
+ return \u7D50\u679C;
11872
+ }
11873
+ const \u584A\u305F\u3061 = [];
11874
+ \u4E26\u3073.forEach((e, k) => {
11875
+ \u584A\u305F\u3061.push({ \u5408\u8A08: e.y - \u9593\u9694 * k, \u4EF6\u6570: 1 });
11876
+ while (\u584A\u305F\u3061.length >= 2) {
11877
+ const \u5F8C = \u584A\u305F\u3061[\u584A\u305F\u3061.length - 1];
11878
+ const \u524D = \u584A\u305F\u3061[\u584A\u305F\u3061.length - 2];
11879
+ if (\u524D.\u5408\u8A08 / \u524D.\u4EF6\u6570 <= \u5F8C.\u5408\u8A08 / \u5F8C.\u4EF6\u6570) break;
11880
+ \u584A\u305F\u3061.splice(\u584A\u305F\u3061.length - 2, 2, { \u5408\u8A08: \u524D.\u5408\u8A08 + \u5F8C.\u5408\u8A08, \u4EF6\u6570: \u524D.\u4EF6\u6570 + \u5F8C.\u4EF6\u6570 });
11881
+ }
11882
+ });
11883
+ const \u307B\u3069\u3044\u305F = [];
11884
+ \u584A\u305F\u3061.forEach((\u584A) => {
11885
+ const \u5E73\u5747 = \u584A.\u5408\u8A08 / \u584A.\u4EF6\u6570;
11886
+ for (let j = 0; j < \u584A.\u4EF6\u6570; j++) \u307B\u3069\u3044\u305F.push(\u5E73\u5747 + \u9593\u9694 * \u307B\u3069\u3044\u305F.length);
11887
+ });
11888
+ const \u305A\u308C = Math.max(0, \u4E0A\u9650 - \u307B\u3069\u3044\u305F[0]) - Math.max(0, \u307B\u3069\u3044\u305F[\u4EF6\u6570 - 1] - \u4E0B\u9650);
11889
+ \u4E26\u3073.forEach((e, k) => \u7D50\u679C[e.i] = \u307B\u3069\u3044\u305F[k] + \u305A\u308C);
11890
+ return \u7D50\u679C;
11891
+ }
11860
11892
  function \u6247\u5F62\u306E\u5207\u308A\u629C\u304D(cx, cy, r, \u958B\u304D, \u8D77\u70B9 = -Math.PI / 2, \u5168\u5468 = Math.PI * 2) {
11861
11893
  if (\u958B\u304D <= 0) return null;
11862
11894
  if (\u958B\u304D >= 1 && \u5168\u5468 >= Math.PI * 2) return /* @__PURE__ */ jsx("circle", { cx, cy, r });
@@ -11937,6 +11969,26 @@ function ChartPieNode({
11937
11969
  const \u5207\u308A\u629C\u304Did = `cdl-pie-draw-${instanceId}`;
11938
11970
  const \u5F71id = `cdl-pie-shadow-${instanceId}`;
11939
11971
  const \u958B\u304D\u59CB\u3081\u305F = (startFrac) => !drawing || \u958B\u304D > startFrac;
11972
+ const \u540D\u672D\u306E\u884C = \u5272\u5408\u306E\u7D1A + \u540D\u524D\u306E\u7D1A + 3;
11973
+ const \u540D\u672D\u306E\u5074 = slices.map((s) => Math.cos(s.\u4E2D\u592E\u89D2) >= 0);
11974
+ const \u540D\u672D\u306E\u771F\u306Ey = slices.map((s) => cy + (radius + \u5F15\u304D\u51FA\u3057) * Math.sin(s.\u4E2D\u592E\u89D2));
11975
+ const \u540D\u672D\u306Ey = (() => {
11976
+ const \u51FA\u3059 = [...\u540D\u672D\u306E\u771F\u306Ey];
11977
+ for (const \u5074 of [true, false]) {
11978
+ const \u756A\u53F7 = \u540D\u672D\u306E\u5074.flatMap((\u53F3, i) => \u53F3 === \u5074 ? [i] : []);
11979
+ if (\u756A\u53F7.length === 0) continue;
11980
+ const \u76F4\u3057\u305F = \u540D\u672D\u306E\u6BB5\u3092\u307B\u3069\u304F(
11981
+ \u756A\u53F7.map((i) => \u540D\u672D\u306E\u771F\u306Ey[i]),
11982
+ \u540D\u672D\u306E\u884C,
11983
+ PAD_TOP2 + \u540D\u672D\u306E\u7E26\u306E\u5F35\u308A\u51FA\u3057,
11984
+ node.h - PAD_BOTTOM2 - \u540D\u672D\u306E\u7E26\u306E\u5F35\u308A\u51FA\u3057
11985
+ );
11986
+ \u756A\u53F7.forEach((i, k) => \u51FA\u3059[i] = \u76F4\u3057\u305F[k]);
11987
+ }
11988
+ return \u51FA\u3059;
11989
+ })();
11990
+ const \u8098\u306Ex = (\u53F3) => cx + (\u53F3 ? 1 : -1) * (radius + \u5F15\u304D\u51FA\u3057);
11991
+ const \u5B57\u306Ex = (\u53F3) => \u8098\u306Ex(\u53F3) + (\u53F3 ? \u5B57\u307E\u3067\u306E\u9593 : -\u5B57\u307E\u3067\u306E\u9593);
11940
11992
  return /* @__PURE__ */ jsxs("g", { transform: `translate(${x0} ${y0})`, children: [
11941
11993
  /* @__PURE__ */ jsx(
11942
11994
  "rect",
@@ -12009,12 +12061,12 @@ function ChartPieNode({
12009
12061
  ),
12010
12062
  slices.map((s, idx) => {
12011
12063
  if (!\u958B\u304D\u59CB\u3081\u305F(s.startFrac)) return null;
12012
- const \u53F3 = Math.cos(s.\u4E2D\u592E\u89D2) >= 0;
12064
+ const \u53F3 = \u540D\u672D\u306E\u5074[idx];
12013
12065
  const \u7E01x = cx + radius * Math.cos(s.\u4E2D\u592E\u89D2);
12014
12066
  const \u7E01y = cy + radius * Math.sin(s.\u4E2D\u592E\u89D2);
12015
- const \u6298\u308Cx = cx + (radius + \u5F15\u304D\u51FA\u3057) * Math.cos(s.\u4E2D\u592E\u89D2);
12016
- const \u6298\u308Cy = cy + (radius + \u5F15\u304D\u51FA\u3057) * Math.sin(s.\u4E2D\u592E\u89D2);
12017
- const \u5B57x = \u6298\u308Cx + (\u53F3 ? \u5B57\u307E\u3067\u306E\u9593 : -\u5B57\u307E\u3067\u306E\u9593);
12067
+ const \u6298\u308Cx = \u8098\u306Ex(\u53F3);
12068
+ const \u6298\u308Cy = \u540D\u672D\u306Ey[idx];
12069
+ const \u5B57x = \u5B57\u306Ex(\u53F3);
12018
12070
  return /* @__PURE__ */ jsxs("g", { children: [
12019
12071
  /* @__PURE__ */ jsx(
12020
12072
  "path",
@@ -12335,8 +12387,18 @@ function ChartGaugeNode({
12335
12387
  const \u4F7F\u3048\u308B\u5E452 = node.w - PAD_SIDE * 2;
12336
12388
  const \u540D\u524D\u306E\u7D1A = 14;
12337
12389
  const \u6570\u5024\u306E\u7D1A = 13;
12338
- const \u5185\u8A33\u306E\u9AD8\u3055 = 56;
12390
+ const \u6BB5\u306E\u9AD8\u3055 = 56;
12339
12391
  const \u5F27\u3068\u5185\u8A33\u306E\u9593 = 16;
12392
+ const \u5370\u306E\u5E452 = 30;
12393
+ const \u533A\u753B\u306E\u9593 = 12;
12394
+ const \u5185\u8A33\u306E\u6570\u5024 = data.map((d) => `${\u5B9F\u5024\u8868\u8A18(d.value)} ${\u5272\u5408\u8868\u8A18(d.value / total)}`);
12395
+ const \u4EF6\u306B\u8981\u308B\u5E45 = Math.max(\u5370\u306E\u5E452, ...\u5185\u8A33\u306E\u6570\u5024.map((t) => textWidth(t, \u6570\u5024\u306E\u7D1A))) + \u533A\u753B\u306E\u9593;
12396
+ const \u884C\u306E\u4EF6\u6570 = Math.min(
12397
+ Math.max(1, Math.floor(\u4F7F\u3048\u308B\u5E452 / Math.max(\u4EF6\u306B\u8981\u308B\u5E45, 1))),
12398
+ Math.max(data.length, 1)
12399
+ );
12400
+ const \u5185\u8A33\u306E\u6BB5\u6570 = Math.ceil(Math.max(data.length, 1) / \u884C\u306E\u4EF6\u6570);
12401
+ const \u5185\u8A33\u306E\u9AD8\u3055 = \u6BB5\u306E\u9AD8\u3055 * \u5185\u8A33\u306E\u6BB5\u6570;
12340
12402
  const \u5F27\u306B\u4F7F\u3048\u308B\u9AD8\u3055 = \u4F7F\u3048\u308B\u9AD8\u3055 - \u5185\u8A33\u306E\u9AD8\u3055 - \u5F27\u3068\u5185\u8A33\u306E\u9593;
12341
12403
  const radius = Math.max(24, Math.min(\u5F27\u306B\u4F7F\u3048\u308B\u9AD8\u3055, \u4F7F\u3048\u308B\u5E452 / 2));
12342
12404
  const \u5185\u534A\u5F84 = radius * 0.62;
@@ -12365,7 +12427,7 @@ function ChartGaugeNode({
12365
12427
  );
12366
12428
  const \u5408\u8A08\u306E\u7D1A = Math.max(11, Math.round(\u7D1A\u306E\u5019\u88DC));
12367
12429
  const \u898B\u51FA\u3057\u306E\u7D1A = Math.max(9, Math.round(\u5408\u8A08\u306E\u7D1A * 0.38));
12368
- const \u5185\u8A33\u306E\u5E45 = \u4F7F\u3048\u308B\u5E452 / Math.max(data.length, 1);
12430
+ const \u5185\u8A33\u306E\u5E45 = \u4F7F\u3048\u308B\u5E452 / \u884C\u306E\u4EF6\u6570;
12369
12431
  const \u5185\u8A33\u306Ey = cy + \u5F27\u3068\u5185\u8A33\u306E\u9593;
12370
12432
  const \u4F38\u3073 = \u9032\u307F\u3092\u7573\u3080(drawing, progress);
12371
12433
  const \u5207\u308A\u629C\u304Did = `cdl-gauge-draw-${useId().replace(/[^A-Za-z0-9_-]/g, "")}`;
@@ -12423,22 +12485,35 @@ function ChartGaugeNode({
12423
12485
  }
12424
12486
  ),
12425
12487
  data.map((d, idx) => {
12426
- const x = PAD_SIDE + \u5185\u8A33\u306E\u5E45 * idx;
12427
- const \u6570\u5024 = `${\u5B9F\u5024\u8868\u8A18(d.value)} ${\u5272\u5408\u8868\u8A18(d.value / total)}`;
12488
+ const \u5217 = idx % \u884C\u306E\u4EF6\u6570;
12489
+ const \u6BB5 = Math.floor(idx / \u884C\u306E\u4EF6\u6570);
12490
+ const x = PAD_SIDE + \u5185\u8A33\u306E\u5E45 * \u5217;
12491
+ const y = \u5185\u8A33\u306Ey + \u6BB5\u306E\u9AD8\u3055 * \u6BB5;
12492
+ const \u53CE\u307E\u308B\u5E45 = \u5185\u8A33\u306E\u5E45 - \u533A\u753B\u306E\u9593;
12428
12493
  return /* @__PURE__ */ jsxs("g", { "data-cdl-role": "chart-gauge-item", children: [
12429
- /* @__PURE__ */ jsx("rect", { x, y: \u5185\u8A33\u306Ey, width: 30, height: 4, rx: 2, fill: arcColor(d.tone, idx) }),
12494
+ /* @__PURE__ */ jsx(
12495
+ "rect",
12496
+ {
12497
+ x,
12498
+ y,
12499
+ width: Math.max(4, Math.min(\u5370\u306E\u5E452, \u53CE\u307E\u308B\u5E45)),
12500
+ height: 4,
12501
+ rx: 2,
12502
+ fill: arcColor(d.tone, idx)
12503
+ }
12504
+ ),
12430
12505
  /* @__PURE__ */ jsx(
12431
12506
  "text",
12432
12507
  {
12433
12508
  x,
12434
- y: \u5185\u8A33\u306Ey + 26,
12509
+ y: y + 26,
12435
12510
  fontSize: \u540D\u524D\u306E\u7D1A,
12436
12511
  fontWeight: 700,
12437
12512
  fill: "var(--cdl-text, #1a1f2a)",
12438
- children: \u5207\u308A\u8A70\u3081\u308B(d.label ?? "", \u5185\u8A33\u306E\u5E45 - 12, \u540D\u524D\u306E\u7D1A)
12513
+ children: \u5207\u308A\u8A70\u3081\u308B(d.label ?? "", \u53CE\u307E\u308B\u5E45, \u540D\u524D\u306E\u7D1A)
12439
12514
  }
12440
12515
  ),
12441
- /* @__PURE__ */ jsx("text", { x, y: \u5185\u8A33\u306Ey + 46, fontSize: \u6570\u5024\u306E\u7D1A, fill: "var(--cdl-text-dim, #5a6270)", children: \u6570\u5024 })
12516
+ /* @__PURE__ */ jsx("text", { x, y: y + 46, fontSize: \u6570\u5024\u306E\u7D1A, fill: "var(--cdl-text-dim, #5a6270)", children: \u5207\u308A\u8A70\u3081\u308B(\u5185\u8A33\u306E\u6570\u5024[idx] ?? "", \u53CE\u307E\u308B\u5E45, \u6570\u5024\u306E\u7D1A) })
12442
12517
  ] }, `legend-${idx}`);
12443
12518
  })
12444
12519
  ] });
@@ -13027,36 +13102,6 @@ function \u4E00\u89A7\u306E\u4E26\u3073(data, \u5DE6, \u53F3\u7AEF, \u7D1A) {
13027
13102
  return out;
13028
13103
  }
13029
13104
  var \u7DDA\u306E\u6700\u5C0F\u5E45 = 120;
13030
- function \u540D\u672D\u306E\u6BB5\u3092\u307B\u3069\u304F(\u771F\u306Ey, \u9593\u9694, \u4E0A\u9650, \u4E0B\u9650) {
13031
- const \u4EF6\u6570 = \u771F\u306Ey.length;
13032
- if (\u4EF6\u6570 === 0) return [];
13033
- const \u4E26\u3073 = \u771F\u306Ey.map((y, i) => ({ y, i })).sort((a, b) => a.y - b.y || a.i - b.i);
13034
- const \u7D50\u679C = new Array(\u4EF6\u6570);
13035
- if (\u9593\u9694 * (\u4EF6\u6570 - 1) > \u4E0B\u9650 - \u4E0A\u9650) {
13036
- \u4E26\u3073.forEach((e, k) => {
13037
- \u7D50\u679C[e.i] = \u4EF6\u6570 > 1 ? \u4E0A\u9650 + (\u4E0B\u9650 - \u4E0A\u9650) / (\u4EF6\u6570 - 1) * k : (\u4E0A\u9650 + \u4E0B\u9650) / 2;
13038
- });
13039
- return \u7D50\u679C;
13040
- }
13041
- const \u584A\u305F\u3061 = [];
13042
- \u4E26\u3073.forEach((e, k) => {
13043
- \u584A\u305F\u3061.push({ \u5408\u8A08: e.y - \u9593\u9694 * k, \u4EF6\u6570: 1 });
13044
- while (\u584A\u305F\u3061.length >= 2) {
13045
- const \u5F8C = \u584A\u305F\u3061[\u584A\u305F\u3061.length - 1];
13046
- const \u524D = \u584A\u305F\u3061[\u584A\u305F\u3061.length - 2];
13047
- if (\u524D.\u5408\u8A08 / \u524D.\u4EF6\u6570 <= \u5F8C.\u5408\u8A08 / \u5F8C.\u4EF6\u6570) break;
13048
- \u584A\u305F\u3061.splice(\u584A\u305F\u3061.length - 2, 2, { \u5408\u8A08: \u524D.\u5408\u8A08 + \u5F8C.\u5408\u8A08, \u4EF6\u6570: \u524D.\u4EF6\u6570 + \u5F8C.\u4EF6\u6570 });
13049
- }
13050
- });
13051
- const \u307B\u3069\u3044\u305F = [];
13052
- \u584A\u305F\u3061.forEach((\u584A) => {
13053
- const \u5E73\u5747 = \u584A.\u5408\u8A08 / \u584A.\u4EF6\u6570;
13054
- for (let j = 0; j < \u584A.\u4EF6\u6570; j++) \u307B\u3069\u3044\u305F.push(\u5E73\u5747 + \u9593\u9694 * \u307B\u3069\u3044\u305F.length);
13055
- });
13056
- const \u305A\u308C = Math.max(0, \u4E0A\u9650 - \u307B\u3069\u3044\u305F[0]) - Math.max(0, \u307B\u3069\u3044\u305F[\u4EF6\u6570 - 1] - \u4E0B\u9650);
13057
- \u4E26\u3073.forEach((e, k) => \u7D50\u679C[e.i] = \u307B\u3069\u3044\u305F[k] + \u305A\u308C);
13058
- return \u7D50\u679C;
13059
- }
13060
13105
  function ChartSlopeNode({
13061
13106
  node,
13062
13107
  active,