@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":"FilterChip.js","names":[],"sources":["../../../../../src/bigconsole/components/dashboard/GlobalFiltersBar/FilterChip.tsx"],"sourcesContent":["/**\n * FilterChip Component\n *\n * Individual filter chip with value display and controls.\n */\n\nimport React, { useState, useRef, useEffect } from 'react';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport type { GlobalFilter, FilterType } from '../../../hooks';\n\ntype TranslateFn = (\n key: string,\n fallbackOrParams?: string | Record<string, string | number>,\n params?: Record<string, string | number>\n) => string;\n\n// Dynamic colors that respect dark mode\nconst getColors = (isDark: boolean) => ({\n bgPrimary: isDark ? '#1f2937' : '#ffffff',\n bgSecondary: isDark ? '#374151' : '#f9fafb',\n textPrimary: isDark ? '#f9fafb' : '#111827',\n textSecondary: isDark ? '#9ca3af' : '#6b7280',\n borderDefault: isDark ? '#4b5563' : '#e5e7eb',\n actionPrimaryBg: '#6366f1',\n actionPrimaryBgSubtle: isDark ? '#312e81' : '#eef2ff',\n actionPrimaryFg: '#ffffff',\n bgTertiary: isDark ? '#4b5563' : '#f3f4f6',\n textTertiary: isDark ? '#6b7280' : '#9ca3af',\n statusErrorText: '#ef4444',\n statusErrorBg: isDark ? '#991b1b' : '#fee2e2',\n actionPrimaryText: isDark ? '#c7d2fe' : '#4338ca',\n backdropBg: 'rgba(0, 0, 0, 0.5)',\n});\n\n// Hook to detect dark mode\nfunction useDarkMode() {\n const [isDark, setIsDark] = useState(false);\n\n useEffect(() => {\n const checkDarkMode = () => {\n setIsDark(document.documentElement.classList.contains('dark'));\n };\n checkDarkMode();\n\n const observer = new MutationObserver(checkDarkMode);\n observer.observe(document.documentElement, { attributes: true, attributeFilter: ['class'] });\n return () => observer.disconnect();\n }, []);\n\n return isDark;\n}\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface FilterChipProps {\n filter: GlobalFilter;\n value: unknown;\n onChange: (value: unknown) => void;\n onEdit: () => void;\n onDelete: () => void;\n}\n\n// ============================================================================\n// Helper Functions\n// ============================================================================\n\n/**\n * Format filter value for display\n * Filter types per spec: DATE_RANGE, CATEGORY, CUSTOM, NUMERIC_RANGE, TEXT_SEARCH\n */\nfunction formatFilterValue(value: unknown, type: FilterType, t: TranslateFn): string {\n if (value === undefined || value === null) {\n return t('bigconsole.filters.chip.value.all', 'All');\n }\n\n switch (type) {\n case 'DATE_RANGE': {\n const dateRange = value as Record<string, unknown>;\n if (dateRange.start && dateRange.end) {\n return `${formatDate(dateRange.start as string)} - ${formatDate(dateRange.end as string)}`;\n }\n return t('bigconsole.filters.chip.value.allDates', 'All dates');\n }\n\n case 'CATEGORY':\n // Category can be single or multiple selection\n if (Array.isArray(value) && value.length > 0) {\n if (value.length === 1) {\n const first = value[0] as Record<string, unknown> | string;\n return (\n (typeof first === 'object' && first !== null\n ? ((first as Record<string, unknown>).label as string)\n : first) || String(value[0])\n );\n }\n return t('bigconsole.filters.chip.value.countSelected', '{{count}} selected', {\n count: value.length,\n });\n }\n if (typeof value === 'object' && value !== null) {\n return ((value as Record<string, unknown>).label as string) || t('bigconsole.filters.chip.value.all', 'All');\n }\n return String(value) || t('bigconsole.filters.chip.value.all', 'All');\n\n case 'TEXT_SEARCH':\n return (value as string) || t('bigconsole.filters.chip.value.any', 'Any');\n\n case 'NUMERIC_RANGE': {\n const numRange = value as Record<string, unknown>;\n if (numRange.min !== undefined && numRange.max !== undefined) {\n return `${numRange.min} - ${numRange.max}`;\n }\n if (numRange.min !== undefined) {\n return `>= ${numRange.min}`;\n }\n if (numRange.max !== undefined) {\n return `<= ${numRange.max}`;\n }\n return t('bigconsole.filters.chip.value.any', 'Any');\n }\n\n case 'CUSTOM':\n // Custom filters may have various value formats\n if (typeof value === 'object') {\n return JSON.stringify(value).substring(0, 30) + '...';\n }\n return String(value);\n\n default:\n return String(value);\n }\n}\n\nfunction formatDate(date: string | Date): string {\n const d = new Date(date);\n return d.toLocaleDateString('en-US', { month: 'short', day: 'numeric' });\n}\n\n// ============================================================================\n// Component\n// ============================================================================\n\nexport function FilterChip({ filter, value, onChange, onEdit, onDelete }: FilterChipProps) {\n const { t } = useI18n();\n const [isOpen, setIsOpen] = useState(false);\n const [showMenu, setShowMenu] = useState(false);\n const chipRef = useRef<HTMLDivElement>(null);\n const menuRef = useRef<HTMLDivElement>(null);\n const isDarkMode = useDarkMode();\n const SEMANTIC_COLORS = getColors(isDarkMode);\n\n const hasValue = value !== undefined && value !== null && value !== '';\n const displayValue = formatFilterValue(value, filter.type, t);\n\n // Close dropdown when clicking outside\n useEffect(() => {\n function handleClickOutside(event: MouseEvent) {\n if (chipRef.current && !chipRef.current.contains(event.target as Node)) {\n setIsOpen(false);\n setShowMenu(false);\n }\n }\n\n document.addEventListener('mousedown', handleClickOutside);\n return () => document.removeEventListener('mousedown', handleClickOutside);\n }, []);\n\n const handleClear = (e: React.MouseEvent) => {\n e.stopPropagation();\n onChange(undefined);\n };\n\n return (\n <div\n ref={chipRef}\n style={{\n position: 'relative',\n display: 'inline-flex',\n alignItems: 'center',\n gap: 'var(--space-iconGap)',\n padding: '0 var(--space-controlGap)',\n backgroundColor: hasValue ? 'var(--color-bg-accentSubtle)' : 'var(--color-bg-surface)',\n border: `1px solid ${hasValue ? 'var(--color-action-primary-border)' : 'var(--color-border-subtle)'}`,\n borderRadius: 'var(--radius-pill)',\n fontSize: 'var(--font-size-body-sm)',\n cursor: 'pointer',\n userSelect: 'none',\n transition: 'background-color 0.15s ease, border-color 0.15s ease',\n minHeight: 'var(--size-controlHeight-md)',\n maxWidth: '100%',\n }}\n >\n {/* Filter Name */}\n <span\n style={{\n fontWeight: 'var(--font-weight-semibold)',\n color: 'var(--color-text-primary)',\n fontSize: 'var(--font-size-body-sm)',\n }}\n onClick={() => setIsOpen(!isOpen)}\n >\n {filter.name}:\n </span>\n\n {/* Filter Value */}\n <span\n style={{\n color: hasValue ? 'var(--color-text-primary)' : 'var(--color-text-secondary)',\n maxWidth: 'min(200px, 45vw)',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n fontWeight: 'var(--font-weight-medium)',\n fontSize: 'var(--font-size-body-sm)',\n }}\n onClick={() => setIsOpen(!isOpen)}\n >\n {displayValue}\n </span>\n\n {/* Clear button */}\n {hasValue && (\n <button\n onClick={handleClear}\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '22px',\n height: '22px',\n padding: 0,\n backgroundColor: SEMANTIC_COLORS.statusErrorBg,\n border: 'none',\n borderRadius: '50%',\n cursor: 'pointer',\n color: SEMANTIC_COLORS.actionPrimaryFg,\n fontSize: '14px',\n fontWeight: 'bold',\n marginLeft: '4px',\n boxShadow: 'var(--shadow-elevation-1)',\n }}\n title={t('bigconsole.filters.chip.action.clear', 'Clear filter')}\n >\n ×\n </button>\n )}\n\n {/* Menu button */}\n <button\n onClick={(e) => {\n e.stopPropagation();\n setShowMenu(!showMenu);\n }}\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '22px',\n height: '22px',\n padding: 0,\n backgroundColor: SEMANTIC_COLORS.textTertiary,\n border: 'none',\n borderRadius: '50%',\n cursor: 'pointer',\n color: SEMANTIC_COLORS.actionPrimaryFg,\n fontSize: '16px',\n fontWeight: 'bold',\n marginLeft: '4px',\n boxShadow: 'var(--shadow-elevation-1)',\n }}\n title={t('bigconsole.filters.chip.action.options', 'Filter options')}\n >\n ⋮\n </button>\n\n {/* Value Editor Dropdown */}\n {isOpen && (\n <FilterValueEditor\n filter={filter}\n value={value}\n onChange={(newValue) => {\n onChange(newValue);\n setIsOpen(false);\n }}\n onClose={() => setIsOpen(false)}\n />\n )}\n\n {/* Context Menu */}\n {showMenu && (\n <>\n {/* Backdrop */}\n <div\n style={{\n position: 'fixed',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n zIndex: 99998,\n }}\n onClick={(e) => {\n e.stopPropagation();\n setShowMenu(false);\n }}\n />\n <div\n ref={menuRef}\n style={{\n position: 'absolute',\n top: '100%',\n right: 0,\n marginTop: '8px',\n minWidth: 'min(150px, calc(100vw - 2rem))',\n maxWidth: 'calc(100vw - 2rem)',\n backgroundColor: SEMANTIC_COLORS.bgPrimary,\n border: `1px solid ${SEMANTIC_COLORS.borderDefault}`,\n borderRadius: '8px',\n boxShadow: 'var(--shadow-elevation-3)',\n zIndex: 99999,\n overflow: 'hidden',\n }}\n >\n <button\n onClick={(e) => {\n e.stopPropagation();\n setShowMenu(false);\n onEdit();\n }}\n style={{\n display: 'flex',\n alignItems: 'center',\n gap: '8px',\n width: '100%',\n padding: '12px 16px',\n textAlign: 'left',\n backgroundColor: 'transparent',\n border: 'none',\n borderBottom: `1px solid ${SEMANTIC_COLORS.borderDefault}`,\n cursor: 'pointer',\n fontSize: '14px',\n color: SEMANTIC_COLORS.textPrimary,\n fontWeight: 500,\n }}\n >\n ✏️ {t('bigconsole.filters.chip.menu.edit', 'Edit Filter')}\n </button>\n <button\n onClick={(e) => {\n e.stopPropagation();\n setShowMenu(false);\n onDelete();\n }}\n style={{\n display: 'flex',\n alignItems: 'center',\n gap: '8px',\n width: '100%',\n padding: '12px 16px',\n textAlign: 'left',\n backgroundColor: 'transparent',\n border: 'none',\n cursor: 'pointer',\n fontSize: '14px',\n color: SEMANTIC_COLORS.statusErrorText,\n fontWeight: 500,\n }}\n >\n 🗑️ {t('bigconsole.filters.chip.menu.delete', 'Delete Filter')}\n </button>\n </div>\n </>\n )}\n </div>\n );\n}\n\n// ============================================================================\n// FilterValueEditor Sub-component\n// ============================================================================\n\ninterface FilterValueEditorProps {\n filter: GlobalFilter;\n value: unknown;\n onChange: (value: unknown) => void;\n onClose: () => void;\n}\n\nfunction FilterValueEditor({ filter, value, onChange, onClose }: FilterValueEditorProps) {\n const { t } = useI18n();\n const [localValue, setLocalValue] = useState(value);\n const isDarkMode = useDarkMode();\n const SEMANTIC_COLORS = getColors(isDarkMode);\n\n const handleApply = () => {\n onChange(localValue);\n };\n\n return (\n <>\n {/* Backdrop to capture clicks outside */}\n <div\n style={{\n position: 'fixed',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n zIndex: 99998,\n }}\n onClick={onClose}\n />\n <div\n style={{\n position: 'absolute',\n top: '100%',\n left: 0,\n marginTop: '8px',\n minWidth: 'min(280px, calc(100vw - 2rem))',\n maxWidth: 'calc(100vw - 2rem)',\n padding: '16px',\n backgroundColor: SEMANTIC_COLORS.bgPrimary,\n border: `1px solid ${SEMANTIC_COLORS.borderDefault}`,\n borderRadius: '12px',\n boxShadow: 'var(--shadow-elevation-3)',\n zIndex: 99999,\n }}\n onClick={(e) => e.stopPropagation()}\n >\n {/* Render appropriate input based on filter type (per spec) */}\n {filter.type === 'TEXT_SEARCH' && (\n <input\n type=\"text\"\n value={(localValue as string) || ''}\n onChange={(e) => setLocalValue(e.target.value)}\n placeholder={t('bigconsole.filters.chip.editor.searchPlaceholder', 'Search...')}\n style={{\n width: '100%',\n padding: '8px',\n border: `1px solid ${SEMANTIC_COLORS.borderDefault}`,\n borderRadius: '4px',\n fontSize: '13px',\n boxSizing: 'border-box',\n backgroundColor: SEMANTIC_COLORS.bgPrimary,\n color: SEMANTIC_COLORS.textPrimary,\n }}\n />\n )}\n\n {filter.type === 'CATEGORY' && (\n <select\n value={(localValue as string) || ''}\n onChange={(e) => setLocalValue(e.target.value)}\n style={{\n width: '100%',\n padding: '8px',\n border: `1px solid ${SEMANTIC_COLORS.borderDefault}`,\n borderRadius: '4px',\n fontSize: '13px',\n backgroundColor: SEMANTIC_COLORS.bgPrimary,\n color: SEMANTIC_COLORS.textPrimary,\n }}\n >\n <option value=\"\">{t('bigconsole.filters.chip.editor.allOption', 'All')}</option>\n {(filter.config.options as Array<Record<string, unknown>> | undefined)?.map((opt) => (\n <option key={String(opt.value)} value={String(opt.value)}>\n {String(opt.label)}\n </option>\n ))}\n </select>\n )}\n\n {filter.type === 'DATE_RANGE' &&\n (() => {\n const dateVal = (localValue || {}) as Record<string, string>;\n return (\n <div style={{ display: 'flex', flexDirection: 'column', gap: '8px' }}>\n <input\n type=\"date\"\n value={dateVal.start || ''}\n onChange={(e) => setLocalValue({ ...dateVal, start: e.target.value })}\n style={{\n padding: '8px',\n border: `1px solid ${SEMANTIC_COLORS.borderDefault}`,\n borderRadius: '4px',\n fontSize: '13px',\n backgroundColor: SEMANTIC_COLORS.bgPrimary,\n color: SEMANTIC_COLORS.textPrimary,\n }}\n />\n <input\n type=\"date\"\n value={dateVal.end || ''}\n onChange={(e) => setLocalValue({ ...dateVal, end: e.target.value })}\n style={{\n padding: '8px',\n border: `1px solid ${SEMANTIC_COLORS.borderDefault}`,\n borderRadius: '4px',\n fontSize: '13px',\n backgroundColor: SEMANTIC_COLORS.bgPrimary,\n color: SEMANTIC_COLORS.textPrimary,\n }}\n />\n </div>\n );\n })()}\n\n {filter.type === 'NUMERIC_RANGE' &&\n (() => {\n const numVal = (localValue || {}) as Record<string, number | undefined>;\n return (\n <div style={{ display: 'flex', gap: '8px' }}>\n <input\n type=\"number\"\n value={numVal.min ?? ''}\n onChange={(e) =>\n setLocalValue({ ...numVal, min: e.target.value ? Number(e.target.value) : undefined })\n }\n placeholder={t('bigconsole.filters.chip.editor.minPlaceholder', 'Min')}\n style={{\n flex: 1,\n padding: '8px',\n border: `1px solid ${SEMANTIC_COLORS.borderDefault}`,\n borderRadius: '4px',\n fontSize: '13px',\n backgroundColor: SEMANTIC_COLORS.bgPrimary,\n color: SEMANTIC_COLORS.textPrimary,\n }}\n />\n <input\n type=\"number\"\n value={numVal.max ?? ''}\n onChange={(e) =>\n setLocalValue({ ...numVal, max: e.target.value ? Number(e.target.value) : undefined })\n }\n placeholder={t('bigconsole.filters.chip.editor.maxPlaceholder', 'Max')}\n style={{\n flex: 1,\n padding: '8px',\n border: `1px solid ${SEMANTIC_COLORS.borderDefault}`,\n borderRadius: '4px',\n fontSize: '13px',\n backgroundColor: SEMANTIC_COLORS.bgPrimary,\n color: SEMANTIC_COLORS.textPrimary,\n }}\n />\n </div>\n );\n })()}\n\n {filter.type === 'CUSTOM' && (\n <input\n type=\"text\"\n value={typeof localValue === 'string' ? localValue : JSON.stringify(localValue || '')}\n onChange={(e) => setLocalValue(e.target.value)}\n placeholder={t('bigconsole.filters.chip.editor.customPlaceholder', 'Custom filter value...')}\n style={{\n width: '100%',\n padding: '8px',\n border: `1px solid ${SEMANTIC_COLORS.borderDefault}`,\n borderRadius: '4px',\n fontSize: '13px',\n boxSizing: 'border-box',\n backgroundColor: SEMANTIC_COLORS.bgPrimary,\n color: SEMANTIC_COLORS.textPrimary,\n }}\n />\n )}\n\n {/* Apply Button */}\n <div style={{ marginTop: '16px', display: 'flex', justifyContent: 'flex-end', gap: '10px' }}>\n <button\n onClick={onClose}\n style={{\n padding: '8px 16px',\n fontSize: '14px',\n backgroundColor: SEMANTIC_COLORS.bgPrimary,\n border: `1px solid ${SEMANTIC_COLORS.borderDefault}`,\n borderRadius: '6px',\n cursor: 'pointer',\n color: SEMANTIC_COLORS.textSecondary,\n fontWeight: 500,\n }}\n >\n {t('bigconsole.filters.chip.editor.cancel', 'Cancel')}\n </button>\n <button\n onClick={handleApply}\n style={{\n padding: '8px 16px',\n fontSize: '14px',\n backgroundColor: SEMANTIC_COLORS.actionPrimaryBg,\n color: SEMANTIC_COLORS.actionPrimaryFg,\n border: 'none',\n borderRadius: '6px',\n cursor: 'pointer',\n fontWeight: 500,\n boxShadow: 'var(--shadow-elevation-1)',\n }}\n >\n {t('bigconsole.filters.chip.editor.apply', 'Apply')}\n </button>\n </div>\n </div>\n </>\n );\n}\n\nexport default FilterChip;\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"FilterEditor.d.ts","sourceRoot":"","sources":["../../../../../src/bigconsole/components/dashboard/GlobalFiltersBar/FilterEditor.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAuC,MAAM,OAAO,CAAC;AAE5D,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAsB/D,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC;IAC5B,MAAM,EAAE,CAAC,IAAI,EAAE;QACb,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,UAAU,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAChC,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,UAAU,CAAC,EAAE,OAAO,CAAC;KACtB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAMD,wBAAgB,YAAY,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,iBAAiB,qBA0d1E;AAED,eAAe,YAAY,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"FilterEditor.js","names":[],"sources":["../../../../../src/bigconsole/components/dashboard/GlobalFiltersBar/FilterEditor.tsx"],"sourcesContent":["/**\n * FilterEditor Component\n *\n * Modal for creating/editing global filters.\n */\n\nimport React, { useState, useEffect, useMemo } from 'react';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport type { GlobalFilter, FilterType } from '../../../hooks';\n\n// Dynamic colors that respect dark mode\nconst getColors = (isDark: boolean) => ({\n bgPrimary: isDark ? '#1f2937' : '#ffffff',\n bgSecondary: isDark ? '#374151' : '#f9fafb',\n textPrimary: isDark ? '#f9fafb' : '#111827',\n textSecondary: isDark ? '#9ca3af' : '#6b7280',\n borderDefault: isDark ? '#4b5563' : '#e5e7eb',\n actionPrimaryBg: '#6366f1',\n actionPrimaryBgSubtle: isDark ? '#312e81' : '#eef2ff',\n actionPrimaryFg: '#ffffff',\n bgTertiary: isDark ? '#4b5563' : '#f3f4f6',\n textTertiary: isDark ? '#6b7280' : '#9ca3af',\n statusErrorText: '#dc2626',\n backdropBg: 'rgba(0, 0, 0, 0.5)',\n});\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface FilterEditorProps {\n filter: GlobalFilter | null;\n onSave: (data: {\n name: string;\n type: FilterType;\n config: Record<string, unknown>;\n defaultValue?: unknown;\n isRequired?: boolean;\n }) => void | Promise<void>;\n onClose: () => void;\n}\n\n// ============================================================================\n// Component\n// ============================================================================\n\nexport function FilterEditor({ filter, onSave, onClose }: FilterEditorProps) {\n const { t } = useI18n();\n const [isSaving, setIsSaving] = useState(false);\n const [saveError, setSaveError] = useState(false);\n const [name, setName] = useState(filter?.name || '');\n const [type, setType] = useState<FilterType>(filter?.type || 'CATEGORY');\n const [isRequired, setIsRequired] = useState(filter?.isRequired || false);\n const [options, setOptions] = useState<{ value: string; label: string }[]>(\n (filter?.config?.options as { value: string; label: string }[] | undefined) || [{ value: '', label: '' }]\n );\n const [dataField, setDataField] = useState(typeof filter?.config?.field === 'string' ? filter.config.field : '');\n const [placeholder, setPlaceholder] = useState((filter?.config?.placeholder as string) || '');\n const [isDarkMode, setIsDarkMode] = useState(false);\n\n // Detect dark mode\n useEffect(() => {\n const checkDarkMode = () => {\n setIsDarkMode(document.documentElement.classList.contains('dark'));\n };\n checkDarkMode();\n\n // Watch for theme changes\n const observer = new MutationObserver(checkDarkMode);\n observer.observe(document.documentElement, { attributes: true, attributeFilter: ['class'] });\n return () => observer.disconnect();\n }, []);\n\n const COLORS = getColors(isDarkMode);\n const isEditing = !!filter;\n\n /**\n * Filter types as per spec (03-graphql-contract.md)\n * Spec values: date_range, category, custom, numeric_range, text_search\n */\n const FILTER_TYPES = useMemo<{ value: FilterType; label: string; description: string }[]>(\n () => [\n {\n value: 'CATEGORY',\n label: t('bigconsole.filters.editor.type.category.label', 'Category'),\n description: t('bigconsole.filters.editor.type.category.description', 'Selection from predefined categories'),\n },\n {\n value: 'DATE_RANGE',\n label: t('bigconsole.filters.editor.type.dateRange.label', 'Date Range'),\n description: t('bigconsole.filters.editor.type.dateRange.description', 'Start and end date selection'),\n },\n {\n value: 'NUMERIC_RANGE',\n label: t('bigconsole.filters.editor.type.numericRange.label', 'Numeric Range'),\n description: t('bigconsole.filters.editor.type.numericRange.description', 'Min and max number values'),\n },\n {\n value: 'TEXT_SEARCH',\n label: t('bigconsole.filters.editor.type.textSearch.label', 'Text Search'),\n description: t('bigconsole.filters.editor.type.textSearch.description', 'Free text search input'),\n },\n {\n value: 'CUSTOM',\n label: t('bigconsole.filters.editor.type.custom.label', 'Custom'),\n description: t('bigconsole.filters.editor.type.custom.description', 'Custom filter configuration'),\n },\n ],\n [t]\n );\n\n const handleAddOption = () => {\n setOptions([...options, { value: '', label: '' }]);\n };\n\n const handleRemoveOption = (index: number) => {\n setOptions(options.filter((_, i) => i !== index));\n };\n\n const handleOptionChange = (index: number, field: 'value' | 'label', value: string) => {\n setOptions(options.map((opt, i) => (i === index ? { ...opt, [field]: value } : opt)));\n };\n\n const handleSave = async () => {\n if (isSaving) return;\n setIsSaving(true);\n setSaveError(false);\n const config: Record<string, unknown> = { ...filter?.config };\n\n // CATEGORY type uses options for selection\n if (type === 'CATEGORY') {\n config.options = options.filter((opt) => opt.value && opt.label);\n }\n\n if (placeholder) config.placeholder = placeholder;\n else delete config.placeholder;\n if (dataField.trim()) config.field = dataField.trim();\n else delete config.field;\n\n try {\n await onSave({ name, type, config, isRequired });\n } catch {\n setSaveError(true);\n } finally {\n setIsSaving(false);\n }\n };\n\n const isValid = name.trim() !== '' && (type !== 'CATEGORY' || options.some((opt) => opt.value && opt.label));\n\n return (\n <div\n style={{\n position: 'fixed',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n width: '100vw',\n height: '100vh',\n backgroundColor: COLORS.backdropBg,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n zIndex: 10000,\n isolation: 'isolate',\n }}\n onClick={onClose}\n >\n <div\n style={{\n width: '100%',\n maxWidth: 'min(480px, calc(100vw - 2rem))',\n maxHeight: '80vh',\n backgroundColor: COLORS.bgPrimary,\n borderRadius: '8px',\n boxShadow: 'var(--shadow-elevation-3)',\n overflow: 'hidden',\n position: 'relative',\n }}\n onClick={(e) => e.stopPropagation()}\n >\n {/* Header */}\n <div\n style={{\n padding: '16px 20px',\n borderBottom: `1px solid ${COLORS.borderDefault}`,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n backgroundColor: COLORS.bgPrimary,\n }}\n >\n <h3 style={{ margin: 0, fontSize: '16px', fontWeight: 600, color: COLORS.textPrimary }}>\n {isEditing\n ? t('bigconsole.filters.editor.title.edit', 'Edit Filter')\n : t('bigconsole.filters.editor.title.add', 'Add Filter')}\n </h3>\n <button\n onClick={onClose}\n style={{\n background: 'none',\n border: 'none',\n fontSize: '20px',\n cursor: 'pointer',\n color: COLORS.textSecondary,\n lineHeight: 1,\n }}\n >\n ×\n </button>\n </div>\n\n {/* Content */}\n <div\n style={{\n padding: '20px',\n overflowY: 'auto',\n maxHeight: 'calc(80vh - 130px)',\n backgroundColor: COLORS.bgPrimary,\n }}\n >\n {/* Filter Name */}\n <div style={{ marginBottom: '16px' }}>\n <label\n style={{\n display: 'block',\n marginBottom: '6px',\n fontSize: '13px',\n fontWeight: 500,\n color: COLORS.textPrimary,\n }}\n >\n {t('bigconsole.filters.editor.field.name.label', 'Filter Name *')}\n </label>\n <input\n type=\"text\"\n value={name}\n onChange={(e) => setName(e.target.value)}\n placeholder={t('bigconsole.filters.editor.field.name.placeholder', 'e.g., Status, Date Range, Category')}\n style={{\n width: '100%',\n padding: '10px 12px',\n border: `1px solid ${COLORS.borderDefault}`,\n borderRadius: '6px',\n fontSize: '14px',\n boxSizing: 'border-box',\n backgroundColor: COLORS.bgPrimary,\n color: COLORS.textPrimary,\n }}\n />\n </div>\n\n <div style={{ marginBottom: '16px' }}>\n <label htmlFor=\"global-filter-data-field\" className=\"mb-2 block text-sm font-medium text-text-primary\">\n {t('bigconsole.filters.editor.dataField', 'Data field (optional)')}\n </label>\n <input\n id=\"global-filter-data-field\"\n value={dataField}\n onChange={(event) => setDataField(event.target.value)}\n className=\"w-full rounded-button border border-border-subtle bg-bg-surface px-3 py-2 text-text-primary\"\n placeholder={t('bigconsole.filters.editor.dataFieldPlaceholder', 'e.g., region, country, cohort')}\n />\n <p className=\"mt-1 text-xs text-text-secondary\">\n {t(\n 'bigconsole.filters.editor.dataFieldHelp',\n 'Match a field in the parser output. Leave blank to use automatic matching.'\n )}\n </p>\n </div>\n\n {saveError && (\n <p role=\"alert\" className=\"mb-3 text-sm text-status-error-text\">\n {t(\n 'bigconsole.filters.editor.saveError',\n 'The filter could not be saved. Your changes are still here; try again.'\n )}\n </p>\n )}\n {/* Filter Type */}\n {!isEditing && (\n <div style={{ marginBottom: '16px' }}>\n <label\n style={{\n display: 'block',\n marginBottom: '8px',\n fontSize: '13px',\n fontWeight: 500,\n color: COLORS.textPrimary,\n }}\n >\n {t('bigconsole.filters.editor.field.type.label', 'Filter Type *')}\n </label>\n <div style={{ display: 'grid', gridTemplateColumns: 'repeat(2, 1fr)', gap: '10px' }}>\n {FILTER_TYPES.map((ft) => (\n <button\n key={ft.value}\n onClick={() => setType(ft.value)}\n type=\"button\"\n style={{\n padding: '12px',\n textAlign: 'left',\n backgroundColor: type === ft.value ? COLORS.actionPrimaryBgSubtle : COLORS.bgSecondary,\n border: `2px solid ${type === ft.value ? COLORS.actionPrimaryBg : COLORS.borderDefault}`,\n borderRadius: '6px',\n cursor: 'pointer',\n transition: 'all 0.2s ease',\n minHeight: '60px',\n }}\n >\n <div style={{ fontWeight: 500, fontSize: '13px', color: COLORS.textPrimary }}>{ft.label}</div>\n <div\n style={{\n fontSize: '11px',\n color: COLORS.textSecondary,\n marginTop: '4px',\n lineHeight: '1.3',\n }}\n >\n {ft.description}\n </div>\n </button>\n ))}\n </div>\n </div>\n )}\n\n {/* Options (for CATEGORY type) */}\n {type === 'CATEGORY' && (\n <div style={{ marginBottom: '16px' }}>\n <label\n style={{\n display: 'block',\n marginBottom: '8px',\n fontSize: '13px',\n fontWeight: 500,\n color: COLORS.textPrimary,\n }}\n >\n {t('bigconsole.filters.editor.field.options.label', 'Options')}\n </label>\n <div style={{ display: 'flex', flexDirection: 'column', gap: '8px' }}>\n {options.map((opt, index) => (\n <div key={index} style={{ display: 'flex', gap: '8px', alignItems: 'center' }}>\n <input\n type=\"text\"\n value={opt.value}\n onChange={(e) => handleOptionChange(index, 'value', e.target.value)}\n placeholder={t('bigconsole.filters.editor.field.options.valuePlaceholder', 'Value')}\n style={{\n flex: 1,\n padding: '8px 10px',\n border: `1px solid ${COLORS.borderDefault}`,\n borderRadius: '4px',\n fontSize: '13px',\n boxSizing: 'border-box',\n backgroundColor: COLORS.bgPrimary,\n color: COLORS.textPrimary,\n }}\n />\n <input\n type=\"text\"\n value={opt.label}\n onChange={(e) => handleOptionChange(index, 'label', e.target.value)}\n placeholder={t('bigconsole.filters.editor.field.options.labelPlaceholder', 'Label')}\n style={{\n flex: 1,\n padding: '8px 10px',\n border: `1px solid ${COLORS.borderDefault}`,\n borderRadius: '4px',\n fontSize: '13px',\n boxSizing: 'border-box',\n backgroundColor: COLORS.bgPrimary,\n color: COLORS.textPrimary,\n }}\n />\n {options.length > 1 && (\n <button\n type=\"button\"\n onClick={() => handleRemoveOption(index)}\n style={{\n padding: '6px 10px',\n backgroundColor: 'transparent',\n border: `1px solid ${COLORS.statusErrorText}`,\n borderRadius: '4px',\n cursor: 'pointer',\n color: COLORS.statusErrorText,\n fontSize: '12px',\n }}\n >\n {t('bigconsole.filters.editor.field.options.remove', 'Remove')}\n </button>\n )}\n </div>\n ))}\n <button\n type=\"button\"\n onClick={handleAddOption}\n style={{\n padding: '8px',\n backgroundColor: 'transparent',\n border: `1px dashed ${COLORS.borderDefault}`,\n borderRadius: '4px',\n cursor: 'pointer',\n color: COLORS.textSecondary,\n fontSize: '12px',\n }}\n >\n {t('bigconsole.filters.editor.field.options.add', '+ Add Option')}\n </button>\n </div>\n </div>\n )}\n\n {/* Placeholder */}\n {(type === 'TEXT_SEARCH' || type === 'CATEGORY') && (\n <div style={{ marginBottom: '16px' }}>\n <label\n style={{\n display: 'block',\n marginBottom: '8px',\n fontSize: '13px',\n fontWeight: 500,\n color: COLORS.textPrimary,\n }}\n >\n {t('bigconsole.filters.editor.field.placeholder.label', 'Placeholder Text')}\n </label>\n <input\n type=\"text\"\n value={placeholder}\n onChange={(e) => setPlaceholder(e.target.value)}\n placeholder={t('bigconsole.filters.editor.field.placeholder.placeholder', 'e.g., Select an option...')}\n style={{\n width: '100%',\n padding: '10px 12px',\n border: `1px solid ${COLORS.borderDefault}`,\n borderRadius: '6px',\n fontSize: '14px',\n boxSizing: 'border-box',\n backgroundColor: COLORS.bgPrimary,\n color: COLORS.textPrimary,\n }}\n />\n </div>\n )}\n\n {/* Required Toggle */}\n <div style={{ marginBottom: '16px' }}>\n <label\n style={{\n display: 'flex',\n alignItems: 'center',\n gap: '8px',\n cursor: 'pointer',\n }}\n >\n <input\n type=\"checkbox\"\n checked={isRequired}\n onChange={(e) => setIsRequired(e.target.checked)}\n style={{ width: '16px', height: '16px' }}\n />\n <span style={{ fontSize: '13px', color: COLORS.textPrimary }}>\n {t('bigconsole.filters.editor.field.required.label', 'Required filter (must have a value)')}\n </span>\n </label>\n </div>\n </div>\n\n {/* Footer */}\n <div\n style={{\n padding: '16px 20px',\n borderTop: `1px solid ${COLORS.borderDefault}`,\n display: 'flex',\n justifyContent: 'flex-end',\n gap: '12px',\n backgroundColor: COLORS.bgPrimary,\n }}\n >\n <button\n type=\"button\"\n onClick={onClose}\n style={{\n padding: '10px 20px',\n backgroundColor: COLORS.bgPrimary,\n border: `1px solid ${COLORS.borderDefault}`,\n borderRadius: '6px',\n cursor: 'pointer',\n fontSize: '14px',\n color: COLORS.textSecondary,\n }}\n >\n {t('bigconsole.filters.editor.action.cancel', 'Cancel')}\n </button>\n <button\n type=\"button\"\n onClick={handleSave}\n disabled={!isValid || isSaving}\n style={{\n padding: '10px 20px',\n backgroundColor: isValid ? COLORS.actionPrimaryBg : COLORS.bgTertiary,\n color: isValid ? COLORS.actionPrimaryFg : COLORS.textTertiary,\n border: 'none',\n borderRadius: '6px',\n cursor: isValid ? 'pointer' : 'not-allowed',\n fontSize: '14px',\n fontWeight: 500,\n }}\n >\n {isEditing\n ? t('bigconsole.filters.editor.action.saveChanges', 'Save Changes')\n : t('bigconsole.filters.editor.action.add', 'Add Filter')}\n </button>\n </div>\n </div>\n </div>\n );\n}\n\nexport default FilterEditor;\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"FilterPresetSelector.d.ts","sourceRoot":"","sources":["../../../../../src/bigconsole/components/dashboard/GlobalFiltersBar/FilterPresetSelector.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAsC,MAAM,OAAO,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAQpE,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,aAAa,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3D,cAAc,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAMD,wBAAgB,oBAAoB,CAAC,EACnC,OAAO,EACP,cAAc,EACd,aAAa,EACb,YAAY,EACZ,cAAc,EACd,QAAgB,GACjB,EAAE,yBAAyB,qBAkW3B;AAED,eAAe,oBAAoB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"FilterPresetSelector.js","names":[],"sources":["../../../../../src/bigconsole/components/dashboard/GlobalFiltersBar/FilterPresetSelector.tsx"],"sourcesContent":["/**\n * FilterPresetSelector Component\n *\n * Dropdown to select, save, and manage filter presets.\n */\n\nimport React, { useState, useRef, useEffect } from 'react';\nimport type { FilterPreset } from '../../../hooks/useFilterPresets';\nimport { SEMANTIC_COLORS } from '../../../utils/semanticTokens';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface FilterPresetSelectorProps {\n presets: FilterPreset[];\n activePresetId: string | null;\n onApplyPreset: (presetId: string) => void;\n onSavePreset: (name: string, description?: string) => void;\n onDeletePreset: (presetId: string) => void;\n disabled?: boolean;\n}\n\n// ============================================================================\n// Component\n// ============================================================================\n\nexport function FilterPresetSelector({\n presets,\n activePresetId,\n onApplyPreset,\n onSavePreset,\n onDeletePreset,\n disabled = false,\n}: FilterPresetSelectorProps) {\n const { t } = useI18n();\n const [isOpen, setIsOpen] = useState(false);\n const [showSaveDialog, setShowSaveDialog] = useState(false);\n const [newPresetName, setNewPresetName] = useState('');\n const [newPresetDescription, setNewPresetDescription] = useState('');\n const dropdownRef = useRef<HTMLDivElement>(null);\n\n const activePreset = presets.find((p) => p.id === activePresetId);\n\n // Close dropdown when clicking outside\n useEffect(() => {\n function handleClickOutside(event: MouseEvent) {\n if (dropdownRef.current && !dropdownRef.current.contains(event.target as Node)) {\n setIsOpen(false);\n setShowSaveDialog(false);\n }\n }\n\n document.addEventListener('mousedown', handleClickOutside);\n return () => document.removeEventListener('mousedown', handleClickOutside);\n }, []);\n\n const handleSavePreset = () => {\n if (newPresetName.trim()) {\n onSavePreset(newPresetName.trim(), newPresetDescription.trim() || undefined);\n setNewPresetName('');\n setNewPresetDescription('');\n setShowSaveDialog(false);\n setIsOpen(false);\n }\n };\n\n const handleDeletePreset = (e: React.MouseEvent, presetId: string) => {\n e.stopPropagation();\n if (window.confirm(t('bigconsole.filters.presets.deleteConfirm', 'Are you sure you want to delete this preset?'))) {\n onDeletePreset(presetId);\n }\n };\n\n return (\n <div ref={dropdownRef} style={{ position: 'relative', display: 'inline-block' }}>\n {/* Preset Button */}\n <button\n onClick={() => !disabled && setIsOpen(!isOpen)}\n disabled={disabled}\n style={{\n display: 'flex',\n alignItems: 'center',\n gap: '8px',\n padding: '8px 14px',\n backgroundColor: activePreset ? SEMANTIC_COLORS.statusSuccessBgSubtle : SEMANTIC_COLORS.bgPrimary,\n border: `1px solid ${activePreset ? SEMANTIC_COLORS.statusSuccessBg : SEMANTIC_COLORS.borderDefault}`,\n borderRadius: '6px',\n cursor: disabled ? 'not-allowed' : 'pointer',\n fontSize: '13px',\n color: activePreset ? SEMANTIC_COLORS.statusSuccessText : SEMANTIC_COLORS.textSecondary,\n fontWeight: 500,\n opacity: disabled ? 0.6 : 1,\n minWidth: 'min(140px, 100%)',\n maxWidth: '100%',\n justifyContent: 'space-between',\n }}\n >\n <span style={{ display: 'flex', alignItems: 'center', gap: '6px' }}>\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <path d=\"M19 21H5a2 2 0 01-2-2V5a2 2 0 012-2h11l5 5v11a2 2 0 01-2 2z\" />\n <polyline points=\"17,21 17,13 7,13 7,21\" />\n <polyline points=\"7,3 7,8 15,8\" />\n </svg>\n {activePreset ? activePreset.name : t('bigconsole.filters.presets.buttonLabel', 'Presets')}\n </span>\n <svg\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n style={{\n transform: isOpen ? 'rotate(180deg)' : 'rotate(0deg)',\n transition: 'transform 0.2s ease',\n }}\n >\n <polyline points=\"6,9 12,15 18,9\" />\n </svg>\n </button>\n\n {/* Dropdown Menu */}\n {isOpen && (\n <div\n style={{\n position: 'absolute',\n top: '100%',\n left: 0,\n marginTop: '4px',\n minWidth: 'min(280px, calc(100vw - 2rem))',\n maxWidth: 'calc(100vw - 2rem)',\n backgroundColor: SEMANTIC_COLORS.bgPrimary,\n border: `1px solid ${SEMANTIC_COLORS.borderDefault}`,\n borderRadius: '8px',\n boxShadow: 'var(--shadow-elevation-2)',\n zIndex: 100000,\n overflow: 'hidden',\n }}\n >\n {/* Header */}\n <div\n style={{\n padding: '12px 16px',\n borderBottom: `1px solid ${SEMANTIC_COLORS.borderDefault}`,\n backgroundColor: SEMANTIC_COLORS.bgSecondary,\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n }}\n >\n <span style={{ fontWeight: 600, fontSize: '13px', color: SEMANTIC_COLORS.textPrimary }}>\n {t('bigconsole.filters.presets.header', 'Filter Presets')}\n </span>\n <button\n onClick={() => setShowSaveDialog(true)}\n style={{\n padding: '4px 10px',\n fontSize: '12px',\n backgroundColor: SEMANTIC_COLORS.actionPrimaryBg,\n color: SEMANTIC_COLORS.actionPrimaryFg,\n border: 'none',\n borderRadius: '4px',\n cursor: 'pointer',\n fontWeight: 500,\n }}\n >\n {t('bigconsole.filters.presets.saveCurrent', '+ Save Current')}\n </button>\n </div>\n\n {/* Save Dialog */}\n {showSaveDialog && (\n <div\n style={{\n padding: '12px 16px',\n borderBottom: `1px solid ${SEMANTIC_COLORS.borderDefault}`,\n backgroundColor: SEMANTIC_COLORS.bgSecondary,\n }}\n >\n <input\n type=\"text\"\n value={newPresetName}\n onChange={(e) => setNewPresetName(e.target.value)}\n placeholder={t('bigconsole.filters.presets.namePlaceholder', 'Preset name...')}\n autoFocus\n style={{\n width: '100%',\n padding: '8px 10px',\n border: `1px solid ${SEMANTIC_COLORS.borderDefault}`,\n borderRadius: '4px',\n fontSize: '13px',\n marginBottom: '8px',\n boxSizing: 'border-box',\n backgroundColor: SEMANTIC_COLORS.bgPrimary,\n color: SEMANTIC_COLORS.textPrimary,\n }}\n />\n <input\n type=\"text\"\n value={newPresetDescription}\n onChange={(e) => setNewPresetDescription(e.target.value)}\n placeholder={t('bigconsole.filters.presets.descriptionPlaceholder', 'Description (optional)...')}\n style={{\n width: '100%',\n padding: '8px 10px',\n border: `1px solid ${SEMANTIC_COLORS.borderDefault}`,\n borderRadius: '4px',\n fontSize: '13px',\n marginBottom: '8px',\n boxSizing: 'border-box',\n backgroundColor: SEMANTIC_COLORS.bgPrimary,\n color: SEMANTIC_COLORS.textPrimary,\n }}\n />\n <div style={{ display: 'flex', gap: '8px', justifyContent: 'flex-end' }}>\n <button\n onClick={() => {\n setShowSaveDialog(false);\n setNewPresetName('');\n setNewPresetDescription('');\n }}\n style={{\n padding: '6px 12px',\n fontSize: '12px',\n backgroundColor: SEMANTIC_COLORS.bgPrimary,\n border: `1px solid ${SEMANTIC_COLORS.borderDefault}`,\n borderRadius: '4px',\n cursor: 'pointer',\n color: SEMANTIC_COLORS.textSecondary,\n }}\n >\n {t('bigconsole.filters.presets.cancel', 'Cancel')}\n </button>\n <button\n onClick={handleSavePreset}\n disabled={!newPresetName.trim()}\n style={{\n padding: '6px 12px',\n fontSize: '12px',\n backgroundColor: newPresetName.trim()\n ? SEMANTIC_COLORS.statusSuccessBg\n : SEMANTIC_COLORS.bgTertiary,\n color: newPresetName.trim() ? SEMANTIC_COLORS.actionPrimaryFg : SEMANTIC_COLORS.textTertiary,\n border: 'none',\n borderRadius: '4px',\n cursor: newPresetName.trim() ? 'pointer' : 'not-allowed',\n fontWeight: 500,\n }}\n >\n {t('bigconsole.filters.presets.save', 'Save')}\n </button>\n </div>\n </div>\n )}\n\n {/* Preset List */}\n <div style={{ maxHeight: '300px', overflowY: 'auto' }}>\n {presets.map((preset) => (\n <div\n key={preset.id}\n onClick={() => {\n onApplyPreset(preset.id);\n setIsOpen(false);\n }}\n style={{\n padding: '10px 16px',\n cursor: 'pointer',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n backgroundColor: activePresetId === preset.id ? SEMANTIC_COLORS.actionPrimaryBgSubtle : 'transparent',\n borderLeft:\n activePresetId === preset.id\n ? `3px solid ${SEMANTIC_COLORS.actionPrimaryBg}`\n : '3px solid transparent',\n transition: 'background-color 0.15s ease',\n }}\n onMouseEnter={(e) => {\n if (activePresetId !== preset.id) {\n e.currentTarget.style.backgroundColor = SEMANTIC_COLORS.bgSecondary;\n }\n }}\n onMouseLeave={(e) => {\n if (activePresetId !== preset.id) {\n e.currentTarget.style.backgroundColor = 'transparent';\n }\n }}\n >\n <div style={{ flex: 1 }}>\n <div\n style={{\n fontSize: '13px',\n fontWeight: 500,\n color: SEMANTIC_COLORS.textPrimary,\n display: 'flex',\n alignItems: 'center',\n gap: '6px',\n }}\n >\n {preset.name}\n {preset.isDefault && (\n <span\n style={{\n fontSize: '10px',\n padding: '2px 6px',\n backgroundColor: SEMANTIC_COLORS.bgTertiary,\n borderRadius: '4px',\n color: SEMANTIC_COLORS.textSecondary,\n }}\n >\n {t('bigconsole.filters.presets.defaultBadge', 'Default')}\n </span>\n )}\n </div>\n {preset.description && (\n <div style={{ fontSize: '11px', color: SEMANTIC_COLORS.textTertiary, marginTop: '2px' }}>\n {preset.description}\n </div>\n )}\n </div>\n\n {/* Delete button (not for default or system presets) */}\n {!preset.isDefault && !preset.id.startsWith('preset-last') && !preset.id.startsWith('preset-this') && (\n <button\n onClick={(e) => handleDeletePreset(e, preset.id)}\n style={{\n padding: '4px',\n backgroundColor: 'transparent',\n border: 'none',\n cursor: 'pointer',\n color: SEMANTIC_COLORS.textTertiary,\n borderRadius: '4px',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.backgroundColor = SEMANTIC_COLORS.statusErrorBgSubtle;\n e.currentTarget.style.color = SEMANTIC_COLORS.statusErrorText;\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.backgroundColor = 'transparent';\n e.currentTarget.style.color = SEMANTIC_COLORS.textTertiary;\n }}\n title={t('bigconsole.filters.presets.deletePresetTitle', 'Delete preset')}\n >\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <polyline points=\"3,6 5,6 21,6\" />\n <path d=\"M19,6v14a2,2,0,01-2,2H7a2,2,0,01-2-2V6m3,0V4a2,2,0,012-2h4a2,2,0,012,2v2\" />\n </svg>\n </button>\n )}\n\n {/* Checkmark for active preset */}\n {activePresetId === preset.id && (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke={SEMANTIC_COLORS.actionPrimaryBg}\n strokeWidth=\"3\"\n style={{ marginLeft: '8px' }}\n >\n <polyline points=\"20,6 9,17 4,12\" />\n </svg>\n )}\n </div>\n ))}\n\n {presets.length === 0 && (\n <div\n style={{\n padding: '20px 16px',\n textAlign: 'center',\n color: SEMANTIC_COLORS.textTertiary,\n fontSize: '13px',\n }}\n >\n {t('bigconsole.filters.presets.emptyState', 'No presets saved yet')}\n </div>\n )}\n </div>\n </div>\n )}\n </div>\n );\n}\n\nexport default FilterPresetSelector;\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"GlobalFiltersBar.d.ts","sourceRoot":"","sources":["../../../../../src/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAA2C,MAAM,OAAO,CAAC;AAmChE,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAC3D,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mDAAmD;IACnD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,4BAA4B;IAC5B,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAMD,wBAAgB,gBAAgB,CAAC,EAC/B,WAAW,EACX,cAAc,EACd,WAAkB,EAClB,SAAc,EACd,aAAoB,EACpB,aAAoB,GACrB,EAAE,qBAAqB,qBAmZvB;AAED,eAAe,gBAAgB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"GlobalFiltersBar.js","names":[],"sources":["../../../../../src/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.tsx"],"sourcesContent":["/**\n * GlobalFiltersBar Component\n *\n * Displays and manages global dashboard filters.\n * v2.0: Added URL persistence and filter presets support.\n */\n\nimport React, { useState, useEffect, useCallback } from 'react';\nimport {\n useGlobalFilters,\n useFilterUrlSync,\n useFilterPresets,\n type GlobalFilter,\n type FilterType,\n} from '../../../hooks';\nimport { FilterChip } from './FilterChip';\nimport { useDashboardStore, useGlobalFilterValues } from '../../../store';\nimport { FilterEditor } from './FilterEditor';\nimport { FilterPresetSelector } from './FilterPresetSelector';\nimport { SEMANTIC_COLORS } from '../../../utils/semanticTokens';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport { SECTION_FOCUS_RING } from '../../common';\n\n// ============================================================================\n// Local class vocabulary\n// ============================================================================\n\n/**\n * The filters bar configures the board below it. Before this it shipped a\n * saturated primary \"+ Add Filter\" with an indigo glow and a drop-shadowed\n * container, which made the configuration louder than the data it filtered.\n * Everything here is deliberately secondary weight.\n */\nconst SECONDARY_BUTTON_CLASSES = `inline-flex min-h-control-sm items-center gap-icon-gap rounded-button border border-[var(--color-border-subtle)] bg-bg-surface px-3 py-1 text-sm font-medium text-text-primary motion-safe:transition-colors hover:bg-bg-accentSubtle ${SECTION_FOCUS_RING}`;\n\n/** Text-only affordances (reset, collapse) sit a step below that again. */\nconst QUIET_BUTTON_CLASSES = `inline-flex min-h-control-sm items-center gap-icon-gap rounded-button px-2 py-1 text-sm font-medium text-text-secondary motion-safe:transition-colors hover:bg-bg-accentSubtle ${SECTION_FOCUS_RING}`;\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface GlobalFiltersBarProps {\n dashboardId: string;\n onFilterChange?: (values: Record<string, unknown>) => void;\n collapsible?: boolean;\n className?: string;\n /** Enable URL sync for shareable filtered views */\n enableUrlSync?: boolean;\n /** Enable filter presets */\n enablePresets?: boolean;\n}\n\n// ============================================================================\n// Component\n// ============================================================================\n\nexport function GlobalFiltersBar({\n dashboardId,\n onFilterChange,\n collapsible = true,\n className = '',\n enableUrlSync = true,\n enablePresets = true,\n}: GlobalFiltersBarProps) {\n const { t } = useI18n();\n const { filters, loading, error, fetchFilters, createFilter, updateFilter, deleteFilter } = useGlobalFilters();\n\n // Widgets, presets, URL hydration and the controls share one value store.\n // The definition hook's private defaults must never replace hydrated values.\n const activeValues = useGlobalFilterValues();\n const setFilterValue = useDashboardStore((state) => state.setGlobalFilterValue);\n const setFilterValues = useDashboardStore((state) => state.setGlobalFilterValues);\n const clearFilterValue = useDashboardStore((state) => state.clearGlobalFilterValue);\n\n useEffect(() => {\n const current = useDashboardStore.getState().globalFilterValues;\n const defaults = Object.fromEntries(\n filters\n .filter((filter) => filter.defaultValue !== undefined && !(filter.id in current))\n .map((filter) => [filter.id, filter.defaultValue])\n );\n if (Object.keys(defaults).length) setFilterValues({ ...defaults, ...current });\n }, [filters, activeValues, setFilterValues]);\n\n // URL Sync hook\n const { getShareableUrl, clearUrlParams } = useFilterUrlSync({\n enabled: enableUrlSync,\n paramPrefix: 'filter_',\n debounceMs: 300,\n });\n\n // Filter Presets hook\n const {\n presets,\n activePresetId,\n loadPresets,\n applyPreset,\n saveCurrentAsPreset,\n deletePreset: removePreset,\n clearActivePreset,\n } = useFilterPresets(dashboardId);\n\n const [isCollapsed, setIsCollapsed] = useState(false);\n const [isEditorOpen, setIsEditorOpen] = useState(false);\n const [editingFilter, setEditingFilter] = useState<GlobalFilter | null>(null);\n const [showShareTooltip, setShowShareTooltip] = useState(false);\n\n // Fetch filters on mount\n useEffect(() => {\n if (dashboardId) {\n fetchFilters(dashboardId);\n if (enablePresets) {\n loadPresets(dashboardId);\n }\n }\n }, [dashboardId, fetchFilters, loadPresets, enablePresets]);\n\n // Notify parent of filter changes\n useEffect(() => {\n if (onFilterChange) {\n // URL hydration/default initialization can update the store after this\n // render. Notify with its current values, never an old empty snapshot.\n onFilterChange(useDashboardStore.getState().globalFilterValues);\n }\n }, [activeValues, onFilterChange]);\n\n // Clear active preset when filter values change manually\n useEffect(() => {\n if (activePresetId && Object.keys(activeValues).length > 0) {\n // Check if current values differ from active preset\n const preset = presets.find((p) => p.id === activePresetId);\n if (preset) {\n const presetStr = JSON.stringify(preset.values);\n const currentStr = JSON.stringify(activeValues);\n if (presetStr !== currentStr) {\n clearActivePreset();\n }\n }\n }\n }, [activeValues, activePresetId, presets, clearActivePreset]);\n\n // Handle filter value change\n const handleFilterChange = useCallback(\n (filterId: string, value: unknown) => {\n setFilterValue(filterId, value);\n },\n [setFilterValue]\n );\n\n // Handle add new filter\n const handleAddFilter = useCallback(() => {\n setEditingFilter(null);\n setIsEditorOpen(true);\n }, []);\n\n // Handle edit filter\n const handleEditFilter = useCallback((filter: GlobalFilter) => {\n setEditingFilter(filter);\n setIsEditorOpen(true);\n }, []);\n\n // Handle save filter\n const handleSaveFilter = useCallback(\n async (data: {\n name: string;\n type: FilterType;\n config: Record<string, unknown>;\n defaultValue?: unknown;\n isRequired?: boolean;\n }) => {\n if (editingFilter) {\n const saved = await updateFilter({\n id: editingFilter.id,\n name: data.name,\n config: data.config,\n defaultValue: data.defaultValue,\n isRequired: data.isRequired,\n });\n if (!saved) throw new Error('Filter save failed');\n } else {\n const saved = await createFilter({\n dashboardId,\n name: data.name,\n type: data.type,\n config: data.config,\n defaultValue: data.defaultValue,\n isRequired: data.isRequired,\n });\n if (!saved) throw new Error('Filter save failed');\n }\n setIsEditorOpen(false);\n setEditingFilter(null);\n },\n [dashboardId, editingFilter, createFilter, updateFilter]\n );\n\n // Handle delete filter\n const handleDeleteFilter = useCallback(\n async (filterId: string) => {\n if (await deleteFilter(filterId)) clearFilterValue(filterId);\n },\n [deleteFilter, clearFilterValue]\n );\n\n // Handle reset all filters\n const handleResetAll = useCallback(() => {\n setFilterValues(\n Object.fromEntries(\n filters.filter((filter) => filter.defaultValue !== undefined).map((filter) => [filter.id, filter.defaultValue])\n )\n );\n clearUrlParams();\n clearActivePreset();\n }, [filters, setFilterValues, clearUrlParams, clearActivePreset]);\n\n // Handle copy shareable URL\n const handleCopyShareableUrl = useCallback(async () => {\n const url = getShareableUrl();\n try {\n await navigator.clipboard.writeText(url);\n setShowShareTooltip(true);\n setTimeout(() => setShowShareTooltip(false), 2000);\n } catch {\n // Failed to copy URL to clipboard\n }\n }, [getShareableUrl]);\n\n // Handle apply preset\n const handleApplyPreset = useCallback(\n (presetId: string) => {\n applyPreset(presetId);\n },\n [applyPreset]\n );\n\n // Handle save current as preset\n const handleSavePreset = useCallback(\n (name: string, description?: string) => {\n saveCurrentAsPreset(name, description);\n },\n [saveCurrentAsPreset]\n );\n\n // Handle delete preset\n const handleDeletePreset = useCallback(\n (presetId: string) => {\n removePreset(presetId);\n },\n [removePreset]\n );\n\n // Toggle collapse\n const toggleCollapse = useCallback(() => {\n setIsCollapsed((prev) => !prev);\n }, []);\n\n // Count active filters\n const activeFilterCount = filters.filter(\n (filter) =>\n activeValues[filter.id] !== undefined && activeValues[filter.id] !== null && activeValues[filter.id] !== ''\n ).length;\n\n if (loading && filters.length === 0 && !isEditorOpen) {\n return (\n <div\n className={`flex flex-wrap items-center gap-control-gap border-b border-[var(--color-border-subtle)] bg-bg-sunken px-card-padding py-control-gap ${className}`}\n role=\"status\"\n aria-live=\"polite\"\n data-testid=\"global-filters-loading\"\n >\n <span className=\"h-icon-sm w-icon-sm animate-spin rounded-full border-2 border-action-primary-bg border-t-transparent\" />\n <span className=\"text-sm text-text-secondary\">{t('bigconsole.filters.bar.loading', 'Loading filters...')}</span>\n </div>\n );\n }\n\n const errorFeedback = error && (\n <div role=\"alert\" className=\"flex flex-wrap items-center gap-2 px-3 py-2 text-sm text-status-error-text\">\n <span>{t('bigconsole.filters.bar.requestFailed', 'Filters could not be loaded or saved. Try again.')}</span>\n <button type=\"button\" onClick={() => void fetchFilters(dashboardId)} className={QUIET_BUTTON_CLASSES}>\n {t('bigconsole.filters.bar.retry', 'Retry')}\n </button>\n </div>\n );\n\n // Show empty state with \"Add Filter\" button when no filters exist\n if (filters.length === 0) {\n return (\n <div\n className={`flex flex-wrap items-center justify-between gap-control-gap border-b border-[var(--color-border-subtle)] bg-bg-sunken px-card-padding py-control-gap ${className}`}\n data-testid=\"global-filters-empty\"\n >\n <div className=\"flex min-w-0 flex-wrap items-center gap-icon-gap\">\n <h2 className=\"text-sm font-semibold text-text-primary\">{t('bigconsole.filters.bar.title', 'Filters')}</h2>\n <span className=\"text-sm text-text-muted\">\n {t('bigconsole.filters.bar.noFiltersConfigured', 'No filters configured')}\n </span>\n </div>\n <button type=\"button\" onClick={handleAddFilter} className={SECONDARY_BUTTON_CLASSES}>\n {t('bigconsole.filters.bar.addFilter', '+ Add Filter')}\n </button>\n\n {errorFeedback}\n {/* Filter Editor Modal */}\n {isEditorOpen && (\n <FilterEditor\n filter={editingFilter}\n onSave={handleSaveFilter}\n onClose={() => {\n setIsEditorOpen(false);\n setEditingFilter(null);\n }}\n />\n )}\n </div>\n );\n }\n\n return (\n <section\n // A configuration band, not a result: recessed surface, no drop shadow,\n // secondary-weight controls. It sits directly above the board and must\n // stay quieter than it.\n className={`flex min-w-0 flex-col border-b border-[var(--color-border-subtle)] bg-bg-sunken ${className}`}\n aria-labelledby=\"global-filters-heading\"\n data-testid=\"global-filters-bar\"\n >\n {errorFeedback}\n {/* Header */}\n <div\n className={`flex flex-wrap items-center justify-between gap-control-gap px-card-padding py-control-gap ${\n isCollapsed ? '' : 'border-b border-[var(--color-border-subtle)]'\n }`}\n >\n <div className=\"flex min-w-0 flex-wrap items-center gap-icon-gap\">\n <h2 id=\"global-filters-heading\" className=\"text-sm font-semibold text-text-primary\">\n {t('bigconsole.filters.bar.title', 'Filters')}\n </h2>\n <span className=\"rounded-pill bg-bg-surface px-2 py-0.5 text-xs font-medium text-text-secondary\">\n {filters.length}\n </span>\n {activeFilterCount > 0 && (\n <span className=\"rounded-pill bg-[var(--color-status-success-bgSubtle)] px-2 py-0.5 text-xs font-medium text-status-success-text\">\n {t('bigconsole.filters.bar.activeCount', '{{count}} active', {\n count: activeFilterCount ?? '',\n })}\n </span>\n )}\n </div>\n\n <div className=\"flex min-w-0 flex-wrap items-center justify-end gap-control-gap\">\n {/* Filter Presets Selector */}\n {enablePresets && (\n <FilterPresetSelector\n presets={presets}\n activePresetId={activePresetId}\n onApplyPreset={handleApplyPreset}\n onSavePreset={handleSavePreset}\n onDeletePreset={handleDeletePreset}\n />\n )}\n\n {/* Share URL Button */}\n {enableUrlSync && activeFilterCount > 0 && (\n <div style={{ position: 'relative' }}>\n <button\n type=\"button\"\n onClick={handleCopyShareableUrl}\n title={t('bigconsole.filters.bar.shareUrlTitle', 'Copy shareable URL with filters')}\n className={SECONDARY_BUTTON_CLASSES}\n >\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <path d=\"M4 12v8a2 2 0 002 2h12a2 2 0 002-2v-8\" />\n <polyline points=\"16,6 12,2 8,6\" />\n <line x1=\"12\" y1=\"2\" x2=\"12\" y2=\"15\" />\n </svg>\n {t('bigconsole.filters.bar.share', 'Share')}\n </button>\n {showShareTooltip && (\n <div\n style={{\n position: 'absolute',\n top: '100%',\n left: '50%',\n transform: 'translateX(-50%)',\n marginTop: '4px',\n padding: '6px 12px',\n backgroundColor: SEMANTIC_COLORS.textPrimary,\n color: SEMANTIC_COLORS.bgPrimary,\n fontSize: '12px',\n borderRadius: '4px',\n whiteSpace: 'nowrap',\n zIndex: 100001,\n }}\n >\n {t('bigconsole.filters.bar.urlCopied', 'URL copied!')}\n </div>\n )}\n </div>\n )}\n\n {/* Reset Button */}\n {activeFilterCount > 0 && (\n <button type=\"button\" onClick={handleResetAll} className={`${QUIET_BUTTON_CLASSES} text-status-error-text`}>\n {t('bigconsole.filters.bar.resetAll', 'Reset all')}\n </button>\n )}\n\n {/* Add Filter Button */}\n <button type=\"button\" onClick={handleAddFilter} className={SECONDARY_BUTTON_CLASSES}>\n {t('bigconsole.filters.bar.addFilter', '+ Add Filter')}\n </button>\n\n {/* Collapse Button */}\n {collapsible && (\n <button\n type=\"button\"\n onClick={toggleCollapse}\n aria-expanded={!isCollapsed}\n // The chips container is unmounted while collapsed; pointing\n // aria-controls at a missing id is an invalid reference, so only\n // advertise it when the target actually exists.\n aria-controls={isCollapsed ? undefined : 'global-filters-chips'}\n className={QUIET_BUTTON_CLASSES}\n >\n {isCollapsed\n ? t('bigconsole.filters.bar.expand', '▼ Expand')\n : t('bigconsole.filters.bar.collapse', '▲ Collapse')}\n </button>\n )}\n </div>\n </div>\n\n {/* Filters List */}\n {!isCollapsed && (\n <div\n id=\"global-filters-chips\"\n className=\"relative flex flex-wrap gap-control-gap px-card-padding py-control-gap\"\n style={{ overflow: 'visible' }}\n >\n {filters.map((filter) => (\n <FilterChip\n key={filter.id}\n filter={filter}\n value={activeValues[filter.id]}\n onChange={(value) => handleFilterChange(filter.id, value)}\n onEdit={() => handleEditFilter(filter)}\n onDelete={() => handleDeleteFilter(filter.id)}\n />\n ))}\n </div>\n )}\n\n {/* Filter Editor Modal */}\n {isEditorOpen && (\n <FilterEditor\n filter={editingFilter}\n onSave={handleSaveFilter}\n onClose={() => {\n setIsEditorOpen(false);\n setEditingFilter(null);\n }}\n />\n )}\n </section>\n );\n}\n\nexport default GlobalFiltersBar;\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/bigconsole/components/dashboard/GlobalFiltersBar/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAClF,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ImportDashboardDialog.d.ts","sourceRoot":"","sources":["../../../../src/bigconsole/components/dashboard/ImportDashboardDialog.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,KAAK,EAAE,EAAkD,MAAM,OAAO,CAAC;AA2BhF,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,KAAK,IAAI,CAAC;CAC5F;AAsBD,eAAO,MAAM,qBAAqB,EAAE,EAAE,CAAC,0BAA0B,CA0iB/D,CAAC;AAEH,eAAe,qBAAqB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ImportDashboardDialog.js","names":[],"sources":["../../../../src/bigconsole/components/dashboard/ImportDashboardDialog.tsx"],"sourcesContent":["/**\n * ImportDashboardDialog Component\n *\n * Modal dialog for importing a dashboard from JSON file.\n * Supports both creating new dashboards and updating existing ones.\n * Uses fe-libs shared UI components for consistent styling.\n */\n\nimport { type FC, memo, useState, useCallback, useEffect, useRef } from 'react';\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n} from '@burdenoff/fe-libs/ui';\nimport { Button } from '@burdenoff/fe-libs/ui';\nimport { Input } from '@burdenoff/fe-libs/ui';\nimport { Label } from '@burdenoff/fe-libs/ui';\nimport { Checkbox } from '@burdenoff/fe-libs/ui';\nimport { Spinner } from '@burdenoff/fe-libs/ui';\nimport { Card, CardContent } from '@burdenoff/fe-libs/ui';\nimport { Badge } from '@burdenoff/fe-libs/ui';\nimport { Upload, FileJson, Check, AlertTriangle, XCircle, ArrowLeft, RefreshCw, Info } from 'lucide-react';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport { Section } from '../common';\nimport { useImportDashboard, type ImportDashboardOptions } from '../../hooks';\nimport { useBigConsoleAnalytics } from '../../hooks/useBigConsoleAnalytics';\nimport { reportBigConsoleQuotaError } from '../../utils/quota';\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface ImportDashboardDialogProps {\n isOpen: boolean;\n onClose: () => void;\n onSuccess?: (dashboardId: string, dashboardName: string, originalUpdated: boolean) => void;\n}\n\ntype ImportStep = 'select' | 'preview' | 'importing' | 'complete';\n\n// ============================================================================\n// Helper: Extract dashboard ID from content\n// ============================================================================\n\nfunction extractDashboardId(content: string | null): string | null {\n if (!content) return null;\n try {\n const parsed = JSON.parse(content);\n return parsed.exportedFrom?.dashboardId || parsed.dashboard?.id || null;\n } catch {\n return null;\n }\n}\n\n// ============================================================================\n// Component\n// ============================================================================\n\nexport const ImportDashboardDialog: FC<ImportDashboardDialogProps> = memo(function ImportDashboardDialog({\n isOpen,\n onClose,\n onSuccess,\n}) {\n const { t } = useI18n();\n const [step, setStep] = useState<ImportStep>('select');\n const [, setSelectedFile] = useState<File | null>(null);\n const [fileContent, setFileContent] = useState<string | null>(null);\n const [nameOverride, setNameOverride] = useState('');\n const [visibility, setVisibility] = useState<'PRIVATE' | 'TEAM' | 'PUBLIC'>('PRIVATE');\n const [skipWarnings, setSkipWarnings] = useState(false);\n\n const fileInputRef = useRef<HTMLInputElement>(null);\n\n const { loading, error, validationResult, importResult, validateImport, importDashboard, clearState } =\n useImportDashboard();\n const emitBigConsoleEvent = useBigConsoleAnalytics();\n\n // Reset state when dialog opens\n useEffect(() => {\n if (isOpen) {\n setStep('select');\n setSelectedFile(null);\n setFileContent(null);\n setNameOverride('');\n setVisibility('PRIVATE');\n setSkipWarnings(false);\n clearState();\n }\n }, [isOpen, clearState]);\n\n // Handle file selection\n const handleFileSelect = useCallback(\n async (e: React.ChangeEvent<HTMLInputElement>) => {\n const file = e.target.files?.[0];\n if (!file) return;\n\n if (!file.name.endsWith('.json')) {\n alert(t('bigconsole.dashboards.import.selectJsonFile', 'Please select a JSON file'));\n return;\n }\n\n setSelectedFile(file);\n\n const reader = new FileReader();\n reader.onload = async (event) => {\n const content = event.target?.result as string;\n setFileContent(content);\n\n const result = await validateImport(content);\n if (result) {\n setStep('preview');\n if (result.dashboardInfo?.name) {\n setNameOverride(result.dashboardInfo.name);\n }\n }\n };\n reader.onerror = () => {\n alert(t('bigconsole.dashboards.import.failedToReadFile', 'Failed to read file'));\n };\n reader.readAsText(file);\n },\n [validateImport, t]\n );\n\n // Handle file drop\n const handleDrop = useCallback((e: React.DragEvent) => {\n e.preventDefault();\n const file = e.dataTransfer.files?.[0];\n if (file) {\n const dt = new DataTransfer();\n dt.items.add(file);\n if (fileInputRef.current) {\n fileInputRef.current.files = dt.files;\n fileInputRef.current.dispatchEvent(new Event('change', { bubbles: true }));\n }\n }\n }, []);\n\n // Handle import\n const handleImport = useCallback(async () => {\n if (!fileContent) return;\n\n setStep('importing');\n\n const options: ImportDashboardOptions = {\n name: nameOverride.trim() || undefined,\n visibility,\n skipWarnings,\n };\n\n emitBigConsoleEvent('bigconsole.dashboard.import_clicked', { source: 'import' });\n\n try {\n const result = await importDashboard(fileContent, options);\n\n if (result?.success && result.dashboard) {\n setStep('complete');\n emitBigConsoleEvent('bigconsole.dashboard.imported', {\n dashboardId: result.dashboard.id,\n source: 'import',\n originalUpdated: result.originalUpdated ?? false,\n });\n onSuccess?.(result.dashboard.id, result.dashboard.name, result.originalUpdated ?? false);\n } else {\n setStep('preview');\n }\n } catch (err) {\n if (reportBigConsoleQuotaError(err, 'project')) {\n onClose();\n return;\n }\n setStep('preview');\n }\n }, [emitBigConsoleEvent, fileContent, importDashboard, nameOverride, onClose, onSuccess, skipWarnings, visibility]);\n\n const canClose = !loading && step !== 'importing';\n\n return (\n <Dialog open={isOpen} onOpenChange={(open) => !open && canClose && onClose()}>\n <DialogContent className=\"sm:max-w-lg max-h-[85vh] flex flex-col\">\n <DialogHeader>\n <div className=\"flex items-center gap-3\">\n <div className=\"flex size-10 items-center justify-center rounded-lg bg-action-primary-bg/10\">\n <Upload className=\"size-5 text-primary\" />\n </div>\n <DialogTitle>{t('bigconsole.dashboards.import.title', 'Import Dashboard')}</DialogTitle>\n </div>\n <DialogDescription>\n {t(\n 'bigconsole.dashboards.import.description',\n 'Upload a Dashboard export file to restore it into this workspace.'\n )}\n </DialogDescription>\n </DialogHeader>\n\n <div className=\"flex-1 overflow-y-auto py-4 space-y-4\">\n {/* Step 1: File Selection */}\n {step === 'select' && (\n <div\n onDragOver={(e) => e.preventDefault()}\n onDrop={handleDrop}\n className=\"border-2 border-dashed rounded-lg p-8 text-center hover:border-primary transition-colors\"\n >\n <FileJson className=\"size-12 mx-auto text-text-secondary mb-4\" />\n <p className=\"text-sm mb-2\">\n {t('bigconsole.dashboards.import.dropzoneTitle', 'Drag and drop a dashboard export file here')}\n </p>\n <p className=\"text-xs text-text-secondary mb-4\">{t('bigconsole.dashboards.import.or', 'or')}</p>\n <input ref={fileInputRef} type=\"file\" accept=\".json\" onChange={handleFileSelect} className=\"hidden\" />\n <Button onClick={() => fileInputRef.current?.click()} disabled={loading}>\n {t('bigconsole.dashboards.import.browseFiles', 'Browse Files')}\n </Button>\n <p className=\"text-xs text-text-secondary mt-4\">\n {t(\n 'bigconsole.dashboards.import.supportedFilesHint',\n 'Only .json files exported from BigConsole are supported'\n )}\n </p>\n </div>\n )}\n\n {/* Step 2: Preview & Options */}\n {(step === 'preview' || step === 'importing') && validationResult && (\n <>\n {/* Dashboard Info */}\n <Section\n headingLevel={3}\n emphasis=\"muted\"\n padding=\"compact\"\n title=\"What's in this file\"\n data-testid=\"import-summary\"\n bodyClassName=\"space-y-2\"\n >\n <div className=\"flex items-center justify-between\">\n <span className=\"text-sm text-text-secondary\">\n {t('bigconsole.dashboards.import.fieldDashboard', 'Dashboard')}\n </span>\n <span className=\"text-sm font-medium\">{validationResult.dashboardInfo.name}</span>\n </div>\n {validationResult.dashboardInfo.description && (\n <div className=\"flex items-start justify-between\">\n <span className=\"text-sm text-text-secondary\">\n {t('bigconsole.dashboards.import.fieldDescription', 'Description')}\n </span>\n <span className=\"text-sm text-right max-w-[60%] truncate\">\n {validationResult.dashboardInfo.description}\n </span>\n </div>\n )}\n <div className=\"flex items-center justify-between\">\n <span className=\"text-sm text-text-secondary\">\n {t('bigconsole.dashboards.import.fieldPages', 'Pages')}\n </span>\n <Badge variant=\"secondary\">{validationResult.dashboardInfo.pageCount}</Badge>\n </div>\n <div className=\"flex items-center justify-between\">\n <span className=\"text-sm text-text-secondary\">\n {t('bigconsole.dashboards.import.fieldWidgets', 'Widgets')}\n </span>\n <Badge variant=\"secondary\">{validationResult.dashboardInfo.widgetCount}</Badge>\n </div>\n {validationResult.dashboardInfo.exportedFrom && (\n <div className=\"flex items-center justify-between\">\n <span className=\"text-sm text-text-secondary\">\n {t('bigconsole.dashboards.import.fieldSourceId', 'Source ID')}\n </span>\n <span className=\"text-xs text-text-secondary font-mono truncate max-w-[180px]\">\n {validationResult.dashboardInfo.exportedFrom}\n </span>\n </div>\n )}\n <div className=\"flex flex-wrap items-center justify-between gap-x-4\">\n <span className=\"text-sm text-text-secondary\">\n {t('bigconsole.dashboards.import.fieldSchemaVersion', 'Schema Version')}\n </span>\n <span className=\"text-xs text-text-secondary\">{validationResult.dashboardInfo.schemaVersion}</span>\n </div>\n </Section>\n\n {/* Validation Errors */}\n {validationResult.errors.length > 0 && (\n <Section\n headingLevel={3}\n tone=\"danger\"\n padding=\"compact\"\n icon={<XCircle className=\"size-4\" />}\n title={t('bigconsole.dashboards.import.errorsCount', 'Errors ({{count}})', {\n count: validationResult.errors.length,\n })}\n description=\"These must be fixed in the export file before it can be imported.\"\n data-testid=\"import-errors\"\n >\n <ul className=\"space-y-1 text-xs text-status-error-text\">\n {validationResult.errors.map((err) => (\n <li key={`${err.code}-${err.message}`}>\n <span className=\"font-mono\">[{err.code}]</span> {err.message}\n </li>\n ))}\n </ul>\n </Section>\n )}\n\n {/* Validation Warnings */}\n {validationResult.warnings.length > 0 && (\n <Section\n headingLevel={3}\n tone=\"warning\"\n padding=\"compact\"\n icon={<AlertTriangle className=\"size-4\" />}\n title={t('bigconsole.dashboards.import.warningsCount', 'Warnings ({{count}})', {\n count: validationResult.warnings.length,\n })}\n description=\"Advisory only — acknowledge them below to continue.\"\n data-testid=\"import-warnings\"\n >\n <ul className=\"space-y-1 text-xs text-[var(--color-status-warning-text)]\">\n {validationResult.warnings.map((warn) => (\n <li key={`${warn.code}-${warn.message}`}>\n <span className=\"font-mono\">[{warn.code}]</span> {warn.message}\n </li>\n ))}\n </ul>\n </Section>\n )}\n\n {/* Import Options */}\n {validationResult.isValid && (\n <Section\n headingLevel={3}\n title={t('bigconsole.dashboards.import.optionsTitle', 'Import Options')}\n description=\"How this file lands in the workspace.\"\n data-testid=\"import-options\"\n bodyClassName=\"space-y-4\"\n >\n {/* Import Info */}\n <Section\n headingLevel={4}\n tone=\"info\"\n aria-label={t('bigconsole.dashboards.import.infoRegionLabel', 'What this import will do')}\n padding=\"compact\"\n data-testid=\"import-info\"\n >\n <div className=\"flex items-start gap-2\">\n <Info className=\"size-4 mt-0.5 shrink-0 text-[var(--color-status-info-text)]\" />\n <div className=\"text-xs text-[var(--color-status-info-text)]\">\n {extractDashboardId(fileContent) ? (\n <>\n <p className=\"font-medium mb-1\">\n {t(\n 'bigconsole.dashboards.import.checkExistingTitle',\n 'Import will check for existing dashboard'\n )}\n </p>\n <p>\n {t(\n 'bigconsole.dashboards.import.checkExistingIdPrefix',\n 'If the original dashboard (ID:'\n )}{' '}\n <code className=\"rounded bg-bg-surface px-1 font-mono\">\n {extractDashboardId(fileContent)?.slice(0, 8)}...\n </code>\n {t('bigconsole.dashboards.import.checkExistingIdSuffix', ') exists:')}\n </p>\n <ul className=\"list-disc list-inside mt-1 space-y-0.5\">\n <li>\n {t(\n 'bigconsole.dashboards.import.checkExistingWithChanges',\n 'With changes → Update the existing dashboard'\n )}\n </li>\n <li>\n {t(\n 'bigconsole.dashboards.import.checkExistingNoChanges',\n 'No changes → Show \"already exists\" message'\n )}\n </li>\n </ul>\n <p className=\"mt-1\">\n {t(\n 'bigconsole.dashboards.import.checkExistingNotFound',\n \"If original doesn't exist → Create a new dashboard\"\n )}\n </p>\n </>\n ) : (\n <>\n <p className=\"font-medium mb-1\">\n {t('bigconsole.dashboards.import.newDashboardTitle', 'A new dashboard will be created')}\n </p>\n <p>\n {t(\n 'bigconsole.dashboards.import.newDashboardBody',\n 'Import as a new dashboard with the specified configuration.'\n )}\n </p>\n </>\n )}\n </div>\n </div>\n </Section>\n\n <div className=\"space-y-2\">\n <Label htmlFor=\"import-name\">\n {t('bigconsole.dashboards.import.dashboardNameLabel', 'Dashboard Name')}\n </Label>\n <Input\n id=\"import-name\"\n type=\"text\"\n value={nameOverride}\n onChange={(e) => setNameOverride(e.target.value)}\n placeholder={validationResult.dashboardInfo.name}\n disabled={step === 'importing'}\n />\n </div>\n\n <div className=\"space-y-2\">\n <Label>{t('bigconsole.dashboards.import.visibilityLabel', 'Visibility')}</Label>\n <div className=\"flex gap-2\">\n {(['PRIVATE', 'TEAM', 'PUBLIC'] as const).map((v) => (\n <Button\n key={v}\n type=\"button\"\n variant={visibility === v ? 'default' : 'outline'}\n size=\"sm\"\n onClick={() => setVisibility(v)}\n disabled={step === 'importing'}\n >\n {v === 'PRIVATE'\n ? t('bigconsole.dashboards.import.visibilityPrivate', 'Private')\n : v === 'TEAM'\n ? t('bigconsole.dashboards.import.visibilityTeam', 'Team')\n : t('bigconsole.dashboards.import.visibilityPublic', 'Public')}\n </Button>\n ))}\n </div>\n </div>\n\n {validationResult.warnings.length > 0 && (\n <div className=\"flex items-start space-x-3\">\n <Checkbox\n id=\"skipWarnings\"\n checked={skipWarnings}\n onCheckedChange={(checked) => setSkipWarnings(checked === true)}\n disabled={step === 'importing'}\n />\n <div className=\"grid gap-1.5 leading-none\">\n <Label htmlFor=\"skipWarnings\" className=\"cursor-pointer\">\n {t('bigconsole.dashboards.import.acknowledgeWarnings', 'Acknowledge warnings and proceed')}\n </Label>\n </div>\n </div>\n )}\n </Section>\n )}\n </>\n )}\n\n {/* Step 3: Complete */}\n {step === 'complete' && importResult?.success && (\n <div className=\"text-center py-6\">\n {/* Already Exists - No Changes */}\n {importResult.alreadyExists && (\n <>\n <div className=\"mx-auto mb-4 flex size-16 items-center justify-center rounded-full bg-[var(--color-status-info-bgSubtle)]\">\n <Info className=\"size-8 text-[var(--color-status-info-text)]\" />\n </div>\n <h3 className=\"text-lg font-medium mb-2\">\n {t('bigconsole.dashboards.import.alreadyExistsTitle', 'Dashboard Already Exists')}\n </h3>\n <p className=\"text-sm text-text-secondary mb-4\">\n {t(\n 'bigconsole.dashboards.import.alreadyExistsBody',\n 'Dashboard \"{{name}}\" already exists with the same data. No changes were made.',\n { name: importResult.dashboard?.name ?? '' }\n )}\n </p>\n </>\n )}\n\n {/* Updated Existing */}\n {importResult.originalUpdated && !importResult.alreadyExists && (\n <>\n <div className=\"mx-auto mb-4 flex size-16 items-center justify-center rounded-full bg-[var(--color-status-success-bgSubtle)]\">\n <RefreshCw className=\"size-8 text-status-success-text\" />\n </div>\n <h3 className=\"text-lg font-medium mb-2\">\n {t('bigconsole.dashboards.import.updatedTitle', 'Dashboard Updated!')}\n </h3>\n <p className=\"text-sm text-text-secondary mb-4\">\n {t(\n 'bigconsole.dashboards.import.updatedBody',\n 'Dashboard \"{{name}}\" has been updated with the imported data.',\n { name: importResult.dashboard?.name ?? '' }\n )}\n </p>\n </>\n )}\n\n {/* Created New */}\n {!importResult.originalUpdated && !importResult.alreadyExists && (\n <>\n <div className=\"mx-auto mb-4 flex size-16 items-center justify-center rounded-full bg-[var(--color-status-success-bgSubtle)]\">\n <Check className=\"size-8 text-status-success-text\" />\n </div>\n <h3 className=\"text-lg font-medium mb-2\">\n {t('bigconsole.dashboards.import.successTitle', 'Import Successful!')}\n </h3>\n <p className=\"text-sm text-text-secondary mb-4\">\n {t('bigconsole.dashboards.import.successBody', 'Dashboard \"{{name}}\" has been created.', {\n name: importResult.dashboard?.name ?? '',\n })}\n </p>\n\n {importResult.stats && (\n <Card className=\"inline-block text-left\">\n <CardContent className=\"p-4\">\n <p className=\"text-xs font-medium text-text-secondary mb-2\">\n {t('bigconsole.dashboards.import.summaryTitle', 'Import Summary')}\n </p>\n <div className=\"grid grid-cols-2 gap-x-6 gap-y-1 text-xs\">\n <span className=\"text-text-secondary\">\n {t('bigconsole.dashboards.import.summaryPages', 'Pages:')}\n </span>\n <span>{importResult.stats.pagesCreated}</span>\n <span className=\"text-text-secondary\">\n {t('bigconsole.dashboards.import.summaryWidgets', 'Widgets:')}\n </span>\n <span>{importResult.stats.widgetsCreated}</span>\n <span className=\"text-text-secondary\">\n {t('bigconsole.dashboards.import.summaryActions', 'Actions:')}\n </span>\n <span>{importResult.stats.actionsCreated}</span>\n </div>\n </CardContent>\n </Card>\n )}\n </>\n )}\n </div>\n )}\n\n {/* Error */}\n {error && (\n <Section\n headingLevel={3}\n tone=\"danger\"\n padding=\"compact\"\n title=\"Import failed\"\n description={error.message}\n />\n )}\n\n {importResult && !importResult.success && importResult.errorMessage && (\n <Section\n headingLevel={3}\n tone=\"danger\"\n padding=\"compact\"\n title=\"Import failed\"\n description={importResult.errorMessage}\n />\n )}\n </div>\n\n <DialogFooter className=\"flex-row justify-between sm:justify-between\">\n <div>\n {step === 'preview' && (\n <Button\n variant=\"ghost\"\n onClick={() => {\n setStep('select');\n setSelectedFile(null);\n setFileContent(null);\n clearState();\n }}\n disabled={loading}\n >\n <ArrowLeft className=\"size-4\" />\n {t('bigconsole.dashboards.import.back', 'Back')}\n </Button>\n )}\n </div>\n\n <div className=\"flex items-center gap-2\">\n {step !== 'complete' && (\n <Button variant=\"outline\" onClick={onClose} disabled={!canClose}>\n {t('bigconsole.dashboards.import.cancel', 'Cancel')}\n </Button>\n )}\n\n {step === 'preview' && validationResult?.isValid && (\n <Button\n onClick={handleImport}\n disabled={loading || (validationResult.warnings.length > 0 && !skipWarnings)}\n >\n <Upload className=\"size-4\" />\n {t('bigconsole.dashboards.import.importButton', 'Import Dashboard')}\n </Button>\n )}\n\n {step === 'importing' && (\n <div className=\"flex items-center gap-2 text-sm text-text-secondary\">\n <Spinner className=\"size-4\" />\n {t('bigconsole.dashboards.import.importing', 'Importing...')}\n </div>\n )}\n\n {step === 'complete' && <Button onClick={onClose}>{t('bigconsole.dashboards.import.done', 'Done')}</Button>}\n </div>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n );\n});\n\nexport default ImportDashboardDialog;\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"LiveBoardBanner.d.ts","sourceRoot":"","sources":["../../../../src/bigconsole/components/dashboard/LiveBoardBanner.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAE,KAAK,EAAE,EAAsC,MAAM,OAAO,CAAC;AAEpE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAM1C,MAAM,WAAW,oBAAoB;IACnC,oDAAoD;IACpD,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,0DAA0D;IAC1D,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAkCD,eAAO,MAAM,eAAe,EAAE,EAAE,CAAC,oBAAoB,CAqEnD,CAAC;AAEH,eAAe,eAAe,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"LiveBoardBanner.js","names":[],"sources":["../../../../src/bigconsole/components/dashboard/LiveBoardBanner.tsx"],"sourcesContent":["/**\n * LiveBoardBanner\n *\n * Wall-display \"live\" freshness indicator for auto-refreshing boards\n * (BC-PFC-07 — Live Bed Board). It surfaces, to the operator standing in front\n * of a wall display, that the board is updating itself on a fixed cadence and\n * how stale the data on screen is right now.\n *\n * WHY THIS EXISTS (and why it is polling, not a WebSocket subscription):\n * The Live Bed Board spec wants push-based GraphQL subscriptions\n * (`dataSinkDataUpdated` / `dataSinkUpdated`) with a MANDATORY 30s poll\n * fallback for transports that lack a WebSocket upgrade. In this deployment\n * the subscription transport is genuinely absent — the backend GraphQL server\n * (`@burdenoff/be-sdk` createServer) is HTTP-only with no graphql-ws transport\n * or PubSub, and the two sink subscriptions are declared in the SDL but have\n * no resolvers. So the board runs on the spec's own fallback path: each data\n * widget carries `refreshInterval` (30s on the Live Bed Board), which\n * `useWidgetData` turns into an Apollo `pollInterval`. This banner makes that\n * cadence visible and ticks an \"updated …s ago\" clock between polls.\n *\n * It is intentionally generic: it lights up for ANY board whose visible widgets\n * declare a refresh interval (not just the bed board), and stays hidden in edit\n * mode and on static boards. Semantic status tokens only — no raw colors — so\n * it themes correctly on light / dark / high-contrast wall displays.\n */\n\nimport { type FC, memo, useEffect, useMemo, useState } from 'react';\nimport { Section } from '../common';\nimport type { Widget } from '../../types';\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface LiveBoardBannerProps {\n /** Widgets currently rendered on the active page */\n widgets: Widget[];\n /** Hide the banner while the dashboard is being edited */\n isEditMode?: boolean;\n}\n\n// ============================================================================\n// Helpers\n// ============================================================================\n\n/**\n * The board's live cadence is the SHORTEST positive refreshInterval among the\n * visible widgets (in seconds). A board with no refreshing widget is static and\n * the banner does not render.\n */\nfunction deriveRefreshSeconds(widgets: Widget[]): number | null {\n let min: number | null = null;\n for (const w of widgets) {\n const interval = (w as { refreshInterval?: number | null }).refreshInterval;\n if (typeof interval === 'number' && interval > 0) {\n min = min === null ? interval : Math.min(min, interval);\n }\n }\n return min;\n}\n\nfunction formatAgo(seconds: number): string {\n if (seconds <= 0) return 'just now';\n if (seconds < 60) return `${seconds}s ago`;\n const mins = Math.floor(seconds / 60);\n const rem = seconds % 60;\n return rem === 0 ? `${mins}m ago` : `${mins}m ${rem}s ago`;\n}\n\n// ============================================================================\n// Component\n// ============================================================================\n\nexport const LiveBoardBanner: FC<LiveBoardBannerProps> = memo(function LiveBoardBanner({\n widgets,\n isEditMode = false,\n}) {\n const refreshSeconds = useMemo(() => deriveRefreshSeconds(widgets), [widgets]);\n\n // Anchor each refresh cycle. We cannot observe each widget's individual poll\n // completion from here, but every widget on the board shares the same cadence,\n // so we model the board's \"as of\" clock as a cycle anchored to mount and\n // advanced every `refreshSeconds`. This keeps the displayed freshness honest\n // (it never claims to be fresher than the poll cadence allows).\n const [lastRefreshAt, setLastRefreshAt] = useState<number>(() => Date.now());\n const [agoSeconds, setAgoSeconds] = useState(0);\n\n useEffect(() => {\n if (isEditMode || !refreshSeconds) return;\n // Reset the cycle whenever the cadence or the widget set changes.\n setLastRefreshAt(Date.now());\n setAgoSeconds(0);\n\n const tick = setInterval(() => {\n setAgoSeconds((prev) => {\n const next = prev + 1;\n if (next >= refreshSeconds) {\n // A poll cycle completed — the widgets have just re-fetched.\n setLastRefreshAt(Date.now());\n return 0;\n }\n return next;\n });\n }, 1000);\n\n return () => clearInterval(tick);\n }, [isEditMode, refreshSeconds, widgets.length]);\n\n if (isEditMode || !refreshSeconds) return null;\n\n const asOf = new Date(lastRefreshAt).toLocaleTimeString([], {\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit',\n });\n\n return (\n <div role=\"status\" aria-live=\"polite\" className=\"mx-card-padding mt-control-gap flex-shrink-0\">\n <Section\n tone=\"success\"\n padding=\"compact\"\n headingLevel={3}\n data-testid=\"live-board-banner\"\n icon={\n <span className=\"relative flex h-2.5 w-2.5 flex-shrink-0\" aria-hidden=\"true\">\n <span className=\"absolute inline-flex h-full w-full rounded-full bg-status-success-text opacity-60 motion-safe:animate-ping\" />\n <span className=\"relative inline-flex rounded-full h-2.5 w-2.5 bg-status-success-text\" />\n </span>\n }\n title=\"Live\"\n description={`Auto-refreshing every ${refreshSeconds}s — no reload needed`}\n meta={\n <span className=\"flex flex-wrap items-center gap-icon-gap text-xs text-text-muted\">\n <span data-testid=\"live-board-asof\">As of {asOf}</span>\n <span className=\"tabular-nums\" data-testid=\"live-board-ago\">\n (updated {formatAgo(agoSeconds)})\n </span>\n </span>\n }\n />\n </div>\n );\n});\n\nexport default LiveBoardBanner;\n"],"mappings":";;;;;AAkDA,SAAS,EAAqB,GAAkC;CAC9D,IAAI,IAAqB;AACzB,MAAK,IAAM,KAAK,GAAS;EACvB,IAAM,IAAY,EAA0C;AAC5D,EAAI,OAAO,KAAa,YAAY,IAAW,MAC7C,IAAM,MAAQ,OAAO,IAAW,KAAK,IAAI,GAAK,EAAS;;AAG3D,QAAO;;AAGT,SAAS,EAAU,GAAyB;AAC1C,KAAI,KAAW,EAAG,QAAO;AACzB,KAAI,IAAU,GAAI,QAAO,GAAG,EAAQ;CACpC,IAAM,IAAO,KAAK,MAAM,IAAU,GAAG,EAC/B,IAAM,IAAU;AACtB,QAAO,MAAQ,IAAI,GAAG,EAAK,SAAS,GAAG,EAAK,IAAI,EAAI;;AAOtD,IAAa,IAA4C,EAAK,SAAyB,EACrF,YACA,gBAAa,MACZ;CACD,IAAM,IAAiB,QAAc,EAAqB,EAAQ,EAAE,CAAC,EAAQ,CAAC,EAOxE,CAAC,GAAe,KAAoB,QAAuB,KAAK,KAAK,CAAC,EACtE,CAAC,GAAY,KAAiB,EAAS,EAAE;AAuB/C,KArBA,QAAgB;AACd,MAAI,KAAc,CAAC,EAAgB;AAGnC,EADA,EAAiB,KAAK,KAAK,CAAC,EAC5B,EAAc,EAAE;EAEhB,IAAM,IAAO,kBAAkB;AAC7B,MAAe,MAAS;IACtB,IAAM,IAAO,IAAO;AAMpB,WALI,KAAQ,KAEV,EAAiB,KAAK,KAAK,CAAC,EACrB,KAEF;KACP;KACD,IAAK;AAER,eAAa,cAAc,EAAK;IAC/B;EAAC;EAAY;EAAgB,EAAQ;EAAO,CAAC,EAE5C,KAAc,CAAC,EAAgB,QAAO;CAE1C,IAAM,IAAO,IAAI,KAAK,EAAc,CAAC,mBAAmB,EAAE,EAAE;EAC1D,MAAM;EACN,QAAQ;EACR,QAAQ;EACT,CAAC;AAEF,QACE,kBAAC,OAAD;EAAK,MAAK;EAAS,aAAU;EAAS,WAAU;YAC9C,kBAAC,GAAD;GACE,MAAK;GACL,SAAQ;GACR,cAAc;GACd,eAAY;GACZ,MACE,kBAAC,QAAD;IAAM,WAAU;IAA0C,eAAY;cAAtE,CACE,kBAAC,QAAD,EAAM,WAAU,8GAA+G,CAAA,EAC/H,kBAAC,QAAD,EAAM,WAAU,wEAAyE,CAAA,CACpF;;GAET,OAAM;GACN,aAAa,yBAAyB,EAAe;GACrD,MACE,kBAAC,QAAD;IAAM,WAAU;cAAhB,CACE,kBAAC,QAAD;KAAM,eAAY;eAAlB,CAAoC,UAAO,EAAY;QACvD,kBAAC,QAAD;KAAM,WAAU;KAAe,eAAY;eAA3C;MAA4D;MAChD,EAAU,EAAW;MAAC;MAC3B;OACF;;GAET,CAAA;EACE,CAAA;EAER"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"LiveCanvasToggle.d.ts","sourceRoot":"","sources":["../../../../src/bigconsole/components/dashboard/LiveCanvasToggle.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,KAAK,EAAE,EAAQ,MAAM,OAAO,CAAC;AAOtC,MAAM,WAAW,qBAAqB;IACpC,0DAA0D;IAC1D,MAAM,EAAE,OAAO,CAAC;IAChB,4CAA4C;IAC5C,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AAMD,eAAO,MAAM,gBAAgB,EAAE,EAAE,CAAC,qBAAqB,CA+BrD,CAAC;AAEH,eAAe,gBAAgB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"LiveCanvasToggle.js","names":[],"sources":["../../../../src/bigconsole/components/dashboard/LiveCanvasToggle.tsx"],"sourcesContent":["/**\n * LiveCanvasToggle\n *\n * Operator control that turns the dashboard into a \"live canvas\": while it is\n * on, the dashboard view polls the dashboard + widget STRUCTURE on a short\n * cadence so that pipeline changes made server-side — e.g. the AI assistant's\n * api-calls agent creating DataSink → Parser → Widget → Dashboard, or any other\n * writer — appear on the board in (near) real time WITHOUT a manual reload.\n *\n * This complements `LiveBoardBanner` (UC4), which only surfaces per-widget DATA\n * polling (`refreshInterval`). Nothing in that path refetches the board's\n * structure, so a newly-added widget would never show up live. This toggle is\n * the structure-level counterpart.\n *\n * WHY POLLING (not a subscription): identical to the LiveBoardBanner rationale —\n * the backend GraphQL server is HTTP-only with no graphql-ws transport / PubSub,\n * so there is no push channel. The live canvas runs on the same fallback path:\n * a visibility-gated interval refetch.\n *\n * Semantic status tokens only — no raw colors — so it themes correctly on\n * light / dark / high-contrast displays.\n */\n\nimport { type FC, memo } from 'react';\nimport { Radio } from 'lucide-react';\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface LiveCanvasToggleProps {\n /** Whether live structure polling is currently active. */\n isLive: boolean;\n /** Toggle live structure polling on/off. */\n onToggle: () => void;\n}\n\n// ============================================================================\n// Component\n// ============================================================================\n\nexport const LiveCanvasToggle: FC<LiveCanvasToggleProps> = memo(function LiveCanvasToggle({ isLive, onToggle }) {\n return (\n <button\n type=\"button\"\n onClick={onToggle}\n aria-pressed={isLive}\n data-testid=\"live-canvas-toggle\"\n data-live={isLive ? 'on' : 'off'}\n title={\n isLive\n ? 'Live canvas on — new widgets and pages appear automatically, no reload needed'\n : 'Turn on live canvas to watch the board update as the pipeline builds'\n }\n className={[\n 'inline-flex items-center gap-1.5 rounded-md px-2.5 py-1 text-xs font-medium transition-colors',\n isLive\n ? 'bg-status-success-bg text-status-success-text border border-status-success-border'\n : 'text-text-secondary border border-border-default hover:bg-bg-sunken',\n ].join(' ')}\n >\n {isLive ? (\n <span className=\"relative flex h-2.5 w-2.5 flex-shrink-0\" aria-hidden=\"true\">\n <span className=\"animate-ping absolute inline-flex h-full w-full rounded-full bg-status-success-text opacity-60\" />\n <span className=\"relative inline-flex h-2.5 w-2.5 rounded-full bg-status-success-text\" />\n </span>\n ) : (\n <Radio className=\"h-3.5 w-3.5 flex-shrink-0\" aria-hidden=\"true\" />\n )}\n <span className=\"uppercase tracking-wide\">{isLive ? 'Live' : 'Go live'}</span>\n </button>\n );\n});\n\nexport default LiveCanvasToggle;\n"],"mappings":";;;;AAyCA,IAAa,IAA8C,EAAK,SAA0B,EAAE,WAAQ,eAAY;AAC9G,QACE,kBAAC,UAAD;EACE,MAAK;EACL,SAAS;EACT,gBAAc;EACd,eAAY;EACZ,aAAW,IAAS,OAAO;EAC3B,OACE,IACI,kFACA;EAEN,WAAW,CACT,iGACA,IACI,sFACA,sEACL,CAAC,KAAK,IAAI;YAhBb,CAkBG,IACC,kBAAC,QAAD;GAAM,WAAU;GAA0C,eAAY;aAAtE,CACE,kBAAC,QAAD,EAAM,WAAU,kGAAmG,CAAA,EACnH,kBAAC,QAAD,EAAM,WAAU,wEAAyE,CAAA,CACpF;OAEP,kBAAC,GAAD;GAAO,WAAU;GAA4B,eAAY;GAAS,CAAA,EAEpE,kBAAC,QAAD;GAAM,WAAU;aAA2B,IAAS,SAAS;GAAiB,CAAA,CACvE;;EAEX"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"PageTabsManager.d.ts","sourceRoot":"","sources":["../../../../../src/bigconsole/components/dashboard/PageTabsManager/PageTabsManager.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAmD,MAAM,OAAO,CAAC;AAWxE,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACzD,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC7C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAMD,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,cAAc,EACd,QAAe,EACf,SAAc,GACf,EAAE,oBAAoB,qBAoWtB;AAED,eAAe,eAAe,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"PageTabsManager.js","names":[],"sources":["../../../../../src/bigconsole/components/dashboard/PageTabsManager/PageTabsManager.tsx"],"sourcesContent":["/**\n * PageTabsManager Component\n *\n * Manages dashboard page tabs with drag-and-drop reordering.\n */\n\nimport React, { useState, useCallback, useRef, useEffect } from 'react';\nimport { createPortal } from 'react-dom';\nimport { usePermissions } from '@burdenoff/fe-libs/shared/providers/shell';\nimport { SEMANTIC_COLORS } from '../../../utils/semanticTokens';\nimport { BIGCONSOLE_PERMISSIONS } from '../../../../constants/permissions';\nimport { SECTION_FOCUS_RING } from '../../common';\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface DashboardPageTab {\n id: string;\n name: string;\n order: number;\n widgetCount?: number;\n}\n\nexport interface PageTabsManagerProps {\n pages: DashboardPageTab[];\n activePageId: string;\n onPageSelect: (pageId: string) => void;\n onPageCreate?: () => void;\n onPageRename?: (pageId: string, newName: string) => void;\n onPageDuplicate?: (pageId: string) => void;\n onPageDelete?: (pageId: string) => void;\n onPagesReorder?: (pageIds: string[]) => void;\n editable?: boolean;\n className?: string;\n}\n\n// ============================================================================\n// Component\n// ============================================================================\n\nexport function PageTabsManager({\n pages,\n activePageId,\n onPageSelect,\n onPageCreate,\n onPageRename,\n onPageDuplicate,\n onPageDelete,\n onPagesReorder,\n editable = true,\n className = '',\n}: PageTabsManagerProps) {\n const { hasPermission } = usePermissions();\n const canCreatePage = hasPermission(BIGCONSOLE_PERMISSIONS.DASHBOARD_PAGE_CREATE);\n const canUpdatePage = hasPermission(BIGCONSOLE_PERMISSIONS.DASHBOARD_PAGE_UPDATE);\n const canDeletePage = hasPermission(BIGCONSOLE_PERMISSIONS.DASHBOARD_PAGE_DELETE);\n\n const [draggedId, setDraggedId] = useState<string | null>(null);\n const [dragOverId, setDragOverId] = useState<string | null>(null);\n const [editingId, setEditingId] = useState<string | null>(null);\n const [editingName, setEditingName] = useState('');\n const [contextMenuId, setContextMenuId] = useState<string | null>(null);\n const [contextMenuPos, setContextMenuPos] = useState({ x: 0, y: 0 });\n\n const editInputRef = useRef<HTMLInputElement>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n\n // Focus input when editing\n useEffect(() => {\n if (editingId && editInputRef.current) {\n editInputRef.current.focus();\n editInputRef.current.select();\n }\n }, [editingId]);\n\n // Close context menu on click outside\n useEffect(() => {\n function handleClickOutside(event: MouseEvent) {\n if (containerRef.current && !containerRef.current.contains(event.target as Node)) {\n setContextMenuId(null);\n }\n }\n\n document.addEventListener('mousedown', handleClickOutside);\n return () => document.removeEventListener('mousedown', handleClickOutside);\n }, []);\n\n // Drag handlers\n const handleDragStart = useCallback((e: React.DragEvent, pageId: string) => {\n setDraggedId(pageId);\n e.dataTransfer.effectAllowed = 'move';\n }, []);\n\n const handleDragOver = useCallback(\n (e: React.DragEvent, pageId: string) => {\n e.preventDefault();\n e.dataTransfer.dropEffect = 'move';\n if (draggedId && draggedId !== pageId) {\n setDragOverId(pageId);\n }\n },\n [draggedId]\n );\n\n const handleDragEnd = useCallback(() => {\n if (draggedId && dragOverId && draggedId !== dragOverId && onPagesReorder) {\n // Sort by `order` first, exactly like the render below. Reordering from\n // the raw prop order would persist a sequence that differs from the one\n // the user just dragged whenever `pages` arrives unsorted.\n const orderedPages = [...pages].sort((a, b) => a.order - b.order);\n const draggedIndex = orderedPages.findIndex((p) => p.id === draggedId);\n const targetIndex = orderedPages.findIndex((p) => p.id === dragOverId);\n\n if (draggedIndex !== -1 && targetIndex !== -1) {\n const [draggedPage] = orderedPages.splice(draggedIndex, 1);\n orderedPages.splice(targetIndex, 0, draggedPage);\n onPagesReorder(orderedPages.map((p) => p.id));\n }\n }\n\n setDraggedId(null);\n setDragOverId(null);\n }, [draggedId, dragOverId, pages, onPagesReorder]);\n\n // Context menu handler\n const handleContextMenu = useCallback((e: React.MouseEvent, pageId: string) => {\n e.preventDefault();\n setContextMenuId(pageId);\n setContextMenuPos({ x: e.clientX, y: e.clientY });\n }, []);\n\n // Start editing\n const handleStartEdit = useCallback((pageId: string, currentName: string) => {\n setEditingId(pageId);\n setEditingName(currentName);\n setContextMenuId(null);\n }, []);\n\n // Save edit\n const handleSaveEdit = useCallback(() => {\n if (editingId && editingName.trim() && onPageRename) {\n onPageRename(editingId, editingName.trim());\n }\n setEditingId(null);\n setEditingName('');\n }, [editingId, editingName, onPageRename]);\n\n // Cancel edit\n const handleCancelEdit = useCallback(() => {\n setEditingId(null);\n setEditingName('');\n }, []);\n\n // Handle key press in edit mode\n const handleEditKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n if (e.key === 'Enter') {\n handleSaveEdit();\n } else if (e.key === 'Escape') {\n handleCancelEdit();\n }\n },\n [handleSaveEdit, handleCancelEdit]\n );\n\n // `pages` is a prop — sorting it in place mutates the caller's array. Copy first.\n const orderedPages = [...pages].sort((a, b) => a.order - b.order);\n\n /**\n * Keyboard support for the tablist.\n *\n * The tabs carry `role=\"tab\"` and a roving `tabIndex`, which promises the\n * standard tab-list keyboard contract: arrows move between tabs, Home/End jump\n * to the ends, and Enter/Space activate. Without this handler the roving index\n * would leave every non-active page unreachable by keyboard.\n */\n const handleTabKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLDivElement>, pageId: string) => {\n if (editingId) return;\n\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n onPageSelect(pageId);\n return;\n }\n\n const currentIndex = orderedPages.findIndex((p) => p.id === pageId);\n if (currentIndex === -1) return;\n\n let nextIndex: number | null = null;\n if (e.key === 'ArrowRight') nextIndex = (currentIndex + 1) % orderedPages.length;\n else if (e.key === 'ArrowLeft') nextIndex = (currentIndex - 1 + orderedPages.length) % orderedPages.length;\n else if (e.key === 'Home') nextIndex = 0;\n else if (e.key === 'End') nextIndex = orderedPages.length - 1;\n\n if (nextIndex === null) return;\n\n e.preventDefault();\n const nextPage = orderedPages[nextIndex];\n if (!nextPage) return;\n onPageSelect(nextPage.id);\n // Roving tabindex: the newly selected tab becomes the focusable one, so\n // move focus with it or the user loses their place in the strip.\n const tabs = containerRef.current?.querySelectorAll<HTMLElement>('[role=\"tab\"]');\n tabs?.[nextIndex]?.focus();\n },\n [editingId, onPageSelect, orderedPages]\n );\n\n return (\n <div\n ref={containerRef}\n className={`flex min-w-0 items-stretch gap-icon-gap border-b border-[var(--color-border-subtle)] bg-bg-surface px-2 ${className}`}\n data-testid=\"page-tabs\"\n >\n <div\n role=\"tablist\"\n aria-label=\"Dashboard pages\"\n className=\"flex min-w-0 flex-1 items-center gap-icon-gap overflow-x-auto\"\n style={{ minHeight: 'var(--size-controlHeight-md)' }}\n >\n {/* Page Tabs */}\n {orderedPages.map((page) => (\n <div\n key={page.id}\n role=\"tab\"\n tabIndex={activePageId === page.id ? 0 : -1}\n aria-selected={activePageId === page.id}\n draggable={editable && canUpdatePage && !editingId}\n onDragStart={(e) => handleDragStart(e, page.id)}\n onDragOver={(e) => handleDragOver(e, page.id)}\n onDragEnd={handleDragEnd}\n onContextMenu={(e) =>\n editable && (canUpdatePage || canDeletePage || !!onPageDuplicate) && handleContextMenu(e, page.id)\n }\n onClick={() => !editingId && onPageSelect(page.id)}\n onDoubleClick={() => editable && canUpdatePage && handleStartEdit(page.id, page.name)}\n onKeyDown={(e) => handleTabKeyDown(e, page.id)}\n className={SECTION_FOCUS_RING}\n style={{\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n gap: '6px',\n padding: 'var(--space-controlGap) var(--space-formGap)',\n minHeight: 'var(--size-controlHeight-md)',\n backgroundColor: activePageId === page.id ? 'var(--color-bg-sunken)' : 'transparent',\n borderBottom:\n activePageId === page.id ? '2px solid var(--color-action-primary-bg)' : '2px solid transparent',\n cursor: editingId === page.id ? 'text' : 'pointer',\n opacity: draggedId === page.id ? 0.5 : 1,\n borderLeft: dragOverId === page.id ? `2px solid ${SEMANTIC_COLORS.actionPrimaryBg}` : 'none',\n flexShrink: 0,\n transition: 'background-color 0.15s, border-color 0.15s',\n }}\n >\n {editingId === page.id ? (\n <input\n ref={editInputRef}\n type=\"text\"\n value={editingName}\n onChange={(e) => setEditingName(e.target.value)}\n onKeyDown={handleEditKeyDown}\n onBlur={handleSaveEdit}\n style={{\n width: '100px',\n padding: '2px 4px',\n border: `1px solid ${SEMANTIC_COLORS.actionPrimaryBg}`,\n borderRadius: '2px',\n fontSize: '13px',\n outline: 'none',\n backgroundColor: SEMANTIC_COLORS.bgPrimary,\n color: SEMANTIC_COLORS.textPrimary,\n }}\n onClick={(e) => e.stopPropagation()}\n />\n ) : (\n <>\n <span\n style={{\n fontSize: '13px',\n fontWeight: activePageId === page.id ? 600 : 400,\n color: activePageId === page.id ? SEMANTIC_COLORS.textPrimary : SEMANTIC_COLORS.textSecondary,\n }}\n >\n {page.name}\n </span>\n {page.widgetCount !== undefined && (\n <span\n style={{\n fontSize: '10px',\n color: SEMANTIC_COLORS.textTertiary,\n backgroundColor: SEMANTIC_COLORS.borderDefault,\n padding: '1px 4px',\n borderRadius: '8px',\n }}\n >\n {page.widgetCount}\n </span>\n )}\n </>\n )}\n </div>\n ))}\n </div>\n\n {/* Add Page Button — outside the scroller so a long tab list never hides it */}\n {editable && onPageCreate && canCreatePage && (\n <button\n type=\"button\"\n onClick={onPageCreate}\n className={`my-1 inline-flex min-h-control-sm flex-shrink-0 items-center justify-center rounded-button border border-[var(--color-border-subtle)] bg-bg-surface px-3 text-xs font-medium text-text-primary motion-safe:transition-colors hover:bg-bg-accentSubtle ${SECTION_FOCUS_RING}`}\n >\n + Add Page\n </button>\n )}\n\n {/* Context Menu - rendered via portal */}\n {contextMenuId &&\n createPortal(\n <div\n style={{\n position: 'fixed',\n left: contextMenuPos.x,\n top: contextMenuPos.y,\n backgroundColor: SEMANTIC_COLORS.bgPrimary,\n border: `1px solid ${SEMANTIC_COLORS.borderDefault}`,\n borderRadius: '6px',\n boxShadow: 'var(--shadow-elevation-3)',\n zIndex: 99999,\n minWidth: '140px',\n }}\n onClick={(e) => e.stopPropagation()}\n >\n {canUpdatePage && (\n <button\n onClick={() => {\n const page = pages.find((p) => p.id === contextMenuId);\n if (page) handleStartEdit(contextMenuId, page.name);\n }}\n style={{\n display: 'block',\n width: '100%',\n padding: '8px 12px',\n textAlign: 'left',\n backgroundColor: SEMANTIC_COLORS.bgPrimary,\n border: 'none',\n cursor: 'pointer',\n fontSize: '13px',\n color: SEMANTIC_COLORS.textPrimary,\n }}\n >\n Rename\n </button>\n )}\n {onPageDuplicate && canCreatePage && (\n <button\n onClick={() => {\n onPageDuplicate(contextMenuId);\n setContextMenuId(null);\n }}\n style={{\n display: 'block',\n width: '100%',\n padding: '8px 12px',\n textAlign: 'left',\n backgroundColor: SEMANTIC_COLORS.bgPrimary,\n border: 'none',\n cursor: 'pointer',\n fontSize: '13px',\n color: SEMANTIC_COLORS.textPrimary,\n }}\n >\n Duplicate\n </button>\n )}\n {onPageDelete && canDeletePage && pages.length > 1 && (\n <>\n <div style={{ height: '1px', backgroundColor: SEMANTIC_COLORS.borderDefault, margin: '4px 0' }} />\n <button\n onClick={() => {\n if (window.confirm('Are you sure you want to delete this page?')) {\n onPageDelete(contextMenuId);\n }\n setContextMenuId(null);\n }}\n style={{\n display: 'block',\n width: '100%',\n padding: '8px 12px',\n textAlign: 'left',\n backgroundColor: SEMANTIC_COLORS.bgPrimary,\n border: 'none',\n cursor: 'pointer',\n fontSize: '13px',\n color: SEMANTIC_COLORS.statusErrorText,\n }}\n >\n Delete\n </button>\n </>\n )}\n </div>,\n document.body\n )}\n </div>\n );\n}\n\nexport default PageTabsManager;\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/bigconsole/components/dashboard/PageTabsManager/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACtG,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"PublishToStoreDialog.d.ts","sourceRoot":"","sources":["../../../../src/bigconsole/components/dashboard/PublishToStoreDialog.tsx"],"names":[],"mappings":"AAiCA,OAAO,EAAE,KAAK,EAAE,EAA0C,MAAM,OAAO,CAAC;AAGxE,OAAO,EAA8B,KAAK,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAE/G,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,IAAI,CAAC;CACtD;AAYD,eAAO,MAAM,oBAAoB,EAAE,EAAE,CAAC,yBAAyB,CA0L7D,CAAC;AAEH,eAAe,oBAAoB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"PublishToStoreDialog.js","names":[],"sources":["../../../../src/bigconsole/components/dashboard/PublishToStoreDialog.tsx"],"sourcesContent":["/**\n * PublishToStoreDialog\n *\n * Turns the open dashboard into a store template.\n *\n * WHY THIS EXISTS:\n * A workflow template's {nodes, edges} can plausibly be hand-written into the\n * developer portal. A dashboard export — every widget with its layout\n * coordinates, bindings and filters — cannot. Without this, authoring a\n * dashboard template means hand-crafting a large JSON document, which nobody\n * will do, and the gallery stays empty.\n *\n * The backend tokenises the board (replacing this workspace's data-sink\n * references with named slots), then a DRAFT Dashboard Template application is\n * created in the developer portal from the result. It deliberately stops there\n * rather than writing a store product directly: devportal already owns\n * versioning, review and publisher identity for dashboard templates, and\n * forking that pipeline would orphan the listing.\n *\n * @module bigconsole/components/dashboard/PublishToStoreDialog\n */\nimport {\n Button,\n Dialog,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n Input,\n Spinner,\n Textarea,\n} from '@burdenoff/fe-libs/ui';\nimport { type FC, memo, useCallback, useEffect, useState } from 'react';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\n\nimport { useStoreDashboardTemplates, type PublishToStoreResult } from '../../hooks/useStoreDashboardTemplates';\n\nexport interface PublishToStoreDialogProps {\n isOpen: boolean;\n dashboardId: string;\n dashboardName: string;\n dashboardDescription?: string | null;\n onClose: () => void;\n onPublished?: (result: PublishToStoreResult) => void;\n}\n\n/** Store slugs are lowercase, hyphenated and unique. */\nfunction slugify(value: string): string {\n return value\n .toLowerCase()\n .split(/[^a-z0-9]+/)\n .filter(Boolean)\n .join('-')\n .slice(0, 60);\n}\n\nexport const PublishToStoreDialog: FC<PublishToStoreDialogProps> = memo(function PublishToStoreDialog({\n isOpen,\n dashboardId,\n dashboardName,\n dashboardDescription,\n onClose,\n onPublished,\n}) {\n const { t } = useI18n();\n const { publishToStore } = useStoreDashboardTemplates({ autoLoad: false });\n\n const [name, setName] = useState(dashboardName);\n const [slug, setSlug] = useState(slugify(dashboardName));\n const [description, setDescription] = useState(dashboardDescription ?? '');\n const [includeSampleData, setIncludeSampleData] = useState(false);\n const [publishing, setPublishing] = useState(false);\n const [error, setError] = useState<string | null>(null);\n const [result, setResult] = useState<PublishToStoreResult | null>(null);\n\n useEffect(() => {\n if (!isOpen) return;\n setName(dashboardName);\n setSlug(slugify(dashboardName));\n setDescription(dashboardDescription ?? '');\n setIncludeSampleData(false);\n setError(null);\n setResult(null);\n }, [isOpen, dashboardName, dashboardDescription]);\n\n const handlePublish = useCallback(async () => {\n if (!name.trim()) {\n setError(t('bigconsole.dashboards.publishStore.error.nameRequired', 'A template name is required'));\n return;\n }\n if (!slug.trim()) {\n setError(t('bigconsole.dashboards.publishStore.error.slugRequired', 'A slug is required'));\n return;\n }\n if (!description.trim()) {\n setError(\n t(\n 'bigconsole.dashboards.publishStore.error.descriptionRequired',\n 'A description is required — it is what people see in the gallery'\n )\n );\n return;\n }\n\n setError(null);\n setPublishing(true);\n try {\n const published = await publishToStore({\n dashboardId,\n name: name.trim(),\n slug: slug.trim(),\n description: description.trim(),\n includeSampleData,\n });\n if (!published.success) {\n setError(\n published.errorMessage ??\n t('bigconsole.dashboards.publishStore.error.publishFailed', 'Failed to publish to the store')\n );\n return;\n }\n setResult(published);\n onPublished?.(published);\n } finally {\n setPublishing(false);\n }\n }, [name, slug, description, includeSampleData, dashboardId, publishToStore, onPublished, t]);\n\n const label = { display: 'block', marginBottom: 'var(--space-2xs)', fontSize: 'var(--font-size-sm)' };\n\n return (\n <Dialog open={isOpen} onOpenChange={(open) => !open && !publishing && onClose()}>\n <DialogContent style={{ maxWidth: '520px' }}>\n <DialogHeader>\n <DialogTitle>{t('bigconsole.dashboards.publishStore.title', 'Publish as Template')}</DialogTitle>\n <DialogDescription>\n {t(\n 'bigconsole.dashboards.publishStore.subtitle',\n 'Share this dashboard as a reusable template. Your data sources are replaced with named slots, so nothing from this workspace is published.'\n )}\n </DialogDescription>\n </DialogHeader>\n\n {result ? (\n <div style={{ padding: 'var(--space-md) 0' }}>\n <p style={{ fontWeight: 'var(--font-weight-medium)' }}>\n {t('bigconsole.dashboards.publishStore.result.title', 'Draft template created')}\n </p>\n <p style={{ fontSize: 'var(--font-size-sm)', color: 'var(--color-text-muted)' }}>\n {result.sinkCount === 1\n ? t(\n 'bigconsole.dashboards.publishStore.result.sinksOne',\n '{{count}} data source turned into slots. Finish in the Developer Portal: review the listing, then submit it for approval. It appears in the gallery once approved.',\n { count: result.sinkCount ?? '' }\n )\n : t(\n 'bigconsole.dashboards.publishStore.result.sinksMany',\n '{{count}} data sources turned into slots. Finish in the Developer Portal: review the listing, then submit it for approval. It appears in the gallery once approved.',\n { count: result.sinkCount ?? '' }\n )}\n </p>\n {result.unknownSinkIds.length > 0 && (\n <p style={{ fontSize: 'var(--font-size-sm)', color: 'var(--color-text-warning)' }}>\n {result.unknownSinkIds.length === 1\n ? t(\n 'bigconsole.dashboards.publishStore.result.unknownOne',\n '{{count}} data source could not be named — those slots use generic labels.',\n { count: result.unknownSinkIds.length ?? '' }\n )\n : t(\n 'bigconsole.dashboards.publishStore.result.unknownMany',\n '{{count}} data sources could not be named — those slots use generic labels.',\n { count: result.unknownSinkIds.length ?? '' }\n )}\n </p>\n )}\n </div>\n ) : (\n <div style={{ display: 'flex', flexDirection: 'column', gap: 'var(--space-sm)' }}>\n <div>\n <label htmlFor=\"tpl-name\" style={label}>\n {t('bigconsole.dashboards.publishStore.field.name', 'Template name')}\n </label>\n <Input\n id=\"tpl-name\"\n value={name}\n disabled={publishing}\n onChange={(e) => {\n setName(e.target.value);\n setSlug(slugify(e.target.value));\n }}\n />\n </div>\n\n <div>\n <label htmlFor=\"tpl-slug\" style={label}>\n {t('bigconsole.dashboards.publishStore.field.slug', 'Slug')}\n </label>\n <Input\n id=\"tpl-slug\"\n value={slug}\n disabled={publishing}\n onChange={(e) => setSlug(slugify(e.target.value))}\n />\n </div>\n\n <div>\n <label htmlFor=\"tpl-desc\" style={label}>\n {t('bigconsole.dashboards.publishStore.field.description', 'Description')}\n </label>\n <Textarea\n id=\"tpl-desc\"\n rows={3}\n value={description}\n disabled={publishing}\n placeholder={t(\n 'bigconsole.dashboards.publishStore.field.descriptionPlaceholder',\n 'What is this dashboard for, and what data does it need?'\n )}\n onChange={(e) => setDescription(e.target.value)}\n />\n </div>\n\n {error && <p style={{ color: 'var(--color-text-danger)', fontSize: 'var(--font-size-sm)' }}>{error}</p>}\n </div>\n )}\n\n <DialogFooter>\n <Button variant=\"outline\" onClick={onClose} disabled={publishing}>\n {result\n ? t('bigconsole.dashboards.publishStore.action.done', 'Done')\n : t('bigconsole.dashboards.publishStore.action.cancel', 'Cancel')}\n </Button>\n {!result && (\n <Button onClick={handlePublish} disabled={publishing}>\n {publishing ? <Spinner /> : t('bigconsole.dashboards.publishStore.action.publish', 'Publish')}\n </Button>\n )}\n </DialogFooter>\n </DialogContent>\n </Dialog>\n );\n});\n\nexport default PublishToStoreDialog;\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"SavedViewsDropdown.d.ts","sourceRoot":"","sources":["../../../../../src/bigconsole/components/dashboard/SavedViewsDropdown/SavedViewsDropdown.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAmD,MAAM,OAAO,CAAC;AAGxE,OAAO,EAAqB,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AA+BvE,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAQD,wBAAgB,kBAAkB,CAAC,EACjC,WAAW,EACX,cAAc,EACd,aAAa,EACb,UAAU,EACV,SAAc,GACf,EAAE,uBAAuB,qBAmkBzB;AAED,eAAe,kBAAkB,CAAC"}