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