@panoboard/core 1.3.0 → 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (371) hide show
  1. package/dist/annotations/executor.d.ts +32 -0
  2. package/dist/annotations/executor.d.ts.map +1 -0
  3. package/dist/annotations/executor.js +74 -0
  4. package/dist/annotations/executor.js.map +1 -0
  5. package/dist/annotations/index.d.ts +2 -0
  6. package/dist/annotations/index.d.ts.map +1 -0
  7. package/dist/annotations/index.js +15 -0
  8. package/dist/annotations/index.js.map +1 -0
  9. package/dist/cache/keys.d.ts.map +1 -1
  10. package/dist/cache/keys.js +4 -4
  11. package/dist/cache/keys.js.map +1 -1
  12. package/dist/components/ConfigErrorBanner.d.ts.map +1 -1
  13. package/dist/components/ConfigErrorBanner.js +38 -10
  14. package/dist/components/ConfigErrorBanner.js.map +1 -1
  15. package/dist/components/CrosshairContext.d.ts +13 -0
  16. package/dist/components/CrosshairContext.d.ts.map +1 -0
  17. package/dist/components/CrosshairContext.js +37 -0
  18. package/dist/components/CrosshairContext.js.map +1 -0
  19. package/dist/components/DashboardCard.d.ts +3 -1
  20. package/dist/components/DashboardCard.d.ts.map +1 -1
  21. package/dist/components/DashboardCard.js +65 -12
  22. package/dist/components/DashboardCard.js.map +1 -1
  23. package/dist/components/DashboardDescription.d.ts +19 -0
  24. package/dist/components/DashboardDescription.d.ts.map +1 -0
  25. package/dist/components/DashboardDescription.js +61 -0
  26. package/dist/components/DashboardDescription.js.map +1 -0
  27. package/dist/components/DashboardLinks.d.ts +8 -0
  28. package/dist/components/DashboardLinks.d.ts.map +1 -0
  29. package/dist/components/DashboardLinks.js +53 -0
  30. package/dist/components/DashboardLinks.js.map +1 -0
  31. package/dist/components/DashboardShell.d.ts +5 -1
  32. package/dist/components/DashboardShell.d.ts.map +1 -1
  33. package/dist/components/DashboardShell.js +42 -25
  34. package/dist/components/DashboardShell.js.map +1 -1
  35. package/dist/components/EmptyState.d.ts.map +1 -1
  36. package/dist/components/EmptyState.js +7 -1
  37. package/dist/components/EmptyState.js.map +1 -1
  38. package/dist/components/ErrorPage.d.ts.map +1 -1
  39. package/dist/components/ErrorPage.js +22 -33
  40. package/dist/components/ErrorPage.js.map +1 -1
  41. package/dist/components/FilterBar.d.ts.map +1 -1
  42. package/dist/components/FilterBar.js +21 -5
  43. package/dist/components/FilterBar.js.map +1 -1
  44. package/dist/components/NotificationCenter.d.ts +6 -0
  45. package/dist/components/NotificationCenter.d.ts.map +1 -0
  46. package/dist/components/NotificationCenter.js +83 -0
  47. package/dist/components/NotificationCenter.js.map +1 -0
  48. package/dist/components/NotificationIndicator.d.ts +6 -0
  49. package/dist/components/NotificationIndicator.d.ts.map +1 -0
  50. package/dist/components/NotificationIndicator.js +24 -0
  51. package/dist/components/NotificationIndicator.js.map +1 -0
  52. package/dist/components/PanelGrid.js +2 -2
  53. package/dist/components/PanelGrid.js.map +1 -1
  54. package/dist/components/PanelWrapper.d.ts +2 -1
  55. package/dist/components/PanelWrapper.d.ts.map +1 -1
  56. package/dist/components/PanelWrapper.js +101 -16
  57. package/dist/components/PanelWrapper.js.map +1 -1
  58. package/dist/components/RefreshContext.d.ts +3 -0
  59. package/dist/components/RefreshContext.d.ts.map +1 -0
  60. package/dist/components/RefreshContext.js +7 -0
  61. package/dist/components/RefreshContext.js.map +1 -0
  62. package/dist/components/RefreshControl.d.ts +17 -0
  63. package/dist/components/RefreshControl.d.ts.map +1 -0
  64. package/dist/components/RefreshControl.js +72 -0
  65. package/dist/components/RefreshControl.js.map +1 -0
  66. package/dist/components/SectionGrid.d.ts +9 -0
  67. package/dist/components/SectionGrid.d.ts.map +1 -0
  68. package/dist/components/SectionGrid.js +76 -0
  69. package/dist/components/SectionGrid.js.map +1 -0
  70. package/dist/components/SectionHeader.d.ts +8 -0
  71. package/dist/components/SectionHeader.d.ts.map +1 -0
  72. package/dist/components/SectionHeader.js +21 -0
  73. package/dist/components/SectionHeader.js.map +1 -0
  74. package/dist/components/TagPills.d.ts +7 -0
  75. package/dist/components/TagPills.d.ts.map +1 -0
  76. package/dist/components/TagPills.js +41 -0
  77. package/dist/components/TagPills.js.map +1 -0
  78. package/dist/components/filters/BooleanFilter.d.ts.map +1 -1
  79. package/dist/components/filters/BooleanFilter.js +1 -3
  80. package/dist/components/filters/BooleanFilter.js.map +1 -1
  81. package/dist/components/filters/CalendarGrid.d.ts.map +1 -1
  82. package/dist/components/filters/CalendarGrid.js +1 -1
  83. package/dist/components/filters/CalendarGrid.js.map +1 -1
  84. package/dist/components/filters/DateRangeFilter.d.ts.map +1 -1
  85. package/dist/components/filters/DateRangeFilter.js +4 -6
  86. package/dist/components/filters/DateRangeFilter.js.map +1 -1
  87. package/dist/components/filters/FilterChips.d.ts.map +1 -1
  88. package/dist/components/filters/FilterChips.js +71 -10
  89. package/dist/components/filters/FilterChips.js.map +1 -1
  90. package/dist/components/filters/IntervalFilter.d.ts +9 -0
  91. package/dist/components/filters/IntervalFilter.d.ts.map +1 -0
  92. package/dist/components/filters/IntervalFilter.js +32 -0
  93. package/dist/components/filters/IntervalFilter.js.map +1 -0
  94. package/dist/components/filters/MultiSelectFilter.d.ts.map +1 -1
  95. package/dist/components/filters/MultiSelectFilter.js +1 -3
  96. package/dist/components/filters/MultiSelectFilter.js.map +1 -1
  97. package/dist/components/filters/NumberFilter.d.ts.map +1 -1
  98. package/dist/components/filters/NumberFilter.js +5 -1
  99. package/dist/components/filters/NumberFilter.js.map +1 -1
  100. package/dist/components/filters/SelectFilter.d.ts +2 -1
  101. package/dist/components/filters/SelectFilter.d.ts.map +1 -1
  102. package/dist/components/filters/SelectFilter.js +9 -10
  103. package/dist/components/filters/SelectFilter.js.map +1 -1
  104. package/dist/components/filters/TextFilter.d.ts.map +1 -1
  105. package/dist/components/filters/TextFilter.js +5 -1
  106. package/dist/components/filters/TextFilter.js.map +1 -1
  107. package/dist/components/index.d.ts +11 -1
  108. package/dist/components/index.d.ts.map +1 -1
  109. package/dist/components/index.js +14 -1
  110. package/dist/components/index.js.map +1 -1
  111. package/dist/components/panels/AnnotationLayer.d.ts +28 -0
  112. package/dist/components/panels/AnnotationLayer.d.ts.map +1 -0
  113. package/dist/components/panels/AnnotationLayer.js +102 -0
  114. package/dist/components/panels/AnnotationLayer.js.map +1 -0
  115. package/dist/components/panels/AreaChart.d.ts +3 -1
  116. package/dist/components/panels/AreaChart.d.ts.map +1 -1
  117. package/dist/components/panels/AreaChart.js +87 -5
  118. package/dist/components/panels/AreaChart.js.map +1 -1
  119. package/dist/components/panels/BarChart.d.ts.map +1 -1
  120. package/dist/components/panels/BarChart.js +61 -7
  121. package/dist/components/panels/BarChart.js.map +1 -1
  122. package/dist/components/panels/BulletChart.js +1 -1
  123. package/dist/components/panels/BulletChart.js.map +1 -1
  124. package/dist/components/panels/CalendarHeatmap.d.ts.map +1 -1
  125. package/dist/components/panels/CalendarHeatmap.js +7 -4
  126. package/dist/components/panels/CalendarHeatmap.js.map +1 -1
  127. package/dist/components/panels/ChartTooltip.d.ts.map +1 -1
  128. package/dist/components/panels/ChartTooltip.js +9 -48
  129. package/dist/components/panels/ChartTooltip.js.map +1 -1
  130. package/dist/components/panels/DataLinks.d.ts +35 -0
  131. package/dist/components/panels/DataLinks.d.ts.map +1 -0
  132. package/dist/components/panels/DataLinks.js +67 -0
  133. package/dist/components/panels/DataLinks.js.map +1 -0
  134. package/dist/components/panels/GaugePanel.d.ts +7 -0
  135. package/dist/components/panels/GaugePanel.d.ts.map +1 -0
  136. package/dist/components/panels/GaugePanel.js +116 -0
  137. package/dist/components/panels/GaugePanel.js.map +1 -0
  138. package/dist/components/panels/HistogramPanel.d.ts +18 -0
  139. package/dist/components/panels/HistogramPanel.d.ts.map +1 -0
  140. package/dist/components/panels/HistogramPanel.js +92 -0
  141. package/dist/components/panels/HistogramPanel.js.map +1 -0
  142. package/dist/components/panels/LineChart.d.ts +3 -1
  143. package/dist/components/panels/LineChart.d.ts.map +1 -1
  144. package/dist/components/panels/LineChart.js +90 -5
  145. package/dist/components/panels/LineChart.js.map +1 -1
  146. package/dist/components/panels/ListPanel.d.ts.map +1 -1
  147. package/dist/components/panels/ListPanel.js +1 -1
  148. package/dist/components/panels/ListPanel.js.map +1 -1
  149. package/dist/components/panels/MarkdownPanel.d.ts +15 -1
  150. package/dist/components/panels/MarkdownPanel.d.ts.map +1 -1
  151. package/dist/components/panels/MarkdownPanel.js +70 -7
  152. package/dist/components/panels/MarkdownPanel.js.map +1 -1
  153. package/dist/components/panels/MetricPanel.d.ts.map +1 -1
  154. package/dist/components/panels/MetricPanel.js +1 -1
  155. package/dist/components/panels/MetricPanel.js.map +1 -1
  156. package/dist/components/panels/PanelEmpty.d.ts.map +1 -1
  157. package/dist/components/panels/PanelEmpty.js +1 -1
  158. package/dist/components/panels/PanelEmpty.js.map +1 -1
  159. package/dist/components/panels/PanelError.d.ts.map +1 -1
  160. package/dist/components/panels/PanelError.js +4 -1
  161. package/dist/components/panels/PanelError.js.map +1 -1
  162. package/dist/components/panels/PanelSkeleton.js +2 -2
  163. package/dist/components/panels/PanelSkeleton.js.map +1 -1
  164. package/dist/components/panels/RadialBarChart.js +1 -1
  165. package/dist/components/panels/RadialBarChart.js.map +1 -1
  166. package/dist/components/panels/ScatterChart.d.ts +15 -1
  167. package/dist/components/panels/ScatterChart.d.ts.map +1 -1
  168. package/dist/components/panels/ScatterChart.js +96 -26
  169. package/dist/components/panels/ScatterChart.js.map +1 -1
  170. package/dist/components/panels/Sparkline.d.ts +21 -0
  171. package/dist/components/panels/Sparkline.d.ts.map +1 -0
  172. package/dist/components/panels/Sparkline.js +53 -0
  173. package/dist/components/panels/Sparkline.js.map +1 -0
  174. package/dist/components/panels/StatPanel.d.ts +3 -1
  175. package/dist/components/panels/StatPanel.d.ts.map +1 -1
  176. package/dist/components/panels/StatPanel.js +33 -4
  177. package/dist/components/panels/StatPanel.js.map +1 -1
  178. package/dist/components/panels/TablePanel.d.ts +2 -1
  179. package/dist/components/panels/TablePanel.d.ts.map +1 -1
  180. package/dist/components/panels/TablePanel.js +96 -6
  181. package/dist/components/panels/TablePanel.js.map +1 -1
  182. package/dist/components/panels/VideoPanel.d.ts.map +1 -1
  183. package/dist/components/panels/VideoPanel.js +1 -1
  184. package/dist/components/panels/VideoPanel.js.map +1 -1
  185. package/dist/components/panels/nivo-theme.d.ts +1 -44
  186. package/dist/components/panels/nivo-theme.d.ts.map +1 -1
  187. package/dist/components/panels/nivo-theme.js +9 -104
  188. package/dist/components/panels/nivo-theme.js.map +1 -1
  189. package/dist/components/panels/semantic-colors.d.ts.map +1 -1
  190. package/dist/components/panels/semantic-colors.js +2 -39
  191. package/dist/components/panels/semantic-colors.js.map +1 -1
  192. package/dist/components/ui/Button.d.ts +1 -1
  193. package/dist/components/ui/Button.d.ts.map +1 -1
  194. package/dist/components/ui/Button.js +6 -9
  195. package/dist/components/ui/Button.js.map +1 -1
  196. package/dist/components/ui/Tabs.d.ts.map +1 -1
  197. package/dist/components/ui/Tabs.js +1 -1
  198. package/dist/components/ui/Tabs.js.map +1 -1
  199. package/dist/connectors/bigquery.d.ts.map +1 -1
  200. package/dist/connectors/bigquery.js +6 -1
  201. package/dist/connectors/bigquery.js.map +1 -1
  202. package/dist/connectors/postgres.d.ts.map +1 -1
  203. package/dist/connectors/postgres.js +3 -0
  204. package/dist/connectors/postgres.js.map +1 -1
  205. package/dist/connectors/redshift.d.ts.map +1 -1
  206. package/dist/connectors/redshift.js +3 -0
  207. package/dist/connectors/redshift.js.map +1 -1
  208. package/dist/contexts/NotificationContext.d.ts +10 -0
  209. package/dist/contexts/NotificationContext.d.ts.map +1 -0
  210. package/dist/contexts/NotificationContext.js +24 -0
  211. package/dist/contexts/NotificationContext.js.map +1 -0
  212. package/dist/filters/daterange.d.ts +1 -1
  213. package/dist/filters/daterange.d.ts.map +1 -1
  214. package/dist/filters/daterange.js +54 -9
  215. package/dist/filters/daterange.js.map +1 -1
  216. package/dist/filters/index.d.ts +2 -0
  217. package/dist/filters/index.d.ts.map +1 -1
  218. package/dist/filters/index.js +2 -0
  219. package/dist/filters/index.js.map +1 -1
  220. package/dist/filters/interval.d.ts +13 -0
  221. package/dist/filters/interval.d.ts.map +1 -0
  222. package/dist/filters/interval.js +40 -0
  223. package/dist/filters/interval.js.map +1 -0
  224. package/dist/filters/resolver.d.ts +1 -1
  225. package/dist/filters/resolver.d.ts.map +1 -1
  226. package/dist/filters/resolver.js +28 -2
  227. package/dist/filters/resolver.js.map +1 -1
  228. package/dist/flattenTabs.d.ts +8 -0
  229. package/dist/flattenTabs.d.ts.map +1 -0
  230. package/dist/flattenTabs.js +24 -0
  231. package/dist/flattenTabs.js.map +1 -0
  232. package/dist/formats.d.ts +1 -1
  233. package/dist/formats.d.ts.map +1 -1
  234. package/dist/formats.js +19 -9
  235. package/dist/formats.js.map +1 -1
  236. package/dist/hooks/useNotifications.d.ts +5 -0
  237. package/dist/hooks/useNotifications.d.ts.map +1 -0
  238. package/dist/hooks/useNotifications.js +48 -0
  239. package/dist/hooks/useNotifications.js.map +1 -0
  240. package/dist/index.d.ts +3 -0
  241. package/dist/index.d.ts.map +1 -1
  242. package/dist/index.js +4 -0
  243. package/dist/index.js.map +1 -1
  244. package/dist/interpolation.d.ts +10 -0
  245. package/dist/interpolation.d.ts.map +1 -0
  246. package/dist/interpolation.js +64 -0
  247. package/dist/interpolation.js.map +1 -0
  248. package/dist/panels/conditional.d.ts +12 -0
  249. package/dist/panels/conditional.d.ts.map +1 -0
  250. package/dist/panels/conditional.js +90 -0
  251. package/dist/panels/conditional.js.map +1 -0
  252. package/dist/panels/index.d.ts +11 -0
  253. package/dist/panels/index.d.ts.map +1 -0
  254. package/dist/panels/index.js +19 -0
  255. package/dist/panels/index.js.map +1 -0
  256. package/dist/panels/mappings.d.ts +40 -0
  257. package/dist/panels/mappings.d.ts.map +1 -0
  258. package/dist/panels/mappings.js +83 -0
  259. package/dist/panels/mappings.js.map +1 -0
  260. package/dist/panels/overrides.d.ts +37 -0
  261. package/dist/panels/overrides.d.ts.map +1 -0
  262. package/dist/panels/overrides.js +57 -0
  263. package/dist/panels/overrides.js.map +1 -0
  264. package/dist/panels/threshold-layers.d.ts +18 -0
  265. package/dist/panels/threshold-layers.d.ts.map +1 -0
  266. package/dist/panels/threshold-layers.js +35 -0
  267. package/dist/panels/threshold-layers.js.map +1 -0
  268. package/dist/panels/thresholds.d.ts +36 -0
  269. package/dist/panels/thresholds.d.ts.map +1 -0
  270. package/dist/panels/thresholds.js +81 -0
  271. package/dist/panels/thresholds.js.map +1 -0
  272. package/dist/schemas/annotations.d.ts +34 -0
  273. package/dist/schemas/annotations.d.ts.map +1 -0
  274. package/dist/schemas/annotations.js +19 -0
  275. package/dist/schemas/annotations.js.map +1 -0
  276. package/dist/schemas/config.d.ts +1 -0
  277. package/dist/schemas/config.d.ts.map +1 -1
  278. package/dist/schemas/config.js +1 -0
  279. package/dist/schemas/config.js.map +1 -1
  280. package/dist/schemas/dashboard.d.ts +5861 -235
  281. package/dist/schemas/dashboard.d.ts.map +1 -1
  282. package/dist/schemas/dashboard.js +173 -10
  283. package/dist/schemas/dashboard.js.map +1 -1
  284. package/dist/schemas/index.d.ts +6 -1
  285. package/dist/schemas/index.d.ts.map +1 -1
  286. package/dist/schemas/index.js +6 -1
  287. package/dist/schemas/index.js.map +1 -1
  288. package/dist/schemas/mappings.d.ts +46 -0
  289. package/dist/schemas/mappings.d.ts.map +1 -0
  290. package/dist/schemas/mappings.js +46 -0
  291. package/dist/schemas/mappings.js.map +1 -0
  292. package/dist/schemas/overrides.d.ts +77 -0
  293. package/dist/schemas/overrides.d.ts.map +1 -0
  294. package/dist/schemas/overrides.js +38 -0
  295. package/dist/schemas/overrides.js.map +1 -0
  296. package/dist/schemas/theme.d.ts +89 -7
  297. package/dist/schemas/theme.d.ts.map +1 -1
  298. package/dist/schemas/theme.js +40 -24
  299. package/dist/schemas/theme.js.map +1 -1
  300. package/dist/schemas/thresholds.d.ts +19 -0
  301. package/dist/schemas/thresholds.d.ts.map +1 -0
  302. package/dist/schemas/thresholds.js +31 -0
  303. package/dist/schemas/thresholds.js.map +1 -0
  304. package/dist/schemas/transforms.d.ts +54 -0
  305. package/dist/schemas/transforms.d.ts.map +1 -0
  306. package/dist/schemas/transforms.js +51 -0
  307. package/dist/schemas/transforms.js.map +1 -0
  308. package/dist/startup/sql-lint.d.ts.map +1 -1
  309. package/dist/startup/sql-lint.js +3 -2
  310. package/dist/startup/sql-lint.js.map +1 -1
  311. package/dist/theme/builtin.d.ts.map +1 -1
  312. package/dist/theme/builtin.js +56 -62
  313. package/dist/theme/builtin.js.map +1 -1
  314. package/dist/theme/colors.d.ts +11 -0
  315. package/dist/theme/colors.d.ts.map +1 -0
  316. package/dist/theme/colors.js +71 -0
  317. package/dist/theme/colors.js.map +1 -0
  318. package/dist/theme/context.d.ts.map +1 -1
  319. package/dist/theme/context.js +16 -3
  320. package/dist/theme/context.js.map +1 -1
  321. package/dist/theme/loader-export.d.ts +1 -1
  322. package/dist/theme/loader-export.d.ts.map +1 -1
  323. package/dist/theme/loader-export.js +1 -1
  324. package/dist/theme/loader-export.js.map +1 -1
  325. package/dist/theme/loader.d.ts +8 -3
  326. package/dist/theme/loader.d.ts.map +1 -1
  327. package/dist/theme/loader.js +24 -13
  328. package/dist/theme/loader.js.map +1 -1
  329. package/dist/transforms/computed.d.ts +11 -0
  330. package/dist/transforms/computed.d.ts.map +1 -0
  331. package/dist/transforms/computed.js +24 -0
  332. package/dist/transforms/computed.js.map +1 -0
  333. package/dist/transforms/engine.d.ts +17 -0
  334. package/dist/transforms/engine.d.ts.map +1 -0
  335. package/dist/transforms/engine.js +65 -0
  336. package/dist/transforms/engine.js.map +1 -0
  337. package/dist/transforms/expression.d.ts +9 -0
  338. package/dist/transforms/expression.d.ts.map +1 -0
  339. package/dist/transforms/expression.js +306 -0
  340. package/dist/transforms/expression.js.map +1 -0
  341. package/dist/transforms/filter.d.ts +11 -0
  342. package/dist/transforms/filter.d.ts.map +1 -0
  343. package/dist/transforms/filter.js +10 -0
  344. package/dist/transforms/filter.js.map +1 -0
  345. package/dist/transforms/index.d.ts +10 -0
  346. package/dist/transforms/index.d.ts.map +1 -0
  347. package/dist/transforms/index.js +9 -0
  348. package/dist/transforms/index.js.map +1 -0
  349. package/dist/transforms/limit.d.ts +11 -0
  350. package/dist/transforms/limit.d.ts.map +1 -0
  351. package/dist/transforms/limit.js +4 -0
  352. package/dist/transforms/limit.js.map +1 -0
  353. package/dist/transforms/percentage.d.ts +11 -0
  354. package/dist/transforms/percentage.d.ts.map +1 -0
  355. package/dist/transforms/percentage.js +25 -0
  356. package/dist/transforms/percentage.js.map +1 -0
  357. package/dist/transforms/rename.d.ts +11 -0
  358. package/dist/transforms/rename.d.ts.map +1 -0
  359. package/dist/transforms/rename.js +17 -0
  360. package/dist/transforms/rename.js.map +1 -0
  361. package/dist/transforms/sort.d.ts +11 -0
  362. package/dist/transforms/sort.d.ts.map +1 -0
  363. package/dist/transforms/sort.js +21 -0
  364. package/dist/transforms/sort.js.map +1 -0
  365. package/dist/types/config-error.d.ts +1 -1
  366. package/dist/types/config-error.d.ts.map +1 -1
  367. package/dist/types/notification.d.ts +19 -0
  368. package/dist/types/notification.d.ts.map +1 -0
  369. package/dist/types/notification.js +15 -0
  370. package/dist/types/notification.js.map +1 -0
  371. package/package.json +12 -2
@@ -17,11 +17,16 @@ import { ChevronUp, ChevronDown } from "lucide-react";
17
17
  import { formatValue } from "../../formats";
18
18
  import { useTheme } from "../../theme/context";
19
19
  import { useLocale } from "../../locale/context";
20
- function formatCell(value, format, locale = "en-US") {
20
+ import { resolveThresholdColor, resolveSemanticHex } from "../../panels/thresholds";
21
+ import { resolveOverrides } from "../../panels/overrides";
22
+ import { applyMappings } from "../../panels/mappings";
23
+ import { evaluateConditional } from "../../panels/conditional";
24
+ import { DataLinkIcon, resolveDataLinks } from "./DataLinks";
25
+ function formatCell(value, format, locale = "en-US", decimals) {
21
26
  if (value === null || value === undefined)
22
27
  return "—";
23
28
  if (format)
24
- return formatValue(value, format, locale);
29
+ return formatValue(value, format, locale, decimals);
25
30
  const str = String(value);
26
31
  // Auto-detect ISO date strings and format them
27
32
  if (/^\d{4}-\d{2}-\d{2}T/.test(str)) {
@@ -38,14 +43,35 @@ function formatCell(value, format, locale = "en-US") {
38
43
  }
39
44
  return str;
40
45
  }
41
- export function TablePanel({ panel, data }) {
46
+ export function TablePanel({ panel, data, filterValues = {} }) {
42
47
  const theme = useTheme();
43
48
  const locale = useLocale();
44
49
  const table = panel.table;
50
+ const dataLinks = panel.data_links ?? [];
45
51
  const dataColumns = data.columns;
46
52
  const columns = table?.columns ??
47
53
  dataColumns.map((c) => ({ key: c.name, label: c.name }));
48
54
  const pageSize = table?.page_size ?? 25;
55
+ // Enrichment config from panel YAML
56
+ const overrides = panel.overrides;
57
+ const panelThresholds = panel.thresholds;
58
+ const mappings = panel.mappings;
59
+ // Pre-resolve overrides for each column
60
+ const columnOverrides = {};
61
+ if (overrides) {
62
+ for (const col of columns) {
63
+ columnOverrides[col.key] = resolveOverrides(col.key, overrides);
64
+ }
65
+ }
66
+ // Pre-resolve conditional rules for each column from table config
67
+ const columnConditionals = {};
68
+ if (table?.columns) {
69
+ for (const col of table.columns) {
70
+ if (col.conditional) {
71
+ columnConditionals[col.key] = col.conditional;
72
+ }
73
+ }
74
+ }
49
75
  const [sortKey, setSortKey] = useState(table?.sort_by ?? columns[0]?.key);
50
76
  const [sortDir, setSortDir] = useState(table?.sort_dir ?? "DESC");
51
77
  const [page, setPage] = useState(0);
@@ -63,7 +89,6 @@ export function TablePanel({ panel, data }) {
63
89
  const sorted = [...rows].sort((a, b) => {
64
90
  const aVal = a[sortKey];
65
91
  const bVal = b[sortKey];
66
- // pg returns bigint/numeric columns as strings; coerce to number when possible
67
92
  const aNum = Number(aVal);
68
93
  const bNum = Number(bVal);
69
94
  const cmp = !isNaN(aNum) && !isNaN(bNum)
@@ -73,7 +98,72 @@ export function TablePanel({ panel, data }) {
73
98
  });
74
99
  const paged = sorted.slice(page * pageSize, (page + 1) * pageSize);
75
100
  const totalPages = Math.ceil(sorted.length / pageSize);
76
- return (_jsxs("div", { className: "overflow-x-auto", children: [_jsxs("table", { className: "w-full text-sm", children: [_jsx("thead", { children: _jsx("tr", { className: `border-b ${theme.surfaces.panelBorder}`, children: columns.map((col) => (_jsx("th", { className: `py-2 px-3 ${theme.typography.label} uppercase tracking-wide font-medium cursor-pointer select-none hover:opacity-80 transition ${col.align === "right" ? "text-right" : "text-left"}`, onClick: () => toggleSort(col.key), children: _jsxs("span", { className: "inline-flex items-center gap-1", children: [col.label, sortKey === col.key &&
77
- (sortDir === "ASC" ? (_jsx(ChevronUp, { className: "w-3 h-3" })) : (_jsx(ChevronDown, { className: "w-3 h-3" })))] }) }, col.key))) }) }), _jsx("tbody", { children: paged.map((row, i) => (_jsx("tr", { className: `border-b ${theme.surfaces.panelBorder} opacity-90 hover:opacity-100`, children: columns.map((col) => (_jsx("td", { className: `py-2.5 px-3 ${theme.filters.text} ${col.align === "right" ? "text-right tabular-nums" : ""}`, children: formatCell(row[col.key], col.format, locale) }, col.key))) }, i))) })] }), sorted.length > pageSize && (_jsxs("div", { className: `mt-3 flex justify-between items-center ${theme.typography.label} uppercase tracking-wide`, children: [_jsxs("span", { children: ["Showing ", page * pageSize + 1, "-", Math.min((page + 1) * pageSize, sorted.length), " of ", sorted.length, " ", "results"] }), _jsxs("div", { className: "flex gap-2", children: [_jsx("button", { disabled: page === 0, onClick: () => setPage((p) => p - 1), className: "disabled:opacity-30 hover:opacity-80 transition", children: "\u2190 Prev" }), _jsx("button", { disabled: page >= totalPages - 1, onClick: () => setPage((p) => p + 1), className: "disabled:opacity-30 hover:opacity-80 transition", children: "Next \u2192" })] })] }))] }));
101
+ /**
102
+ * Resolve the display text and cell style for a given cell value.
103
+ */
104
+ function resolveCellDisplay(value, colKey, colFormat, colDecimals) {
105
+ const ovr = columnOverrides[colKey];
106
+ const effectiveFormat = ovr?.format ?? colFormat;
107
+ const effectiveDecimals = ovr?.decimals ?? colDecimals;
108
+ const effectiveThresholds = ovr?.thresholds ?? panelThresholds;
109
+ // Apply value mappings first
110
+ const mapped = applyMappings(value, mappings);
111
+ if (mapped) {
112
+ const mappedBg = mapped.color
113
+ ? resolveSemanticHex(mapped.color, theme)
114
+ : undefined;
115
+ return {
116
+ text: mapped.text,
117
+ bgColor: mappedBg ? `${mappedBg}18` : undefined,
118
+ textColor: mappedBg,
119
+ };
120
+ }
121
+ // Evaluate conditional formatting rules (AFTER mappings, BEFORE thresholds)
122
+ const condRules = columnConditionals[colKey];
123
+ const condStyle = evaluateConditional(value, condRules);
124
+ if (condStyle) {
125
+ const condBg = condStyle.background
126
+ ? resolveSemanticHex(condStyle.background, theme)
127
+ : undefined;
128
+ const condColor = condStyle.color
129
+ ? resolveSemanticHex(condStyle.color, theme)
130
+ : undefined;
131
+ return {
132
+ text: formatCell(value, effectiveFormat, locale, effectiveDecimals),
133
+ bgColor: condBg ? `${condBg}18` : undefined,
134
+ textColor: condColor,
135
+ fontWeight: condStyle.weight === "bold" ? "bold" : undefined,
136
+ fontStyle: condStyle.italic ? "italic" : undefined,
137
+ };
138
+ }
139
+ // Apply threshold coloring
140
+ const thresholdColorName = resolveThresholdColor(value, effectiveThresholds);
141
+ const thresholdHex = thresholdColorName
142
+ ? resolveSemanticHex(thresholdColorName, theme)
143
+ : undefined;
144
+ // Apply override fixed color
145
+ const fixedColor = ovr?.color
146
+ ? resolveSemanticHex(ovr.color, theme)
147
+ : undefined;
148
+ return {
149
+ text: formatCell(value, effectiveFormat, locale, effectiveDecimals),
150
+ bgColor: thresholdHex ? `${thresholdHex}18` : undefined,
151
+ textColor: fixedColor ?? thresholdHex,
152
+ };
153
+ }
154
+ return (_jsxs("div", { className: "overflow-x-auto", children: [_jsxs("table", { className: "w-full text-sm", children: [_jsx("thead", { children: _jsxs("tr", { className: "border-b", style: { borderColor: theme.panel.border }, children: [columns.map((col) => {
155
+ const ovr = columnOverrides[col.key];
156
+ const displayLabel = ovr?.label ?? col.label;
157
+ return (_jsx("th", { className: `py-2 px-3 uppercase tracking-wide font-medium cursor-pointer select-none hover:opacity-80 transition ${col.align === "right" ? "text-right" : "text-left"}`, style: { color: theme.typography.label }, onClick: () => toggleSort(col.key), children: _jsxs("span", { className: "inline-flex items-center gap-1", children: [displayLabel, sortKey === col.key &&
158
+ (sortDir === "ASC" ? (_jsx(ChevronUp, { className: "w-3 h-3" })) : (_jsx(ChevronDown, { className: "w-3 h-3" })))] }) }, col.key));
159
+ }), dataLinks.length > 0 && (_jsx("th", { className: "py-2 px-3 uppercase tracking-wide font-medium text-right", style: { color: theme.typography.label }, children: "Links" }))] }) }), _jsx("tbody", { children: paged.map((row, i) => (_jsxs("tr", { className: "border-b opacity-90 hover:opacity-100", style: { borderColor: theme.panel.border }, children: [columns.map((col) => {
160
+ const cell = resolveCellDisplay(row[col.key], col.key, col.format, col.decimals);
161
+ return (_jsx("td", { className: `py-2.5 px-3 ${col.align === "right" ? "text-right tabular-nums" : ""} transition-colors duration-200`, style: {
162
+ backgroundColor: cell.bgColor,
163
+ color: cell.textColor ?? theme.filters.text,
164
+ fontWeight: cell.fontWeight,
165
+ fontStyle: cell.fontStyle,
166
+ }, children: cell.text }, col.key));
167
+ }), dataLinks.length > 0 && (_jsx("td", { className: `py-2.5 px-3 text-right`, children: _jsx(DataLinkIcon, { links: resolveDataLinks(dataLinks, row, filterValues) }) }))] }, i))) })] }), sorted.length > pageSize && (_jsxs("div", { className: "mt-3 flex justify-between items-center uppercase tracking-wide", style: { color: theme.typography.label }, children: [_jsxs("span", { children: ["Showing ", page * pageSize + 1, "-", Math.min((page + 1) * pageSize, sorted.length), " of ", sorted.length, " ", "results"] }), _jsxs("div", { className: "flex gap-2", children: [_jsx("button", { disabled: page === 0, onClick: () => setPage((p) => p - 1), className: "disabled:opacity-30 hover:opacity-80 transition", children: "\u2190 Prev" }), _jsx("button", { disabled: page >= totalPages - 1, onClick: () => setPage((p) => p + 1), className: "disabled:opacity-30 hover:opacity-80 transition", children: "Next \u2192" })] })] }))] }));
78
168
  }
79
169
  //# sourceMappingURL=TablePanel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TablePanel.js","sourceRoot":"","sources":["../../../src/components/panels/TablePanel.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TablePanel.js","sourceRoot":"","sources":["../../../src/components/panels/TablePanel.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"VideoPanel.d.ts","sourceRoot":"","sources":["../../../src/components/panels/VideoPanel.tsx"],"names":[],"mappings":"AAgBA,UAAU,eAAe;IACvB,KAAK,EAAE;QACL,KAAK,CAAC,EAAE;YACN,GAAG,CAAC,EAAE,MAAM,CAAC;YACb,QAAQ,CAAC,EAAE,OAAO,CAAC;YACnB,IAAI,CAAC,EAAE,OAAO,CAAC;YACf,KAAK,CAAC,EAAE,OAAO,CAAC;YAChB,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;SACpB,CAAC;KACH,CAAC;CACH;AAED,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,EAAE,eAAe,2CAiCpD"}
1
+ {"version":3,"file":"VideoPanel.d.ts","sourceRoot":"","sources":["../../../src/components/panels/VideoPanel.tsx"],"names":[],"mappings":"AAgBA,UAAU,eAAe;IACvB,KAAK,EAAE;QACL,KAAK,CAAC,EAAE;YACN,GAAG,CAAC,EAAE,MAAM,CAAC;YACb,QAAQ,CAAC,EAAE,OAAO,CAAC;YACnB,IAAI,CAAC,EAAE,OAAO,CAAC;YACf,KAAK,CAAC,EAAE,OAAO,CAAC;YAChB,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;SACpB,CAAC;KACH,CAAC;CACH;AAED,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,EAAE,eAAe,2CAkCpD"}
@@ -18,7 +18,7 @@ export function VideoPanel({ panel }) {
18
18
  const cfg = panel.video ?? {};
19
19
  const { src, autoplay = false, loop = false, muted = false, poster, controls = true, } = cfg;
20
20
  if (!src) {
21
- return (_jsx("div", { className: `flex items-center justify-center h-full ${theme.typography.muted}`, children: "No video source configured" }));
21
+ return (_jsx("div", { className: "flex items-center justify-center h-full", style: { color: theme.typography.muted }, children: "No video source configured" }));
22
22
  }
23
23
  return (_jsx("video", { src: src, autoPlay: autoplay, loop: loop, muted: muted, poster: poster, controls: controls, className: "w-full h-full object-contain" }));
24
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"VideoPanel.js","sourceRoot":"","sources":["../../../src/components/panels/VideoPanel.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,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAe/C,MAAM,UAAU,UAAU,CAAC,EAAE,KAAK,EAAmB;IACnD,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;IAC9B,MAAM,EACJ,GAAG,EACH,QAAQ,GAAG,KAAK,EAChB,IAAI,GAAG,KAAK,EACZ,KAAK,GAAG,KAAK,EACb,MAAM,EACN,QAAQ,GAAG,IAAI,GAChB,GAAG,GAAG,CAAC;IAER,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,CACL,cACE,SAAS,EAAE,2CAA2C,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,2CAG1E,CACP,CAAC;IACJ,CAAC;IAED,OAAO,CACL,gBACE,GAAG,EAAE,GAAG,EACR,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAC,8BAA8B,GACxC,CACH,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"VideoPanel.js","sourceRoot":"","sources":["../../../src/components/panels/VideoPanel.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,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAe/C,MAAM,UAAU,UAAU,CAAC,EAAE,KAAK,EAAmB;IACnD,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;IAC9B,MAAM,EACJ,GAAG,EACH,QAAQ,GAAG,KAAK,EAChB,IAAI,GAAG,KAAK,EACZ,KAAK,GAAG,KAAK,EACb,MAAM,EACN,QAAQ,GAAG,IAAI,GAChB,GAAG,GAAG,CAAC;IAER,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,CACL,cACE,SAAS,EAAC,yCAAyC,EACnD,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,2CAGpC,CACP,CAAC;IACJ,CAAC;IAED,OAAO,CACL,gBACE,GAAG,EAAE,GAAG,EACR,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAC,8BAA8B,GACxC,CACH,CAAC;AACJ,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import type { Theme } from "../../schemas/theme";
2
2
  /**
3
3
  * Build a Nivo theme configuration object from a Panoboard Theme.
4
- * Extracts hex colors from Tailwind class strings for use in SVG rendering.
4
+ * Theme values are raw hex strings no extraction needed.
5
5
  */
6
6
  export declare function buildNivoTheme(theme: Theme): {
7
7
  text: {
@@ -49,47 +49,4 @@ export declare function buildNivoTheme(theme: Theme): {
49
49
  * Get the chart color palette from a Panoboard Theme.
50
50
  */
51
51
  export declare function getChartPalette(theme: Theme): string[];
52
- export declare const nivoDarkTheme: {
53
- text: {
54
- fontSize: number;
55
- fill: string;
56
- };
57
- axis: {
58
- ticks: {
59
- text: {
60
- fill: string;
61
- fontSize: number;
62
- };
63
- };
64
- legend: {
65
- text: {
66
- fill: string;
67
- fontSize: number;
68
- };
69
- };
70
- };
71
- grid: {
72
- line: {
73
- stroke: string;
74
- strokeWidth: number;
75
- };
76
- };
77
- tooltip: {
78
- container: {
79
- background: string;
80
- border: string;
81
- borderRadius: number;
82
- padding: string;
83
- color: string;
84
- fontSize: number;
85
- };
86
- };
87
- legends: {
88
- text: {
89
- fill: string;
90
- fontSize: number;
91
- };
92
- };
93
- };
94
- export declare const PALETTE: string[];
95
52
  //# sourceMappingURL=nivo-theme.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"nivo-theme.d.ts","sourceRoot":"","sources":["../../../src/components/panels/nivo-theme.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AA+DjD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2B1C;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,EAAE,CAEtD;AAGD,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkBzB,CAAC;AAEF,eAAO,MAAM,OAAO,UASnB,CAAC"}
1
+ {"version":3,"file":"nivo-theme.d.ts","sourceRoot":"","sources":["../../../src/components/panels/nivo-theme.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAEjD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoB1C;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,EAAE,CAEtD"}
@@ -11,94 +11,29 @@
11
11
  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  // See the License for the specific language governing permissions and
13
13
  // limitations under the License.
14
- /**
15
- * Extract a hex color from a Tailwind arbitrary value class.
16
- * e.g. "text-[#f8f8f2]" → "#f8f8f2", "bg-[#282a36]" → "#282a36"
17
- * Falls back to the provided default if no hex is found.
18
- */
19
- function extractHex(twClass, fallback) {
20
- const match = twClass.match(/#[0-9a-fA-F]{3,8}/);
21
- if (match)
22
- return match[0];
23
- // Map common named Tailwind colors to hex values
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-50": "#f9fafb",
37
- "gray-100": "#f3f4f6",
38
- "gray-200": "#e5e7eb",
39
- "gray-300": "#d1d5db",
40
- "gray-400": "#9ca3af",
41
- "gray-500": "#6b7280",
42
- "gray-600": "#4b5563",
43
- "gray-700": "#374151",
44
- "gray-800": "#1f2937",
45
- "gray-900": "#111827",
46
- "gray-950": "#030712",
47
- "zinc-50": "#fafafa",
48
- "zinc-100": "#f4f4f5",
49
- "zinc-200": "#e4e4e7",
50
- "zinc-300": "#d4d4d8",
51
- "zinc-400": "#a1a1aa",
52
- "zinc-500": "#71717a",
53
- "zinc-600": "#52525b",
54
- "zinc-700": "#3f3f46",
55
- "zinc-800": "#27272a",
56
- "zinc-900": "#18181b",
57
- "zinc-950": "#09090b",
58
- white: "#ffffff",
59
- black: "#000000",
60
- "indigo-300": "#a5b4fc",
61
- "indigo-400": "#818cf8",
62
- "indigo-500": "#6366f1",
63
- "red-400": "#f87171",
64
- "emerald-400": "#34d399",
65
- "amber-400": "#fbbf24",
66
- };
67
- for (const [name, hex] of Object.entries(namedColors)) {
68
- if (twClass.includes(name))
69
- return hex;
70
- }
71
- return fallback;
72
- }
73
14
  /**
74
15
  * Build a Nivo theme configuration object from a Panoboard Theme.
75
- * Extracts hex colors from Tailwind class strings for use in SVG rendering.
16
+ * Theme values are raw hex strings no extraction needed.
76
17
  */
77
18
  export function buildNivoTheme(theme) {
78
- const axisText = extractHex(theme.typography.label, "#94a3b8");
79
- const axisLegend = extractHex(theme.typography.muted, "#94a3b8");
80
- const gridLine = extractHex(theme.surfaces.panelBorder, "#1e293b");
81
- const tooltipBg = extractHex(theme.surfaces.panel, "#141b2d");
82
- const tooltipBorder = extractHex(theme.surfaces.panelBorder, "#334155");
83
- const tooltipText = extractHex(theme.typography.panelTitle, "#f1f5f9");
84
19
  return {
85
- text: { fontSize: 11, fill: axisText },
20
+ text: { fontSize: 11, fill: theme.typography.label },
86
21
  axis: {
87
- ticks: { text: { fill: axisText, fontSize: 11 } },
88
- legend: { text: { fill: axisLegend, fontSize: 12 } },
22
+ ticks: { text: { fill: theme.typography.label, fontSize: 11 } },
23
+ legend: { text: { fill: theme.typography.muted, fontSize: 12 } },
89
24
  },
90
- grid: { line: { stroke: gridLine, strokeWidth: 1 } },
25
+ grid: { line: { stroke: theme.panel.border, strokeWidth: 1 } },
91
26
  tooltip: {
92
27
  container: {
93
- background: tooltipBg,
94
- border: `1px solid ${tooltipBorder}`,
28
+ background: theme.panel.surface,
29
+ border: `1px solid ${theme.panel.border}`,
95
30
  borderRadius: 8,
96
31
  padding: "8px 12px",
97
- color: tooltipText,
32
+ color: theme.panel.title,
98
33
  fontSize: 12,
99
34
  },
100
35
  },
101
- legends: { text: { fill: axisLegend, fontSize: 11 } },
36
+ legends: { text: { fill: theme.typography.muted, fontSize: 11 } },
102
37
  };
103
38
  }
104
39
  /**
@@ -107,34 +42,4 @@ export function buildNivoTheme(theme) {
107
42
  export function getChartPalette(theme) {
108
43
  return theme.palette;
109
44
  }
110
- // Legacy exports for backwards compatibility during migration
111
- export const nivoDarkTheme = {
112
- text: { fontSize: 11, fill: "#94a3b8" },
113
- axis: {
114
- ticks: { text: { fill: "#64748b", fontSize: 11 } },
115
- legend: { text: { fill: "#94a3b8", fontSize: 12 } },
116
- },
117
- grid: { line: { stroke: "#1e293b", strokeWidth: 1 } },
118
- tooltip: {
119
- container: {
120
- background: "#141b2d",
121
- border: "1px solid #334155",
122
- borderRadius: 8,
123
- padding: "8px 12px",
124
- color: "#f1f5f9",
125
- fontSize: 12,
126
- },
127
- },
128
- legends: { text: { fill: "#94a3b8", fontSize: 11 } },
129
- };
130
- export const PALETTE = [
131
- "#818cf8",
132
- "#34d399",
133
- "#f59e0b",
134
- "#fb7185",
135
- "#22d3ee",
136
- "#a78bfa",
137
- "#2dd4bf",
138
- "#fb923c",
139
- ];
140
45
  //# sourceMappingURL=nivo-theme.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"nivo-theme.js","sourceRoot":"","sources":["../../../src/components/panels/nivo-theme.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nivo-theme.js","sourceRoot":"","sources":["../../../src/components/panels/nivo-theme.ts"],"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;AAIjC;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,KAAY;IACzC,OAAO;QACL,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE;QACpD,IAAI,EAAE;YACJ,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE;YAC/D,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE;SACjE;QACD,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC,EAAE,EAAE;QAC9D,OAAO,EAAE;YACP,SAAS,EAAE;gBACT,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO;gBAC/B,MAAM,EAAE,aAAa,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE;gBACzC,YAAY,EAAE,CAAC;gBACf,OAAO,EAAE,UAAU;gBACnB,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK;gBACxB,QAAQ,EAAE,EAAE;aACb;SACF;QACD,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE;KAClE,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,KAAY;IAC1C,OAAO,KAAK,CAAC,OAAO,CAAC;AACvB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"semantic-colors.d.ts","sourceRoot":"","sources":["../../../src/components/panels/semantic-colors.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAmFjD;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,KAAK,GACX,MAAM,GAAG,SAAS,CAOpB"}
1
+ {"version":3,"file":"semantic-colors.d.ts","sourceRoot":"","sources":["../../../src/components/panels/semantic-colors.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AA6CjD;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,KAAK,GACX,MAAM,GAAG,SAAS,CAKpB"}
@@ -16,7 +16,7 @@
16
16
  * to their semantic theme color. Returns a hex color or undefined if
17
17
  * the value has no semantic meaning.
18
18
  *
19
- * Extracts the hex from Tailwind `text-xxx` classes in the theme.
19
+ * Theme values are raw hex strings no extraction needed.
20
20
  */
21
21
  const SEMANTIC_MAP = {
22
22
  // Negative / danger
@@ -49,42 +49,6 @@ const SEMANTIC_MAP = {
49
49
  medium: "neutral",
50
50
  open: "neutral",
51
51
  };
52
- const HEX_PATTERN = /#[0-9a-fA-F]{3,8}/;
53
- const NAMED_COLORS = {
54
- "emerald-400": "#34d399",
55
- "emerald-500": "#10b981",
56
- "emerald-600": "#059669",
57
- "green-400": "#4ade80",
58
- "green-500": "#22c55e",
59
- "red-400": "#f87171",
60
- "red-500": "#ef4444",
61
- "red-600": "#dc2626",
62
- "rose-400": "#fb7185",
63
- "rose-500": "#f43f5e",
64
- "amber-400": "#fbbf24",
65
- "amber-500": "#f59e0b",
66
- "amber-600": "#d97706",
67
- "orange-400": "#fb923c",
68
- "orange-500": "#f97316",
69
- "yellow-400": "#facc15",
70
- "yellow-500": "#eab308",
71
- "slate-400": "#94a3b8",
72
- "slate-500": "#64748b",
73
- "gray-400": "#9ca3af",
74
- "gray-500": "#6b7280",
75
- "blue-400": "#60a5fa",
76
- "blue-500": "#3b82f6",
77
- };
78
- function extractHex(twClass) {
79
- const hexMatch = twClass.match(HEX_PATTERN);
80
- if (hexMatch)
81
- return hexMatch[0];
82
- for (const [name, hex] of Object.entries(NAMED_COLORS)) {
83
- if (twClass.includes(name))
84
- return hex;
85
- }
86
- return undefined;
87
- }
88
52
  /**
89
53
  * Given a series value string and the current theme, returns a hex color
90
54
  * if the value has a known semantic meaning, or undefined otherwise.
@@ -94,7 +58,6 @@ export function extractSemanticColor(value, theme) {
94
58
  const statusKey = SEMANTIC_MAP[key];
95
59
  if (!statusKey)
96
60
  return undefined;
97
- const twClass = theme.status[statusKey];
98
- return extractHex(twClass);
61
+ return theme.status[statusKey];
99
62
  }
100
63
  //# sourceMappingURL=semantic-colors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"semantic-colors.js","sourceRoot":"","sources":["../../../src/components/panels/semantic-colors.ts"],"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;AAIjC;;;;;;GAMG;AAEH,MAAM,YAAY,GAA0C;IAC1D,oBAAoB;IACpB,QAAQ,EAAE,UAAU;IACpB,KAAK,EAAE,UAAU;IACjB,MAAM,EAAE,UAAU;IAClB,OAAO,EAAE,UAAU;IACnB,IAAI,EAAE,UAAU;IAChB,MAAM,EAAE,UAAU;IAElB,UAAU;IACV,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,SAAS;IACf,QAAQ,EAAE,SAAS;IACnB,WAAW,EAAE,SAAS;IACtB,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,SAAS;IAEf,qBAAqB;IACrB,OAAO,EAAE,UAAU;IACnB,OAAO,EAAE,UAAU;IACnB,EAAE,EAAE,UAAU;IACd,EAAE,EAAE,UAAU;IACd,QAAQ,EAAE,UAAU;IACpB,SAAS,EAAE,UAAU;IACrB,MAAM,EAAE,UAAU;IAClB,GAAG,EAAE,UAAU;IAEf,UAAU;IACV,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,SAAS;IACjB,IAAI,EAAE,SAAS;CAChB,CAAC;AAEF,MAAM,WAAW,GAAG,mBAAmB,CAAC;AACxC,MAAM,YAAY,GAA2B;IAC3C,aAAa,EAAE,SAAS;IACxB,aAAa,EAAE,SAAS;IACxB,aAAa,EAAE,SAAS;IACxB,WAAW,EAAE,SAAS;IACtB,WAAW,EAAE,SAAS;IACtB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,UAAU,EAAE,SAAS;IACrB,UAAU,EAAE,SAAS;IACrB,WAAW,EAAE,SAAS;IACtB,WAAW,EAAE,SAAS;IACtB,WAAW,EAAE,SAAS;IACtB,YAAY,EAAE,SAAS;IACvB,YAAY,EAAE,SAAS;IACvB,YAAY,EAAE,SAAS;IACvB,YAAY,EAAE,SAAS;IACvB,WAAW,EAAE,SAAS;IACtB,WAAW,EAAE,SAAS;IACtB,UAAU,EAAE,SAAS;IACrB,UAAU,EAAE,SAAS;IACrB,UAAU,EAAE,SAAS;IACrB,UAAU,EAAE,SAAS;CACtB,CAAC;AAEF,SAAS,UAAU,CAAC,OAAe;IACjC,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAC5C,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC;IAEjC,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;QACvD,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,OAAO,GAAG,CAAC;IACzC,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAClC,KAAa,EACb,KAAY;IAEZ,MAAM,GAAG,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IACvD,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IACpC,IAAI,CAAC,SAAS;QAAE,OAAO,SAAS,CAAC;IAEjC,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACxC,OAAO,UAAU,CAAC,OAAO,CAAC,CAAC;AAC7B,CAAC"}
1
+ {"version":3,"file":"semantic-colors.js","sourceRoot":"","sources":["../../../src/components/panels/semantic-colors.ts"],"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;AAIjC;;;;;;GAMG;AAEH,MAAM,YAAY,GAA0C;IAC1D,oBAAoB;IACpB,QAAQ,EAAE,UAAU;IACpB,KAAK,EAAE,UAAU;IACjB,MAAM,EAAE,UAAU;IAClB,OAAO,EAAE,UAAU;IACnB,IAAI,EAAE,UAAU;IAChB,MAAM,EAAE,UAAU;IAElB,UAAU;IACV,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,SAAS;IACf,QAAQ,EAAE,SAAS;IACnB,WAAW,EAAE,SAAS;IACtB,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,SAAS;IAEf,qBAAqB;IACrB,OAAO,EAAE,UAAU;IACnB,OAAO,EAAE,UAAU;IACnB,EAAE,EAAE,UAAU;IACd,EAAE,EAAE,UAAU;IACd,QAAQ,EAAE,UAAU;IACpB,SAAS,EAAE,UAAU;IACrB,MAAM,EAAE,UAAU;IAClB,GAAG,EAAE,UAAU;IAEf,UAAU;IACV,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,SAAS;IACjB,IAAI,EAAE,SAAS;CAChB,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAClC,KAAa,EACb,KAAY;IAEZ,MAAM,GAAG,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IACvD,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IACpC,IAAI,CAAC,SAAS;QAAE,OAAO,SAAS,CAAC;IACjC,OAAO,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AACjC,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import type { ButtonHTMLAttributes } from "react";
2
- export type ButtonVariant = "primary" | "secondary" | "outline" | "ghost";
2
+ export type ButtonVariant = "primary" | "secondary" | "ghost";
3
3
  export type ButtonSize = "sm" | "md" | "lg";
4
4
  export interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
5
5
  variant?: ButtonVariant;
@@ -1 +1 @@
1
- {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../src/components/ui/Button.tsx"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAGlD,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,OAAO,CAAC;AAC1E,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAE5C,MAAM,WAAW,WAAY,SAAQ,oBAAoB,CAAC,iBAAiB,CAAC;IAC1E,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,IAAI,CAAC,EAAE,UAAU,CAAC;CACnB;AAQD,eAAO,MAAM,MAAM,2GA+BlB,CAAC"}
1
+ {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../src/components/ui/Button.tsx"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAElD,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,WAAW,GAAG,OAAO,CAAC;AAC9D,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAE5C,MAAM,WAAW,WAAY,SAAQ,oBAAoB,CAAC,iBAAiB,CAAC;IAC1E,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,IAAI,CAAC,EAAE,UAAU,CAAC;CACnB;AAcD,eAAO,MAAM,MAAM,2GAsBlB,CAAC"}
@@ -13,22 +13,19 @@ import { jsx as _jsx } from "react/jsx-runtime";
13
13
  // See the License for the specific language governing permissions and
14
14
  // limitations under the License.
15
15
  import { forwardRef } from "react";
16
- import { useTheme } from "../../theme/context";
17
16
  const sizeClasses = {
18
17
  sm: "px-3 py-1.5 text-xs",
19
18
  md: "px-4 py-2 text-sm",
20
19
  lg: "px-6 py-3 text-base",
21
20
  };
21
+ const variantClasses = {
22
+ primary: "btn-primary",
23
+ secondary: "btn-secondary",
24
+ ghost: "btn-ghost",
25
+ };
22
26
  export const Button = forwardRef(function Button({ variant = "primary", size = "md", className = "", children, ...rest }, ref) {
23
- const theme = useTheme();
24
- const variantClasses = {
25
- primary: `${theme.typography.link} bg-indigo-600 hover:bg-indigo-500 text-white border border-transparent`,
26
- secondary: `${theme.surfaces.panel} border ${theme.surfaces.panelBorder} ${theme.typography.panelTitle} hover:opacity-80`,
27
- outline: `bg-transparent border ${theme.surfaces.panelBorder} ${theme.typography.panelTitle} hover:opacity-80`,
28
- ghost: `bg-transparent border-transparent ${theme.typography.muted} hover:opacity-80`,
29
- };
30
27
  return (_jsx("button", { ref: ref, className: [
31
- "inline-flex items-center justify-center gap-2 rounded-lg font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50",
28
+ "inline-flex items-center justify-center gap-2 rounded-[10px] font-medium focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--primary)]/50 disabled:pointer-events-none disabled:opacity-50",
32
29
  sizeClasses[size],
33
30
  variantClasses[variant],
34
31
  className,
@@ -1 +1 @@
1
- {"version":3,"file":"Button.js","sourceRoot":"","sources":["../../../src/components/ui/Button.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,UAAU,EAAE,MAAM,OAAO,CAAC;AAEnC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAU/C,MAAM,WAAW,GAA+B;IAC9C,EAAE,EAAE,qBAAqB;IACzB,EAAE,EAAE,mBAAmB;IACvB,EAAE,EAAE,qBAAqB;CAC1B,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG,UAAU,CAC9B,SAAS,MAAM,CACb,EAAE,OAAO,GAAG,SAAS,EAAE,IAAI,GAAG,IAAI,EAAE,SAAS,GAAG,EAAE,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EACvE,GAAG;IAEH,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IAEzB,MAAM,cAAc,GAAkC;QACpD,OAAO,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,yEAAyE;QAC1G,SAAS,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,WAAW,KAAK,CAAC,QAAQ,CAAC,WAAW,IAAI,KAAK,CAAC,UAAU,CAAC,UAAU,mBAAmB;QACzH,OAAO,EAAE,yBAAyB,KAAK,CAAC,QAAQ,CAAC,WAAW,IAAI,KAAK,CAAC,UAAU,CAAC,UAAU,mBAAmB;QAC9G,KAAK,EAAE,qCAAqC,KAAK,CAAC,UAAU,CAAC,KAAK,mBAAmB;KACtF,CAAC;IAEF,OAAO,CACL,iBACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE;YACT,yLAAyL;YACzL,WAAW,CAAC,IAAI,CAAC;YACjB,cAAc,CAAC,OAAO,CAAC;YACvB,SAAS;SACV;aACE,MAAM,CAAC,OAAO,CAAC;aACf,IAAI,CAAC,GAAG,CAAC,KACR,IAAI,YAEP,QAAQ,GACF,CACV,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,WAAW,GAAG,QAAQ,CAAC"}
1
+ {"version":3,"file":"Button.js","sourceRoot":"","sources":["../../../src/components/ui/Button.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,UAAU,EAAE,MAAM,OAAO,CAAC;AAWnC,MAAM,WAAW,GAA+B;IAC9C,EAAE,EAAE,qBAAqB;IACzB,EAAE,EAAE,mBAAmB;IACvB,EAAE,EAAE,qBAAqB;CAC1B,CAAC;AAEF,MAAM,cAAc,GAAkC;IACpD,OAAO,EAAE,aAAa;IACtB,SAAS,EAAE,eAAe;IAC1B,KAAK,EAAE,WAAW;CACnB,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG,UAAU,CAC9B,SAAS,MAAM,CACb,EAAE,OAAO,GAAG,SAAS,EAAE,IAAI,GAAG,IAAI,EAAE,SAAS,GAAG,EAAE,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EACvE,GAAG;IAEH,OAAO,CACL,iBACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE;YACT,kNAAkN;YAClN,WAAW,CAAC,IAAI,CAAC;YACjB,cAAc,CAAC,OAAO,CAAC;YACvB,SAAS;SACV;aACE,MAAM,CAAC,OAAO,CAAC;aACf,IAAI,CAAC,GAAG,CAAC,KACR,IAAI,YAEP,QAAQ,GACF,CACV,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,WAAW,GAAG,QAAQ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Tabs.d.ts","sourceRoot":"","sources":["../../../src/components/ui/Tabs.tsx"],"names":[],"mappings":"AAgBA,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CAChC;AAED,wBAAgB,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,SAAS,2CA6BzD"}
1
+ {"version":3,"file":"Tabs.d.ts","sourceRoot":"","sources":["../../../src/components/ui/Tabs.tsx"],"names":[],"mappings":"AAgBA,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CAChC;AAED,wBAAgB,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,SAAS,2CA8BzD"}
@@ -15,7 +15,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
15
15
  import { useTheme } from "../../theme/context";
16
16
  export function Tabs({ tabs, active, onChange }) {
17
17
  const theme = useTheme();
18
- return (_jsx("div", { className: `flex items-center gap-6 border-b ${theme.surfaces.panelBorder} pb-3`, role: "tablist", children: tabs.map((tab) => {
18
+ return (_jsx("div", { className: "flex items-center gap-6 border-b pb-3", style: { borderColor: theme.panel.border }, role: "tablist", children: tabs.map((tab) => {
19
19
  const isActive = tab.id === active;
20
20
  return (_jsx("button", { role: "tab", "aria-selected": isActive, onClick: () => onChange(tab.id), className: [
21
21
  "text-sm font-medium pb-3 -mb-3 border-b-2 transition-colors",
@@ -1 +1 @@
1
- {"version":3,"file":"Tabs.js","sourceRoot":"","sources":["../../../src/components/ui/Tabs.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,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAa/C,MAAM,UAAU,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAa;IACxD,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IAEzB,OAAO,CACL,cACE,SAAS,EAAE,oCAAoC,KAAK,CAAC,QAAQ,CAAC,WAAW,OAAO,EAChF,IAAI,EAAC,SAAS,YAEb,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YAChB,MAAM,QAAQ,GAAG,GAAG,CAAC,EAAE,KAAK,MAAM,CAAC;YACnC,OAAO,CACL,iBAEE,IAAI,EAAC,KAAK,mBACK,QAAQ,EACvB,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAC/B,SAAS,EAAE;oBACT,6DAA6D;oBAC7D,QAAQ;wBACN,CAAC,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,iBAAiB;wBAC3C,CAAC,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,sCAAsC;iBACpE,CAAC,IAAI,CAAC,GAAG,CAAC,YAEV,GAAG,CAAC,KAAK,IAXL,GAAG,CAAC,EAAE,CAYJ,CACV,CAAC;QACJ,CAAC,CAAC,GACE,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"Tabs.js","sourceRoot":"","sources":["../../../src/components/ui/Tabs.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,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAa/C,MAAM,UAAU,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAa;IACxD,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IAEzB,OAAO,CACL,cACE,SAAS,EAAC,uCAAuC,EACjD,KAAK,EAAE,EAAE,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,EAC1C,IAAI,EAAC,SAAS,YAEb,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YAChB,MAAM,QAAQ,GAAG,GAAG,CAAC,EAAE,KAAK,MAAM,CAAC;YACnC,OAAO,CACL,iBAEE,IAAI,EAAC,KAAK,mBACK,QAAQ,EACvB,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAC/B,SAAS,EAAE;oBACT,6DAA6D;oBAC7D,QAAQ;wBACN,CAAC,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,iBAAiB;wBAC3C,CAAC,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,sCAAsC;iBACpE,CAAC,IAAI,CAAC,GAAG,CAAC,YAEV,GAAG,CAAC,KAAK,IAXL,GAAG,CAAC,EAAE,CAYJ,CACV,CAAC;QACJ,CAAC,CAAC,GACE,CACP,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"bigquery.d.ts","sourceRoot":"","sources":["../../src/connectors/bigquery.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EACV,SAAS,EACT,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,oBAAoB,EACpB,UAAU,EACX,MAAM,SAAS,CAAC;AAMjB,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CA2BlE;AAMD,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,EACA;QAAE,IAAI,EAAE,KAAK,CAAA;KAAE,GACf;QAAE,IAAI,EAAE,qBAAqB,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3E;AAMD,qBAAa,iBAAkB,YAAW,SAAS;IACjD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAG,UAAU,CAAU;IACpC,OAAO,CAAC,MAAM,CAAW;IACzB,OAAO,CAAC,QAAQ,CAAC,CAAS;gBAEd,MAAM,EAAE,uBAAuB;IAmBrC,KAAK,CACT,OAAO,EAAE,YAAY,EACrB,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,WAAW,CAAC;IAyCjB,cAAc,IAAI,OAAO,CAAC,oBAAoB,CAAC;IAe/C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAG7B"}
1
+ {"version":3,"file":"bigquery.d.ts","sourceRoot":"","sources":["../../src/connectors/bigquery.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EACV,SAAS,EACT,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,oBAAoB,EACpB,UAAU,EACX,MAAM,SAAS,CAAC;AAMjB,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CA2BlE;AAMD,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,EACA;QAAE,IAAI,EAAE,KAAK,CAAA;KAAE,GACf;QAAE,IAAI,EAAE,qBAAqB,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3E;AAMD,qBAAa,iBAAkB,YAAW,SAAS;IACjD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAG,UAAU,CAAU;IACpC,OAAO,CAAC,MAAM,CAAW;IACzB,OAAO,CAAC,QAAQ,CAAC,CAAS;gBAEd,MAAM,EAAE,uBAAuB;IAmBrC,KAAK,CACT,OAAO,EAAE,YAAY,EACrB,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,WAAW,CAAC;IAiDjB,cAAc,IAAI,OAAO,CAAC,oBAAoB,CAAC;IAe/C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAG7B"}
@@ -69,9 +69,14 @@ export class BigQueryConnector {
69
69
  const start = Date.now();
70
70
  // Replace :param_name with @param_name (BigQuery named param syntax)
71
71
  const normalizedSql = request.sql.replace(/:([a-zA-Z_][a-zA-Z0-9_]*)/g, (_match, name) => `@${name}`);
72
+ // BigQuery SDK throws if any param value is null without an explicit type.
73
+ // Strip nulls — unbound params will result in a "parameter not found" error
74
+ // from BigQuery, which surfaces as a panel-level 500, not a process crash.
75
+ const rawParams = request.params ?? options?.params ?? {};
76
+ const params = Object.fromEntries(Object.entries(rawParams).filter(([, v]) => v !== null && v !== undefined));
72
77
  const queryOptions = {
73
78
  query: normalizedSql,
74
- params: options?.params ?? {},
79
+ params,
75
80
  };
76
81
  if (this.location !== undefined) {
77
82
  queryOptions.location = this.location;
@@ -1 +1 @@
1
- {"version":3,"file":"bigquery.js","sourceRoot":"","sources":["../../src/connectors/bigquery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bigquery.js","sourceRoot":"","sources":["../../src/connectors/bigquery.ts"],"names":[],"mappings":"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"}