@unovis/mcp 1.7.0-mcp.1 → 1.7.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 (130) hide show
  1. package/README.md +3 -2
  2. package/dist/cli.js +7 -0
  3. package/dist/cli.js.map +1 -1
  4. package/dist/codegen/index.js +23 -8
  5. package/dist/codegen/index.js.map +1 -1
  6. package/dist/html/document.d.ts +16 -3
  7. package/dist/html/document.js +50 -20
  8. package/dist/html/document.js.map +1 -1
  9. package/dist/index.d.ts +7 -6
  10. package/dist/index.js +6 -3
  11. package/dist/index.js.map +1 -1
  12. package/dist/recipes/area.d.ts +3 -2
  13. package/dist/recipes/bar.d.ts +4 -3
  14. package/dist/recipes/bar.js +4 -1
  15. package/dist/recipes/bar.js.map +1 -1
  16. package/dist/recipes/boxplot.d.ts +3 -2
  17. package/dist/recipes/chord.d.ts +1 -0
  18. package/dist/recipes/choropleth.d.ts +1 -0
  19. package/dist/recipes/donut.d.ts +1 -0
  20. package/dist/recipes/graph.d.ts +1 -0
  21. package/dist/recipes/heatmap.d.ts +1 -0
  22. package/dist/recipes/index.d.ts +2 -0
  23. package/dist/recipes/index.js +3 -0
  24. package/dist/recipes/index.js.map +1 -1
  25. package/dist/recipes/line.d.ts +3 -2
  26. package/dist/recipes/nested-donut.d.ts +1 -0
  27. package/dist/recipes/radial-bar.d.ts +1 -0
  28. package/dist/recipes/sankey.d.ts +1 -0
  29. package/dist/recipes/scatter.d.ts +3 -2
  30. package/dist/recipes/shared.d.ts +6 -10
  31. package/dist/recipes/shared.js +7 -53
  32. package/dist/recipes/shared.js.map +1 -1
  33. package/dist/recipes/timeline.d.ts +1 -0
  34. package/dist/recipes/treemap.d.ts +1 -0
  35. package/dist/render/materialize.d.ts +9 -3
  36. package/dist/render/materialize.js +66 -27
  37. package/dist/render/materialize.js.map +1 -1
  38. package/dist/render/renderer.d.ts +2 -7
  39. package/dist/render/renderer.js +1 -1
  40. package/dist/render/renderer.js.map +1 -1
  41. package/dist/render/spec-schema.d.ts +1180 -0
  42. package/dist/render/spec-schema.js +71 -0
  43. package/dist/render/spec-schema.js.map +1 -0
  44. package/dist/render/spec.d.ts +15 -7
  45. package/dist/render/spec.js +9 -8
  46. package/dist/render/spec.js.map +1 -1
  47. package/dist/render/time-ticks.d.ts +10 -0
  48. package/dist/render/time-ticks.js +56 -0
  49. package/dist/render/time-ticks.js.map +1 -0
  50. package/dist/server.js +12 -3
  51. package/dist/server.js.map +1 -1
  52. package/dist/tools/register.d.ts +20 -1
  53. package/dist/tools/register.js +98 -15
  54. package/dist/tools/register.js.map +1 -1
  55. package/dist/widget/bundle.js +470 -465
  56. package/dist/widget/bundle.meta.json +2 -1
  57. package/dist/widget/bundle.standard.js +799 -0
  58. package/dist/widget/entry.d.ts +4 -0
  59. package/dist/widget/entry.js +149 -13
  60. package/dist/widget/entry.js.map +1 -1
  61. package/dist/widget/events.d.ts +25 -0
  62. package/dist/widget/events.js +97 -0
  63. package/dist/widget/events.js.map +1 -0
  64. package/dist/widget/interactions.js +22 -12
  65. package/dist/widget/interactions.js.map +1 -1
  66. package/dist/widget/unpack.d.ts +1 -0
  67. package/dist/widget/unpack.js +1 -0
  68. package/dist/widget/unpack.js.map +1 -0
  69. package/dist/widget/variants.d.ts +14 -0
  70. package/dist/widget/variants.js +22 -0
  71. package/dist/widget/variants.js.map +1 -0
  72. package/docs/README.md +2 -1
  73. package/docs/architecture.md +29 -76
  74. package/docs/chart-spec.md +41 -0
  75. package/docs/getting-started.md +5 -0
  76. package/docs/interactive.md +72 -14
  77. package/docs/output-types.md +9 -9
  78. package/docs/programmatic.md +24 -0
  79. package/docs/tools.md +7 -7
  80. package/docs/troubleshooting.md +14 -44
  81. package/docs/webview.md +83 -0
  82. package/package.json +35 -13
  83. package/schema/chart-spec.v0.1.baseline.json +309 -0
  84. package/schema/chart-spec.v0.1.json +309 -0
  85. package/dist/env/bbox.d.ts +0 -13
  86. package/dist/env/bbox.js +0 -335
  87. package/dist/env/bbox.js.map +0 -1
  88. package/dist/env/canvas.d.ts +0 -9
  89. package/dist/env/canvas.js +0 -55
  90. package/dist/env/canvas.js.map +0 -1
  91. package/dist/env/computed-style.d.ts +0 -38
  92. package/dist/env/computed-style.js +0 -186
  93. package/dist/env/computed-style.js.map +0 -1
  94. package/dist/env/fonts.d.ts +0 -3
  95. package/dist/env/fonts.js +0 -103
  96. package/dist/env/fonts.js.map +0 -1
  97. package/dist/env/index.d.ts +0 -13
  98. package/dist/env/index.js +0 -121
  99. package/dist/env/index.js.map +0 -1
  100. package/dist/env/raf-queue.d.ts +0 -23
  101. package/dist/env/raf-queue.js +0 -51
  102. package/dist/env/raf-queue.js.map +0 -1
  103. package/dist/env/size.d.ts +0 -9
  104. package/dist/env/size.js +0 -30
  105. package/dist/env/size.js.map +0 -1
  106. package/dist/render/headless.d.ts +0 -62
  107. package/dist/render/headless.js +0 -158
  108. package/dist/render/headless.js.map +0 -1
  109. package/dist/render/mutex.d.ts +0 -9
  110. package/dist/render/mutex.js +0 -14
  111. package/dist/render/mutex.js.map +0 -1
  112. package/dist/render/rasterize.d.ts +0 -10
  113. package/dist/render/rasterize.js +0 -29
  114. package/dist/render/rasterize.js.map +0 -1
  115. package/dist/svg/collect-css.d.ts +0 -14
  116. package/dist/svg/collect-css.js +0 -53
  117. package/dist/svg/collect-css.js.map +0 -1
  118. package/dist/svg/css-vars.d.ts +0 -17
  119. package/dist/svg/css-vars.js +0 -64
  120. package/dist/svg/css-vars.js.map +0 -1
  121. package/dist/svg/header.d.ts +0 -8
  122. package/dist/svg/header.js +0 -81
  123. package/dist/svg/header.js.map +0 -1
  124. package/dist/svg/ids.d.ts +0 -12
  125. package/dist/svg/ids.js +0 -94
  126. package/dist/svg/ids.js.map +0 -1
  127. package/dist/svg/postprocess.d.ts +0 -41
  128. package/dist/svg/postprocess.js +0 -135
  129. package/dist/svg/postprocess.js.map +0 -1
  130. package/fonts/README.md +0 -19
@@ -3,3 +3,5 @@ export type { Recipe, AnyRecipe } from './types.js';
3
3
  /** All available chart recipes, in display order */
4
4
  export declare const recipes: AnyRecipe[];
5
5
  export declare const recipeByName: Map<string, AnyRecipe>;
6
+ export { ChartInputError, assertFieldsExist, baseSpec, categoricalX, dateTickValues, field, seriesLegend, timeTickValuesFromData, xyAxes, } from './shared.js';
7
+ export type { DataRecord } from './shared.js';
@@ -32,4 +32,7 @@ export const recipes = [
32
32
  choroplethRecipe,
33
33
  ];
34
34
  export const recipeByName = new Map(recipes.map(r => [r.name, r]));
35
+ // Spec-building helpers, so consumers of `@unovis/mcp/recipes` don't have to
36
+ // hand-roll accessors, axes, legends or time ticks that the recipes already do
37
+ export { ChartInputError, assertFieldsExist, baseSpec, categoricalX, dateTickValues, field, seriesLegend, timeTickValuesFromData, xyAxes, } from './shared.js';
35
38
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/recipes/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAIlD,oDAAoD;AACpD,MAAM,CAAC,MAAM,OAAO,GAAgB;IAClC,UAAU;IACV,UAAU;IACV,SAAS;IACT,aAAa;IACb,WAAW;IACX,cAAc;IACd,aAAa;IACb,YAAY;IACZ,aAAa;IACb,aAAa;IACb,WAAW;IACX,iBAAiB;IACjB,eAAe;IACf,WAAW;IACX,gBAAgB;CACjB,CAAA;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/recipes/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAIlD,oDAAoD;AACpD,MAAM,CAAC,MAAM,OAAO,GAAgB;IAClC,UAAU;IACV,UAAU;IACV,SAAS;IACT,aAAa;IACb,WAAW;IACX,cAAc;IACd,aAAa;IACb,YAAY;IACZ,aAAa;IACb,aAAa;IACb,WAAW;IACX,iBAAiB;IACjB,eAAe;IACf,WAAW;IACX,gBAAgB;CACjB,CAAA;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;AAElE,6EAA6E;AAC7E,+EAA+E;AAC/E,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,KAAK,EACL,YAAY,EACZ,sBAAsB,EACtB,MAAM,GACP,MAAM,aAAa,CAAA"}
@@ -4,6 +4,7 @@ export declare const lineInputShape: {
4
4
  width: z.ZodDefault<z.ZodNumber>;
5
5
  height: z.ZodDefault<z.ZodNumber>;
6
6
  theme: z.ZodDefault<z.ZodEnum<["light", "dark"]>>;
7
+ locale: z.ZodOptional<z.ZodString>;
7
8
  title: z.ZodOptional<z.ZodString>;
8
9
  colors: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
9
10
  framework: z.ZodDefault<z.ZodEnum<["ts", "react", "svelte", "vue", "angular", "solid"]>>;
@@ -23,18 +24,18 @@ export declare const lineInputShape: {
23
24
  style: z.ZodDefault<z.ZodEnum<["dashed", "solid", "dotted"]>>;
24
25
  }, "strip", z.ZodTypeAny, {
25
26
  value: number;
26
- style: "solid" | "dashed" | "dotted";
27
27
  axis: "x" | "y";
28
28
  lineWidth: number;
29
+ style: "solid" | "dashed" | "dotted";
29
30
  label?: string | undefined;
30
31
  color?: string | undefined;
31
32
  }, {
32
33
  value: number;
33
34
  label?: string | undefined;
34
35
  color?: string | undefined;
35
- style?: "solid" | "dashed" | "dotted" | undefined;
36
36
  axis?: "x" | "y" | undefined;
37
37
  lineWidth?: number | undefined;
38
+ style?: "solid" | "dashed" | "dotted" | undefined;
38
39
  }>, "many">>;
39
40
  referenceBands: z.ZodOptional<z.ZodArray<z.ZodObject<{
40
41
  axis: z.ZodDefault<z.ZodEnum<["x", "y"]>>;
@@ -4,6 +4,7 @@ export declare const nestedDonutInputShape: {
4
4
  width: z.ZodDefault<z.ZodNumber>;
5
5
  height: z.ZodDefault<z.ZodNumber>;
6
6
  theme: z.ZodDefault<z.ZodEnum<["light", "dark"]>>;
7
+ locale: z.ZodOptional<z.ZodString>;
7
8
  title: z.ZodOptional<z.ZodString>;
8
9
  colors: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
9
10
  framework: z.ZodDefault<z.ZodEnum<["ts", "react", "svelte", "vue", "angular", "solid"]>>;
@@ -4,6 +4,7 @@ export declare const radialBarInputShape: {
4
4
  width: z.ZodDefault<z.ZodNumber>;
5
5
  height: z.ZodDefault<z.ZodNumber>;
6
6
  theme: z.ZodDefault<z.ZodEnum<["light", "dark"]>>;
7
+ locale: z.ZodOptional<z.ZodString>;
7
8
  title: z.ZodOptional<z.ZodString>;
8
9
  colors: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
9
10
  framework: z.ZodDefault<z.ZodEnum<["ts", "react", "svelte", "vue", "angular", "solid"]>>;
@@ -4,6 +4,7 @@ export declare const sankeyInputShape: {
4
4
  width: z.ZodDefault<z.ZodNumber>;
5
5
  height: z.ZodDefault<z.ZodNumber>;
6
6
  theme: z.ZodDefault<z.ZodEnum<["light", "dark"]>>;
7
+ locale: z.ZodOptional<z.ZodString>;
7
8
  title: z.ZodOptional<z.ZodString>;
8
9
  colors: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
9
10
  framework: z.ZodDefault<z.ZodEnum<["ts", "react", "svelte", "vue", "angular", "solid"]>>;
@@ -4,6 +4,7 @@ export declare const scatterInputShape: {
4
4
  width: z.ZodDefault<z.ZodNumber>;
5
5
  height: z.ZodDefault<z.ZodNumber>;
6
6
  theme: z.ZodDefault<z.ZodEnum<["light", "dark"]>>;
7
+ locale: z.ZodOptional<z.ZodString>;
7
8
  title: z.ZodOptional<z.ZodString>;
8
9
  colors: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
9
10
  framework: z.ZodDefault<z.ZodEnum<["ts", "react", "svelte", "vue", "angular", "solid"]>>;
@@ -23,18 +24,18 @@ export declare const scatterInputShape: {
23
24
  style: z.ZodDefault<z.ZodEnum<["dashed", "solid", "dotted"]>>;
24
25
  }, "strip", z.ZodTypeAny, {
25
26
  value: number;
26
- style: "solid" | "dashed" | "dotted";
27
27
  axis: "x" | "y";
28
28
  lineWidth: number;
29
+ style: "solid" | "dashed" | "dotted";
29
30
  label?: string | undefined;
30
31
  color?: string | undefined;
31
32
  }, {
32
33
  value: number;
33
34
  label?: string | undefined;
34
35
  color?: string | undefined;
35
- style?: "solid" | "dashed" | "dotted" | undefined;
36
36
  axis?: "x" | "y" | undefined;
37
37
  lineWidth?: number | undefined;
38
+ style?: "solid" | "dashed" | "dotted" | undefined;
38
39
  }>, "many">>;
39
40
  referenceBands: z.ZodOptional<z.ZodArray<z.ZodObject<{
40
41
  axis: z.ZodDefault<z.ZodEnum<["x", "y"]>>;
@@ -17,6 +17,7 @@ export declare const commonInput: {
17
17
  width: z.ZodDefault<z.ZodNumber>;
18
18
  height: z.ZodDefault<z.ZodNumber>;
19
19
  theme: z.ZodDefault<z.ZodEnum<["light", "dark"]>>;
20
+ locale: z.ZodOptional<z.ZodString>;
20
21
  title: z.ZodOptional<z.ZodString>;
21
22
  colors: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
22
23
  framework: z.ZodDefault<z.ZodEnum<["ts", "react", "svelte", "vue", "angular", "solid"]>>;
@@ -41,18 +42,18 @@ export declare const xyDecorations: {
41
42
  style: z.ZodDefault<z.ZodEnum<["dashed", "solid", "dotted"]>>;
42
43
  }, "strip", z.ZodTypeAny, {
43
44
  value: number;
44
- style: "solid" | "dashed" | "dotted";
45
45
  axis: "x" | "y";
46
46
  lineWidth: number;
47
+ style: "solid" | "dashed" | "dotted";
47
48
  label?: string | undefined;
48
49
  color?: string | undefined;
49
50
  }, {
50
51
  value: number;
51
52
  label?: string | undefined;
52
53
  color?: string | undefined;
53
- style?: "solid" | "dashed" | "dotted" | undefined;
54
54
  axis?: "x" | "y" | undefined;
55
55
  lineWidth?: number | undefined;
56
+ style?: "solid" | "dashed" | "dotted" | undefined;
56
57
  }>, "many">>;
57
58
  referenceBands: z.ZodOptional<z.ZodArray<z.ZodObject<{
58
59
  axis: z.ZodDefault<z.ZodEnum<["x", "y"]>>;
@@ -118,13 +119,7 @@ export declare function categoricalX(data: DataRecord[], fieldName: string, isTi
118
119
  * Explicit integer tickValues — approximate d3 tick counts can emit
119
120
  * fractional ticks that would round into duplicate category labels. */
120
121
  export declare function categoryAxis(base: AxisSpec, categories: string[]): AxisSpec;
121
- /** Calendar-aligned tick values for date axes. Linear-scale ticks land at
122
- * arbitrary times of day, which the date formatter would render as
123
- * time-of-day labels ("08:53 AM" on a 3-month chart) — align ticks to
124
- * month/day/hour/minute boundaries instead. */
125
- export declare function dateTickValues(min: number, max: number, target?: number): number[] | undefined;
126
- /** Tick values for a time axis derived from the data extent of a date field */
127
- export declare function timeTickValuesFromData(data: DataRecord[], fieldName: string): number[] | undefined;
122
+ export { dateTickValues, timeTickValuesFromData } from '../render/time-ticks.js';
128
123
  export declare function seriesLegend(labels: string[], enabled: boolean, colors?: string[]): LegendItemSpec[] | undefined;
129
124
  /** Common ChartSpec fields from common tool inputs */
130
125
  export declare function baseSpec(input: {
@@ -133,7 +128,8 @@ export declare function baseSpec(input: {
133
128
  theme: 'light' | 'dark';
134
129
  title?: string;
135
130
  colors?: string[];
136
- }): Pick<ChartSpec, 'width' | 'height' | 'theme' | 'title' | 'colors'>;
131
+ locale?: string;
132
+ }): Pick<ChartSpec, 'specVersion' | 'width' | 'height' | 'theme' | 'title' | 'colors' | 'locale'>;
137
133
  export declare function xyAxes(input: {
138
134
  xAxisLabel?: string;
139
135
  yAxisLabel?: string;
@@ -8,6 +8,7 @@
8
8
  */
9
9
  import { z } from 'zod';
10
10
  import { ChartInputError } from '../render/materialize.js';
11
+ import { SPEC_VERSION } from '../render/spec.js';
11
12
  export { ChartInputError };
12
13
  // ── schema fragments ────────────────────────────────────────────────────────
13
14
  export const dataValue = z.union([z.string(), z.number(), z.boolean(), z.null()]);
@@ -23,6 +24,8 @@ export const commonInput = {
23
24
  width: z.number().int().min(100).max(4000).default(800).describe('Chart width in pixels'),
24
25
  height: z.number().int().min(100).max(4000).default(480).describe('Chart height in pixels'),
25
26
  theme: z.enum(['light', 'dark']).default('light').describe('Color theme of the chart'),
27
+ locale: z.string().regex(/^[A-Za-z]{2,3}(-[A-Za-z0-9]{2,8})*$/, 'BCP-47 locale, e.g. de-DE').optional()
28
+ .describe('BCP-47 locale for date and number formatting on axes and tooltips, e.g. "de-DE" or "ja". Defaults to en-US'),
26
29
  title: z.string().optional().describe('Chart title rendered above the chart'),
27
30
  colors: z.array(z.string().regex(/^#[0-9a-fA-F]{3,8}$/, 'hex color, e.g. #4D8CFD')).max(12).optional()
28
31
  .describe('Custom color palette (hex). Replaces the default palette in order'),
@@ -31,7 +34,7 @@ export const commonInput = {
31
34
  outputType: z.enum(['svg', 'png', 'html', 'interactive', 'config', 'code']).default('svg')
32
35
  .describe('svg: SVG markup; png: a rendered PNG image; html: a self-contained interactive HTML file ' +
33
36
  '(tooltips, crosshair, hover — saved to disk, path returned); interactive: an interactive chart ' +
34
- 'rendered inline by clients that support MCP UI widgets; config: the resolved Unovis chart spec as JSON'),
37
+ 'rendered inline by clients that support the MCP Apps extension; config: the resolved Unovis chart spec as JSON'),
35
38
  outputPath: z.string().optional()
36
39
  .describe('Absolute file path with an extension matching outputType (.svg, .png or .html) — saves the chart to disk and returns the path instead of inline content'),
37
40
  scale: z.number().min(1).max(4).default(2)
@@ -141,58 +144,7 @@ export function categoryAxis(base, categories) {
141
144
  tickValues,
142
145
  };
143
146
  }
144
- const MINUTE = 60_000;
145
- const HOUR = 60 * MINUTE;
146
- const DAY = 24 * HOUR;
147
- /** Calendar-aligned tick values for date axes. Linear-scale ticks land at
148
- * arbitrary times of day, which the date formatter would render as
149
- * time-of-day labels ("08:53 AM" on a 3-month chart) — align ticks to
150
- * month/day/hour/minute boundaries instead. */
151
- export function dateTickValues(min, max, target = 7) {
152
- const span = max - min;
153
- if (!Number.isFinite(span) || span <= 0)
154
- return undefined;
155
- const ticks = [];
156
- if (span >= 60 * DAY) { // month starts
157
- const stepMonths = Math.max(1, Math.ceil(span / (30 * DAY) / target));
158
- const start = new Date(min);
159
- let date = new Date(Date.UTC(start.getUTCFullYear(), start.getUTCMonth(), 1));
160
- if (date.getTime() < min)
161
- date = new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth() + 1, 1));
162
- while (date.getTime() <= max && ticks.length < 24) {
163
- ticks.push(date.getTime());
164
- date = new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth() + stepMonths, 1));
165
- }
166
- }
167
- else {
168
- // day / hour / minute boundaries (uniform in UTC epoch time)
169
- const unit = span >= 2 * DAY ? DAY : span >= 2 * HOUR ? HOUR : MINUTE;
170
- const niceSteps = unit === DAY ? [1, 2, 7, 14] : unit === HOUR ? [1, 2, 3, 6, 12] : [1, 2, 5, 10, 15, 30];
171
- const rawStep = span / unit / target;
172
- const step = (niceSteps.find(s => s >= rawStep) ?? Math.ceil(rawStep)) * unit;
173
- for (let t = Math.ceil(min / step) * step; t <= max && ticks.length < 24; t += step)
174
- ticks.push(t);
175
- }
176
- return ticks.length >= 2 ? ticks : undefined;
177
- }
178
- /** Tick values for a time axis derived from the data extent of a date field */
179
- export function timeTickValuesFromData(data, fieldName) {
180
- let min = Infinity;
181
- let max = -Infinity;
182
- for (const record of data) {
183
- const raw = record[fieldName];
184
- if (raw === null || raw === undefined || raw === '')
185
- continue;
186
- const time = typeof raw === 'number' ? raw : new Date(String(raw)).getTime();
187
- if (Number.isNaN(time))
188
- continue;
189
- if (time < min)
190
- min = time;
191
- if (time > max)
192
- max = time;
193
- }
194
- return dateTickValues(min, max);
195
- }
147
+ export { dateTickValues, timeTickValuesFromData } from '../render/time-ticks.js';
196
148
  export function seriesLegend(labels, enabled, colors) {
197
149
  if (!enabled || labels.length < 2)
198
150
  return undefined;
@@ -201,11 +153,13 @@ export function seriesLegend(labels, enabled, colors) {
201
153
  /** Common ChartSpec fields from common tool inputs */
202
154
  export function baseSpec(input) {
203
155
  return {
156
+ specVersion: SPEC_VERSION,
204
157
  width: input.width,
205
158
  height: input.height,
206
159
  theme: input.theme,
207
160
  title: input.title,
208
161
  colors: input.colors,
162
+ locale: input.locale,
209
163
  };
210
164
  }
211
165
  export function xyAxes(input) {
@@ -1 +1 @@
1
- {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/recipes/shared.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/recipes/shared.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@ export declare const timelineInputShape: {
8
8
  width: z.ZodDefault<z.ZodNumber>;
9
9
  height: z.ZodDefault<z.ZodNumber>;
10
10
  theme: z.ZodDefault<z.ZodEnum<["light", "dark"]>>;
11
+ locale: z.ZodOptional<z.ZodString>;
11
12
  title: z.ZodOptional<z.ZodString>;
12
13
  colors: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
13
14
  framework: z.ZodDefault<z.ZodEnum<["ts", "react", "svelte", "vue", "angular", "solid"]>>;
@@ -4,6 +4,7 @@ export declare const treemapInputShape: {
4
4
  width: z.ZodDefault<z.ZodNumber>;
5
5
  height: z.ZodDefault<z.ZodNumber>;
6
6
  theme: z.ZodDefault<z.ZodEnum<["light", "dark"]>>;
7
+ locale: z.ZodOptional<z.ZodString>;
7
8
  title: z.ZodOptional<z.ZodString>;
8
9
  colors: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
9
10
  framework: z.ZodDefault<z.ZodEnum<["ts", "react", "svelte", "vue", "angular", "solid"]>>;
@@ -3,19 +3,25 @@
3
3
  * Converts JSON accessor descriptors into real functions. Field access is by
4
4
  * property name only — user input is never evaluated as code.
5
5
  */
6
- import type { UnovisLib } from '../env/index.js';
6
+ import type { UnovisLib } from '@unovis/ssr';
7
7
  import type { AccessorRef, ChartSpec } from './spec.js';
8
8
  type AnyFn = (...args: any[]) => any;
9
9
  export declare class ChartInputError extends Error {
10
10
  }
11
- export declare function materializeAccessor(ref: AccessorRef): AnyFn | unknown;
11
+ /** Time tick formatter: picks granularity from the value */
12
+ export declare const formatDateTick: (value: unknown, locale?: string) => string;
13
+ export declare const formatNumTick: (value: unknown, locale?: string) => string;
14
+ export declare function materializeAccessor(ref: AccessorRef, locale?: string): AnyFn | unknown;
12
15
  /** Deep-walk a config value, replacing accessor descriptors with functions */
13
- export declare function materializeValue(value: unknown): unknown;
16
+ export declare function materializeValue(value: unknown, locale?: string): unknown;
14
17
  export interface MaterializedChart {
15
18
  containerType: 'xy' | 'single';
16
19
  containerConfig: Record<string, unknown>;
17
20
  data: unknown;
18
21
  }
22
+ /** Component classes recipes are allowed to instantiate */
23
+ export declare const XY_COMPONENTS: Set<string>;
24
+ export declare const SINGLE_COMPONENTS: Set<string>;
19
25
  /** Components that finish rendering asynchronously (after layout calculation)
20
26
  * and expose their own onRenderComplete hook the renderer must await */
21
27
  export declare const ASYNC_COMPONENTS: Set<string>;
@@ -1,4 +1,5 @@
1
- import { isAccessorRef } from './spec.js';
1
+ import { isAccessorRef, SPEC_VERSION } from './spec.js';
2
+ import { timeTickValuesFromData } from './time-ticks.js';
2
3
  export class ChartInputError extends Error {
3
4
  }
4
5
  const coerceNumber = (value) => {
@@ -16,23 +17,26 @@ const coerceDate = (value) => {
16
17
  return Number.isNaN(time) ? undefined : time;
17
18
  };
18
19
  /** Time tick formatter: picks granularity from the value */
19
- const formatDateTick = (value) => {
20
- const time = typeof value === 'number' ? value : Number(value);
20
+ export const formatDateTick = (value, locale = 'en-US') => {
21
+ // Axes hand over epoch ms; tooltip headers can hand over the raw record
22
+ // value, which may be a date string
23
+ const numeric = typeof value === 'number' ? value : Number(value);
24
+ const time = Number.isFinite(numeric) ? numeric : new Date(String(value)).getTime();
21
25
  if (!Number.isFinite(time))
22
26
  return String(value);
23
27
  const date = new Date(time);
24
28
  const opts = date.getUTCHours() === 0 && date.getUTCMinutes() === 0
25
29
  ? (date.getUTCDate() === 1 ? { year: 'numeric', month: 'short' } : { month: 'short', day: 'numeric' })
26
30
  : { hour: '2-digit', minute: '2-digit' };
27
- return date.toLocaleString('en-US', { ...opts, timeZone: 'UTC' });
31
+ return date.toLocaleString(locale, { ...opts, timeZone: 'UTC' });
28
32
  };
29
- const formatNumTick = (value) => {
33
+ export const formatNumTick = (value, locale = 'en-US') => {
30
34
  const n = Number(value);
31
35
  if (!Number.isFinite(n))
32
36
  return String(value);
33
- return n.toLocaleString('en-US', { maximumFractionDigits: 6 });
37
+ return n.toLocaleString(locale, { maximumFractionDigits: 6 });
34
38
  };
35
- export function materializeAccessor(ref) {
39
+ export function materializeAccessor(ref, locale) {
36
40
  if ('$field' in ref) {
37
41
  const { $field: field, as } = ref;
38
42
  if (as === 'number')
@@ -46,9 +50,9 @@ export function materializeAccessor(ref) {
46
50
  if ('$const' in ref)
47
51
  return () => ref.$const;
48
52
  if ('$dateTickFormat' in ref)
49
- return formatDateTick;
53
+ return (value) => formatDateTick(value, locale);
50
54
  if ('$numTickFormat' in ref)
51
- return formatNumTick;
55
+ return (value) => formatNumTick(value, locale);
52
56
  if ('$lookup' in ref) {
53
57
  const values = ref.$lookup;
54
58
  return (d) => values[Math.round(Number(d)) % values.length] ?? String(d);
@@ -59,7 +63,7 @@ export function materializeAccessor(ref) {
59
63
  const value = d?.[field];
60
64
  if (value === null || value === undefined)
61
65
  return '';
62
- return `${prefix}${formatNumTick(value)}${suffix}`;
66
+ return `${prefix}${formatNumTick(value, locale)}${suffix}`;
63
67
  };
64
68
  }
65
69
  if ('$mapField' in ref) {
@@ -69,33 +73,37 @@ export function materializeAccessor(ref) {
69
73
  return ref;
70
74
  }
71
75
  /** Deep-walk a config value, replacing accessor descriptors with functions */
72
- export function materializeValue(value) {
76
+ export function materializeValue(value, locale) {
73
77
  if (isAccessorRef(value))
74
- return materializeAccessor(value);
78
+ return materializeAccessor(value, locale);
75
79
  if (Array.isArray(value))
76
- return value.map(materializeValue);
80
+ return value.map(v => materializeValue(v, locale));
77
81
  if (typeof value === 'object' && value !== null) {
78
82
  const out = {};
79
83
  for (const [key, v] of Object.entries(value))
80
- out[key] = materializeValue(v);
84
+ out[key] = materializeValue(v, locale);
81
85
  return out;
82
86
  }
83
87
  return value;
84
88
  }
85
89
  /** Component classes recipes are allowed to instantiate */
86
- const XY_COMPONENTS = new Set(['Line', 'Area', 'GroupedBar', 'StackedBar', 'Scatter', 'Timeline', 'Boxplot', 'XYLabels', 'Plotband', 'Plotline']);
87
- const SINGLE_COMPONENTS = new Set(['Donut', 'NestedDonut', 'RadialBar', 'Sankey', 'Heatmap', 'Treemap', 'ChordDiagram', 'Graph', 'TopoJSONMap']);
90
+ export const XY_COMPONENTS = new Set(['Line', 'Area', 'GroupedBar', 'StackedBar', 'Scatter', 'Timeline', 'Boxplot', 'XYLabels', 'Plotband', 'Plotline']);
91
+ export const SINGLE_COMPONENTS = new Set(['Donut', 'NestedDonut', 'RadialBar', 'Sankey', 'Heatmap', 'Treemap', 'ChordDiagram', 'Graph', 'TopoJSONMap']);
88
92
  /** Components that finish rendering asynchronously (after layout calculation)
89
93
  * and expose their own onRenderComplete hook the renderer must await */
90
94
  export const ASYNC_COMPONENTS = new Set(['Graph']);
91
- function instantiateComponent(lib, spec, options) {
95
+ function instantiateComponent(lib, spec, options, locale) {
92
96
  const allowed = XY_COMPONENTS.has(spec.type) || SINGLE_COMPONENTS.has(spec.type);
93
97
  if (!allowed)
94
98
  throw new ChartInputError(`Unsupported component type: ${spec.type}`);
95
- const componentClass = lib[spec.type];
96
- if (!componentClass)
97
- throw new ChartInputError(`Component ${spec.type} is not available in this @unovis/ts build`);
98
- const config = materializeValue(spec.config);
99
+ // Own-property checks stay inline (not in a helper) so static analysis can
100
+ // see that spec-controlled names never reach inherited members
101
+ const componentClass = Object.prototype.hasOwnProperty.call(lib, spec.type)
102
+ ? lib[spec.type]
103
+ : undefined;
104
+ if (typeof componentClass !== 'function')
105
+ throw new ChartInputError(`Component ${spec.type} is not available in this bundle — regenerate the document for this chart type`);
106
+ const config = materializeValue(spec.config, locale);
99
107
  config.duration = options.duration ?? 0;
100
108
  if (ASYNC_COMPONENTS.has(spec.type) && options.onComponentComplete)
101
109
  config.onRenderComplete = options.onComponentComplete;
@@ -105,8 +113,10 @@ function instantiateComponent(lib, spec, options) {
105
113
  if (projection?.$mapProjection) {
106
114
  // eslint-disable-next-line @typescript-eslint/naming-convention
107
115
  const projections = lib.MapProjection;
108
- const factory = projections?.[projection.$mapProjection];
109
- if (!factory)
116
+ const factory = projections && Object.prototype.hasOwnProperty.call(projections, projection.$mapProjection)
117
+ ? projections[projection.$mapProjection]
118
+ : undefined;
119
+ if (typeof factory !== 'function')
110
120
  throw new ChartInputError(`Unknown map projection: ${projection.$mapProjection}`);
111
121
  config.projection = factory();
112
122
  }
@@ -114,20 +124,49 @@ function instantiateComponent(lib, spec, options) {
114
124
  return new componentClass(config);
115
125
  }
116
126
  export function materializeChart(lib, spec, options = {}) {
117
- const base = materializeValue(spec.containerConfig ?? {});
127
+ // Refused with a reason instead of the blank chart version drift produces
128
+ // otherwise. Semver-0.x rule: while the major is 0 the minor is the
129
+ // breaking-change counter, so a newer minor is refused too; from 1.0 on,
130
+ // minors are additive and only a newer major is refused.
131
+ if (spec.specVersion !== undefined) {
132
+ const parse = (value) => {
133
+ const match = /^(\d+)\.(\d+)$/.exec(String(value));
134
+ return match ? [Number(match[1]), Number(match[2])] : [Number.POSITIVE_INFINITY, 0];
135
+ };
136
+ const [major, minor] = parse(spec.specVersion);
137
+ const [supportedMajor, supportedMinor] = parse(SPEC_VERSION);
138
+ const newer = major > supportedMajor || (major === 0 && supportedMajor === 0 && minor > supportedMinor);
139
+ if (newer) {
140
+ throw new ChartInputError(`Chart spec version ${spec.specVersion} is newer than this renderer supports (${SPEC_VERSION}) — upgrade @unovis/mcp`);
141
+ }
142
+ }
143
+ const locale = spec.locale;
144
+ const base = materializeValue(spec.containerConfig ?? {}, locale);
118
145
  const duration = options.duration ?? 0;
119
146
  const size = options.responsive ? {} : { width: spec.width, height: spec.height };
120
147
  if (spec.container === 'xy') {
121
148
  const components = spec.components.map(c => {
122
149
  if (!XY_COMPONENTS.has(c.type))
123
150
  throw new ChartInputError(`${c.type} cannot be used in an XY container`);
124
- return instantiateComponent(lib, c, options);
151
+ return instantiateComponent(lib, c, options, locale);
125
152
  });
126
153
  const axisConfig = (axis, type) => {
127
154
  if (!axis)
128
155
  return undefined;
129
- return new lib.Axis({ ...materializeValue(axis), type, duration });
156
+ return new lib.Axis({ ...materializeValue(axis, locale), type, duration });
130
157
  };
158
+ // Hand-written specs usually omit tickValues; linear-scale defaults
159
+ // degenerate on time domains (one tick, time-of-day labels), so derive
160
+ // calendar-aligned ticks from the data the way the recipes do.
161
+ if (spec.xAxis && '$dateTickFormat' in (spec.xAxis.tickFormat ?? {}) && spec.xAxis.tickValues === undefined) {
162
+ const xField = spec.components[0]?.config?.x?.$field;
163
+ const records = Array.isArray(spec.data) ? spec.data : undefined;
164
+ if (xField && records) {
165
+ const tickValues = timeTickValuesFromData(records, xField);
166
+ if (tickValues)
167
+ spec = { ...spec, xAxis: { ...spec.xAxis, tickValues } };
168
+ }
169
+ }
131
170
  return {
132
171
  containerType: 'xy',
133
172
  containerConfig: {
@@ -144,7 +183,7 @@ export function materializeChart(lib, spec, options = {}) {
144
183
  }
145
184
  if (spec.components.length !== 1)
146
185
  throw new ChartInputError('single container requires exactly one component');
147
- const component = instantiateComponent(lib, spec.components[0], options);
186
+ const component = instantiateComponent(lib, spec.components[0], options, locale);
148
187
  return {
149
188
  containerType: 'single',
150
189
  containerConfig: {
@@ -1 +1 @@
1
- {"version":3,"file":"materialize.js","sourceRoot":"","sources":["../../src/render/materialize.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"materialize.js","sourceRoot":"","sources":["../../src/render/materialize.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,5 @@
1
- /** Spec-driven rendering: ChartSpec in, standalone SVG out.
2
- *
3
- * The headless mechanics (DOM, frame flushing, serialization) live in
4
- * headless.ts; this module only knows how to turn a spec into components.
5
- */
1
+ import type { RenderResult } from '@unovis/ssr';
6
2
  import { ChartInputError } from './materialize.js';
7
- import type { RenderResult } from './headless.js';
8
3
  import type { ChartSpec, ComponentSpec } from './spec.js';
9
4
  export { ChartInputError };
10
5
  export interface RenderOptions {
@@ -13,7 +8,7 @@ export interface RenderOptions {
13
8
  /** Keep emotion classes / skip style inlining (debug) */
14
9
  keepClasses?: boolean;
15
10
  }
16
- export type { RenderResult } from './headless.js';
11
+ export type { RenderResult } from '@unovis/ssr';
17
12
  /** Resolve `{ $unovisMap: name }` markers to lazily-imported TopoJSON data
18
13
  * (the map bundles are large — only loaded when a map chart renders) and
19
14
  * default `mapFeatureName` to the map's feature collection key. */
@@ -3,8 +3,8 @@
3
3
  * The headless mechanics (DOM, frame flushing, serialization) live in
4
4
  * headless.ts; this module only knows how to turn a spec into components.
5
5
  */
6
+ import { renderToSvg } from '@unovis/ssr';
6
7
  import { materializeChart, ChartInputError, ASYNC_COMPONENTS } from './materialize.js';
7
- import { renderToSvg } from './headless.js';
8
8
  export { ChartInputError };
9
9
  /** Unovis map names accepted in `{ $unovisMap: name }` config markers */
10
10
  const UNOVIS_MAPS = new Set([