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