semiotic 3.5.1 → 3.5.3

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 (127) hide show
  1. package/CLAUDE.md +26 -23
  2. package/README.md +27 -21
  3. package/ai/chartSuggestions.cjs +191 -3
  4. package/ai/componentMetadata.cjs +3 -3
  5. package/ai/dist/mcp-server.js +266 -48
  6. package/ai/examples.md +68 -0
  7. package/ai/schema.json +914 -1
  8. package/ai/system-prompt.md +4 -1
  9. package/dist/components/ThemeProvider.d.ts +2 -2
  10. package/dist/components/Tooltip/FlippingTooltip.d.ts +16 -1
  11. package/dist/components/charts/geo/FlowMap.d.ts +13 -4
  12. package/dist/components/charts/index.d.ts +6 -0
  13. package/dist/components/charts/network/OrbitDiagram.d.ts +5 -5
  14. package/dist/components/charts/network/ProcessSankey.d.ts +163 -0
  15. package/dist/components/charts/network/SankeyDiagram.d.ts +5 -1
  16. package/dist/components/charts/network/processSankey/algorithm.d.ts +193 -0
  17. package/dist/components/charts/network/processSankey/buildScenes.d.ts +51 -0
  18. package/dist/components/charts/network/processSankey/ribbonInputs.d.ts +32 -0
  19. package/dist/components/charts/network/processSankey/streamingLayout.d.ts +71 -0
  20. package/dist/components/charts/network/processSankey/tooltipUtils.d.ts +41 -0
  21. package/dist/components/charts/ordinal/BarChart.d.ts +12 -0
  22. package/dist/components/charts/ordinal/DotPlot.d.ts +9 -0
  23. package/dist/components/charts/ordinal/GaugeChart.d.ts +20 -0
  24. package/dist/components/charts/ordinal/SwimlaneChart.d.ts +5 -0
  25. package/dist/components/charts/realtime/RealtimeHeatmap.d.ts +2 -0
  26. package/dist/components/charts/realtime/RealtimeHistogram.d.ts +16 -11
  27. package/dist/components/charts/realtime/RealtimeLineChart.d.ts +2 -0
  28. package/dist/components/charts/realtime/RealtimeSwarmChart.d.ts +2 -0
  29. package/dist/components/charts/realtime/RealtimeWaterfallChart.d.ts +2 -0
  30. package/dist/components/charts/realtime/defaultRealtimeTooltip.d.ts +19 -0
  31. package/dist/components/charts/shared/axisExtent.d.ts +59 -0
  32. package/dist/components/charts/shared/chartSpecs.d.ts +75 -0
  33. package/dist/components/charts/shared/colorUtils.d.ts +8 -2
  34. package/dist/components/charts/shared/networkUtils.d.ts +3 -5
  35. package/dist/components/charts/shared/radialGeometry.d.ts +99 -0
  36. package/dist/components/charts/shared/regressionUtils.d.ts +59 -0
  37. package/dist/components/charts/shared/selectionUtils.d.ts +8 -1
  38. package/dist/components/charts/shared/streamPropsHelpers.d.ts +5 -0
  39. package/dist/components/charts/shared/tooltipUtils.d.ts +11 -0
  40. package/dist/components/charts/shared/types.d.ts +19 -0
  41. package/dist/components/charts/shared/useAreaSeriesSetup.d.ts +78 -0
  42. package/dist/components/charts/shared/useChartSetup.d.ts +2 -0
  43. package/dist/components/charts/shared/useCustomChartSetup.d.ts +1 -0
  44. package/dist/components/charts/shared/useEncodingDomain.d.ts +48 -0
  45. package/dist/components/charts/shared/useFrameImperativeHandle.d.ts +1 -1
  46. package/dist/components/charts/shared/useNetworkChartSetup.d.ts +150 -0
  47. package/dist/components/charts/shared/useOrdinalPieceStyle.d.ts +87 -0
  48. package/dist/components/charts/shared/useSeriesFeatures.d.ts +57 -0
  49. package/dist/components/charts/shared/useStreamStatus.d.ts +33 -0
  50. package/dist/components/charts/shared/useXYLineStyle.d.ts +69 -0
  51. package/dist/components/charts/shared/useXYPointStyle.d.ts +87 -0
  52. package/dist/components/charts/shared/withChartWrapper.d.ts +10 -3
  53. package/dist/components/charts/xy/AreaChart.d.ts +36 -2
  54. package/dist/components/charts/xy/BubbleChart.d.ts +9 -0
  55. package/dist/components/charts/xy/ConnectedScatterplot.d.ts +16 -0
  56. package/dist/components/charts/xy/DifferenceChart.d.ts +172 -0
  57. package/dist/components/charts/xy/LineChart.d.ts +26 -2
  58. package/dist/components/charts/xy/Scatterplot.d.ts +39 -1
  59. package/dist/components/geometry/ribbonGeometry.d.ts +76 -0
  60. package/dist/components/semiotic-ai.d.ts +2 -0
  61. package/dist/components/semiotic-network.d.ts +4 -0
  62. package/dist/components/semiotic-realtime.d.ts +2 -0
  63. package/dist/components/semiotic-utils.d.ts +4 -0
  64. package/dist/components/semiotic-xy.d.ts +2 -0
  65. package/dist/components/semiotic.d.ts +4 -4
  66. package/dist/components/server/renderToStaticSVG.d.ts +2 -1
  67. package/dist/components/server/serverChartConfigs.d.ts +3 -0
  68. package/dist/components/server/staticAnnotations.d.ts +1 -1
  69. package/dist/components/server/themeResolver.d.ts +7 -1
  70. package/dist/components/store/ThemeStore.d.ts +7 -1
  71. package/dist/components/stream/AccessibleDataTable.d.ts +2 -2
  72. package/dist/components/stream/GeoPipelineStore.d.ts +21 -0
  73. package/dist/components/stream/OrdinalSVGOverlay.d.ts +8 -0
  74. package/dist/components/stream/PipelineStore.d.ts +25 -13
  75. package/dist/components/stream/SVGOverlay.d.ts +9 -18
  76. package/dist/components/stream/accessorUtils.d.ts +2 -1
  77. package/dist/components/stream/annotationAccessorResolver.d.ts +39 -0
  78. package/dist/components/stream/geoTypes.d.ts +12 -0
  79. package/dist/components/stream/layouts/hierarchyLayoutPlugin.d.ts +1 -1
  80. package/dist/components/stream/networkTypes.d.ts +11 -0
  81. package/dist/components/stream/ordinalTypes.d.ts +27 -1
  82. package/dist/components/stream/renderers/cornerRadii.d.ts +33 -0
  83. package/dist/components/stream/renderers/wedgePathBuilder.d.ts +56 -0
  84. package/dist/components/stream/types.d.ts +127 -11
  85. package/dist/components/stream/xySceneBuilders/areaGradient.d.ts +20 -0
  86. package/dist/components/stream/xySceneBuilders/barScene.d.ts +2 -2
  87. package/dist/components/stream/xySceneBuilders/candlestickScene.d.ts +2 -2
  88. package/dist/components/stream/xySceneBuilders/heatmapScene.d.ts +2 -2
  89. package/dist/components/stream/xySceneBuilders/lineScene.d.ts +4 -3
  90. package/dist/components/stream/xySceneBuilders/pointScene.d.ts +2 -2
  91. package/dist/components/stream/xySceneBuilders/ribbonScene.d.ts +107 -0
  92. package/dist/components/stream/xySceneBuilders/swarmScene.d.ts +2 -2
  93. package/dist/components/stream/xySceneBuilders/types.d.ts +9 -12
  94. package/dist/components/stream/xySceneBuilders/waterfallScene.d.ts +2 -2
  95. package/dist/components/types/legendTypes.d.ts +1 -1
  96. package/dist/geo.min.js +1 -1
  97. package/dist/geo.module.min.js +1 -1
  98. package/dist/network.min.js +1 -1
  99. package/dist/network.module.min.js +1 -1
  100. package/dist/ordinal.min.js +1 -1
  101. package/dist/ordinal.module.min.js +1 -1
  102. package/dist/realtime.min.js +1 -1
  103. package/dist/realtime.module.min.js +1 -1
  104. package/dist/semiotic-ai.d.ts +2 -0
  105. package/dist/semiotic-ai.min.js +1 -1
  106. package/dist/semiotic-ai.module.min.js +1 -1
  107. package/dist/semiotic-data.min.js +1 -1
  108. package/dist/semiotic-data.module.min.js +1 -1
  109. package/dist/semiotic-network.d.ts +4 -0
  110. package/dist/semiotic-realtime.d.ts +2 -0
  111. package/dist/semiotic-recipes.min.js +1 -1
  112. package/dist/semiotic-recipes.module.min.js +1 -1
  113. package/dist/semiotic-themes.min.js +1 -1
  114. package/dist/semiotic-themes.module.min.js +1 -1
  115. package/dist/semiotic-utils.d.ts +4 -0
  116. package/dist/semiotic-utils.min.js +1 -1
  117. package/dist/semiotic-utils.module.min.js +1 -1
  118. package/dist/semiotic-xy.d.ts +2 -0
  119. package/dist/semiotic.d.ts +4 -4
  120. package/dist/semiotic.min.js +1 -1
  121. package/dist/semiotic.module.min.js +1 -1
  122. package/dist/server.min.js +1 -1
  123. package/dist/server.module.min.js +1 -1
  124. package/dist/xy.min.js +1 -1
  125. package/dist/xy.module.min.js +1 -1
  126. package/package.json +23 -10
  127. package/dist/components/stream/xySceneBuilders/boundsScene.d.ts +0 -9
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "semiotic",
3
- "version": "3.5.1",
3
+ "version": "3.5.3",
4
4
  "mcpName": "io.github.nteract/semiotic",
5
5
  "description": "React data visualization library with built-in MCP server for AI-assisted chart generation",
6
6
  "main": "dist/semiotic.min.js",
@@ -111,13 +111,14 @@
111
111
  "pretest:dist": "node --max-old-space-size=8192 scripts/build.mjs",
112
112
  "test:dist": "playwright test",
113
113
  "test:visual:update": "playwright test --update-snapshots",
114
+ "test:visual:bootstrap": "playwright test --update-snapshots=missing",
114
115
  "bench": "vitest bench",
115
116
  "bench:ui": "vitest bench --ui",
116
117
  "bench:baseline": "node scripts/save-bench-baseline.mjs",
117
118
  "bench:compare": "node scripts/compare-bench-baseline.mjs",
118
119
  "bench:pr-vs-main": "node scripts/bench-pr-vs-main.mjs",
119
- "serve-examples": "npm run dist && parcel serve integration-tests/index.html integration-tests/xy-examples/index.html integration-tests/ordinal-examples/index.html integration-tests/network-examples/index.html integration-tests/hoc-legend-examples/index.html integration-tests/coordinated-examples/index.html integration-tests/accessibility-examples/index.html integration-tests/geo-examples/index.html integration-tests/realtime-examples/index.html integration-tests/streaming-regression-examples/index.html integration-tests/themed-examples/index.html integration-tests/background-graphics-examples/index.html integration-tests/histogram-theme-stroke-examples/index.html integration-tests/primitive-theme-matrix-examples/index.html integration-tests/status-scale-theme-examples/index.html integration-tests/primitive-props-examples/index.html integration-tests/chart-modes-examples/index.html integration-tests/ssr-parity-examples/index.html --dist-dir .parcel-cache/integration-tests",
120
- "serve-examples:ci": "parcel serve integration-tests/index.html integration-tests/xy-examples/index.html integration-tests/ordinal-examples/index.html integration-tests/network-examples/index.html integration-tests/hoc-legend-examples/index.html integration-tests/coordinated-examples/index.html integration-tests/accessibility-examples/index.html integration-tests/geo-examples/index.html integration-tests/realtime-examples/index.html integration-tests/streaming-regression-examples/index.html integration-tests/themed-examples/index.html integration-tests/background-graphics-examples/index.html integration-tests/histogram-theme-stroke-examples/index.html integration-tests/primitive-theme-matrix-examples/index.html integration-tests/status-scale-theme-examples/index.html integration-tests/primitive-props-examples/index.html integration-tests/chart-modes-examples/index.html integration-tests/ssr-parity-examples/index.html --dist-dir .parcel-cache/integration-tests",
120
+ "serve-examples": "npm run dist && parcel serve integration-tests/index.html integration-tests/xy-examples/index.html integration-tests/ordinal-examples/index.html integration-tests/network-examples/index.html integration-tests/hoc-legend-examples/index.html integration-tests/coordinated-examples/index.html integration-tests/accessibility-examples/index.html integration-tests/geo-examples/index.html integration-tests/realtime-examples/index.html integration-tests/streaming-regression-examples/index.html integration-tests/themed-examples/index.html integration-tests/background-graphics-examples/index.html integration-tests/histogram-theme-stroke-examples/index.html integration-tests/primitive-theme-matrix-examples/index.html integration-tests/status-scale-theme-examples/index.html integration-tests/primitive-props-examples/index.html integration-tests/chart-modes-examples/index.html integration-tests/ssr-parity-examples/index.html integration-tests/process-sankey-examples/index.html --dist-dir .parcel-cache/integration-tests",
121
+ "serve-examples:ci": "parcel serve integration-tests/index.html integration-tests/xy-examples/index.html integration-tests/ordinal-examples/index.html integration-tests/network-examples/index.html integration-tests/hoc-legend-examples/index.html integration-tests/coordinated-examples/index.html integration-tests/accessibility-examples/index.html integration-tests/geo-examples/index.html integration-tests/realtime-examples/index.html integration-tests/streaming-regression-examples/index.html integration-tests/themed-examples/index.html integration-tests/background-graphics-examples/index.html integration-tests/histogram-theme-stroke-examples/index.html integration-tests/primitive-theme-matrix-examples/index.html integration-tests/status-scale-theme-examples/index.html integration-tests/primitive-props-examples/index.html integration-tests/chart-modes-examples/index.html integration-tests/ssr-parity-examples/index.html integration-tests/process-sankey-examples/index.html --dist-dir .parcel-cache/integration-tests",
121
122
  "dist": "node --max-old-space-size=8192 scripts/build.mjs",
122
123
  "dist:prod": "node --max-old-space-size=8192 scripts/build.mjs --production",
123
124
  "lint": "eslint src",
@@ -131,12 +132,16 @@
131
132
  "website:start:clean": "npm run clean && npm run dist:prod && parcel serve --target website --no-cache",
132
133
  "generate:ssr-gallery": "npx tsx scripts/ssr-gallery.tsx > docs/public/ssr-gallery.html 2>/dev/null",
133
134
  "generate:demo-gifs": "node -e \"try{require.resolve('sharp');require.resolve('gifenc')}catch{console.log('Skipping GIF generation (sharp/gifenc not installed)');process.exit(0)}\" && npx tsx scripts/generate-demo-gifs.ts",
134
- "website:build": "npm run dist:prod && npm run docs:api:json && npm run generate:ssr-gallery && npm run generate:demo-gifs && parcel build --target website && node scripts/prerender.mjs && npm run check:docs-routes",
135
+ "generate:blog-og-cards": "node scripts/generate-blog-og-cards.mjs",
136
+ "generate:blog-rss": "node scripts/generate-blog-rss.mjs",
137
+ "website:build": "npm run dist:prod && npm run docs:api:json && npm run generate:ssr-gallery && npm run generate:demo-gifs && npm run check:blog-entries && npm run generate:blog-og-cards && npm run generate:blog-rss && parcel build --target website && node scripts/prerender.mjs && npm run check:docs-routes",
135
138
  "build:mcp": "esbuild ai/mcp-server.ts --bundle --platform=node --target=node18 --format=cjs --outfile=ai/dist/mcp-server.js --external:react --external:react-dom --external:semiotic --external:semiotic/ai --external:semiotic/geo --banner:js='#!/usr/bin/env node'",
136
139
  "docs:api": "typedoc",
137
140
  "docs:api:json": "typedoc --json docs/public/api/api.json && node scripts/generate-component-descriptions.mjs",
138
141
  "docs:descriptions:json": "node scripts/generate-component-descriptions.mjs",
139
142
  "typescript": "tsc --noEmit",
143
+ "typescript:tests": "node scripts/check-test-types.mjs",
144
+ "typescript:tests:raw": "tsc -p tsconfig.tests.json --noEmit --pretty false",
140
145
  "typescript:mcp": "tsc -p tsconfig.mcp.json --noEmit",
141
146
  "size": "size-limit",
142
147
  "check:pack": "node scripts/smoke-pack.mjs",
@@ -149,14 +154,19 @@
149
154
  "check:surface": "node scripts/check-surface-parity.js",
150
155
  "check:ai-contracts": "node scripts/generate-ai-behavior-contracts.mjs --check",
151
156
  "check:ssr": "node scripts/check-ssr-alignment.js",
157
+ "check:capabilities": "node scripts/check-capabilities.mjs",
158
+ "docs:capabilities": "node scripts/generate-capabilities-md.mjs && node scripts/generate-capabilities-json.mjs",
152
159
  "check:chart-specs": "npx tsx scripts/check-chart-specs.ts",
153
160
  "docs:chart-specs:schema": "npx tsx scripts/regenerate-schema.ts",
154
161
  "check:test-quality": "node scripts/check-test-quality-gate.mjs",
155
162
  "check:jsdoc-coverage": "node scripts/check-jsdoc-coverage.mjs",
156
163
  "check:ai-examples-coverage": "node scripts/check-ai-examples-coverage.mjs",
157
164
  "check:docs-routes": "node scripts/check-docs-routes.mjs",
158
- "release:check": "npm run lint && npm run typescript && npm run typescript:mcp && npm run test && npm run check:chart-specs && npm run check:claude-md-coverage && npm run check:context7 && npm run check:mcp-registry && npm run check:surface && npm run check:ai-contracts && npm run check:ssr && npm run check:test-quality && npm run check:jsdoc-coverage && npm run check:ai-examples-coverage && npm run dist:prod && npm run size && npm run check:pack && npm pack --dry-run",
159
- "prepublishOnly": "npm run lint && npm run typescript && npm run typescript:mcp && npm run test && npm run check:chart-specs && npm run check:claude-md-coverage && npm run check:context7 && npm run check:mcp-registry && npm run check:surface && npm run check:ai-contracts && npm run check:ssr && npm run check:test-quality && npm run check:jsdoc-coverage && npm run check:ai-examples-coverage && rm -rf dist && npm run dist:prod && npm run size"
165
+ "check:blog-entries": "node scripts/check-blog-entry-sync.mjs",
166
+ "check:bundle-sizes": "node scripts/sync-bundle-sizes.mjs --check",
167
+ "docs:bundle-sizes": "node scripts/sync-bundle-sizes.mjs",
168
+ "release:check": "npm run lint && npm run typescript && npm run typescript:tests && npm run typescript:mcp && npm run test && npm run check:chart-specs && npm run check:capabilities && npm run check:blog-entries && npm run check:claude-md-coverage && npm run check:context7 && npm run check:mcp-registry && npm run check:surface && npm run check:ai-contracts && npm run check:ssr && npm run check:test-quality && npm run check:jsdoc-coverage && npm run check:ai-examples-coverage && npm run dist:prod && npm run check:bundle-sizes && npm run size && npm run check:pack && npm pack --dry-run",
169
+ "prepublishOnly": "npm run lint && npm run typescript && npm run typescript:tests && npm run typescript:mcp && npm run test && npm run check:chart-specs && npm run check:capabilities && npm run check:blog-entries && npm run check:claude-md-coverage && npm run check:context7 && npm run check:mcp-registry && npm run check:surface && npm run check:ai-contracts && npm run check:ssr && npm run check:test-quality && npm run check:jsdoc-coverage && npm run check:ai-examples-coverage && rm -rf dist && npm run dist:prod && npm run check:bundle-sizes && npm run size"
160
170
  },
161
171
  "targets": {
162
172
  "website": {
@@ -237,8 +247,11 @@
237
247
  ],
238
248
  "devDependencies": {
239
249
  "@axe-core/playwright": "^4.11.2",
250
+ "@eslint/js": "^9.39.4",
240
251
  "@modelcontextprotocol/sdk": "^1.29.0",
252
+ "@parcel/packager-xml": "^2.16.4",
241
253
  "@parcel/transformer-inline-string": "^2.16.4",
254
+ "@parcel/transformer-xml": "^2.16.4",
242
255
  "@playwright/test": "^1.59.1",
243
256
  "@rollup/plugin-node-resolve": "^16.0.3",
244
257
  "@rollup/plugin-terser": "^1.0.0",
@@ -275,14 +288,12 @@
275
288
  "esbuild": "^0.28.0",
276
289
  "eslint": "^9.39.4",
277
290
  "eslint-plugin-react": "^7.37.5",
278
- "@eslint/js": "^9.39.4",
279
- "globals": "^17.5.0",
280
- "typescript-eslint": "^8.59.0",
281
291
  "events": "^3.3.0",
292
+ "globals": "^17.5.0",
282
293
  "jsdom": "^29.0.2",
283
294
  "marked": "^18.0.2",
284
- "os-browserify": "^0.3.0",
285
295
  "marked-gfm-heading-id": "^4.1.4",
296
+ "os-browserify": "^0.3.0",
286
297
  "parcel": "^2.16.4",
287
298
  "path-browserify": "^1.0.1",
288
299
  "playwright-chromium": "^1.59.1",
@@ -298,8 +309,10 @@
298
309
  "seedrandom": "^3.0.5",
299
310
  "size-limit": "^12.0.0",
300
311
  "stream-browserify": "^3.0.0",
312
+ "tsx": "^4.22.2",
301
313
  "typedoc": "^0.28.19",
302
314
  "typescript": "~6.0.3",
315
+ "typescript-eslint": "^8.59.0",
303
316
  "util": "^0.12.5",
304
317
  "vitest": "^4.1.4",
305
318
  "vm-browserify": "^1.1.2"
@@ -1,9 +0,0 @@
1
- import type { Datum } from "../../charts/shared/datumTypes";
2
- /**
3
- * Bounds scene builder — produces an AreaSceneNode for confidence bands/envelopes.
4
- *
5
- * Consumed by: lineScene (renders bounds behind lines)
6
- */
7
- import type { AreaSceneNode } from "../types";
8
- import type { XYSceneContext } from "./types";
9
- export declare function buildBoundsForGroup(ctx: XYSceneContext, data: Datum[], group: string): AreaSceneNode | null;