@pixerate/editor 0.237.0 → 0.239.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 (94) hide show
  1. package/dist/agent/index.cjs +40 -39
  2. package/dist/agent/index.js +9 -8
  3. package/dist/animation/index.cjs +7 -6
  4. package/dist/animation/index.js +6 -5
  5. package/dist/animation-editor/index.cjs +66 -65
  6. package/dist/animation-editor/index.js +9 -8
  7. package/dist/{brushstrokeRender-WDTKD54B.cjs → brushstrokeRender-MPOM7BFW.cjs} +7 -5
  8. package/dist/{brushstrokeRender-MAHOXL7K.js → brushstrokeRender-WB67GMUP.js} +4 -2
  9. package/dist/canvas/index.cjs +55 -54
  10. package/dist/canvas/index.js +10 -9
  11. package/dist/chart/index.cjs +159 -158
  12. package/dist/chart/index.js +9 -8
  13. package/dist/{chunk-L6Y7TSQ4.js → chunk-36ZTV7WO.js} +1 -1
  14. package/dist/{chunk-JVNGCS26.js → chunk-3E36VDMJ.js} +1 -1
  15. package/dist/{chunk-WRZ6C4TU.cjs → chunk-3R5P3DVY.cjs} +6 -6
  16. package/dist/{chunk-RUONPPMC.cjs → chunk-44BMJJVA.cjs} +8 -8
  17. package/dist/{chunk-YBAPT7NL.js → chunk-6ADHGQ73.js} +4 -2
  18. package/dist/chunk-7AHBW2CQ.cjs +200 -0
  19. package/dist/{chunk-EUIDTZNQ.cjs → chunk-7PT4RJL5.cjs} +113 -111
  20. package/dist/{chunk-CU6ANS5L.js → chunk-7YGBSFC6.js} +2 -2
  21. package/dist/{chunk-ATKKG76G.cjs → chunk-AD7GA3TL.cjs} +23 -23
  22. package/dist/{chunk-FSLKBQU7.js → chunk-AIS56JOO.js} +3 -3
  23. package/dist/{chunk-5VQXSS2S.cjs → chunk-BBUE3UJL.cjs} +86 -86
  24. package/dist/{chunk-7272D3K2.js → chunk-BP6KSGVD.js} +6 -4
  25. package/dist/{chunk-F6R67I3A.js → chunk-CXXXAZ7H.js} +1 -1
  26. package/dist/{chunk-5DQPDXOM.cjs → chunk-D2SGV525.cjs} +76 -76
  27. package/dist/chunk-F67XMVDI.js +200 -0
  28. package/dist/{chunk-JVSX5QTS.js → chunk-FQVVO5YA.js} +3 -3
  29. package/dist/{chunk-UXETV2NC.cjs → chunk-GA4EU4P3.cjs} +4 -4
  30. package/dist/{chunk-UFEDHACQ.js → chunk-GXAK6Q5J.js} +2 -2
  31. package/dist/{chunk-MHLU6GRJ.js → chunk-JEGJP4OW.js} +7 -196
  32. package/dist/chunk-KMPM5JM5.js +936 -0
  33. package/dist/{chunk-GOBOCZZI.js → chunk-LEQKZGQI.js} +1 -1
  34. package/dist/{chunk-M5GLQQWG.cjs → chunk-LJZRHVZV.cjs} +2 -2
  35. package/dist/{chunk-N76AMOKE.cjs → chunk-MOW3JMNG.cjs} +42 -42
  36. package/dist/{chunk-WKMUBATU.js → chunk-N4DFDI73.js} +1 -1
  37. package/dist/{chunk-GNZI3KYK.cjs → chunk-NKTNLJUJ.cjs} +49 -9
  38. package/dist/{chunk-TQOL6CF7.js → chunk-PJYG6FCF.js} +49 -9
  39. package/dist/{chunk-V3L7U63N.cjs → chunk-PP6BXVRL.cjs} +1 -1
  40. package/dist/{chunk-TFF2GTGN.cjs → chunk-PPFJHTW5.cjs} +24 -22
  41. package/dist/{chunk-6ZZKRH7R.js → chunk-QARCM66V.js} +3 -3
  42. package/dist/{chunk-5UEFBM2M.cjs → chunk-RD7RX52G.cjs} +18 -207
  43. package/dist/{chunk-CDP2AKMA.js → chunk-RV5DKZHU.js} +1 -1
  44. package/dist/chunk-S6OT6CTS.cjs +936 -0
  45. package/dist/{chunk-HUAISCUX.cjs → chunk-T7KQEMAE.cjs} +18 -18
  46. package/dist/{chunk-BQE3Y6ZO.cjs → chunk-THXFU3JB.cjs} +5 -5
  47. package/dist/{chunk-4ZC5QJE2.cjs → chunk-UTI5IITZ.cjs} +3 -3
  48. package/dist/{chunk-XSVUNSDJ.js → chunk-UUBO6RB5.js} +1 -1
  49. package/dist/{chunk-CZWUDFR3.cjs → chunk-UZU6DIZA.cjs} +52 -52
  50. package/dist/{chunk-M2TPMYJE.js → chunk-V6DT2CDH.js} +1 -1
  51. package/dist/{chunk-WV5WTOC6.cjs → chunk-W7GRGGBH.cjs} +16 -16
  52. package/dist/{chunk-23E5GI2U.js → chunk-WGN7AUKB.js} +2 -2
  53. package/dist/{chunk-YMREOA67.js → chunk-XK4SST43.js} +2 -2
  54. package/dist/{chunk-SOSBOS5T.cjs → chunk-XWOLPNBW.cjs} +22 -22
  55. package/dist/{chunk-ILP77UD6.js → chunk-YGQVCQTG.js} +1 -1
  56. package/dist/{chunk-GXLZZVR5.cjs → chunk-ZXNO3ZOX.cjs} +37 -37
  57. package/dist/color/index.cjs +6 -4
  58. package/dist/color/index.js +9 -7
  59. package/dist/export/index.cjs +8 -7
  60. package/dist/export/index.js +7 -6
  61. package/dist/extensions/index.cjs +11 -10
  62. package/dist/extensions/index.js +10 -9
  63. package/dist/gradient/index.cjs +104 -813
  64. package/dist/gradient/index.d.cts +1 -0
  65. package/dist/gradient/index.d.ts +1 -0
  66. package/dist/gradient/index.js +87 -796
  67. package/dist/gradient/sample.d.cts +69 -0
  68. package/dist/gradient/sample.d.ts +69 -0
  69. package/dist/image-editor/index.cjs +826 -778
  70. package/dist/image-editor/index.js +57 -9
  71. package/dist/index.cjs +17 -16
  72. package/dist/index.js +11 -10
  73. package/dist/paint-editor/controller.d.cts +31 -1
  74. package/dist/paint-editor/controller.d.ts +31 -1
  75. package/dist/paint-editor/index.cjs +403 -195
  76. package/dist/paint-editor/index.js +231 -23
  77. package/dist/paint-editor/sticker-tools.d.cts +1 -1
  78. package/dist/paint-editor/sticker-tools.d.ts +1 -1
  79. package/dist/paint-editor/stickers.d.cts +10 -3
  80. package/dist/paint-editor/stickers.d.ts +10 -3
  81. package/dist/paint-editor/ui.d.cts +10 -3
  82. package/dist/paint-editor/ui.d.ts +10 -3
  83. package/dist/tokens/index.cjs +4 -3
  84. package/dist/tokens/index.js +3 -2
  85. package/dist/typography/index.cjs +8 -7
  86. package/dist/typography/index.js +3 -2
  87. package/dist/vector/index.cjs +967 -966
  88. package/dist/vector/index.js +9 -8
  89. package/dist/video-editor/index.cjs +7 -6
  90. package/dist/video-editor/index.js +6 -5
  91. package/package.json +1 -1
  92. package/skills/pixerate-color/SKILL.md +3 -0
  93. package/skills/pixerate-image-editor/SKILL.md +1 -0
  94. package/skills/pixerate-paint-editor/SKILL.md +6 -2
@@ -17,7 +17,7 @@
17
17
 
18
18
 
19
19
 
20
- var _chunkSOSBOS5Tcjs = require('../chunk-SOSBOS5T.cjs');
20
+ var _chunkXWOLPNBWcjs = require('../chunk-XWOLPNBW.cjs');
21
21
 
22
22
 
23
23
 
@@ -25,7 +25,7 @@ var _chunkSOSBOS5Tcjs = require('../chunk-SOSBOS5T.cjs');
25
25
 
26
26
 
27
27
 
28
- var _chunkHUAISCUXcjs = require('../chunk-HUAISCUX.cjs');
28
+ var _chunkT7KQEMAEcjs = require('../chunk-T7KQEMAE.cjs');
29
29
 
30
30
 
31
31
 
@@ -47,7 +47,7 @@ var _chunkHUAISCUXcjs = require('../chunk-HUAISCUX.cjs');
47
47
 
48
48
 
49
49
 
50
- var _chunk5DQPDXOMcjs = require('../chunk-5DQPDXOM.cjs');
50
+ var _chunkD2SGV525cjs = require('../chunk-D2SGV525.cjs');
51
51
  require('../chunk-TTCJPX4U.cjs');
52
52
 
53
53
 
@@ -100,7 +100,7 @@ require('../chunk-TTCJPX4U.cjs');
100
100
 
101
101
 
102
102
 
103
- var _chunkN76AMOKEcjs = require('../chunk-N76AMOKE.cjs');
103
+ var _chunkMOW3JMNGcjs = require('../chunk-MOW3JMNG.cjs');
104
104
 
105
105
 
106
106
 
@@ -194,7 +194,7 @@ var _chunkN76AMOKEcjs = require('../chunk-N76AMOKE.cjs');
194
194
 
195
195
 
196
196
 
197
- var _chunkWRZ6C4TUcjs = require('../chunk-WRZ6C4TU.cjs');
197
+ var _chunk3R5P3DVYcjs = require('../chunk-3R5P3DVY.cjs');
198
198
  require('../chunk-VU6WQSMB.cjs');
199
199
  require('../chunk-55AKPTLM.cjs');
200
200
 
@@ -216,9 +216,10 @@ var _chunkALNIFK5Gcjs = require('../chunk-ALNIFK5G.cjs');
216
216
  var _chunkSJ2CPTQCcjs = require('../chunk-SJ2CPTQC.cjs');
217
217
  require('../chunk-2BSBFBOA.cjs');
218
218
  require('../chunk-FJ2MSI43.cjs');
219
- require('../chunk-EUIDTZNQ.cjs');
220
- require('../chunk-TFF2GTGN.cjs');
221
- require('../chunk-5UEFBM2M.cjs');
219
+ require('../chunk-7PT4RJL5.cjs');
220
+ require('../chunk-PPFJHTW5.cjs');
221
+ require('../chunk-RD7RX52G.cjs');
222
+ require('../chunk-7AHBW2CQ.cjs');
222
223
  require('../chunk-IPJ3TEYR.cjs');
223
224
 
224
225
  // src/chart/raster.ts
@@ -329,7 +330,7 @@ function chartFileName(spec, extension) {
329
330
  }
330
331
  async function downloadChartPng(spec, options = {}) {
331
332
  const { width = 800, height = 450, filename = chartFileName(spec, "png"), theme, ...raster } = options;
332
- const svg = _chunk5DQPDXOMcjs.chartToSvg.call(void 0, spec, { width, height, theme });
333
+ const svg = _chunkD2SGV525cjs.chartToSvg.call(void 0, spec, { width, height, theme });
333
334
  const { url, width: w, height: h } = await svgToPngDataUrl(svg, { ...raster, width, height });
334
335
  const doc = _nullishCoalesce(raster.document, () => ( globalThis.document));
335
336
  const link = doc.createElement("a");
@@ -344,7 +345,7 @@ async function downloadChartPng(spec, options = {}) {
344
345
 
345
346
  // src/chart/recommend.ts
346
347
  var blank = (c) => c === null || c === void 0 || String(c).trim() === "";
347
- var isText = (c) => blank(c) || _chunkWRZ6C4TUcjs.parseChartValue.call(void 0, c) === void 0;
348
+ var isText = (c) => blank(c) || _chunk3R5P3DVYcjs.parseChartValue.call(void 0, c) === void 0;
348
349
  function analyzeChartTable(rows) {
349
350
  const grid = rows.filter((r) => r.some((c) => !blank(c)));
350
351
  const height = grid.length;
@@ -362,7 +363,7 @@ function analyzeChartTable(rows) {
362
363
  let anyPositive = false;
363
364
  for (let r = headerRow ? 1 : 0; r < height; r++)
364
365
  for (let c = labelColumn ? 1 : 0; c < width; c++) {
365
- const v = _chunkWRZ6C4TUcjs.parseChartValue.call(void 0, cell(r, c));
366
+ const v = _chunk3R5P3DVYcjs.parseChartValue.call(void 0, cell(r, c));
366
367
  if (typeof v !== "number") continue;
367
368
  anyNumber = true;
368
369
  if (v < 0) {
@@ -371,7 +372,7 @@ function analyzeChartTable(rows) {
371
372
  } else if (v > 0) anyPositive = true;
372
373
  }
373
374
  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]);
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;
375
+ const dates = (byRows ? headerRow : labelColumn) && labels.length > 1 && labels.filter((l) => !blank(l) && _chunkMOW3JMNGcjs.parseChartDate.call(void 0, String(l)) !== null).length >= labels.length * 0.8;
375
376
  return {
376
377
  headerRow,
377
378
  labelColumn,
@@ -466,7 +467,7 @@ function chartFromTable(rows, options = {}) {
466
467
  if (xFromFirst) {
467
468
  table = table.map((r) => [r[1], ...r.slice(2)]);
468
469
  }
469
- const data = _chunkWRZ6C4TUcjs.chartDataFromTable.call(void 0, table, { seriesIn: shape.byRows ? "rows" : "columns", header: true, xFromFirstColumn: xFromFirst });
470
+ const data = _chunk3R5P3DVYcjs.chartDataFromTable.call(void 0, table, { seriesIn: shape.byRows ? "rows" : "columns", header: true, xFromFirstColumn: xFromFirst });
470
471
  return { type, stacking, categories: data.categories, series: data.series, issues: data.issues, shape };
471
472
  }
472
473
 
@@ -508,10 +509,10 @@ function createChartCommands(controller, options = {}) {
508
509
  readOnly: true,
509
510
  keywords: ["chart", "data", "spec", "get", "summary"],
510
511
  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.",
511
- params: object({ width: _chunkSOSBOS5Tcjs.WIDTH, height: _chunkSOSBOS5Tcjs.HEIGHT }),
512
+ params: object({ width: _chunkXWOLPNBWcjs.WIDTH, height: _chunkXWOLPNBWcjs.HEIGHT }),
512
513
  run: (_ctx, params = {}) => {
513
514
  const spec = controller.getSpec();
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 };
515
+ return { spec: controller.toJSON(), table: _chunk3R5P3DVYcjs.chartDataToTable.call(void 0, spec), summary: _chunkD2SGV525cjs.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 };
515
516
  }
516
517
  },
517
518
  {
@@ -520,7 +521,7 @@ function createChartCommands(controller, options = {}) {
520
521
  label: "Change Chart\u2026",
521
522
  keywords: ["chart", "title", "axis", "legend", "stack", "style", "format", "type"],
522
523
  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.',
523
- params: object(_chunkSOSBOS5Tcjs.CHART_UPDATE_PROPERTIES),
524
+ params: object(_chunkXWOLPNBWcjs.CHART_UPDATE_PROPERTIES),
524
525
  run: (_ctx, params) => {
525
526
  check(controller.update(params));
526
527
  return { spec: controller.toJSON() };
@@ -534,11 +535,11 @@ function createChartCommands(controller, options = {}) {
534
535
  description: "Replaces the categories and series as one undo step. Each series has one value per category (padded with gaps).",
535
536
  params: object({
536
537
  categories: { type: "array", items: { type: "string" }, description: "Category labels in order." },
537
- series: { type: "array", description: "The new series.", items: object({ id: { type: "string", description: "Stable id (optional)." }, ..._chunkSOSBOS5Tcjs.SERIES_PROPS }, ["name", "values"]) }
538
+ series: { type: "array", description: "The new series.", items: object({ id: { type: "string", description: "Stable id (optional)." }, ..._chunkXWOLPNBWcjs.SERIES_PROPS }, ["name", "values"]) }
538
539
  }),
539
540
  run: (_ctx, params) => {
540
541
  check(controller.setData(params));
541
- return { table: _chunkWRZ6C4TUcjs.chartDataToTable.call(void 0, controller.getSpec()) };
542
+ return { table: _chunk3R5P3DVYcjs.chartDataToTable.call(void 0, controller.getSpec()) };
542
543
  }
543
544
  },
544
545
  {
@@ -547,10 +548,10 @@ function createChartCommands(controller, options = {}) {
547
548
  label: "Set Chart Values\u2026",
548
549
  keywords: ["chart", "value", "cell", "edit"],
549
550
  description: "Sets individual values as one undo step. Series by id or name; category by index or label.",
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"]),
551
+ params: object({ cells: { type: "array", minItems: 1, description: "Values to set.", items: object({ series: _chunkXWOLPNBWcjs.SERIES_REF, category: _chunkXWOLPNBWcjs.CATEGORY_REF, value: _chunkXWOLPNBWcjs.VALUE }, ["series", "category", "value"]) } }, ["cells"]),
551
552
  run: (_ctx, params) => {
552
553
  check(controller.setValues(params.cells.map((c) => ({ seriesId: resolveSeries(c.series).id, index: resolveCategory(c.category), value: c.value }))));
553
- return { table: _chunkWRZ6C4TUcjs.chartDataToTable.call(void 0, controller.getSpec()) };
554
+ return { table: _chunk3R5P3DVYcjs.chartDataToTable.call(void 0, controller.getSpec()) };
554
555
  }
555
556
  },
556
557
  {
@@ -559,7 +560,7 @@ function createChartCommands(controller, options = {}) {
559
560
  label: "Add Series",
560
561
  keywords: ["chart", "series", "new"],
561
562
  description: "Adds a series (default: an empty one at the end). Returns its id.",
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)." } }),
563
+ params: object({ ..._chunkXWOLPNBWcjs.SERIES_PROPS, id: { type: "string", description: "Id to use (default series-N)." }, at: { type: "integer", minimum: 0, description: "Position (default: last)." } }),
563
564
  run: (_ctx, params = {}) => {
564
565
  const { at, ...input } = _nullishCoalesce(params, () => ( {}));
565
566
  const clean = Object.fromEntries(Object.entries(input).filter(([, v]) => v !== null));
@@ -574,7 +575,7 @@ function createChartCommands(controller, options = {}) {
574
575
  label: "Change Series\u2026",
575
576
  keywords: ["chart", "series", "rename", "colour", "color", "hide", "axis", "marker"],
576
577
  description: "Renames, recolours, hides, moves to the secondary axis or changes how a series is drawn, including error bars (null resets a field).",
577
- params: object({ series: _chunkSOSBOS5Tcjs.SERIES_REF, ...Object.fromEntries(Object.entries(_chunkSOSBOS5Tcjs.SERIES_PROPS).filter(([k]) => k !== "values")) }, ["series"]),
578
+ params: object({ series: _chunkXWOLPNBWcjs.SERIES_REF, ...Object.fromEntries(Object.entries(_chunkXWOLPNBWcjs.SERIES_PROPS).filter(([k]) => k !== "values")) }, ["series"]),
578
579
  run: (_ctx, params) => {
579
580
  const { series, ...patch } = params;
580
581
  const id = resolveSeries(series).id;
@@ -588,7 +589,7 @@ function createChartCommands(controller, options = {}) {
588
589
  label: "Delete Series",
589
590
  keywords: ["chart", "series", "remove"],
590
591
  description: "Deletes a series by id or name.",
591
- params: object({ series: _chunkSOSBOS5Tcjs.SERIES_REF }, ["series"]),
592
+ params: object({ series: _chunkXWOLPNBWcjs.SERIES_REF }, ["series"]),
592
593
  run: (_ctx, params) => {
593
594
  check(controller.removeSeries(resolveSeries(params.series).id));
594
595
  return { series: seriesIds() };
@@ -613,7 +614,7 @@ function createChartCommands(controller, options = {}) {
613
614
  label: "Delete Category",
614
615
  keywords: ["chart", "category", "row", "remove"],
615
616
  description: "Deletes a category (and its values) by index or label.",
616
- params: object({ category: _chunkSOSBOS5Tcjs.CATEGORY_REF }, ["category"]),
617
+ params: object({ category: _chunkXWOLPNBWcjs.CATEGORY_REF }, ["category"]),
617
618
  run: (_ctx, params) => {
618
619
  check(controller.removeCategory(resolveCategory(params.category)));
619
620
  return { categories: controller.getSpec().categories };
@@ -625,7 +626,7 @@ function createChartCommands(controller, options = {}) {
625
626
  label: "Add Trendline\u2026",
626
627
  keywords: ["chart", "trend", "regression", "fit", "forecast", "moving average"],
627
628
  description: "Fits a trendline to a series (linear, exponential, logarithmic, power, polynomial or moving average). Returns its index and the fit.",
628
- params: object({ series: _chunkSOSBOS5Tcjs.SERIES_REF, ..._chunkSOSBOS5Tcjs.TRENDLINE_PROPS }, ["series", "type"]),
629
+ params: object({ series: _chunkXWOLPNBWcjs.SERIES_REF, ..._chunkXWOLPNBWcjs.TRENDLINE_PROPS }, ["series", "type"]),
629
630
  run: (_ctx, params) => {
630
631
  const { series, ...line } = params;
631
632
  const result = controller.addTrendline(resolveSeries(series).id, line);
@@ -640,7 +641,7 @@ function createChartCommands(controller, options = {}) {
640
641
  label: "Delete Trendline",
641
642
  keywords: ["chart", "trend", "remove"],
642
643
  description: "Deletes a trendline from a series.",
643
- params: object({ series: _chunkSOSBOS5Tcjs.SERIES_REF, index: { type: "integer", minimum: 0, description: "Trendline index (0 = first)." } }, ["series", "index"]),
644
+ params: object({ series: _chunkXWOLPNBWcjs.SERIES_REF, index: { type: "integer", minimum: 0, description: "Trendline index (0 = first)." } }, ["series", "index"]),
644
645
  run: (_ctx, params) => {
645
646
  check(controller.removeTrendline(resolveSeries(params.series).id, params.index));
646
647
  return { trendlines: _nullishCoalesce(_optionalChain([controller, 'access', _29 => _29.getSeries, 'call', _30 => _30(resolveSeries(params.series).id), 'optionalAccess', _31 => _31.trendlines]), () => ( [])) };
@@ -652,7 +653,7 @@ function createChartCommands(controller, options = {}) {
652
653
  label: "Add Reference Line\u2026",
653
654
  keywords: ["chart", "target", "goal", "threshold", "average", "reference", "line", "annotation"],
654
655
  description: "Draws a dashed line across the plot at one value (a target, floor or average). Returns its index.",
655
- params: object(_chunkSOSBOS5Tcjs.REFERENCE_LINE_PROPS, ["value"]),
656
+ params: object(_chunkXWOLPNBWcjs.REFERENCE_LINE_PROPS, ["value"]),
656
657
  run: (_ctx, params) => {
657
658
  const result = controller.addReferenceLine(params);
658
659
  check(result);
@@ -665,7 +666,7 @@ function createChartCommands(controller, options = {}) {
665
666
  label: "Change Reference Line\u2026",
666
667
  keywords: ["chart", "target", "reference", "line", "annotation"],
667
668
  description: "Changes a reference line by index; label, axis and color take null to remove them.",
668
- params: object({ index: _chunkSOSBOS5Tcjs.REFERENCE_INDEX.call(void 0, "Reference line"), ..._chunkSOSBOS5Tcjs.REFERENCE_LINE_PATCH }, ["index"]),
669
+ params: object({ index: _chunkXWOLPNBWcjs.REFERENCE_INDEX.call(void 0, "Reference line"), ..._chunkXWOLPNBWcjs.REFERENCE_LINE_PATCH }, ["index"]),
669
670
  run: (_ctx, params) => {
670
671
  const { index, ...patch } = params;
671
672
  check(controller.updateReferenceLine(index, patch));
@@ -678,7 +679,7 @@ function createChartCommands(controller, options = {}) {
678
679
  label: "Delete Reference Line",
679
680
  keywords: ["chart", "target", "reference", "line", "remove"],
680
681
  description: "Deletes a reference line by index.",
681
- params: object({ index: _chunkSOSBOS5Tcjs.REFERENCE_INDEX.call(void 0, "Reference line") }, ["index"]),
682
+ params: object({ index: _chunkXWOLPNBWcjs.REFERENCE_INDEX.call(void 0, "Reference line") }, ["index"]),
682
683
  run: (_ctx, params) => {
683
684
  check(controller.removeReferenceLine(params.index));
684
685
  return { referenceLines: controller.getSpec().referenceLines };
@@ -690,7 +691,7 @@ function createChartCommands(controller, options = {}) {
690
691
  label: "Add Reference Band\u2026",
691
692
  keywords: ["chart", "target", "range", "band", "reference", "shade", "annotation"],
692
693
  description: "Shades a band across the plot between two values (a target or normal range). Returns its index.",
693
- params: object(_chunkSOSBOS5Tcjs.REFERENCE_BAND_PROPS, ["from", "to"]),
694
+ params: object(_chunkXWOLPNBWcjs.REFERENCE_BAND_PROPS, ["from", "to"]),
694
695
  run: (_ctx, params) => {
695
696
  const result = controller.addReferenceBand(params);
696
697
  check(result);
@@ -703,7 +704,7 @@ function createChartCommands(controller, options = {}) {
703
704
  label: "Change Reference Band\u2026",
704
705
  keywords: ["chart", "range", "band", "reference", "annotation"],
705
706
  description: "Changes a reference band by index; label, axis and color take null to remove them.",
706
- params: object({ index: _chunkSOSBOS5Tcjs.REFERENCE_INDEX.call(void 0, "Reference band"), ..._chunkSOSBOS5Tcjs.REFERENCE_BAND_PATCH }, ["index"]),
707
+ params: object({ index: _chunkXWOLPNBWcjs.REFERENCE_INDEX.call(void 0, "Reference band"), ..._chunkXWOLPNBWcjs.REFERENCE_BAND_PATCH }, ["index"]),
707
708
  run: (_ctx, params) => {
708
709
  const { index, ...patch } = params;
709
710
  check(controller.updateReferenceBand(index, patch));
@@ -716,7 +717,7 @@ function createChartCommands(controller, options = {}) {
716
717
  label: "Delete Reference Band",
717
718
  keywords: ["chart", "range", "band", "reference", "remove"],
718
719
  description: "Deletes a reference band by index.",
719
- params: object({ index: _chunkSOSBOS5Tcjs.REFERENCE_INDEX.call(void 0, "Reference band") }, ["index"]),
720
+ params: object({ index: _chunkXWOLPNBWcjs.REFERENCE_INDEX.call(void 0, "Reference band") }, ["index"]),
720
721
  run: (_ctx, params) => {
721
722
  check(controller.removeReferenceBand(params.index));
722
723
  return { referenceBands: controller.getSpec().referenceBands };
@@ -728,7 +729,7 @@ function createChartCommands(controller, options = {}) {
728
729
  label: "Pin Label to Point\u2026",
729
730
  keywords: ["chart", "callout", "annotation", "label", "note", "point"],
730
731
  description: 'Pins a short label to one bar or point (label null or "" removes it).',
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"]),
732
+ params: object({ series: _chunkXWOLPNBWcjs.SERIES_REF, category: _chunkXWOLPNBWcjs.CATEGORY_REF, label: { type: ["string", "null"], description: "The label (a few words), or null to remove it." } }, ["series", "category", "label"]),
732
733
  run: (_ctx, params) => {
733
734
  const series = resolveSeries(params.series);
734
735
  const index = resolveCategory(params.category);
@@ -756,10 +757,10 @@ function createChartCommands(controller, options = {}) {
756
757
  label: "Replace Grouped Data\u2026",
757
758
  keywords: ["chart", "tree", "hierarchy", "groups", "treemap", "sunburst", "nested"],
758
759
  description: "Replaces the data with groups of items (a tree) for treemaps and sunbursts; [] goes back to plain data.",
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 },
760
+ params: { type: "object", properties: { tree: { type: "array", items: { $ref: "#/$defs/chartTreeNode" }, description: "The top-level nodes; [] removes the grouping." } }, required: ["tree"], additionalProperties: false, $defs: _chunkXWOLPNBWcjs.TREE_DEFS },
760
761
  run: (_ctx, params) => {
761
762
  check(controller.setTree(params.tree));
762
- return { groups: controller.getSpec().tree.map((n) => ({ name: n.name, total: _chunkWRZ6C4TUcjs.chartTreeTotal.call(void 0, n) })) };
763
+ return { groups: controller.getSpec().tree.map((n) => ({ name: n.name, total: _chunk3R5P3DVYcjs.chartTreeTotal.call(void 0, n) })) };
763
764
  }
764
765
  },
765
766
  {
@@ -795,7 +796,7 @@ function createChartCommands(controller, options = {}) {
795
796
  },
796
797
  required: ["node"],
797
798
  additionalProperties: false,
798
- $defs: _chunkSOSBOS5Tcjs.TREE_DEFS
799
+ $defs: _chunkXWOLPNBWcjs.TREE_DEFS
799
800
  },
800
801
  run: (_ctx, params) => {
801
802
  const result = controller.addTreeNode(_nullishCoalesce(params.parent, () => ( [])), params.node, { at: params.at });
@@ -811,7 +812,7 @@ function createChartCommands(controller, options = {}) {
811
812
  description: "Renames a node, sets an item's value or sets a node's colour (null for the palette).",
812
813
  params: object(
813
814
  {
814
- path: _chunkSOSBOS5Tcjs.TREE_PATH,
815
+ path: _chunkXWOLPNBWcjs.TREE_PATH,
815
816
  name: { type: "string", description: "New name." },
816
817
  value: { type: "number", minimum: 0, description: "Items only: the new amount." },
817
818
  color: { type: ["string", "null"], description: "CSS colour, or null for the palette colour." }
@@ -831,10 +832,10 @@ function createChartCommands(controller, options = {}) {
831
832
  label: "Delete Item or Group",
832
833
  keywords: ["chart", "tree", "group", "item", "remove", "delete"],
833
834
  description: "Deletes a node of the grouped data with everything under it.",
834
- params: object({ path: _chunkSOSBOS5Tcjs.TREE_PATH }, ["path"]),
835
+ params: object({ path: _chunkXWOLPNBWcjs.TREE_PATH }, ["path"]),
835
836
  run: (_ctx, params) => {
836
837
  check(controller.removeTreeNode(params.path));
837
- return { groups: controller.getSpec().tree.map((n) => ({ name: n.name, total: _chunkWRZ6C4TUcjs.chartTreeTotal.call(void 0, n) })) };
838
+ return { groups: controller.getSpec().tree.map((n) => ({ name: n.name, total: _chunk3R5P3DVYcjs.chartTreeTotal.call(void 0, n) })) };
838
839
  }
839
840
  },
840
841
  {
@@ -845,7 +846,7 @@ function createChartCommands(controller, options = {}) {
845
846
  description: "Replaces the data with flows between named nodes for a Sankey diagram; [] goes back to plain data.",
846
847
  params: object(
847
848
  {
848
- links: { type: "array", items: { type: "object", properties: _chunkSOSBOS5Tcjs.LINK_PROPS, required: ["source", "target", "value"], additionalProperties: false }, description: "All the flows; [] removes them." },
849
+ links: { type: "array", items: { type: "object", properties: _chunkXWOLPNBWcjs.LINK_PROPS, required: ["source", "target", "value"], additionalProperties: false }, description: "All the flows; [] removes them." },
849
850
  nodes: { type: "array", items: { type: "string" }, description: "Node names in stacking order." }
850
851
  },
851
852
  ["links"]
@@ -879,7 +880,7 @@ function createChartCommands(controller, options = {}) {
879
880
  label: "Add Flow\u2026",
880
881
  keywords: ["chart", "sankey", "flow", "link", "add"],
881
882
  description: "Adds a flow between two nodes. Returns its index.",
882
- params: object(_chunkSOSBOS5Tcjs.LINK_PROPS, ["source", "target", "value"]),
883
+ params: object(_chunkXWOLPNBWcjs.LINK_PROPS, ["source", "target", "value"]),
883
884
  run: (_ctx, params) => {
884
885
  const result = controller.addLink(params);
885
886
  check(result);
@@ -892,7 +893,7 @@ function createChartCommands(controller, options = {}) {
892
893
  label: "Change Flow\u2026",
893
894
  keywords: ["chart", "sankey", "flow", "link", "value"],
894
895
  description: "Changes a flow by index (color null for the default).",
895
- params: object({ index: _chunkSOSBOS5Tcjs.LINK_INDEX, ..._chunkSOSBOS5Tcjs.LINK_PROPS, color: { type: ["string", "null"], description: "CSS colour, or null for the default." } }, ["index"]),
896
+ params: object({ index: _chunkXWOLPNBWcjs.LINK_INDEX, ..._chunkXWOLPNBWcjs.LINK_PROPS, color: { type: ["string", "null"], description: "CSS colour, or null for the default." } }, ["index"]),
896
897
  run: (_ctx, params) => {
897
898
  const { index, ...patch } = params;
898
899
  check(controller.updateLink(index, patch));
@@ -905,7 +906,7 @@ function createChartCommands(controller, options = {}) {
905
906
  label: "Delete Flow",
906
907
  keywords: ["chart", "sankey", "flow", "link", "remove"],
907
908
  description: "Deletes a flow by index.",
908
- params: object({ index: _chunkSOSBOS5Tcjs.LINK_INDEX }, ["index"]),
909
+ params: object({ index: _chunkXWOLPNBWcjs.LINK_INDEX }, ["index"]),
909
910
  run: (_ctx, params) => {
910
911
  check(controller.removeLink(params.index));
911
912
  return { links: controller.getSpec().links };
@@ -921,9 +922,9 @@ function createChartCommands(controller, options = {}) {
921
922
  params: object({ map: { type: "string", description: "Map id (default: the chart's map)." } }),
922
923
  run: (_ctx, params = {}) => {
923
924
  const id = _nullishCoalesce(_optionalChain([params, 'optionalAccess', _36 => _36.map]), () => ( controller.getSpec().map));
924
- const geometry = _chunkN76AMOKEcjs.getChartMap.call(void 0, id);
925
+ const geometry = _chunkMOW3JMNGcjs.getChartMap.call(void 0, id);
925
926
  if (!geometry) fail(`There is no map "${id}"; register it with registerChartMap.`);
926
- const matches = _chunkN76AMOKEcjs.matchChartMapRegions.call(void 0, geometry, controller.getSpec().categories);
927
+ const matches = _chunkMOW3JMNGcjs.matchChartMapRegions.call(void 0, geometry, controller.getSpec().categories);
927
928
  return { regions: geometry.regions.map((r) => ({ id: r.id, name: r.name })), unmatched: controller.getSpec().categories.filter((_, i) => !matches[i]) };
928
929
  }
929
930
  },
@@ -934,11 +935,11 @@ function createChartCommands(controller, options = {}) {
934
935
  readOnly: true,
935
936
  keywords: ["chart", "race", "ranking", "leader", "time"],
936
937
  description: "Returns the top names of a bar race at a moment (default: the one shown).",
937
- params: object({ time: _chunkSOSBOS5Tcjs.RACE_TIME }),
938
+ params: object({ time: _chunkXWOLPNBWcjs.RACE_TIME }),
938
939
  run: (_ctx, params = {}) => {
939
940
  const spec = controller.getSpec();
940
941
  const frame = _optionalChain([params, 'optionalAccess', _37 => _37.time]) !== void 0 ? raceFrame(params.time) : _nullishCoalesce(controller.getState().raceFrame, () => ( spec.categories.length - 1));
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 })) };
942
+ return { frame, ranking: _chunkMOW3JMNGcjs.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 })) };
942
943
  }
943
944
  },
944
945
  {
@@ -947,7 +948,7 @@ function createChartCommands(controller, options = {}) {
947
948
  label: "Show Bar Race Moment\u2026",
948
949
  keywords: ["chart", "race", "frame", "time", "scrub"],
949
950
  description: "Shows the bar race at a time point (null for the last) and stops playback. View state, not an undo step.",
950
- params: object({ time: { ..._chunkSOSBOS5Tcjs.RACE_TIME, type: ["string", "number", "null"], description: `${_chunkSOSBOS5Tcjs.RACE_TIME.description} null shows the last time point.` } }, ["time"]),
951
+ params: object({ time: { ..._chunkXWOLPNBWcjs.RACE_TIME, type: ["string", "number", "null"], description: `${_chunkXWOLPNBWcjs.RACE_TIME.description} null shows the last time point.` } }, ["time"]),
951
952
  run: (_ctx, params) => {
952
953
  const frame = params.time === null ? null : raceFrame(params.time);
953
954
  check(controller.setRaceFrame(frame));
@@ -985,8 +986,8 @@ function createChartCommands(controller, options = {}) {
985
986
  keywords: ["chart", "quick layout", "style", "colours", "colors", "monochrome", "theme"],
986
987
  description: "Applies a quick layout and / or colour scheme as one undo step.",
987
988
  params: object({
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." }
989
+ layout: { type: "string", enum: _chunkD2SGV525cjs.CHART_LAYOUT_PRESETS.map((p) => p.id), description: "Quick layout id." },
990
+ colors: { type: "string", enum: _chunkD2SGV525cjs.CHART_COLOR_SCHEMES.map((p) => p.id), description: "Colour scheme id." }
990
991
  }),
991
992
  run: (_ctx, params = {}) => {
992
993
  check(controller.applyPreset(_nullishCoalesce(params, () => ( {}))));
@@ -1001,7 +1002,7 @@ function createChartCommands(controller, options = {}) {
1001
1002
  description: "Swaps series and categories as one undo step.",
1002
1003
  run: () => {
1003
1004
  check(controller.transpose());
1004
- return { table: _chunkWRZ6C4TUcjs.chartDataToTable.call(void 0, controller.getSpec()) };
1005
+ return { table: _chunk3R5P3DVYcjs.chartDataToTable.call(void 0, controller.getSpec()) };
1005
1006
  }
1006
1007
  },
1007
1008
  {
@@ -1021,7 +1022,7 @@ function createChartCommands(controller, options = {}) {
1021
1022
  run: (_ctx, params) => {
1022
1023
  const result = controller.importCsv(params.csv, { seriesIn: params.seriesIn, header: params.header });
1023
1024
  check(result);
1024
- return { table: _chunkWRZ6C4TUcjs.chartDataToTable.call(void 0, controller.getSpec()), issues: _nullishCoalesce(result.issues, () => ( [])) };
1025
+ return { table: _chunk3R5P3DVYcjs.chartDataToTable.call(void 0, controller.getSpec()), issues: _nullishCoalesce(result.issues, () => ( [])) };
1025
1026
  }
1026
1027
  },
1027
1028
  {
@@ -1032,7 +1033,7 @@ function createChartCommands(controller, options = {}) {
1032
1033
  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.",
1033
1034
  params: object({ mermaid: { type: "string", description: "Mermaid text." } }, ["mermaid"]),
1034
1035
  run: (_ctx, params) => {
1035
- const read = _chunk5DQPDXOMcjs.chartFromMermaid.call(void 0, params.mermaid);
1036
+ const read = _chunkD2SGV525cjs.chartFromMermaid.call(void 0, params.mermaid);
1036
1037
  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.");
1037
1038
  check(controller.update({ ...read.spec }, { label: "Import Mermaid chart" }));
1038
1039
  return { spec: controller.toJSON(), issues: read.issues };
@@ -1046,7 +1047,7 @@ function createChartCommands(controller, options = {}) {
1046
1047
  keywords: ["chart", "mermaid", "markdown", "export"],
1047
1048
  description: "Returns the chart as Mermaid text (with a round-trip comment unless meta is false).",
1048
1049
  params: object({ meta: { type: "boolean", description: "Include the %% @pixerate round-trip comment (default true)." } }),
1049
- run: (_ctx, params = {}) => ({ mermaid: _chunk5DQPDXOMcjs.chartToMermaid.call(void 0, controller.toJSON(), { meta: _optionalChain([params, 'optionalAccess', _39 => _39.meta]) }) })
1050
+ run: (_ctx, params = {}) => ({ mermaid: _chunkD2SGV525cjs.chartToMermaid.call(void 0, controller.toJSON(), { meta: _optionalChain([params, 'optionalAccess', _39 => _39.meta]) }) })
1050
1051
  },
1051
1052
  {
1052
1053
  ...base,
@@ -1055,7 +1056,7 @@ function createChartCommands(controller, options = {}) {
1055
1056
  readOnly: true,
1056
1057
  keywords: ["chart", "office", "word", "powerpoint", "docx", "pptx", "xml", "export"],
1057
1058
  description: "Returns the chart as a DrawingML chart part (c:chartSpace) and what could not be written.",
1058
- run: () => _chunkHUAISCUXcjs.chartToOoxml.call(void 0, controller.toJSON())
1059
+ run: () => _chunkT7KQEMAEcjs.chartToOoxml.call(void 0, controller.toJSON())
1059
1060
  },
1060
1061
  {
1061
1062
  ...base,
@@ -1064,9 +1065,9 @@ function createChartCommands(controller, options = {}) {
1064
1065
  readOnly: true,
1065
1066
  keywords: ["chart", "svg", "export", "image"],
1066
1067
  description: "Returns the chart drawn as a standalone, accessible SVG string (with <title> and <desc>).",
1067
- params: object({ width: _chunkSOSBOS5Tcjs.WIDTH, height: _chunkSOSBOS5Tcjs.HEIGHT }),
1068
+ params: object({ width: _chunkXWOLPNBWcjs.WIDTH, height: _chunkXWOLPNBWcjs.HEIGHT }),
1068
1069
  run: (_ctx, params = {}) => ({
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)) })
1070
+ svg: _chunkD2SGV525cjs.chartToSvg.call(void 0, controller.toJSON(), { width: _nullishCoalesce(_optionalChain([params, 'optionalAccess', _40 => _40.width]), () => ( 640)), height: _nullishCoalesce(_optionalChain([params, 'optionalAccess', _41 => _41.height]), () => ( 400)) })
1070
1071
  })
1071
1072
  },
1072
1073
  {
@@ -1078,7 +1079,7 @@ function createChartCommands(controller, options = {}) {
1078
1079
  description: "Suggests chart types for the current data (or CSV), best first, each with a reason.",
1079
1080
  params: object({ csv: { type: "string", description: "CSV text to analyse instead of the current data." } }),
1080
1081
  run: (_ctx, params = {}) => ({
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()))
1082
+ recommendations: recommendChartTypes(_optionalChain([params, 'optionalAccess', _42 => _42.csv]) !== void 0 ? _chunkN3KJFGXTcjs.parseCsv.call(void 0, params.csv) : _chunk3R5P3DVYcjs.chartDataToTable.call(void 0, controller.getSpec()))
1082
1083
  })
1083
1084
  },
1084
1085
  {
@@ -1091,8 +1092,8 @@ function createChartCommands(controller, options = {}) {
1091
1092
  run: () => {
1092
1093
  const s = controller.getSpec();
1093
1094
  const visible = s.series.filter((x) => !x.hidden);
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) };
1095
+ const colors = _chunk3R5P3DVYcjs.chartSpecColorsByCategory.call(void 0, s) ? s.categories.map((_, i) => _optionalChain([visible, 'access', _43 => _43[0], 'optionalAccess', _44 => _44.pointColors, 'optionalAccess', _45 => _45[i]]) || _chunk3R5P3DVYcjs.chartSliceColor.call(void 0, s, i)) : visible.map((x) => _chunk3R5P3DVYcjs.chartSeriesColor.call(void 0, s, s.series.indexOf(x)));
1096
+ return { colors, ..._chunk3R5P3DVYcjs.checkChartColors.call(void 0, colors) };
1096
1097
  }
1097
1098
  },
1098
1099
  {
@@ -1123,7 +1124,7 @@ function chartClientToScene(scene, box, clientX, clientY) {
1123
1124
  function canDragChartPoint(controller, scene, target) {
1124
1125
  if (_optionalChain([target, 'optionalAccess', _46 => _46.kind]) !== "point" || !scene.valueScale || scene.percent) return false;
1125
1126
  const spec = controller.getSpec();
1126
- const family = _chunkWRZ6C4TUcjs.chartFamily.call(void 0, spec);
1127
+ const family = _chunk3R5P3DVYcjs.chartFamily.call(void 0, spec);
1127
1128
  if (family !== "cartesian" && family !== "xy" && family !== "waterfall") return false;
1128
1129
  const series = controller.getSeries(target.seriesId);
1129
1130
  return !!series && !series.hidden && series.values[target.index] !== null;
@@ -1132,7 +1133,7 @@ function snapChartDragValue(scene, value, options = {}) {
1132
1133
  const scale = _nullishCoalesce(options.scale, () => ( scene.valueScale));
1133
1134
  const tolerance = _nullishCoalesce(options.tolerancePx, () => ( 6));
1134
1135
  if (scale) {
1135
- const px = (v) => _chunkN76AMOKEcjs.chartScaleToPixel.call(void 0, v, scale);
1136
+ const px = (v) => _chunkMOW3JMNGcjs.chartScaleToPixel.call(void 0, v, scale);
1136
1137
  const at = px(value);
1137
1138
  let best = null;
1138
1139
  let bestDist = tolerance;
@@ -1147,7 +1148,7 @@ function snapChartDragValue(scene, value, options = {}) {
1147
1148
  }
1148
1149
  if (best !== null) return best;
1149
1150
  }
1150
- return _chunkN76AMOKEcjs.snapChartValue.call(void 0, scene, value, options.step, _optionalChain([scale, 'optionalAccess', _47 => _47.ticks]), _optionalChain([scale, 'optionalAccess', _48 => _48.logBase]));
1151
+ return _chunkMOW3JMNGcjs.snapChartValue.call(void 0, scene, value, options.step, _optionalChain([scale, 'optionalAccess', _47 => _47.ticks]), _optionalChain([scale, 'optionalAccess', _48 => _48.logBase]));
1151
1152
  }
1152
1153
  function startChartPointDrag(controller, scene, target, start, options = {}) {
1153
1154
  if (!canDragChartPoint(controller, scene, target)) return null;
@@ -1156,11 +1157,11 @@ function startChartPointDrag(controller, scene, target, start, options = {}) {
1156
1157
  const series = controller.getSeries(seriesId);
1157
1158
  const secondary = series.axis === "secondary" && !!scene.valueScale2;
1158
1159
  const scale = secondary ? scene.valueScale2 : scene.valueScale;
1159
- const xy = _chunkWRZ6C4TUcjs.chartFamily.call(void 0, spec) === "xy" && !!scene.xScale;
1160
+ const xy = _chunk3R5P3DVYcjs.chartFamily.call(void 0, spec) === "xy" && !!scene.xScale;
1160
1161
  const startValue = _nullishCoalesce(series.values[index], () => ( 0));
1161
1162
  const startX = _nullishCoalesce(_optionalChain([series, 'access', _49 => _49.x, 'optionalAccess', _50 => _50[index]]), () => ( null));
1162
- const startAt = _chunkN76AMOKEcjs.chartValueAtPoint.call(void 0, scene, start, secondary);
1163
- const startAtX = xy ? _chunkN76AMOKEcjs.chartXAtPoint.call(void 0, scene, start) : void 0;
1163
+ const startAt = _chunkMOW3JMNGcjs.chartValueAtPoint.call(void 0, scene, start, secondary);
1164
+ const startAtX = xy ? _chunkMOW3JMNGcjs.chartXAtPoint.call(void 0, scene, start) : void 0;
1164
1165
  if (startAt === void 0) return null;
1165
1166
  const candidates = [0, startValue];
1166
1167
  if (!xy) {
@@ -1178,7 +1179,7 @@ function startChartPointDrag(controller, scene, target, start, options = {}) {
1178
1179
  target: { seriesId, index },
1179
1180
  move(point, moveOptions = {}) {
1180
1181
  if (ended) return;
1181
- const at = _chunkN76AMOKEcjs.chartValueAtPoint.call(void 0, scene, point, secondary);
1182
+ const at = _chunkMOW3JMNGcjs.chartValueAtPoint.call(void 0, scene, point, secondary);
1182
1183
  if (at === void 0) return;
1183
1184
  const factor = moveOptions.fine ? 0.1 : 1;
1184
1185
  const moved = (from, to, s, value) => s.logBase && value > 0 && from > 0 && to > 0 ? value * Math.pow(to / from, factor) : value + (to - from) * factor;
@@ -1186,7 +1187,7 @@ function startChartPointDrag(controller, scene, target, start, options = {}) {
1186
1187
  let moveX = false;
1187
1188
  let atX;
1188
1189
  if (xy && startX !== null && startAtX !== void 0) {
1189
- atX = _chunkN76AMOKEcjs.chartXAtPoint.call(void 0, scene, point);
1190
+ atX = _chunkMOW3JMNGcjs.chartXAtPoint.call(void 0, scene, point);
1190
1191
  moveX = atX !== void 0;
1191
1192
  if (moveOptions.lockAxis) {
1192
1193
  if (Math.abs(point.x - start.x) >= Math.abs(point.y - start.y)) moveY = false;
@@ -1198,7 +1199,7 @@ function startChartPointDrag(controller, scene, target, start, options = {}) {
1198
1199
  if (moveOptions.fine) {
1199
1200
  if (s.logBase && !options.step) return v > 0 ? Number(v.toPrecision(3)) : v;
1200
1201
  const unit = options.step ? options.step / 10 : s.ticks.length > 1 ? (s.ticks[1] - s.ticks[0]) / 100 : void 0;
1201
- return _chunkN76AMOKEcjs.snapChartValue.call(void 0, scene, v, unit, s.ticks);
1202
+ return _chunkMOW3JMNGcjs.snapChartValue.call(void 0, scene, v, unit, s.ticks);
1202
1203
  }
1203
1204
  return snapChartDragValue(scene, v, { candidates: c, tolerancePx: options.tolerancePx, step: options.step, scale: s });
1204
1205
  };
@@ -1286,7 +1287,7 @@ function describeChartSelection(controller, selection = controller.getState().se
1286
1287
  case "legend":
1287
1288
  return "Legend";
1288
1289
  case "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";
1290
+ return selection.axis === "x" ? _chunk3R5P3DVYcjs.chartFamily.call(void 0, spec) === "xy" ? "X axis" : "Category axis" : selection.axis === "y" ? "Value axis" : "Secondary value axis";
1290
1291
  case "series":
1291
1292
  return `Series "${_nullishCoalesce(_optionalChain([controller, 'access', _66 => _66.getSeries, 'call', _67 => _67(selection.seriesId), 'optionalAccess', _68 => _68.name]), () => ( selection.seriesId))}"`;
1292
1293
  case "category":
@@ -1300,7 +1301,7 @@ function describeChartSelection(controller, selection = controller.getState().se
1300
1301
  const series = controller.getSeries(selection.seriesId);
1301
1302
  const value = _optionalChain([series, 'optionalAccess', _72 => _72.values, 'access', _73 => _73[selection.index]]);
1302
1303
  const x = _optionalChain([series, 'optionalAccess', _74 => _74.x, 'optionalAccess', _75 => _75[selection.index]]);
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"))})`;
1304
+ if (x !== void 0 && x !== null && _chunk3R5P3DVYcjs.chartFamily.call(void 0, spec) === "xy") return `${_nullishCoalesce(_optionalChain([series, 'optionalAccess', _76 => _76.name]), () => ( selection.seriesId))}: (${x}, ${_nullishCoalesce(value, () => ( "blank"))})`;
1304
1305
  return `${_nullishCoalesce(_optionalChain([series, 'optionalAccess', _77 => _77.name]), () => ( selection.seriesId))} \xB7 ${_nullishCoalesce(spec.categories[selection.index], () => ( selection.index))}: ${_nullishCoalesce(value, () => ( "blank"))}`;
1305
1306
  }
1306
1307
  }
@@ -1347,29 +1348,29 @@ var SLICE_FAMILIES = /* @__PURE__ */ new Set(["pie", "funnel", "parliament"]);
1347
1348
  function valueFormat(spec, series) {
1348
1349
  return _nullishCoalesce(series.format, () => ( (series.axis === "secondary" ? spec.yAxis2.format : spec.yAxis.format)));
1349
1350
  }
1350
- var percentText = (share) => _chunkN76AMOKEcjs.formatChartNumber.call(void 0, share, { style: "percent", decimals: share < 0.1 ? 1 : 0 });
1351
+ var percentText = (share) => _chunkMOW3JMNGcjs.formatChartNumber.call(void 0, share, { style: "percent", decimals: share < 0.1 ? 1 : 0 });
1351
1352
  function item(spec, seriesIndex, index, share) {
1352
- const family = _chunkWRZ6C4TUcjs.chartFamily.call(void 0, spec);
1353
+ const family = _chunk3R5P3DVYcjs.chartFamily.call(void 0, spec);
1353
1354
  const series = spec.series[seriesIndex];
1354
1355
  const value = _nullishCoalesce(series.values[index], () => ( null));
1355
1356
  const slice = SLICE_FAMILIES.has(family);
1356
- let text = _chunkN76AMOKEcjs.formatChartNumber.call(void 0, value, valueFormat(spec, series));
1357
+ let text = _chunkMOW3JMNGcjs.formatChartNumber.call(void 0, value, valueFormat(spec, series));
1357
1358
  if (family === "xy") {
1358
1359
  const x = _optionalChain([series, 'access', _78 => _78.x, 'optionalAccess', _79 => _79[index]]);
1359
- if (x !== null && x !== void 0) text = `${_chunkN76AMOKEcjs.formatChartNumber.call(void 0, x, spec.xAxis.format)}, ${text}`;
1360
+ if (x !== null && x !== void 0) text = `${_chunkMOW3JMNGcjs.formatChartNumber.call(void 0, x, spec.xAxis.format)}, ${text}`;
1360
1361
  }
1361
1362
  if (share !== void 0) text = `${text} (${percentText(share)})`;
1362
1363
  return {
1363
1364
  seriesId: series.id,
1364
1365
  name: slice ? _nullishCoalesce(spec.categories[index], () => ( series.name)) : series.name,
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),
1366
+ color: slice ? _nullishCoalesce(_optionalChain([series, 'access', _80 => _80.pointColors, 'optionalAccess', _81 => _81[index]]), () => ( _chunk3R5P3DVYcjs.chartSliceColor.call(void 0, spec, index))) : _chunk3R5P3DVYcjs.chartPointColor.call(void 0, spec, seriesIndex, index),
1366
1367
  value,
1367
1368
  ...share !== void 0 ? { share } : {},
1368
1369
  text
1369
1370
  };
1370
1371
  }
1371
1372
  function chartTooltipFor(spec, index, seriesId, anchor = { x: 0, y: 0 }) {
1372
- const family = _chunkWRZ6C4TUcjs.chartFamily.call(void 0, spec);
1373
+ const family = _chunk3R5P3DVYcjs.chartFamily.call(void 0, spec);
1373
1374
  if (!VALUE_FAMILIES.has(family)) return null;
1374
1375
  if (!Number.isInteger(index) || index < 0 || index >= Math.max(spec.categories.length, ...spec.series.map((s) => s.values.length))) return null;
1375
1376
  const visible = spec.series.map((s, i) => ({ s, i })).filter(({ s }) => !s.hidden && (!seriesId || s.id === seriesId));
@@ -1393,10 +1394,10 @@ function chartTooltipFor(spec, index, seriesId, anchor = { x: 0, y: 0 }) {
1393
1394
  }
1394
1395
  function chartTooltipAt(spec, scene, point, options = {}) {
1395
1396
  if (options.mode === "category" && scene.categoryScale) {
1396
- const index = _chunkN76AMOKEcjs.chartCategoryAtPoint.call(void 0, scene, point);
1397
+ const index = _chunkMOW3JMNGcjs.chartCategoryAtPoint.call(void 0, scene, point);
1397
1398
  if (index !== void 0) return chartTooltipFor(spec, index, void 0, point);
1398
1399
  }
1399
- const target = chartHitTest(scene, point, _nullishCoalesce(options.measureText, () => ( _chunkN76AMOKEcjs.estimateChartTextWidth)));
1400
+ const target = chartHitTest(scene, point, _nullishCoalesce(options.measureText, () => ( _chunkMOW3JMNGcjs.estimateChartTextWidth)));
1400
1401
  if (_optionalChain([target, 'optionalAccess', _82 => _82.kind]) === "point") return chartTooltipFor(spec, target.index, target.seriesId, point);
1401
1402
  if (_optionalChain([target, 'optionalAccess', _83 => _83.kind]) === "category" && scene.categoryScale && options.mode === "category") return chartTooltipFor(spec, target.index, void 0, point);
1402
1403
  return null;
@@ -1442,7 +1443,7 @@ function planChartCommand(spec, scene, command, speed = 1) {
1442
1443
  const from = _nullishCoalesce(_optionalChain([series, 'optionalAccess', _86 => _86.values, 'access', _87 => _87[command.index]]), () => ( 0));
1443
1444
  const scale = _optionalChain([series, 'optionalAccess', _88 => _88.axis]) === "secondary" ? _nullishCoalesce(scene.valueScale2, () => ( scene.valueScale)) : scene.valueScale;
1444
1445
  if (at && scale) {
1445
- const px = _chunkN76AMOKEcjs.linearMap.call(void 0, command.value, scale.domain, scale.range);
1446
+ const px = _chunkMOW3JMNGcjs.linearMap.call(void 0, command.value, scale.domain, scale.range);
1446
1447
  const to = scale.axis === "y" ? { x: at.x, y: px } : { x: px, y: at.y };
1447
1448
  steps.push({ type: "move", to: at, ms: ms(380) }, { type: "press" }, { type: "drag", to, ms: ms(520), from, value: command.value }, { type: "release" });
1448
1449
  } 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 });
@@ -1702,10 +1703,10 @@ function createChartToolProvider(controller, options = {}) {
1702
1703
  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(", ")}.`);
1703
1704
  return index;
1704
1705
  };
1705
- const table = () => _chunkWRZ6C4TUcjs.chartDataToTable.call(void 0, spec());
1706
+ const table = () => _chunk3R5P3DVYcjs.chartDataToTable.call(void 0, spec());
1706
1707
  const treeTable = () => {
1707
- const rows = _chunkWRZ6C4TUcjs.chartTreeToRows.call(void 0, spec().tree);
1708
- const depth = _chunkWRZ6C4TUcjs.chartTreeDepth.call(void 0, spec().tree);
1708
+ const rows = _chunk3R5P3DVYcjs.chartTreeToRows.call(void 0, spec().tree);
1709
+ const depth = _chunk3R5P3DVYcjs.chartTreeDepth.call(void 0, spec().tree);
1709
1710
  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])];
1710
1711
  };
1711
1712
  const raceFrameOf = (time) => {
@@ -1721,17 +1722,17 @@ function createChartToolProvider(controller, options = {}) {
1721
1722
  return {
1722
1723
  frame: at,
1723
1724
  time: _nullishCoalesce(s.categories[Math.round(at)], () => ( null)),
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 }))
1725
+ ranking: _chunkMOW3JMNGcjs.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 }))
1725
1726
  };
1726
1727
  };
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) });
1728
+ const linksSummary = () => ({ links: spec().links, nodes: spec().sankeyNodes.map((name, i) => ({ name, value: _chunk3R5P3DVYcjs.chartSankeyNodeValues.call(void 0, spec().links, spec().sankeyNodes)[i] })) });
1729
+ const treeSummary = () => ({ tree: spec().tree, groups: spec().tree.map((n) => ({ name: n.name, total: _chunk3R5P3DVYcjs.chartTreeTotal.call(void 0, n) })), depth: _chunk3R5P3DVYcjs.chartTreeDepth.call(void 0, spec().tree) });
1729
1730
  const Parser = () => _nullishCoalesce(options.DOMParser, () => ( globalThis.DOMParser));
1730
1731
  const getChart = {
1731
1732
  name: "get_chart",
1732
1733
  title: "Read the chart",
1733
1734
  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.",
1734
- inputSchema: { type: "object", properties: { width: _chunkSOSBOS5Tcjs.WIDTH, height: _chunkSOSBOS5Tcjs.HEIGHT }, additionalProperties: false },
1735
+ inputSchema: { type: "object", properties: { width: _chunkXWOLPNBWcjs.WIDTH, height: _chunkXWOLPNBWcjs.HEIGHT }, additionalProperties: false },
1735
1736
  annotations: { title: "Read the chart", ...READ },
1736
1737
  handler: ({ width = size.width, height = size.height }) => {
1737
1738
  const reason = readOnlyReason();
@@ -1739,7 +1740,7 @@ function createChartToolProvider(controller, options = {}) {
1739
1740
  spec: controller.toJSON(),
1740
1741
  table: table(),
1741
1742
  selection: controller.getState().selection,
1742
- summary: _chunk5DQPDXOMcjs.summarizeChart.call(void 0, controller.toJSON(), { width, height }),
1743
+ summary: _chunkD2SGV525cjs.summarizeChart.call(void 0, controller.toJSON(), { width, height }),
1743
1744
  ...spec().tree.length ? { treeTable: treeTable() } : {},
1744
1745
  issues: controller.getState().issues,
1745
1746
  ...reason ? { readOnly: reason } : {}
@@ -1753,10 +1754,10 @@ function createChartToolProvider(controller, options = {}) {
1753
1754
  inputSchema: {
1754
1755
  type: "object",
1755
1756
  properties: {
1756
- width: _chunkSOSBOS5Tcjs.WIDTH,
1757
- height: _chunkSOSBOS5Tcjs.HEIGHT,
1757
+ width: _chunkXWOLPNBWcjs.WIDTH,
1758
+ height: _chunkXWOLPNBWcjs.HEIGHT,
1758
1759
  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)." },
1759
- time: { ..._chunkSOSBOS5Tcjs.RACE_TIME, description: `Bar race only: the moment to draw (default: the one shown). ${_chunkSOSBOS5Tcjs.RACE_TIME.description}` }
1760
+ time: { ..._chunkXWOLPNBWcjs.RACE_TIME, description: `Bar race only: the moment to draw (default: the one shown). ${_chunkXWOLPNBWcjs.RACE_TIME.description}` }
1760
1761
  },
1761
1762
  additionalProperties: false
1762
1763
  },
@@ -1764,8 +1765,8 @@ function createChartToolProvider(controller, options = {}) {
1764
1765
  handler: async ({ width = size.width, height = size.height, format = "svg", time }) => {
1765
1766
  const json = controller.toJSON();
1766
1767
  const raceFrame = time !== void 0 ? raceFrameOf(time) : controller.getState().raceFrame;
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) });
1768
+ const scene = _chunkMOW3JMNGcjs.layoutChart.call(void 0, json, { width, height, selection: null, raceFrame });
1769
+ const svg = _chunkD2SGV525cjs.chartSceneToSvg.call(void 0, scene, { ariaLabel: json.title || void 0, description: _chunkD2SGV525cjs.describeChart.call(void 0, json) });
1769
1770
  const warnings = scene.warnings;
1770
1771
  if (format === "png") {
1771
1772
  if (!options.rasterize) fail2('This host cannot rasterize charts; call render_chart with format "svg", or get_chart for the layout warnings.');
@@ -1799,8 +1800,8 @@ function createChartToolProvider(controller, options = {}) {
1799
1800
  handler: ({ colors, surface }) => {
1800
1801
  const s = spec();
1801
1802
  const visible = s.series.filter((x) => !x.hidden);
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 }) };
1803
+ const own = _chunk3R5P3DVYcjs.chartSpecColorsByCategory.call(void 0, s) ? s.categories.map((_, i) => _optionalChain([visible, 'access', _100 => _100[0], 'optionalAccess', _101 => _101.pointColors, 'optionalAccess', _102 => _102[i]]) || _chunk3R5P3DVYcjs.chartSliceColor.call(void 0, s, i)) : visible.map((x) => _chunk3R5P3DVYcjs.chartSeriesColor.call(void 0, s, s.series.indexOf(x)));
1804
+ return { colors: _nullishCoalesce(colors, () => ( own)), ..._chunk3R5P3DVYcjs.checkChartColors.call(void 0, _nullishCoalesce(colors, () => ( own)), { surface }) };
1804
1805
  }
1805
1806
  };
1806
1807
  const recommend = {
@@ -1822,7 +1823,7 @@ function createChartToolProvider(controller, options = {}) {
1822
1823
  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.",
1823
1824
  inputSchema: {
1824
1825
  type: "object",
1825
- properties: { series: _chunkSOSBOS5Tcjs.SERIES_REF, index: { type: "integer", minimum: 0, description: "Trendline index on the series (0 = first)." } },
1826
+ properties: { series: _chunkXWOLPNBWcjs.SERIES_REF, index: { type: "integer", minimum: 0, description: "Trendline index on the series (0 = first)." } },
1826
1827
  required: ["series", "index"],
1827
1828
  additionalProperties: false
1828
1829
  },
@@ -1843,7 +1844,7 @@ function createChartToolProvider(controller, options = {}) {
1843
1844
  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.",
1844
1845
  inputSchema: {
1845
1846
  type: "object",
1846
- properties: { category: _chunkSOSBOS5Tcjs.CATEGORY_REF, series: { ..._chunkSOSBOS5Tcjs.SERIES_REF, description: `${_chunkSOSBOS5Tcjs.SERIES_REF.description} Omit to include every visible series in the category.` } },
1847
+ properties: { category: _chunkXWOLPNBWcjs.CATEGORY_REF, series: { ..._chunkXWOLPNBWcjs.SERIES_REF, description: `${_chunkXWOLPNBWcjs.SERIES_REF.description} Omit to include every visible series in the category.` } },
1847
1848
  required: ["category"],
1848
1849
  additionalProperties: false
1849
1850
  },
@@ -1859,7 +1860,7 @@ function createChartToolProvider(controller, options = {}) {
1859
1860
  name: "get_chart_race_ranking",
1860
1861
  title: "Read a bar race ranking",
1861
1862
  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.",
1862
- inputSchema: { type: "object", properties: { time: _chunkSOSBOS5Tcjs.RACE_TIME }, additionalProperties: false },
1863
+ inputSchema: { type: "object", properties: { time: _chunkXWOLPNBWcjs.RACE_TIME }, additionalProperties: false },
1863
1864
  annotations: { title: "Read a bar race ranking", ...READ },
1864
1865
  handler: ({ time }) => raceAt(time !== void 0 ? raceFrameOf(time) : controller.getState().raceFrame)
1865
1866
  };
@@ -1871,10 +1872,10 @@ function createChartToolProvider(controller, options = {}) {
1871
1872
  annotations: { title: "List map regions", ...READ },
1872
1873
  handler: ({ map }) => {
1873
1874
  const id = _nullishCoalesce(map, () => ( spec().map));
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);
1875
+ const maps = _chunkMOW3JMNGcjs.listChartMaps.call(void 0, ).map((m) => ({ id: m.id, name: m.name, regions: m.regions.length }));
1876
+ const geometry = _chunkMOW3JMNGcjs.getChartMap.call(void 0, id);
1876
1877
  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).`);
1877
- const matches = _chunkN76AMOKEcjs.matchChartMapRegions.call(void 0, geometry, spec().categories);
1878
+ const matches = _chunkMOW3JMNGcjs.matchChartMapRegions.call(void 0, geometry, spec().categories);
1878
1879
  return {
1879
1880
  maps,
1880
1881
  map: id,
@@ -1891,8 +1892,8 @@ function createChartToolProvider(controller, options = {}) {
1891
1892
  inputSchema: { type: "object", properties: {}, additionalProperties: false },
1892
1893
  annotations: { title: "List chart presets", ...READ },
1893
1894
  handler: () => ({
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 }))
1895
+ layouts: _chunkD2SGV525cjs.CHART_LAYOUT_PRESETS.map(({ id, label, description }) => ({ id, label, description })),
1896
+ colorSchemes: _chunkD2SGV525cjs.CHART_COLOR_SCHEMES.map(({ id, label, description, palette }) => ({ id, label, description, palette }))
1896
1897
  })
1897
1898
  };
1898
1899
  const exportMermaid = {
@@ -1901,7 +1902,7 @@ function createChartToolProvider(controller, options = {}) {
1901
1902
  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.',
1902
1903
  inputSchema: { type: "object", properties: { meta: { type: "boolean", description: "Include the round-trip comment (default true)." } }, additionalProperties: false },
1903
1904
  annotations: { title: "Export chart as Mermaid", ...READ },
1904
- handler: ({ meta = true }) => ({ mermaid: _chunk5DQPDXOMcjs.chartToMermaid.call(void 0, controller.toJSON(), { meta }) })
1905
+ handler: ({ meta = true }) => ({ mermaid: _chunkD2SGV525cjs.chartToMermaid.call(void 0, controller.toJSON(), { meta }) })
1905
1906
  };
1906
1907
  const exportOoxml = {
1907
1908
  name: "export_chart_ooxml",
@@ -1909,7 +1910,7 @@ function createChartToolProvider(controller, options = {}) {
1909
1910
  description: "Returns the chart as a DrawingML chart part (c:chartSpace) for Word or PowerPoint files, with what could not be written as sentences.",
1910
1911
  inputSchema: { type: "object", properties: {}, additionalProperties: false },
1911
1912
  annotations: { title: "Export chart as Office XML", ...READ },
1912
- handler: () => _chunkHUAISCUXcjs.chartToOoxml.call(void 0, controller.toJSON())
1913
+ handler: () => _chunkT7KQEMAEcjs.chartToOoxml.call(void 0, controller.toJSON())
1913
1914
  };
1914
1915
  const updateChart = {
1915
1916
  name: "update_chart",
@@ -1917,7 +1918,7 @@ function createChartToolProvider(controller, options = {}) {
1917
1918
  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.',
1918
1919
  inputSchema: {
1919
1920
  type: "object",
1920
- properties: _chunkSOSBOS5Tcjs.CHART_UPDATE_PROPERTIES,
1921
+ properties: _chunkXWOLPNBWcjs.CHART_UPDATE_PROPERTIES,
1921
1922
  additionalProperties: false
1922
1923
  },
1923
1924
  annotations: { title: "Change chart presentation", ...WRITE_IDEMPOTENT },
@@ -1938,7 +1939,7 @@ function createChartToolProvider(controller, options = {}) {
1938
1939
  series: {
1939
1940
  type: "array",
1940
1941
  description: "The new series (replaces all).",
1941
- items: { type: "object", properties: { id: { type: "string", description: "Stable id (optional)." }, ..._chunkSOSBOS5Tcjs.SERIES_PROPS }, required: ["name", "values"], additionalProperties: false }
1942
+ items: { type: "object", properties: { id: { type: "string", description: "Stable id (optional)." }, ..._chunkXWOLPNBWcjs.SERIES_PROPS }, required: ["name", "values"], additionalProperties: false }
1942
1943
  }
1943
1944
  },
1944
1945
  additionalProperties: false
@@ -1961,7 +1962,7 @@ function createChartToolProvider(controller, options = {}) {
1961
1962
  type: "array",
1962
1963
  minItems: 1,
1963
1964
  description: "Values to set.",
1964
- items: { type: "object", properties: { series: _chunkSOSBOS5Tcjs.SERIES_REF, category: _chunkSOSBOS5Tcjs.CATEGORY_REF, value: _chunkSOSBOS5Tcjs.VALUE }, required: ["series", "category", "value"], additionalProperties: false }
1965
+ items: { type: "object", properties: { series: _chunkXWOLPNBWcjs.SERIES_REF, category: _chunkXWOLPNBWcjs.CATEGORY_REF, value: _chunkXWOLPNBWcjs.VALUE }, required: ["series", "category", "value"], additionalProperties: false }
1965
1966
  }
1966
1967
  },
1967
1968
  required: ["cells"],
@@ -1970,7 +1971,7 @@ function createChartToolProvider(controller, options = {}) {
1970
1971
  annotations: { title: "Set chart values", ...WRITE_IDEMPOTENT },
1971
1972
  handler: async ({ cells }) => {
1972
1973
  const resolved = cells.map((c) => ({ seriesId: seriesById(c.series).id, index: categoryIndex(c.category), value: c.value }));
1973
- const parsed = resolved.map((c) => _chunkWRZ6C4TUcjs.parseChartValue.call(void 0, c.value));
1974
+ const parsed = resolved.map((c) => _chunk3R5P3DVYcjs.parseChartValue.call(void 0, c.value));
1974
1975
  const bad = resolved.find((_, i) => parsed[i] === void 0);
1975
1976
  if (bad) fail2(`"${String(bad.value)}" is not a number; pass a number, numeric text or null for a gap. Nothing was changed.`);
1976
1977
  if (options.director && parsed.every((v) => typeof v === "number")) {
@@ -1987,7 +1988,7 @@ function createChartToolProvider(controller, options = {}) {
1987
1988
  description: "Adds a series (values padded to the categories) and selects it. Returns its id and stored values.",
1988
1989
  inputSchema: {
1989
1990
  type: "object",
1990
- properties: { ..._chunkSOSBOS5Tcjs.SERIES_PROPS, id: { type: "string", description: "Id to use (default: series-N)." }, at: { type: "integer", minimum: 0, description: "Position (default: last)." } },
1991
+ properties: { ..._chunkXWOLPNBWcjs.SERIES_PROPS, id: { type: "string", description: "Id to use (default: series-N)." }, at: { type: "integer", minimum: 0, description: "Position (default: last)." } },
1991
1992
  required: ["name"],
1992
1993
  additionalProperties: false
1993
1994
  },
@@ -2005,7 +2006,7 @@ function createChartToolProvider(controller, options = {}) {
2005
2006
  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.",
2006
2007
  inputSchema: {
2007
2008
  type: "object",
2008
- properties: { series: _chunkSOSBOS5Tcjs.SERIES_REF, ...Object.fromEntries(Object.entries(_chunkSOSBOS5Tcjs.SERIES_PROPS).filter(([k]) => k !== "values")) },
2009
+ properties: { series: _chunkXWOLPNBWcjs.SERIES_REF, ...Object.fromEntries(Object.entries(_chunkXWOLPNBWcjs.SERIES_PROPS).filter(([k]) => k !== "values")) },
2009
2010
  required: ["series"],
2010
2011
  additionalProperties: false
2011
2012
  },
@@ -2021,7 +2022,7 @@ function createChartToolProvider(controller, options = {}) {
2021
2022
  name: "remove_chart_series",
2022
2023
  title: "Delete a series",
2023
2024
  description: "Deletes a series and its values. Returns the remaining series ids.",
2024
- inputSchema: { type: "object", properties: { series: _chunkSOSBOS5Tcjs.SERIES_REF }, required: ["series"], additionalProperties: false },
2025
+ inputSchema: { type: "object", properties: { series: _chunkXWOLPNBWcjs.SERIES_REF }, required: ["series"], additionalProperties: false },
2025
2026
  annotations: { title: "Delete a series", ...DESTRUCTIVE },
2026
2027
  handler: ({ series }) => {
2027
2028
  resolve(controller.removeSeries(seriesById(series).id));
@@ -2047,7 +2048,7 @@ function createChartToolProvider(controller, options = {}) {
2047
2048
  name: "remove_chart_category",
2048
2049
  title: "Delete a category",
2049
2050
  description: "Deletes a category and its value in every series. Returns the remaining categories.",
2050
- inputSchema: { type: "object", properties: { category: _chunkSOSBOS5Tcjs.CATEGORY_REF }, required: ["category"], additionalProperties: false },
2051
+ inputSchema: { type: "object", properties: { category: _chunkXWOLPNBWcjs.CATEGORY_REF }, required: ["category"], additionalProperties: false },
2051
2052
  annotations: { title: "Delete a category", ...DESTRUCTIVE },
2052
2053
  handler: ({ category }) => {
2053
2054
  resolve(controller.removeCategory(categoryIndex(category)));
@@ -2090,7 +2091,7 @@ function createChartToolProvider(controller, options = {}) {
2090
2091
  annotations: { title: "Import a Mermaid chart", ...DESTRUCTIVE },
2091
2092
  handler: ({ mermaid }) => {
2092
2093
  const fenced = /```(?:mermaid)?\s*\n([\s\S]*?)```/.exec(mermaid);
2093
- const read = _chunk5DQPDXOMcjs.chartFromMermaid.call(void 0, fenced ? fenced[1] : mermaid);
2094
+ const read = _chunkD2SGV525cjs.chartFromMermaid.call(void 0, fenced ? fenced[1] : mermaid);
2094
2095
  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.");
2095
2096
  resolve(controller.update({ ...read.spec }, { label: "Import Mermaid chart" }));
2096
2097
  return { spec: controller.toJSON(), issues: read.issues };
@@ -2103,7 +2104,7 @@ function createChartToolProvider(controller, options = {}) {
2103
2104
  inputSchema: { type: "object", properties: { xml: { type: "string", description: "The chart part XML, e.g. word/charts/chart1.xml." } }, required: ["xml"], additionalProperties: false },
2104
2105
  annotations: { title: "Import an Office chart", ...DESTRUCTIVE },
2105
2106
  handler: ({ xml }) => {
2106
- const read = _chunkHUAISCUXcjs.chartFromOoxml.call(void 0, xml, { DOMParser: Parser() });
2107
+ const read = _chunkT7KQEMAEcjs.chartFromOoxml.call(void 0, xml, { DOMParser: Parser() });
2107
2108
  if (read.issues.some((i) => i.path === "" || i.path === "plotArea")) fail2(read.issues.map((i) => i.message).join(" "));
2108
2109
  resolve(controller.update({ ...read.spec }, { label: "Import Office chart" }));
2109
2110
  return { spec: controller.toJSON(), issues: read.issues.map((i) => i.message), unsupported: read.unsupported, lossless: read.lossless };
@@ -2113,7 +2114,7 @@ function createChartToolProvider(controller, options = {}) {
2113
2114
  name: "add_chart_trendline",
2114
2115
  title: "Add a trendline",
2115
2116
  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.",
2116
- inputSchema: { type: "object", properties: { series: _chunkSOSBOS5Tcjs.SERIES_REF, ..._chunkSOSBOS5Tcjs.TRENDLINE_PROPS }, required: ["series", "type"], additionalProperties: false },
2117
+ inputSchema: { type: "object", properties: { series: _chunkXWOLPNBWcjs.SERIES_REF, ..._chunkXWOLPNBWcjs.TRENDLINE_PROPS }, required: ["series", "type"], additionalProperties: false },
2117
2118
  annotations: { title: "Add a trendline", ...WRITE },
2118
2119
  handler: ({ series, ...line }) => {
2119
2120
  const s = seriesById(series);
@@ -2127,7 +2128,7 @@ function createChartToolProvider(controller, options = {}) {
2127
2128
  description: "Deletes a trendline from a series. Returns the series' remaining trendlines.",
2128
2129
  inputSchema: {
2129
2130
  type: "object",
2130
- properties: { series: _chunkSOSBOS5Tcjs.SERIES_REF, index: { type: "integer", minimum: 0, description: "Trendline index on the series (0 = first)." } },
2131
+ properties: { series: _chunkXWOLPNBWcjs.SERIES_REF, index: { type: "integer", minimum: 0, description: "Trendline index on the series (0 = first)." } },
2131
2132
  required: ["series", "index"],
2132
2133
  additionalProperties: false
2133
2134
  },
@@ -2146,7 +2147,7 @@ function createChartToolProvider(controller, options = {}) {
2146
2147
  name: `add_chart_reference_${what}`,
2147
2148
  title: `Add a reference ${what}`,
2148
2149
  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.",
2149
- inputSchema: { type: "object", properties: what === "line" ? _chunkSOSBOS5Tcjs.REFERENCE_LINE_PROPS : _chunkSOSBOS5Tcjs.REFERENCE_BAND_PROPS, required: what === "line" ? ["value"] : ["from", "to"], additionalProperties: false },
2150
+ inputSchema: { type: "object", properties: what === "line" ? _chunkXWOLPNBWcjs.REFERENCE_LINE_PROPS : _chunkXWOLPNBWcjs.REFERENCE_BAND_PROPS, required: what === "line" ? ["value"] : ["from", "to"], additionalProperties: false },
2150
2151
  annotations: { title: `Add a reference ${what}`, ...WRITE },
2151
2152
  handler: (args) => {
2152
2153
  const result = resolve(what === "line" ? controller.addReferenceLine(args) : controller.addReferenceBand(args));
@@ -2157,7 +2158,7 @@ function createChartToolProvider(controller, options = {}) {
2157
2158
  name: `update_chart_reference_${what}`,
2158
2159
  title: `Change a reference ${what}`,
2159
2160
  description: `Changes a reference ${what} by index (all-or-nothing); label, axis and color take null to remove them. Returns the ${what} as stored.`,
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 },
2161
+ inputSchema: { type: "object", properties: { index: _chunkXWOLPNBWcjs.REFERENCE_INDEX.call(void 0, Kind), ...what === "line" ? _chunkXWOLPNBWcjs.REFERENCE_LINE_PATCH : _chunkXWOLPNBWcjs.REFERENCE_BAND_PATCH }, required: ["index"], additionalProperties: false },
2161
2162
  annotations: { title: `Change a reference ${what}`, ...WRITE_IDEMPOTENT },
2162
2163
  handler: ({ index, ...patch }) => {
2163
2164
  if (!Object.keys(patch).length) fail2(`Nothing to change: pass at least one field besides index, e.g. {"index": ${index}, "label": "Target"}.`);
@@ -2169,7 +2170,7 @@ function createChartToolProvider(controller, options = {}) {
2169
2170
  name: `remove_chart_reference_${what}`,
2170
2171
  title: `Delete a reference ${what}`,
2171
2172
  description: `Deletes a reference ${what} by index; the ones after it move up one. Returns the reference ${what}s left.`,
2172
- inputSchema: { type: "object", properties: { index: _chunkSOSBOS5Tcjs.REFERENCE_INDEX.call(void 0, Kind) }, required: ["index"], additionalProperties: false },
2173
+ inputSchema: { type: "object", properties: { index: _chunkXWOLPNBWcjs.REFERENCE_INDEX.call(void 0, Kind) }, required: ["index"], additionalProperties: false },
2173
2174
  annotations: { title: `Delete a reference ${what}`, ...DESTRUCTIVE },
2174
2175
  handler: ({ index }) => {
2175
2176
  resolve(what === "line" ? controller.removeReferenceLine(index) : controller.removeReferenceBand(index));
@@ -2186,7 +2187,7 @@ function createChartToolProvider(controller, options = {}) {
2186
2187
  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.',
2187
2188
  inputSchema: {
2188
2189
  type: "object",
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." } },
2190
+ properties: { series: _chunkXWOLPNBWcjs.SERIES_REF, category: _chunkXWOLPNBWcjs.CATEGORY_REF, label: { type: ["string", "null"], description: "The label (keep it to a few words), or null to remove it." } },
2190
2191
  required: ["series", "category", "label"],
2191
2192
  additionalProperties: false
2192
2193
  },
@@ -2219,7 +2220,7 @@ function createChartToolProvider(controller, options = {}) {
2219
2220
  name: "set_chart_tree",
2220
2221
  title: "Replace grouped data",
2221
2222
  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.`,
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 },
2223
+ inputSchema: { type: "object", properties: { tree: { type: "array", items: { $ref: "#/$defs/chartTreeNode" }, description: "The top-level nodes; [] removes the grouping." } }, required: ["tree"], additionalProperties: false, $defs: _chunkXWOLPNBWcjs.TREE_DEFS },
2223
2224
  annotations: { title: "Replace grouped data", ...WRITE_IDEMPOTENT },
2224
2225
  handler: ({ tree }) => {
2225
2226
  resolve(controller.setTree(tree));
@@ -2258,13 +2259,13 @@ function createChartToolProvider(controller, options = {}) {
2258
2259
  },
2259
2260
  required: ["node"],
2260
2261
  additionalProperties: false,
2261
- $defs: _chunkSOSBOS5Tcjs.TREE_DEFS
2262
+ $defs: _chunkXWOLPNBWcjs.TREE_DEFS
2262
2263
  },
2263
2264
  annotations: { title: "Add an item or group", ...WRITE },
2264
2265
  handler: ({ parent = [], node, at }) => {
2265
2266
  const result = resolve(controller.addTreeNode(parent, node, { at }));
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) };
2267
+ const group = parent.length ? _chunk3R5P3DVYcjs.findChartTreeNode.call(void 0, spec().tree, parent) : null;
2268
+ return { path: result.path, parentTotal: group ? _chunk3R5P3DVYcjs.chartTreeTotal.call(void 0, group) : spec().tree.reduce((t, n) => t + _chunk3R5P3DVYcjs.chartTreeTotal.call(void 0, n), 0) };
2268
2269
  }
2269
2270
  };
2270
2271
  const updateTreeNode = {
@@ -2274,7 +2275,7 @@ function createChartToolProvider(controller, options = {}) {
2274
2275
  inputSchema: {
2275
2276
  type: "object",
2276
2277
  properties: {
2277
- path: _chunkSOSBOS5Tcjs.TREE_PATH,
2278
+ path: _chunkXWOLPNBWcjs.TREE_PATH,
2278
2279
  name: { type: "string", description: "New name (unique among its siblings)." },
2279
2280
  value: { type: "number", minimum: 0, description: "Items only: the new amount." },
2280
2281
  color: { type: ["string", "null"], description: "CSS colour, or null for the palette colour." }
@@ -2286,14 +2287,14 @@ function createChartToolProvider(controller, options = {}) {
2286
2287
  handler: ({ path, ...patch }) => {
2287
2288
  if (!Object.keys(patch).length) fail2("Nothing to change: pass name, value or color with the path.");
2288
2289
  const result = resolve(controller.updateTreeNode(path, patch));
2289
- return { path: result.path, node: _chunkWRZ6C4TUcjs.findChartTreeNode.call(void 0, spec().tree, result.path) };
2290
+ return { path: result.path, node: _chunk3R5P3DVYcjs.findChartTreeNode.call(void 0, spec().tree, result.path) };
2290
2291
  }
2291
2292
  };
2292
2293
  const removeTreeNode = {
2293
2294
  name: "remove_chart_tree_node",
2294
2295
  title: "Delete an item or group",
2295
2296
  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.",
2296
- inputSchema: { type: "object", properties: { path: _chunkSOSBOS5Tcjs.TREE_PATH }, required: ["path"], additionalProperties: false },
2297
+ inputSchema: { type: "object", properties: { path: _chunkXWOLPNBWcjs.TREE_PATH }, required: ["path"], additionalProperties: false },
2297
2298
  annotations: { title: "Delete an item or group", ...DESTRUCTIVE },
2298
2299
  handler: ({ path }) => {
2299
2300
  resolve(controller.removeTreeNode(path));
@@ -2307,7 +2308,7 @@ function createChartToolProvider(controller, options = {}) {
2307
2308
  inputSchema: {
2308
2309
  type: "object",
2309
2310
  properties: {
2310
- links: { type: "array", items: { type: "object", properties: _chunkSOSBOS5Tcjs.LINK_PROPS, required: ["source", "target", "value"], additionalProperties: false }, description: "All the flows; [] removes them." },
2311
+ links: { type: "array", items: { type: "object", properties: _chunkXWOLPNBWcjs.LINK_PROPS, required: ["source", "target", "value"], additionalProperties: false }, description: "All the flows; [] removes them." },
2311
2312
  nodes: { type: "array", items: { type: "string" }, description: "Node names in stacking order (default: as the flows first name them)." }
2312
2313
  },
2313
2314
  required: ["links"],
@@ -2342,7 +2343,7 @@ function createChartToolProvider(controller, options = {}) {
2342
2343
  name: "add_chart_link",
2343
2344
  title: "Add a flow",
2344
2345
  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.",
2345
- inputSchema: { type: "object", properties: _chunkSOSBOS5Tcjs.LINK_PROPS, required: ["source", "target", "value"], additionalProperties: false },
2346
+ inputSchema: { type: "object", properties: _chunkXWOLPNBWcjs.LINK_PROPS, required: ["source", "target", "value"], additionalProperties: false },
2346
2347
  annotations: { title: "Add a flow", ...WRITE },
2347
2348
  handler: (args) => {
2348
2349
  const result = resolve(controller.addLink(args));
@@ -2356,7 +2357,7 @@ function createChartToolProvider(controller, options = {}) {
2356
2357
  name: "update_chart_link",
2357
2358
  title: "Change a flow",
2358
2359
  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.",
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 },
2360
+ inputSchema: { type: "object", properties: { index: _chunkXWOLPNBWcjs.LINK_INDEX, ..._chunkXWOLPNBWcjs.LINK_PROPS, color: { type: ["string", "null"], description: "CSS colour, or null for the default." } }, required: ["index"], additionalProperties: false },
2360
2361
  annotations: { title: "Change a flow", ...WRITE_IDEMPOTENT },
2361
2362
  handler: ({ index, ...patch }) => {
2362
2363
  if (!Object.keys(patch).length) fail2(`Nothing to change: pass source, target, value or color with the index, e.g. {"index": ${index}, "value": 40}.`);
@@ -2368,7 +2369,7 @@ function createChartToolProvider(controller, options = {}) {
2368
2369
  name: "remove_chart_link",
2369
2370
  title: "Delete a flow",
2370
2371
  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.",
2371
- inputSchema: { type: "object", properties: { index: _chunkSOSBOS5Tcjs.LINK_INDEX }, required: ["index"], additionalProperties: false },
2372
+ inputSchema: { type: "object", properties: { index: _chunkXWOLPNBWcjs.LINK_INDEX }, required: ["index"], additionalProperties: false },
2372
2373
  annotations: { title: "Delete a flow", ...DESTRUCTIVE },
2373
2374
  handler: ({ index }) => {
2374
2375
  resolve(controller.removeLink(index));
@@ -2379,7 +2380,7 @@ function createChartToolProvider(controller, options = {}) {
2379
2380
  name: "set_chart_race_frame",
2380
2381
  title: "Show a bar race moment",
2381
2382
  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.",
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 },
2383
+ inputSchema: { type: "object", properties: { time: { ..._chunkXWOLPNBWcjs.RACE_TIME, type: ["string", "number", "null"], description: `${_chunkXWOLPNBWcjs.RACE_TIME.description} null shows the last time point.` } }, required: ["time"], additionalProperties: false },
2383
2384
  annotations: { title: "Show a bar race moment", ...WRITE_IDEMPOTENT },
2384
2385
  handler: ({ time }) => {
2385
2386
  const frame = time === null ? null : raceFrameOf(time);
@@ -2406,8 +2407,8 @@ function createChartToolProvider(controller, options = {}) {
2406
2407
  inputSchema: {
2407
2408
  type: "object",
2408
2409
  properties: {
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." }
2410
+ layout: { type: "string", enum: _chunkD2SGV525cjs.CHART_LAYOUT_PRESETS.map((p) => p.id), description: "Quick layout id." },
2411
+ colors: { type: "string", enum: _chunkD2SGV525cjs.CHART_COLOR_SCHEMES.map((p) => p.id), description: "Colour scheme id." }
2411
2412
  },
2412
2413
  additionalProperties: false
2413
2414
  },
@@ -2436,8 +2437,8 @@ function createChartToolProvider(controller, options = {}) {
2436
2437
  type: "object",
2437
2438
  properties: {
2438
2439
  kind: { type: "string", enum: ["none", "chart", "title", "subtitle", "legend", "axis", "series", "point", "category", "trendline"], description: "What to select." },
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)." },
2440
+ series: { ..._chunkXWOLPNBWcjs.SERIES_REF, description: "Series id or name (series, point, trendline)." },
2441
+ category: { ..._chunkXWOLPNBWcjs.CATEGORY_REF, description: "Category index or label (point, category)." },
2441
2442
  axis: { type: "string", enum: ["x", "y", "y2"], description: "Axis (axis)." },
2442
2443
  index: { type: "integer", minimum: 0, description: "Trendline index (trendline)." }
2443
2444
  },
@@ -2495,15 +2496,15 @@ function createChartToolProvider(controller, options = {}) {
2495
2496
  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 },
2496
2497
  fine: { type: "boolean", description: "Move a tenth as far (Alt)." },
2497
2498
  lockAxis: { type: "boolean", description: "Scatter charts: change only the axis moved along most (Shift)." },
2498
- width: _chunkSOSBOS5Tcjs.WIDTH,
2499
- height: _chunkSOSBOS5Tcjs.HEIGHT
2499
+ width: _chunkXWOLPNBWcjs.WIDTH,
2500
+ height: _chunkXWOLPNBWcjs.HEIGHT
2500
2501
  },
2501
2502
  required: ["from", "to"],
2502
2503
  additionalProperties: false
2503
2504
  },
2504
2505
  annotations: { title: "Drag a chart point", ...WRITE },
2505
2506
  handler: ({ from, to, fine, lockAxis, width = size.width, height = size.height }) => {
2506
- const scene = _chunkN76AMOKEcjs.layoutChart.call(void 0, controller.toJSON(), { width, height });
2507
+ const scene = _chunkMOW3JMNGcjs.layoutChart.call(void 0, controller.toJSON(), { width, height });
2507
2508
  const start = { x: from.x * width, y: from.y * height };
2508
2509
  const target = chartHitTest(scene, start);
2509
2510
  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.`);
@@ -2533,7 +2534,7 @@ function createChartToolProvider(controller, options = {}) {
2533
2534
  },
2534
2535
  annotations: { title: "Press a key on the chart", ...DESTRUCTIVE },
2535
2536
  handler: ({ key: k, shift, alt }) => {
2536
- const scene = _chunkN76AMOKEcjs.layoutChart.call(void 0, controller.toJSON(), size);
2537
+ const scene = _chunkMOW3JMNGcjs.layoutChart.call(void 0, controller.toJSON(), size);
2537
2538
  const used = handleChartKey(controller, scene, { key: k, shiftKey: shift, altKey: alt });
2538
2539
  const sel = controller.getState().selection;
2539
2540
  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;
@@ -2684,12 +2685,12 @@ var ChartStream = (_class = class {
2684
2685
  if (format === "json") {
2685
2686
  const value = complete ? safeParse(text) : parsePartialChartJson(text);
2686
2687
  if (value !== void 0) {
2687
- const read = _chunkWRZ6C4TUcjs.normalizeChartSpec.call(void 0, value);
2688
+ const read = _chunk3R5P3DVYcjs.normalizeChartSpec.call(void 0, value);
2688
2689
  spec = read.spec;
2689
2690
  issues = complete ? read.issues : [];
2690
2691
  }
2691
2692
  } else {
2692
- const read = _chunk5DQPDXOMcjs.chartFromMermaid.call(void 0, text, { partial: !complete });
2693
+ const read = _chunkD2SGV525cjs.chartFromMermaid.call(void 0, text, { partial: !complete });
2693
2694
  if (read.family) {
2694
2695
  spec = read.spec;
2695
2696
  issues = complete ? read.issues : [];
@@ -2810,7 +2811,7 @@ async function readRels(r, partPath) {
2810
2811
  }
2811
2812
  return rels;
2812
2813
  }
2813
- var isChartRef = (el) => el.localName === "chart" && (el.namespaceURI === _chunkHUAISCUXcjs.CHART_OOXML_NS || el.namespaceURI === STRICT_CHART_NS || el.namespaceURI === CHARTEX_NS);
2814
+ var isChartRef = (el) => el.localName === "chart" && (el.namespaceURI === _chunkT7KQEMAEcjs.CHART_OOXML_NS || el.namespaceURI === STRICT_CHART_NS || el.namespaceURI === CHARTEX_NS);
2814
2815
  function frameName(ref) {
2815
2816
  for (let el = ref.parentElement; el; el = el.parentElement) {
2816
2817
  if (el.localName === "graphicFrame") {
@@ -2829,7 +2830,7 @@ async function chartsInPart(r, root, rels, place) {
2829
2830
  const entry = r.zip.get(rel.target);
2830
2831
  if (!entry) continue;
2831
2832
  r.seen.add(rel.target);
2832
- const read = _chunkHUAISCUXcjs.chartFromOoxml.call(void 0, await r.zip.readText(entry), { DOMParser: r.Parser });
2833
+ const read = _chunkT7KQEMAEcjs.chartFromOoxml.call(void 0, await r.zip.readText(entry), { DOMParser: r.Parser });
2833
2834
  const name = frameName(ref);
2834
2835
  r.charts.push({
2835
2836
  id: `chart-${r.charts.length + 1}`,
@@ -3100,16 +3101,16 @@ var COLOR = { type: "string", minLength: 1, description: 'A CSS colour (hex or r
3100
3101
  function chartColors(spec) {
3101
3102
  const out = [];
3102
3103
  const visible = spec.series.map((s, i) => ({ s, i })).filter(({ s }) => !s.hidden);
3103
- if (_chunkWRZ6C4TUcjs.chartColorsByCategory.call(void 0, spec.type)) {
3104
+ if (_chunk3R5P3DVYcjs.chartColorsByCategory.call(void 0, spec.type)) {
3104
3105
  const first = visible[0];
3105
3106
  spec.categories.forEach((name, 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);
3107
+ const color = _optionalChain([first, 'optionalAccess', _143 => _143.s, 'access', _144 => _144.pointColors, 'optionalAccess', _145 => _145[index]]) || _chunk3R5P3DVYcjs.chartSliceColor.call(void 0, spec, index);
3107
3108
  out.push({ color, label: `Slice "${name}"`, target: first ? { kind: "point", seriesId: first.s.id, index } : { kind: "category", index } });
3108
3109
  });
3109
3110
  return out;
3110
3111
  }
3111
3112
  for (const { s, i } of visible) {
3112
- out.push({ color: _chunkWRZ6C4TUcjs.chartSeriesColor.call(void 0, spec, i), label: `Series "${s.name}"`, target: { kind: "series", seriesId: s.id } });
3113
+ out.push({ color: _chunk3R5P3DVYcjs.chartSeriesColor.call(void 0, spec, i), label: `Series "${s.name}"`, target: { kind: "series", seriesId: s.id } });
3113
3114
  _optionalChain([s, 'access', _146 => _146.pointColors, 'optionalAccess', _147 => _147.forEach, 'call', _148 => _148((c, index) => {
3114
3115
  if (c) out.push({ color: c, label: `Point ${index + 1} of "${s.name}"`, target: { kind: "point", seriesId: s.id, index } });
3115
3116
  })]);
@@ -3131,18 +3132,18 @@ var paletteOnly = {
3131
3132
  },
3132
3133
  run(spec, profile, { tolerance = 0.02 }) {
3133
3134
  const palette = paletteOf(profile);
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) }));
3135
+ const allowed = palette.flatMap((c) => _chunk3R5P3DVYcjs.CHART_PALETTE_SHADES.map((t) => _chunk3R5P3DVYcjs.shadeChartColor.call(void 0, c, t))).map((c) => ({ c, rgb: _chunk3R5P3DVYcjs.parseChartColor.call(void 0, c) }));
3135
3136
  return chartColors(spec).flatMap(({ color, label, target }) => {
3136
- const rgb = _chunkWRZ6C4TUcjs.parseChartColor.call(void 0, color);
3137
+ const rgb = _chunk3R5P3DVYcjs.parseChartColor.call(void 0, color);
3137
3138
  if (!rgb) return [];
3138
3139
  let best = { c: palette[0], d: Infinity };
3139
3140
  for (const a of allowed) {
3140
3141
  if (!a.rgb) continue;
3141
- const d = _chunkWRZ6C4TUcjs.chartColorDistance.call(void 0, rgb, a.rgb);
3142
+ const d = _chunk3R5P3DVYcjs.chartColorDistance.call(void 0, rgb, a.rgb);
3142
3143
  if (d < best.d) best = { c: a.c, d };
3143
3144
  }
3144
3145
  if (best.d <= tolerance) return [];
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;
3146
+ const nearest = palette.map((c) => ({ c, d: _chunk3R5P3DVYcjs.parseChartColor.call(void 0, c) ? _chunk3R5P3DVYcjs.chartColorDistance.call(void 0, rgb, _chunk3R5P3DVYcjs.parseChartColor.call(void 0, c)) : Infinity })).sort((a, b) => a.d - b.d)[0].c;
3146
3147
  return [{ severity: "error", message: `${label} uses ${color}, which is not in the house palette; use ${nearest} or another palette colour (${palette.join(", ")}).`, target }];
3147
3148
  });
3148
3149
  }
@@ -3156,8 +3157,8 @@ var distinguishable = {
3156
3157
  additionalProperties: false
3157
3158
  },
3158
3159
  run(spec, _profile, { minDistance = 0.08 }) {
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 });
3160
+ const colors = chartColors(spec).filter((c) => c.target.kind !== "point" || _chunk3R5P3DVYcjs.chartColorsByCategory.call(void 0, spec.type));
3161
+ const result = _chunk3R5P3DVYcjs.checkChartColors.call(void 0, colors.map((c) => c.color), { minDistance, minContrast: 0 });
3161
3162
  const findings = [];
3162
3163
  for (const [vision, pair] of Object.entries(result.closest)) {
3163
3164
  if (!pair || pair.distance >= minDistance) continue;
@@ -3183,7 +3184,7 @@ var minContrast = {
3183
3184
  const theme = _nullishCoalesce(profile.theme, () => ( {}));
3184
3185
  const background = theme.background && theme.background !== "transparent" ? theme.background : _nullishCoalesce(theme.surface, () => ( "#ffffff"));
3185
3186
  return chartColors(spec).flatMap(({ color, label, target }) => {
3186
- const r = _chunkWRZ6C4TUcjs.chartContrastRatio.call(void 0, color, background);
3187
+ const r = _chunk3R5P3DVYcjs.chartContrastRatio.call(void 0, color, background);
3187
3188
  if (r === null || r >= ratio) return [];
3188
3189
  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 }];
3189
3190
  });
@@ -3212,8 +3213,8 @@ var chartStyleDomain = {
3212
3213
  type: "object",
3213
3214
  properties: {
3214
3215
  palette: { type: "array", items: COLOR, minItems: 1, description: "Series colours in order." },
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." },
3216
+ colorSchemes: { type: "array", items: { type: "string", enum: _chunkD2SGV525cjs.CHART_COLOR_SCHEMES.map((s) => s.id) }, description: "Colour scheme ids allowed besides the palette (empty: none)." },
3217
+ layouts: { type: "array", items: { type: "string", enum: _chunkD2SGV525cjs.CHART_LAYOUT_PRESETS.map((p) => p.id) }, description: "Layout preset ids allowed." },
3217
3218
  theme: {
3218
3219
  type: "object",
3219
3220
  properties: {
@@ -3500,4 +3501,4 @@ function createChartStyleToolProvider(controller, styles, options = {}) {
3500
3501
 
3501
3502
 
3502
3503
 
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;
3504
+ exports.CHART_AXIS_KINDS = _chunk3R5P3DVYcjs.CHART_AXIS_KINDS; exports.CHART_AXIS_SCALES = _chunk3R5P3DVYcjs.CHART_AXIS_SCALES; exports.CHART_COLOR_SCHEMES = _chunkD2SGV525cjs.CHART_COLOR_SCHEMES; exports.CHART_CURVES = _chunk3R5P3DVYcjs.CHART_CURVES; exports.CHART_DATE_STEPS = _chunkMOW3JMNGcjs.CHART_DATE_STEPS; exports.CHART_ERROR_BAR_DIRECTIONS = _chunk3R5P3DVYcjs.CHART_ERROR_BAR_DIRECTIONS; exports.CHART_ERROR_BAR_LABELS = _chunk3R5P3DVYcjs.CHART_ERROR_BAR_LABELS; exports.CHART_ERROR_BAR_TYPES = _chunk3R5P3DVYcjs.CHART_ERROR_BAR_TYPES; exports.CHART_LABEL_POSITIONS = _chunk3R5P3DVYcjs.CHART_LABEL_POSITIONS; exports.CHART_LAYOUT_PRESETS = _chunkD2SGV525cjs.CHART_LAYOUT_PRESETS; exports.CHART_LEGEND_POSITIONS = _chunk3R5P3DVYcjs.CHART_LEGEND_POSITIONS; exports.CHART_LIKERT_NEUTRALS = _chunk3R5P3DVYcjs.CHART_LIKERT_NEUTRALS; exports.CHART_LIKERT_SORTS = _chunk3R5P3DVYcjs.CHART_LIKERT_SORTS; exports.CHART_MARKERS = _chunk3R5P3DVYcjs.CHART_MARKERS; exports.CHART_MERMAID_META_PREFIX = _chunkD2SGV525cjs.CHART_MERMAID_META_PREFIX; exports.CHART_NUMBER_STYLES = _chunk3R5P3DVYcjs.CHART_NUMBER_STYLES; exports.CHART_OOXML_CONTENT_TYPE = _chunkT7KQEMAEcjs.CHART_OOXML_CONTENT_TYPE; exports.CHART_OOXML_NS = _chunkT7KQEMAEcjs.CHART_OOXML_NS; exports.CHART_OOXML_RELATIONSHIP = _chunkT7KQEMAEcjs.CHART_OOXML_RELATIONSHIP; exports.CHART_ORIENTATIONS = _chunk3R5P3DVYcjs.CHART_ORIENTATIONS; exports.CHART_PALETTE_SHADES = _chunk3R5P3DVYcjs.CHART_PALETTE_SHADES; exports.CHART_PRESENCE_COLORS = CHART_PRESENCE_COLORS; exports.CHART_RADAR_GRATICULES = _chunk3R5P3DVYcjs.CHART_RADAR_GRATICULES; exports.CHART_RASTER_MAX_SIZE = CHART_RASTER_MAX_SIZE; exports.CHART_REFERENCE_AXES = _chunk3R5P3DVYcjs.CHART_REFERENCE_AXES; exports.CHART_SANKEY_LINK_COLORS = _chunk3R5P3DVYcjs.CHART_SANKEY_LINK_COLORS; exports.CHART_SERIES_TYPES = _chunk3R5P3DVYcjs.CHART_SERIES_TYPES; exports.CHART_STACKINGS = _chunk3R5P3DVYcjs.CHART_STACKINGS; exports.CHART_TRENDLINE_TYPES = _chunk3R5P3DVYcjs.CHART_TRENDLINE_TYPES; exports.CHART_TYPES = _chunk3R5P3DVYcjs.CHART_TYPES; exports.CHART_TYPE_LABELS = _chunk3R5P3DVYcjs.CHART_TYPE_LABELS; exports.CSS_VARIABLE_CHART_THEME = _chunk3R5P3DVYcjs.CSS_VARIABLE_CHART_THEME; exports.ChartController = _chunkD2SGV525cjs.ChartController; exports.ChartDirector = ChartDirector; exports.ChartPresence = ChartPresence; exports.ChartStream = ChartStream; exports.DEFAULT_CHART_PALETTE = _chunk3R5P3DVYcjs.DEFAULT_CHART_PALETTE; exports.DEFAULT_CHART_THEME = _chunk3R5P3DVYcjs.DEFAULT_CHART_THEME; exports.MAX_CHART_DATA_LABELS = _chunkMOW3JMNGcjs.MAX_CHART_DATA_LABELS; exports.MAX_CHART_LINE_POINTS = _chunkMOW3JMNGcjs.MAX_CHART_LINE_POINTS; exports.MAX_CHART_LINKS = _chunk3R5P3DVYcjs.MAX_CHART_LINKS; exports.MAX_CHART_MARKERS = _chunkMOW3JMNGcjs.MAX_CHART_MARKERS; exports.MAX_CHART_TREE_DEPTH = _chunk3R5P3DVYcjs.MAX_CHART_TREE_DEPTH; exports.MAX_CHART_TREE_NODES = _chunk3R5P3DVYcjs.MAX_CHART_TREE_NODES; exports.OfficeChartsError = OfficeChartsError; exports.RENDER_CHART_INSTRUCTIONS = RENDER_CHART_INSTRUCTIONS; exports.addChartLink = _chunk3R5P3DVYcjs.addChartLink; exports.addChartTreeRow = _chunk3R5P3DVYcjs.addChartTreeRow; exports.analyzeChartTable = analyzeChartTable; exports.blendChartScenes = blendChartScenes; exports.canDragChartPoint = canDragChartPoint; exports.chartBoxStats = _chunkMOW3JMNGcjs.chartBoxStats; exports.chartCategoryAtPoint = _chunkMOW3JMNGcjs.chartCategoryAtPoint; exports.chartClientToScene = chartClientToScene; exports.chartColorDistance = _chunk3R5P3DVYcjs.chartColorDistance; exports.chartColorInputValue = _chunk3R5P3DVYcjs.chartColorInputValue; exports.chartColorsByCategory = _chunk3R5P3DVYcjs.chartColorsByCategory; exports.chartContrastRatio = _chunk3R5P3DVYcjs.chartContrastRatio; exports.chartDataFromTable = _chunk3R5P3DVYcjs.chartDataFromTable; exports.chartDataToTable = _chunk3R5P3DVYcjs.chartDataToTable; exports.chartDateLabels = _chunkMOW3JMNGcjs.chartDateLabels; exports.chartDateToSerial = _chunkMOW3JMNGcjs.chartDateToSerial; exports.chartErrorAmounts = _chunk3R5P3DVYcjs.chartErrorAmounts; exports.chartErrorBarsOfType = _chunk3R5P3DVYcjs.chartErrorBarsOfType; exports.chartFamily = _chunk3R5P3DVYcjs.chartFamily; exports.chartFileName = chartFileName; exports.chartFormatToCode = _chunkT7KQEMAEcjs.chartFormatToCode; exports.chartFromMermaid = _chunkD2SGV525cjs.chartFromMermaid; exports.chartFromOoxml = _chunkT7KQEMAEcjs.chartFromOoxml; exports.chartFromTable = chartFromTable; exports.chartHistogram = _chunkMOW3JMNGcjs.chartHistogram; exports.chartHitTest = chartHitTest; exports.chartLikertColor = _chunk3R5P3DVYcjs.chartLikertColor; exports.chartLinksFromTable = _chunk3R5P3DVYcjs.chartLinksFromTable; exports.chartLuminance = _chunk3R5P3DVYcjs.chartLuminance; exports.chartMapBreaks = _chunkMOW3JMNGcjs.chartMapBreaks; exports.chartMapClass = _chunkMOW3JMNGcjs.chartMapClass; exports.chartMapRamp = _chunkMOW3JMNGcjs.chartMapRamp; exports.chartMermaidFamily = _chunkD2SGV525cjs.chartMermaidFamily; exports.chartMovingAverage = _chunkMOW3JMNGcjs.chartMovingAverage; exports.chartPointAnchor = chartPointAnchor; exports.chartPointColor = _chunk3R5P3DVYcjs.chartPointColor; exports.chartPointRef = chartPointRef; exports.chartPresetPatch = _chunkD2SGV525cjs.chartPresetPatch; exports.chartQuantile = _chunkMOW3JMNGcjs.chartQuantile; exports.chartRaceMoment = _chunkMOW3JMNGcjs.chartRaceMoment; exports.chartRaceRanking = _chunkMOW3JMNGcjs.chartRaceRanking; exports.chartRaceValueAt = _chunkMOW3JMNGcjs.chartRaceValueAt; exports.chartRasterSize = chartRasterSize; exports.chartRgbToHex = _chunk3R5P3DVYcjs.chartRgbToHex; exports.chartRgbToOklab = _chunk3R5P3DVYcjs.chartRgbToOklab; exports.chartSankeyNodeValues = _chunk3R5P3DVYcjs.chartSankeyNodeValues; exports.chartSankeyNodes = _chunk3R5P3DVYcjs.chartSankeyNodes; exports.chartScaleFromPixel = _chunkMOW3JMNGcjs.chartScaleFromPixel; exports.chartScaleToPixel = _chunkMOW3JMNGcjs.chartScaleToPixel; exports.chartSceneToDomSpec = _chunkD2SGV525cjs.chartSceneToDomSpec; exports.chartSceneToSvg = _chunkD2SGV525cjs.chartSceneToSvg; exports.chartSerialToDate = _chunkMOW3JMNGcjs.chartSerialToDate; exports.chartSeriesColor = _chunk3R5P3DVYcjs.chartSeriesColor; exports.chartSeriesType = _chunk3R5P3DVYcjs.chartSeriesType; exports.chartSliceColor = _chunk3R5P3DVYcjs.chartSliceColor; exports.chartSpecColorsByCategory = _chunk3R5P3DVYcjs.chartSpecColorsByCategory; exports.chartSquarify = _chunkMOW3JMNGcjs.chartSquarify; exports.chartStyleDomain = chartStyleDomain; exports.chartStylePatch = chartStylePatch; exports.chartSupportsTrendlines = _chunkMOW3JMNGcjs.chartSupportsTrendlines; exports.chartTextBaseline = _chunkD2SGV525cjs.chartTextBaseline; exports.chartTextOn = _chunk3R5P3DVYcjs.chartTextOn; exports.chartTextTransform = _chunkD2SGV525cjs.chartTextTransform; exports.chartToMermaid = _chunkD2SGV525cjs.chartToMermaid; exports.chartToOoxml = _chunkT7KQEMAEcjs.chartToOoxml; exports.chartToSvg = _chunkD2SGV525cjs.chartToSvg; exports.chartTooltipAt = chartTooltipAt; exports.chartTooltipFor = chartTooltipFor; exports.chartTreeColumnLabels = _chunk3R5P3DVYcjs.chartTreeColumnLabels; exports.chartTreeDepth = _chunk3R5P3DVYcjs.chartTreeDepth; exports.chartTreeFromRows = _chunk3R5P3DVYcjs.chartTreeFromRows; exports.chartTreeFromSeries = _chunk3R5P3DVYcjs.chartTreeFromSeries; exports.chartTreeFromTable = _chunk3R5P3DVYcjs.chartTreeFromTable; exports.chartTreeToRows = _chunk3R5P3DVYcjs.chartTreeToRows; exports.chartTreeTotal = _chunk3R5P3DVYcjs.chartTreeTotal; exports.chartTrendlineName = _chunkMOW3JMNGcjs.chartTrendlineName; exports.chartValueAtPoint = _chunkMOW3JMNGcjs.chartValueAtPoint; exports.chartVariesColors = _chunk3R5P3DVYcjs.chartVariesColors; exports.chartXAtPoint = _chunkMOW3JMNGcjs.chartXAtPoint; exports.checkChartColors = _chunk3R5P3DVYcjs.checkChartColors; exports.cloneChartSeries = _chunk3R5P3DVYcjs.cloneChartSeries; exports.cloneChartSpec = _chunk3R5P3DVYcjs.cloneChartSpec; exports.cloneChartTree = _chunk3R5P3DVYcjs.cloneChartTree; exports.compileChartFormatCode = _chunkMOW3JMNGcjs.compileChartFormatCode; exports.contrastingTextColor = _chunkMOW3JMNGcjs.contrastingTextColor; exports.createChartCommands = createChartCommands; exports.createChartController = _chunkD2SGV525cjs.createChartController; exports.createChartEditorDocument = createChartEditorDocument; exports.createChartRasterizer = createChartRasterizer; exports.createChartSpec = _chunk3R5P3DVYcjs.createChartSpec; exports.createChartStyleToolProvider = createChartStyleToolProvider; exports.createChartToolProvider = createChartToolProvider; exports.createInstantChartClock = createInstantChartClock; exports.createOfficeChartToolProvider = createOfficeChartToolProvider; exports.cyclePaletteColor = _chunk3R5P3DVYcjs.cyclePaletteColor; exports.decimateChartPoints = _chunkMOW3JMNGcjs.decimateChartPoints; exports.defaultChartAxis = _chunk3R5P3DVYcjs.defaultChartAxis; exports.defaultChartErrorBarValue = _chunk3R5P3DVYcjs.defaultChartErrorBarValue; exports.describeChart = _chunkD2SGV525cjs.describeChart; exports.describeChartErrorBars = _chunk3R5P3DVYcjs.describeChartErrorBars; exports.describeChartSelection = describeChartSelection; exports.describeOfficeChartPlace = describeOfficeChartPlace; exports.downloadChartPng = downloadChartPng; exports.easeChartTween = easeChartTween; exports.estimateChartTextWidth = _chunkMOW3JMNGcjs.estimateChartTextWidth; exports.extractDocxCharts = extractDocxCharts; exports.extractOfficeCharts = extractOfficeCharts; exports.extractPptxCharts = extractPptxCharts; exports.extractXlsxCharts = extractXlsxCharts; exports.findChartTreeNode = _chunk3R5P3DVYcjs.findChartTreeNode; exports.findMermaidCharts = _chunkD2SGV525cjs.findMermaidCharts; exports.fitChartTrendline = _chunkMOW3JMNGcjs.fitChartTrendline; exports.formatChartAmountList = _chunk3R5P3DVYcjs.formatChartAmountList; exports.formatChartDate = _chunkMOW3JMNGcjs.formatChartDate; exports.formatChartNumber = _chunkMOW3JMNGcjs.formatChartNumber; exports.formatChartValueWithCode = _chunkMOW3JMNGcjs.formatChartValueWithCode; exports.getChartMap = _chunkMOW3JMNGcjs.getChartMap; exports.handleChartKey = handleChartKey; exports.isCartesianChart = _chunk3R5P3DVYcjs.isCartesianChart; exports.isXyChart = _chunk3R5P3DVYcjs.isXyChart; exports.layoutChart = _chunkMOW3JMNGcjs.layoutChart; exports.layoutSparkline = _chunkD2SGV525cjs.layoutSparkline; exports.layoutStreamgraph = _chunkMOW3JMNGcjs.layoutStreamgraph; exports.linearMap = _chunkMOW3JMNGcjs.linearMap; exports.listChartMaps = _chunkMOW3JMNGcjs.listChartMaps; exports.locateChartPoint = locateChartPoint; exports.matchChartMapRegions = _chunkMOW3JMNGcjs.matchChartMapRegions; exports.monochromeChartPalette = _chunkD2SGV525cjs.monochromeChartPalette; exports.niceLogScale = _chunkMOW3JMNGcjs.niceLogScale; exports.niceScale = _chunkMOW3JMNGcjs.niceScale; exports.niceStep = _chunkMOW3JMNGcjs.niceStep; exports.normalizeChartAxis = _chunk3R5P3DVYcjs.normalizeChartAxis; exports.normalizeChartErrorBars = _chunk3R5P3DVYcjs.normalizeChartErrorBars; exports.normalizeChartLinks = _chunk3R5P3DVYcjs.normalizeChartLinks; exports.normalizeChartReferenceBand = _chunk3R5P3DVYcjs.normalizeChartReferenceBand; exports.normalizeChartReferenceLine = _chunk3R5P3DVYcjs.normalizeChartReferenceLine; exports.normalizeChartSpec = _chunk3R5P3DVYcjs.normalizeChartSpec; exports.normalizeChartTree = _chunk3R5P3DVYcjs.normalizeChartTree; exports.normalizeChartTrendline = _chunk3R5P3DVYcjs.normalizeChartTrendline; exports.normalizeChartValues = _chunk3R5P3DVYcjs.normalizeChartValues; exports.parseChartAmountList = _chunk3R5P3DVYcjs.parseChartAmountList; exports.parseChartColor = _chunk3R5P3DVYcjs.parseChartColor; exports.parseChartDate = _chunkMOW3JMNGcjs.parseChartDate; exports.parseChartValue = _chunk3R5P3DVYcjs.parseChartValue; exports.parsePartialChartJson = parsePartialChartJson; exports.planChartCommand = planChartCommand; exports.planChartToolPlayback = planChartToolPlayback; exports.rasterizeChartSvg = rasterizeChartSvg; exports.realChartClock = realChartClock; exports.recommendChartTypes = recommendChartTypes; exports.recommendForShape = recommendForShape; exports.registerChartMap = _chunkMOW3JMNGcjs.registerChartMap; exports.removeChartTreeRow = _chunk3R5P3DVYcjs.removeChartTreeRow; exports.resolveChartSvgPaints = resolveChartSvgPaints; exports.sameChartSelection = _chunkMOW3JMNGcjs.sameChartSelection; exports.sameChartTooltip = sameChartTooltip; exports.setChartLinkField = _chunk3R5P3DVYcjs.setChartLinkField; exports.setChartTreeRowName = _chunk3R5P3DVYcjs.setChartTreeRowName; exports.setChartTreeRowValue = _chunk3R5P3DVYcjs.setChartTreeRowValue; exports.shadeChartColor = _chunk3R5P3DVYcjs.shadeChartColor; exports.simulateChartVision = _chunk3R5P3DVYcjs.simulateChartVision; exports.snapChartDragValue = snapChartDragValue; exports.snapChartValue = _chunkMOW3JMNGcjs.snapChartValue; exports.sparklineToSvg = _chunkD2SGV525cjs.sparklineToSvg; exports.startChartPointDrag = startChartPointDrag; exports.stepDecimals = _chunkMOW3JMNGcjs.stepDecimals; exports.suggestChartReferences = _chunkMOW3JMNGcjs.suggestChartReferences; exports.summarizeChart = _chunkD2SGV525cjs.summarizeChart; exports.summarizeChartSeries = _chunkMOW3JMNGcjs.summarizeChartSeries; exports.trendNumberText = _chunkMOW3JMNGcjs.trendNumberText; exports.uniqueChartSeriesId = _chunk3R5P3DVYcjs.uniqueChartSeriesId; exports.withChartPlayback = withChartPlayback;