@panoboard/core 1.1.5

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 (409) hide show
  1. package/dist/cache/cache.d.ts +11 -0
  2. package/dist/cache/cache.d.ts.map +1 -0
  3. package/dist/cache/cache.js +42 -0
  4. package/dist/cache/cache.js.map +1 -0
  5. package/dist/cache/client.d.ts +9 -0
  6. package/dist/cache/client.d.ts.map +1 -0
  7. package/dist/cache/client.js +63 -0
  8. package/dist/cache/client.js.map +1 -0
  9. package/dist/cache/index.d.ts +4 -0
  10. package/dist/cache/index.d.ts.map +1 -0
  11. package/dist/cache/index.js +17 -0
  12. package/dist/cache/index.js.map +1 -0
  13. package/dist/cache/keys.d.ts +2 -0
  14. package/dist/cache/keys.d.ts.map +1 -0
  15. package/dist/cache/keys.js +26 -0
  16. package/dist/cache/keys.js.map +1 -0
  17. package/dist/components/DashboardCard.d.ts +15 -0
  18. package/dist/components/DashboardCard.d.ts.map +1 -0
  19. package/dist/components/DashboardCard.js +80 -0
  20. package/dist/components/DashboardCard.js.map +1 -0
  21. package/dist/components/DashboardShell.d.ts +11 -0
  22. package/dist/components/DashboardShell.d.ts.map +1 -0
  23. package/dist/components/DashboardShell.js +115 -0
  24. package/dist/components/DashboardShell.js.map +1 -0
  25. package/dist/components/EmptyState.d.ts +6 -0
  26. package/dist/components/EmptyState.d.ts.map +1 -0
  27. package/dist/components/EmptyState.js +29 -0
  28. package/dist/components/EmptyState.js.map +1 -0
  29. package/dist/components/ErrorPage.d.ts +14 -0
  30. package/dist/components/ErrorPage.d.ts.map +1 -0
  31. package/dist/components/ErrorPage.js +132 -0
  32. package/dist/components/ErrorPage.js.map +1 -0
  33. package/dist/components/FilterBar.d.ts +8 -0
  34. package/dist/components/FilterBar.d.ts.map +1 -0
  35. package/dist/components/FilterBar.js +70 -0
  36. package/dist/components/FilterBar.js.map +1 -0
  37. package/dist/components/PanelGrid.d.ts +9 -0
  38. package/dist/components/PanelGrid.d.ts.map +1 -0
  39. package/dist/components/PanelGrid.js +26 -0
  40. package/dist/components/PanelGrid.js.map +1 -0
  41. package/dist/components/PanelWrapper.d.ts +8 -0
  42. package/dist/components/PanelWrapper.d.ts.map +1 -0
  43. package/dist/components/PanelWrapper.js +154 -0
  44. package/dist/components/PanelWrapper.js.map +1 -0
  45. package/dist/components/filters/BooleanFilter.d.ts +8 -0
  46. package/dist/components/filters/BooleanFilter.d.ts.map +1 -0
  47. package/dist/components/filters/BooleanFilter.js +36 -0
  48. package/dist/components/filters/BooleanFilter.js.map +1 -0
  49. package/dist/components/filters/CalendarGrid.d.ts +8 -0
  50. package/dist/components/filters/CalendarGrid.d.ts.map +1 -0
  51. package/dist/components/filters/CalendarGrid.js +159 -0
  52. package/dist/components/filters/CalendarGrid.js.map +1 -0
  53. package/dist/components/filters/DateRangeFilter.d.ts +10 -0
  54. package/dist/components/filters/DateRangeFilter.d.ts.map +1 -0
  55. package/dist/components/filters/DateRangeFilter.js +80 -0
  56. package/dist/components/filters/DateRangeFilter.js.map +1 -0
  57. package/dist/components/filters/FilterChips.d.ts +8 -0
  58. package/dist/components/filters/FilterChips.d.ts.map +1 -0
  59. package/dist/components/filters/FilterChips.js +94 -0
  60. package/dist/components/filters/FilterChips.js.map +1 -0
  61. package/dist/components/filters/MultiSelectFilter.d.ts +17 -0
  62. package/dist/components/filters/MultiSelectFilter.d.ts.map +1 -0
  63. package/dist/components/filters/MultiSelectFilter.js +80 -0
  64. package/dist/components/filters/MultiSelectFilter.js.map +1 -0
  65. package/dist/components/filters/NumberFilter.d.ts +10 -0
  66. package/dist/components/filters/NumberFilter.d.ts.map +1 -0
  67. package/dist/components/filters/NumberFilter.js +47 -0
  68. package/dist/components/filters/NumberFilter.js.map +1 -0
  69. package/dist/components/filters/SelectFilter.d.ts +16 -0
  70. package/dist/components/filters/SelectFilter.d.ts.map +1 -0
  71. package/dist/components/filters/SelectFilter.js +71 -0
  72. package/dist/components/filters/SelectFilter.js.map +1 -0
  73. package/dist/components/filters/TextFilter.d.ts +8 -0
  74. package/dist/components/filters/TextFilter.d.ts.map +1 -0
  75. package/dist/components/filters/TextFilter.js +57 -0
  76. package/dist/components/filters/TextFilter.js.map +1 -0
  77. package/dist/components/filters/useDropdown.d.ts +7 -0
  78. package/dist/components/filters/useDropdown.d.ts.map +1 -0
  79. package/dist/components/filters/useDropdown.js +41 -0
  80. package/dist/components/filters/useDropdown.js.map +1 -0
  81. package/dist/components/filters/useFilterUpdate.d.ts +2 -0
  82. package/dist/components/filters/useFilterUpdate.d.ts.map +1 -0
  83. package/dist/components/filters/useFilterUpdate.js +30 -0
  84. package/dist/components/filters/useFilterUpdate.js.map +1 -0
  85. package/dist/components/index.d.ts +59 -0
  86. package/dist/components/index.d.ts.map +1 -0
  87. package/dist/components/index.js +75 -0
  88. package/dist/components/index.js.map +1 -0
  89. package/dist/components/panels/AreaChart.d.ts +7 -0
  90. package/dist/components/panels/AreaChart.d.ts.map +1 -0
  91. package/dist/components/panels/AreaChart.js +88 -0
  92. package/dist/components/panels/AreaChart.js.map +1 -0
  93. package/dist/components/panels/BarChart.d.ts +7 -0
  94. package/dist/components/panels/BarChart.d.ts.map +1 -0
  95. package/dist/components/panels/BarChart.js +99 -0
  96. package/dist/components/panels/BarChart.js.map +1 -0
  97. package/dist/components/panels/BoxPlotChart.d.ts +7 -0
  98. package/dist/components/panels/BoxPlotChart.d.ts.map +1 -0
  99. package/dist/components/panels/BoxPlotChart.js +41 -0
  100. package/dist/components/panels/BoxPlotChart.js.map +1 -0
  101. package/dist/components/panels/BulletChart.d.ts +7 -0
  102. package/dist/components/panels/BulletChart.d.ts.map +1 -0
  103. package/dist/components/panels/BulletChart.js +46 -0
  104. package/dist/components/panels/BulletChart.js.map +1 -0
  105. package/dist/components/panels/BumpChart.d.ts +7 -0
  106. package/dist/components/panels/BumpChart.d.ts.map +1 -0
  107. package/dist/components/panels/BumpChart.js +38 -0
  108. package/dist/components/panels/BumpChart.js.map +1 -0
  109. package/dist/components/panels/CalendarHeatmap.d.ts +7 -0
  110. package/dist/components/panels/CalendarHeatmap.d.ts.map +1 -0
  111. package/dist/components/panels/CalendarHeatmap.js +41 -0
  112. package/dist/components/panels/CalendarHeatmap.js.map +1 -0
  113. package/dist/components/panels/ChartTooltip.d.ts +48 -0
  114. package/dist/components/panels/ChartTooltip.d.ts.map +1 -0
  115. package/dist/components/panels/ChartTooltip.js +129 -0
  116. package/dist/components/panels/ChartTooltip.js.map +1 -0
  117. package/dist/components/panels/DonutChart.d.ts +7 -0
  118. package/dist/components/panels/DonutChart.d.ts.map +1 -0
  119. package/dist/components/panels/DonutChart.js +40 -0
  120. package/dist/components/panels/DonutChart.js.map +1 -0
  121. package/dist/components/panels/FunnelChart.d.ts +7 -0
  122. package/dist/components/panels/FunnelChart.d.ts.map +1 -0
  123. package/dist/components/panels/FunnelChart.js +32 -0
  124. package/dist/components/panels/FunnelChart.js.map +1 -0
  125. package/dist/components/panels/HeatmapChart.d.ts +7 -0
  126. package/dist/components/panels/HeatmapChart.d.ts.map +1 -0
  127. package/dist/components/panels/HeatmapChart.js +41 -0
  128. package/dist/components/panels/HeatmapChart.js.map +1 -0
  129. package/dist/components/panels/IframePanel.d.ts +6 -0
  130. package/dist/components/panels/IframePanel.d.ts.map +1 -0
  131. package/dist/components/panels/IframePanel.js +5 -0
  132. package/dist/components/panels/IframePanel.js.map +1 -0
  133. package/dist/components/panels/ImagePanel.d.ts +7 -0
  134. package/dist/components/panels/ImagePanel.d.ts.map +1 -0
  135. package/dist/components/panels/ImagePanel.js +9 -0
  136. package/dist/components/panels/ImagePanel.js.map +1 -0
  137. package/dist/components/panels/LineChart.d.ts +7 -0
  138. package/dist/components/panels/LineChart.d.ts.map +1 -0
  139. package/dist/components/panels/LineChart.js +87 -0
  140. package/dist/components/panels/LineChart.js.map +1 -0
  141. package/dist/components/panels/ListPanel.d.ts +7 -0
  142. package/dist/components/panels/ListPanel.d.ts.map +1 -0
  143. package/dist/components/panels/ListPanel.js +24 -0
  144. package/dist/components/panels/ListPanel.js.map +1 -0
  145. package/dist/components/panels/MarkdownPanel.d.ts +7 -0
  146. package/dist/components/panels/MarkdownPanel.d.ts.map +1 -0
  147. package/dist/components/panels/MarkdownPanel.js +39 -0
  148. package/dist/components/panels/MarkdownPanel.js.map +1 -0
  149. package/dist/components/panels/MetricPanel.d.ts +7 -0
  150. package/dist/components/panels/MetricPanel.d.ts.map +1 -0
  151. package/dist/components/panels/MetricPanel.js +23 -0
  152. package/dist/components/panels/MetricPanel.js.map +1 -0
  153. package/dist/components/panels/PanelEmpty.d.ts +2 -0
  154. package/dist/components/panels/PanelEmpty.d.ts.map +1 -0
  155. package/dist/components/panels/PanelEmpty.js +27 -0
  156. package/dist/components/panels/PanelEmpty.js.map +1 -0
  157. package/dist/components/panels/PanelError.d.ts +7 -0
  158. package/dist/components/panels/PanelError.d.ts.map +1 -0
  159. package/dist/components/panels/PanelError.js +21 -0
  160. package/dist/components/panels/PanelError.js.map +1 -0
  161. package/dist/components/panels/PanelSkeleton.d.ts +6 -0
  162. package/dist/components/panels/PanelSkeleton.d.ts.map +1 -0
  163. package/dist/components/panels/PanelSkeleton.js +24 -0
  164. package/dist/components/panels/PanelSkeleton.js.map +1 -0
  165. package/dist/components/panels/PieChart.d.ts +7 -0
  166. package/dist/components/panels/PieChart.d.ts.map +1 -0
  167. package/dist/components/panels/PieChart.js +40 -0
  168. package/dist/components/panels/PieChart.js.map +1 -0
  169. package/dist/components/panels/RadarChart.d.ts +7 -0
  170. package/dist/components/panels/RadarChart.d.ts.map +1 -0
  171. package/dist/components/panels/RadarChart.js +50 -0
  172. package/dist/components/panels/RadarChart.js.map +1 -0
  173. package/dist/components/panels/RadialBarChart.d.ts +7 -0
  174. package/dist/components/panels/RadialBarChart.d.ts.map +1 -0
  175. package/dist/components/panels/RadialBarChart.js +49 -0
  176. package/dist/components/panels/RadialBarChart.js.map +1 -0
  177. package/dist/components/panels/SankeyChart.d.ts +7 -0
  178. package/dist/components/panels/SankeyChart.d.ts.map +1 -0
  179. package/dist/components/panels/SankeyChart.js +39 -0
  180. package/dist/components/panels/SankeyChart.js.map +1 -0
  181. package/dist/components/panels/ScatterChart.d.ts +7 -0
  182. package/dist/components/panels/ScatterChart.d.ts.map +1 -0
  183. package/dist/components/panels/ScatterChart.js +54 -0
  184. package/dist/components/panels/ScatterChart.js.map +1 -0
  185. package/dist/components/panels/StatPanel.d.ts +8 -0
  186. package/dist/components/panels/StatPanel.d.ts.map +1 -0
  187. package/dist/components/panels/StatPanel.js +40 -0
  188. package/dist/components/panels/StatPanel.js.map +1 -0
  189. package/dist/components/panels/StreamChart.d.ts +7 -0
  190. package/dist/components/panels/StreamChart.d.ts.map +1 -0
  191. package/dist/components/panels/StreamChart.js +54 -0
  192. package/dist/components/panels/StreamChart.js.map +1 -0
  193. package/dist/components/panels/SunburstChart.d.ts +7 -0
  194. package/dist/components/panels/SunburstChart.d.ts.map +1 -0
  195. package/dist/components/panels/SunburstChart.js +60 -0
  196. package/dist/components/panels/SunburstChart.js.map +1 -0
  197. package/dist/components/panels/TablePanel.d.ts +7 -0
  198. package/dist/components/panels/TablePanel.d.ts.map +1 -0
  199. package/dist/components/panels/TablePanel.js +79 -0
  200. package/dist/components/panels/TablePanel.js.map +1 -0
  201. package/dist/components/panels/TreemapChart.d.ts +7 -0
  202. package/dist/components/panels/TreemapChart.d.ts.map +1 -0
  203. package/dist/components/panels/TreemapChart.js +59 -0
  204. package/dist/components/panels/TreemapChart.js.map +1 -0
  205. package/dist/components/panels/VideoPanel.d.ts +15 -0
  206. package/dist/components/panels/VideoPanel.d.ts.map +1 -0
  207. package/dist/components/panels/VideoPanel.js +25 -0
  208. package/dist/components/panels/VideoPanel.js.map +1 -0
  209. package/dist/components/panels/WaffleChart.d.ts +7 -0
  210. package/dist/components/panels/WaffleChart.d.ts.map +1 -0
  211. package/dist/components/panels/WaffleChart.js +46 -0
  212. package/dist/components/panels/WaffleChart.js.map +1 -0
  213. package/dist/components/panels/index.d.ts +3 -0
  214. package/dist/components/panels/index.d.ts.map +1 -0
  215. package/dist/components/panels/index.js +60 -0
  216. package/dist/components/panels/index.js.map +1 -0
  217. package/dist/components/panels/nivo-theme.d.ts +95 -0
  218. package/dist/components/panels/nivo-theme.d.ts.map +1 -0
  219. package/dist/components/panels/nivo-theme.js +140 -0
  220. package/dist/components/panels/nivo-theme.js.map +1 -0
  221. package/dist/components/panels/semantic-colors.d.ts +7 -0
  222. package/dist/components/panels/semantic-colors.d.ts.map +1 -0
  223. package/dist/components/panels/semantic-colors.js +100 -0
  224. package/dist/components/panels/semantic-colors.js.map +1 -0
  225. package/dist/components/ui/Button.d.ts +9 -0
  226. package/dist/components/ui/Button.d.ts.map +1 -0
  227. package/dist/components/ui/Button.js +40 -0
  228. package/dist/components/ui/Button.js.map +1 -0
  229. package/dist/components/ui/Tabs.d.ts +11 -0
  230. package/dist/components/ui/Tabs.d.ts.map +1 -0
  231. package/dist/components/ui/Tabs.js +28 -0
  232. package/dist/components/ui/Tabs.js.map +1 -0
  233. package/dist/connectors/bigquery.d.ts +26 -0
  234. package/dist/connectors/bigquery.d.ts.map +1 -0
  235. package/dist/connectors/bigquery.js +113 -0
  236. package/dist/connectors/bigquery.js.map +1 -0
  237. package/dist/connectors/index.d.ts +17 -0
  238. package/dist/connectors/index.d.ts.map +1 -0
  239. package/dist/connectors/index.js +23 -0
  240. package/dist/connectors/index.js.map +1 -0
  241. package/dist/connectors/params.d.ts +15 -0
  242. package/dist/connectors/params.d.ts.map +1 -0
  243. package/dist/connectors/params.js +46 -0
  244. package/dist/connectors/params.js.map +1 -0
  245. package/dist/connectors/postgres.d.ts +29 -0
  246. package/dist/connectors/postgres.d.ts.map +1 -0
  247. package/dist/connectors/postgres.js +130 -0
  248. package/dist/connectors/postgres.js.map +1 -0
  249. package/dist/connectors/redshift-data.d.ts +25 -0
  250. package/dist/connectors/redshift-data.d.ts.map +1 -0
  251. package/dist/connectors/redshift-data.js +237 -0
  252. package/dist/connectors/redshift-data.js.map +1 -0
  253. package/dist/connectors/redshift.d.ts +29 -0
  254. package/dist/connectors/redshift.d.ts.map +1 -0
  255. package/dist/connectors/redshift.js +138 -0
  256. package/dist/connectors/redshift.js.map +1 -0
  257. package/dist/connectors/registry.d.ts +7 -0
  258. package/dist/connectors/registry.d.ts.map +1 -0
  259. package/dist/connectors/registry.js +30 -0
  260. package/dist/connectors/registry.js.map +1 -0
  261. package/dist/connectors/snowflake.d.ts +37 -0
  262. package/dist/connectors/snowflake.d.ts.map +1 -0
  263. package/dist/connectors/snowflake.js +181 -0
  264. package/dist/connectors/snowflake.js.map +1 -0
  265. package/dist/connectors/types.d.ts +41 -0
  266. package/dist/connectors/types.d.ts.map +1 -0
  267. package/dist/connectors/types.js +15 -0
  268. package/dist/connectors/types.js.map +1 -0
  269. package/dist/connectors/url-parsers.d.ts +13 -0
  270. package/dist/connectors/url-parsers.d.ts.map +1 -0
  271. package/dist/connectors/url-parsers.js +95 -0
  272. package/dist/connectors/url-parsers.js.map +1 -0
  273. package/dist/connectors/url.d.ts +36 -0
  274. package/dist/connectors/url.d.ts.map +1 -0
  275. package/dist/connectors/url.js +139 -0
  276. package/dist/connectors/url.js.map +1 -0
  277. package/dist/filters/cascade.d.ts +13 -0
  278. package/dist/filters/cascade.d.ts.map +1 -0
  279. package/dist/filters/cascade.js +32 -0
  280. package/dist/filters/cascade.js.map +1 -0
  281. package/dist/filters/daterange.d.ts +8 -0
  282. package/dist/filters/daterange.d.ts.map +1 -0
  283. package/dist/filters/daterange.js +119 -0
  284. package/dist/filters/daterange.js.map +1 -0
  285. package/dist/filters/index.d.ts +7 -0
  286. package/dist/filters/index.d.ts.map +1 -0
  287. package/dist/filters/index.js +18 -0
  288. package/dist/filters/index.js.map +1 -0
  289. package/dist/filters/resolver.d.ts +3 -0
  290. package/dist/filters/resolver.d.ts.map +1 -0
  291. package/dist/filters/resolver.js +122 -0
  292. package/dist/filters/resolver.js.map +1 -0
  293. package/dist/filters/validation.d.ts +17 -0
  294. package/dist/filters/validation.d.ts.map +1 -0
  295. package/dist/filters/validation.js +84 -0
  296. package/dist/filters/validation.js.map +1 -0
  297. package/dist/formats.d.ts +4 -0
  298. package/dist/formats.d.ts.map +1 -0
  299. package/dist/formats.js +127 -0
  300. package/dist/formats.js.map +1 -0
  301. package/dist/index.d.ts +13 -0
  302. package/dist/index.d.ts.map +1 -0
  303. package/dist/index.js +37 -0
  304. package/dist/index.js.map +1 -0
  305. package/dist/interfaces/auth-provider.d.ts +22 -0
  306. package/dist/interfaces/auth-provider.d.ts.map +1 -0
  307. package/dist/interfaces/auth-provider.js +15 -0
  308. package/dist/interfaces/auth-provider.js.map +1 -0
  309. package/dist/interfaces/dashboard-store.d.ts +17 -0
  310. package/dist/interfaces/dashboard-store.d.ts.map +1 -0
  311. package/dist/interfaces/dashboard-store.js +15 -0
  312. package/dist/interfaces/dashboard-store.js.map +1 -0
  313. package/dist/interfaces/datasource-store.d.ts +6 -0
  314. package/dist/interfaces/datasource-store.d.ts.map +1 -0
  315. package/dist/interfaces/datasource-store.js +15 -0
  316. package/dist/interfaces/datasource-store.js.map +1 -0
  317. package/dist/interfaces/index.d.ts +4 -0
  318. package/dist/interfaces/index.d.ts.map +1 -0
  319. package/dist/interfaces/index.js +15 -0
  320. package/dist/interfaces/index.js.map +1 -0
  321. package/dist/locale/context.d.ts +6 -0
  322. package/dist/locale/context.d.ts.map +1 -0
  323. package/dist/locale/context.js +23 -0
  324. package/dist/locale/context.js.map +1 -0
  325. package/dist/locale/index.d.ts +2 -0
  326. package/dist/locale/index.d.ts.map +1 -0
  327. package/dist/locale/index.js +15 -0
  328. package/dist/locale/index.js.map +1 -0
  329. package/dist/query/array-expansion.d.ts +5 -0
  330. package/dist/query/array-expansion.d.ts.map +1 -0
  331. package/dist/query/array-expansion.js +39 -0
  332. package/dist/query/array-expansion.js.map +1 -0
  333. package/dist/query/index.d.ts +8 -0
  334. package/dist/query/index.d.ts.map +1 -0
  335. package/dist/query/index.js +20 -0
  336. package/dist/query/index.js.map +1 -0
  337. package/dist/query/pipeline.d.ts +27 -0
  338. package/dist/query/pipeline.d.ts.map +1 -0
  339. package/dist/query/pipeline.js +49 -0
  340. package/dist/query/pipeline.js.map +1 -0
  341. package/dist/query/strategy/http.d.ts +7 -0
  342. package/dist/query/strategy/http.d.ts.map +1 -0
  343. package/dist/query/strategy/http.js +26 -0
  344. package/dist/query/strategy/http.js.map +1 -0
  345. package/dist/query/strategy/index.d.ts +4 -0
  346. package/dist/query/strategy/index.d.ts.map +1 -0
  347. package/dist/query/strategy/index.js +32 -0
  348. package/dist/query/strategy/index.js.map +1 -0
  349. package/dist/query/strategy/sql.d.ts +7 -0
  350. package/dist/query/strategy/sql.d.ts.map +1 -0
  351. package/dist/query/strategy/sql.js +40 -0
  352. package/dist/query/strategy/sql.js.map +1 -0
  353. package/dist/query/strategy/types.d.ts +6 -0
  354. package/dist/query/strategy/types.d.ts.map +1 -0
  355. package/dist/query/strategy/types.js +15 -0
  356. package/dist/query/strategy/types.js.map +1 -0
  357. package/dist/query/template.d.ts +7 -0
  358. package/dist/query/template.d.ts.map +1 -0
  359. package/dist/query/template.js +36 -0
  360. package/dist/query/template.js.map +1 -0
  361. package/dist/schemas/config.d.ts +74 -0
  362. package/dist/schemas/config.d.ts.map +1 -0
  363. package/dist/schemas/config.js +129 -0
  364. package/dist/schemas/config.js.map +1 -0
  365. package/dist/schemas/dashboard.d.ts +716 -0
  366. package/dist/schemas/dashboard.d.ts.map +1 -0
  367. package/dist/schemas/dashboard.js +314 -0
  368. package/dist/schemas/dashboard.js.map +1 -0
  369. package/dist/schemas/datasource.d.ts +252 -0
  370. package/dist/schemas/datasource.d.ts.map +1 -0
  371. package/dist/schemas/datasource.js +186 -0
  372. package/dist/schemas/datasource.js.map +1 -0
  373. package/dist/schemas/index.d.ts +5 -0
  374. package/dist/schemas/index.d.ts.map +1 -0
  375. package/dist/schemas/index.js +18 -0
  376. package/dist/schemas/index.js.map +1 -0
  377. package/dist/schemas/theme.d.ts +36 -0
  378. package/dist/schemas/theme.d.ts.map +1 -0
  379. package/dist/schemas/theme.js +48 -0
  380. package/dist/schemas/theme.js.map +1 -0
  381. package/dist/startup/index.d.ts +3 -0
  382. package/dist/startup/index.d.ts.map +1 -0
  383. package/dist/startup/index.js +15 -0
  384. package/dist/startup/index.js.map +1 -0
  385. package/dist/startup/sql-lint.d.ts +13 -0
  386. package/dist/startup/sql-lint.d.ts.map +1 -0
  387. package/dist/startup/sql-lint.js +86 -0
  388. package/dist/startup/sql-lint.js.map +1 -0
  389. package/dist/theme/builtin.d.ts +5 -0
  390. package/dist/theme/builtin.d.ts.map +1 -0
  391. package/dist/theme/builtin.js +102 -0
  392. package/dist/theme/builtin.js.map +1 -0
  393. package/dist/theme/context.d.ts +7 -0
  394. package/dist/theme/context.d.ts.map +1 -0
  395. package/dist/theme/context.js +26 -0
  396. package/dist/theme/context.js.map +1 -0
  397. package/dist/theme/index.d.ts +3 -0
  398. package/dist/theme/index.d.ts.map +1 -0
  399. package/dist/theme/index.js +16 -0
  400. package/dist/theme/index.js.map +1 -0
  401. package/dist/theme/loader-export.d.ts +2 -0
  402. package/dist/theme/loader-export.d.ts.map +1 -0
  403. package/dist/theme/loader-export.js +15 -0
  404. package/dist/theme/loader-export.js.map +1 -0
  405. package/dist/theme/loader.d.ts +11 -0
  406. package/dist/theme/loader.d.ts.map +1 -0
  407. package/dist/theme/loader.js +60 -0
  408. package/dist/theme/loader.js.map +1 -0
  409. package/package.json +148 -0
@@ -0,0 +1,99 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ // Copyright 2026 Mataki Labs LLC
3
+ //
4
+ // Licensed under the Business Source License 1.1 (the "License");
5
+ // you may not use this file except in compliance with the License.
6
+ // You may obtain a copy of the License at
7
+ //
8
+ // https://github.com/panoboard/panoboard/blob/main/LICENSE
9
+ //
10
+ // Unless required by applicable law or agreed to in writing, software
11
+ // distributed under the License is distributed on an "AS IS" BASIS,
12
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ // See the License for the specific language governing permissions and
14
+ // limitations under the License.
15
+ import { ResponsiveBar } from "@nivo/bar";
16
+ import { buildNivoTheme, getChartPalette } from "./nivo-theme";
17
+ import { useTheme } from "../../theme/context";
18
+ import { ChartTooltip } from "./ChartTooltip";
19
+ import { formatValue, formatValueShort } from "../../formats";
20
+ import { useLocale } from "../../locale/context";
21
+ import { extractSemanticColor } from "./semantic-colors";
22
+ export function BarChart({ data, config }) {
23
+ const theme = useTheme();
24
+ const nivoTheme = buildNivoTheme(theme);
25
+ const palette = getChartPalette(theme);
26
+ const xKey = config.x ?? "x";
27
+ const yKey = config.y ?? "y";
28
+ const yFormat = config.y_format;
29
+ const seriesKey = config.series;
30
+ const stacked = config.stacked ?? false;
31
+ // Build color map: explicit series_colors > semantic theme colors > palette
32
+ const seriesColorMap = {};
33
+ if (config.series_colors) {
34
+ Object.assign(seriesColorMap, config.series_colors);
35
+ }
36
+ const locale = useLocale();
37
+ const fmt = (v) => yFormat
38
+ ? formatValue(v, yFormat, locale)
39
+ : v.toLocaleString(locale, { maximumFractionDigits: 2 });
40
+ let chartData;
41
+ let keys;
42
+ if (seriesKey) {
43
+ const seriesValues = Array.from(new Set(data.map((r) => String(r[seriesKey]))));
44
+ keys = seriesValues;
45
+ const grouped = {};
46
+ for (const row of data) {
47
+ const xVal = String(row[xKey]);
48
+ if (!grouped[xVal])
49
+ grouped[xVal] = { [xKey]: xVal };
50
+ grouped[xVal][String(row[seriesKey])] = Number(row[yKey]) || 0;
51
+ }
52
+ chartData = Object.values(grouped);
53
+ // Auto-map semantic colors for series values not already in seriesColorMap
54
+ for (const sv of seriesValues) {
55
+ if (!seriesColorMap[sv]) {
56
+ const semantic = extractSemanticColor(sv, theme);
57
+ if (semantic)
58
+ seriesColorMap[sv] = semantic;
59
+ }
60
+ }
61
+ }
62
+ else {
63
+ keys = [yKey];
64
+ chartData = data.map((row) => ({ ...row }));
65
+ }
66
+ return (_jsx("div", { style: { height: "100%" }, children: _jsx(ResponsiveBar, { data: chartData, keys: keys, indexBy: xKey, groupMode: stacked ? "stacked" : "grouped", colors: Object.keys(seriesColorMap).length > 0
67
+ ? ({ id }) => seriesColorMap[String(id)] ??
68
+ palette[keys.indexOf(String(id)) % palette.length]
69
+ : config.color
70
+ ? [config.color]
71
+ : palette, theme: nivoTheme, margin: { top: 16, right: 16, bottom: 48, left: 56 }, padding: 0.3, tooltip: ({ id, value, indexValue }) => {
72
+ const hasMultipleSeries = keys.length > 1;
73
+ const formatted = fmt(typeof value === "number" ? value : Number(value));
74
+ return (_jsx(ChartTooltip, { label: String(indexValue), value: hasMultipleSeries ? `${id}: ${formatted}` : formatted }));
75
+ }, axisBottom: {
76
+ tickSize: 4,
77
+ tickPadding: 4,
78
+ tickRotation: -30,
79
+ }, axisLeft: {
80
+ tickSize: 4,
81
+ tickPadding: 4,
82
+ format: (v) => yFormat
83
+ ? formatValueShort(v, yFormat, locale)
84
+ : Number(v).toLocaleString(locale),
85
+ }, labelSkipWidth: 12, labelSkipHeight: 12, labelTextColor: { from: "color", modifiers: [["brighter", 3]] }, legends: seriesKey
86
+ ? [
87
+ {
88
+ dataFrom: "keys",
89
+ anchor: "bottom-right",
90
+ direction: "column",
91
+ translateX: 120,
92
+ itemWidth: 100,
93
+ itemHeight: 20,
94
+ symbolSize: 12,
95
+ },
96
+ ]
97
+ : [] }) }));
98
+ }
99
+ //# sourceMappingURL=BarChart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BarChart.js","sourceRoot":"","sources":["../../../src/components/panels/BarChart.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ interface ChartPanelProps {
2
+ data: Record<string, unknown>[];
3
+ config: any;
4
+ }
5
+ export declare function BoxPlotChart({ data, config }: ChartPanelProps): import("react/jsx-runtime").JSX.Element;
6
+ export {};
7
+ //# sourceMappingURL=BoxPlotChart.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BoxPlotChart.d.ts","sourceRoot":"","sources":["../../../src/components/panels/BoxPlotChart.tsx"],"names":[],"mappings":"AAkBA,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAChC,MAAM,EAAE,GAAG,CAAC;CACb;AAED,wBAAgB,YAAY,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,eAAe,2CA6C7D"}
@@ -0,0 +1,41 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ // Copyright 2026 Mataki Labs LLC
3
+ //
4
+ // Licensed under the Business Source License 1.1 (the "License");
5
+ // you may not use this file except in compliance with the License.
6
+ // You may obtain a copy of the License at
7
+ //
8
+ // https://github.com/panoboard/panoboard/blob/main/LICENSE
9
+ //
10
+ // Unless required by applicable law or agreed to in writing, software
11
+ // distributed under the License is distributed on an "AS IS" BASIS,
12
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ // See the License for the specific language governing permissions and
14
+ // limitations under the License.
15
+ import { ResponsiveBoxPlot } from "@nivo/boxplot";
16
+ import { buildNivoTheme, getChartPalette } from "./nivo-theme";
17
+ import { useTheme } from "../../theme/context";
18
+ export function BoxPlotChart({ data, config }) {
19
+ const theme = useTheme();
20
+ const nivoTheme = buildNivoTheme(theme);
21
+ const palette = getChartPalette(theme);
22
+ const groupKey = config.group ?? "group";
23
+ const subGroupKey = config.subGroup;
24
+ const valueKey = config.value ?? config.y ?? "value";
25
+ // Pass raw data — Nivo BoxPlot computes statistics internally
26
+ // Each row needs: group, subGroup (optional), value
27
+ const chartData = data.map((row) => {
28
+ const entry = {
29
+ group: String(row[groupKey]),
30
+ value: Number(row[valueKey]) || 0,
31
+ };
32
+ if (subGroupKey && row[subGroupKey] !== undefined) {
33
+ entry.subGroup = String(row[subGroupKey]);
34
+ }
35
+ return entry;
36
+ });
37
+ return (_jsx("div", { style: { height: "100%" }, children: _jsx(ResponsiveBoxPlot, { data: chartData, groups: Array.from(new Set(data.map((r) => String(r[groupKey])))), subGroups: subGroupKey
38
+ ? Array.from(new Set(data.map((r) => String(r[subGroupKey]))))
39
+ : undefined, value: valueKey, groupBy: "group", colors: palette, theme: nivoTheme, margin: { top: 16, right: 16, bottom: 48, left: 56 }, padding: 0.3, axisBottom: { tickSize: 4, tickPadding: 4 }, axisLeft: { tickSize: 4, tickPadding: 4 }, medianWidth: 2, whiskerEndSize: 0.6 }) }));
40
+ }
41
+ //# sourceMappingURL=BoxPlotChart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BoxPlotChart.js","sourceRoot":"","sources":["../../../src/components/panels/BoxPlotChart.tsx"],"names":[],"mappings":";AAAA,iCAAiC;AACjC,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,+DAA+D;AAC/D,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAO/C,MAAM,UAAU,YAAY,CAAC,EAAE,IAAI,EAAE,MAAM,EAAmB;IAC5D,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IAEvC,MAAM,QAAQ,GAAW,MAAM,CAAC,KAAK,IAAI,OAAO,CAAC;IACjD,MAAM,WAAW,GAAuB,MAAM,CAAC,QAAQ,CAAC;IACxD,MAAM,QAAQ,GAAW,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,CAAC,IAAI,OAAO,CAAC;IAE7D,8DAA8D;IAC9D,oDAAoD;IACpD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACjC,MAAM,KAAK,GAA4B;YACrC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC5B,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC;SAClC,CAAC;QACF,IAAI,WAAW,IAAI,GAAG,CAAC,WAAW,CAAC,KAAK,SAAS,EAAE,CAAC;YAClD,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;QAC5C,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;IAEH,OAAO,CACL,cAAK,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,YAC5B,KAAC,iBAAiB,IAChB,IAAI,EAAE,SAAgB,EACtB,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EACjE,SAAS,EACP,WAAW;gBACT,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,WAAY,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC/D,CAAC,CAAC,SAAS,EAEf,KAAK,EAAE,QAAQ,EACf,OAAO,EAAC,OAAO,EACf,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,SAAgB,EACvB,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EACpD,OAAO,EAAE,GAAG,EACZ,UAAU,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,EAC3C,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,EACzC,WAAW,EAAE,CAAC,EACd,cAAc,EAAE,GAAG,GACnB,GACE,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,7 @@
1
+ interface ChartPanelProps {
2
+ data: Record<string, unknown>[];
3
+ config: any;
4
+ }
5
+ export declare function BulletChart({ data, config }: ChartPanelProps): import("react/jsx-runtime").JSX.Element;
6
+ export {};
7
+ //# sourceMappingURL=BulletChart.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BulletChart.d.ts","sourceRoot":"","sources":["../../../src/components/panels/BulletChart.tsx"],"names":[],"mappings":"AAkBA,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAChC,MAAM,EAAE,GAAG,CAAC;CACb;AAED,wBAAgB,WAAW,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,eAAe,2CA6C5D"}
@@ -0,0 +1,46 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ // Copyright 2026 Mataki Labs LLC
3
+ //
4
+ // Licensed under the Business Source License 1.1 (the "License");
5
+ // you may not use this file except in compliance with the License.
6
+ // You may obtain a copy of the License at
7
+ //
8
+ // https://github.com/panoboard/panoboard/blob/main/LICENSE
9
+ //
10
+ // Unless required by applicable law or agreed to in writing, software
11
+ // distributed under the License is distributed on an "AS IS" BASIS,
12
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ // See the License for the specific language governing permissions and
14
+ // limitations under the License.
15
+ import { ResponsiveBullet } from "@nivo/bullet";
16
+ import { buildNivoTheme, getChartPalette } from "./nivo-theme";
17
+ import { useTheme } from "../../theme/context";
18
+ export function BulletChart({ data, config }) {
19
+ const theme = useTheme();
20
+ const nivoTheme = buildNivoTheme(theme);
21
+ const palette = getChartPalette(theme);
22
+ const idKey = config.id ?? "id";
23
+ const rangesKey = config.ranges ?? "ranges";
24
+ const measuresKey = config.measures ?? "measures";
25
+ const markersKey = config.markers ?? "markers";
26
+ // Rows should have id, ranges (comma-sep or array), measures, markers
27
+ const chartData = data.map((row) => {
28
+ const parseList = (val) => {
29
+ if (Array.isArray(val))
30
+ return val.map(Number);
31
+ if (typeof val === "string")
32
+ return val.split(",").map((v) => Number(v.trim()));
33
+ if (typeof val === "number")
34
+ return [val];
35
+ return [];
36
+ };
37
+ return {
38
+ id: String(row[idKey]),
39
+ ranges: parseList(row[rangesKey]),
40
+ measures: parseList(row[measuresKey]),
41
+ markers: parseList(row[markersKey]),
42
+ };
43
+ });
44
+ return (_jsx("div", { style: { height: "100%" }, children: _jsx(ResponsiveBullet, { data: chartData, theme: nivoTheme, margin: { top: 40, right: 32, bottom: 40, left: 120 }, spacing: 32, titleAlign: "start", titleOffsetX: -100, measureSize: 0.4, markerSize: 0.6, rangeColors: ["#1e293b", "#334155", "#475569"], measureColors: palette, markerColors: ["#fb7185"] }) }));
45
+ }
46
+ //# sourceMappingURL=BulletChart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BulletChart.js","sourceRoot":"","sources":["../../../src/components/panels/BulletChart.tsx"],"names":[],"mappings":";AAAA,iCAAiC;AACjC,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,+DAA+D;AAC/D,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAO/C,MAAM,UAAU,WAAW,CAAC,EAAE,IAAI,EAAE,MAAM,EAAmB;IAC3D,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IAEvC,MAAM,KAAK,GAAW,MAAM,CAAC,EAAE,IAAI,IAAI,CAAC;IACxC,MAAM,SAAS,GAAW,MAAM,CAAC,MAAM,IAAI,QAAQ,CAAC;IACpD,MAAM,WAAW,GAAW,MAAM,CAAC,QAAQ,IAAI,UAAU,CAAC;IAC1D,MAAM,UAAU,GAAW,MAAM,CAAC,OAAO,IAAI,SAAS,CAAC;IAEvD,sEAAsE;IACtE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACjC,MAAM,SAAS,GAAG,CAAC,GAAY,EAAY,EAAE;YAC3C,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;gBAAE,OAAO,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC/C,IAAI,OAAO,GAAG,KAAK,QAAQ;gBACzB,OAAO,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YACrD,IAAI,OAAO,GAAG,KAAK,QAAQ;gBAAE,OAAO,CAAC,GAAG,CAAC,CAAC;YAC1C,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC;QAEF,OAAO;YACL,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACtB,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACjC,QAAQ,EAAE,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACrC,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;SACpC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO,CACL,cAAK,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,YAC5B,KAAC,gBAAgB,IACf,IAAI,EAAE,SAAS,EACf,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,EACrD,OAAO,EAAE,EAAE,EACX,UAAU,EAAC,OAAO,EAClB,YAAY,EAAE,CAAC,GAAG,EAClB,WAAW,EAAE,GAAG,EAChB,UAAU,EAAE,GAAG,EACf,WAAW,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,EAC9C,aAAa,EAAE,OAAO,EACtB,YAAY,EAAE,CAAC,SAAS,CAAC,GACzB,GACE,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,7 @@
1
+ interface ChartPanelProps {
2
+ data: Record<string, unknown>[];
3
+ config: any;
4
+ }
5
+ export declare function BumpChart({ data, config }: ChartPanelProps): import("react/jsx-runtime").JSX.Element;
6
+ export {};
7
+ //# sourceMappingURL=BumpChart.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BumpChart.d.ts","sourceRoot":"","sources":["../../../src/components/panels/BumpChart.tsx"],"names":[],"mappings":"AAkBA,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAChC,MAAM,EAAE,GAAG,CAAC;CACb;AAED,wBAAgB,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,eAAe,2CAyC1D"}
@@ -0,0 +1,38 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ // Copyright 2026 Mataki Labs LLC
3
+ //
4
+ // Licensed under the Business Source License 1.1 (the "License");
5
+ // you may not use this file except in compliance with the License.
6
+ // You may obtain a copy of the License at
7
+ //
8
+ // https://github.com/panoboard/panoboard/blob/main/LICENSE
9
+ //
10
+ // Unless required by applicable law or agreed to in writing, software
11
+ // distributed under the License is distributed on an "AS IS" BASIS,
12
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ // See the License for the specific language governing permissions and
14
+ // limitations under the License.
15
+ import { ResponsiveBump } from "@nivo/bump";
16
+ import { buildNivoTheme, getChartPalette } from "./nivo-theme";
17
+ import { useTheme } from "../../theme/context";
18
+ export function BumpChart({ data, config }) {
19
+ const theme = useTheme();
20
+ const nivoTheme = buildNivoTheme(theme);
21
+ const palette = getChartPalette(theme);
22
+ const xKey = config.x ?? "x";
23
+ const yKey = config.y ?? "y";
24
+ const seriesKey = config.series ?? config.id ?? "id";
25
+ const seriesMap = new Map();
26
+ for (const row of data) {
27
+ const id = String(row[seriesKey]);
28
+ if (!seriesMap.has(id))
29
+ seriesMap.set(id, []);
30
+ seriesMap.get(id).push({ x: row[xKey], y: Number(row[yKey]) || 0 });
31
+ }
32
+ const chartData = Array.from(seriesMap.entries()).map(([id, points]) => ({
33
+ id,
34
+ data: points,
35
+ }));
36
+ return (_jsx("div", { style: { height: "100%" }, children: _jsx(ResponsiveBump, { data: chartData, colors: palette, theme: nivoTheme, margin: { top: 40, right: 100, bottom: 40, left: 60 }, lineWidth: 3, activeLineWidth: 6, inactiveLineWidth: 3, inactiveOpacity: 0.15, pointSize: 10, activePointSize: 16, inactivePointSize: 0, pointBorderWidth: 3, activePointBorderWidth: 3, axisBottom: { tickSize: 4, tickPadding: 4 }, axisLeft: { tickSize: 4, tickPadding: 4 } }) }));
37
+ }
38
+ //# sourceMappingURL=BumpChart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BumpChart.js","sourceRoot":"","sources":["../../../src/components/panels/BumpChart.tsx"],"names":[],"mappings":";AAAA,iCAAiC;AACjC,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,+DAA+D;AAC/D,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAO/C,MAAM,UAAU,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAmB;IACzD,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IAEvC,MAAM,IAAI,GAAW,MAAM,CAAC,CAAC,IAAI,GAAG,CAAC;IACrC,MAAM,IAAI,GAAW,MAAM,CAAC,CAAC,IAAI,GAAG,CAAC;IACrC,MAAM,SAAS,GAAW,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,EAAE,IAAI,IAAI,CAAC;IAE7D,MAAM,SAAS,GAAG,IAAI,GAAG,EAAuC,CAAC;IACjE,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;QAClC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAC9C,SAAS,CAAC,GAAG,CAAC,EAAE,CAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACvE,CAAC;IACD,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;QACvE,EAAE;QACF,IAAI,EAAE,MAAM;KACb,CAAC,CAAC,CAAC;IAEJ,OAAO,CACL,cAAK,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,YAC5B,KAAC,cAAc,IACb,IAAI,EAAE,SAAgB,EACtB,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EACrD,SAAS,EAAE,CAAC,EACZ,eAAe,EAAE,CAAC,EAClB,iBAAiB,EAAE,CAAC,EACpB,eAAe,EAAE,IAAI,EACrB,SAAS,EAAE,EAAE,EACb,eAAe,EAAE,EAAE,EACnB,iBAAiB,EAAE,CAAC,EACpB,gBAAgB,EAAE,CAAC,EACnB,sBAAsB,EAAE,CAAC,EACzB,UAAU,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,EAC3C,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,GACzC,GACE,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,7 @@
1
+ interface ChartPanelProps {
2
+ data: Record<string, unknown>[];
3
+ config: any;
4
+ }
5
+ export declare function CalendarHeatmap({ data, config }: ChartPanelProps): import("react/jsx-runtime").JSX.Element;
6
+ export {};
7
+ //# sourceMappingURL=CalendarHeatmap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CalendarHeatmap.d.ts","sourceRoot":"","sources":["../../../src/components/panels/CalendarHeatmap.tsx"],"names":[],"mappings":"AAkBA,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAChC,MAAM,EAAE,GAAG,CAAC;CACb;AAED,wBAAgB,eAAe,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,eAAe,2CA+ChE"}
@@ -0,0 +1,41 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ // Copyright 2026 Mataki Labs LLC
3
+ //
4
+ // Licensed under the Business Source License 1.1 (the "License");
5
+ // you may not use this file except in compliance with the License.
6
+ // You may obtain a copy of the License at
7
+ //
8
+ // https://github.com/panoboard/panoboard/blob/main/LICENSE
9
+ //
10
+ // Unless required by applicable law or agreed to in writing, software
11
+ // distributed under the License is distributed on an "AS IS" BASIS,
12
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ // See the License for the specific language governing permissions and
14
+ // limitations under the License.
15
+ import { ResponsiveCalendar } from "@nivo/calendar";
16
+ import { buildNivoTheme, getChartPalette } from "./nivo-theme";
17
+ import { useTheme } from "../../theme/context";
18
+ export function CalendarHeatmap({ data, config }) {
19
+ const theme = useTheme();
20
+ const nivoTheme = buildNivoTheme(theme);
21
+ const palette = getChartPalette(theme);
22
+ const dayKey = config.day ?? "day";
23
+ const valueKey = config.value ?? "value";
24
+ const chartData = data.map((row) => ({
25
+ day: String(row[dayKey]),
26
+ value: Number(row[valueKey]) || 0,
27
+ }));
28
+ // Derive date range from data
29
+ const days = chartData.map((d) => d.day).sort();
30
+ const from = config.from ?? days[0] ?? new Date().getFullYear() + "-01-01";
31
+ const to = config.to ?? days[days.length - 1] ?? new Date().getFullYear() + "-12-31";
32
+ // Use first 4 palette colors for the calendar gradient, or fall back to defaults
33
+ const calendarColors = palette.length >= 4
34
+ ? [palette[0], palette[1], palette[2], palette[3]]
35
+ : ["#164e63", "#0e7490", "#06b6d4", "#22d3ee"];
36
+ // Extract background-like colors from theme for empty/border
37
+ const emptyColor = nivoTheme.grid.line.stroke;
38
+ const borderColor = nivoTheme.grid.line.stroke;
39
+ return (_jsx("div", { style: { height: "100%" }, children: _jsx(ResponsiveCalendar, { data: chartData, from: from, to: to, theme: nivoTheme, margin: { top: 24, right: 24, bottom: 8, left: 24 }, emptyColor: emptyColor, colors: calendarColors, yearSpacing: 40, monthBorderColor: borderColor, dayBorderWidth: 2, dayBorderColor: borderColor }) }));
40
+ }
41
+ //# sourceMappingURL=CalendarHeatmap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CalendarHeatmap.js","sourceRoot":"","sources":["../../../src/components/panels/CalendarHeatmap.tsx"],"names":[],"mappings":";AAAA,iCAAiC;AACjC,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,+DAA+D;AAC/D,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAO/C,MAAM,UAAU,eAAe,CAAC,EAAE,IAAI,EAAE,MAAM,EAAmB;IAC/D,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IAEvC,MAAM,MAAM,GAAW,MAAM,CAAC,GAAG,IAAI,KAAK,CAAC;IAC3C,MAAM,QAAQ,GAAW,MAAM,CAAC,KAAK,IAAI,OAAO,CAAC;IAEjD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACnC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACxB,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC;KAClC,CAAC,CAAC,CAAC;IAEJ,8BAA8B;IAC9B,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAChD,MAAM,IAAI,GACR,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,GAAG,QAAQ,CAAC;IAChE,MAAM,EAAE,GACN,MAAM,CAAC,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,GAAG,QAAQ,CAAC;IAE5E,iFAAiF;IACjF,MAAM,cAAc,GAClB,OAAO,CAAC,MAAM,IAAI,CAAC;QACjB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IAEnD,6DAA6D;IAC7D,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IAC9C,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IAE/C,OAAO,CACL,cAAK,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,YAC5B,KAAC,kBAAkB,IACjB,IAAI,EAAE,SAAS,EACf,IAAI,EAAE,IAAI,EACV,EAAE,EAAE,EAAE,EACN,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,EACnD,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,EAAE,EACf,gBAAgB,EAAE,WAAW,EAC7B,cAAc,EAAE,CAAC,EACjB,cAAc,EAAE,WAAW,GAC3B,GACE,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,48 @@
1
+ export interface ChartTooltipProps {
2
+ /** Label describing the data point (x-axis value, category, etc.) */
3
+ label: string;
4
+ /** Formatted value string */
5
+ value: string;
6
+ /** Optional series color dot */
7
+ color?: string;
8
+ }
9
+ /**
10
+ * Themed tooltip for single-series Nivo charts.
11
+ * Uses inline styles because it renders inside an SVG foreign-object context.
12
+ */
13
+ export declare function ChartTooltip({ label, value, color }: ChartTooltipProps): import("react/jsx-runtime").JSX.Element;
14
+ export interface MultiSeriesPoint {
15
+ id: string;
16
+ value: string;
17
+ color?: string;
18
+ }
19
+ export interface MultiSeriesChartTooltipProps {
20
+ /** X-axis label / shared label for all series */
21
+ label: string;
22
+ points: MultiSeriesPoint[];
23
+ }
24
+ export declare function MultiSeriesChartTooltip({ label, points, }: MultiSeriesChartTooltipProps): import("react/jsx-runtime").JSX.Element;
25
+ /**
26
+ * Returns a Nivo-compatible tooltip component for bar charts.
27
+ * Usage: <ResponsiveBar tooltip={barTooltip} ... />
28
+ */
29
+ export declare function useBarTooltip(): ({ id, value, indexValue, }: {
30
+ id: string | number;
31
+ value: number;
32
+ indexValue: string | number;
33
+ }) => import("react/jsx-runtime").JSX.Element;
34
+ /**
35
+ * Returns a Nivo-compatible tooltip component for line / area charts.
36
+ * Usage: <ResponsiveLine tooltip={lineTooltip} ... />
37
+ */
38
+ export declare function useLineTooltip(): ({ point, }: {
39
+ point: {
40
+ seriesId: string | number;
41
+ data: {
42
+ xFormatted: string | number;
43
+ yFormatted: string | number;
44
+ };
45
+ color: string;
46
+ };
47
+ }) => import("react/jsx-runtime").JSX.Element;
48
+ //# sourceMappingURL=ChartTooltip.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChartTooltip.d.ts","sourceRoot":"","sources":["../../../src/components/panels/ChartTooltip.tsx"],"names":[],"mappings":"AA2DA,MAAM,WAAW,iBAAiB;IAChC,qEAAqE;IACrE,KAAK,EAAE,MAAM,CAAC;IACd,6BAA6B;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,gCAAgC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,iBAAiB,2CA4CtE;AAID,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,4BAA4B;IAC3C,iDAAiD;IACjD,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,gBAAgB,EAAE,CAAC;CAC5B;AAED,wBAAgB,uBAAuB,CAAC,EACtC,KAAK,EACL,MAAM,GACP,EAAE,4BAA4B,2CA6D9B;AAID;;;GAGG;AACH,wBAAgB,aAAa,KACnB,4BAIL;IACD,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC;CAC7B,6CACF;AAED;;;GAGG;AACH,wBAAgB,cAAc,KACpB,YAEL;IACD,KAAK,EAAE;QACL,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;QAC1B,IAAI,EAAE;YAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAAA;SAAE,CAAC;QACnE,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH,6CAOF"}
@@ -0,0 +1,129 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ // Copyright 2026 Mataki Labs LLC
3
+ //
4
+ // Licensed under the Business Source License 1.1 (the "License");
5
+ // you may not use this file except in compliance with the License.
6
+ // You may obtain a copy of the License at
7
+ //
8
+ // https://github.com/panoboard/panoboard/blob/main/LICENSE
9
+ //
10
+ // Unless required by applicable law or agreed to in writing, software
11
+ // distributed under the License is distributed on an "AS IS" BASIS,
12
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ // See the License for the specific language governing permissions and
14
+ // limitations under the License.
15
+ import { useTheme } from "../../theme/context";
16
+ /**
17
+ * Extracts a hex color from a Tailwind class string (same logic as nivo-theme).
18
+ * Duplicated here to keep this file self-contained and avoid circular deps.
19
+ */
20
+ function extractHex(twClass, fallback) {
21
+ const match = twClass.match(/#[0-9a-fA-F]{3,8}/);
22
+ if (match)
23
+ return match[0];
24
+ const namedColors = {
25
+ "slate-50": "#f8fafc",
26
+ "slate-100": "#f1f5f9",
27
+ "slate-200": "#e2e8f0",
28
+ "slate-300": "#cbd5e1",
29
+ "slate-400": "#94a3b8",
30
+ "slate-500": "#64748b",
31
+ "slate-600": "#475569",
32
+ "slate-700": "#334155",
33
+ "slate-800": "#1e293b",
34
+ "slate-900": "#0f172a",
35
+ "slate-950": "#020617",
36
+ "gray-800": "#1f2937",
37
+ "gray-900": "#111827",
38
+ "zinc-800": "#27272a",
39
+ "zinc-900": "#18181b",
40
+ white: "#ffffff",
41
+ black: "#000000",
42
+ "indigo-300": "#a5b4fc",
43
+ "indigo-400": "#818cf8",
44
+ "indigo-500": "#6366f1",
45
+ "emerald-400": "#34d399",
46
+ "red-400": "#f87171",
47
+ "amber-400": "#fbbf24",
48
+ };
49
+ for (const [name, hex] of Object.entries(namedColors)) {
50
+ if (twClass.includes(name))
51
+ return hex;
52
+ }
53
+ return fallback;
54
+ }
55
+ /**
56
+ * Themed tooltip for single-series Nivo charts.
57
+ * Uses inline styles because it renders inside an SVG foreign-object context.
58
+ */
59
+ export function ChartTooltip({ label, value, color }) {
60
+ const theme = useTheme();
61
+ const bg = extractHex(theme.surfaces.panel, "#0f172a");
62
+ const border = extractHex(theme.surfaces.panelBorder, "#334155");
63
+ const textMain = extractHex(theme.typography.panelTitle, "#f1f5f9");
64
+ const textMuted = extractHex(theme.typography.muted, "#64748b");
65
+ return (_jsxs("div", { style: {
66
+ background: bg,
67
+ border: `1px solid ${border}`,
68
+ borderRadius: 10,
69
+ padding: "8px 12px",
70
+ boxShadow: "0 8px 32px rgba(0,0,0,0.45)",
71
+ backdropFilter: "blur(8px)",
72
+ display: "flex",
73
+ flexDirection: "column",
74
+ gap: 4,
75
+ minWidth: 120,
76
+ }, children: [_jsx("span", { style: { fontSize: 11, color: textMuted, fontWeight: 500 }, children: label }), _jsxs("div", { style: { display: "flex", alignItems: "center", gap: 8 }, children: [color && (_jsx("span", { style: {
77
+ width: 10,
78
+ height: 10,
79
+ borderRadius: "50%",
80
+ background: color,
81
+ flexShrink: 0,
82
+ } })), _jsx("span", { style: { fontSize: 14, color: textMain, fontWeight: 600 }, children: value })] })] }));
83
+ }
84
+ export function MultiSeriesChartTooltip({ label, points, }) {
85
+ const theme = useTheme();
86
+ const bg = extractHex(theme.surfaces.panel, "#0f172a");
87
+ const border = extractHex(theme.surfaces.panelBorder, "#334155");
88
+ const textMain = extractHex(theme.typography.panelTitle, "#f1f5f9");
89
+ const textMuted = extractHex(theme.typography.muted, "#64748b");
90
+ const divider = extractHex(theme.surfaces.panelBorder, "#334155");
91
+ return (_jsxs("div", { style: {
92
+ background: bg,
93
+ border: `1px solid ${border}`,
94
+ borderRadius: 10,
95
+ padding: "10px 14px",
96
+ boxShadow: "0 8px 32px rgba(0,0,0,0.45)",
97
+ backdropFilter: "blur(8px)",
98
+ minWidth: 160,
99
+ }, children: [_jsx("div", { style: {
100
+ fontSize: 11,
101
+ color: textMuted,
102
+ fontWeight: 500,
103
+ marginBottom: 8,
104
+ paddingBottom: 6,
105
+ borderBottom: `1px solid ${divider}`,
106
+ }, children: label }), _jsx("div", { style: { display: "flex", flexDirection: "column", gap: 6 }, children: points.map((point) => (_jsxs("div", { style: { display: "flex", alignItems: "center", gap: 8 }, children: [point.color && (_jsx("span", { style: {
107
+ width: 8,
108
+ height: 8,
109
+ borderRadius: "50%",
110
+ background: point.color,
111
+ flexShrink: 0,
112
+ } })), _jsx("span", { style: { fontSize: 12, color: textMuted, flex: 1 }, children: point.id }), _jsx("span", { style: { fontSize: 12, color: textMain, fontWeight: 600 }, children: point.value })] }, point.id))) })] }));
113
+ }
114
+ // ─── Nivo-compatible tooltip factory helpers ──────────────────────────────────
115
+ /**
116
+ * Returns a Nivo-compatible tooltip component for bar charts.
117
+ * Usage: <ResponsiveBar tooltip={barTooltip} ... />
118
+ */
119
+ export function useBarTooltip() {
120
+ return ({ id, value, indexValue, }) => _jsx(ChartTooltip, { label: String(indexValue), value: `${id}: ${value}` });
121
+ }
122
+ /**
123
+ * Returns a Nivo-compatible tooltip component for line / area charts.
124
+ * Usage: <ResponsiveLine tooltip={lineTooltip} ... />
125
+ */
126
+ export function useLineTooltip() {
127
+ return ({ point, }) => (_jsx(ChartTooltip, { label: String(point.data.xFormatted), value: `${point.seriesId}: ${point.data.yFormatted}`, color: point.color }));
128
+ }
129
+ //# sourceMappingURL=ChartTooltip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChartTooltip.js","sourceRoot":"","sources":["../../../src/components/panels/ChartTooltip.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ interface ChartPanelProps {
2
+ data: Record<string, unknown>[];
3
+ config: Record<string, unknown>;
4
+ }
5
+ export declare function DonutChart({ data, config }: ChartPanelProps): import("react/jsx-runtime").JSX.Element;
6
+ export {};
7
+ //# sourceMappingURL=DonutChart.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DonutChart.d.ts","sourceRoot":"","sources":["../../../src/components/panels/DonutChart.tsx"],"names":[],"mappings":"AAqBA,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED,wBAAgB,UAAU,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,eAAe,2CAgD3D"}
@@ -0,0 +1,40 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ // Copyright 2026 Mataki Labs LLC
3
+ //
4
+ // Licensed under the Business Source License 1.1 (the "License");
5
+ // you may not use this file except in compliance with the License.
6
+ // You may obtain a copy of the License at
7
+ //
8
+ // https://github.com/panoboard/panoboard/blob/main/LICENSE
9
+ //
10
+ // Unless required by applicable law or agreed to in writing, software
11
+ // distributed under the License is distributed on an "AS IS" BASIS,
12
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ // See the License for the specific language governing permissions and
14
+ // limitations under the License.
15
+ import { ResponsivePie } from "@nivo/pie";
16
+ import { buildNivoTheme, getChartPalette } from "./nivo-theme";
17
+ import { useTheme } from "../../theme/context";
18
+ import { ChartTooltip } from "./ChartTooltip";
19
+ import { formatValue } from "../../formats";
20
+ import { useLocale } from "../../locale/context";
21
+ export function DonutChart({ data, config }) {
22
+ const theme = useTheme();
23
+ const nivoTheme = buildNivoTheme(theme);
24
+ const palette = getChartPalette(theme);
25
+ const idKey = config.id ?? config.x ?? "id";
26
+ const valueKey = config.value ?? config.y ?? "value";
27
+ const labelKey = config.label ?? idKey;
28
+ const yFormat = config.y_format;
29
+ const locale = useLocale();
30
+ const fmt = (v) => yFormat
31
+ ? formatValue(v, yFormat, locale)
32
+ : v.toLocaleString(locale, { maximumFractionDigits: 0 });
33
+ const chartData = data.map((row) => ({
34
+ id: String(row[idKey]),
35
+ value: Number(row[valueKey]) || 0,
36
+ label: String(row[labelKey]),
37
+ }));
38
+ return (_jsx("div", { style: { height: "100%" }, children: _jsx(ResponsivePie, { data: chartData, colors: palette, theme: nivoTheme, margin: { top: 16, right: 100, bottom: 16, left: 100 }, innerRadius: 0.6, padAngle: 0.7, cornerRadius: 3, activeOuterRadiusOffset: 8, arcLinkLabelsColor: { from: "color" }, arcLinkLabelsThickness: 2, arcLabelsSkipAngle: 10, arcLabelsTextColor: { from: "color", modifiers: [["brighter", 3]] }, valueFormat: (v) => fmt(v), tooltip: ({ datum }) => (_jsx(ChartTooltip, { label: datum.label, value: fmt(datum.value), color: datum.color })) }) }));
39
+ }
40
+ //# sourceMappingURL=DonutChart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DonutChart.js","sourceRoot":"","sources":["../../../src/components/panels/DonutChart.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ interface ChartPanelProps {
2
+ data: Record<string, unknown>[];
3
+ config: any;
4
+ }
5
+ export declare function FunnelChart({ data, config }: ChartPanelProps): import("react/jsx-runtime").JSX.Element;
6
+ export {};
7
+ //# sourceMappingURL=FunnelChart.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FunnelChart.d.ts","sourceRoot":"","sources":["../../../src/components/panels/FunnelChart.tsx"],"names":[],"mappings":"AAkBA,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAChC,MAAM,EAAE,GAAG,CAAC;CACb;AAED,wBAAgB,WAAW,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,eAAe,2CA6B5D"}