semiotic 3.0.0-beta.2 → 3.0.0-beta.4

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 (342) hide show
  1. package/CLAUDE.md +93 -753
  2. package/README.md +92 -7
  3. package/ai/dist/componentRegistry.js +26 -0
  4. package/ai/dist/{ai/mcp-server.js → mcp-server.js} +1 -1
  5. package/ai/dist/{ai/renderHOCToSVG.js → renderHOCToSVG.js} +2 -2
  6. package/dist/ChartContainer.d.ts +60 -0
  7. package/dist/DetailsPanel.d.ts +37 -0
  8. package/dist/LinkedCharts.d.ts +2 -0
  9. package/dist/Tooltip/Tooltip.d.ts +2 -2
  10. package/dist/charts/index.d.ts +1 -1
  11. package/dist/charts/ordinal/BarChart.d.ts +1 -0
  12. package/dist/charts/ordinal/BoxPlot.d.ts +1 -0
  13. package/dist/charts/ordinal/DonutChart.d.ts +1 -0
  14. package/dist/charts/ordinal/DotPlot.d.ts +1 -0
  15. package/dist/charts/ordinal/GroupedBarChart.d.ts +1 -0
  16. package/dist/charts/ordinal/Histogram.d.ts +1 -0
  17. package/dist/charts/ordinal/PieChart.d.ts +1 -0
  18. package/dist/charts/ordinal/RidgelinePlot.d.ts +1 -0
  19. package/dist/charts/ordinal/StackedBarChart.d.ts +1 -0
  20. package/dist/charts/ordinal/SwarmPlot.d.ts +1 -0
  21. package/dist/charts/ordinal/ViolinPlot.d.ts +1 -0
  22. package/dist/charts/realtime/RealtimeHeatmap.d.ts +11 -0
  23. package/dist/charts/realtime/RealtimeHistogram.d.ts +15 -1
  24. package/dist/charts/realtime/RealtimeLineChart.d.ts +6 -0
  25. package/dist/charts/realtime/RealtimeSwarmChart.d.ts +6 -0
  26. package/dist/charts/realtime/RealtimeWaterfallChart.d.ts +6 -0
  27. package/dist/charts/shared/annotationRules.d.ts +3 -0
  28. package/dist/charts/shared/colorUtils.d.ts +17 -11
  29. package/dist/charts/shared/hooks.d.ts +96 -1
  30. package/dist/charts/shared/loess.d.ts +13 -0
  31. package/dist/charts/shared/networkUtils.d.ts +31 -0
  32. package/dist/charts/shared/tooltipUtils.d.ts +16 -0
  33. package/dist/charts/shared/types.d.ts +17 -2
  34. package/dist/charts/shared/validateChartData.d.ts +2 -3
  35. package/dist/charts/shared/validateProps.d.ts +18 -0
  36. package/dist/charts/xy/AreaChart.d.ts +4 -0
  37. package/dist/charts/xy/BubbleChart.d.ts +6 -0
  38. package/dist/charts/xy/Heatmap.d.ts +4 -0
  39. package/dist/charts/xy/LineChart.d.ts +6 -0
  40. package/dist/charts/xy/Scatterplot.d.ts +4 -0
  41. package/dist/charts/xy/StackedAreaChart.d.ts +4 -0
  42. package/dist/data/fromVegaLite.d.ts +48 -0
  43. package/dist/export/chartConfig.d.ts +29 -0
  44. package/dist/export/selectionSerializer.d.ts +20 -0
  45. package/dist/geometry/sankeyLinks.d.ts +1 -1
  46. package/dist/network.min.js +1 -1
  47. package/dist/network.module.min.js +1 -1
  48. package/dist/ordinal.min.js +1 -1
  49. package/dist/ordinal.module.min.js +1 -1
  50. package/dist/realtime/types.d.ts +20 -6
  51. package/dist/realtime.min.js +1 -1
  52. package/dist/realtime.module.min.js +1 -1
  53. package/dist/semiotic-ai.d.ts +14 -0
  54. package/dist/semiotic-ai.min.js +1 -1
  55. package/dist/semiotic-ai.module.min.js +1 -1
  56. package/dist/semiotic-data.d.ts +2 -0
  57. package/dist/semiotic-data.min.js +1 -1
  58. package/dist/semiotic-data.module.min.js +1 -1
  59. package/dist/semiotic-network.d.ts +9 -19
  60. package/dist/semiotic-ordinal.d.ts +12 -14
  61. package/dist/semiotic-xy.d.ts +12 -18
  62. package/dist/semiotic.d.ts +16 -13
  63. package/dist/semiotic.min.js +1 -1
  64. package/dist/semiotic.module.min.js +1 -1
  65. package/dist/server.min.js +1 -1
  66. package/dist/server.module.min.js +1 -1
  67. package/dist/store/ObservationStore.d.ts +61 -0
  68. package/dist/store/SelectionStore.d.ts +9 -1
  69. package/dist/store/ThemeStore.d.ts +6 -1
  70. package/dist/store/TooltipStore.d.ts +3 -1
  71. package/dist/store/createStore.d.ts +4 -1
  72. package/dist/store/useObservation.d.ts +18 -0
  73. package/dist/stream/MarginalGraphics.d.ts +1 -1
  74. package/dist/stream/NetworkPipelineStore.d.ts +44 -0
  75. package/dist/stream/OrdinalCanvasHitTester.d.ts +1 -0
  76. package/dist/stream/OrdinalSVGOverlay.d.ts +6 -2
  77. package/dist/stream/ParticlePool.d.ts +2 -1
  78. package/dist/stream/PipelineStore.d.ts +11 -0
  79. package/dist/stream/SVGOverlay.d.ts +21 -2
  80. package/dist/stream/SceneGraph.d.ts +1 -1
  81. package/dist/stream/networkTypes.d.ts +58 -1
  82. package/dist/stream/ordinalTypes.d.ts +13 -0
  83. package/dist/stream/types.d.ts +14 -0
  84. package/dist/types/annotationTypes.d.ts +10 -0
  85. package/dist/types/networkTypes.d.ts +1 -2
  86. package/dist/xy.min.js +1 -1
  87. package/dist/xy.module.min.js +1 -1
  88. package/package.json +30 -42
  89. package/ai/dist/ai/componentRegistry.js +0 -45
  90. package/ai/dist/src/components/Annotation.js +0 -358
  91. package/ai/dist/src/components/AnnotationLayer/AnnotationLayer.js +0 -369
  92. package/ai/dist/src/components/Axis/Axis.js +0 -374
  93. package/ai/dist/src/components/Axis/axisTitle.js +0 -14
  94. package/ai/dist/src/components/Axis/index.js +0 -7
  95. package/ai/dist/src/components/Axis/summaryGraphic.js +0 -37
  96. package/ai/dist/src/components/Brush.js +0 -84
  97. package/ai/dist/src/components/ChartErrorBoundary.js +0 -91
  98. package/ai/dist/src/components/DividedLine.js +0 -65
  99. package/ai/dist/src/components/Legend.js +0 -140
  100. package/ai/dist/src/components/LinkedCharts.js +0 -95
  101. package/ai/dist/src/components/ThemeProvider.js +0 -79
  102. package/ai/dist/src/components/Tooltip/Tooltip.js +0 -309
  103. package/ai/dist/src/components/TooltipPositioner/index.js +0 -132
  104. package/ai/dist/src/components/annotationLayerBehavior/annotationHandling.js +0 -73
  105. package/ai/dist/src/components/annotationLayerBehavior/d3labeler.js +0 -254
  106. package/ai/dist/src/components/annotationRules/baseRules.js +0 -150
  107. package/ai/dist/src/components/annotationRules/networkframeRules.js +0 -196
  108. package/ai/dist/src/components/annotationRules/xyframeRules.js +0 -297
  109. package/ai/dist/src/components/batchWork.js +0 -35
  110. package/ai/dist/src/components/charts/index.js +0 -109
  111. package/ai/dist/src/components/charts/network/ChordDiagram.js +0 -142
  112. package/ai/dist/src/components/charts/network/CirclePack.js +0 -108
  113. package/ai/dist/src/components/charts/network/ForceDirectedGraph.js +0 -121
  114. package/ai/dist/src/components/charts/network/SankeyDiagram.js +0 -155
  115. package/ai/dist/src/components/charts/network/TreeDiagram.js +0 -110
  116. package/ai/dist/src/components/charts/network/Treemap.js +0 -106
  117. package/ai/dist/src/components/charts/ordinal/BarChart.js +0 -156
  118. package/ai/dist/src/components/charts/ordinal/BoxPlot.js +0 -139
  119. package/ai/dist/src/components/charts/ordinal/DonutChart.js +0 -130
  120. package/ai/dist/src/components/charts/ordinal/DotPlot.js +0 -126
  121. package/ai/dist/src/components/charts/ordinal/GroupedBarChart.js +0 -129
  122. package/ai/dist/src/components/charts/ordinal/Histogram.js +0 -132
  123. package/ai/dist/src/components/charts/ordinal/PieChart.js +0 -128
  124. package/ai/dist/src/components/charts/ordinal/RidgelinePlot.js +0 -130
  125. package/ai/dist/src/components/charts/ordinal/StackedBarChart.js +0 -130
  126. package/ai/dist/src/components/charts/ordinal/SwarmPlot.js +0 -147
  127. package/ai/dist/src/components/charts/ordinal/ViolinPlot.js +0 -138
  128. package/ai/dist/src/components/charts/realtime/RealtimeHeatmap.js +0 -79
  129. package/ai/dist/src/components/charts/realtime/RealtimeHistogram.js +0 -114
  130. package/ai/dist/src/components/charts/realtime/RealtimeLineChart.js +0 -93
  131. package/ai/dist/src/components/charts/realtime/RealtimeSwarmChart.js +0 -105
  132. package/ai/dist/src/components/charts/realtime/RealtimeWaterfallChart.js +0 -106
  133. package/ai/dist/src/components/charts/shared/ChartError.js +0 -72
  134. package/ai/dist/src/components/charts/shared/colorUtils.js +0 -138
  135. package/ai/dist/src/components/charts/shared/formatUtils.js +0 -213
  136. package/ai/dist/src/components/charts/shared/hooks.js +0 -49
  137. package/ai/dist/src/components/charts/shared/legendUtils.js +0 -57
  138. package/ai/dist/src/components/charts/shared/selectionUtils.js +0 -67
  139. package/ai/dist/src/components/charts/shared/tooltipUtils.js +0 -79
  140. package/ai/dist/src/components/charts/shared/types.js +0 -2
  141. package/ai/dist/src/components/charts/shared/validateChartData.js +0 -82
  142. package/ai/dist/src/components/charts/shared/validateProps.js +0 -736
  143. package/ai/dist/src/components/charts/xy/AreaChart.js +0 -230
  144. package/ai/dist/src/components/charts/xy/BubbleChart.js +0 -251
  145. package/ai/dist/src/components/charts/xy/Heatmap.js +0 -235
  146. package/ai/dist/src/components/charts/xy/LineChart.js +0 -307
  147. package/ai/dist/src/components/charts/xy/MinimapChart.js +0 -298
  148. package/ai/dist/src/components/charts/xy/Scatterplot.js +0 -172
  149. package/ai/dist/src/components/charts/xy/ScatterplotMatrix.js +0 -426
  150. package/ai/dist/src/components/charts/xy/StackedAreaChart.js +0 -231
  151. package/ai/dist/src/components/constants/coordinateNames.js +0 -11
  152. package/ai/dist/src/components/constants/frame_props.js +0 -251
  153. package/ai/dist/src/components/data/dataFunctions.js +0 -487
  154. package/ai/dist/src/components/data/multiAccessorUtils.js +0 -14
  155. package/ai/dist/src/components/data/transforms.js +0 -143
  156. package/ai/dist/src/components/data/unflowedFunctions.js +0 -5
  157. package/ai/dist/src/components/export/exportChart.js +0 -121
  158. package/ai/dist/src/components/generic_utilities/functions.js +0 -5
  159. package/ai/dist/src/components/geometry/areaDrawing.js +0 -312
  160. package/ai/dist/src/components/geometry/contourLayout.js +0 -73
  161. package/ai/dist/src/components/geometry/hexbinLayout.js +0 -163
  162. package/ai/dist/src/components/geometry/lineDrawing.js +0 -356
  163. package/ai/dist/src/components/geometry/sankeyLinks.js +0 -331
  164. package/ai/dist/src/components/geometry/summaryLayouts.js +0 -136
  165. package/ai/dist/src/components/index.js +0 -18
  166. package/ai/dist/src/components/processing/InteractionItems.js +0 -223
  167. package/ai/dist/src/components/processing/hierarchyUtils.js +0 -104
  168. package/ai/dist/src/components/processing/layouts/chordLayout.js +0 -58
  169. package/ai/dist/src/components/processing/layouts/forceLayout.js +0 -142
  170. package/ai/dist/src/components/processing/layouts/hierarchyLayout.js +0 -31
  171. package/ai/dist/src/components/processing/layouts/index.js +0 -32
  172. package/ai/dist/src/components/processing/layouts/sankeyLayout.js +0 -96
  173. package/ai/dist/src/components/processing/layouts/simpleLayouts.js +0 -34
  174. package/ai/dist/src/components/processing/layouts/types.js +0 -2
  175. package/ai/dist/src/components/processing/networkDefaults.js +0 -39
  176. package/ai/dist/src/components/realtime/BinAccumulator.js +0 -36
  177. package/ai/dist/src/components/realtime/IncrementalExtent.js +0 -55
  178. package/ai/dist/src/components/realtime/RingBuffer.js +0 -104
  179. package/ai/dist/src/components/realtime/renderers/barRenderer.js +0 -133
  180. package/ai/dist/src/components/realtime/renderers/candlestickRenderer.js +0 -7
  181. package/ai/dist/src/components/realtime/renderers/lineRenderer.js +0 -164
  182. package/ai/dist/src/components/realtime/renderers/swarmRenderer.js +0 -91
  183. package/ai/dist/src/components/realtime/renderers/types.js +0 -2
  184. package/ai/dist/src/components/realtime/renderers/waterfallRenderer.js +0 -163
  185. package/ai/dist/src/components/realtime/types.js +0 -2
  186. package/ai/dist/src/components/semiotic-ai.js +0 -89
  187. package/ai/dist/src/components/semiotic-data.js +0 -12
  188. package/ai/dist/src/components/semiotic-network.js +0 -38
  189. package/ai/dist/src/components/semiotic-ordinal.js +0 -28
  190. package/ai/dist/src/components/semiotic-realtime.js +0 -30
  191. package/ai/dist/src/components/semiotic-server.js +0 -8
  192. package/ai/dist/src/components/semiotic-xy.js +0 -35
  193. package/ai/dist/src/components/semiotic.js +0 -109
  194. package/ai/dist/src/components/server/renderToStaticSVG.js +0 -594
  195. package/ai/dist/src/components/store/SelectionStore.js +0 -91
  196. package/ai/dist/src/components/store/ThemeStore.js +0 -78
  197. package/ai/dist/src/components/store/TooltipStore.js +0 -13
  198. package/ai/dist/src/components/store/createStore.js +0 -81
  199. package/ai/dist/src/components/store/useSelection.js +0 -133
  200. package/ai/dist/src/components/stream/CanvasHitTester.js +0 -164
  201. package/ai/dist/src/components/stream/DataSourceAdapter.js +0 -99
  202. package/ai/dist/src/components/stream/MarginalGraphics.js +0 -266
  203. package/ai/dist/src/components/stream/NetworkCanvasHitTester.js +0 -228
  204. package/ai/dist/src/components/stream/NetworkPipelineStore.js +0 -498
  205. package/ai/dist/src/components/stream/NetworkSVGOverlay.js +0 -70
  206. package/ai/dist/src/components/stream/NetworkSceneGraph.js +0 -38
  207. package/ai/dist/src/components/stream/OrdinalCanvasHitTester.js +0 -146
  208. package/ai/dist/src/components/stream/OrdinalPipelineStore.js +0 -786
  209. package/ai/dist/src/components/stream/OrdinalSVGOverlay.js +0 -130
  210. package/ai/dist/src/components/stream/ParticlePool.js +0 -174
  211. package/ai/dist/src/components/stream/PipelineStore.js +0 -1243
  212. package/ai/dist/src/components/stream/SVGOverlay.js +0 -129
  213. package/ai/dist/src/components/stream/SceneGraph.js +0 -132
  214. package/ai/dist/src/components/stream/StreamNetworkFrame.js +0 -561
  215. package/ai/dist/src/components/stream/StreamOrdinalFrame.js +0 -492
  216. package/ai/dist/src/components/stream/StreamXYFrame.js +0 -590
  217. package/ai/dist/src/components/stream/accessorUtils.js +0 -20
  218. package/ai/dist/src/components/stream/index.js +0 -32
  219. package/ai/dist/src/components/stream/layouts/chordLayoutPlugin.js +0 -352
  220. package/ai/dist/src/components/stream/layouts/forceLayoutPlugin.js +0 -230
  221. package/ai/dist/src/components/stream/layouts/hierarchyLayoutPlugin.js +0 -568
  222. package/ai/dist/src/components/stream/layouts/index.js +0 -28
  223. package/ai/dist/src/components/stream/layouts/sankeyLayoutPlugin.js +0 -245
  224. package/ai/dist/src/components/stream/networkTypes.js +0 -17
  225. package/ai/dist/src/components/stream/ordinalSceneBuilders/barScene.js +0 -126
  226. package/ai/dist/src/components/stream/ordinalSceneBuilders/connectorScene.js +0 -62
  227. package/ai/dist/src/components/stream/ordinalSceneBuilders/pieScene.js +0 -33
  228. package/ai/dist/src/components/stream/ordinalSceneBuilders/pointScene.js +0 -63
  229. package/ai/dist/src/components/stream/ordinalSceneBuilders/statisticalScene.js +0 -278
  230. package/ai/dist/src/components/stream/ordinalSceneBuilders/timelineScene.js +0 -30
  231. package/ai/dist/src/components/stream/ordinalSceneBuilders/types.js +0 -2
  232. package/ai/dist/src/components/stream/ordinalTypes.js +0 -2
  233. package/ai/dist/src/components/stream/renderers/areaCanvasRenderer.js +0 -48
  234. package/ai/dist/src/components/stream/renderers/barCanvasRenderer.js +0 -70
  235. package/ai/dist/src/components/stream/renderers/boxplotCanvasRenderer.js +0 -75
  236. package/ai/dist/src/components/stream/renderers/candlestickCanvasRenderer.js +0 -28
  237. package/ai/dist/src/components/stream/renderers/connectorCanvasRenderer.js +0 -47
  238. package/ai/dist/src/components/stream/renderers/heatmapCanvasRenderer.js +0 -31
  239. package/ai/dist/src/components/stream/renderers/lineCanvasRenderer.js +0 -140
  240. package/ai/dist/src/components/stream/renderers/networkArcRenderer.js +0 -38
  241. package/ai/dist/src/components/stream/renderers/networkCircleRenderer.js +0 -37
  242. package/ai/dist/src/components/stream/renderers/networkEdgeRenderer.js +0 -102
  243. package/ai/dist/src/components/stream/renderers/networkParticleRenderer.js +0 -63
  244. package/ai/dist/src/components/stream/renderers/networkRectRenderer.js +0 -35
  245. package/ai/dist/src/components/stream/renderers/pointCanvasRenderer.js +0 -38
  246. package/ai/dist/src/components/stream/renderers/swarmCanvasRenderer.js +0 -10
  247. package/ai/dist/src/components/stream/renderers/types.js +0 -2
  248. package/ai/dist/src/components/stream/renderers/violinCanvasRenderer.js +0 -47
  249. package/ai/dist/src/components/stream/renderers/waterfallCanvasRenderer.js +0 -38
  250. package/ai/dist/src/components/stream/renderers/wedgeCanvasRenderer.js +0 -33
  251. package/ai/dist/src/components/stream/types.js +0 -2
  252. package/ai/dist/src/components/types/annotationTypes.js +0 -2
  253. package/ai/dist/src/components/types/canvasTypes.js +0 -2
  254. package/ai/dist/src/components/types/generalTypes.js +0 -2
  255. package/ai/dist/src/components/types/interactionTypes.js +0 -2
  256. package/ai/dist/src/components/types/legendTypes.js +0 -2
  257. package/ai/dist/src/components/types/networkTypes.js +0 -2
  258. package/ai/dist/src/components/types/ordinalTypes.js +0 -2
  259. package/ai/dist/src/components/types/xyTypes.js +0 -2
  260. package/ai/dist/src/components/useBoundingRect.js +0 -24
  261. package/ai/dist/src/components/visualizationLayerBehavior/axis.js +0 -301
  262. package/ai/dist/src/components/visualizationLayerBehavior/general.js +0 -435
  263. package/ai/dist/src/setupTests.js +0 -4
  264. package/dist/AnnotationLayer/AnnotationLayer.d.ts +0 -25
  265. package/dist/Axis/Axis.d.ts +0 -7
  266. package/dist/Axis/axisTitle.d.ts +0 -10
  267. package/dist/Axis/index.d.ts +0 -2
  268. package/dist/Axis/summaryGraphic.d.ts +0 -17
  269. package/dist/Brush.d.ts +0 -12
  270. package/dist/DividedLine.d.ts +0 -16
  271. package/dist/TooltipPositioner/index.d.ts +0 -7
  272. package/dist/annotationLayerBehavior/annotationHandling.d.ts +0 -19
  273. package/dist/annotationLayerBehavior/d3labeler.d.ts +0 -9
  274. package/dist/annotationRules/baseRules.d.ts +0 -25
  275. package/dist/annotationRules/networkframeRules.d.ts +0 -48
  276. package/dist/annotationRules/xyframeRules.d.ts +0 -117
  277. package/dist/batchWork.d.ts +0 -6
  278. package/dist/constants/coordinateNames.d.ts +0 -8
  279. package/dist/constants/frame_props.d.ts +0 -13
  280. package/dist/data/dataFunctions.d.ts +0 -45
  281. package/dist/data/multiAccessorUtils.d.ts +0 -1
  282. package/dist/data/unflowedFunctions.d.ts +0 -1
  283. package/dist/generic_utilities/functions.d.ts +0 -1
  284. package/dist/geometry/areaDrawing.d.ts +0 -21
  285. package/dist/geometry/contourLayout.d.ts +0 -6
  286. package/dist/geometry/hexbinLayout.d.ts +0 -7
  287. package/dist/geometry/lineDrawing.d.ts +0 -71
  288. package/dist/geometry/summaryLayouts.d.ts +0 -45
  289. package/dist/index.d.ts +0 -1
  290. package/dist/network.js +0 -7495
  291. package/dist/network.js.map +0 -1
  292. package/dist/network.module.js +0 -7458
  293. package/dist/network.module.js.map +0 -1
  294. package/dist/ordinal.js +0 -6497
  295. package/dist/ordinal.js.map +0 -1
  296. package/dist/ordinal.module.js +0 -6465
  297. package/dist/ordinal.module.js.map +0 -1
  298. package/dist/processing/InteractionItems.d.ts +0 -13
  299. package/dist/processing/hierarchyUtils.d.ts +0 -16
  300. package/dist/processing/layouts/chordLayout.d.ts +0 -2
  301. package/dist/processing/layouts/forceLayout.d.ts +0 -3
  302. package/dist/processing/layouts/hierarchyLayout.d.ts +0 -10
  303. package/dist/processing/layouts/index.d.ts +0 -8
  304. package/dist/processing/layouts/sankeyLayout.d.ts +0 -8
  305. package/dist/processing/layouts/simpleLayouts.d.ts +0 -7
  306. package/dist/processing/layouts/types.d.ts +0 -17
  307. package/dist/processing/networkDefaults.d.ts +0 -36
  308. package/dist/realtime/renderers/barRenderer.d.ts +0 -2
  309. package/dist/realtime/renderers/candlestickRenderer.d.ts +0 -2
  310. package/dist/realtime/renderers/lineRenderer.d.ts +0 -2
  311. package/dist/realtime/renderers/swarmRenderer.d.ts +0 -2
  312. package/dist/realtime.js +0 -7072
  313. package/dist/realtime.js.map +0 -1
  314. package/dist/realtime.module.js +0 -7043
  315. package/dist/realtime.module.js.map +0 -1
  316. package/dist/semiotic-ai.js +0 -13323
  317. package/dist/semiotic-ai.js.map +0 -1
  318. package/dist/semiotic-ai.module.js +0 -13264
  319. package/dist/semiotic-ai.module.js.map +0 -1
  320. package/dist/semiotic-data.js +0 -141
  321. package/dist/semiotic-data.js.map +0 -1
  322. package/dist/semiotic-data.module.js +0 -136
  323. package/dist/semiotic-data.module.js.map +0 -1
  324. package/dist/semiotic.js +0 -16351
  325. package/dist/semiotic.js.map +0 -1
  326. package/dist/semiotic.module.js +0 -16265
  327. package/dist/semiotic.module.js.map +0 -1
  328. package/dist/server.js +0 -5191
  329. package/dist/server.js.map +0 -1
  330. package/dist/server.module.js +0 -5166
  331. package/dist/server.module.js.map +0 -1
  332. package/dist/stream/NetworkSceneGraph.d.ts +0 -14
  333. package/dist/stream/index.d.ts +0 -16
  334. package/dist/types/canvasTypes.d.ts +0 -9
  335. package/dist/types/xyTypes.d.ts +0 -24
  336. package/dist/useBoundingRect.d.ts +0 -2
  337. package/dist/visualizationLayerBehavior/axis.d.ts +0 -36
  338. package/dist/visualizationLayerBehavior/general.d.ts +0 -80
  339. package/dist/xy.js +0 -6993
  340. package/dist/xy.js.map +0 -1
  341. package/dist/xy.module.js +0 -6957
  342. package/dist/xy.module.js.map +0 -1
@@ -1,492 +0,0 @@
1
- "use client";
2
- "use strict";
3
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
- if (k2 === undefined) k2 = k;
5
- var desc = Object.getOwnPropertyDescriptor(m, k);
6
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
- desc = { enumerable: true, get: function() { return m[k]; } };
8
- }
9
- Object.defineProperty(o, k2, desc);
10
- }) : (function(o, m, k, k2) {
11
- if (k2 === undefined) k2 = k;
12
- o[k2] = m[k];
13
- }));
14
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
- Object.defineProperty(o, "default", { enumerable: true, value: v });
16
- }) : function(o, v) {
17
- o["default"] = v;
18
- });
19
- var __importStar = (this && this.__importStar) || (function () {
20
- var ownKeys = function(o) {
21
- ownKeys = Object.getOwnPropertyNames || function (o) {
22
- var ar = [];
23
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
- return ar;
25
- };
26
- return ownKeys(o);
27
- };
28
- return function (mod) {
29
- if (mod && mod.__esModule) return mod;
30
- var result = {};
31
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
- __setModuleDefault(result, mod);
33
- return result;
34
- };
35
- })();
36
- Object.defineProperty(exports, "__esModule", { value: true });
37
- const React = __importStar(require("react"));
38
- const react_1 = require("react");
39
- const DataSourceAdapter_1 = require("./DataSourceAdapter");
40
- const OrdinalPipelineStore_1 = require("./OrdinalPipelineStore");
41
- const OrdinalCanvasHitTester_1 = require("./OrdinalCanvasHitTester");
42
- const OrdinalSVGOverlay_1 = require("./OrdinalSVGOverlay");
43
- // Canvas renderers
44
- const barCanvasRenderer_1 = require("./renderers/barCanvasRenderer");
45
- const pointCanvasRenderer_1 = require("./renderers/pointCanvasRenderer");
46
- const wedgeCanvasRenderer_1 = require("./renderers/wedgeCanvasRenderer");
47
- const boxplotCanvasRenderer_1 = require("./renderers/boxplotCanvasRenderer");
48
- const violinCanvasRenderer_1 = require("./renderers/violinCanvasRenderer");
49
- const connectorCanvasRenderer_1 = require("./renderers/connectorCanvasRenderer");
50
- // ── Renderer dispatch ──────────────────────────────────────────────────
51
- // Connectors are built into the scene graph by the store, so every
52
- // chart type includes the connector renderer to paint them.
53
- const withConnectors = (renderers) => [connectorCanvasRenderer_1.connectorCanvasRenderer, ...renderers];
54
- const RENDERERS = {
55
- bar: withConnectors([barCanvasRenderer_1.barCanvasRenderer]),
56
- clusterbar: withConnectors([barCanvasRenderer_1.barCanvasRenderer]),
57
- point: withConnectors([pointCanvasRenderer_1.pointCanvasRenderer]),
58
- swarm: withConnectors([pointCanvasRenderer_1.pointCanvasRenderer]),
59
- pie: [wedgeCanvasRenderer_1.wedgeCanvasRenderer],
60
- donut: [wedgeCanvasRenderer_1.wedgeCanvasRenderer],
61
- boxplot: withConnectors([boxplotCanvasRenderer_1.boxplotCanvasRenderer, pointCanvasRenderer_1.pointCanvasRenderer]),
62
- violin: withConnectors([violinCanvasRenderer_1.violinCanvasRenderer]),
63
- histogram: withConnectors([barCanvasRenderer_1.barCanvasRenderer]),
64
- ridgeline: withConnectors([violinCanvasRenderer_1.violinCanvasRenderer]),
65
- timeline: withConnectors([barCanvasRenderer_1.barCanvasRenderer])
66
- };
67
- // ── Defaults ───────────────────────────────────────────────────────────
68
- const DEFAULT_MARGIN = { top: 50, right: 40, bottom: 60, left: 70 };
69
- // ── Tooltip ────────────────────────────────────────────────────────────
70
- const defaultTooltipStyle = {
71
- background: "rgba(0, 0, 0, 0.85)",
72
- color: "white",
73
- padding: "6px 10px",
74
- borderRadius: "4px",
75
- fontSize: "13px",
76
- lineHeight: "1.4",
77
- boxShadow: "0 2px 8px rgba(0, 0, 0, 0.15)",
78
- pointerEvents: "none",
79
- whiteSpace: "nowrap"
80
- };
81
- function DefaultOrdinalTooltip({ hover }) {
82
- const d = hover.data || {};
83
- // For summary types (boxplot, violin), datum is an array of pieces
84
- if (Array.isArray(d)) {
85
- const category = d[0]?.category || "";
86
- const n = d.length;
87
- return (React.createElement("div", { className: "semiotic-tooltip", style: defaultTooltipStyle },
88
- category && React.createElement("div", { style: { fontWeight: "bold" } }, String(category)),
89
- React.createElement("div", null,
90
- n,
91
- " items")));
92
- }
93
- // For histogram bins
94
- if (d.bin != null && d.count != null) {
95
- const range = d.range || [];
96
- return (React.createElement("div", { className: "semiotic-tooltip", style: defaultTooltipStyle },
97
- d.category && React.createElement("div", { style: { fontWeight: "bold" } }, String(d.category)),
98
- React.createElement("div", null,
99
- "Count: ",
100
- d.count),
101
- range.length === 2 && (React.createElement("div", { style: { opacity: 0.8 } },
102
- Number(range[0]).toFixed(1),
103
- " \u2013 ",
104
- Number(range[1]).toFixed(1)))));
105
- }
106
- // For regular pieces — extract category and value from common field names
107
- const category = d.category || d.name || d.group || d.__rName || "";
108
- const value = d.value ?? d.__rValue ?? d.pct ?? "";
109
- // If standard fields didn't match, show all non-internal fields from the datum
110
- if (!category && value === "") {
111
- const entries = Object.entries(d).filter(([k]) => !k.startsWith("_") && k !== "data");
112
- return (React.createElement("div", { className: "semiotic-tooltip", style: defaultTooltipStyle }, entries.map(([k, v]) => (React.createElement("div", { key: k },
113
- React.createElement("span", { style: { opacity: 0.7 } },
114
- k,
115
- ":"),
116
- " ",
117
- typeof v === "number" ? v.toLocaleString() : String(v))))));
118
- }
119
- return (React.createElement("div", { className: "semiotic-tooltip", style: defaultTooltipStyle },
120
- category && React.createElement("div", { style: { fontWeight: "bold" } }, String(category)),
121
- value !== "" && React.createElement("div", null, typeof value === "number" ? value.toLocaleString() : String(value))));
122
- }
123
- // ── Component ──────────────────────────────────────────────────────────
124
- const StreamOrdinalFrame = (0, react_1.forwardRef)(function StreamOrdinalFrame(props, ref) {
125
- const { chartType, runtimeMode, data, oAccessor = "category", rAccessor = "value", colorAccessor, stackBy, groupBy, multiAxis, timeAccessor, valueAccessor, categoryAccessor, projection = "vertical", size = [600, 400], margin: userMargin, barPadding, innerRadius, normalize, startAngle, dynamicColumnWidth, bins, showOutliers, showIQR, amplitude, connectorAccessor, connectorStyle, rExtent, oExtent, extentPadding = 0.05, oSort, arrowOfTime, windowMode = "sliding", windowSize = 200, pieceStyle, summaryStyle, colorScheme, barColors, showAxes = true, oLabel, rLabel, oFormat, rFormat, enableHover = true, hoverAnnotation, tooltipContent, customHoverBehavior, annotations, svgAnnotationRules, showGrid = false, legend, backgroundGraphics, foregroundGraphics, title, className, background, centerContent, decay, pulse, transition, staleness } = props;
126
- // ── Layout ───────────────────────────────────────────────────────────
127
- const margin = (0, react_1.useMemo)(() => ({ ...DEFAULT_MARGIN, ...userMargin }), [userMargin]);
128
- const adjustedWidth = size[0] - margin.left - margin.right;
129
- const adjustedHeight = size[1] - margin.top - margin.bottom;
130
- // ── Refs ─────────────────────────────────────────────────────────────
131
- const canvasRef = (0, react_1.useRef)(null);
132
- const dirtyRef = (0, react_1.useRef)(true);
133
- const rafRef = (0, react_1.useRef)(0);
134
- const hoverRef = (0, react_1.useRef)(null);
135
- const renderFnRef = (0, react_1.useRef)(() => { });
136
- // ── State ────────────────────────────────────────────────────────────
137
- const [hoverPoint, setHoverPoint] = (0, react_1.useState)(null);
138
- const [currentScales, setCurrentScales] = (0, react_1.useState)(null);
139
- const [annotationFrame, setAnnotationFrame] = (0, react_1.useState)(0);
140
- const [isStale, setIsStale] = (0, react_1.useState)(false);
141
- // ── Hover config ─────────────────────────────────────────────────────
142
- const effectiveHoverAnnotation = enableHover || hoverAnnotation;
143
- // ── Pipeline ─────────────────────────────────────────────────────────
144
- const isStreaming = runtimeMode === "streaming";
145
- const pipelineConfig = (0, react_1.useMemo)(() => ({
146
- chartType,
147
- runtimeMode: isStreaming ? "streaming" : "bounded",
148
- windowSize,
149
- windowMode,
150
- extentPadding,
151
- projection,
152
- oAccessor: isStreaming ? undefined : oAccessor,
153
- rAccessor: isStreaming ? undefined : rAccessor,
154
- colorAccessor,
155
- stackBy,
156
- groupBy,
157
- multiAxis,
158
- timeAccessor: isStreaming ? timeAccessor : undefined,
159
- valueAccessor: isStreaming ? (valueAccessor || (typeof rAccessor === "string" || typeof rAccessor === "function" ? rAccessor : undefined)) : undefined,
160
- categoryAccessor: isStreaming ? (categoryAccessor || oAccessor) : undefined,
161
- rExtent,
162
- oExtent,
163
- barPadding,
164
- innerRadius,
165
- normalize,
166
- startAngle,
167
- dynamicColumnWidth,
168
- bins,
169
- showOutliers,
170
- showIQR,
171
- amplitude,
172
- connectorAccessor,
173
- connectorStyle,
174
- oSort,
175
- pieceStyle,
176
- summaryStyle,
177
- colorScheme,
178
- barColors,
179
- decay,
180
- pulse,
181
- transition,
182
- staleness
183
- }), [
184
- chartType, windowSize, windowMode, extentPadding, projection,
185
- oAccessor, rAccessor, colorAccessor, stackBy, groupBy, multiAxis,
186
- timeAccessor, valueAccessor, categoryAccessor,
187
- rExtent, oExtent, barPadding, innerRadius, normalize, startAngle,
188
- dynamicColumnWidth,
189
- bins, showOutliers, showIQR, amplitude, connectorAccessor, connectorStyle, oSort,
190
- pieceStyle, summaryStyle, colorScheme, barColors,
191
- decay, pulse, transition, staleness,
192
- isStreaming
193
- ]);
194
- const storeRef = (0, react_1.useRef)(null);
195
- if (!storeRef.current) {
196
- storeRef.current = new OrdinalPipelineStore_1.OrdinalPipelineStore(pipelineConfig);
197
- }
198
- // ── Stable scheduleRender ────────────────────────────────────────────
199
- const scheduleRender = (0, react_1.useCallback)(() => {
200
- if (rafRef.current)
201
- return;
202
- rafRef.current = requestAnimationFrame(() => renderFnRef.current());
203
- }, []);
204
- // Update config when it changes
205
- (0, react_1.useEffect)(() => {
206
- storeRef.current?.updateConfig(pipelineConfig);
207
- dirtyRef.current = true;
208
- scheduleRender();
209
- }, [pipelineConfig, scheduleRender]);
210
- // ── DataSourceAdapter ────────────────────────────────────────────────
211
- const adapterRef = (0, react_1.useRef)(null);
212
- if (!adapterRef.current) {
213
- adapterRef.current = new DataSourceAdapter_1.DataSourceAdapter((changeset) => {
214
- const store = storeRef.current;
215
- if (!store)
216
- return;
217
- const needsRender = store.ingest(changeset);
218
- if (needsRender) {
219
- dirtyRef.current = true;
220
- scheduleRender();
221
- }
222
- });
223
- }
224
- // ── Push API ─────────────────────────────────────────────────────────
225
- const pushPoint = (0, react_1.useCallback)((datum) => {
226
- adapterRef.current?.push(datum);
227
- }, []);
228
- const pushManyPoints = (0, react_1.useCallback)((data) => {
229
- adapterRef.current?.pushMany(data);
230
- }, []);
231
- const clearAll = (0, react_1.useCallback)(() => {
232
- adapterRef.current?.clear();
233
- storeRef.current?.clear();
234
- dirtyRef.current = true;
235
- scheduleRender();
236
- }, [scheduleRender]);
237
- (0, react_1.useImperativeHandle)(ref, () => ({
238
- push: pushPoint,
239
- pushMany: pushManyPoints,
240
- clear: clearAll,
241
- getData: () => storeRef.current?.getData() ?? [],
242
- getScales: () => storeRef.current?.scales ?? null
243
- }), [pushPoint, pushManyPoints, clearAll]);
244
- // ── Controlled data prop ─────────────────────────────────────────────
245
- (0, react_1.useEffect)(() => {
246
- if (!data)
247
- return;
248
- adapterRef.current?.setBoundedData(data);
249
- }, [data]);
250
- // ── Hover handlers ───────────────────────────────────────────────────
251
- const hoverHandlerRef = (0, react_1.useRef)(() => { });
252
- const hoverLeaveRef = (0, react_1.useRef)(() => { });
253
- hoverHandlerRef.current = (e) => {
254
- if (!effectiveHoverAnnotation)
255
- return;
256
- const canvas = canvasRef.current;
257
- if (!canvas)
258
- return;
259
- const rect = canvas.getBoundingClientRect();
260
- const chartX = e.clientX - rect.left - margin.left;
261
- const chartY = e.clientY - rect.top - margin.top;
262
- if (chartX < 0 || chartX > adjustedWidth || chartY < 0 || chartY > adjustedHeight) {
263
- if (hoverRef.current) {
264
- hoverRef.current = null;
265
- setHoverPoint(null);
266
- if (customHoverBehavior)
267
- customHoverBehavior(null);
268
- scheduleRender();
269
- }
270
- return;
271
- }
272
- const store = storeRef.current;
273
- if (!store || store.scene.length === 0)
274
- return;
275
- // For radial projection, convert to center-relative coordinates
276
- // since scene nodes use (0,0) as center
277
- const isRadialMode = projection === "radial";
278
- const hitX = isRadialMode ? chartX - adjustedWidth / 2 : chartX;
279
- const hitY = isRadialMode ? chartY - adjustedHeight / 2 : chartY;
280
- const hit = (0, OrdinalCanvasHitTester_1.findNearestOrdinalNode)(store.scene, hitX, hitY);
281
- if (!hit) {
282
- if (hoverRef.current) {
283
- hoverRef.current = null;
284
- setHoverPoint(null);
285
- if (customHoverBehavior)
286
- customHoverBehavior(null);
287
- scheduleRender();
288
- }
289
- return;
290
- }
291
- const hover = {
292
- data: hit.datum,
293
- time: hit.x,
294
- value: hit.y,
295
- x: hit.x,
296
- y: hit.y
297
- };
298
- hoverRef.current = hover;
299
- setHoverPoint(hover);
300
- if (customHoverBehavior)
301
- customHoverBehavior(hover);
302
- scheduleRender();
303
- };
304
- hoverLeaveRef.current = () => {
305
- if (hoverRef.current) {
306
- hoverRef.current = null;
307
- setHoverPoint(null);
308
- if (customHoverBehavior)
309
- customHoverBehavior(null);
310
- scheduleRender();
311
- }
312
- };
313
- const onMouseMove = (0, react_1.useCallback)((e) => hoverHandlerRef.current(e), []);
314
- const onMouseLeave = (0, react_1.useCallback)(() => hoverLeaveRef.current(), []);
315
- // ── Render function ──────────────────────────────────────────────────
316
- renderFnRef.current = () => {
317
- rafRef.current = 0;
318
- const canvas = canvasRef.current;
319
- if (!canvas)
320
- return;
321
- const ctx = canvas.getContext("2d");
322
- if (!ctx)
323
- return;
324
- const store = storeRef.current;
325
- if (!store)
326
- return;
327
- const now = typeof performance !== "undefined" ? performance.now() : Date.now();
328
- // Advance transition animation
329
- const isTransitioning = store.advanceTransition(now);
330
- const wasDirty = dirtyRef.current;
331
- if (wasDirty && !isTransitioning) {
332
- store.computeScene({ width: adjustedWidth, height: adjustedHeight });
333
- dirtyRef.current = false;
334
- }
335
- // DPR setup
336
- const dpr = typeof window !== "undefined" ? window.devicePixelRatio || 1 : 1;
337
- canvas.width = size[0] * dpr;
338
- canvas.height = size[1] * dpr;
339
- canvas.style.width = `${size[0]}px`;
340
- canvas.style.height = `${size[1]}px`;
341
- ctx.scale(dpr, dpr);
342
- // Clear
343
- ctx.clearRect(0, 0, size[0], size[1]);
344
- // Staleness dimming
345
- const staleThreshold = staleness?.threshold ?? 5000;
346
- const currentlyStale = staleness && store.lastIngestTime > 0 &&
347
- (now - store.lastIngestTime) > staleThreshold;
348
- if (currentlyStale) {
349
- ctx.globalAlpha = staleness?.dimOpacity ?? 0.5;
350
- }
351
- // Background
352
- if (background) {
353
- ctx.fillStyle = background;
354
- ctx.fillRect(0, 0, size[0], size[1]);
355
- }
356
- const isRadial = projection === "radial";
357
- if (isRadial) {
358
- // Radial: translate to center of chart area
359
- ctx.save();
360
- ctx.translate(margin.left + adjustedWidth / 2, margin.top + adjustedHeight / 2);
361
- }
362
- else {
363
- ctx.translate(margin.left, margin.top);
364
- }
365
- // Dispatch to renderers
366
- const renderers = RENDERERS[chartType] || [];
367
- const layout = { width: adjustedWidth, height: adjustedHeight };
368
- for (const renderer of renderers) {
369
- renderer(ctx, store.scene, store.scales, layout);
370
- }
371
- if (isRadial) {
372
- ctx.restore();
373
- }
374
- // Reset alpha after staleness dimming
375
- if (currentlyStale) {
376
- ctx.globalAlpha = 1;
377
- }
378
- // Push scales to React state for SVG overlay
379
- if (wasDirty && store.scales) {
380
- setCurrentScales(store.scales);
381
- setAnnotationFrame(f => f + 1);
382
- }
383
- // Update staleness badge state
384
- if (staleness?.showBadge) {
385
- setIsStale(!!currentlyStale);
386
- }
387
- // Schedule next frame for pulse/transition continuous rendering
388
- if (isTransitioning || store.hasActivePulses) {
389
- rafRef.current = requestAnimationFrame(() => renderFnRef.current());
390
- }
391
- };
392
- // ── Lifecycle ────────────────────────────────────────────────────────
393
- (0, react_1.useEffect)(() => {
394
- scheduleRender();
395
- return () => {
396
- if (rafRef.current)
397
- cancelAnimationFrame(rafRef.current);
398
- };
399
- }, [scheduleRender]);
400
- (0, react_1.useEffect)(() => {
401
- dirtyRef.current = true;
402
- scheduleRender();
403
- }, [chartType, adjustedWidth, adjustedHeight, showAxes, background, scheduleRender]);
404
- // Staleness check timer
405
- (0, react_1.useEffect)(() => {
406
- if (!staleness)
407
- return;
408
- const interval = setInterval(() => {
409
- const store = storeRef.current;
410
- if (!store || store.lastIngestTime === 0)
411
- return;
412
- const now = typeof performance !== "undefined" ? performance.now() : Date.now();
413
- const threshold = staleness.threshold ?? 5000;
414
- const stale = (now - store.lastIngestTime) > threshold;
415
- if (stale !== isStale) {
416
- setIsStale(stale);
417
- dirtyRef.current = true;
418
- scheduleRender();
419
- }
420
- }, 1000);
421
- return () => clearInterval(interval);
422
- }, [staleness, isStale, scheduleRender]);
423
- // ── Tooltip positioning ──────────────────────────────────────────────
424
- const tooltipRendered = effectiveHoverAnnotation && hoverPoint
425
- ? (tooltipContent ? tooltipContent(hoverPoint) : React.createElement(DefaultOrdinalTooltip, { hover: hoverPoint }))
426
- : null;
427
- // For radial projection, hit coords are center-relative — convert back
428
- // to margin-relative for tooltip positioning
429
- const isRadialMode = projection === "radial";
430
- const tooltipX = hoverPoint
431
- ? (isRadialMode ? hoverPoint.x + adjustedWidth / 2 : hoverPoint.x)
432
- : 0;
433
- const tooltipY = hoverPoint
434
- ? (isRadialMode ? hoverPoint.y + adjustedHeight / 2 : hoverPoint.y)
435
- : 0;
436
- const tooltipElement = tooltipRendered ? (React.createElement("div", { className: "stream-ordinal-tooltip", style: {
437
- position: "absolute",
438
- left: margin.left + tooltipX,
439
- top: margin.top + tooltipY,
440
- transform: `translate(${tooltipX > adjustedWidth * 0.7 ? "calc(-100% - 12px)" : "12px"}, ${tooltipY < adjustedHeight * 0.3 ? "4px" : "calc(-100% - 4px)"})`,
441
- pointerEvents: "none",
442
- zIndex: 1
443
- } }, tooltipRendered)) : null;
444
- // ── Render ───────────────────────────────────────────────────────────
445
- return (React.createElement("div", { className: `stream-ordinal-frame${className ? ` ${className}` : ""}`, style: {
446
- position: "relative",
447
- width: size[0],
448
- height: size[1]
449
- }, onMouseMove: effectiveHoverAnnotation ? onMouseMove : undefined, onMouseLeave: effectiveHoverAnnotation ? onMouseLeave : undefined },
450
- backgroundGraphics && (React.createElement("svg", { style: {
451
- position: "absolute",
452
- top: 0,
453
- left: 0,
454
- width: size[0],
455
- height: size[1],
456
- pointerEvents: "none"
457
- } },
458
- React.createElement("g", { transform: `translate(${margin.left},${margin.top})` }, backgroundGraphics))),
459
- React.createElement("canvas", { ref: canvasRef, style: {
460
- position: "absolute",
461
- top: 0,
462
- left: 0,
463
- width: size[0],
464
- height: size[1]
465
- } }),
466
- React.createElement(OrdinalSVGOverlay_1.OrdinalSVGOverlay, { width: adjustedWidth, height: adjustedHeight, totalWidth: size[0], totalHeight: size[1], margin: margin, scales: currentScales, showAxes: showAxes, oLabel: oLabel, rLabel: rLabel, oFormat: oFormat, rFormat: rFormat, showGrid: showGrid, title: title, legend: legend, foregroundGraphics: foregroundGraphics, annotations: annotations, svgAnnotationRules: svgAnnotationRules, annotationFrame: annotationFrame }),
467
- centerContent && projection === "radial" && (React.createElement("div", { style: {
468
- position: "absolute",
469
- left: margin.left + adjustedWidth / 2,
470
- top: margin.top + adjustedHeight / 2,
471
- transform: "translate(-50%, -50%)",
472
- pointerEvents: "none",
473
- textAlign: "center"
474
- } }, centerContent)),
475
- staleness?.showBadge && (React.createElement("div", { className: "stream-staleness-badge", style: {
476
- position: "absolute",
477
- ...(staleness.badgePosition === "top-left" ? { top: 4, left: 4 } :
478
- staleness.badgePosition === "bottom-left" ? { bottom: 4, left: 4 } :
479
- staleness.badgePosition === "bottom-right" ? { bottom: 4, right: 4 } :
480
- { top: 4, right: 4 }),
481
- padding: "2px 8px",
482
- borderRadius: 4,
483
- fontSize: 11,
484
- fontWeight: 600,
485
- pointerEvents: "none",
486
- background: isStale ? "#dc3545" : "#28a745",
487
- color: "white"
488
- } }, isStale ? "STALE" : "LIVE")),
489
- tooltipElement));
490
- });
491
- StreamOrdinalFrame.displayName = "StreamOrdinalFrame";
492
- exports.default = StreamOrdinalFrame;