@burdenoff/microfe-bigconsole 2026.1005.3 → 2026.1006.1

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 (1442) hide show
  1. package/README.md +22 -0
  2. package/dist/bigconsole/AdminRoot.d.ts +0 -1
  3. package/dist/bigconsole/AdminRoot.js +0 -2
  4. package/dist/bigconsole/AdminRoutes.d.ts +0 -1
  5. package/dist/bigconsole/AdminRoutes.js +0 -2
  6. package/dist/bigconsole/BigConsoleRoot.d.ts +0 -1
  7. package/dist/bigconsole/BigConsoleRoot.js +88 -84
  8. package/dist/bigconsole/BigConsoleRoutes.d.ts +0 -1
  9. package/dist/bigconsole/BigConsoleRoutes.js +39 -5
  10. package/dist/bigconsole/assistant/assistantApi.d.ts +0 -1
  11. package/dist/bigconsole/assistant/assistantApi.js +0 -2
  12. package/dist/bigconsole/assistant/assistantProduct.d.ts +0 -1
  13. package/dist/bigconsole/assistant/assistantProduct.js +0 -2
  14. package/dist/bigconsole/assistant/assistantPrompt.d.ts +0 -1
  15. package/dist/bigconsole/assistant/assistantPrompt.js +0 -2
  16. package/dist/bigconsole/assistant/assistantRunPersistence.d.ts +0 -1
  17. package/dist/bigconsole/assistant/assistantRunPersistence.js +0 -2
  18. package/dist/bigconsole/assistant/assistantRunStore.d.ts +0 -1
  19. package/dist/bigconsole/assistant/assistantRunStore.js +0 -2
  20. package/dist/bigconsole/assistant/assistantRuntime.d.ts +0 -1
  21. package/dist/bigconsole/assistant/assistantRuntime.js +0 -2
  22. package/dist/bigconsole/assistant/attachmentExtract.d.ts +0 -1
  23. package/dist/bigconsole/assistant/attachmentExtract.js +0 -2
  24. package/dist/bigconsole/assistant/conversationHistoryApi.d.ts +0 -1
  25. package/dist/bigconsole/assistant/conversationHistoryApi.js +0 -2
  26. package/dist/bigconsole/assistant/createSandboxAssistantTransport.d.ts +0 -1
  27. package/dist/bigconsole/assistant/createSandboxAssistantTransport.js +0 -2
  28. package/dist/bigconsole/assistant/index.d.ts +0 -1
  29. package/dist/bigconsole/assistant/modes.d.ts +0 -1
  30. package/dist/bigconsole/assistant/modes.js +0 -2
  31. package/dist/bigconsole/assistant/pageContext.d.ts +0 -1
  32. package/dist/bigconsole/assistant/pageContext.js +0 -2
  33. package/dist/bigconsole/assistant/previewController.d.ts +0 -1
  34. package/dist/bigconsole/assistant/previewController.js +0 -2
  35. package/dist/bigconsole/assistant/previewMutationResult.d.ts +0 -1
  36. package/dist/bigconsole/assistant/previewMutationResult.js +0 -2
  37. package/dist/bigconsole/assistant/previewRunAction.d.ts +0 -1
  38. package/dist/bigconsole/assistant/previewRunAction.js +0 -2
  39. package/dist/bigconsole/assistant/product.d.ts +0 -1
  40. package/dist/bigconsole/assistant/product.js +0 -2
  41. package/dist/bigconsole/assistant/recordAdapters.d.ts +0 -1
  42. package/dist/bigconsole/assistant/recordAdapters.js +52 -38
  43. package/dist/bigconsole/assistant/types.d.ts +0 -1
  44. package/dist/bigconsole/assistant/useAssistantRunWorkspace.d.ts +0 -1
  45. package/dist/bigconsole/assistant/useAssistantRunWorkspace.js +0 -2
  46. package/dist/bigconsole/assistant/useWorkspaceWriteAccess.d.ts +0 -1
  47. package/dist/bigconsole/assistant/useWorkspaceWriteAccess.js +0 -2
  48. package/dist/bigconsole/components/DrilldownDashboardRenderer.d.ts +0 -1
  49. package/dist/bigconsole/components/DrilldownDashboardRenderer.js +0 -2
  50. package/dist/bigconsole/components/DrilldownModal.d.ts +0 -1
  51. package/dist/bigconsole/components/DrilldownModal.js +0 -2
  52. package/dist/bigconsole/components/builder/BuilderCanvas.d.ts +0 -1
  53. package/dist/bigconsole/components/builder/BuilderCanvas.js +0 -2
  54. package/dist/bigconsole/components/builder/BuilderTopbar.d.ts +0 -1
  55. package/dist/bigconsole/components/builder/BuilderTopbar.js +0 -2
  56. package/dist/bigconsole/components/builder/DashboardEditorShell.d.ts +0 -1
  57. package/dist/bigconsole/components/builder/DashboardEditorShell.js +0 -2
  58. package/dist/bigconsole/components/builder/WidgetInspector.d.ts +0 -1
  59. package/dist/bigconsole/components/builder/WidgetInspector.js +0 -2
  60. package/dist/bigconsole/components/builder/index.d.ts +0 -1
  61. package/dist/bigconsole/components/builder/inspector/AdvancedSection.d.ts +0 -1
  62. package/dist/bigconsole/components/builder/inspector/AdvancedSection.js +0 -2
  63. package/dist/bigconsole/components/builder/inspector/AppearanceSection.d.ts +0 -1
  64. package/dist/bigconsole/components/builder/inspector/AppearanceSection.js +0 -2
  65. package/dist/bigconsole/components/builder/inspector/DataBindingSection.d.ts +0 -1
  66. package/dist/bigconsole/components/builder/inspector/DataBindingSection.js +0 -2
  67. package/dist/bigconsole/components/builder/inspector/GeneralSection.d.ts +0 -1
  68. package/dist/bigconsole/components/builder/inspector/GeneralSection.js +0 -2
  69. package/dist/bigconsole/components/builder/inspector/LayoutSection.d.ts +0 -1
  70. package/dist/bigconsole/components/builder/inspector/LayoutSection.js +0 -2
  71. package/dist/bigconsole/components/builder/inspector/index.d.ts +0 -1
  72. package/dist/bigconsole/components/common/Section.d.ts +0 -1
  73. package/dist/bigconsole/components/common/Section.js +0 -2
  74. package/dist/bigconsole/components/common/index.d.ts +0 -1
  75. package/dist/bigconsole/components/common/sectionStyles.d.ts +0 -1
  76. package/dist/bigconsole/components/common/sectionStyles.js +0 -2
  77. package/dist/bigconsole/components/dashboard/CreateDashboardDialog.d.ts +0 -1
  78. package/dist/bigconsole/components/dashboard/CreateDashboardDialog.js +0 -2
  79. package/dist/bigconsole/components/dashboard/DashboardCanvas.d.ts +0 -1
  80. package/dist/bigconsole/components/dashboard/DashboardCanvas.js +0 -2
  81. package/dist/bigconsole/components/dashboard/DashboardGrid.d.ts +0 -1
  82. package/dist/bigconsole/components/dashboard/DashboardGrid.js +0 -2
  83. package/dist/bigconsole/components/dashboard/DashboardStatusPill.d.ts +0 -1
  84. package/dist/bigconsole/components/dashboard/DashboardStatusPill.js +0 -2
  85. package/dist/bigconsole/components/dashboard/DashboardToolbar.d.ts +0 -1
  86. package/dist/bigconsole/components/dashboard/DashboardToolbar.js +0 -2
  87. package/dist/bigconsole/components/dashboard/DrilldownBreadcrumb.d.ts +0 -1
  88. package/dist/bigconsole/components/dashboard/DrilldownBreadcrumb.js +63 -64
  89. package/dist/bigconsole/components/dashboard/ExportDashboardDialog.d.ts +0 -1
  90. package/dist/bigconsole/components/dashboard/ExportDashboardDialog.js +0 -2
  91. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterChip.d.ts +0 -1
  92. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterChip.js +0 -2
  93. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterEditor.d.ts +0 -1
  94. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterEditor.js +0 -2
  95. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterPresetSelector.d.ts +0 -1
  96. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterPresetSelector.js +0 -2
  97. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.d.ts +0 -1
  98. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.js +0 -2
  99. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/index.d.ts +0 -1
  100. package/dist/bigconsole/components/dashboard/ImportDashboardDialog.d.ts +0 -1
  101. package/dist/bigconsole/components/dashboard/ImportDashboardDialog.js +0 -2
  102. package/dist/bigconsole/components/dashboard/LiveBoardBanner.d.ts +0 -1
  103. package/dist/bigconsole/components/dashboard/LiveBoardBanner.js +0 -2
  104. package/dist/bigconsole/components/dashboard/LiveCanvasToggle.d.ts +0 -1
  105. package/dist/bigconsole/components/dashboard/LiveCanvasToggle.js +0 -2
  106. package/dist/bigconsole/components/dashboard/PageTabsManager/PageTabsManager.d.ts +0 -1
  107. package/dist/bigconsole/components/dashboard/PageTabsManager/PageTabsManager.js +0 -2
  108. package/dist/bigconsole/components/dashboard/PageTabsManager/index.d.ts +0 -1
  109. package/dist/bigconsole/components/dashboard/PublishToStoreDialog.d.ts +0 -1
  110. package/dist/bigconsole/components/dashboard/PublishToStoreDialog.js +0 -2
  111. package/dist/bigconsole/components/dashboard/SavedViewsDropdown/SavedViewsDropdown.d.ts +0 -1
  112. package/dist/bigconsole/components/dashboard/SavedViewsDropdown/SavedViewsDropdown.js +0 -2
  113. package/dist/bigconsole/components/dashboard/SavedViewsDropdown/index.d.ts +0 -1
  114. package/dist/bigconsole/components/dashboard/ShareDialog/EmbedTab.d.ts +0 -1
  115. package/dist/bigconsole/components/dashboard/ShareDialog/EmbedTab.js +97 -108
  116. package/dist/bigconsole/components/dashboard/ShareDialog/ShareDialog.d.ts +0 -1
  117. package/dist/bigconsole/components/dashboard/ShareDialog/ShareDialog.js +0 -2
  118. package/dist/bigconsole/components/dashboard/ShareDialog/index.d.ts +0 -1
  119. package/dist/bigconsole/components/dashboard/StoreTemplatePicker.d.ts +0 -1
  120. package/dist/bigconsole/components/dashboard/StoreTemplatePicker.js +0 -2
  121. package/dist/bigconsole/components/dashboard/TemplateInstallOptions.d.ts +0 -1
  122. package/dist/bigconsole/components/dashboard/TemplateInstallOptions.js +0 -2
  123. package/dist/bigconsole/components/dashboard/TemplateLayoutPreview.d.ts +0 -1
  124. package/dist/bigconsole/components/dashboard/TemplateLayoutPreview.js +0 -2
  125. package/dist/bigconsole/components/dashboard/TemplatePicker/TemplatePicker.d.ts +0 -1
  126. package/dist/bigconsole/components/dashboard/TemplatePicker/index.d.ts +0 -1
  127. package/dist/bigconsole/components/dashboard/TemplateSetupBanner.d.ts +0 -1
  128. package/dist/bigconsole/components/dashboard/TemplateSetupBanner.js +0 -2
  129. package/dist/bigconsole/components/dashboard/WidgetPalette.d.ts +0 -1
  130. package/dist/bigconsole/components/dashboard/WidgetPalette.js +165 -165
  131. package/dist/bigconsole/components/dashboard/index.d.ts +0 -1
  132. package/dist/bigconsole/components/datasink/AlertExecutionHistory.d.ts +0 -1
  133. package/dist/bigconsole/components/datasink/AlertExecutionHistory.js +0 -2
  134. package/dist/bigconsole/components/datasink/AlertRuleEditor.d.ts +0 -1
  135. package/dist/bigconsole/components/datasink/AlertRuleEditor.js +0 -2
  136. package/dist/bigconsole/components/datasink/CacheTTLSelector.d.ts +0 -1
  137. package/dist/bigconsole/components/datasink/CacheTTLSelector.js +0 -2
  138. package/dist/bigconsole/components/datasink/ConfigurationForm.d.ts +0 -1
  139. package/dist/bigconsole/components/datasink/DataPreviewPanel.d.ts +0 -1
  140. package/dist/bigconsole/components/datasink/DataSinkCard.d.ts +0 -1
  141. package/dist/bigconsole/components/datasink/DataSinkCard.js +0 -2
  142. package/dist/bigconsole/components/datasink/DataSinkDataViewer.d.ts +0 -1
  143. package/dist/bigconsole/components/datasink/DataSinkDataViewer.js +0 -2
  144. package/dist/bigconsole/components/datasink/DataSinkDeleteDialog.d.ts +0 -1
  145. package/dist/bigconsole/components/datasink/DataSinkDeleteDialog.js +0 -2
  146. package/dist/bigconsole/components/datasink/DataSinkRefreshConfig.d.ts +0 -1
  147. package/dist/bigconsole/components/datasink/DataSinkRefreshDialog.d.ts +0 -1
  148. package/dist/bigconsole/components/datasink/DataSinkRefreshDialog.js +0 -2
  149. package/dist/bigconsole/components/datasink/DataSinkStatusBadge.d.ts +0 -1
  150. package/dist/bigconsole/components/datasink/DataSinkStatusBadge.js +0 -2
  151. package/dist/bigconsole/components/datasink/DataSinkTableViewer.d.ts +0 -1
  152. package/dist/bigconsole/components/datasink/DataSinkTableViewer.js +0 -2
  153. package/dist/bigconsole/components/datasink/ExportDataSinkDialog.d.ts +0 -1
  154. package/dist/bigconsole/components/datasink/ExportDataSinkDialog.js +0 -2
  155. package/dist/bigconsole/components/datasink/FluidGridsPanel.d.ts +0 -1
  156. package/dist/bigconsole/components/datasink/ImportDataGuideDialog.d.ts +0 -1
  157. package/dist/bigconsole/components/datasink/ImportDataGuideDialog.js +0 -2
  158. package/dist/bigconsole/components/datasink/ImportDataSinkDialog.d.ts +0 -1
  159. package/dist/bigconsole/components/datasink/ImportDataSinkDialog.js +0 -2
  160. package/dist/bigconsole/components/datasink/LinkedParsersPanel.d.ts +0 -1
  161. package/dist/bigconsole/components/datasink/LinkedParsersPanel.js +0 -2
  162. package/dist/bigconsole/components/datasink/LinkedWorkflowsPanel.d.ts +0 -1
  163. package/dist/bigconsole/components/datasink/LinkedWorkflowsPanel.js +0 -2
  164. package/dist/bigconsole/components/datasink/RefreshTypeSelector.d.ts +0 -1
  165. package/dist/bigconsole/components/datasink/RefreshTypeSelector.js +0 -2
  166. package/dist/bigconsole/components/datasink/SetupStateBadge.d.ts +0 -1
  167. package/dist/bigconsole/components/datasink/SetupStateBadge.js +0 -2
  168. package/dist/bigconsole/components/datasink/WorkflowStatusPanel.d.ts +0 -1
  169. package/dist/bigconsole/components/datasink/WorkflowStatusPanel.js +0 -2
  170. package/dist/bigconsole/components/datasink/index.d.ts +0 -1
  171. package/dist/bigconsole/components/embed/EmbedErrorBoundary.d.ts +0 -1
  172. package/dist/bigconsole/components/embed/EmbedErrorBoundary.js +0 -2
  173. package/dist/bigconsole/components/embed/EmbedWidgetRenderer.d.ts +0 -1
  174. package/dist/bigconsole/components/embed/EmbedWidgetRenderer.js +0 -2
  175. package/dist/bigconsole/components/embed/ReadOnlyDashboardRenderer.d.ts +0 -1
  176. package/dist/bigconsole/components/embed/ReadOnlyDashboardRenderer.js +0 -2
  177. package/dist/bigconsole/components/embed/drilldown.d.ts +0 -1
  178. package/dist/bigconsole/components/embed/drilldown.js +0 -2
  179. package/dist/bigconsole/components/embed/index.d.ts +0 -1
  180. package/dist/bigconsole/components/embed/renderer-manifest.d.ts +0 -1
  181. package/dist/bigconsole/components/embed/renderer-manifest.js +0 -2
  182. package/dist/bigconsole/components/embed/types.d.ts +0 -1
  183. package/dist/bigconsole/components/embed/types.js +0 -2
  184. package/dist/bigconsole/components/embed/validate.d.ts +0 -1
  185. package/dist/bigconsole/components/embed/validate.js +0 -2
  186. package/dist/bigconsole/components/embed/widgetShim.d.ts +0 -1
  187. package/dist/bigconsole/components/embed/widgetShim.js +0 -2
  188. package/dist/bigconsole/components/embed/widgets/CalendarEmbed.d.ts +0 -1
  189. package/dist/bigconsole/components/embed/widgets/CalendarEmbed.js +0 -2
  190. package/dist/bigconsole/components/embed/widgets/ChartEmbed.d.ts +0 -1
  191. package/dist/bigconsole/components/embed/widgets/ChartEmbed.js +0 -2
  192. package/dist/bigconsole/components/embed/widgets/EmbedFrame.d.ts +0 -1
  193. package/dist/bigconsole/components/embed/widgets/EmbedFrame.js +0 -2
  194. package/dist/bigconsole/components/embed/widgets/FormEmbed.d.ts +0 -1
  195. package/dist/bigconsole/components/embed/widgets/FormEmbed.js +0 -2
  196. package/dist/bigconsole/components/embed/widgets/GaugeEmbed.d.ts +0 -1
  197. package/dist/bigconsole/components/embed/widgets/GaugeEmbed.js +0 -2
  198. package/dist/bigconsole/components/embed/widgets/HeatmapEmbed.d.ts +0 -1
  199. package/dist/bigconsole/components/embed/widgets/HeatmapEmbed.js +0 -2
  200. package/dist/bigconsole/components/embed/widgets/KanbanEmbed.d.ts +0 -1
  201. package/dist/bigconsole/components/embed/widgets/KanbanEmbed.js +0 -2
  202. package/dist/bigconsole/components/embed/widgets/KpiComparisonEmbed.d.ts +0 -1
  203. package/dist/bigconsole/components/embed/widgets/KpiComparisonEmbed.js +0 -2
  204. package/dist/bigconsole/components/embed/widgets/ListEmbed.d.ts +0 -1
  205. package/dist/bigconsole/components/embed/widgets/ListEmbed.js +0 -2
  206. package/dist/bigconsole/components/embed/widgets/MetricCardEmbed.d.ts +0 -1
  207. package/dist/bigconsole/components/embed/widgets/MetricCardEmbed.js +0 -2
  208. package/dist/bigconsole/components/embed/widgets/PivotEmbed.d.ts +0 -1
  209. package/dist/bigconsole/components/embed/widgets/PivotEmbed.js +0 -2
  210. package/dist/bigconsole/components/embed/widgets/ProgressEmbed.d.ts +0 -1
  211. package/dist/bigconsole/components/embed/widgets/ProgressEmbed.js +0 -2
  212. package/dist/bigconsole/components/embed/widgets/RetentionEmbed.d.ts +0 -1
  213. package/dist/bigconsole/components/embed/widgets/RetentionEmbed.js +0 -2
  214. package/dist/bigconsole/components/embed/widgets/TableEmbed.d.ts +0 -1
  215. package/dist/bigconsole/components/embed/widgets/TableEmbed.js +0 -2
  216. package/dist/bigconsole/components/embed/widgets/TextEmbed.d.ts +0 -1
  217. package/dist/bigconsole/components/embed/widgets/TextEmbed.js +0 -2
  218. package/dist/bigconsole/components/embed/widgets/TimelineEmbed.d.ts +0 -1
  219. package/dist/bigconsole/components/embed/widgets/TimelineEmbed.js +0 -2
  220. package/dist/bigconsole/components/embed/widgets/shared.d.ts +0 -1
  221. package/dist/bigconsole/components/embed/widgets/shared.js +0 -2
  222. package/dist/bigconsole/components/overview/DashboardGuide.d.ts +0 -1
  223. package/dist/bigconsole/components/overview/DashboardGuide.js +0 -2
  224. package/dist/bigconsole/components/overview/DataHealthCard.d.ts +0 -1
  225. package/dist/bigconsole/components/overview/DataHealthCard.js +0 -2
  226. package/dist/bigconsole/components/overview/OverviewQuickActions.d.ts +0 -1
  227. package/dist/bigconsole/components/overview/OverviewQuickActions.js +0 -2
  228. package/dist/bigconsole/components/overview/OverviewStatCard.d.ts +0 -1
  229. package/dist/bigconsole/components/overview/OverviewStatCard.js +0 -2
  230. package/dist/bigconsole/components/overview/RecentDashboardsPanel.d.ts +0 -1
  231. package/dist/bigconsole/components/overview/RecentDashboardsPanel.js +0 -2
  232. package/dist/bigconsole/components/overview/dashboardGuideSteps.d.ts +0 -1
  233. package/dist/bigconsole/components/overview/dashboardGuideSteps.js +0 -2
  234. package/dist/bigconsole/components/overview/index.d.ts +0 -1
  235. package/dist/bigconsole/components/overview/overviewModel.d.ts +0 -1
  236. package/dist/bigconsole/components/overview/overviewModel.js +0 -2
  237. package/dist/bigconsole/components/overview/useOverviewData.d.ts +0 -1
  238. package/dist/bigconsole/components/overview/useOverviewData.js +0 -2
  239. package/dist/bigconsole/components/parser/DataSinkSelector.d.ts +0 -1
  240. package/dist/bigconsole/components/parser/DataSinkSelector.js +0 -2
  241. package/dist/bigconsole/components/parser/ExportParserDialog.d.ts +0 -1
  242. package/dist/bigconsole/components/parser/ExportParserDialog.js +0 -2
  243. package/dist/bigconsole/components/parser/ExpressionEditor.d.ts +0 -1
  244. package/dist/bigconsole/components/parser/ExpressionEditor.js +0 -2
  245. package/dist/bigconsole/components/parser/ImportParserDialog.d.ts +0 -1
  246. package/dist/bigconsole/components/parser/ImportParserDialog.js +0 -2
  247. package/dist/bigconsole/components/parser/ParserBuilder.d.ts +0 -1
  248. package/dist/bigconsole/components/parser/ParserCard.d.ts +0 -1
  249. package/dist/bigconsole/components/parser/ParserCard.js +0 -2
  250. package/dist/bigconsole/components/parser/ParserFormDialog.d.ts +0 -1
  251. package/dist/bigconsole/components/parser/ParserSelector.d.ts +0 -1
  252. package/dist/bigconsole/components/parser/ParserSelector.js +0 -2
  253. package/dist/bigconsole/components/parser/ParserStatusBadge.d.ts +0 -1
  254. package/dist/bigconsole/components/parser/ParserStatusBadge.js +0 -2
  255. package/dist/bigconsole/components/parser/ParserTypeBadge.d.ts +0 -1
  256. package/dist/bigconsole/components/parser/ParserTypeBadge.js +0 -2
  257. package/dist/bigconsole/components/parser/TestPanel.d.ts +0 -1
  258. package/dist/bigconsole/components/parser/index.d.ts +0 -1
  259. package/dist/bigconsole/components/parser/parserFieldStyles.d.ts +0 -1
  260. package/dist/bigconsole/components/pipeline/PipelineCard.d.ts +0 -1
  261. package/dist/bigconsole/components/pipeline/PipelineCard.js +0 -2
  262. package/dist/bigconsole/components/pipeline/PipelineDeleteDialog.d.ts +0 -1
  263. package/dist/bigconsole/components/pipeline/PipelineDeleteDialog.js +0 -2
  264. package/dist/bigconsole/components/pipeline/PipelineScopePicker.d.ts +0 -1
  265. package/dist/bigconsole/components/pipeline/PipelineScopePicker.js +0 -2
  266. package/dist/bigconsole/components/pipeline/PipelineStatusBadge.d.ts +0 -1
  267. package/dist/bigconsole/components/pipeline/PipelineStatusBadge.js +0 -2
  268. package/dist/bigconsole/components/pipeline/index.d.ts +0 -1
  269. package/dist/bigconsole/components/preview/AiPreviewContent.d.ts +0 -1
  270. package/dist/bigconsole/components/preview/AiPreviewContent.js +0 -2
  271. package/dist/bigconsole/components/preview/AiPreviewMiniPanel.d.ts +0 -1
  272. package/dist/bigconsole/components/preview/AiPreviewMiniPanel.js +0 -2
  273. package/dist/bigconsole/components/preview/AiPreviewPanel.d.ts +0 -1
  274. package/dist/bigconsole/components/preview/AiPreviewPanel.js +0 -2
  275. package/dist/bigconsole/components/preview/parserPreview.d.ts +0 -1
  276. package/dist/bigconsole/components/preview/parserPreview.js +0 -2
  277. package/dist/bigconsole/components/preview/previewShared.d.ts +0 -1
  278. package/dist/bigconsole/components/preview/previewShared.js +0 -2
  279. package/dist/bigconsole/components/widgets/ActionConfigDialog.d.ts +0 -1
  280. package/dist/bigconsole/components/widgets/ActionConfigDialog.js +0 -2
  281. package/dist/bigconsole/components/widgets/DrilldownConfigPanel.d.ts +0 -1
  282. package/dist/bigconsole/components/widgets/DrilldownConfigPanel.js +0 -2
  283. package/dist/bigconsole/components/widgets/PropertiesPanel.d.ts +0 -1
  284. package/dist/bigconsole/components/widgets/PropertiesPanel.js +0 -2
  285. package/dist/bigconsole/components/widgets/WidgetErrorBoundary.d.ts +0 -1
  286. package/dist/bigconsole/components/widgets/WidgetErrorBoundary.js +0 -2
  287. package/dist/bigconsole/components/widgets/WidgetHeader.d.ts +0 -1
  288. package/dist/bigconsole/components/widgets/WidgetHeader.js +0 -2
  289. package/dist/bigconsole/components/widgets/WidgetMenu.d.ts +0 -1
  290. package/dist/bigconsole/components/widgets/WidgetMenu.js +0 -2
  291. package/dist/bigconsole/components/widgets/WidgetRegistry.d.ts +0 -1
  292. package/dist/bigconsole/components/widgets/WidgetRegistry.js +0 -3
  293. package/dist/bigconsole/components/widgets/WidgetTypeSelector.d.ts +0 -1
  294. package/dist/bigconsole/components/widgets/WidgetWrapper.d.ts +0 -1
  295. package/dist/bigconsole/components/widgets/WidgetWrapper.js +0 -2
  296. package/dist/bigconsole/components/widgets/actionConfig.d.ts +0 -1
  297. package/dist/bigconsole/components/widgets/actionConfig.js +0 -2
  298. package/dist/bigconsole/components/widgets/adaptive-card/AdaptiveCardWidget.d.ts +0 -1
  299. package/dist/bigconsole/components/widgets/adaptive-card/AdaptiveCardWidget.js +0 -2
  300. package/dist/bigconsole/components/widgets/adaptive-card/index.d.ts +0 -1
  301. package/dist/bigconsole/components/widgets/calendar/CalendarView.d.ts +0 -1
  302. package/dist/bigconsole/components/widgets/calendar/CalendarView.js +0 -2
  303. package/dist/bigconsole/components/widgets/calendar/CalendarWidget.d.ts +0 -1
  304. package/dist/bigconsole/components/widgets/calendar/CalendarWidget.js +0 -2
  305. package/dist/bigconsole/components/widgets/calendar/index.d.ts +0 -1
  306. package/dist/bigconsole/components/widgets/chart/ChartConfig.d.ts +0 -1
  307. package/dist/bigconsole/components/widgets/chart/ChartConfig.js +0 -2
  308. package/dist/bigconsole/components/widgets/chart/ChartLegend.d.ts +0 -1
  309. package/dist/bigconsole/components/widgets/chart/ChartLegend.js +0 -2
  310. package/dist/bigconsole/components/widgets/chart/ChartTooltip.d.ts +0 -1
  311. package/dist/bigconsole/components/widgets/chart/ChartTooltip.js +0 -2
  312. package/dist/bigconsole/components/widgets/chart/ChartWidget.d.ts +0 -1
  313. package/dist/bigconsole/components/widgets/chart/ChartWidget.js +0 -2
  314. package/dist/bigconsole/components/widgets/chart/charts/AreaChart.d.ts +0 -1
  315. package/dist/bigconsole/components/widgets/chart/charts/AreaChart.js +0 -2
  316. package/dist/bigconsole/components/widgets/chart/charts/BarChart.d.ts +0 -1
  317. package/dist/bigconsole/components/widgets/chart/charts/BarChart.js +0 -2
  318. package/dist/bigconsole/components/widgets/chart/charts/ComboChart.d.ts +0 -1
  319. package/dist/bigconsole/components/widgets/chart/charts/ComboChart.js +0 -2
  320. package/dist/bigconsole/components/widgets/chart/charts/FunnelChart.d.ts +0 -1
  321. package/dist/bigconsole/components/widgets/chart/charts/FunnelChart.js +0 -2
  322. package/dist/bigconsole/components/widgets/chart/charts/LineChart.d.ts +0 -1
  323. package/dist/bigconsole/components/widgets/chart/charts/LineChart.js +0 -2
  324. package/dist/bigconsole/components/widgets/chart/charts/PieChart.d.ts +0 -1
  325. package/dist/bigconsole/components/widgets/chart/charts/PieChart.js +0 -2
  326. package/dist/bigconsole/components/widgets/chart/charts/ScatterChart.d.ts +0 -1
  327. package/dist/bigconsole/components/widgets/chart/charts/ScatterChart.js +0 -2
  328. package/dist/bigconsole/components/widgets/chart/charts/WaterfallChart.d.ts +0 -1
  329. package/dist/bigconsole/components/widgets/chart/charts/WaterfallChart.js +0 -2
  330. package/dist/bigconsole/components/widgets/chart/charts/index.d.ts +0 -1
  331. package/dist/bigconsole/components/widgets/chart/charts/referenceElements.d.ts +0 -1
  332. package/dist/bigconsole/components/widgets/chart/charts/referenceElements.js +0 -2
  333. package/dist/bigconsole/components/widgets/chart/charts/types.d.ts +0 -1
  334. package/dist/bigconsole/components/widgets/chart/index.d.ts +0 -1
  335. package/dist/bigconsole/components/widgets/comments/WidgetComments.d.ts +0 -1
  336. package/dist/bigconsole/components/widgets/comments/WidgetComments.js +0 -2
  337. package/dist/bigconsole/components/widgets/custom/CustomWidget.d.ts +0 -1
  338. package/dist/bigconsole/components/widgets/custom/CustomWidget.js +73 -133
  339. package/dist/bigconsole/components/widgets/custom/config.d.ts +0 -1
  340. package/dist/bigconsole/components/widgets/custom/config.js +0 -2
  341. package/dist/bigconsole/components/widgets/custom/index.d.ts +0 -1
  342. package/dist/bigconsole/components/widgets/custom/utils.d.ts +0 -1
  343. package/dist/bigconsole/components/widgets/custom/utils.js +0 -2
  344. package/dist/bigconsole/components/widgets/event-logs/EventLogViewer.d.ts +0 -1
  345. package/dist/bigconsole/components/widgets/event-logs/EventLogViewer.js +0 -2
  346. package/dist/bigconsole/components/widgets/event-logs/index.d.ts +0 -1
  347. package/dist/bigconsole/components/widgets/form/FormWidget.d.ts +0 -1
  348. package/dist/bigconsole/components/widgets/form/FormWidget.js +0 -2
  349. package/dist/bigconsole/components/widgets/form/index.d.ts +0 -1
  350. package/dist/bigconsole/components/widgets/funnel/index.d.ts +0 -1
  351. package/dist/bigconsole/components/widgets/funnel/index.js +0 -2
  352. package/dist/bigconsole/components/widgets/gauge/CircularGauge.d.ts +0 -1
  353. package/dist/bigconsole/components/widgets/gauge/CircularGauge.js +0 -2
  354. package/dist/bigconsole/components/widgets/gauge/GaugeConfig.d.ts +0 -1
  355. package/dist/bigconsole/components/widgets/gauge/GaugeConfig.js +0 -2
  356. package/dist/bigconsole/components/widgets/gauge/GaugeWidget.d.ts +0 -1
  357. package/dist/bigconsole/components/widgets/gauge/GaugeWidget.js +0 -2
  358. package/dist/bigconsole/components/widgets/gauge/LinearGauge.d.ts +0 -1
  359. package/dist/bigconsole/components/widgets/gauge/LinearGauge.js +0 -2
  360. package/dist/bigconsole/components/widgets/gauge/index.d.ts +0 -1
  361. package/dist/bigconsole/components/widgets/heatmap/HeatmapConfig.d.ts +0 -1
  362. package/dist/bigconsole/components/widgets/heatmap/HeatmapConfig.js +0 -2
  363. package/dist/bigconsole/components/widgets/heatmap/HeatmapWidget.d.ts +0 -1
  364. package/dist/bigconsole/components/widgets/heatmap/HeatmapWidget.js +0 -2
  365. package/dist/bigconsole/components/widgets/heatmap/index.d.ts +0 -1
  366. package/dist/bigconsole/components/widgets/iframe-widget/IframeWidget.d.ts +28 -10
  367. package/dist/bigconsole/components/widgets/iframe-widget/IframeWidget.js +115 -44
  368. package/dist/bigconsole/components/widgets/iframe-widget/framePolicy.d.ts +20 -0
  369. package/dist/bigconsole/components/widgets/iframe-widget/framePolicy.js +10 -0
  370. package/dist/bigconsole/components/widgets/iframe-widget/index.d.ts +2 -2
  371. package/dist/bigconsole/components/widgets/iframe-widget/index.js +3 -2
  372. package/dist/bigconsole/components/widgets/index.d.ts +0 -1
  373. package/dist/bigconsole/components/widgets/kanban/KanbanView.d.ts +0 -1
  374. package/dist/bigconsole/components/widgets/kanban/KanbanView.js +0 -2
  375. package/dist/bigconsole/components/widgets/kanban/KanbanWidget.d.ts +0 -1
  376. package/dist/bigconsole/components/widgets/kanban/KanbanWidget.js +0 -2
  377. package/dist/bigconsole/components/widgets/kanban/index.d.ts +0 -1
  378. package/dist/bigconsole/components/widgets/kanban/model.d.ts +0 -1
  379. package/dist/bigconsole/components/widgets/kanban/model.js +0 -2
  380. package/dist/bigconsole/components/widgets/kpi/KPIWidget.d.ts +0 -1
  381. package/dist/bigconsole/components/widgets/kpi/KPIWidget.js +0 -2
  382. package/dist/bigconsole/components/widgets/kpi/index.d.ts +0 -1
  383. package/dist/bigconsole/components/widgets/kpi-comparison/KPIComparisonWidget.d.ts +0 -1
  384. package/dist/bigconsole/components/widgets/kpi-comparison/KPIComparisonWidget.js +0 -2
  385. package/dist/bigconsole/components/widgets/kpi-comparison/index.d.ts +0 -1
  386. package/dist/bigconsole/components/widgets/list/ListConfig.d.ts +0 -1
  387. package/dist/bigconsole/components/widgets/list/ListConfig.js +0 -2
  388. package/dist/bigconsole/components/widgets/list/ListItem.d.ts +0 -1
  389. package/dist/bigconsole/components/widgets/list/ListItem.js +0 -2
  390. package/dist/bigconsole/components/widgets/list/ListWidget.d.ts +0 -1
  391. package/dist/bigconsole/components/widgets/list/ListWidget.js +0 -2
  392. package/dist/bigconsole/components/widgets/list/index.d.ts +0 -1
  393. package/dist/bigconsole/components/widgets/map-widget/MapWidget.d.ts +0 -1
  394. package/dist/bigconsole/components/widgets/map-widget/MapWidget.js +0 -2
  395. package/dist/bigconsole/components/widgets/map-widget/index.d.ts +0 -1
  396. package/dist/bigconsole/components/widgets/metric-card/ComparisonBadge.d.ts +0 -1
  397. package/dist/bigconsole/components/widgets/metric-card/ComparisonBadge.js +0 -2
  398. package/dist/bigconsole/components/widgets/metric-card/MetricCardConfig.d.ts +0 -1
  399. package/dist/bigconsole/components/widgets/metric-card/MetricCardConfig.js +0 -2
  400. package/dist/bigconsole/components/widgets/metric-card/MetricCardWidget.d.ts +0 -1
  401. package/dist/bigconsole/components/widgets/metric-card/MetricCardWidget.js +0 -2
  402. package/dist/bigconsole/components/widgets/metric-card/SparklineChart.d.ts +0 -1
  403. package/dist/bigconsole/components/widgets/metric-card/SparklineChart.js +0 -2
  404. package/dist/bigconsole/components/widgets/metric-card/TrendIndicator.d.ts +0 -1
  405. package/dist/bigconsole/components/widgets/metric-card/TrendIndicator.js +0 -2
  406. package/dist/bigconsole/components/widgets/metric-card/index.d.ts +0 -1
  407. package/dist/bigconsole/components/widgets/pivot-table/PivotTableWidget.d.ts +0 -1
  408. package/dist/bigconsole/components/widgets/pivot-table/PivotTableWidget.js +0 -2
  409. package/dist/bigconsole/components/widgets/pivot-table/index.d.ts +0 -1
  410. package/dist/bigconsole/components/widgets/progress/ProgressBar.d.ts +0 -1
  411. package/dist/bigconsole/components/widgets/progress/ProgressBar.js +0 -2
  412. package/dist/bigconsole/components/widgets/progress/ProgressConfig.d.ts +0 -1
  413. package/dist/bigconsole/components/widgets/progress/ProgressConfig.js +0 -2
  414. package/dist/bigconsole/components/widgets/progress/ProgressWidget.d.ts +0 -1
  415. package/dist/bigconsole/components/widgets/progress/ProgressWidget.js +0 -2
  416. package/dist/bigconsole/components/widgets/progress/index.d.ts +0 -1
  417. package/dist/bigconsole/components/widgets/retention/RetentionWidget.d.ts +0 -1
  418. package/dist/bigconsole/components/widgets/retention/RetentionWidget.js +0 -2
  419. package/dist/bigconsole/components/widgets/retention/index.d.ts +0 -1
  420. package/dist/bigconsole/components/widgets/states/EmptyState.d.ts +0 -1
  421. package/dist/bigconsole/components/widgets/states/EmptyState.js +0 -2
  422. package/dist/bigconsole/components/widgets/states/ErrorState.d.ts +0 -1
  423. package/dist/bigconsole/components/widgets/states/ErrorState.js +0 -2
  424. package/dist/bigconsole/components/widgets/states/LoadingState.d.ts +0 -1
  425. package/dist/bigconsole/components/widgets/states/LoadingState.js +0 -2
  426. package/dist/bigconsole/components/widgets/states/index.d.ts +0 -1
  427. package/dist/bigconsole/components/widgets/table/TableCell.d.ts +0 -1
  428. package/dist/bigconsole/components/widgets/table/TableCell.js +0 -2
  429. package/dist/bigconsole/components/widgets/table/TableConfig.d.ts +0 -1
  430. package/dist/bigconsole/components/widgets/table/TableConfig.js +0 -2
  431. package/dist/bigconsole/components/widgets/table/TableHeader.d.ts +0 -1
  432. package/dist/bigconsole/components/widgets/table/TableHeader.js +0 -2
  433. package/dist/bigconsole/components/widgets/table/TablePagination.d.ts +0 -1
  434. package/dist/bigconsole/components/widgets/table/TablePagination.js +0 -2
  435. package/dist/bigconsole/components/widgets/table/TableWidget.d.ts +0 -1
  436. package/dist/bigconsole/components/widgets/table/TableWidget.js +0 -2
  437. package/dist/bigconsole/components/widgets/table/cellLink.d.ts +0 -1
  438. package/dist/bigconsole/components/widgets/table/cellLink.js +0 -2
  439. package/dist/bigconsole/components/widgets/table/index.d.ts +0 -1
  440. package/dist/bigconsole/components/widgets/text-widget/TextWidget.d.ts +0 -1
  441. package/dist/bigconsole/components/widgets/text-widget/TextWidget.js +110 -29
  442. package/dist/bigconsole/components/widgets/text-widget/index.d.ts +0 -1
  443. package/dist/bigconsole/components/widgets/text-widget/textData.d.ts +6 -1
  444. package/dist/bigconsole/components/widgets/text-widget/textData.js +17 -16
  445. package/dist/bigconsole/components/widgets/timeline/TimelineWidget.d.ts +0 -1
  446. package/dist/bigconsole/components/widgets/timeline/TimelineWidget.js +0 -2
  447. package/dist/bigconsole/components/widgets/timeline/index.d.ts +0 -1
  448. package/dist/bigconsole/components/widgets/utils/conditionalFormat.d.ts +0 -1
  449. package/dist/bigconsole/components/widgets/utils/conditionalFormat.js +0 -2
  450. package/dist/bigconsole/components/widgets/utils/inferFields.d.ts +0 -1
  451. package/dist/bigconsole/components/widgets/utils/inferFields.js +0 -2
  452. package/dist/bigconsole/components/widgets/utils/targetProgress.d.ts +0 -1
  453. package/dist/bigconsole/components/widgets/utils/targetProgress.js +0 -2
  454. package/dist/bigconsole/components/widgets/utils/translate.d.ts +0 -1
  455. package/dist/bigconsole/components/widgets/utils/translate.js +0 -2
  456. package/dist/bigconsole/components/widgets/webhook-config/WebhookConfigPanel.d.ts +0 -1
  457. package/dist/bigconsole/components/widgets/webhook-config/WebhookConfigPanel.js +0 -2
  458. package/dist/bigconsole/components/widgets/webhook-config/index.d.ts +0 -1
  459. package/dist/bigconsole/components/widgets/widget-actions/WidgetActions.d.ts +0 -1
  460. package/dist/bigconsole/components/widgets/widget-actions/WidgetActions.js +0 -2
  461. package/dist/bigconsole/components/widgets/widget-actions/index.d.ts +0 -1
  462. package/dist/bigconsole/components/workflow/DataSinkMultiSelector.d.ts +0 -1
  463. package/dist/bigconsole/components/workflow/WorkflowCard.d.ts +0 -1
  464. package/dist/bigconsole/components/workflow/WorkflowCard.js +0 -2
  465. package/dist/bigconsole/components/workflow/WorkflowDeleteDialog.d.ts +0 -1
  466. package/dist/bigconsole/components/workflow/WorkflowDeleteDialog.js +0 -2
  467. package/dist/bigconsole/components/workflow/WorkflowDesignPreview.d.ts +0 -1
  468. package/dist/bigconsole/components/workflow/WorkflowDesignPreview.js +0 -2
  469. package/dist/bigconsole/components/workflow/WorkflowOpenGuard.d.ts +0 -1
  470. package/dist/bigconsole/components/workflow/WorkflowOpenGuard.js +0 -2
  471. package/dist/bigconsole/components/workflow/WorkflowSinkLinkForm.d.ts +0 -1
  472. package/dist/bigconsole/components/workflow/WorkflowSinkLinkForm.js +0 -2
  473. package/dist/bigconsole/components/workflow/WorkflowStatusBadge.d.ts +0 -1
  474. package/dist/bigconsole/components/workflow/WorkflowStatusBadge.js +0 -2
  475. package/dist/bigconsole/components/workflow/index.d.ts +0 -1
  476. package/dist/bigconsole/constants/backendErrors.d.ts +0 -1
  477. package/dist/bigconsole/constants.d.ts +0 -1
  478. package/dist/bigconsole/constants.js +0 -2
  479. package/dist/bigconsole/context/BigConsoleContext.d.ts +10 -1
  480. package/dist/bigconsole/context/BigConsoleContext.js +47 -32
  481. package/dist/bigconsole/context/index.d.ts +1 -2
  482. package/dist/bigconsole/contexts/CrossFilterContext.d.ts +0 -1
  483. package/dist/bigconsole/contexts/CrossFilterContext.js +0 -2
  484. package/dist/bigconsole/contexts/NavigationContext.d.ts +0 -1
  485. package/dist/bigconsole/contexts/NavigationContext.js +0 -2
  486. package/dist/bigconsole/contexts/index.d.ts +0 -1
  487. package/dist/bigconsole/customWidget/CustomWidgetBuilderSheet.d.ts +0 -1
  488. package/dist/bigconsole/customWidget/CustomWidgetBuilderSheet.js +0 -2
  489. package/dist/bigconsole/customWidget/CustomWidgetProposalPanel.d.ts +0 -1
  490. package/dist/bigconsole/customWidget/CustomWidgetProposalPanel.js +0 -2
  491. package/dist/bigconsole/customWidget/index.d.ts +0 -1
  492. package/dist/bigconsole/customWidget/proposalContract.d.ts +0 -1
  493. package/dist/bigconsole/customWidget/proposalContract.js +0 -2
  494. package/dist/bigconsole/customWidget/proposalSource.d.ts +0 -1
  495. package/dist/bigconsole/customWidget/proposalSource.js +0 -2
  496. package/dist/bigconsole/graphql/apollo-compat.d.ts +0 -1
  497. package/dist/bigconsole/graphql/storeTemplates.d.ts +0 -1
  498. package/dist/bigconsole/graphql/storeTemplates.js +0 -2
  499. package/dist/bigconsole/hooks/index.d.ts +0 -1
  500. package/dist/bigconsole/hooks/useActivePage.d.ts +0 -1
  501. package/dist/bigconsole/hooks/useActivePage.js +0 -2
  502. package/dist/bigconsole/hooks/useAutoRefresh.d.ts +0 -1
  503. package/dist/bigconsole/hooks/useAutoRefresh.js +0 -2
  504. package/dist/bigconsole/hooks/useBigConsoleAnalytics.d.ts +0 -1
  505. package/dist/bigconsole/hooks/useBigConsoleAnalytics.js +0 -2
  506. package/dist/bigconsole/hooks/useBigConsoleSettings.d.ts +0 -1
  507. package/dist/bigconsole/hooks/useBigConsoleSettings.js +0 -2
  508. package/dist/bigconsole/hooks/useCrossFilter.d.ts +0 -1
  509. package/dist/bigconsole/hooks/useCrossFilter.js +0 -2
  510. package/dist/bigconsole/hooks/useDashboardEmbedPolicy.d.ts +0 -1
  511. package/dist/bigconsole/hooks/useDashboardEmbedPolicy.js +0 -2
  512. package/dist/bigconsole/hooks/useDashboardImageExport.d.ts +0 -1
  513. package/dist/bigconsole/hooks/useDashboardImageExport.js +0 -2
  514. package/dist/bigconsole/hooks/useDashboardOperations.d.ts +0 -1
  515. package/dist/bigconsole/hooks/useDashboardOperations.js +0 -2
  516. package/dist/bigconsole/hooks/useDashboardSharing.d.ts +0 -1
  517. package/dist/bigconsole/hooks/useDashboardSharing.js +0 -2
  518. package/dist/bigconsole/hooks/useDashboardTemplates.d.ts +0 -1
  519. package/dist/bigconsole/hooks/useDashboardViews.d.ts +0 -1
  520. package/dist/bigconsole/hooks/useDashboardViews.js +0 -2
  521. package/dist/bigconsole/hooks/useDataSinkAlerts.d.ts +0 -1
  522. package/dist/bigconsole/hooks/useDataSinkAlerts.js +0 -2
  523. package/dist/bigconsole/hooks/useDataSinkOperations.d.ts +7 -1
  524. package/dist/bigconsole/hooks/useDataSinkOperations.js +109 -100
  525. package/dist/bigconsole/hooks/useDataSinkSubscription.d.ts +0 -1
  526. package/dist/bigconsole/hooks/useDataSinkSubscription.js +0 -3
  527. package/dist/bigconsole/hooks/useDrilldown.d.ts +0 -1
  528. package/dist/bigconsole/hooks/useDrilldown.js +69 -70
  529. package/dist/bigconsole/hooks/useDrilldownOperations.d.ts +0 -1
  530. package/dist/bigconsole/hooks/useDrilldownOperations.js +0 -2
  531. package/dist/bigconsole/hooks/useEventLogs.d.ts +0 -1
  532. package/dist/bigconsole/hooks/useEventLogs.js +0 -2
  533. package/dist/bigconsole/hooks/useEventWebhooks.d.ts +0 -1
  534. package/dist/bigconsole/hooks/useEventWebhooks.js +0 -2
  535. package/dist/bigconsole/hooks/useExportDashboard.d.ts +0 -1
  536. package/dist/bigconsole/hooks/useExportDashboard.js +0 -2
  537. package/dist/bigconsole/hooks/useExportDataSink.d.ts +0 -1
  538. package/dist/bigconsole/hooks/useExportDataSink.js +1 -3
  539. package/dist/bigconsole/hooks/useExportParser.d.ts +0 -1
  540. package/dist/bigconsole/hooks/useExportParser.js +0 -2
  541. package/dist/bigconsole/hooks/useFilterPresets.d.ts +0 -1
  542. package/dist/bigconsole/hooks/useFilterPresets.js +0 -2
  543. package/dist/bigconsole/hooks/useFilterUrlSync.d.ts +0 -1
  544. package/dist/bigconsole/hooks/useFilterUrlSync.js +0 -2
  545. package/dist/bigconsole/hooks/useGlobalFilters.d.ts +0 -1
  546. package/dist/bigconsole/hooks/useGlobalFilters.js +0 -2
  547. package/dist/bigconsole/hooks/useImportDashboard.d.ts +0 -1
  548. package/dist/bigconsole/hooks/useImportDashboard.js +0 -2
  549. package/dist/bigconsole/hooks/useImportDataSink.d.ts +0 -1
  550. package/dist/bigconsole/hooks/useImportDataSink.js +102 -92
  551. package/dist/bigconsole/hooks/useImportParser.d.ts +0 -1
  552. package/dist/bigconsole/hooks/useImportParser.js +0 -2
  553. package/dist/bigconsole/hooks/useInstalledWidgets.d.ts +0 -1
  554. package/dist/bigconsole/hooks/useInstalledWidgets.js +0 -2
  555. package/dist/bigconsole/hooks/useModalFocusTrap.d.ts +0 -1
  556. package/dist/bigconsole/hooks/useModalFocusTrap.js +0 -2
  557. package/dist/bigconsole/hooks/usePageOperations.d.ts +0 -1
  558. package/dist/bigconsole/hooks/usePageOperations.js +0 -2
  559. package/dist/bigconsole/hooks/useParserOperations.d.ts +0 -1
  560. package/dist/bigconsole/hooks/useParserOperations.js +0 -2
  561. package/dist/bigconsole/hooks/usePipelineOperations.d.ts +0 -1
  562. package/dist/bigconsole/hooks/usePipelineOperations.js +0 -2
  563. package/dist/bigconsole/hooks/useShareRecipients.d.ts +0 -1
  564. package/dist/bigconsole/hooks/useShareRecipients.js +0 -2
  565. package/dist/bigconsole/hooks/useStoreDashboardTemplates.d.ts +0 -1
  566. package/dist/bigconsole/hooks/useStoreDashboardTemplates.js +0 -2
  567. package/dist/bigconsole/hooks/useWidgetActions.d.ts +0 -1
  568. package/dist/bigconsole/hooks/useWidgetActions.js +0 -2
  569. package/dist/bigconsole/hooks/useWidgetCatalog.d.ts +0 -1
  570. package/dist/bigconsole/hooks/useWidgetCatalog.js +0 -2
  571. package/dist/bigconsole/hooks/useWidgetComments.d.ts +0 -1
  572. package/dist/bigconsole/hooks/useWidgetComments.js +0 -2
  573. package/dist/bigconsole/hooks/useWidgetConfigPersist.d.ts +0 -1
  574. package/dist/bigconsole/hooks/useWidgetConfigPersist.js +0 -2
  575. package/dist/bigconsole/hooks/useWidgetData.d.ts +0 -1
  576. package/dist/bigconsole/hooks/useWidgetData.js +0 -2
  577. package/dist/bigconsole/hooks/useWidgetEvents.d.ts +0 -1
  578. package/dist/bigconsole/hooks/useWidgetEvents.js +0 -2
  579. package/dist/bigconsole/hooks/useWidgetExport.d.ts +0 -1
  580. package/dist/bigconsole/hooks/useWidgetExport.js +0 -2
  581. package/dist/bigconsole/hooks/useWidgetOperations.d.ts +0 -1
  582. package/dist/bigconsole/hooks/useWidgetOperations.js +0 -2
  583. package/dist/bigconsole/hooks/useWorkflowOperations.d.ts +0 -1
  584. package/dist/bigconsole/hooks/useWorkflowOperations.js +0 -2
  585. package/dist/bigconsole/index.d.ts +0 -1
  586. package/dist/bigconsole/modules/dashboard/index.d.ts +0 -1
  587. package/dist/bigconsole/modules/index.d.ts +0 -1
  588. package/dist/bigconsole/modules/renderer/index.d.ts +0 -1
  589. package/dist/bigconsole/modules/widget/index.d.ts +0 -1
  590. package/dist/bigconsole/pages/AdminPage.d.ts +0 -1
  591. package/dist/bigconsole/pages/AdminPage.js +0 -2
  592. package/dist/bigconsole/pages/DashboardBuilderPage.d.ts +0 -1
  593. package/dist/bigconsole/pages/DashboardBuilderPage.js +0 -2
  594. package/dist/bigconsole/pages/DashboardViewPage.d.ts +0 -1
  595. package/dist/bigconsole/pages/DashboardViewPage.js +205 -207
  596. package/dist/bigconsole/pages/DashboardsPage.d.ts +0 -1
  597. package/dist/bigconsole/pages/DashboardsPage.js +0 -2
  598. package/dist/bigconsole/pages/DataParsersPage.d.ts +0 -1
  599. package/dist/bigconsole/pages/DataParsersPage.js +0 -2
  600. package/dist/bigconsole/pages/DataSinkAlertsPage.d.ts +0 -1
  601. package/dist/bigconsole/pages/DataSinkAlertsPage.js +0 -2
  602. package/dist/bigconsole/pages/DataSinkBuilderPage.d.ts +0 -1
  603. package/dist/bigconsole/pages/DataSinkBuilderPage.js +312 -282
  604. package/dist/bigconsole/pages/DataSinkViewPage.d.ts +0 -1
  605. package/dist/bigconsole/pages/DataSinkViewPage.js +256 -257
  606. package/dist/bigconsole/pages/DataSinksPage.d.ts +0 -1
  607. package/dist/bigconsole/pages/DataSinksPage.js +196 -197
  608. package/dist/bigconsole/pages/DataSourcesPage.d.ts +0 -1
  609. package/dist/bigconsole/pages/DataSourcesPage.js +0 -2
  610. package/dist/bigconsole/pages/InsightsPage.d.ts +0 -1
  611. package/dist/bigconsole/pages/InsightsPage.js +0 -2
  612. package/dist/bigconsole/pages/OverviewPage.d.ts +0 -1
  613. package/dist/bigconsole/pages/OverviewPage.js +0 -2
  614. package/dist/bigconsole/pages/ParserBuilderPage.d.ts +0 -1
  615. package/dist/bigconsole/pages/ParserBuilderPage.js +0 -2
  616. package/dist/bigconsole/pages/ParserViewPage.d.ts +0 -1
  617. package/dist/bigconsole/pages/ParserViewPage.js +0 -2
  618. package/dist/bigconsole/pages/PipelineBuilderPage.d.ts +0 -1
  619. package/dist/bigconsole/pages/PipelineBuilderPage.js +0 -2
  620. package/dist/bigconsole/pages/PipelineViewPage.d.ts +0 -1
  621. package/dist/bigconsole/pages/PipelineViewPage.js +0 -2
  622. package/dist/bigconsole/pages/PipelinesPage.d.ts +0 -1
  623. package/dist/bigconsole/pages/PipelinesPage.js +0 -2
  624. package/dist/bigconsole/pages/SettingsPage.d.ts +0 -1
  625. package/dist/bigconsole/pages/SettingsPage.js +0 -2
  626. package/dist/bigconsole/pages/WidgetDemoPage.d.ts +0 -1
  627. package/dist/bigconsole/pages/WidgetDemoPage.js +0 -2
  628. package/dist/bigconsole/pages/WorkflowViewPage.d.ts +0 -1
  629. package/dist/bigconsole/pages/WorkflowViewPage.js +0 -2
  630. package/dist/bigconsole/pages/WorkflowsPage.d.ts +0 -1
  631. package/dist/bigconsole/pages/WorkflowsPage.js +0 -2
  632. package/dist/bigconsole/pages/index.d.ts +0 -1
  633. package/dist/bigconsole/providers/BigConsoleQuotaProvider.d.ts +0 -1
  634. package/dist/bigconsole/providers/BigConsoleQuotaProvider.js +0 -2
  635. package/dist/bigconsole/renderers/adapters/AdaptiveCardRenderer.d.ts +0 -1
  636. package/dist/bigconsole/renderers/adapters/AdaptiveCardRenderer.js +235 -124
  637. package/dist/bigconsole/renderers/adapters/BigConsoleRenderer.d.ts +0 -1
  638. package/dist/bigconsole/renderers/adapters/BigConsoleRenderer.js +0 -2
  639. package/dist/bigconsole/renderers/adapters/BlockKitRenderer.d.ts +6 -2
  640. package/dist/bigconsole/renderers/adapters/BlockKitRenderer.js +155 -157
  641. package/dist/bigconsole/renderers/adapters/CustomRenderer.d.ts +0 -1
  642. package/dist/bigconsole/renderers/adapters/CustomRenderer.js +0 -2
  643. package/dist/bigconsole/renderers/adapters/adaptiveCardContent.d.ts +29 -0
  644. package/dist/bigconsole/renderers/adapters/adaptiveCardContent.js +51 -0
  645. package/dist/bigconsole/renderers/adapters/index.d.ts +0 -1
  646. package/dist/bigconsole/renderers/factory/WidgetRendererFactory.d.ts +0 -1
  647. package/dist/bigconsole/renderers/factory/WidgetRendererFactory.js +0 -2
  648. package/dist/bigconsole/renderers/index.d.ts +0 -1
  649. package/dist/bigconsole/renderers/registry/RendererRegistry.d.ts +0 -1
  650. package/dist/bigconsole/renderers/registry/RendererRegistry.js +0 -2
  651. package/dist/bigconsole/renderers/types/index.d.ts +0 -1
  652. package/dist/bigconsole/renderers/types/renderer.d.ts +0 -1
  653. package/dist/bigconsole/store/dashboardStore.d.ts +0 -1
  654. package/dist/bigconsole/store/dashboardStore.js +0 -2
  655. package/dist/bigconsole/store/dataSinkStore.d.ts +0 -1
  656. package/dist/bigconsole/store/dataSinkStore.js +0 -2
  657. package/dist/bigconsole/store/drilldownStore.d.ts +0 -1
  658. package/dist/bigconsole/store/drilldownStore.js +0 -2
  659. package/dist/bigconsole/store/index.d.ts +0 -1
  660. package/dist/bigconsole/store/parserStore.d.ts +0 -1
  661. package/dist/bigconsole/store/parserStore.js +0 -2
  662. package/dist/bigconsole/store/pipelineStore.d.ts +0 -1
  663. package/dist/bigconsole/store/pipelineStore.js +0 -2
  664. package/dist/bigconsole/store/widgetStore.d.ts +0 -1
  665. package/dist/bigconsole/store/widgetStore.js +0 -2
  666. package/dist/bigconsole/store/workflowStore.d.ts +0 -1
  667. package/dist/bigconsole/store/workflowStore.js +0 -2
  668. package/dist/bigconsole/types/index.d.ts +17 -3
  669. package/dist/bigconsole/utils/alertRules.d.ts +0 -1
  670. package/dist/bigconsole/utils/alertRules.js +0 -2
  671. package/dist/bigconsole/utils/backendError.d.ts +0 -1
  672. package/dist/bigconsole/utils/createDialogParam.d.ts +0 -1
  673. package/dist/bigconsole/utils/createDialogParam.js +0 -2
  674. package/dist/bigconsole/utils/csv.d.ts +0 -1
  675. package/dist/bigconsole/utils/csv.js +0 -2
  676. package/dist/bigconsole/utils/dashboardTemplateContent.d.ts +0 -1
  677. package/dist/bigconsole/utils/dashboardTemplateContent.js +0 -2
  678. package/dist/bigconsole/utils/dataSinkPayload.d.ts +48 -0
  679. package/dist/bigconsole/utils/dataSinkPayload.js +38 -0
  680. package/dist/bigconsole/utils/drilldownParams.d.ts +0 -1
  681. package/dist/bigconsole/utils/drilldownParams.js +0 -2
  682. package/dist/bigconsole/utils/format.d.ts +0 -1
  683. package/dist/bigconsole/utils/format.js +0 -2
  684. package/dist/bigconsole/utils/index.d.ts +2 -1
  685. package/dist/bigconsole/utils/quota.d.ts +0 -1
  686. package/dist/bigconsole/utils/quota.js +0 -2
  687. package/dist/bigconsole/utils/safeUrl.d.ts +79 -0
  688. package/dist/bigconsole/utils/safeUrl.js +93 -0
  689. package/dist/bigconsole/utils/sanitizeHtml.d.ts +16 -0
  690. package/dist/bigconsole/utils/sanitizeHtml.js +67 -0
  691. package/dist/bigconsole/utils/semanticTokens.d.ts +0 -1
  692. package/dist/bigconsole/utils/semanticTokens.js +0 -2
  693. package/dist/bigconsole/utils/templateInstallInputs.d.ts +0 -1
  694. package/dist/bigconsole/utils/templateInstallInputs.js +0 -2
  695. package/dist/bigconsole/utils/widgetBinding.d.ts +0 -1
  696. package/dist/bigconsole/utils/widgetBinding.js +0 -2
  697. package/dist/bigconsole/utils/widgetPositioning.d.ts +0 -1
  698. package/dist/bigconsole/utils/widgetPositioning.js +0 -2
  699. package/dist/bigconsole/utils/widgetTypeMapping.d.ts +0 -1
  700. package/dist/bigconsole/utils/widgetTypeMapping.js +0 -2
  701. package/dist/bigconsole/workflowOpen.d.ts +0 -1
  702. package/dist/bigconsole/workflowOpen.js +0 -2
  703. package/dist/constants/permissions.d.ts +0 -1
  704. package/dist/constants/permissions.js +0 -2
  705. package/dist/generated/global-operations.d.ts +0 -1
  706. package/dist/generated/global-operations.js +0 -2
  707. package/dist/generated/global-types.d.ts +0 -1
  708. package/dist/generated/wspace-operations.d.ts +138 -9
  709. package/dist/generated/wspace-operations.js +281 -242
  710. package/dist/generated/wspace-types.d.ts +0 -1
  711. package/dist/generated/wspace-types.js +0 -2
  712. package/dist/index.d.ts +0 -1
  713. package/dist/node_modules/@e965/xlsx/xlsx.js +0 -2
  714. package/dist/node_modules/dompurify/dist/purify.es.js +800 -0
  715. package/dist/node_modules/pdfjs-dist/build/pdf.js +0 -2
  716. package/dist/shared/hooks/useTr.d.ts +0 -1
  717. package/dist/shared/hooks/useTr.js +0 -2
  718. package/dist/translations/en.d.ts +0 -1
  719. package/dist/utils/nativeBridge.d.ts +0 -1
  720. package/package.json +9 -4
  721. package/dist/bigconsole/AdminRoot.d.ts.map +0 -1
  722. package/dist/bigconsole/AdminRoot.js.map +0 -1
  723. package/dist/bigconsole/AdminRoutes.d.ts.map +0 -1
  724. package/dist/bigconsole/AdminRoutes.js.map +0 -1
  725. package/dist/bigconsole/BigConsoleRoot.d.ts.map +0 -1
  726. package/dist/bigconsole/BigConsoleRoot.js.map +0 -1
  727. package/dist/bigconsole/BigConsoleRoutes.d.ts.map +0 -1
  728. package/dist/bigconsole/BigConsoleRoutes.js.map +0 -1
  729. package/dist/bigconsole/assistant/assistantApi.d.ts.map +0 -1
  730. package/dist/bigconsole/assistant/assistantApi.js.map +0 -1
  731. package/dist/bigconsole/assistant/assistantProduct.d.ts.map +0 -1
  732. package/dist/bigconsole/assistant/assistantProduct.js.map +0 -1
  733. package/dist/bigconsole/assistant/assistantPrompt.d.ts.map +0 -1
  734. package/dist/bigconsole/assistant/assistantPrompt.js.map +0 -1
  735. package/dist/bigconsole/assistant/assistantRunPersistence.d.ts.map +0 -1
  736. package/dist/bigconsole/assistant/assistantRunPersistence.js.map +0 -1
  737. package/dist/bigconsole/assistant/assistantRunStore.d.ts.map +0 -1
  738. package/dist/bigconsole/assistant/assistantRunStore.js.map +0 -1
  739. package/dist/bigconsole/assistant/assistantRuntime.d.ts.map +0 -1
  740. package/dist/bigconsole/assistant/assistantRuntime.js.map +0 -1
  741. package/dist/bigconsole/assistant/attachmentExtract.d.ts.map +0 -1
  742. package/dist/bigconsole/assistant/attachmentExtract.js.map +0 -1
  743. package/dist/bigconsole/assistant/conversationHistoryApi.d.ts.map +0 -1
  744. package/dist/bigconsole/assistant/conversationHistoryApi.js.map +0 -1
  745. package/dist/bigconsole/assistant/createSandboxAssistantTransport.d.ts.map +0 -1
  746. package/dist/bigconsole/assistant/createSandboxAssistantTransport.js.map +0 -1
  747. package/dist/bigconsole/assistant/index.d.ts.map +0 -1
  748. package/dist/bigconsole/assistant/modes.d.ts.map +0 -1
  749. package/dist/bigconsole/assistant/modes.js.map +0 -1
  750. package/dist/bigconsole/assistant/pageContext.d.ts.map +0 -1
  751. package/dist/bigconsole/assistant/pageContext.js.map +0 -1
  752. package/dist/bigconsole/assistant/previewController.d.ts.map +0 -1
  753. package/dist/bigconsole/assistant/previewController.js.map +0 -1
  754. package/dist/bigconsole/assistant/previewMutationResult.d.ts.map +0 -1
  755. package/dist/bigconsole/assistant/previewMutationResult.js.map +0 -1
  756. package/dist/bigconsole/assistant/previewRunAction.d.ts.map +0 -1
  757. package/dist/bigconsole/assistant/previewRunAction.js.map +0 -1
  758. package/dist/bigconsole/assistant/product.d.ts.map +0 -1
  759. package/dist/bigconsole/assistant/product.js.map +0 -1
  760. package/dist/bigconsole/assistant/recordAdapters.d.ts.map +0 -1
  761. package/dist/bigconsole/assistant/recordAdapters.js.map +0 -1
  762. package/dist/bigconsole/assistant/types.d.ts.map +0 -1
  763. package/dist/bigconsole/assistant/useAssistantRunWorkspace.d.ts.map +0 -1
  764. package/dist/bigconsole/assistant/useAssistantRunWorkspace.js.map +0 -1
  765. package/dist/bigconsole/assistant/useWorkspaceWriteAccess.d.ts.map +0 -1
  766. package/dist/bigconsole/assistant/useWorkspaceWriteAccess.js.map +0 -1
  767. package/dist/bigconsole/components/DrilldownDashboardRenderer.d.ts.map +0 -1
  768. package/dist/bigconsole/components/DrilldownDashboardRenderer.js.map +0 -1
  769. package/dist/bigconsole/components/DrilldownModal.d.ts.map +0 -1
  770. package/dist/bigconsole/components/DrilldownModal.js.map +0 -1
  771. package/dist/bigconsole/components/builder/BuilderCanvas.d.ts.map +0 -1
  772. package/dist/bigconsole/components/builder/BuilderCanvas.js.map +0 -1
  773. package/dist/bigconsole/components/builder/BuilderTopbar.d.ts.map +0 -1
  774. package/dist/bigconsole/components/builder/BuilderTopbar.js.map +0 -1
  775. package/dist/bigconsole/components/builder/DashboardEditorShell.d.ts.map +0 -1
  776. package/dist/bigconsole/components/builder/DashboardEditorShell.js.map +0 -1
  777. package/dist/bigconsole/components/builder/WidgetInspector.d.ts.map +0 -1
  778. package/dist/bigconsole/components/builder/WidgetInspector.js.map +0 -1
  779. package/dist/bigconsole/components/builder/index.d.ts.map +0 -1
  780. package/dist/bigconsole/components/builder/inspector/AdvancedSection.d.ts.map +0 -1
  781. package/dist/bigconsole/components/builder/inspector/AdvancedSection.js.map +0 -1
  782. package/dist/bigconsole/components/builder/inspector/AppearanceSection.d.ts.map +0 -1
  783. package/dist/bigconsole/components/builder/inspector/AppearanceSection.js.map +0 -1
  784. package/dist/bigconsole/components/builder/inspector/DataBindingSection.d.ts.map +0 -1
  785. package/dist/bigconsole/components/builder/inspector/DataBindingSection.js.map +0 -1
  786. package/dist/bigconsole/components/builder/inspector/GeneralSection.d.ts.map +0 -1
  787. package/dist/bigconsole/components/builder/inspector/GeneralSection.js.map +0 -1
  788. package/dist/bigconsole/components/builder/inspector/LayoutSection.d.ts.map +0 -1
  789. package/dist/bigconsole/components/builder/inspector/LayoutSection.js.map +0 -1
  790. package/dist/bigconsole/components/builder/inspector/index.d.ts.map +0 -1
  791. package/dist/bigconsole/components/common/Section.d.ts.map +0 -1
  792. package/dist/bigconsole/components/common/Section.js.map +0 -1
  793. package/dist/bigconsole/components/common/index.d.ts.map +0 -1
  794. package/dist/bigconsole/components/common/sectionStyles.d.ts.map +0 -1
  795. package/dist/bigconsole/components/common/sectionStyles.js.map +0 -1
  796. package/dist/bigconsole/components/dashboard/CreateDashboardDialog.d.ts.map +0 -1
  797. package/dist/bigconsole/components/dashboard/CreateDashboardDialog.js.map +0 -1
  798. package/dist/bigconsole/components/dashboard/DashboardCanvas.d.ts.map +0 -1
  799. package/dist/bigconsole/components/dashboard/DashboardCanvas.js.map +0 -1
  800. package/dist/bigconsole/components/dashboard/DashboardGrid.d.ts.map +0 -1
  801. package/dist/bigconsole/components/dashboard/DashboardGrid.js.map +0 -1
  802. package/dist/bigconsole/components/dashboard/DashboardStatusPill.d.ts.map +0 -1
  803. package/dist/bigconsole/components/dashboard/DashboardStatusPill.js.map +0 -1
  804. package/dist/bigconsole/components/dashboard/DashboardToolbar.d.ts.map +0 -1
  805. package/dist/bigconsole/components/dashboard/DashboardToolbar.js.map +0 -1
  806. package/dist/bigconsole/components/dashboard/DrilldownBreadcrumb.d.ts.map +0 -1
  807. package/dist/bigconsole/components/dashboard/DrilldownBreadcrumb.js.map +0 -1
  808. package/dist/bigconsole/components/dashboard/ExportDashboardDialog.d.ts.map +0 -1
  809. package/dist/bigconsole/components/dashboard/ExportDashboardDialog.js.map +0 -1
  810. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterChip.d.ts.map +0 -1
  811. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterChip.js.map +0 -1
  812. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterEditor.d.ts.map +0 -1
  813. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterEditor.js.map +0 -1
  814. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterPresetSelector.d.ts.map +0 -1
  815. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterPresetSelector.js.map +0 -1
  816. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.d.ts.map +0 -1
  817. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.js.map +0 -1
  818. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/index.d.ts.map +0 -1
  819. package/dist/bigconsole/components/dashboard/ImportDashboardDialog.d.ts.map +0 -1
  820. package/dist/bigconsole/components/dashboard/ImportDashboardDialog.js.map +0 -1
  821. package/dist/bigconsole/components/dashboard/LiveBoardBanner.d.ts.map +0 -1
  822. package/dist/bigconsole/components/dashboard/LiveBoardBanner.js.map +0 -1
  823. package/dist/bigconsole/components/dashboard/LiveCanvasToggle.d.ts.map +0 -1
  824. package/dist/bigconsole/components/dashboard/LiveCanvasToggle.js.map +0 -1
  825. package/dist/bigconsole/components/dashboard/PageTabsManager/PageTabsManager.d.ts.map +0 -1
  826. package/dist/bigconsole/components/dashboard/PageTabsManager/PageTabsManager.js.map +0 -1
  827. package/dist/bigconsole/components/dashboard/PageTabsManager/index.d.ts.map +0 -1
  828. package/dist/bigconsole/components/dashboard/PublishToStoreDialog.d.ts.map +0 -1
  829. package/dist/bigconsole/components/dashboard/PublishToStoreDialog.js.map +0 -1
  830. package/dist/bigconsole/components/dashboard/SavedViewsDropdown/SavedViewsDropdown.d.ts.map +0 -1
  831. package/dist/bigconsole/components/dashboard/SavedViewsDropdown/SavedViewsDropdown.js.map +0 -1
  832. package/dist/bigconsole/components/dashboard/SavedViewsDropdown/index.d.ts.map +0 -1
  833. package/dist/bigconsole/components/dashboard/ShareDialog/EmbedTab.d.ts.map +0 -1
  834. package/dist/bigconsole/components/dashboard/ShareDialog/EmbedTab.js.map +0 -1
  835. package/dist/bigconsole/components/dashboard/ShareDialog/ShareDialog.d.ts.map +0 -1
  836. package/dist/bigconsole/components/dashboard/ShareDialog/ShareDialog.js.map +0 -1
  837. package/dist/bigconsole/components/dashboard/ShareDialog/index.d.ts.map +0 -1
  838. package/dist/bigconsole/components/dashboard/StoreTemplatePicker.d.ts.map +0 -1
  839. package/dist/bigconsole/components/dashboard/StoreTemplatePicker.js.map +0 -1
  840. package/dist/bigconsole/components/dashboard/TemplateInstallOptions.d.ts.map +0 -1
  841. package/dist/bigconsole/components/dashboard/TemplateInstallOptions.js.map +0 -1
  842. package/dist/bigconsole/components/dashboard/TemplateLayoutPreview.d.ts.map +0 -1
  843. package/dist/bigconsole/components/dashboard/TemplateLayoutPreview.js.map +0 -1
  844. package/dist/bigconsole/components/dashboard/TemplatePicker/TemplatePicker.d.ts.map +0 -1
  845. package/dist/bigconsole/components/dashboard/TemplatePicker/index.d.ts.map +0 -1
  846. package/dist/bigconsole/components/dashboard/TemplateSetupBanner.d.ts.map +0 -1
  847. package/dist/bigconsole/components/dashboard/TemplateSetupBanner.js.map +0 -1
  848. package/dist/bigconsole/components/dashboard/WidgetPalette.d.ts.map +0 -1
  849. package/dist/bigconsole/components/dashboard/WidgetPalette.js.map +0 -1
  850. package/dist/bigconsole/components/dashboard/index.d.ts.map +0 -1
  851. package/dist/bigconsole/components/datasink/AlertExecutionHistory.d.ts.map +0 -1
  852. package/dist/bigconsole/components/datasink/AlertExecutionHistory.js.map +0 -1
  853. package/dist/bigconsole/components/datasink/AlertRuleEditor.d.ts.map +0 -1
  854. package/dist/bigconsole/components/datasink/AlertRuleEditor.js.map +0 -1
  855. package/dist/bigconsole/components/datasink/CacheTTLSelector.d.ts.map +0 -1
  856. package/dist/bigconsole/components/datasink/CacheTTLSelector.js.map +0 -1
  857. package/dist/bigconsole/components/datasink/ConfigurationForm.d.ts.map +0 -1
  858. package/dist/bigconsole/components/datasink/DataPreviewPanel.d.ts.map +0 -1
  859. package/dist/bigconsole/components/datasink/DataSinkCard.d.ts.map +0 -1
  860. package/dist/bigconsole/components/datasink/DataSinkCard.js.map +0 -1
  861. package/dist/bigconsole/components/datasink/DataSinkDataViewer.d.ts.map +0 -1
  862. package/dist/bigconsole/components/datasink/DataSinkDataViewer.js.map +0 -1
  863. package/dist/bigconsole/components/datasink/DataSinkDeleteDialog.d.ts.map +0 -1
  864. package/dist/bigconsole/components/datasink/DataSinkDeleteDialog.js.map +0 -1
  865. package/dist/bigconsole/components/datasink/DataSinkRefreshConfig.d.ts.map +0 -1
  866. package/dist/bigconsole/components/datasink/DataSinkRefreshDialog.d.ts.map +0 -1
  867. package/dist/bigconsole/components/datasink/DataSinkRefreshDialog.js.map +0 -1
  868. package/dist/bigconsole/components/datasink/DataSinkStatusBadge.d.ts.map +0 -1
  869. package/dist/bigconsole/components/datasink/DataSinkStatusBadge.js.map +0 -1
  870. package/dist/bigconsole/components/datasink/DataSinkTableViewer.d.ts.map +0 -1
  871. package/dist/bigconsole/components/datasink/DataSinkTableViewer.js.map +0 -1
  872. package/dist/bigconsole/components/datasink/ExportDataSinkDialog.d.ts.map +0 -1
  873. package/dist/bigconsole/components/datasink/ExportDataSinkDialog.js.map +0 -1
  874. package/dist/bigconsole/components/datasink/FluidGridsPanel.d.ts.map +0 -1
  875. package/dist/bigconsole/components/datasink/ImportDataGuideDialog.d.ts.map +0 -1
  876. package/dist/bigconsole/components/datasink/ImportDataGuideDialog.js.map +0 -1
  877. package/dist/bigconsole/components/datasink/ImportDataSinkDialog.d.ts.map +0 -1
  878. package/dist/bigconsole/components/datasink/ImportDataSinkDialog.js.map +0 -1
  879. package/dist/bigconsole/components/datasink/LinkedParsersPanel.d.ts.map +0 -1
  880. package/dist/bigconsole/components/datasink/LinkedParsersPanel.js.map +0 -1
  881. package/dist/bigconsole/components/datasink/LinkedWorkflowsPanel.d.ts.map +0 -1
  882. package/dist/bigconsole/components/datasink/LinkedWorkflowsPanel.js.map +0 -1
  883. package/dist/bigconsole/components/datasink/RefreshTypeSelector.d.ts.map +0 -1
  884. package/dist/bigconsole/components/datasink/RefreshTypeSelector.js.map +0 -1
  885. package/dist/bigconsole/components/datasink/SetupStateBadge.d.ts.map +0 -1
  886. package/dist/bigconsole/components/datasink/SetupStateBadge.js.map +0 -1
  887. package/dist/bigconsole/components/datasink/WorkflowStatusPanel.d.ts.map +0 -1
  888. package/dist/bigconsole/components/datasink/WorkflowStatusPanel.js.map +0 -1
  889. package/dist/bigconsole/components/datasink/index.d.ts.map +0 -1
  890. package/dist/bigconsole/components/embed/EmbedErrorBoundary.d.ts.map +0 -1
  891. package/dist/bigconsole/components/embed/EmbedErrorBoundary.js.map +0 -1
  892. package/dist/bigconsole/components/embed/EmbedWidgetRenderer.d.ts.map +0 -1
  893. package/dist/bigconsole/components/embed/EmbedWidgetRenderer.js.map +0 -1
  894. package/dist/bigconsole/components/embed/ReadOnlyDashboardRenderer.d.ts.map +0 -1
  895. package/dist/bigconsole/components/embed/ReadOnlyDashboardRenderer.js.map +0 -1
  896. package/dist/bigconsole/components/embed/drilldown.d.ts.map +0 -1
  897. package/dist/bigconsole/components/embed/drilldown.js.map +0 -1
  898. package/dist/bigconsole/components/embed/index.d.ts.map +0 -1
  899. package/dist/bigconsole/components/embed/renderer-manifest.d.ts.map +0 -1
  900. package/dist/bigconsole/components/embed/renderer-manifest.js.map +0 -1
  901. package/dist/bigconsole/components/embed/types.d.ts.map +0 -1
  902. package/dist/bigconsole/components/embed/types.js.map +0 -1
  903. package/dist/bigconsole/components/embed/validate.d.ts.map +0 -1
  904. package/dist/bigconsole/components/embed/validate.js.map +0 -1
  905. package/dist/bigconsole/components/embed/widgetShim.d.ts.map +0 -1
  906. package/dist/bigconsole/components/embed/widgetShim.js.map +0 -1
  907. package/dist/bigconsole/components/embed/widgets/CalendarEmbed.d.ts.map +0 -1
  908. package/dist/bigconsole/components/embed/widgets/CalendarEmbed.js.map +0 -1
  909. package/dist/bigconsole/components/embed/widgets/ChartEmbed.d.ts.map +0 -1
  910. package/dist/bigconsole/components/embed/widgets/ChartEmbed.js.map +0 -1
  911. package/dist/bigconsole/components/embed/widgets/EmbedFrame.d.ts.map +0 -1
  912. package/dist/bigconsole/components/embed/widgets/EmbedFrame.js.map +0 -1
  913. package/dist/bigconsole/components/embed/widgets/FormEmbed.d.ts.map +0 -1
  914. package/dist/bigconsole/components/embed/widgets/FormEmbed.js.map +0 -1
  915. package/dist/bigconsole/components/embed/widgets/GaugeEmbed.d.ts.map +0 -1
  916. package/dist/bigconsole/components/embed/widgets/GaugeEmbed.js.map +0 -1
  917. package/dist/bigconsole/components/embed/widgets/HeatmapEmbed.d.ts.map +0 -1
  918. package/dist/bigconsole/components/embed/widgets/HeatmapEmbed.js.map +0 -1
  919. package/dist/bigconsole/components/embed/widgets/KanbanEmbed.d.ts.map +0 -1
  920. package/dist/bigconsole/components/embed/widgets/KanbanEmbed.js.map +0 -1
  921. package/dist/bigconsole/components/embed/widgets/KpiComparisonEmbed.d.ts.map +0 -1
  922. package/dist/bigconsole/components/embed/widgets/KpiComparisonEmbed.js.map +0 -1
  923. package/dist/bigconsole/components/embed/widgets/ListEmbed.d.ts.map +0 -1
  924. package/dist/bigconsole/components/embed/widgets/ListEmbed.js.map +0 -1
  925. package/dist/bigconsole/components/embed/widgets/MetricCardEmbed.d.ts.map +0 -1
  926. package/dist/bigconsole/components/embed/widgets/MetricCardEmbed.js.map +0 -1
  927. package/dist/bigconsole/components/embed/widgets/PivotEmbed.d.ts.map +0 -1
  928. package/dist/bigconsole/components/embed/widgets/PivotEmbed.js.map +0 -1
  929. package/dist/bigconsole/components/embed/widgets/ProgressEmbed.d.ts.map +0 -1
  930. package/dist/bigconsole/components/embed/widgets/ProgressEmbed.js.map +0 -1
  931. package/dist/bigconsole/components/embed/widgets/RetentionEmbed.d.ts.map +0 -1
  932. package/dist/bigconsole/components/embed/widgets/RetentionEmbed.js.map +0 -1
  933. package/dist/bigconsole/components/embed/widgets/TableEmbed.d.ts.map +0 -1
  934. package/dist/bigconsole/components/embed/widgets/TableEmbed.js.map +0 -1
  935. package/dist/bigconsole/components/embed/widgets/TextEmbed.d.ts.map +0 -1
  936. package/dist/bigconsole/components/embed/widgets/TextEmbed.js.map +0 -1
  937. package/dist/bigconsole/components/embed/widgets/TimelineEmbed.d.ts.map +0 -1
  938. package/dist/bigconsole/components/embed/widgets/TimelineEmbed.js.map +0 -1
  939. package/dist/bigconsole/components/embed/widgets/shared.d.ts.map +0 -1
  940. package/dist/bigconsole/components/embed/widgets/shared.js.map +0 -1
  941. package/dist/bigconsole/components/overview/DashboardGuide.d.ts.map +0 -1
  942. package/dist/bigconsole/components/overview/DashboardGuide.js.map +0 -1
  943. package/dist/bigconsole/components/overview/DataHealthCard.d.ts.map +0 -1
  944. package/dist/bigconsole/components/overview/DataHealthCard.js.map +0 -1
  945. package/dist/bigconsole/components/overview/OverviewQuickActions.d.ts.map +0 -1
  946. package/dist/bigconsole/components/overview/OverviewQuickActions.js.map +0 -1
  947. package/dist/bigconsole/components/overview/OverviewStatCard.d.ts.map +0 -1
  948. package/dist/bigconsole/components/overview/OverviewStatCard.js.map +0 -1
  949. package/dist/bigconsole/components/overview/RecentDashboardsPanel.d.ts.map +0 -1
  950. package/dist/bigconsole/components/overview/RecentDashboardsPanel.js.map +0 -1
  951. package/dist/bigconsole/components/overview/dashboardGuideSteps.d.ts.map +0 -1
  952. package/dist/bigconsole/components/overview/dashboardGuideSteps.js.map +0 -1
  953. package/dist/bigconsole/components/overview/index.d.ts.map +0 -1
  954. package/dist/bigconsole/components/overview/overviewModel.d.ts.map +0 -1
  955. package/dist/bigconsole/components/overview/overviewModel.js.map +0 -1
  956. package/dist/bigconsole/components/overview/useOverviewData.d.ts.map +0 -1
  957. package/dist/bigconsole/components/overview/useOverviewData.js.map +0 -1
  958. package/dist/bigconsole/components/parser/DataSinkSelector.d.ts.map +0 -1
  959. package/dist/bigconsole/components/parser/DataSinkSelector.js.map +0 -1
  960. package/dist/bigconsole/components/parser/ExportParserDialog.d.ts.map +0 -1
  961. package/dist/bigconsole/components/parser/ExportParserDialog.js.map +0 -1
  962. package/dist/bigconsole/components/parser/ExpressionEditor.d.ts.map +0 -1
  963. package/dist/bigconsole/components/parser/ExpressionEditor.js.map +0 -1
  964. package/dist/bigconsole/components/parser/ImportParserDialog.d.ts.map +0 -1
  965. package/dist/bigconsole/components/parser/ImportParserDialog.js.map +0 -1
  966. package/dist/bigconsole/components/parser/ParserBuilder.d.ts.map +0 -1
  967. package/dist/bigconsole/components/parser/ParserCard.d.ts.map +0 -1
  968. package/dist/bigconsole/components/parser/ParserCard.js.map +0 -1
  969. package/dist/bigconsole/components/parser/ParserFormDialog.d.ts.map +0 -1
  970. package/dist/bigconsole/components/parser/ParserSelector.d.ts.map +0 -1
  971. package/dist/bigconsole/components/parser/ParserSelector.js.map +0 -1
  972. package/dist/bigconsole/components/parser/ParserStatusBadge.d.ts.map +0 -1
  973. package/dist/bigconsole/components/parser/ParserStatusBadge.js.map +0 -1
  974. package/dist/bigconsole/components/parser/ParserTypeBadge.d.ts.map +0 -1
  975. package/dist/bigconsole/components/parser/ParserTypeBadge.js.map +0 -1
  976. package/dist/bigconsole/components/parser/TestPanel.d.ts.map +0 -1
  977. package/dist/bigconsole/components/parser/index.d.ts.map +0 -1
  978. package/dist/bigconsole/components/parser/parserFieldStyles.d.ts.map +0 -1
  979. package/dist/bigconsole/components/pipeline/PipelineCard.d.ts.map +0 -1
  980. package/dist/bigconsole/components/pipeline/PipelineCard.js.map +0 -1
  981. package/dist/bigconsole/components/pipeline/PipelineDeleteDialog.d.ts.map +0 -1
  982. package/dist/bigconsole/components/pipeline/PipelineDeleteDialog.js.map +0 -1
  983. package/dist/bigconsole/components/pipeline/PipelineScopePicker.d.ts.map +0 -1
  984. package/dist/bigconsole/components/pipeline/PipelineScopePicker.js.map +0 -1
  985. package/dist/bigconsole/components/pipeline/PipelineStatusBadge.d.ts.map +0 -1
  986. package/dist/bigconsole/components/pipeline/PipelineStatusBadge.js.map +0 -1
  987. package/dist/bigconsole/components/pipeline/index.d.ts.map +0 -1
  988. package/dist/bigconsole/components/preview/AiPreviewContent.d.ts.map +0 -1
  989. package/dist/bigconsole/components/preview/AiPreviewContent.js.map +0 -1
  990. package/dist/bigconsole/components/preview/AiPreviewMiniPanel.d.ts.map +0 -1
  991. package/dist/bigconsole/components/preview/AiPreviewMiniPanel.js.map +0 -1
  992. package/dist/bigconsole/components/preview/AiPreviewPanel.d.ts.map +0 -1
  993. package/dist/bigconsole/components/preview/AiPreviewPanel.js.map +0 -1
  994. package/dist/bigconsole/components/preview/parserPreview.d.ts.map +0 -1
  995. package/dist/bigconsole/components/preview/parserPreview.js.map +0 -1
  996. package/dist/bigconsole/components/preview/previewShared.d.ts.map +0 -1
  997. package/dist/bigconsole/components/preview/previewShared.js.map +0 -1
  998. package/dist/bigconsole/components/widgets/ActionConfigDialog.d.ts.map +0 -1
  999. package/dist/bigconsole/components/widgets/ActionConfigDialog.js.map +0 -1
  1000. package/dist/bigconsole/components/widgets/DrilldownConfigPanel.d.ts.map +0 -1
  1001. package/dist/bigconsole/components/widgets/DrilldownConfigPanel.js.map +0 -1
  1002. package/dist/bigconsole/components/widgets/PropertiesPanel.d.ts.map +0 -1
  1003. package/dist/bigconsole/components/widgets/PropertiesPanel.js.map +0 -1
  1004. package/dist/bigconsole/components/widgets/WidgetErrorBoundary.d.ts.map +0 -1
  1005. package/dist/bigconsole/components/widgets/WidgetErrorBoundary.js.map +0 -1
  1006. package/dist/bigconsole/components/widgets/WidgetHeader.d.ts.map +0 -1
  1007. package/dist/bigconsole/components/widgets/WidgetHeader.js.map +0 -1
  1008. package/dist/bigconsole/components/widgets/WidgetMenu.d.ts.map +0 -1
  1009. package/dist/bigconsole/components/widgets/WidgetMenu.js.map +0 -1
  1010. package/dist/bigconsole/components/widgets/WidgetRegistry.d.ts.map +0 -1
  1011. package/dist/bigconsole/components/widgets/WidgetRegistry.js.map +0 -1
  1012. package/dist/bigconsole/components/widgets/WidgetTypeSelector.d.ts.map +0 -1
  1013. package/dist/bigconsole/components/widgets/WidgetWrapper.d.ts.map +0 -1
  1014. package/dist/bigconsole/components/widgets/WidgetWrapper.js.map +0 -1
  1015. package/dist/bigconsole/components/widgets/actionConfig.d.ts.map +0 -1
  1016. package/dist/bigconsole/components/widgets/actionConfig.js.map +0 -1
  1017. package/dist/bigconsole/components/widgets/adaptive-card/AdaptiveCardWidget.d.ts.map +0 -1
  1018. package/dist/bigconsole/components/widgets/adaptive-card/AdaptiveCardWidget.js.map +0 -1
  1019. package/dist/bigconsole/components/widgets/adaptive-card/index.d.ts.map +0 -1
  1020. package/dist/bigconsole/components/widgets/calendar/CalendarView.d.ts.map +0 -1
  1021. package/dist/bigconsole/components/widgets/calendar/CalendarView.js.map +0 -1
  1022. package/dist/bigconsole/components/widgets/calendar/CalendarWidget.d.ts.map +0 -1
  1023. package/dist/bigconsole/components/widgets/calendar/CalendarWidget.js.map +0 -1
  1024. package/dist/bigconsole/components/widgets/calendar/index.d.ts.map +0 -1
  1025. package/dist/bigconsole/components/widgets/chart/ChartConfig.d.ts.map +0 -1
  1026. package/dist/bigconsole/components/widgets/chart/ChartConfig.js.map +0 -1
  1027. package/dist/bigconsole/components/widgets/chart/ChartLegend.d.ts.map +0 -1
  1028. package/dist/bigconsole/components/widgets/chart/ChartLegend.js.map +0 -1
  1029. package/dist/bigconsole/components/widgets/chart/ChartTooltip.d.ts.map +0 -1
  1030. package/dist/bigconsole/components/widgets/chart/ChartTooltip.js.map +0 -1
  1031. package/dist/bigconsole/components/widgets/chart/ChartWidget.d.ts.map +0 -1
  1032. package/dist/bigconsole/components/widgets/chart/ChartWidget.js.map +0 -1
  1033. package/dist/bigconsole/components/widgets/chart/charts/AreaChart.d.ts.map +0 -1
  1034. package/dist/bigconsole/components/widgets/chart/charts/AreaChart.js.map +0 -1
  1035. package/dist/bigconsole/components/widgets/chart/charts/BarChart.d.ts.map +0 -1
  1036. package/dist/bigconsole/components/widgets/chart/charts/BarChart.js.map +0 -1
  1037. package/dist/bigconsole/components/widgets/chart/charts/ComboChart.d.ts.map +0 -1
  1038. package/dist/bigconsole/components/widgets/chart/charts/ComboChart.js.map +0 -1
  1039. package/dist/bigconsole/components/widgets/chart/charts/FunnelChart.d.ts.map +0 -1
  1040. package/dist/bigconsole/components/widgets/chart/charts/FunnelChart.js.map +0 -1
  1041. package/dist/bigconsole/components/widgets/chart/charts/LineChart.d.ts.map +0 -1
  1042. package/dist/bigconsole/components/widgets/chart/charts/LineChart.js.map +0 -1
  1043. package/dist/bigconsole/components/widgets/chart/charts/PieChart.d.ts.map +0 -1
  1044. package/dist/bigconsole/components/widgets/chart/charts/PieChart.js.map +0 -1
  1045. package/dist/bigconsole/components/widgets/chart/charts/ScatterChart.d.ts.map +0 -1
  1046. package/dist/bigconsole/components/widgets/chart/charts/ScatterChart.js.map +0 -1
  1047. package/dist/bigconsole/components/widgets/chart/charts/WaterfallChart.d.ts.map +0 -1
  1048. package/dist/bigconsole/components/widgets/chart/charts/WaterfallChart.js.map +0 -1
  1049. package/dist/bigconsole/components/widgets/chart/charts/index.d.ts.map +0 -1
  1050. package/dist/bigconsole/components/widgets/chart/charts/referenceElements.d.ts.map +0 -1
  1051. package/dist/bigconsole/components/widgets/chart/charts/referenceElements.js.map +0 -1
  1052. package/dist/bigconsole/components/widgets/chart/charts/types.d.ts.map +0 -1
  1053. package/dist/bigconsole/components/widgets/chart/index.d.ts.map +0 -1
  1054. package/dist/bigconsole/components/widgets/comments/WidgetComments.d.ts.map +0 -1
  1055. package/dist/bigconsole/components/widgets/comments/WidgetComments.js.map +0 -1
  1056. package/dist/bigconsole/components/widgets/custom/CustomWidget.d.ts.map +0 -1
  1057. package/dist/bigconsole/components/widgets/custom/CustomWidget.js.map +0 -1
  1058. package/dist/bigconsole/components/widgets/custom/config.d.ts.map +0 -1
  1059. package/dist/bigconsole/components/widgets/custom/config.js.map +0 -1
  1060. package/dist/bigconsole/components/widgets/custom/index.d.ts.map +0 -1
  1061. package/dist/bigconsole/components/widgets/custom/utils.d.ts.map +0 -1
  1062. package/dist/bigconsole/components/widgets/custom/utils.js.map +0 -1
  1063. package/dist/bigconsole/components/widgets/event-logs/EventLogViewer.d.ts.map +0 -1
  1064. package/dist/bigconsole/components/widgets/event-logs/EventLogViewer.js.map +0 -1
  1065. package/dist/bigconsole/components/widgets/event-logs/index.d.ts.map +0 -1
  1066. package/dist/bigconsole/components/widgets/form/FormWidget.d.ts.map +0 -1
  1067. package/dist/bigconsole/components/widgets/form/FormWidget.js.map +0 -1
  1068. package/dist/bigconsole/components/widgets/form/index.d.ts.map +0 -1
  1069. package/dist/bigconsole/components/widgets/funnel/index.d.ts.map +0 -1
  1070. package/dist/bigconsole/components/widgets/funnel/index.js.map +0 -1
  1071. package/dist/bigconsole/components/widgets/gauge/CircularGauge.d.ts.map +0 -1
  1072. package/dist/bigconsole/components/widgets/gauge/CircularGauge.js.map +0 -1
  1073. package/dist/bigconsole/components/widgets/gauge/GaugeConfig.d.ts.map +0 -1
  1074. package/dist/bigconsole/components/widgets/gauge/GaugeConfig.js.map +0 -1
  1075. package/dist/bigconsole/components/widgets/gauge/GaugeWidget.d.ts.map +0 -1
  1076. package/dist/bigconsole/components/widgets/gauge/GaugeWidget.js.map +0 -1
  1077. package/dist/bigconsole/components/widgets/gauge/LinearGauge.d.ts.map +0 -1
  1078. package/dist/bigconsole/components/widgets/gauge/LinearGauge.js.map +0 -1
  1079. package/dist/bigconsole/components/widgets/gauge/index.d.ts.map +0 -1
  1080. package/dist/bigconsole/components/widgets/heatmap/HeatmapConfig.d.ts.map +0 -1
  1081. package/dist/bigconsole/components/widgets/heatmap/HeatmapConfig.js.map +0 -1
  1082. package/dist/bigconsole/components/widgets/heatmap/HeatmapWidget.d.ts.map +0 -1
  1083. package/dist/bigconsole/components/widgets/heatmap/HeatmapWidget.js.map +0 -1
  1084. package/dist/bigconsole/components/widgets/heatmap/index.d.ts.map +0 -1
  1085. package/dist/bigconsole/components/widgets/iframe-widget/IframeWidget.d.ts.map +0 -1
  1086. package/dist/bigconsole/components/widgets/iframe-widget/IframeWidget.js.map +0 -1
  1087. package/dist/bigconsole/components/widgets/iframe-widget/index.d.ts.map +0 -1
  1088. package/dist/bigconsole/components/widgets/index.d.ts.map +0 -1
  1089. package/dist/bigconsole/components/widgets/kanban/KanbanView.d.ts.map +0 -1
  1090. package/dist/bigconsole/components/widgets/kanban/KanbanView.js.map +0 -1
  1091. package/dist/bigconsole/components/widgets/kanban/KanbanWidget.d.ts.map +0 -1
  1092. package/dist/bigconsole/components/widgets/kanban/KanbanWidget.js.map +0 -1
  1093. package/dist/bigconsole/components/widgets/kanban/index.d.ts.map +0 -1
  1094. package/dist/bigconsole/components/widgets/kanban/model.d.ts.map +0 -1
  1095. package/dist/bigconsole/components/widgets/kanban/model.js.map +0 -1
  1096. package/dist/bigconsole/components/widgets/kpi/KPIWidget.d.ts.map +0 -1
  1097. package/dist/bigconsole/components/widgets/kpi/KPIWidget.js.map +0 -1
  1098. package/dist/bigconsole/components/widgets/kpi/index.d.ts.map +0 -1
  1099. package/dist/bigconsole/components/widgets/kpi-comparison/KPIComparisonWidget.d.ts.map +0 -1
  1100. package/dist/bigconsole/components/widgets/kpi-comparison/KPIComparisonWidget.js.map +0 -1
  1101. package/dist/bigconsole/components/widgets/kpi-comparison/index.d.ts.map +0 -1
  1102. package/dist/bigconsole/components/widgets/list/ListConfig.d.ts.map +0 -1
  1103. package/dist/bigconsole/components/widgets/list/ListConfig.js.map +0 -1
  1104. package/dist/bigconsole/components/widgets/list/ListItem.d.ts.map +0 -1
  1105. package/dist/bigconsole/components/widgets/list/ListItem.js.map +0 -1
  1106. package/dist/bigconsole/components/widgets/list/ListWidget.d.ts.map +0 -1
  1107. package/dist/bigconsole/components/widgets/list/ListWidget.js.map +0 -1
  1108. package/dist/bigconsole/components/widgets/list/index.d.ts.map +0 -1
  1109. package/dist/bigconsole/components/widgets/map-widget/MapWidget.d.ts.map +0 -1
  1110. package/dist/bigconsole/components/widgets/map-widget/MapWidget.js.map +0 -1
  1111. package/dist/bigconsole/components/widgets/map-widget/index.d.ts.map +0 -1
  1112. package/dist/bigconsole/components/widgets/metric-card/ComparisonBadge.d.ts.map +0 -1
  1113. package/dist/bigconsole/components/widgets/metric-card/ComparisonBadge.js.map +0 -1
  1114. package/dist/bigconsole/components/widgets/metric-card/MetricCardConfig.d.ts.map +0 -1
  1115. package/dist/bigconsole/components/widgets/metric-card/MetricCardConfig.js.map +0 -1
  1116. package/dist/bigconsole/components/widgets/metric-card/MetricCardWidget.d.ts.map +0 -1
  1117. package/dist/bigconsole/components/widgets/metric-card/MetricCardWidget.js.map +0 -1
  1118. package/dist/bigconsole/components/widgets/metric-card/SparklineChart.d.ts.map +0 -1
  1119. package/dist/bigconsole/components/widgets/metric-card/SparklineChart.js.map +0 -1
  1120. package/dist/bigconsole/components/widgets/metric-card/TrendIndicator.d.ts.map +0 -1
  1121. package/dist/bigconsole/components/widgets/metric-card/TrendIndicator.js.map +0 -1
  1122. package/dist/bigconsole/components/widgets/metric-card/index.d.ts.map +0 -1
  1123. package/dist/bigconsole/components/widgets/pivot-table/PivotTableWidget.d.ts.map +0 -1
  1124. package/dist/bigconsole/components/widgets/pivot-table/PivotTableWidget.js.map +0 -1
  1125. package/dist/bigconsole/components/widgets/pivot-table/index.d.ts.map +0 -1
  1126. package/dist/bigconsole/components/widgets/progress/ProgressBar.d.ts.map +0 -1
  1127. package/dist/bigconsole/components/widgets/progress/ProgressBar.js.map +0 -1
  1128. package/dist/bigconsole/components/widgets/progress/ProgressConfig.d.ts.map +0 -1
  1129. package/dist/bigconsole/components/widgets/progress/ProgressConfig.js.map +0 -1
  1130. package/dist/bigconsole/components/widgets/progress/ProgressWidget.d.ts.map +0 -1
  1131. package/dist/bigconsole/components/widgets/progress/ProgressWidget.js.map +0 -1
  1132. package/dist/bigconsole/components/widgets/progress/index.d.ts.map +0 -1
  1133. package/dist/bigconsole/components/widgets/retention/RetentionWidget.d.ts.map +0 -1
  1134. package/dist/bigconsole/components/widgets/retention/RetentionWidget.js.map +0 -1
  1135. package/dist/bigconsole/components/widgets/retention/index.d.ts.map +0 -1
  1136. package/dist/bigconsole/components/widgets/states/EmptyState.d.ts.map +0 -1
  1137. package/dist/bigconsole/components/widgets/states/EmptyState.js.map +0 -1
  1138. package/dist/bigconsole/components/widgets/states/ErrorState.d.ts.map +0 -1
  1139. package/dist/bigconsole/components/widgets/states/ErrorState.js.map +0 -1
  1140. package/dist/bigconsole/components/widgets/states/LoadingState.d.ts.map +0 -1
  1141. package/dist/bigconsole/components/widgets/states/LoadingState.js.map +0 -1
  1142. package/dist/bigconsole/components/widgets/states/index.d.ts.map +0 -1
  1143. package/dist/bigconsole/components/widgets/table/TableCell.d.ts.map +0 -1
  1144. package/dist/bigconsole/components/widgets/table/TableCell.js.map +0 -1
  1145. package/dist/bigconsole/components/widgets/table/TableConfig.d.ts.map +0 -1
  1146. package/dist/bigconsole/components/widgets/table/TableConfig.js.map +0 -1
  1147. package/dist/bigconsole/components/widgets/table/TableHeader.d.ts.map +0 -1
  1148. package/dist/bigconsole/components/widgets/table/TableHeader.js.map +0 -1
  1149. package/dist/bigconsole/components/widgets/table/TablePagination.d.ts.map +0 -1
  1150. package/dist/bigconsole/components/widgets/table/TablePagination.js.map +0 -1
  1151. package/dist/bigconsole/components/widgets/table/TableWidget.d.ts.map +0 -1
  1152. package/dist/bigconsole/components/widgets/table/TableWidget.js.map +0 -1
  1153. package/dist/bigconsole/components/widgets/table/cellLink.d.ts.map +0 -1
  1154. package/dist/bigconsole/components/widgets/table/cellLink.js.map +0 -1
  1155. package/dist/bigconsole/components/widgets/table/index.d.ts.map +0 -1
  1156. package/dist/bigconsole/components/widgets/text-widget/TextWidget.d.ts.map +0 -1
  1157. package/dist/bigconsole/components/widgets/text-widget/TextWidget.js.map +0 -1
  1158. package/dist/bigconsole/components/widgets/text-widget/index.d.ts.map +0 -1
  1159. package/dist/bigconsole/components/widgets/text-widget/textData.d.ts.map +0 -1
  1160. package/dist/bigconsole/components/widgets/text-widget/textData.js.map +0 -1
  1161. package/dist/bigconsole/components/widgets/timeline/TimelineWidget.d.ts.map +0 -1
  1162. package/dist/bigconsole/components/widgets/timeline/TimelineWidget.js.map +0 -1
  1163. package/dist/bigconsole/components/widgets/timeline/index.d.ts.map +0 -1
  1164. package/dist/bigconsole/components/widgets/utils/conditionalFormat.d.ts.map +0 -1
  1165. package/dist/bigconsole/components/widgets/utils/conditionalFormat.js.map +0 -1
  1166. package/dist/bigconsole/components/widgets/utils/inferFields.d.ts.map +0 -1
  1167. package/dist/bigconsole/components/widgets/utils/inferFields.js.map +0 -1
  1168. package/dist/bigconsole/components/widgets/utils/targetProgress.d.ts.map +0 -1
  1169. package/dist/bigconsole/components/widgets/utils/targetProgress.js.map +0 -1
  1170. package/dist/bigconsole/components/widgets/utils/translate.d.ts.map +0 -1
  1171. package/dist/bigconsole/components/widgets/utils/translate.js.map +0 -1
  1172. package/dist/bigconsole/components/widgets/webhook-config/WebhookConfigPanel.d.ts.map +0 -1
  1173. package/dist/bigconsole/components/widgets/webhook-config/WebhookConfigPanel.js.map +0 -1
  1174. package/dist/bigconsole/components/widgets/webhook-config/index.d.ts.map +0 -1
  1175. package/dist/bigconsole/components/widgets/widget-actions/WidgetActions.d.ts.map +0 -1
  1176. package/dist/bigconsole/components/widgets/widget-actions/WidgetActions.js.map +0 -1
  1177. package/dist/bigconsole/components/widgets/widget-actions/index.d.ts.map +0 -1
  1178. package/dist/bigconsole/components/workflow/DataSinkMultiSelector.d.ts.map +0 -1
  1179. package/dist/bigconsole/components/workflow/WorkflowCard.d.ts.map +0 -1
  1180. package/dist/bigconsole/components/workflow/WorkflowCard.js.map +0 -1
  1181. package/dist/bigconsole/components/workflow/WorkflowDeleteDialog.d.ts.map +0 -1
  1182. package/dist/bigconsole/components/workflow/WorkflowDeleteDialog.js.map +0 -1
  1183. package/dist/bigconsole/components/workflow/WorkflowDesignPreview.d.ts.map +0 -1
  1184. package/dist/bigconsole/components/workflow/WorkflowDesignPreview.js.map +0 -1
  1185. package/dist/bigconsole/components/workflow/WorkflowOpenGuard.d.ts.map +0 -1
  1186. package/dist/bigconsole/components/workflow/WorkflowOpenGuard.js.map +0 -1
  1187. package/dist/bigconsole/components/workflow/WorkflowSinkLinkForm.d.ts.map +0 -1
  1188. package/dist/bigconsole/components/workflow/WorkflowSinkLinkForm.js.map +0 -1
  1189. package/dist/bigconsole/components/workflow/WorkflowStatusBadge.d.ts.map +0 -1
  1190. package/dist/bigconsole/components/workflow/WorkflowStatusBadge.js.map +0 -1
  1191. package/dist/bigconsole/components/workflow/index.d.ts.map +0 -1
  1192. package/dist/bigconsole/constants/backendErrors.d.ts.map +0 -1
  1193. package/dist/bigconsole/constants.d.ts.map +0 -1
  1194. package/dist/bigconsole/constants.js.map +0 -1
  1195. package/dist/bigconsole/context/BigConsoleContext.d.ts.map +0 -1
  1196. package/dist/bigconsole/context/BigConsoleContext.js.map +0 -1
  1197. package/dist/bigconsole/context/index.d.ts.map +0 -1
  1198. package/dist/bigconsole/contexts/CrossFilterContext.d.ts.map +0 -1
  1199. package/dist/bigconsole/contexts/CrossFilterContext.js.map +0 -1
  1200. package/dist/bigconsole/contexts/NavigationContext.d.ts.map +0 -1
  1201. package/dist/bigconsole/contexts/NavigationContext.js.map +0 -1
  1202. package/dist/bigconsole/contexts/index.d.ts.map +0 -1
  1203. package/dist/bigconsole/customWidget/CustomWidgetBuilderSheet.d.ts.map +0 -1
  1204. package/dist/bigconsole/customWidget/CustomWidgetBuilderSheet.js.map +0 -1
  1205. package/dist/bigconsole/customWidget/CustomWidgetProposalPanel.d.ts.map +0 -1
  1206. package/dist/bigconsole/customWidget/CustomWidgetProposalPanel.js.map +0 -1
  1207. package/dist/bigconsole/customWidget/index.d.ts.map +0 -1
  1208. package/dist/bigconsole/customWidget/proposalContract.d.ts.map +0 -1
  1209. package/dist/bigconsole/customWidget/proposalContract.js.map +0 -1
  1210. package/dist/bigconsole/customWidget/proposalSource.d.ts.map +0 -1
  1211. package/dist/bigconsole/customWidget/proposalSource.js.map +0 -1
  1212. package/dist/bigconsole/graphql/apollo-compat.d.ts.map +0 -1
  1213. package/dist/bigconsole/graphql/storeTemplates.d.ts.map +0 -1
  1214. package/dist/bigconsole/graphql/storeTemplates.js.map +0 -1
  1215. package/dist/bigconsole/hooks/index.d.ts.map +0 -1
  1216. package/dist/bigconsole/hooks/useActivePage.d.ts.map +0 -1
  1217. package/dist/bigconsole/hooks/useActivePage.js.map +0 -1
  1218. package/dist/bigconsole/hooks/useAutoRefresh.d.ts.map +0 -1
  1219. package/dist/bigconsole/hooks/useAutoRefresh.js.map +0 -1
  1220. package/dist/bigconsole/hooks/useBigConsoleAnalytics.d.ts.map +0 -1
  1221. package/dist/bigconsole/hooks/useBigConsoleAnalytics.js.map +0 -1
  1222. package/dist/bigconsole/hooks/useBigConsoleSettings.d.ts.map +0 -1
  1223. package/dist/bigconsole/hooks/useBigConsoleSettings.js.map +0 -1
  1224. package/dist/bigconsole/hooks/useCrossFilter.d.ts.map +0 -1
  1225. package/dist/bigconsole/hooks/useCrossFilter.js.map +0 -1
  1226. package/dist/bigconsole/hooks/useDashboardEmbedPolicy.d.ts.map +0 -1
  1227. package/dist/bigconsole/hooks/useDashboardEmbedPolicy.js.map +0 -1
  1228. package/dist/bigconsole/hooks/useDashboardImageExport.d.ts.map +0 -1
  1229. package/dist/bigconsole/hooks/useDashboardImageExport.js.map +0 -1
  1230. package/dist/bigconsole/hooks/useDashboardOperations.d.ts.map +0 -1
  1231. package/dist/bigconsole/hooks/useDashboardOperations.js.map +0 -1
  1232. package/dist/bigconsole/hooks/useDashboardSharing.d.ts.map +0 -1
  1233. package/dist/bigconsole/hooks/useDashboardSharing.js.map +0 -1
  1234. package/dist/bigconsole/hooks/useDashboardTemplates.d.ts.map +0 -1
  1235. package/dist/bigconsole/hooks/useDashboardViews.d.ts.map +0 -1
  1236. package/dist/bigconsole/hooks/useDashboardViews.js.map +0 -1
  1237. package/dist/bigconsole/hooks/useDataSinkAlerts.d.ts.map +0 -1
  1238. package/dist/bigconsole/hooks/useDataSinkAlerts.js.map +0 -1
  1239. package/dist/bigconsole/hooks/useDataSinkOperations.d.ts.map +0 -1
  1240. package/dist/bigconsole/hooks/useDataSinkOperations.js.map +0 -1
  1241. package/dist/bigconsole/hooks/useDataSinkSubscription.d.ts.map +0 -1
  1242. package/dist/bigconsole/hooks/useDataSinkSubscription.js.map +0 -1
  1243. package/dist/bigconsole/hooks/useDrilldown.d.ts.map +0 -1
  1244. package/dist/bigconsole/hooks/useDrilldown.js.map +0 -1
  1245. package/dist/bigconsole/hooks/useDrilldownOperations.d.ts.map +0 -1
  1246. package/dist/bigconsole/hooks/useDrilldownOperations.js.map +0 -1
  1247. package/dist/bigconsole/hooks/useEventLogs.d.ts.map +0 -1
  1248. package/dist/bigconsole/hooks/useEventLogs.js.map +0 -1
  1249. package/dist/bigconsole/hooks/useEventWebhooks.d.ts.map +0 -1
  1250. package/dist/bigconsole/hooks/useEventWebhooks.js.map +0 -1
  1251. package/dist/bigconsole/hooks/useExportDashboard.d.ts.map +0 -1
  1252. package/dist/bigconsole/hooks/useExportDashboard.js.map +0 -1
  1253. package/dist/bigconsole/hooks/useExportDataSink.d.ts.map +0 -1
  1254. package/dist/bigconsole/hooks/useExportDataSink.js.map +0 -1
  1255. package/dist/bigconsole/hooks/useExportParser.d.ts.map +0 -1
  1256. package/dist/bigconsole/hooks/useExportParser.js.map +0 -1
  1257. package/dist/bigconsole/hooks/useFilterPresets.d.ts.map +0 -1
  1258. package/dist/bigconsole/hooks/useFilterPresets.js.map +0 -1
  1259. package/dist/bigconsole/hooks/useFilterUrlSync.d.ts.map +0 -1
  1260. package/dist/bigconsole/hooks/useFilterUrlSync.js.map +0 -1
  1261. package/dist/bigconsole/hooks/useGlobalFilters.d.ts.map +0 -1
  1262. package/dist/bigconsole/hooks/useGlobalFilters.js.map +0 -1
  1263. package/dist/bigconsole/hooks/useImportDashboard.d.ts.map +0 -1
  1264. package/dist/bigconsole/hooks/useImportDashboard.js.map +0 -1
  1265. package/dist/bigconsole/hooks/useImportDataSink.d.ts.map +0 -1
  1266. package/dist/bigconsole/hooks/useImportDataSink.js.map +0 -1
  1267. package/dist/bigconsole/hooks/useImportParser.d.ts.map +0 -1
  1268. package/dist/bigconsole/hooks/useImportParser.js.map +0 -1
  1269. package/dist/bigconsole/hooks/useInstalledWidgets.d.ts.map +0 -1
  1270. package/dist/bigconsole/hooks/useInstalledWidgets.js.map +0 -1
  1271. package/dist/bigconsole/hooks/useModalFocusTrap.d.ts.map +0 -1
  1272. package/dist/bigconsole/hooks/useModalFocusTrap.js.map +0 -1
  1273. package/dist/bigconsole/hooks/usePageOperations.d.ts.map +0 -1
  1274. package/dist/bigconsole/hooks/usePageOperations.js.map +0 -1
  1275. package/dist/bigconsole/hooks/useParserOperations.d.ts.map +0 -1
  1276. package/dist/bigconsole/hooks/useParserOperations.js.map +0 -1
  1277. package/dist/bigconsole/hooks/usePipelineOperations.d.ts.map +0 -1
  1278. package/dist/bigconsole/hooks/usePipelineOperations.js.map +0 -1
  1279. package/dist/bigconsole/hooks/useShareRecipients.d.ts.map +0 -1
  1280. package/dist/bigconsole/hooks/useShareRecipients.js.map +0 -1
  1281. package/dist/bigconsole/hooks/useStoreDashboardTemplates.d.ts.map +0 -1
  1282. package/dist/bigconsole/hooks/useStoreDashboardTemplates.js.map +0 -1
  1283. package/dist/bigconsole/hooks/useWidgetActions.d.ts.map +0 -1
  1284. package/dist/bigconsole/hooks/useWidgetActions.js.map +0 -1
  1285. package/dist/bigconsole/hooks/useWidgetCatalog.d.ts.map +0 -1
  1286. package/dist/bigconsole/hooks/useWidgetCatalog.js.map +0 -1
  1287. package/dist/bigconsole/hooks/useWidgetComments.d.ts.map +0 -1
  1288. package/dist/bigconsole/hooks/useWidgetComments.js.map +0 -1
  1289. package/dist/bigconsole/hooks/useWidgetConfigPersist.d.ts.map +0 -1
  1290. package/dist/bigconsole/hooks/useWidgetConfigPersist.js.map +0 -1
  1291. package/dist/bigconsole/hooks/useWidgetData.d.ts.map +0 -1
  1292. package/dist/bigconsole/hooks/useWidgetData.js.map +0 -1
  1293. package/dist/bigconsole/hooks/useWidgetEvents.d.ts.map +0 -1
  1294. package/dist/bigconsole/hooks/useWidgetEvents.js.map +0 -1
  1295. package/dist/bigconsole/hooks/useWidgetExport.d.ts.map +0 -1
  1296. package/dist/bigconsole/hooks/useWidgetExport.js.map +0 -1
  1297. package/dist/bigconsole/hooks/useWidgetOperations.d.ts.map +0 -1
  1298. package/dist/bigconsole/hooks/useWidgetOperations.js.map +0 -1
  1299. package/dist/bigconsole/hooks/useWorkflowOperations.d.ts.map +0 -1
  1300. package/dist/bigconsole/hooks/useWorkflowOperations.js.map +0 -1
  1301. package/dist/bigconsole/index.d.ts.map +0 -1
  1302. package/dist/bigconsole/modules/dashboard/index.d.ts.map +0 -1
  1303. package/dist/bigconsole/modules/index.d.ts.map +0 -1
  1304. package/dist/bigconsole/modules/renderer/index.d.ts.map +0 -1
  1305. package/dist/bigconsole/modules/widget/index.d.ts.map +0 -1
  1306. package/dist/bigconsole/pages/AdminPage.d.ts.map +0 -1
  1307. package/dist/bigconsole/pages/AdminPage.js.map +0 -1
  1308. package/dist/bigconsole/pages/DashboardBuilderPage.d.ts.map +0 -1
  1309. package/dist/bigconsole/pages/DashboardBuilderPage.js.map +0 -1
  1310. package/dist/bigconsole/pages/DashboardViewPage.d.ts.map +0 -1
  1311. package/dist/bigconsole/pages/DashboardViewPage.js.map +0 -1
  1312. package/dist/bigconsole/pages/DashboardsPage.d.ts.map +0 -1
  1313. package/dist/bigconsole/pages/DashboardsPage.js.map +0 -1
  1314. package/dist/bigconsole/pages/DataParsersPage.d.ts.map +0 -1
  1315. package/dist/bigconsole/pages/DataParsersPage.js.map +0 -1
  1316. package/dist/bigconsole/pages/DataSinkAlertsPage.d.ts.map +0 -1
  1317. package/dist/bigconsole/pages/DataSinkAlertsPage.js.map +0 -1
  1318. package/dist/bigconsole/pages/DataSinkBuilderPage.d.ts.map +0 -1
  1319. package/dist/bigconsole/pages/DataSinkBuilderPage.js.map +0 -1
  1320. package/dist/bigconsole/pages/DataSinkViewPage.d.ts.map +0 -1
  1321. package/dist/bigconsole/pages/DataSinkViewPage.js.map +0 -1
  1322. package/dist/bigconsole/pages/DataSinksPage.d.ts.map +0 -1
  1323. package/dist/bigconsole/pages/DataSinksPage.js.map +0 -1
  1324. package/dist/bigconsole/pages/DataSourcesPage.d.ts.map +0 -1
  1325. package/dist/bigconsole/pages/DataSourcesPage.js.map +0 -1
  1326. package/dist/bigconsole/pages/InsightsPage.d.ts.map +0 -1
  1327. package/dist/bigconsole/pages/InsightsPage.js.map +0 -1
  1328. package/dist/bigconsole/pages/OverviewPage.d.ts.map +0 -1
  1329. package/dist/bigconsole/pages/OverviewPage.js.map +0 -1
  1330. package/dist/bigconsole/pages/ParserBuilderPage.d.ts.map +0 -1
  1331. package/dist/bigconsole/pages/ParserBuilderPage.js.map +0 -1
  1332. package/dist/bigconsole/pages/ParserViewPage.d.ts.map +0 -1
  1333. package/dist/bigconsole/pages/ParserViewPage.js.map +0 -1
  1334. package/dist/bigconsole/pages/PipelineBuilderPage.d.ts.map +0 -1
  1335. package/dist/bigconsole/pages/PipelineBuilderPage.js.map +0 -1
  1336. package/dist/bigconsole/pages/PipelineViewPage.d.ts.map +0 -1
  1337. package/dist/bigconsole/pages/PipelineViewPage.js.map +0 -1
  1338. package/dist/bigconsole/pages/PipelinesPage.d.ts.map +0 -1
  1339. package/dist/bigconsole/pages/PipelinesPage.js.map +0 -1
  1340. package/dist/bigconsole/pages/SettingsPage.d.ts.map +0 -1
  1341. package/dist/bigconsole/pages/SettingsPage.js.map +0 -1
  1342. package/dist/bigconsole/pages/WidgetDemoPage.d.ts.map +0 -1
  1343. package/dist/bigconsole/pages/WidgetDemoPage.js.map +0 -1
  1344. package/dist/bigconsole/pages/WorkflowViewPage.d.ts.map +0 -1
  1345. package/dist/bigconsole/pages/WorkflowViewPage.js.map +0 -1
  1346. package/dist/bigconsole/pages/WorkflowsPage.d.ts.map +0 -1
  1347. package/dist/bigconsole/pages/WorkflowsPage.js.map +0 -1
  1348. package/dist/bigconsole/pages/index.d.ts.map +0 -1
  1349. package/dist/bigconsole/providers/BigConsoleQuotaProvider.d.ts.map +0 -1
  1350. package/dist/bigconsole/providers/BigConsoleQuotaProvider.js.map +0 -1
  1351. package/dist/bigconsole/renderers/adapters/AdaptiveCardRenderer.d.ts.map +0 -1
  1352. package/dist/bigconsole/renderers/adapters/AdaptiveCardRenderer.js.map +0 -1
  1353. package/dist/bigconsole/renderers/adapters/BigConsoleRenderer.d.ts.map +0 -1
  1354. package/dist/bigconsole/renderers/adapters/BigConsoleRenderer.js.map +0 -1
  1355. package/dist/bigconsole/renderers/adapters/BlockKitRenderer.d.ts.map +0 -1
  1356. package/dist/bigconsole/renderers/adapters/BlockKitRenderer.js.map +0 -1
  1357. package/dist/bigconsole/renderers/adapters/CustomRenderer.d.ts.map +0 -1
  1358. package/dist/bigconsole/renderers/adapters/CustomRenderer.js.map +0 -1
  1359. package/dist/bigconsole/renderers/adapters/index.d.ts.map +0 -1
  1360. package/dist/bigconsole/renderers/factory/WidgetRendererFactory.d.ts.map +0 -1
  1361. package/dist/bigconsole/renderers/factory/WidgetRendererFactory.js.map +0 -1
  1362. package/dist/bigconsole/renderers/index.d.ts.map +0 -1
  1363. package/dist/bigconsole/renderers/registry/RendererRegistry.d.ts.map +0 -1
  1364. package/dist/bigconsole/renderers/registry/RendererRegistry.js.map +0 -1
  1365. package/dist/bigconsole/renderers/types/index.d.ts.map +0 -1
  1366. package/dist/bigconsole/renderers/types/renderer.d.ts.map +0 -1
  1367. package/dist/bigconsole/store/dashboardStore.d.ts.map +0 -1
  1368. package/dist/bigconsole/store/dashboardStore.js.map +0 -1
  1369. package/dist/bigconsole/store/dataSinkStore.d.ts.map +0 -1
  1370. package/dist/bigconsole/store/dataSinkStore.js.map +0 -1
  1371. package/dist/bigconsole/store/drilldownStore.d.ts.map +0 -1
  1372. package/dist/bigconsole/store/drilldownStore.js.map +0 -1
  1373. package/dist/bigconsole/store/index.d.ts.map +0 -1
  1374. package/dist/bigconsole/store/parserStore.d.ts.map +0 -1
  1375. package/dist/bigconsole/store/parserStore.js.map +0 -1
  1376. package/dist/bigconsole/store/pipelineStore.d.ts.map +0 -1
  1377. package/dist/bigconsole/store/pipelineStore.js.map +0 -1
  1378. package/dist/bigconsole/store/widgetStore.d.ts.map +0 -1
  1379. package/dist/bigconsole/store/widgetStore.js.map +0 -1
  1380. package/dist/bigconsole/store/workflowStore.d.ts.map +0 -1
  1381. package/dist/bigconsole/store/workflowStore.js.map +0 -1
  1382. package/dist/bigconsole/types/index.d.ts.map +0 -1
  1383. package/dist/bigconsole/utils/alertRules.d.ts.map +0 -1
  1384. package/dist/bigconsole/utils/alertRules.js.map +0 -1
  1385. package/dist/bigconsole/utils/backendError.d.ts.map +0 -1
  1386. package/dist/bigconsole/utils/createDialogParam.d.ts.map +0 -1
  1387. package/dist/bigconsole/utils/createDialogParam.js.map +0 -1
  1388. package/dist/bigconsole/utils/csv.d.ts.map +0 -1
  1389. package/dist/bigconsole/utils/csv.js.map +0 -1
  1390. package/dist/bigconsole/utils/dashboardTemplateContent.d.ts.map +0 -1
  1391. package/dist/bigconsole/utils/dashboardTemplateContent.js.map +0 -1
  1392. package/dist/bigconsole/utils/drilldownParams.d.ts.map +0 -1
  1393. package/dist/bigconsole/utils/drilldownParams.js.map +0 -1
  1394. package/dist/bigconsole/utils/format.d.ts.map +0 -1
  1395. package/dist/bigconsole/utils/format.js.map +0 -1
  1396. package/dist/bigconsole/utils/index.d.ts.map +0 -1
  1397. package/dist/bigconsole/utils/quota.d.ts.map +0 -1
  1398. package/dist/bigconsole/utils/quota.js.map +0 -1
  1399. package/dist/bigconsole/utils/semanticTokens.d.ts.map +0 -1
  1400. package/dist/bigconsole/utils/semanticTokens.js.map +0 -1
  1401. package/dist/bigconsole/utils/templateInstallInputs.d.ts.map +0 -1
  1402. package/dist/bigconsole/utils/templateInstallInputs.js.map +0 -1
  1403. package/dist/bigconsole/utils/widgetBinding.d.ts.map +0 -1
  1404. package/dist/bigconsole/utils/widgetBinding.js.map +0 -1
  1405. package/dist/bigconsole/utils/widgetPositioning.d.ts.map +0 -1
  1406. package/dist/bigconsole/utils/widgetPositioning.js.map +0 -1
  1407. package/dist/bigconsole/utils/widgetTypeMapping.d.ts.map +0 -1
  1408. package/dist/bigconsole/utils/widgetTypeMapping.js.map +0 -1
  1409. package/dist/bigconsole/workflowOpen.d.ts.map +0 -1
  1410. package/dist/bigconsole/workflowOpen.js.map +0 -1
  1411. package/dist/constants/permissions.d.ts.map +0 -1
  1412. package/dist/constants/permissions.js.map +0 -1
  1413. package/dist/generated/global-operations.d.ts.map +0 -1
  1414. package/dist/generated/global-operations.js.map +0 -1
  1415. package/dist/generated/global-types.d.ts.map +0 -1
  1416. package/dist/generated/wspace-operations.d.ts.map +0 -1
  1417. package/dist/generated/wspace-operations.js.map +0 -1
  1418. package/dist/generated/wspace-types.d.ts.map +0 -1
  1419. package/dist/generated/wspace-types.js.map +0 -1
  1420. package/dist/index.d.ts.map +0 -1
  1421. package/dist/node_modules/@e965/xlsx/xlsx.js.map +0 -1
  1422. package/dist/node_modules/pdfjs-dist/build/pdf.js.map +0 -1
  1423. package/dist/shared/hooks/useTr.d.ts.map +0 -1
  1424. package/dist/shared/hooks/useTr.js.map +0 -1
  1425. package/dist/stories/DashboardGuide.stories.d.ts +0 -15
  1426. package/dist/stories/DashboardGuide.stories.d.ts.map +0 -1
  1427. package/dist/stories/DataSinkStatusBadge.stories.d.ts +0 -12
  1428. package/dist/stories/DataSinkStatusBadge.stories.d.ts.map +0 -1
  1429. package/dist/stories/GaugeWidget.stories.d.ts +0 -58
  1430. package/dist/stories/GaugeWidget.stories.d.ts.map +0 -1
  1431. package/dist/stories/KPIComparisonWidget.stories.d.ts +0 -76
  1432. package/dist/stories/KPIComparisonWidget.stories.d.ts.map +0 -1
  1433. package/dist/stories/LiveCanvasToggle.stories.d.ts +0 -9
  1434. package/dist/stories/LiveCanvasToggle.stories.d.ts.map +0 -1
  1435. package/dist/stories/MetricCardWidget.stories.d.ts +0 -88
  1436. package/dist/stories/MetricCardWidget.stories.d.ts.map +0 -1
  1437. package/dist/stories/ProgressWidget.stories.d.ts +0 -48
  1438. package/dist/stories/ProgressWidget.stories.d.ts.map +0 -1
  1439. package/dist/stories/SetupStateBadge.stories.d.ts +0 -12
  1440. package/dist/stories/SetupStateBadge.stories.d.ts.map +0 -1
  1441. package/dist/translations/en.d.ts.map +0 -1
  1442. package/dist/utils/nativeBridge.d.ts.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"ProgressWidget.js","names":[],"sources":["../../../../../src/bigconsole/components/widgets/progress/ProgressWidget.tsx"],"sourcesContent":["/**\n * ProgressWidget Component\n *\n * Progress bar widget with target, milestones, and color stages.\n */\n\nimport { type FC, memo, useMemo, useCallback } from 'react';\nimport type { Widget, ProgressConfig } from '../../../types';\nimport { ProgressBar, type Milestone } from './ProgressBar';\nimport { firstObjectRow, inferValueField, inferMaxValue, unwrapRows } from '../utils/inferFields';\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface ProgressWidgetProps {\n /** Widget configuration */\n widget: Widget;\n /** Progress data */\n data?: ProgressData;\n /** Click handler for drilldown */\n onClick?: () => void;\n /** Drilldown handler - receives progress data */\n onDrilldown?: (selectedData: Record<string, unknown>) => void;\n}\n\nexport interface ProgressData {\n /** Current value */\n value: number;\n /** Maximum value (for calculating percentage) */\n max?: number;\n /** Target value */\n target?: number;\n /** Label for the progress */\n label?: string;\n /** Description text */\n description?: string;\n}\n\n// ============================================================================\n// Helpers\n// ============================================================================\n\n/**\n * Coerce a `number` or finite numeric string to a number, else null.\n *\n * Parser output is untrusted JSON and routinely serializes metrics as strings,\n * so every numeric field (`value`, `max`, `target`) goes through this rather\n * than relying on implicit coercion or truthiness.\n */\nfunction toNumber(v: unknown): number | null {\n if (typeof v === 'number' && Number.isFinite(v)) return v;\n if (typeof v === 'string') {\n // `Number('')` and `Number(' ')` are 0, not NaN. An absent/blank field\n // must stay null — otherwise a parser emitting `{target: \"\"}` would render\n // a literal \"Target: 0\" with a marker pinned at 0%.\n const trimmed = v.trim();\n if (trimmed === '') return null;\n const n = Number(trimmed);\n if (Number.isFinite(n)) return n;\n }\n return null;\n}\n\n/**\n * Resolve the denominator for percentage maths.\n *\n * Picks the first candidate that is a usable positive number, so a max of `0`\n * (or a non-finite one) can never produce an Infinity/NaN percentage. The\n * previous `data.max || config?.max || 100` chain also treated a legitimate\n * max of 0 and a *string* max inconsistently.\n */\nfunction resolveMax(dataMax: number | undefined, configMax: number | undefined): number {\n for (const candidate of [dataMax, configMax]) {\n if (typeof candidate === 'number' && Number.isFinite(candidate) && candidate > 0) return candidate;\n }\n return 100;\n}\n\ntype ProgressValueFormat = NonNullable<ProgressConfig['format']>;\n\n/**\n * Format a progress number according to the widget's configured format.\n *\n * Shared by value, max AND target so the three figures shown together stay\n * mutually consistent — the target used to be formatted with a bare\n * `Intl.NumberFormat`, rendering e.g. \"$4,823,500 / $5,000,000\" next to a\n * target of \"5,000,000\".\n */\nfunction formatProgressNumber(value: number, format: ProgressValueFormat): string {\n switch (format) {\n case 'currency':\n return new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: 'USD',\n maximumFractionDigits: 0,\n }).format(value);\n case 'compact':\n return new Intl.NumberFormat('en-US', {\n notation: 'compact',\n maximumFractionDigits: 1,\n }).format(value);\n // 'percentage' deliberately shares the plain-number branch so value, max\n // and target remain consistent (matches the pre-existing value/max behaviour).\n case 'percentage':\n case 'number':\n default:\n return new Intl.NumberFormat('en-US').format(value);\n }\n}\n\n/**\n * Optional presentation fields a DataSink row carried.\n *\n * The array/envelope branches below rebuild a fresh object, so without this\n * they silently dropped `target` and `description` — an array payload rendered\n * with no target marker, no target footer and no description while the\n * identical single-object payload rendered all three.\n */\nfunction rowExtras(row: Record<string, unknown>): Pick<ProgressData, 'target' | 'description'> {\n const target = toNumber(row.target);\n return {\n ...(target !== null ? { target } : {}),\n ...(typeof row.description === 'string' ? { description: row.description } : {}),\n };\n}\n\n// ============================================================================\n// Component\n// ============================================================================\n\nexport const ProgressWidget: FC<ProgressWidgetProps> = memo(function ProgressWidget({\n widget,\n data: rawData,\n onClick,\n onDrilldown,\n}) {\n const config = widget.config as unknown as ProgressConfig | undefined;\n\n // BOFF-2246 smart default: if rawData is an array (or envelope) rather than\n // the expected `ProgressData` single object, pull the configured valueField\n // (flat OR dotted, e.g. `metrics.revenue`) or fall back to the first\n // numeric field. Auto-compute a sensible max from the dataset.\n const normalizedData = useMemo((): ProgressData | undefined => {\n if (!rawData) return undefined;\n // Already the expected shape — pass through. Accept both number and\n // numeric-string `value`, since parsers sometimes serialize metrics as\n // strings and the pre-BOFF-2246 code path rendered those via implicit\n // JS coercion in percentage math.\n if (typeof rawData === 'object' && !Array.isArray(rawData) && 'value' in rawData) {\n const source = rawData as unknown as Record<string, unknown>;\n const numericValue = toNumber(source.value);\n if (numericValue !== null) {\n // Coerce `max`/`target` with the same rule as `value`. Parser payloads\n // are untrusted JSON: a string max escapes the numeric guards below\n // (e.g. \"0\" is truthy, so `data.max || …` would select it and yield an\n // Infinity percentage), and a string target breaks the marker maths.\n const numericMax = toNumber(source.max);\n const numericTarget = toNumber(source.target);\n return {\n ...(rawData as ProgressData),\n value: numericValue,\n max: numericMax ?? undefined,\n target: numericTarget ?? undefined,\n };\n }\n }\n const row = firstObjectRow(rawData);\n if (!row) return undefined;\n const configuredField = (config as Record<string, unknown> | undefined)?.valueField as string | undefined;\n\n // Supports dotted paths like `metrics.revenue` so nested valueFields\n // configured in widget config resolve on array/envelope payloads the\n // same way they do on single-object payloads.\n const getNestedValue = (obj: Record<string, unknown>, path: string): unknown =>\n path.split('.').reduce<unknown>((current, key) => {\n return current && typeof current === 'object' ? (current as Record<string, unknown>)[key] : undefined;\n }, obj);\n\n const labelFromRow =\n typeof row.label === 'string' ? row.label : typeof row.name === 'string' ? row.name : undefined;\n\n // Configured field is authoritative — scan every row for it so sparse\n // envelopes like `{data:[{id:1},{revenue:120}]}` with\n // `valueField:\"revenue\"` still resolve. If no row carries it, return\n // undefined rather than substituting an unrelated numeric column from\n // row[0] via inference (that would silently misrepresent user config).\n if (configuredField) {\n const rows = unwrapRows(rawData) ?? [row];\n for (const r of rows) {\n if (r && typeof r === 'object') {\n const resolvedRow = r as Record<string, unknown>;\n const resolved = toNumber(getNestedValue(resolvedRow, configuredField));\n if (resolved !== null) {\n const rowLabel =\n typeof resolvedRow.label === 'string'\n ? resolvedRow.label\n : typeof resolvedRow.name === 'string'\n ? resolvedRow.name\n : labelFromRow;\n return {\n value: resolved,\n // Explicit config wins, then the row's own max (authoritative for\n // that row), then a dataset-derived guess.\n max: config?.max ?? toNumber(resolvedRow.max) ?? inferMaxValue(rawData, configuredField) ?? undefined,\n label: rowLabel,\n ...rowExtras(resolvedRow),\n };\n }\n }\n }\n return undefined;\n }\n\n // Fall back to inference (only when no configured field). `inferValueField`\n // already filters to numeric fields, but we still coerce here for symmetry\n // with the configured branch above.\n const inferred = inferValueField(row);\n if (!inferred) return undefined;\n const inferredValue = toNumber(row[inferred]);\n if (inferredValue === null) return undefined;\n return {\n value: inferredValue,\n max: config?.max ?? toNumber(row.max) ?? inferMaxValue(rawData, inferred) ?? undefined,\n label: labelFromRow,\n ...rowExtras(row),\n };\n }, [rawData, config]);\n\n // Downstream render uses the normalized shape. Name kept as `data` so the\n // rest of the component body (formattedValue, handleClick, header, etc.)\n // stays unchanged.\n const data = normalizedData;\n\n // Calculate percentage\n const percentage = useMemo(() => {\n if (!data) return 0;\n return (data.value / resolveMax(data.max, config?.max)) * 100;\n }, [data, config?.max]);\n\n // Calculate target percentage. `=== undefined` rather than a truthiness\n // check so a legitimate target of 0 still renders its marker.\n const targetPercentage = useMemo(() => {\n if (data?.target === undefined) return undefined;\n return (data.target / resolveMax(data.max, config?.max)) * 100;\n }, [data, config?.max]);\n\n // Build milestones from config\n const milestones: Milestone[] = useMemo(() => {\n if (!config?.milestones?.length) return [];\n return config.milestones.map((m) => ({\n position: m.position ?? m.value ?? 0,\n label: m.label,\n reached: percentage >= (m.position ?? m.value ?? 0),\n }));\n }, [config?.milestones, percentage]);\n\n // Determine color mode\n const colorMode = useMemo(() => {\n if (config?.colorMode === 'dynamic') return 'dynamic';\n if (config?.colorMode === 'success') return 'success';\n if (config?.colorMode === 'warning') return 'warning';\n if (config?.colorMode === 'error') return 'error';\n return 'default';\n }, [config?.colorMode]);\n\n // Format value\n const formattedValue = useMemo(() => {\n if (!data) return '0';\n return formatProgressNumber(data.value, config?.format || 'number');\n }, [data, config?.format]);\n\n const formattedMax = useMemo(() => {\n return formatProgressNumber(resolveMax(data?.max, config?.max), config?.format || 'number');\n }, [data?.max, config?.max, config?.format]);\n\n const formattedTarget = useMemo(() => {\n if (data?.target === undefined) return undefined;\n return formatProgressNumber(data.target, config?.format || 'number');\n }, [data?.target, config?.format]);\n\n const handleClick = useCallback(() => {\n // Support both legacy onClick and new onDrilldown\n if (onDrilldown && data) {\n onDrilldown({\n value: data.value,\n max: data.max,\n target: data.target,\n label: data.label,\n percentage,\n });\n } else if (onClick && widget.drilldowns?.length) {\n onClick();\n }\n }, [onClick, onDrilldown, widget.drilldowns, data, percentage]);\n\n const hasDrilldown = !!widget.drilldown?.enabled;\n const isClickable = Boolean(hasDrilldown || (onClick && widget.drilldowns?.length));\n\n if (!data) {\n // WidgetWrapper's `isUsableData` admits payloads this widget cannot turn\n // into a number (e.g. `{\"value\":\"n/a\"}` or `[{\"name\":\"a\",\"status\":\"ok\"}]`),\n // so its own empty state never shows. Returning bare null left an\n // unexplained blank card; render the same empty state the sibling widgets\n // use instead.\n return (\n <div className=\"flex items-center justify-center h-full text-text-secondary text-sm\">\n <div className=\"text-center\">\n <svg\n className=\"w-12 h-12 mx-auto mb-2 text-text-tertiary\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={1.5}\n d=\"M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z\"\n />\n </svg>\n <p>No progress data</p>\n </div>\n </div>\n );\n }\n\n return (\n <div\n className={`\n flex flex-col h-full p-4\n ${isClickable ? 'cursor-pointer hover:bg-bg-sunken/50 transition-colors' : ''}\n `}\n onClick={handleClick}\n role={isClickable ? 'button' : undefined}\n tabIndex={isClickable ? 0 : undefined}\n onKeyDown={(e) => {\n if (isClickable && (e.key === 'Enter' || e.key === ' ')) {\n e.preventDefault();\n handleClick();\n }\n }}\n >\n {/* Header */}\n <div className=\"flex items-start justify-between mb-4\">\n <div className=\"flex-1\">\n {data.label && <h4 className=\"text-sm font-medium text-text-primary\">{data.label}</h4>}\n {data.description && <p className=\"text-xs text-text-secondary mt-0.5\">{data.description}</p>}\n </div>\n\n {/* Value display */}\n <div className=\"text-right\">\n <span className=\"text-2xl font-bold text-text-primary\">{formattedValue}</span>\n {config?.showMax !== false && (\n <span className=\"text-sm text-text-secondary\">\n {' / '}\n {formattedMax}\n </span>\n )}\n </div>\n </div>\n\n {/* Progress bar */}\n <ProgressBar\n value={percentage}\n target={targetPercentage}\n milestones={milestones}\n height={config?.barHeight || 12}\n color={colorMode}\n showPercentage={config?.showPercentage !== false}\n />\n\n {/* Target info */}\n {data.target !== undefined && (\n <div className=\"mt-3 flex items-center gap-2 text-xs\">\n <svg className=\"w-4 h-4 text-text-secondary\" fill=\"currentColor\" viewBox=\"0 0 24 24\">\n <path d=\"M5 21V3h14l-3 9 3 9H5z\" />\n </svg>\n <span className=\"text-text-secondary\">\n Target: <span className=\"font-medium text-text-primary\">{formattedTarget}</span>\n {percentage >= (targetPercentage || 0) && <span className=\"text-status-success-text ml-1\">Reached!</span>}\n </span>\n </div>\n )}\n\n {/* Drilldown indicator */}\n {isClickable && (\n <div className=\"mt-auto pt-3 flex items-center justify-end\">\n <span className=\"text-xs text-text-secondary flex items-center gap-1\">\n View details\n <svg className=\"w-3 h-3\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M9 5l7 7-7 7\" />\n </svg>\n </span>\n </div>\n )}\n </div>\n );\n});\n\nexport default ProgressWidget;\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/bigconsole/components/widgets/progress/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC/F,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,KAAK,SAAS,EAAE,MAAM,eAAe,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"RetentionWidget.d.ts","sourceRoot":"","sources":["../../../../../src/bigconsole/components/widgets/retention/RetentionWidget.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,EAA8B,MAAM,OAAO,CAAC;AAC5D,OAAO,KAAK,EAAE,MAAM,EAAmB,MAAM,gBAAgB,CAAC;AAM9D,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACnE;AAED,MAAM,WAAW,eAAe;IAC9B,qDAAqD;IACrD,MAAM,EAAE,MAAM,CAAC;IACf,0BAA0B;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,qDAAqD;IACrD,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,oDAAoD;IACpD,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,kBAAkB;IAClB,OAAO,EAAE,eAAe,EAAE,CAAC;CAC5B;AAoBD,eAAO,MAAM,eAAe,EAAE,EAAE,CAAC,oBAAoB,CAqInD,CAAC;AAEH,eAAe,eAAe,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"RetentionWidget.js","names":[],"sources":["../../../../../src/bigconsole/components/widgets/retention/RetentionWidget.tsx"],"sourcesContent":["/**\n * RetentionWidget Component\n *\n * Retention cohort chart showing user retention over time.\n */\n\nimport { type FC, memo, useMemo, useCallback } from 'react';\nimport type { Widget, RetentionConfig } from '../../../types';\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface RetentionWidgetProps {\n widget: Widget;\n data?: RetentionData;\n onClick?: (cohort: string, period: number, value: number) => void;\n}\n\nexport interface RetentionCohort {\n /** Cohort identifier (e.g., \"Week 1\", \"Jan 2024\") */\n cohort: string;\n /** Initial cohort size */\n initialSize: number;\n /** Retention values for each period (percentages) */\n values: number[];\n}\n\nexport interface RetentionData {\n /** Period labels (e.g., [\"Day 0\", \"Day 1\", ...]) */\n periods: string[];\n /** Cohort data */\n cohorts: RetentionCohort[];\n}\n\n// ============================================================================\n// Helpers\n// ============================================================================\n\nfunction getRetentionColor(value: number): string {\n // Green gradient based on retention percentage\n if (value >= 80) return 'bg-status-success-bg/90 text-white';\n if (value >= 60) return 'bg-status-success-bg/70 text-white';\n if (value >= 40) return 'bg-status-success-bg/50 text-text-primary';\n if (value >= 20) return 'bg-status-success-bg/30 text-text-primary';\n if (value > 0) return 'bg-status-success-bg/10 text-text-secondary';\n return 'bg-bg-sunken text-text-secondary';\n}\n\n// ============================================================================\n// Component\n// ============================================================================\n\nexport const RetentionWidget: FC<RetentionWidgetProps> = memo(function RetentionWidget({ widget, data, onClick }) {\n const config = widget.config as unknown as RetentionConfig | undefined;\n\n const handleCellClick = useCallback(\n (cohort: string, periodIndex: number, value: number) => {\n if (onClick && widget.drilldowns?.length) {\n onClick(cohort, periodIndex, value);\n }\n },\n [onClick, widget.drilldowns]\n );\n\n const isClickable = Boolean(onClick && widget.drilldowns?.length);\n\n // Calculate average retention per period\n const averages = useMemo(() => {\n if (!data?.cohorts?.length || !data?.periods?.length) return [];\n\n return data.periods.map((_, periodIndex) => {\n const values = data.cohorts\n .map((c) => c.values?.[periodIndex])\n .filter((v) => v !== undefined && v !== null) as number[];\n if (values.length === 0) return 0;\n return values.reduce((a, b) => a + b, 0) / values.length;\n });\n }, [data]);\n\n // Show retention-specific empty state when cohort data is missing.\n if (!data?.cohorts?.length || !data?.periods?.length) {\n return (\n <div className=\"flex items-center justify-center h-full text-text-secondary text-sm\">\n <div className=\"text-center\">\n <svg className=\"w-12 h-12 mx-auto mb-2 text-text-muted\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={1.5}\n d=\"M9 17V7m0 10a2 2 0 01-2 2H5a2 2 0 01-2-2V7a2 2 0 012-2h2a2 2 0 012 2m0 10a2 2 0 002 2h2a2 2 0 002-2M9 7a2 2 0 012-2h2a2 2 0 012 2m0 10V7m0 10a2 2 0 002 2h2a2 2 0 002-2V7a2 2 0 00-2-2h-2a2 2 0 00-2 2\"\n />\n </svg>\n <p className=\"font-medium text-text-primary\">No retention cohort data</p>\n <p className=\"text-xs text-text-muted mt-1\">\n Connect a data source that returns <span className=\"font-mono\">periods</span> and{' '}\n <span className=\"font-mono\">cohorts</span>.\n </p>\n <p className=\"text-xs text-text-muted mt-2\">\n Expected shape: <span className=\"font-mono\">RetentionData</span>.\n </p>\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"flex flex-col h-full p-4 overflow-auto\">\n <table className=\"w-full border-collapse\">\n <thead>\n <tr>\n <th className=\"p-2 text-xs font-medium text-text-secondary text-left sticky left-0 bg-bg-surface\">\n Cohort\n </th>\n <th className=\"p-2 text-xs font-medium text-text-secondary text-right\">Users</th>\n {data.periods.map((period, i) => (\n <th key={i} className=\"p-2 text-xs font-medium text-text-secondary text-center min-w-[60px]\">\n {period}\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {data.cohorts.map((cohort, _cohortIndex) => (\n <tr key={cohort.cohort}>\n <td className=\"p-2 text-sm font-medium text-text-primary text-left sticky left-0 bg-bg-surface\">\n {cohort.cohort}\n </td>\n <td className=\"p-2 text-sm text-text-secondary text-right\">\n {new Intl.NumberFormat('en-US').format(cohort.initialSize)}\n </td>\n {cohort.values.map((value, periodIndex) => (\n <td\n key={periodIndex}\n className={`p-0 ${isClickable ? 'cursor-pointer' : ''}`}\n onClick={() => handleCellClick(cohort.cohort, periodIndex, value)}\n >\n <div\n className={`\n m-0.5 p-2 rounded text-center\n ${getRetentionColor(value)}\n ${isClickable ? 'hover:ring-2 hover:ring-action-primary-bg' : ''}\n transition-all\n `}\n title={`${cohort.cohort} - ${data.periods[periodIndex]}: ${value.toFixed(1)}%`}\n >\n <span className=\"text-xs font-medium\">{value.toFixed(config?.decimals ?? 0)}%</span>\n </div>\n </td>\n ))}\n </tr>\n ))}\n\n {/* Average row */}\n {config?.showAverages !== false && (\n <tr className=\"border-t-2 border-border-default\">\n <td className=\"p-2 text-sm font-medium text-text-primary sticky left-0 bg-bg-surface\">Average</td>\n <td className=\"p-2 text-sm text-text-secondary text-right\">—</td>\n {averages.map((avg, i) => (\n <td key={i} className=\"p-0\">\n <div className=\"m-0.5 p-2 rounded bg-bg-sunken text-center\">\n <span className=\"text-xs font-semibold text-text-primary\">\n {avg.toFixed(config?.decimals ?? 0)}%\n </span>\n </div>\n </td>\n ))}\n </tr>\n )}\n </tbody>\n </table>\n\n {/* Legend */}\n {config?.showLegend !== false && (\n <div className=\"flex items-center justify-center gap-2 mt-4\">\n <span className=\"text-xs text-text-secondary\">0%</span>\n <div className=\"flex gap-0.5\">\n {[10, 30, 50, 70, 90].map((opacity) => (\n <div key={opacity} className={`w-6 h-4 rounded bg-status-success-bg/${opacity}`} />\n ))}\n </div>\n <span className=\"text-xs text-text-secondary\">100%</span>\n </div>\n )}\n </div>\n );\n});\n\nexport default RetentionWidget;\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/bigconsole/components/widgets/retention/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,eAAe,EACf,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAClB,KAAK,eAAe,GACrB,MAAM,mBAAmB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"EmptyState.d.ts","sourceRoot":"","sources":["../../../../../src/bigconsole/components/widgets/states/EmptyState.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,EAAQ,MAAM,OAAO,CAAC;AACtC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjD,MAAM,WAAW,qBAAqB;IACpC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,iDAAiD;IACjD,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,0CAA0C;IAC1C,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,qBAAqB;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,eAAO,MAAM,gBAAgB,EAAE,EAAE,CAAC,qBAAqB,CAiErD,CAAC;AAyCH,eAAe,gBAAgB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"EmptyState.js","names":[],"sources":["../../../../../src/bigconsole/components/widgets/states/EmptyState.tsx"],"sourcesContent":["/**\n * WidgetEmptyState Component\n *\n * Empty state displayed when widget has no data.\n */\n\nimport { type FC, memo } from 'react';\nimport type { WidgetType } from '../../../types';\n\nexport interface WidgetEmptyStateProps {\n hideEditHint?: boolean;\n /** Widget type for context-specific messaging */\n widgetType?: WidgetType;\n /** Whether a data source is configured */\n hasDataSource?: boolean;\n /** Custom message */\n message?: string;\n /**\n * Slot name when this widget came from a store template and its data source\n * has not been connected yet. Turns the generic empty state into an\n * explicitly unfinished-setup state, so it does not read as a broken widget.\n */\n templateSlot?: string | null;\n}\n\nexport const WidgetEmptyState: FC<WidgetEmptyStateProps> = memo(function WidgetEmptyState({\n widgetType,\n hasDataSource = false,\n message,\n templateSlot,\n hideEditHint = false,\n}) {\n // A template widget awaiting its data source is a designed setup state, not\n // an absence of results — say so explicitly and name the slot to connect.\n const awaitingTemplateBinding = !hasDataSource && !!templateSlot;\n\n // Determine appropriate message\n const displayMessage =\n message ||\n (awaitingTemplateBinding\n ? `Connect the \"${templateSlot}\" data source to finish setting up this widget`\n : !hasDataSource\n ? 'Connect a data source to display data'\n : getEmptyMessageForType(widgetType));\n\n return (\n /*\n One shared recipe across the four widget states (empty / error / loading /\n crash): same icon chip, same copy width, same padding. Copy is capped in\n `ch` rather than a fixed 200px so it never overflows a narrow card\n (BOFF-5636).\n */\n <div\n className=\"\n flex flex-col items-center justify-center\n h-full w-full min-w-0 min-h-[120px]\n text-center\n px-3\n \"\n role=\"status\"\n >\n {/* Empty Icon */}\n <div\n className=\"\n w-12 h-12 mb-3 shrink-0\n flex items-center justify-center\n rounded-full\n bg-bg-sunken\n text-text-secondary\n \"\n >\n <svg aria-hidden=\"true\" className=\"w-6 h-6\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M20 13V6a2 2 0 00-2-2H6a2 2 0 00-2 2v7m16 0v5a2 2 0 01-2 2H6a2 2 0 01-2-2v-5m16 0h-2.586a1 1 0 00-.707.293l-2.414 2.414a1 1 0 01-.707.293h-3.172a1 1 0 01-.707-.293l-2.414-2.414A1 1 0 006.586 13H4\"\n />\n </svg>\n </div>\n\n {/* Message */}\n <p className=\"max-w-[32ch] text-sm font-medium text-text-primary\">{displayMessage}</p>\n\n {/* Data source hint */}\n {!hasDataSource && !hideEditHint && (\n <p className=\"mt-2 max-w-[32ch] text-xs text-text-secondary\">Click Edit to configure this widget</p>\n )}\n </div>\n );\n});\n\n/**\n * Get context-specific empty message for widget type (v1.0 snake_case)\n */\nfunction getEmptyMessageForType(type?: WidgetType): string {\n switch (type) {\n case 'metric_card':\n case 'kpi_card_comparison':\n return 'No metrics available';\n case 'chart':\n case 'funnel_chart':\n return 'No chart data available';\n case 'table':\n case 'pivot_table':\n return 'No rows to display';\n case 'gauge':\n case 'progress':\n return 'No value available';\n case 'list':\n return 'No items to display';\n case 'heatmap':\n return 'No heatmap data available';\n case 'calendar':\n case 'timeline':\n case 'kanban':\n return 'No schedule data available';\n case 'map':\n return 'No location data available';\n case 'form':\n return 'Form not configured';\n case 'text':\n case 'iframe':\n return 'No content configured';\n case 'custom':\n return 'Custom widget not configured';\n default:\n return 'No data available';\n }\n}\n\nexport default WidgetEmptyState;\n"],"mappings":";;;AAyBA,IAAa,IAA8C,EAAK,SAA0B,EACxF,eACA,mBAAgB,IAChB,YACA,iBACA,kBAAe,MACd;CAMD,IAAM,IACJ,MAJ8B,CAAC,KAAmB,IAM9C,gBAAgB,EAAa,kDAC5B,IAEC,EAAuB,EAAW,GADlC;AAGR,QAOE,kBAAC,OAAD;EACE,WAAU;EAMV,MAAK;YAPP;GAUE,kBAAC,OAAD;IACE,WAAU;cAQV,kBAAC,OAAD;KAAK,eAAY;KAAO,WAAU;KAAU,MAAK;KAAO,QAAO;KAAe,SAAQ;eACpF,kBAAC,QAAD;MACE,eAAc;MACd,gBAAe;MACf,aAAa;MACb,GAAE;MACF,CAAA;KACE,CAAA;IACF,CAAA;GAGN,kBAAC,KAAD;IAAG,WAAU;cAAsD;IAAmB,CAAA;GAGrF,CAAC,KAAiB,CAAC,KAClB,kBAAC,KAAD;IAAG,WAAU;cAAgD;IAAuC,CAAA;GAElG;;EAER;AAKF,SAAS,EAAuB,GAA2B;AACzD,SAAQ,GAAR;EACE,KAAK;EACL,KAAK,sBACH,QAAO;EACT,KAAK;EACL,KAAK,eACH,QAAO;EACT,KAAK;EACL,KAAK,cACH,QAAO;EACT,KAAK;EACL,KAAK,WACH,QAAO;EACT,KAAK,OACH,QAAO;EACT,KAAK,UACH,QAAO;EACT,KAAK;EACL,KAAK;EACL,KAAK,SACH,QAAO;EACT,KAAK,MACH,QAAO;EACT,KAAK,OACH,QAAO;EACT,KAAK;EACL,KAAK,SACH,QAAO;EACT,KAAK,SACH,QAAO;EACT,QACE,QAAO"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ErrorState.d.ts","sourceRoot":"","sources":["../../../../../src/bigconsole/components/widgets/states/ErrorState.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,EAAQ,MAAM,OAAO,CAAC;AAEtC,MAAM,WAAW,qBAAqB;IACpC,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,gCAAgC;IAChC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,eAAO,MAAM,gBAAgB,EAAE,EAAE,CAAC,qBAAqB,CAoErD,CAAC;AAEH,eAAe,gBAAgB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ErrorState.js","names":[],"sources":["../../../../../src/bigconsole/components/widgets/states/ErrorState.tsx"],"sourcesContent":["/**\n * WidgetErrorState Component\n *\n * Error state displayed when widget data fetch fails.\n */\n\nimport { type FC, memo } from 'react';\n\nexport interface WidgetErrorStateProps {\n /** Error message */\n error: string;\n /** Callback to retry loading */\n onRetry?: () => void;\n}\n\nexport const WidgetErrorState: FC<WidgetErrorStateProps> = memo(function WidgetErrorState({ error, onRetry }) {\n return (\n /* Shares the empty-state recipe: same chip, same copy width, same padding. */\n <div\n className=\"\n flex flex-col items-center justify-center\n h-full w-full min-w-0 min-h-[120px]\n text-center\n px-3\n \"\n role=\"alert\"\n >\n {/* Error Icon */}\n <div\n className=\"\n w-12 h-12 mb-3 shrink-0\n flex items-center justify-center\n rounded-full\n bg-status-error-bg-subtle\n text-[var(--color-status-error-text)]\n \"\n >\n <svg aria-hidden=\"true\" className=\"w-6 h-6\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z\"\n />\n </svg>\n </div>\n\n {/* Error Message */}\n <p className=\"mb-1 text-sm font-semibold text-[var(--color-status-error-text)]\">Failed to load data</p>\n <p className=\"mb-4 max-w-[32ch] break-words text-xs text-text-secondary\" title={error}>\n {error.length > 100 ? `${error.substring(0, 100)}...` : error}\n </p>\n\n {/* Retry Button */}\n {onRetry && (\n <button\n type=\"button\"\n onClick={onRetry}\n className=\"\n inline-flex items-center gap-1.5\n min-h-control-md px-3\n text-sm font-medium\n text-action-primary-text\n bg-action-primary-bg\n hover:bg-action-primary-bgHover\n rounded-button\n motion-safe:transition-colors\n focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-bg-surface\n \"\n >\n <svg aria-hidden=\"true\" className=\"w-4 h-4\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15\"\n />\n </svg>\n Retry\n </button>\n )}\n </div>\n );\n});\n\nexport default WidgetErrorState;\n"],"mappings":";;;AAeA,IAAa,IAA8C,EAAK,SAA0B,EAAE,UAAO,cAAW;AAC5G,QAEE,kBAAC,OAAD;EACE,WAAU;EAMV,MAAK;YAPP;GAUE,kBAAC,OAAD;IACE,WAAU;cAQV,kBAAC,OAAD;KAAK,eAAY;KAAO,WAAU;KAAU,MAAK;KAAO,QAAO;KAAe,SAAQ;eACpF,kBAAC,QAAD;MACE,eAAc;MACd,gBAAe;MACf,aAAa;MACb,GAAE;MACF,CAAA;KACE,CAAA;IACF,CAAA;GAGN,kBAAC,KAAD;IAAG,WAAU;cAAmE;IAAuB,CAAA;GACvG,kBAAC,KAAD;IAAG,WAAU;IAA4D,OAAO;cAC7E,EAAM,SAAS,MAAM,GAAG,EAAM,UAAU,GAAG,IAAI,CAAC,OAAO;IACtD,CAAA;GAGH,KACC,kBAAC,UAAD;IACE,MAAK;IACL,SAAS;IACT,WAAU;cAHZ,CAeE,kBAAC,OAAD;KAAK,eAAY;KAAO,WAAU;KAAU,MAAK;KAAO,QAAO;KAAe,SAAQ;eACpF,kBAAC,QAAD;MACE,eAAc;MACd,gBAAe;MACf,aAAa;MACb,GAAE;MACF,CAAA;KACE,CAAA,EAAA,QAEC;;GAEP;;EAER"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"LoadingState.d.ts","sourceRoot":"","sources":["../../../../../src/bigconsole/components/widgets/states/LoadingState.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,EAAQ,MAAM,OAAO,CAAC;AAEtC,MAAM,WAAW,uBAAuB;IACtC,kCAAkC;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,kBAAkB,EAAE,EAAE,CAAC,uBAAuB,CAsCzD,CAAC;AAEH,eAAe,kBAAkB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"LoadingState.js","names":[],"sources":["../../../../../src/bigconsole/components/widgets/states/LoadingState.tsx"],"sourcesContent":["/**\n * WidgetLoadingState Component\n *\n * Loading state displayed while widget data is being fetched.\n */\n\nimport { type FC, memo } from 'react';\n\nexport interface WidgetLoadingStateProps {\n /** Optional message to display */\n message?: string;\n}\n\nexport const WidgetLoadingState: FC<WidgetLoadingStateProps> = memo(function WidgetLoadingState({\n message = 'Loading...',\n}) {\n return (\n /* Shares the empty/error-state recipe so all four states read as one family. */\n <div\n className=\"\n flex flex-col items-center justify-center\n h-full w-full min-w-0 min-h-[120px]\n px-3 text-center text-text-secondary\n \"\n role=\"status\"\n aria-live=\"polite\"\n >\n {/* Spinner */}\n <div aria-hidden=\"true\" className=\"relative mb-3 h-12 w-12 shrink-0 p-1\">\n <div\n className=\"\n absolute inset-1\n border-4 border-[var(--color-border-subtle)]\n rounded-full\n \"\n />\n <div\n className=\"\n absolute inset-1\n border-4 border-action-primary-bg\n border-t-transparent\n rounded-full\n motion-safe:animate-spin\n \"\n />\n </div>\n\n {/* Message */}\n <p className=\"max-w-[32ch] text-sm\">{message}</p>\n </div>\n );\n});\n\nexport default WidgetLoadingState;\n"],"mappings":";;;AAaA,IAAa,IAAkD,EAAK,SAA4B,EAC9F,aAAU,gBACT;AACD,QAEE,kBAAC,OAAD;EACE,WAAU;EAKV,MAAK;EACL,aAAU;YAPZ,CAUE,kBAAC,OAAD;GAAK,eAAY;GAAO,WAAU;aAAlC,CACE,kBAAC,OAAD,EACE,WAAU,0IAKV,CAAA,EACF,kBAAC,OAAD,EACE,WAAU,2MAOV,CAAA,CACE;MAGN,kBAAC,KAAD;GAAG,WAAU;aAAwB;GAAY,CAAA,CAC7C;;EAER"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/bigconsole/components/widgets/states/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,kBAAkB,EAAE,KAAK,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAClF,OAAO,EAAE,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,MAAM,cAAc,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"TableCell.d.ts","sourceRoot":"","sources":["../../../../../src/bigconsole/components/widgets/table/TableCell.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,EAAwB,MAAM,OAAO,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EACL,KAAK,eAAe,EAKrB,MAAM,4BAA4B,CAAC;AAIpC,gCAAgC;AAChC,MAAM,MAAM,SAAS,GAAG,WAAW,CAAC;AA+BpC,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,GAAG,YAAY,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAEnG,MAAM,WAAW,gBAAgB;IAC/B,kBAAkB;IAClB,IAAI,EAAE,UAAU,CAAC;IACjB,wCAAwC;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0BAA0B;IAC1B,WAAW,CAAC,EAAE,IAAI,CAAC,qBAAqB,CAAC;IACzC,2CAA2C;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,oDAAoD;IACpD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,iBAAiB;IACjB,KAAK,EAAE,OAAO,CAAC;IACf,wBAAwB;IACxB,MAAM,EAAE,gBAAgB,CAAC;IACzB,2BAA2B;IAC3B,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,iEAAiE;IACjE,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAC;IACrC,yEAAyE;IACzE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mFAAmF;IACnF,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,oBAAoB;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAyED,eAAO,MAAM,SAAS,EAAE,EAAE,CAAC,cAAc,CAsGvC,CAAC;AAEH,eAAe,SAAS,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"TableCell.js","names":[],"sources":["../../../../../src/bigconsole/components/widgets/table/TableCell.tsx"],"sourcesContent":["/**\n * TableCell Component\n *\n * Table cell with formatting and rendering options.\n */\n\nimport { type FC, memo, type ReactNode } from 'react';\nimport type { ColumnDefinition } from './TableHeader';\nimport {\n type ConditionalRule,\n resolveConditionalStyle,\n conditionalStyleToClassName,\n intentToCssVar,\n CONDITIONAL_ICON_PATHS,\n} from '../utils/conditionalFormat';\nimport { SparklineChart } from '../metric-card/SparklineChart';\nimport { resolveCellLinkHref } from './cellLink';\n\n/** In-cell mini-chart kinds. */\nexport type CellChart = 'sparkline';\n\n/**\n * Extract finite numeric values from a sparkline cell value (an array of raw\n * numbers or `{value}` objects). Non-finite values (NaN/Infinity) are rejected\n * in both forms. Returns null when the value isn't a usable numeric array — so\n * the caller can decide how to render: a chart (≥2 points), a single value\n * (1 point), or fall through to the default renderer.\n */\nfunction extractSparklineValues(value: unknown): number[] | null {\n if (!Array.isArray(value) || value.length === 0) return null;\n const nums: number[] = [];\n for (const item of value) {\n if (typeof item === 'number' && Number.isFinite(item)) {\n nums.push(item);\n } else if (\n item &&\n typeof item === 'object' &&\n typeof (item as { value?: unknown }).value === 'number' &&\n Number.isFinite((item as { value: number }).value)\n ) {\n nums.push((item as { value: number }).value);\n }\n }\n return nums.length ? nums : null;\n}\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type CellFormat = 'text' | 'number' | 'currency' | 'percentage' | 'date' | 'badge' | 'link';\n\nexport interface CellFormatConfig {\n /** Format type */\n type: CellFormat;\n /** Currency code for currency format */\n currency?: string;\n /** Date format options */\n dateOptions?: Intl.DateTimeFormatOptions;\n /** Badge color mapping (value -> color) */\n badgeColors?: Record<string, string>;\n /** Link URL pattern (use {value} as placeholder) */\n linkPattern?: string;\n}\n\nexport interface TableCellProps {\n /** Cell value */\n value: unknown;\n /** Column definition */\n column: ColumnDefinition;\n /** Format configuration */\n format?: CellFormatConfig;\n /** Row data for link patterns and conditional rule field lookups */\n rowData?: Record<string, unknown>;\n /** Conditional formatting rules to evaluate against this cell */\n conditionalRules?: ConditionalRule[];\n /** Max absolute value in this column, used to scale in-cell data bars */\n dataBarMax?: number;\n /** When set, freeze this cell sticky-left at the given px offset */\n stickyLeft?: number;\n /** Render the cell as an in-cell mini chart (e.g. sparkline) instead of a value */\n cellChart?: CellChart;\n /** Click handler */\n onClick?: () => void;\n}\n\n// ============================================================================\n// Helpers\n// ============================================================================\n\nfunction formatValue(value: unknown, format?: CellFormatConfig): ReactNode {\n if (value === null || value === undefined) {\n return <span className=\"text-text-secondary\">—</span>;\n }\n\n const formatType = format?.type || 'text';\n\n switch (formatType) {\n case 'number':\n return typeof value === 'number' ? new Intl.NumberFormat('en-US').format(value) : String(value);\n\n case 'currency':\n return typeof value === 'number'\n ? new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: format?.currency || 'USD',\n }).format(value)\n : String(value);\n\n case 'percentage':\n return typeof value === 'number' ? `${(value * 100).toFixed(1)}%` : String(value);\n\n case 'date':\n if (value instanceof Date) {\n return new Intl.DateTimeFormat('en-US', format?.dateOptions || { dateStyle: 'medium' }).format(value);\n }\n if (typeof value === 'string' || typeof value === 'number') {\n const date = new Date(value);\n if (!isNaN(date.getTime())) {\n return new Intl.DateTimeFormat('en-US', format?.dateOptions || { dateStyle: 'medium' }).format(date);\n }\n }\n return String(value);\n\n case 'badge': {\n const stringValue = String(value);\n const badgeColor = format?.badgeColors?.[stringValue] || 'bg-bg-sunken text-text-primary';\n return (\n <span\n className={`\n inline-flex items-center\n px-2 py-0.5\n text-xs font-medium\n rounded-full\n ${badgeColor}\n `}\n >\n {stringValue}\n </span>\n );\n }\n\n // `link` renders its visible text like any other value here; the navigable\n // <a> wrapper (which needs rowData to resolve the href) is applied in the\n // component body. A link column with no resolvable URL stays honest plain\n // text rather than fake link-styled text that goes nowhere.\n case 'link':\n case 'text':\n default:\n return String(value);\n }\n}\n\n// ============================================================================\n// Component\n// ============================================================================\n\nexport const TableCell: FC<TableCellProps> = memo(function TableCell({\n value,\n column,\n format,\n rowData,\n conditionalRules,\n dataBarMax,\n stickyLeft,\n cellChart,\n onClick,\n}) {\n const cf = resolveConditionalStyle(value, conditionalRules, rowData);\n const cfClass = conditionalStyleToClassName(cf);\n const isFrozen = stickyLeft != null;\n // In-cell sparkline: only when the column opts in and the value is numeric.\n const sparkValues = cellChart === 'sparkline' ? extractSparklineValues(value) : null;\n // Range for the sparkline's accessible label (reduce, not spread → no call-stack risk).\n const sparkMin = sparkValues ? sparkValues.reduce((a, b) => Math.min(a, b), Infinity) : 0;\n const sparkMax = sparkValues ? sparkValues.reduce((a, b) => Math.max(a, b), -Infinity) : 0;\n\n // In-cell data bar width (0–100%) scaled against the column max.\n const dataBarWidth =\n cf?.dataBar && typeof value === 'number' && dataBarMax && dataBarMax > 0\n ? Math.max(0, Math.min(100, (Math.abs(value) / dataBarMax) * 100))\n : null;\n\n // Navigable href for a `link`-formatted cell (null when nothing safe resolves).\n const linkHref = format?.type === 'link' ? resolveCellLinkHref(format.linkPattern, value, rowData) : null;\n\n return (\n <td\n className={`\n relative px-4 py-3\n text-sm text-text-primary\n border-b border-border-default\n ${column.align === 'center' ? 'text-center' : ''}\n ${column.align === 'right' ? 'text-right' : 'text-left'}\n ${onClick ? 'cursor-pointer hover:text-action-primary-bg' : ''}\n ${isFrozen ? 'sticky z-10 bg-bg-surface' : ''}\n ${cfClass}\n `}\n style={isFrozen ? { left: stickyLeft, width: column.width } : undefined}\n onClick={onClick}\n role={onClick ? 'button' : undefined}\n tabIndex={onClick ? 0 : undefined}\n onKeyDown={(e) => {\n if (onClick && (e.key === 'Enter' || e.key === ' ')) {\n e.preventDefault();\n onClick();\n }\n }}\n >\n {dataBarWidth != null && (\n <span\n aria-hidden=\"true\"\n className=\"absolute inset-y-1 left-1 rounded-sm opacity-20 pointer-events-none\"\n style={{\n width: `calc(${dataBarWidth}% - 0.5rem)`,\n backgroundColor: intentToCssVar(cf?.dataBarColor ?? 'info'),\n }}\n />\n )}\n {sparkValues && sparkValues.length >= 2 ? (\n // ≥2 points → draw the sparkline (SparklineChart needs >1 to avoid a\n // divide-by-zero). Labelled for screen readers since the SVG is decorative.\n <span\n className=\"relative inline-flex items-center\"\n role=\"img\"\n aria-label={`Sparkline, ${sparkValues.length} points, ${sparkMin.toLocaleString()} to ${sparkMax.toLocaleString()}`}\n >\n <SparklineChart data={sparkValues.map((v) => ({ value: v }))} width={96} height={28} color=\"primary\" />\n </span>\n ) : sparkValues && sparkValues.length === 1 ? (\n // A single numeric point can't be charted — render the value itself\n // (not the raw array, which would stringify to \"[object Object]\").\n <span className=\"relative inline-flex items-center\">{formatValue(sparkValues[0], format)}</span>\n ) : (\n <span className=\"relative inline-flex items-center gap-1.5\">\n {cf?.icon && (\n <svg className=\"w-3.5 h-3.5 shrink-0\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d={CONDITIONAL_ICON_PATHS[cf.icon]} />\n </svg>\n )}\n {linkHref ? (\n <a\n href={linkHref}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n title={linkHref}\n className=\"text-action-primary-bg hover:underline\"\n // Don't let the click bubble to the row (cross-filter / drilldown).\n onClick={(e) => e.stopPropagation()}\n >\n {formatValue(value, format)}\n </a>\n ) : (\n formatValue(value, format)\n )}\n </span>\n )}\n </td>\n );\n});\n\nexport default TableCell;\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"TableConfig.d.ts","sourceRoot":"","sources":["../../../../../src/bigconsole/components/widgets/table/TableConfig.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,EAAmD,MAAM,OAAO,CAAC;AAEjF,OAAO,KAAK,EAAE,WAAW,IAAI,UAAU,EAAqB,MAAM,gBAAgB,CAAC;AAOnF,MAAM,WAAW,gBAAgB;IAC/B,4BAA4B;IAC5B,MAAM,EAAE,UAAU,CAAC;IACnB,mCAAmC;IACnC,QAAQ,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;CACxC;AAgCD,eAAO,MAAM,WAAW,EAAE,EAAE,CAAC,gBAAgB,CAkf3C,CAAC;AAEH,eAAe,WAAW,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"TableConfig.js","names":[],"sources":["../../../../../src/bigconsole/components/widgets/table/TableConfig.tsx"],"sourcesContent":["/**\n * TableConfig Component\n *\n * Configuration panel for Table widgets.\n */\n\nimport { type FC, memo, useCallback, useMemo, useEffect, useState } from 'react';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport type { TableConfig as ConfigType, TableColumnConfig } from '../../../types';\nimport type { ConditionalRule, ConditionalOperator, SemanticIntent } from '../utils/conditionalFormat';\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface TableConfigProps {\n /** Current configuration */\n config: ConfigType;\n /** Callback when config changes */\n onChange: (config: ConfigType) => void;\n}\n\n// Operators offered in the conditional-formatting editor. Kept to the common,\n// self-explanatory set; the engine supports more (see conditionalFormat.ts).\nconst CF_OPERATORS: { value: ConditionalOperator; labelKey: string; labelDefault: string }[] = [\n { value: 'gt', labelKey: 'bigconsole.widget.config.table.operator.gt', labelDefault: '> greater than' },\n { value: 'gte', labelKey: 'bigconsole.widget.config.table.operator.gte', labelDefault: '≥ at least' },\n { value: 'lt', labelKey: 'bigconsole.widget.config.table.operator.lt', labelDefault: '< less than' },\n { value: 'lte', labelKey: 'bigconsole.widget.config.table.operator.lte', labelDefault: '≤ at most' },\n { value: 'eq', labelKey: 'bigconsole.widget.config.table.operator.eq', labelDefault: '= equals' },\n { value: 'neq', labelKey: 'bigconsole.widget.config.table.operator.neq', labelDefault: '≠ not equal' },\n { value: 'between', labelKey: 'bigconsole.widget.config.table.operator.between', labelDefault: 'between' },\n { value: 'outside', labelKey: 'bigconsole.widget.config.table.operator.outside', labelDefault: 'outside' },\n { value: 'contains', labelKey: 'bigconsole.widget.config.table.operator.contains', labelDefault: 'contains' },\n];\n\n// Semantic color intents — theme-safe (never raw hex). Resolved to status tokens.\nconst CF_INTENTS: { value: SemanticIntent; labelKey: string; labelDefault: string }[] = [\n { value: 'danger', labelKey: 'bigconsole.widget.config.table.intent.danger', labelDefault: 'Red — danger' },\n { value: 'warning', labelKey: 'bigconsole.widget.config.table.intent.warning', labelDefault: 'Amber — warning' },\n { value: 'success', labelKey: 'bigconsole.widget.config.table.intent.success', labelDefault: 'Green — good' },\n { value: 'info', labelKey: 'bigconsole.widget.config.table.intent.info', labelDefault: 'Blue — info' },\n { value: 'neutral', labelKey: 'bigconsole.widget.config.table.intent.neutral', labelDefault: 'Neutral' },\n];\n\nconst CF_FIELD_CLASS =\n 'px-2 py-1 text-xs text-text-primary bg-bg-surface border border-border-default rounded-md focus:outline-none focus:ring-2 focus:ring-action-primary-bg';\n\n// ============================================================================\n// Component\n// ============================================================================\n\nexport const TableConfig: FC<TableConfigProps> = memo(function TableConfig({ config, onChange }) {\n const { t } = useI18n();\n\n // Normalize columns - convert string[] to TableColumnConfig[]\n const initialColumns = useMemo(() => {\n return ((config.columns || []) as (string | TableColumnConfig)[]).map((col) => {\n if (typeof col === 'string') {\n return {\n field: col,\n header: col.charAt(0).toUpperCase() + col.slice(1).replace(/_/g, ' '),\n };\n }\n return col as TableColumnConfig;\n });\n }, []); // Only run once on mount\n\n // Local state for columns to make them editable\n const [columns, setColumns] = useState<TableColumnConfig[]>(initialColumns);\n\n // Sync with parent when columns change\n useEffect(() => {\n // Only update if columns actually changed (deep compare)\n const currentStr = JSON.stringify(config.columns);\n const newStr = JSON.stringify(columns);\n if (currentStr !== newStr && columns.length > 0) {\n onChange({ ...config, columns });\n }\n }, [columns]);\n\n // Reset columns when config changes from outside\n useEffect(() => {\n const normalized = ((config.columns || []) as (string | TableColumnConfig)[]).map((col) => {\n if (typeof col === 'string') {\n return {\n field: col,\n header: col.charAt(0).toUpperCase() + col.slice(1).replace(/_/g, ' '),\n };\n }\n return col as TableColumnConfig;\n });\n setColumns(normalized);\n }, [config.columns]);\n\n const handleChange = useCallback(\n <K extends keyof ConfigType>(key: K, value: ConfigType[K]) => {\n onChange({ ...config, [key]: value });\n },\n [config, onChange]\n );\n\n const handleColumnChange = useCallback((index: number, field: keyof TableColumnConfig, value: string) => {\n setColumns((prev) => {\n const newColumns = [...prev];\n newColumns[index] = { ...newColumns[index], [field]: value };\n return newColumns;\n });\n }, []);\n\n // Conditional-formatting rule edits for a column. The rules array is stored on\n // `column.conditionalRules` and consumed at render time by TableCell.\n const handleColumnRules = useCallback((index: number, rules: ConditionalRule[]) => {\n setColumns((prev) => {\n const newColumns = [...prev];\n newColumns[index] = { ...newColumns[index], conditionalRules: rules };\n return newColumns;\n });\n }, []);\n\n const addRule = useCallback(\n (index: number) => {\n const existing = columns[index]?.conditionalRules ?? [];\n const next: ConditionalRule = {\n operator: 'gt',\n value: 0,\n style: { bgColor: 'danger', textColor: 'danger', bold: true },\n };\n handleColumnRules(index, [...existing, next]);\n },\n [columns, handleColumnRules]\n );\n\n const updateRule = useCallback(\n (colIndex: number, ruleIndex: number, patch: Partial<ConditionalRule>) => {\n const existing = columns[colIndex]?.conditionalRules ?? [];\n const next = existing.map((r, i) => (i === ruleIndex ? { ...r, ...patch } : r));\n handleColumnRules(colIndex, next);\n },\n [columns, handleColumnRules]\n );\n\n const updateRuleStyle = useCallback(\n (colIndex: number, ruleIndex: number, intent: SemanticIntent) => {\n const existing = columns[colIndex]?.conditionalRules ?? [];\n const next = existing.map((r, i) =>\n i === ruleIndex ? { ...r, style: { ...r.style, bgColor: intent, textColor: intent } } : r\n );\n handleColumnRules(colIndex, next);\n },\n [columns, handleColumnRules]\n );\n\n const removeRule = useCallback(\n (colIndex: number, ruleIndex: number) => {\n const existing = columns[colIndex]?.conditionalRules ?? [];\n handleColumnRules(\n colIndex,\n existing.filter((_, i) => i !== ruleIndex)\n );\n },\n [columns, handleColumnRules]\n );\n\n const addColumn = useCallback(() => {\n setColumns((prev) => [...prev, { field: '', header: '' }]);\n }, []);\n\n const removeColumn = useCallback((index: number) => {\n setColumns((prev) => prev.filter((_, i) => i !== index));\n }, []);\n\n return (\n <div className=\"min-w-0 space-y-form-gap\">\n {/* Page Size */}\n <div>\n <label className=\"block text-sm font-medium text-text-primary mb-1\">\n {t('bigconsole.widget.config.table.pageSize.label', 'Page Size')}\n </label>\n <select\n value={config.pageSize || 10}\n onChange={(e) => handleChange('pageSize', Number(e.target.value))}\n className=\"\n w-full px-3 py-2\n text-sm text-text-primary\n bg-bg-surface\n border border-border-default\n rounded-md\n focus:outline-none focus:ring-2 focus:ring-action-primary-bg\n \"\n >\n <option value={10}>\n {t('bigconsole.widget.config.table.pageSize.rows', '{{count}} rows', { count: 10 })}\n </option>\n <option value={25}>\n {t('bigconsole.widget.config.table.pageSize.rows', '{{count}} rows', { count: 25 })}\n </option>\n <option value={50}>\n {t('bigconsole.widget.config.table.pageSize.rows', '{{count}} rows', { count: 50 })}\n </option>\n <option value={100}>\n {t('bigconsole.widget.config.table.pageSize.rows', '{{count}} rows', { count: 100 })}\n </option>\n </select>\n </div>\n\n {/* Columns Configuration */}\n <div>\n <div className=\"flex items-center justify-between mb-2\">\n <label className=\"text-sm font-medium text-text-primary\">\n {t('bigconsole.widget.config.table.columns.label', 'Columns')}\n </label>\n <button\n type=\"button\"\n onClick={addColumn}\n className=\"\n text-sm text-action-primary-bg\n hover:text-action-primary-bgHover\n \"\n >\n {t('bigconsole.widget.config.table.columns.add', '+ Add Column')}\n </button>\n </div>\n\n <div className=\"space-y-3\">\n {columns.map((col, index) => (\n <div\n key={index}\n className=\"\n p-3\n bg-bg-sunken\n rounded-md\n space-y-2\n \"\n >\n <div className=\"flex items-center justify-between\">\n <span className=\"text-xs text-text-secondary\">\n {t('bigconsole.widget.config.table.columns.columnN', 'Column {{index}}', { index: index + 1 })}\n </span>\n <button\n type=\"button\"\n onClick={() => removeColumn(index)}\n className=\"text-status-error-text hover:text-status-error-text/80\"\n >\n <svg className=\"w-4 h-4\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M6 18L18 6M6 6l12 12\" />\n </svg>\n </button>\n </div>\n\n <div className=\"grid grid-cols-1 gap-2 sm:grid-cols-2\">\n <input\n type=\"text\"\n value={col.field || ''}\n onChange={(e) => handleColumnChange(index, 'field', e.target.value)}\n placeholder={t('bigconsole.widget.config.table.column.fieldPlaceholder', 'Field name')}\n className=\"\n px-2 py-1\n text-sm text-text-primary\n bg-bg-surface\n border border-border-default\n rounded-md\n focus:outline-none focus:ring-2 focus:ring-action-primary-bg\n \"\n />\n <input\n type=\"text\"\n value={col.header || ''}\n onChange={(e) => handleColumnChange(index, 'header', e.target.value)}\n placeholder={t('bigconsole.widget.config.table.column.headerPlaceholder', 'Header label')}\n className=\"\n px-2 py-1\n text-sm text-text-primary\n bg-bg-surface\n border border-border-default\n rounded-md\n focus:outline-none focus:ring-2 focus:ring-action-primary-bg\n \"\n />\n </div>\n\n <div className=\"grid grid-cols-1 gap-2 sm:grid-cols-2\">\n <select\n value={col.format || 'text'}\n onChange={(e) => handleColumnChange(index, 'format', e.target.value)}\n className=\"\n px-2 py-1\n text-sm text-text-primary\n bg-bg-surface\n border border-border-default\n rounded-md\n focus:outline-none focus:ring-2 focus:ring-action-primary-bg\n \"\n >\n <option value=\"text\">{t('bigconsole.widget.config.table.format.text', 'Text')}</option>\n <option value=\"number\">{t('bigconsole.widget.config.table.format.number', 'Number')}</option>\n <option value=\"currency\">{t('bigconsole.widget.config.table.format.currency', 'Currency')}</option>\n <option value=\"percentage\">\n {t('bigconsole.widget.config.table.format.percentage', 'Percentage')}\n </option>\n <option value=\"date\">{t('bigconsole.widget.config.table.format.date', 'Date')}</option>\n <option value=\"badge\">{t('bigconsole.widget.config.table.format.badge', 'Badge')}</option>\n </select>\n <select\n value={col.align || 'left'}\n onChange={(e) => handleColumnChange(index, 'align', e.target.value)}\n className=\"\n px-2 py-1\n text-sm text-text-primary\n bg-bg-surface\n border border-border-default\n rounded-md\n focus:outline-none focus:ring-2 focus:ring-action-primary-bg\n \"\n >\n <option value=\"left\">{t('bigconsole.widget.config.table.align.left', 'Left')}</option>\n <option value=\"center\">{t('bigconsole.widget.config.table.align.center', 'Center')}</option>\n <option value=\"right\">{t('bigconsole.widget.config.table.align.right', 'Right')}</option>\n </select>\n </div>\n\n {/* Conditional formatting rules */}\n <div className=\"pt-2 border-t border-border-default/60\">\n <div className=\"flex items-center justify-between mb-1\">\n <span className=\"text-xs font-medium text-text-secondary\">\n {t('bigconsole.widget.config.table.conditionalFormatting.title', 'Conditional formatting')}\n </span>\n <button\n type=\"button\"\n onClick={() => addRule(index)}\n className=\"text-xs text-action-primary-bg hover:text-action-primary-bgHover\"\n >\n {t('bigconsole.widget.config.table.conditionalFormatting.addRule', '+ Add rule')}\n </button>\n </div>\n\n {(col.conditionalRules?.length ?? 0) === 0 && (\n <p className=\"text-xs text-text-secondary\">\n {t(\n 'bigconsole.widget.config.table.conditionalFormatting.noRules',\n 'No rules — cell shows its plain value.'\n )}\n </p>\n )}\n\n <div className=\"space-y-2\">\n {(col.conditionalRules ?? []).map((rule, ruleIndex) => {\n const needsSecond = rule.operator === 'between' || rule.operator === 'outside';\n const currentIntent: SemanticIntent = rule.style?.bgColor ?? rule.style?.textColor ?? 'danger';\n return (\n <div\n key={ruleIndex}\n className=\"p-2 bg-bg-surface rounded-md border border-border-default space-y-2\"\n >\n <div className=\"flex items-center gap-2\">\n <select\n value={rule.operator}\n onChange={(e) =>\n updateRule(index, ruleIndex, { operator: e.target.value as ConditionalOperator })\n }\n className={`${CF_FIELD_CLASS} flex-1`}\n >\n {CF_OPERATORS.map((op) => (\n <option key={op.value} value={op.value}>\n {t(op.labelKey, op.labelDefault)}\n </option>\n ))}\n </select>\n <input\n type=\"text\"\n value={rule.value ?? ''}\n onChange={(e) => updateRule(index, ruleIndex, { value: e.target.value })}\n placeholder={t('bigconsole.widget.config.table.rule.valuePlaceholder', 'value')}\n className={`${CF_FIELD_CLASS} w-20`}\n />\n {needsSecond && (\n <input\n type=\"text\"\n value={rule.value2 ?? ''}\n onChange={(e) => updateRule(index, ruleIndex, { value2: e.target.value })}\n placeholder={t('bigconsole.widget.config.table.rule.value2Placeholder', 'and')}\n className={`${CF_FIELD_CLASS} w-20`}\n />\n )}\n <button\n type=\"button\"\n onClick={() => removeRule(index, ruleIndex)}\n className=\"text-status-error-text hover:text-status-error-text/80\"\n aria-label={t('bigconsole.widget.config.table.rule.remove', 'Remove rule')}\n >\n <svg className=\"w-3.5 h-3.5\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M6 18L18 6M6 6l12 12\"\n />\n </svg>\n </button>\n </div>\n <div className=\"flex items-center gap-2\">\n <select\n value={currentIntent}\n onChange={(e) => updateRuleStyle(index, ruleIndex, e.target.value as SemanticIntent)}\n className={`${CF_FIELD_CLASS} flex-1`}\n >\n {CF_INTENTS.map((it) => (\n <option key={it.value} value={it.value}>\n {t(it.labelKey, it.labelDefault)}\n </option>\n ))}\n </select>\n <label className=\"flex items-center gap-1 text-xs text-text-primary\">\n <input\n type=\"checkbox\"\n checked={rule.style?.bold === true}\n onChange={(e) =>\n updateRule(index, ruleIndex, { style: { ...rule.style, bold: e.target.checked } })\n }\n className=\"w-3.5 h-3.5 text-action-primary-bg bg-bg-surface border-border-default rounded focus:ring-action-primary-bg\"\n />\n {t('bigconsole.widget.config.table.rule.bold', 'Bold')}\n </label>\n </div>\n </div>\n );\n })}\n </div>\n </div>\n </div>\n ))}\n\n {columns.length === 0 && (\n <p className=\"text-sm text-text-secondary text-center py-4\">\n {t(\n 'bigconsole.widget.config.table.columns.empty',\n 'No columns configured. Columns will be auto-generated from data.'\n )}\n </p>\n )}\n </div>\n </div>\n\n {/* Toggle Options */}\n <div\n role=\"group\"\n aria-label=\"Display options\"\n className=\"space-y-3 border-t border-[var(--color-border-subtle)] pt-form-gap\"\n >\n {/* Toggles are a different KIND of control from the field stack above,\n so they get their own labelled group instead of being visually\n identical to it (BOFF-5636). */}\n <p className=\"text-xs font-bold uppercase tracking-wider text-text-secondary\">Display options</p>\n <label className=\"flex items-center gap-3\">\n <input\n type=\"checkbox\"\n checked={config.showSearch !== false}\n onChange={(e) => handleChange('showSearch', e.target.checked)}\n className=\"\n w-4 h-4\n text-action-primary-bg\n bg-bg-surface\n border-border-default\n rounded\n focus:ring-action-primary-bg\n \"\n />\n <span className=\"text-sm text-text-primary\">\n {t('bigconsole.widget.config.table.showSearch', 'Show search box')}\n </span>\n </label>\n\n <label className=\"flex items-center gap-3\">\n <input\n type=\"checkbox\"\n checked={config.showPagination !== false}\n onChange={(e) => handleChange('showPagination', e.target.checked)}\n className=\"\n w-4 h-4\n text-action-primary-bg\n bg-bg-surface\n border-border-default\n rounded\n focus:ring-action-primary-bg\n \"\n />\n <span className=\"text-sm text-text-primary\">\n {t('bigconsole.widget.config.table.showPagination', 'Show pagination')}\n </span>\n </label>\n\n <label className=\"flex items-center gap-3\">\n <input\n type=\"checkbox\"\n checked={config.showExport !== false}\n onChange={(e) => handleChange('showExport', e.target.checked)}\n className=\"\n w-4 h-4\n text-action-primary-bg\n bg-bg-surface\n border-border-default\n rounded\n focus:ring-action-primary-bg\n \"\n />\n <span className=\"text-sm text-text-primary\">\n {t('bigconsole.widget.config.table.showExport', 'Show export button')}\n </span>\n </label>\n\n <label className=\"flex items-center gap-3\">\n <input\n type=\"checkbox\"\n checked={config.stickyHeader === true}\n onChange={(e) => handleChange('stickyHeader', e.target.checked)}\n className=\"\n w-4 h-4\n text-action-primary-bg\n bg-bg-surface\n border-border-default\n rounded\n focus:ring-action-primary-bg\n \"\n />\n <span className=\"text-sm text-text-primary\">\n {t('bigconsole.widget.config.table.stickyHeader', 'Sticky header')}\n </span>\n </label>\n\n <label className=\"flex items-center gap-3\">\n <input\n type=\"checkbox\"\n checked={config.stripedRows === true}\n onChange={(e) => handleChange('stripedRows', e.target.checked)}\n className=\"\n w-4 h-4\n text-action-primary-bg\n bg-bg-surface\n border-border-default\n rounded\n focus:ring-action-primary-bg\n \"\n />\n <span className=\"text-sm text-text-primary\">\n {t('bigconsole.widget.config.table.stripedRows', 'Striped rows')}\n </span>\n </label>\n </div>\n </div>\n );\n});\n\nexport default TableConfig;\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"TableHeader.d.ts","sourceRoot":"","sources":["../../../../../src/bigconsole/components/widgets/table/TableHeader.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,KAAK,EAAE,EAAkD,MAAM,OAAO,CAAC;AAOhF,MAAM,WAAW,gBAAgB;IAC/B,gCAAgC;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,0BAA0B;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,iCAAiC;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,+BAA+B;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qBAAqB;IACrB,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;CACrC;AAED,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,MAAM,GAAG,IAAI,CAAC;AAElD,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,SAAS,EAAE,aAAa,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,yBAAyB;IACzB,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,yBAAyB;IACzB,SAAS,EAAE,SAAS,CAAC;IACrB,iCAAiC;IACjC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,+BAA+B;IAC/B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,oEAAoE;IACpE,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,uDAAuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qFAAqF;IACrF,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACxD,uFAAuF;IACvF,iBAAiB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3D,iFAAiF;IACjF,eAAe,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CAClE;AAQD,eAAO,MAAM,WAAW,EAAE,EAAE,CAAC,gBAAgB,CAkP3C,CAAC;AAEH,eAAe,WAAW,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"TableHeader.js","names":[],"sources":["../../../../../src/bigconsole/components/widgets/table/TableHeader.tsx"],"sourcesContent":["/**\n * TableHeader Component\n *\n * Sortable table header with column definitions. In edit mode it also supports\n * interactive column resize (drag the right border) and reorder (drag the grip\n * handle), each surfaced through callbacks the parent persists to widget config.\n */\n\nimport { type FC, memo, useCallback, useEffect, useRef, useState } from 'react';\nimport { GripVertical } from 'lucide-react';\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface ColumnDefinition {\n /** Unique key for the column */\n key: string;\n /** Display header text */\n header: string;\n /** Whether column is sortable */\n sortable?: boolean;\n /** Column width (CSS value) */\n width?: string;\n /** Text alignment */\n align?: 'left' | 'center' | 'right';\n}\n\nexport type SortDirection = 'asc' | 'desc' | null;\n\nexport interface SortState {\n column: string | null;\n direction: SortDirection;\n}\n\nexport interface TableHeaderProps {\n /** Column definitions */\n columns: ColumnDefinition[];\n /** Current sort state */\n sortState: SortState;\n /** Callback when sort changes */\n onSort: (column: string) => void;\n /** Whether header is sticky */\n sticky?: boolean;\n /** column key → sticky-left px offset for frozen leading columns */\n frozenLefts?: Record<string, number>;\n /** Enable interactive resize + reorder (edit mode). */\n editable?: boolean;\n /** Called on every resize move with the in-progress width (px) for live feedback. */\n onColumnResize?: (key: string, widthPx: number) => void;\n /** Called once when a resize drag ends with the final width (px) — parent persists. */\n onColumnResizeEnd?: (key: string, widthPx: number) => void;\n /** Called when a column is dropped onto another to reorder — parent persists. */\n onColumnReorder?: (sourceKey: string, targetKey: string) => void;\n}\n\nconst MIN_COLUMN_WIDTH = 60;\n\n// ============================================================================\n// Component\n// ============================================================================\n\nexport const TableHeader: FC<TableHeaderProps> = memo(function TableHeader({\n columns,\n sortState,\n onSort,\n sticky = true,\n frozenLefts,\n editable = false,\n onColumnResize,\n onColumnResizeEnd,\n onColumnReorder,\n}) {\n const handleSort = useCallback(\n (column: ColumnDefinition) => {\n if (column.sortable !== false) {\n onSort(column.key);\n }\n },\n [onSort]\n );\n\n // Refs to each <th> so a resize drag can read its current rendered width.\n const thRefs = useRef<Record<string, HTMLTableCellElement | null>>({});\n // Key being resized — disabled drag-reorder while resizing, and used for cursor.\n const [resizingKey, setResizingKey] = useState<string | null>(null);\n const [dragOverKey, setDragOverKey] = useState<string | null>(null);\n const dragSourceKey = useRef<string | null>(null);\n // Removes the active resize window-listeners; set during a drag, called on\n // pointer-up and on unmount so a drag interrupted by unmount can't leak.\n const teardownResizeRef = useRef<(() => void) | null>(null);\n\n // Start a resize drag from the right-border handle. Uses window listeners so\n // the pointer can leave the (narrow) handle without dropping the gesture.\n const startResize = useCallback(\n (key: string, startEvent: React.PointerEvent) => {\n startEvent.preventDefault();\n startEvent.stopPropagation();\n const th = thRefs.current[key];\n const startWidth = th ? th.offsetWidth : MIN_COLUMN_WIDTH;\n const startX = startEvent.clientX;\n setResizingKey(key);\n\n let lastWidth = startWidth;\n const onMove = (e: PointerEvent) => {\n lastWidth = Math.max(MIN_COLUMN_WIDTH, Math.round(startWidth + (e.clientX - startX)));\n onColumnResize?.(key, lastWidth);\n };\n const teardown = () => {\n window.removeEventListener('pointermove', onMove);\n window.removeEventListener('pointerup', onUp);\n teardownResizeRef.current = null;\n };\n const onUp = () => {\n teardown();\n setResizingKey(null);\n onColumnResizeEnd?.(key, lastWidth);\n };\n teardownResizeRef.current = teardown;\n window.addEventListener('pointermove', onMove);\n window.addEventListener('pointerup', onUp);\n },\n [onColumnResize, onColumnResizeEnd]\n );\n\n // Detach any in-progress resize listeners if the header unmounts mid-drag.\n useEffect(() => () => teardownResizeRef.current?.(), []);\n\n const getSortIcon = (column: ColumnDefinition) => {\n if (column.sortable === false) return null;\n\n const isActive = sortState.column === column.key;\n const direction = isActive ? sortState.direction : null;\n\n return (\n <span className=\"inline-flex ml-1\">\n {direction === 'asc' && (\n <svg className=\"w-4 h-4 text-action-primary-bg\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M5 15l7-7 7 7\" />\n </svg>\n )}\n {direction === 'desc' && (\n <svg className=\"w-4 h-4 text-action-primary-bg\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M19 9l-7 7-7-7\" />\n </svg>\n )}\n {!direction && (\n <svg\n className=\"w-4 h-4 text-text-secondary opacity-0 group-hover:opacity-100\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M7 16V4m0 0L3 8m4-4l4 4m6 0v12m0 0l4-4m-4 4l-4-4\"\n />\n </svg>\n )}\n </span>\n );\n };\n\n return (\n <thead\n className={`\n bg-bg-sunken\n ${sticky ? 'sticky top-0 z-10' : ''}\n `}\n >\n <tr>\n {columns.map((column) => {\n const frozen = frozenLefts?.[column.key];\n // Width (incl. live resize overrides) is baked into column.width by the parent.\n const width = column.width;\n const reorderable = editable && !!onColumnReorder && resizingKey === null;\n const isDropTarget = dragOverKey === column.key && dragSourceKey.current !== column.key;\n return (\n <th\n key={column.key}\n ref={(el) => {\n thRefs.current[column.key] = el;\n }}\n draggable={reorderable}\n onDragStart={\n reorderable\n ? (e) => {\n dragSourceKey.current = column.key;\n e.dataTransfer.effectAllowed = 'move';\n // Some browsers require data to be set for a drag to start.\n e.dataTransfer.setData('text/plain', column.key);\n }\n : undefined\n }\n onDragOver={\n editable && onColumnReorder\n ? (e) => {\n if (dragSourceKey.current && dragSourceKey.current !== column.key) {\n e.preventDefault();\n e.dataTransfer.dropEffect = 'move';\n if (dragOverKey !== column.key) setDragOverKey(column.key);\n }\n }\n : undefined\n }\n onDragLeave={\n editable && onColumnReorder\n ? () => {\n if (dragOverKey === column.key) setDragOverKey(null);\n }\n : undefined\n }\n onDrop={\n editable && onColumnReorder\n ? (e) => {\n e.preventDefault();\n const source = dragSourceKey.current;\n dragSourceKey.current = null;\n setDragOverKey(null);\n if (source && source !== column.key) {\n onColumnReorder(source, column.key);\n }\n }\n : undefined\n }\n onDragEnd={\n reorderable\n ? () => {\n dragSourceKey.current = null;\n setDragOverKey(null);\n }\n : undefined\n }\n className={`\n relative px-4 py-3\n text-xs font-semibold uppercase tracking-wider\n text-text-secondary\n border-b border-border-default\n ${column.sortable !== false ? 'cursor-pointer select-none group hover:bg-bg-surface' : ''}\n ${column.align === 'center' ? 'text-center' : ''}\n ${column.align === 'right' ? 'text-right' : 'text-left'}\n ${frozen != null ? 'sticky z-20 bg-bg-sunken' : ''}\n ${isDropTarget ? 'border-l-2 border-l-action-primary-bg' : ''}\n `}\n style={frozen != null ? { width, left: frozen } : { width }}\n onClick={() => handleSort(column)}\n role={column.sortable !== false ? 'button' : undefined}\n tabIndex={column.sortable !== false ? 0 : undefined}\n onKeyDown={(e) => {\n if (column.sortable !== false && (e.key === 'Enter' || e.key === ' ')) {\n e.preventDefault();\n handleSort(column);\n }\n }}\n aria-sort={\n sortState.column === column.key\n ? sortState.direction === 'asc'\n ? 'ascending'\n : 'descending'\n : undefined\n }\n >\n <div className=\"inline-flex items-center\">\n {editable && onColumnReorder && (\n // Reorder grip — its own drag surface so dragging it (not the\n // label) starts a reorder, leaving the label click free to sort.\n <span\n className=\"mr-1 -ml-1 cursor-grab text-text-muted opacity-0 group-hover:opacity-100\"\n onClick={(e) => e.stopPropagation()}\n aria-hidden=\"true\"\n title=\"Drag to reorder column\"\n >\n <GripVertical className=\"w-3.5 h-3.5\" />\n </span>\n )}\n {column.header}\n {getSortIcon(column)}\n </div>\n {editable && onColumnResize && (\n // Resize handle on the right border. Pointer-only; stops the sort\n // click and the reorder drag from firing.\n <span\n role=\"separator\"\n aria-orientation=\"vertical\"\n aria-label={`Resize ${column.header} column`}\n className={`\n absolute top-0 right-0 z-30 h-full w-1.5\n cursor-col-resize select-none\n hover:bg-action-primary-bg/40\n ${resizingKey === column.key ? 'bg-action-primary-bg/60' : ''}\n `}\n onPointerDown={(e) => startResize(column.key, e)}\n onClick={(e) => e.stopPropagation()}\n draggable={false}\n />\n )}\n </th>\n );\n })}\n </tr>\n </thead>\n );\n});\n\nexport default TableHeader;\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"TablePagination.d.ts","sourceRoot":"","sources":["../../../../../src/bigconsole/components/widgets/table/TablePagination.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,EAAqB,MAAM,OAAO,CAAC;AAMnD,MAAM,WAAW,eAAe;IAC9B,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,qBAAqB;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,4BAA4B;IAC5B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,uBAAuB;IACvB,UAAU,EAAE,eAAe,CAAC;IAC5B,iCAAiC;IACjC,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,sCAAsC;IACtC,gBAAgB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,kCAAkC;IAClC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAMD,eAAO,MAAM,eAAe,EAAE,EAAE,CAAC,oBAAoB,CA6KnD,CAAC;AAEH,eAAe,eAAe,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"TablePagination.js","names":[],"sources":["../../../../../src/bigconsole/components/widgets/table/TablePagination.tsx"],"sourcesContent":["/**\n * TablePagination Component\n *\n * Pagination controls for table widget.\n */\n\nimport { type FC, memo, useCallback } from 'react';\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface PaginationState {\n /** Current page (0-indexed) */\n page: number;\n /** Items per page */\n pageSize: number;\n /** Total number of items */\n totalItems: number;\n}\n\nexport interface TablePaginationProps {\n /** Pagination state */\n pagination: PaginationState;\n /** Callback when page changes */\n onPageChange: (page: number) => void;\n /** Callback when page size changes */\n onPageSizeChange: (pageSize: number) => void;\n /** Available page size options */\n pageSizeOptions?: number[];\n}\n\n// ============================================================================\n// Component\n// ============================================================================\n\nexport const TablePagination: FC<TablePaginationProps> = memo(function TablePagination({\n pagination,\n onPageChange,\n onPageSizeChange,\n pageSizeOptions = [10, 25, 50, 100],\n}) {\n const { page, pageSize, totalItems } = pagination;\n const totalPages = Math.ceil(totalItems / pageSize);\n const startItem = page * pageSize + 1;\n const endItem = Math.min((page + 1) * pageSize, totalItems);\n\n const handlePrevious = useCallback(() => {\n if (page > 0) {\n onPageChange(page - 1);\n }\n }, [page, onPageChange]);\n\n const handleNext = useCallback(() => {\n if (page < totalPages - 1) {\n onPageChange(page + 1);\n }\n }, [page, totalPages, onPageChange]);\n\n const handleFirst = useCallback(() => {\n onPageChange(0);\n }, [onPageChange]);\n\n const handleLast = useCallback(() => {\n onPageChange(totalPages - 1);\n }, [totalPages, onPageChange]);\n\n const handlePageSizeChange = useCallback(\n (event: React.ChangeEvent<HTMLSelectElement>) => {\n onPageSizeChange(Number(event.target.value));\n onPageChange(0); // Reset to first page\n },\n [onPageSizeChange, onPageChange]\n );\n\n if (totalItems === 0) {\n return null;\n }\n\n return (\n <div\n className=\"\n flex items-center justify-between\n px-4 py-3\n border-t border-border-default\n bg-bg-surface\n \"\n >\n {/* Items info */}\n <div className=\"text-sm text-text-secondary\">\n Showing <span className=\"font-medium\">{startItem}</span> to <span className=\"font-medium\">{endItem}</span> of{' '}\n <span className=\"font-medium\">{totalItems}</span> results\n </div>\n\n {/* Controls */}\n <div className=\"flex items-center gap-4\">\n {/* Page size selector */}\n <div className=\"flex items-center gap-2\">\n <span className=\"text-sm text-text-secondary\">Show:</span>\n <select\n value={pageSize}\n onChange={handlePageSizeChange}\n className=\"\n px-2 py-1\n text-sm text-text-primary\n bg-bg-surface\n border border-border-default\n rounded-md\n focus:outline-none focus:ring-2 focus:ring-action-primary-bg\n \"\n >\n {pageSizeOptions.map((size) => (\n <option key={size} value={size}>\n {size}\n </option>\n ))}\n </select>\n </div>\n\n {/* Navigation buttons */}\n <div className=\"flex items-center gap-1\">\n {/* First */}\n <button\n type=\"button\"\n onClick={handleFirst}\n disabled={page === 0}\n className=\"\n p-1.5 rounded-md\n text-text-secondary\n hover:text-text-primary\n hover:bg-bg-sunken\n disabled:opacity-50 disabled:cursor-not-allowed\n transition-colors\n \"\n title=\"First page\"\n >\n <svg className=\"w-4 h-4\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M11 19l-7-7 7-7m8 14l-7-7 7-7\" />\n </svg>\n </button>\n\n {/* Previous */}\n <button\n type=\"button\"\n onClick={handlePrevious}\n disabled={page === 0}\n className=\"\n p-1.5 rounded-md\n text-text-secondary\n hover:text-text-primary\n hover:bg-bg-sunken\n disabled:opacity-50 disabled:cursor-not-allowed\n transition-colors\n \"\n title=\"Previous page\"\n >\n <svg className=\"w-4 h-4\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M15 19l-7-7 7-7\" />\n </svg>\n </button>\n\n {/* Page indicator */}\n <span className=\"px-3 text-sm text-text-primary\">\n Page <span className=\"font-medium\">{page + 1}</span> of <span className=\"font-medium\">{totalPages}</span>\n </span>\n\n {/* Next */}\n <button\n type=\"button\"\n onClick={handleNext}\n disabled={page >= totalPages - 1}\n className=\"\n p-1.5 rounded-md\n text-text-secondary\n hover:text-text-primary\n hover:bg-bg-sunken\n disabled:opacity-50 disabled:cursor-not-allowed\n transition-colors\n \"\n title=\"Next page\"\n >\n <svg className=\"w-4 h-4\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M9 5l7 7-7 7\" />\n </svg>\n </button>\n\n {/* Last */}\n <button\n type=\"button\"\n onClick={handleLast}\n disabled={page >= totalPages - 1}\n className=\"\n p-1.5 rounded-md\n text-text-secondary\n hover:text-text-primary\n hover:bg-bg-sunken\n disabled:opacity-50 disabled:cursor-not-allowed\n transition-colors\n \"\n title=\"Last page\"\n >\n <svg className=\"w-4 h-4\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M13 5l7 7-7 7M5 5l7 7-7 7\" />\n </svg>\n </button>\n </div>\n </div>\n </div>\n );\n});\n\nexport default TablePagination;\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"TableWidget.d.ts","sourceRoot":"","sources":["../../../../../src/bigconsole/components/widgets/table/TableWidget.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,EAA2D,MAAM,OAAO,CAAC;AACzF,OAAO,KAAK,EAAE,MAAM,EAAkC,MAAM,gBAAgB,CAAC;AAc7E,MAAM,WAAW,gBAAgB;IAC/B,2BAA2B;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,iCAAiC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACjC,sCAAsC;IACtC,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnE,qDAAqD;IACrD,WAAW,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;CAC/D;AAoED,eAAO,MAAM,WAAW,EAAE,EAAE,CAAC,gBAAgB,CA2pB3C,CAAC;AAEH,eAAe,WAAW,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"TableWidget.js","names":[],"sources":["../../../../../src/bigconsole/components/widgets/table/TableWidget.tsx"],"sourcesContent":["/**\n * TableWidget Component\n *\n * Data table with sorting, filtering, and pagination.\n */\n\nimport { type FC, memo, useState, useMemo, useCallback, useRef, useEffect } from 'react';\nimport type { Widget, TableConfig, TableColumnConfig } from '../../../types';\nimport { TableHeader, type ColumnDefinition, type SortState, type SortDirection } from './TableHeader';\nimport { TableCell, type CellFormatConfig, type CellChart } from './TableCell';\nimport { TablePagination, type PaginationState } from './TablePagination';\nimport { resolveRowClassName, type ConditionalRule } from '../utils/conditionalFormat';\n// Phase 2: Cross-filtering support\nimport { useWidgetCrossFilter, useCrossFilterContext } from '../../../contexts';\nimport { useIsEditMode } from '../../../store';\nimport { useWidgetConfigPersist } from '../../../hooks';\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface TableWidgetProps {\n /** Widget configuration */\n widget: Widget;\n /** Table data (array of rows) */\n data?: Record<string, unknown>[];\n /** Click handler for row drilldown */\n onRowClick?: (row: Record<string, unknown>, index: number) => void;\n /** Drilldown handler - receives selected row data */\n onDrilldown?: (selectedData: Record<string, unknown>) => void;\n}\n\n// ============================================================================\n// Helpers\n// ============================================================================\n\nfunction sortData(data: Record<string, unknown>[], sortState: SortState): Record<string, unknown>[] {\n if (!sortState.column || !sortState.direction) {\n return data;\n }\n\n return [...data].sort((a, b) => {\n const aValue = a[sortState.column!];\n const bValue = b[sortState.column!];\n\n // Handle null/undefined\n if (aValue == null && bValue == null) return 0;\n if (aValue == null) return sortState.direction === 'asc' ? 1 : -1;\n if (bValue == null) return sortState.direction === 'asc' ? -1 : 1;\n\n // Compare values\n let comparison = 0;\n if (typeof aValue === 'number' && typeof bValue === 'number') {\n comparison = aValue - bValue;\n } else {\n comparison = String(aValue).localeCompare(String(bValue));\n }\n\n return sortState.direction === 'asc' ? comparison : -comparison;\n });\n}\n\nfunction filterData(\n data: Record<string, unknown>[],\n searchQuery: string,\n columns: ColumnDefinition[]\n): Record<string, unknown>[] {\n if (!searchQuery.trim()) {\n return data;\n }\n\n const query = searchQuery.toLowerCase();\n return data.filter((row) =>\n columns.some((col) => {\n const value = row[col.key];\n return value != null && String(value).toLowerCase().includes(query);\n })\n );\n}\n\n/** Format a footer total respecting the column's cell format. */\nfunction formatTotal(value: number, formatType?: string, currency?: string): string {\n switch (formatType) {\n case 'currency':\n return new Intl.NumberFormat('en-US', { style: 'currency', currency: currency || 'USD' }).format(value);\n case 'percentage':\n return `${(value * 100).toFixed(1)}%`;\n case 'number':\n return new Intl.NumberFormat('en-US').format(value);\n default:\n return Number.isInteger(value) ? String(value) : value.toFixed(2);\n }\n}\n\n// ============================================================================\n// Component\n// ============================================================================\n\nexport const TableWidget: FC<TableWidgetProps> = memo(function TableWidget({\n widget,\n data: rawData = [],\n onRowClick,\n onDrilldown,\n}) {\n const config = widget.config as unknown as TableConfig | undefined;\n\n // Normalize data - handle both array and object formats\n const data = useMemo(() => {\n // If it's already an array, use it directly\n if (Array.isArray(rawData)) {\n return rawData;\n }\n\n // If it's an object, try to find an array property\n if (rawData && typeof rawData === 'object') {\n // Check common array property names\n const possibleArrayProps = ['data', 'items', 'rows', 'results', 'records', 'list', 'sales', 'entries', 'values'];\n for (const prop of possibleArrayProps) {\n if (Array.isArray((rawData as Record<string, unknown>)[prop])) {\n return (rawData as Record<string, unknown>)[prop] as Record<string, unknown>[];\n }\n }\n\n // If object has array values, use the first one\n const values = Object.values(rawData);\n for (const value of values) {\n if (Array.isArray(value)) {\n return value as Record<string, unknown>[];\n }\n }\n\n // If it's a single object, wrap it in an array\n return [rawData as Record<string, unknown>];\n }\n\n return [];\n }, [rawData]);\n\n // Phase 2: Cross-filtering support\n const { handleDataClick: triggerCrossFilter, enabled: crossFilterEnabled } = useWidgetCrossFilter(\n widget.id,\n // Map first column to filter ID by default, can be configured\n config?.crossFilterMappings\n );\n const { clearAllCrossFilters, hasCrossFilters } = useCrossFilterContext();\n\n // State\n const [sortState, setSortState] = useState<SortState>({\n column: config?.defaultSortColumn || null,\n direction: (config?.defaultSortDirection as SortDirection) || null,\n });\n const [searchQuery, setSearchQuery] = useState('');\n const [pagination, setPagination] = useState<PaginationState>({\n page: 0,\n pageSize: config?.pageSize || 10,\n totalItems: 0,\n });\n\n // Interactive column resize/reorder (edit mode only). Local overrides give\n // live feedback; the committed layout is persisted to config so it survives\n // reload (see commitColumnLayout).\n const isEditMode = useIsEditMode();\n const { persistConfig } = useWidgetConfigPersist(widget);\n const [widthOverrides, setWidthOverrides] = useState<Record<string, number>>({});\n const [columnOrder, setColumnOrder] = useState<string[] | null>(null);\n\n // Build column definitions from config or data\n const baseColumns: ColumnDefinition[] = useMemo(() => {\n if (config?.columns?.length) {\n return (config.columns as (string | TableColumnConfig)[]).map((col) => {\n // Handle both string and object column definitions\n if (typeof col === 'string') {\n return {\n key: col,\n header: col.charAt(0).toUpperCase() + col.slice(1).replace(/_/g, ' '),\n sortable: true,\n };\n }\n // Object column definition — accept both .key and .field\n const fieldKey = col.key || col.field || '';\n return {\n key: fieldKey,\n header: col.label || col.header || fieldKey,\n sortable: col.sortable !== false,\n width: col.width != null ? String(col.width) : undefined,\n align: col.align as ColumnDefinition['align'],\n };\n }) as ColumnDefinition[];\n }\n\n // Auto-generate from first data row\n if (data.length > 0) {\n return Object.keys(data[0]).map((key) => ({\n key,\n header: key.charAt(0).toUpperCase() + key.slice(1).replace(/_/g, ' '),\n sortable: true,\n }));\n }\n\n return [];\n }, [config?.columns, data]);\n\n // Apply the live reorder + resize overrides on top of the base columns. Any\n // column not named in columnOrder keeps its original relative position at the\n // end (handles columns added since the order was set).\n const columns: ColumnDefinition[] = useMemo(() => {\n let cols = baseColumns;\n if (columnOrder) {\n const byKey = new Map(baseColumns.map((c) => [c.key, c]));\n const ordered = columnOrder.map((k) => byKey.get(k)).filter((c): c is ColumnDefinition => c !== undefined);\n const rest = baseColumns.filter((c) => !columnOrder.includes(c.key));\n cols = [...ordered, ...rest];\n }\n if (Object.keys(widthOverrides).length > 0) {\n cols = cols.map((c) => (widthOverrides[c.key] != null ? { ...c, width: `${widthOverrides[c.key]}px` } : c));\n }\n return cols;\n }, [baseColumns, columnOrder, widthOverrides]);\n\n // Persist the current column order + widths to config.columns. Builds explicit\n // column objects (preserving any existing per-column config), which also pins\n // a previously auto-generated column set so order/width survive reload.\n const commitColumnLayout = useCallback(\n (orderKeys: string[], widths: Record<string, number>) => {\n const existing = new Map<string, TableColumnConfig>();\n config?.columns?.forEach((c) => {\n const k = c.key || c.field;\n if (k) existing.set(k, c);\n });\n const baseKeys = baseColumns.map((c) => c.key);\n const finalKeys = [\n ...orderKeys.filter((k) => baseKeys.includes(k)),\n ...baseKeys.filter((k) => !orderKeys.includes(k)),\n ];\n const newColumns: TableColumnConfig[] = finalKeys.map((key) => {\n const base = baseColumns.find((c) => c.key === key);\n const prev = existing.get(key);\n const next: TableColumnConfig = { ...(prev ?? {}), key };\n // Preserve a header label for columns that had none in config (auto-generated).\n if (!next.label && !next.header && base?.header) next.label = base.header;\n const w = widths[key];\n if (w != null) next.width = w;\n return next;\n });\n void persistConfig({ columns: newColumns });\n },\n [baseColumns, config?.columns, persistConfig]\n );\n\n const handleColumnResize = useCallback((key: string, widthPx: number) => {\n setWidthOverrides((prev) => ({ ...prev, [key]: widthPx }));\n }, []);\n\n const handleColumnResizeEnd = useCallback(\n (key: string, widthPx: number) => {\n const widths = { ...widthOverrides, [key]: widthPx };\n setWidthOverrides(widths);\n const order = columnOrder ?? baseColumns.map((c) => c.key);\n commitColumnLayout(order, widths);\n },\n [widthOverrides, columnOrder, baseColumns, commitColumnLayout]\n );\n\n const handleColumnReorder = useCallback(\n (sourceKey: string, targetKey: string) => {\n const current = columnOrder ?? baseColumns.map((c) => c.key);\n const from = current.indexOf(sourceKey);\n if (from < 0 || sourceKey === targetKey) return;\n const next = [...current];\n next.splice(from, 1);\n // Insert before the target's *post-removal* index, so dropping onto a\n // column always lands the source just before it regardless of direction.\n const insertAt = next.indexOf(targetKey);\n if (insertAt < 0) return;\n next.splice(insertAt, 0, sourceKey);\n setColumnOrder(next);\n commitColumnLayout(next, widthOverrides);\n },\n [columnOrder, baseColumns, widthOverrides, commitColumnLayout]\n );\n\n // Build cell format configs\n const cellFormats: Record<string, CellFormatConfig> = useMemo(() => {\n const formats: Record<string, CellFormatConfig> = {};\n config?.columns?.forEach((col) => {\n if (col.format && (col.key || col.field)) {\n formats[col.key || col.field || ''] = {\n type: col.format,\n ...(col.linkPattern ? { linkPattern: col.linkPattern } : {}),\n };\n }\n });\n return formats;\n }, [config?.columns]);\n\n // Per-column in-cell chart kind (e.g. sparkline).\n const columnCellCharts: Record<string, CellChart | undefined> = useMemo(() => {\n const map: Record<string, CellChart | undefined> = {};\n config?.columns?.forEach((col) => {\n const fieldKey = col.key || col.field;\n if (fieldKey && col.cellChart) {\n map[fieldKey] = col.cellChart;\n }\n });\n return map;\n }, [config?.columns]);\n\n // Per-column conditional rules (column-level overrides win over table-level).\n const tableRules = config?.conditionalRules;\n // Row-level conditional rules: tint the whole <tr> (escalation/breach rows).\n const rowRules = config?.rowRules;\n const columnRules: Record<string, ConditionalRule[] | undefined> = useMemo(() => {\n const map: Record<string, ConditionalRule[] | undefined> = {};\n config?.columns?.forEach((col) => {\n const fieldKey = col.key || col.field;\n if (fieldKey && col.conditionalRules?.length) {\n map[fieldKey] = col.conditionalRules;\n }\n });\n return map;\n }, [config?.columns]);\n\n // Per-column totals/aggregates for the footer row.\n const columnTotals: Record<string, TableColumnConfig['total']> = useMemo(() => {\n const map: Record<string, TableColumnConfig['total']> = {};\n config?.columns?.forEach((col) => {\n const fieldKey = col.key || col.field;\n if (fieldKey && col.total && col.total !== 'none') {\n map[fieldKey] = col.total;\n }\n });\n return map;\n }, [config?.columns]);\n\n const hasTotals = config?.showTotals === true || Object.keys(columnTotals).length > 0;\n\n // Process data: filter, sort, paginate\n const processedData = useMemo(() => {\n let result = data;\n\n // Filter\n if (config?.showSearch !== false) {\n result = filterData(result, searchQuery, columns);\n }\n\n // Sort\n result = sortData(result, sortState);\n\n return result;\n }, [data, searchQuery, sortState, columns, config?.showSearch]);\n\n // Max absolute numeric value per column — scales in-cell data bars.\n const dataBarMaxes: Record<string, number> = useMemo(() => {\n const maxes: Record<string, number> = {};\n for (const col of columns) {\n let max = 0;\n for (const row of processedData) {\n const v = row[col.key];\n if (typeof v === 'number' && Number.isFinite(v)) {\n max = Math.max(max, Math.abs(v));\n }\n }\n maxes[col.key] = max;\n }\n return maxes;\n }, [columns, processedData]);\n\n // Footer totals/aggregates per column (computed over the filtered set).\n const footerTotals: Record<string, number | null> = useMemo(() => {\n if (!hasTotals) return {};\n const result: Record<string, number | null> = {};\n for (const col of columns) {\n const agg = columnTotals[col.key];\n if (!agg) {\n result[col.key] = null;\n continue;\n }\n const nums = processedData\n .map((row) => row[col.key])\n .filter((v): v is number => typeof v === 'number' && Number.isFinite(v));\n if (agg === 'count') {\n result[col.key] = processedData.length;\n } else if (nums.length === 0) {\n result[col.key] = null;\n } else if (agg === 'sum') {\n result[col.key] = nums.reduce((a, b) => a + b, 0);\n } else if (agg === 'avg') {\n result[col.key] = nums.reduce((a, b) => a + b, 0) / nums.length;\n } else if (agg === 'min') {\n result[col.key] = Math.min(...nums);\n } else if (agg === 'max') {\n result[col.key] = Math.max(...nums);\n } else {\n result[col.key] = null;\n }\n }\n return result;\n }, [hasTotals, columns, columnTotals, processedData]);\n\n // Update total items when data changes\n useMemo(() => {\n setPagination((prev) => ({\n ...prev,\n totalItems: processedData.length,\n }));\n }, [processedData.length]);\n\n // Paginate\n const paginatedData = useMemo(() => {\n if (config?.showPagination === false) {\n return processedData;\n }\n const start = pagination.page * pagination.pageSize;\n return processedData.slice(start, start + pagination.pageSize);\n }, [processedData, pagination, config?.showPagination]);\n\n // ----------------------------------------------------------------------------\n // Row virtualization (windowing) — render only the visible slice of a large\n // dataset. Active when config.virtualized is set; bypasses pagination so the\n // whole filtered set scrolls in one container. No external dependency: a fixed\n // row height + top/bottom spacer rows reproduce the full scroll height.\n // ----------------------------------------------------------------------------\n const virtualized = config?.virtualized === true;\n const rowHeight = config?.rowHeight && config.rowHeight > 0 ? config.rowHeight : 44;\n const scrollRef = useRef<HTMLDivElement>(null);\n const [scrollTop, setScrollTop] = useState(0);\n const [viewportH, setViewportH] = useState(0);\n\n useEffect(() => {\n if (!virtualized) return undefined;\n const el = scrollRef.current;\n if (!el) return undefined;\n setViewportH(el.clientHeight);\n const ro =\n typeof ResizeObserver !== 'undefined' ? new ResizeObserver(() => setViewportH(el.clientHeight)) : undefined;\n ro?.observe(el);\n return () => ro?.disconnect();\n }, [virtualized]);\n\n const OVERSCAN = 6;\n const virtualWindow = useMemo(() => {\n if (!virtualized) return null;\n const total = processedData.length;\n const visibleCount = viewportH > 0 ? Math.ceil(viewportH / rowHeight) : 20;\n const startIndex = Math.max(0, Math.floor(scrollTop / rowHeight) - OVERSCAN);\n const endIndex = Math.min(total, startIndex + visibleCount + OVERSCAN * 2);\n return {\n rows: processedData.slice(startIndex, endIndex),\n topSpacer: startIndex * rowHeight,\n bottomSpacer: Math.max(0, (total - endIndex) * rowHeight),\n startIndex,\n };\n }, [virtualized, processedData, viewportH, scrollTop, rowHeight]);\n\n // The rows actually rendered in <tbody>: windowed slice or the paginated page.\n const renderRows = virtualized && virtualWindow ? virtualWindow.rows : paginatedData;\n const rowBaseIndex = virtualized && virtualWindow ? virtualWindow.startIndex : 0;\n\n // Sticky-left frozen columns: give the first N columns explicit widths so the\n // header and body align, then compute each one's cumulative left offset.\n const frozenCount = config?.frozenColumns && config.frozenColumns > 0 ? config.frozenColumns : 0;\n const FROZEN_DEFAULT_W = 160;\n const { displayColumns, frozenLefts } = useMemo(() => {\n if (frozenCount <= 0) return { displayColumns: columns, frozenLefts: {} as Record<string, number> };\n const lefts: Record<string, number> = {};\n let cursor = 0;\n const cols = columns.map((col, i) => {\n if (i < frozenCount) {\n const widthPx = col.width ? parseInt(col.width, 10) || FROZEN_DEFAULT_W : FROZEN_DEFAULT_W;\n lefts[col.key] = cursor;\n cursor += widthPx;\n return { ...col, width: `${widthPx}px` };\n }\n return col;\n });\n return { displayColumns: cols, frozenLefts: lefts };\n }, [columns, frozenCount]);\n\n // Handlers\n const handleSort = useCallback((column: string) => {\n setSortState((prev) => {\n if (prev.column !== column) {\n return { column, direction: 'asc' };\n }\n const nextDirection: SortDirection = prev.direction === 'asc' ? 'desc' : prev.direction === 'desc' ? null : 'asc';\n return {\n column: nextDirection ? column : null,\n direction: nextDirection,\n };\n });\n }, []);\n\n const handlePageChange = useCallback((page: number) => {\n setPagination((prev) => ({ ...prev, page }));\n }, []);\n\n const handlePageSizeChange = useCallback((pageSize: number) => {\n setPagination((prev) => ({ ...prev, pageSize, page: 0 }));\n }, []);\n\n const handleRowClick = useCallback(\n (row: Record<string, unknown>, index: number) => {\n // Trigger cross-filtering on row click when explicitly enabled via config\n const hasCrossFilterConfig = config?.crossFilterMappings?.length || config?.enableCrossFilter;\n if (crossFilterEnabled && hasCrossFilterConfig) {\n const firstColumn = columns[0]?.key;\n const label = firstColumn ? String(row[firstColumn]) : undefined;\n triggerCrossFilter(row as Record<string, unknown>, label);\n }\n\n // Trigger drilldown if configured\n if (onDrilldown) {\n onDrilldown(row);\n } else if (onRowClick && widget.drilldowns?.length) {\n onRowClick(row, index);\n }\n },\n [\n onRowClick,\n onDrilldown,\n widget.drilldowns,\n crossFilterEnabled,\n triggerCrossFilter,\n columns,\n config?.crossFilterMappings,\n config?.enableCrossFilter,\n ]\n );\n\n // Export to CSV\n const handleExport = useCallback(() => {\n const headers = columns.map((c) => c.header).join(',');\n const rows = processedData.map((row) =>\n columns\n .map((col) => {\n const value = row[col.key];\n if (value == null) return '';\n const str = String(value);\n // Escape quotes and wrap in quotes if contains comma\n if (str.includes(',') || str.includes('\"')) {\n return `\"${str.replace(/\"/g, '\"\"')}\"`;\n }\n return str;\n })\n .join(',')\n );\n const csv = [headers, ...rows].join('\\n');\n const blob = new Blob([csv], { type: 'text/csv' });\n const url = URL.createObjectURL(blob);\n const a = document.createElement('a');\n a.href = url;\n a.download = `${widget.title || 'table'}-${new Date().toISOString().split('T')[0]}.csv`;\n a.click();\n URL.revokeObjectURL(url);\n }, [columns, processedData, widget.title]);\n\n // Row is only clickable if drilldown or cross-filter is explicitly configured\n const hasCrossFilterConfig = config?.crossFilterMappings?.length || config?.enableCrossFilter;\n const isClickable = Boolean(onDrilldown || (onRowClick && widget.drilldowns?.length) || hasCrossFilterConfig);\n\n return (\n <div className=\"flex flex-col h-full\">\n {/* Cross-filter active indicator with clear button */}\n {hasCrossFilters && (\n <div className=\"flex items-center gap-2 px-3 py-2 border-b border-border-default\">\n <button\n type=\"button\"\n onClick={(e) => {\n e.stopPropagation();\n clearAllCrossFilters();\n }}\n className=\"\n inline-flex items-center gap-1.5\n px-2.5 py-1 rounded-md\n text-xs font-medium\n bg-action-primary-bg/10 text-action-primary-text\n hover:bg-action-primary-bg/20\n transition-colors\n \"\n >\n <svg className=\"w-3.5 h-3.5\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M10 19l-7-7m0 0l7-7m-7 7h18\" />\n </svg>\n Clear Filter\n </button>\n </div>\n )}\n\n {/* Toolbar */}\n {(config?.showSearch !== false || config?.showExport !== false) && (\n <div className=\"flex items-center justify-between p-3 border-b border-border-default\">\n {/* Search */}\n {config?.showSearch !== false && (\n <div className=\"relative flex items-center\">\n <svg\n className=\"absolute left-3 w-4 h-4 text-text-secondary pointer-events-none\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z\"\n />\n </svg>\n <input\n type=\"text\"\n placeholder=\"Search products...\"\n value={searchQuery}\n onChange={(e) => setSearchQuery(e.target.value)}\n className=\"\n pl-10 pr-4 py-2\n text-sm text-text-primary\n bg-bg-surface\n border border-border-default\n rounded-md\n focus:outline-none focus:ring-2 focus:ring-action-primary-bg focus:border-action-primary-bg\n w-48 sm:w-64\n placeholder:text-text-muted\n \"\n />\n </div>\n )}\n\n {/* Export */}\n {config?.showExport !== false && (\n <button\n type=\"button\"\n onClick={handleExport}\n className=\"\n inline-flex items-center gap-2\n px-3 py-2\n text-sm font-medium\n text-text-primary\n bg-bg-surface\n border border-border-default\n rounded-md\n hover:bg-bg-sunken\n transition-colors\n \"\n >\n <svg className=\"w-4 h-4\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4\"\n />\n </svg>\n Export CSV\n </button>\n )}\n </div>\n )}\n\n {/* Table */}\n <div\n ref={scrollRef}\n className=\"flex-1 overflow-auto\"\n onScroll={virtualized ? (e) => setScrollTop((e.target as HTMLDivElement).scrollTop) : undefined}\n >\n <table className=\"w-full\">\n <TableHeader\n columns={displayColumns}\n sortState={sortState}\n onSort={handleSort}\n frozenLefts={frozenCount > 0 ? frozenLefts : undefined}\n editable={isEditMode}\n onColumnResize={isEditMode ? handleColumnResize : undefined}\n onColumnResizeEnd={isEditMode ? handleColumnResizeEnd : undefined}\n onColumnReorder={isEditMode ? handleColumnReorder : undefined}\n />\n <tbody>\n {/* Virtualization top spacer */}\n {virtualized && virtualWindow && virtualWindow.topSpacer > 0 && (\n <tr aria-hidden=\"true\" style={{ height: virtualWindow.topSpacer }}>\n <td colSpan={displayColumns.length} style={{ padding: 0, border: 'none' }} />\n </tr>\n )}\n {renderRows.map((row, i) => {\n const rowIndex = rowBaseIndex + i;\n return (\n <tr\n key={rowIndex}\n className={`\n ${isClickable ? 'cursor-pointer hover:bg-bg-sunken/50' : ''}\n ${rowIndex % 2 === 0 ? 'bg-bg-surface' : 'bg-bg-sunken/30'}\n ${resolveRowClassName(row, rowRules)}\n `}\n style={virtualized ? { height: rowHeight } : undefined}\n onClick={() => handleRowClick(row, rowIndex)}\n >\n {displayColumns.map((column) => (\n <TableCell\n key={column.key}\n value={row[column.key]}\n column={column}\n format={cellFormats[column.key]}\n rowData={row}\n conditionalRules={columnRules[column.key] ?? tableRules}\n dataBarMax={dataBarMaxes[column.key]}\n stickyLeft={frozenLefts[column.key]}\n cellChart={columnCellCharts[column.key]}\n />\n ))}\n </tr>\n );\n })}\n {/* Virtualization bottom spacer */}\n {virtualized && virtualWindow && virtualWindow.bottomSpacer > 0 && (\n <tr aria-hidden=\"true\" style={{ height: virtualWindow.bottomSpacer }}>\n <td colSpan={displayColumns.length} style={{ padding: 0, border: 'none' }} />\n </tr>\n )}\n </tbody>\n {hasTotals && processedData.length > 0 && (\n <tfoot>\n <tr className=\"bg-bg-sunken/50 font-semibold border-t-2 border-border-default\">\n {displayColumns.map((column, colIndex) => {\n const total = footerTotals[column.key];\n const format = cellFormats[column.key];\n const frozen = frozenLefts[column.key];\n return (\n <td\n key={column.key}\n className={`\n px-4 py-3 text-sm text-text-primary\n ${column.align === 'center' ? 'text-center' : ''}\n ${column.align === 'right' ? 'text-right' : 'text-left'}\n ${frozen != null ? 'sticky z-10 bg-bg-sunken' : ''}\n `}\n style={frozen != null ? { left: frozen } : undefined}\n >\n {total != null\n ? formatTotal(total, format?.type, format?.currency)\n : colIndex === 0\n ? 'Total'\n : ''}\n </td>\n );\n })}\n </tr>\n </tfoot>\n )}\n </table>\n\n {processedData.length === 0 && (\n <div className=\"flex items-center justify-center py-12 text-text-secondary\">\n {searchQuery ? 'No matching records found' : 'No data available'}\n </div>\n )}\n </div>\n\n {/* Pagination (suppressed in virtualized mode — the whole set scrolls) */}\n {!virtualized && config?.showPagination !== false && processedData.length > 0 && (\n <TablePagination\n pagination={{ ...pagination, totalItems: processedData.length }}\n onPageChange={handlePageChange}\n onPageSizeChange={handlePageSizeChange}\n />\n )}\n </div>\n );\n});\n\nexport default TableWidget;\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"cellLink.d.ts","sourceRoot":"","sources":["../../../../../src/bigconsole/components/widgets/table/cellLink.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,KAAK,EAAE,OAAO,EACd,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,MAAM,GAAG,IAAI,CAuCf"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"cellLink.js","names":[],"sources":["../../../../../src/bigconsole/components/widgets/table/cellLink.ts"],"sourcesContent":["/**\n * Cell link resolution\n *\n * Turns a `link`-formatted table cell into a navigable href. Kept as a pure,\n * React-free helper so it can be unit-tested in isolation and reused by both the\n * live table and the embed table renderer.\n */\n\n/** Only http(s) is navigable — everything else (e.g. `javascript:`) is rejected. */\nfunction isSafeHref(candidate: string): boolean {\n return /^https?:\\/\\//i.test(candidate);\n}\n\n/**\n * Resolve the href for a `link`-formatted cell.\n *\n * Two modes:\n * - **Pattern** — `linkPattern` contains `{token}` placeholders. `{value}`\n * substitutes the cell value; any other `{field}` substitutes `rowData[field]`\n * (e.g. `\"{Url}\"`, or `\"https://github.com/Algoshred/{Repo}/pull/{value}\"`).\n * Field names may contain spaces/hyphens/etc. (table keys come from arbitrary\n * data-source/CSV column names, e.g. `{Issue URL}`, `{repo-name}`); a token is\n * any run of non-brace characters and is trimmed before lookup. A token that\n * resolves to null/undefined **or a blank string** rejects the whole href, so\n * an optional-but-empty field degrades to plain text rather than emitting a\n * broken `https://host//pull/42`.\n *\n * Substituted values are **raw** by default so a `{Url}` whose value is a full\n * URL survives intact. Add a `|encode` suffix to a token — `{value|encode}` —\n * to `encodeURIComponent` just that substitution (for query params etc., e.g.\n * `\"https://github.com/search?q={value|encode}\"`).\n *\n * NOTE: `value` is a reserved token — it always resolves to the cell value and\n * shadows a row field literally named `value`. Reference other columns by their\n * own name instead.\n * - **Auto-detect** — no pattern: if the cell value is itself an http(s) URL,\n * use it directly.\n *\n * Returns `null` when nothing safe/navigable resolves, so the caller can fall\n * back to rendering plain text instead of a dead link.\n */\nexport function resolveCellLinkHref(\n linkPattern: string | undefined,\n value: unknown,\n rowData?: Record<string, unknown>\n): string | null {\n if (linkPattern && linkPattern.trim()) {\n let hasMissingToken = false;\n // Match any `{...}` token (non-brace run) so field names with spaces,\n // hyphens or symbols — common in real column headers — still resolve.\n const substituted = linkPattern.replace(/\\{([^{}]+)\\}/g, (_match, token: string) => {\n // Optional `|encode` suffix opts the token into encodeURIComponent.\n let key = token.trim();\n let encode = false;\n const pipe = key.lastIndexOf('|');\n if (pipe !== -1 && key.slice(pipe + 1).trim() === 'encode') {\n encode = true;\n key = key.slice(0, pipe).trim();\n }\n const raw = key === 'value' ? value : rowData?.[key];\n const str = raw == null ? '' : String(raw);\n // Missing (null/undefined) or blank field — never emit a half-built URL.\n if (str.trim() === '') {\n hasMissingToken = true;\n return '';\n }\n return encode ? encodeURIComponent(str) : str;\n });\n if (hasMissingToken) return null;\n const trimmed = substituted.trim();\n // Every balanced `{token}` in the pattern has already been replaced above\n // (missing ones set hasMissingToken), so we DON'T re-scan for a stray `{` —\n // a substituted value may legitimately contain braces (e.g. a URL like\n // `.../v1?filter={status:active}`) and must not be discarded.\n if (!trimmed) return null;\n return isSafeHref(trimmed) ? trimmed : null;\n }\n\n if (typeof value === 'string') {\n const trimmed = value.trim();\n if (isSafeHref(trimmed)) return trimmed;\n }\n\n return null;\n}\n"],"mappings":";AASA,SAAS,EAAW,GAA4B;AAC9C,QAAO,gBAAgB,KAAK,EAAU;;AA+BxC,SAAgB,EACd,GACA,GACA,GACe;AACf,KAAI,KAAe,EAAY,MAAM,EAAE;EACrC,IAAI,IAAkB,IAGhB,IAAc,EAAY,QAAQ,kBAAkB,GAAQ,MAAkB;GAElF,IAAI,IAAM,EAAM,MAAM,EAClB,IAAS,IACP,IAAO,EAAI,YAAY,IAAI;AACjC,GAAI,MAAS,MAAM,EAAI,MAAM,IAAO,EAAE,CAAC,MAAM,KAAK,aAChD,IAAS,IACT,IAAM,EAAI,MAAM,GAAG,EAAK,CAAC,MAAM;GAEjC,IAAM,IAAM,MAAQ,UAAU,IAAQ,IAAU,IAC1C,IAAM,KAAO,OAAO,KAAK,OAAO,EAAI;AAM1C,UAJI,EAAI,MAAM,KAAK,MACjB,IAAkB,IACX,MAEF,IAAS,mBAAmB,EAAI,GAAG;IAC1C;AACF,MAAI,EAAiB,QAAO;EAC5B,IAAM,IAAU,EAAY,MAAM;AAMlC,SADK,KACE,EAAW,EAAQ,GAAG,IAAU;;AAGzC,KAAI,OAAO,KAAU,UAAU;EAC7B,IAAM,IAAU,EAAM,MAAM;AAC5B,MAAI,EAAW,EAAQ,CAAE,QAAO;;AAGlC,QAAO"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/bigconsole/components/widgets/table/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EACL,WAAW,EACX,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,SAAS,EACd,KAAK,aAAa,GACnB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,KAAK,UAAU,EAAE,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACrG,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"TextWidget.d.ts","sourceRoot":"","sources":["../../../../../src/bigconsole/components/widgets/text-widget/TextWidget.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,KAAK,EAAE,EAAiB,MAAM,OAAO,CAAC;AAC/C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAO7C,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AA2EtE,eAAO,MAAM,UAAU,EAAE,EAAE,CAAC,eAAe,CAoDzC,CAAC;AAEH,eAAe,UAAU,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"TextWidget.js","names":[],"sources":["../../../../../src/bigconsole/components/widgets/text-widget/TextWidget.tsx"],"sourcesContent":["/**\n * TextWidget Component\n *\n * Displays markdown/rich text content.\n *\n * Data flow: DataSink → Parser → Widget\n * - Static configuration lives in `widget.config` (content, format, alignment).\n * - Dynamic parser output is passed in `data` and overrides matching config keys.\n * - This lets the text widget render from manual configuration, parser-driven\n * data, or both.\n */\n\nimport { type FC, memo, useMemo } from 'react';\nimport type { Widget } from '../../../types';\nimport { resolveTextData } from './textData';\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface TextWidgetProps {\n widget: Widget;\n data?: unknown;\n}\n\nexport type { TextData, TextFormat, TextAlignment } from './textData';\n\n// ============================================================================\n// Simple Markdown Parser (basic support)\n// ============================================================================\n\nfunction parseMarkdown(text: string): string {\n let html = text;\n\n // Escape HTML\n html = html.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');\n\n // Headers\n html = html.replace(/^### (.+)$/gm, '<h3 class=\"text-base font-semibold text-text-primary mt-3 mb-1\">$1</h3>');\n html = html.replace(/^## (.+)$/gm, '<h2 class=\"text-lg font-semibold text-text-primary mt-4 mb-2\">$1</h2>');\n html = html.replace(/^# (.+)$/gm, '<h1 class=\"text-xl font-bold text-text-primary mt-4 mb-2\">$1</h1>');\n\n // Bold and italic\n html = html.replace(/\\*\\*(.+?)\\*\\*/g, '<strong class=\"font-semibold\">$1</strong>');\n html = html.replace(/\\*(.+?)\\*/g, '<em>$1</em>');\n\n // Links\n html = html.replace(\n /\\[([^\\]]+)\\]\\(([^)]+)\\)/g,\n '<a href=\"$2\" class=\"text-action-primary-text hover:underline\" target=\"_blank\" rel=\"noopener\">$1</a>'\n );\n\n // Inline code\n html = html.replace(/`([^`]+)`/g, '<code class=\"px-1 py-0.5 bg-bg-sunken rounded text-sm font-mono\">$1</code>');\n\n // Blockquotes\n html = html.replace(\n /^> (.+)$/gm,\n '<blockquote class=\"border-l-2 border-action-primary-bg pl-3 italic text-text-secondary my-2\">$1</blockquote>'\n );\n\n // Unordered lists\n html = html.replace(/^- (.+)$/gm, '<li class=\"ml-4 list-disc\">$1</li>');\n html = html.replace(/(<li[^>]*>.*<\\/li>\\n?)+/g, '<ul class=\"my-2\">$&</ul>');\n\n // Tables (simple)\n html = html.replace(/^\\|(.+)\\|$/gm, (match, content) => {\n const cells = content.split('|').map((cell: string) => cell.trim());\n const isHeader = cells.some((c: string) => c.match(/^-+$/));\n if (isHeader) return '';\n return `<tr>${cells.map((c: string) => `<td class=\"border border-border-default px-2 py-1 text-sm\">${c}</td>`).join('')}</tr>`;\n });\n html = html.replace(/(<tr>.*<\\/tr>\\n?)+/g, '<table class=\"w-full border-collapse my-2\">$&</table>');\n\n // Paragraphs (wrap remaining text)\n html = html\n .split('\\n\\n')\n .map((para) => {\n if (para.startsWith('<')) return para;\n return `<p class=\"my-2 text-text-primary\">${para}</p>`;\n })\n .join('');\n\n // Line breaks\n html = html.replace(/\\n/g, '<br/>');\n\n return html;\n}\n\nconst ALIGNMENT_CLASSES = {\n left: 'text-left',\n center: 'text-center',\n right: 'text-right',\n justify: 'text-justify',\n} as const;\n\n// ============================================================================\n// Component\n// ============================================================================\n\nexport const TextWidget: FC<TextWidgetProps> = memo(function TextWidget({ widget, data }) {\n const resolved = useMemo(() => resolveTextData(widget.config, data), [widget.config, data]);\n const { content, format, alignment, hasContent } = resolved;\n\n const renderedContent = useMemo(() => {\n if (!content) return null;\n\n if (format === 'markdown') {\n return { __html: parseMarkdown(content) };\n }\n\n if (format === 'html') {\n return { __html: content };\n }\n\n // Plain text\n return null;\n }, [content, format]);\n\n const alignmentClass = ALIGNMENT_CLASSES[alignment ?? 'left'];\n\n if (!hasContent) {\n return (\n <div className=\"flex items-center justify-center h-full text-text-secondary text-sm\">\n <div className=\"text-center\">\n <svg className=\"w-12 h-12 mx-auto mb-2 text-text-muted\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={1.5}\n d=\"M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z\"\n />\n </svg>\n <p>No text content</p>\n </div>\n </div>\n );\n }\n\n if (format === 'plain') {\n return (\n <div className={`h-full p-4 overflow-auto ${alignmentClass}`}>\n <pre className=\"text-sm text-text-primary whitespace-pre-wrap font-sans\">{content}</pre>\n </div>\n );\n }\n\n return (\n <div className={`h-full p-4 overflow-auto ${alignmentClass}`}>\n <div className=\"prose prose-sm max-w-none text-text-primary\" dangerouslySetInnerHTML={renderedContent!} />\n </div>\n );\n});\n\nexport default TextWidget;\n"],"mappings":";;;;AA+BA,SAAS,EAAc,GAAsB;CAC3C,IAAI,IAAO;AAsDX,QAnDA,IAAO,EAAK,QAAQ,MAAM,QAAQ,CAAC,QAAQ,MAAM,OAAO,CAAC,QAAQ,MAAM,OAAO,EAG9E,IAAO,EAAK,QAAQ,gBAAgB,4EAA0E,EAC9G,IAAO,EAAK,QAAQ,eAAe,0EAAwE,EAC3G,IAAO,EAAK,QAAQ,cAAc,sEAAoE,EAGtG,IAAO,EAAK,QAAQ,kBAAkB,8CAA4C,EAClF,IAAO,EAAK,QAAQ,cAAc,cAAc,EAGhD,IAAO,EAAK,QACV,4BACA,8GACD,EAGD,IAAO,EAAK,QAAQ,cAAc,+EAA6E,EAG/G,IAAO,EAAK,QACV,cACA,iHACD,EAGD,IAAO,EAAK,QAAQ,cAAc,uCAAqC,EACvE,IAAO,EAAK,QAAQ,4BAA4B,6BAA2B,EAG3E,IAAO,EAAK,QAAQ,iBAAiB,GAAO,MAAY;EACtD,IAAM,IAAQ,EAAQ,MAAM,IAAI,CAAC,KAAK,MAAiB,EAAK,MAAM,CAAC;AAGnE,SAFiB,EAAM,MAAM,MAAc,EAAE,MAAM,OAAO,CAAC,GACtC,KACd,OAAO,EAAM,KAAK,MAAc,8DAA8D,EAAE,OAAO,CAAC,KAAK,GAAG,CAAC;GACxH,EACF,IAAO,EAAK,QAAQ,uBAAuB,0DAAwD,EAGnG,IAAO,EACJ,MAAM,OAAO,CACb,KAAK,MACA,EAAK,WAAW,IAAI,GAAS,IAC1B,qCAAqC,EAAK,MACjD,CACD,KAAK,GAAG,EAGX,IAAO,EAAK,QAAQ,OAAO,QAAQ,EAE5B;;AAGT,IAAM,IAAoB;CACxB,MAAM;CACN,QAAQ;CACR,OAAO;CACP,SAAS;CACV,EAMY,IAAkC,EAAK,SAAoB,EAAE,WAAQ,WAAQ;CAExF,IAAM,EAAE,YAAS,WAAQ,cAAW,kBADnB,QAAc,EAAgB,EAAO,QAAQ,EAAK,EAAE,CAAC,EAAO,QAAQ,EAAK,CAAC,EAGrF,IAAkB,QACjB,IAED,MAAW,aACN,EAAE,QAAQ,EAAc,EAAQ,EAAE,GAGvC,MAAW,SACN,EAAE,QAAQ,GAAS,GAIrB,OAXc,MAYpB,CAAC,GAAS,EAAO,CAAC,EAEf,IAAiB,EAAkB,KAAa;AA4BtD,QA1BK,IAkBD,MAAW,UAEX,kBAAC,OAAD;EAAK,WAAW,4BAA4B;YAC1C,kBAAC,OAAD;GAAK,WAAU;aAA2D;GAAc,CAAA;EACpF,CAAA,GAKR,kBAAC,OAAD;EAAK,WAAW,4BAA4B;YAC1C,kBAAC,OAAD;GAAK,WAAU;GAA8C,yBAAyB;GAAoB,CAAA;EACtG,CAAA,GA3BJ,kBAAC,OAAD;EAAK,WAAU;YACb,kBAAC,OAAD;GAAK,WAAU;aAAf,CACE,kBAAC,OAAD;IAAK,WAAU;IAAyC,MAAK;IAAO,QAAO;IAAe,SAAQ;cAChG,kBAAC,QAAD;KACE,eAAc;KACd,gBAAe;KACf,aAAa;KACb,GAAE;KACF,CAAA;IACE,CAAA,EACN,kBAAC,KAAD,EAAA,UAAG,mBAAmB,CAAA,CAClB;;EACF,CAAA;EAiBV"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/bigconsole/components/widgets/text-widget/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,KAAK,QAAQ,EAAE,KAAK,UAAU,EAAE,KAAK,aAAa,EAAE,KAAK,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACxH,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"textData.d.ts","sourceRoot":"","sources":["../../../../../src/bigconsole/components/widgets/text-widget/textData.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC;AACvD,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;AAEpE,MAAM,WAAW,QAAQ;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,SAAS,CAAC,EAAE,aAAa,CAAC;CAC3B;AAkDD,MAAM,WAAW,gBAAiB,SAAQ,QAAQ;IAChD,wDAAwD;IACxD,UAAU,EAAE,OAAO,CAAC;CACrB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAAE,OAAO,EAAE,OAAO,GAAG,gBAAgB,CA+CrH"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"textData.js","names":[],"sources":["../../../../../src/bigconsole/components/widgets/text-widget/textData.ts"],"sourcesContent":["/**\n * Text widget data contract (BOFF-5555).\n *\n * Centralises how raw parser / DataSink output and static widget configuration\n * are merged into the shape the TextWidget renderer expects. Keeping this logic\n * pure makes the DataSink → Parser → Widget contract testable and keeps the\n * React component thin.\n */\n\nexport type TextFormat = 'markdown' | 'html' | 'plain';\nexport type TextAlignment = 'left' | 'center' | 'right' | 'justify';\n\nexport interface TextData {\n content?: string;\n format?: TextFormat;\n alignment?: TextAlignment;\n}\n\nconst VALID_FORMATS = new Set<TextFormat>(['markdown', 'html', 'plain']);\nconst VALID_ALIGNMENTS = new Set<TextAlignment>(['left', 'center', 'right', 'justify']);\n\nfunction isValidFormat(value: unknown): value is TextFormat {\n return typeof value === 'string' && VALID_FORMATS.has(value as TextFormat);\n}\n\nfunction isValidAlignment(value: unknown): value is TextAlignment {\n return typeof value === 'string' && VALID_ALIGNMENTS.has(value as TextAlignment);\n}\n\nfunction asString(value: unknown): string {\n if (value === null || value === undefined) return '';\n if (typeof value === 'string') return value;\n return String(value);\n}\n\n/**\n * Convert an arbitrary object (e.g. parser output that forgot to wrap text in\n * a `content` field) into a reasonable markdown representation.\n */\nfunction objectToMarkdown(obj: Record<string, unknown>): string {\n const lines: string[] = [];\n\n for (const [key, val] of Object.entries(obj)) {\n if (val && typeof val === 'object' && !Array.isArray(val)) {\n lines.push(`### ${key}`);\n for (const [k2, v2] of Object.entries(val as Record<string, unknown>)) {\n lines.push(`- **${k2}:** ${v2}`);\n }\n } else if (Array.isArray(val)) {\n lines.push(`### ${key}`);\n val.slice(0, 10).forEach((item: unknown) => {\n if (item && typeof item === 'object') {\n const entries = Object.entries(item as Record<string, unknown>);\n lines.push(`- ${entries.map(([k, v]) => `**${k}:** ${v}`).join(' | ')}`);\n } else {\n lines.push(`- ${item}`);\n }\n });\n } else {\n lines.push(`- **${key}:** ${val}`);\n }\n }\n\n return lines.join('\\n');\n}\n\nexport interface ResolvedTextData extends TextData {\n /** Whether any renderable text content is available. */\n hasContent: boolean;\n}\n\n/**\n * Resolve the effective text widget data.\n *\n * Priority (highest first):\n * 1. Parser-provided `data` fields (`content`, `format`, `alignment`).\n * - If `data` is a plain string it becomes `content`.\n * - If `data` is an object without a `content` key it is auto-formatted as\n * markdown so arbitrary parser output still renders.\n * 2. Static `widgetConfig` fields (`content`, `format`, `alignment`).\n * 3. Safe defaults (`content: ''`, `format: 'markdown'`, `alignment: 'left'`).\n */\nexport function resolveTextData(widgetConfig: Record<string, unknown> | undefined, rawData: unknown): ResolvedTextData {\n const cfg = widgetConfig ?? {};\n const cfgContent = asString(cfg.content);\n const cfgFormat: TextFormat = isValidFormat(cfg.format) ? cfg.format : 'markdown';\n const cfgAlignment: TextAlignment = isValidAlignment(cfg.alignment) ? cfg.alignment : 'left';\n\n // Parser provided a plain string — common for simple text sinks.\n if (typeof rawData === 'string') {\n return {\n content: rawData,\n format: cfgFormat,\n alignment: cfgAlignment,\n hasContent: rawData.length > 0,\n };\n }\n\n // Parser provided a structured object.\n if (rawData && typeof rawData === 'object' && !Array.isArray(rawData)) {\n const obj = rawData as Record<string, unknown>;\n\n if ('content' in obj) {\n const content = asString(obj.content);\n return {\n content,\n format: isValidFormat(obj.format) ? obj.format : cfgFormat,\n alignment: isValidAlignment(obj.alignment) ? obj.alignment : cfgAlignment,\n hasContent: content.length > 0,\n };\n }\n\n // Object without an explicit content key — render it as markdown.\n const content = objectToMarkdown(obj);\n return {\n content,\n format: 'markdown' as TextFormat,\n alignment: cfgAlignment,\n hasContent: content.length > 0,\n };\n }\n\n // No parser data — fall back to static configuration.\n return {\n content: cfgContent,\n format: cfgFormat,\n alignment: cfgAlignment,\n hasContent: cfgContent.length > 0,\n };\n}\n"],"mappings":";AAkBA,IAAM,IAAgB,IAAI,IAAgB;CAAC;CAAY;CAAQ;CAAQ,CAAC,EAClE,IAAmB,IAAI,IAAmB;CAAC;CAAQ;CAAU;CAAS;CAAU,CAAC;AAEvF,SAAS,EAAc,GAAqC;AAC1D,QAAO,OAAO,KAAU,YAAY,EAAc,IAAI,EAAoB;;AAG5E,SAAS,EAAiB,GAAwC;AAChE,QAAO,OAAO,KAAU,YAAY,EAAiB,IAAI,EAAuB;;AAGlF,SAAS,EAAS,GAAwB;AAGxC,QAFI,KAAU,OAAoC,KAC9C,OAAO,KAAU,WAAiB,IAC/B,OAAO,EAAM;;AAOtB,SAAS,EAAiB,GAAsC;CAC9D,IAAM,IAAkB,EAAE;AAE1B,MAAK,IAAM,CAAC,GAAK,MAAQ,OAAO,QAAQ,EAAI,CAC1C,KAAI,KAAO,OAAO,KAAQ,YAAY,CAAC,MAAM,QAAQ,EAAI,EAAE;AACzD,IAAM,KAAK,OAAO,IAAM;AACxB,OAAK,IAAM,CAAC,GAAI,MAAO,OAAO,QAAQ,EAA+B,CACnE,GAAM,KAAK,OAAO,EAAG,MAAM,IAAK;QAEzB,MAAM,QAAQ,EAAI,IAC3B,EAAM,KAAK,OAAO,IAAM,EACxB,EAAI,MAAM,GAAG,GAAG,CAAC,SAAS,MAAkB;AAC1C,MAAI,KAAQ,OAAO,KAAS,UAAU;GACpC,IAAM,IAAU,OAAO,QAAQ,EAAgC;AAC/D,KAAM,KAAK,KAAK,EAAQ,KAAK,CAAC,GAAG,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC,KAAK,MAAM,GAAG;QAExE,GAAM,KAAK,KAAK,IAAO;GAEzB,IAEF,EAAM,KAAK,OAAO,EAAI,MAAM,IAAM;AAItC,QAAO,EAAM,KAAK,KAAK;;AAmBzB,SAAgB,EAAgB,GAAmD,GAAoC;CACrH,IAAM,IAAM,KAAgB,EAAE,EACxB,IAAa,EAAS,EAAI,QAAQ,EAClC,IAAwB,EAAc,EAAI,OAAO,GAAG,EAAI,SAAS,YACjE,IAA8B,EAAiB,EAAI,UAAU,GAAG,EAAI,YAAY;AAGtF,KAAI,OAAO,KAAY,SACrB,QAAO;EACL,SAAS;EACT,QAAQ;EACR,WAAW;EACX,YAAY,EAAQ,SAAS;EAC9B;AAIH,KAAI,KAAW,OAAO,KAAY,YAAY,CAAC,MAAM,QAAQ,EAAQ,EAAE;EACrE,IAAM,IAAM;AAEZ,MAAI,aAAa,GAAK;GACpB,IAAM,IAAU,EAAS,EAAI,QAAQ;AACrC,UAAO;IACL;IACA,QAAQ,EAAc,EAAI,OAAO,GAAG,EAAI,SAAS;IACjD,WAAW,EAAiB,EAAI,UAAU,GAAG,EAAI,YAAY;IAC7D,YAAY,EAAQ,SAAS;IAC9B;;EAIH,IAAM,IAAU,EAAiB,EAAI;AACrC,SAAO;GACL;GACA,QAAQ;GACR,WAAW;GACX,YAAY,EAAQ,SAAS;GAC9B;;AAIH,QAAO;EACL,SAAS;EACT,QAAQ;EACR,WAAW;EACX,YAAY,EAAW,SAAS;EACjC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"TimelineWidget.d.ts","sourceRoot":"","sources":["../../../../../src/bigconsole/components/widgets/timeline/TimelineWidget.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,EAAiB,MAAM,OAAO,CAAC;AAC/C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAM7C,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,CAAC;CACxC;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,YAAY,EAAE,CAAC;IACvB,UAAU,CAAC,EAAE,iBAAiB,EAAE,CAAC;CAClC;AAaD;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,YAAY,GAAG,YAAY,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GACxE,YAAY,EAAE,CAkChB;AAiBD,eAAO,MAAM,cAAc,EAAE,EAAE,CAAC,mBAAmB,CAyIjD,CAAC;AAEH,eAAe,cAAc,CAAC"}