stickyflow 0.9.0 → 0.9.2

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.
Files changed (40) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/binding/index.cjs +9 -9
  3. package/dist/binding/index.js +3 -3
  4. package/dist/{chunk-B3YRZVMR.cjs → chunk-2GKXPZRL.cjs} +23 -23
  5. package/dist/{chunk-B3YRZVMR.cjs.map → chunk-2GKXPZRL.cjs.map} +1 -1
  6. package/dist/{chunk-SQBF2BKT.cjs → chunk-3EOG34QN.cjs} +48 -44
  7. package/dist/chunk-3EOG34QN.cjs.map +1 -0
  8. package/dist/{chunk-CM35H45Z.js → chunk-AAP24GBG.js} +3 -3
  9. package/dist/{chunk-CM35H45Z.js.map → chunk-AAP24GBG.js.map} +1 -1
  10. package/dist/{chunk-QL7MNEMT.cjs → chunk-C25NWWIH.cjs} +48 -3
  11. package/dist/chunk-C25NWWIH.cjs.map +1 -0
  12. package/dist/{chunk-ZCGZJBAT.js → chunk-C3LVKPWQ.js} +19 -15
  13. package/dist/chunk-C3LVKPWQ.js.map +1 -0
  14. package/dist/{chunk-YSXD5IVZ.cjs → chunk-EURX7QT3.cjs} +672 -657
  15. package/dist/chunk-EURX7QT3.cjs.map +1 -0
  16. package/dist/{chunk-FS6L462E.js → chunk-G2N3KJYJ.js} +22 -7
  17. package/dist/chunk-G2N3KJYJ.js.map +1 -0
  18. package/dist/{chunk-OUWGWDJ2.cjs → chunk-MR32IJQO.cjs} +15 -15
  19. package/dist/{chunk-OUWGWDJ2.cjs.map → chunk-MR32IJQO.cjs.map} +1 -1
  20. package/dist/{chunk-D2266VBZ.js → chunk-Q6FBISNP.js} +48 -3
  21. package/dist/chunk-Q6FBISNP.js.map +1 -0
  22. package/dist/{chunk-BUVUJMWT.js → chunk-XNNNIOJU.js} +4 -4
  23. package/dist/{chunk-BUVUJMWT.js.map → chunk-XNNNIOJU.js.map} +1 -1
  24. package/dist/index.cjs +36 -36
  25. package/dist/index.js +5 -5
  26. package/dist/interaction/index.cjs +230 -230
  27. package/dist/interaction/index.js +2 -2
  28. package/dist/stickyflow-diagram.global.js +37 -37
  29. package/dist/stickyflow-diagram.global.js.map +1 -1
  30. package/dist/viewer/index.cjs +9 -9
  31. package/dist/viewer/index.js +4 -4
  32. package/dist/web-component/index.cjs +6 -6
  33. package/dist/web-component/index.js +4 -4
  34. package/package.json +1 -1
  35. package/dist/chunk-D2266VBZ.js.map +0 -1
  36. package/dist/chunk-FS6L462E.js.map +0 -1
  37. package/dist/chunk-QL7MNEMT.cjs.map +0 -1
  38. package/dist/chunk-SQBF2BKT.cjs.map +0 -1
  39. package/dist/chunk-YSXD5IVZ.cjs.map +0 -1
  40. package/dist/chunk-ZCGZJBAT.js.map +0 -1
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkQL7MNEMT_cjs = require('./chunk-QL7MNEMT.cjs');
3
+ var chunkC25NWWIH_cjs = require('./chunk-C25NWWIH.cjs');
4
4
 
5
5
  // src/renderInput/styleDecoding/colorToken.ts
6
6
  var COLOR_TOKEN_PATTERN = String.raw`rgba?\([^)]*\)|#[0-9a-fA-F]+|[a-zA-Z][\w-]*`;
@@ -660,7 +660,7 @@ function readComponentValue(descriptor, raw) {
660
660
  return raw;
661
661
  }
662
662
  function genericComponentObject(canvasObject) {
663
- const descriptor = chunkQL7MNEMT_cjs.getComponentDescriptor(canvasObject.component.type);
663
+ const descriptor = chunkC25NWWIH_cjs.getComponentDescriptor(canvasObject.component.type);
664
664
  return {
665
665
  id: canvasObject.id,
666
666
  type: canvasObject.component.type,
@@ -849,7 +849,7 @@ var BUILT_IN_OBJECTS = {
849
849
  };
850
850
  function componentObject(canvasObject) {
851
851
  const type = canvasObject.component.type;
852
- return chunkQL7MNEMT_cjs.isBuiltInComponentType(type) ? BUILT_IN_OBJECTS[type](canvasObject) : genericComponentObject(canvasObject);
852
+ return chunkC25NWWIH_cjs.isBuiltInComponentType(type) ? BUILT_IN_OBJECTS[type](canvasObject) : genericComponentObject(canvasObject);
853
853
  }
854
854
 
855
855
  // src/renderInput/fromSfl/canvasObjects/connection.ts
@@ -1094,9 +1094,9 @@ function collectCanvasObjects(state) {
1094
1094
  shapes: canvasObjects.filter((canvasObject) => canvasObject.objectType === "shape").map((shape) => shapeObject(shape, shaders)),
1095
1095
  frames: canvasObjects.filter((canvasObject) => canvasObject.objectType === "frame").map(frameObject),
1096
1096
  swimlanes: canvasObjects.filter((canvasObject) => canvasObject.objectType === "swimlane").map(swimlaneObject),
1097
- isometricObjects: canvasObjects.filter(chunkQL7MNEMT_cjs.isIsometricObject).map(isometricObject),
1097
+ isometricObjects: canvasObjects.filter(chunkC25NWWIH_cjs.isIsometricObject).map(isometricObject),
1098
1098
  paths: canvasObjects.filter((canvasObject) => canvasObject.objectType === "path").map(pathObject),
1099
- dimensions: canvasObjects.filter(chunkQL7MNEMT_cjs.isDimensionObject).map(dimensionObject),
1099
+ dimensions: canvasObjects.filter(chunkC25NWWIH_cjs.isDimensionObject).map(dimensionObject),
1100
1100
  charts: canvasObjects.filter((canvasObject) => canvasObject.objectType === "chart").map(chartObject),
1101
1101
  components: canvasObjects.filter(
1102
1102
  (canvasObject) => canvasObject.objectType === "component" && canvasObject.component !== void 0
@@ -1123,9 +1123,9 @@ function sidePoint(canvasObject, endpoint) {
1123
1123
  function namedPortPoint(canvasObject, endpoint) {
1124
1124
  const port = canvasObject.symbol?.ports?.find((candidate) => candidate.name === endpoint.port);
1125
1125
  if (!port) {
1126
- return chunkQL7MNEMT_cjs.elementCenter(canvasObject);
1126
+ return chunkC25NWWIH_cjs.elementCenter(canvasObject);
1127
1127
  }
1128
- return chunkQL7MNEMT_cjs.pointAtNormalizedPort(
1128
+ return chunkC25NWWIH_cjs.pointAtNormalizedPort(
1129
1129
  {
1130
1130
  x: canvasObject.x,
1131
1131
  y: canvasObject.y,
@@ -1171,7 +1171,7 @@ function explicitAnchorPoint(canvasObject, endpoint) {
1171
1171
  return null;
1172
1172
  }
1173
1173
  function automaticEndpointPoint(canvasObject, opposite) {
1174
- return opposite ? chunkQL7MNEMT_cjs.edgePointToward(canvasObject, opposite) : chunkQL7MNEMT_cjs.elementCenter(canvasObject);
1174
+ return opposite ? chunkC25NWWIH_cjs.edgePointToward(canvasObject, opposite) : chunkC25NWWIH_cjs.elementCenter(canvasObject);
1175
1175
  }
1176
1176
  function findPositionedCanvasObject(canvasObjects, id) {
1177
1177
  return canvasObjects.find((candidate) => candidate.id === id);
@@ -1189,7 +1189,7 @@ function positionedCanvasObjects(canvasObjects) {
1189
1189
  ];
1190
1190
  }
1191
1191
  function connectionEndpointPoint(object, face) {
1192
- return object ? chunkQL7MNEMT_cjs.isometricFaceCenter(object, face) : { x: 0, y: 0 };
1192
+ return object ? chunkC25NWWIH_cjs.isometricFaceCenter(object, face) : { x: 0, y: 0 };
1193
1193
  }
1194
1194
  function isometricStackPosition(isometricObjects, id) {
1195
1195
  const index = isometricObjects.findIndex((object2) => object2.id === id);
@@ -1204,8 +1204,8 @@ function connectionStack(isometricObjects, connection) {
1204
1204
  return { order: connection.order, sourceIndex: connection.sourceIndex };
1205
1205
  }
1206
1206
  const behind = [
1207
- chunkQL7MNEMT_cjs.VISIBLE_ISOMETRIC_FACES.has(connection.fromFace) ? void 0 : isometricStackPosition(isometricObjects, connection.fromId),
1208
- chunkQL7MNEMT_cjs.VISIBLE_ISOMETRIC_FACES.has(connection.toFace) ? void 0 : isometricStackPosition(isometricObjects, connection.toId)
1207
+ chunkC25NWWIH_cjs.VISIBLE_ISOMETRIC_FACES.has(connection.fromFace) ? void 0 : isometricStackPosition(isometricObjects, connection.fromId),
1208
+ chunkC25NWWIH_cjs.VISIBLE_ISOMETRIC_FACES.has(connection.toFace) ? void 0 : isometricStackPosition(isometricObjects, connection.toId)
1209
1209
  ].filter((position) => position !== void 0);
1210
1210
  if (!behind.length) {
1211
1211
  return { sourceIndex: connection.sourceIndex };
@@ -1247,7 +1247,7 @@ function createRenderInputLinks(canvasObjects) {
1247
1247
 
1248
1248
  // src/renderInput/fromSfl/index.ts
1249
1249
  function sflToRenderInput(sfl) {
1250
- const state = chunkQL7MNEMT_cjs.sflToCanvasState(sfl);
1250
+ const state = chunkC25NWWIH_cjs.sflToCanvasState(sfl);
1251
1251
  const canvasObjects = collectCanvasObjects(state);
1252
1252
  return {
1253
1253
  shapes: canvasObjects.shapes,
@@ -1266,13 +1266,13 @@ function sflToRenderInput(sfl) {
1266
1266
  // src/renderScene/artifacts/component/placeholder.ts
1267
1267
  var STROKE = "#94a3b8";
1268
1268
  function buildPlaceholder(component, index) {
1269
- const x = chunkQL7MNEMT_cjs.finite(component.x, 0);
1270
- const y = chunkQL7MNEMT_cjs.finite(component.y, 0);
1271
- const width = Math.max(0, chunkQL7MNEMT_cjs.finite(component.width, 120));
1272
- const height = Math.max(0, chunkQL7MNEMT_cjs.finite(component.height, 60));
1273
- const rotation = chunkQL7MNEMT_cjs.finite(component.rotation, 0);
1269
+ const x = chunkC25NWWIH_cjs.finite(component.x, 0);
1270
+ const y = chunkC25NWWIH_cjs.finite(component.y, 0);
1271
+ const width = Math.max(0, chunkC25NWWIH_cjs.finite(component.width, 120));
1272
+ const height = Math.max(0, chunkC25NWWIH_cjs.finite(component.height, 60));
1273
+ const rotation = chunkC25NWWIH_cjs.finite(component.rotation, 0);
1274
1274
  const order = 1e4 + index;
1275
- const bounds = chunkQL7MNEMT_cjs.rotatedBounds({ x, y, width, height }, rotation, 2);
1275
+ const bounds = chunkC25NWWIH_cjs.rotatedBounds({ x, y, width, height }, rotation, 2);
1276
1276
  return [
1277
1277
  {
1278
1278
  id: `widget-${component.id}`,
@@ -1297,7 +1297,7 @@ function buildPlaceholder(component, index) {
1297
1297
  width,
1298
1298
  height,
1299
1299
  lines: [component.type],
1300
- fontFamily: chunkQL7MNEMT_cjs.DEFAULT_FONT,
1300
+ fontFamily: chunkC25NWWIH_cjs.DEFAULT_FONT,
1301
1301
  fontSize: 12,
1302
1302
  fontWeight: "normal",
1303
1303
  color: STROKE,
@@ -1311,44 +1311,44 @@ function buildPlaceholder(component, index) {
1311
1311
 
1312
1312
  // src/renderScene/artifacts/component/builtIn.ts
1313
1313
  function buildRollingNumber(component, index) {
1314
- const x = chunkQL7MNEMT_cjs.finite(component.x, 0);
1315
- const y = chunkQL7MNEMT_cjs.finite(component.y, 0);
1316
- const width = Math.max(0, chunkQL7MNEMT_cjs.finite(component.width, 160));
1317
- const height = Math.max(0, chunkQL7MNEMT_cjs.finite(component.height, 90));
1318
- const rotation = chunkQL7MNEMT_cjs.finite(component.rotation, 0);
1314
+ const x = chunkC25NWWIH_cjs.finite(component.x, 0);
1315
+ const y = chunkC25NWWIH_cjs.finite(component.y, 0);
1316
+ const width = Math.max(0, chunkC25NWWIH_cjs.finite(component.width, 160));
1317
+ const height = Math.max(0, chunkC25NWWIH_cjs.finite(component.height, 90));
1318
+ const rotation = chunkC25NWWIH_cjs.finite(component.rotation, 0);
1319
1319
  return [
1320
1320
  {
1321
1321
  id: `widget-${component.id}`,
1322
1322
  type: "rolling-number",
1323
1323
  order: 1e4 + index,
1324
- bounds: chunkQL7MNEMT_cjs.rotatedBounds({ x, y, width, height }, rotation, 2),
1324
+ bounds: chunkC25NWWIH_cjs.rotatedBounds({ x, y, width, height }, rotation, 2),
1325
1325
  x,
1326
1326
  y,
1327
1327
  width,
1328
1328
  height,
1329
1329
  rotation,
1330
- value: chunkQL7MNEMT_cjs.formatRollingNumber(component.value, component.digits),
1330
+ value: chunkC25NWWIH_cjs.formatRollingNumber(component.value, component.digits),
1331
1331
  digits: component.digits,
1332
- duration: Math.max(0, chunkQL7MNEMT_cjs.finite(component.duration, 420)),
1332
+ duration: Math.max(0, chunkC25NWWIH_cjs.finite(component.duration, 420)),
1333
1333
  label: component.label,
1334
- componentStyle: chunkQL7MNEMT_cjs.resolveRollingNumberStyle(component.style)
1334
+ componentStyle: chunkC25NWWIH_cjs.resolveRollingNumberStyle(component.style)
1335
1335
  }
1336
1336
  ];
1337
1337
  }
1338
1338
  function buildTickScale(component, index) {
1339
- const x = chunkQL7MNEMT_cjs.finite(component.x, 0);
1340
- const y = chunkQL7MNEMT_cjs.finite(component.y, 0);
1341
- const width = Math.max(0, chunkQL7MNEMT_cjs.finite(component.width, 200));
1342
- const height = Math.max(0, chunkQL7MNEMT_cjs.finite(component.height, 200));
1343
- const rotation = chunkQL7MNEMT_cjs.finite(component.rotation, 0);
1344
- const max = chunkQL7MNEMT_cjs.finite(component.max, 100) || 100;
1345
- const progress = Math.min(1, Math.max(0, chunkQL7MNEMT_cjs.finite(Number(component.value), 0) / max));
1339
+ const x = chunkC25NWWIH_cjs.finite(component.x, 0);
1340
+ const y = chunkC25NWWIH_cjs.finite(component.y, 0);
1341
+ const width = Math.max(0, chunkC25NWWIH_cjs.finite(component.width, 200));
1342
+ const height = Math.max(0, chunkC25NWWIH_cjs.finite(component.height, 200));
1343
+ const rotation = chunkC25NWWIH_cjs.finite(component.rotation, 0);
1344
+ const max = chunkC25NWWIH_cjs.finite(component.max, 100) || 100;
1345
+ const progress = Math.min(1, Math.max(0, chunkC25NWWIH_cjs.finite(Number(component.value), 0) / max));
1346
1346
  const nodes = [
1347
1347
  {
1348
1348
  id: `widget-${component.id}`,
1349
1349
  type: "shader-surface",
1350
1350
  order: 1e4 + index,
1351
- bounds: chunkQL7MNEMT_cjs.rotatedBounds({ x, y, width, height }, rotation, 2),
1351
+ bounds: chunkC25NWWIH_cjs.rotatedBounds({ x, y, width, height }, rotation, 2),
1352
1352
  x,
1353
1353
  y,
1354
1354
  width,
@@ -1365,12 +1365,12 @@ function buildTickScale(component, index) {
1365
1365
  }
1366
1366
  function buildTickLabels(component, box) {
1367
1367
  const labels = component.labels ?? {};
1368
- const ticks2 = Math.max(1, chunkQL7MNEMT_cjs.finite(Number(component.parameters.ticks), 48));
1369
- const major = Math.max(1, chunkQL7MNEMT_cjs.finite(Number(component.parameters.major), 5));
1370
- const start = chunkQL7MNEMT_cjs.finite(Number(component.parameters.start), 225) * Math.PI / 180;
1371
- const sweep = chunkQL7MNEMT_cjs.finite(Number(component.parameters.sweep), 270) * Math.PI / 180;
1372
- const radius = chunkQL7MNEMT_cjs.finite(Number(component.parameters.radius), 0.9) + chunkQL7MNEMT_cjs.finite(labels.offset, 0.08);
1373
- const fontSize = chunkQL7MNEMT_cjs.finite(labels.size, 12);
1368
+ const ticks2 = Math.max(1, chunkC25NWWIH_cjs.finite(Number(component.parameters.ticks), 48));
1369
+ const major = Math.max(1, chunkC25NWWIH_cjs.finite(Number(component.parameters.major), 5));
1370
+ const start = chunkC25NWWIH_cjs.finite(Number(component.parameters.start), 225) * Math.PI / 180;
1371
+ const sweep = chunkC25NWWIH_cjs.finite(Number(component.parameters.sweep), 270) * Math.PI / 180;
1372
+ const radius = chunkC25NWWIH_cjs.finite(Number(component.parameters.radius), 0.9) + chunkC25NWWIH_cjs.finite(labels.offset, 0.08);
1373
+ const fontSize = chunkC25NWWIH_cjs.finite(labels.size, 12);
1374
1374
  const centerX = box.x + box.width / 2;
1375
1375
  const centerY = box.y + box.height / 2;
1376
1376
  const count = Math.floor(ticks2 / major);
@@ -1385,10 +1385,10 @@ function buildTickLabels(component, box) {
1385
1385
  id: `widget-${component.id}-label-${step}`,
1386
1386
  type: "text",
1387
1387
  order: box.order + 0.1,
1388
- bounds: chunkQL7MNEMT_cjs.rotatedBounds(labelBox, 0, 2),
1388
+ bounds: chunkC25NWWIH_cjs.rotatedBounds(labelBox, 0, 2),
1389
1389
  ...labelBox,
1390
1390
  lines: [String(Math.round(box.max * fraction * 10) / 10)],
1391
- fontFamily: labels.fontFamily || chunkQL7MNEMT_cjs.DEFAULT_FONT,
1391
+ fontFamily: labels.fontFamily || chunkC25NWWIH_cjs.DEFAULT_FONT,
1392
1392
  fontSize,
1393
1393
  fontWeight: labels.weight ?? "normal",
1394
1394
  color: labels.color || "#8f95c4",
@@ -1400,20 +1400,20 @@ function buildTickLabels(component, box) {
1400
1400
  return nodes;
1401
1401
  }
1402
1402
  function buildRuler(component, index) {
1403
- const x = chunkQL7MNEMT_cjs.finite(component.x, 0);
1404
- const y = chunkQL7MNEMT_cjs.finite(component.y, 0);
1405
- const width = Math.max(0, chunkQL7MNEMT_cjs.finite(component.width, 120));
1406
- const height = Math.max(0, chunkQL7MNEMT_cjs.finite(component.height, 360));
1407
- const rotation = chunkQL7MNEMT_cjs.finite(component.rotation, 0);
1408
- const min = chunkQL7MNEMT_cjs.finite(component.min, 0);
1409
- const max = chunkQL7MNEMT_cjs.finite(component.max, 100);
1410
- const progress = max === min ? 0 : Math.min(1, Math.max(0, (chunkQL7MNEMT_cjs.finite(Number(component.value), min) - min) / (max - min)));
1403
+ const x = chunkC25NWWIH_cjs.finite(component.x, 0);
1404
+ const y = chunkC25NWWIH_cjs.finite(component.y, 0);
1405
+ const width = Math.max(0, chunkC25NWWIH_cjs.finite(component.width, 120));
1406
+ const height = Math.max(0, chunkC25NWWIH_cjs.finite(component.height, 360));
1407
+ const rotation = chunkC25NWWIH_cjs.finite(component.rotation, 0);
1408
+ const min = chunkC25NWWIH_cjs.finite(component.min, 0);
1409
+ const max = chunkC25NWWIH_cjs.finite(component.max, 100);
1410
+ const progress = max === min ? 0 : Math.min(1, Math.max(0, (chunkC25NWWIH_cjs.finite(Number(component.value), min) - min) / (max - min)));
1411
1411
  const nodes = [
1412
1412
  {
1413
1413
  id: `widget-${component.id}`,
1414
1414
  type: "shader-surface",
1415
1415
  order: 1e4 + index,
1416
- bounds: chunkQL7MNEMT_cjs.rotatedBounds({ x, y, width, height }, rotation, 2),
1416
+ bounds: chunkC25NWWIH_cjs.rotatedBounds({ x, y, width, height }, rotation, 2),
1417
1417
  x,
1418
1418
  y,
1419
1419
  width,
@@ -1431,14 +1431,14 @@ function buildRuler(component, index) {
1431
1431
  function buildRulerLabels(component, box) {
1432
1432
  const labels = component.labels ?? {};
1433
1433
  const horizontal = component.parameters.axis === "horizontal";
1434
- const ticks2 = Math.max(1, chunkQL7MNEMT_cjs.finite(Number(component.parameters.ticks), 50));
1435
- const major = Math.max(1, chunkQL7MNEMT_cjs.finite(Number(component.parameters.major), 5));
1436
- const inset = chunkQL7MNEMT_cjs.finite(Number(component.parameters.inset), 0.05) > 0 ? chunkQL7MNEMT_cjs.finite(Number(component.parameters.inset), 0.05) : 0.05;
1437
- const line = chunkQL7MNEMT_cjs.finite(Number(component.parameters.line), 0.7) > 0 ? chunkQL7MNEMT_cjs.finite(Number(component.parameters.line), 0.7) : 0.7;
1434
+ const ticks2 = Math.max(1, chunkC25NWWIH_cjs.finite(Number(component.parameters.ticks), 50));
1435
+ const major = Math.max(1, chunkC25NWWIH_cjs.finite(Number(component.parameters.major), 5));
1436
+ const inset = chunkC25NWWIH_cjs.finite(Number(component.parameters.inset), 0.05) > 0 ? chunkC25NWWIH_cjs.finite(Number(component.parameters.inset), 0.05) : 0.05;
1437
+ const line = chunkC25NWWIH_cjs.finite(Number(component.parameters.line), 0.7) > 0 ? chunkC25NWWIH_cjs.finite(Number(component.parameters.line), 0.7) : 0.7;
1438
1438
  const across = horizontal ? box.height : box.width;
1439
- const tickLength = (chunkQL7MNEMT_cjs.finite(Number(component.parameters.length), 0.1) > 0 ? chunkQL7MNEMT_cjs.finite(Number(component.parameters.length), 0.1) : 0.1) * across * 1.9;
1440
- const edge = line * across - 0.12 * across - tickLength - chunkQL7MNEMT_cjs.finite(labels.offset, 0.04) * across;
1441
- const fontSize = chunkQL7MNEMT_cjs.finite(labels.size, 12);
1439
+ const tickLength = (chunkC25NWWIH_cjs.finite(Number(component.parameters.length), 0.1) > 0 ? chunkC25NWWIH_cjs.finite(Number(component.parameters.length), 0.1) : 0.1) * across * 1.9;
1440
+ const edge = line * across - 0.12 * across - tickLength - chunkC25NWWIH_cjs.finite(labels.offset, 0.04) * across;
1441
+ const fontSize = chunkC25NWWIH_cjs.finite(labels.size, 12);
1442
1442
  const count = Math.floor(ticks2 / major);
1443
1443
  const nodes = [];
1444
1444
  for (let step = 0; step <= count; step += 1) {
@@ -1449,10 +1449,10 @@ function buildRulerLabels(component, box) {
1449
1449
  id: `widget-${component.id}-label-${step}`,
1450
1450
  type: "text",
1451
1451
  order: box.order + 0.1,
1452
- bounds: chunkQL7MNEMT_cjs.rotatedBounds(labelBox, 0, 2),
1452
+ bounds: chunkC25NWWIH_cjs.rotatedBounds(labelBox, 0, 2),
1453
1453
  ...labelBox,
1454
1454
  lines: [String(Math.round((box.min + (box.max - box.min) * fraction) * 10) / 10)],
1455
- fontFamily: labels.fontFamily || chunkQL7MNEMT_cjs.DEFAULT_FONT,
1455
+ fontFamily: labels.fontFamily || chunkC25NWWIH_cjs.DEFAULT_FONT,
1456
1456
  fontSize,
1457
1457
  fontWeight: labels.weight ?? "normal",
1458
1458
  color: labels.color || "#8f95c4",
@@ -1468,10 +1468,10 @@ function buildRulerLabels(component, box) {
1468
1468
  var DISABLED_INK = "#94a3b8";
1469
1469
  function controlBox(component, index, fallback) {
1470
1470
  return {
1471
- x: chunkQL7MNEMT_cjs.finite(component.x, 0),
1472
- y: chunkQL7MNEMT_cjs.finite(component.y, 0),
1473
- width: Math.max(1, chunkQL7MNEMT_cjs.finite(component.width, fallback.width)),
1474
- height: Math.max(1, chunkQL7MNEMT_cjs.finite(component.height, fallback.height)),
1471
+ x: chunkC25NWWIH_cjs.finite(component.x, 0),
1472
+ y: chunkC25NWWIH_cjs.finite(component.y, 0),
1473
+ width: Math.max(1, chunkC25NWWIH_cjs.finite(component.width, fallback.width)),
1474
+ height: Math.max(1, chunkC25NWWIH_cjs.finite(component.height, fallback.height)),
1475
1475
  order: 1e4 + index
1476
1476
  };
1477
1477
  }
@@ -1489,7 +1489,7 @@ function hitArea(component, box) {
1489
1489
  id: `widget-${component.id}`,
1490
1490
  type: "rect",
1491
1491
  order: box.order,
1492
- bounds: chunkQL7MNEMT_cjs.rotatedBounds(box, 0, 0),
1492
+ bounds: chunkC25NWWIH_cjs.rotatedBounds(box, 0, 0),
1493
1493
  x: box.x,
1494
1494
  y: box.y,
1495
1495
  width: box.width,
@@ -1502,13 +1502,13 @@ function labelText(component, part, area, label, order) {
1502
1502
  id: `widget-${component.id}-${part}`,
1503
1503
  type: "text",
1504
1504
  order,
1505
- bounds: chunkQL7MNEMT_cjs.rotatedBounds(area, 0, 0),
1505
+ bounds: chunkC25NWWIH_cjs.rotatedBounds(area, 0, 0),
1506
1506
  x: area.x,
1507
1507
  y: area.y,
1508
1508
  width: area.width,
1509
1509
  height: area.height,
1510
1510
  lines: [label.text],
1511
- fontFamily: chunkQL7MNEMT_cjs.DEFAULT_FONT,
1511
+ fontFamily: chunkC25NWWIH_cjs.DEFAULT_FONT,
1512
1512
  fontSize: label.fontSize,
1513
1513
  fontWeight: "600",
1514
1514
  color: label.color,
@@ -1527,7 +1527,7 @@ function buildButton(component, index) {
1527
1527
  id: `widget-${component.id}-face`,
1528
1528
  type: "rect",
1529
1529
  order: box.order + 0.1,
1530
- bounds: chunkQL7MNEMT_cjs.rotatedBounds(box, 0, 0),
1530
+ bounds: chunkC25NWWIH_cjs.rotatedBounds(box, 0, 0),
1531
1531
  x: box.x,
1532
1532
  y: box.y,
1533
1533
  width: box.width,
@@ -1566,7 +1566,7 @@ function boxNode(component, box, square) {
1566
1566
  id: `widget-${component.id}-box`,
1567
1567
  type: "rect",
1568
1568
  order: box.order + 0.1,
1569
- bounds: chunkQL7MNEMT_cjs.rotatedBounds(square, 0, 2),
1569
+ bounds: chunkC25NWWIH_cjs.rotatedBounds(square, 0, 2),
1570
1570
  ...square,
1571
1571
  rx: square.width * CORNER_RATIO,
1572
1572
  style: fade(component, {
@@ -1581,7 +1581,7 @@ function checkNode(component, box, square) {
1581
1581
  id: `widget-${component.id}-check`,
1582
1582
  type: "path",
1583
1583
  order: box.order + 0.2,
1584
- bounds: chunkQL7MNEMT_cjs.rotatedBounds(square, 0, 0),
1584
+ bounds: chunkC25NWWIH_cjs.rotatedBounds(square, 0, 0),
1585
1585
  d: checkPath(square),
1586
1586
  style: fade(component, {
1587
1587
  fill: { kind: "none" },
@@ -1645,7 +1645,7 @@ function buildKnob(component, index) {
1645
1645
  id: `widget-${component.id}-${part}`,
1646
1646
  type: "ellipse",
1647
1647
  order: box.order + order,
1648
- bounds: chunkQL7MNEMT_cjs.rotatedBounds({ x: cx - radius, y: cy - radius, width: radius * 2, height: radius * 2 }, 0, thickness),
1648
+ bounds: chunkC25NWWIH_cjs.rotatedBounds({ x: cx - radius, y: cy - radius, width: radius * 2, height: radius * 2 }, 0, thickness),
1649
1649
  cx,
1650
1650
  cy,
1651
1651
  rx: radius,
@@ -1672,7 +1672,7 @@ function buildKnob(component, index) {
1672
1672
  id: `widget-${component.id}-face`,
1673
1673
  type: "ellipse",
1674
1674
  order: box.order + 0.3,
1675
- bounds: chunkQL7MNEMT_cjs.rotatedBounds(
1675
+ bounds: chunkC25NWWIH_cjs.rotatedBounds(
1676
1676
  { x: cx - faceRadius, y: cy - faceRadius, width: faceRadius * 2, height: faceRadius * 2 },
1677
1677
  0,
1678
1678
  0
@@ -1687,7 +1687,7 @@ function buildKnob(component, index) {
1687
1687
  id: `widget-${component.id}-dot`,
1688
1688
  type: "ellipse",
1689
1689
  order: box.order + 0.4,
1690
- bounds: chunkQL7MNEMT_cjs.rotatedBounds(
1690
+ bounds: chunkC25NWWIH_cjs.rotatedBounds(
1691
1691
  {
1692
1692
  x: cx + radius * Math.cos(angle) - dotRadius,
1693
1693
  y: cy - radius * Math.sin(angle) - dotRadius,
@@ -1750,7 +1750,7 @@ function buildProgress(component, index) {
1750
1750
  id: `widget-${component.id}-${part}`,
1751
1751
  type: "ellipse",
1752
1752
  order: box.order + order,
1753
- bounds: chunkQL7MNEMT_cjs.rotatedBounds({ x: cx - radius, y: cy - radius, width: radius * 2, height: radius * 2 }, 0, thickness),
1753
+ bounds: chunkC25NWWIH_cjs.rotatedBounds({ x: cx - radius, y: cy - radius, width: radius * 2, height: radius * 2 }, 0, thickness),
1754
1754
  cx,
1755
1755
  cy,
1756
1756
  rx: radius,
@@ -1775,7 +1775,7 @@ function buildProgress(component, index) {
1775
1775
  id: `widget-${component.id}-${part}`,
1776
1776
  type: "rect",
1777
1777
  order: box.order + order,
1778
- bounds: chunkQL7MNEMT_cjs.rotatedBounds(shape, 0, 0),
1778
+ bounds: chunkC25NWWIH_cjs.rotatedBounds(shape, 0, 0),
1779
1779
  ...shape,
1780
1780
  rx: radius,
1781
1781
  style: fade(component, {
@@ -1818,7 +1818,7 @@ function buildSegmented(component, index) {
1818
1818
  id: `widget-${component.id}-track`,
1819
1819
  type: "rect",
1820
1820
  order: box.order + 0.1,
1821
- bounds: chunkQL7MNEMT_cjs.rotatedBounds(box, 0, 0),
1821
+ bounds: chunkC25NWWIH_cjs.rotatedBounds(box, 0, 0),
1822
1822
  x: box.x,
1823
1823
  y: box.y,
1824
1824
  width: box.width,
@@ -1830,7 +1830,7 @@ function buildSegmented(component, index) {
1830
1830
  id: `widget-${component.id}-active`,
1831
1831
  type: "rect",
1832
1832
  order: box.order + 0.2,
1833
- bounds: chunkQL7MNEMT_cjs.rotatedBounds({ x: box.x + inset + active * cellWidth, width: cellWidth, ...cell }, 0, 0),
1833
+ bounds: chunkC25NWWIH_cjs.rotatedBounds({ x: box.x + inset + active * cellWidth, width: cellWidth, ...cell }, 0, 0),
1834
1834
  x: box.x + inset + active * cellWidth,
1835
1835
  y: cell.y,
1836
1836
  width: cellWidth,
@@ -1882,7 +1882,7 @@ var rect = (component, box, part, order, shape, color, extra = {}) => ({
1882
1882
  id: `widget-${component.id}-${part}`,
1883
1883
  type: "rect",
1884
1884
  order: box.order + order,
1885
- bounds: chunkQL7MNEMT_cjs.rotatedBounds(shape, 0, 0),
1885
+ bounds: chunkC25NWWIH_cjs.rotatedBounds(shape, 0, 0),
1886
1886
  ...shape,
1887
1887
  style: fade(component, { fill: solid(color), stroke: { kind: "none" }, ...extra })
1888
1888
  });
@@ -1935,7 +1935,7 @@ function buildLine(component, box, thumbs, vertical) {
1935
1935
  id: `widget-${component.id}-${part}`,
1936
1936
  type: "ellipse",
1937
1937
  order: box.order + order,
1938
- bounds: chunkQL7MNEMT_cjs.rotatedBounds({ x: cx - radius, y: cy - radius, width: radius * 2, height: radius * 2 }, 0, 0),
1938
+ bounds: chunkC25NWWIH_cjs.rotatedBounds({ x: cx - radius, y: cy - radius, width: radius * 2, height: radius * 2 }, 0, 0),
1939
1939
  cx,
1940
1940
  cy,
1941
1941
  rx: radius,
@@ -2087,7 +2087,7 @@ function buildSwitch(component, index) {
2087
2087
  id: `widget-${component.id}-track`,
2088
2088
  type: "rect",
2089
2089
  order: box.order + 0.1,
2090
- bounds: chunkQL7MNEMT_cjs.rotatedBounds(box, 0, 0),
2090
+ bounds: chunkC25NWWIH_cjs.rotatedBounds(box, 0, 0),
2091
2091
  x: box.x,
2092
2092
  y: box.y,
2093
2093
  width: box.width,
@@ -2102,7 +2102,7 @@ function buildSwitch(component, index) {
2102
2102
  id: `widget-${component.id}-thumb`,
2103
2103
  type: "ellipse",
2104
2104
  order: box.order + 0.2,
2105
- bounds: chunkQL7MNEMT_cjs.rotatedBounds(thumb, 0, 0),
2105
+ bounds: chunkC25NWWIH_cjs.rotatedBounds(thumb, 0, 0),
2106
2106
  cx: centerX,
2107
2107
  cy: box.y + box.height / 2,
2108
2108
  rx: radius,
@@ -2126,7 +2126,7 @@ function buildToggleButton(component, index) {
2126
2126
  id: `widget-${component.id}-face`,
2127
2127
  type: "rect",
2128
2128
  order: box.order + 0.1,
2129
- bounds: chunkQL7MNEMT_cjs.rotatedBounds(box, 0, 2),
2129
+ bounds: chunkC25NWWIH_cjs.rotatedBounds(box, 0, 2),
2130
2130
  x: box.x,
2131
2131
  y: box.y,
2132
2132
  width: box.width,
@@ -2181,8 +2181,8 @@ function getComponentBuilder(type) {
2181
2181
 
2182
2182
  // src/renderScene/artifacts/component/build.ts
2183
2183
  function ariaOf(component) {
2184
- const role = chunkQL7MNEMT_cjs.getComponentDescriptor(component.type)?.role;
2185
- if (!role || !chunkQL7MNEMT_cjs.isGenericComponent(component)) {
2184
+ const role = chunkC25NWWIH_cjs.getComponentDescriptor(component.type)?.role;
2185
+ if (!role || !chunkC25NWWIH_cjs.isGenericComponent(component)) {
2186
2186
  return void 0;
2187
2187
  }
2188
2188
  const flag = typeof component.value === "boolean" ? component.value : void 0;
@@ -2193,12 +2193,12 @@ function ariaOf(component) {
2193
2193
  };
2194
2194
  }
2195
2195
  function labelOf(component) {
2196
- return component.label ?? (chunkQL7MNEMT_cjs.isGenericComponent(component) ? component.id : String(component.value));
2196
+ return component.label ?? (chunkC25NWWIH_cjs.isGenericComponent(component) ? component.id : String(component.value));
2197
2197
  }
2198
2198
  function buildComponents(components) {
2199
2199
  return components.flatMap((component, index) => {
2200
2200
  const build = getComponentBuilder(component.type) ?? buildPlaceholder;
2201
- const nodes = chunkQL7MNEMT_cjs.tag(
2201
+ const nodes = chunkC25NWWIH_cjs.tag(
2202
2202
  build(component, index),
2203
2203
  "widget",
2204
2204
  component.id,
@@ -2238,13 +2238,13 @@ function tabBox(input, thickness, length) {
2238
2238
  y,
2239
2239
  width: length,
2240
2240
  height: thickness,
2241
- path: chunkQL7MNEMT_cjs.bottomRoundedRectPath(x, y, length, thickness, TAB_RADIUS)
2241
+ path: chunkC25NWWIH_cjs.bottomRoundedRectPath(x, y, length, thickness, TAB_RADIUS)
2242
2242
  };
2243
2243
  }
2244
2244
  case "left": {
2245
2245
  const x = input.x - thickness;
2246
2246
  const y = input.y - inset;
2247
- return { x, y, width: thickness, height: length, path: chunkQL7MNEMT_cjs.leftRoundedRectPath(x, y, thickness, length, TAB_RADIUS) };
2247
+ return { x, y, width: thickness, height: length, path: chunkC25NWWIH_cjs.leftRoundedRectPath(x, y, thickness, length, TAB_RADIUS) };
2248
2248
  }
2249
2249
  case "right": {
2250
2250
  const x = input.x + input.width;
@@ -2254,13 +2254,13 @@ function tabBox(input, thickness, length) {
2254
2254
  y,
2255
2255
  width: thickness,
2256
2256
  height: length,
2257
- path: chunkQL7MNEMT_cjs.rightRoundedRectPath(x, y, thickness, length, TAB_RADIUS)
2257
+ path: chunkC25NWWIH_cjs.rightRoundedRectPath(x, y, thickness, length, TAB_RADIUS)
2258
2258
  };
2259
2259
  }
2260
2260
  default: {
2261
2261
  const x = input.x - inset;
2262
2262
  const y = input.y - thickness;
2263
- return { x, y, width: length, height: thickness, path: chunkQL7MNEMT_cjs.topRoundedRectPath(x, y, length, thickness, TAB_RADIUS) };
2263
+ return { x, y, width: length, height: thickness, path: chunkC25NWWIH_cjs.topRoundedRectPath(x, y, length, thickness, TAB_RADIUS) };
2264
2264
  }
2265
2265
  }
2266
2266
  }
@@ -2269,7 +2269,7 @@ function renderTitleTab(input) {
2269
2269
  const padding = 16;
2270
2270
  const length = Math.max(120, input.title.length * input.fontSize * 0.62 + padding * 2);
2271
2271
  const box = tabBox(input, thickness, length);
2272
- const bounds = chunkQL7MNEMT_cjs.boxBounds(box, 6);
2272
+ const bounds = chunkC25NWWIH_cjs.boxBounds(box, 6);
2273
2273
  const vertical = input.labelPosition === "left" || input.labelPosition === "right";
2274
2274
  return [
2275
2275
  {
@@ -2297,7 +2297,7 @@ function horizontalTitleText(input, box, padding, bounds) {
2297
2297
  width: Math.max(0, box.width - padding * 2),
2298
2298
  height: box.height,
2299
2299
  lines: [input.title],
2300
- fontFamily: input.fontFamily ?? chunkQL7MNEMT_cjs.DEFAULT_FONT,
2300
+ fontFamily: input.fontFamily ?? chunkC25NWWIH_cjs.DEFAULT_FONT,
2301
2301
  fontSize: input.fontSize,
2302
2302
  fontWeight: input.fontWeight,
2303
2303
  color: input.textColor,
@@ -2321,7 +2321,7 @@ function verticalTitleText(input, box, padding, bounds) {
2321
2321
  width: textLength,
2322
2322
  height: textThickness,
2323
2323
  lines: [input.title],
2324
- fontFamily: input.fontFamily ?? chunkQL7MNEMT_cjs.DEFAULT_FONT,
2324
+ fontFamily: input.fontFamily ?? chunkC25NWWIH_cjs.DEFAULT_FONT,
2325
2325
  fontSize: input.fontSize,
2326
2326
  fontWeight: input.fontWeight,
2327
2327
  color: input.textColor,
@@ -2342,7 +2342,7 @@ var SQUARED_CORNER_BY_LABEL_POSITION = {
2342
2342
  };
2343
2343
  function frameBoundaryNode(frame, order, hasTab) {
2344
2344
  const shadow = frame.shadow ?? true;
2345
- const bounds = chunkQL7MNEMT_cjs.boxBounds(
2345
+ const bounds = chunkC25NWWIH_cjs.boxBounds(
2346
2346
  { x: frame.x, y: frame.y, width: frame.width, height: frame.height },
2347
2347
  frame.strokeWidth + (shadow ? 20 : 4)
2348
2348
  );
@@ -2377,7 +2377,7 @@ function frameBoundaryNode(frame, order, hasTab) {
2377
2377
  id: `frame-${frame.id}`,
2378
2378
  order,
2379
2379
  bounds,
2380
- d: chunkQL7MNEMT_cjs.cornersRoundedRectPath(frame.x, frame.y, frame.width, frame.height, radii),
2380
+ d: chunkC25NWWIH_cjs.cornersRoundedRectPath(frame.x, frame.y, frame.width, frame.height, radii),
2381
2381
  detail: { of: "frameBoundary", cornerRadius: frame.cornerRadius, squareCorner: squared },
2382
2382
  style
2383
2383
  };
@@ -2466,7 +2466,7 @@ function labelBase(context, lane, index) {
2466
2466
  id: `swimlane-label-${context.swimlane.id}-${lane.id}`,
2467
2467
  order: context.order + 0.5 + index / 100,
2468
2468
  lines: [lane.label],
2469
- fontFamily: context.swimlane.fontFamily ?? chunkQL7MNEMT_cjs.DEFAULT_FONT,
2469
+ fontFamily: context.swimlane.fontFamily ?? chunkC25NWWIH_cjs.DEFAULT_FONT,
2470
2470
  fontSize: context.swimlane.fontSize,
2471
2471
  fontWeight: context.swimlane.fontWeight,
2472
2472
  color: context.swimlane.textColor,
@@ -2482,7 +2482,7 @@ function horizontalLabel(context, lane, index) {
2482
2482
  const y = centerY - thickness / 2;
2483
2483
  return {
2484
2484
  ...labelBase(context, lane, index),
2485
- bounds: chunkQL7MNEMT_cjs.rotatedBounds({ x, y, width, height: thickness }, -90, 12),
2485
+ bounds: chunkC25NWWIH_cjs.rotatedBounds({ x, y, width, height: thickness }, -90, 12),
2486
2486
  x,
2487
2487
  y,
2488
2488
  width,
@@ -2534,7 +2534,7 @@ function createSwimlaneRenderContext(swimlane, index) {
2534
2534
  return {
2535
2535
  swimlane,
2536
2536
  order: 5e3 + index,
2537
- bounds: chunkQL7MNEMT_cjs.boxBounds(
2537
+ bounds: chunkC25NWWIH_cjs.boxBounds(
2538
2538
  { x: swimlane.x, y: swimlane.y, width: swimlane.width, height: swimlane.height },
2539
2539
  swimlane.strokeWidth + 4
2540
2540
  ),
@@ -2573,9 +2573,9 @@ function buildSwimlane(swimlane, index) {
2573
2573
  function buildContainers(input) {
2574
2574
  return [
2575
2575
  ...input.frames.flatMap(
2576
- (frame, index) => chunkQL7MNEMT_cjs.tag(buildFrame(frame, index), "frame", frame.id, void 0, frame.title ?? void 0)
2576
+ (frame, index) => chunkC25NWWIH_cjs.tag(buildFrame(frame, index), "frame", frame.id, void 0, frame.title ?? void 0)
2577
2577
  ),
2578
- ...input.swimlanes.flatMap((swimlane, index) => chunkQL7MNEMT_cjs.tag(buildSwimlane(swimlane, index), "swimlane", swimlane.id))
2578
+ ...input.swimlanes.flatMap((swimlane, index) => chunkC25NWWIH_cjs.tag(buildSwimlane(swimlane, index), "swimlane", swimlane.id))
2579
2579
  ];
2580
2580
  }
2581
2581
 
@@ -2625,7 +2625,7 @@ var DEFAULT_COLOR = "#475569";
2625
2625
  var CHAR_WIDTH = 0.6;
2626
2626
  var pathData = (segments) => segments.map(([from, to]) => `M ${from.x} ${from.y} L ${to.x} ${to.y}`).join(" ");
2627
2627
  function pathNode(dimension, name, order, segments) {
2628
- const strokeWidth = Math.max(0, chunkQL7MNEMT_cjs.finite(dimension.strokeWidth, 1));
2628
+ const strokeWidth = Math.max(0, chunkC25NWWIH_cjs.finite(dimension.strokeWidth, 1));
2629
2629
  const points = segments.flat();
2630
2630
  return {
2631
2631
  type: "path",
@@ -2647,7 +2647,7 @@ function pathNode(dimension, name, order, segments) {
2647
2647
  };
2648
2648
  }
2649
2649
  function labelNode2(dimension, order, text, center, angle) {
2650
- const fontSize = chunkQL7MNEMT_cjs.finite(dimension.fontSize, 11);
2650
+ const fontSize = chunkC25NWWIH_cjs.finite(dimension.fontSize, 11);
2651
2651
  const width = Math.max(24, text.length * fontSize * CHAR_WIDTH + 8);
2652
2652
  const height = fontSize * 1.3;
2653
2653
  return {
@@ -2665,7 +2665,7 @@ function labelNode2(dimension, order, text, center, angle) {
2665
2665
  width,
2666
2666
  height,
2667
2667
  lines: [text],
2668
- fontFamily: chunkQL7MNEMT_cjs.DEFAULT_FONT,
2668
+ fontFamily: chunkC25NWWIH_cjs.DEFAULT_FONT,
2669
2669
  fontSize,
2670
2670
  fontWeight: "normal",
2671
2671
  color: dimension.textColor ?? dimension.strokeColor ?? DEFAULT_COLOR,
@@ -2690,7 +2690,7 @@ function buildDimension(dimension, index) {
2690
2690
  }
2691
2691
  function buildDimensions(dimensions) {
2692
2692
  return dimensions.flatMap(
2693
- (dimension, index) => chunkQL7MNEMT_cjs.tag(
2693
+ (dimension, index) => chunkC25NWWIH_cjs.tag(
2694
2694
  buildDimension(dimension, index),
2695
2695
  "dimension",
2696
2696
  dimension.id,
@@ -2704,9 +2704,9 @@ function buildDimensions(dimensions) {
2704
2704
  // src/renderScene/artifacts/isometric/context.ts
2705
2705
  var FILL_PROP = { prop: "style.fill", propKind: "color", propSolidOnly: true };
2706
2706
  function isometricContext(object, index) {
2707
- const strokeWidth = Math.max(0, chunkQL7MNEMT_cjs.finite(object.strokeWidth, 1));
2708
- const rotation = chunkQL7MNEMT_cjs.finite(object.rotation, 0);
2709
- const box = chunkQL7MNEMT_cjs.isometricBounds(object);
2707
+ const strokeWidth = Math.max(0, chunkC25NWWIH_cjs.finite(object.strokeWidth, 1));
2708
+ const rotation = chunkC25NWWIH_cjs.finite(object.rotation, 0);
2709
+ const box = chunkC25NWWIH_cjs.isometricBounds(object);
2710
2710
  const rotationCenter = { x: box.x + box.width / 2, y: box.y + box.height / 2 };
2711
2711
  return {
2712
2712
  object,
@@ -2718,7 +2718,7 @@ function isometricContext(object, index) {
2718
2718
  strokeWidth,
2719
2719
  common: {
2720
2720
  type: "path",
2721
- bounds: chunkQL7MNEMT_cjs.rotatedBounds(box, rotation, strokeWidth + 2),
2721
+ bounds: chunkC25NWWIH_cjs.rotatedBounds(box, rotation, strokeWidth + 2),
2722
2722
  rotation,
2723
2723
  rotationCenter,
2724
2724
  style: {
@@ -2734,13 +2734,13 @@ function faceNode(context, name, offset, points, style) {
2734
2734
  ...context.common,
2735
2735
  id: `isometric-${context.object.id}-${name}`,
2736
2736
  order: context.order + offset,
2737
- d: chunkQL7MNEMT_cjs.roundedPolygonPath([...points], 0),
2737
+ d: chunkC25NWWIH_cjs.roundedPolygonPath([...points], 0),
2738
2738
  style,
2739
2739
  ...FILL_PROP
2740
2740
  };
2741
2741
  }
2742
2742
  function silhouette(object) {
2743
- const faces = chunkQL7MNEMT_cjs.isometricFaces(object);
2743
+ const faces = chunkC25NWWIH_cjs.isometricFaces(object);
2744
2744
  return [faces.top[0], faces.top[1], faces.right[2], faces.front[2], faces.front[3], faces.top[3]];
2745
2745
  }
2746
2746
  function hullNode(context, hullPath, cornerRadius) {
@@ -2757,15 +2757,15 @@ function hullNode(context, hullPath, cornerRadius) {
2757
2757
  depth: Math.max(0, object.depth),
2758
2758
  cornerRadius,
2759
2759
  bounds: box,
2760
- labelOffsetX: chunkQL7MNEMT_cjs.finite(object.labelOffsetX, 0),
2761
- labelOffsetY: chunkQL7MNEMT_cjs.finite(object.labelOffsetY, 0)
2760
+ labelOffsetX: chunkC25NWWIH_cjs.finite(object.labelOffsetX, 0),
2761
+ labelOffsetY: chunkC25NWWIH_cjs.finite(object.labelOffsetY, 0)
2762
2762
  },
2763
2763
  style: { ...common.style, fill: { kind: "none" } }
2764
2764
  };
2765
2765
  }
2766
2766
  function unseenHullNode(context) {
2767
2767
  return {
2768
- ...hullNode(context, chunkQL7MNEMT_cjs.roundedPolygonPath(silhouette(context.object), 0), 0),
2768
+ ...hullNode(context, chunkC25NWWIH_cjs.roundedPolygonPath(silhouette(context.object), 0), 0),
2769
2769
  style: { ...context.common.style, fill: { kind: "none" }, stroke: { kind: "none" } }
2770
2770
  };
2771
2771
  }
@@ -2778,9 +2778,9 @@ var LABEL_PADDING_Y = 3;
2778
2778
  var LABEL_CHAR_WIDTH = 6.5;
2779
2779
  function labelPlacement(context) {
2780
2780
  const { object } = context;
2781
- const anchor = chunkQL7MNEMT_cjs.isometricTopFaceCenter(object);
2782
- const bottomY = anchor.y - LABEL_GAP + chunkQL7MNEMT_cjs.finite(object.labelOffsetY, 0);
2783
- return { anchor, centerX: anchor.x + chunkQL7MNEMT_cjs.finite(object.labelOffsetX, 0), topY: bottomY - LABEL_HEIGHT, bottomY };
2781
+ const anchor = chunkC25NWWIH_cjs.isometricTopFaceCenter(object);
2782
+ const bottomY = anchor.y - LABEL_GAP + chunkC25NWWIH_cjs.finite(object.labelOffsetY, 0);
2783
+ return { anchor, centerX: anchor.x + chunkC25NWWIH_cjs.finite(object.labelOffsetX, 0), topY: bottomY - LABEL_HEIGHT, bottomY };
2784
2784
  }
2785
2785
  function labelTextNode(context, placement, text) {
2786
2786
  const { object, order, rotation, rotationCenter, box } = context;
@@ -2795,7 +2795,7 @@ function labelTextNode(context, placement, text) {
2795
2795
  width: box.width,
2796
2796
  height: LABEL_HEIGHT,
2797
2797
  lines: [text],
2798
- fontFamily: chunkQL7MNEMT_cjs.DEFAULT_FONT,
2798
+ fontFamily: chunkC25NWWIH_cjs.DEFAULT_FONT,
2799
2799
  fontSize: 12,
2800
2800
  fontWeight: "normal",
2801
2801
  color: "#111827",
@@ -2875,7 +2875,7 @@ function groundShadowNode(context, topOutline) {
2875
2875
  }
2876
2876
  const height = Math.max(0, object.height);
2877
2877
  const heightFactor = 0.6 + Math.min(1, height / 150) * 0.7;
2878
- const shadowDrop = height + chunkQL7MNEMT_cjs.finite(object.shadowStyle?.distance, 0);
2878
+ const shadowDrop = height + chunkC25NWWIH_cjs.finite(object.shadowStyle?.distance, 0);
2879
2879
  const contactFootprint = topOutline.map((point) => ({ x: point.x, y: point.y + shadowDrop }));
2880
2880
  const footprintCenter = {
2881
2881
  x: contactFootprint.reduce((sum, point) => sum + point.x, 0) / contactFootprint.length,
@@ -2898,14 +2898,14 @@ function groundShadowNode(context, topOutline) {
2898
2898
  maxX: Math.max(...footprintXs),
2899
2899
  maxY: Math.max(...footprintYs)
2900
2900
  },
2901
- d: chunkQL7MNEMT_cjs.roundedPolygonPath(footprint, 0),
2901
+ d: chunkC25NWWIH_cjs.roundedPolygonPath(footprint, 0),
2902
2902
  rotation,
2903
2903
  rotationCenter,
2904
2904
  style: {
2905
2905
  fill: { kind: "solid", color: object.shadowStyle?.color ?? "#000000" },
2906
2906
  stroke: { kind: "none" },
2907
2907
  opacity: Math.min(1, (object.shadowStyle?.opacity ?? 0.18) * heightFactor),
2908
- blur: chunkQL7MNEMT_cjs.finite(object.shadowStyle?.blur, 8),
2908
+ blur: chunkC25NWWIH_cjs.finite(object.shadowStyle?.blur, 8),
2909
2909
  pointerEvents: "none"
2910
2910
  }
2911
2911
  };
@@ -2919,7 +2919,7 @@ function sphereShadowNode(context, radius) {
2919
2919
  const depth = Math.max(0, object.depth);
2920
2920
  const center = {
2921
2921
  x: box.x + box.width / 2,
2922
- y: object.y + Math.max(0, object.height) + (width + depth) * chunkQL7MNEMT_cjs.AXIS_SIN / 2
2922
+ y: object.y + Math.max(0, object.height) + (width + depth) * chunkC25NWWIH_cjs.AXIS_SIN / 2
2923
2923
  };
2924
2924
  return {
2925
2925
  type: "ellipse",
@@ -2939,7 +2939,7 @@ function sphereShadowNode(context, radius) {
2939
2939
  fill: { kind: "solid", color: object.shadowStyle?.color ?? "#000000" },
2940
2940
  stroke: { kind: "none" },
2941
2941
  opacity: object.shadowStyle?.opacity ?? 0.2,
2942
- blur: chunkQL7MNEMT_cjs.finite(object.shadowStyle?.blur, 8),
2942
+ blur: chunkC25NWWIH_cjs.finite(object.shadowStyle?.blur, 8),
2943
2943
  pointerEvents: "none"
2944
2944
  }
2945
2945
  };
@@ -2949,7 +2949,7 @@ function sphereShadowNode(context, radius) {
2949
2949
  function faceNodes(context, faces, hullClip) {
2950
2950
  const { object, common } = context;
2951
2951
  const noStroke = { ...common.style, stroke: { kind: "none" } };
2952
- const fills = chunkQL7MNEMT_cjs.deriveFaceFills(object.fill ?? "#f8fafc");
2952
+ const fills = chunkC25NWWIH_cjs.deriveFaceFills(object.fill ?? "#f8fafc");
2953
2953
  const face = (name, offset, points, color) => faceNode(context, name, offset, points, { ...noStroke, fill: { kind: "solid", color }, clip: hullClip });
2954
2954
  return [
2955
2955
  face("top", 0, faces.top, fills.topFill),
@@ -2975,9 +2975,9 @@ function seamsNode(context, faces, hullClip) {
2975
2975
  }
2976
2976
  function buildBox(object, index) {
2977
2977
  const context = isometricContext(object, index);
2978
- const faces = chunkQL7MNEMT_cjs.isometricFaces(object);
2979
- const cornerRadius = Math.max(0, chunkQL7MNEMT_cjs.finite(object.cornerRadius, 8));
2980
- const hullPath = chunkQL7MNEMT_cjs.roundedPolygonPath(silhouette(object), cornerRadius);
2978
+ const faces = chunkC25NWWIH_cjs.isometricFaces(object);
2979
+ const cornerRadius = Math.max(0, chunkC25NWWIH_cjs.finite(object.cornerRadius, 8));
2980
+ const hullPath = chunkC25NWWIH_cjs.roundedPolygonPath(silhouette(object), cornerRadius);
2981
2981
  const hullClip = { type: "path", d: hullPath };
2982
2982
  const groundShadow = groundShadowNode(context, faces.top);
2983
2983
  const seams = object.seams === false ? void 0 : seamsNode(context, faces, hullClip);
@@ -2989,7 +2989,7 @@ function buildBox(object, index) {
2989
2989
 
2990
2990
  // src/renderScene/artifacts/isometric/extruded.ts
2991
2991
  function wallNode(context, side, index, fill2) {
2992
- const color = chunkQL7MNEMT_cjs.shadeFill(fill2, side.light);
2992
+ const color = chunkC25NWWIH_cjs.shadeFill(fill2, side.light);
2993
2993
  return faceNode(context, `side-${index}`, 0.05 + index * 1e-3, side.points, {
2994
2994
  ...context.common.style,
2995
2995
  stroke: { kind: "solid", color },
@@ -3014,7 +3014,7 @@ function wallEdgesNode(context, side, index) {
3014
3014
  }
3015
3015
  function buildExtruded(object, index, footprint) {
3016
3016
  const context = isometricContext(object, index);
3017
- const { top, sides } = chunkQL7MNEMT_cjs.extrudeFootprint(object, footprint, Math.max(0, chunkQL7MNEMT_cjs.finite(object.cornerRadius, 0)));
3017
+ const { top, sides } = chunkC25NWWIH_cjs.extrudeFootprint(object, footprint, Math.max(0, chunkC25NWWIH_cjs.finite(object.cornerRadius, 0)));
3018
3018
  const fill2 = object.fill ?? "#f8fafc";
3019
3019
  const groundShadow = groundShadowNode(context, top);
3020
3020
  const topFace = faceNode(context, "top", 0.2, top, { ...context.common.style, fill: { kind: "solid", color: fill2 } });
@@ -3051,9 +3051,9 @@ function buildSphere(object, index) {
3051
3051
  kind: "linear-gradient",
3052
3052
  angle: 135,
3053
3053
  stops: [
3054
- { offset: 0, color: chunkQL7MNEMT_cjs.shadeFill(fill2, 1.22) },
3054
+ { offset: 0, color: chunkC25NWWIH_cjs.shadeFill(fill2, 1.22) },
3055
3055
  { offset: 0.5, color: fill2 },
3056
- { offset: 1, color: chunkQL7MNEMT_cjs.shadeFill(fill2, 0.82) }
3056
+ { offset: 1, color: chunkC25NWWIH_cjs.shadeFill(fill2, 0.82) }
3057
3057
  ]
3058
3058
  }
3059
3059
  },
@@ -3089,12 +3089,12 @@ function buildIsometricObject(object, index) {
3089
3089
  if (object.form === "sphere") {
3090
3090
  return buildSphere(object, index);
3091
3091
  }
3092
- const footprint = chunkQL7MNEMT_cjs.cleanFootprint(object.footprint);
3092
+ const footprint = chunkC25NWWIH_cjs.cleanFootprint(object.footprint);
3093
3093
  return footprint.length > 0 ? buildExtruded(object, index, footprint) : buildBox(object, index);
3094
3094
  }
3095
3095
  function buildIsometricObjects(objects) {
3096
3096
  return objects.flatMap(
3097
- (object, index) => chunkQL7MNEMT_cjs.tag(
3097
+ (object, index) => chunkC25NWWIH_cjs.tag(
3098
3098
  buildIsometricObject(object, index),
3099
3099
  "isometric",
3100
3100
  object.id,
@@ -3123,7 +3123,7 @@ function renderEndpointLabel(context, end, labelIndex) {
3123
3123
  if (!label) {
3124
3124
  return [];
3125
3125
  }
3126
- const fontSize = chunkQL7MNEMT_cjs.finite(context.link.style?.fontSize, 10);
3126
+ const fontSize = chunkC25NWWIH_cjs.finite(context.link.style?.fontSize, 10);
3127
3127
  const position = endpointLabelPosition(context.points, end);
3128
3128
  const width = 90;
3129
3129
  return [
@@ -3137,7 +3137,7 @@ function renderEndpointLabel(context, end, labelIndex) {
3137
3137
  width,
3138
3138
  height: fontSize * 2,
3139
3139
  lines: [label],
3140
- fontFamily: context.link.style?.fontFamily ?? chunkQL7MNEMT_cjs.DEFAULT_FONT,
3140
+ fontFamily: context.link.style?.fontFamily ?? chunkC25NWWIH_cjs.DEFAULT_FONT,
3141
3141
  fontSize,
3142
3142
  fontWeight: "normal",
3143
3143
  color: context.color,
@@ -3167,7 +3167,7 @@ function renderMainLabel(context) {
3167
3167
  width: context.label.width,
3168
3168
  height: context.label.fontSize * 2,
3169
3169
  lines: context.label.lines,
3170
- fontFamily: context.link.style?.fontFamily ?? chunkQL7MNEMT_cjs.DEFAULT_FONT,
3170
+ fontFamily: context.link.style?.fontFamily ?? chunkC25NWWIH_cjs.DEFAULT_FONT,
3171
3171
  fontSize: context.label.fontSize,
3172
3172
  fontWeight: "normal",
3173
3173
  color: context.color,
@@ -3221,10 +3221,10 @@ function linkBounds(points, padding) {
3221
3221
  }
3222
3222
  function labelLayout(link, measureText) {
3223
3223
  const visible = Boolean(link.showText && link.text);
3224
- const fontSize = chunkQL7MNEMT_cjs.finite(link.style?.fontSize, 10);
3224
+ const fontSize = chunkC25NWWIH_cjs.finite(link.style?.fontSize, 10);
3225
3225
  const width = Math.min(250, Math.max(fontSize * 2, (link.text?.length ?? 0) * fontSize * 0.65 + 10));
3226
- const metrics = measureText?.(link.style?.fontFamily ?? chunkQL7MNEMT_cjs.DEFAULT_FONT, fontSize);
3227
- const lines = visible ? chunkQL7MNEMT_cjs.wrapText(link.text ?? "", width, fontSize, metrics) : [];
3226
+ const metrics = measureText?.(link.style?.fontFamily ?? chunkC25NWWIH_cjs.DEFAULT_FONT, fontSize);
3227
+ const lines = visible ? chunkC25NWWIH_cjs.wrapText(link.text ?? "", width, fontSize, metrics) : [];
3228
3228
  return { visible, fontSize, width, height: lines.length * fontSize * 1.4, lines };
3229
3229
  }
3230
3230
  function linkStyle(item, strokeWidth, color, dash) {
@@ -3241,26 +3241,26 @@ function linkStyle(item, strokeWidth, color, dash) {
3241
3241
  dash,
3242
3242
  lineCap: "round",
3243
3243
  lineJoin: "round",
3244
- opacity: chunkQL7MNEMT_cjs.finite(link.style?.opacity, 1),
3244
+ opacity: chunkC25NWWIH_cjs.finite(link.style?.opacity, 1),
3245
3245
  shadow: resolveShadow(link.style?.shadow)
3246
3246
  };
3247
3247
  }
3248
3248
  function createLinkRenderContext(item, index, measureText) {
3249
3249
  const { link, from, to } = item;
3250
3250
  const pathType = link.style?.pathType ?? "orthogonal";
3251
- const { points, segments } = chunkQL7MNEMT_cjs.calculateLinkRoute(link, from, to, pathType);
3252
- const strokeWidth = chunkQL7MNEMT_cjs.finite(link.style?.strokeWidth, 2);
3251
+ const { points, segments } = chunkC25NWWIH_cjs.calculateLinkRoute(link, from, to, pathType);
3252
+ const strokeWidth = chunkC25NWWIH_cjs.finite(link.style?.strokeWidth, 2);
3253
3253
  const color = getLinkStrokeColor(link.style?.color) || "#64748b";
3254
3254
  const label = labelLayout(link, measureText);
3255
3255
  const contentDash = getDashArray(strokeWidth, link.style?.strokeStyle ?? "solid");
3256
- const gap = label.visible && !contentDash ? chunkQL7MNEMT_cjs.labelGapDash(points, pathType, label.width, label.height) : null;
3256
+ const gap = label.visible && !contentDash ? chunkC25NWWIH_cjs.labelGapDash(points, pathType, label.width, label.height) : null;
3257
3257
  const dash = gap ? [gap.dashBefore, gap.gapLength, 1e6] : contentDash;
3258
3258
  return {
3259
3259
  link,
3260
3260
  pathType,
3261
3261
  points,
3262
3262
  segments,
3263
- midpoint: chunkQL7MNEMT_cjs.getLineMidpoint(points, pathType, from, to),
3263
+ midpoint: chunkC25NWWIH_cjs.getLineMidpoint(points, pathType, from, to),
3264
3264
  strokeWidth,
3265
3265
  bounds: linkBounds(points, strokeWidth + 14),
3266
3266
  color,
@@ -3306,7 +3306,7 @@ function pathData2(points, pathType, segments, strokeWidth) {
3306
3306
  return `M ${points[0]} ${points[1]} C ${points[2]} ${points[3]} ${points[4]} ${points[5]} ${points[6]} ${points[7]}`;
3307
3307
  }
3308
3308
  if (pathType === "orthogonal" && segments.length > 0) {
3309
- return chunkQL7MNEMT_cjs.roundedOrthogonalPathData(segments, Math.max(16, strokeWidth * 4));
3309
+ return chunkC25NWWIH_cjs.roundedOrthogonalPathData(segments, Math.max(16, strokeWidth * 4));
3310
3310
  }
3311
3311
  return polylinePathData(points);
3312
3312
  }
@@ -3410,7 +3410,7 @@ function buildLink(item, index, measureText) {
3410
3410
  }
3411
3411
  function buildLinks(links, measureText) {
3412
3412
  return links.flatMap(
3413
- (item, index) => chunkQL7MNEMT_cjs.tag(
3413
+ (item, index) => chunkC25NWWIH_cjs.tag(
3414
3414
  buildLink(item, index, measureText),
3415
3415
  "link",
3416
3416
  item.link.id,
@@ -3425,7 +3425,7 @@ function buildFreeformPath(path, index) {
3425
3425
  if (path.isVisible === false || path.points.length < 2) {
3426
3426
  return [];
3427
3427
  }
3428
- const strokeWidth = chunkQL7MNEMT_cjs.finite(path.strokeWidth, 2);
3428
+ const strokeWidth = chunkC25NWWIH_cjs.finite(path.strokeWidth, 2);
3429
3429
  const extra = strokeWidth + 12;
3430
3430
  const bounds = {
3431
3431
  minX: Math.min(...path.points.map((point) => point.x)) - extra,
@@ -3433,7 +3433,7 @@ function buildFreeformPath(path, index) {
3433
3433
  maxX: Math.max(...path.points.map((point) => point.x)) + extra,
3434
3434
  maxY: Math.max(...path.points.map((point) => point.y)) + extra
3435
3435
  };
3436
- const tension = chunkQL7MNEMT_cjs.finite(path.tension, 0);
3436
+ const tension = chunkC25NWWIH_cjs.finite(path.tension, 0);
3437
3437
  const closed = path.closed === true;
3438
3438
  return [
3439
3439
  {
@@ -3441,7 +3441,7 @@ function buildFreeformPath(path, index) {
3441
3441
  id: `path-${path.id}`,
3442
3442
  order: 3e4 + index,
3443
3443
  bounds,
3444
- d: chunkQL7MNEMT_cjs.freeformPathData({ points: path.points, tension, closed }),
3444
+ d: chunkC25NWWIH_cjs.freeformPathData({ points: path.points, tension, closed }),
3445
3445
  markerStart: path.startMarker,
3446
3446
  markerEnd: path.endMarker,
3447
3447
  detail: {
@@ -3457,13 +3457,13 @@ function buildFreeformPath(path, index) {
3457
3457
  dash: path.dash?.length ? path.dash : void 0,
3458
3458
  lineCap: "round",
3459
3459
  lineJoin: "round",
3460
- opacity: chunkQL7MNEMT_cjs.finite(path.opacity, 1)
3460
+ opacity: chunkC25NWWIH_cjs.finite(path.opacity, 1)
3461
3461
  }
3462
3462
  }
3463
3463
  ];
3464
3464
  }
3465
3465
  function buildFreeformPaths(paths) {
3466
- return paths.flatMap((path, index) => chunkQL7MNEMT_cjs.tag(buildFreeformPath(path, index), "path", path.id, "path", "Path"));
3466
+ return paths.flatMap((path, index) => chunkC25NWWIH_cjs.tag(buildFreeformPath(path, index), "path", path.id, "path", "Path"));
3467
3467
  }
3468
3468
 
3469
3469
  // src/renderScene/artifacts/shape/geometry/base.ts
@@ -3479,7 +3479,7 @@ function shapeNodeBase(context) {
3479
3479
 
3480
3480
  // src/renderScene/artifacts/shape/geometry/simple.ts
3481
3481
  function renderPath(context) {
3482
- const path = chunkQL7MNEMT_cjs.localShapePath(context.shape.shapeType, context.x, context.y, context.width, context.height);
3482
+ const path = chunkC25NWWIH_cjs.localShapePath(context.shape.shapeType, context.x, context.y, context.width, context.height);
3483
3483
  if (!path) {
3484
3484
  return [];
3485
3485
  }
@@ -3495,7 +3495,7 @@ function renderBoundedPath(context) {
3495
3495
  }));
3496
3496
  }
3497
3497
  function renderRectangle(context) {
3498
- const rx = context.shape.shapeType === "pill" ? chunkQL7MNEMT_cjs.pillCornerRadius(context.width, context.height) : context.shape.shapeType === "rounded_rectangle" ? chunkQL7MNEMT_cjs.finite(context.shape.cornerRadius, 8) : 0;
3498
+ const rx = context.shape.shapeType === "pill" ? chunkC25NWWIH_cjs.pillCornerRadius(context.width, context.height) : context.shape.shapeType === "rounded_rectangle" ? chunkC25NWWIH_cjs.finite(context.shape.cornerRadius, 8) : 0;
3499
3499
  return [
3500
3500
  {
3501
3501
  ...shapeNodeBase(context),
@@ -3524,7 +3524,7 @@ function renderSymbol(context) {
3524
3524
  if (!context.shape.symbol || context.shape.symbol.points.length < 2) {
3525
3525
  return renderRectangle(context);
3526
3526
  }
3527
- const tension = chunkQL7MNEMT_cjs.finite(context.shape.symbol.tension, 0);
3527
+ const tension = chunkC25NWWIH_cjs.finite(context.shape.symbol.tension, 0);
3528
3528
  const points = context.shape.symbol.points.map(([x, y]) => ({
3529
3529
  x: context.x + x * context.width,
3530
3530
  y: context.y + y * context.height
@@ -3533,7 +3533,7 @@ function renderSymbol(context) {
3533
3533
  {
3534
3534
  ...shapeNodeBase(context),
3535
3535
  type: "path",
3536
- d: chunkQL7MNEMT_cjs.freeformPathData({ points, tension, closed: true }),
3536
+ d: chunkC25NWWIH_cjs.freeformPathData({ points, tension, closed: true }),
3537
3537
  rotationCenter: context.rotationCenter,
3538
3538
  detail: {
3539
3539
  of: "symbolGeometry",
@@ -3608,7 +3608,7 @@ function renderShapeShaderSurface(context) {
3608
3608
  id: `${context.id}-shader`,
3609
3609
  type: "shader-surface",
3610
3610
  order: context.order,
3611
- bounds: chunkQL7MNEMT_cjs.rotatedBounds(surfaceBounds, context.rotation, 0),
3611
+ bounds: chunkC25NWWIH_cjs.rotatedBounds(surfaceBounds, context.rotation, 0),
3612
3612
  ...surfaceBounds,
3613
3613
  rotation: context.rotation,
3614
3614
  shader: context.shape.shader,
@@ -3678,24 +3678,24 @@ function shapeDash(shape, strokeWidth) {
3678
3678
  }
3679
3679
  function shapeStyle(shape, diagnostics) {
3680
3680
  const defaults = shapeDefaults(shape, diagnostics);
3681
- const strokeWidth = chunkQL7MNEMT_cjs.finite(shape.strokeWidth, defaults.strokeWidth);
3681
+ const strokeWidth = chunkC25NWWIH_cjs.finite(shape.strokeWidth, defaults.strokeWidth);
3682
3682
  const shadow = shape.shadowStyle ?? (shape.hasShadow ? { enabled: true, color: "#000000", opacity: 0.25, blur: 10, angle: 45, distance: 5 } : void 0);
3683
- const angle = chunkQL7MNEMT_cjs.finite(shadow?.angle, 45) * Math.PI / 180;
3683
+ const angle = chunkC25NWWIH_cjs.finite(shadow?.angle, 45) * Math.PI / 180;
3684
3684
  return {
3685
- fill: chunkQL7MNEMT_cjs.paint(shape.fillColor, diagnostics, shape.id),
3686
- stroke: chunkQL7MNEMT_cjs.paint(shape.strokeColor, diagnostics, shape.id),
3685
+ fill: chunkC25NWWIH_cjs.paint(shape.fillColor, diagnostics, shape.id),
3686
+ stroke: chunkC25NWWIH_cjs.paint(shape.strokeColor, diagnostics, shape.id),
3687
3687
  strokeWidth,
3688
3688
  dash: shapeDash(shape, strokeWidth),
3689
3689
  lineCap: shape.strokeStyle === "dotted" ? "round" : "butt",
3690
- opacity: chunkQL7MNEMT_cjs.finite(shape.opacity, defaults.opacity),
3690
+ opacity: chunkC25NWWIH_cjs.finite(shape.opacity, defaults.opacity),
3691
3691
  blur: shape.blur !== void 0 && shape.blur > 0 ? shape.blur : void 0,
3692
3692
  blend: shape.blend,
3693
3693
  shadow: shadow?.enabled ? {
3694
3694
  color: shadow.color ?? "#000000",
3695
- opacity: chunkQL7MNEMT_cjs.finite(shadow.opacity, 0.25),
3696
- blur: chunkQL7MNEMT_cjs.finite(shadow.blur, 10),
3697
- dx: Math.cos(angle) * chunkQL7MNEMT_cjs.finite(shadow.distance, 5),
3698
- dy: Math.sin(angle) * chunkQL7MNEMT_cjs.finite(shadow.distance, 5)
3695
+ opacity: chunkC25NWWIH_cjs.finite(shadow.opacity, 0.25),
3696
+ blur: chunkC25NWWIH_cjs.finite(shadow.blur, 10),
3697
+ dx: Math.cos(angle) * chunkC25NWWIH_cjs.finite(shadow.distance, 5),
3698
+ dy: Math.sin(angle) * chunkC25NWWIH_cjs.finite(shadow.distance, 5)
3699
3699
  } : void 0
3700
3700
  };
3701
3701
  }
@@ -3771,11 +3771,11 @@ function renderShapeText(context, strokeWidth, measureText) {
3771
3771
  if (!shape.text) {
3772
3772
  return null;
3773
3773
  }
3774
- const fontSize = chunkQL7MNEMT_cjs.finite(shape.fontSize, shapeDefaults(shape, []).fontSize);
3774
+ const fontSize = chunkC25NWWIH_cjs.finite(shape.fontSize, shapeDefaults(shape, []).fontSize);
3775
3775
  const padding = shape.isText ? 0 : Math.max(8, strokeWidth * 2);
3776
- const area = shape.shapeType === "person" ? chunkQL7MNEMT_cjs.personLabelArea(x, y, width, height) : { x, y, width, height };
3776
+ const area = shape.shapeType === "person" ? chunkC25NWWIH_cjs.personLabelArea(x, y, width, height) : { x, y, width, height };
3777
3777
  const textWidth = Math.max(0, area.width - padding * 2);
3778
- const fontFamily2 = shape.fontFamily || chunkQL7MNEMT_cjs.DEFAULT_FONT;
3778
+ const fontFamily2 = shape.fontFamily || chunkC25NWWIH_cjs.DEFAULT_FONT;
3779
3779
  const metrics = measureText?.(fontFamily2, fontSize);
3780
3780
  const textNode = {
3781
3781
  type: "text",
@@ -3786,7 +3786,7 @@ function renderShapeText(context, strokeWidth, measureText) {
3786
3786
  y: area.y + padding,
3787
3787
  width: textWidth,
3788
3788
  height: Math.max(0, area.height - padding * 2),
3789
- lines: chunkQL7MNEMT_cjs.wrapText(shape.text, textWidth, fontSize, metrics),
3789
+ lines: chunkC25NWWIH_cjs.wrapText(shape.text, textWidth, fontSize, metrics),
3790
3790
  fontFamily: fontFamily2,
3791
3791
  fontSize,
3792
3792
  fontWeight: shape.fontWeight ?? "normal",
@@ -3794,12 +3794,12 @@ function renderShapeText(context, strokeWidth, measureText) {
3794
3794
  color: shape.textColor || "#111827",
3795
3795
  align: shape.textAlign ?? "center",
3796
3796
  verticalAlign: shape.textVerticalAlign ?? "middle",
3797
- lineHeight: chunkQL7MNEMT_cjs.finite(shape.lineHeight, 1.3),
3797
+ lineHeight: chunkC25NWWIH_cjs.finite(shape.lineHeight, 1.3),
3798
3798
  rotation,
3799
3799
  rotationCenter
3800
3800
  };
3801
3801
  if (hasBoldMarkup(shape.text)) {
3802
- const { measure, spaceWidth } = metrics ?? chunkQL7MNEMT_cjs.heuristicRichMeasure(fontSize);
3802
+ const { measure, spaceWidth } = metrics ?? chunkC25NWWIH_cjs.heuristicRichMeasure(fontSize);
3803
3803
  textNode.richLines = wrapRichText(shape.text, textWidth, measure, spaceWidth);
3804
3804
  }
3805
3805
  return textNode;
@@ -3838,19 +3838,19 @@ function renderDoubleStroke(context, strokeWidth) {
3838
3838
  return nodes;
3839
3839
  }
3840
3840
  function createRenderContext(shape, index, diagnostics) {
3841
- const x = chunkQL7MNEMT_cjs.finite(shape.x, 0);
3842
- const y = chunkQL7MNEMT_cjs.finite(shape.y, 0);
3843
- const width = Math.max(0, chunkQL7MNEMT_cjs.finite(shape.width, 100));
3844
- const height = Math.max(0, chunkQL7MNEMT_cjs.finite(shape.height, 100));
3845
- const rotation = chunkQL7MNEMT_cjs.finite(shape.rotation, 0);
3846
- const strokeWidth = chunkQL7MNEMT_cjs.finite(shape.strokeWidth, 2);
3841
+ const x = chunkC25NWWIH_cjs.finite(shape.x, 0);
3842
+ const y = chunkC25NWWIH_cjs.finite(shape.y, 0);
3843
+ const width = Math.max(0, chunkC25NWWIH_cjs.finite(shape.width, 100));
3844
+ const height = Math.max(0, chunkC25NWWIH_cjs.finite(shape.height, 100));
3845
+ const rotation = chunkC25NWWIH_cjs.finite(shape.rotation, 0);
3846
+ const strokeWidth = chunkC25NWWIH_cjs.finite(shape.strokeWidth, 2);
3847
3847
  return {
3848
3848
  strokeWidth,
3849
3849
  context: {
3850
3850
  shape,
3851
3851
  id: `shape-${shape.id}`,
3852
3852
  order: 1e4 + index,
3853
- bounds: chunkQL7MNEMT_cjs.rotatedBounds({ x, y, width, height }, rotation, strokeWidth + (shape.hasShadow ? 20 : 2)),
3853
+ bounds: chunkC25NWWIH_cjs.rotatedBounds({ x, y, width, height }, rotation, strokeWidth + (shape.hasShadow ? 20 : 2)),
3854
3854
  rotation,
3855
3855
  rotationCenter: { x: x + width / 2, y: y + height / 2 },
3856
3856
  style: shapeStyle(shape, diagnostics),
@@ -3884,7 +3884,7 @@ function buildShape(shape, index, diagnostics, measureText) {
3884
3884
  }
3885
3885
  function buildShapes(shapes, diagnostics, measureText) {
3886
3886
  return shapes.flatMap(
3887
- (shape, index) => chunkQL7MNEMT_cjs.tag(
3887
+ (shape, index) => chunkC25NWWIH_cjs.tag(
3888
3888
  buildShape(shape, index, diagnostics, measureText),
3889
3889
  "shape",
3890
3890
  shape.id,
@@ -3901,7 +3901,7 @@ function buildXAxisLabel(chart, layout, order) {
3901
3901
  return null;
3902
3902
  }
3903
3903
  return {
3904
- ...chunkQL7MNEMT_cjs.chartText({
3904
+ ...chunkC25NWWIH_cjs.chartText({
3905
3905
  role: "axis",
3906
3906
  id: `chart-x-label-${chart.id}`,
3907
3907
  order,
@@ -3911,7 +3911,7 @@ function buildXAxisLabel(chart, layout, order) {
3911
3911
  chart,
3912
3912
  align: "center"
3913
3913
  }),
3914
- prop: chunkQL7MNEMT_cjs.axisLabelProp("x")
3914
+ prop: chunkC25NWWIH_cjs.axisLabelProp("x")
3915
3915
  };
3916
3916
  }
3917
3917
  function buildYAxisLabel(chart, layout, order) {
@@ -3919,7 +3919,7 @@ function buildYAxisLabel(chart, layout, order) {
3919
3919
  return null;
3920
3920
  }
3921
3921
  return {
3922
- ...chunkQL7MNEMT_cjs.chartText({
3922
+ ...chunkC25NWWIH_cjs.chartText({
3923
3923
  role: "axis",
3924
3924
  id: `chart-y-label-${chart.id}`,
3925
3925
  order,
@@ -3935,7 +3935,7 @@ function buildYAxisLabel(chart, layout, order) {
3935
3935
  align: "center",
3936
3936
  rotation: -90
3937
3937
  }),
3938
- prop: chunkQL7MNEMT_cjs.axisLabelProp("y")
3938
+ prop: chunkC25NWWIH_cjs.axisLabelProp("y")
3939
3939
  };
3940
3940
  }
3941
3941
  function buildAxisLabels(chart, layout, order) {
@@ -3958,7 +3958,7 @@ function buildBoxplotSeriesYAxisTicks(chart, layout, order) {
3958
3958
  return chart.series.map((series, index) => {
3959
3959
  const centerY = layout.plot.y + (index + 0.5) * slotWidth;
3960
3960
  return {
3961
- ...chunkQL7MNEMT_cjs.chartText({
3961
+ ...chunkC25NWWIH_cjs.chartText({
3962
3962
  role: "axis",
3963
3963
  id: `chart-y-tick-${chart.id}-${index}`,
3964
3964
  order: order + index,
@@ -3968,7 +3968,7 @@ function buildBoxplotSeriesYAxisTicks(chart, layout, order) {
3968
3968
  chart,
3969
3969
  align: "right"
3970
3970
  }),
3971
- prop: chunkQL7MNEMT_cjs.seriesLabelProp(series.id)
3971
+ prop: chunkC25NWWIH_cjs.seriesLabelProp(series.id)
3972
3972
  };
3973
3973
  });
3974
3974
  }
@@ -3994,7 +3994,7 @@ function isStackedLegendPosition(position) {
3994
3994
  return position === "bottomLeft" || position === "bottomRight";
3995
3995
  }
3996
3996
  function legendItemWidths(chart) {
3997
- return legendSeries(chart).map((item) => Math.max(42, item.label.length * chunkQL7MNEMT_cjs.finite(chart.fontSize, 12) * 0.58 + 22));
3997
+ return legendSeries(chart).map((item) => Math.max(42, item.label.length * chunkC25NWWIH_cjs.finite(chart.fontSize, 12) * 0.58 + 22));
3998
3998
  }
3999
3999
  function stackedLegendColumnWidth(chart) {
4000
4000
  const widths = legendItemWidths(chart);
@@ -4047,9 +4047,9 @@ function renderLegendItem(render2, item) {
4047
4047
  }
4048
4048
  function createLegendSwatch(render2, item) {
4049
4049
  const { chart, bounds, diagnostics } = render2;
4050
- const fallback = chunkQL7MNEMT_cjs.CHART_COLORS[item.seriesIndex % chunkQL7MNEMT_cjs.CHART_COLORS.length];
4050
+ const fallback = chunkC25NWWIH_cjs.CHART_COLORS[item.seriesIndex % chunkC25NWWIH_cjs.CHART_COLORS.length];
4051
4051
  const solidOnly = chart.chartType === "line";
4052
- const color = solidOnly ? chunkQL7MNEMT_cjs.representativeColor(item.series.color, fallback) : item.series.color ?? fallback;
4052
+ const color = solidOnly ? chunkC25NWWIH_cjs.representativeColor(item.series.color, fallback) : item.series.color ?? fallback;
4053
4053
  return {
4054
4054
  type: "rect",
4055
4055
  id: `chart-legend-swatch-${chart.id}-${item.series.id}`,
@@ -4060,16 +4060,16 @@ function createLegendSwatch(render2, item) {
4060
4060
  width: 10,
4061
4061
  height: 10,
4062
4062
  rx: 3,
4063
- prop: chunkQL7MNEMT_cjs.seriesColorProp(item.series.id),
4063
+ prop: chunkC25NWWIH_cjs.seriesColorProp(item.series.id),
4064
4064
  propKind: "color",
4065
4065
  propSolidOnly: solidOnly,
4066
- style: { fill: chunkQL7MNEMT_cjs.paint(color, diagnostics, chart.id) }
4066
+ style: { fill: chunkC25NWWIH_cjs.paint(color, diagnostics, chart.id) }
4067
4067
  };
4068
4068
  }
4069
4069
  function createLegendLabel(render2, item) {
4070
4070
  const { chart, bounds } = render2;
4071
4071
  return {
4072
- ...chunkQL7MNEMT_cjs.chartText({
4072
+ ...chunkC25NWWIH_cjs.chartText({
4073
4073
  role: "legend",
4074
4074
  id: `chart-legend-${chart.id}-${item.series.id}`,
4075
4075
  order: item.order + 1,
@@ -4078,7 +4078,7 @@ function createLegendLabel(render2, item) {
4078
4078
  text: item.series.label,
4079
4079
  chart
4080
4080
  }),
4081
- prop: chunkQL7MNEMT_cjs.seriesLabelProp(item.series.id)
4081
+ prop: chunkC25NWWIH_cjs.seriesLabelProp(item.series.id)
4082
4082
  };
4083
4083
  }
4084
4084
 
@@ -4097,19 +4097,19 @@ function hasCartesianDecorations(chart) {
4097
4097
  return !CHARTS_WITHOUT_CARTESIAN_DECORATIONS.has(chart.chartType);
4098
4098
  }
4099
4099
  function tickOffset(chart) {
4100
- return hasCartesianDecorations(chart) ? Math.max(0, chunkQL7MNEMT_cjs.finite(chart.tickLength, 0)) : 0;
4100
+ return hasCartesianDecorations(chart) ? Math.max(0, chunkC25NWWIH_cjs.finite(chart.tickLength, 0)) : 0;
4101
4101
  }
4102
4102
  function xLabelOffset(chart) {
4103
- return tickOffset(chart) + (hasCartesianDecorations(chart) ? Math.max(0, chunkQL7MNEMT_cjs.finite(chart.xLabelGap, 0)) : 0);
4103
+ return tickOffset(chart) + (hasCartesianDecorations(chart) ? Math.max(0, chunkC25NWWIH_cjs.finite(chart.xLabelGap, 0)) : 0);
4104
4104
  }
4105
4105
  function yLabelOffset(chart) {
4106
- return tickOffset(chart) + (hasCartesianDecorations(chart) ? Math.max(0, chunkQL7MNEMT_cjs.finite(chart.yLabelGap, 0)) : 0);
4106
+ return tickOffset(chart) + (hasCartesianDecorations(chart) ? Math.max(0, chunkC25NWWIH_cjs.finite(chart.yLabelGap, 0)) : 0);
4107
4107
  }
4108
4108
  function isHorizontalBoxplot(chart) {
4109
4109
  return chart.chartType === "boxplot" && chart.config?.orientation === "horizontal";
4110
4110
  }
4111
4111
  function boxplotCategoryLabelWidth(chart) {
4112
- const fontSize = chunkQL7MNEMT_cjs.finite(chart.fontSize, 12);
4112
+ const fontSize = chunkC25NWWIH_cjs.finite(chart.fontSize, 12);
4113
4113
  const longest = Math.max(0, ...chart.series.map((series) => (series.label || series.id).length));
4114
4114
  return longest * fontSize * 0.58 + 16;
4115
4115
  }
@@ -4121,18 +4121,18 @@ function treemapSideLegendSide(chart, showLegend) {
4121
4121
  return chart.legendPosition === "left" ? "left" : chart.legendPosition === "right" ? "right" : null;
4122
4122
  }
4123
4123
  function barCategoryLabelWidth(chart) {
4124
- const fontSize = chunkQL7MNEMT_cjs.finite(chart.axisFontSize ?? chart.fontSize, 12);
4124
+ const fontSize = chunkC25NWWIH_cjs.finite(chart.axisFontSize ?? chart.fontSize, 12);
4125
4125
  const categories = chart.config?.categories ?? [];
4126
4126
  return Math.max(0, ...categories.map((category) => category.length)) * fontSize * 0.58 + 16;
4127
4127
  }
4128
4128
  function leftLabelWidth(chart) {
4129
- if (chart.axisLabelSpace && chart.axisLabelSpace > 0 && (isHorizontalBoxplot(chart) || chunkQL7MNEMT_cjs.isHorizontalBar(chart))) {
4129
+ if (chart.axisLabelSpace && chart.axisLabelSpace > 0 && (isHorizontalBoxplot(chart) || chunkC25NWWIH_cjs.isHorizontalBar(chart))) {
4130
4130
  return chart.axisLabelSpace;
4131
4131
  }
4132
4132
  if (isHorizontalBoxplot(chart)) {
4133
4133
  return boxplotCategoryLabelWidth(chart);
4134
4134
  }
4135
- if (chunkQL7MNEMT_cjs.isHorizontalBar(chart)) {
4135
+ if (chunkC25NWWIH_cjs.isHorizontalBar(chart)) {
4136
4136
  return chart.categoryAlign === "left" || chart.categoryAlign === "inside" ? 20 : barCategoryLabelWidth(chart);
4137
4137
  }
4138
4138
  if (chart.showValueAxis === false) {
@@ -4141,12 +4141,12 @@ function leftLabelWidth(chart) {
4141
4141
  return chart.axisY.label ? 60 : 46;
4142
4142
  }
4143
4143
  function tiltedBottomRoom(chart) {
4144
- const tilt = chunkQL7MNEMT_cjs.labelTilt(chart);
4144
+ const tilt = chunkC25NWWIH_cjs.labelTilt(chart);
4145
4145
  if (tilt <= 0) {
4146
4146
  return 0;
4147
4147
  }
4148
- const labels = chart.chartType === "bar" && !chunkQL7MNEMT_cjs.isHorizontalBar(chart) ? chart.config?.categories ?? [] : chart.chartType === "boxplot" && !isHorizontalBoxplot(chart) ? chart.series.map((series) => series.label || series.id) : [];
4149
- return labels.length > 0 ? Math.max(0, chunkQL7MNEMT_cjs.tiltedLabelRoom(chart, labels, tilt) - 18) : 0;
4148
+ const labels = chart.chartType === "bar" && !chunkC25NWWIH_cjs.isHorizontalBar(chart) ? chart.config?.categories ?? [] : chart.chartType === "boxplot" && !isHorizontalBoxplot(chart) ? chart.series.map((series) => series.label || series.id) : [];
4149
+ return labels.length > 0 ? Math.max(0, chunkC25NWWIH_cjs.tiltedLabelRoom(chart, labels, tilt) - 18) : 0;
4150
4150
  }
4151
4151
  function decorations(chart) {
4152
4152
  const showLabels = chart.showAxisLabels !== false;
@@ -4162,17 +4162,17 @@ function decorations(chart) {
4162
4162
  const padLeft = tickY + (showLabels ? leftLabelWidth(chart) : 12) + (legendPosition === "bottomLeft" ? sideColumnWidth : 0) + (treemapSide === "left" ? TREEMAP_SIDE_LEGEND_WIDTH : 0);
4163
4163
  const padRight = 24 + (legendPosition === "bottomRight" ? sideColumnWidth : 0) + (treemapSide === "right" ? TREEMAP_SIDE_LEGEND_WIDTH : 0);
4164
4164
  const valueRow = chart.chartType === "bar" && chart.config?.showBarLabels === true && chart.config.barLabelPosition === "axis";
4165
- const horizontalValueAxis = chunkQL7MNEMT_cjs.isHorizontalBar(chart) && chart.showValueAxis !== false;
4166
- const basePadBottom = showLabels ? chunkQL7MNEMT_cjs.isHorizontalBar(chart) ? horizontalValueAxis ? 34 : 12 : (chart.axisX.label ? 52 : 34) + (valueRow ? 18 : 0) : 12;
4165
+ const horizontalValueAxis = chunkC25NWWIH_cjs.isHorizontalBar(chart) && chart.showValueAxis !== false;
4166
+ const basePadBottom = showLabels ? chunkC25NWWIH_cjs.isHorizontalBar(chart) ? horizontalValueAxis ? 34 : 12 : (chart.axisX.label ? 52 : 34) + (valueRow ? 18 : 0) : 12;
4167
4167
  const hasColorBar = chart.chartType === "field" && showLegend && Boolean(chart.config?.scale?.stops.length);
4168
4168
  const legendAtBottomRow = hasLegendItems && !legendAtTop && !legendStacked;
4169
4169
  const padBottom = tickX + basePadBottom + (showLabels ? tiltedBottomRoom(chart) : 0) + (hasColorBar ? 44 : 0) + (legendAtBottomRow ? 16 + LEGEND_ROW_HEIGHT : 0);
4170
- const titleHeight = chart.title ? Math.max(44, 20 + chunkQL7MNEMT_cjs.finite(chart.titleSize, 14) * 1.6) : 0;
4170
+ const titleHeight = chart.title ? Math.max(44, 20 + chunkC25NWWIH_cjs.finite(chart.titleSize, 14) * 1.6) : 0;
4171
4171
  const padTop = titleHeight || (legendAtTop && hasLegendItems ? 44 : 24);
4172
4172
  return {
4173
- bounds: chunkQL7MNEMT_cjs.boxBounds(
4173
+ bounds: chunkC25NWWIH_cjs.boxBounds(
4174
4174
  { x: chart.x, y: chart.y, width: chart.width, height: chart.height },
4175
- chunkQL7MNEMT_cjs.finite(chart.strokeWidth, 1) + 2
4175
+ chunkC25NWWIH_cjs.finite(chart.strokeWidth, 1) + 2
4176
4176
  ),
4177
4177
  plot: {
4178
4178
  x: chart.x + padLeft,
@@ -4194,26 +4194,26 @@ function categoryLabels(chart, count) {
4194
4194
  return Array.from({ length: count }, (_value, index) => String(index + 1));
4195
4195
  }
4196
4196
  function buildCategoricalXAxisTicks(chart, layout, order) {
4197
- const count = chunkQL7MNEMT_cjs.barCategoryCount(chart);
4197
+ const count = chunkC25NWWIH_cjs.barCategoryCount(chart);
4198
4198
  const slotWidth = layout.plot.width / count;
4199
4199
  const labels = categoryLabels(chart, count);
4200
4200
  const editable = Boolean(chart.config?.categories?.length);
4201
- const tilt = chunkQL7MNEMT_cjs.labelTilt(chart);
4201
+ const tilt = chunkC25NWWIH_cjs.labelTilt(chart);
4202
4202
  const left = chart.categoryAlign === "left";
4203
4203
  const groupGap = left ? Math.min(
4204
- Math.max(0, chunkQL7MNEMT_cjs.finite(chart.config?.barGroupGap, 8)),
4204
+ Math.max(0, chunkC25NWWIH_cjs.finite(chart.config?.barGroupGap, 8)),
4205
4205
  Math.max(0, slotWidth - 1)
4206
4206
  ) : 0;
4207
4207
  return Array.from({ length: count }, (_value, index) => {
4208
4208
  const centerX = layout.plot.x + (index + 0.5) * slotWidth;
4209
4209
  if (tilt > 0) {
4210
4210
  const text = labels[index] ?? String(index + 1);
4211
- const { frame, rotation } = chunkQL7MNEMT_cjs.labelBelowFrame(chart, text, tilt, {
4211
+ const { frame, rotation } = chunkC25NWWIH_cjs.labelBelowFrame(chart, text, tilt, {
4212
4212
  x: centerX,
4213
4213
  y: layout.plot.y + layout.plot.height + 4 + xLabelOffset(chart)
4214
4214
  });
4215
4215
  return {
4216
- ...chunkQL7MNEMT_cjs.chartText({
4216
+ ...chunkC25NWWIH_cjs.chartText({
4217
4217
  role: "axis",
4218
4218
  id: `chart-x-tick-${chart.id}-${index}`,
4219
4219
  order: order + index,
@@ -4224,11 +4224,11 @@ function buildCategoricalXAxisTicks(chart, layout, order) {
4224
4224
  align: "right",
4225
4225
  rotation
4226
4226
  }),
4227
- prop: editable ? chunkQL7MNEMT_cjs.categoryProp(index) : void 0
4227
+ prop: editable ? chunkC25NWWIH_cjs.categoryProp(index) : void 0
4228
4228
  };
4229
4229
  }
4230
4230
  return {
4231
- ...chunkQL7MNEMT_cjs.chartText({
4231
+ ...chunkC25NWWIH_cjs.chartText({
4232
4232
  role: "axis",
4233
4233
  id: `chart-x-tick-${chart.id}-${index}`,
4234
4234
  order: order + index,
@@ -4243,24 +4243,24 @@ function buildCategoricalXAxisTicks(chart, layout, order) {
4243
4243
  chart,
4244
4244
  align: left ? "left" : "center"
4245
4245
  }),
4246
- prop: editable ? chunkQL7MNEMT_cjs.categoryProp(index) : void 0
4246
+ prop: editable ? chunkC25NWWIH_cjs.categoryProp(index) : void 0
4247
4247
  };
4248
4248
  });
4249
4249
  }
4250
4250
  function buildSeriesXAxisTicks(chart, layout, order) {
4251
4251
  const count = Math.max(1, chart.series.length);
4252
4252
  const slotWidth = layout.plot.width / count;
4253
- const tilt = chunkQL7MNEMT_cjs.labelTilt(chart);
4253
+ const tilt = chunkC25NWWIH_cjs.labelTilt(chart);
4254
4254
  return chart.series.map((series, index) => {
4255
4255
  const centerX = layout.plot.x + (index + 0.5) * slotWidth;
4256
4256
  if (tilt > 0) {
4257
4257
  const text = series.label || series.id;
4258
- const { frame, rotation } = chunkQL7MNEMT_cjs.labelBelowFrame(chart, text, tilt, {
4258
+ const { frame, rotation } = chunkC25NWWIH_cjs.labelBelowFrame(chart, text, tilt, {
4259
4259
  x: centerX,
4260
4260
  y: layout.plot.y + layout.plot.height + 4 + xLabelOffset(chart)
4261
4261
  });
4262
4262
  return {
4263
- ...chunkQL7MNEMT_cjs.chartText({
4263
+ ...chunkC25NWWIH_cjs.chartText({
4264
4264
  role: "axis",
4265
4265
  id: `chart-x-tick-${chart.id}-${index}`,
4266
4266
  order: order + index,
@@ -4271,11 +4271,11 @@ function buildSeriesXAxisTicks(chart, layout, order) {
4271
4271
  align: "right",
4272
4272
  rotation
4273
4273
  }),
4274
- prop: chunkQL7MNEMT_cjs.seriesLabelProp(series.id)
4274
+ prop: chunkC25NWWIH_cjs.seriesLabelProp(series.id)
4275
4275
  };
4276
4276
  }
4277
4277
  return {
4278
- ...chunkQL7MNEMT_cjs.chartText({
4278
+ ...chunkC25NWWIH_cjs.chartText({
4279
4279
  role: "axis",
4280
4280
  id: `chart-x-tick-${chart.id}-${index}`,
4281
4281
  order: order + index,
@@ -4290,16 +4290,16 @@ function buildSeriesXAxisTicks(chart, layout, order) {
4290
4290
  chart,
4291
4291
  align: "center"
4292
4292
  }),
4293
- prop: chunkQL7MNEMT_cjs.seriesLabelProp(series.id)
4293
+ prop: chunkC25NWWIH_cjs.seriesLabelProp(series.id)
4294
4294
  };
4295
4295
  });
4296
4296
  }
4297
4297
 
4298
4298
  // src/renderScene/charts/decorations/numericXAxis.ts
4299
4299
  function buildNumericXAxisTicks(chart, layout, order) {
4300
- return chunkQL7MNEMT_cjs.chartTicks(chart.axisX).map((tick, index) => {
4301
- const x = layout.plot.x + chunkQL7MNEMT_cjs.mapChartValue(tick, chart.axisX, layout.plot.width);
4302
- return chunkQL7MNEMT_cjs.chartText({
4300
+ return chunkC25NWWIH_cjs.chartTicks(chart.axisX).map((tick, index) => {
4301
+ const x = layout.plot.x + chunkC25NWWIH_cjs.mapChartValue(tick, chart.axisX, layout.plot.width);
4302
+ return chunkC25NWWIH_cjs.chartText({
4303
4303
  role: "axis",
4304
4304
  id: `chart-x-tick-${chart.id}-${tick}`,
4305
4305
  order: order + index,
@@ -4314,9 +4314,9 @@ function buildNumericXAxisTicks(chart, layout, order) {
4314
4314
 
4315
4315
  // src/renderScene/charts/decorations/numericYAxis.ts
4316
4316
  function buildNumericYAxisTicks(chart, layout, order) {
4317
- return chunkQL7MNEMT_cjs.chartTicks(chart.axisY).map((tick, index) => {
4318
- const y = layout.plot.y + layout.plot.height - chunkQL7MNEMT_cjs.mapChartValue(tick, chart.axisY, layout.plot.height);
4319
- return chunkQL7MNEMT_cjs.chartText({
4317
+ return chunkC25NWWIH_cjs.chartTicks(chart.axisY).map((tick, index) => {
4318
+ const y = layout.plot.y + layout.plot.height - chunkC25NWWIH_cjs.mapChartValue(tick, chart.axisY, layout.plot.height);
4319
+ return chunkC25NWWIH_cjs.chartText({
4320
4320
  role: "axis",
4321
4321
  id: `chart-y-tick-${chart.id}-${tick}`,
4322
4322
  order: order + index,
@@ -4351,10 +4351,10 @@ function buildYAxisTicks(chart, layout, order) {
4351
4351
  function xTickPositions(chart, layout) {
4352
4352
  const { plot } = layout;
4353
4353
  if (chart.chartType === "bar") {
4354
- const count = chunkQL7MNEMT_cjs.barCategoryCount(chart);
4354
+ const count = chunkC25NWWIH_cjs.barCategoryCount(chart);
4355
4355
  return Array.from({ length: count }, (_value, index) => plot.x + (index + 0.5) * plot.width / count);
4356
4356
  }
4357
- return chunkQL7MNEMT_cjs.chartTicks(chart.axisX).map((tick) => plot.x + chunkQL7MNEMT_cjs.mapChartValue(tick, chart.axisX, plot.width));
4357
+ return chunkC25NWWIH_cjs.chartTicks(chart.axisX).map((tick) => plot.x + chunkC25NWWIH_cjs.mapChartValue(tick, chart.axisX, plot.width));
4358
4358
  }
4359
4359
  function axisLineDash(chart, width) {
4360
4360
  if (chart.axisLineStyle === "dashed") {
@@ -4363,8 +4363,8 @@ function axisLineDash(chart, width) {
4363
4363
  return chart.axisLineStyle === "dotted" ? { dash: [0.1, width * 3], lineCap: "round" } : {};
4364
4364
  }
4365
4365
  function buildAxisLines(chart, layout, order) {
4366
- const lineWidth = chunkQL7MNEMT_cjs.finite(chart.axisLineWidth, 0);
4367
- const tickLength = chunkQL7MNEMT_cjs.finite(chart.tickLength, 0);
4366
+ const lineWidth = chunkC25NWWIH_cjs.finite(chart.axisLineWidth, 0);
4367
+ const tickLength = chunkC25NWWIH_cjs.finite(chart.tickLength, 0);
4368
4368
  if (lineWidth <= 0 && tickLength <= 0) {
4369
4369
  return [];
4370
4370
  }
@@ -4385,20 +4385,20 @@ function buildAxisLines(chart, layout, order) {
4385
4385
  }
4386
4386
  add("line-x", `M ${plot.x} ${bottom} L ${plot.x + plot.width} ${bottom}`);
4387
4387
  }
4388
- if (tickLength > 0 && chunkQL7MNEMT_cjs.isHorizontalBar(chart)) {
4389
- chunkQL7MNEMT_cjs.chartTicks(chart.axisY).forEach((tick) => {
4390
- const x = plot.x + chunkQL7MNEMT_cjs.mapChartValue(tick, chart.axisY, plot.width);
4388
+ if (tickLength > 0 && chunkC25NWWIH_cjs.isHorizontalBar(chart)) {
4389
+ chunkC25NWWIH_cjs.chartTicks(chart.axisY).forEach((tick) => {
4390
+ const x = plot.x + chunkC25NWWIH_cjs.mapChartValue(tick, chart.axisY, plot.width);
4391
4391
  add(`tick-v-${tick}`, `M ${x} ${bottom} L ${x} ${bottom + tickLength}`);
4392
4392
  });
4393
- const rows = chunkQL7MNEMT_cjs.horizontalRows(chart, plot);
4393
+ const rows = chunkC25NWWIH_cjs.horizontalRows(chart, plot);
4394
4394
  for (let index = 0; index < rows.count; index++) {
4395
- const y = chunkQL7MNEMT_cjs.rowTop(rows, plot, index) + rows.labelRow + rows.barsHeight / 2;
4395
+ const y = chunkC25NWWIH_cjs.rowTop(rows, plot, index) + rows.labelRow + rows.barsHeight / 2;
4396
4396
  add(`tick-c-${index}`, `M ${plot.x - tickLength} ${y} L ${plot.x} ${y}`);
4397
4397
  }
4398
4398
  }
4399
- if (tickLength > 0 && !isHorizontalBoxplot2(chart) && !chunkQL7MNEMT_cjs.isHorizontalBar(chart)) {
4400
- chunkQL7MNEMT_cjs.chartTicks(chart.axisY).forEach((tick) => {
4401
- const y = bottom - chunkQL7MNEMT_cjs.mapChartValue(tick, chart.axisY, plot.height);
4399
+ if (tickLength > 0 && !isHorizontalBoxplot2(chart) && !chunkC25NWWIH_cjs.isHorizontalBar(chart)) {
4400
+ chunkC25NWWIH_cjs.chartTicks(chart.axisY).forEach((tick) => {
4401
+ const y = bottom - chunkC25NWWIH_cjs.mapChartValue(tick, chart.axisY, plot.height);
4402
4402
  add(`tick-y-${tick}`, `M ${plot.x - tickLength} ${y} L ${plot.x} ${y}`);
4403
4403
  });
4404
4404
  xTickPositions(chart, layout).forEach((x, index) => {
@@ -4413,14 +4413,14 @@ function categoryNames(chart, count) {
4413
4413
  }
4414
4414
  function buildHorizontalBarAxes(chart, layout, order) {
4415
4415
  const { plot, bounds } = layout;
4416
- const rows = chunkQL7MNEMT_cjs.horizontalRows(chart, plot);
4416
+ const rows = chunkC25NWWIH_cjs.horizontalRows(chart, plot);
4417
4417
  const above = chart.categoryAlign === "left";
4418
4418
  const inside = chart.categoryAlign === "inside";
4419
4419
  const editable = Boolean(chart.config?.categories?.length);
4420
4420
  const nodes = categoryNames(chart, rows.count).map((name, index) => {
4421
- const top = chunkQL7MNEMT_cjs.rowTop(rows, plot, index);
4421
+ const top = chunkC25NWWIH_cjs.rowTop(rows, plot, index);
4422
4422
  return {
4423
- ...chunkQL7MNEMT_cjs.chartText({
4423
+ ...chunkC25NWWIH_cjs.chartText({
4424
4424
  role: "axis",
4425
4425
  id: `chart-y-category-${chart.id}-${index}`,
4426
4426
  order: order + index,
@@ -4430,19 +4430,19 @@ function buildHorizontalBarAxes(chart, layout, order) {
4430
4430
  chart,
4431
4431
  align: above || inside ? "left" : "right"
4432
4432
  }),
4433
- prop: editable ? chunkQL7MNEMT_cjs.categoryProp(index) : void 0
4433
+ prop: editable ? chunkC25NWWIH_cjs.categoryProp(index) : void 0
4434
4434
  };
4435
4435
  });
4436
4436
  if (chart.showValueAxis !== false) {
4437
- chunkQL7MNEMT_cjs.chartTicks(chart.axisY).forEach((tick, index) => {
4438
- const x = plot.x + chunkQL7MNEMT_cjs.mapChartValue(tick, chart.axisY, plot.width);
4437
+ chunkC25NWWIH_cjs.chartTicks(chart.axisY).forEach((tick, index) => {
4438
+ const x = plot.x + chunkC25NWWIH_cjs.mapChartValue(tick, chart.axisY, plot.width);
4439
4439
  nodes.push(
4440
- chunkQL7MNEMT_cjs.chartText({
4440
+ chunkC25NWWIH_cjs.chartText({
4441
4441
  role: "axis",
4442
4442
  id: `chart-x-tick-${chart.id}-${tick}`,
4443
4443
  order: order + rows.count + index,
4444
4444
  bounds,
4445
- frame: { x: x - 20, y: plot.y + plot.height + 4 + chunkQL7MNEMT_cjs.finite(chart.tickLength, 0), width: 40, height: 18 },
4445
+ frame: { x: x - 20, y: plot.y + plot.height + 4 + chunkC25NWWIH_cjs.finite(chart.tickLength, 0), width: 40, height: 18 },
4446
4446
  text: String(tick),
4447
4447
  chart,
4448
4448
  align: "center"
@@ -4461,7 +4461,7 @@ function buildChartAxes(chart, layout, order) {
4461
4461
  return lines;
4462
4462
  }
4463
4463
  order += lines.length;
4464
- if (chunkQL7MNEMT_cjs.isHorizontalBar(chart)) {
4464
+ if (chunkC25NWWIH_cjs.isHorizontalBar(chart)) {
4465
4465
  return [...lines, ...buildHorizontalBarAxes(chart, layout, order)];
4466
4466
  }
4467
4467
  const xTicks = buildXAxisTicks(chart, layout, order);
@@ -4539,7 +4539,7 @@ function buildCircularChartGrid(chart, plot, bounds, order) {
4539
4539
  const centerX = plot.x + plot.width / 2;
4540
4540
  const centerY = plot.y + plot.height / 2;
4541
4541
  const radius = Math.max(0, Math.min(plot.width, plot.height) / 2);
4542
- const width = chunkQL7MNEMT_cjs.finite(chart.gridWidth, 1);
4542
+ const width = chunkC25NWWIH_cjs.finite(chart.gridWidth, 1);
4543
4543
  if (chart.gridLineStyle === "dotted") {
4544
4544
  return buildDottedCircularGrid(chart, bounds, order, centerX, centerY, radius, width);
4545
4545
  }
@@ -4550,7 +4550,7 @@ function buildCircularChartGrid(chart, plot, bounds, order) {
4550
4550
  ...gridLineDashStyle(chart, width)
4551
4551
  };
4552
4552
  const nodes = [];
4553
- chunkQL7MNEMT_cjs.chartTicks(chart.axisY).filter((tick) => tick > chart.axisY.min).forEach((tick) => {
4553
+ chunkC25NWWIH_cjs.chartTicks(chart.axisY).filter((tick) => tick > chart.axisY.min).forEach((tick) => {
4554
4554
  const ringRadius = radius * ringRatio(chart, tick);
4555
4555
  nodes.push({
4556
4556
  type: "ellipse",
@@ -4564,8 +4564,8 @@ function buildCircularChartGrid(chart, plot, bounds, order) {
4564
4564
  style
4565
4565
  });
4566
4566
  });
4567
- chunkQL7MNEMT_cjs.chartTicks(chart.axisX).forEach((tick) => {
4568
- const angle = chunkQL7MNEMT_cjs.angleForAxisValue(chart.axisX.min, chart.axisX.max, tick);
4567
+ chunkC25NWWIH_cjs.chartTicks(chart.axisX).forEach((tick) => {
4568
+ const angle = chunkC25NWWIH_cjs.angleForAxisValue(chart.axisX.min, chart.axisX.max, tick);
4569
4569
  const edgeX = centerX + Math.cos(angle) * radius;
4570
4570
  const edgeY = centerY + Math.sin(angle) * radius;
4571
4571
  nodes.push({
@@ -4580,13 +4580,13 @@ function buildCircularChartGrid(chart, plot, bounds, order) {
4580
4580
  return nodes;
4581
4581
  }
4582
4582
  function buildDottedCircularGrid(chart, bounds, order, centerX, centerY, radius, width) {
4583
- const yTicks = chunkQL7MNEMT_cjs.chartTicks(chart.axisY).filter((tick) => tick > chart.axisY.min);
4584
- const xTicks = chunkQL7MNEMT_cjs.chartTicks(chart.axisX);
4583
+ const yTicks = chunkC25NWWIH_cjs.chartTicks(chart.axisY).filter((tick) => tick > chart.axisY.min);
4584
+ const xTicks = chunkC25NWWIH_cjs.chartTicks(chart.axisX);
4585
4585
  const nodes = [];
4586
4586
  yTicks.forEach((yTick) => {
4587
4587
  const ringRadius = radius * ringRatio(chart, yTick);
4588
4588
  xTicks.forEach((xTick) => {
4589
- const angle = chunkQL7MNEMT_cjs.angleForAxisValue(chart.axisX.min, chart.axisX.max, xTick);
4589
+ const angle = chunkC25NWWIH_cjs.angleForAxisValue(chart.axisX.min, chart.axisX.max, xTick);
4590
4590
  const x = centerX + Math.cos(angle) * ringRadius;
4591
4591
  const y = centerY + Math.sin(angle) * ringRadius;
4592
4592
  const id = `chart-grid-dot-${chart.id}-${xTick}-${yTick}`;
@@ -4608,8 +4608,8 @@ function buildChartGrid(chart, plot, bounds, order) {
4608
4608
  if (chart.gridShape === "circle" && CIRCULAR_GRID_CHART_TYPES.has(chart.chartType)) {
4609
4609
  return buildCircularChartGrid(chart, plot, bounds, order);
4610
4610
  }
4611
- const width = chunkQL7MNEMT_cjs.finite(chart.gridWidth, 1);
4612
- if (chunkQL7MNEMT_cjs.isHorizontalBar(chart)) {
4611
+ const width = chunkC25NWWIH_cjs.finite(chart.gridWidth, 1);
4612
+ if (chunkC25NWWIH_cjs.isHorizontalBar(chart)) {
4613
4613
  return buildHorizontalBarGrid(chart, plot, bounds, order, width);
4614
4614
  }
4615
4615
  const clip = chart.chartType === "field" ? fieldSurfaceClip(chart, plot) : void 0;
@@ -4624,8 +4624,8 @@ function buildChartGrid(chart, plot, bounds, order) {
4624
4624
  clip
4625
4625
  };
4626
4626
  const nodes = [];
4627
- (chart.gridAxes === "y" ? [] : chunkQL7MNEMT_cjs.chartTicks(chart.axisX)).forEach((tick) => {
4628
- const x = plot.x + chunkQL7MNEMT_cjs.mapChartValue(tick, chart.axisX, plot.width);
4627
+ (chart.gridAxes === "y" ? [] : chunkC25NWWIH_cjs.chartTicks(chart.axisX)).forEach((tick) => {
4628
+ const x = plot.x + chunkC25NWWIH_cjs.mapChartValue(tick, chart.axisX, plot.width);
4629
4629
  nodes.push({
4630
4630
  type: "path",
4631
4631
  id: `chart-grid-x-${chart.id}-${tick}`,
@@ -4635,8 +4635,8 @@ function buildChartGrid(chart, plot, bounds, order) {
4635
4635
  style
4636
4636
  });
4637
4637
  });
4638
- (chart.gridAxes === "x" ? [] : chunkQL7MNEMT_cjs.chartTicks(chart.axisY)).forEach((tick) => {
4639
- const y = plot.y + plot.height - chunkQL7MNEMT_cjs.mapChartValue(tick, chart.axisY, plot.height);
4638
+ (chart.gridAxes === "x" ? [] : chunkC25NWWIH_cjs.chartTicks(chart.axisY)).forEach((tick) => {
4639
+ const y = plot.y + plot.height - chunkC25NWWIH_cjs.mapChartValue(tick, chart.axisY, plot.height);
4640
4640
  nodes.push({
4641
4641
  type: "path",
4642
4642
  id: `chart-grid-y-${chart.id}-${tick}`,
@@ -4658,8 +4658,8 @@ function buildHorizontalBarGrid(chart, plot, bounds, order, width) {
4658
4658
  strokeWidth: width,
4659
4659
  ...chart.gridLineStyle === "dotted" ? { dash: [0.1, width * 3], lineCap: "round" } : gridLineDashStyle(chart, width)
4660
4660
  };
4661
- return chunkQL7MNEMT_cjs.chartTicks(chart.axisY).map((tick, index) => {
4662
- const x = plot.x + chunkQL7MNEMT_cjs.mapChartValue(tick, chart.axisY, plot.width);
4661
+ return chunkC25NWWIH_cjs.chartTicks(chart.axisY).map((tick, index) => {
4662
+ const x = plot.x + chunkC25NWWIH_cjs.mapChartValue(tick, chart.axisY, plot.width);
4663
4663
  return {
4664
4664
  type: "path",
4665
4665
  id: `chart-grid-x-${chart.id}-${tick}`,
@@ -4671,13 +4671,13 @@ function buildHorizontalBarGrid(chart, plot, bounds, order, width) {
4671
4671
  });
4672
4672
  }
4673
4673
  function buildDottedRectGrid(chart, plot, bounds, order, width, clip) {
4674
- const xTicks = chunkQL7MNEMT_cjs.chartTicks(chart.axisX);
4675
- const yTicks = chunkQL7MNEMT_cjs.chartTicks(chart.axisY);
4674
+ const xTicks = chunkC25NWWIH_cjs.chartTicks(chart.axisX);
4675
+ const yTicks = chunkC25NWWIH_cjs.chartTicks(chart.axisY);
4676
4676
  const nodes = [];
4677
4677
  xTicks.forEach((xTick) => {
4678
- const x = plot.x + chunkQL7MNEMT_cjs.mapChartValue(xTick, chart.axisX, plot.width);
4678
+ const x = plot.x + chunkC25NWWIH_cjs.mapChartValue(xTick, chart.axisX, plot.width);
4679
4679
  yTicks.forEach((yTick) => {
4680
- const y = plot.y + plot.height - chunkQL7MNEMT_cjs.mapChartValue(yTick, chart.axisY, plot.height);
4680
+ const y = plot.y + plot.height - chunkC25NWWIH_cjs.mapChartValue(yTick, chart.axisY, plot.height);
4681
4681
  const id = `chart-grid-dot-${chart.id}-${xTick}-${yTick}`;
4682
4682
  nodes.push(createGridDot(chart, id, order + nodes.length, bounds, x, y, width, clip));
4683
4683
  });
@@ -4700,7 +4700,7 @@ function createChartRuleMarks(render2) {
4700
4700
  return {
4701
4701
  rule,
4702
4702
  color: rule.color || render2.chart.strokeColor || "#475569",
4703
- y: render2.plot.y + render2.plot.height - chunkQL7MNEMT_cjs.mapChartValue(rule.at, render2.chart.axisY, render2.plot.height),
4703
+ y: render2.plot.y + render2.plot.height - chunkC25NWWIH_cjs.mapChartValue(rule.at, render2.chart.axisY, render2.plot.height),
4704
4704
  lineOrder,
4705
4705
  labelOrder
4706
4706
  };
@@ -4720,7 +4720,7 @@ function createChartRuleLine(render2, mark) {
4720
4720
  order: mark.lineOrder,
4721
4721
  bounds: render2.bounds,
4722
4722
  d: `M ${render2.plot.x} ${mark.y} L ${render2.plot.x + render2.plot.width} ${mark.y}`,
4723
- prop: chunkQL7MNEMT_cjs.ruleAtProp(mark.rule.id),
4723
+ prop: chunkC25NWWIH_cjs.ruleAtProp(mark.rule.id),
4724
4724
  propKind: "value",
4725
4725
  style: {
4726
4726
  fill: { kind: "none" },
@@ -4731,9 +4731,9 @@ function createChartRuleLine(render2, mark) {
4731
4731
  };
4732
4732
  }
4733
4733
  function createChartRuleLabel(render2, mark) {
4734
- const fontSize = Math.max(9, chunkQL7MNEMT_cjs.finite(render2.chart.fontSize, 12) - 2);
4734
+ const fontSize = Math.max(9, chunkC25NWWIH_cjs.finite(render2.chart.fontSize, 12) - 2);
4735
4735
  return {
4736
- ...chunkQL7MNEMT_cjs.chartText({
4736
+ ...chunkC25NWWIH_cjs.chartText({
4737
4737
  id: `chart-rule-label-${render2.chart.id}-${mark.rule.id}`,
4738
4738
  order: mark.labelOrder ?? mark.lineOrder + 1,
4739
4739
  bounds: render2.bounds,
@@ -4742,19 +4742,19 @@ function createChartRuleLabel(render2, mark) {
4742
4742
  chart: render2.chart
4743
4743
  }),
4744
4744
  color: mark.color,
4745
- prop: chunkQL7MNEMT_cjs.ruleTextProp(mark.rule.id)
4745
+ prop: chunkC25NWWIH_cjs.ruleTextProp(mark.rule.id)
4746
4746
  };
4747
4747
  }
4748
4748
 
4749
4749
  // src/renderScene/charts/chartBackdrop.ts
4750
4750
  function chartImageRect(chart) {
4751
- const inset = chunkQL7MNEMT_cjs.finite(chart.strokeWidth, 1) / 2;
4751
+ const inset = chunkC25NWWIH_cjs.finite(chart.strokeWidth, 1) / 2;
4752
4752
  return {
4753
4753
  x: chart.x + inset,
4754
4754
  y: chart.y + inset,
4755
4755
  width: Math.max(1, chart.width - inset * 2),
4756
4756
  height: Math.max(1, chart.height - inset * 2),
4757
- rx: Math.max(0, chunkQL7MNEMT_cjs.finite(chart.cornerRadius, 12) - inset)
4757
+ rx: Math.max(0, chunkC25NWWIH_cjs.finite(chart.cornerRadius, 12) - inset)
4758
4758
  };
4759
4759
  }
4760
4760
  function buildChartBackdrop(chart, bounds, order) {
@@ -4796,7 +4796,7 @@ function buildChartBackdrop(chart, bounds, order) {
4796
4796
  // src/renderScene/charts/renderers/bar/glass.ts
4797
4797
  function createGlassBackdropNodes(context, id, d) {
4798
4798
  const { chart, bounds, nextOrder } = context;
4799
- const blur = chunkQL7MNEMT_cjs.finite(chart.config?.barGlassBlur, 0);
4799
+ const blur = chunkC25NWWIH_cjs.finite(chart.config?.barGlassBlur, 0);
4800
4800
  if (blur <= 0 || !chart.fillImage) {
4801
4801
  return [];
4802
4802
  }
@@ -4814,7 +4814,7 @@ function createGlassBackdropNodes(context, id, d) {
4814
4814
  href: chart.fillImage.url,
4815
4815
  style: {
4816
4816
  blur,
4817
- saturate: chunkQL7MNEMT_cjs.finite(chart.config?.barGlassSaturation, 1),
4817
+ saturate: chunkC25NWWIH_cjs.finite(chart.config?.barGlassSaturation, 1),
4818
4818
  clip: { type: "path", d },
4819
4819
  pointerEvents: "none"
4820
4820
  }
@@ -4865,8 +4865,8 @@ function createBarGlowNode(context, id, d, color, glow, bounds = context.bounds)
4865
4865
  bounds,
4866
4866
  d,
4867
4867
  style: {
4868
- fill: chunkQL7MNEMT_cjs.paint(color, diagnostics, chart.id),
4869
- shadow: { color: chunkQL7MNEMT_cjs.representativeColor(color, "#ffffff"), opacity: 0.9, blur: glow, dx: 0, dy: 0 },
4868
+ fill: chunkC25NWWIH_cjs.paint(color, diagnostics, chart.id),
4869
+ shadow: { color: chunkC25NWWIH_cjs.representativeColor(color, "#ffffff"), opacity: 0.9, blur: glow, dx: 0, dy: 0 },
4870
4870
  pointerEvents: "none"
4871
4871
  }
4872
4872
  };
@@ -4877,14 +4877,14 @@ function barLabelsEnabled(context) {
4877
4877
  return context.chart.config?.showBarLabels === true;
4878
4878
  }
4879
4879
  function resolvePlacement(target, size) {
4880
- const fits = target.frame.height >= size.height + chunkQL7MNEMT_cjs.BAR_LABEL.gap * 2;
4880
+ const fits = target.frame.height >= size.height + chunkC25NWWIH_cjs.BAR_LABEL.gap * 2;
4881
4881
  return target.placement !== "outside" && !fits ? "outside" : target.placement;
4882
4882
  }
4883
4883
  function labelTop(placement, frame, height) {
4884
4884
  if (placement === "outside") {
4885
- return frame.y - height - chunkQL7MNEMT_cjs.BAR_LABEL.gap;
4885
+ return frame.y - height - chunkC25NWWIH_cjs.BAR_LABEL.gap;
4886
4886
  }
4887
- return placement === "inside" ? frame.y + chunkQL7MNEMT_cjs.BAR_LABEL.gap : frame.y + frame.height / 2 - height / 2;
4887
+ return placement === "inside" ? frame.y + chunkC25NWWIH_cjs.BAR_LABEL.gap : frame.y + frame.height / 2 - height / 2;
4888
4888
  }
4889
4889
  function createPillNode(context, id, box, color) {
4890
4890
  const { chart, bounds, diagnostics, nextOrder } = context;
@@ -4894,11 +4894,11 @@ function createPillNode(context, id, box, color) {
4894
4894
  id: `${id}-pill`,
4895
4895
  order: nextOrder(),
4896
4896
  bounds,
4897
- d: chunkQL7MNEMT_cjs.pillPath(box.left, box.top, box.width, box.height),
4897
+ d: chunkC25NWWIH_cjs.pillPath(box.left, box.top, box.width, box.height),
4898
4898
  style: {
4899
- fill: config?.barLabelPillColor ? chunkQL7MNEMT_cjs.paint(config.barLabelPillColor, diagnostics, chart.id) : { kind: "none" },
4900
- stroke: chunkQL7MNEMT_cjs.paint(config?.barLabelBorderColor ?? color, diagnostics, chart.id),
4901
- strokeWidth: chunkQL7MNEMT_cjs.finite(config?.barLabelBorderWidth, 1),
4899
+ fill: config?.barLabelPillColor ? chunkC25NWWIH_cjs.paint(config.barLabelPillColor, diagnostics, chart.id) : { kind: "none" },
4900
+ stroke: chunkC25NWWIH_cjs.paint(config?.barLabelBorderColor ?? color, diagnostics, chart.id),
4901
+ strokeWidth: chunkC25NWWIH_cjs.finite(config?.barLabelBorderWidth, 1),
4902
4902
  pointerEvents: "none"
4903
4903
  }
4904
4904
  };
@@ -4907,7 +4907,7 @@ function createTextNode(context, id, box, text, placement, fontSize, color) {
4907
4907
  const { chart, bounds, nextOrder } = context;
4908
4908
  const config = chart.config;
4909
4909
  return {
4910
- ...chunkQL7MNEMT_cjs.chartText({
4910
+ ...chunkC25NWWIH_cjs.chartText({
4911
4911
  id,
4912
4912
  order: nextOrder(),
4913
4913
  bounds,
@@ -4928,7 +4928,7 @@ function createAxisValueNode(context, target, text, fontSize) {
4928
4928
  const config = chart.config;
4929
4929
  const top = plot.y + plot.height + 4 + 16 + Math.max(0, chart.tickLength ?? 0);
4930
4930
  return {
4931
- ...chunkQL7MNEMT_cjs.chartText({
4931
+ ...chunkC25NWWIH_cjs.chartText({
4932
4932
  id: target.id,
4933
4933
  order: nextOrder(),
4934
4934
  bounds,
@@ -4937,7 +4937,7 @@ function createAxisValueNode(context, target, text, fontSize) {
4937
4937
  y: target.frame.y + target.frame.height / 2 - fontSize * 0.6,
4938
4938
  width: plot.width - 14,
4939
4939
  height: fontSize * 1.2
4940
- } : { x: plot.x, y: target.frame.y - chunkQL7MNEMT_cjs.CATEGORY_LABEL_ROW, width: plot.width, height: fontSize * 1.2 } : { x: target.frame.x, y: top, width: target.frame.width, height: fontSize * 1.2 },
4940
+ } : { x: plot.x, y: target.frame.y - chunkC25NWWIH_cjs.CATEGORY_LABEL_ROW, width: plot.width, height: fontSize * 1.2 } : { x: target.frame.x, y: top, width: target.frame.width, height: fontSize * 1.2 },
4941
4941
  text,
4942
4942
  chart,
4943
4943
  align: target.horizontal ? "right" : chart.categoryAlign === "left" ? "left" : "center"
@@ -4951,24 +4951,24 @@ function createAxisValueNode(context, target, text, fontSize) {
4951
4951
  }
4952
4952
  function horizontalPlacement(target, size) {
4953
4953
  const requested = target.placement === "axis" ? "outside" : target.placement;
4954
- const fits = target.frame.width >= size.width + chunkQL7MNEMT_cjs.BAR_LABEL.gap * 2;
4954
+ const fits = target.frame.width >= size.width + chunkC25NWWIH_cjs.BAR_LABEL.gap * 2;
4955
4955
  return requested !== "outside" && !fits ? "outside" : requested;
4956
4956
  }
4957
4957
  function horizontalBox(target, size, placement) {
4958
4958
  const { frame } = target;
4959
- const left = placement === "outside" ? frame.x + frame.width + chunkQL7MNEMT_cjs.BAR_LABEL.gap : placement === "inside" ? frame.x + frame.width - size.width - chunkQL7MNEMT_cjs.BAR_LABEL.gap : frame.x + frame.width / 2 - size.width / 2;
4959
+ const left = placement === "outside" ? frame.x + frame.width + chunkC25NWWIH_cjs.BAR_LABEL.gap : placement === "inside" ? frame.x + frame.width - size.width - chunkC25NWWIH_cjs.BAR_LABEL.gap : frame.x + frame.width / 2 - size.width / 2;
4960
4960
  return { ...size, left, top: frame.y + frame.height / 2 - size.height / 2 };
4961
4961
  }
4962
4962
  function createBarLabelNodes(context, target) {
4963
4963
  const { chart } = context;
4964
4964
  const config = chart.config;
4965
- const fontSize = Math.max(8, chunkQL7MNEMT_cjs.finite(config?.barLabelFontSize, chunkQL7MNEMT_cjs.finite(chart.fontSize, 12)));
4966
- const text = chunkQL7MNEMT_cjs.formatBarLabel(target.value, config?.barLabelFormat);
4965
+ const fontSize = Math.max(8, chunkC25NWWIH_cjs.finite(config?.barLabelFontSize, chunkC25NWWIH_cjs.finite(chart.fontSize, 12)));
4966
+ const text = chunkC25NWWIH_cjs.formatBarLabel(target.value, config?.barLabelFormat);
4967
4967
  if (target.placement === "axis") {
4968
4968
  return [createAxisValueNode(context, target, text, fontSize)];
4969
4969
  }
4970
4970
  const pill = config?.barLabelPill === true;
4971
- const size = chunkQL7MNEMT_cjs.barLabelSize(text, fontSize, pill);
4971
+ const size = chunkC25NWWIH_cjs.barLabelSize(text, fontSize, pill);
4972
4972
  const placement = target.horizontal ? horizontalPlacement(target, size) : resolvePlacement(target, size);
4973
4973
  const box = target.horizontal ? horizontalBox(target, size, placement) : {
4974
4974
  ...size,
@@ -5009,7 +5009,7 @@ function barTrackClip(context, frame) {
5009
5009
  }
5010
5010
  return {
5011
5011
  type: "path",
5012
- d: chunkQL7MNEMT_cjs.roundedBarPath(frame.x, frame.y, frame.width, frame.height, context.chart.config?.barCornerRadius ?? 2)
5012
+ d: chunkC25NWWIH_cjs.roundedBarPath(frame.x, frame.y, frame.width, frame.height, context.chart.config?.barCornerRadius ?? 2)
5013
5013
  };
5014
5014
  }
5015
5015
  function barTrackEnabled(context) {
@@ -5019,8 +5019,8 @@ function createBarTrackNodes(context, id, frame, orientation = "vertical") {
5019
5019
  const { chart, bounds, diagnostics, nextOrder } = context;
5020
5020
  const config = chart.config;
5021
5021
  const radius = config?.barCornerRadius ?? 2;
5022
- const segments = chunkQL7MNEMT_cjs.finite(config?.barSegments, 0);
5023
- const d = segments > 0 ? chunkQL7MNEMT_cjs.segmentedBarPath(frame, orientation, segments, chunkQL7MNEMT_cjs.finite(config?.barSegmentGap, 4), radius, 1, true) : chunkQL7MNEMT_cjs.roundedBarPath(frame.x, frame.y, frame.width, frame.height, radius);
5022
+ const segments = chunkC25NWWIH_cjs.finite(config?.barSegments, 0);
5023
+ const d = segments > 0 ? chunkC25NWWIH_cjs.segmentedBarPath(frame, orientation, segments, chunkC25NWWIH_cjs.finite(config?.barSegmentGap, 4), radius, 1, true) : chunkC25NWWIH_cjs.roundedBarPath(frame.x, frame.y, frame.width, frame.height, radius);
5024
5024
  const nodes = [
5025
5025
  {
5026
5026
  type: "path",
@@ -5029,7 +5029,7 @@ function createBarTrackNodes(context, id, frame, orientation = "vertical") {
5029
5029
  bounds,
5030
5030
  d,
5031
5031
  style: {
5032
- fill: chunkQL7MNEMT_cjs.paint(config?.barTrackColor ?? chart.gridColor ?? "#e2e8f0", diagnostics, chart.id),
5032
+ fill: chunkC25NWWIH_cjs.paint(config?.barTrackColor ?? chart.gridColor ?? "#e2e8f0", diagnostics, chart.id),
5033
5033
  pointerEvents: "none"
5034
5034
  }
5035
5035
  }
@@ -5045,13 +5045,13 @@ function createBarTrackNodes(context, id, frame, orientation = "vertical") {
5045
5045
  frame.y,
5046
5046
  frame.width,
5047
5047
  frame.height,
5048
- chunkQL7MNEMT_cjs.finite(config.barTrackHatchAngle, DEFAULT_HATCH.angle),
5049
- Math.max(MIN_HATCH_SPACING, chunkQL7MNEMT_cjs.finite(config.barTrackHatchSpacing, DEFAULT_HATCH.spacing))
5048
+ chunkC25NWWIH_cjs.finite(config.barTrackHatchAngle, DEFAULT_HATCH.angle),
5049
+ Math.max(MIN_HATCH_SPACING, chunkC25NWWIH_cjs.finite(config.barTrackHatchSpacing, DEFAULT_HATCH.spacing))
5050
5050
  ),
5051
5051
  style: {
5052
5052
  fill: { kind: "none" },
5053
- stroke: chunkQL7MNEMT_cjs.paint(config.barTrackHatchColor ?? chart.gridColor ?? "#cbd5e1", diagnostics, chart.id),
5054
- strokeWidth: chunkQL7MNEMT_cjs.finite(config.barTrackHatchWidth, DEFAULT_HATCH.width),
5053
+ stroke: chunkC25NWWIH_cjs.paint(config.barTrackHatchColor ?? chart.gridColor ?? "#cbd5e1", diagnostics, chart.id),
5054
+ strokeWidth: chunkC25NWWIH_cjs.finite(config.barTrackHatchWidth, DEFAULT_HATCH.width),
5055
5055
  pointerEvents: "none",
5056
5056
  clip: { type: "path", d }
5057
5057
  }
@@ -5098,23 +5098,23 @@ function groupedShape(context, frame) {
5098
5098
  const { chart, plot } = context;
5099
5099
  const config = chart.config;
5100
5100
  const radius = config?.barCornerRadius ?? 2;
5101
- const segments = chunkQL7MNEMT_cjs.finite(config?.barSegments, 0);
5101
+ const segments = chunkC25NWWIH_cjs.finite(config?.barSegments, 0);
5102
5102
  if (segments > 0) {
5103
- return chunkQL7MNEMT_cjs.segmentedBarPath(
5103
+ return chunkC25NWWIH_cjs.segmentedBarPath(
5104
5104
  { x: frame.x, y: plot.y, width: frame.width, height: plot.height },
5105
5105
  "vertical",
5106
5106
  segments,
5107
- chunkQL7MNEMT_cjs.finite(config?.barSegmentGap, 4),
5107
+ chunkC25NWWIH_cjs.finite(config?.barSegmentGap, 4),
5108
5108
  radius,
5109
5109
  frame.height / plot.height,
5110
5110
  config?.barSegmentSnap !== false
5111
5111
  );
5112
5112
  }
5113
- return chunkQL7MNEMT_cjs.barPath(frame.x, frame.y, frame.width, frame.height, radius, config?.barRoundedBottom === true);
5113
+ return chunkC25NWWIH_cjs.barPath(frame.x, frame.y, frame.width, frame.height, radius, config?.barRoundedBottom === true);
5114
5114
  }
5115
5115
  function createGroupedGlow(context, mark) {
5116
5116
  const { chart } = context;
5117
- const glow = chunkQL7MNEMT_cjs.finite(chart.config?.barGlow, 0);
5117
+ const glow = chunkC25NWWIH_cjs.finite(chart.config?.barGlow, 0);
5118
5118
  if (glow <= 0 || mark.frame.height <= 0) {
5119
5119
  return [];
5120
5120
  }
@@ -5125,10 +5125,10 @@ function createGroupedGlow(context, mark) {
5125
5125
  }
5126
5126
  function createGroupedBarLayout(context) {
5127
5127
  const { chart, plot } = context;
5128
- const valueCount = chunkQL7MNEMT_cjs.barCategoryCount(chart);
5128
+ const valueCount = chunkC25NWWIH_cjs.barCategoryCount(chart);
5129
5129
  const slotWidth = plot.width / valueCount;
5130
- const groupGap = Math.min(Math.max(0, chunkQL7MNEMT_cjs.finite(chart.config?.barGroupGap, 8)), Math.max(0, slotWidth - 1));
5131
- const barGap = Math.max(0, chunkQL7MNEMT_cjs.finite(chart.config?.barGap, 2));
5130
+ const groupGap = Math.min(Math.max(0, chunkC25NWWIH_cjs.finite(chart.config?.barGroupGap, 8)), Math.max(0, slotWidth - 1));
5131
+ const barGap = Math.max(0, chunkC25NWWIH_cjs.finite(chart.config?.barGap, 2));
5132
5132
  return {
5133
5133
  slotWidth,
5134
5134
  seriesWidth: Math.max(1, (slotWidth - groupGap) / Math.max(1, chart.series.length)),
@@ -5138,10 +5138,10 @@ function createGroupedBarLayout(context) {
5138
5138
  }
5139
5139
  function createSeriesBarMarks(context, layout, series, seriesIndex) {
5140
5140
  const { chart, plot } = context;
5141
- const seriesColor2 = series.color ?? chunkQL7MNEMT_cjs.CHART_COLORS[seriesIndex % chunkQL7MNEMT_cjs.CHART_COLORS.length];
5141
+ const seriesColor2 = series.color ?? chunkC25NWWIH_cjs.CHART_COLORS[seriesIndex % chunkC25NWWIH_cjs.CHART_COLORS.length];
5142
5142
  return series.values.map((value, valueIndex) => {
5143
5143
  const numericValue = Array.isArray(value) ? value[1] : value;
5144
- const height = Math.max(0, chunkQL7MNEMT_cjs.mapChartValue(numericValue, chart.axisY, plot.height));
5144
+ const height = Math.max(0, chunkC25NWWIH_cjs.mapChartValue(numericValue, chart.axisY, plot.height));
5145
5145
  return {
5146
5146
  seriesId: series.id,
5147
5147
  valueIndex,
@@ -5175,10 +5175,10 @@ function createGroupedBarNodes(context, mark) {
5175
5175
  const radius = chart.config?.barCornerRadius ?? 2;
5176
5176
  const { x, width } = mark.frame;
5177
5177
  const path = groupedShape(context, mark.frame);
5178
- const fill2 = chunkQL7MNEMT_cjs.paint(mark.color, diagnostics, chart.id);
5179
- const stroke = chunkQL7MNEMT_cjs.paint(chart.config?.barBorderColor || "#000000", diagnostics, chart.id);
5180
- const strokeWidth = chunkQL7MNEMT_cjs.finite(chart.config?.barBorderWidth, 0);
5181
- const shadow = chunkQL7MNEMT_cjs.resolveChartShadow(chart.shadowStyle);
5178
+ const fill2 = chunkC25NWWIH_cjs.paint(mark.color, diagnostics, chart.id);
5179
+ const stroke = chunkC25NWWIH_cjs.paint(chart.config?.barBorderColor || "#000000", diagnostics, chart.id);
5180
+ const strokeWidth = chunkC25NWWIH_cjs.finite(chart.config?.barBorderWidth, 0);
5181
+ const shadow = chunkC25NWWIH_cjs.resolveChartShadow(chart.shadowStyle);
5182
5182
  const shadowCaster = shadow ? {
5183
5183
  type: "path",
5184
5184
  id: `chart-bar-shadow-${chart.id}-${mark.seriesId}-${mark.valueIndex}`,
@@ -5208,10 +5208,10 @@ function createGroupedBarNodes(context, mark) {
5208
5208
  valueIndex: mark.valueIndex,
5209
5209
  mark: "bar",
5210
5210
  radius,
5211
- colorProp: chunkQL7MNEMT_cjs.seriesValueColorProp(mark.seriesId, mark.valueIndex),
5211
+ colorProp: chunkC25NWWIH_cjs.seriesValueColorProp(mark.seriesId, mark.valueIndex),
5212
5212
  hasColorOverride: mark.hasColorOverride
5213
5213
  },
5214
- prop: chunkQL7MNEMT_cjs.seriesValueProp(mark.seriesId, mark.valueIndex),
5214
+ prop: chunkC25NWWIH_cjs.seriesValueProp(mark.seriesId, mark.valueIndex),
5215
5215
  style: { fill: fill2, stroke, strokeWidth, innerShadow: shadow }
5216
5216
  };
5217
5217
  const glass = createGlassBackdropNodes(context, `${mark.seriesId}-${mark.valueIndex}`, path);
@@ -5222,15 +5222,15 @@ function createGroupedBarError(context, mark) {
5222
5222
  return null;
5223
5223
  }
5224
5224
  const { chart, plot, bounds, nextOrder } = context;
5225
- const [lower, upper] = chunkQL7MNEMT_cjs.errorBarRange(mark.value, mark.error);
5226
- return chunkQL7MNEMT_cjs.createVerticalErrorWhiskerNode({
5225
+ const [lower, upper] = chunkC25NWWIH_cjs.errorBarRange(mark.value, mark.error);
5226
+ return chunkC25NWWIH_cjs.createVerticalErrorWhiskerNode({
5227
5227
  id: `chart-bar-error-${chart.id}-${mark.seriesId}-${mark.valueIndex}`,
5228
5228
  order: nextOrder(),
5229
5229
  bounds,
5230
5230
  geometry: {
5231
5231
  centerX: mark.frame.x + mark.frame.width / 2,
5232
- startY: plot.y + plot.height - chunkQL7MNEMT_cjs.mapChartValue(lower, chart.axisY, plot.height),
5233
- endY: plot.y + plot.height - chunkQL7MNEMT_cjs.mapChartValue(upper, chart.axisY, plot.height)
5232
+ startY: plot.y + plot.height - chunkC25NWWIH_cjs.mapChartValue(lower, chart.axisY, plot.height),
5233
+ endY: plot.y + plot.height - chunkC25NWWIH_cjs.mapChartValue(upper, chart.axisY, plot.height)
5234
5234
  },
5235
5235
  color: chart.textColor ?? "#0f172a",
5236
5236
  valueReference: { seriesId: mark.seriesId, valueIndex: mark.valueIndex }
@@ -5240,9 +5240,9 @@ function createGroupedBarError(context, mark) {
5240
5240
  // src/renderScene/charts/renderers/bar/horizontal.ts
5241
5241
  function barFrame(context, rows, seriesIndex, valueIndex, value) {
5242
5242
  const { chart, plot } = context;
5243
- const top = chunkQL7MNEMT_cjs.rowTop(rows, plot, valueIndex) + rows.labelRow;
5243
+ const top = chunkC25NWWIH_cjs.rowTop(rows, plot, valueIndex) + rows.labelRow;
5244
5244
  if (context.stackedMode) {
5245
- const segment = chunkQL7MNEMT_cjs.stackedSegment(chart, context.stackedMode, valueIndex, seriesIndex, plot.width);
5245
+ const segment = chunkC25NWWIH_cjs.stackedSegment(chart, context.stackedMode, valueIndex, seriesIndex, plot.width);
5246
5246
  const start = Math.min(segment.pixelStart, segment.pixelEnd);
5247
5247
  return {
5248
5248
  x: plot.x + start,
@@ -5251,27 +5251,27 @@ function barFrame(context, rows, seriesIndex, valueIndex, value) {
5251
5251
  height: rows.barsHeight
5252
5252
  };
5253
5253
  }
5254
- const barGap = Math.max(0, chunkQL7MNEMT_cjs.finite(chart.config?.barGap, 2));
5254
+ const barGap = Math.max(0, chunkC25NWWIH_cjs.finite(chart.config?.barGap, 2));
5255
5255
  const seriesHeight = rows.barsHeight / Math.max(1, chart.series.length);
5256
- const width = Math.max(0, chunkQL7MNEMT_cjs.mapChartValue(value, chart.axisY, plot.width));
5256
+ const width = Math.max(0, chunkC25NWWIH_cjs.mapChartValue(value, chart.axisY, plot.width));
5257
5257
  return { x: plot.x, y: top + seriesIndex * seriesHeight, width, height: Math.max(1, seriesHeight - barGap) };
5258
5258
  }
5259
5259
  function barPath2(context, frame) {
5260
5260
  const { chart, plot } = context;
5261
5261
  const config = chart.config;
5262
- const segments = context.stackedMode && chart.series.length > 1 ? 0 : chunkQL7MNEMT_cjs.finite(config?.barSegments, 0);
5262
+ const segments = context.stackedMode && chart.series.length > 1 ? 0 : chunkC25NWWIH_cjs.finite(config?.barSegments, 0);
5263
5263
  if (segments > 0) {
5264
- return chunkQL7MNEMT_cjs.segmentedBarPath(
5264
+ return chunkC25NWWIH_cjs.segmentedBarPath(
5265
5265
  { x: plot.x, y: frame.y, width: plot.width, height: frame.height },
5266
5266
  "horizontal",
5267
5267
  segments,
5268
- chunkQL7MNEMT_cjs.finite(config?.barSegmentGap, 4),
5268
+ chunkC25NWWIH_cjs.finite(config?.barSegmentGap, 4),
5269
5269
  config?.barCornerRadius ?? 2,
5270
5270
  frame.width / plot.width,
5271
5271
  config?.barSegmentSnap !== false
5272
5272
  );
5273
5273
  }
5274
- return chunkQL7MNEMT_cjs.roundedBarPath(frame.x, frame.y, frame.width, frame.height, config?.barCornerRadius ?? 2);
5274
+ return chunkC25NWWIH_cjs.roundedBarPath(frame.x, frame.y, frame.width, frame.height, config?.barCornerRadius ?? 2);
5275
5275
  }
5276
5276
  function markOf(context, rows, series, seriesIndex, valueIndex, value) {
5277
5277
  const { plot } = context;
@@ -5291,16 +5291,16 @@ function markOf(context, rows, series, seriesIndex, valueIndex, value) {
5291
5291
  maxY: frame.y + frame.height
5292
5292
  },
5293
5293
  path: barPath2(context, frame),
5294
- color: series.colors?.[valueIndex] ?? series.color ?? chunkQL7MNEMT_cjs.CHART_COLORS[seriesIndex % chunkQL7MNEMT_cjs.CHART_COLORS.length]
5294
+ color: series.colors?.[valueIndex] ?? series.color ?? chunkC25NWWIH_cjs.CHART_COLORS[seriesIndex % chunkC25NWWIH_cjs.CHART_COLORS.length]
5295
5295
  };
5296
5296
  }
5297
5297
  function barNodes(context, mark) {
5298
5298
  const { chart, diagnostics, nextOrder } = context;
5299
5299
  const config = chart.config;
5300
- const stroke = chunkQL7MNEMT_cjs.paint(config?.barBorderColor || "#000000", diagnostics, chart.id);
5301
- const strokeWidth = chunkQL7MNEMT_cjs.finite(config?.barBorderWidth, 0);
5302
- const shadow = chunkQL7MNEMT_cjs.resolveChartShadow(chart.shadowStyle);
5303
- const fill2 = chunkQL7MNEMT_cjs.paint(mark.color, diagnostics, chart.id);
5300
+ const stroke = chunkC25NWWIH_cjs.paint(config?.barBorderColor || "#000000", diagnostics, chart.id);
5301
+ const strokeWidth = chunkC25NWWIH_cjs.finite(config?.barBorderWidth, 0);
5302
+ const shadow = chunkC25NWWIH_cjs.resolveChartShadow(chart.shadowStyle);
5303
+ const fill2 = chunkC25NWWIH_cjs.paint(mark.color, diagnostics, chart.id);
5304
5304
  const nodes = [...createGlassBackdropNodes(context, mark.id, mark.path)];
5305
5305
  if (shadow) {
5306
5306
  nodes.push({
@@ -5324,7 +5324,7 @@ function barNodes(context, mark) {
5324
5324
  valueIndex: mark.valueIndex,
5325
5325
  mark: "bar",
5326
5326
  radius: config?.barCornerRadius ?? 2,
5327
- colorProp: chunkQL7MNEMT_cjs.seriesValueColorProp(mark.series.id, mark.valueIndex),
5327
+ colorProp: chunkC25NWWIH_cjs.seriesValueColorProp(mark.series.id, mark.valueIndex),
5328
5328
  hasColorOverride: mark.series.colors?.[mark.valueIndex] != null
5329
5329
  },
5330
5330
  style: { fill: fill2, stroke, strokeWidth, innerShadow: shadow }
@@ -5354,7 +5354,7 @@ function pushBar(context, rows, layers, series, seriesIndex, valueIndex, value,
5354
5354
  layers.tracks.push(...createBarTrackNodes(context, mark.id, mark.trackFrame, "horizontal"));
5355
5355
  }
5356
5356
  layers.bars.push(...barNodes(context, mark));
5357
- const glow = chunkQL7MNEMT_cjs.finite(chart.config?.barGlow, 0);
5357
+ const glow = chunkC25NWWIH_cjs.finite(chart.config?.barGlow, 0);
5358
5358
  if (glow > 0 && mark.frame.width > 0) {
5359
5359
  layers.glows.push(
5360
5360
  createBarGlowNode(context, `chart-bar-glow-${chart.id}-${mark.id}`, mark.path, mark.color, glow, mark.bounds)
@@ -5363,7 +5363,7 @@ function pushBar(context, rows, layers, series, seriesIndex, valueIndex, value,
5363
5363
  layers.labels.push(...labelNodes2(context, mark, highest));
5364
5364
  }
5365
5365
  function renderHorizontalBars(context) {
5366
- const rows = chunkQL7MNEMT_cjs.horizontalRows(context.chart, context.plot);
5366
+ const rows = chunkC25NWWIH_cjs.horizontalRows(context.chart, context.plot);
5367
5367
  const layers = { tracks: [], bars: [], glows: [], labels: [] };
5368
5368
  context.chart.series.forEach((series, seriesIndex) => {
5369
5369
  const numeric = series.values.map((value) => typeof value === "number" ? value : value[1]);
@@ -5378,8 +5378,8 @@ function renderHorizontalBars(context) {
5378
5378
  // src/renderScene/charts/renderers/bar/stacked.ts
5379
5379
  function slotOf(context, mode) {
5380
5380
  const { chart, plot } = context;
5381
- const slotWidth = plot.width / chunkQL7MNEMT_cjs.barCategoryCount(chart);
5382
- const groupGap = Math.min(Math.max(0, chunkQL7MNEMT_cjs.finite(chart.config?.barGroupGap, 8)), Math.max(0, slotWidth - 1));
5381
+ const slotWidth = plot.width / chunkC25NWWIH_cjs.barCategoryCount(chart);
5382
+ const groupGap = Math.min(Math.max(0, chunkC25NWWIH_cjs.finite(chart.config?.barGroupGap, 8)), Math.max(0, slotWidth - 1));
5383
5383
  return {
5384
5384
  slotWidth,
5385
5385
  groupGap,
@@ -5390,19 +5390,19 @@ function slotOf(context, mode) {
5390
5390
  }
5391
5391
  function pathOf(context, x, y, height, slot, radius) {
5392
5392
  const { chart, plot } = context;
5393
- const segments = chart.series.length === 1 ? chunkQL7MNEMT_cjs.finite(chart.config?.barSegments, 0) : 0;
5393
+ const segments = chart.series.length === 1 ? chunkC25NWWIH_cjs.finite(chart.config?.barSegments, 0) : 0;
5394
5394
  if (segments > 0) {
5395
- return chunkQL7MNEMT_cjs.segmentedBarPath(
5395
+ return chunkC25NWWIH_cjs.segmentedBarPath(
5396
5396
  { x, y: plot.y, width: slot.barWidth, height: plot.height },
5397
5397
  "vertical",
5398
5398
  segments,
5399
- chunkQL7MNEMT_cjs.finite(chart.config?.barSegmentGap, 4),
5399
+ chunkC25NWWIH_cjs.finite(chart.config?.barSegmentGap, 4),
5400
5400
  radius,
5401
5401
  height / plot.height,
5402
5402
  chart.config?.barSegmentSnap !== false
5403
5403
  );
5404
5404
  }
5405
- return chunkQL7MNEMT_cjs.barPath(x, y, slot.barWidth, height, radius, chart.config?.barRoundedBottom === true);
5405
+ return chunkC25NWWIH_cjs.barPath(x, y, slot.barWidth, height, radius, chart.config?.barRoundedBottom === true);
5406
5406
  }
5407
5407
  function pushLabel(context, layers, series, seriesIndex, valueIndex, slot, frame) {
5408
5408
  const { chart } = context;
@@ -5424,7 +5424,7 @@ function pushLabel(context, layers, series, seriesIndex, valueIndex, slot, frame
5424
5424
  }
5425
5425
  function markOf2(context, mode, slot, series, seriesIndex, valueIndex) {
5426
5426
  const { chart, plot } = context;
5427
- const segment = chunkQL7MNEMT_cjs.stackedSegment(chart, mode, valueIndex, seriesIndex, plot.height);
5427
+ const segment = chunkC25NWWIH_cjs.stackedSegment(chart, mode, valueIndex, seriesIndex, plot.height);
5428
5428
  const radius = slot.outerSeriesIndex === null || seriesIndex === slot.outerSeriesIndex ? slot.cornerRadius : 0;
5429
5429
  const x = plot.x + valueIndex * slot.slotWidth + slot.groupGap / 2;
5430
5430
  const y = plot.y + plot.height - Math.max(segment.pixelStart, segment.pixelEnd);
@@ -5433,7 +5433,7 @@ function markOf2(context, mode, slot, series, seriesIndex, valueIndex) {
5433
5433
  series,
5434
5434
  valueIndex,
5435
5435
  radius,
5436
- color: series.colors?.[valueIndex] ?? series.color ?? chunkQL7MNEMT_cjs.CHART_COLORS[seriesIndex % chunkQL7MNEMT_cjs.CHART_COLORS.length],
5436
+ color: series.colors?.[valueIndex] ?? series.color ?? chunkC25NWWIH_cjs.CHART_COLORS[seriesIndex % chunkC25NWWIH_cjs.CHART_COLORS.length],
5437
5437
  x,
5438
5438
  y,
5439
5439
  height,
@@ -5444,10 +5444,10 @@ function markOf2(context, mode, slot, series, seriesIndex, valueIndex) {
5444
5444
  function segmentNodes(context, mark) {
5445
5445
  const { chart, plot, bounds, diagnostics, nextOrder } = context;
5446
5446
  const { series, valueIndex, path } = mark;
5447
- const fill2 = chunkQL7MNEMT_cjs.paint(mark.color, diagnostics, chart.id);
5448
- const stroke = chunkQL7MNEMT_cjs.paint(chart.config?.barBorderColor || "#000000", diagnostics, chart.id);
5449
- const strokeWidth = chunkQL7MNEMT_cjs.finite(chart.config?.barBorderWidth, 0);
5450
- const shadow = chunkQL7MNEMT_cjs.resolveChartShadow(chart.shadowStyle);
5447
+ const fill2 = chunkC25NWWIH_cjs.paint(mark.color, diagnostics, chart.id);
5448
+ const stroke = chunkC25NWWIH_cjs.paint(chart.config?.barBorderColor || "#000000", diagnostics, chart.id);
5449
+ const strokeWidth = chunkC25NWWIH_cjs.finite(chart.config?.barBorderWidth, 0);
5450
+ const shadow = chunkC25NWWIH_cjs.resolveChartShadow(chart.shadowStyle);
5451
5451
  const nodes = [];
5452
5452
  if (shadow) {
5453
5453
  const plotClip = `M ${plot.x} ${plot.y} H ${plot.x + plot.width} V ${plot.y + plot.height} H ${plot.x} Z`;
@@ -5479,10 +5479,10 @@ function segmentNodes(context, mark) {
5479
5479
  valueIndex,
5480
5480
  mark: "bar",
5481
5481
  radius: mark.radius,
5482
- colorProp: chunkQL7MNEMT_cjs.seriesValueColorProp(series.id, valueIndex),
5482
+ colorProp: chunkC25NWWIH_cjs.seriesValueColorProp(series.id, valueIndex),
5483
5483
  hasColorOverride: series.colors?.[valueIndex] != null
5484
5484
  },
5485
- prop: chunkQL7MNEMT_cjs.seriesValueProp(series.id, valueIndex),
5485
+ prop: chunkC25NWWIH_cjs.seriesValueProp(series.id, valueIndex),
5486
5486
  style: { fill: fill2, stroke, strokeWidth, innerShadow: shadow }
5487
5487
  });
5488
5488
  return nodes;
@@ -5496,7 +5496,7 @@ function pushSegment(context, mode, layers, slot, series, seriesIndex, valueInde
5496
5496
  layers.bars.push(...segmentNodes(context, mark));
5497
5497
  const frame = { x: mark.x, y: mark.y, width: slot.barWidth, height: mark.height };
5498
5498
  pushLabel(context, layers, series, seriesIndex, valueIndex, slot, frame);
5499
- const glow = chunkQL7MNEMT_cjs.finite(chart.config?.barGlow, 0);
5499
+ const glow = chunkC25NWWIH_cjs.finite(chart.config?.barGlow, 0);
5500
5500
  if (glow > 0) {
5501
5501
  layers.glows.push(
5502
5502
  createBarGlowNode(context, `chart-bar-glow-${chart.id}-${series.id}-${valueIndex}`, mark.path, mark.color, glow)
@@ -5507,7 +5507,7 @@ function renderStackedBars(context, mode) {
5507
5507
  const { chart } = context;
5508
5508
  const layers = { tracks: [], bars: [], glows: [], labels: [] };
5509
5509
  const slot = slotOf(context, mode);
5510
- const valueCount = chunkQL7MNEMT_cjs.barCategoryCount(chart);
5510
+ const valueCount = chunkC25NWWIH_cjs.barCategoryCount(chart);
5511
5511
  for (let valueIndex = 0; valueIndex < valueCount; valueIndex++) {
5512
5512
  chart.series.forEach((series, seriesIndex) => {
5513
5513
  pushSegment(context, mode, layers, slot, series, seriesIndex, valueIndex);
@@ -5522,7 +5522,7 @@ function isSeriesMax2(values, index) {
5522
5522
 
5523
5523
  // src/renderScene/charts/renderers/bar.ts
5524
5524
  function renderBar(context) {
5525
- if (chunkQL7MNEMT_cjs.isHorizontalBar(context.chart)) {
5525
+ if (chunkC25NWWIH_cjs.isHorizontalBar(context.chart)) {
5526
5526
  return renderHorizontalBars(context);
5527
5527
  }
5528
5528
  if (context.stackedMode) {
@@ -5537,7 +5537,7 @@ function createBoxplotLayout(context) {
5537
5537
  const orientation = chart.config?.orientation ?? "vertical";
5538
5538
  const boxCount = Math.max(1, chart.series.length);
5539
5539
  const slotWidth = (orientation === "horizontal" ? plot.height : plot.width) / boxCount;
5540
- const borderColor = chunkQL7MNEMT_cjs.representativeColor(chart.config?.barBorderColor, "#000000");
5540
+ const borderColor = chunkC25NWWIH_cjs.representativeColor(chart.config?.barBorderColor, "#000000");
5541
5541
  const widthFraction = Math.min(1, Math.max(0.05, chart.config?.boxWidth ?? 0.6));
5542
5542
  return {
5543
5543
  orientation,
@@ -5546,15 +5546,15 @@ function createBoxplotLayout(context) {
5546
5546
  cornerRadius: chart.config?.barCornerRadius ?? 2,
5547
5547
  showPoints: chart.config?.showBoxplotPoints ?? true,
5548
5548
  borderColor,
5549
- borderWidth: chunkQL7MNEMT_cjs.finite(chart.config?.barBorderWidth, 1),
5550
- whiskerWidth: Math.max(0, chunkQL7MNEMT_cjs.finite(chart.config?.boxWhiskerWidth, 1)),
5551
- medianWidth: Math.max(0, chunkQL7MNEMT_cjs.finite(chart.config?.boxMedianWidth, 2)),
5549
+ borderWidth: chunkC25NWWIH_cjs.finite(chart.config?.barBorderWidth, 1),
5550
+ whiskerWidth: Math.max(0, chunkC25NWWIH_cjs.finite(chart.config?.boxWhiskerWidth, 1)),
5551
+ medianWidth: Math.max(0, chunkC25NWWIH_cjs.finite(chart.config?.boxMedianWidth, 2)),
5552
5552
  medianColor: chart.config?.boxMedianColor ?? borderColor,
5553
5553
  whiskerColor: chart.config?.boxWhiskerColor,
5554
- capSize: Math.max(0, chunkQL7MNEMT_cjs.finite(chart.config?.boxCapSize, 0.4)),
5555
- pointSize: Math.max(0, chunkQL7MNEMT_cjs.finite(chart.config?.boxPointSize, 3)),
5556
- pointOpacity: Math.min(1, Math.max(0, chunkQL7MNEMT_cjs.finite(chart.config?.boxPointOpacity, 0.7))),
5557
- jitter: Math.max(0, chunkQL7MNEMT_cjs.finite(chart.config?.boxJitter, 1))
5554
+ capSize: Math.max(0, chunkC25NWWIH_cjs.finite(chart.config?.boxCapSize, 0.4)),
5555
+ pointSize: Math.max(0, chunkC25NWWIH_cjs.finite(chart.config?.boxPointSize, 3)),
5556
+ pointOpacity: Math.min(1, Math.max(0, chunkC25NWWIH_cjs.finite(chart.config?.boxPointOpacity, 0.7))),
5557
+ jitter: Math.max(0, chunkC25NWWIH_cjs.finite(chart.config?.boxJitter, 1))
5558
5558
  };
5559
5559
  }
5560
5560
 
@@ -5565,7 +5565,7 @@ function boxplotPoint(orientation, center, value) {
5565
5565
  function createBoxplotGeometry(context, layout, seriesIndex, stats) {
5566
5566
  const { chart, plot } = context;
5567
5567
  const { orientation } = layout;
5568
- const valueAt = (value) => orientation === "horizontal" ? plot.x + chunkQL7MNEMT_cjs.mapChartValue(value, chart.axisX, plot.width) : plot.y + plot.height - chunkQL7MNEMT_cjs.mapChartValue(value, chart.axisY, plot.height);
5568
+ const valueAt = (value) => orientation === "horizontal" ? plot.x + chunkC25NWWIH_cjs.mapChartValue(value, chart.axisX, plot.width) : plot.y + plot.height - chunkC25NWWIH_cjs.mapChartValue(value, chart.axisY, plot.height);
5569
5569
  const center = plot[orientation === "horizontal" ? "y" : "x"] + seriesIndex * layout.slotWidth + layout.slotWidth / 2;
5570
5570
  return {
5571
5571
  center,
@@ -5580,7 +5580,7 @@ function createBoxplotGeometry(context, layout, seriesIndex, stats) {
5580
5580
  // src/renderScene/charts/renderers/boxplot/points.ts
5581
5581
  function renderSamplePoints(context, layout, mark) {
5582
5582
  const { chart, plot, bounds, diagnostics, nextOrder } = context;
5583
- const valueAt = (value) => layout.orientation === "horizontal" ? plot.x + chunkQL7MNEMT_cjs.mapChartValue(value, chart.axisX, plot.width) : plot.y + plot.height - chunkQL7MNEMT_cjs.mapChartValue(value, chart.axisY, plot.height);
5583
+ const valueAt = (value) => layout.orientation === "horizontal" ? plot.x + chunkC25NWWIH_cjs.mapChartValue(value, chart.axisX, plot.width) : plot.y + plot.height - chunkC25NWWIH_cjs.mapChartValue(value, chart.axisY, plot.height);
5584
5584
  if (layout.pointSize <= 0) {
5585
5585
  return [];
5586
5586
  }
@@ -5596,7 +5596,7 @@ function renderSamplePoints(context, layout, mark) {
5596
5596
  cy: y,
5597
5597
  rx: layout.pointSize,
5598
5598
  ry: layout.pointSize,
5599
- style: { fill: chunkQL7MNEMT_cjs.paint(mark.color, diagnostics, chart.id), opacity: layout.pointOpacity }
5599
+ style: { fill: chunkC25NWWIH_cjs.paint(mark.color, diagnostics, chart.id), opacity: layout.pointOpacity }
5600
5600
  };
5601
5601
  });
5602
5602
  }
@@ -5620,7 +5620,7 @@ function renderBoxAndWhiskers(context, layout, mark) {
5620
5620
  }
5621
5621
  function whiskerColor(layout, mark) {
5622
5622
  if (layout.whiskerColor === "series") {
5623
- return chunkQL7MNEMT_cjs.representativeColor(mark.color, layout.borderColor);
5623
+ return chunkC25NWWIH_cjs.representativeColor(mark.color, layout.borderColor);
5624
5624
  }
5625
5625
  return layout.whiskerColor;
5626
5626
  }
@@ -5702,7 +5702,7 @@ function createBoxNode(context, layout, mark) {
5702
5702
  height,
5703
5703
  rx: layout.cornerRadius,
5704
5704
  style: {
5705
- fill: chunkQL7MNEMT_cjs.paint(mark.color, diagnostics, chart.id),
5705
+ fill: chunkC25NWWIH_cjs.paint(mark.color, diagnostics, chart.id),
5706
5706
  stroke: { kind: "solid", color: layout.borderColor },
5707
5707
  strokeWidth: layout.borderWidth
5708
5708
  }
@@ -5711,12 +5711,12 @@ function createBoxNode(context, layout, mark) {
5711
5711
 
5712
5712
  // src/renderScene/charts/renderers/boxplot/series.ts
5713
5713
  function renderBoxplotSeries(context, layout, series, seriesIndex) {
5714
- const stats = chunkQL7MNEMT_cjs.computeBoxplotStats(series.values);
5714
+ const stats = chunkC25NWWIH_cjs.computeBoxplotStats(series.values);
5715
5715
  if (!stats) {
5716
5716
  return [];
5717
5717
  }
5718
5718
  const geometry = createBoxplotGeometry(context, layout, seriesIndex, stats);
5719
- const color = series.color ?? chunkQL7MNEMT_cjs.CHART_COLORS[seriesIndex % chunkQL7MNEMT_cjs.CHART_COLORS.length];
5719
+ const color = series.color ?? chunkC25NWWIH_cjs.CHART_COLORS[seriesIndex % chunkC25NWWIH_cjs.CHART_COLORS.length];
5720
5720
  const mark = {
5721
5721
  id: `${context.chart.id}-${series.id}`,
5722
5722
  series,
@@ -5778,21 +5778,21 @@ function metricComponent(chart, point) {
5778
5778
  }
5779
5779
  function customPointPosition(context, value) {
5780
5780
  return {
5781
- x: context.plot.x + chunkQL7MNEMT_cjs.mapChartValue(value[0], context.chart.axisX, context.plot.width),
5782
- y: context.plot.y + context.plot.height - chunkQL7MNEMT_cjs.mapChartValue(value[1], context.chart.axisY, context.plot.height)
5781
+ x: context.plot.x + chunkC25NWWIH_cjs.mapChartValue(value[0], context.chart.axisX, context.plot.width),
5782
+ y: context.plot.y + context.plot.height - chunkC25NWWIH_cjs.mapChartValue(value[1], context.chart.axisY, context.plot.height)
5783
5783
  };
5784
5784
  }
5785
5785
  function customSeriesStyle(context, series, seriesIndex) {
5786
- const color = series.color ?? chunkQL7MNEMT_cjs.CHART_COLORS[seriesIndex % chunkQL7MNEMT_cjs.CHART_COLORS.length];
5786
+ const color = series.color ?? chunkC25NWWIH_cjs.CHART_COLORS[seriesIndex % chunkC25NWWIH_cjs.CHART_COLORS.length];
5787
5787
  return {
5788
- fill: chunkQL7MNEMT_cjs.paint(color, context.diagnostics, context.chart.id),
5788
+ fill: chunkC25NWWIH_cjs.paint(color, context.diagnostics, context.chart.id),
5789
5789
  stroke: series.stroke ? { kind: "solid", color: series.stroke } : void 0,
5790
- strokeWidth: series.stroke ? chunkQL7MNEMT_cjs.finite(series.strokeWidth, 1) : void 0
5790
+ strokeWidth: series.stroke ? chunkC25NWWIH_cjs.finite(series.strokeWidth, 1) : void 0
5791
5791
  };
5792
5792
  }
5793
5793
  function createCustomSymbolMark(context, mark) {
5794
5794
  const symbol = mark.series.symbol;
5795
- const size = chunkQL7MNEMT_cjs.finite(mark.series.size, 3);
5795
+ const size = chunkC25NWWIH_cjs.finite(mark.series.size, 3);
5796
5796
  const scale = symbol?.normalized ? size * 2 : 1;
5797
5797
  const offset = symbol?.normalized ? 0.5 : 0;
5798
5798
  const points = (symbol?.points ?? []).map(([x, y]) => ({
@@ -5804,12 +5804,12 @@ function createCustomSymbolMark(context, mark) {
5804
5804
  id: customMarkId(context.chart, mark.series, mark.valueIndex),
5805
5805
  order: context.nextOrder(),
5806
5806
  bounds: context.bounds,
5807
- d: chunkQL7MNEMT_cjs.freeformPathData({ points, tension: chunkQL7MNEMT_cjs.finite(symbol?.tension, 0), closed: true }),
5807
+ d: chunkC25NWWIH_cjs.freeformPathData({ points, tension: chunkC25NWWIH_cjs.finite(symbol?.tension, 0), closed: true }),
5808
5808
  style: mark.style
5809
5809
  };
5810
5810
  }
5811
5811
  function createCustomPointMark(context, mark) {
5812
- const radius = chunkQL7MNEMT_cjs.finite(mark.series.size, 3);
5812
+ const radius = chunkC25NWWIH_cjs.finite(mark.series.size, 3);
5813
5813
  return {
5814
5814
  type: "ellipse",
5815
5815
  id: customMarkId(context.chart, mark.series, mark.valueIndex),
@@ -5833,7 +5833,7 @@ function renderConnectedPairs(context) {
5833
5833
  const zones = chart.config?.zones ?? [];
5834
5834
  const betterColor = zones[0]?.color ?? "#10b981";
5835
5835
  const worseColor = zones[1]?.color ?? "#ec4899";
5836
- const tieColor = zones[2]?.color ?? chunkQL7MNEMT_cjs.DEFAULT_ZONE_FILL;
5836
+ const tieColor = zones[2]?.color ?? chunkC25NWWIH_cjs.DEFAULT_ZONE_FILL;
5837
5837
  const reverse = Boolean(chart.config?.reverseComparison);
5838
5838
  const count = Math.min(beforeValues.length, afterValues.length);
5839
5839
  const categories = chart.config?.categories ?? [];
@@ -5848,7 +5848,7 @@ function renderConnectedPairs(context) {
5848
5848
  const better = reverse ? afterMetric < beforeMetric : afterMetric > beforeMetric;
5849
5849
  const worse = reverse ? afterMetric > beforeMetric : afterMetric < beforeMetric;
5850
5850
  const comparisonColor = better ? betterColor : worse ? worseColor : tieColor;
5851
- const radius = chunkQL7MNEMT_cjs.finite(afterSeries.size, 3);
5851
+ const radius = chunkC25NWWIH_cjs.finite(afterSeries.size, 3);
5852
5852
  nodes.push(createConnectorLine(context, index, beforePoint, afterPoint, comparisonColor));
5853
5853
  nodes.push(
5854
5854
  createCustomPointMark(context, {
@@ -5856,9 +5856,9 @@ function renderConnectedPairs(context) {
5856
5856
  valueIndex: index,
5857
5857
  point: beforePoint,
5858
5858
  style: {
5859
- fill: chunkQL7MNEMT_cjs.paint(chart.config?.customBeforeFill ?? chart.gridColor ?? "#e2e8f0", context.diagnostics, chart.id),
5859
+ fill: chunkC25NWWIH_cjs.paint(chart.config?.customBeforeFill ?? chart.gridColor ?? "#e2e8f0", context.diagnostics, chart.id),
5860
5860
  stroke: { kind: "solid", color: chart.config?.customBeforeStroke ?? HOLLOW_POINT_STROKE },
5861
- strokeWidth: chunkQL7MNEMT_cjs.finite(chart.config?.customBeforeStrokeWidth, 1.5)
5861
+ strokeWidth: chunkC25NWWIH_cjs.finite(chart.config?.customBeforeStrokeWidth, 1.5)
5862
5862
  }
5863
5863
  })
5864
5864
  );
@@ -5868,7 +5868,7 @@ function renderConnectedPairs(context) {
5868
5868
  valueIndex: index,
5869
5869
  point: afterPoint,
5870
5870
  style: {
5871
- fill: chunkQL7MNEMT_cjs.paint(comparisonColor, context.diagnostics, chart.id),
5871
+ fill: chunkC25NWWIH_cjs.paint(comparisonColor, context.diagnostics, chart.id),
5872
5872
  stroke: void 0,
5873
5873
  strokeWidth: void 0
5874
5874
  }
@@ -5895,7 +5895,7 @@ function createConnectorLine(context, index, from, to, color) {
5895
5895
  style: {
5896
5896
  fill: { kind: "none" },
5897
5897
  stroke: { kind: "solid", color },
5898
- strokeWidth: chunkQL7MNEMT_cjs.finite(chart.config?.customConnectorWidth, 2),
5898
+ strokeWidth: chunkC25NWWIH_cjs.finite(chart.config?.customConnectorWidth, 2),
5899
5899
  opacity: chart.config?.customConnectorOpacity,
5900
5900
  dash: connectorDash(chart.config?.customConnectorDash)
5901
5901
  }
@@ -5916,7 +5916,7 @@ function createConnectorLabel(context, index, beforePoint, afterPoint, radius, t
5916
5916
  height: 16
5917
5917
  };
5918
5918
  return {
5919
- ...chunkQL7MNEMT_cjs.chartText({
5919
+ ...chunkC25NWWIH_cjs.chartText({
5920
5920
  id: `chart-custom-label-${chart.id}-${index}`,
5921
5921
  order: nextOrder(),
5922
5922
  bounds,
@@ -5925,7 +5925,7 @@ function createConnectorLabel(context, index, beforePoint, afterPoint, radius, t
5925
5925
  chart,
5926
5926
  align: horizontal ? "left" : "center"
5927
5927
  }),
5928
- fontSize: Math.max(6, chunkQL7MNEMT_cjs.finite(chart.config?.customLabelSize, Math.max(9, chunkQL7MNEMT_cjs.finite(chart.fontSize, 12)) - 2)),
5928
+ fontSize: Math.max(6, chunkC25NWWIH_cjs.finite(chart.config?.customLabelSize, Math.max(9, chunkC25NWWIH_cjs.finite(chart.fontSize, 12)) - 2)),
5929
5929
  ...chart.config?.customLabelColor ? { color: chart.config.customLabelColor } : {}
5930
5930
  };
5931
5931
  }
@@ -5937,8 +5937,8 @@ function classifyFieldData(context) {
5937
5937
  const vectorSeries = chart.series.filter((series) => tupleSize(series.values[0]) === 4);
5938
5938
  const scalarSamples = scalarSeries.flatMap(
5939
5939
  (series) => series.values.map(([x, y, value]) => ({
5940
- x: chunkQL7MNEMT_cjs.mapChartValue(x, chart.axisX, plot.width),
5941
- y: plot.height - chunkQL7MNEMT_cjs.mapChartValue(y, chart.axisY, plot.height),
5940
+ x: chunkC25NWWIH_cjs.mapChartValue(x, chart.axisX, plot.width),
5941
+ y: plot.height - chunkC25NWWIH_cjs.mapChartValue(y, chart.axisY, plot.height),
5942
5942
  value
5943
5943
  }))
5944
5944
  );
@@ -6002,20 +6002,20 @@ function createLegendLabels(context, minimum, maximum, geometry) {
6002
6002
  const { chart, bounds, nextOrder } = context;
6003
6003
  const y = geometry.y + geometry.height + 3;
6004
6004
  return [
6005
- chunkQL7MNEMT_cjs.chartText({
6005
+ chunkC25NWWIH_cjs.chartText({
6006
6006
  id: `chart-field-colorbar-min-${chart.id}`,
6007
6007
  order: nextOrder(),
6008
6008
  bounds,
6009
6009
  frame: { x: geometry.x, y, width: 80, height: 16 },
6010
- text: chunkQL7MNEMT_cjs.formatFieldValue(minimum),
6010
+ text: chunkC25NWWIH_cjs.formatFieldValue(minimum),
6011
6011
  chart
6012
6012
  }),
6013
- chunkQL7MNEMT_cjs.chartText({
6013
+ chunkC25NWWIH_cjs.chartText({
6014
6014
  id: `chart-field-colorbar-max-${chart.id}`,
6015
6015
  order: nextOrder(),
6016
6016
  bounds,
6017
6017
  frame: { x: geometry.x + geometry.width - 80, y, width: 80, height: 16 },
6018
- text: chunkQL7MNEMT_cjs.formatFieldValue(maximum),
6018
+ text: chunkC25NWWIH_cjs.formatFieldValue(maximum),
6019
6019
  chart,
6020
6020
  align: "right"
6021
6021
  })
@@ -6028,7 +6028,7 @@ function colorAtRamp(ramp, value) {
6028
6028
  if (!ramp?.stops.length) {
6029
6029
  return RAMP_FALLBACK_COLOR;
6030
6030
  }
6031
- return chunkQL7MNEMT_cjs.interpolateHexColorStops(ramp.stops, value);
6031
+ return chunkC25NWWIH_cjs.interpolateHexColorStops(ramp.stops, value);
6032
6032
  }
6033
6033
 
6034
6034
  // src/renderScene/charts/field/isolines.ts
@@ -6238,7 +6238,7 @@ function createIsoline(context, grid, threshold, thresholdIndex) {
6238
6238
  }
6239
6239
  const chains = stitchIsolineSegments(segments);
6240
6240
  const path = chains.map(
6241
- (chain) => chunkQL7MNEMT_cjs.linePathData(
6241
+ (chain) => chunkC25NWWIH_cjs.linePathData(
6242
6242
  chain.map(([x, y]) => ({ x: plot.x + x, y: plot.y + y })),
6243
6243
  ISOLINE_TENSION
6244
6244
  )
@@ -6262,7 +6262,7 @@ function createIsoline(context, grid, threshold, thresholdIndex) {
6262
6262
  function renderVectorField(context, seriesList) {
6263
6263
  const nodes = [];
6264
6264
  seriesList.forEach((series, seriesIndex) => {
6265
- const color = series.color ?? chunkQL7MNEMT_cjs.CHART_COLORS[seriesIndex % chunkQL7MNEMT_cjs.CHART_COLORS.length];
6265
+ const color = series.color ?? chunkC25NWWIH_cjs.CHART_COLORS[seriesIndex % chunkC25NWWIH_cjs.CHART_COLORS.length];
6266
6266
  series.values.forEach((vector, vectorIndex) => {
6267
6267
  nodes.push(createVectorNode(context, series.id, vector, vectorIndex, color));
6268
6268
  });
@@ -6272,10 +6272,10 @@ function renderVectorField(context, seriesList) {
6272
6272
  function createVectorNode(context, seriesId, vector, vectorIndex, color) {
6273
6273
  const { chart, plot, bounds, diagnostics, nextOrder } = context;
6274
6274
  const [x, y, angle, magnitude] = vector;
6275
- const startX = plot.x + chunkQL7MNEMT_cjs.mapChartValue(x, chart.axisX, plot.width);
6276
- const startY = plot.y + plot.height - chunkQL7MNEMT_cjs.mapChartValue(y, chart.axisY, plot.height);
6277
- const endX = plot.x + chunkQL7MNEMT_cjs.mapChartValue(x + Math.cos(angle) * magnitude, chart.axisX, plot.width);
6278
- const endY = plot.y + plot.height - chunkQL7MNEMT_cjs.mapChartValue(y + Math.sin(angle) * magnitude, chart.axisY, plot.height);
6275
+ const startX = plot.x + chunkC25NWWIH_cjs.mapChartValue(x, chart.axisX, plot.width);
6276
+ const startY = plot.y + plot.height - chunkC25NWWIH_cjs.mapChartValue(y, chart.axisY, plot.height);
6277
+ const endX = plot.x + chunkC25NWWIH_cjs.mapChartValue(x + Math.cos(angle) * magnitude, chart.axisX, plot.width);
6278
+ const endY = plot.y + plot.height - chunkC25NWWIH_cjs.mapChartValue(y + Math.sin(angle) * magnitude, chart.axisY, plot.height);
6279
6279
  return {
6280
6280
  type: "path",
6281
6281
  id: `chart-field-vector-${chart.id}-${seriesId}-${vectorIndex}`,
@@ -6285,7 +6285,7 @@ function createVectorNode(context, seriesId, vector, vectorIndex, color) {
6285
6285
  markerEnd: "filled_arrow",
6286
6286
  style: {
6287
6287
  fill: { kind: "none" },
6288
- stroke: chunkQL7MNEMT_cjs.paint(color, diagnostics, chart.id),
6288
+ stroke: chunkC25NWWIH_cjs.paint(color, diagnostics, chart.id),
6289
6289
  strokeWidth: 2
6290
6290
  }
6291
6291
  };
@@ -6332,7 +6332,7 @@ function createHeatmapCell(layout, series, rowIndex, columnIndex) {
6332
6332
  };
6333
6333
  }
6334
6334
  function colorForValue(value, layout) {
6335
- return chunkQL7MNEMT_cjs.zoneColorAtValue(value, layout.bands, layout.zones);
6335
+ return chunkC25NWWIH_cjs.zoneColorAtValue(value, layout.bands, layout.zones);
6336
6336
  }
6337
6337
  function renderHeatmapCell(context, layout, cell) {
6338
6338
  const background = createCellBackground(context, layout, cell);
@@ -6347,7 +6347,7 @@ function createCellBackground(context, layout, cell) {
6347
6347
  const style = {
6348
6348
  fill: { kind: "solid", color: cell.color },
6349
6349
  stroke: { kind: "solid", color: chart.config?.cellStrokeColor ?? chart.gridColor ?? "#e2e8f0" },
6350
- strokeWidth: chunkQL7MNEMT_cjs.finite(chart.config?.cellStrokeWidth, chunkQL7MNEMT_cjs.finite(chart.gridWidth, 1))
6350
+ strokeWidth: chunkC25NWWIH_cjs.finite(chart.config?.cellStrokeWidth, chunkC25NWWIH_cjs.finite(chart.gridWidth, 1))
6351
6351
  };
6352
6352
  if (chart.config?.cellShape === "circle") {
6353
6353
  return {
@@ -6374,9 +6374,9 @@ function createCellBackground(context, layout, cell) {
6374
6374
  }
6375
6375
  function createCellValueLabel(context, layout, cell) {
6376
6376
  const { chart, bounds, nextOrder } = context;
6377
- const size = Math.max(6, chunkQL7MNEMT_cjs.finite(chart.config?.cellValueSize, layout.fontSize));
6377
+ const size = Math.max(6, chunkC25NWWIH_cjs.finite(chart.config?.cellValueSize, layout.fontSize));
6378
6378
  return {
6379
- ...chunkQL7MNEMT_cjs.chartText({
6379
+ ...chunkC25NWWIH_cjs.chartText({
6380
6380
  id: `chart-heatmap-value-${chart.id}-${cell.seriesId}-${cell.columnIndex}`,
6381
6381
  order: nextOrder(),
6382
6382
  bounds,
@@ -6391,7 +6391,7 @@ function createCellValueLabel(context, layout, cell) {
6391
6391
  align: "center"
6392
6392
  }),
6393
6393
  ...chart.config?.cellValueSize === void 0 ? {} : { fontSize: size },
6394
- color: chart.config?.cellValueColor ?? chunkQL7MNEMT_cjs.contrastTextColor(cell.color)
6394
+ color: chart.config?.cellValueColor ?? chunkC25NWWIH_cjs.contrastTextColor(cell.color)
6395
6395
  };
6396
6396
  }
6397
6397
 
@@ -6404,9 +6404,9 @@ function createHeatmapLayout(context) {
6404
6404
  return {
6405
6405
  rows: chart.series,
6406
6406
  columns,
6407
- bands: chunkQL7MNEMT_cjs.axisBands(chart.axisY),
6408
- zones: chart.config?.zones?.length ? chart.config.zones : chunkQL7MNEMT_cjs.DEFAULT_HEATMAP_ZONES,
6409
- fontSize: Math.max(9, chunkQL7MNEMT_cjs.finite(chart.fontSize, 12)),
6407
+ bands: chunkC25NWWIH_cjs.axisBands(chart.axisY),
6408
+ zones: chart.config?.zones?.length ? chart.config.zones : chunkC25NWWIH_cjs.DEFAULT_HEATMAP_ZONES,
6409
+ fontSize: Math.max(9, chunkC25NWWIH_cjs.finite(chart.fontSize, 12)),
6410
6410
  headerFontSize: headerFontSize(chart),
6411
6411
  legendGap: legendGap(chart),
6412
6412
  sides,
@@ -6414,10 +6414,10 @@ function createHeatmapLayout(context) {
6414
6414
  grid: createHeatmapGrid(context, reservedSpace, sides, columns.length)
6415
6415
  };
6416
6416
  }
6417
- var headerFontSize = (chart) => Math.max(9, chunkQL7MNEMT_cjs.finite(chart.axisFontSize ?? chart.fontSize, 12));
6418
- var rowGap = (chart) => Math.min(120, Math.max(0, chunkQL7MNEMT_cjs.finite(chart.yLabelGap, 6)));
6419
- var columnGap = (chart) => Math.min(120, Math.max(0, chunkQL7MNEMT_cjs.finite(chart.xLabelGap, 4)));
6420
- var legendGap = (chart) => Math.min(80, Math.max(0, chunkQL7MNEMT_cjs.finite(chart.legendGap, 6)));
6417
+ var headerFontSize = (chart) => Math.max(9, chunkC25NWWIH_cjs.finite(chart.axisFontSize ?? chart.fontSize, 12));
6418
+ var rowGap = (chart) => Math.min(120, Math.max(0, chunkC25NWWIH_cjs.finite(chart.yLabelGap, 6)));
6419
+ var columnGap = (chart) => Math.min(120, Math.max(0, chunkC25NWWIH_cjs.finite(chart.xLabelGap, 4)));
6420
+ var legendGap = (chart) => Math.min(80, Math.max(0, chunkC25NWWIH_cjs.finite(chart.legendGap, 6)));
6421
6421
  function heatmapSides(context) {
6422
6422
  const { chart } = context;
6423
6423
  return {
@@ -6436,7 +6436,7 @@ function heatmapReservedSpace(context, sides) {
6436
6436
  const { chart } = context;
6437
6437
  const fontSize = headerFontSize(chart);
6438
6438
  const longestLabel = chart.series.reduce(
6439
- (max, series) => Math.max(max, chunkQL7MNEMT_cjs.estimateTextWidth(series.label ?? "", fontSize, false)),
6439
+ (max, series) => Math.max(max, chunkC25NWWIH_cjs.estimateTextWidth(series.label ?? "", fontSize, false)),
6440
6440
  0
6441
6441
  );
6442
6442
  const vertical = sides.legend === "left" || sides.legend === "right";
@@ -6452,8 +6452,8 @@ function heatmapReservedSpace(context, sides) {
6452
6452
  }
6453
6453
  function columnHeaderRoom(context) {
6454
6454
  const { chart } = context;
6455
- const tilt = chunkQL7MNEMT_cjs.labelTilt(chart);
6456
- return tilt > 0 ? Math.min(context.plot.height * 0.4, chunkQL7MNEMT_cjs.tiltedLabelRoom(chart, heatmapColumns(context), tilt) + columnGap(chart) + 4) : headerFontSize(chart) + 2 + columnGap(chart) + 6;
6455
+ const tilt = chunkC25NWWIH_cjs.labelTilt(chart);
6456
+ return tilt > 0 ? Math.min(context.plot.height * 0.4, chunkC25NWWIH_cjs.tiltedLabelRoom(chart, heatmapColumns(context), tilt) + columnGap(chart) + 4) : headerFontSize(chart) + 2 + columnGap(chart) + 6;
6457
6457
  }
6458
6458
  function createHeatmapGrid(context, reservedSpace, sides, columnCount) {
6459
6459
  const { chart } = context;
@@ -6464,7 +6464,7 @@ function createHeatmapGrid(context, reservedSpace, sides, columnCount) {
6464
6464
  const width = Math.max(1, context.plot.width - left - right);
6465
6465
  const height = Math.max(1, context.plot.height - top - bottom);
6466
6466
  const rowCount = chart.series.length;
6467
- const cellGap = Math.max(0, chunkQL7MNEMT_cjs.finite(chart.config?.cellGap, 0));
6467
+ const cellGap = Math.max(0, chunkC25NWWIH_cjs.finite(chart.config?.cellGap, 0));
6468
6468
  let cellWidth = columnCount ? width / columnCount : width;
6469
6469
  let cellHeight = rowCount ? height / rowCount : height;
6470
6470
  let gridWidth = width;
@@ -6484,7 +6484,7 @@ function createHeatmapGrid(context, reservedSpace, sides, columnCount) {
6484
6484
  cellWidth,
6485
6485
  cellHeight,
6486
6486
  cellGap,
6487
- cellRadius: Math.max(0, chunkQL7MNEMT_cjs.finite(chart.config?.barCornerRadius, cellGap))
6487
+ cellRadius: Math.max(0, chunkC25NWWIH_cjs.finite(chart.config?.barCornerRadius, cellGap))
6488
6488
  };
6489
6489
  }
6490
6490
 
@@ -6503,7 +6503,7 @@ function createRowHeader(context, layout, series, rowIndex) {
6503
6503
  const room = layout.reservedSpace.rowHeaders;
6504
6504
  const gap = rowGap(chart);
6505
6505
  const x = layout.sides.rows === "left" ? layout.grid.x - room : layout.grid.x + layout.grid.width + gap;
6506
- return chunkQL7MNEMT_cjs.chartText({
6506
+ return chunkC25NWWIH_cjs.chartText({
6507
6507
  id: `chart-heatmap-row-${chart.id}-${series.id}`,
6508
6508
  order: nextOrder(),
6509
6509
  bounds,
@@ -6529,12 +6529,12 @@ function createColumnHeader(context, layout, label, columnIndex) {
6529
6529
  const { chart, bounds, nextOrder } = context;
6530
6530
  const above = layout.sides.columns === "top";
6531
6531
  const centerX = layout.grid.x + (columnIndex + 0.5) * layout.grid.cellWidth;
6532
- const tilt = chunkQL7MNEMT_cjs.labelTilt(chart);
6532
+ const tilt = chunkC25NWWIH_cjs.labelTilt(chart);
6533
6533
  const gap = columnGap(chart);
6534
6534
  const id = `chart-heatmap-col-${chart.id}-${columnIndex}`;
6535
6535
  if (tilt > 0) {
6536
- const { frame, rotation } = above ? chunkQL7MNEMT_cjs.labelAboveFrame(chart, label, tilt, { x: centerX, y: layout.grid.y - gap }) : chunkQL7MNEMT_cjs.labelBelowFrame(chart, label, tilt, { x: centerX, y: layout.grid.y + layout.grid.height + gap });
6537
- return chunkQL7MNEMT_cjs.chartText({
6536
+ const { frame, rotation } = above ? chunkC25NWWIH_cjs.labelAboveFrame(chart, label, tilt, { x: centerX, y: layout.grid.y - gap }) : chunkC25NWWIH_cjs.labelBelowFrame(chart, label, tilt, { x: centerX, y: layout.grid.y + layout.grid.height + gap });
6537
+ return chunkC25NWWIH_cjs.chartText({
6538
6538
  id,
6539
6539
  order: nextOrder(),
6540
6540
  bounds,
@@ -6546,7 +6546,7 @@ function createColumnHeader(context, layout, label, columnIndex) {
6546
6546
  role: "axis"
6547
6547
  });
6548
6548
  }
6549
- return chunkQL7MNEMT_cjs.chartText({
6549
+ return chunkC25NWWIH_cjs.chartText({
6550
6550
  id,
6551
6551
  order: nextOrder(),
6552
6552
  bounds,
@@ -6624,7 +6624,7 @@ function renderHeatmapLegend(context, layout) {
6624
6624
  return [];
6625
6625
  }
6626
6626
  const place = barPlace(layout);
6627
- const barBounds = chunkQL7MNEMT_cjs.boxBounds({ x: place.x, y: place.y, width: place.width, height: place.height });
6627
+ const barBounds = chunkC25NWWIH_cjs.boxBounds({ x: place.x, y: place.y, width: place.width, height: place.height });
6628
6628
  return [createGradientBar(context, layout, place, barBounds), ...createBoundaryTicks(context, layout, place)];
6629
6629
  }
6630
6630
  function bandRatio(layout, value) {
@@ -6638,7 +6638,7 @@ function createGradientBar(context, layout, place, barBounds) {
6638
6638
  const zones = layout.zones.slice(0, bandCount);
6639
6639
  const stops = zones.map((zone, index) => ({
6640
6640
  offset: bandRatio(layout, layout.bands[index + 1] ?? layout.bands[layout.bands.length - 1]) * 100,
6641
- color: zone.color ?? chunkQL7MNEMT_cjs.DEFAULT_ZONE_FILL
6641
+ color: zone.color ?? chunkC25NWWIH_cjs.DEFAULT_ZONE_FILL
6642
6642
  }));
6643
6643
  return {
6644
6644
  type: "rect",
@@ -6653,7 +6653,7 @@ function createGradientBar(context, layout, place, barBounds) {
6653
6653
  zoneGradient: { axis: "y", min: chart.axisY.min, max: chart.axisY.max },
6654
6654
  style: {
6655
6655
  // Across the grid it runs from the lowest value on the left; beside it from the lowest at the bottom.
6656
- fill: stops.length ? { kind: "linear-gradient", angle: place.vertical ? 270 : 0, stops } : { kind: "solid", color: chunkQL7MNEMT_cjs.DEFAULT_ZONE_FILL },
6656
+ fill: stops.length ? { kind: "linear-gradient", angle: place.vertical ? 270 : 0, stops } : { kind: "solid", color: chunkC25NWWIH_cjs.DEFAULT_ZONE_FILL },
6657
6657
  stroke: { kind: "solid", color: chart.gridColor ?? "#e2e8f0" },
6658
6658
  strokeWidth: 1
6659
6659
  }
@@ -6679,12 +6679,12 @@ function createBoundaryTicks(context, layout, place) {
6679
6679
  strokeWidth: 1
6680
6680
  }
6681
6681
  };
6682
- const label = chunkQL7MNEMT_cjs.chartText({
6682
+ const label = chunkC25NWWIH_cjs.chartText({
6683
6683
  id: `chart-heatmap-legend-tick-label-${chart.id}-${index}`,
6684
6684
  order: nextOrder(),
6685
6685
  bounds,
6686
6686
  ...labelAt(place, at, index === 0, index === lastIndex, labelHeight),
6687
- text: chunkQL7MNEMT_cjs.formatFieldValue(value),
6687
+ text: chunkC25NWWIH_cjs.formatFieldValue(value),
6688
6688
  chart
6689
6689
  });
6690
6690
  return [tick, label];
@@ -7051,22 +7051,22 @@ function renderHexbin(context) {
7051
7051
  const { chart, plot, bounds, diagnostics, nextOrder } = context;
7052
7052
  const nodes = [];
7053
7053
  const config = chart.config;
7054
- const hexRadius = Math.max(1, config?.hexRadius ?? chunkQL7MNEMT_cjs.DEFAULT_HEX_RADIUS);
7054
+ const hexRadius = Math.max(1, config?.hexRadius ?? chunkC25NWWIH_cjs.DEFAULT_HEX_RADIUS);
7055
7055
  const drawRadius = Math.max(0.5, hexRadius - Math.max(0, config?.hexGap ?? 0) * GAP_TO_RADIUS);
7056
7056
  const strokeWidth = config?.hexStrokeWidth ?? 0;
7057
7057
  const minOpacity = Math.min(1, Math.max(0, config?.hexMinOpacity ?? DEFAULT_MIN_OPACITY));
7058
- const shadow = chunkQL7MNEMT_cjs.resolveChartShadow(chart.shadowStyle);
7058
+ const shadow = chunkC25NWWIH_cjs.resolveChartShadow(chart.shadowStyle);
7059
7059
  const clipPath = shadow ? `M ${plot.x} ${plot.y} H ${plot.x + plot.width} V ${plot.y + plot.height} H ${plot.x} Z` : void 0;
7060
7060
  chart.series.forEach((series, seriesIndex) => {
7061
7061
  const explicit = series.values.length > 0 && Array.isArray(series.values[0]);
7062
7062
  const pairs = explicit ? series.values : series.values.map((y, i) => [chart.axisX.min + i * chart.axisX.step, y]);
7063
7063
  const pixelPoints2 = pairs.map(([vx, vy]) => ({
7064
- x: chunkQL7MNEMT_cjs.mapChartValue(vx, chart.axisX, plot.width),
7065
- y: plot.height - chunkQL7MNEMT_cjs.mapChartValue(vy, chart.axisY, plot.height)
7064
+ x: chunkC25NWWIH_cjs.mapChartValue(vx, chart.axisX, plot.width),
7065
+ y: plot.height - chunkC25NWWIH_cjs.mapChartValue(vy, chart.axisY, plot.height)
7066
7066
  }));
7067
7067
  const bins = computeHexBins(pixelPoints2, hexRadius);
7068
7068
  const maxCount = Math.max(1, ...bins.map((bin) => bin.count));
7069
- const color = series.color ?? chunkQL7MNEMT_cjs.CHART_COLORS[seriesIndex % chunkQL7MNEMT_cjs.CHART_COLORS.length];
7069
+ const color = series.color ?? chunkC25NWWIH_cjs.CHART_COLORS[seriesIndex % chunkC25NWWIH_cjs.CHART_COLORS.length];
7070
7070
  const ramp = config?.scale;
7071
7071
  bins.forEach((bin, i) => {
7072
7072
  const share = bin.count / maxCount;
@@ -7078,8 +7078,8 @@ function renderHexbin(context) {
7078
7078
  bounds,
7079
7079
  d: hexPath(plot.x + bin.cx, plot.y + bin.cy, drawRadius),
7080
7080
  style: {
7081
- fill: chunkQL7MNEMT_cjs.paint(fill2, diagnostics, chart.id),
7082
- stroke: strokeWidth > 0 ? chunkQL7MNEMT_cjs.paint(config?.hexStrokeColor ?? fill2, diagnostics, chart.id) : void 0,
7081
+ fill: chunkC25NWWIH_cjs.paint(fill2, diagnostics, chart.id),
7082
+ stroke: strokeWidth > 0 ? chunkC25NWWIH_cjs.paint(config?.hexStrokeColor ?? fill2, diagnostics, chart.id) : void 0,
7083
7083
  strokeWidth: strokeWidth > 0 ? strokeWidth : void 0,
7084
7084
  opacity: ramp ? void 0 : Math.max(minOpacity, share),
7085
7085
  shadow,
@@ -7101,8 +7101,8 @@ function seriesValuePairs(chart, series) {
7101
7101
  function pixelPoints(context, pairs) {
7102
7102
  const { chart, plot } = context;
7103
7103
  return pairs.map(([x, y]) => ({
7104
- x: plot.x + chunkQL7MNEMT_cjs.mapChartValue(x, chart.axisX, plot.width),
7105
- y: plot.y + plot.height - chunkQL7MNEMT_cjs.mapChartValue(y, chart.axisY, plot.height)
7104
+ x: plot.x + chunkC25NWWIH_cjs.mapChartValue(x, chart.axisX, plot.width),
7105
+ y: plot.y + plot.height - chunkC25NWWIH_cjs.mapChartValue(y, chart.axisY, plot.height)
7106
7106
  }));
7107
7107
  }
7108
7108
 
@@ -7112,7 +7112,7 @@ function createLineAreaFill(context, series, points, color, tension, areaOpacity
7112
7112
  const baselineY = plot.y + plot.height;
7113
7113
  const first = points[0];
7114
7114
  const last = points[points.length - 1];
7115
- const d = `${chunkQL7MNEMT_cjs.linePathData(points, tension)} L ${last.x} ${baselineY} L ${first.x} ${baselineY} Z`;
7115
+ const d = `${chunkC25NWWIH_cjs.linePathData(points, tension)} L ${last.x} ${baselineY} L ${first.x} ${baselineY} Z`;
7116
7116
  const top = Math.min(...points.map((point) => point.y));
7117
7117
  const centerX = (Math.min(...points.map((point) => point.x)) + Math.max(...points.map((point) => point.x))) / 2;
7118
7118
  const halfHeight = (baselineY - top) / 2;
@@ -7134,8 +7134,8 @@ function createLineAreaFill(context, series, points, color, tension, areaOpacity
7134
7134
  kind: "linear-gradient",
7135
7135
  angle: 90,
7136
7136
  stops: [
7137
- { offset: 0, color: chunkQL7MNEMT_cjs.colorWithAlpha(color, areaOpacity) },
7138
- { offset: 100, color: chunkQL7MNEMT_cjs.colorWithAlpha(color, 0) }
7137
+ { offset: 0, color: chunkC25NWWIH_cjs.colorWithAlpha(color, areaOpacity) },
7138
+ { offset: 100, color: chunkC25NWWIH_cjs.colorWithAlpha(color, 0) }
7139
7139
  ]
7140
7140
  },
7141
7141
  stroke: { kind: "none" },
@@ -7158,7 +7158,7 @@ function guideNode(context, mark) {
7158
7158
  d: `M ${mark.point.x} ${mark.point.y} V ${plot.y + plot.height}`,
7159
7159
  style: {
7160
7160
  fill: { kind: "none" },
7161
- stroke: chunkQL7MNEMT_cjs.paint(mark.color, diagnostics, chart.id),
7161
+ stroke: chunkC25NWWIH_cjs.paint(mark.color, diagnostics, chart.id),
7162
7162
  strokeWidth: 1,
7163
7163
  dash: [3, 4],
7164
7164
  opacity: 0.55,
@@ -7179,7 +7179,7 @@ function dotNode(context, mark) {
7179
7179
  rx: mark.radius,
7180
7180
  ry: mark.radius,
7181
7181
  style: {
7182
- fill: chunkQL7MNEMT_cjs.paint(mark.color, diagnostics, chart.id),
7182
+ fill: chunkC25NWWIH_cjs.paint(mark.color, diagnostics, chart.id),
7183
7183
  shadow: glow ? { color: mark.color, opacity: 0.9, blur: glow, dx: 0, dy: 0 } : void 0,
7184
7184
  pointerEvents: "none"
7185
7185
  }
@@ -7192,7 +7192,7 @@ function labelNode3(context, mark, value) {
7192
7192
  const text = formatHighlight(config?.highlightLabelFormat, config?.categories?.[mark.index] ?? "", value);
7193
7193
  const width = Math.max(48, text.length * fontSize * 0.62);
7194
7194
  return {
7195
- ...chunkQL7MNEMT_cjs.chartText({
7195
+ ...chunkC25NWWIH_cjs.chartText({
7196
7196
  id: `chart-highlight-label-${mark.key}`,
7197
7197
  order: nextOrder(),
7198
7198
  bounds,
@@ -7272,15 +7272,15 @@ function createLineError(context, mark) {
7272
7272
  return null;
7273
7273
  }
7274
7274
  const { chart, plot, bounds, nextOrder } = context;
7275
- const [lower, upper] = chunkQL7MNEMT_cjs.errorBarRange(mark.value, mark.error);
7276
- return chunkQL7MNEMT_cjs.createVerticalErrorWhiskerNode({
7275
+ const [lower, upper] = chunkC25NWWIH_cjs.errorBarRange(mark.value, mark.error);
7276
+ return chunkC25NWWIH_cjs.createVerticalErrorWhiskerNode({
7277
7277
  id: `chart-line-error-${chart.id}-${mark.seriesId}-${mark.valueIndex}`,
7278
7278
  order: nextOrder(),
7279
7279
  bounds,
7280
7280
  geometry: {
7281
7281
  centerX: mark.position.x,
7282
- startY: plot.y + plot.height - chunkQL7MNEMT_cjs.mapChartValue(lower, chart.axisY, plot.height),
7283
- endY: plot.y + plot.height - chunkQL7MNEMT_cjs.mapChartValue(upper, chart.axisY, plot.height)
7282
+ startY: plot.y + plot.height - chunkC25NWWIH_cjs.mapChartValue(lower, chart.axisY, plot.height),
7283
+ endY: plot.y + plot.height - chunkC25NWWIH_cjs.mapChartValue(upper, chart.axisY, plot.height)
7284
7284
  },
7285
7285
  color: mark.color,
7286
7286
  valueReference: { seriesId: mark.seriesId, valueIndex: mark.valueIndex }
@@ -7304,8 +7304,8 @@ function createLinePoint(context, mark) {
7304
7304
  ry: visible ? radius : 6,
7305
7305
  detail: { of: "chartValue", series: mark.seriesId, valueIndex: mark.valueIndex },
7306
7306
  style: {
7307
- fill: visible ? chunkQL7MNEMT_cjs.paint(fill2, diagnostics, chart.id) : { kind: "none" },
7308
- stroke: visible && strokeWidth > 0 ? chunkQL7MNEMT_cjs.paint(mark.color, diagnostics, chart.id) : void 0,
7307
+ fill: visible ? chunkC25NWWIH_cjs.paint(fill2, diagnostics, chart.id) : { kind: "none" },
7308
+ stroke: visible && strokeWidth > 0 ? chunkC25NWWIH_cjs.paint(mark.color, diagnostics, chart.id) : void 0,
7309
7309
  strokeWidth: visible && strokeWidth > 0 ? strokeWidth : void 0,
7310
7310
  pointerEvents: visible ? void 0 : "all"
7311
7311
  }
@@ -7325,22 +7325,22 @@ function createLinePath(context, series, points, color, tension) {
7325
7325
  order: nextOrder(),
7326
7326
  bounds: gradient ? { minX: plot.x, maxX: plot.x + plot.width, minY: plot.y, maxY: plot.y + plot.height } : bounds,
7327
7327
  detail: { of: "chartSeries", series: series.id, lineTension: tension || void 0 },
7328
- d: chunkQL7MNEMT_cjs.linePathData(points, tension),
7328
+ d: chunkC25NWWIH_cjs.linePathData(points, tension),
7329
7329
  style: {
7330
7330
  fill: { kind: "none" },
7331
- stroke: chunkQL7MNEMT_cjs.paint(gradient ?? color, diagnostics, chart.id),
7331
+ stroke: chunkC25NWWIH_cjs.paint(gradient ?? color, diagnostics, chart.id),
7332
7332
  strokeWidth: series.strokeWidth ?? config?.lineWidth ?? 2,
7333
7333
  dash: series.dash,
7334
7334
  lineCap: config?.lineWidth === void 0 ? void 0 : "round",
7335
7335
  lineJoin: "round",
7336
- shadow: glow ? { color, opacity: 0.9, blur: glow, dx: 0, dy: 0 } : chunkQL7MNEMT_cjs.resolveChartShadow(chart.shadowStyle)
7336
+ shadow: glow ? { color, opacity: 0.9, blur: glow, dx: 0, dy: 0 } : chunkC25NWWIH_cjs.resolveChartShadow(chart.shadowStyle)
7337
7337
  }
7338
7338
  };
7339
7339
  }
7340
7340
 
7341
7341
  // src/renderScene/charts/renderers/line/series.ts
7342
7342
  function seriesColor(series, seriesIndex) {
7343
- return chunkQL7MNEMT_cjs.representativeColor(series.color, chunkQL7MNEMT_cjs.CHART_COLORS[seriesIndex % chunkQL7MNEMT_cjs.CHART_COLORS.length]);
7343
+ return chunkC25NWWIH_cjs.representativeColor(series.color, chunkC25NWWIH_cjs.CHART_COLORS[seriesIndex % chunkC25NWWIH_cjs.CHART_COLORS.length]);
7344
7344
  }
7345
7345
  function renderLineSeriesArea(context, series, seriesIndex) {
7346
7346
  const areaOpacity = context.chart.config?.areaOpacity;
@@ -7404,7 +7404,7 @@ function renderGridLines(context, layout) {
7404
7404
  style: {
7405
7405
  fill: { kind: "none" },
7406
7406
  stroke: { kind: "solid", color: chart.gridColor ?? "#e2e8f0" },
7407
- strokeWidth: chunkQL7MNEMT_cjs.finite(chart.gridWidth, 1)
7407
+ strokeWidth: chunkC25NWWIH_cjs.finite(chart.gridWidth, 1)
7408
7408
  }
7409
7409
  };
7410
7410
  });
@@ -7412,7 +7412,7 @@ function renderGridLines(context, layout) {
7412
7412
  function renderPercentageLabels(context, layout) {
7413
7413
  const { chart, plot, bounds, nextOrder } = context;
7414
7414
  return PERCENT_TICKS.map((percent) => ({
7415
- ...chunkQL7MNEMT_cjs.chartText({
7415
+ ...chunkC25NWWIH_cjs.chartText({
7416
7416
  id: `chart-mekko-pct-${chart.id}-${percent}`,
7417
7417
  order: nextOrder(),
7418
7418
  bounds,
@@ -7444,7 +7444,7 @@ function renderMekkoColumnLabels(context, layout, columnIndex, column) {
7444
7444
  function createTotalLabel(context, layout, columnIndex, column) {
7445
7445
  const { chart, plot, bounds, nextOrder } = context;
7446
7446
  return {
7447
- ...chunkQL7MNEMT_cjs.chartText({
7447
+ ...chunkC25NWWIH_cjs.chartText({
7448
7448
  id: `chart-mekko-total-${chart.id}-${columnIndex}`,
7449
7449
  order: nextOrder(),
7450
7450
  bounds,
@@ -7465,7 +7465,7 @@ function createColumnLabel(context, layout, columnIndex, column) {
7465
7465
  const { chart, bounds, nextOrder } = context;
7466
7466
  const { label, width } = column;
7467
7467
  return {
7468
- ...chunkQL7MNEMT_cjs.chartText({
7468
+ ...chunkC25NWWIH_cjs.chartText({
7469
7469
  id: `chart-mekko-col-label-${chart.id}-${columnIndex}`,
7470
7470
  order: nextOrder(),
7471
7471
  bounds,
@@ -7479,7 +7479,7 @@ function createColumnLabel(context, layout, columnIndex, column) {
7479
7479
  chart,
7480
7480
  align: "center"
7481
7481
  }),
7482
- lines: chunkQL7MNEMT_cjs.wrapText(label, width, layout.smallFontSize),
7482
+ lines: chunkC25NWWIH_cjs.wrapText(label, width, layout.smallFontSize),
7483
7483
  fontSize: layout.smallFontSize
7484
7484
  };
7485
7485
  }
@@ -7489,8 +7489,8 @@ function createMekkoLayout(context) {
7489
7489
  const labels = mekkoColumnLabels(context);
7490
7490
  const labelGutterWidth = context.showLabels ? 30 : 0;
7491
7491
  const grid = createMekkoGrid(context, labelGutterWidth);
7492
- const fontSize = Math.max(9, chunkQL7MNEMT_cjs.finite(context.chart.fontSize, 12));
7493
- const columnGap2 = Math.max(0, chunkQL7MNEMT_cjs.finite(context.chart.config?.mekkoColumnGap, 4));
7492
+ const fontSize = Math.max(9, chunkC25NWWIH_cjs.finite(context.chart.fontSize, 12));
7493
+ const columnGap2 = Math.max(0, chunkC25NWWIH_cjs.finite(context.chart.config?.mekkoColumnGap, 4));
7494
7494
  const smallFontSize = Math.max(8, fontSize - 1);
7495
7495
  return {
7496
7496
  columns: createMekkoColumns(context, grid, labels, columnGap2),
@@ -7498,8 +7498,8 @@ function createMekkoLayout(context) {
7498
7498
  smallFontSize,
7499
7499
  labelGutterWidth,
7500
7500
  columnGap: columnGap2,
7501
- labelSize: Math.max(6, chunkQL7MNEMT_cjs.finite(context.chart.config?.mekkoLabelSize, smallFontSize)),
7502
- valueSize: Math.max(6, chunkQL7MNEMT_cjs.finite(context.chart.config?.mekkoValueSize, smallFontSize)),
7501
+ labelSize: Math.max(6, chunkC25NWWIH_cjs.finite(context.chart.config?.mekkoLabelSize, smallFontSize)),
7502
+ valueSize: Math.max(6, chunkC25NWWIH_cjs.finite(context.chart.config?.mekkoValueSize, smallFontSize)),
7503
7503
  grid
7504
7504
  };
7505
7505
  }
@@ -7556,12 +7556,12 @@ function createColumnBackdrop(context, layout, columnIndex) {
7556
7556
  id: `chart-mekko-column-backdrop-${chart.id}-${columnIndex}`,
7557
7557
  order: nextOrder(),
7558
7558
  bounds,
7559
- d: chunkQL7MNEMT_cjs.barShapePath(column.x, layout.grid.y, column.width, layout.grid.height, cornerRadius),
7560
- style: { fill: chunkQL7MNEMT_cjs.paint(chart.gridColor ?? "#e2e8f0", diagnostics, chart.id), opacity: BACKDROP_OPACITY }
7559
+ d: chunkC25NWWIH_cjs.barShapePath(column.x, layout.grid.y, column.width, layout.grid.height, cornerRadius),
7560
+ style: { fill: chunkC25NWWIH_cjs.paint(chart.gridColor ?? "#e2e8f0", diagnostics, chart.id), opacity: BACKDROP_OPACITY }
7561
7561
  };
7562
7562
  }
7563
7563
  function mekkoCornerRadius(context) {
7564
- return Math.max(0, chunkQL7MNEMT_cjs.finite(context.chart.config?.barCornerRadius, 2));
7564
+ return Math.max(0, chunkC25NWWIH_cjs.finite(context.chart.config?.barCornerRadius, 2));
7565
7565
  }
7566
7566
  function calculateColumnSegments(seriesList, layout, columnIndex) {
7567
7567
  const segments = [];
@@ -7572,7 +7572,7 @@ function calculateColumnSegments(seriesList, layout, columnIndex) {
7572
7572
  const height = (column.total > 0 ? value / column.total : 0) * column.height;
7573
7573
  const y = column.y + cumulativeHeight;
7574
7574
  cumulativeHeight += height;
7575
- const color = series.color ?? chunkQL7MNEMT_cjs.CHART_COLORS[seriesIndex % chunkQL7MNEMT_cjs.CHART_COLORS.length];
7575
+ const color = series.color ?? chunkC25NWWIH_cjs.CHART_COLORS[seriesIndex % chunkC25NWWIH_cjs.CHART_COLORS.length];
7576
7576
  segments.push({
7577
7577
  columnIndex,
7578
7578
  seriesId: series.id,
@@ -7595,12 +7595,12 @@ function renderSegment(context, layout, segment, nextColor) {
7595
7595
  }
7596
7596
  function createSegmentNode(context, segment, nextColor) {
7597
7597
  const { chart, plot, bounds, diagnostics, nextOrder } = context;
7598
- const shadow = chunkQL7MNEMT_cjs.resolveChartShadow(chart.shadowStyle);
7598
+ const shadow = chunkC25NWWIH_cjs.resolveChartShadow(chart.shadowStyle);
7599
7599
  const clipPath = shadow ? `M ${plot.x} ${plot.y} H ${plot.x + plot.width} V ${plot.y + plot.height} H ${plot.x} Z` : void 0;
7600
7600
  const config = chart.config;
7601
7601
  const radius = segment.isTop || config?.mekkoRoundAll ? mekkoCornerRadius(context) : 0;
7602
7602
  const { x, y, width, height } = segment.frame;
7603
- const segmentGap = Math.max(0, chunkQL7MNEMT_cjs.finite(config?.mekkoSegmentGap, 0));
7603
+ const segmentGap = Math.max(0, chunkC25NWWIH_cjs.finite(config?.mekkoSegmentGap, 0));
7604
7604
  const fallback = "#94a3b8";
7605
7605
  const gradientBounds = {
7606
7606
  minX: x + width / 2 - height / 2,
@@ -7612,20 +7612,20 @@ function createSegmentNode(context, segment, nextColor) {
7612
7612
  kind: "linear-gradient",
7613
7613
  angle: 90,
7614
7614
  stops: [
7615
- { offset: 0, color: chunkQL7MNEMT_cjs.representativeColor(segment.color, fallback) },
7616
- { offset: 100, color: chunkQL7MNEMT_cjs.representativeColor(nextColor, fallback) }
7615
+ { offset: 0, color: chunkC25NWWIH_cjs.representativeColor(segment.color, fallback) },
7616
+ { offset: 100, color: chunkC25NWWIH_cjs.representativeColor(nextColor, fallback) }
7617
7617
  ]
7618
- } : chunkQL7MNEMT_cjs.paint(segment.color, diagnostics, chart.id);
7618
+ } : chunkC25NWWIH_cjs.paint(segment.color, diagnostics, chart.id);
7619
7619
  return {
7620
7620
  type: "path",
7621
7621
  id: `chart-mekko-seg-${chart.id}-${segment.columnIndex}-${segment.seriesId}`,
7622
7622
  order: nextOrder(),
7623
7623
  bounds: nextColor ? gradientBounds : bounds,
7624
- d: chunkQL7MNEMT_cjs.barPath(x, y + segmentGap / 2, width, Math.max(0, height - segmentGap), radius, Boolean(config?.mekkoRoundAll)),
7624
+ d: chunkC25NWWIH_cjs.barPath(x, y + segmentGap / 2, width, Math.max(0, height - segmentGap), radius, Boolean(config?.mekkoRoundAll)),
7625
7625
  style: {
7626
7626
  fill: fill2,
7627
7627
  stroke: { kind: "solid", color: config?.mekkoSegmentStrokeColor ?? chart.gridColor ?? "#e2e8f0" },
7628
- strokeWidth: chunkQL7MNEMT_cjs.finite(config?.mekkoSegmentStrokeWidth, chunkQL7MNEMT_cjs.finite(chart.gridWidth, 1)),
7628
+ strokeWidth: chunkC25NWWIH_cjs.finite(config?.mekkoSegmentStrokeWidth, chunkC25NWWIH_cjs.finite(chart.gridWidth, 1)),
7629
7629
  shadow,
7630
7630
  clip: clipPath ? { type: "path", d: clipPath } : void 0
7631
7631
  }
@@ -7641,17 +7641,17 @@ function createSegmentLabel(context, layout, segment) {
7641
7641
  const innerHeight = Math.max(1, height - 6);
7642
7642
  const lineHeight = layout.labelSize * 1.2;
7643
7643
  const valueHeight = layout.valueSize * 1.2;
7644
- const labelLines = chunkQL7MNEMT_cjs.wrapText(segment.seriesLabel, innerWidth, layout.labelSize).map(
7645
- (line) => chunkQL7MNEMT_cjs.ellipsizeToWidth(line, innerWidth, layout.labelSize, true)
7644
+ const labelLines = chunkC25NWWIH_cjs.wrapText(segment.seriesLabel, innerWidth, layout.labelSize).map(
7645
+ (line) => chunkC25NWWIH_cjs.ellipsizeToWidth(line, innerWidth, layout.labelSize, true)
7646
7646
  );
7647
7647
  if (labelLines.length * lineHeight + valueHeight > innerHeight) {
7648
7648
  return [];
7649
7649
  }
7650
- const textColor = chart.config?.mekkoTextColor ?? chunkQL7MNEMT_cjs.contrastTextColor(chunkQL7MNEMT_cjs.representativeColor(segment.color, "#ffffff"));
7650
+ const textColor = chart.config?.mekkoTextColor ?? chunkC25NWWIH_cjs.contrastTextColor(chunkC25NWWIH_cjs.representativeColor(segment.color, "#ffffff"));
7651
7651
  const columnTotal = layout.columns[segment.columnIndex]?.total ?? 0;
7652
7652
  const valueText = chart.config?.mekkoValueFormat === "percent" ? `${columnTotal > 0 ? Math.round(segment.value / columnTotal * 100) : 0}%` : String(segment.value);
7653
7653
  const label = {
7654
- ...chunkQL7MNEMT_cjs.chartText({
7654
+ ...chunkC25NWWIH_cjs.chartText({
7655
7655
  id: `chart-mekko-seg-label-${chart.id}-${segment.columnIndex}-${segment.seriesId}`,
7656
7656
  order: nextOrder(),
7657
7657
  bounds,
@@ -7665,7 +7665,7 @@ function createSegmentLabel(context, layout, segment) {
7665
7665
  color: textColor
7666
7666
  };
7667
7667
  const valueNode = {
7668
- ...chunkQL7MNEMT_cjs.chartText({
7668
+ ...chunkC25NWWIH_cjs.chartText({
7669
7669
  id: `chart-mekko-seg-value-${chart.id}-${segment.columnIndex}-${segment.seriesId}`,
7670
7670
  order: nextOrder(),
7671
7671
  bounds,
@@ -7698,7 +7698,7 @@ function renderMekko(context) {
7698
7698
 
7699
7699
  // src/renderScene/charts/renderers/pie/center.ts
7700
7700
  function fill(template, chart) {
7701
- const values = chart.series.map((series) => Math.max(0, chunkQL7MNEMT_cjs.finite(series.values[0], 0)));
7701
+ const values = chart.series.map((series) => Math.max(0, chunkC25NWWIH_cjs.finite(series.values[0], 0)));
7702
7702
  const total = values.reduce((sum, value) => sum + value, 0);
7703
7703
  const first = values[0] ?? 0;
7704
7704
  return template.replace(/\{total\}/g, String(Math.round(total * 100) / 100)).replace(/\{percent\}/g, String(total > 0 ? Math.round(first / total * 100) : 0)).replace(/\{label\}/g, chart.series[0]?.label ?? "");
@@ -7710,7 +7710,7 @@ function renderPieCenter(context, geometry) {
7710
7710
  return [];
7711
7711
  }
7712
7712
  const lines = fill(template, chart).split(/\\n|\n/);
7713
- const fontSize = chunkQL7MNEMT_cjs.finite(chart.config?.pieCenterSize, Math.max(14, Math.min(40, geometry.outerRadius * 0.3)));
7713
+ const fontSize = chunkC25NWWIH_cjs.finite(chart.config?.pieCenterSize, Math.max(14, Math.min(40, geometry.outerRadius * 0.3)));
7714
7714
  const lineHeight = fontSize * 1.2;
7715
7715
  const width = Math.max(40, (geometry.innerRadius > 0 ? geometry.innerRadius : geometry.outerRadius * 0.6) * 2);
7716
7716
  const text = {
@@ -7723,7 +7723,7 @@ function renderPieCenter(context, geometry) {
7723
7723
  width,
7724
7724
  height: lineHeight * lines.length,
7725
7725
  lines,
7726
- fontFamily: chart.fontFamily ?? chunkQL7MNEMT_cjs.DEFAULT_FONT,
7726
+ fontFamily: chart.fontFamily ?? chunkC25NWWIH_cjs.DEFAULT_FONT,
7727
7727
  fontSize,
7728
7728
  fontWeight: "bold",
7729
7729
  align: "center",
@@ -7743,14 +7743,14 @@ var radians = (degrees) => degrees * Math.PI / 180;
7743
7743
  function renderPieSlices(context, geometry) {
7744
7744
  const config = context.chart.config;
7745
7745
  const marks = createPieSliceMarks(context.chart.series, geometry.total, {
7746
- start: TOP + radians(chunkQL7MNEMT_cjs.finite(config?.pieStartAngle, 0)),
7747
- sweep: Math.min(FULL, Math.max(radians(1), radians(chunkQL7MNEMT_cjs.finite(config?.pieSweep, 360)))),
7748
- explode: Math.max(0, chunkQL7MNEMT_cjs.finite(config?.pieExplode, 0))
7746
+ start: TOP + radians(chunkC25NWWIH_cjs.finite(config?.pieStartAngle, 0)),
7747
+ sweep: Math.min(FULL, Math.max(radians(1), radians(chunkC25NWWIH_cjs.finite(config?.pieSweep, 360)))),
7748
+ explode: Math.max(0, chunkC25NWWIH_cjs.finite(config?.pieExplode, 0))
7749
7749
  });
7750
7750
  const gapPx = config?.pieSliceGap ?? 0;
7751
7751
  return [
7752
7752
  ...marks.flatMap((mark) => createSliceNodes(context, shiftGeometry(geometry, mark), mark, gapPx)),
7753
- ...chunkQL7MNEMT_cjs.renderPieLabels(
7753
+ ...chunkC25NWWIH_cjs.renderPieLabels(
7754
7754
  context,
7755
7755
  geometry,
7756
7756
  marks.map((mark) => ({
@@ -7782,20 +7782,20 @@ function createPieSliceMarks(seriesList, total, layout) {
7782
7782
  const marks = [];
7783
7783
  let angle = layout.start;
7784
7784
  seriesList.forEach((series, seriesIndex) => {
7785
- const value = Math.max(0, chunkQL7MNEMT_cjs.finite(series.values[0], 0));
7785
+ const value = Math.max(0, chunkC25NWWIH_cjs.finite(series.values[0], 0));
7786
7786
  const sweep = value / total * layout.sweep;
7787
7787
  marks.push({
7788
7788
  seriesId: series.id,
7789
7789
  label: series.label,
7790
- color: series.color ?? chunkQL7MNEMT_cjs.CHART_COLORS[seriesIndex % chunkQL7MNEMT_cjs.CHART_COLORS.length],
7790
+ color: series.color ?? chunkC25NWWIH_cjs.CHART_COLORS[seriesIndex % chunkC25NWWIH_cjs.CHART_COLORS.length],
7791
7791
  stroke: series.stroke,
7792
7792
  strokeWidth: series.strokeWidth,
7793
7793
  value,
7794
7794
  share: value / total,
7795
7795
  angles: { start: angle, end: angle + Math.min(sweep, layout.sweep >= FULL ? MAXIMUM_SWEEP : layout.sweep) },
7796
- explode: Math.max(0, chunkQL7MNEMT_cjs.finite(series.offset, layout.explode)),
7797
- labelOffsetX: chunkQL7MNEMT_cjs.finite(series.labelOffsetX, 0),
7798
- labelOffsetY: chunkQL7MNEMT_cjs.finite(series.labelOffsetY, 0)
7796
+ explode: Math.max(0, chunkC25NWWIH_cjs.finite(series.offset, layout.explode)),
7797
+ labelOffsetX: chunkC25NWWIH_cjs.finite(series.labelOffsetX, 0),
7798
+ labelOffsetY: chunkC25NWWIH_cjs.finite(series.labelOffsetY, 0)
7799
7799
  });
7800
7800
  angle += sweep;
7801
7801
  });
@@ -7818,14 +7818,14 @@ function pieOuterShadow(shadow, gapPx) {
7818
7818
  function sliceCornerRadius(geometry, mark, gapPx) {
7819
7819
  const halfGap = Math.max(0, gapPx) / 2;
7820
7820
  const rawSweep = mark.angles.end - mark.angles.start;
7821
- const usesInnerArc = chunkQL7MNEMT_cjs.pieUsesInnerArc(geometry, mark.angles, gapPx);
7822
- const gapSweep = 2 * chunkQL7MNEMT_cjs.gapInsetAngle(halfGap, geometry.outerRadius);
7821
+ const usesInnerArc = chunkC25NWWIH_cjs.pieUsesInnerArc(geometry, mark.angles, gapPx);
7822
+ const gapSweep = 2 * chunkC25NWWIH_cjs.gapInsetAngle(halfGap, geometry.outerRadius);
7823
7823
  const availableSweep = Math.max(0, rawSweep - gapSweep);
7824
7824
  return Math.min(
7825
7825
  geometry.cornerRadius,
7826
- usesInnerArc ? chunkQL7MNEMT_cjs.maxPieCornerRadius(geometry.outerRadius, geometry.innerRadius, availableSweep) : chunkQL7MNEMT_cjs.maxApexCornerRadius(
7826
+ usesInnerArc ? chunkC25NWWIH_cjs.maxPieCornerRadius(geometry.outerRadius, geometry.innerRadius, availableSweep) : chunkC25NWWIH_cjs.maxApexCornerRadius(
7827
7827
  geometry.outerRadius,
7828
- chunkQL7MNEMT_cjs.pieApexRadius(halfGap, rawSweep, geometry.outerRadius),
7828
+ chunkC25NWWIH_cjs.pieApexRadius(halfGap, rawSweep, geometry.outerRadius),
7829
7829
  availableSweep
7830
7830
  )
7831
7831
  );
@@ -7838,14 +7838,14 @@ function sliceStroke(context, mark) {
7838
7838
  }
7839
7839
  return {
7840
7840
  stroke: { kind: "solid", color: strokeColor },
7841
- strokeWidth: chunkQL7MNEMT_cjs.finite(mark.strokeWidth, chunkQL7MNEMT_cjs.finite(config?.pieStrokeWidth, 1))
7841
+ strokeWidth: chunkC25NWWIH_cjs.finite(mark.strokeWidth, chunkC25NWWIH_cjs.finite(config?.pieStrokeWidth, 1))
7842
7842
  };
7843
7843
  }
7844
7844
  function createSliceNodes(context, geometry, mark, gapPx) {
7845
7845
  const { chart, bounds, diagnostics, nextOrder } = context;
7846
- const fill2 = chunkQL7MNEMT_cjs.paint(mark.color, diagnostics, chart.id);
7847
- const slicePath = chunkQL7MNEMT_cjs.createPieSlicePath(geometry, mark.angles, sliceCornerRadius(geometry, mark, gapPx), gapPx);
7848
- const shadow = chunkQL7MNEMT_cjs.resolveChartShadow(chart.shadowStyle);
7846
+ const fill2 = chunkC25NWWIH_cjs.paint(mark.color, diagnostics, chart.id);
7847
+ const slicePath = chunkC25NWWIH_cjs.createPieSlicePath(geometry, mark.angles, sliceCornerRadius(geometry, mark, gapPx), gapPx);
7848
+ const shadow = chunkC25NWWIH_cjs.resolveChartShadow(chart.shadowStyle);
7849
7849
  const strokeStyle = sliceStroke(context, mark);
7850
7850
  const glow = chart.config?.pieGlow;
7851
7851
  const shadowCaster = shadow ? {
@@ -7876,12 +7876,12 @@ function createSliceNodes(context, geometry, mark, gapPx) {
7876
7876
  pieEnd: mark.angles.end,
7877
7877
  pieValue: mark.value
7878
7878
  },
7879
- prop: chunkQL7MNEMT_cjs.seriesValueProp(mark.seriesId, 0),
7879
+ prop: chunkC25NWWIH_cjs.seriesValueProp(mark.seriesId, 0),
7880
7880
  style: {
7881
7881
  fill: fill2,
7882
7882
  ...strokeStyle,
7883
7883
  innerShadow: shadow,
7884
- shadow: glow ? { color: chunkQL7MNEMT_cjs.representativeColor(mark.color, "#ffffff"), opacity: 0.85, blur: glow, dx: 0, dy: 0 } : void 0
7884
+ shadow: glow ? { color: chunkC25NWWIH_cjs.representativeColor(mark.color, "#ffffff"), opacity: 0.85, blur: glow, dx: 0, dy: 0 } : void 0
7885
7885
  }
7886
7886
  };
7887
7887
  return shadowCaster ? [shadowCaster, slice] : [slice];
@@ -7889,7 +7889,7 @@ function createSliceNodes(context, geometry, mark, gapPx) {
7889
7889
 
7890
7890
  // src/renderScene/charts/renderers/pie.ts
7891
7891
  function renderPie(context) {
7892
- const geometry = chunkQL7MNEMT_cjs.createPieGeometry(context);
7892
+ const geometry = chunkC25NWWIH_cjs.createPieGeometry(context);
7893
7893
  return [...renderPieSlices(context, geometry), ...renderPieCenter(context, geometry)];
7894
7894
  }
7895
7895
 
@@ -7906,18 +7906,18 @@ var OUTSIDE_FALLBACK_COLOR = "#334155";
7906
7906
  function layoutOf(context) {
7907
7907
  const { chart, plot } = context;
7908
7908
  const maxRadius = Math.max(1, Math.min(plot.width, plot.height) / 2 - 4);
7909
- const axisMin = chunkQL7MNEMT_cjs.finite(chart.axisY.min, 0);
7909
+ const axisMin = chunkC25NWWIH_cjs.finite(chart.axisY.min, 0);
7910
7910
  return {
7911
7911
  centerX: plot.x + plot.width / 2,
7912
7912
  centerY: plot.y + plot.height / 2,
7913
7913
  maxRadius,
7914
- innerRadius: Math.max(0, Math.min(chunkQL7MNEMT_cjs.finite(chart.config?.innerRadius, 0), maxRadius - 1)),
7915
- cornerRadius: Math.max(0, chunkQL7MNEMT_cjs.finite(chart.config?.pieCornerRadius, 0)),
7916
- gapPx: Math.max(0, chunkQL7MNEMT_cjs.finite(chart.config?.pieSliceGap, 0)),
7914
+ innerRadius: Math.max(0, Math.min(chunkC25NWWIH_cjs.finite(chart.config?.innerRadius, 0), maxRadius - 1)),
7915
+ cornerRadius: Math.max(0, chunkC25NWWIH_cjs.finite(chart.config?.pieCornerRadius, 0)),
7916
+ gapPx: Math.max(0, chunkC25NWWIH_cjs.finite(chart.config?.pieSliceGap, 0)),
7917
7917
  axisMin,
7918
- range: chunkQL7MNEMT_cjs.finite(chart.axisY.max, 100) - axisMin,
7918
+ range: chunkC25NWWIH_cjs.finite(chart.axisY.max, 100) - axisMin,
7919
7919
  sweep: chart.series.length > 0 ? Math.PI * 2 / chart.series.length : 0,
7920
- start: TOP2 + chunkQL7MNEMT_cjs.finite(chart.config?.pieStartAngle, 0) * Math.PI / 180
7920
+ start: TOP2 + chunkC25NWWIH_cjs.finite(chart.config?.pieStartAngle, 0) * Math.PI / 180
7921
7921
  };
7922
7922
  }
7923
7923
  function clampedCorner(layout, outerRadius, angles) {
@@ -7925,19 +7925,19 @@ function clampedCorner(layout, outerRadius, angles) {
7925
7925
  const geometry = { centerX, centerY, outerRadius, innerRadius };
7926
7926
  const halfGap = Math.max(0, gapPx) / 2;
7927
7927
  const rawSweep = angles.end - angles.start;
7928
- const availableSweep = Math.max(0, rawSweep - 2 * chunkQL7MNEMT_cjs.gapInsetAngle(halfGap, outerRadius));
7929
- if (chunkQL7MNEMT_cjs.pieUsesInnerArc(geometry, angles, gapPx)) {
7930
- return Math.min(cornerRadius, chunkQL7MNEMT_cjs.maxPieCornerRadius(outerRadius, innerRadius, availableSweep));
7928
+ const availableSweep = Math.max(0, rawSweep - 2 * chunkC25NWWIH_cjs.gapInsetAngle(halfGap, outerRadius));
7929
+ if (chunkC25NWWIH_cjs.pieUsesInnerArc(geometry, angles, gapPx)) {
7930
+ return Math.min(cornerRadius, chunkC25NWWIH_cjs.maxPieCornerRadius(outerRadius, innerRadius, availableSweep));
7931
7931
  }
7932
- const apexRadius = chunkQL7MNEMT_cjs.pieApexRadius(halfGap, rawSweep, outerRadius);
7933
- return Math.min(cornerRadius, chunkQL7MNEMT_cjs.maxApexCornerRadius(outerRadius, apexRadius, availableSweep));
7932
+ const apexRadius = chunkC25NWWIH_cjs.pieApexRadius(halfGap, rawSweep, outerRadius);
7933
+ return Math.min(cornerRadius, chunkC25NWWIH_cjs.maxApexCornerRadius(outerRadius, apexRadius, availableSweep));
7934
7934
  }
7935
7935
  function wedgeNodes(context, layout, series, angles, outerRadius, value, rawColor) {
7936
7936
  const { chart, bounds, diagnostics, nextOrder } = context;
7937
7937
  const { centerX, centerY, innerRadius, maxRadius, gapPx } = layout;
7938
- const color = chunkQL7MNEMT_cjs.paint(rawColor, diagnostics, chart.id);
7939
- const shadow = chunkQL7MNEMT_cjs.resolveChartShadow(chart.shadowStyle);
7940
- const trackPath = chunkQL7MNEMT_cjs.createPieSlicePath(
7938
+ const color = chunkC25NWWIH_cjs.paint(rawColor, diagnostics, chart.id);
7939
+ const shadow = chunkC25NWWIH_cjs.resolveChartShadow(chart.shadowStyle);
7940
+ const trackPath = chunkC25NWWIH_cjs.createPieSlicePath(
7941
7941
  { centerX, centerY, outerRadius: maxRadius, innerRadius },
7942
7942
  angles,
7943
7943
  clampedCorner(layout, maxRadius, angles),
@@ -7950,12 +7950,12 @@ function wedgeNodes(context, layout, series, angles, outerRadius, value, rawColo
7950
7950
  bounds,
7951
7951
  d: trackPath,
7952
7952
  style: {
7953
- fill: chunkQL7MNEMT_cjs.paint(chart.gridColor ?? TRACK_COLOR_FALLBACK, diagnostics, chart.id),
7953
+ fill: chunkC25NWWIH_cjs.paint(chart.gridColor ?? TRACK_COLOR_FALLBACK, diagnostics, chart.id),
7954
7954
  opacity: chart.config?.polarTrackOpacity,
7955
7955
  ...trackStroke(context)
7956
7956
  }
7957
7957
  };
7958
- const wedgePath = chunkQL7MNEMT_cjs.createPieSlicePath(
7958
+ const wedgePath = chunkC25NWWIH_cjs.createPieSlicePath(
7959
7959
  { centerX, centerY, outerRadius, innerRadius },
7960
7960
  angles,
7961
7961
  clampedCorner(layout, outerRadius, angles),
@@ -7984,7 +7984,7 @@ function wedgeNodes(context, layout, series, angles, outerRadius, value, rawColo
7984
7984
  pieEnd: angles.end,
7985
7985
  pieValue: value
7986
7986
  },
7987
- prop: chunkQL7MNEMT_cjs.seriesValueProp(series.id, 0),
7987
+ prop: chunkC25NWWIH_cjs.seriesValueProp(series.id, 0),
7988
7988
  style: { fill: color, innerShadow: shadow, ...wedgeStroke(context) }
7989
7989
  };
7990
7990
  return shadowCaster ? [track, shadowCaster, wedge] : [track, wedge];
@@ -7997,7 +7997,7 @@ function trackStroke(context) {
7997
7997
  const dash = (config.polarTrackDash ?? "").split(/[ ,]+/).map(Number).filter((part) => Number.isFinite(part) && part > 0);
7998
7998
  return {
7999
7999
  stroke: { kind: "solid", color: config.polarTrackStroke },
8000
- strokeWidth: chunkQL7MNEMT_cjs.finite(config.polarTrackStrokeWidth, 1),
8000
+ strokeWidth: chunkC25NWWIH_cjs.finite(config.polarTrackStrokeWidth, 1),
8001
8001
  dash: dash.length > 0 ? dash : void 0
8002
8002
  };
8003
8003
  }
@@ -8008,7 +8008,7 @@ function wedgeStroke(context) {
8008
8008
  }
8009
8009
  return {
8010
8010
  stroke: { kind: "solid", color: config.pieStroke },
8011
- strokeWidth: chunkQL7MNEMT_cjs.finite(config.pieStrokeWidth, 1)
8011
+ strokeWidth: chunkC25NWWIH_cjs.finite(config.pieStrokeWidth, 1)
8012
8012
  };
8013
8013
  }
8014
8014
  function ringNodes(context, layout) {
@@ -8016,7 +8016,7 @@ function ringNodes(context, layout) {
8016
8016
  if (!chart.config?.polarRings || layout.range <= 0) {
8017
8017
  return [];
8018
8018
  }
8019
- return chunkQL7MNEMT_cjs.chartTicks(chart.axisY).filter((tick) => tick > layout.axisMin && tick < layout.axisMin + layout.range).map((tick) => {
8019
+ return chunkC25NWWIH_cjs.chartTicks(chart.axisY).filter((tick) => tick > layout.axisMin && tick < layout.axisMin + layout.range).map((tick) => {
8020
8020
  const radius = layout.innerRadius + (layout.maxRadius - layout.innerRadius) * (tick - layout.axisMin) / layout.range;
8021
8021
  return {
8022
8022
  type: "ellipse",
@@ -8030,7 +8030,7 @@ function ringNodes(context, layout) {
8030
8030
  style: {
8031
8031
  fill: { kind: "none" },
8032
8032
  stroke: { kind: "solid", color: chart.textColor ?? "#334155" },
8033
- strokeWidth: chunkQL7MNEMT_cjs.finite(chart.gridWidth, 1),
8033
+ strokeWidth: chunkC25NWWIH_cjs.finite(chart.gridWidth, 1),
8034
8034
  opacity: 0.25
8035
8035
  }
8036
8036
  };
@@ -8042,10 +8042,10 @@ function renderPolarArea(context) {
8042
8042
  const showLabels = context.showLabels && sweep >= MIN_LABEL_SWEEP;
8043
8043
  const wedges = context.chart.series.flatMap((series, index) => {
8044
8044
  const angles = { start: start + index * sweep, end: start + (index + 1) * sweep };
8045
- const value = Math.max(0, chunkQL7MNEMT_cjs.finite(series.values[0], 0));
8045
+ const value = Math.max(0, chunkC25NWWIH_cjs.finite(series.values[0], 0));
8046
8046
  const fraction = range > 0 ? Math.min(1, Math.max(0, (value - axisMin) / range)) : 0;
8047
8047
  const outerRadius = Math.max(innerRadius + 1, innerRadius + (maxRadius - innerRadius) * fraction);
8048
- const rawColor = series.color ?? chunkQL7MNEMT_cjs.CHART_COLORS[index % chunkQL7MNEMT_cjs.CHART_COLORS.length];
8048
+ const rawColor = series.color ?? chunkC25NWWIH_cjs.CHART_COLORS[index % chunkC25NWWIH_cjs.CHART_COLORS.length];
8049
8049
  const nodes = wedgeNodes(context, layout, series, angles, outerRadius, value, rawColor);
8050
8050
  if (!showLabels) {
8051
8051
  return nodes;
@@ -8056,10 +8056,10 @@ function renderPolarArea(context) {
8056
8056
  return [...wedges, ...ringNodes(context, layout)];
8057
8057
  }
8058
8058
  function labelSizes(chart) {
8059
- const base = Math.max(9, chunkQL7MNEMT_cjs.finite(chart.fontSize, 12));
8059
+ const base = Math.max(9, chunkC25NWWIH_cjs.finite(chart.fontSize, 12));
8060
8060
  return {
8061
- nameSize: Math.max(6, chunkQL7MNEMT_cjs.finite(chart.config?.polarNameSize, base)),
8062
- valueSize: Math.max(6, chunkQL7MNEMT_cjs.finite(chart.config?.polarValueSize, base))
8061
+ nameSize: Math.max(6, chunkC25NWWIH_cjs.finite(chart.config?.polarNameSize, base)),
8062
+ valueSize: Math.max(6, chunkC25NWWIH_cjs.finite(chart.config?.polarValueSize, base))
8063
8063
  };
8064
8064
  }
8065
8065
  function labelPlacement2(context, geometry, angles, series, fillColor) {
@@ -8067,8 +8067,8 @@ function labelPlacement2(context, geometry, angles, series, fillColor) {
8067
8067
  const { nameSize, valueSize } = labelSizes(context.chart);
8068
8068
  const lineHeight = (nameSize + valueSize) * 1.2 / 2;
8069
8069
  const ringThickness = geometry.outerRadius - geometry.innerRadius;
8070
- const labelOffsetX = chunkQL7MNEMT_cjs.finite(series.labelOffsetX, 0);
8071
- const labelOffsetY = chunkQL7MNEMT_cjs.finite(series.labelOffsetY, 0);
8070
+ const labelOffsetX = chunkC25NWWIH_cjs.finite(series.labelOffsetX, 0);
8071
+ const labelOffsetY = chunkC25NWWIH_cjs.finite(series.labelOffsetY, 0);
8072
8072
  const hasManualOffset = labelOffsetX !== 0 || labelOffsetY !== 0;
8073
8073
  const tooThin = ringThickness < lineHeight * 2 + 6;
8074
8074
  const chordWidth = 2 * geometry.outerRadius * Math.sin(Math.abs(angles.end - angles.start) / 2);
@@ -8078,11 +8078,11 @@ function labelPlacement2(context, geometry, angles, series, fillColor) {
8078
8078
  return void 0;
8079
8079
  }
8080
8080
  const outside = hasManualOffset || !fitsInline;
8081
- const tickStart = chunkQL7MNEMT_cjs.pieArcPoint(geometry, mid, geometry.outerRadius + LEADER_INSET);
8082
- const point = outside ? hasManualOffset ? addOffset(chunkQL7MNEMT_cjs.pieArcPoint(geometry, mid, geometry.outerRadius), labelOffsetX, labelOffsetY) : chunkQL7MNEMT_cjs.pieArcPoint(geometry, mid, geometry.outerRadius + OUTSIDE_GAP) : chunkQL7MNEMT_cjs.pieArcPoint(geometry, mid, geometry.innerRadius + ringThickness * LABEL_RADIUS_FRACTION);
8083
- const color = outside ? outsideLabels && context.chart.textColor ? context.chart.textColor : chunkQL7MNEMT_cjs.sameHueTint(chunkQL7MNEMT_cjs.representativeColor(fillColor, OUTSIDE_FALLBACK_COLOR), OUTSIDE_TINT_LIGHTNESS) ?? OUTSIDE_FALLBACK_COLOR : chunkQL7MNEMT_cjs.sameHueContrastColor(
8084
- chunkQL7MNEMT_cjs.representativeColor(fillColor, "#0f172a"),
8085
- chunkQL7MNEMT_cjs.contrastTextColor(chunkQL7MNEMT_cjs.representativeColor(fillColor, "#0f172a"))
8081
+ const tickStart = chunkC25NWWIH_cjs.pieArcPoint(geometry, mid, geometry.outerRadius + LEADER_INSET);
8082
+ const point = outside ? hasManualOffset ? addOffset(chunkC25NWWIH_cjs.pieArcPoint(geometry, mid, geometry.outerRadius), labelOffsetX, labelOffsetY) : chunkC25NWWIH_cjs.pieArcPoint(geometry, mid, geometry.outerRadius + OUTSIDE_GAP) : chunkC25NWWIH_cjs.pieArcPoint(geometry, mid, geometry.innerRadius + ringThickness * LABEL_RADIUS_FRACTION);
8083
+ const color = outside ? outsideLabels && context.chart.textColor ? context.chart.textColor : chunkC25NWWIH_cjs.sameHueTint(chunkC25NWWIH_cjs.representativeColor(fillColor, OUTSIDE_FALLBACK_COLOR), OUTSIDE_TINT_LIGHTNESS) ?? OUTSIDE_FALLBACK_COLOR : chunkC25NWWIH_cjs.sameHueContrastColor(
8084
+ chunkC25NWWIH_cjs.representativeColor(fillColor, "#0f172a"),
8085
+ chunkC25NWWIH_cjs.contrastTextColor(chunkC25NWWIH_cjs.representativeColor(fillColor, "#0f172a"))
8086
8086
  );
8087
8087
  return { point, color, outside, mid, tickStart };
8088
8088
  }
@@ -8095,7 +8095,7 @@ function createWedgeLabel(context, geometry, angles, series, value, fillColor) {
8095
8095
  const { point, color, outside, mid, tickStart } = placement;
8096
8096
  const { nameSize, valueSize } = labelSizes(chart);
8097
8097
  const lineHeight = Math.max(nameSize, valueSize) * 1.2;
8098
- const tickEnd = outside ? chunkQL7MNEMT_cjs.clipSegmentToRect(tickStart, point, LABEL_WIDTH2 / 2, lineHeight) : tickStart;
8098
+ const tickEnd = outside ? chunkC25NWWIH_cjs.clipSegmentToRect(tickStart, point, LABEL_WIDTH2 / 2, lineHeight) : tickStart;
8099
8099
  const tick = {
8100
8100
  type: "path",
8101
8101
  id: `chart-polar-area-label-tick-${chart.id}-${series.id}`,
@@ -8117,7 +8117,7 @@ function createWedgeLabel(context, geometry, angles, series, value, fillColor) {
8117
8117
  bounds,
8118
8118
  x: point.x - LABEL_WIDTH2 / 2,
8119
8119
  width: LABEL_WIDTH2,
8120
- fontFamily: chart.fontFamily ?? chunkQL7MNEMT_cjs.DEFAULT_FONT,
8120
+ fontFamily: chart.fontFamily ?? chunkC25NWWIH_cjs.DEFAULT_FONT,
8121
8121
  align: "center",
8122
8122
  verticalAlign: "middle",
8123
8123
  lineHeight: 1.2,
@@ -8140,7 +8140,7 @@ function createWedgeLabel(context, geometry, angles, series, value, fillColor) {
8140
8140
  lines: [series.label],
8141
8141
  fontWeight: valueFirst ? "normal" : "bold",
8142
8142
  detail,
8143
- prop: chunkQL7MNEMT_cjs.seriesLabelProp(series.id)
8143
+ prop: chunkC25NWWIH_cjs.seriesLabelProp(series.id)
8144
8144
  };
8145
8145
  const valueText = {
8146
8146
  type: "text",
@@ -8150,10 +8150,10 @@ function createWedgeLabel(context, geometry, angles, series, value, fillColor) {
8150
8150
  y: valueY,
8151
8151
  height: valueSize * 1.2,
8152
8152
  fontSize: valueSize,
8153
- lines: [chunkQL7MNEMT_cjs.formatFieldValue(value)],
8153
+ lines: [chunkC25NWWIH_cjs.formatFieldValue(value)],
8154
8154
  fontWeight: valueFirst ? "bold" : "normal",
8155
8155
  detail,
8156
- prop: chunkQL7MNEMT_cjs.seriesValueProp(series.id, 0),
8156
+ prop: chunkC25NWWIH_cjs.seriesValueProp(series.id, 0),
8157
8157
  propKind: "value"
8158
8158
  };
8159
8159
  return [tick, nameText, valueText];
@@ -8171,10 +8171,10 @@ function radarFrameFor(context) {
8171
8171
  return {
8172
8172
  centerX: plot.x + plot.width / 2,
8173
8173
  centerY: plot.y + plot.height / 2,
8174
- radius: chunkQL7MNEMT_cjs.radarRadius(plot.width, plot.height, chunkQL7MNEMT_cjs.finite(chart.fontSize, 12), context.showLabels),
8174
+ radius: chunkC25NWWIH_cjs.radarRadius(plot.width, plot.height, chunkC25NWWIH_cjs.finite(chart.fontSize, 12), context.showLabels),
8175
8175
  min: chart.axisY.min,
8176
8176
  max: chart.axisY.max,
8177
- count: chunkQL7MNEMT_cjs.radarCategoryCount(configuredCount, dataCount),
8177
+ count: chunkC25NWWIH_cjs.radarCategoryCount(configuredCount, dataCount),
8178
8178
  curved: chart.chartType === "radial",
8179
8179
  tension: chart.config?.radarTension
8180
8180
  };
@@ -8184,7 +8184,7 @@ function createRadarGeometry(context) {
8184
8184
  const configuredCategories = chart.config?.categories?.filter(Boolean) ?? [];
8185
8185
  const frame = radarFrameFor(context);
8186
8186
  const categories = createCategories(configuredCategories, frame.count);
8187
- const pointAt = (pointRadius, pointIndex) => chunkQL7MNEMT_cjs.radarPointAt(frame, pointIndex, pointRadius);
8187
+ const pointAt = (pointRadius, pointIndex) => chunkC25NWWIH_cjs.radarPointAt(frame, pointIndex, pointRadius);
8188
8188
  return {
8189
8189
  circular: frame.curved,
8190
8190
  areaOpacity: Math.max(0, Math.min(1, chart.config?.areaOpacity ?? 0.16)),
@@ -8196,9 +8196,9 @@ function createRadarGeometry(context) {
8196
8196
  centerX: frame.centerX,
8197
8197
  centerY: frame.centerY,
8198
8198
  radius: frame.radius,
8199
- radiusForValue: (value) => chunkQL7MNEMT_cjs.radarRadiusForValue(frame, value),
8199
+ radiusForValue: (value) => chunkC25NWWIH_cjs.radarRadiusForValue(frame, value),
8200
8200
  pointAt,
8201
- polygonPath: (pointRadius) => chunkQL7MNEMT_cjs.radarSeriesPath(
8201
+ polygonPath: (pointRadius) => chunkC25NWWIH_cjs.radarSeriesPath(
8202
8202
  categories.map((_, index) => pointAt(pointRadius, index)),
8203
8203
  false
8204
8204
  )
@@ -8219,7 +8219,7 @@ function renderRadarGrid(context, geometry) {
8219
8219
  return [...renderRings(context, geometry), ...geometry.showSpokes ? renderSpokes(context, geometry) : []];
8220
8220
  }
8221
8221
  function renderRings(context, geometry) {
8222
- return chunkQL7MNEMT_cjs.chartTicks(context.chart.axisY).filter((tick) => tick > context.chart.axisY.min).map((tick) => createRingNode(context, geometry, tick));
8222
+ return chunkC25NWWIH_cjs.chartTicks(context.chart.axisY).filter((tick) => tick > context.chart.axisY.min).map((tick) => createRingNode(context, geometry, tick));
8223
8223
  }
8224
8224
  function createRingNode(context, geometry, tick) {
8225
8225
  const { chart, bounds, nextOrder } = context;
@@ -8227,7 +8227,7 @@ function createRingNode(context, geometry, tick) {
8227
8227
  const style = {
8228
8228
  fill: { kind: "none" },
8229
8229
  stroke: { kind: "solid", color: chart.gridColor ?? "#e2e8f0" },
8230
- strokeWidth: chunkQL7MNEMT_cjs.finite(chart.gridWidth, 1)
8230
+ strokeWidth: chunkC25NWWIH_cjs.finite(chart.gridWidth, 1)
8231
8231
  };
8232
8232
  if (geometry.circular) {
8233
8233
  return {
@@ -8264,7 +8264,7 @@ function renderSpokes(context, geometry) {
8264
8264
  style: {
8265
8265
  fill: { kind: "none" },
8266
8266
  stroke: { kind: "solid", color: chart.gridColor ?? "#e2e8f0" },
8267
- strokeWidth: chunkQL7MNEMT_cjs.finite(chart.gridWidth, 1)
8267
+ strokeWidth: chunkC25NWWIH_cjs.finite(chart.gridWidth, 1)
8268
8268
  }
8269
8269
  };
8270
8270
  });
@@ -8284,7 +8284,7 @@ function createCategoryLabel(context, geometry, category, categoryIndex) {
8284
8284
  const labelPoint = geometry.pointAt(geometry.radius + 10, categoryIndex);
8285
8285
  const horizontalOffset = labelPoint.x - geometry.centerX;
8286
8286
  const width = Math.max(64, Math.min(120, plot.width / 3));
8287
- return chunkQL7MNEMT_cjs.chartText({
8287
+ return chunkC25NWWIH_cjs.chartText({
8288
8288
  id: `chart-radar-label-${chart.id}-${categoryIndex}`,
8289
8289
  order: nextOrder(),
8290
8290
  bounds,
@@ -8322,9 +8322,9 @@ function renderRadarSeries(context, geometry) {
8322
8322
  return nodes;
8323
8323
  }
8324
8324
  function renderSeries(context, geometry, series, seriesIndex) {
8325
- const color = series.color ?? chunkQL7MNEMT_cjs.CHART_COLORS[seriesIndex % chunkQL7MNEMT_cjs.CHART_COLORS.length];
8325
+ const color = series.color ?? chunkC25NWWIH_cjs.CHART_COLORS[seriesIndex % chunkC25NWWIH_cjs.CHART_COLORS.length];
8326
8326
  const points = seriesPoints(series, context, geometry);
8327
- const path = chunkQL7MNEMT_cjs.radarSeriesPath(points, geometry.circular, geometry.tension);
8327
+ const path = chunkC25NWWIH_cjs.radarSeriesPath(points, geometry.circular, geometry.tension);
8328
8328
  return [
8329
8329
  createSeriesFill(context, geometry, series, path, color),
8330
8330
  ...geometry.strokeWidth > 0 ? [createSeriesStroke(context, geometry, series, path, color)] : [],
@@ -8347,7 +8347,7 @@ function createSeriesFill(context, geometry, series, path, color) {
8347
8347
  d: path,
8348
8348
  detail: { of: "chartSeries", series: series.id },
8349
8349
  style: {
8350
- fill: chunkQL7MNEMT_cjs.paint(color, diagnostics, chart.id),
8350
+ fill: chunkC25NWWIH_cjs.paint(color, diagnostics, chart.id),
8351
8351
  stroke: { kind: "none" },
8352
8352
  opacity: Math.max(0, Math.min(1, series.opacity ?? geometry.areaOpacity))
8353
8353
  }
@@ -8364,10 +8364,10 @@ function createSeriesStroke(context, geometry, series, path, color) {
8364
8364
  detail: { of: "chartSeries", series: series.id },
8365
8365
  style: {
8366
8366
  fill: { kind: "none" },
8367
- stroke: chunkQL7MNEMT_cjs.paint(color, diagnostics, chart.id),
8367
+ stroke: chunkC25NWWIH_cjs.paint(color, diagnostics, chart.id),
8368
8368
  strokeWidth: geometry.strokeWidth,
8369
8369
  lineJoin: "round",
8370
- shadow: chunkQL7MNEMT_cjs.resolveChartShadow(chart.shadowStyle)
8370
+ shadow: chunkC25NWWIH_cjs.resolveChartShadow(chart.shadowStyle)
8371
8371
  }
8372
8372
  };
8373
8373
  }
@@ -8383,8 +8383,8 @@ function createSeriesPoints(context, geometry, series, points, color) {
8383
8383
  rx: geometry.pointSize,
8384
8384
  ry: geometry.pointSize,
8385
8385
  detail: { of: "chartValue", series: series.id, valueIndex: pointIndex, mark: "radar-vertex" },
8386
- prop: chunkQL7MNEMT_cjs.seriesValueProp(series.id, pointIndex),
8387
- style: { fill: chunkQL7MNEMT_cjs.paint(color, diagnostics, chart.id) }
8386
+ prop: chunkC25NWWIH_cjs.seriesValueProp(series.id, pointIndex),
8387
+ style: { fill: chunkC25NWWIH_cjs.paint(color, diagnostics, chart.id) }
8388
8388
  }));
8389
8389
  }
8390
8390
 
@@ -8438,25 +8438,25 @@ function ringProgressPath(cx, cy, r, sweep, from) {
8438
8438
  }
8439
8439
  function layoutOf2(context) {
8440
8440
  const { chart, plot } = context;
8441
- const axisMin = chunkQL7MNEMT_cjs.finite(chart.axisY.min, 0);
8441
+ const axisMin = chunkC25NWWIH_cjs.finite(chart.axisY.min, 0);
8442
8442
  return {
8443
8443
  centerX: plot.x + plot.width / 2,
8444
8444
  centerY: plot.y + plot.height / 2,
8445
8445
  outerRadius: Math.max(1, Math.min(plot.width, plot.height) / 2 - 4),
8446
- ringThickness: Math.max(1, chunkQL7MNEMT_cjs.finite(chart.config?.ringThickness, DEFAULT_RING_THICKNESS)),
8447
- ringGap: Math.max(0, chunkQL7MNEMT_cjs.finite(chart.config?.ringGap, DEFAULT_RING_GAP)),
8446
+ ringThickness: Math.max(1, chunkC25NWWIH_cjs.finite(chart.config?.ringThickness, DEFAULT_RING_THICKNESS)),
8447
+ ringGap: Math.max(0, chunkC25NWWIH_cjs.finite(chart.config?.ringGap, DEFAULT_RING_GAP)),
8448
8448
  axisMin,
8449
- range: chunkQL7MNEMT_cjs.finite(chart.axisY.max, 100) - axisMin,
8450
- start: TOP3 + chunkQL7MNEMT_cjs.finite(chart.config?.ringStartAngle, 0) * Math.PI / 180,
8451
- total: Math.min(360, Math.max(1, chunkQL7MNEMT_cjs.finite(chart.config?.ringSweep, 360))) * Math.PI / 180,
8452
- trackOpacity: Math.min(1, Math.max(0, chunkQL7MNEMT_cjs.finite(chart.config?.ringTrackOpacity, TRACK_OPACITY))),
8449
+ range: chunkC25NWWIH_cjs.finite(chart.axisY.max, 100) - axisMin,
8450
+ start: TOP3 + chunkC25NWWIH_cjs.finite(chart.config?.ringStartAngle, 0) * Math.PI / 180,
8451
+ total: Math.min(360, Math.max(1, chunkC25NWWIH_cjs.finite(chart.config?.ringSweep, 360))) * Math.PI / 180,
8452
+ trackOpacity: Math.min(1, Math.max(0, chunkC25NWWIH_cjs.finite(chart.config?.ringTrackOpacity, TRACK_OPACITY))),
8453
8453
  cap: chart.config?.ringCap ?? "round"
8454
8454
  };
8455
8455
  }
8456
8456
  function ringEndShadows(context, layout, series, radius, sweep, color) {
8457
8457
  const { chart, bounds, nextOrder } = context;
8458
8458
  const { centerX, centerY, ringThickness, start } = layout;
8459
- const shadow = chunkQL7MNEMT_cjs.resolveChartShadow(chart.shadowStyle);
8459
+ const shadow = chunkC25NWWIH_cjs.resolveChartShadow(chart.shadowStyle);
8460
8460
  const isFullCircle = sweep >= Math.PI * 2 - FULL_SWEEP_EPSILON;
8461
8461
  if (!shadow || isFullCircle) {
8462
8462
  return [];
@@ -8494,8 +8494,8 @@ function ringNodes2(context, layout, series, index) {
8494
8494
  if (radius <= ringThickness / 2) {
8495
8495
  return [];
8496
8496
  }
8497
- const color = chunkQL7MNEMT_cjs.paint(series.color ?? chunkQL7MNEMT_cjs.CHART_COLORS[index % chunkQL7MNEMT_cjs.CHART_COLORS.length], diagnostics, chart.id);
8498
- const value = Math.max(0, chunkQL7MNEMT_cjs.finite(series.values[0], 0));
8497
+ const color = chunkC25NWWIH_cjs.paint(series.color ?? chunkC25NWWIH_cjs.CHART_COLORS[index % chunkC25NWWIH_cjs.CHART_COLORS.length], diagnostics, chart.id);
8498
+ const value = Math.max(0, chunkC25NWWIH_cjs.finite(series.values[0], 0));
8499
8499
  const fraction = range > 0 ? Math.min(1, Math.max(0, (value - axisMin) / range)) : 0;
8500
8500
  const trackStyle = {
8501
8501
  fill: { kind: "none" },
@@ -8533,7 +8533,7 @@ function ringNodes2(context, layout, series, index) {
8533
8533
  bounds,
8534
8534
  d: ringProgressPath(centerX, centerY, radius, sweep, start),
8535
8535
  detail: { of: "chartValue", series: series.id, valueIndex: 0, mark: "radial-bar-ring" },
8536
- prop: chunkQL7MNEMT_cjs.seriesValueProp(series.id, 0),
8536
+ prop: chunkC25NWWIH_cjs.seriesValueProp(series.id, 0),
8537
8537
  style: { fill: { kind: "none" }, stroke: color, strokeWidth: ringThickness, lineCap: cap }
8538
8538
  };
8539
8539
  return [track, ...casters, progress];
@@ -8545,7 +8545,7 @@ function renderRadialBar(context) {
8545
8545
 
8546
8546
  // src/renderScene/charts/renderers/sankey/links.ts
8547
8547
  function renderSankeyLinks(context, data) {
8548
- const shadow = chunkQL7MNEMT_cjs.resolveChartShadow(context.chart.shadowStyle);
8548
+ const shadow = chunkC25NWWIH_cjs.resolveChartShadow(context.chart.shadowStyle);
8549
8549
  const gradient = Boolean(context.chart.config?.linkGradient);
8550
8550
  const { plot } = context;
8551
8551
  const clipPath = shadow ? `M ${plot.x} ${plot.y} H ${plot.x + plot.width} V ${plot.y + plot.height} H ${plot.x} Z` : void 0;
@@ -8566,8 +8566,8 @@ function createSankeyLinkRibbon(context, data, link, linkIndex, gradient) {
8566
8566
  bottom: data.baseY + link.targetY1
8567
8567
  };
8568
8568
  const config = context.chart.config;
8569
- const fromColor = link.color || data.nodeColors.get(link.source) || chunkQL7MNEMT_cjs.DEFAULT_ZONE_FILL;
8570
- const toColor = data.nodeColors.get(link.target) || chunkQL7MNEMT_cjs.DEFAULT_ZONE_FILL;
8569
+ const fromColor = link.color || data.nodeColors.get(link.source) || chunkC25NWWIH_cjs.DEFAULT_ZONE_FILL;
8570
+ const toColor = data.nodeColors.get(link.target) || chunkC25NWWIH_cjs.DEFAULT_ZONE_FILL;
8571
8571
  const fill2 = gradient ? {
8572
8572
  kind: "linear-gradient",
8573
8573
  angle: 0,
@@ -8582,9 +8582,9 @@ function createSankeyLinkRibbon(context, data, link, linkIndex, gradient) {
8582
8582
  toId: link.target,
8583
8583
  source,
8584
8584
  target,
8585
- controlX: source.x + (target.x - source.x) * Math.min(1, Math.max(0, chunkQL7MNEMT_cjs.finite(config?.sankeyLinkCurve, 0.5))),
8585
+ controlX: source.x + (target.x - source.x) * Math.min(1, Math.max(0, chunkC25NWWIH_cjs.finite(config?.sankeyLinkCurve, 0.5))),
8586
8586
  fill: fill2,
8587
- opacity: Math.min(1, Math.max(0, chunkQL7MNEMT_cjs.finite(config?.sankeyLinkOpacity, link.color ? 0.85 : 0.45)))
8587
+ opacity: Math.min(1, Math.max(0, chunkC25NWWIH_cjs.finite(config?.sankeyLinkOpacity, link.color ? 0.85 : 0.45)))
8588
8588
  };
8589
8589
  }
8590
8590
  function createSankeyRibbonNode(context, ribbon, shadow, clipPath, gradient) {
@@ -8625,7 +8625,7 @@ function sankeyRibbonPath(ribbon) {
8625
8625
  var OUTSIDE_LABEL_LIGHTNESS_ON_LIGHT_BG = 0.3;
8626
8626
  var OUTSIDE_LABEL_LIGHTNESS_ON_DARK_BG = 0.78;
8627
8627
  function renderSankeyNodes(context, data) {
8628
- const cornerRadius = Math.max(0, chunkQL7MNEMT_cjs.finite(context.chart.config?.barCornerRadius, 0));
8628
+ const cornerRadius = Math.max(0, chunkC25NWWIH_cjs.finite(context.chart.config?.barCornerRadius, 0));
8629
8629
  const nodes = [];
8630
8630
  data.nodes.forEach((node) => {
8631
8631
  nodes.push(createNodeRect(context, data, node, cornerRadius));
@@ -8641,8 +8641,8 @@ function createNodeRect(context, data, node, cornerRadius) {
8641
8641
  const x = data.baseX + node.x;
8642
8642
  const y = data.baseY + node.y;
8643
8643
  const style = {
8644
- fill: { kind: "solid", color: node.color || chunkQL7MNEMT_cjs.DEFAULT_ZONE_FILL },
8645
- shadow: chunkQL7MNEMT_cjs.resolveChartShadow(chart.shadowStyle)
8644
+ fill: { kind: "solid", color: node.color || chunkC25NWWIH_cjs.DEFAULT_ZONE_FILL },
8645
+ shadow: chunkC25NWWIH_cjs.resolveChartShadow(chart.shadowStyle)
8646
8646
  };
8647
8647
  const isFirstColumn = node.column === 0;
8648
8648
  const isLastColumn = node.column === data.columnCount - 1;
@@ -8668,7 +8668,7 @@ function createNodeRect(context, data, node, cornerRadius) {
8668
8668
  id: `chart-sankey-node-${chart.id}-${node.id}`,
8669
8669
  order: nextOrder(),
8670
8670
  bounds,
8671
- d: chunkQL7MNEMT_cjs.leftRoundedRectPath(x, y, node.width, node.height, cornerRadius),
8671
+ d: chunkC25NWWIH_cjs.leftRoundedRectPath(x, y, node.width, node.height, cornerRadius),
8672
8672
  style,
8673
8673
  detail
8674
8674
  };
@@ -8679,7 +8679,7 @@ function createNodeRect(context, data, node, cornerRadius) {
8679
8679
  id: `chart-sankey-node-${chart.id}-${node.id}`,
8680
8680
  order: nextOrder(),
8681
8681
  bounds,
8682
- d: chunkQL7MNEMT_cjs.rightRoundedRectPath(x, y, node.width, node.height, cornerRadius),
8682
+ d: chunkC25NWWIH_cjs.rightRoundedRectPath(x, y, node.width, node.height, cornerRadius),
8683
8683
  style,
8684
8684
  detail
8685
8685
  };
@@ -8705,9 +8705,9 @@ function createNodeLabel(context, data, node) {
8705
8705
  return void 0;
8706
8706
  }
8707
8707
  const fallback = chart.textColor ?? "#0f172a";
8708
- const defaultColor = position === "inside" ? chunkQL7MNEMT_cjs.contrastTextColor(node.color) : chunkQL7MNEMT_cjs.sameHueTint(
8708
+ const defaultColor = position === "inside" ? chunkC25NWWIH_cjs.contrastTextColor(node.color) : chunkC25NWWIH_cjs.sameHueTint(
8709
8709
  node.color,
8710
- chunkQL7MNEMT_cjs.isLightColor(fallback) ? OUTSIDE_LABEL_LIGHTNESS_ON_DARK_BG : OUTSIDE_LABEL_LIGHTNESS_ON_LIGHT_BG
8710
+ chunkC25NWWIH_cjs.isLightColor(fallback) ? OUTSIDE_LABEL_LIGHTNESS_ON_DARK_BG : OUTSIDE_LABEL_LIGHTNESS_ON_LIGHT_BG
8711
8711
  ) ?? fallback;
8712
8712
  const color = chart.config?.labelColor ?? defaultColor;
8713
8713
  return { ...label, color, detail: { of: "chartSeries", series: node.id, mark: "sankey-node-label" } };
@@ -8719,7 +8719,7 @@ function createOutsideLabel(context, data, node) {
8719
8719
  const y = data.baseY + node.y;
8720
8720
  const labelX2 = isLastColumn ? x - data.labelGutter + 8 : x + node.width + 6;
8721
8721
  return {
8722
- ...chunkQL7MNEMT_cjs.chartText({
8722
+ ...chunkC25NWWIH_cjs.chartText({
8723
8723
  id: `chart-sankey-label-${chart.id}-${node.id}`,
8724
8724
  order: nextOrder(),
8725
8725
  bounds,
@@ -8744,11 +8744,11 @@ function createInsideLabel(context, data, node, orientation) {
8744
8744
  if (orientation === "vertical") {
8745
8745
  const thickness = fontSize * 1.4;
8746
8746
  const width = Math.max(1, node.height - 8);
8747
- if (chunkQL7MNEMT_cjs.estimateTextWidth(node.label, fontSize, false) > width) {
8747
+ if (chunkC25NWWIH_cjs.estimateTextWidth(node.label, fontSize, false) > width) {
8748
8748
  return void 0;
8749
8749
  }
8750
8750
  return {
8751
- ...chunkQL7MNEMT_cjs.chartText({
8751
+ ...chunkC25NWWIH_cjs.chartText({
8752
8752
  id,
8753
8753
  order: nextOrder(),
8754
8754
  bounds,
@@ -8765,7 +8765,7 @@ function createInsideLabel(context, data, node, orientation) {
8765
8765
  };
8766
8766
  }
8767
8767
  return {
8768
- ...chunkQL7MNEMT_cjs.chartText({
8768
+ ...chunkC25NWWIH_cjs.chartText({
8769
8769
  id,
8770
8770
  order: nextOrder(),
8771
8771
  bounds,
@@ -8786,18 +8786,18 @@ function createSankeyRenderData(context) {
8786
8786
  const labelGutter = showLabels ? 92 : 0;
8787
8787
  const availableWidth = Math.max(1, plot.width - labelGutter * 2);
8788
8788
  const layout = layoutSankey(createNodeInputs(context), createLinkInputs(context), availableWidth, plot.height, {
8789
- nodeWidth: Math.max(1, chunkQL7MNEMT_cjs.finite(chart.config?.sankeyNodeWidth, 18)),
8790
- nodeGap: Math.max(0, chunkQL7MNEMT_cjs.finite(chart.config?.sankeyNodeGap, 8))
8789
+ nodeWidth: Math.max(1, chunkC25NWWIH_cjs.finite(chart.config?.sankeyNodeWidth, 18)),
8790
+ nodeGap: Math.max(0, chunkC25NWWIH_cjs.finite(chart.config?.sankeyNodeGap, 8))
8791
8791
  });
8792
8792
  return {
8793
8793
  ...layout,
8794
8794
  baseX: plot.x + labelGutter,
8795
8795
  baseY: plot.y,
8796
8796
  labelGutter,
8797
- fontSize: Math.max(9, chunkQL7MNEMT_cjs.finite(chart.fontSize, 12)),
8798
- labelSize: Math.max(6, chunkQL7MNEMT_cjs.finite(chart.config?.sankeyLabelSize, Math.max(9, chunkQL7MNEMT_cjs.finite(chart.fontSize, 12)) - 2)),
8797
+ fontSize: Math.max(9, chunkC25NWWIH_cjs.finite(chart.fontSize, 12)),
8798
+ labelSize: Math.max(6, chunkC25NWWIH_cjs.finite(chart.config?.sankeyLabelSize, Math.max(9, chunkC25NWWIH_cjs.finite(chart.fontSize, 12)) - 2)),
8799
8799
  columnCount: Math.max(1, ...layout.nodes.map((node) => node.column + 1)),
8800
- nodeColors: new Map(layout.nodes.map((node) => [node.id, node.color || chunkQL7MNEMT_cjs.DEFAULT_ZONE_FILL]))
8800
+ nodeColors: new Map(layout.nodes.map((node) => [node.id, node.color || chunkC25NWWIH_cjs.DEFAULT_ZONE_FILL]))
8801
8801
  };
8802
8802
  }
8803
8803
  function createNodeInputs(context) {
@@ -8819,7 +8819,7 @@ function createLinkInputs(context) {
8819
8819
  source: series.source,
8820
8820
  target: series.target,
8821
8821
  value: series.values[0] ?? 0,
8822
- color: series.color ? chunkQL7MNEMT_cjs.representativeColor(series.color, chunkQL7MNEMT_cjs.DEFAULT_ZONE_FILL) : void 0
8822
+ color: series.color ? chunkC25NWWIH_cjs.representativeColor(series.color, chunkC25NWWIH_cjs.DEFAULT_ZONE_FILL) : void 0
8823
8823
  });
8824
8824
  });
8825
8825
  return inputs;
@@ -8838,9 +8838,9 @@ function renderSankey(context) {
8838
8838
  var DEFAULT_POINT_SIZE = 4;
8839
8839
  function renderScatter(context) {
8840
8840
  const nodes = [];
8841
- const shadow = chunkQL7MNEMT_cjs.resolveChartShadow(context.chart.shadowStyle);
8841
+ const shadow = chunkC25NWWIH_cjs.resolveChartShadow(context.chart.shadowStyle);
8842
8842
  context.chart.series.forEach((series, seriesIndex) => {
8843
- const color = series.color ?? chunkQL7MNEMT_cjs.CHART_COLORS[seriesIndex % chunkQL7MNEMT_cjs.CHART_COLORS.length];
8843
+ const color = series.color ?? chunkC25NWWIH_cjs.CHART_COLORS[seriesIndex % chunkC25NWWIH_cjs.CHART_COLORS.length];
8844
8844
  const points = pixelPoints(context, seriesValuePairs(context.chart, series));
8845
8845
  points.forEach((point, pointIndex) => {
8846
8846
  nodes.push(createScatterPoint(context, series, point, pointIndex, color, shadow));
@@ -8864,8 +8864,8 @@ function createScatterPoint(context, series, point, pointIndex, color, shadow) {
8864
8864
  ry: radius,
8865
8865
  detail: { of: "chartValue", series: series.id, valueIndex: pointIndex },
8866
8866
  style: {
8867
- fill: chunkQL7MNEMT_cjs.paint(color, diagnostics, chart.id),
8868
- stroke: strokeWidth > 0 ? chunkQL7MNEMT_cjs.paint(config?.pointStrokeColor ?? color, diagnostics, chart.id) : void 0,
8867
+ fill: chunkC25NWWIH_cjs.paint(color, diagnostics, chart.id),
8868
+ stroke: strokeWidth > 0 ? chunkC25NWWIH_cjs.paint(config?.pointStrokeColor ?? color, diagnostics, chart.id) : void 0,
8869
8869
  strokeWidth: strokeWidth > 0 ? strokeWidth : void 0,
8870
8870
  opacity: config?.pointOpacity,
8871
8871
  shadow
@@ -8876,14 +8876,14 @@ function createScatterPoint(context, series, point, pointIndex, color, shadow) {
8876
8876
  // src/renderScene/charts/renderers/treemap/layout.ts
8877
8877
  function createTreemapLayout(context) {
8878
8878
  const { chart, plot, showLegend } = context;
8879
- const fontSize = Math.max(9, chunkQL7MNEMT_cjs.finite(chart.fontSize, 12));
8879
+ const fontSize = Math.max(9, chunkC25NWWIH_cjs.finite(chart.fontSize, 12));
8880
8880
  const legendPosition = chart.legendPosition === "left" ? "left" : chart.legendPosition === "right" ? "right" : "bottom";
8881
8881
  const legendHeight = showLegend && legendPosition === "bottom" ? 48 : 0;
8882
- const cellGap = Math.max(0, chunkQL7MNEMT_cjs.finite(chart.config?.cellGap, 0));
8882
+ const cellGap = Math.max(0, chunkC25NWWIH_cjs.finite(chart.config?.cellGap, 0));
8883
8883
  return {
8884
8884
  leaves: chart.series,
8885
- bands: chunkQL7MNEMT_cjs.axisBands(chart.axisY),
8886
- zones: chart.config?.zones?.length ? chart.config.zones : chunkQL7MNEMT_cjs.DEFAULT_HEATMAP_ZONES,
8885
+ bands: chunkC25NWWIH_cjs.axisBands(chart.axisY),
8886
+ zones: chart.config?.zones?.length ? chart.config.zones : chunkC25NWWIH_cjs.DEFAULT_HEATMAP_ZONES,
8887
8887
  fontSize,
8888
8888
  smallFontSize: Math.max(8, fontSize - 1),
8889
8889
  legendPosition,
@@ -8891,18 +8891,18 @@ function createTreemapLayout(context) {
8891
8891
  gridWidth: Math.max(1, plot.width),
8892
8892
  gridHeight: Math.max(1, plot.height - legendHeight),
8893
8893
  cellGap,
8894
- cellRadius: Math.max(0, chunkQL7MNEMT_cjs.finite(chart.config?.barCornerRadius, cellGap)),
8895
- headerHeight: Math.max(0, chunkQL7MNEMT_cjs.finite(chart.config?.headerHeight, 20)),
8896
- labelSize: Math.max(6, chunkQL7MNEMT_cjs.finite(chart.config?.tileLabelSize, Math.max(8, fontSize - 1))),
8897
- valueSize: Math.max(6, chunkQL7MNEMT_cjs.finite(chart.config?.tileValueSize, Math.max(8, fontSize - 1))),
8898
- labelPadding: Math.max(0, chunkQL7MNEMT_cjs.finite(chart.config?.tileLabelPadding, 4))
8894
+ cellRadius: Math.max(0, chunkC25NWWIH_cjs.finite(chart.config?.barCornerRadius, cellGap)),
8895
+ headerHeight: Math.max(0, chunkC25NWWIH_cjs.finite(chart.config?.headerHeight, 20)),
8896
+ labelSize: Math.max(6, chunkC25NWWIH_cjs.finite(chart.config?.tileLabelSize, Math.max(8, fontSize - 1))),
8897
+ valueSize: Math.max(6, chunkC25NWWIH_cjs.finite(chart.config?.tileValueSize, Math.max(8, fontSize - 1))),
8898
+ labelPadding: Math.max(0, chunkC25NWWIH_cjs.finite(chart.config?.tileLabelPadding, 4))
8899
8899
  };
8900
8900
  }
8901
8901
  function treemapLeafValue(leaf) {
8902
8902
  return leaf.values[0] ?? 0;
8903
8903
  }
8904
8904
  function treemapLeafColor(leaf, layout) {
8905
- return leaf.color ?? chunkQL7MNEMT_cjs.zoneColorAtValue(treemapLeafValue(leaf), layout.bands, layout.zones);
8905
+ return leaf.color ?? chunkC25NWWIH_cjs.zoneColorAtValue(treemapLeafValue(leaf), layout.bands, layout.zones);
8906
8906
  }
8907
8907
 
8908
8908
  // src/renderScene/charts/renderers/treemap/legend.ts
@@ -8927,7 +8927,7 @@ function bandStops(layout) {
8927
8927
  const zones = layout.zones.slice(0, bandCount);
8928
8928
  return zones.map((zone, index) => ({
8929
8929
  offset: bandRatio2(layout, layout.bands[index + 1] ?? layout.bands[layout.bands.length - 1]) * 100,
8930
- color: zone.color ?? chunkQL7MNEMT_cjs.DEFAULT_ZONE_FILL
8930
+ color: zone.color ?? chunkC25NWWIH_cjs.DEFAULT_ZONE_FILL
8931
8931
  }));
8932
8932
  }
8933
8933
  function renderBottomLegend(context, layout) {
@@ -8936,7 +8936,7 @@ function renderBottomLegend(context, layout) {
8936
8936
  const barWidth = layout.gridWidth;
8937
8937
  const labelHeight = layout.fontSize + 2;
8938
8938
  const barY = plot.y + layout.gridHeight + CHART_GAP;
8939
- const barBounds = chunkQL7MNEMT_cjs.boxBounds({ x: barX, y: barY, width: barWidth, height: BAR_THICKNESS2 });
8939
+ const barBounds = chunkC25NWWIH_cjs.boxBounds({ x: barX, y: barY, width: barWidth, height: BAR_THICKNESS2 });
8940
8940
  const stops = bandStops(layout);
8941
8941
  const bar = {
8942
8942
  type: "rect",
@@ -8950,7 +8950,7 @@ function renderBottomLegend(context, layout) {
8950
8950
  rx: 3,
8951
8951
  zoneGradient: { axis: "y", min: chart.axisY.min, max: chart.axisY.max },
8952
8952
  style: {
8953
- fill: stops.length ? { kind: "linear-gradient", angle: 0, stops } : { kind: "solid", color: chunkQL7MNEMT_cjs.DEFAULT_ZONE_FILL },
8953
+ fill: stops.length ? { kind: "linear-gradient", angle: 0, stops } : { kind: "solid", color: chunkC25NWWIH_cjs.DEFAULT_ZONE_FILL },
8954
8954
  stroke: { kind: "solid", color: chart.gridColor ?? "#e2e8f0" },
8955
8955
  strokeWidth: 1
8956
8956
  }
@@ -8973,12 +8973,12 @@ function renderBottomLegend(context, layout) {
8973
8973
  const isLast = index === layout.bands.length - 1;
8974
8974
  const align = isFirst ? "left" : isLast ? "right" : "center";
8975
8975
  const frameX = isFirst ? x : isLast ? x - LABEL_SIZE : x - LABEL_SIZE / 2;
8976
- const label = chunkQL7MNEMT_cjs.chartText({
8976
+ const label = chunkC25NWWIH_cjs.chartText({
8977
8977
  id: `chart-treemap-legend-tick-label-${chart.id}-${index}`,
8978
8978
  order: nextOrder(),
8979
8979
  bounds,
8980
8980
  frame: { x: frameX, y: barY + BAR_THICKNESS2 + TICK_LENGTH3 + ROW_GAP2, width: LABEL_SIZE, height: labelHeight },
8981
- text: chunkQL7MNEMT_cjs.formatFieldValue(value),
8981
+ text: chunkC25NWWIH_cjs.formatFieldValue(value),
8982
8982
  chart,
8983
8983
  align
8984
8984
  });
@@ -8992,7 +8992,7 @@ function renderSideLegend(context, layout) {
8992
8992
  const barTop = plot.y;
8993
8993
  const barHeight = layout.gridHeight;
8994
8994
  const barX = side === "left" ? plot.x - CHART_GAP - BAR_THICKNESS2 : plot.x + layout.gridWidth + CHART_GAP;
8995
- const barBounds = chunkQL7MNEMT_cjs.boxBounds({ x: barX, y: barTop, width: BAR_THICKNESS2, height: barHeight });
8995
+ const barBounds = chunkC25NWWIH_cjs.boxBounds({ x: barX, y: barTop, width: BAR_THICKNESS2, height: barHeight });
8996
8996
  const stops = bandStops(layout);
8997
8997
  const bar = {
8998
8998
  type: "rect",
@@ -9006,7 +9006,7 @@ function renderSideLegend(context, layout) {
9006
9006
  rx: 3,
9007
9007
  zoneGradient: { axis: "y", min: chart.axisY.min, max: chart.axisY.max },
9008
9008
  style: {
9009
- fill: stops.length ? { kind: "linear-gradient", angle: 270, stops } : { kind: "solid", color: chunkQL7MNEMT_cjs.DEFAULT_ZONE_FILL },
9009
+ fill: stops.length ? { kind: "linear-gradient", angle: 270, stops } : { kind: "solid", color: chunkC25NWWIH_cjs.DEFAULT_ZONE_FILL },
9010
9010
  stroke: { kind: "solid", color: chart.gridColor ?? "#e2e8f0" },
9011
9011
  strokeWidth: 1
9012
9012
  }
@@ -9028,12 +9028,12 @@ function renderSideLegend(context, layout) {
9028
9028
  strokeWidth: 1
9029
9029
  }
9030
9030
  };
9031
- const label = chunkQL7MNEMT_cjs.chartText({
9031
+ const label = chunkC25NWWIH_cjs.chartText({
9032
9032
  id: `chart-treemap-legend-tick-label-${chart.id}-${index}`,
9033
9033
  order: nextOrder(),
9034
9034
  bounds,
9035
9035
  frame: { x: labelX2, y: y - layout.fontSize / 2, width: LABEL_SIZE, height: layout.fontSize + 2 },
9036
- text: chunkQL7MNEMT_cjs.formatFieldValue(value),
9036
+ text: chunkC25NWWIH_cjs.formatFieldValue(value),
9037
9037
  chart,
9038
9038
  align: side === "left" ? "right" : "left"
9039
9039
  });
@@ -9121,7 +9121,7 @@ function renderTreemapHeader(context, layout, header, index) {
9121
9121
  };
9122
9122
  const smallFontSize = Math.max(8, Math.max(9, chart.fontSize ?? 12) - 1);
9123
9123
  const label = {
9124
- ...chunkQL7MNEMT_cjs.chartText({
9124
+ ...chunkC25NWWIH_cjs.chartText({
9125
9125
  id: `chart-treemap-header-label-${chart.id}-${index}`,
9126
9126
  order: nextOrder(),
9127
9127
  bounds,
@@ -9136,7 +9136,7 @@ function renderTreemapHeader(context, layout, header, index) {
9136
9136
  align: "center"
9137
9137
  }),
9138
9138
  fontSize: smallFontSize,
9139
- color: chunkQL7MNEMT_cjs.contrastTextColor(fill2)
9139
+ color: chunkC25NWWIH_cjs.contrastTextColor(fill2)
9140
9140
  };
9141
9141
  return [background, label];
9142
9142
  }
@@ -9152,7 +9152,7 @@ function renderTile(context, layout, tile, nextTile) {
9152
9152
  function createTileNode(context, layout, tile, color, nextColor) {
9153
9153
  const { chart, plot, bounds, diagnostics, nextOrder } = context;
9154
9154
  const gap = layout.cellGap;
9155
- const shadow = chunkQL7MNEMT_cjs.resolveChartShadow(chart.shadowStyle);
9155
+ const shadow = chunkC25NWWIH_cjs.resolveChartShadow(chart.shadowStyle);
9156
9156
  const clipPath = shadow ? `M ${plot.x} ${plot.y} H ${plot.x + plot.width} V ${plot.y + plot.height} H ${plot.x} Z` : void 0;
9157
9157
  const tileX = plot.x + tile.x + gap / 2;
9158
9158
  const tileY = plot.y + tile.y + gap / 2;
@@ -9169,10 +9169,10 @@ function createTileNode(context, layout, tile, color, nextColor) {
9169
9169
  kind: "linear-gradient",
9170
9170
  angle: 0,
9171
9171
  stops: [
9172
- { offset: 0, color: chunkQL7MNEMT_cjs.representativeColor(color, fallback) },
9173
- { offset: 100, color: chunkQL7MNEMT_cjs.representativeColor(nextColor, fallback) }
9172
+ { offset: 0, color: chunkC25NWWIH_cjs.representativeColor(color, fallback) },
9173
+ { offset: 100, color: chunkC25NWWIH_cjs.representativeColor(nextColor, fallback) }
9174
9174
  ]
9175
- } : chunkQL7MNEMT_cjs.paint(color, diagnostics, chart.id);
9175
+ } : chunkC25NWWIH_cjs.paint(color, diagnostics, chart.id);
9176
9176
  return {
9177
9177
  type: "rect",
9178
9178
  id: `chart-treemap-tile-${chart.id}-${tile.item.leaf.id}`,
@@ -9186,7 +9186,7 @@ function createTileNode(context, layout, tile, color, nextColor) {
9186
9186
  style: {
9187
9187
  fill: fill2,
9188
9188
  stroke: { kind: "solid", color: chart.config?.tileStrokeColor ?? chart.gridColor ?? "#e2e8f0" },
9189
- strokeWidth: chunkQL7MNEMT_cjs.finite(chart.config?.tileStrokeWidth, chunkQL7MNEMT_cjs.finite(chart.gridWidth, 1)),
9189
+ strokeWidth: chunkC25NWWIH_cjs.finite(chart.config?.tileStrokeWidth, chunkC25NWWIH_cjs.finite(chart.gridWidth, 1)),
9190
9190
  shadow,
9191
9191
  clip: clipPath ? { type: "path", d: clipPath } : void 0
9192
9192
  }
@@ -9201,12 +9201,12 @@ function createTileLabel(context, layout, tile, color) {
9201
9201
  const height = Math.max(1, tile.height - gap - pad * 1.5);
9202
9202
  const x = plot.x + tile.x + gap / 2 + pad;
9203
9203
  const y = plot.y + tile.y + gap / 2 + pad * 0.75;
9204
- const textColor = chart.config?.tileTextColor ?? chunkQL7MNEMT_cjs.contrastTextColor(chunkQL7MNEMT_cjs.representativeColor(color, "#ffffff"));
9204
+ const textColor = chart.config?.tileTextColor ?? chunkC25NWWIH_cjs.contrastTextColor(chunkC25NWWIH_cjs.representativeColor(color, "#ffffff"));
9205
9205
  const lineHeight = layout.labelSize * 1.2;
9206
9206
  const maxLines = Math.max(1, Math.floor(height / lineHeight));
9207
- const labelLines = chunkQL7MNEMT_cjs.wrapText(leaf.label, width, layout.labelSize).slice(0, maxLines).map((line) => chunkQL7MNEMT_cjs.ellipsizeToWidth(line, width, layout.labelSize, true));
9207
+ const labelLines = chunkC25NWWIH_cjs.wrapText(leaf.label, width, layout.labelSize).slice(0, maxLines).map((line) => chunkC25NWWIH_cjs.ellipsizeToWidth(line, width, layout.labelSize, true));
9208
9208
  const label = {
9209
- ...chunkQL7MNEMT_cjs.chartText({
9209
+ ...chunkC25NWWIH_cjs.chartText({
9210
9210
  id: `chart-treemap-label-${chart.id}-${leaf.id}`,
9211
9211
  order: nextOrder(),
9212
9212
  bounds,
@@ -9220,12 +9220,12 @@ function createTileLabel(context, layout, tile, color) {
9220
9220
  color: textColor
9221
9221
  };
9222
9222
  const valueText = String(value);
9223
- const valueFits = labelLines.length * lineHeight + layout.valueSize * 1.2 <= height + 2 && chunkQL7MNEMT_cjs.estimateTextWidth(valueText, layout.valueSize, false) <= width;
9223
+ const valueFits = labelLines.length * lineHeight + layout.valueSize * 1.2 <= height + 2 && chunkC25NWWIH_cjs.estimateTextWidth(valueText, layout.valueSize, false) <= width;
9224
9224
  if (chart.config?.showTileValues === false || !valueFits) {
9225
9225
  return [label];
9226
9226
  }
9227
9227
  const valueNode = {
9228
- ...chunkQL7MNEMT_cjs.chartText({
9228
+ ...chunkC25NWWIH_cjs.chartText({
9229
9229
  id: `chart-treemap-value-${chart.id}-${leaf.id}`,
9230
9230
  order: nextOrder(),
9231
9231
  bounds,
@@ -9302,7 +9302,7 @@ function buildCartesianChart(foundation) {
9302
9302
 
9303
9303
  // src/renderScene/charts/chartFrame.ts
9304
9304
  function scaleDetail(chart, plot) {
9305
- const horizontal = chunkQL7MNEMT_cjs.isHorizontalBar(chart);
9305
+ const horizontal = chunkC25NWWIH_cjs.isHorizontalBar(chart);
9306
9306
  const range = horizontal ? `${plot.x},${plot.width}` : `${plot.y},${plot.height}`;
9307
9307
  return {
9308
9308
  of: "chartScale",
@@ -9310,7 +9310,7 @@ function scaleDetail(chart, plot) {
9310
9310
  };
9311
9311
  }
9312
9312
  function pieDetail(chart, plot) {
9313
- const { outerRadius, innerRadius, cornerRadius } = chunkQL7MNEMT_cjs.resolvePieRadii(
9313
+ const { outerRadius, innerRadius, cornerRadius } = chunkC25NWWIH_cjs.resolvePieRadii(
9314
9314
  plot.width,
9315
9315
  plot.height,
9316
9316
  chart.config?.innerRadius,
@@ -9323,8 +9323,8 @@ function pieDetail(chart, plot) {
9323
9323
  }
9324
9324
  function polarAreaDetail(chart, plot) {
9325
9325
  const maxRadius = Math.max(1, Math.min(plot.width, plot.height) / 2 - 4);
9326
- const innerRadius = Math.max(0, Math.min(chunkQL7MNEMT_cjs.finite(chart.config?.innerRadius, 0), maxRadius - 1));
9327
- const cornerRadius = Math.max(0, chunkQL7MNEMT_cjs.finite(chart.config?.pieCornerRadius, 0));
9326
+ const innerRadius = Math.max(0, Math.min(chunkC25NWWIH_cjs.finite(chart.config?.innerRadius, 0), maxRadius - 1));
9327
+ const cornerRadius = Math.max(0, chunkC25NWWIH_cjs.finite(chart.config?.pieCornerRadius, 0));
9328
9328
  return {
9329
9329
  of: "pieGeometry",
9330
9330
  pieGeometry: `${plot.x + plot.width / 2},${plot.y + plot.height / 2},${maxRadius},${innerRadius},${cornerRadius}`
@@ -9333,8 +9333,8 @@ function polarAreaDetail(chart, plot) {
9333
9333
  function radarDetail(chart, plot) {
9334
9334
  const configuredCount = (chart.config?.categories?.filter(Boolean) ?? []).length;
9335
9335
  const dataCount = Math.max(0, ...chart.series.map((series) => series.values.length));
9336
- const count = chunkQL7MNEMT_cjs.radarCategoryCount(configuredCount, dataCount);
9337
- const radius = chunkQL7MNEMT_cjs.radarRadius(plot.width, plot.height, chunkQL7MNEMT_cjs.finite(chart.fontSize, 12), chart.showAxisLabels !== false);
9336
+ const count = chunkC25NWWIH_cjs.radarCategoryCount(configuredCount, dataCount);
9337
+ const radius = chunkC25NWWIH_cjs.radarRadius(plot.width, plot.height, chunkC25NWWIH_cjs.finite(chart.fontSize, 12), chart.showAxisLabels !== false);
9338
9338
  const centerX = plot.x + plot.width / 2;
9339
9339
  const centerY = plot.y + plot.height / 2;
9340
9340
  const curved = chart.chartType === "radial" ? 1 : 0;
@@ -9368,9 +9368,9 @@ function buildChartFrame(chart, bounds, plot, order) {
9368
9368
  height: chart.height,
9369
9369
  rx: chart.cornerRadius ?? 12,
9370
9370
  style: {
9371
- fill: chunkQL7MNEMT_cjs.paint(chart.fillColor ?? "#ffffff", [], chart.id),
9371
+ fill: chunkC25NWWIH_cjs.paint(chart.fillColor ?? "#ffffff", [], chart.id),
9372
9372
  stroke: { kind: "solid", color: chart.strokeColor ?? "#475569" },
9373
- strokeWidth: chunkQL7MNEMT_cjs.finite(chart.strokeWidth, 1)
9373
+ strokeWidth: chunkC25NWWIH_cjs.finite(chart.strokeWidth, 1)
9374
9374
  }
9375
9375
  };
9376
9376
  const detail = frameDetail(chart, plot);
@@ -9430,7 +9430,7 @@ function buildChartTitle(chart, bounds, plot, renderOrder) {
9430
9430
  }
9431
9431
  return [
9432
9432
  {
9433
- ...chunkQL7MNEMT_cjs.chartText({
9433
+ ...chunkC25NWWIH_cjs.chartText({
9434
9434
  id: `chart-title-${chart.id}`,
9435
9435
  order: renderOrder.next(),
9436
9436
  bounds,
@@ -9441,8 +9441,8 @@ function buildChartTitle(chart, bounds, plot, renderOrder) {
9441
9441
  }),
9442
9442
  ...chart.titleColor ? { color: chart.titleColor } : {},
9443
9443
  fontWeight: chart.titleWeight ?? "bold",
9444
- fontSize: chunkQL7MNEMT_cjs.finite(chart.titleSize, Math.max(10, chunkQL7MNEMT_cjs.finite(chart.fontSize, 12)) + 2),
9445
- prop: chunkQL7MNEMT_cjs.CHART_TITLE_PROP
9444
+ fontSize: chunkC25NWWIH_cjs.finite(chart.titleSize, Math.max(10, chunkC25NWWIH_cjs.finite(chart.fontSize, 12)) + 2),
9445
+ prop: chunkC25NWWIH_cjs.CHART_TITLE_PROP
9446
9446
  }
9447
9447
  ];
9448
9448
  }
@@ -9495,7 +9495,7 @@ function buildChart(chart, index, diagnostics) {
9495
9495
  // src/renderScene/charts/artifacts.ts
9496
9496
  function buildCharts(charts, diagnostics) {
9497
9497
  return charts.flatMap(
9498
- (chart, index) => chunkQL7MNEMT_cjs.tag(buildChart(chart, index, diagnostics), "chart", chart.id, chart.chartType, chart.title ?? "Chart")
9498
+ (chart, index) => chunkC25NWWIH_cjs.tag(buildChart(chart, index, diagnostics), "chart", chart.id, chart.chartType, chart.title ?? "Chart")
9499
9499
  );
9500
9500
  }
9501
9501
 
@@ -9580,15 +9580,30 @@ function applyFrameClips(nodes, frames) {
9580
9580
  }
9581
9581
 
9582
9582
  // src/renderScene/scene/build.ts
9583
+ function visibleBounds(node) {
9584
+ let { minX, minY, maxX, maxY } = node.bounds;
9585
+ let clip = "style" in node ? node.style?.clip : void 0;
9586
+ while (clip) {
9587
+ if (clip.type === "rect") {
9588
+ minX = Math.max(minX, clip.x);
9589
+ minY = Math.max(minY, clip.y);
9590
+ maxX = Math.min(maxX, clip.x + clip.width);
9591
+ maxY = Math.min(maxY, clip.y + clip.height);
9592
+ }
9593
+ clip = clip.within;
9594
+ }
9595
+ return minX <= maxX && minY <= maxY ? { minX, minY, maxX, maxY } : node.bounds;
9596
+ }
9583
9597
  function sceneBounds(nodes) {
9584
9598
  if (!nodes.length) {
9585
- return chunkQL7MNEMT_cjs.EMPTY_BOUNDS;
9599
+ return chunkC25NWWIH_cjs.EMPTY_BOUNDS;
9586
9600
  }
9601
+ const all = nodes.map(visibleBounds);
9587
9602
  return {
9588
- minX: Math.min(...nodes.map((n) => n.bounds.minX)),
9589
- minY: Math.min(...nodes.map((n) => n.bounds.minY)),
9590
- maxX: Math.max(...nodes.map((n) => n.bounds.maxX)),
9591
- maxY: Math.max(...nodes.map((n) => n.bounds.maxY))
9603
+ minX: Math.min(...all.map((b) => b.minX)),
9604
+ minY: Math.min(...all.map((b) => b.minY)),
9605
+ maxX: Math.max(...all.map((b) => b.maxX)),
9606
+ maxY: Math.max(...all.map((b) => b.maxY))
9592
9607
  };
9593
9608
  }
9594
9609
  function stackingOf(input) {
@@ -9596,8 +9611,8 @@ function stackingOf(input) {
9596
9611
  const add = (role, objects, legacyBase) => {
9597
9612
  objects.forEach((object, index) => {
9598
9613
  stacking.set(`${role}:${object.id}`, {
9599
- rank: chunkQL7MNEMT_cjs.stackRank(object),
9600
- sequence: chunkQL7MNEMT_cjs.stackSequence(object, legacyBase + index)
9614
+ rank: chunkC25NWWIH_cjs.stackRank(object),
9615
+ sequence: chunkC25NWWIH_cjs.stackSequence(object, legacyBase + index)
9601
9616
  });
9602
9617
  });
9603
9618
  };
@@ -10090,31 +10105,31 @@ function chartSeriesAttrs(detail) {
10090
10105
  ];
10091
10106
  }
10092
10107
  function frameBoundaryAttrs(detail) {
10093
- return [`${chunkQL7MNEMT_cjs.CORNER_RADIUS_ATTR}="${num(detail.cornerRadius)}"`, `${chunkQL7MNEMT_cjs.SQUARE_CORNER_ATTR}="${detail.squareCorner}"`];
10108
+ return [`${chunkC25NWWIH_cjs.CORNER_RADIUS_ATTR}="${num(detail.cornerRadius)}"`, `${chunkC25NWWIH_cjs.SQUARE_CORNER_ATTR}="${detail.squareCorner}"`];
10094
10109
  }
10095
10110
  function declaredBoundsAttr(bounds) {
10096
- return `${chunkQL7MNEMT_cjs.SYMBOL_BOUNDS_ATTR}="${num(bounds.x)},${num(bounds.y)},${num(bounds.width)},${num(bounds.height)}"`;
10111
+ return `${chunkC25NWWIH_cjs.SYMBOL_BOUNDS_ATTR}="${num(bounds.x)},${num(bounds.y)},${num(bounds.width)},${num(bounds.height)}"`;
10097
10112
  }
10098
10113
  function symbolGeometryAttrs(detail) {
10099
10114
  return [
10100
- `${chunkQL7MNEMT_cjs.SYMBOL_POINTS_ATTR}="${xml(JSON.stringify(detail.points))}"`,
10101
- `${chunkQL7MNEMT_cjs.SYMBOL_TENSION_ATTR}="${num(detail.tension)}"`,
10115
+ `${chunkC25NWWIH_cjs.SYMBOL_POINTS_ATTR}="${xml(JSON.stringify(detail.points))}"`,
10116
+ `${chunkC25NWWIH_cjs.SYMBOL_TENSION_ATTR}="${num(detail.tension)}"`,
10102
10117
  declaredBoundsAttr(detail.declaredBounds)
10103
10118
  ];
10104
10119
  }
10105
10120
  function pathGeometryAttrs(detail) {
10106
10121
  return [
10107
- `${chunkQL7MNEMT_cjs.PATH_POINTS_ATTR}="${xml(JSON.stringify(detail.points))}"`,
10108
- `${chunkQL7MNEMT_cjs.PATH_TENSION_ATTR}="${num(detail.tension)}"`,
10109
- `${chunkQL7MNEMT_cjs.PATH_CLOSED_ATTR}="${detail.closed}"`
10122
+ `${chunkC25NWWIH_cjs.PATH_POINTS_ATTR}="${xml(JSON.stringify(detail.points))}"`,
10123
+ `${chunkC25NWWIH_cjs.PATH_TENSION_ATTR}="${num(detail.tension)}"`,
10124
+ `${chunkC25NWWIH_cjs.PATH_CLOSED_ATTR}="${detail.closed}"`
10110
10125
  ];
10111
10126
  }
10112
10127
  function isometricGeometryAttrs(detail) {
10113
10128
  return [
10114
- `${chunkQL7MNEMT_cjs.ISOMETRIC_SIZE_ATTR}="${num(detail.width)},${num(detail.height)},${num(detail.depth)}"`,
10115
- `${chunkQL7MNEMT_cjs.CORNER_RADIUS_ATTR}="${num(detail.cornerRadius)}"`,
10129
+ `${chunkC25NWWIH_cjs.ISOMETRIC_SIZE_ATTR}="${num(detail.width)},${num(detail.height)},${num(detail.depth)}"`,
10130
+ `${chunkC25NWWIH_cjs.CORNER_RADIUS_ATTR}="${num(detail.cornerRadius)}"`,
10116
10131
  declaredBoundsAttr(detail.bounds),
10117
- `${chunkQL7MNEMT_cjs.ISOMETRIC_LABEL_OFFSET_ATTR}="${num(detail.labelOffsetX)},${num(detail.labelOffsetY)}"`
10132
+ `${chunkC25NWWIH_cjs.ISOMETRIC_LABEL_OFFSET_ATTR}="${num(detail.labelOffsetX)},${num(detail.labelOffsetY)}"`
10118
10133
  ];
10119
10134
  }
10120
10135
  function linkDetailAttrs(detail) {
@@ -10261,7 +10276,7 @@ function renderSvgDocument(scene, options = {}) {
10261
10276
  const nodes = options.linkHitAreas ? withLinkHitAreas(scene.nodes) : scene.nodes;
10262
10277
  const body = nodes.map((node) => nodeSvg(node, defs)).join("\n ");
10263
10278
  const declaration = options.includeXmlDeclaration === false ? "" : '<?xml version="1.0" encoding="UTF-8"?>\n';
10264
- const svg = `${declaration}<svg xmlns="http://www.w3.org/2000/svg" width="${num(width)}px" height="${num(height)}px" viewBox="${viewBox}" role="img" data-sf-contract="${chunkQL7MNEMT_cjs.DOM_CONTRACT_VERSION}">
10279
+ const svg = `${declaration}<svg xmlns="http://www.w3.org/2000/svg" width="${num(width)}px" height="${num(height)}px" viewBox="${viewBox}" role="img" data-sf-contract="${chunkC25NWWIH_cjs.DOM_CONTRACT_VERSION}">
10265
10280
  <defs>${defs.entries.join("")}</defs>
10266
10281
  ${body}
10267
10282
  </svg>`;
@@ -10281,9 +10296,9 @@ function renderCanvas(input, options = {}) {
10281
10296
  }
10282
10297
  var SCENE_CACHE_LIMIT = 50;
10283
10298
  var sceneCache = /* @__PURE__ */ new Map();
10284
- var cachedForRegistry = chunkQL7MNEMT_cjs.componentRegistryVersion();
10299
+ var cachedForRegistry = chunkC25NWWIH_cjs.componentRegistryVersion();
10285
10300
  function cachedRenderScene(source) {
10286
- const registry = chunkQL7MNEMT_cjs.componentRegistryVersion();
10301
+ const registry = chunkC25NWWIH_cjs.componentRegistryVersion();
10287
10302
  if (registry !== cachedForRegistry) {
10288
10303
  sceneCache.clear();
10289
10304
  cachedForRegistry = registry;
@@ -10315,7 +10330,7 @@ function render(source, options = {}) {
10315
10330
  var SCENE_ORDER_BASE = 1e4;
10316
10331
  function defineComponent(definition) {
10317
10332
  const { scene, ...descriptor } = definition;
10318
- const unregisterDescriptor = chunkQL7MNEMT_cjs.registerComponentDescriptor(descriptor);
10333
+ const unregisterDescriptor = chunkC25NWWIH_cjs.registerComponentDescriptor(descriptor);
10319
10334
  const unregisterBuilder = registerComponentBuilder(
10320
10335
  descriptor.type,
10321
10336
  (component, index) => scene(component, { order: SCENE_ORDER_BASE + index })
@@ -10334,5 +10349,5 @@ exports.render = render;
10334
10349
  exports.renderCanvas = renderCanvas;
10335
10350
  exports.sflToRenderInput = sflToRenderInput;
10336
10351
  exports.sliderReach = sliderReach;
10337
- //# sourceMappingURL=chunk-YSXD5IVZ.cjs.map
10338
- //# sourceMappingURL=chunk-YSXD5IVZ.cjs.map
10352
+ //# sourceMappingURL=chunk-EURX7QT3.cjs.map
10353
+ //# sourceMappingURL=chunk-EURX7QT3.cjs.map