@pixerate/editor 0.179.0 → 0.181.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/dist/agent/index.cjs +34 -34
  2. package/dist/agent/index.js +5 -5
  3. package/dist/canvas/index.cjs +6 -6
  4. package/dist/canvas/index.js +2 -2
  5. package/dist/chart/index.cjs +162 -157
  6. package/dist/chart/index.d.cts +1 -0
  7. package/dist/chart/index.d.ts +1 -0
  8. package/dist/chart/index.js +12 -7
  9. package/dist/chart/layout-streamgraph.d.cts +15 -0
  10. package/dist/chart/layout-streamgraph.d.ts +15 -0
  11. package/dist/chart/spec.d.cts +1 -1
  12. package/dist/chart/spec.d.ts +1 -1
  13. package/dist/chart/types.d.cts +2 -1
  14. package/dist/chart/types.d.ts +2 -1
  15. package/dist/{chunk-KPWG3PSW.js → chunk-23E5GI2U.js} +8 -2
  16. package/dist/{chunk-IMHRN4ZZ.js → chunk-3MO3ZS7E.js} +3 -3
  17. package/dist/{chunk-GXEC4FS6.cjs → chunk-5DQPDXOM.cjs} +82 -76
  18. package/dist/{chunk-ORZF4JOO.js → chunk-6ZZKRH7R.js} +3 -1
  19. package/dist/{chunk-FHNGNL3V.cjs → chunk-CZBRY4SW.cjs} +51 -51
  20. package/dist/{chunk-34UCPHYO.js → chunk-GOBOCZZI.js} +2 -2
  21. package/dist/{chunk-VKHJJUBK.cjs → chunk-HUAISCUX.cjs} +22 -18
  22. package/dist/{chunk-OLCHKGGO.js → chunk-L6Y7TSQ4.js} +5 -1
  23. package/dist/{chunk-TUXKLM5W.cjs → chunk-N76AMOKE.cjs} +224 -42
  24. package/dist/{chunk-RLOIEDA3.cjs → chunk-O7QXVGMP.cjs} +16 -16
  25. package/dist/{chunk-R2VHVQVY.js → chunk-PI2UYMZY.js} +3 -3
  26. package/dist/{chunk-E45AIIWY.cjs → chunk-RUONPPMC.cjs} +8 -8
  27. package/dist/{chunk-GTF4RYXJ.cjs → chunk-SOSBOS5T.cjs} +22 -22
  28. package/dist/{chunk-FKYGM35R.js → chunk-UFEDHACQ.js} +2 -2
  29. package/dist/{chunk-OJQVKJYD.js → chunk-WKMUBATU.js} +183 -1
  30. package/dist/{chunk-OUO3DSRT.cjs → chunk-WRZ6C4TU.cjs} +3 -1
  31. package/dist/export/index.cjs +4 -4
  32. package/dist/export/index.js +3 -3
  33. package/dist/extensions/index.cjs +7 -7
  34. package/dist/extensions/index.js +6 -6
  35. package/dist/image-editor/controller.d.cts +25 -0
  36. package/dist/image-editor/controller.d.ts +25 -0
  37. package/dist/image-editor/index.cjs +466 -303
  38. package/dist/image-editor/index.js +188 -25
  39. package/dist/image-editor/layers/panel.d.cts +2 -1
  40. package/dist/image-editor/layers/panel.d.ts +2 -1
  41. package/dist/image-editor/renderer.d.cts +4 -1
  42. package/dist/image-editor/renderer.d.ts +4 -1
  43. package/dist/image-editor/selection/index.d.cts +1 -0
  44. package/dist/image-editor/selection/index.d.ts +1 -0
  45. package/dist/image-editor/selection/overlay.d.cts +8 -0
  46. package/dist/image-editor/selection/overlay.d.ts +8 -0
  47. package/dist/image-editor/selection/segmentation.d.cts +49 -0
  48. package/dist/image-editor/selection/segmentation.d.ts +49 -0
  49. package/dist/image-editor/selection-tools.d.cts +18 -1
  50. package/dist/image-editor/selection-tools.d.ts +18 -1
  51. package/dist/image-editor/types.d.cts +7 -0
  52. package/dist/image-editor/types.d.ts +7 -0
  53. package/dist/index.cjs +13 -13
  54. package/dist/index.js +7 -7
  55. package/package.json +1 -1
  56. package/skills/pixerate-image-editor/SKILL.md +5 -3
@@ -17,7 +17,7 @@
17
17
 
18
18
 
19
19
 
20
- var _chunkGTF4RYXJcjs = require('../chunk-GTF4RYXJ.cjs');
20
+ var _chunkSOSBOS5Tcjs = require('../chunk-SOSBOS5T.cjs');
21
21
 
22
22
 
23
23
 
@@ -25,7 +25,7 @@ var _chunkGTF4RYXJcjs = require('../chunk-GTF4RYXJ.cjs');
25
25
 
26
26
 
27
27
 
28
- var _chunkVKHJJUBKcjs = require('../chunk-VKHJJUBK.cjs');
28
+ var _chunkHUAISCUXcjs = require('../chunk-HUAISCUX.cjs');
29
29
 
30
30
 
31
31
 
@@ -47,7 +47,7 @@ var _chunkVKHJJUBKcjs = require('../chunk-VKHJJUBK.cjs');
47
47
 
48
48
 
49
49
 
50
- var _chunkGXEC4FS6cjs = require('../chunk-GXEC4FS6.cjs');
50
+ var _chunk5DQPDXOMcjs = require('../chunk-5DQPDXOM.cjs');
51
51
  require('../chunk-TTCJPX4U.cjs');
52
52
 
53
53
 
@@ -99,8 +99,8 @@ require('../chunk-TTCJPX4U.cjs');
99
99
 
100
100
 
101
101
 
102
- var _chunkTUXKLM5Wcjs = require('../chunk-TUXKLM5W.cjs');
103
102
 
103
+ var _chunkN76AMOKEcjs = require('../chunk-N76AMOKE.cjs');
104
104
 
105
105
 
106
106
 
@@ -193,7 +193,8 @@ var _chunkTUXKLM5Wcjs = require('../chunk-TUXKLM5W.cjs');
193
193
 
194
194
 
195
195
 
196
- var _chunkOUO3DSRTcjs = require('../chunk-OUO3DSRT.cjs');
196
+
197
+ var _chunkWRZ6C4TUcjs = require('../chunk-WRZ6C4TU.cjs');
197
198
  require('../chunk-VU6WQSMB.cjs');
198
199
  require('../chunk-55AKPTLM.cjs');
199
200
 
@@ -328,7 +329,7 @@ function chartFileName(spec, extension) {
328
329
  }
329
330
  async function downloadChartPng(spec, options = {}) {
330
331
  const { width = 800, height = 450, filename = chartFileName(spec, "png"), theme, ...raster } = options;
331
- const svg = _chunkGXEC4FS6cjs.chartToSvg.call(void 0, spec, { width, height, theme });
332
+ const svg = _chunk5DQPDXOMcjs.chartToSvg.call(void 0, spec, { width, height, theme });
332
333
  const { url, width: w, height: h } = await svgToPngDataUrl(svg, { ...raster, width, height });
333
334
  const doc = _nullishCoalesce(raster.document, () => ( globalThis.document));
334
335
  const link = doc.createElement("a");
@@ -343,7 +344,7 @@ async function downloadChartPng(spec, options = {}) {
343
344
 
344
345
  // src/chart/recommend.ts
345
346
  var blank = (c) => c === null || c === void 0 || String(c).trim() === "";
346
- var isText = (c) => blank(c) || _chunkOUO3DSRTcjs.parseChartValue.call(void 0, c) === void 0;
347
+ var isText = (c) => blank(c) || _chunkWRZ6C4TUcjs.parseChartValue.call(void 0, c) === void 0;
347
348
  function analyzeChartTable(rows) {
348
349
  const grid = rows.filter((r) => r.some((c) => !blank(c)));
349
350
  const height = grid.length;
@@ -361,7 +362,7 @@ function analyzeChartTable(rows) {
361
362
  let anyPositive = false;
362
363
  for (let r = headerRow ? 1 : 0; r < height; r++)
363
364
  for (let c = labelColumn ? 1 : 0; c < width; c++) {
364
- const v = _chunkOUO3DSRTcjs.parseChartValue.call(void 0, cell(r, c));
365
+ const v = _chunkWRZ6C4TUcjs.parseChartValue.call(void 0, cell(r, c));
365
366
  if (typeof v !== "number") continue;
366
367
  anyNumber = true;
367
368
  if (v < 0) {
@@ -370,7 +371,7 @@ function analyzeChartTable(rows) {
370
371
  } else if (v > 0) anyPositive = true;
371
372
  }
372
373
  const labels = byRows ? _nullishCoalesce(_optionalChain([grid, 'access', _20 => _20[0], 'optionalAccess', _21 => _21.slice, 'call', _22 => _22(labelColumn ? 1 : 0)]), () => ( [])) : grid.slice(headerRow ? 1 : 0).map((r) => r[0]);
373
- const dates = (byRows ? headerRow : labelColumn) && labels.length > 1 && labels.filter((l) => !blank(l) && _chunkTUXKLM5Wcjs.parseChartDate.call(void 0, String(l)) !== null).length >= labels.length * 0.8;
374
+ const dates = (byRows ? headerRow : labelColumn) && labels.length > 1 && labels.filter((l) => !blank(l) && _chunkN76AMOKEcjs.parseChartDate.call(void 0, String(l)) !== null).length >= labels.length * 0.8;
374
375
  return {
375
376
  headerRow,
376
377
  labelColumn,
@@ -407,7 +408,10 @@ function recommendForShape(shape) {
407
408
  add("line", "Line", "The categories are dates: a line shows change over time.");
408
409
  add("area", "Area", "Shows change over time with volume.");
409
410
  add("bar", "Column", "Compares each period.");
410
- if (shape.series > 1) add("area", "Stacked area", "Shows how the parts add up over time.", "stacked");
411
+ if (shape.series > 1) {
412
+ add("area", "Stacked area", "Shows how the parts add up over time.", "stacked");
413
+ add("streamgraph", "Streamgraph", "Shows changing proportions and overall volume as an organic stream.");
414
+ }
411
415
  if (shape.series >= 5 && shape.points >= 3) add("barrace", "Bar race", "Many series over time: an animated ranking shows who leads when.");
412
416
  return out;
413
417
  }
@@ -462,7 +466,7 @@ function chartFromTable(rows, options = {}) {
462
466
  if (xFromFirst) {
463
467
  table = table.map((r) => [r[1], ...r.slice(2)]);
464
468
  }
465
- const data = _chunkOUO3DSRTcjs.chartDataFromTable.call(void 0, table, { seriesIn: shape.byRows ? "rows" : "columns", header: true, xFromFirstColumn: xFromFirst });
469
+ const data = _chunkWRZ6C4TUcjs.chartDataFromTable.call(void 0, table, { seriesIn: shape.byRows ? "rows" : "columns", header: true, xFromFirstColumn: xFromFirst });
466
470
  return { type, stacking, categories: data.categories, series: data.series, issues: data.issues, shape };
467
471
  }
468
472
 
@@ -504,10 +508,10 @@ function createChartCommands(controller, options = {}) {
504
508
  readOnly: true,
505
509
  keywords: ["chart", "data", "spec", "get", "summary"],
506
510
  description: "Returns the chart spec, its data as a table (series names in the header row) and a summary: per-series min / max / mean / trend, axes as drawn, layout warnings and a colour check.",
507
- params: object({ width: _chunkGTF4RYXJcjs.WIDTH, height: _chunkGTF4RYXJcjs.HEIGHT }),
511
+ params: object({ width: _chunkSOSBOS5Tcjs.WIDTH, height: _chunkSOSBOS5Tcjs.HEIGHT }),
508
512
  run: (_ctx, params = {}) => {
509
513
  const spec = controller.getSpec();
510
- return { spec: controller.toJSON(), table: _chunkOUO3DSRTcjs.chartDataToTable.call(void 0, spec), summary: _chunkGXEC4FS6cjs.summarizeChart.call(void 0, controller.toJSON(), { width: _nullishCoalesce(_optionalChain([params, 'optionalAccess', _25 => _25.width]), () => ( 640)), height: _nullishCoalesce(_optionalChain([params, 'optionalAccess', _26 => _26.height]), () => ( 400)) }), issues: controller.getState().issues };
514
+ return { spec: controller.toJSON(), table: _chunkWRZ6C4TUcjs.chartDataToTable.call(void 0, spec), summary: _chunk5DQPDXOMcjs.summarizeChart.call(void 0, controller.toJSON(), { width: _nullishCoalesce(_optionalChain([params, 'optionalAccess', _25 => _25.width]), () => ( 640)), height: _nullishCoalesce(_optionalChain([params, 'optionalAccess', _26 => _26.height]), () => ( 400)) }), issues: controller.getState().issues };
511
515
  }
512
516
  },
513
517
  {
@@ -516,7 +520,7 @@ function createChartCommands(controller, options = {}) {
516
520
  label: "Change Chart\u2026",
517
521
  keywords: ["chart", "title", "axis", "legend", "stack", "style", "format", "type"],
518
522
  description: 'Changes chart presentation as one undo step: type, titles, axes (xAxis = categories, yAxis = values, yAxis2 = secondary values; reverse, and scale "log" on value axes), legend, stacking, orientation, curve, points, data labels, palette, donut hole, bar spacing, histogram bins, waterfall total, or radar rings and grid shape, note, highlight, reference lines and bands, or colour by category (varyColors). Invalid values change nothing and return why.',
519
- params: object(_chunkGTF4RYXJcjs.CHART_UPDATE_PROPERTIES),
523
+ params: object(_chunkSOSBOS5Tcjs.CHART_UPDATE_PROPERTIES),
520
524
  run: (_ctx, params) => {
521
525
  check(controller.update(params));
522
526
  return { spec: controller.toJSON() };
@@ -530,11 +534,11 @@ function createChartCommands(controller, options = {}) {
530
534
  description: "Replaces the categories and series as one undo step. Each series has one value per category (padded with gaps).",
531
535
  params: object({
532
536
  categories: { type: "array", items: { type: "string" }, description: "Category labels in order." },
533
- series: { type: "array", description: "The new series.", items: object({ id: { type: "string", description: "Stable id (optional)." }, ..._chunkGTF4RYXJcjs.SERIES_PROPS }, ["name", "values"]) }
537
+ series: { type: "array", description: "The new series.", items: object({ id: { type: "string", description: "Stable id (optional)." }, ..._chunkSOSBOS5Tcjs.SERIES_PROPS }, ["name", "values"]) }
534
538
  }),
535
539
  run: (_ctx, params) => {
536
540
  check(controller.setData(params));
537
- return { table: _chunkOUO3DSRTcjs.chartDataToTable.call(void 0, controller.getSpec()) };
541
+ return { table: _chunkWRZ6C4TUcjs.chartDataToTable.call(void 0, controller.getSpec()) };
538
542
  }
539
543
  },
540
544
  {
@@ -543,10 +547,10 @@ function createChartCommands(controller, options = {}) {
543
547
  label: "Set Chart Values\u2026",
544
548
  keywords: ["chart", "value", "cell", "edit"],
545
549
  description: "Sets individual values as one undo step. Series by id or name; category by index or label.",
546
- params: object({ cells: { type: "array", minItems: 1, description: "Values to set.", items: object({ series: _chunkGTF4RYXJcjs.SERIES_REF, category: _chunkGTF4RYXJcjs.CATEGORY_REF, value: _chunkGTF4RYXJcjs.VALUE }, ["series", "category", "value"]) } }, ["cells"]),
550
+ params: object({ cells: { type: "array", minItems: 1, description: "Values to set.", items: object({ series: _chunkSOSBOS5Tcjs.SERIES_REF, category: _chunkSOSBOS5Tcjs.CATEGORY_REF, value: _chunkSOSBOS5Tcjs.VALUE }, ["series", "category", "value"]) } }, ["cells"]),
547
551
  run: (_ctx, params) => {
548
552
  check(controller.setValues(params.cells.map((c) => ({ seriesId: resolveSeries(c.series).id, index: resolveCategory(c.category), value: c.value }))));
549
- return { table: _chunkOUO3DSRTcjs.chartDataToTable.call(void 0, controller.getSpec()) };
553
+ return { table: _chunkWRZ6C4TUcjs.chartDataToTable.call(void 0, controller.getSpec()) };
550
554
  }
551
555
  },
552
556
  {
@@ -555,7 +559,7 @@ function createChartCommands(controller, options = {}) {
555
559
  label: "Add Series",
556
560
  keywords: ["chart", "series", "new"],
557
561
  description: "Adds a series (default: an empty one at the end). Returns its id.",
558
- params: object({ ..._chunkGTF4RYXJcjs.SERIES_PROPS, id: { type: "string", description: "Id to use (default series-N)." }, at: { type: "integer", minimum: 0, description: "Position (default: last)." } }),
562
+ params: object({ ..._chunkSOSBOS5Tcjs.SERIES_PROPS, id: { type: "string", description: "Id to use (default series-N)." }, at: { type: "integer", minimum: 0, description: "Position (default: last)." } }),
559
563
  run: (_ctx, params = {}) => {
560
564
  const { at, ...input } = _nullishCoalesce(params, () => ( {}));
561
565
  const clean = Object.fromEntries(Object.entries(input).filter(([, v]) => v !== null));
@@ -570,7 +574,7 @@ function createChartCommands(controller, options = {}) {
570
574
  label: "Change Series\u2026",
571
575
  keywords: ["chart", "series", "rename", "colour", "color", "hide", "axis", "marker"],
572
576
  description: "Renames, recolours, hides, moves to the secondary axis or changes how a series is drawn, including error bars (null resets a field).",
573
- params: object({ series: _chunkGTF4RYXJcjs.SERIES_REF, ...Object.fromEntries(Object.entries(_chunkGTF4RYXJcjs.SERIES_PROPS).filter(([k]) => k !== "values")) }, ["series"]),
577
+ params: object({ series: _chunkSOSBOS5Tcjs.SERIES_REF, ...Object.fromEntries(Object.entries(_chunkSOSBOS5Tcjs.SERIES_PROPS).filter(([k]) => k !== "values")) }, ["series"]),
574
578
  run: (_ctx, params) => {
575
579
  const { series, ...patch } = params;
576
580
  const id = resolveSeries(series).id;
@@ -584,7 +588,7 @@ function createChartCommands(controller, options = {}) {
584
588
  label: "Delete Series",
585
589
  keywords: ["chart", "series", "remove"],
586
590
  description: "Deletes a series by id or name.",
587
- params: object({ series: _chunkGTF4RYXJcjs.SERIES_REF }, ["series"]),
591
+ params: object({ series: _chunkSOSBOS5Tcjs.SERIES_REF }, ["series"]),
588
592
  run: (_ctx, params) => {
589
593
  check(controller.removeSeries(resolveSeries(params.series).id));
590
594
  return { series: seriesIds() };
@@ -609,7 +613,7 @@ function createChartCommands(controller, options = {}) {
609
613
  label: "Delete Category",
610
614
  keywords: ["chart", "category", "row", "remove"],
611
615
  description: "Deletes a category (and its values) by index or label.",
612
- params: object({ category: _chunkGTF4RYXJcjs.CATEGORY_REF }, ["category"]),
616
+ params: object({ category: _chunkSOSBOS5Tcjs.CATEGORY_REF }, ["category"]),
613
617
  run: (_ctx, params) => {
614
618
  check(controller.removeCategory(resolveCategory(params.category)));
615
619
  return { categories: controller.getSpec().categories };
@@ -621,7 +625,7 @@ function createChartCommands(controller, options = {}) {
621
625
  label: "Add Trendline\u2026",
622
626
  keywords: ["chart", "trend", "regression", "fit", "forecast", "moving average"],
623
627
  description: "Fits a trendline to a series (linear, exponential, logarithmic, power, polynomial or moving average). Returns its index and the fit.",
624
- params: object({ series: _chunkGTF4RYXJcjs.SERIES_REF, ..._chunkGTF4RYXJcjs.TRENDLINE_PROPS }, ["series", "type"]),
628
+ params: object({ series: _chunkSOSBOS5Tcjs.SERIES_REF, ..._chunkSOSBOS5Tcjs.TRENDLINE_PROPS }, ["series", "type"]),
625
629
  run: (_ctx, params) => {
626
630
  const { series, ...line } = params;
627
631
  const result = controller.addTrendline(resolveSeries(series).id, line);
@@ -636,7 +640,7 @@ function createChartCommands(controller, options = {}) {
636
640
  label: "Delete Trendline",
637
641
  keywords: ["chart", "trend", "remove"],
638
642
  description: "Deletes a trendline from a series.",
639
- params: object({ series: _chunkGTF4RYXJcjs.SERIES_REF, index: { type: "integer", minimum: 0, description: "Trendline index (0 = first)." } }, ["series", "index"]),
643
+ params: object({ series: _chunkSOSBOS5Tcjs.SERIES_REF, index: { type: "integer", minimum: 0, description: "Trendline index (0 = first)." } }, ["series", "index"]),
640
644
  run: (_ctx, params) => {
641
645
  check(controller.removeTrendline(resolveSeries(params.series).id, params.index));
642
646
  return { trendlines: _nullishCoalesce(_optionalChain([controller, 'access', _29 => _29.getSeries, 'call', _30 => _30(resolveSeries(params.series).id), 'optionalAccess', _31 => _31.trendlines]), () => ( [])) };
@@ -648,7 +652,7 @@ function createChartCommands(controller, options = {}) {
648
652
  label: "Add Reference Line\u2026",
649
653
  keywords: ["chart", "target", "goal", "threshold", "average", "reference", "line", "annotation"],
650
654
  description: "Draws a dashed line across the plot at one value (a target, floor or average). Returns its index.",
651
- params: object(_chunkGTF4RYXJcjs.REFERENCE_LINE_PROPS, ["value"]),
655
+ params: object(_chunkSOSBOS5Tcjs.REFERENCE_LINE_PROPS, ["value"]),
652
656
  run: (_ctx, params) => {
653
657
  const result = controller.addReferenceLine(params);
654
658
  check(result);
@@ -661,7 +665,7 @@ function createChartCommands(controller, options = {}) {
661
665
  label: "Change Reference Line\u2026",
662
666
  keywords: ["chart", "target", "reference", "line", "annotation"],
663
667
  description: "Changes a reference line by index; label, axis and color take null to remove them.",
664
- params: object({ index: _chunkGTF4RYXJcjs.REFERENCE_INDEX.call(void 0, "Reference line"), ..._chunkGTF4RYXJcjs.REFERENCE_LINE_PATCH }, ["index"]),
668
+ params: object({ index: _chunkSOSBOS5Tcjs.REFERENCE_INDEX.call(void 0, "Reference line"), ..._chunkSOSBOS5Tcjs.REFERENCE_LINE_PATCH }, ["index"]),
665
669
  run: (_ctx, params) => {
666
670
  const { index, ...patch } = params;
667
671
  check(controller.updateReferenceLine(index, patch));
@@ -674,7 +678,7 @@ function createChartCommands(controller, options = {}) {
674
678
  label: "Delete Reference Line",
675
679
  keywords: ["chart", "target", "reference", "line", "remove"],
676
680
  description: "Deletes a reference line by index.",
677
- params: object({ index: _chunkGTF4RYXJcjs.REFERENCE_INDEX.call(void 0, "Reference line") }, ["index"]),
681
+ params: object({ index: _chunkSOSBOS5Tcjs.REFERENCE_INDEX.call(void 0, "Reference line") }, ["index"]),
678
682
  run: (_ctx, params) => {
679
683
  check(controller.removeReferenceLine(params.index));
680
684
  return { referenceLines: controller.getSpec().referenceLines };
@@ -686,7 +690,7 @@ function createChartCommands(controller, options = {}) {
686
690
  label: "Add Reference Band\u2026",
687
691
  keywords: ["chart", "target", "range", "band", "reference", "shade", "annotation"],
688
692
  description: "Shades a band across the plot between two values (a target or normal range). Returns its index.",
689
- params: object(_chunkGTF4RYXJcjs.REFERENCE_BAND_PROPS, ["from", "to"]),
693
+ params: object(_chunkSOSBOS5Tcjs.REFERENCE_BAND_PROPS, ["from", "to"]),
690
694
  run: (_ctx, params) => {
691
695
  const result = controller.addReferenceBand(params);
692
696
  check(result);
@@ -699,7 +703,7 @@ function createChartCommands(controller, options = {}) {
699
703
  label: "Change Reference Band\u2026",
700
704
  keywords: ["chart", "range", "band", "reference", "annotation"],
701
705
  description: "Changes a reference band by index; label, axis and color take null to remove them.",
702
- params: object({ index: _chunkGTF4RYXJcjs.REFERENCE_INDEX.call(void 0, "Reference band"), ..._chunkGTF4RYXJcjs.REFERENCE_BAND_PATCH }, ["index"]),
706
+ params: object({ index: _chunkSOSBOS5Tcjs.REFERENCE_INDEX.call(void 0, "Reference band"), ..._chunkSOSBOS5Tcjs.REFERENCE_BAND_PATCH }, ["index"]),
703
707
  run: (_ctx, params) => {
704
708
  const { index, ...patch } = params;
705
709
  check(controller.updateReferenceBand(index, patch));
@@ -712,7 +716,7 @@ function createChartCommands(controller, options = {}) {
712
716
  label: "Delete Reference Band",
713
717
  keywords: ["chart", "range", "band", "reference", "remove"],
714
718
  description: "Deletes a reference band by index.",
715
- params: object({ index: _chunkGTF4RYXJcjs.REFERENCE_INDEX.call(void 0, "Reference band") }, ["index"]),
719
+ params: object({ index: _chunkSOSBOS5Tcjs.REFERENCE_INDEX.call(void 0, "Reference band") }, ["index"]),
716
720
  run: (_ctx, params) => {
717
721
  check(controller.removeReferenceBand(params.index));
718
722
  return { referenceBands: controller.getSpec().referenceBands };
@@ -724,7 +728,7 @@ function createChartCommands(controller, options = {}) {
724
728
  label: "Pin Label to Point\u2026",
725
729
  keywords: ["chart", "callout", "annotation", "label", "note", "point"],
726
730
  description: 'Pins a short label to one bar or point (label null or "" removes it).',
727
- params: object({ series: _chunkGTF4RYXJcjs.SERIES_REF, category: _chunkGTF4RYXJcjs.CATEGORY_REF, label: { type: ["string", "null"], description: "The label (a few words), or null to remove it." } }, ["series", "category", "label"]),
731
+ params: object({ series: _chunkSOSBOS5Tcjs.SERIES_REF, category: _chunkSOSBOS5Tcjs.CATEGORY_REF, label: { type: ["string", "null"], description: "The label (a few words), or null to remove it." } }, ["series", "category", "label"]),
728
732
  run: (_ctx, params) => {
729
733
  const series = resolveSeries(params.series);
730
734
  const index = resolveCategory(params.category);
@@ -752,10 +756,10 @@ function createChartCommands(controller, options = {}) {
752
756
  label: "Replace Grouped Data\u2026",
753
757
  keywords: ["chart", "tree", "hierarchy", "groups", "treemap", "sunburst", "nested"],
754
758
  description: "Replaces the data with groups of items (a tree) for treemaps and sunbursts; [] goes back to plain data.",
755
- params: { type: "object", properties: { tree: { type: "array", items: { $ref: "#/$defs/chartTreeNode" }, description: "The top-level nodes; [] removes the grouping." } }, required: ["tree"], additionalProperties: false, $defs: _chunkGTF4RYXJcjs.TREE_DEFS },
759
+ params: { type: "object", properties: { tree: { type: "array", items: { $ref: "#/$defs/chartTreeNode" }, description: "The top-level nodes; [] removes the grouping." } }, required: ["tree"], additionalProperties: false, $defs: _chunkSOSBOS5Tcjs.TREE_DEFS },
756
760
  run: (_ctx, params) => {
757
761
  check(controller.setTree(params.tree));
758
- return { groups: controller.getSpec().tree.map((n) => ({ name: n.name, total: _chunkOUO3DSRTcjs.chartTreeTotal.call(void 0, n) })) };
762
+ return { groups: controller.getSpec().tree.map((n) => ({ name: n.name, total: _chunkWRZ6C4TUcjs.chartTreeTotal.call(void 0, n) })) };
759
763
  }
760
764
  },
761
765
  {
@@ -791,7 +795,7 @@ function createChartCommands(controller, options = {}) {
791
795
  },
792
796
  required: ["node"],
793
797
  additionalProperties: false,
794
- $defs: _chunkGTF4RYXJcjs.TREE_DEFS
798
+ $defs: _chunkSOSBOS5Tcjs.TREE_DEFS
795
799
  },
796
800
  run: (_ctx, params) => {
797
801
  const result = controller.addTreeNode(_nullishCoalesce(params.parent, () => ( [])), params.node, { at: params.at });
@@ -807,7 +811,7 @@ function createChartCommands(controller, options = {}) {
807
811
  description: "Renames a node, sets an item's value or sets a node's colour (null for the palette).",
808
812
  params: object(
809
813
  {
810
- path: _chunkGTF4RYXJcjs.TREE_PATH,
814
+ path: _chunkSOSBOS5Tcjs.TREE_PATH,
811
815
  name: { type: "string", description: "New name." },
812
816
  value: { type: "number", minimum: 0, description: "Items only: the new amount." },
813
817
  color: { type: ["string", "null"], description: "CSS colour, or null for the palette colour." }
@@ -827,10 +831,10 @@ function createChartCommands(controller, options = {}) {
827
831
  label: "Delete Item or Group",
828
832
  keywords: ["chart", "tree", "group", "item", "remove", "delete"],
829
833
  description: "Deletes a node of the grouped data with everything under it.",
830
- params: object({ path: _chunkGTF4RYXJcjs.TREE_PATH }, ["path"]),
834
+ params: object({ path: _chunkSOSBOS5Tcjs.TREE_PATH }, ["path"]),
831
835
  run: (_ctx, params) => {
832
836
  check(controller.removeTreeNode(params.path));
833
- return { groups: controller.getSpec().tree.map((n) => ({ name: n.name, total: _chunkOUO3DSRTcjs.chartTreeTotal.call(void 0, n) })) };
837
+ return { groups: controller.getSpec().tree.map((n) => ({ name: n.name, total: _chunkWRZ6C4TUcjs.chartTreeTotal.call(void 0, n) })) };
834
838
  }
835
839
  },
836
840
  {
@@ -841,7 +845,7 @@ function createChartCommands(controller, options = {}) {
841
845
  description: "Replaces the data with flows between named nodes for a Sankey diagram; [] goes back to plain data.",
842
846
  params: object(
843
847
  {
844
- links: { type: "array", items: { type: "object", properties: _chunkGTF4RYXJcjs.LINK_PROPS, required: ["source", "target", "value"], additionalProperties: false }, description: "All the flows; [] removes them." },
848
+ links: { type: "array", items: { type: "object", properties: _chunkSOSBOS5Tcjs.LINK_PROPS, required: ["source", "target", "value"], additionalProperties: false }, description: "All the flows; [] removes them." },
845
849
  nodes: { type: "array", items: { type: "string" }, description: "Node names in stacking order." }
846
850
  },
847
851
  ["links"]
@@ -875,7 +879,7 @@ function createChartCommands(controller, options = {}) {
875
879
  label: "Add Flow\u2026",
876
880
  keywords: ["chart", "sankey", "flow", "link", "add"],
877
881
  description: "Adds a flow between two nodes. Returns its index.",
878
- params: object(_chunkGTF4RYXJcjs.LINK_PROPS, ["source", "target", "value"]),
882
+ params: object(_chunkSOSBOS5Tcjs.LINK_PROPS, ["source", "target", "value"]),
879
883
  run: (_ctx, params) => {
880
884
  const result = controller.addLink(params);
881
885
  check(result);
@@ -888,7 +892,7 @@ function createChartCommands(controller, options = {}) {
888
892
  label: "Change Flow\u2026",
889
893
  keywords: ["chart", "sankey", "flow", "link", "value"],
890
894
  description: "Changes a flow by index (color null for the default).",
891
- params: object({ index: _chunkGTF4RYXJcjs.LINK_INDEX, ..._chunkGTF4RYXJcjs.LINK_PROPS, color: { type: ["string", "null"], description: "CSS colour, or null for the default." } }, ["index"]),
895
+ params: object({ index: _chunkSOSBOS5Tcjs.LINK_INDEX, ..._chunkSOSBOS5Tcjs.LINK_PROPS, color: { type: ["string", "null"], description: "CSS colour, or null for the default." } }, ["index"]),
892
896
  run: (_ctx, params) => {
893
897
  const { index, ...patch } = params;
894
898
  check(controller.updateLink(index, patch));
@@ -901,7 +905,7 @@ function createChartCommands(controller, options = {}) {
901
905
  label: "Delete Flow",
902
906
  keywords: ["chart", "sankey", "flow", "link", "remove"],
903
907
  description: "Deletes a flow by index.",
904
- params: object({ index: _chunkGTF4RYXJcjs.LINK_INDEX }, ["index"]),
908
+ params: object({ index: _chunkSOSBOS5Tcjs.LINK_INDEX }, ["index"]),
905
909
  run: (_ctx, params) => {
906
910
  check(controller.removeLink(params.index));
907
911
  return { links: controller.getSpec().links };
@@ -917,9 +921,9 @@ function createChartCommands(controller, options = {}) {
917
921
  params: object({ map: { type: "string", description: "Map id (default: the chart's map)." } }),
918
922
  run: (_ctx, params = {}) => {
919
923
  const id = _nullishCoalesce(_optionalChain([params, 'optionalAccess', _36 => _36.map]), () => ( controller.getSpec().map));
920
- const geometry = _chunkTUXKLM5Wcjs.getChartMap.call(void 0, id);
924
+ const geometry = _chunkN76AMOKEcjs.getChartMap.call(void 0, id);
921
925
  if (!geometry) fail(`There is no map "${id}"; register it with registerChartMap.`);
922
- const matches = _chunkTUXKLM5Wcjs.matchChartMapRegions.call(void 0, geometry, controller.getSpec().categories);
926
+ const matches = _chunkN76AMOKEcjs.matchChartMapRegions.call(void 0, geometry, controller.getSpec().categories);
923
927
  return { regions: geometry.regions.map((r) => ({ id: r.id, name: r.name })), unmatched: controller.getSpec().categories.filter((_, i) => !matches[i]) };
924
928
  }
925
929
  },
@@ -930,11 +934,11 @@ function createChartCommands(controller, options = {}) {
930
934
  readOnly: true,
931
935
  keywords: ["chart", "race", "ranking", "leader", "time"],
932
936
  description: "Returns the top names of a bar race at a moment (default: the one shown).",
933
- params: object({ time: _chunkGTF4RYXJcjs.RACE_TIME }),
937
+ params: object({ time: _chunkSOSBOS5Tcjs.RACE_TIME }),
934
938
  run: (_ctx, params = {}) => {
935
939
  const spec = controller.getSpec();
936
940
  const frame = _optionalChain([params, 'optionalAccess', _37 => _37.time]) !== void 0 ? raceFrame(params.time) : _nullishCoalesce(controller.getState().raceFrame, () => ( spec.categories.length - 1));
937
- return { frame, ranking: _chunkTUXKLM5Wcjs.chartRaceRanking.call(void 0, spec, frame).slice(0, spec.raceTopN).map((e) => ({ rank: e.rank + 1, series: e.seriesId, name: e.name, value: e.value })) };
941
+ return { frame, ranking: _chunkN76AMOKEcjs.chartRaceRanking.call(void 0, spec, frame).slice(0, spec.raceTopN).map((e) => ({ rank: e.rank + 1, series: e.seriesId, name: e.name, value: e.value })) };
938
942
  }
939
943
  },
940
944
  {
@@ -943,7 +947,7 @@ function createChartCommands(controller, options = {}) {
943
947
  label: "Show Bar Race Moment\u2026",
944
948
  keywords: ["chart", "race", "frame", "time", "scrub"],
945
949
  description: "Shows the bar race at a time point (null for the last) and stops playback. View state, not an undo step.",
946
- params: object({ time: { ..._chunkGTF4RYXJcjs.RACE_TIME, type: ["string", "number", "null"], description: `${_chunkGTF4RYXJcjs.RACE_TIME.description} null shows the last time point.` } }, ["time"]),
950
+ params: object({ time: { ..._chunkSOSBOS5Tcjs.RACE_TIME, type: ["string", "number", "null"], description: `${_chunkSOSBOS5Tcjs.RACE_TIME.description} null shows the last time point.` } }, ["time"]),
947
951
  run: (_ctx, params) => {
948
952
  const frame = params.time === null ? null : raceFrame(params.time);
949
953
  check(controller.setRaceFrame(frame));
@@ -981,8 +985,8 @@ function createChartCommands(controller, options = {}) {
981
985
  keywords: ["chart", "quick layout", "style", "colours", "colors", "monochrome", "theme"],
982
986
  description: "Applies a quick layout and / or colour scheme as one undo step.",
983
987
  params: object({
984
- layout: { type: "string", enum: _chunkGXEC4FS6cjs.CHART_LAYOUT_PRESETS.map((p) => p.id), description: "Quick layout id." },
985
- colors: { type: "string", enum: _chunkGXEC4FS6cjs.CHART_COLOR_SCHEMES.map((p) => p.id), description: "Colour scheme id." }
988
+ layout: { type: "string", enum: _chunk5DQPDXOMcjs.CHART_LAYOUT_PRESETS.map((p) => p.id), description: "Quick layout id." },
989
+ colors: { type: "string", enum: _chunk5DQPDXOMcjs.CHART_COLOR_SCHEMES.map((p) => p.id), description: "Colour scheme id." }
986
990
  }),
987
991
  run: (_ctx, params = {}) => {
988
992
  check(controller.applyPreset(_nullishCoalesce(params, () => ( {}))));
@@ -997,7 +1001,7 @@ function createChartCommands(controller, options = {}) {
997
1001
  description: "Swaps series and categories as one undo step.",
998
1002
  run: () => {
999
1003
  check(controller.transpose());
1000
- return { table: _chunkOUO3DSRTcjs.chartDataToTable.call(void 0, controller.getSpec()) };
1004
+ return { table: _chunkWRZ6C4TUcjs.chartDataToTable.call(void 0, controller.getSpec()) };
1001
1005
  }
1002
1006
  },
1003
1007
  {
@@ -1017,7 +1021,7 @@ function createChartCommands(controller, options = {}) {
1017
1021
  run: (_ctx, params) => {
1018
1022
  const result = controller.importCsv(params.csv, { seriesIn: params.seriesIn, header: params.header });
1019
1023
  check(result);
1020
- return { table: _chunkOUO3DSRTcjs.chartDataToTable.call(void 0, controller.getSpec()), issues: _nullishCoalesce(result.issues, () => ( [])) };
1024
+ return { table: _chunkWRZ6C4TUcjs.chartDataToTable.call(void 0, controller.getSpec()), issues: _nullishCoalesce(result.issues, () => ( [])) };
1021
1025
  }
1022
1026
  },
1023
1027
  {
@@ -1028,7 +1032,7 @@ function createChartCommands(controller, options = {}) {
1028
1032
  description: "Replaces the chart with Mermaid xychart-beta, pie, radar-beta, sankey-beta or treemap-beta text (one undo step). Unreadable lines are listed with line numbers.",
1029
1033
  params: object({ mermaid: { type: "string", description: "Mermaid text." } }, ["mermaid"]),
1030
1034
  run: (_ctx, params) => {
1031
- const read = _chunkGXEC4FS6cjs.chartFromMermaid.call(void 0, params.mermaid);
1035
+ const read = _chunk5DQPDXOMcjs.chartFromMermaid.call(void 0, params.mermaid);
1032
1036
  if (!read.family) fail(read.issues.map((i) => i.message).join(" ") || "Expected Mermaid starting with xychart-beta, pie, radar-beta, sankey-beta or treemap-beta.");
1033
1037
  check(controller.update({ ...read.spec }, { label: "Import Mermaid chart" }));
1034
1038
  return { spec: controller.toJSON(), issues: read.issues };
@@ -1042,7 +1046,7 @@ function createChartCommands(controller, options = {}) {
1042
1046
  keywords: ["chart", "mermaid", "markdown", "export"],
1043
1047
  description: "Returns the chart as Mermaid text (with a round-trip comment unless meta is false).",
1044
1048
  params: object({ meta: { type: "boolean", description: "Include the %% @pixerate round-trip comment (default true)." } }),
1045
- run: (_ctx, params = {}) => ({ mermaid: _chunkGXEC4FS6cjs.chartToMermaid.call(void 0, controller.toJSON(), { meta: _optionalChain([params, 'optionalAccess', _39 => _39.meta]) }) })
1049
+ run: (_ctx, params = {}) => ({ mermaid: _chunk5DQPDXOMcjs.chartToMermaid.call(void 0, controller.toJSON(), { meta: _optionalChain([params, 'optionalAccess', _39 => _39.meta]) }) })
1046
1050
  },
1047
1051
  {
1048
1052
  ...base,
@@ -1051,7 +1055,7 @@ function createChartCommands(controller, options = {}) {
1051
1055
  readOnly: true,
1052
1056
  keywords: ["chart", "office", "word", "powerpoint", "docx", "pptx", "xml", "export"],
1053
1057
  description: "Returns the chart as a DrawingML chart part (c:chartSpace) and what could not be written.",
1054
- run: () => _chunkVKHJJUBKcjs.chartToOoxml.call(void 0, controller.toJSON())
1058
+ run: () => _chunkHUAISCUXcjs.chartToOoxml.call(void 0, controller.toJSON())
1055
1059
  },
1056
1060
  {
1057
1061
  ...base,
@@ -1060,9 +1064,9 @@ function createChartCommands(controller, options = {}) {
1060
1064
  readOnly: true,
1061
1065
  keywords: ["chart", "svg", "export", "image"],
1062
1066
  description: "Returns the chart drawn as a standalone, accessible SVG string (with <title> and <desc>).",
1063
- params: object({ width: _chunkGTF4RYXJcjs.WIDTH, height: _chunkGTF4RYXJcjs.HEIGHT }),
1067
+ params: object({ width: _chunkSOSBOS5Tcjs.WIDTH, height: _chunkSOSBOS5Tcjs.HEIGHT }),
1064
1068
  run: (_ctx, params = {}) => ({
1065
- svg: _chunkGXEC4FS6cjs.chartToSvg.call(void 0, controller.toJSON(), { width: _nullishCoalesce(_optionalChain([params, 'optionalAccess', _40 => _40.width]), () => ( 640)), height: _nullishCoalesce(_optionalChain([params, 'optionalAccess', _41 => _41.height]), () => ( 400)) })
1069
+ svg: _chunk5DQPDXOMcjs.chartToSvg.call(void 0, controller.toJSON(), { width: _nullishCoalesce(_optionalChain([params, 'optionalAccess', _40 => _40.width]), () => ( 640)), height: _nullishCoalesce(_optionalChain([params, 'optionalAccess', _41 => _41.height]), () => ( 400)) })
1066
1070
  })
1067
1071
  },
1068
1072
  {
@@ -1074,7 +1078,7 @@ function createChartCommands(controller, options = {}) {
1074
1078
  description: "Suggests chart types for the current data (or CSV), best first, each with a reason.",
1075
1079
  params: object({ csv: { type: "string", description: "CSV text to analyse instead of the current data." } }),
1076
1080
  run: (_ctx, params = {}) => ({
1077
- recommendations: recommendChartTypes(_optionalChain([params, 'optionalAccess', _42 => _42.csv]) !== void 0 ? _chunkN3KJFGXTcjs.parseCsv.call(void 0, params.csv) : _chunkOUO3DSRTcjs.chartDataToTable.call(void 0, controller.getSpec()))
1081
+ recommendations: recommendChartTypes(_optionalChain([params, 'optionalAccess', _42 => _42.csv]) !== void 0 ? _chunkN3KJFGXTcjs.parseCsv.call(void 0, params.csv) : _chunkWRZ6C4TUcjs.chartDataToTable.call(void 0, controller.getSpec()))
1078
1082
  })
1079
1083
  },
1080
1084
  {
@@ -1087,8 +1091,8 @@ function createChartCommands(controller, options = {}) {
1087
1091
  run: () => {
1088
1092
  const s = controller.getSpec();
1089
1093
  const visible = s.series.filter((x) => !x.hidden);
1090
- const colors = _chunkOUO3DSRTcjs.chartSpecColorsByCategory.call(void 0, s) ? s.categories.map((_, i) => _optionalChain([visible, 'access', _43 => _43[0], 'optionalAccess', _44 => _44.pointColors, 'optionalAccess', _45 => _45[i]]) || _chunkOUO3DSRTcjs.chartSliceColor.call(void 0, s, i)) : visible.map((x) => _chunkOUO3DSRTcjs.chartSeriesColor.call(void 0, s, s.series.indexOf(x)));
1091
- return { colors, ..._chunkOUO3DSRTcjs.checkChartColors.call(void 0, colors) };
1094
+ const colors = _chunkWRZ6C4TUcjs.chartSpecColorsByCategory.call(void 0, s) ? s.categories.map((_, i) => _optionalChain([visible, 'access', _43 => _43[0], 'optionalAccess', _44 => _44.pointColors, 'optionalAccess', _45 => _45[i]]) || _chunkWRZ6C4TUcjs.chartSliceColor.call(void 0, s, i)) : visible.map((x) => _chunkWRZ6C4TUcjs.chartSeriesColor.call(void 0, s, s.series.indexOf(x)));
1095
+ return { colors, ..._chunkWRZ6C4TUcjs.checkChartColors.call(void 0, colors) };
1092
1096
  }
1093
1097
  },
1094
1098
  {
@@ -1119,7 +1123,7 @@ function chartClientToScene(scene, box, clientX, clientY) {
1119
1123
  function canDragChartPoint(controller, scene, target) {
1120
1124
  if (_optionalChain([target, 'optionalAccess', _46 => _46.kind]) !== "point" || !scene.valueScale || scene.percent) return false;
1121
1125
  const spec = controller.getSpec();
1122
- const family = _chunkOUO3DSRTcjs.chartFamily.call(void 0, spec);
1126
+ const family = _chunkWRZ6C4TUcjs.chartFamily.call(void 0, spec);
1123
1127
  if (family !== "cartesian" && family !== "xy" && family !== "waterfall") return false;
1124
1128
  const series = controller.getSeries(target.seriesId);
1125
1129
  return !!series && !series.hidden && series.values[target.index] !== null;
@@ -1128,7 +1132,7 @@ function snapChartDragValue(scene, value, options = {}) {
1128
1132
  const scale = _nullishCoalesce(options.scale, () => ( scene.valueScale));
1129
1133
  const tolerance = _nullishCoalesce(options.tolerancePx, () => ( 6));
1130
1134
  if (scale) {
1131
- const px = (v) => _chunkTUXKLM5Wcjs.chartScaleToPixel.call(void 0, v, scale);
1135
+ const px = (v) => _chunkN76AMOKEcjs.chartScaleToPixel.call(void 0, v, scale);
1132
1136
  const at = px(value);
1133
1137
  let best = null;
1134
1138
  let bestDist = tolerance;
@@ -1143,7 +1147,7 @@ function snapChartDragValue(scene, value, options = {}) {
1143
1147
  }
1144
1148
  if (best !== null) return best;
1145
1149
  }
1146
- return _chunkTUXKLM5Wcjs.snapChartValue.call(void 0, scene, value, options.step, _optionalChain([scale, 'optionalAccess', _47 => _47.ticks]), _optionalChain([scale, 'optionalAccess', _48 => _48.logBase]));
1150
+ return _chunkN76AMOKEcjs.snapChartValue.call(void 0, scene, value, options.step, _optionalChain([scale, 'optionalAccess', _47 => _47.ticks]), _optionalChain([scale, 'optionalAccess', _48 => _48.logBase]));
1147
1151
  }
1148
1152
  function startChartPointDrag(controller, scene, target, start, options = {}) {
1149
1153
  if (!canDragChartPoint(controller, scene, target)) return null;
@@ -1152,11 +1156,11 @@ function startChartPointDrag(controller, scene, target, start, options = {}) {
1152
1156
  const series = controller.getSeries(seriesId);
1153
1157
  const secondary = series.axis === "secondary" && !!scene.valueScale2;
1154
1158
  const scale = secondary ? scene.valueScale2 : scene.valueScale;
1155
- const xy = _chunkOUO3DSRTcjs.chartFamily.call(void 0, spec) === "xy" && !!scene.xScale;
1159
+ const xy = _chunkWRZ6C4TUcjs.chartFamily.call(void 0, spec) === "xy" && !!scene.xScale;
1156
1160
  const startValue = _nullishCoalesce(series.values[index], () => ( 0));
1157
1161
  const startX = _nullishCoalesce(_optionalChain([series, 'access', _49 => _49.x, 'optionalAccess', _50 => _50[index]]), () => ( null));
1158
- const startAt = _chunkTUXKLM5Wcjs.chartValueAtPoint.call(void 0, scene, start, secondary);
1159
- const startAtX = xy ? _chunkTUXKLM5Wcjs.chartXAtPoint.call(void 0, scene, start) : void 0;
1162
+ const startAt = _chunkN76AMOKEcjs.chartValueAtPoint.call(void 0, scene, start, secondary);
1163
+ const startAtX = xy ? _chunkN76AMOKEcjs.chartXAtPoint.call(void 0, scene, start) : void 0;
1160
1164
  if (startAt === void 0) return null;
1161
1165
  const candidates = [0, startValue];
1162
1166
  if (!xy) {
@@ -1174,7 +1178,7 @@ function startChartPointDrag(controller, scene, target, start, options = {}) {
1174
1178
  target: { seriesId, index },
1175
1179
  move(point, moveOptions = {}) {
1176
1180
  if (ended) return;
1177
- const at = _chunkTUXKLM5Wcjs.chartValueAtPoint.call(void 0, scene, point, secondary);
1181
+ const at = _chunkN76AMOKEcjs.chartValueAtPoint.call(void 0, scene, point, secondary);
1178
1182
  if (at === void 0) return;
1179
1183
  const factor = moveOptions.fine ? 0.1 : 1;
1180
1184
  const moved = (from, to, s, value) => s.logBase && value > 0 && from > 0 && to > 0 ? value * Math.pow(to / from, factor) : value + (to - from) * factor;
@@ -1182,7 +1186,7 @@ function startChartPointDrag(controller, scene, target, start, options = {}) {
1182
1186
  let moveX = false;
1183
1187
  let atX;
1184
1188
  if (xy && startX !== null && startAtX !== void 0) {
1185
- atX = _chunkTUXKLM5Wcjs.chartXAtPoint.call(void 0, scene, point);
1189
+ atX = _chunkN76AMOKEcjs.chartXAtPoint.call(void 0, scene, point);
1186
1190
  moveX = atX !== void 0;
1187
1191
  if (moveOptions.lockAxis) {
1188
1192
  if (Math.abs(point.x - start.x) >= Math.abs(point.y - start.y)) moveY = false;
@@ -1194,7 +1198,7 @@ function startChartPointDrag(controller, scene, target, start, options = {}) {
1194
1198
  if (moveOptions.fine) {
1195
1199
  if (s.logBase && !options.step) return v > 0 ? Number(v.toPrecision(3)) : v;
1196
1200
  const unit = options.step ? options.step / 10 : s.ticks.length > 1 ? (s.ticks[1] - s.ticks[0]) / 100 : void 0;
1197
- return _chunkTUXKLM5Wcjs.snapChartValue.call(void 0, scene, v, unit, s.ticks);
1201
+ return _chunkN76AMOKEcjs.snapChartValue.call(void 0, scene, v, unit, s.ticks);
1198
1202
  }
1199
1203
  return snapChartDragValue(scene, v, { candidates: c, tolerancePx: options.tolerancePx, step: options.step, scale: s });
1200
1204
  };
@@ -1282,7 +1286,7 @@ function describeChartSelection(controller, selection = controller.getState().se
1282
1286
  case "legend":
1283
1287
  return "Legend";
1284
1288
  case "axis":
1285
- return selection.axis === "x" ? _chunkOUO3DSRTcjs.chartFamily.call(void 0, spec) === "xy" ? "X axis" : "Category axis" : selection.axis === "y" ? "Value axis" : "Secondary value axis";
1289
+ return selection.axis === "x" ? _chunkWRZ6C4TUcjs.chartFamily.call(void 0, spec) === "xy" ? "X axis" : "Category axis" : selection.axis === "y" ? "Value axis" : "Secondary value axis";
1286
1290
  case "series":
1287
1291
  return `Series "${_nullishCoalesce(_optionalChain([controller, 'access', _66 => _66.getSeries, 'call', _67 => _67(selection.seriesId), 'optionalAccess', _68 => _68.name]), () => ( selection.seriesId))}"`;
1288
1292
  case "category":
@@ -1296,7 +1300,7 @@ function describeChartSelection(controller, selection = controller.getState().se
1296
1300
  const series = controller.getSeries(selection.seriesId);
1297
1301
  const value = _optionalChain([series, 'optionalAccess', _72 => _72.values, 'access', _73 => _73[selection.index]]);
1298
1302
  const x = _optionalChain([series, 'optionalAccess', _74 => _74.x, 'optionalAccess', _75 => _75[selection.index]]);
1299
- if (x !== void 0 && x !== null && _chunkOUO3DSRTcjs.chartFamily.call(void 0, spec) === "xy") return `${_nullishCoalesce(_optionalChain([series, 'optionalAccess', _76 => _76.name]), () => ( selection.seriesId))}: (${x}, ${_nullishCoalesce(value, () => ( "blank"))})`;
1303
+ if (x !== void 0 && x !== null && _chunkWRZ6C4TUcjs.chartFamily.call(void 0, spec) === "xy") return `${_nullishCoalesce(_optionalChain([series, 'optionalAccess', _76 => _76.name]), () => ( selection.seriesId))}: (${x}, ${_nullishCoalesce(value, () => ( "blank"))})`;
1300
1304
  return `${_nullishCoalesce(_optionalChain([series, 'optionalAccess', _77 => _77.name]), () => ( selection.seriesId))} \xB7 ${_nullishCoalesce(spec.categories[selection.index], () => ( selection.index))}: ${_nullishCoalesce(value, () => ( "blank"))}`;
1301
1305
  }
1302
1306
  }
@@ -1338,34 +1342,34 @@ function chartHitTest(scene, point, measure = (t, s, w = 400) => t.length * s *
1338
1342
  }
1339
1343
 
1340
1344
  // src/chart/tooltip.ts
1341
- var VALUE_FAMILIES = /* @__PURE__ */ new Set(["cartesian", "xy", "pie", "radar", "waterfall", "funnel", "parliament", "slope"]);
1345
+ var VALUE_FAMILIES = /* @__PURE__ */ new Set(["cartesian", "xy", "pie", "radar", "waterfall", "funnel", "parliament", "slope", "streamgraph"]);
1342
1346
  var SLICE_FAMILIES = /* @__PURE__ */ new Set(["pie", "funnel", "parliament"]);
1343
1347
  function valueFormat(spec, series) {
1344
1348
  return _nullishCoalesce(series.format, () => ( (series.axis === "secondary" ? spec.yAxis2.format : spec.yAxis.format)));
1345
1349
  }
1346
- var percentText = (share) => _chunkTUXKLM5Wcjs.formatChartNumber.call(void 0, share, { style: "percent", decimals: share < 0.1 ? 1 : 0 });
1350
+ var percentText = (share) => _chunkN76AMOKEcjs.formatChartNumber.call(void 0, share, { style: "percent", decimals: share < 0.1 ? 1 : 0 });
1347
1351
  function item(spec, seriesIndex, index, share) {
1348
- const family = _chunkOUO3DSRTcjs.chartFamily.call(void 0, spec);
1352
+ const family = _chunkWRZ6C4TUcjs.chartFamily.call(void 0, spec);
1349
1353
  const series = spec.series[seriesIndex];
1350
1354
  const value = _nullishCoalesce(series.values[index], () => ( null));
1351
1355
  const slice = SLICE_FAMILIES.has(family);
1352
- let text = _chunkTUXKLM5Wcjs.formatChartNumber.call(void 0, value, valueFormat(spec, series));
1356
+ let text = _chunkN76AMOKEcjs.formatChartNumber.call(void 0, value, valueFormat(spec, series));
1353
1357
  if (family === "xy") {
1354
1358
  const x = _optionalChain([series, 'access', _78 => _78.x, 'optionalAccess', _79 => _79[index]]);
1355
- if (x !== null && x !== void 0) text = `${_chunkTUXKLM5Wcjs.formatChartNumber.call(void 0, x, spec.xAxis.format)}, ${text}`;
1359
+ if (x !== null && x !== void 0) text = `${_chunkN76AMOKEcjs.formatChartNumber.call(void 0, x, spec.xAxis.format)}, ${text}`;
1356
1360
  }
1357
1361
  if (share !== void 0) text = `${text} (${percentText(share)})`;
1358
1362
  return {
1359
1363
  seriesId: series.id,
1360
1364
  name: slice ? _nullishCoalesce(spec.categories[index], () => ( series.name)) : series.name,
1361
- color: slice ? _nullishCoalesce(_optionalChain([series, 'access', _80 => _80.pointColors, 'optionalAccess', _81 => _81[index]]), () => ( _chunkOUO3DSRTcjs.chartSliceColor.call(void 0, spec, index))) : _chunkOUO3DSRTcjs.chartPointColor.call(void 0, spec, seriesIndex, index),
1365
+ color: slice ? _nullishCoalesce(_optionalChain([series, 'access', _80 => _80.pointColors, 'optionalAccess', _81 => _81[index]]), () => ( _chunkWRZ6C4TUcjs.chartSliceColor.call(void 0, spec, index))) : _chunkWRZ6C4TUcjs.chartPointColor.call(void 0, spec, seriesIndex, index),
1362
1366
  value,
1363
1367
  ...share !== void 0 ? { share } : {},
1364
1368
  text
1365
1369
  };
1366
1370
  }
1367
1371
  function chartTooltipFor(spec, index, seriesId, anchor = { x: 0, y: 0 }) {
1368
- const family = _chunkOUO3DSRTcjs.chartFamily.call(void 0, spec);
1372
+ const family = _chunkWRZ6C4TUcjs.chartFamily.call(void 0, spec);
1369
1373
  if (!VALUE_FAMILIES.has(family)) return null;
1370
1374
  if (!Number.isInteger(index) || index < 0 || index >= Math.max(spec.categories.length, ...spec.series.map((s) => s.values.length))) return null;
1371
1375
  const visible = spec.series.map((s, i) => ({ s, i })).filter(({ s }) => !s.hidden && (!seriesId || s.id === seriesId));
@@ -1389,10 +1393,10 @@ function chartTooltipFor(spec, index, seriesId, anchor = { x: 0, y: 0 }) {
1389
1393
  }
1390
1394
  function chartTooltipAt(spec, scene, point, options = {}) {
1391
1395
  if (options.mode === "category" && scene.categoryScale) {
1392
- const index = _chunkTUXKLM5Wcjs.chartCategoryAtPoint.call(void 0, scene, point);
1396
+ const index = _chunkN76AMOKEcjs.chartCategoryAtPoint.call(void 0, scene, point);
1393
1397
  if (index !== void 0) return chartTooltipFor(spec, index, void 0, point);
1394
1398
  }
1395
- const target = chartHitTest(scene, point, _nullishCoalesce(options.measureText, () => ( _chunkTUXKLM5Wcjs.estimateChartTextWidth)));
1399
+ const target = chartHitTest(scene, point, _nullishCoalesce(options.measureText, () => ( _chunkN76AMOKEcjs.estimateChartTextWidth)));
1396
1400
  if (_optionalChain([target, 'optionalAccess', _82 => _82.kind]) === "point") return chartTooltipFor(spec, target.index, target.seriesId, point);
1397
1401
  if (_optionalChain([target, 'optionalAccess', _83 => _83.kind]) === "category" && scene.categoryScale && options.mode === "category") return chartTooltipFor(spec, target.index, void 0, point);
1398
1402
  return null;
@@ -1438,7 +1442,7 @@ function planChartCommand(spec, scene, command, speed = 1) {
1438
1442
  const from = _nullishCoalesce(_optionalChain([series, 'optionalAccess', _86 => _86.values, 'access', _87 => _87[command.index]]), () => ( 0));
1439
1443
  const scale = _optionalChain([series, 'optionalAccess', _88 => _88.axis]) === "secondary" ? _nullishCoalesce(scene.valueScale2, () => ( scene.valueScale)) : scene.valueScale;
1440
1444
  if (at && scale) {
1441
- const px = _chunkTUXKLM5Wcjs.linearMap.call(void 0, command.value, scale.domain, scale.range);
1445
+ const px = _chunkN76AMOKEcjs.linearMap.call(void 0, command.value, scale.domain, scale.range);
1442
1446
  const to = scale.axis === "y" ? { x: at.x, y: px } : { x: px, y: at.y };
1443
1447
  steps.push({ type: "move", to: at, ms: ms(380) }, { type: "press" }, { type: "drag", to, ms: ms(520), from, value: command.value }, { type: "release" });
1444
1448
  } else steps.push({ type: "drag", to: { x: scene.plot.x + scene.plot.width / 2, y: scene.plot.y + scene.plot.height / 2 }, ms: ms(200), from, value: command.value });
@@ -1698,10 +1702,10 @@ function createChartToolProvider(controller, options = {}) {
1698
1702
  fail2(`There is no category ${JSON.stringify(ref)}; expected an index from 0 to ${categories.length - 1} or one of ${categories.slice(0, 20).map((c) => JSON.stringify(c)).join(", ")}.`);
1699
1703
  return index;
1700
1704
  };
1701
- const table = () => _chunkOUO3DSRTcjs.chartDataToTable.call(void 0, spec());
1705
+ const table = () => _chunkWRZ6C4TUcjs.chartDataToTable.call(void 0, spec());
1702
1706
  const treeTable = () => {
1703
- const rows = _chunkOUO3DSRTcjs.chartTreeToRows.call(void 0, spec().tree);
1704
- const depth = _chunkOUO3DSRTcjs.chartTreeDepth.call(void 0, spec().tree);
1707
+ const rows = _chunkWRZ6C4TUcjs.chartTreeToRows.call(void 0, spec().tree);
1708
+ const depth = _chunkWRZ6C4TUcjs.chartTreeDepth.call(void 0, spec().tree);
1705
1709
  return [[...Array.from({ length: depth }, (_, k) => k === 0 ? "Group" : k === depth - 1 ? "Item" : `Level ${k + 1}`), "Value"], ...rows.map((r) => [...r.path, ...Array(depth - r.path.length).fill(""), r.value])];
1706
1710
  };
1707
1711
  const raceFrameOf = (time) => {
@@ -1717,17 +1721,17 @@ function createChartToolProvider(controller, options = {}) {
1717
1721
  return {
1718
1722
  frame: at,
1719
1723
  time: _nullishCoalesce(s.categories[Math.round(at)], () => ( null)),
1720
- ranking: _chunkTUXKLM5Wcjs.chartRaceRanking.call(void 0, s, at).slice(0, s.raceTopN).map((e) => ({ rank: e.rank + 1, series: e.seriesId, name: e.name, value: e.value }))
1724
+ ranking: _chunkN76AMOKEcjs.chartRaceRanking.call(void 0, s, at).slice(0, s.raceTopN).map((e) => ({ rank: e.rank + 1, series: e.seriesId, name: e.name, value: e.value }))
1721
1725
  };
1722
1726
  };
1723
- const linksSummary = () => ({ links: spec().links, nodes: spec().sankeyNodes.map((name, i) => ({ name, value: _chunkOUO3DSRTcjs.chartSankeyNodeValues.call(void 0, spec().links, spec().sankeyNodes)[i] })) });
1724
- const treeSummary = () => ({ tree: spec().tree, groups: spec().tree.map((n) => ({ name: n.name, total: _chunkOUO3DSRTcjs.chartTreeTotal.call(void 0, n) })), depth: _chunkOUO3DSRTcjs.chartTreeDepth.call(void 0, spec().tree) });
1727
+ const linksSummary = () => ({ links: spec().links, nodes: spec().sankeyNodes.map((name, i) => ({ name, value: _chunkWRZ6C4TUcjs.chartSankeyNodeValues.call(void 0, spec().links, spec().sankeyNodes)[i] })) });
1728
+ const treeSummary = () => ({ tree: spec().tree, groups: spec().tree.map((n) => ({ name: n.name, total: _chunkWRZ6C4TUcjs.chartTreeTotal.call(void 0, n) })), depth: _chunkWRZ6C4TUcjs.chartTreeDepth.call(void 0, spec().tree) });
1725
1729
  const Parser = () => _nullishCoalesce(options.DOMParser, () => ( globalThis.DOMParser));
1726
1730
  const getChart = {
1727
1731
  name: "get_chart",
1728
1732
  title: "Read the chart",
1729
1733
  description: "Returns the chart spec (type, titles, axes, legend, series with ids and settings), its data as a table (header row of series names, then one row per category), grouped data as treeTable (path of names to each item, then its value) when the chart has a tree, the current selection, and a summary at the given size: per-series min / max / mean / trend, the axes as drawn, layout warnings (hidden labels, thinned lines), a colour check and a plain-language description. Use the series ids and category indexes it returns with the write tools.",
1730
- inputSchema: { type: "object", properties: { width: _chunkGTF4RYXJcjs.WIDTH, height: _chunkGTF4RYXJcjs.HEIGHT }, additionalProperties: false },
1734
+ inputSchema: { type: "object", properties: { width: _chunkSOSBOS5Tcjs.WIDTH, height: _chunkSOSBOS5Tcjs.HEIGHT }, additionalProperties: false },
1731
1735
  annotations: { title: "Read the chart", ...READ },
1732
1736
  handler: ({ width = size.width, height = size.height }) => {
1733
1737
  const reason = readOnlyReason();
@@ -1735,7 +1739,7 @@ function createChartToolProvider(controller, options = {}) {
1735
1739
  spec: controller.toJSON(),
1736
1740
  table: table(),
1737
1741
  selection: controller.getState().selection,
1738
- summary: _chunkGXEC4FS6cjs.summarizeChart.call(void 0, controller.toJSON(), { width, height }),
1742
+ summary: _chunk5DQPDXOMcjs.summarizeChart.call(void 0, controller.toJSON(), { width, height }),
1739
1743
  ...spec().tree.length ? { treeTable: treeTable() } : {},
1740
1744
  issues: controller.getState().issues,
1741
1745
  ...reason ? { readOnly: reason } : {}
@@ -1749,10 +1753,10 @@ function createChartToolProvider(controller, options = {}) {
1749
1753
  inputSchema: {
1750
1754
  type: "object",
1751
1755
  properties: {
1752
- width: _chunkGTF4RYXJcjs.WIDTH,
1753
- height: _chunkGTF4RYXJcjs.HEIGHT,
1756
+ width: _chunkSOSBOS5Tcjs.WIDTH,
1757
+ height: _chunkSOSBOS5Tcjs.HEIGHT,
1754
1758
  format: { type: "string", enum: ["svg", "png"], description: "svg (default): the SVG document as text. png: an image to look at (only when the host can rasterize; costs image tokens)." },
1755
- time: { ..._chunkGTF4RYXJcjs.RACE_TIME, description: `Bar race only: the moment to draw (default: the one shown). ${_chunkGTF4RYXJcjs.RACE_TIME.description}` }
1759
+ time: { ..._chunkSOSBOS5Tcjs.RACE_TIME, description: `Bar race only: the moment to draw (default: the one shown). ${_chunkSOSBOS5Tcjs.RACE_TIME.description}` }
1756
1760
  },
1757
1761
  additionalProperties: false
1758
1762
  },
@@ -1760,8 +1764,8 @@ function createChartToolProvider(controller, options = {}) {
1760
1764
  handler: async ({ width = size.width, height = size.height, format = "svg", time }) => {
1761
1765
  const json = controller.toJSON();
1762
1766
  const raceFrame = time !== void 0 ? raceFrameOf(time) : controller.getState().raceFrame;
1763
- const scene = _chunkTUXKLM5Wcjs.layoutChart.call(void 0, json, { width, height, selection: null, raceFrame });
1764
- const svg = _chunkGXEC4FS6cjs.chartSceneToSvg.call(void 0, scene, { ariaLabel: json.title || void 0, description: _chunkGXEC4FS6cjs.describeChart.call(void 0, json) });
1767
+ const scene = _chunkN76AMOKEcjs.layoutChart.call(void 0, json, { width, height, selection: null, raceFrame });
1768
+ const svg = _chunk5DQPDXOMcjs.chartSceneToSvg.call(void 0, scene, { ariaLabel: json.title || void 0, description: _chunk5DQPDXOMcjs.describeChart.call(void 0, json) });
1765
1769
  const warnings = scene.warnings;
1766
1770
  if (format === "png") {
1767
1771
  if (!options.rasterize) fail2('This host cannot rasterize charts; call render_chart with format "svg", or get_chart for the layout warnings.');
@@ -1795,8 +1799,8 @@ function createChartToolProvider(controller, options = {}) {
1795
1799
  handler: ({ colors, surface }) => {
1796
1800
  const s = spec();
1797
1801
  const visible = s.series.filter((x) => !x.hidden);
1798
- const own = _chunkOUO3DSRTcjs.chartSpecColorsByCategory.call(void 0, s) ? s.categories.map((_, i) => _optionalChain([visible, 'access', _100 => _100[0], 'optionalAccess', _101 => _101.pointColors, 'optionalAccess', _102 => _102[i]]) || _chunkOUO3DSRTcjs.chartSliceColor.call(void 0, s, i)) : visible.map((x) => _chunkOUO3DSRTcjs.chartSeriesColor.call(void 0, s, s.series.indexOf(x)));
1799
- return { colors: _nullishCoalesce(colors, () => ( own)), ..._chunkOUO3DSRTcjs.checkChartColors.call(void 0, _nullishCoalesce(colors, () => ( own)), { surface }) };
1802
+ const own = _chunkWRZ6C4TUcjs.chartSpecColorsByCategory.call(void 0, s) ? s.categories.map((_, i) => _optionalChain([visible, 'access', _100 => _100[0], 'optionalAccess', _101 => _101.pointColors, 'optionalAccess', _102 => _102[i]]) || _chunkWRZ6C4TUcjs.chartSliceColor.call(void 0, s, i)) : visible.map((x) => _chunkWRZ6C4TUcjs.chartSeriesColor.call(void 0, s, s.series.indexOf(x)));
1803
+ return { colors: _nullishCoalesce(colors, () => ( own)), ..._chunkWRZ6C4TUcjs.checkChartColors.call(void 0, _nullishCoalesce(colors, () => ( own)), { surface }) };
1800
1804
  }
1801
1805
  };
1802
1806
  const recommend = {
@@ -1818,7 +1822,7 @@ function createChartToolProvider(controller, options = {}) {
1818
1822
  description: "Returns a trendline's fitted coefficients (in x for category charts, x = 1, 2, 3, \u2026), R\xB2, equation and the number of points, or the moving-average points.",
1819
1823
  inputSchema: {
1820
1824
  type: "object",
1821
- properties: { series: _chunkGTF4RYXJcjs.SERIES_REF, index: { type: "integer", minimum: 0, description: "Trendline index on the series (0 = first)." } },
1825
+ properties: { series: _chunkSOSBOS5Tcjs.SERIES_REF, index: { type: "integer", minimum: 0, description: "Trendline index on the series (0 = first)." } },
1822
1826
  required: ["series", "index"],
1823
1827
  additionalProperties: false
1824
1828
  },
@@ -1839,7 +1843,7 @@ function createChartToolProvider(controller, options = {}) {
1839
1843
  description: "Returns what a viewer sees when hovering a category (or one series in it): the category label and, for each visible series with a value there, its name, colour, value, share (percent-stacked and pie charts, 0\u20131) and the value as the chart writes it. Returns null for charts without one value per category (histogram, box, treemap, sunburst, sankey, \u2026) or when no visible series has a value there.",
1840
1844
  inputSchema: {
1841
1845
  type: "object",
1842
- properties: { category: _chunkGTF4RYXJcjs.CATEGORY_REF, series: { ..._chunkGTF4RYXJcjs.SERIES_REF, description: `${_chunkGTF4RYXJcjs.SERIES_REF.description} Omit to include every visible series in the category.` } },
1846
+ properties: { category: _chunkSOSBOS5Tcjs.CATEGORY_REF, series: { ..._chunkSOSBOS5Tcjs.SERIES_REF, description: `${_chunkSOSBOS5Tcjs.SERIES_REF.description} Omit to include every visible series in the category.` } },
1843
1847
  required: ["category"],
1844
1848
  additionalProperties: false
1845
1849
  },
@@ -1855,7 +1859,7 @@ function createChartToolProvider(controller, options = {}) {
1855
1859
  name: "get_chart_race_ranking",
1856
1860
  title: "Read a bar race ranking",
1857
1861
  description: "Returns who leads a bar race at a moment without changing what is shown: the top raceTopN names with their rank, series id and value (eased between time points). Defaults to the moment shown. Works for any chart, reading categories as time points and series as names.",
1858
- inputSchema: { type: "object", properties: { time: _chunkGTF4RYXJcjs.RACE_TIME }, additionalProperties: false },
1862
+ inputSchema: { type: "object", properties: { time: _chunkSOSBOS5Tcjs.RACE_TIME }, additionalProperties: false },
1859
1863
  annotations: { title: "Read a bar race ranking", ...READ },
1860
1864
  handler: ({ time }) => raceAt(time !== void 0 ? raceFrameOf(time) : controller.getState().raceFrame)
1861
1865
  };
@@ -1867,10 +1871,10 @@ function createChartToolProvider(controller, options = {}) {
1867
1871
  annotations: { title: "List map regions", ...READ },
1868
1872
  handler: ({ map }) => {
1869
1873
  const id = _nullishCoalesce(map, () => ( spec().map));
1870
- const maps = _chunkTUXKLM5Wcjs.listChartMaps.call(void 0, ).map((m) => ({ id: m.id, name: m.name, regions: m.regions.length }));
1871
- const geometry = _chunkTUXKLM5Wcjs.getChartMap.call(void 0, id);
1874
+ const maps = _chunkN76AMOKEcjs.listChartMaps.call(void 0, ).map((m) => ({ id: m.id, name: m.name, regions: m.regions.length }));
1875
+ const geometry = _chunkN76AMOKEcjs.getChartMap.call(void 0, id);
1872
1876
  if (!geometry) fail2(maps.length ? `There is no map "${id}"; the host has ${maps.map((m) => `"${m.id}"`).join(", ")}.` : `There is no map "${id}": the host has not registered any maps (EUROPE_CHART_MAP in @pixerate/editor/chart-maps).`);
1873
- const matches = _chunkTUXKLM5Wcjs.matchChartMapRegions.call(void 0, geometry, spec().categories);
1877
+ const matches = _chunkN76AMOKEcjs.matchChartMapRegions.call(void 0, geometry, spec().categories);
1874
1878
  return {
1875
1879
  maps,
1876
1880
  map: id,
@@ -1887,8 +1891,8 @@ function createChartToolProvider(controller, options = {}) {
1887
1891
  inputSchema: { type: "object", properties: {}, additionalProperties: false },
1888
1892
  annotations: { title: "List chart presets", ...READ },
1889
1893
  handler: () => ({
1890
- layouts: _chunkGXEC4FS6cjs.CHART_LAYOUT_PRESETS.map(({ id, label, description }) => ({ id, label, description })),
1891
- colorSchemes: _chunkGXEC4FS6cjs.CHART_COLOR_SCHEMES.map(({ id, label, description, palette }) => ({ id, label, description, palette }))
1894
+ layouts: _chunk5DQPDXOMcjs.CHART_LAYOUT_PRESETS.map(({ id, label, description }) => ({ id, label, description })),
1895
+ colorSchemes: _chunk5DQPDXOMcjs.CHART_COLOR_SCHEMES.map(({ id, label, description, palette }) => ({ id, label, description, palette }))
1892
1896
  })
1893
1897
  };
1894
1898
  const exportMermaid = {
@@ -1897,7 +1901,7 @@ function createChartToolProvider(controller, options = {}) {
1897
1901
  description: 'Returns the chart as Mermaid text for Markdown or chat: xychart-beta, pie or radar-beta, sankey-beta for Sankey diagrams with flows, treemap-beta for treemaps and sunbursts (with their levels). With meta (default true) one "%% @pixerate {\u2026}" comment keeps what Mermaid cannot express, so import_chart_mermaid gets the chart back exactly.',
1898
1902
  inputSchema: { type: "object", properties: { meta: { type: "boolean", description: "Include the round-trip comment (default true)." } }, additionalProperties: false },
1899
1903
  annotations: { title: "Export chart as Mermaid", ...READ },
1900
- handler: ({ meta = true }) => ({ mermaid: _chunkGXEC4FS6cjs.chartToMermaid.call(void 0, controller.toJSON(), { meta }) })
1904
+ handler: ({ meta = true }) => ({ mermaid: _chunk5DQPDXOMcjs.chartToMermaid.call(void 0, controller.toJSON(), { meta }) })
1901
1905
  };
1902
1906
  const exportOoxml = {
1903
1907
  name: "export_chart_ooxml",
@@ -1905,7 +1909,7 @@ function createChartToolProvider(controller, options = {}) {
1905
1909
  description: "Returns the chart as a DrawingML chart part (c:chartSpace) for Word or PowerPoint files, with what could not be written as sentences.",
1906
1910
  inputSchema: { type: "object", properties: {}, additionalProperties: false },
1907
1911
  annotations: { title: "Export chart as Office XML", ...READ },
1908
- handler: () => _chunkVKHJJUBKcjs.chartToOoxml.call(void 0, controller.toJSON())
1912
+ handler: () => _chunkHUAISCUXcjs.chartToOoxml.call(void 0, controller.toJSON())
1909
1913
  };
1910
1914
  const updateChart = {
1911
1915
  name: "update_chart",
@@ -1913,7 +1917,7 @@ function createChartToolProvider(controller, options = {}) {
1913
1917
  description: 'Changes how the chart looks, as one undo step: type, titles, axes (xAxis = categories or numeric x, yAxis = values, yAxis2 = secondary values; each can be reversed, and value axes can be logarithmic with scale "log"), legend, stacking, orientation, curve, points, data labels and their position, palette, donut hole, bar spacing, histogram bins, waterfall total, radar rings (radarTicks) and grid shape (radarGraticule), note, highlight, reference lines and bands (whole lists), and varyColors. All-or-nothing: invalid values change nothing and come back as sentences. Returns the new spec.',
1914
1918
  inputSchema: {
1915
1919
  type: "object",
1916
- properties: _chunkGTF4RYXJcjs.CHART_UPDATE_PROPERTIES,
1920
+ properties: _chunkSOSBOS5Tcjs.CHART_UPDATE_PROPERTIES,
1917
1921
  additionalProperties: false
1918
1922
  },
1919
1923
  annotations: { title: "Change chart presentation", ...WRITE_IDEMPOTENT },
@@ -1934,7 +1938,7 @@ function createChartToolProvider(controller, options = {}) {
1934
1938
  series: {
1935
1939
  type: "array",
1936
1940
  description: "The new series (replaces all).",
1937
- items: { type: "object", properties: { id: { type: "string", description: "Stable id (optional)." }, ..._chunkGTF4RYXJcjs.SERIES_PROPS }, required: ["name", "values"], additionalProperties: false }
1941
+ items: { type: "object", properties: { id: { type: "string", description: "Stable id (optional)." }, ..._chunkSOSBOS5Tcjs.SERIES_PROPS }, required: ["name", "values"], additionalProperties: false }
1938
1942
  }
1939
1943
  },
1940
1944
  additionalProperties: false
@@ -1957,7 +1961,7 @@ function createChartToolProvider(controller, options = {}) {
1957
1961
  type: "array",
1958
1962
  minItems: 1,
1959
1963
  description: "Values to set.",
1960
- items: { type: "object", properties: { series: _chunkGTF4RYXJcjs.SERIES_REF, category: _chunkGTF4RYXJcjs.CATEGORY_REF, value: _chunkGTF4RYXJcjs.VALUE }, required: ["series", "category", "value"], additionalProperties: false }
1964
+ items: { type: "object", properties: { series: _chunkSOSBOS5Tcjs.SERIES_REF, category: _chunkSOSBOS5Tcjs.CATEGORY_REF, value: _chunkSOSBOS5Tcjs.VALUE }, required: ["series", "category", "value"], additionalProperties: false }
1961
1965
  }
1962
1966
  },
1963
1967
  required: ["cells"],
@@ -1966,7 +1970,7 @@ function createChartToolProvider(controller, options = {}) {
1966
1970
  annotations: { title: "Set chart values", ...WRITE_IDEMPOTENT },
1967
1971
  handler: async ({ cells }) => {
1968
1972
  const resolved = cells.map((c) => ({ seriesId: seriesById(c.series).id, index: categoryIndex(c.category), value: c.value }));
1969
- const parsed = resolved.map((c) => _chunkOUO3DSRTcjs.parseChartValue.call(void 0, c.value));
1973
+ const parsed = resolved.map((c) => _chunkWRZ6C4TUcjs.parseChartValue.call(void 0, c.value));
1970
1974
  const bad = resolved.find((_, i) => parsed[i] === void 0);
1971
1975
  if (bad) fail2(`"${String(bad.value)}" is not a number; pass a number, numeric text or null for a gap. Nothing was changed.`);
1972
1976
  if (options.director && parsed.every((v) => typeof v === "number")) {
@@ -1983,7 +1987,7 @@ function createChartToolProvider(controller, options = {}) {
1983
1987
  description: "Adds a series (values padded to the categories) and selects it. Returns its id and stored values.",
1984
1988
  inputSchema: {
1985
1989
  type: "object",
1986
- properties: { ..._chunkGTF4RYXJcjs.SERIES_PROPS, id: { type: "string", description: "Id to use (default: series-N)." }, at: { type: "integer", minimum: 0, description: "Position (default: last)." } },
1990
+ properties: { ..._chunkSOSBOS5Tcjs.SERIES_PROPS, id: { type: "string", description: "Id to use (default: series-N)." }, at: { type: "integer", minimum: 0, description: "Position (default: last)." } },
1987
1991
  required: ["name"],
1988
1992
  additionalProperties: false
1989
1993
  },
@@ -2001,7 +2005,7 @@ function createChartToolProvider(controller, options = {}) {
2001
2005
  description: "Renames, recolours, hides, moves to the secondary axis or changes how a series is drawn (marker, curve, labels, format, x values, bubble sizes, point colours, error bars). null resets a field. Values change with set_chart_values. Returns the series.",
2002
2006
  inputSchema: {
2003
2007
  type: "object",
2004
- properties: { series: _chunkGTF4RYXJcjs.SERIES_REF, ...Object.fromEntries(Object.entries(_chunkGTF4RYXJcjs.SERIES_PROPS).filter(([k]) => k !== "values")) },
2008
+ properties: { series: _chunkSOSBOS5Tcjs.SERIES_REF, ...Object.fromEntries(Object.entries(_chunkSOSBOS5Tcjs.SERIES_PROPS).filter(([k]) => k !== "values")) },
2005
2009
  required: ["series"],
2006
2010
  additionalProperties: false
2007
2011
  },
@@ -2017,7 +2021,7 @@ function createChartToolProvider(controller, options = {}) {
2017
2021
  name: "remove_chart_series",
2018
2022
  title: "Delete a series",
2019
2023
  description: "Deletes a series and its values. Returns the remaining series ids.",
2020
- inputSchema: { type: "object", properties: { series: _chunkGTF4RYXJcjs.SERIES_REF }, required: ["series"], additionalProperties: false },
2024
+ inputSchema: { type: "object", properties: { series: _chunkSOSBOS5Tcjs.SERIES_REF }, required: ["series"], additionalProperties: false },
2021
2025
  annotations: { title: "Delete a series", ...DESTRUCTIVE },
2022
2026
  handler: ({ series }) => {
2023
2027
  resolve(controller.removeSeries(seriesById(series).id));
@@ -2043,7 +2047,7 @@ function createChartToolProvider(controller, options = {}) {
2043
2047
  name: "remove_chart_category",
2044
2048
  title: "Delete a category",
2045
2049
  description: "Deletes a category and its value in every series. Returns the remaining categories.",
2046
- inputSchema: { type: "object", properties: { category: _chunkGTF4RYXJcjs.CATEGORY_REF }, required: ["category"], additionalProperties: false },
2050
+ inputSchema: { type: "object", properties: { category: _chunkSOSBOS5Tcjs.CATEGORY_REF }, required: ["category"], additionalProperties: false },
2047
2051
  annotations: { title: "Delete a category", ...DESTRUCTIVE },
2048
2052
  handler: ({ category }) => {
2049
2053
  resolve(controller.removeCategory(categoryIndex(category)));
@@ -2086,7 +2090,7 @@ function createChartToolProvider(controller, options = {}) {
2086
2090
  annotations: { title: "Import a Mermaid chart", ...DESTRUCTIVE },
2087
2091
  handler: ({ mermaid }) => {
2088
2092
  const fenced = /```(?:mermaid)?\s*\n([\s\S]*?)```/.exec(mermaid);
2089
- const read = _chunkGXEC4FS6cjs.chartFromMermaid.call(void 0, fenced ? fenced[1] : mermaid);
2093
+ const read = _chunk5DQPDXOMcjs.chartFromMermaid.call(void 0, fenced ? fenced[1] : mermaid);
2090
2094
  if (!read.family) fail2(read.issues.map((i) => i.message).join(" ") || "Expected Mermaid starting with xychart-beta, pie, radar-beta, sankey-beta or treemap-beta.");
2091
2095
  resolve(controller.update({ ...read.spec }, { label: "Import Mermaid chart" }));
2092
2096
  return { spec: controller.toJSON(), issues: read.issues };
@@ -2099,7 +2103,7 @@ function createChartToolProvider(controller, options = {}) {
2099
2103
  inputSchema: { type: "object", properties: { xml: { type: "string", description: "The chart part XML, e.g. word/charts/chart1.xml." } }, required: ["xml"], additionalProperties: false },
2100
2104
  annotations: { title: "Import an Office chart", ...DESTRUCTIVE },
2101
2105
  handler: ({ xml }) => {
2102
- const read = _chunkVKHJJUBKcjs.chartFromOoxml.call(void 0, xml, { DOMParser: Parser() });
2106
+ const read = _chunkHUAISCUXcjs.chartFromOoxml.call(void 0, xml, { DOMParser: Parser() });
2103
2107
  if (read.issues.some((i) => i.path === "" || i.path === "plotArea")) fail2(read.issues.map((i) => i.message).join(" "));
2104
2108
  resolve(controller.update({ ...read.spec }, { label: "Import Office chart" }));
2105
2109
  return { spec: controller.toJSON(), issues: read.issues.map((i) => i.message), unsupported: read.unsupported, lossless: read.lossless };
@@ -2109,7 +2113,7 @@ function createChartToolProvider(controller, options = {}) {
2109
2113
  name: "add_chart_trendline",
2110
2114
  title: "Add a trendline",
2111
2115
  description: "Fits a trendline to a series and draws it (unstacked bar, line, area, scatter and bubble charts). Returns its index and the fit: coefficients, R\xB2 and equation.",
2112
- inputSchema: { type: "object", properties: { series: _chunkGTF4RYXJcjs.SERIES_REF, ..._chunkGTF4RYXJcjs.TRENDLINE_PROPS }, required: ["series", "type"], additionalProperties: false },
2116
+ inputSchema: { type: "object", properties: { series: _chunkSOSBOS5Tcjs.SERIES_REF, ..._chunkSOSBOS5Tcjs.TRENDLINE_PROPS }, required: ["series", "type"], additionalProperties: false },
2113
2117
  annotations: { title: "Add a trendline", ...WRITE },
2114
2118
  handler: ({ series, ...line }) => {
2115
2119
  const s = seriesById(series);
@@ -2123,7 +2127,7 @@ function createChartToolProvider(controller, options = {}) {
2123
2127
  description: "Deletes a trendline from a series. Returns the series' remaining trendlines.",
2124
2128
  inputSchema: {
2125
2129
  type: "object",
2126
- properties: { series: _chunkGTF4RYXJcjs.SERIES_REF, index: { type: "integer", minimum: 0, description: "Trendline index on the series (0 = first)." } },
2130
+ properties: { series: _chunkSOSBOS5Tcjs.SERIES_REF, index: { type: "integer", minimum: 0, description: "Trendline index on the series (0 = first)." } },
2127
2131
  required: ["series", "index"],
2128
2132
  additionalProperties: false
2129
2133
  },
@@ -2142,7 +2146,7 @@ function createChartToolProvider(controller, options = {}) {
2142
2146
  name: `add_chart_reference_${what}`,
2143
2147
  title: `Add a reference ${what}`,
2144
2148
  description: what === "line" ? "Draws a dashed line across the plot at one value: a target, a floor, an average (bar, line, area, scatter and bubble charts). The axis grows to keep it in view. Returns its index and the reference lines." : "Shades a band across the plot between two values: a target or normal range (bar, line, area, scatter and bubble charts), drawn under the data. The axis grows to keep it in view. Returns its index and the reference bands.",
2145
- inputSchema: { type: "object", properties: what === "line" ? _chunkGTF4RYXJcjs.REFERENCE_LINE_PROPS : _chunkGTF4RYXJcjs.REFERENCE_BAND_PROPS, required: what === "line" ? ["value"] : ["from", "to"], additionalProperties: false },
2149
+ inputSchema: { type: "object", properties: what === "line" ? _chunkSOSBOS5Tcjs.REFERENCE_LINE_PROPS : _chunkSOSBOS5Tcjs.REFERENCE_BAND_PROPS, required: what === "line" ? ["value"] : ["from", "to"], additionalProperties: false },
2146
2150
  annotations: { title: `Add a reference ${what}`, ...WRITE },
2147
2151
  handler: (args) => {
2148
2152
  const result = resolve(what === "line" ? controller.addReferenceLine(args) : controller.addReferenceBand(args));
@@ -2153,7 +2157,7 @@ function createChartToolProvider(controller, options = {}) {
2153
2157
  name: `update_chart_reference_${what}`,
2154
2158
  title: `Change a reference ${what}`,
2155
2159
  description: `Changes a reference ${what} by index (all-or-nothing); label, axis and color take null to remove them. Returns the ${what} as stored.`,
2156
- inputSchema: { type: "object", properties: { index: _chunkGTF4RYXJcjs.REFERENCE_INDEX.call(void 0, Kind), ...what === "line" ? _chunkGTF4RYXJcjs.REFERENCE_LINE_PATCH : _chunkGTF4RYXJcjs.REFERENCE_BAND_PATCH }, required: ["index"], additionalProperties: false },
2160
+ inputSchema: { type: "object", properties: { index: _chunkSOSBOS5Tcjs.REFERENCE_INDEX.call(void 0, Kind), ...what === "line" ? _chunkSOSBOS5Tcjs.REFERENCE_LINE_PATCH : _chunkSOSBOS5Tcjs.REFERENCE_BAND_PATCH }, required: ["index"], additionalProperties: false },
2157
2161
  annotations: { title: `Change a reference ${what}`, ...WRITE_IDEMPOTENT },
2158
2162
  handler: ({ index, ...patch }) => {
2159
2163
  if (!Object.keys(patch).length) fail2(`Nothing to change: pass at least one field besides index, e.g. {"index": ${index}, "label": "Target"}.`);
@@ -2165,7 +2169,7 @@ function createChartToolProvider(controller, options = {}) {
2165
2169
  name: `remove_chart_reference_${what}`,
2166
2170
  title: `Delete a reference ${what}`,
2167
2171
  description: `Deletes a reference ${what} by index; the ones after it move up one. Returns the reference ${what}s left.`,
2168
- inputSchema: { type: "object", properties: { index: _chunkGTF4RYXJcjs.REFERENCE_INDEX.call(void 0, Kind) }, required: ["index"], additionalProperties: false },
2172
+ inputSchema: { type: "object", properties: { index: _chunkSOSBOS5Tcjs.REFERENCE_INDEX.call(void 0, Kind) }, required: ["index"], additionalProperties: false },
2169
2173
  annotations: { title: `Delete a reference ${what}`, ...DESTRUCTIVE },
2170
2174
  handler: ({ index }) => {
2171
2175
  resolve(what === "line" ? controller.removeReferenceLine(index) : controller.removeReferenceBand(index));
@@ -2182,7 +2186,7 @@ function createChartToolProvider(controller, options = {}) {
2182
2186
  description: 'Pins a short label to one bar or point, with a leader line, to say why it matters ("Record quarter", "Launch"); label null or "" removes it. Bar, line, area, scatter and bubble charts; the point must have a value. Selects the point and returns the series id, category index and label.',
2183
2187
  inputSchema: {
2184
2188
  type: "object",
2185
- properties: { series: _chunkGTF4RYXJcjs.SERIES_REF, category: _chunkGTF4RYXJcjs.CATEGORY_REF, label: { type: ["string", "null"], description: "The label (keep it to a few words), or null to remove it." } },
2189
+ properties: { series: _chunkSOSBOS5Tcjs.SERIES_REF, category: _chunkSOSBOS5Tcjs.CATEGORY_REF, label: { type: ["string", "null"], description: "The label (keep it to a few words), or null to remove it." } },
2186
2190
  required: ["series", "category", "label"],
2187
2191
  additionalProperties: false
2188
2192
  },
@@ -2215,7 +2219,7 @@ function createChartToolProvider(controller, options = {}) {
2215
2219
  name: "set_chart_tree",
2216
2220
  title: "Replace grouped data",
2217
2221
  description: `Replaces the chart's data with groups of items (a tree) for treemaps and sunbursts, as one undo step: items {"name", "value"} and groups {"name", "children"}, up to 6 levels, names unique among siblings. The top-level groups become the categories and their totals the first series, so other chart types draw the totals. [] goes back to plain data (the totals stay as values). Returns the tree, each group's total and the depth.`,
2218
- inputSchema: { type: "object", properties: { tree: { type: "array", items: { $ref: "#/$defs/chartTreeNode" }, description: "The top-level nodes; [] removes the grouping." } }, required: ["tree"], additionalProperties: false, $defs: _chunkGTF4RYXJcjs.TREE_DEFS },
2222
+ inputSchema: { type: "object", properties: { tree: { type: "array", items: { $ref: "#/$defs/chartTreeNode" }, description: "The top-level nodes; [] removes the grouping." } }, required: ["tree"], additionalProperties: false, $defs: _chunkSOSBOS5Tcjs.TREE_DEFS },
2219
2223
  annotations: { title: "Replace grouped data", ...WRITE_IDEMPOTENT },
2220
2224
  handler: ({ tree }) => {
2221
2225
  resolve(controller.setTree(tree));
@@ -2254,13 +2258,13 @@ function createChartToolProvider(controller, options = {}) {
2254
2258
  },
2255
2259
  required: ["node"],
2256
2260
  additionalProperties: false,
2257
- $defs: _chunkGTF4RYXJcjs.TREE_DEFS
2261
+ $defs: _chunkSOSBOS5Tcjs.TREE_DEFS
2258
2262
  },
2259
2263
  annotations: { title: "Add an item or group", ...WRITE },
2260
2264
  handler: ({ parent = [], node, at }) => {
2261
2265
  const result = resolve(controller.addTreeNode(parent, node, { at }));
2262
- const group = parent.length ? _chunkOUO3DSRTcjs.findChartTreeNode.call(void 0, spec().tree, parent) : null;
2263
- return { path: result.path, parentTotal: group ? _chunkOUO3DSRTcjs.chartTreeTotal.call(void 0, group) : spec().tree.reduce((t, n) => t + _chunkOUO3DSRTcjs.chartTreeTotal.call(void 0, n), 0) };
2266
+ const group = parent.length ? _chunkWRZ6C4TUcjs.findChartTreeNode.call(void 0, spec().tree, parent) : null;
2267
+ return { path: result.path, parentTotal: group ? _chunkWRZ6C4TUcjs.chartTreeTotal.call(void 0, group) : spec().tree.reduce((t, n) => t + _chunkWRZ6C4TUcjs.chartTreeTotal.call(void 0, n), 0) };
2264
2268
  }
2265
2269
  };
2266
2270
  const updateTreeNode = {
@@ -2270,7 +2274,7 @@ function createChartToolProvider(controller, options = {}) {
2270
2274
  inputSchema: {
2271
2275
  type: "object",
2272
2276
  properties: {
2273
- path: _chunkGTF4RYXJcjs.TREE_PATH,
2277
+ path: _chunkSOSBOS5Tcjs.TREE_PATH,
2274
2278
  name: { type: "string", description: "New name (unique among its siblings)." },
2275
2279
  value: { type: "number", minimum: 0, description: "Items only: the new amount." },
2276
2280
  color: { type: ["string", "null"], description: "CSS colour, or null for the palette colour." }
@@ -2282,14 +2286,14 @@ function createChartToolProvider(controller, options = {}) {
2282
2286
  handler: ({ path, ...patch }) => {
2283
2287
  if (!Object.keys(patch).length) fail2("Nothing to change: pass name, value or color with the path.");
2284
2288
  const result = resolve(controller.updateTreeNode(path, patch));
2285
- return { path: result.path, node: _chunkOUO3DSRTcjs.findChartTreeNode.call(void 0, spec().tree, result.path) };
2289
+ return { path: result.path, node: _chunkWRZ6C4TUcjs.findChartTreeNode.call(void 0, spec().tree, result.path) };
2286
2290
  }
2287
2291
  };
2288
2292
  const removeTreeNode = {
2289
2293
  name: "remove_chart_tree_node",
2290
2294
  title: "Delete an item or group",
2291
2295
  description: "Deletes a node of the grouped data with everything under it (a group left empty becomes an item with value 0). Returns the group totals left.",
2292
- inputSchema: { type: "object", properties: { path: _chunkGTF4RYXJcjs.TREE_PATH }, required: ["path"], additionalProperties: false },
2296
+ inputSchema: { type: "object", properties: { path: _chunkSOSBOS5Tcjs.TREE_PATH }, required: ["path"], additionalProperties: false },
2293
2297
  annotations: { title: "Delete an item or group", ...DESTRUCTIVE },
2294
2298
  handler: ({ path }) => {
2295
2299
  resolve(controller.removeTreeNode(path));
@@ -2303,7 +2307,7 @@ function createChartToolProvider(controller, options = {}) {
2303
2307
  inputSchema: {
2304
2308
  type: "object",
2305
2309
  properties: {
2306
- links: { type: "array", items: { type: "object", properties: _chunkGTF4RYXJcjs.LINK_PROPS, required: ["source", "target", "value"], additionalProperties: false }, description: "All the flows; [] removes them." },
2310
+ links: { type: "array", items: { type: "object", properties: _chunkSOSBOS5Tcjs.LINK_PROPS, required: ["source", "target", "value"], additionalProperties: false }, description: "All the flows; [] removes them." },
2307
2311
  nodes: { type: "array", items: { type: "string" }, description: "Node names in stacking order (default: as the flows first name them)." }
2308
2312
  },
2309
2313
  required: ["links"],
@@ -2338,7 +2342,7 @@ function createChartToolProvider(controller, options = {}) {
2338
2342
  name: "add_chart_link",
2339
2343
  title: "Add a flow",
2340
2344
  description: "Adds a flow from one node to another (new names add nodes). Refused when the pair exists already or it would close a loop. Returns its index and the throughput of its two nodes.",
2341
- inputSchema: { type: "object", properties: _chunkGTF4RYXJcjs.LINK_PROPS, required: ["source", "target", "value"], additionalProperties: false },
2345
+ inputSchema: { type: "object", properties: _chunkSOSBOS5Tcjs.LINK_PROPS, required: ["source", "target", "value"], additionalProperties: false },
2342
2346
  annotations: { title: "Add a flow", ...WRITE },
2343
2347
  handler: (args) => {
2344
2348
  const result = resolve(controller.addLink(args));
@@ -2352,7 +2356,7 @@ function createChartToolProvider(controller, options = {}) {
2352
2356
  name: "update_chart_link",
2353
2357
  title: "Change a flow",
2354
2358
  description: "Changes a flow by index: its source, target, value or colour (null goes back to the default). Checked like a new flow. Returns the flow as stored.",
2355
- inputSchema: { type: "object", properties: { index: _chunkGTF4RYXJcjs.LINK_INDEX, ..._chunkGTF4RYXJcjs.LINK_PROPS, color: { type: ["string", "null"], description: "CSS colour, or null for the default." } }, required: ["index"], additionalProperties: false },
2359
+ inputSchema: { type: "object", properties: { index: _chunkSOSBOS5Tcjs.LINK_INDEX, ..._chunkSOSBOS5Tcjs.LINK_PROPS, color: { type: ["string", "null"], description: "CSS colour, or null for the default." } }, required: ["index"], additionalProperties: false },
2356
2360
  annotations: { title: "Change a flow", ...WRITE_IDEMPOTENT },
2357
2361
  handler: ({ index, ...patch }) => {
2358
2362
  if (!Object.keys(patch).length) fail2(`Nothing to change: pass source, target, value or color with the index, e.g. {"index": ${index}, "value": 40}.`);
@@ -2364,7 +2368,7 @@ function createChartToolProvider(controller, options = {}) {
2364
2368
  name: "remove_chart_link",
2365
2369
  title: "Delete a flow",
2366
2370
  description: "Deletes a flow by index; the ones after it move up one, and nodes no flow uses any more go. Returns the flows left.",
2367
- inputSchema: { type: "object", properties: { index: _chunkGTF4RYXJcjs.LINK_INDEX }, required: ["index"], additionalProperties: false },
2371
+ inputSchema: { type: "object", properties: { index: _chunkSOSBOS5Tcjs.LINK_INDEX }, required: ["index"], additionalProperties: false },
2368
2372
  annotations: { title: "Delete a flow", ...DESTRUCTIVE },
2369
2373
  handler: ({ index }) => {
2370
2374
  resolve(controller.removeLink(index));
@@ -2375,7 +2379,7 @@ function createChartToolProvider(controller, options = {}) {
2375
2379
  name: "set_chart_race_frame",
2376
2380
  title: "Show a bar race moment",
2377
2381
  description: "Shows the bar race at a time point (or between two), and stops playback. This is view state like the selection: it is not an undo step and is not saved in the chart. Returns the moment and the ranking shown.",
2378
- inputSchema: { type: "object", properties: { time: { ..._chunkGTF4RYXJcjs.RACE_TIME, type: ["string", "number", "null"], description: `${_chunkGTF4RYXJcjs.RACE_TIME.description} null shows the last time point.` } }, required: ["time"], additionalProperties: false },
2382
+ inputSchema: { type: "object", properties: { time: { ..._chunkSOSBOS5Tcjs.RACE_TIME, type: ["string", "number", "null"], description: `${_chunkSOSBOS5Tcjs.RACE_TIME.description} null shows the last time point.` } }, required: ["time"], additionalProperties: false },
2379
2383
  annotations: { title: "Show a bar race moment", ...WRITE_IDEMPOTENT },
2380
2384
  handler: ({ time }) => {
2381
2385
  const frame = time === null ? null : raceFrameOf(time);
@@ -2402,8 +2406,8 @@ function createChartToolProvider(controller, options = {}) {
2402
2406
  inputSchema: {
2403
2407
  type: "object",
2404
2408
  properties: {
2405
- layout: { type: "string", enum: _chunkGXEC4FS6cjs.CHART_LAYOUT_PRESETS.map((p) => p.id), description: "Quick layout id." },
2406
- colors: { type: "string", enum: _chunkGXEC4FS6cjs.CHART_COLOR_SCHEMES.map((p) => p.id), description: "Colour scheme id." }
2409
+ layout: { type: "string", enum: _chunk5DQPDXOMcjs.CHART_LAYOUT_PRESETS.map((p) => p.id), description: "Quick layout id." },
2410
+ colors: { type: "string", enum: _chunk5DQPDXOMcjs.CHART_COLOR_SCHEMES.map((p) => p.id), description: "Colour scheme id." }
2407
2411
  },
2408
2412
  additionalProperties: false
2409
2413
  },
@@ -2432,8 +2436,8 @@ function createChartToolProvider(controller, options = {}) {
2432
2436
  type: "object",
2433
2437
  properties: {
2434
2438
  kind: { type: "string", enum: ["none", "chart", "title", "subtitle", "legend", "axis", "series", "point", "category", "trendline"], description: "What to select." },
2435
- series: { ..._chunkGTF4RYXJcjs.SERIES_REF, description: "Series id or name (series, point, trendline)." },
2436
- category: { ..._chunkGTF4RYXJcjs.CATEGORY_REF, description: "Category index or label (point, category)." },
2439
+ series: { ..._chunkSOSBOS5Tcjs.SERIES_REF, description: "Series id or name (series, point, trendline)." },
2440
+ category: { ..._chunkSOSBOS5Tcjs.CATEGORY_REF, description: "Category index or label (point, category)." },
2437
2441
  axis: { type: "string", enum: ["x", "y", "y2"], description: "Axis (axis)." },
2438
2442
  index: { type: "integer", minimum: 0, description: "Trendline index (trendline)." }
2439
2443
  },
@@ -2491,15 +2495,15 @@ function createChartToolProvider(controller, options = {}) {
2491
2495
  to: { type: "object", description: "End, as fractions of the chart.", properties: { x: { type: "number", minimum: 0, maximum: 1, description: "Fraction of the width." }, y: { type: "number", minimum: 0, maximum: 1, description: "Fraction of the height." } }, required: ["x", "y"], additionalProperties: false },
2492
2496
  fine: { type: "boolean", description: "Move a tenth as far (Alt)." },
2493
2497
  lockAxis: { type: "boolean", description: "Scatter charts: change only the axis moved along most (Shift)." },
2494
- width: _chunkGTF4RYXJcjs.WIDTH,
2495
- height: _chunkGTF4RYXJcjs.HEIGHT
2498
+ width: _chunkSOSBOS5Tcjs.WIDTH,
2499
+ height: _chunkSOSBOS5Tcjs.HEIGHT
2496
2500
  },
2497
2501
  required: ["from", "to"],
2498
2502
  additionalProperties: false
2499
2503
  },
2500
2504
  annotations: { title: "Drag a chart point", ...WRITE },
2501
2505
  handler: ({ from, to, fine, lockAxis, width = size.width, height = size.height }) => {
2502
- const scene = _chunkTUXKLM5Wcjs.layoutChart.call(void 0, controller.toJSON(), { width, height });
2506
+ const scene = _chunkN76AMOKEcjs.layoutChart.call(void 0, controller.toJSON(), { width, height });
2503
2507
  const start = { x: from.x * width, y: from.y * height };
2504
2508
  const target = chartHitTest(scene, start);
2505
2509
  if (_optionalChain([target, 'optionalAccess', _118 => _118.kind]) !== "point") fail2(`There is no bar or point at (${from.x}, ${from.y}); ${target ? `that is the ${target.kind}` : "that is outside the chart"}. Use render_chart to find marks.`);
@@ -2529,7 +2533,7 @@ function createChartToolProvider(controller, options = {}) {
2529
2533
  },
2530
2534
  annotations: { title: "Press a key on the chart", ...DESTRUCTIVE },
2531
2535
  handler: ({ key: k, shift, alt }) => {
2532
- const scene = _chunkTUXKLM5Wcjs.layoutChart.call(void 0, controller.toJSON(), size);
2536
+ const scene = _chunkN76AMOKEcjs.layoutChart.call(void 0, controller.toJSON(), size);
2533
2537
  const used = handleChartKey(controller, scene, { key: k, shiftKey: shift, altKey: alt });
2534
2538
  const sel = controller.getState().selection;
2535
2539
  const value = _optionalChain([sel, 'optionalAccess', _123 => _123.kind]) === "point" ? _nullishCoalesce(_optionalChain([controller, 'access', _124 => _124.getSeries, 'call', _125 => _125(sel.seriesId), 'optionalAccess', _126 => _126.values, 'access', _127 => _127[sel.index]]), () => ( null)) : void 0;
@@ -2680,12 +2684,12 @@ var ChartStream = (_class = class {
2680
2684
  if (format === "json") {
2681
2685
  const value = complete ? safeParse(text) : parsePartialChartJson(text);
2682
2686
  if (value !== void 0) {
2683
- const read = _chunkOUO3DSRTcjs.normalizeChartSpec.call(void 0, value);
2687
+ const read = _chunkWRZ6C4TUcjs.normalizeChartSpec.call(void 0, value);
2684
2688
  spec = read.spec;
2685
2689
  issues = complete ? read.issues : [];
2686
2690
  }
2687
2691
  } else {
2688
- const read = _chunkGXEC4FS6cjs.chartFromMermaid.call(void 0, text, { partial: !complete });
2692
+ const read = _chunk5DQPDXOMcjs.chartFromMermaid.call(void 0, text, { partial: !complete });
2689
2693
  if (read.family) {
2690
2694
  spec = read.spec;
2691
2695
  issues = complete ? read.issues : [];
@@ -2806,7 +2810,7 @@ async function readRels(r, partPath) {
2806
2810
  }
2807
2811
  return rels;
2808
2812
  }
2809
- var isChartRef = (el) => el.localName === "chart" && (el.namespaceURI === _chunkVKHJJUBKcjs.CHART_OOXML_NS || el.namespaceURI === STRICT_CHART_NS || el.namespaceURI === CHARTEX_NS);
2813
+ var isChartRef = (el) => el.localName === "chart" && (el.namespaceURI === _chunkHUAISCUXcjs.CHART_OOXML_NS || el.namespaceURI === STRICT_CHART_NS || el.namespaceURI === CHARTEX_NS);
2810
2814
  function frameName(ref) {
2811
2815
  for (let el = ref.parentElement; el; el = el.parentElement) {
2812
2816
  if (el.localName === "graphicFrame") {
@@ -2825,7 +2829,7 @@ async function chartsInPart(r, root, rels, place) {
2825
2829
  const entry = r.zip.get(rel.target);
2826
2830
  if (!entry) continue;
2827
2831
  r.seen.add(rel.target);
2828
- const read = _chunkVKHJJUBKcjs.chartFromOoxml.call(void 0, await r.zip.readText(entry), { DOMParser: r.Parser });
2832
+ const read = _chunkHUAISCUXcjs.chartFromOoxml.call(void 0, await r.zip.readText(entry), { DOMParser: r.Parser });
2829
2833
  const name = frameName(ref);
2830
2834
  r.charts.push({
2831
2835
  id: `chart-${r.charts.length + 1}`,
@@ -3096,16 +3100,16 @@ var COLOR = { type: "string", minLength: 1, description: 'A CSS colour (hex or r
3096
3100
  function chartColors(spec) {
3097
3101
  const out = [];
3098
3102
  const visible = spec.series.map((s, i) => ({ s, i })).filter(({ s }) => !s.hidden);
3099
- if (_chunkOUO3DSRTcjs.chartColorsByCategory.call(void 0, spec.type)) {
3103
+ if (_chunkWRZ6C4TUcjs.chartColorsByCategory.call(void 0, spec.type)) {
3100
3104
  const first = visible[0];
3101
3105
  spec.categories.forEach((name, index) => {
3102
- const color = _optionalChain([first, 'optionalAccess', _143 => _143.s, 'access', _144 => _144.pointColors, 'optionalAccess', _145 => _145[index]]) || _chunkOUO3DSRTcjs.chartSliceColor.call(void 0, spec, index);
3106
+ const color = _optionalChain([first, 'optionalAccess', _143 => _143.s, 'access', _144 => _144.pointColors, 'optionalAccess', _145 => _145[index]]) || _chunkWRZ6C4TUcjs.chartSliceColor.call(void 0, spec, index);
3103
3107
  out.push({ color, label: `Slice "${name}"`, target: first ? { kind: "point", seriesId: first.s.id, index } : { kind: "category", index } });
3104
3108
  });
3105
3109
  return out;
3106
3110
  }
3107
3111
  for (const { s, i } of visible) {
3108
- out.push({ color: _chunkOUO3DSRTcjs.chartSeriesColor.call(void 0, spec, i), label: `Series "${s.name}"`, target: { kind: "series", seriesId: s.id } });
3112
+ out.push({ color: _chunkWRZ6C4TUcjs.chartSeriesColor.call(void 0, spec, i), label: `Series "${s.name}"`, target: { kind: "series", seriesId: s.id } });
3109
3113
  _optionalChain([s, 'access', _146 => _146.pointColors, 'optionalAccess', _147 => _147.forEach, 'call', _148 => _148((c, index) => {
3110
3114
  if (c) out.push({ color: c, label: `Point ${index + 1} of "${s.name}"`, target: { kind: "point", seriesId: s.id, index } });
3111
3115
  })]);
@@ -3127,18 +3131,18 @@ var paletteOnly = {
3127
3131
  },
3128
3132
  run(spec, profile, { tolerance = 0.02 }) {
3129
3133
  const palette = paletteOf(profile);
3130
- const allowed = palette.flatMap((c) => _chunkOUO3DSRTcjs.CHART_PALETTE_SHADES.map((t) => _chunkOUO3DSRTcjs.shadeChartColor.call(void 0, c, t))).map((c) => ({ c, rgb: _chunkOUO3DSRTcjs.parseChartColor.call(void 0, c) }));
3134
+ const allowed = palette.flatMap((c) => _chunkWRZ6C4TUcjs.CHART_PALETTE_SHADES.map((t) => _chunkWRZ6C4TUcjs.shadeChartColor.call(void 0, c, t))).map((c) => ({ c, rgb: _chunkWRZ6C4TUcjs.parseChartColor.call(void 0, c) }));
3131
3135
  return chartColors(spec).flatMap(({ color, label, target }) => {
3132
- const rgb = _chunkOUO3DSRTcjs.parseChartColor.call(void 0, color);
3136
+ const rgb = _chunkWRZ6C4TUcjs.parseChartColor.call(void 0, color);
3133
3137
  if (!rgb) return [];
3134
3138
  let best = { c: palette[0], d: Infinity };
3135
3139
  for (const a of allowed) {
3136
3140
  if (!a.rgb) continue;
3137
- const d = _chunkOUO3DSRTcjs.chartColorDistance.call(void 0, rgb, a.rgb);
3141
+ const d = _chunkWRZ6C4TUcjs.chartColorDistance.call(void 0, rgb, a.rgb);
3138
3142
  if (d < best.d) best = { c: a.c, d };
3139
3143
  }
3140
3144
  if (best.d <= tolerance) return [];
3141
- const nearest = palette.map((c) => ({ c, d: _chunkOUO3DSRTcjs.parseChartColor.call(void 0, c) ? _chunkOUO3DSRTcjs.chartColorDistance.call(void 0, rgb, _chunkOUO3DSRTcjs.parseChartColor.call(void 0, c)) : Infinity })).sort((a, b) => a.d - b.d)[0].c;
3145
+ const nearest = palette.map((c) => ({ c, d: _chunkWRZ6C4TUcjs.parseChartColor.call(void 0, c) ? _chunkWRZ6C4TUcjs.chartColorDistance.call(void 0, rgb, _chunkWRZ6C4TUcjs.parseChartColor.call(void 0, c)) : Infinity })).sort((a, b) => a.d - b.d)[0].c;
3142
3146
  return [{ severity: "error", message: `${label} uses ${color}, which is not in the house palette; use ${nearest} or another palette colour (${palette.join(", ")}).`, target }];
3143
3147
  });
3144
3148
  }
@@ -3152,8 +3156,8 @@ var distinguishable = {
3152
3156
  additionalProperties: false
3153
3157
  },
3154
3158
  run(spec, _profile, { minDistance = 0.08 }) {
3155
- const colors = chartColors(spec).filter((c) => c.target.kind !== "point" || _chunkOUO3DSRTcjs.chartColorsByCategory.call(void 0, spec.type));
3156
- const result = _chunkOUO3DSRTcjs.checkChartColors.call(void 0, colors.map((c) => c.color), { minDistance, minContrast: 0 });
3159
+ const colors = chartColors(spec).filter((c) => c.target.kind !== "point" || _chunkWRZ6C4TUcjs.chartColorsByCategory.call(void 0, spec.type));
3160
+ const result = _chunkWRZ6C4TUcjs.checkChartColors.call(void 0, colors.map((c) => c.color), { minDistance, minContrast: 0 });
3157
3161
  const findings = [];
3158
3162
  for (const [vision, pair] of Object.entries(result.closest)) {
3159
3163
  if (!pair || pair.distance >= minDistance) continue;
@@ -3179,7 +3183,7 @@ var minContrast = {
3179
3183
  const theme = _nullishCoalesce(profile.theme, () => ( {}));
3180
3184
  const background = theme.background && theme.background !== "transparent" ? theme.background : _nullishCoalesce(theme.surface, () => ( "#ffffff"));
3181
3185
  return chartColors(spec).flatMap(({ color, label, target }) => {
3182
- const r = _chunkOUO3DSRTcjs.chartContrastRatio.call(void 0, color, background);
3186
+ const r = _chunkWRZ6C4TUcjs.chartContrastRatio.call(void 0, color, background);
3183
3187
  if (r === null || r >= ratio) return [];
3184
3188
  return [{ severity: "warning", message: `${label} (${color}) has contrast ${Math.round(r * 100) / 100}:1 against the background ${background}; want at least ${ratio}:1, so use a darker or lighter palette colour.`, target }];
3185
3189
  });
@@ -3208,8 +3212,8 @@ var chartStyleDomain = {
3208
3212
  type: "object",
3209
3213
  properties: {
3210
3214
  palette: { type: "array", items: COLOR, minItems: 1, description: "Series colours in order." },
3211
- colorSchemes: { type: "array", items: { type: "string", enum: _chunkGXEC4FS6cjs.CHART_COLOR_SCHEMES.map((s) => s.id) }, description: "Colour scheme ids allowed besides the palette (empty: none)." },
3212
- layouts: { type: "array", items: { type: "string", enum: _chunkGXEC4FS6cjs.CHART_LAYOUT_PRESETS.map((p) => p.id) }, description: "Layout preset ids allowed." },
3215
+ colorSchemes: { type: "array", items: { type: "string", enum: _chunk5DQPDXOMcjs.CHART_COLOR_SCHEMES.map((s) => s.id) }, description: "Colour scheme ids allowed besides the palette (empty: none)." },
3216
+ layouts: { type: "array", items: { type: "string", enum: _chunk5DQPDXOMcjs.CHART_LAYOUT_PRESETS.map((p) => p.id) }, description: "Layout preset ids allowed." },
3213
3217
  theme: {
3214
3218
  type: "object",
3215
3219
  properties: {
@@ -3495,4 +3499,5 @@ function createChartStyleToolProvider(controller, styles, options = {}) {
3495
3499
 
3496
3500
 
3497
3501
 
3498
- exports.CHART_AXIS_KINDS = _chunkOUO3DSRTcjs.CHART_AXIS_KINDS; exports.CHART_AXIS_SCALES = _chunkOUO3DSRTcjs.CHART_AXIS_SCALES; exports.CHART_COLOR_SCHEMES = _chunkGXEC4FS6cjs.CHART_COLOR_SCHEMES; exports.CHART_CURVES = _chunkOUO3DSRTcjs.CHART_CURVES; exports.CHART_DATE_STEPS = _chunkTUXKLM5Wcjs.CHART_DATE_STEPS; exports.CHART_ERROR_BAR_DIRECTIONS = _chunkOUO3DSRTcjs.CHART_ERROR_BAR_DIRECTIONS; exports.CHART_ERROR_BAR_LABELS = _chunkOUO3DSRTcjs.CHART_ERROR_BAR_LABELS; exports.CHART_ERROR_BAR_TYPES = _chunkOUO3DSRTcjs.CHART_ERROR_BAR_TYPES; exports.CHART_LABEL_POSITIONS = _chunkOUO3DSRTcjs.CHART_LABEL_POSITIONS; exports.CHART_LAYOUT_PRESETS = _chunkGXEC4FS6cjs.CHART_LAYOUT_PRESETS; exports.CHART_LEGEND_POSITIONS = _chunkOUO3DSRTcjs.CHART_LEGEND_POSITIONS; exports.CHART_LIKERT_NEUTRALS = _chunkOUO3DSRTcjs.CHART_LIKERT_NEUTRALS; exports.CHART_LIKERT_SORTS = _chunkOUO3DSRTcjs.CHART_LIKERT_SORTS; exports.CHART_MARKERS = _chunkOUO3DSRTcjs.CHART_MARKERS; exports.CHART_MERMAID_META_PREFIX = _chunkGXEC4FS6cjs.CHART_MERMAID_META_PREFIX; exports.CHART_NUMBER_STYLES = _chunkOUO3DSRTcjs.CHART_NUMBER_STYLES; exports.CHART_OOXML_CONTENT_TYPE = _chunkVKHJJUBKcjs.CHART_OOXML_CONTENT_TYPE; exports.CHART_OOXML_NS = _chunkVKHJJUBKcjs.CHART_OOXML_NS; exports.CHART_OOXML_RELATIONSHIP = _chunkVKHJJUBKcjs.CHART_OOXML_RELATIONSHIP; exports.CHART_ORIENTATIONS = _chunkOUO3DSRTcjs.CHART_ORIENTATIONS; exports.CHART_PALETTE_SHADES = _chunkOUO3DSRTcjs.CHART_PALETTE_SHADES; exports.CHART_PRESENCE_COLORS = CHART_PRESENCE_COLORS; exports.CHART_RADAR_GRATICULES = _chunkOUO3DSRTcjs.CHART_RADAR_GRATICULES; exports.CHART_RASTER_MAX_SIZE = CHART_RASTER_MAX_SIZE; exports.CHART_REFERENCE_AXES = _chunkOUO3DSRTcjs.CHART_REFERENCE_AXES; exports.CHART_SANKEY_LINK_COLORS = _chunkOUO3DSRTcjs.CHART_SANKEY_LINK_COLORS; exports.CHART_SERIES_TYPES = _chunkOUO3DSRTcjs.CHART_SERIES_TYPES; exports.CHART_STACKINGS = _chunkOUO3DSRTcjs.CHART_STACKINGS; exports.CHART_TRENDLINE_TYPES = _chunkOUO3DSRTcjs.CHART_TRENDLINE_TYPES; exports.CHART_TYPES = _chunkOUO3DSRTcjs.CHART_TYPES; exports.CHART_TYPE_LABELS = _chunkOUO3DSRTcjs.CHART_TYPE_LABELS; exports.CSS_VARIABLE_CHART_THEME = _chunkOUO3DSRTcjs.CSS_VARIABLE_CHART_THEME; exports.ChartController = _chunkGXEC4FS6cjs.ChartController; exports.ChartDirector = ChartDirector; exports.ChartPresence = ChartPresence; exports.ChartStream = ChartStream; exports.DEFAULT_CHART_PALETTE = _chunkOUO3DSRTcjs.DEFAULT_CHART_PALETTE; exports.DEFAULT_CHART_THEME = _chunkOUO3DSRTcjs.DEFAULT_CHART_THEME; exports.MAX_CHART_DATA_LABELS = _chunkTUXKLM5Wcjs.MAX_CHART_DATA_LABELS; exports.MAX_CHART_LINE_POINTS = _chunkTUXKLM5Wcjs.MAX_CHART_LINE_POINTS; exports.MAX_CHART_LINKS = _chunkOUO3DSRTcjs.MAX_CHART_LINKS; exports.MAX_CHART_MARKERS = _chunkTUXKLM5Wcjs.MAX_CHART_MARKERS; exports.MAX_CHART_TREE_DEPTH = _chunkOUO3DSRTcjs.MAX_CHART_TREE_DEPTH; exports.MAX_CHART_TREE_NODES = _chunkOUO3DSRTcjs.MAX_CHART_TREE_NODES; exports.OfficeChartsError = OfficeChartsError; exports.RENDER_CHART_INSTRUCTIONS = RENDER_CHART_INSTRUCTIONS; exports.addChartLink = _chunkOUO3DSRTcjs.addChartLink; exports.addChartTreeRow = _chunkOUO3DSRTcjs.addChartTreeRow; exports.analyzeChartTable = analyzeChartTable; exports.blendChartScenes = blendChartScenes; exports.canDragChartPoint = canDragChartPoint; exports.chartBoxStats = _chunkTUXKLM5Wcjs.chartBoxStats; exports.chartCategoryAtPoint = _chunkTUXKLM5Wcjs.chartCategoryAtPoint; exports.chartClientToScene = chartClientToScene; exports.chartColorDistance = _chunkOUO3DSRTcjs.chartColorDistance; exports.chartColorInputValue = _chunkOUO3DSRTcjs.chartColorInputValue; exports.chartColorsByCategory = _chunkOUO3DSRTcjs.chartColorsByCategory; exports.chartContrastRatio = _chunkOUO3DSRTcjs.chartContrastRatio; exports.chartDataFromTable = _chunkOUO3DSRTcjs.chartDataFromTable; exports.chartDataToTable = _chunkOUO3DSRTcjs.chartDataToTable; exports.chartDateLabels = _chunkTUXKLM5Wcjs.chartDateLabels; exports.chartDateToSerial = _chunkTUXKLM5Wcjs.chartDateToSerial; exports.chartErrorAmounts = _chunkOUO3DSRTcjs.chartErrorAmounts; exports.chartErrorBarsOfType = _chunkOUO3DSRTcjs.chartErrorBarsOfType; exports.chartFamily = _chunkOUO3DSRTcjs.chartFamily; exports.chartFileName = chartFileName; exports.chartFormatToCode = _chunkVKHJJUBKcjs.chartFormatToCode; exports.chartFromMermaid = _chunkGXEC4FS6cjs.chartFromMermaid; exports.chartFromOoxml = _chunkVKHJJUBKcjs.chartFromOoxml; exports.chartFromTable = chartFromTable; exports.chartHistogram = _chunkTUXKLM5Wcjs.chartHistogram; exports.chartHitTest = chartHitTest; exports.chartLikertColor = _chunkOUO3DSRTcjs.chartLikertColor; exports.chartLinksFromTable = _chunkOUO3DSRTcjs.chartLinksFromTable; exports.chartLuminance = _chunkOUO3DSRTcjs.chartLuminance; exports.chartMapBreaks = _chunkTUXKLM5Wcjs.chartMapBreaks; exports.chartMapClass = _chunkTUXKLM5Wcjs.chartMapClass; exports.chartMapRamp = _chunkTUXKLM5Wcjs.chartMapRamp; exports.chartMermaidFamily = _chunkGXEC4FS6cjs.chartMermaidFamily; exports.chartMovingAverage = _chunkTUXKLM5Wcjs.chartMovingAverage; exports.chartPointAnchor = chartPointAnchor; exports.chartPointColor = _chunkOUO3DSRTcjs.chartPointColor; exports.chartPointRef = chartPointRef; exports.chartPresetPatch = _chunkGXEC4FS6cjs.chartPresetPatch; exports.chartQuantile = _chunkTUXKLM5Wcjs.chartQuantile; exports.chartRaceMoment = _chunkTUXKLM5Wcjs.chartRaceMoment; exports.chartRaceRanking = _chunkTUXKLM5Wcjs.chartRaceRanking; exports.chartRaceValueAt = _chunkTUXKLM5Wcjs.chartRaceValueAt; exports.chartRasterSize = chartRasterSize; exports.chartRgbToHex = _chunkOUO3DSRTcjs.chartRgbToHex; exports.chartRgbToOklab = _chunkOUO3DSRTcjs.chartRgbToOklab; exports.chartSankeyNodeValues = _chunkOUO3DSRTcjs.chartSankeyNodeValues; exports.chartSankeyNodes = _chunkOUO3DSRTcjs.chartSankeyNodes; exports.chartScaleFromPixel = _chunkTUXKLM5Wcjs.chartScaleFromPixel; exports.chartScaleToPixel = _chunkTUXKLM5Wcjs.chartScaleToPixel; exports.chartSceneToDomSpec = _chunkGXEC4FS6cjs.chartSceneToDomSpec; exports.chartSceneToSvg = _chunkGXEC4FS6cjs.chartSceneToSvg; exports.chartSerialToDate = _chunkTUXKLM5Wcjs.chartSerialToDate; exports.chartSeriesColor = _chunkOUO3DSRTcjs.chartSeriesColor; exports.chartSeriesType = _chunkOUO3DSRTcjs.chartSeriesType; exports.chartSliceColor = _chunkOUO3DSRTcjs.chartSliceColor; exports.chartSpecColorsByCategory = _chunkOUO3DSRTcjs.chartSpecColorsByCategory; exports.chartSquarify = _chunkTUXKLM5Wcjs.chartSquarify; exports.chartStyleDomain = chartStyleDomain; exports.chartStylePatch = chartStylePatch; exports.chartSupportsTrendlines = _chunkTUXKLM5Wcjs.chartSupportsTrendlines; exports.chartTextBaseline = _chunkGXEC4FS6cjs.chartTextBaseline; exports.chartTextOn = _chunkOUO3DSRTcjs.chartTextOn; exports.chartTextTransform = _chunkGXEC4FS6cjs.chartTextTransform; exports.chartToMermaid = _chunkGXEC4FS6cjs.chartToMermaid; exports.chartToOoxml = _chunkVKHJJUBKcjs.chartToOoxml; exports.chartToSvg = _chunkGXEC4FS6cjs.chartToSvg; exports.chartTooltipAt = chartTooltipAt; exports.chartTooltipFor = chartTooltipFor; exports.chartTreeColumnLabels = _chunkOUO3DSRTcjs.chartTreeColumnLabels; exports.chartTreeDepth = _chunkOUO3DSRTcjs.chartTreeDepth; exports.chartTreeFromRows = _chunkOUO3DSRTcjs.chartTreeFromRows; exports.chartTreeFromSeries = _chunkOUO3DSRTcjs.chartTreeFromSeries; exports.chartTreeFromTable = _chunkOUO3DSRTcjs.chartTreeFromTable; exports.chartTreeToRows = _chunkOUO3DSRTcjs.chartTreeToRows; exports.chartTreeTotal = _chunkOUO3DSRTcjs.chartTreeTotal; exports.chartTrendlineName = _chunkTUXKLM5Wcjs.chartTrendlineName; exports.chartValueAtPoint = _chunkTUXKLM5Wcjs.chartValueAtPoint; exports.chartVariesColors = _chunkOUO3DSRTcjs.chartVariesColors; exports.chartXAtPoint = _chunkTUXKLM5Wcjs.chartXAtPoint; exports.checkChartColors = _chunkOUO3DSRTcjs.checkChartColors; exports.cloneChartSeries = _chunkOUO3DSRTcjs.cloneChartSeries; exports.cloneChartSpec = _chunkOUO3DSRTcjs.cloneChartSpec; exports.cloneChartTree = _chunkOUO3DSRTcjs.cloneChartTree; exports.compileChartFormatCode = _chunkTUXKLM5Wcjs.compileChartFormatCode; exports.contrastingTextColor = _chunkTUXKLM5Wcjs.contrastingTextColor; exports.createChartCommands = createChartCommands; exports.createChartController = _chunkGXEC4FS6cjs.createChartController; exports.createChartEditorDocument = createChartEditorDocument; exports.createChartRasterizer = createChartRasterizer; exports.createChartSpec = _chunkOUO3DSRTcjs.createChartSpec; exports.createChartStyleToolProvider = createChartStyleToolProvider; exports.createChartToolProvider = createChartToolProvider; exports.createInstantChartClock = createInstantChartClock; exports.createOfficeChartToolProvider = createOfficeChartToolProvider; exports.cyclePaletteColor = _chunkOUO3DSRTcjs.cyclePaletteColor; exports.decimateChartPoints = _chunkTUXKLM5Wcjs.decimateChartPoints; exports.defaultChartAxis = _chunkOUO3DSRTcjs.defaultChartAxis; exports.defaultChartErrorBarValue = _chunkOUO3DSRTcjs.defaultChartErrorBarValue; exports.describeChart = _chunkGXEC4FS6cjs.describeChart; exports.describeChartErrorBars = _chunkOUO3DSRTcjs.describeChartErrorBars; exports.describeChartSelection = describeChartSelection; exports.describeOfficeChartPlace = describeOfficeChartPlace; exports.downloadChartPng = downloadChartPng; exports.easeChartTween = easeChartTween; exports.estimateChartTextWidth = _chunkTUXKLM5Wcjs.estimateChartTextWidth; exports.extractDocxCharts = extractDocxCharts; exports.extractOfficeCharts = extractOfficeCharts; exports.extractPptxCharts = extractPptxCharts; exports.extractXlsxCharts = extractXlsxCharts; exports.findChartTreeNode = _chunkOUO3DSRTcjs.findChartTreeNode; exports.findMermaidCharts = _chunkGXEC4FS6cjs.findMermaidCharts; exports.fitChartTrendline = _chunkTUXKLM5Wcjs.fitChartTrendline; exports.formatChartAmountList = _chunkOUO3DSRTcjs.formatChartAmountList; exports.formatChartDate = _chunkTUXKLM5Wcjs.formatChartDate; exports.formatChartNumber = _chunkTUXKLM5Wcjs.formatChartNumber; exports.formatChartValueWithCode = _chunkTUXKLM5Wcjs.formatChartValueWithCode; exports.getChartMap = _chunkTUXKLM5Wcjs.getChartMap; exports.handleChartKey = handleChartKey; exports.isCartesianChart = _chunkOUO3DSRTcjs.isCartesianChart; exports.isXyChart = _chunkOUO3DSRTcjs.isXyChart; exports.layoutChart = _chunkTUXKLM5Wcjs.layoutChart; exports.layoutSparkline = _chunkGXEC4FS6cjs.layoutSparkline; exports.linearMap = _chunkTUXKLM5Wcjs.linearMap; exports.listChartMaps = _chunkTUXKLM5Wcjs.listChartMaps; exports.locateChartPoint = locateChartPoint; exports.matchChartMapRegions = _chunkTUXKLM5Wcjs.matchChartMapRegions; exports.monochromeChartPalette = _chunkGXEC4FS6cjs.monochromeChartPalette; exports.niceLogScale = _chunkTUXKLM5Wcjs.niceLogScale; exports.niceScale = _chunkTUXKLM5Wcjs.niceScale; exports.niceStep = _chunkTUXKLM5Wcjs.niceStep; exports.normalizeChartAxis = _chunkOUO3DSRTcjs.normalizeChartAxis; exports.normalizeChartErrorBars = _chunkOUO3DSRTcjs.normalizeChartErrorBars; exports.normalizeChartLinks = _chunkOUO3DSRTcjs.normalizeChartLinks; exports.normalizeChartReferenceBand = _chunkOUO3DSRTcjs.normalizeChartReferenceBand; exports.normalizeChartReferenceLine = _chunkOUO3DSRTcjs.normalizeChartReferenceLine; exports.normalizeChartSpec = _chunkOUO3DSRTcjs.normalizeChartSpec; exports.normalizeChartTree = _chunkOUO3DSRTcjs.normalizeChartTree; exports.normalizeChartTrendline = _chunkOUO3DSRTcjs.normalizeChartTrendline; exports.normalizeChartValues = _chunkOUO3DSRTcjs.normalizeChartValues; exports.parseChartAmountList = _chunkOUO3DSRTcjs.parseChartAmountList; exports.parseChartColor = _chunkOUO3DSRTcjs.parseChartColor; exports.parseChartDate = _chunkTUXKLM5Wcjs.parseChartDate; exports.parseChartValue = _chunkOUO3DSRTcjs.parseChartValue; exports.parsePartialChartJson = parsePartialChartJson; exports.planChartCommand = planChartCommand; exports.planChartToolPlayback = planChartToolPlayback; exports.rasterizeChartSvg = rasterizeChartSvg; exports.realChartClock = realChartClock; exports.recommendChartTypes = recommendChartTypes; exports.recommendForShape = recommendForShape; exports.registerChartMap = _chunkTUXKLM5Wcjs.registerChartMap; exports.removeChartTreeRow = _chunkOUO3DSRTcjs.removeChartTreeRow; exports.resolveChartSvgPaints = resolveChartSvgPaints; exports.sameChartSelection = _chunkTUXKLM5Wcjs.sameChartSelection; exports.sameChartTooltip = sameChartTooltip; exports.setChartLinkField = _chunkOUO3DSRTcjs.setChartLinkField; exports.setChartTreeRowName = _chunkOUO3DSRTcjs.setChartTreeRowName; exports.setChartTreeRowValue = _chunkOUO3DSRTcjs.setChartTreeRowValue; exports.shadeChartColor = _chunkOUO3DSRTcjs.shadeChartColor; exports.simulateChartVision = _chunkOUO3DSRTcjs.simulateChartVision; exports.snapChartDragValue = snapChartDragValue; exports.snapChartValue = _chunkTUXKLM5Wcjs.snapChartValue; exports.sparklineToSvg = _chunkGXEC4FS6cjs.sparklineToSvg; exports.startChartPointDrag = startChartPointDrag; exports.stepDecimals = _chunkTUXKLM5Wcjs.stepDecimals; exports.suggestChartReferences = _chunkTUXKLM5Wcjs.suggestChartReferences; exports.summarizeChart = _chunkGXEC4FS6cjs.summarizeChart; exports.summarizeChartSeries = _chunkTUXKLM5Wcjs.summarizeChartSeries; exports.trendNumberText = _chunkTUXKLM5Wcjs.trendNumberText; exports.uniqueChartSeriesId = _chunkOUO3DSRTcjs.uniqueChartSeriesId; exports.withChartPlayback = withChartPlayback;
3502
+
3503
+ exports.CHART_AXIS_KINDS = _chunkWRZ6C4TUcjs.CHART_AXIS_KINDS; exports.CHART_AXIS_SCALES = _chunkWRZ6C4TUcjs.CHART_AXIS_SCALES; exports.CHART_COLOR_SCHEMES = _chunk5DQPDXOMcjs.CHART_COLOR_SCHEMES; exports.CHART_CURVES = _chunkWRZ6C4TUcjs.CHART_CURVES; exports.CHART_DATE_STEPS = _chunkN76AMOKEcjs.CHART_DATE_STEPS; exports.CHART_ERROR_BAR_DIRECTIONS = _chunkWRZ6C4TUcjs.CHART_ERROR_BAR_DIRECTIONS; exports.CHART_ERROR_BAR_LABELS = _chunkWRZ6C4TUcjs.CHART_ERROR_BAR_LABELS; exports.CHART_ERROR_BAR_TYPES = _chunkWRZ6C4TUcjs.CHART_ERROR_BAR_TYPES; exports.CHART_LABEL_POSITIONS = _chunkWRZ6C4TUcjs.CHART_LABEL_POSITIONS; exports.CHART_LAYOUT_PRESETS = _chunk5DQPDXOMcjs.CHART_LAYOUT_PRESETS; exports.CHART_LEGEND_POSITIONS = _chunkWRZ6C4TUcjs.CHART_LEGEND_POSITIONS; exports.CHART_LIKERT_NEUTRALS = _chunkWRZ6C4TUcjs.CHART_LIKERT_NEUTRALS; exports.CHART_LIKERT_SORTS = _chunkWRZ6C4TUcjs.CHART_LIKERT_SORTS; exports.CHART_MARKERS = _chunkWRZ6C4TUcjs.CHART_MARKERS; exports.CHART_MERMAID_META_PREFIX = _chunk5DQPDXOMcjs.CHART_MERMAID_META_PREFIX; exports.CHART_NUMBER_STYLES = _chunkWRZ6C4TUcjs.CHART_NUMBER_STYLES; exports.CHART_OOXML_CONTENT_TYPE = _chunkHUAISCUXcjs.CHART_OOXML_CONTENT_TYPE; exports.CHART_OOXML_NS = _chunkHUAISCUXcjs.CHART_OOXML_NS; exports.CHART_OOXML_RELATIONSHIP = _chunkHUAISCUXcjs.CHART_OOXML_RELATIONSHIP; exports.CHART_ORIENTATIONS = _chunkWRZ6C4TUcjs.CHART_ORIENTATIONS; exports.CHART_PALETTE_SHADES = _chunkWRZ6C4TUcjs.CHART_PALETTE_SHADES; exports.CHART_PRESENCE_COLORS = CHART_PRESENCE_COLORS; exports.CHART_RADAR_GRATICULES = _chunkWRZ6C4TUcjs.CHART_RADAR_GRATICULES; exports.CHART_RASTER_MAX_SIZE = CHART_RASTER_MAX_SIZE; exports.CHART_REFERENCE_AXES = _chunkWRZ6C4TUcjs.CHART_REFERENCE_AXES; exports.CHART_SANKEY_LINK_COLORS = _chunkWRZ6C4TUcjs.CHART_SANKEY_LINK_COLORS; exports.CHART_SERIES_TYPES = _chunkWRZ6C4TUcjs.CHART_SERIES_TYPES; exports.CHART_STACKINGS = _chunkWRZ6C4TUcjs.CHART_STACKINGS; exports.CHART_TRENDLINE_TYPES = _chunkWRZ6C4TUcjs.CHART_TRENDLINE_TYPES; exports.CHART_TYPES = _chunkWRZ6C4TUcjs.CHART_TYPES; exports.CHART_TYPE_LABELS = _chunkWRZ6C4TUcjs.CHART_TYPE_LABELS; exports.CSS_VARIABLE_CHART_THEME = _chunkWRZ6C4TUcjs.CSS_VARIABLE_CHART_THEME; exports.ChartController = _chunk5DQPDXOMcjs.ChartController; exports.ChartDirector = ChartDirector; exports.ChartPresence = ChartPresence; exports.ChartStream = ChartStream; exports.DEFAULT_CHART_PALETTE = _chunkWRZ6C4TUcjs.DEFAULT_CHART_PALETTE; exports.DEFAULT_CHART_THEME = _chunkWRZ6C4TUcjs.DEFAULT_CHART_THEME; exports.MAX_CHART_DATA_LABELS = _chunkN76AMOKEcjs.MAX_CHART_DATA_LABELS; exports.MAX_CHART_LINE_POINTS = _chunkN76AMOKEcjs.MAX_CHART_LINE_POINTS; exports.MAX_CHART_LINKS = _chunkWRZ6C4TUcjs.MAX_CHART_LINKS; exports.MAX_CHART_MARKERS = _chunkN76AMOKEcjs.MAX_CHART_MARKERS; exports.MAX_CHART_TREE_DEPTH = _chunkWRZ6C4TUcjs.MAX_CHART_TREE_DEPTH; exports.MAX_CHART_TREE_NODES = _chunkWRZ6C4TUcjs.MAX_CHART_TREE_NODES; exports.OfficeChartsError = OfficeChartsError; exports.RENDER_CHART_INSTRUCTIONS = RENDER_CHART_INSTRUCTIONS; exports.addChartLink = _chunkWRZ6C4TUcjs.addChartLink; exports.addChartTreeRow = _chunkWRZ6C4TUcjs.addChartTreeRow; exports.analyzeChartTable = analyzeChartTable; exports.blendChartScenes = blendChartScenes; exports.canDragChartPoint = canDragChartPoint; exports.chartBoxStats = _chunkN76AMOKEcjs.chartBoxStats; exports.chartCategoryAtPoint = _chunkN76AMOKEcjs.chartCategoryAtPoint; exports.chartClientToScene = chartClientToScene; exports.chartColorDistance = _chunkWRZ6C4TUcjs.chartColorDistance; exports.chartColorInputValue = _chunkWRZ6C4TUcjs.chartColorInputValue; exports.chartColorsByCategory = _chunkWRZ6C4TUcjs.chartColorsByCategory; exports.chartContrastRatio = _chunkWRZ6C4TUcjs.chartContrastRatio; exports.chartDataFromTable = _chunkWRZ6C4TUcjs.chartDataFromTable; exports.chartDataToTable = _chunkWRZ6C4TUcjs.chartDataToTable; exports.chartDateLabels = _chunkN76AMOKEcjs.chartDateLabels; exports.chartDateToSerial = _chunkN76AMOKEcjs.chartDateToSerial; exports.chartErrorAmounts = _chunkWRZ6C4TUcjs.chartErrorAmounts; exports.chartErrorBarsOfType = _chunkWRZ6C4TUcjs.chartErrorBarsOfType; exports.chartFamily = _chunkWRZ6C4TUcjs.chartFamily; exports.chartFileName = chartFileName; exports.chartFormatToCode = _chunkHUAISCUXcjs.chartFormatToCode; exports.chartFromMermaid = _chunk5DQPDXOMcjs.chartFromMermaid; exports.chartFromOoxml = _chunkHUAISCUXcjs.chartFromOoxml; exports.chartFromTable = chartFromTable; exports.chartHistogram = _chunkN76AMOKEcjs.chartHistogram; exports.chartHitTest = chartHitTest; exports.chartLikertColor = _chunkWRZ6C4TUcjs.chartLikertColor; exports.chartLinksFromTable = _chunkWRZ6C4TUcjs.chartLinksFromTable; exports.chartLuminance = _chunkWRZ6C4TUcjs.chartLuminance; exports.chartMapBreaks = _chunkN76AMOKEcjs.chartMapBreaks; exports.chartMapClass = _chunkN76AMOKEcjs.chartMapClass; exports.chartMapRamp = _chunkN76AMOKEcjs.chartMapRamp; exports.chartMermaidFamily = _chunk5DQPDXOMcjs.chartMermaidFamily; exports.chartMovingAverage = _chunkN76AMOKEcjs.chartMovingAverage; exports.chartPointAnchor = chartPointAnchor; exports.chartPointColor = _chunkWRZ6C4TUcjs.chartPointColor; exports.chartPointRef = chartPointRef; exports.chartPresetPatch = _chunk5DQPDXOMcjs.chartPresetPatch; exports.chartQuantile = _chunkN76AMOKEcjs.chartQuantile; exports.chartRaceMoment = _chunkN76AMOKEcjs.chartRaceMoment; exports.chartRaceRanking = _chunkN76AMOKEcjs.chartRaceRanking; exports.chartRaceValueAt = _chunkN76AMOKEcjs.chartRaceValueAt; exports.chartRasterSize = chartRasterSize; exports.chartRgbToHex = _chunkWRZ6C4TUcjs.chartRgbToHex; exports.chartRgbToOklab = _chunkWRZ6C4TUcjs.chartRgbToOklab; exports.chartSankeyNodeValues = _chunkWRZ6C4TUcjs.chartSankeyNodeValues; exports.chartSankeyNodes = _chunkWRZ6C4TUcjs.chartSankeyNodes; exports.chartScaleFromPixel = _chunkN76AMOKEcjs.chartScaleFromPixel; exports.chartScaleToPixel = _chunkN76AMOKEcjs.chartScaleToPixel; exports.chartSceneToDomSpec = _chunk5DQPDXOMcjs.chartSceneToDomSpec; exports.chartSceneToSvg = _chunk5DQPDXOMcjs.chartSceneToSvg; exports.chartSerialToDate = _chunkN76AMOKEcjs.chartSerialToDate; exports.chartSeriesColor = _chunkWRZ6C4TUcjs.chartSeriesColor; exports.chartSeriesType = _chunkWRZ6C4TUcjs.chartSeriesType; exports.chartSliceColor = _chunkWRZ6C4TUcjs.chartSliceColor; exports.chartSpecColorsByCategory = _chunkWRZ6C4TUcjs.chartSpecColorsByCategory; exports.chartSquarify = _chunkN76AMOKEcjs.chartSquarify; exports.chartStyleDomain = chartStyleDomain; exports.chartStylePatch = chartStylePatch; exports.chartSupportsTrendlines = _chunkN76AMOKEcjs.chartSupportsTrendlines; exports.chartTextBaseline = _chunk5DQPDXOMcjs.chartTextBaseline; exports.chartTextOn = _chunkWRZ6C4TUcjs.chartTextOn; exports.chartTextTransform = _chunk5DQPDXOMcjs.chartTextTransform; exports.chartToMermaid = _chunk5DQPDXOMcjs.chartToMermaid; exports.chartToOoxml = _chunkHUAISCUXcjs.chartToOoxml; exports.chartToSvg = _chunk5DQPDXOMcjs.chartToSvg; exports.chartTooltipAt = chartTooltipAt; exports.chartTooltipFor = chartTooltipFor; exports.chartTreeColumnLabels = _chunkWRZ6C4TUcjs.chartTreeColumnLabels; exports.chartTreeDepth = _chunkWRZ6C4TUcjs.chartTreeDepth; exports.chartTreeFromRows = _chunkWRZ6C4TUcjs.chartTreeFromRows; exports.chartTreeFromSeries = _chunkWRZ6C4TUcjs.chartTreeFromSeries; exports.chartTreeFromTable = _chunkWRZ6C4TUcjs.chartTreeFromTable; exports.chartTreeToRows = _chunkWRZ6C4TUcjs.chartTreeToRows; exports.chartTreeTotal = _chunkWRZ6C4TUcjs.chartTreeTotal; exports.chartTrendlineName = _chunkN76AMOKEcjs.chartTrendlineName; exports.chartValueAtPoint = _chunkN76AMOKEcjs.chartValueAtPoint; exports.chartVariesColors = _chunkWRZ6C4TUcjs.chartVariesColors; exports.chartXAtPoint = _chunkN76AMOKEcjs.chartXAtPoint; exports.checkChartColors = _chunkWRZ6C4TUcjs.checkChartColors; exports.cloneChartSeries = _chunkWRZ6C4TUcjs.cloneChartSeries; exports.cloneChartSpec = _chunkWRZ6C4TUcjs.cloneChartSpec; exports.cloneChartTree = _chunkWRZ6C4TUcjs.cloneChartTree; exports.compileChartFormatCode = _chunkN76AMOKEcjs.compileChartFormatCode; exports.contrastingTextColor = _chunkN76AMOKEcjs.contrastingTextColor; exports.createChartCommands = createChartCommands; exports.createChartController = _chunk5DQPDXOMcjs.createChartController; exports.createChartEditorDocument = createChartEditorDocument; exports.createChartRasterizer = createChartRasterizer; exports.createChartSpec = _chunkWRZ6C4TUcjs.createChartSpec; exports.createChartStyleToolProvider = createChartStyleToolProvider; exports.createChartToolProvider = createChartToolProvider; exports.createInstantChartClock = createInstantChartClock; exports.createOfficeChartToolProvider = createOfficeChartToolProvider; exports.cyclePaletteColor = _chunkWRZ6C4TUcjs.cyclePaletteColor; exports.decimateChartPoints = _chunkN76AMOKEcjs.decimateChartPoints; exports.defaultChartAxis = _chunkWRZ6C4TUcjs.defaultChartAxis; exports.defaultChartErrorBarValue = _chunkWRZ6C4TUcjs.defaultChartErrorBarValue; exports.describeChart = _chunk5DQPDXOMcjs.describeChart; exports.describeChartErrorBars = _chunkWRZ6C4TUcjs.describeChartErrorBars; exports.describeChartSelection = describeChartSelection; exports.describeOfficeChartPlace = describeOfficeChartPlace; exports.downloadChartPng = downloadChartPng; exports.easeChartTween = easeChartTween; exports.estimateChartTextWidth = _chunkN76AMOKEcjs.estimateChartTextWidth; exports.extractDocxCharts = extractDocxCharts; exports.extractOfficeCharts = extractOfficeCharts; exports.extractPptxCharts = extractPptxCharts; exports.extractXlsxCharts = extractXlsxCharts; exports.findChartTreeNode = _chunkWRZ6C4TUcjs.findChartTreeNode; exports.findMermaidCharts = _chunk5DQPDXOMcjs.findMermaidCharts; exports.fitChartTrendline = _chunkN76AMOKEcjs.fitChartTrendline; exports.formatChartAmountList = _chunkWRZ6C4TUcjs.formatChartAmountList; exports.formatChartDate = _chunkN76AMOKEcjs.formatChartDate; exports.formatChartNumber = _chunkN76AMOKEcjs.formatChartNumber; exports.formatChartValueWithCode = _chunkN76AMOKEcjs.formatChartValueWithCode; exports.getChartMap = _chunkN76AMOKEcjs.getChartMap; exports.handleChartKey = handleChartKey; exports.isCartesianChart = _chunkWRZ6C4TUcjs.isCartesianChart; exports.isXyChart = _chunkWRZ6C4TUcjs.isXyChart; exports.layoutChart = _chunkN76AMOKEcjs.layoutChart; exports.layoutSparkline = _chunk5DQPDXOMcjs.layoutSparkline; exports.layoutStreamgraph = _chunkN76AMOKEcjs.layoutStreamgraph; exports.linearMap = _chunkN76AMOKEcjs.linearMap; exports.listChartMaps = _chunkN76AMOKEcjs.listChartMaps; exports.locateChartPoint = locateChartPoint; exports.matchChartMapRegions = _chunkN76AMOKEcjs.matchChartMapRegions; exports.monochromeChartPalette = _chunk5DQPDXOMcjs.monochromeChartPalette; exports.niceLogScale = _chunkN76AMOKEcjs.niceLogScale; exports.niceScale = _chunkN76AMOKEcjs.niceScale; exports.niceStep = _chunkN76AMOKEcjs.niceStep; exports.normalizeChartAxis = _chunkWRZ6C4TUcjs.normalizeChartAxis; exports.normalizeChartErrorBars = _chunkWRZ6C4TUcjs.normalizeChartErrorBars; exports.normalizeChartLinks = _chunkWRZ6C4TUcjs.normalizeChartLinks; exports.normalizeChartReferenceBand = _chunkWRZ6C4TUcjs.normalizeChartReferenceBand; exports.normalizeChartReferenceLine = _chunkWRZ6C4TUcjs.normalizeChartReferenceLine; exports.normalizeChartSpec = _chunkWRZ6C4TUcjs.normalizeChartSpec; exports.normalizeChartTree = _chunkWRZ6C4TUcjs.normalizeChartTree; exports.normalizeChartTrendline = _chunkWRZ6C4TUcjs.normalizeChartTrendline; exports.normalizeChartValues = _chunkWRZ6C4TUcjs.normalizeChartValues; exports.parseChartAmountList = _chunkWRZ6C4TUcjs.parseChartAmountList; exports.parseChartColor = _chunkWRZ6C4TUcjs.parseChartColor; exports.parseChartDate = _chunkN76AMOKEcjs.parseChartDate; exports.parseChartValue = _chunkWRZ6C4TUcjs.parseChartValue; exports.parsePartialChartJson = parsePartialChartJson; exports.planChartCommand = planChartCommand; exports.planChartToolPlayback = planChartToolPlayback; exports.rasterizeChartSvg = rasterizeChartSvg; exports.realChartClock = realChartClock; exports.recommendChartTypes = recommendChartTypes; exports.recommendForShape = recommendForShape; exports.registerChartMap = _chunkN76AMOKEcjs.registerChartMap; exports.removeChartTreeRow = _chunkWRZ6C4TUcjs.removeChartTreeRow; exports.resolveChartSvgPaints = resolveChartSvgPaints; exports.sameChartSelection = _chunkN76AMOKEcjs.sameChartSelection; exports.sameChartTooltip = sameChartTooltip; exports.setChartLinkField = _chunkWRZ6C4TUcjs.setChartLinkField; exports.setChartTreeRowName = _chunkWRZ6C4TUcjs.setChartTreeRowName; exports.setChartTreeRowValue = _chunkWRZ6C4TUcjs.setChartTreeRowValue; exports.shadeChartColor = _chunkWRZ6C4TUcjs.shadeChartColor; exports.simulateChartVision = _chunkWRZ6C4TUcjs.simulateChartVision; exports.snapChartDragValue = snapChartDragValue; exports.snapChartValue = _chunkN76AMOKEcjs.snapChartValue; exports.sparklineToSvg = _chunk5DQPDXOMcjs.sparklineToSvg; exports.startChartPointDrag = startChartPointDrag; exports.stepDecimals = _chunkN76AMOKEcjs.stepDecimals; exports.suggestChartReferences = _chunkN76AMOKEcjs.suggestChartReferences; exports.summarizeChart = _chunk5DQPDXOMcjs.summarizeChart; exports.summarizeChartSeries = _chunkN76AMOKEcjs.summarizeChartSeries; exports.trendNumberText = _chunkN76AMOKEcjs.trendNumberText; exports.uniqueChartSeriesId = _chunkWRZ6C4TUcjs.uniqueChartSeriesId; exports.withChartPlayback = withChartPlayback;