@burdenoff/microfe-bigconsole 2026.1008.12 → 2026.1008.14

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 (1452) hide show
  1. package/README.md +3 -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 +0 -2
  8. package/dist/bigconsole/BigConsoleRoutes.d.ts +0 -1
  9. package/dist/bigconsole/BigConsoleRoutes.js +0 -2
  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/displayCopy.d.ts +0 -1
  29. package/dist/bigconsole/assistant/index.d.ts +0 -1
  30. package/dist/bigconsole/assistant/modes.d.ts +0 -1
  31. package/dist/bigconsole/assistant/modes.js +0 -2
  32. package/dist/bigconsole/assistant/pageContext.d.ts +0 -1
  33. package/dist/bigconsole/assistant/pageContext.js +0 -2
  34. package/dist/bigconsole/assistant/previewController.d.ts +0 -1
  35. package/dist/bigconsole/assistant/previewController.js +0 -2
  36. package/dist/bigconsole/assistant/previewMutationResult.d.ts +0 -1
  37. package/dist/bigconsole/assistant/previewMutationResult.js +0 -2
  38. package/dist/bigconsole/assistant/previewRunAction.d.ts +0 -1
  39. package/dist/bigconsole/assistant/previewRunAction.js +0 -2
  40. package/dist/bigconsole/assistant/product.d.ts +0 -1
  41. package/dist/bigconsole/assistant/product.js +0 -2
  42. package/dist/bigconsole/assistant/recordAdapters.d.ts +0 -1
  43. package/dist/bigconsole/assistant/recordAdapters.js +0 -2
  44. package/dist/bigconsole/assistant/types.d.ts +0 -1
  45. package/dist/bigconsole/assistant/useAssistantRunWorkspace.d.ts +0 -1
  46. package/dist/bigconsole/assistant/useAssistantRunWorkspace.js +0 -2
  47. package/dist/bigconsole/assistant/useWorkspaceWriteAccess.d.ts +0 -1
  48. package/dist/bigconsole/assistant/useWorkspaceWriteAccess.js +0 -2
  49. package/dist/bigconsole/components/DrilldownDashboardRenderer.d.ts +0 -1
  50. package/dist/bigconsole/components/DrilldownDashboardRenderer.js +0 -2
  51. package/dist/bigconsole/components/DrilldownModal.d.ts +0 -1
  52. package/dist/bigconsole/components/DrilldownModal.js +0 -2
  53. package/dist/bigconsole/components/builder/BuilderCanvas.d.ts +0 -1
  54. package/dist/bigconsole/components/builder/BuilderCanvas.js +0 -2
  55. package/dist/bigconsole/components/builder/BuilderTopbar.d.ts +0 -1
  56. package/dist/bigconsole/components/builder/BuilderTopbar.js +0 -2
  57. package/dist/bigconsole/components/builder/DashboardEditorShell.d.ts +0 -1
  58. package/dist/bigconsole/components/builder/DashboardEditorShell.js +0 -2
  59. package/dist/bigconsole/components/builder/WidgetInspector.d.ts +0 -1
  60. package/dist/bigconsole/components/builder/WidgetInspector.js +0 -2
  61. package/dist/bigconsole/components/builder/index.d.ts +0 -1
  62. package/dist/bigconsole/components/builder/inspector/AdvancedSection.d.ts +0 -1
  63. package/dist/bigconsole/components/builder/inspector/AdvancedSection.js +0 -2
  64. package/dist/bigconsole/components/builder/inspector/AppearanceSection.d.ts +0 -1
  65. package/dist/bigconsole/components/builder/inspector/AppearanceSection.js +0 -2
  66. package/dist/bigconsole/components/builder/inspector/DataBindingSection.d.ts +0 -1
  67. package/dist/bigconsole/components/builder/inspector/DataBindingSection.js +0 -2
  68. package/dist/bigconsole/components/builder/inspector/GeneralSection.d.ts +0 -1
  69. package/dist/bigconsole/components/builder/inspector/GeneralSection.js +0 -2
  70. package/dist/bigconsole/components/builder/inspector/LayoutSection.d.ts +0 -1
  71. package/dist/bigconsole/components/builder/inspector/LayoutSection.js +0 -2
  72. package/dist/bigconsole/components/builder/inspector/index.d.ts +0 -1
  73. package/dist/bigconsole/components/common/Section.d.ts +0 -1
  74. package/dist/bigconsole/components/common/Section.js +0 -2
  75. package/dist/bigconsole/components/common/index.d.ts +0 -1
  76. package/dist/bigconsole/components/common/sectionStyles.d.ts +0 -1
  77. package/dist/bigconsole/components/common/sectionStyles.js +0 -2
  78. package/dist/bigconsole/components/dashboard/CreateDashboardDialog.d.ts +0 -1
  79. package/dist/bigconsole/components/dashboard/CreateDashboardDialog.js +0 -2
  80. package/dist/bigconsole/components/dashboard/DashboardCanvas.d.ts +0 -1
  81. package/dist/bigconsole/components/dashboard/DashboardCanvas.js +0 -2
  82. package/dist/bigconsole/components/dashboard/DashboardGrid.d.ts +0 -1
  83. package/dist/bigconsole/components/dashboard/DashboardGrid.js +0 -2
  84. package/dist/bigconsole/components/dashboard/DashboardStatusPill.d.ts +0 -1
  85. package/dist/bigconsole/components/dashboard/DashboardStatusPill.js +0 -2
  86. package/dist/bigconsole/components/dashboard/DashboardToolbar.d.ts +0 -1
  87. package/dist/bigconsole/components/dashboard/DashboardToolbar.js +0 -2
  88. package/dist/bigconsole/components/dashboard/DrilldownBreadcrumb.d.ts +0 -1
  89. package/dist/bigconsole/components/dashboard/DrilldownBreadcrumb.js +0 -2
  90. package/dist/bigconsole/components/dashboard/ExportDashboardDialog.d.ts +0 -1
  91. package/dist/bigconsole/components/dashboard/ExportDashboardDialog.js +0 -2
  92. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterChip.d.ts +0 -1
  93. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterChip.js +0 -2
  94. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterEditor.d.ts +0 -1
  95. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterEditor.js +0 -2
  96. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterPresetSelector.d.ts +0 -1
  97. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterPresetSelector.js +0 -2
  98. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.d.ts +0 -1
  99. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.js +0 -2
  100. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/index.d.ts +0 -1
  101. package/dist/bigconsole/components/dashboard/ImportDashboardDialog.d.ts +0 -1
  102. package/dist/bigconsole/components/dashboard/ImportDashboardDialog.js +0 -2
  103. package/dist/bigconsole/components/dashboard/LiveBoardBanner.d.ts +0 -1
  104. package/dist/bigconsole/components/dashboard/LiveBoardBanner.js +0 -2
  105. package/dist/bigconsole/components/dashboard/LiveCanvasToggle.d.ts +0 -1
  106. package/dist/bigconsole/components/dashboard/LiveCanvasToggle.js +0 -2
  107. package/dist/bigconsole/components/dashboard/PageTabsManager/PageTabsManager.d.ts +0 -1
  108. package/dist/bigconsole/components/dashboard/PageTabsManager/PageTabsManager.js +0 -2
  109. package/dist/bigconsole/components/dashboard/PageTabsManager/index.d.ts +0 -1
  110. package/dist/bigconsole/components/dashboard/PublishToStoreDialog.d.ts +0 -1
  111. package/dist/bigconsole/components/dashboard/PublishToStoreDialog.js +0 -2
  112. package/dist/bigconsole/components/dashboard/SavedViewsDropdown/SavedViewsDropdown.d.ts +0 -1
  113. package/dist/bigconsole/components/dashboard/SavedViewsDropdown/SavedViewsDropdown.js +0 -2
  114. package/dist/bigconsole/components/dashboard/SavedViewsDropdown/index.d.ts +0 -1
  115. package/dist/bigconsole/components/dashboard/ShareDialog/EmbedTab.d.ts +0 -1
  116. package/dist/bigconsole/components/dashboard/ShareDialog/EmbedTab.js +0 -2
  117. package/dist/bigconsole/components/dashboard/ShareDialog/ShareDialog.d.ts +0 -1
  118. package/dist/bigconsole/components/dashboard/ShareDialog/ShareDialog.js +0 -2
  119. package/dist/bigconsole/components/dashboard/ShareDialog/index.d.ts +0 -1
  120. package/dist/bigconsole/components/dashboard/StoreTemplatePicker.d.ts +0 -1
  121. package/dist/bigconsole/components/dashboard/StoreTemplatePicker.js +0 -2
  122. package/dist/bigconsole/components/dashboard/TemplateInstallOptions.d.ts +0 -1
  123. package/dist/bigconsole/components/dashboard/TemplateInstallOptions.js +0 -2
  124. package/dist/bigconsole/components/dashboard/TemplateLayoutPreview.d.ts +0 -1
  125. package/dist/bigconsole/components/dashboard/TemplateLayoutPreview.js +0 -2
  126. package/dist/bigconsole/components/dashboard/TemplatePicker/TemplatePicker.d.ts +0 -1
  127. package/dist/bigconsole/components/dashboard/TemplatePicker/index.d.ts +0 -1
  128. package/dist/bigconsole/components/dashboard/TemplateSetupBanner.d.ts +0 -1
  129. package/dist/bigconsole/components/dashboard/TemplateSetupBanner.js +0 -2
  130. package/dist/bigconsole/components/dashboard/WidgetPalette.d.ts +0 -1
  131. package/dist/bigconsole/components/dashboard/WidgetPalette.js +0 -2
  132. package/dist/bigconsole/components/dashboard/index.d.ts +0 -1
  133. package/dist/bigconsole/components/datasink/AlertExecutionHistory.d.ts +0 -1
  134. package/dist/bigconsole/components/datasink/AlertExecutionHistory.js +0 -2
  135. package/dist/bigconsole/components/datasink/AlertRuleEditor.d.ts +0 -1
  136. package/dist/bigconsole/components/datasink/AlertRuleEditor.js +0 -2
  137. package/dist/bigconsole/components/datasink/CacheTTLSelector.d.ts +0 -1
  138. package/dist/bigconsole/components/datasink/CacheTTLSelector.js +0 -2
  139. package/dist/bigconsole/components/datasink/ConfigurationForm.d.ts +0 -1
  140. package/dist/bigconsole/components/datasink/DataPreviewPanel.d.ts +0 -1
  141. package/dist/bigconsole/components/datasink/DataSinkCard.d.ts +0 -1
  142. package/dist/bigconsole/components/datasink/DataSinkCard.js +0 -2
  143. package/dist/bigconsole/components/datasink/DataSinkDataViewer.d.ts +0 -1
  144. package/dist/bigconsole/components/datasink/DataSinkDataViewer.js +0 -2
  145. package/dist/bigconsole/components/datasink/DataSinkDeleteDialog.d.ts +0 -1
  146. package/dist/bigconsole/components/datasink/DataSinkDeleteDialog.js +0 -2
  147. package/dist/bigconsole/components/datasink/DataSinkRefreshConfig.d.ts +0 -1
  148. package/dist/bigconsole/components/datasink/DataSinkRefreshDialog.d.ts +0 -1
  149. package/dist/bigconsole/components/datasink/DataSinkRefreshDialog.js +0 -2
  150. package/dist/bigconsole/components/datasink/DataSinkStatusBadge.d.ts +0 -1
  151. package/dist/bigconsole/components/datasink/DataSinkStatusBadge.js +0 -2
  152. package/dist/bigconsole/components/datasink/DataSinkTableViewer.d.ts +0 -1
  153. package/dist/bigconsole/components/datasink/DataSinkTableViewer.js +0 -2
  154. package/dist/bigconsole/components/datasink/ExportDataSinkDialog.d.ts +0 -1
  155. package/dist/bigconsole/components/datasink/ExportDataSinkDialog.js +0 -2
  156. package/dist/bigconsole/components/datasink/FluidGridsPanel.d.ts +0 -1
  157. package/dist/bigconsole/components/datasink/ImportDataGuideDialog.d.ts +0 -1
  158. package/dist/bigconsole/components/datasink/ImportDataGuideDialog.js +0 -2
  159. package/dist/bigconsole/components/datasink/ImportDataSinkDialog.d.ts +0 -1
  160. package/dist/bigconsole/components/datasink/ImportDataSinkDialog.js +0 -2
  161. package/dist/bigconsole/components/datasink/LinkedParsersPanel.d.ts +0 -1
  162. package/dist/bigconsole/components/datasink/LinkedParsersPanel.js +0 -2
  163. package/dist/bigconsole/components/datasink/LinkedWorkflowsPanel.d.ts +0 -1
  164. package/dist/bigconsole/components/datasink/LinkedWorkflowsPanel.js +0 -2
  165. package/dist/bigconsole/components/datasink/RefreshTypeSelector.d.ts +0 -1
  166. package/dist/bigconsole/components/datasink/RefreshTypeSelector.js +0 -2
  167. package/dist/bigconsole/components/datasink/SetupStateBadge.d.ts +0 -1
  168. package/dist/bigconsole/components/datasink/SetupStateBadge.js +0 -2
  169. package/dist/bigconsole/components/datasink/WorkflowStatusPanel.d.ts +0 -1
  170. package/dist/bigconsole/components/datasink/WorkflowStatusPanel.js +0 -2
  171. package/dist/bigconsole/components/datasink/index.d.ts +0 -1
  172. package/dist/bigconsole/components/embed/EmbedErrorBoundary.d.ts +0 -1
  173. package/dist/bigconsole/components/embed/EmbedErrorBoundary.js +0 -2
  174. package/dist/bigconsole/components/embed/EmbedWidgetRenderer.d.ts +0 -1
  175. package/dist/bigconsole/components/embed/EmbedWidgetRenderer.js +0 -2
  176. package/dist/bigconsole/components/embed/ReadOnlyDashboardRenderer.d.ts +0 -1
  177. package/dist/bigconsole/components/embed/ReadOnlyDashboardRenderer.js +0 -2
  178. package/dist/bigconsole/components/embed/drilldown.d.ts +0 -1
  179. package/dist/bigconsole/components/embed/drilldown.js +0 -2
  180. package/dist/bigconsole/components/embed/index.d.ts +0 -1
  181. package/dist/bigconsole/components/embed/renderer-manifest.d.ts +0 -1
  182. package/dist/bigconsole/components/embed/renderer-manifest.js +0 -2
  183. package/dist/bigconsole/components/embed/types.d.ts +0 -1
  184. package/dist/bigconsole/components/embed/types.js +0 -2
  185. package/dist/bigconsole/components/embed/validate.d.ts +0 -1
  186. package/dist/bigconsole/components/embed/validate.js +0 -2
  187. package/dist/bigconsole/components/embed/widgetShim.d.ts +0 -1
  188. package/dist/bigconsole/components/embed/widgetShim.js +0 -2
  189. package/dist/bigconsole/components/embed/widgets/CalendarEmbed.d.ts +0 -1
  190. package/dist/bigconsole/components/embed/widgets/CalendarEmbed.js +0 -2
  191. package/dist/bigconsole/components/embed/widgets/ChartEmbed.d.ts +0 -1
  192. package/dist/bigconsole/components/embed/widgets/ChartEmbed.js +0 -2
  193. package/dist/bigconsole/components/embed/widgets/EmbedFrame.d.ts +0 -1
  194. package/dist/bigconsole/components/embed/widgets/EmbedFrame.js +0 -2
  195. package/dist/bigconsole/components/embed/widgets/FormEmbed.d.ts +0 -1
  196. package/dist/bigconsole/components/embed/widgets/FormEmbed.js +0 -2
  197. package/dist/bigconsole/components/embed/widgets/GaugeEmbed.d.ts +0 -1
  198. package/dist/bigconsole/components/embed/widgets/GaugeEmbed.js +0 -2
  199. package/dist/bigconsole/components/embed/widgets/HeatmapEmbed.d.ts +0 -1
  200. package/dist/bigconsole/components/embed/widgets/HeatmapEmbed.js +0 -2
  201. package/dist/bigconsole/components/embed/widgets/KanbanEmbed.d.ts +0 -1
  202. package/dist/bigconsole/components/embed/widgets/KanbanEmbed.js +0 -2
  203. package/dist/bigconsole/components/embed/widgets/KpiComparisonEmbed.d.ts +0 -1
  204. package/dist/bigconsole/components/embed/widgets/KpiComparisonEmbed.js +0 -2
  205. package/dist/bigconsole/components/embed/widgets/ListEmbed.d.ts +0 -1
  206. package/dist/bigconsole/components/embed/widgets/ListEmbed.js +0 -2
  207. package/dist/bigconsole/components/embed/widgets/MetricCardEmbed.d.ts +0 -1
  208. package/dist/bigconsole/components/embed/widgets/MetricCardEmbed.js +0 -2
  209. package/dist/bigconsole/components/embed/widgets/PivotEmbed.d.ts +0 -1
  210. package/dist/bigconsole/components/embed/widgets/PivotEmbed.js +0 -2
  211. package/dist/bigconsole/components/embed/widgets/ProgressEmbed.d.ts +0 -1
  212. package/dist/bigconsole/components/embed/widgets/ProgressEmbed.js +0 -2
  213. package/dist/bigconsole/components/embed/widgets/RetentionEmbed.d.ts +0 -1
  214. package/dist/bigconsole/components/embed/widgets/RetentionEmbed.js +0 -2
  215. package/dist/bigconsole/components/embed/widgets/TableEmbed.d.ts +0 -1
  216. package/dist/bigconsole/components/embed/widgets/TableEmbed.js +0 -2
  217. package/dist/bigconsole/components/embed/widgets/TextEmbed.d.ts +0 -1
  218. package/dist/bigconsole/components/embed/widgets/TextEmbed.js +0 -2
  219. package/dist/bigconsole/components/embed/widgets/TimelineEmbed.d.ts +0 -1
  220. package/dist/bigconsole/components/embed/widgets/TimelineEmbed.js +0 -2
  221. package/dist/bigconsole/components/embed/widgets/shared.d.ts +0 -1
  222. package/dist/bigconsole/components/embed/widgets/shared.js +0 -2
  223. package/dist/bigconsole/components/overview/DashboardGuide.d.ts +0 -1
  224. package/dist/bigconsole/components/overview/DashboardGuide.js +0 -2
  225. package/dist/bigconsole/components/overview/DataHealthCard.d.ts +0 -1
  226. package/dist/bigconsole/components/overview/DataHealthCard.js +0 -2
  227. package/dist/bigconsole/components/overview/OverviewQuickActions.d.ts +0 -1
  228. package/dist/bigconsole/components/overview/OverviewQuickActions.js +0 -2
  229. package/dist/bigconsole/components/overview/OverviewStatCard.d.ts +0 -1
  230. package/dist/bigconsole/components/overview/OverviewStatCard.js +0 -2
  231. package/dist/bigconsole/components/overview/RecentDashboardsPanel.d.ts +0 -1
  232. package/dist/bigconsole/components/overview/RecentDashboardsPanel.js +0 -2
  233. package/dist/bigconsole/components/overview/dashboardGuideSteps.d.ts +0 -1
  234. package/dist/bigconsole/components/overview/dashboardGuideSteps.js +0 -2
  235. package/dist/bigconsole/components/overview/index.d.ts +0 -1
  236. package/dist/bigconsole/components/overview/overviewModel.d.ts +0 -1
  237. package/dist/bigconsole/components/overview/overviewModel.js +0 -2
  238. package/dist/bigconsole/components/overview/useOverviewData.d.ts +0 -1
  239. package/dist/bigconsole/components/overview/useOverviewData.js +0 -2
  240. package/dist/bigconsole/components/parser/DataSinkSelector.d.ts +0 -1
  241. package/dist/bigconsole/components/parser/DataSinkSelector.js +0 -2
  242. package/dist/bigconsole/components/parser/ExportParserDialog.d.ts +0 -1
  243. package/dist/bigconsole/components/parser/ExportParserDialog.js +0 -2
  244. package/dist/bigconsole/components/parser/ExpressionEditor.d.ts +0 -1
  245. package/dist/bigconsole/components/parser/ExpressionEditor.js +0 -2
  246. package/dist/bigconsole/components/parser/ImportParserDialog.d.ts +0 -1
  247. package/dist/bigconsole/components/parser/ImportParserDialog.js +0 -2
  248. package/dist/bigconsole/components/parser/ParserBuilder.d.ts +0 -1
  249. package/dist/bigconsole/components/parser/ParserCard.d.ts +0 -1
  250. package/dist/bigconsole/components/parser/ParserCard.js +0 -2
  251. package/dist/bigconsole/components/parser/ParserFormDialog.d.ts +0 -1
  252. package/dist/bigconsole/components/parser/ParserSelector.d.ts +0 -1
  253. package/dist/bigconsole/components/parser/ParserSelector.js +0 -2
  254. package/dist/bigconsole/components/parser/ParserStatusBadge.d.ts +0 -1
  255. package/dist/bigconsole/components/parser/ParserStatusBadge.js +0 -2
  256. package/dist/bigconsole/components/parser/ParserTypeBadge.d.ts +0 -1
  257. package/dist/bigconsole/components/parser/ParserTypeBadge.js +0 -2
  258. package/dist/bigconsole/components/parser/TestPanel.d.ts +0 -1
  259. package/dist/bigconsole/components/parser/index.d.ts +0 -1
  260. package/dist/bigconsole/components/parser/parserFieldStyles.d.ts +0 -1
  261. package/dist/bigconsole/components/pipeline/PipelineCard.d.ts +0 -1
  262. package/dist/bigconsole/components/pipeline/PipelineCard.js +0 -2
  263. package/dist/bigconsole/components/pipeline/PipelineDeleteDialog.d.ts +0 -1
  264. package/dist/bigconsole/components/pipeline/PipelineDeleteDialog.js +0 -2
  265. package/dist/bigconsole/components/pipeline/PipelineScopePicker.d.ts +0 -1
  266. package/dist/bigconsole/components/pipeline/PipelineScopePicker.js +0 -2
  267. package/dist/bigconsole/components/pipeline/PipelineStatusBadge.d.ts +0 -1
  268. package/dist/bigconsole/components/pipeline/PipelineStatusBadge.js +0 -2
  269. package/dist/bigconsole/components/pipeline/index.d.ts +0 -1
  270. package/dist/bigconsole/components/preview/AiPreviewContent.d.ts +0 -1
  271. package/dist/bigconsole/components/preview/AiPreviewContent.js +0 -2
  272. package/dist/bigconsole/components/preview/AiPreviewMiniPanel.d.ts +0 -1
  273. package/dist/bigconsole/components/preview/AiPreviewMiniPanel.js +0 -2
  274. package/dist/bigconsole/components/preview/AiPreviewPanel.d.ts +0 -1
  275. package/dist/bigconsole/components/preview/AiPreviewPanel.js +0 -2
  276. package/dist/bigconsole/components/preview/parserPreview.d.ts +0 -1
  277. package/dist/bigconsole/components/preview/parserPreview.js +0 -2
  278. package/dist/bigconsole/components/preview/previewShared.d.ts +0 -1
  279. package/dist/bigconsole/components/preview/previewShared.js +0 -2
  280. package/dist/bigconsole/components/widgets/ActionConfigDialog.d.ts +0 -1
  281. package/dist/bigconsole/components/widgets/ActionConfigDialog.js +0 -2
  282. package/dist/bigconsole/components/widgets/DrilldownConfigPanel.d.ts +0 -1
  283. package/dist/bigconsole/components/widgets/DrilldownConfigPanel.js +0 -2
  284. package/dist/bigconsole/components/widgets/PropertiesPanel.d.ts +0 -1
  285. package/dist/bigconsole/components/widgets/PropertiesPanel.js +505 -506
  286. package/dist/bigconsole/components/widgets/WidgetErrorBoundary.d.ts +0 -1
  287. package/dist/bigconsole/components/widgets/WidgetErrorBoundary.js +0 -2
  288. package/dist/bigconsole/components/widgets/WidgetHeader.d.ts +0 -1
  289. package/dist/bigconsole/components/widgets/WidgetHeader.js +0 -2
  290. package/dist/bigconsole/components/widgets/WidgetMenu.d.ts +0 -1
  291. package/dist/bigconsole/components/widgets/WidgetMenu.js +0 -2
  292. package/dist/bigconsole/components/widgets/WidgetRegistry.d.ts +0 -1
  293. package/dist/bigconsole/components/widgets/WidgetRegistry.js +0 -2
  294. package/dist/bigconsole/components/widgets/WidgetTypeSelector.d.ts +0 -1
  295. package/dist/bigconsole/components/widgets/WidgetWrapper.d.ts +0 -1
  296. package/dist/bigconsole/components/widgets/WidgetWrapper.js +0 -2
  297. package/dist/bigconsole/components/widgets/actionConfig.d.ts +0 -1
  298. package/dist/bigconsole/components/widgets/actionConfig.js +0 -2
  299. package/dist/bigconsole/components/widgets/adaptive-card/AdaptiveCardWidget.d.ts +0 -1
  300. package/dist/bigconsole/components/widgets/adaptive-card/AdaptiveCardWidget.js +0 -2
  301. package/dist/bigconsole/components/widgets/adaptive-card/index.d.ts +0 -1
  302. package/dist/bigconsole/components/widgets/calendar/CalendarView.d.ts +0 -1
  303. package/dist/bigconsole/components/widgets/calendar/CalendarView.js +0 -2
  304. package/dist/bigconsole/components/widgets/calendar/CalendarWidget.d.ts +0 -1
  305. package/dist/bigconsole/components/widgets/calendar/CalendarWidget.js +0 -2
  306. package/dist/bigconsole/components/widgets/calendar/index.d.ts +0 -1
  307. package/dist/bigconsole/components/widgets/chart/ChartConfig.d.ts +0 -1
  308. package/dist/bigconsole/components/widgets/chart/ChartConfig.js +0 -2
  309. package/dist/bigconsole/components/widgets/chart/ChartLegend.d.ts +0 -1
  310. package/dist/bigconsole/components/widgets/chart/ChartLegend.js +0 -2
  311. package/dist/bigconsole/components/widgets/chart/ChartTooltip.d.ts +0 -1
  312. package/dist/bigconsole/components/widgets/chart/ChartTooltip.js +0 -2
  313. package/dist/bigconsole/components/widgets/chart/ChartWidget.d.ts +0 -1
  314. package/dist/bigconsole/components/widgets/chart/ChartWidget.js +0 -2
  315. package/dist/bigconsole/components/widgets/chart/charts/AreaChart.d.ts +0 -1
  316. package/dist/bigconsole/components/widgets/chart/charts/AreaChart.js +0 -2
  317. package/dist/bigconsole/components/widgets/chart/charts/BarChart.d.ts +0 -1
  318. package/dist/bigconsole/components/widgets/chart/charts/BarChart.js +0 -2
  319. package/dist/bigconsole/components/widgets/chart/charts/ComboChart.d.ts +0 -1
  320. package/dist/bigconsole/components/widgets/chart/charts/ComboChart.js +0 -2
  321. package/dist/bigconsole/components/widgets/chart/charts/FunnelChart.d.ts +0 -1
  322. package/dist/bigconsole/components/widgets/chart/charts/FunnelChart.js +0 -2
  323. package/dist/bigconsole/components/widgets/chart/charts/LineChart.d.ts +0 -1
  324. package/dist/bigconsole/components/widgets/chart/charts/LineChart.js +0 -2
  325. package/dist/bigconsole/components/widgets/chart/charts/PieChart.d.ts +0 -1
  326. package/dist/bigconsole/components/widgets/chart/charts/PieChart.js +0 -2
  327. package/dist/bigconsole/components/widgets/chart/charts/ScatterChart.d.ts +0 -1
  328. package/dist/bigconsole/components/widgets/chart/charts/ScatterChart.js +0 -2
  329. package/dist/bigconsole/components/widgets/chart/charts/WaterfallChart.d.ts +0 -1
  330. package/dist/bigconsole/components/widgets/chart/charts/WaterfallChart.js +0 -2
  331. package/dist/bigconsole/components/widgets/chart/charts/index.d.ts +0 -1
  332. package/dist/bigconsole/components/widgets/chart/charts/referenceElements.d.ts +0 -1
  333. package/dist/bigconsole/components/widgets/chart/charts/referenceElements.js +0 -2
  334. package/dist/bigconsole/components/widgets/chart/charts/types.d.ts +0 -1
  335. package/dist/bigconsole/components/widgets/chart/index.d.ts +0 -1
  336. package/dist/bigconsole/components/widgets/comments/WidgetComments.d.ts +0 -1
  337. package/dist/bigconsole/components/widgets/comments/WidgetComments.js +0 -2
  338. package/dist/bigconsole/components/widgets/custom/CustomWidget.d.ts +0 -1
  339. package/dist/bigconsole/components/widgets/custom/CustomWidget.js +0 -2
  340. package/dist/bigconsole/components/widgets/custom/config.d.ts +0 -1
  341. package/dist/bigconsole/components/widgets/custom/config.js +0 -2
  342. package/dist/bigconsole/components/widgets/custom/index.d.ts +0 -1
  343. package/dist/bigconsole/components/widgets/custom/utils.d.ts +0 -1
  344. package/dist/bigconsole/components/widgets/custom/utils.js +0 -2
  345. package/dist/bigconsole/components/widgets/event-logs/EventLogViewer.d.ts +0 -1
  346. package/dist/bigconsole/components/widgets/event-logs/EventLogViewer.js +0 -2
  347. package/dist/bigconsole/components/widgets/event-logs/index.d.ts +0 -1
  348. package/dist/bigconsole/components/widgets/form/FormWidget.d.ts +0 -1
  349. package/dist/bigconsole/components/widgets/form/FormWidget.js +0 -2
  350. package/dist/bigconsole/components/widgets/form/index.d.ts +0 -1
  351. package/dist/bigconsole/components/widgets/funnel/index.d.ts +0 -1
  352. package/dist/bigconsole/components/widgets/funnel/index.js +0 -2
  353. package/dist/bigconsole/components/widgets/gauge/CircularGauge.d.ts +0 -1
  354. package/dist/bigconsole/components/widgets/gauge/CircularGauge.js +0 -2
  355. package/dist/bigconsole/components/widgets/gauge/GaugeConfig.d.ts +0 -1
  356. package/dist/bigconsole/components/widgets/gauge/GaugeConfig.js +0 -2
  357. package/dist/bigconsole/components/widgets/gauge/GaugeWidget.d.ts +0 -1
  358. package/dist/bigconsole/components/widgets/gauge/GaugeWidget.js +0 -2
  359. package/dist/bigconsole/components/widgets/gauge/LinearGauge.d.ts +0 -1
  360. package/dist/bigconsole/components/widgets/gauge/LinearGauge.js +0 -2
  361. package/dist/bigconsole/components/widgets/gauge/index.d.ts +0 -1
  362. package/dist/bigconsole/components/widgets/heatmap/HeatmapConfig.d.ts +0 -1
  363. package/dist/bigconsole/components/widgets/heatmap/HeatmapConfig.js +0 -2
  364. package/dist/bigconsole/components/widgets/heatmap/HeatmapWidget.d.ts +0 -1
  365. package/dist/bigconsole/components/widgets/heatmap/HeatmapWidget.js +0 -2
  366. package/dist/bigconsole/components/widgets/heatmap/index.d.ts +0 -1
  367. package/dist/bigconsole/components/widgets/iframe-widget/IframeWidget.d.ts +0 -1
  368. package/dist/bigconsole/components/widgets/iframe-widget/IframeWidget.js +0 -2
  369. package/dist/bigconsole/components/widgets/iframe-widget/index.d.ts +0 -1
  370. package/dist/bigconsole/components/widgets/index.d.ts +0 -1
  371. package/dist/bigconsole/components/widgets/kanban/KanbanView.d.ts +0 -1
  372. package/dist/bigconsole/components/widgets/kanban/KanbanView.js +0 -2
  373. package/dist/bigconsole/components/widgets/kanban/KanbanWidget.d.ts +0 -1
  374. package/dist/bigconsole/components/widgets/kanban/KanbanWidget.js +0 -2
  375. package/dist/bigconsole/components/widgets/kanban/index.d.ts +0 -1
  376. package/dist/bigconsole/components/widgets/kanban/model.d.ts +0 -1
  377. package/dist/bigconsole/components/widgets/kanban/model.js +0 -2
  378. package/dist/bigconsole/components/widgets/kpi/KPIWidget.d.ts +0 -1
  379. package/dist/bigconsole/components/widgets/kpi/KPIWidget.js +0 -2
  380. package/dist/bigconsole/components/widgets/kpi/index.d.ts +0 -1
  381. package/dist/bigconsole/components/widgets/kpi-comparison/KPIComparisonWidget.d.ts +0 -1
  382. package/dist/bigconsole/components/widgets/kpi-comparison/KPIComparisonWidget.js +0 -2
  383. package/dist/bigconsole/components/widgets/kpi-comparison/index.d.ts +0 -1
  384. package/dist/bigconsole/components/widgets/list/ListConfig.d.ts +0 -1
  385. package/dist/bigconsole/components/widgets/list/ListConfig.js +0 -2
  386. package/dist/bigconsole/components/widgets/list/ListItem.d.ts +0 -1
  387. package/dist/bigconsole/components/widgets/list/ListItem.js +0 -2
  388. package/dist/bigconsole/components/widgets/list/ListWidget.d.ts +0 -1
  389. package/dist/bigconsole/components/widgets/list/ListWidget.js +0 -2
  390. package/dist/bigconsole/components/widgets/list/index.d.ts +0 -1
  391. package/dist/bigconsole/components/widgets/map-widget/MapWidget.d.ts +0 -1
  392. package/dist/bigconsole/components/widgets/map-widget/MapWidget.js +0 -2
  393. package/dist/bigconsole/components/widgets/map-widget/index.d.ts +0 -1
  394. package/dist/bigconsole/components/widgets/metric-card/ComparisonBadge.d.ts +0 -1
  395. package/dist/bigconsole/components/widgets/metric-card/ComparisonBadge.js +0 -2
  396. package/dist/bigconsole/components/widgets/metric-card/MetricCardConfig.d.ts +0 -1
  397. package/dist/bigconsole/components/widgets/metric-card/MetricCardConfig.js +0 -2
  398. package/dist/bigconsole/components/widgets/metric-card/MetricCardWidget.d.ts +0 -1
  399. package/dist/bigconsole/components/widgets/metric-card/MetricCardWidget.js +0 -2
  400. package/dist/bigconsole/components/widgets/metric-card/SparklineChart.d.ts +0 -1
  401. package/dist/bigconsole/components/widgets/metric-card/SparklineChart.js +0 -2
  402. package/dist/bigconsole/components/widgets/metric-card/TrendIndicator.d.ts +0 -1
  403. package/dist/bigconsole/components/widgets/metric-card/TrendIndicator.js +0 -2
  404. package/dist/bigconsole/components/widgets/metric-card/index.d.ts +0 -1
  405. package/dist/bigconsole/components/widgets/pivot-table/PivotTableWidget.d.ts +0 -1
  406. package/dist/bigconsole/components/widgets/pivot-table/PivotTableWidget.js +0 -2
  407. package/dist/bigconsole/components/widgets/pivot-table/index.d.ts +0 -1
  408. package/dist/bigconsole/components/widgets/progress/ProgressBar.d.ts +0 -1
  409. package/dist/bigconsole/components/widgets/progress/ProgressBar.js +0 -2
  410. package/dist/bigconsole/components/widgets/progress/ProgressConfig.d.ts +0 -1
  411. package/dist/bigconsole/components/widgets/progress/ProgressConfig.js +0 -2
  412. package/dist/bigconsole/components/widgets/progress/ProgressWidget.d.ts +0 -1
  413. package/dist/bigconsole/components/widgets/progress/ProgressWidget.js +0 -2
  414. package/dist/bigconsole/components/widgets/progress/index.d.ts +0 -1
  415. package/dist/bigconsole/components/widgets/retention/RetentionWidget.d.ts +0 -1
  416. package/dist/bigconsole/components/widgets/retention/RetentionWidget.js +0 -2
  417. package/dist/bigconsole/components/widgets/retention/index.d.ts +0 -1
  418. package/dist/bigconsole/components/widgets/states/EmptyState.d.ts +0 -1
  419. package/dist/bigconsole/components/widgets/states/EmptyState.js +0 -2
  420. package/dist/bigconsole/components/widgets/states/ErrorState.d.ts +0 -1
  421. package/dist/bigconsole/components/widgets/states/ErrorState.js +0 -2
  422. package/dist/bigconsole/components/widgets/states/LoadingState.d.ts +0 -1
  423. package/dist/bigconsole/components/widgets/states/LoadingState.js +0 -2
  424. package/dist/bigconsole/components/widgets/states/index.d.ts +0 -1
  425. package/dist/bigconsole/components/widgets/table/TableCell.d.ts +0 -1
  426. package/dist/bigconsole/components/widgets/table/TableCell.js +0 -2
  427. package/dist/bigconsole/components/widgets/table/TableConfig.d.ts +0 -1
  428. package/dist/bigconsole/components/widgets/table/TableConfig.js +0 -2
  429. package/dist/bigconsole/components/widgets/table/TableHeader.d.ts +0 -1
  430. package/dist/bigconsole/components/widgets/table/TableHeader.js +0 -2
  431. package/dist/bigconsole/components/widgets/table/TablePagination.d.ts +0 -1
  432. package/dist/bigconsole/components/widgets/table/TablePagination.js +0 -2
  433. package/dist/bigconsole/components/widgets/table/TableWidget.d.ts +0 -1
  434. package/dist/bigconsole/components/widgets/table/TableWidget.js +0 -2
  435. package/dist/bigconsole/components/widgets/table/cellLink.d.ts +0 -1
  436. package/dist/bigconsole/components/widgets/table/cellLink.js +0 -2
  437. package/dist/bigconsole/components/widgets/table/index.d.ts +0 -1
  438. package/dist/bigconsole/components/widgets/text-widget/TextWidget.d.ts +0 -1
  439. package/dist/bigconsole/components/widgets/text-widget/TextWidget.js +0 -2
  440. package/dist/bigconsole/components/widgets/text-widget/index.d.ts +0 -1
  441. package/dist/bigconsole/components/widgets/text-widget/textData.d.ts +0 -1
  442. package/dist/bigconsole/components/widgets/text-widget/textData.js +0 -2
  443. package/dist/bigconsole/components/widgets/timeline/TimelineWidget.d.ts +0 -1
  444. package/dist/bigconsole/components/widgets/timeline/TimelineWidget.js +0 -2
  445. package/dist/bigconsole/components/widgets/timeline/index.d.ts +0 -1
  446. package/dist/bigconsole/components/widgets/utils/conditionalFormat.d.ts +0 -1
  447. package/dist/bigconsole/components/widgets/utils/conditionalFormat.js +0 -2
  448. package/dist/bigconsole/components/widgets/utils/inferFields.d.ts +0 -1
  449. package/dist/bigconsole/components/widgets/utils/inferFields.js +0 -2
  450. package/dist/bigconsole/components/widgets/utils/targetProgress.d.ts +0 -1
  451. package/dist/bigconsole/components/widgets/utils/targetProgress.js +0 -2
  452. package/dist/bigconsole/components/widgets/utils/translate.d.ts +0 -1
  453. package/dist/bigconsole/components/widgets/utils/translate.js +0 -2
  454. package/dist/bigconsole/components/widgets/webhook-config/WebhookConfigPanel.d.ts +0 -1
  455. package/dist/bigconsole/components/widgets/webhook-config/WebhookConfigPanel.js +0 -2
  456. package/dist/bigconsole/components/widgets/webhook-config/index.d.ts +0 -1
  457. package/dist/bigconsole/components/widgets/widget-actions/WidgetActions.d.ts +0 -1
  458. package/dist/bigconsole/components/widgets/widget-actions/WidgetActions.js +0 -2
  459. package/dist/bigconsole/components/widgets/widget-actions/index.d.ts +0 -1
  460. package/dist/bigconsole/components/workflow/DataSinkMultiSelector.d.ts +0 -1
  461. package/dist/bigconsole/components/workflow/WorkflowCard.d.ts +0 -1
  462. package/dist/bigconsole/components/workflow/WorkflowCard.js +0 -2
  463. package/dist/bigconsole/components/workflow/WorkflowDeleteDialog.d.ts +0 -1
  464. package/dist/bigconsole/components/workflow/WorkflowDeleteDialog.js +0 -2
  465. package/dist/bigconsole/components/workflow/WorkflowDesignPreview.d.ts +0 -1
  466. package/dist/bigconsole/components/workflow/WorkflowDesignPreview.js +0 -2
  467. package/dist/bigconsole/components/workflow/WorkflowOpenGuard.d.ts +0 -1
  468. package/dist/bigconsole/components/workflow/WorkflowOpenGuard.js +0 -2
  469. package/dist/bigconsole/components/workflow/WorkflowSinkLinkForm.d.ts +0 -1
  470. package/dist/bigconsole/components/workflow/WorkflowSinkLinkForm.js +0 -2
  471. package/dist/bigconsole/components/workflow/WorkflowStatusBadge.d.ts +0 -1
  472. package/dist/bigconsole/components/workflow/WorkflowStatusBadge.js +0 -2
  473. package/dist/bigconsole/components/workflow/index.d.ts +0 -1
  474. package/dist/bigconsole/constants/backendErrors.d.ts +0 -1
  475. package/dist/bigconsole/constants/backendErrors.js +0 -2
  476. package/dist/bigconsole/constants.d.ts +0 -1
  477. package/dist/bigconsole/constants.js +0 -2
  478. package/dist/bigconsole/context/BigConsoleContext.d.ts +0 -1
  479. package/dist/bigconsole/context/BigConsoleContext.js +0 -2
  480. package/dist/bigconsole/context/index.d.ts +0 -1
  481. package/dist/bigconsole/contexts/CrossFilterContext.d.ts +0 -1
  482. package/dist/bigconsole/contexts/CrossFilterContext.js +0 -2
  483. package/dist/bigconsole/contexts/NavigationContext.d.ts +0 -1
  484. package/dist/bigconsole/contexts/NavigationContext.js +0 -2
  485. package/dist/bigconsole/contexts/index.d.ts +0 -1
  486. package/dist/bigconsole/customWidget/CustomWidgetBuilderSheet.d.ts +0 -1
  487. package/dist/bigconsole/customWidget/CustomWidgetBuilderSheet.js +0 -2
  488. package/dist/bigconsole/customWidget/CustomWidgetProposalPanel.d.ts +0 -1
  489. package/dist/bigconsole/customWidget/CustomWidgetProposalPanel.js +0 -2
  490. package/dist/bigconsole/customWidget/index.d.ts +0 -1
  491. package/dist/bigconsole/customWidget/proposalContract.d.ts +0 -1
  492. package/dist/bigconsole/customWidget/proposalContract.js +0 -2
  493. package/dist/bigconsole/customWidget/proposalSource.d.ts +0 -1
  494. package/dist/bigconsole/customWidget/proposalSource.js +0 -2
  495. package/dist/bigconsole/graphql/apollo-compat.d.ts +0 -1
  496. package/dist/bigconsole/graphql/storeTemplates.d.ts +0 -1
  497. package/dist/bigconsole/graphql/storeTemplates.js +0 -2
  498. package/dist/bigconsole/hooks/index.d.ts +0 -1
  499. package/dist/bigconsole/hooks/useActivePage.d.ts +0 -1
  500. package/dist/bigconsole/hooks/useActivePage.js +0 -2
  501. package/dist/bigconsole/hooks/useAutoRefresh.d.ts +0 -1
  502. package/dist/bigconsole/hooks/useAutoRefresh.js +0 -2
  503. package/dist/bigconsole/hooks/useBigConsoleAnalytics.d.ts +0 -1
  504. package/dist/bigconsole/hooks/useBigConsoleAnalytics.js +0 -2
  505. package/dist/bigconsole/hooks/useBigConsoleSettings.d.ts +0 -1
  506. package/dist/bigconsole/hooks/useBigConsoleSettings.js +0 -2
  507. package/dist/bigconsole/hooks/useCrossFilter.d.ts +0 -1
  508. package/dist/bigconsole/hooks/useCrossFilter.js +0 -2
  509. package/dist/bigconsole/hooks/useDashboardEmbedPolicy.d.ts +0 -1
  510. package/dist/bigconsole/hooks/useDashboardEmbedPolicy.js +0 -2
  511. package/dist/bigconsole/hooks/useDashboardImageExport.d.ts +0 -1
  512. package/dist/bigconsole/hooks/useDashboardImageExport.js +0 -2
  513. package/dist/bigconsole/hooks/useDashboardLayoutBaseline.d.ts +0 -1
  514. package/dist/bigconsole/hooks/useDashboardLayoutBaseline.js +0 -2
  515. package/dist/bigconsole/hooks/useDashboardOperations.d.ts +0 -1
  516. package/dist/bigconsole/hooks/useDashboardOperations.js +0 -2
  517. package/dist/bigconsole/hooks/useDashboardSharing.d.ts +0 -1
  518. package/dist/bigconsole/hooks/useDashboardSharing.js +0 -2
  519. package/dist/bigconsole/hooks/useDashboardTemplates.d.ts +0 -1
  520. package/dist/bigconsole/hooks/useDashboardViews.d.ts +0 -1
  521. package/dist/bigconsole/hooks/useDashboardViews.js +0 -2
  522. package/dist/bigconsole/hooks/useDataSinkAlerts.d.ts +0 -1
  523. package/dist/bigconsole/hooks/useDataSinkAlerts.js +0 -2
  524. package/dist/bigconsole/hooks/useDataSinkOperations.d.ts +0 -1
  525. package/dist/bigconsole/hooks/useDataSinkOperations.js +0 -2
  526. package/dist/bigconsole/hooks/useDataSinkSubscription.d.ts +0 -1
  527. package/dist/bigconsole/hooks/useDataSinkSubscription.js +0 -2
  528. package/dist/bigconsole/hooks/useDrilldown.d.ts +0 -1
  529. package/dist/bigconsole/hooks/useDrilldown.js +0 -2
  530. package/dist/bigconsole/hooks/useDrilldownOperations.d.ts +0 -1
  531. package/dist/bigconsole/hooks/useDrilldownOperations.js +0 -2
  532. package/dist/bigconsole/hooks/useEventLogs.d.ts +0 -1
  533. package/dist/bigconsole/hooks/useEventLogs.js +0 -2
  534. package/dist/bigconsole/hooks/useEventWebhooks.d.ts +0 -1
  535. package/dist/bigconsole/hooks/useEventWebhooks.js +0 -2
  536. package/dist/bigconsole/hooks/useExportDashboard.d.ts +0 -1
  537. package/dist/bigconsole/hooks/useExportDashboard.js +0 -2
  538. package/dist/bigconsole/hooks/useExportDataSink.d.ts +0 -1
  539. package/dist/bigconsole/hooks/useExportDataSink.js +0 -2
  540. package/dist/bigconsole/hooks/useExportParser.d.ts +0 -1
  541. package/dist/bigconsole/hooks/useExportParser.js +0 -2
  542. package/dist/bigconsole/hooks/useFilterPresets.d.ts +0 -1
  543. package/dist/bigconsole/hooks/useFilterPresets.js +0 -2
  544. package/dist/bigconsole/hooks/useFilterUrlSync.d.ts +0 -1
  545. package/dist/bigconsole/hooks/useFilterUrlSync.js +0 -2
  546. package/dist/bigconsole/hooks/useGlobalFilters.d.ts +0 -1
  547. package/dist/bigconsole/hooks/useGlobalFilters.js +0 -2
  548. package/dist/bigconsole/hooks/useImportDashboard.d.ts +0 -1
  549. package/dist/bigconsole/hooks/useImportDashboard.js +0 -2
  550. package/dist/bigconsole/hooks/useImportDataSink.d.ts +0 -1
  551. package/dist/bigconsole/hooks/useImportDataSink.js +0 -2
  552. package/dist/bigconsole/hooks/useImportParser.d.ts +0 -1
  553. package/dist/bigconsole/hooks/useImportParser.js +0 -2
  554. package/dist/bigconsole/hooks/useInstalledWidgets.d.ts +0 -1
  555. package/dist/bigconsole/hooks/useInstalledWidgets.js +0 -2
  556. package/dist/bigconsole/hooks/useModalFocusTrap.d.ts +0 -1
  557. package/dist/bigconsole/hooks/useModalFocusTrap.js +0 -2
  558. package/dist/bigconsole/hooks/usePageOperations.d.ts +0 -1
  559. package/dist/bigconsole/hooks/usePageOperations.js +0 -2
  560. package/dist/bigconsole/hooks/useParserOperations.d.ts +0 -1
  561. package/dist/bigconsole/hooks/useParserOperations.js +0 -2
  562. package/dist/bigconsole/hooks/usePipelineOperations.d.ts +0 -1
  563. package/dist/bigconsole/hooks/usePipelineOperations.js +0 -2
  564. package/dist/bigconsole/hooks/useShareRecipients.d.ts +0 -1
  565. package/dist/bigconsole/hooks/useShareRecipients.js +0 -2
  566. package/dist/bigconsole/hooks/useStoreDashboardTemplates.d.ts +0 -1
  567. package/dist/bigconsole/hooks/useStoreDashboardTemplates.js +0 -2
  568. package/dist/bigconsole/hooks/useWidgetActions.d.ts +0 -1
  569. package/dist/bigconsole/hooks/useWidgetActions.js +0 -2
  570. package/dist/bigconsole/hooks/useWidgetCatalog.d.ts +0 -1
  571. package/dist/bigconsole/hooks/useWidgetCatalog.js +0 -2
  572. package/dist/bigconsole/hooks/useWidgetComments.d.ts +0 -1
  573. package/dist/bigconsole/hooks/useWidgetComments.js +0 -2
  574. package/dist/bigconsole/hooks/useWidgetConfigPersist.d.ts +0 -1
  575. package/dist/bigconsole/hooks/useWidgetConfigPersist.js +0 -2
  576. package/dist/bigconsole/hooks/useWidgetData.d.ts +0 -1
  577. package/dist/bigconsole/hooks/useWidgetData.js +0 -2
  578. package/dist/bigconsole/hooks/useWidgetEvents.d.ts +0 -1
  579. package/dist/bigconsole/hooks/useWidgetEvents.js +0 -2
  580. package/dist/bigconsole/hooks/useWidgetExport.d.ts +0 -1
  581. package/dist/bigconsole/hooks/useWidgetExport.js +0 -2
  582. package/dist/bigconsole/hooks/useWidgetOperations.d.ts +0 -1
  583. package/dist/bigconsole/hooks/useWidgetOperations.js +0 -2
  584. package/dist/bigconsole/hooks/useWorkflowOperations.d.ts +0 -1
  585. package/dist/bigconsole/hooks/useWorkflowOperations.js +0 -2
  586. package/dist/bigconsole/index.d.ts +0 -1
  587. package/dist/bigconsole/modules/dashboard/index.d.ts +0 -1
  588. package/dist/bigconsole/modules/index.d.ts +0 -1
  589. package/dist/bigconsole/modules/renderer/index.d.ts +0 -1
  590. package/dist/bigconsole/modules/widget/index.d.ts +0 -1
  591. package/dist/bigconsole/pages/AdminPage.d.ts +0 -1
  592. package/dist/bigconsole/pages/AdminPage.js +0 -2
  593. package/dist/bigconsole/pages/DashboardBuilderPage.d.ts +0 -1
  594. package/dist/bigconsole/pages/DashboardBuilderPage.js +0 -2
  595. package/dist/bigconsole/pages/DashboardViewPage.d.ts +0 -1
  596. package/dist/bigconsole/pages/DashboardViewPage.js +0 -2
  597. package/dist/bigconsole/pages/DashboardsPage.d.ts +0 -1
  598. package/dist/bigconsole/pages/DashboardsPage.js +0 -2
  599. package/dist/bigconsole/pages/DataParsersPage.d.ts +0 -1
  600. package/dist/bigconsole/pages/DataParsersPage.js +0 -2
  601. package/dist/bigconsole/pages/DataSinkAlertsPage.d.ts +0 -1
  602. package/dist/bigconsole/pages/DataSinkAlertsPage.js +0 -2
  603. package/dist/bigconsole/pages/DataSinkBuilderPage.d.ts +0 -1
  604. package/dist/bigconsole/pages/DataSinkBuilderPage.js +8 -10
  605. package/dist/bigconsole/pages/DataSinkViewPage.d.ts +0 -1
  606. package/dist/bigconsole/pages/DataSinkViewPage.js +0 -2
  607. package/dist/bigconsole/pages/DataSinksPage.d.ts +0 -1
  608. package/dist/bigconsole/pages/DataSinksPage.js +0 -2
  609. package/dist/bigconsole/pages/DataSourcesPage.d.ts +0 -1
  610. package/dist/bigconsole/pages/DataSourcesPage.js +0 -2
  611. package/dist/bigconsole/pages/InsightsPage.d.ts +0 -1
  612. package/dist/bigconsole/pages/InsightsPage.js +373 -361
  613. package/dist/bigconsole/pages/OverviewPage.d.ts +0 -1
  614. package/dist/bigconsole/pages/OverviewPage.js +0 -2
  615. package/dist/bigconsole/pages/ParserBuilderPage.d.ts +0 -1
  616. package/dist/bigconsole/pages/ParserBuilderPage.js +5 -7
  617. package/dist/bigconsole/pages/ParserViewPage.d.ts +0 -1
  618. package/dist/bigconsole/pages/ParserViewPage.js +0 -2
  619. package/dist/bigconsole/pages/PipelineBuilderPage.d.ts +0 -1
  620. package/dist/bigconsole/pages/PipelineBuilderPage.js +0 -2
  621. package/dist/bigconsole/pages/PipelineViewPage.d.ts +0 -1
  622. package/dist/bigconsole/pages/PipelineViewPage.js +0 -2
  623. package/dist/bigconsole/pages/PipelinesPage.d.ts +0 -1
  624. package/dist/bigconsole/pages/PipelinesPage.js +0 -2
  625. package/dist/bigconsole/pages/SettingsPage.d.ts +0 -1
  626. package/dist/bigconsole/pages/SettingsPage.js +0 -2
  627. package/dist/bigconsole/pages/WidgetDemoPage.d.ts +0 -1
  628. package/dist/bigconsole/pages/WidgetDemoPage.js +0 -2
  629. package/dist/bigconsole/pages/WorkflowViewPage.d.ts +0 -1
  630. package/dist/bigconsole/pages/WorkflowViewPage.js +0 -2
  631. package/dist/bigconsole/pages/WorkflowsPage.d.ts +0 -1
  632. package/dist/bigconsole/pages/WorkflowsPage.js +0 -2
  633. package/dist/bigconsole/pages/index.d.ts +0 -1
  634. package/dist/bigconsole/providers/BigConsoleQuotaProvider.d.ts +0 -1
  635. package/dist/bigconsole/providers/BigConsoleQuotaProvider.js +0 -2
  636. package/dist/bigconsole/renderers/adapters/AdaptiveCardRenderer.d.ts +0 -1
  637. package/dist/bigconsole/renderers/adapters/AdaptiveCardRenderer.js +0 -2
  638. package/dist/bigconsole/renderers/adapters/BigConsoleRenderer.d.ts +0 -1
  639. package/dist/bigconsole/renderers/adapters/BigConsoleRenderer.js +0 -2
  640. package/dist/bigconsole/renderers/adapters/BlockKitRenderer.d.ts +0 -1
  641. package/dist/bigconsole/renderers/adapters/BlockKitRenderer.js +0 -2
  642. package/dist/bigconsole/renderers/adapters/CustomRenderer.d.ts +0 -1
  643. package/dist/bigconsole/renderers/adapters/CustomRenderer.js +0 -2
  644. package/dist/bigconsole/renderers/adapters/index.d.ts +0 -1
  645. package/dist/bigconsole/renderers/factory/WidgetRendererFactory.d.ts +0 -1
  646. package/dist/bigconsole/renderers/factory/WidgetRendererFactory.js +0 -2
  647. package/dist/bigconsole/renderers/index.d.ts +0 -1
  648. package/dist/bigconsole/renderers/registry/RendererRegistry.d.ts +0 -1
  649. package/dist/bigconsole/renderers/registry/RendererRegistry.js +0 -2
  650. package/dist/bigconsole/renderers/types/index.d.ts +0 -1
  651. package/dist/bigconsole/renderers/types/renderer.d.ts +0 -1
  652. package/dist/bigconsole/store/dashboardStore.d.ts +0 -1
  653. package/dist/bigconsole/store/dashboardStore.js +0 -2
  654. package/dist/bigconsole/store/dataSinkStore.d.ts +0 -1
  655. package/dist/bigconsole/store/dataSinkStore.js +0 -2
  656. package/dist/bigconsole/store/drilldownStore.d.ts +0 -1
  657. package/dist/bigconsole/store/drilldownStore.js +0 -2
  658. package/dist/bigconsole/store/index.d.ts +0 -1
  659. package/dist/bigconsole/store/parserStore.d.ts +0 -1
  660. package/dist/bigconsole/store/parserStore.js +0 -2
  661. package/dist/bigconsole/store/pipelineStore.d.ts +0 -1
  662. package/dist/bigconsole/store/pipelineStore.js +0 -2
  663. package/dist/bigconsole/store/widgetStore.d.ts +0 -1
  664. package/dist/bigconsole/store/widgetStore.js +0 -2
  665. package/dist/bigconsole/store/workflowStore.d.ts +0 -1
  666. package/dist/bigconsole/store/workflowStore.js +0 -2
  667. package/dist/bigconsole/types/index.d.ts +0 -1
  668. package/dist/bigconsole/utils/alertRules.d.ts +0 -1
  669. package/dist/bigconsole/utils/alertRules.js +0 -2
  670. package/dist/bigconsole/utils/backendError.d.ts +0 -1
  671. package/dist/bigconsole/utils/backendError.js +0 -2
  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/drilldownParams.d.ts +0 -1
  679. package/dist/bigconsole/utils/drilldownParams.js +0 -2
  680. package/dist/bigconsole/utils/formDirty.d.ts +0 -1
  681. package/dist/bigconsole/utils/formDirty.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 +0 -1
  685. package/dist/bigconsole/utils/insightsDraft.d.ts +29 -0
  686. package/dist/bigconsole/utils/insightsDraft.js +8 -0
  687. package/dist/bigconsole/utils/layoutBaseline.d.ts +0 -1
  688. package/dist/bigconsole/utils/layoutBaseline.js +0 -2
  689. package/dist/bigconsole/utils/quota.d.ts +0 -1
  690. package/dist/bigconsole/utils/quota.js +0 -2
  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/widgetFormDirty.d.ts +16 -0
  698. package/dist/bigconsole/utils/widgetFormDirty.js +13 -0
  699. package/dist/bigconsole/utils/widgetPositioning.d.ts +0 -1
  700. package/dist/bigconsole/utils/widgetPositioning.js +0 -2
  701. package/dist/bigconsole/utils/widgetTypeMapping.d.ts +0 -1
  702. package/dist/bigconsole/utils/widgetTypeMapping.js +0 -2
  703. package/dist/bigconsole/workflowOpen.d.ts +0 -1
  704. package/dist/bigconsole/workflowOpen.js +0 -2
  705. package/dist/constants/permissions.d.ts +0 -1
  706. package/dist/constants/permissions.js +0 -2
  707. package/dist/generated/global-operations.d.ts +0 -1
  708. package/dist/generated/global-operations.js +0 -2
  709. package/dist/generated/global-types.d.ts +0 -1
  710. package/dist/generated/wspace-operations.d.ts +0 -1
  711. package/dist/generated/wspace-operations.js +0 -2
  712. package/dist/generated/wspace-types.d.ts +0 -1
  713. package/dist/generated/wspace-types.js +0 -2
  714. package/dist/index.d.ts +0 -1
  715. package/dist/node_modules/@e965/xlsx/xlsx.js +0 -2
  716. package/dist/node_modules/pdfjs-dist/build/pdf.js +0 -2
  717. package/dist/shared/hooks/useTr.d.ts +0 -1
  718. package/dist/shared/hooks/useTr.js +0 -2
  719. package/dist/translations/en.d.ts +0 -1
  720. package/dist/utils/nativeBridge.d.ts +0 -1
  721. package/package.json +5 -4
  722. package/dist/bigconsole/AdminRoot.d.ts.map +0 -1
  723. package/dist/bigconsole/AdminRoot.js.map +0 -1
  724. package/dist/bigconsole/AdminRoutes.d.ts.map +0 -1
  725. package/dist/bigconsole/AdminRoutes.js.map +0 -1
  726. package/dist/bigconsole/BigConsoleRoot.d.ts.map +0 -1
  727. package/dist/bigconsole/BigConsoleRoot.js.map +0 -1
  728. package/dist/bigconsole/BigConsoleRoutes.d.ts.map +0 -1
  729. package/dist/bigconsole/BigConsoleRoutes.js.map +0 -1
  730. package/dist/bigconsole/assistant/assistantApi.d.ts.map +0 -1
  731. package/dist/bigconsole/assistant/assistantApi.js.map +0 -1
  732. package/dist/bigconsole/assistant/assistantProduct.d.ts.map +0 -1
  733. package/dist/bigconsole/assistant/assistantProduct.js.map +0 -1
  734. package/dist/bigconsole/assistant/assistantPrompt.d.ts.map +0 -1
  735. package/dist/bigconsole/assistant/assistantPrompt.js.map +0 -1
  736. package/dist/bigconsole/assistant/assistantRunPersistence.d.ts.map +0 -1
  737. package/dist/bigconsole/assistant/assistantRunPersistence.js.map +0 -1
  738. package/dist/bigconsole/assistant/assistantRunStore.d.ts.map +0 -1
  739. package/dist/bigconsole/assistant/assistantRunStore.js.map +0 -1
  740. package/dist/bigconsole/assistant/assistantRuntime.d.ts.map +0 -1
  741. package/dist/bigconsole/assistant/assistantRuntime.js.map +0 -1
  742. package/dist/bigconsole/assistant/attachmentExtract.d.ts.map +0 -1
  743. package/dist/bigconsole/assistant/attachmentExtract.js.map +0 -1
  744. package/dist/bigconsole/assistant/conversationHistoryApi.d.ts.map +0 -1
  745. package/dist/bigconsole/assistant/conversationHistoryApi.js.map +0 -1
  746. package/dist/bigconsole/assistant/createSandboxAssistantTransport.d.ts.map +0 -1
  747. package/dist/bigconsole/assistant/createSandboxAssistantTransport.js.map +0 -1
  748. package/dist/bigconsole/assistant/displayCopy.d.ts.map +0 -1
  749. package/dist/bigconsole/assistant/index.d.ts.map +0 -1
  750. package/dist/bigconsole/assistant/modes.d.ts.map +0 -1
  751. package/dist/bigconsole/assistant/modes.js.map +0 -1
  752. package/dist/bigconsole/assistant/pageContext.d.ts.map +0 -1
  753. package/dist/bigconsole/assistant/pageContext.js.map +0 -1
  754. package/dist/bigconsole/assistant/previewController.d.ts.map +0 -1
  755. package/dist/bigconsole/assistant/previewController.js.map +0 -1
  756. package/dist/bigconsole/assistant/previewMutationResult.d.ts.map +0 -1
  757. package/dist/bigconsole/assistant/previewMutationResult.js.map +0 -1
  758. package/dist/bigconsole/assistant/previewRunAction.d.ts.map +0 -1
  759. package/dist/bigconsole/assistant/previewRunAction.js.map +0 -1
  760. package/dist/bigconsole/assistant/product.d.ts.map +0 -1
  761. package/dist/bigconsole/assistant/product.js.map +0 -1
  762. package/dist/bigconsole/assistant/recordAdapters.d.ts.map +0 -1
  763. package/dist/bigconsole/assistant/recordAdapters.js.map +0 -1
  764. package/dist/bigconsole/assistant/types.d.ts.map +0 -1
  765. package/dist/bigconsole/assistant/useAssistantRunWorkspace.d.ts.map +0 -1
  766. package/dist/bigconsole/assistant/useAssistantRunWorkspace.js.map +0 -1
  767. package/dist/bigconsole/assistant/useWorkspaceWriteAccess.d.ts.map +0 -1
  768. package/dist/bigconsole/assistant/useWorkspaceWriteAccess.js.map +0 -1
  769. package/dist/bigconsole/components/DrilldownDashboardRenderer.d.ts.map +0 -1
  770. package/dist/bigconsole/components/DrilldownDashboardRenderer.js.map +0 -1
  771. package/dist/bigconsole/components/DrilldownModal.d.ts.map +0 -1
  772. package/dist/bigconsole/components/DrilldownModal.js.map +0 -1
  773. package/dist/bigconsole/components/builder/BuilderCanvas.d.ts.map +0 -1
  774. package/dist/bigconsole/components/builder/BuilderCanvas.js.map +0 -1
  775. package/dist/bigconsole/components/builder/BuilderTopbar.d.ts.map +0 -1
  776. package/dist/bigconsole/components/builder/BuilderTopbar.js.map +0 -1
  777. package/dist/bigconsole/components/builder/DashboardEditorShell.d.ts.map +0 -1
  778. package/dist/bigconsole/components/builder/DashboardEditorShell.js.map +0 -1
  779. package/dist/bigconsole/components/builder/WidgetInspector.d.ts.map +0 -1
  780. package/dist/bigconsole/components/builder/WidgetInspector.js.map +0 -1
  781. package/dist/bigconsole/components/builder/index.d.ts.map +0 -1
  782. package/dist/bigconsole/components/builder/inspector/AdvancedSection.d.ts.map +0 -1
  783. package/dist/bigconsole/components/builder/inspector/AdvancedSection.js.map +0 -1
  784. package/dist/bigconsole/components/builder/inspector/AppearanceSection.d.ts.map +0 -1
  785. package/dist/bigconsole/components/builder/inspector/AppearanceSection.js.map +0 -1
  786. package/dist/bigconsole/components/builder/inspector/DataBindingSection.d.ts.map +0 -1
  787. package/dist/bigconsole/components/builder/inspector/DataBindingSection.js.map +0 -1
  788. package/dist/bigconsole/components/builder/inspector/GeneralSection.d.ts.map +0 -1
  789. package/dist/bigconsole/components/builder/inspector/GeneralSection.js.map +0 -1
  790. package/dist/bigconsole/components/builder/inspector/LayoutSection.d.ts.map +0 -1
  791. package/dist/bigconsole/components/builder/inspector/LayoutSection.js.map +0 -1
  792. package/dist/bigconsole/components/builder/inspector/index.d.ts.map +0 -1
  793. package/dist/bigconsole/components/common/Section.d.ts.map +0 -1
  794. package/dist/bigconsole/components/common/Section.js.map +0 -1
  795. package/dist/bigconsole/components/common/index.d.ts.map +0 -1
  796. package/dist/bigconsole/components/common/sectionStyles.d.ts.map +0 -1
  797. package/dist/bigconsole/components/common/sectionStyles.js.map +0 -1
  798. package/dist/bigconsole/components/dashboard/CreateDashboardDialog.d.ts.map +0 -1
  799. package/dist/bigconsole/components/dashboard/CreateDashboardDialog.js.map +0 -1
  800. package/dist/bigconsole/components/dashboard/DashboardCanvas.d.ts.map +0 -1
  801. package/dist/bigconsole/components/dashboard/DashboardCanvas.js.map +0 -1
  802. package/dist/bigconsole/components/dashboard/DashboardGrid.d.ts.map +0 -1
  803. package/dist/bigconsole/components/dashboard/DashboardGrid.js.map +0 -1
  804. package/dist/bigconsole/components/dashboard/DashboardStatusPill.d.ts.map +0 -1
  805. package/dist/bigconsole/components/dashboard/DashboardStatusPill.js.map +0 -1
  806. package/dist/bigconsole/components/dashboard/DashboardToolbar.d.ts.map +0 -1
  807. package/dist/bigconsole/components/dashboard/DashboardToolbar.js.map +0 -1
  808. package/dist/bigconsole/components/dashboard/DrilldownBreadcrumb.d.ts.map +0 -1
  809. package/dist/bigconsole/components/dashboard/DrilldownBreadcrumb.js.map +0 -1
  810. package/dist/bigconsole/components/dashboard/ExportDashboardDialog.d.ts.map +0 -1
  811. package/dist/bigconsole/components/dashboard/ExportDashboardDialog.js.map +0 -1
  812. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterChip.d.ts.map +0 -1
  813. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterChip.js.map +0 -1
  814. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterEditor.d.ts.map +0 -1
  815. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterEditor.js.map +0 -1
  816. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterPresetSelector.d.ts.map +0 -1
  817. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterPresetSelector.js.map +0 -1
  818. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.d.ts.map +0 -1
  819. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.js.map +0 -1
  820. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/index.d.ts.map +0 -1
  821. package/dist/bigconsole/components/dashboard/ImportDashboardDialog.d.ts.map +0 -1
  822. package/dist/bigconsole/components/dashboard/ImportDashboardDialog.js.map +0 -1
  823. package/dist/bigconsole/components/dashboard/LiveBoardBanner.d.ts.map +0 -1
  824. package/dist/bigconsole/components/dashboard/LiveBoardBanner.js.map +0 -1
  825. package/dist/bigconsole/components/dashboard/LiveCanvasToggle.d.ts.map +0 -1
  826. package/dist/bigconsole/components/dashboard/LiveCanvasToggle.js.map +0 -1
  827. package/dist/bigconsole/components/dashboard/PageTabsManager/PageTabsManager.d.ts.map +0 -1
  828. package/dist/bigconsole/components/dashboard/PageTabsManager/PageTabsManager.js.map +0 -1
  829. package/dist/bigconsole/components/dashboard/PageTabsManager/index.d.ts.map +0 -1
  830. package/dist/bigconsole/components/dashboard/PublishToStoreDialog.d.ts.map +0 -1
  831. package/dist/bigconsole/components/dashboard/PublishToStoreDialog.js.map +0 -1
  832. package/dist/bigconsole/components/dashboard/SavedViewsDropdown/SavedViewsDropdown.d.ts.map +0 -1
  833. package/dist/bigconsole/components/dashboard/SavedViewsDropdown/SavedViewsDropdown.js.map +0 -1
  834. package/dist/bigconsole/components/dashboard/SavedViewsDropdown/index.d.ts.map +0 -1
  835. package/dist/bigconsole/components/dashboard/ShareDialog/EmbedTab.d.ts.map +0 -1
  836. package/dist/bigconsole/components/dashboard/ShareDialog/EmbedTab.js.map +0 -1
  837. package/dist/bigconsole/components/dashboard/ShareDialog/ShareDialog.d.ts.map +0 -1
  838. package/dist/bigconsole/components/dashboard/ShareDialog/ShareDialog.js.map +0 -1
  839. package/dist/bigconsole/components/dashboard/ShareDialog/index.d.ts.map +0 -1
  840. package/dist/bigconsole/components/dashboard/StoreTemplatePicker.d.ts.map +0 -1
  841. package/dist/bigconsole/components/dashboard/StoreTemplatePicker.js.map +0 -1
  842. package/dist/bigconsole/components/dashboard/TemplateInstallOptions.d.ts.map +0 -1
  843. package/dist/bigconsole/components/dashboard/TemplateInstallOptions.js.map +0 -1
  844. package/dist/bigconsole/components/dashboard/TemplateLayoutPreview.d.ts.map +0 -1
  845. package/dist/bigconsole/components/dashboard/TemplateLayoutPreview.js.map +0 -1
  846. package/dist/bigconsole/components/dashboard/TemplatePicker/TemplatePicker.d.ts.map +0 -1
  847. package/dist/bigconsole/components/dashboard/TemplatePicker/index.d.ts.map +0 -1
  848. package/dist/bigconsole/components/dashboard/TemplateSetupBanner.d.ts.map +0 -1
  849. package/dist/bigconsole/components/dashboard/TemplateSetupBanner.js.map +0 -1
  850. package/dist/bigconsole/components/dashboard/WidgetPalette.d.ts.map +0 -1
  851. package/dist/bigconsole/components/dashboard/WidgetPalette.js.map +0 -1
  852. package/dist/bigconsole/components/dashboard/index.d.ts.map +0 -1
  853. package/dist/bigconsole/components/datasink/AlertExecutionHistory.d.ts.map +0 -1
  854. package/dist/bigconsole/components/datasink/AlertExecutionHistory.js.map +0 -1
  855. package/dist/bigconsole/components/datasink/AlertRuleEditor.d.ts.map +0 -1
  856. package/dist/bigconsole/components/datasink/AlertRuleEditor.js.map +0 -1
  857. package/dist/bigconsole/components/datasink/CacheTTLSelector.d.ts.map +0 -1
  858. package/dist/bigconsole/components/datasink/CacheTTLSelector.js.map +0 -1
  859. package/dist/bigconsole/components/datasink/ConfigurationForm.d.ts.map +0 -1
  860. package/dist/bigconsole/components/datasink/DataPreviewPanel.d.ts.map +0 -1
  861. package/dist/bigconsole/components/datasink/DataSinkCard.d.ts.map +0 -1
  862. package/dist/bigconsole/components/datasink/DataSinkCard.js.map +0 -1
  863. package/dist/bigconsole/components/datasink/DataSinkDataViewer.d.ts.map +0 -1
  864. package/dist/bigconsole/components/datasink/DataSinkDataViewer.js.map +0 -1
  865. package/dist/bigconsole/components/datasink/DataSinkDeleteDialog.d.ts.map +0 -1
  866. package/dist/bigconsole/components/datasink/DataSinkDeleteDialog.js.map +0 -1
  867. package/dist/bigconsole/components/datasink/DataSinkRefreshConfig.d.ts.map +0 -1
  868. package/dist/bigconsole/components/datasink/DataSinkRefreshDialog.d.ts.map +0 -1
  869. package/dist/bigconsole/components/datasink/DataSinkRefreshDialog.js.map +0 -1
  870. package/dist/bigconsole/components/datasink/DataSinkStatusBadge.d.ts.map +0 -1
  871. package/dist/bigconsole/components/datasink/DataSinkStatusBadge.js.map +0 -1
  872. package/dist/bigconsole/components/datasink/DataSinkTableViewer.d.ts.map +0 -1
  873. package/dist/bigconsole/components/datasink/DataSinkTableViewer.js.map +0 -1
  874. package/dist/bigconsole/components/datasink/ExportDataSinkDialog.d.ts.map +0 -1
  875. package/dist/bigconsole/components/datasink/ExportDataSinkDialog.js.map +0 -1
  876. package/dist/bigconsole/components/datasink/FluidGridsPanel.d.ts.map +0 -1
  877. package/dist/bigconsole/components/datasink/ImportDataGuideDialog.d.ts.map +0 -1
  878. package/dist/bigconsole/components/datasink/ImportDataGuideDialog.js.map +0 -1
  879. package/dist/bigconsole/components/datasink/ImportDataSinkDialog.d.ts.map +0 -1
  880. package/dist/bigconsole/components/datasink/ImportDataSinkDialog.js.map +0 -1
  881. package/dist/bigconsole/components/datasink/LinkedParsersPanel.d.ts.map +0 -1
  882. package/dist/bigconsole/components/datasink/LinkedParsersPanel.js.map +0 -1
  883. package/dist/bigconsole/components/datasink/LinkedWorkflowsPanel.d.ts.map +0 -1
  884. package/dist/bigconsole/components/datasink/LinkedWorkflowsPanel.js.map +0 -1
  885. package/dist/bigconsole/components/datasink/RefreshTypeSelector.d.ts.map +0 -1
  886. package/dist/bigconsole/components/datasink/RefreshTypeSelector.js.map +0 -1
  887. package/dist/bigconsole/components/datasink/SetupStateBadge.d.ts.map +0 -1
  888. package/dist/bigconsole/components/datasink/SetupStateBadge.js.map +0 -1
  889. package/dist/bigconsole/components/datasink/WorkflowStatusPanel.d.ts.map +0 -1
  890. package/dist/bigconsole/components/datasink/WorkflowStatusPanel.js.map +0 -1
  891. package/dist/bigconsole/components/datasink/index.d.ts.map +0 -1
  892. package/dist/bigconsole/components/embed/EmbedErrorBoundary.d.ts.map +0 -1
  893. package/dist/bigconsole/components/embed/EmbedErrorBoundary.js.map +0 -1
  894. package/dist/bigconsole/components/embed/EmbedWidgetRenderer.d.ts.map +0 -1
  895. package/dist/bigconsole/components/embed/EmbedWidgetRenderer.js.map +0 -1
  896. package/dist/bigconsole/components/embed/ReadOnlyDashboardRenderer.d.ts.map +0 -1
  897. package/dist/bigconsole/components/embed/ReadOnlyDashboardRenderer.js.map +0 -1
  898. package/dist/bigconsole/components/embed/drilldown.d.ts.map +0 -1
  899. package/dist/bigconsole/components/embed/drilldown.js.map +0 -1
  900. package/dist/bigconsole/components/embed/index.d.ts.map +0 -1
  901. package/dist/bigconsole/components/embed/renderer-manifest.d.ts.map +0 -1
  902. package/dist/bigconsole/components/embed/renderer-manifest.js.map +0 -1
  903. package/dist/bigconsole/components/embed/types.d.ts.map +0 -1
  904. package/dist/bigconsole/components/embed/types.js.map +0 -1
  905. package/dist/bigconsole/components/embed/validate.d.ts.map +0 -1
  906. package/dist/bigconsole/components/embed/validate.js.map +0 -1
  907. package/dist/bigconsole/components/embed/widgetShim.d.ts.map +0 -1
  908. package/dist/bigconsole/components/embed/widgetShim.js.map +0 -1
  909. package/dist/bigconsole/components/embed/widgets/CalendarEmbed.d.ts.map +0 -1
  910. package/dist/bigconsole/components/embed/widgets/CalendarEmbed.js.map +0 -1
  911. package/dist/bigconsole/components/embed/widgets/ChartEmbed.d.ts.map +0 -1
  912. package/dist/bigconsole/components/embed/widgets/ChartEmbed.js.map +0 -1
  913. package/dist/bigconsole/components/embed/widgets/EmbedFrame.d.ts.map +0 -1
  914. package/dist/bigconsole/components/embed/widgets/EmbedFrame.js.map +0 -1
  915. package/dist/bigconsole/components/embed/widgets/FormEmbed.d.ts.map +0 -1
  916. package/dist/bigconsole/components/embed/widgets/FormEmbed.js.map +0 -1
  917. package/dist/bigconsole/components/embed/widgets/GaugeEmbed.d.ts.map +0 -1
  918. package/dist/bigconsole/components/embed/widgets/GaugeEmbed.js.map +0 -1
  919. package/dist/bigconsole/components/embed/widgets/HeatmapEmbed.d.ts.map +0 -1
  920. package/dist/bigconsole/components/embed/widgets/HeatmapEmbed.js.map +0 -1
  921. package/dist/bigconsole/components/embed/widgets/KanbanEmbed.d.ts.map +0 -1
  922. package/dist/bigconsole/components/embed/widgets/KanbanEmbed.js.map +0 -1
  923. package/dist/bigconsole/components/embed/widgets/KpiComparisonEmbed.d.ts.map +0 -1
  924. package/dist/bigconsole/components/embed/widgets/KpiComparisonEmbed.js.map +0 -1
  925. package/dist/bigconsole/components/embed/widgets/ListEmbed.d.ts.map +0 -1
  926. package/dist/bigconsole/components/embed/widgets/ListEmbed.js.map +0 -1
  927. package/dist/bigconsole/components/embed/widgets/MetricCardEmbed.d.ts.map +0 -1
  928. package/dist/bigconsole/components/embed/widgets/MetricCardEmbed.js.map +0 -1
  929. package/dist/bigconsole/components/embed/widgets/PivotEmbed.d.ts.map +0 -1
  930. package/dist/bigconsole/components/embed/widgets/PivotEmbed.js.map +0 -1
  931. package/dist/bigconsole/components/embed/widgets/ProgressEmbed.d.ts.map +0 -1
  932. package/dist/bigconsole/components/embed/widgets/ProgressEmbed.js.map +0 -1
  933. package/dist/bigconsole/components/embed/widgets/RetentionEmbed.d.ts.map +0 -1
  934. package/dist/bigconsole/components/embed/widgets/RetentionEmbed.js.map +0 -1
  935. package/dist/bigconsole/components/embed/widgets/TableEmbed.d.ts.map +0 -1
  936. package/dist/bigconsole/components/embed/widgets/TableEmbed.js.map +0 -1
  937. package/dist/bigconsole/components/embed/widgets/TextEmbed.d.ts.map +0 -1
  938. package/dist/bigconsole/components/embed/widgets/TextEmbed.js.map +0 -1
  939. package/dist/bigconsole/components/embed/widgets/TimelineEmbed.d.ts.map +0 -1
  940. package/dist/bigconsole/components/embed/widgets/TimelineEmbed.js.map +0 -1
  941. package/dist/bigconsole/components/embed/widgets/shared.d.ts.map +0 -1
  942. package/dist/bigconsole/components/embed/widgets/shared.js.map +0 -1
  943. package/dist/bigconsole/components/overview/DashboardGuide.d.ts.map +0 -1
  944. package/dist/bigconsole/components/overview/DashboardGuide.js.map +0 -1
  945. package/dist/bigconsole/components/overview/DataHealthCard.d.ts.map +0 -1
  946. package/dist/bigconsole/components/overview/DataHealthCard.js.map +0 -1
  947. package/dist/bigconsole/components/overview/OverviewQuickActions.d.ts.map +0 -1
  948. package/dist/bigconsole/components/overview/OverviewQuickActions.js.map +0 -1
  949. package/dist/bigconsole/components/overview/OverviewStatCard.d.ts.map +0 -1
  950. package/dist/bigconsole/components/overview/OverviewStatCard.js.map +0 -1
  951. package/dist/bigconsole/components/overview/RecentDashboardsPanel.d.ts.map +0 -1
  952. package/dist/bigconsole/components/overview/RecentDashboardsPanel.js.map +0 -1
  953. package/dist/bigconsole/components/overview/dashboardGuideSteps.d.ts.map +0 -1
  954. package/dist/bigconsole/components/overview/dashboardGuideSteps.js.map +0 -1
  955. package/dist/bigconsole/components/overview/index.d.ts.map +0 -1
  956. package/dist/bigconsole/components/overview/overviewModel.d.ts.map +0 -1
  957. package/dist/bigconsole/components/overview/overviewModel.js.map +0 -1
  958. package/dist/bigconsole/components/overview/useOverviewData.d.ts.map +0 -1
  959. package/dist/bigconsole/components/overview/useOverviewData.js.map +0 -1
  960. package/dist/bigconsole/components/parser/DataSinkSelector.d.ts.map +0 -1
  961. package/dist/bigconsole/components/parser/DataSinkSelector.js.map +0 -1
  962. package/dist/bigconsole/components/parser/ExportParserDialog.d.ts.map +0 -1
  963. package/dist/bigconsole/components/parser/ExportParserDialog.js.map +0 -1
  964. package/dist/bigconsole/components/parser/ExpressionEditor.d.ts.map +0 -1
  965. package/dist/bigconsole/components/parser/ExpressionEditor.js.map +0 -1
  966. package/dist/bigconsole/components/parser/ImportParserDialog.d.ts.map +0 -1
  967. package/dist/bigconsole/components/parser/ImportParserDialog.js.map +0 -1
  968. package/dist/bigconsole/components/parser/ParserBuilder.d.ts.map +0 -1
  969. package/dist/bigconsole/components/parser/ParserCard.d.ts.map +0 -1
  970. package/dist/bigconsole/components/parser/ParserCard.js.map +0 -1
  971. package/dist/bigconsole/components/parser/ParserFormDialog.d.ts.map +0 -1
  972. package/dist/bigconsole/components/parser/ParserSelector.d.ts.map +0 -1
  973. package/dist/bigconsole/components/parser/ParserSelector.js.map +0 -1
  974. package/dist/bigconsole/components/parser/ParserStatusBadge.d.ts.map +0 -1
  975. package/dist/bigconsole/components/parser/ParserStatusBadge.js.map +0 -1
  976. package/dist/bigconsole/components/parser/ParserTypeBadge.d.ts.map +0 -1
  977. package/dist/bigconsole/components/parser/ParserTypeBadge.js.map +0 -1
  978. package/dist/bigconsole/components/parser/TestPanel.d.ts.map +0 -1
  979. package/dist/bigconsole/components/parser/index.d.ts.map +0 -1
  980. package/dist/bigconsole/components/parser/parserFieldStyles.d.ts.map +0 -1
  981. package/dist/bigconsole/components/pipeline/PipelineCard.d.ts.map +0 -1
  982. package/dist/bigconsole/components/pipeline/PipelineCard.js.map +0 -1
  983. package/dist/bigconsole/components/pipeline/PipelineDeleteDialog.d.ts.map +0 -1
  984. package/dist/bigconsole/components/pipeline/PipelineDeleteDialog.js.map +0 -1
  985. package/dist/bigconsole/components/pipeline/PipelineScopePicker.d.ts.map +0 -1
  986. package/dist/bigconsole/components/pipeline/PipelineScopePicker.js.map +0 -1
  987. package/dist/bigconsole/components/pipeline/PipelineStatusBadge.d.ts.map +0 -1
  988. package/dist/bigconsole/components/pipeline/PipelineStatusBadge.js.map +0 -1
  989. package/dist/bigconsole/components/pipeline/index.d.ts.map +0 -1
  990. package/dist/bigconsole/components/preview/AiPreviewContent.d.ts.map +0 -1
  991. package/dist/bigconsole/components/preview/AiPreviewContent.js.map +0 -1
  992. package/dist/bigconsole/components/preview/AiPreviewMiniPanel.d.ts.map +0 -1
  993. package/dist/bigconsole/components/preview/AiPreviewMiniPanel.js.map +0 -1
  994. package/dist/bigconsole/components/preview/AiPreviewPanel.d.ts.map +0 -1
  995. package/dist/bigconsole/components/preview/AiPreviewPanel.js.map +0 -1
  996. package/dist/bigconsole/components/preview/parserPreview.d.ts.map +0 -1
  997. package/dist/bigconsole/components/preview/parserPreview.js.map +0 -1
  998. package/dist/bigconsole/components/preview/previewShared.d.ts.map +0 -1
  999. package/dist/bigconsole/components/preview/previewShared.js.map +0 -1
  1000. package/dist/bigconsole/components/widgets/ActionConfigDialog.d.ts.map +0 -1
  1001. package/dist/bigconsole/components/widgets/ActionConfigDialog.js.map +0 -1
  1002. package/dist/bigconsole/components/widgets/DrilldownConfigPanel.d.ts.map +0 -1
  1003. package/dist/bigconsole/components/widgets/DrilldownConfigPanel.js.map +0 -1
  1004. package/dist/bigconsole/components/widgets/PropertiesPanel.d.ts.map +0 -1
  1005. package/dist/bigconsole/components/widgets/PropertiesPanel.js.map +0 -1
  1006. package/dist/bigconsole/components/widgets/WidgetErrorBoundary.d.ts.map +0 -1
  1007. package/dist/bigconsole/components/widgets/WidgetErrorBoundary.js.map +0 -1
  1008. package/dist/bigconsole/components/widgets/WidgetHeader.d.ts.map +0 -1
  1009. package/dist/bigconsole/components/widgets/WidgetHeader.js.map +0 -1
  1010. package/dist/bigconsole/components/widgets/WidgetMenu.d.ts.map +0 -1
  1011. package/dist/bigconsole/components/widgets/WidgetMenu.js.map +0 -1
  1012. package/dist/bigconsole/components/widgets/WidgetRegistry.d.ts.map +0 -1
  1013. package/dist/bigconsole/components/widgets/WidgetRegistry.js.map +0 -1
  1014. package/dist/bigconsole/components/widgets/WidgetTypeSelector.d.ts.map +0 -1
  1015. package/dist/bigconsole/components/widgets/WidgetWrapper.d.ts.map +0 -1
  1016. package/dist/bigconsole/components/widgets/WidgetWrapper.js.map +0 -1
  1017. package/dist/bigconsole/components/widgets/actionConfig.d.ts.map +0 -1
  1018. package/dist/bigconsole/components/widgets/actionConfig.js.map +0 -1
  1019. package/dist/bigconsole/components/widgets/adaptive-card/AdaptiveCardWidget.d.ts.map +0 -1
  1020. package/dist/bigconsole/components/widgets/adaptive-card/AdaptiveCardWidget.js.map +0 -1
  1021. package/dist/bigconsole/components/widgets/adaptive-card/index.d.ts.map +0 -1
  1022. package/dist/bigconsole/components/widgets/calendar/CalendarView.d.ts.map +0 -1
  1023. package/dist/bigconsole/components/widgets/calendar/CalendarView.js.map +0 -1
  1024. package/dist/bigconsole/components/widgets/calendar/CalendarWidget.d.ts.map +0 -1
  1025. package/dist/bigconsole/components/widgets/calendar/CalendarWidget.js.map +0 -1
  1026. package/dist/bigconsole/components/widgets/calendar/index.d.ts.map +0 -1
  1027. package/dist/bigconsole/components/widgets/chart/ChartConfig.d.ts.map +0 -1
  1028. package/dist/bigconsole/components/widgets/chart/ChartConfig.js.map +0 -1
  1029. package/dist/bigconsole/components/widgets/chart/ChartLegend.d.ts.map +0 -1
  1030. package/dist/bigconsole/components/widgets/chart/ChartLegend.js.map +0 -1
  1031. package/dist/bigconsole/components/widgets/chart/ChartTooltip.d.ts.map +0 -1
  1032. package/dist/bigconsole/components/widgets/chart/ChartTooltip.js.map +0 -1
  1033. package/dist/bigconsole/components/widgets/chart/ChartWidget.d.ts.map +0 -1
  1034. package/dist/bigconsole/components/widgets/chart/ChartWidget.js.map +0 -1
  1035. package/dist/bigconsole/components/widgets/chart/charts/AreaChart.d.ts.map +0 -1
  1036. package/dist/bigconsole/components/widgets/chart/charts/AreaChart.js.map +0 -1
  1037. package/dist/bigconsole/components/widgets/chart/charts/BarChart.d.ts.map +0 -1
  1038. package/dist/bigconsole/components/widgets/chart/charts/BarChart.js.map +0 -1
  1039. package/dist/bigconsole/components/widgets/chart/charts/ComboChart.d.ts.map +0 -1
  1040. package/dist/bigconsole/components/widgets/chart/charts/ComboChart.js.map +0 -1
  1041. package/dist/bigconsole/components/widgets/chart/charts/FunnelChart.d.ts.map +0 -1
  1042. package/dist/bigconsole/components/widgets/chart/charts/FunnelChart.js.map +0 -1
  1043. package/dist/bigconsole/components/widgets/chart/charts/LineChart.d.ts.map +0 -1
  1044. package/dist/bigconsole/components/widgets/chart/charts/LineChart.js.map +0 -1
  1045. package/dist/bigconsole/components/widgets/chart/charts/PieChart.d.ts.map +0 -1
  1046. package/dist/bigconsole/components/widgets/chart/charts/PieChart.js.map +0 -1
  1047. package/dist/bigconsole/components/widgets/chart/charts/ScatterChart.d.ts.map +0 -1
  1048. package/dist/bigconsole/components/widgets/chart/charts/ScatterChart.js.map +0 -1
  1049. package/dist/bigconsole/components/widgets/chart/charts/WaterfallChart.d.ts.map +0 -1
  1050. package/dist/bigconsole/components/widgets/chart/charts/WaterfallChart.js.map +0 -1
  1051. package/dist/bigconsole/components/widgets/chart/charts/index.d.ts.map +0 -1
  1052. package/dist/bigconsole/components/widgets/chart/charts/referenceElements.d.ts.map +0 -1
  1053. package/dist/bigconsole/components/widgets/chart/charts/referenceElements.js.map +0 -1
  1054. package/dist/bigconsole/components/widgets/chart/charts/types.d.ts.map +0 -1
  1055. package/dist/bigconsole/components/widgets/chart/index.d.ts.map +0 -1
  1056. package/dist/bigconsole/components/widgets/comments/WidgetComments.d.ts.map +0 -1
  1057. package/dist/bigconsole/components/widgets/comments/WidgetComments.js.map +0 -1
  1058. package/dist/bigconsole/components/widgets/custom/CustomWidget.d.ts.map +0 -1
  1059. package/dist/bigconsole/components/widgets/custom/CustomWidget.js.map +0 -1
  1060. package/dist/bigconsole/components/widgets/custom/config.d.ts.map +0 -1
  1061. package/dist/bigconsole/components/widgets/custom/config.js.map +0 -1
  1062. package/dist/bigconsole/components/widgets/custom/index.d.ts.map +0 -1
  1063. package/dist/bigconsole/components/widgets/custom/utils.d.ts.map +0 -1
  1064. package/dist/bigconsole/components/widgets/custom/utils.js.map +0 -1
  1065. package/dist/bigconsole/components/widgets/event-logs/EventLogViewer.d.ts.map +0 -1
  1066. package/dist/bigconsole/components/widgets/event-logs/EventLogViewer.js.map +0 -1
  1067. package/dist/bigconsole/components/widgets/event-logs/index.d.ts.map +0 -1
  1068. package/dist/bigconsole/components/widgets/form/FormWidget.d.ts.map +0 -1
  1069. package/dist/bigconsole/components/widgets/form/FormWidget.js.map +0 -1
  1070. package/dist/bigconsole/components/widgets/form/index.d.ts.map +0 -1
  1071. package/dist/bigconsole/components/widgets/funnel/index.d.ts.map +0 -1
  1072. package/dist/bigconsole/components/widgets/funnel/index.js.map +0 -1
  1073. package/dist/bigconsole/components/widgets/gauge/CircularGauge.d.ts.map +0 -1
  1074. package/dist/bigconsole/components/widgets/gauge/CircularGauge.js.map +0 -1
  1075. package/dist/bigconsole/components/widgets/gauge/GaugeConfig.d.ts.map +0 -1
  1076. package/dist/bigconsole/components/widgets/gauge/GaugeConfig.js.map +0 -1
  1077. package/dist/bigconsole/components/widgets/gauge/GaugeWidget.d.ts.map +0 -1
  1078. package/dist/bigconsole/components/widgets/gauge/GaugeWidget.js.map +0 -1
  1079. package/dist/bigconsole/components/widgets/gauge/LinearGauge.d.ts.map +0 -1
  1080. package/dist/bigconsole/components/widgets/gauge/LinearGauge.js.map +0 -1
  1081. package/dist/bigconsole/components/widgets/gauge/index.d.ts.map +0 -1
  1082. package/dist/bigconsole/components/widgets/heatmap/HeatmapConfig.d.ts.map +0 -1
  1083. package/dist/bigconsole/components/widgets/heatmap/HeatmapConfig.js.map +0 -1
  1084. package/dist/bigconsole/components/widgets/heatmap/HeatmapWidget.d.ts.map +0 -1
  1085. package/dist/bigconsole/components/widgets/heatmap/HeatmapWidget.js.map +0 -1
  1086. package/dist/bigconsole/components/widgets/heatmap/index.d.ts.map +0 -1
  1087. package/dist/bigconsole/components/widgets/iframe-widget/IframeWidget.d.ts.map +0 -1
  1088. package/dist/bigconsole/components/widgets/iframe-widget/IframeWidget.js.map +0 -1
  1089. package/dist/bigconsole/components/widgets/iframe-widget/index.d.ts.map +0 -1
  1090. package/dist/bigconsole/components/widgets/index.d.ts.map +0 -1
  1091. package/dist/bigconsole/components/widgets/kanban/KanbanView.d.ts.map +0 -1
  1092. package/dist/bigconsole/components/widgets/kanban/KanbanView.js.map +0 -1
  1093. package/dist/bigconsole/components/widgets/kanban/KanbanWidget.d.ts.map +0 -1
  1094. package/dist/bigconsole/components/widgets/kanban/KanbanWidget.js.map +0 -1
  1095. package/dist/bigconsole/components/widgets/kanban/index.d.ts.map +0 -1
  1096. package/dist/bigconsole/components/widgets/kanban/model.d.ts.map +0 -1
  1097. package/dist/bigconsole/components/widgets/kanban/model.js.map +0 -1
  1098. package/dist/bigconsole/components/widgets/kpi/KPIWidget.d.ts.map +0 -1
  1099. package/dist/bigconsole/components/widgets/kpi/KPIWidget.js.map +0 -1
  1100. package/dist/bigconsole/components/widgets/kpi/index.d.ts.map +0 -1
  1101. package/dist/bigconsole/components/widgets/kpi-comparison/KPIComparisonWidget.d.ts.map +0 -1
  1102. package/dist/bigconsole/components/widgets/kpi-comparison/KPIComparisonWidget.js.map +0 -1
  1103. package/dist/bigconsole/components/widgets/kpi-comparison/index.d.ts.map +0 -1
  1104. package/dist/bigconsole/components/widgets/list/ListConfig.d.ts.map +0 -1
  1105. package/dist/bigconsole/components/widgets/list/ListConfig.js.map +0 -1
  1106. package/dist/bigconsole/components/widgets/list/ListItem.d.ts.map +0 -1
  1107. package/dist/bigconsole/components/widgets/list/ListItem.js.map +0 -1
  1108. package/dist/bigconsole/components/widgets/list/ListWidget.d.ts.map +0 -1
  1109. package/dist/bigconsole/components/widgets/list/ListWidget.js.map +0 -1
  1110. package/dist/bigconsole/components/widgets/list/index.d.ts.map +0 -1
  1111. package/dist/bigconsole/components/widgets/map-widget/MapWidget.d.ts.map +0 -1
  1112. package/dist/bigconsole/components/widgets/map-widget/MapWidget.js.map +0 -1
  1113. package/dist/bigconsole/components/widgets/map-widget/index.d.ts.map +0 -1
  1114. package/dist/bigconsole/components/widgets/metric-card/ComparisonBadge.d.ts.map +0 -1
  1115. package/dist/bigconsole/components/widgets/metric-card/ComparisonBadge.js.map +0 -1
  1116. package/dist/bigconsole/components/widgets/metric-card/MetricCardConfig.d.ts.map +0 -1
  1117. package/dist/bigconsole/components/widgets/metric-card/MetricCardConfig.js.map +0 -1
  1118. package/dist/bigconsole/components/widgets/metric-card/MetricCardWidget.d.ts.map +0 -1
  1119. package/dist/bigconsole/components/widgets/metric-card/MetricCardWidget.js.map +0 -1
  1120. package/dist/bigconsole/components/widgets/metric-card/SparklineChart.d.ts.map +0 -1
  1121. package/dist/bigconsole/components/widgets/metric-card/SparklineChart.js.map +0 -1
  1122. package/dist/bigconsole/components/widgets/metric-card/TrendIndicator.d.ts.map +0 -1
  1123. package/dist/bigconsole/components/widgets/metric-card/TrendIndicator.js.map +0 -1
  1124. package/dist/bigconsole/components/widgets/metric-card/index.d.ts.map +0 -1
  1125. package/dist/bigconsole/components/widgets/pivot-table/PivotTableWidget.d.ts.map +0 -1
  1126. package/dist/bigconsole/components/widgets/pivot-table/PivotTableWidget.js.map +0 -1
  1127. package/dist/bigconsole/components/widgets/pivot-table/index.d.ts.map +0 -1
  1128. package/dist/bigconsole/components/widgets/progress/ProgressBar.d.ts.map +0 -1
  1129. package/dist/bigconsole/components/widgets/progress/ProgressBar.js.map +0 -1
  1130. package/dist/bigconsole/components/widgets/progress/ProgressConfig.d.ts.map +0 -1
  1131. package/dist/bigconsole/components/widgets/progress/ProgressConfig.js.map +0 -1
  1132. package/dist/bigconsole/components/widgets/progress/ProgressWidget.d.ts.map +0 -1
  1133. package/dist/bigconsole/components/widgets/progress/ProgressWidget.js.map +0 -1
  1134. package/dist/bigconsole/components/widgets/progress/index.d.ts.map +0 -1
  1135. package/dist/bigconsole/components/widgets/retention/RetentionWidget.d.ts.map +0 -1
  1136. package/dist/bigconsole/components/widgets/retention/RetentionWidget.js.map +0 -1
  1137. package/dist/bigconsole/components/widgets/retention/index.d.ts.map +0 -1
  1138. package/dist/bigconsole/components/widgets/states/EmptyState.d.ts.map +0 -1
  1139. package/dist/bigconsole/components/widgets/states/EmptyState.js.map +0 -1
  1140. package/dist/bigconsole/components/widgets/states/ErrorState.d.ts.map +0 -1
  1141. package/dist/bigconsole/components/widgets/states/ErrorState.js.map +0 -1
  1142. package/dist/bigconsole/components/widgets/states/LoadingState.d.ts.map +0 -1
  1143. package/dist/bigconsole/components/widgets/states/LoadingState.js.map +0 -1
  1144. package/dist/bigconsole/components/widgets/states/index.d.ts.map +0 -1
  1145. package/dist/bigconsole/components/widgets/table/TableCell.d.ts.map +0 -1
  1146. package/dist/bigconsole/components/widgets/table/TableCell.js.map +0 -1
  1147. package/dist/bigconsole/components/widgets/table/TableConfig.d.ts.map +0 -1
  1148. package/dist/bigconsole/components/widgets/table/TableConfig.js.map +0 -1
  1149. package/dist/bigconsole/components/widgets/table/TableHeader.d.ts.map +0 -1
  1150. package/dist/bigconsole/components/widgets/table/TableHeader.js.map +0 -1
  1151. package/dist/bigconsole/components/widgets/table/TablePagination.d.ts.map +0 -1
  1152. package/dist/bigconsole/components/widgets/table/TablePagination.js.map +0 -1
  1153. package/dist/bigconsole/components/widgets/table/TableWidget.d.ts.map +0 -1
  1154. package/dist/bigconsole/components/widgets/table/TableWidget.js.map +0 -1
  1155. package/dist/bigconsole/components/widgets/table/cellLink.d.ts.map +0 -1
  1156. package/dist/bigconsole/components/widgets/table/cellLink.js.map +0 -1
  1157. package/dist/bigconsole/components/widgets/table/index.d.ts.map +0 -1
  1158. package/dist/bigconsole/components/widgets/text-widget/TextWidget.d.ts.map +0 -1
  1159. package/dist/bigconsole/components/widgets/text-widget/TextWidget.js.map +0 -1
  1160. package/dist/bigconsole/components/widgets/text-widget/index.d.ts.map +0 -1
  1161. package/dist/bigconsole/components/widgets/text-widget/textData.d.ts.map +0 -1
  1162. package/dist/bigconsole/components/widgets/text-widget/textData.js.map +0 -1
  1163. package/dist/bigconsole/components/widgets/timeline/TimelineWidget.d.ts.map +0 -1
  1164. package/dist/bigconsole/components/widgets/timeline/TimelineWidget.js.map +0 -1
  1165. package/dist/bigconsole/components/widgets/timeline/index.d.ts.map +0 -1
  1166. package/dist/bigconsole/components/widgets/utils/conditionalFormat.d.ts.map +0 -1
  1167. package/dist/bigconsole/components/widgets/utils/conditionalFormat.js.map +0 -1
  1168. package/dist/bigconsole/components/widgets/utils/inferFields.d.ts.map +0 -1
  1169. package/dist/bigconsole/components/widgets/utils/inferFields.js.map +0 -1
  1170. package/dist/bigconsole/components/widgets/utils/targetProgress.d.ts.map +0 -1
  1171. package/dist/bigconsole/components/widgets/utils/targetProgress.js.map +0 -1
  1172. package/dist/bigconsole/components/widgets/utils/translate.d.ts.map +0 -1
  1173. package/dist/bigconsole/components/widgets/utils/translate.js.map +0 -1
  1174. package/dist/bigconsole/components/widgets/webhook-config/WebhookConfigPanel.d.ts.map +0 -1
  1175. package/dist/bigconsole/components/widgets/webhook-config/WebhookConfigPanel.js.map +0 -1
  1176. package/dist/bigconsole/components/widgets/webhook-config/index.d.ts.map +0 -1
  1177. package/dist/bigconsole/components/widgets/widget-actions/WidgetActions.d.ts.map +0 -1
  1178. package/dist/bigconsole/components/widgets/widget-actions/WidgetActions.js.map +0 -1
  1179. package/dist/bigconsole/components/widgets/widget-actions/index.d.ts.map +0 -1
  1180. package/dist/bigconsole/components/workflow/DataSinkMultiSelector.d.ts.map +0 -1
  1181. package/dist/bigconsole/components/workflow/WorkflowCard.d.ts.map +0 -1
  1182. package/dist/bigconsole/components/workflow/WorkflowCard.js.map +0 -1
  1183. package/dist/bigconsole/components/workflow/WorkflowDeleteDialog.d.ts.map +0 -1
  1184. package/dist/bigconsole/components/workflow/WorkflowDeleteDialog.js.map +0 -1
  1185. package/dist/bigconsole/components/workflow/WorkflowDesignPreview.d.ts.map +0 -1
  1186. package/dist/bigconsole/components/workflow/WorkflowDesignPreview.js.map +0 -1
  1187. package/dist/bigconsole/components/workflow/WorkflowOpenGuard.d.ts.map +0 -1
  1188. package/dist/bigconsole/components/workflow/WorkflowOpenGuard.js.map +0 -1
  1189. package/dist/bigconsole/components/workflow/WorkflowSinkLinkForm.d.ts.map +0 -1
  1190. package/dist/bigconsole/components/workflow/WorkflowSinkLinkForm.js.map +0 -1
  1191. package/dist/bigconsole/components/workflow/WorkflowStatusBadge.d.ts.map +0 -1
  1192. package/dist/bigconsole/components/workflow/WorkflowStatusBadge.js.map +0 -1
  1193. package/dist/bigconsole/components/workflow/index.d.ts.map +0 -1
  1194. package/dist/bigconsole/constants/backendErrors.d.ts.map +0 -1
  1195. package/dist/bigconsole/constants/backendErrors.js.map +0 -1
  1196. package/dist/bigconsole/constants.d.ts.map +0 -1
  1197. package/dist/bigconsole/constants.js.map +0 -1
  1198. package/dist/bigconsole/context/BigConsoleContext.d.ts.map +0 -1
  1199. package/dist/bigconsole/context/BigConsoleContext.js.map +0 -1
  1200. package/dist/bigconsole/context/index.d.ts.map +0 -1
  1201. package/dist/bigconsole/contexts/CrossFilterContext.d.ts.map +0 -1
  1202. package/dist/bigconsole/contexts/CrossFilterContext.js.map +0 -1
  1203. package/dist/bigconsole/contexts/NavigationContext.d.ts.map +0 -1
  1204. package/dist/bigconsole/contexts/NavigationContext.js.map +0 -1
  1205. package/dist/bigconsole/contexts/index.d.ts.map +0 -1
  1206. package/dist/bigconsole/customWidget/CustomWidgetBuilderSheet.d.ts.map +0 -1
  1207. package/dist/bigconsole/customWidget/CustomWidgetBuilderSheet.js.map +0 -1
  1208. package/dist/bigconsole/customWidget/CustomWidgetProposalPanel.d.ts.map +0 -1
  1209. package/dist/bigconsole/customWidget/CustomWidgetProposalPanel.js.map +0 -1
  1210. package/dist/bigconsole/customWidget/index.d.ts.map +0 -1
  1211. package/dist/bigconsole/customWidget/proposalContract.d.ts.map +0 -1
  1212. package/dist/bigconsole/customWidget/proposalContract.js.map +0 -1
  1213. package/dist/bigconsole/customWidget/proposalSource.d.ts.map +0 -1
  1214. package/dist/bigconsole/customWidget/proposalSource.js.map +0 -1
  1215. package/dist/bigconsole/graphql/apollo-compat.d.ts.map +0 -1
  1216. package/dist/bigconsole/graphql/storeTemplates.d.ts.map +0 -1
  1217. package/dist/bigconsole/graphql/storeTemplates.js.map +0 -1
  1218. package/dist/bigconsole/hooks/index.d.ts.map +0 -1
  1219. package/dist/bigconsole/hooks/useActivePage.d.ts.map +0 -1
  1220. package/dist/bigconsole/hooks/useActivePage.js.map +0 -1
  1221. package/dist/bigconsole/hooks/useAutoRefresh.d.ts.map +0 -1
  1222. package/dist/bigconsole/hooks/useAutoRefresh.js.map +0 -1
  1223. package/dist/bigconsole/hooks/useBigConsoleAnalytics.d.ts.map +0 -1
  1224. package/dist/bigconsole/hooks/useBigConsoleAnalytics.js.map +0 -1
  1225. package/dist/bigconsole/hooks/useBigConsoleSettings.d.ts.map +0 -1
  1226. package/dist/bigconsole/hooks/useBigConsoleSettings.js.map +0 -1
  1227. package/dist/bigconsole/hooks/useCrossFilter.d.ts.map +0 -1
  1228. package/dist/bigconsole/hooks/useCrossFilter.js.map +0 -1
  1229. package/dist/bigconsole/hooks/useDashboardEmbedPolicy.d.ts.map +0 -1
  1230. package/dist/bigconsole/hooks/useDashboardEmbedPolicy.js.map +0 -1
  1231. package/dist/bigconsole/hooks/useDashboardImageExport.d.ts.map +0 -1
  1232. package/dist/bigconsole/hooks/useDashboardImageExport.js.map +0 -1
  1233. package/dist/bigconsole/hooks/useDashboardLayoutBaseline.d.ts.map +0 -1
  1234. package/dist/bigconsole/hooks/useDashboardLayoutBaseline.js.map +0 -1
  1235. package/dist/bigconsole/hooks/useDashboardOperations.d.ts.map +0 -1
  1236. package/dist/bigconsole/hooks/useDashboardOperations.js.map +0 -1
  1237. package/dist/bigconsole/hooks/useDashboardSharing.d.ts.map +0 -1
  1238. package/dist/bigconsole/hooks/useDashboardSharing.js.map +0 -1
  1239. package/dist/bigconsole/hooks/useDashboardTemplates.d.ts.map +0 -1
  1240. package/dist/bigconsole/hooks/useDashboardViews.d.ts.map +0 -1
  1241. package/dist/bigconsole/hooks/useDashboardViews.js.map +0 -1
  1242. package/dist/bigconsole/hooks/useDataSinkAlerts.d.ts.map +0 -1
  1243. package/dist/bigconsole/hooks/useDataSinkAlerts.js.map +0 -1
  1244. package/dist/bigconsole/hooks/useDataSinkOperations.d.ts.map +0 -1
  1245. package/dist/bigconsole/hooks/useDataSinkOperations.js.map +0 -1
  1246. package/dist/bigconsole/hooks/useDataSinkSubscription.d.ts.map +0 -1
  1247. package/dist/bigconsole/hooks/useDataSinkSubscription.js.map +0 -1
  1248. package/dist/bigconsole/hooks/useDrilldown.d.ts.map +0 -1
  1249. package/dist/bigconsole/hooks/useDrilldown.js.map +0 -1
  1250. package/dist/bigconsole/hooks/useDrilldownOperations.d.ts.map +0 -1
  1251. package/dist/bigconsole/hooks/useDrilldownOperations.js.map +0 -1
  1252. package/dist/bigconsole/hooks/useEventLogs.d.ts.map +0 -1
  1253. package/dist/bigconsole/hooks/useEventLogs.js.map +0 -1
  1254. package/dist/bigconsole/hooks/useEventWebhooks.d.ts.map +0 -1
  1255. package/dist/bigconsole/hooks/useEventWebhooks.js.map +0 -1
  1256. package/dist/bigconsole/hooks/useExportDashboard.d.ts.map +0 -1
  1257. package/dist/bigconsole/hooks/useExportDashboard.js.map +0 -1
  1258. package/dist/bigconsole/hooks/useExportDataSink.d.ts.map +0 -1
  1259. package/dist/bigconsole/hooks/useExportDataSink.js.map +0 -1
  1260. package/dist/bigconsole/hooks/useExportParser.d.ts.map +0 -1
  1261. package/dist/bigconsole/hooks/useExportParser.js.map +0 -1
  1262. package/dist/bigconsole/hooks/useFilterPresets.d.ts.map +0 -1
  1263. package/dist/bigconsole/hooks/useFilterPresets.js.map +0 -1
  1264. package/dist/bigconsole/hooks/useFilterUrlSync.d.ts.map +0 -1
  1265. package/dist/bigconsole/hooks/useFilterUrlSync.js.map +0 -1
  1266. package/dist/bigconsole/hooks/useGlobalFilters.d.ts.map +0 -1
  1267. package/dist/bigconsole/hooks/useGlobalFilters.js.map +0 -1
  1268. package/dist/bigconsole/hooks/useImportDashboard.d.ts.map +0 -1
  1269. package/dist/bigconsole/hooks/useImportDashboard.js.map +0 -1
  1270. package/dist/bigconsole/hooks/useImportDataSink.d.ts.map +0 -1
  1271. package/dist/bigconsole/hooks/useImportDataSink.js.map +0 -1
  1272. package/dist/bigconsole/hooks/useImportParser.d.ts.map +0 -1
  1273. package/dist/bigconsole/hooks/useImportParser.js.map +0 -1
  1274. package/dist/bigconsole/hooks/useInstalledWidgets.d.ts.map +0 -1
  1275. package/dist/bigconsole/hooks/useInstalledWidgets.js.map +0 -1
  1276. package/dist/bigconsole/hooks/useModalFocusTrap.d.ts.map +0 -1
  1277. package/dist/bigconsole/hooks/useModalFocusTrap.js.map +0 -1
  1278. package/dist/bigconsole/hooks/usePageOperations.d.ts.map +0 -1
  1279. package/dist/bigconsole/hooks/usePageOperations.js.map +0 -1
  1280. package/dist/bigconsole/hooks/useParserOperations.d.ts.map +0 -1
  1281. package/dist/bigconsole/hooks/useParserOperations.js.map +0 -1
  1282. package/dist/bigconsole/hooks/usePipelineOperations.d.ts.map +0 -1
  1283. package/dist/bigconsole/hooks/usePipelineOperations.js.map +0 -1
  1284. package/dist/bigconsole/hooks/useShareRecipients.d.ts.map +0 -1
  1285. package/dist/bigconsole/hooks/useShareRecipients.js.map +0 -1
  1286. package/dist/bigconsole/hooks/useStoreDashboardTemplates.d.ts.map +0 -1
  1287. package/dist/bigconsole/hooks/useStoreDashboardTemplates.js.map +0 -1
  1288. package/dist/bigconsole/hooks/useWidgetActions.d.ts.map +0 -1
  1289. package/dist/bigconsole/hooks/useWidgetActions.js.map +0 -1
  1290. package/dist/bigconsole/hooks/useWidgetCatalog.d.ts.map +0 -1
  1291. package/dist/bigconsole/hooks/useWidgetCatalog.js.map +0 -1
  1292. package/dist/bigconsole/hooks/useWidgetComments.d.ts.map +0 -1
  1293. package/dist/bigconsole/hooks/useWidgetComments.js.map +0 -1
  1294. package/dist/bigconsole/hooks/useWidgetConfigPersist.d.ts.map +0 -1
  1295. package/dist/bigconsole/hooks/useWidgetConfigPersist.js.map +0 -1
  1296. package/dist/bigconsole/hooks/useWidgetData.d.ts.map +0 -1
  1297. package/dist/bigconsole/hooks/useWidgetData.js.map +0 -1
  1298. package/dist/bigconsole/hooks/useWidgetEvents.d.ts.map +0 -1
  1299. package/dist/bigconsole/hooks/useWidgetEvents.js.map +0 -1
  1300. package/dist/bigconsole/hooks/useWidgetExport.d.ts.map +0 -1
  1301. package/dist/bigconsole/hooks/useWidgetExport.js.map +0 -1
  1302. package/dist/bigconsole/hooks/useWidgetOperations.d.ts.map +0 -1
  1303. package/dist/bigconsole/hooks/useWidgetOperations.js.map +0 -1
  1304. package/dist/bigconsole/hooks/useWorkflowOperations.d.ts.map +0 -1
  1305. package/dist/bigconsole/hooks/useWorkflowOperations.js.map +0 -1
  1306. package/dist/bigconsole/index.d.ts.map +0 -1
  1307. package/dist/bigconsole/modules/dashboard/index.d.ts.map +0 -1
  1308. package/dist/bigconsole/modules/index.d.ts.map +0 -1
  1309. package/dist/bigconsole/modules/renderer/index.d.ts.map +0 -1
  1310. package/dist/bigconsole/modules/widget/index.d.ts.map +0 -1
  1311. package/dist/bigconsole/pages/AdminPage.d.ts.map +0 -1
  1312. package/dist/bigconsole/pages/AdminPage.js.map +0 -1
  1313. package/dist/bigconsole/pages/DashboardBuilderPage.d.ts.map +0 -1
  1314. package/dist/bigconsole/pages/DashboardBuilderPage.js.map +0 -1
  1315. package/dist/bigconsole/pages/DashboardViewPage.d.ts.map +0 -1
  1316. package/dist/bigconsole/pages/DashboardViewPage.js.map +0 -1
  1317. package/dist/bigconsole/pages/DashboardsPage.d.ts.map +0 -1
  1318. package/dist/bigconsole/pages/DashboardsPage.js.map +0 -1
  1319. package/dist/bigconsole/pages/DataParsersPage.d.ts.map +0 -1
  1320. package/dist/bigconsole/pages/DataParsersPage.js.map +0 -1
  1321. package/dist/bigconsole/pages/DataSinkAlertsPage.d.ts.map +0 -1
  1322. package/dist/bigconsole/pages/DataSinkAlertsPage.js.map +0 -1
  1323. package/dist/bigconsole/pages/DataSinkBuilderPage.d.ts.map +0 -1
  1324. package/dist/bigconsole/pages/DataSinkBuilderPage.js.map +0 -1
  1325. package/dist/bigconsole/pages/DataSinkViewPage.d.ts.map +0 -1
  1326. package/dist/bigconsole/pages/DataSinkViewPage.js.map +0 -1
  1327. package/dist/bigconsole/pages/DataSinksPage.d.ts.map +0 -1
  1328. package/dist/bigconsole/pages/DataSinksPage.js.map +0 -1
  1329. package/dist/bigconsole/pages/DataSourcesPage.d.ts.map +0 -1
  1330. package/dist/bigconsole/pages/DataSourcesPage.js.map +0 -1
  1331. package/dist/bigconsole/pages/InsightsPage.d.ts.map +0 -1
  1332. package/dist/bigconsole/pages/InsightsPage.js.map +0 -1
  1333. package/dist/bigconsole/pages/OverviewPage.d.ts.map +0 -1
  1334. package/dist/bigconsole/pages/OverviewPage.js.map +0 -1
  1335. package/dist/bigconsole/pages/ParserBuilderPage.d.ts.map +0 -1
  1336. package/dist/bigconsole/pages/ParserBuilderPage.js.map +0 -1
  1337. package/dist/bigconsole/pages/ParserViewPage.d.ts.map +0 -1
  1338. package/dist/bigconsole/pages/ParserViewPage.js.map +0 -1
  1339. package/dist/bigconsole/pages/PipelineBuilderPage.d.ts.map +0 -1
  1340. package/dist/bigconsole/pages/PipelineBuilderPage.js.map +0 -1
  1341. package/dist/bigconsole/pages/PipelineViewPage.d.ts.map +0 -1
  1342. package/dist/bigconsole/pages/PipelineViewPage.js.map +0 -1
  1343. package/dist/bigconsole/pages/PipelinesPage.d.ts.map +0 -1
  1344. package/dist/bigconsole/pages/PipelinesPage.js.map +0 -1
  1345. package/dist/bigconsole/pages/SettingsPage.d.ts.map +0 -1
  1346. package/dist/bigconsole/pages/SettingsPage.js.map +0 -1
  1347. package/dist/bigconsole/pages/WidgetDemoPage.d.ts.map +0 -1
  1348. package/dist/bigconsole/pages/WidgetDemoPage.js.map +0 -1
  1349. package/dist/bigconsole/pages/WorkflowViewPage.d.ts.map +0 -1
  1350. package/dist/bigconsole/pages/WorkflowViewPage.js.map +0 -1
  1351. package/dist/bigconsole/pages/WorkflowsPage.d.ts.map +0 -1
  1352. package/dist/bigconsole/pages/WorkflowsPage.js.map +0 -1
  1353. package/dist/bigconsole/pages/index.d.ts.map +0 -1
  1354. package/dist/bigconsole/providers/BigConsoleQuotaProvider.d.ts.map +0 -1
  1355. package/dist/bigconsole/providers/BigConsoleQuotaProvider.js.map +0 -1
  1356. package/dist/bigconsole/renderers/adapters/AdaptiveCardRenderer.d.ts.map +0 -1
  1357. package/dist/bigconsole/renderers/adapters/AdaptiveCardRenderer.js.map +0 -1
  1358. package/dist/bigconsole/renderers/adapters/BigConsoleRenderer.d.ts.map +0 -1
  1359. package/dist/bigconsole/renderers/adapters/BigConsoleRenderer.js.map +0 -1
  1360. package/dist/bigconsole/renderers/adapters/BlockKitRenderer.d.ts.map +0 -1
  1361. package/dist/bigconsole/renderers/adapters/BlockKitRenderer.js.map +0 -1
  1362. package/dist/bigconsole/renderers/adapters/CustomRenderer.d.ts.map +0 -1
  1363. package/dist/bigconsole/renderers/adapters/CustomRenderer.js.map +0 -1
  1364. package/dist/bigconsole/renderers/adapters/index.d.ts.map +0 -1
  1365. package/dist/bigconsole/renderers/factory/WidgetRendererFactory.d.ts.map +0 -1
  1366. package/dist/bigconsole/renderers/factory/WidgetRendererFactory.js.map +0 -1
  1367. package/dist/bigconsole/renderers/index.d.ts.map +0 -1
  1368. package/dist/bigconsole/renderers/registry/RendererRegistry.d.ts.map +0 -1
  1369. package/dist/bigconsole/renderers/registry/RendererRegistry.js.map +0 -1
  1370. package/dist/bigconsole/renderers/types/index.d.ts.map +0 -1
  1371. package/dist/bigconsole/renderers/types/renderer.d.ts.map +0 -1
  1372. package/dist/bigconsole/store/dashboardStore.d.ts.map +0 -1
  1373. package/dist/bigconsole/store/dashboardStore.js.map +0 -1
  1374. package/dist/bigconsole/store/dataSinkStore.d.ts.map +0 -1
  1375. package/dist/bigconsole/store/dataSinkStore.js.map +0 -1
  1376. package/dist/bigconsole/store/drilldownStore.d.ts.map +0 -1
  1377. package/dist/bigconsole/store/drilldownStore.js.map +0 -1
  1378. package/dist/bigconsole/store/index.d.ts.map +0 -1
  1379. package/dist/bigconsole/store/parserStore.d.ts.map +0 -1
  1380. package/dist/bigconsole/store/parserStore.js.map +0 -1
  1381. package/dist/bigconsole/store/pipelineStore.d.ts.map +0 -1
  1382. package/dist/bigconsole/store/pipelineStore.js.map +0 -1
  1383. package/dist/bigconsole/store/widgetStore.d.ts.map +0 -1
  1384. package/dist/bigconsole/store/widgetStore.js.map +0 -1
  1385. package/dist/bigconsole/store/workflowStore.d.ts.map +0 -1
  1386. package/dist/bigconsole/store/workflowStore.js.map +0 -1
  1387. package/dist/bigconsole/types/index.d.ts.map +0 -1
  1388. package/dist/bigconsole/utils/alertRules.d.ts.map +0 -1
  1389. package/dist/bigconsole/utils/alertRules.js.map +0 -1
  1390. package/dist/bigconsole/utils/backendError.d.ts.map +0 -1
  1391. package/dist/bigconsole/utils/backendError.js.map +0 -1
  1392. package/dist/bigconsole/utils/createDialogParam.d.ts.map +0 -1
  1393. package/dist/bigconsole/utils/createDialogParam.js.map +0 -1
  1394. package/dist/bigconsole/utils/csv.d.ts.map +0 -1
  1395. package/dist/bigconsole/utils/csv.js.map +0 -1
  1396. package/dist/bigconsole/utils/dashboardTemplateContent.d.ts.map +0 -1
  1397. package/dist/bigconsole/utils/dashboardTemplateContent.js.map +0 -1
  1398. package/dist/bigconsole/utils/drilldownParams.d.ts.map +0 -1
  1399. package/dist/bigconsole/utils/drilldownParams.js.map +0 -1
  1400. package/dist/bigconsole/utils/formDirty.d.ts.map +0 -1
  1401. package/dist/bigconsole/utils/formDirty.js.map +0 -1
  1402. package/dist/bigconsole/utils/format.d.ts.map +0 -1
  1403. package/dist/bigconsole/utils/format.js.map +0 -1
  1404. package/dist/bigconsole/utils/index.d.ts.map +0 -1
  1405. package/dist/bigconsole/utils/layoutBaseline.d.ts.map +0 -1
  1406. package/dist/bigconsole/utils/layoutBaseline.js.map +0 -1
  1407. package/dist/bigconsole/utils/quota.d.ts.map +0 -1
  1408. package/dist/bigconsole/utils/quota.js.map +0 -1
  1409. package/dist/bigconsole/utils/semanticTokens.d.ts.map +0 -1
  1410. package/dist/bigconsole/utils/semanticTokens.js.map +0 -1
  1411. package/dist/bigconsole/utils/templateInstallInputs.d.ts.map +0 -1
  1412. package/dist/bigconsole/utils/templateInstallInputs.js.map +0 -1
  1413. package/dist/bigconsole/utils/widgetBinding.d.ts.map +0 -1
  1414. package/dist/bigconsole/utils/widgetBinding.js.map +0 -1
  1415. package/dist/bigconsole/utils/widgetPositioning.d.ts.map +0 -1
  1416. package/dist/bigconsole/utils/widgetPositioning.js.map +0 -1
  1417. package/dist/bigconsole/utils/widgetTypeMapping.d.ts.map +0 -1
  1418. package/dist/bigconsole/utils/widgetTypeMapping.js.map +0 -1
  1419. package/dist/bigconsole/workflowOpen.d.ts.map +0 -1
  1420. package/dist/bigconsole/workflowOpen.js.map +0 -1
  1421. package/dist/constants/permissions.d.ts.map +0 -1
  1422. package/dist/constants/permissions.js.map +0 -1
  1423. package/dist/generated/global-operations.d.ts.map +0 -1
  1424. package/dist/generated/global-operations.js.map +0 -1
  1425. package/dist/generated/global-types.d.ts.map +0 -1
  1426. package/dist/generated/wspace-operations.d.ts.map +0 -1
  1427. package/dist/generated/wspace-operations.js.map +0 -1
  1428. package/dist/generated/wspace-types.d.ts.map +0 -1
  1429. package/dist/generated/wspace-types.js.map +0 -1
  1430. package/dist/index.d.ts.map +0 -1
  1431. package/dist/node_modules/@e965/xlsx/xlsx.js.map +0 -1
  1432. package/dist/node_modules/pdfjs-dist/build/pdf.js.map +0 -1
  1433. package/dist/shared/hooks/useTr.d.ts.map +0 -1
  1434. package/dist/shared/hooks/useTr.js.map +0 -1
  1435. package/dist/stories/DashboardGuide.stories.d.ts +0 -15
  1436. package/dist/stories/DashboardGuide.stories.d.ts.map +0 -1
  1437. package/dist/stories/DataSinkStatusBadge.stories.d.ts +0 -12
  1438. package/dist/stories/DataSinkStatusBadge.stories.d.ts.map +0 -1
  1439. package/dist/stories/GaugeWidget.stories.d.ts +0 -58
  1440. package/dist/stories/GaugeWidget.stories.d.ts.map +0 -1
  1441. package/dist/stories/KPIComparisonWidget.stories.d.ts +0 -76
  1442. package/dist/stories/KPIComparisonWidget.stories.d.ts.map +0 -1
  1443. package/dist/stories/LiveCanvasToggle.stories.d.ts +0 -9
  1444. package/dist/stories/LiveCanvasToggle.stories.d.ts.map +0 -1
  1445. package/dist/stories/MetricCardWidget.stories.d.ts +0 -88
  1446. package/dist/stories/MetricCardWidget.stories.d.ts.map +0 -1
  1447. package/dist/stories/ProgressWidget.stories.d.ts +0 -48
  1448. package/dist/stories/ProgressWidget.stories.d.ts.map +0 -1
  1449. package/dist/stories/SetupStateBadge.stories.d.ts +0 -12
  1450. package/dist/stories/SetupStateBadge.stories.d.ts.map +0 -1
  1451. package/dist/translations/en.d.ts.map +0 -1
  1452. package/dist/utils/nativeBridge.d.ts.map +0 -1
@@ -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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"SavedViewsDropdown.js","names":[],"sources":["../../../../../src/bigconsole/components/dashboard/SavedViewsDropdown/SavedViewsDropdown.tsx"],"sourcesContent":["/**\n * SavedViewsDropdown Component\n *\n * Dropdown for managing and switching between saved dashboard views.\n */\n\nimport React, { useState, useEffect, useCallback, useRef } from 'react';\nimport { createPortal } from 'react-dom';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport { useDashboardViews, type DashboardView } from '../../../hooks';\nimport { SEMANTIC_COLORS } from '../../../utils/semanticTokens';\nimport { reportBigConsoleQuotaError } from '../../../utils/quota';\n\n// ============================================================================\n// Solid Background Colors (for portal-rendered dropdowns)\n// ============================================================================\n\n// Hook to detect dark mode and provide solid background color\nfunction useSolidBackground() {\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 solid opaque colors - no transparency\n return isDark ? '#1f2937' : '#ffffff';\n}\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface SavedViewsDropdownProps {\n dashboardId: string;\n currentFilters?: Record<string, unknown>;\n currentLayout?: Record<string, unknown>;\n onViewLoad?: (view: DashboardView) => void;\n className?: string;\n}\n\n// Use shared semantic tokens for portal rendering\n\n// ============================================================================\n// Component\n// ============================================================================\n\nexport function SavedViewsDropdown({\n dashboardId,\n currentFilters,\n currentLayout,\n onViewLoad,\n className = '',\n}: SavedViewsDropdownProps) {\n const { t } = useI18n();\n const {\n views,\n currentView,\n loading,\n fetchViews,\n saveCurrentView,\n loadView,\n updateView,\n deleteView,\n setAsDefault,\n clearCurrentView,\n } = useDashboardViews();\n\n const [isOpen, setIsOpen] = useState(false);\n const [showSaveDialog, setShowSaveDialog] = useState(false);\n const [newViewName, setNewViewName] = useState('');\n const [newViewDescription, setNewViewDescription] = useState('');\n const [saveAsDefault, setSaveAsDefault] = useState(false);\n const [dropdownPosition, setDropdownPosition] = useState({ top: 0, left: 0 });\n\n const buttonRef = useRef<HTMLButtonElement>(null);\n const dropdownRef = useRef<HTMLDivElement>(null);\n\n // Get solid background color for portal-rendered dropdown (no transparency)\n const solidBgColor = useSolidBackground();\n\n // Fetch views on mount\n useEffect(() => {\n if (dashboardId) {\n fetchViews(dashboardId);\n }\n }, [dashboardId, fetchViews]);\n\n // Update dropdown position when opening\n useEffect(() => {\n if (isOpen && buttonRef.current) {\n const rect = buttonRef.current.getBoundingClientRect();\n const dropdownWidth = 280;\n\n // Calculate left position - align left edge with button, but ensure it doesn't go off screen\n let leftPos = rect.left;\n\n // If dropdown would go off the right edge of screen, align right edge with button instead\n if (leftPos + dropdownWidth > window.innerWidth - 16) {\n leftPos = rect.right - dropdownWidth;\n }\n\n // Ensure minimum left margin\n leftPos = Math.max(16, leftPos);\n\n setDropdownPosition({\n top: rect.bottom + 4,\n left: leftPos,\n });\n }\n }, [isOpen]);\n\n // Close dropdown when clicking outside\n useEffect(() => {\n function handleClickOutside(event: MouseEvent) {\n const target = event.target as Node;\n if (\n buttonRef.current &&\n !buttonRef.current.contains(target) &&\n dropdownRef.current &&\n !dropdownRef.current.contains(target)\n ) {\n setIsOpen(false);\n }\n }\n\n if (isOpen) {\n document.addEventListener('mousedown', handleClickOutside);\n return () => document.removeEventListener('mousedown', handleClickOutside);\n }\n }, [isOpen]);\n\n // Handle view selection\n const handleSelectView = useCallback(\n (viewId: string) => {\n const view = views.find((v) => v.id === viewId);\n if (view) {\n loadView(viewId);\n if (onViewLoad) {\n onViewLoad(view);\n }\n }\n setIsOpen(false);\n },\n [views, loadView, onViewLoad]\n );\n\n // Handle save new view\n const handleSaveView = useCallback(async () => {\n if (!newViewName.trim()) return;\n\n try {\n await saveCurrentView({\n dashboardId,\n name: newViewName.trim(),\n description: newViewDescription.trim() || undefined,\n filters: currentFilters,\n layout: currentLayout,\n isDefault: saveAsDefault,\n });\n } catch (err) {\n if (reportBigConsoleQuotaError(err, 'session')) {\n setShowSaveDialog(false);\n setIsOpen(false);\n return;\n }\n throw err;\n }\n\n setNewViewName('');\n setNewViewDescription('');\n setSaveAsDefault(false);\n setShowSaveDialog(false);\n }, [dashboardId, newViewName, newViewDescription, currentFilters, currentLayout, saveAsDefault, saveCurrentView]);\n\n // Handle update current view\n const handleUpdateCurrentView = useCallback(async () => {\n if (!currentView) return;\n\n await updateView({\n id: currentView.id,\n filters: currentFilters,\n layout: currentLayout,\n });\n }, [currentView, currentFilters, currentLayout, updateView]);\n\n // Handle delete view\n const handleDeleteView = useCallback(\n async (viewId: string, e: React.MouseEvent) => {\n e.stopPropagation();\n if (\n window.confirm(\n t('bigconsole.dashboards.savedViews.confirmDelete', 'Are you sure you want to delete this view?')\n )\n ) {\n await deleteView(viewId);\n }\n },\n [deleteView, t]\n );\n\n // Handle set as default\n const handleSetDefault = useCallback(\n async (viewId: string, e: React.MouseEvent) => {\n e.stopPropagation();\n await setAsDefault(viewId);\n },\n [setAsDefault]\n );\n\n // Clear current view\n const handleClearView = useCallback(() => {\n clearCurrentView();\n setIsOpen(false);\n }, [clearCurrentView]);\n\n // Dropdown Menu rendered via portal\n const dropdownMenu = isOpen\n ? createPortal(\n <div\n ref={dropdownRef}\n style={{\n position: 'fixed',\n top: dropdownPosition.top,\n left: Math.max(16, dropdownPosition.left), // Ensure minimum left margin\n minWidth: 'min(280px, calc(100vw - 2rem))',\n maxWidth: 'calc(100vw - 2rem)',\n backgroundColor: solidBgColor, // Solid opaque background - no transparency\n border: `1px solid ${SEMANTIC_COLORS.borderDefault}`,\n borderRadius: '8px',\n boxShadow: 'var(--shadow-elevation-3)',\n zIndex: 99998,\n overflow: 'hidden',\n }}\n >\n {/* Header */}\n <div\n style={{\n padding: '12px 16px',\n borderBottom: `1px solid ${SEMANTIC_COLORS.borderDefault}`,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n }}\n >\n <span style={{ fontSize: '13px', fontWeight: 600, color: SEMANTIC_COLORS.textPrimary }}>\n {t('bigconsole.dashboards.savedViews.header', 'Saved Views')}\n </span>\n <button\n onClick={() => setShowSaveDialog(true)}\n style={{\n padding: '4px 10px',\n backgroundColor: SEMANTIC_COLORS.actionPrimaryBg,\n color: 'var(--color-action-primary-text)',\n border: 'none',\n borderRadius: '4px',\n cursor: 'pointer',\n fontSize: '12px',\n }}\n >\n {t('bigconsole.dashboards.savedViews.saveCurrent', '+ Save Current')}\n </button>\n </div>\n\n {/* Views List */}\n <div style={{ maxHeight: '300px', overflowY: 'auto' }}>\n {loading && views.length === 0 ? (\n <div style={{ padding: '16px', color: SEMANTIC_COLORS.textSecondary, fontSize: '13px' }}>\n {t('bigconsole.dashboards.savedViews.loading', 'Loading views...')}\n </div>\n ) : views.length === 0 ? (\n <div style={{ padding: '16px', color: SEMANTIC_COLORS.textSecondary, fontSize: '13px' }}>\n {t(\n 'bigconsole.dashboards.savedViews.empty',\n 'No saved views yet. Save your current view to get started.'\n )}\n </div>\n ) : (\n <>\n {/* Reset to Default Option */}\n <button\n onClick={handleClearView}\n style={{\n display: 'flex',\n alignItems: 'center',\n width: '100%',\n padding: '10px 16px',\n backgroundColor: !currentView ? SEMANTIC_COLORS.bgSecondary : SEMANTIC_COLORS.bgPrimary,\n border: 'none',\n cursor: 'pointer',\n textAlign: 'left',\n borderBottom: `1px solid ${SEMANTIC_COLORS.borderDefault}`,\n }}\n >\n <div>\n <div style={{ fontSize: '13px', fontWeight: 500, color: SEMANTIC_COLORS.textPrimary }}>\n {t('bigconsole.dashboards.savedViews.defaultView', 'Default View')}\n </div>\n <div style={{ fontSize: '11px', color: SEMANTIC_COLORS.textSecondary }}>\n {t('bigconsole.dashboards.savedViews.defaultViewHint', 'Reset to original dashboard state')}\n </div>\n </div>\n </button>\n\n {/* Saved Views */}\n {views.map((view) => (\n <div\n key={view.id}\n onClick={() => handleSelectView(view.id)}\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n padding: '10px 16px',\n backgroundColor:\n currentView?.id === view.id ? SEMANTIC_COLORS.bgSecondary : SEMANTIC_COLORS.bgPrimary,\n cursor: 'pointer',\n borderBottom: `1px solid ${SEMANTIC_COLORS.borderDefault}`,\n }}\n >\n <div style={{ flex: 1 }}>\n <div style={{ display: 'flex', alignItems: 'center', gap: '6px' }}>\n <span\n style={{\n fontSize: '13px',\n fontWeight: 500,\n color: SEMANTIC_COLORS.textPrimary,\n }}\n >\n {view.name}\n </span>\n {view.isDefault && (\n <span\n style={{\n fontSize: '9px',\n padding: '2px 4px',\n backgroundColor: SEMANTIC_COLORS.actionPrimaryBgSubtle,\n color: SEMANTIC_COLORS.actionPrimaryBg,\n borderRadius: '4px',\n textTransform: 'uppercase',\n fontWeight: 600,\n }}\n >\n {t('bigconsole.dashboards.savedViews.defaultBadge', 'Default')}\n </span>\n )}\n </div>\n {view.description && (\n <div style={{ fontSize: '11px', color: SEMANTIC_COLORS.textSecondary, marginTop: '2px' }}>\n {view.description}\n </div>\n )}\n <div style={{ fontSize: '10px', color: SEMANTIC_COLORS.textSecondary, marginTop: '2px' }}>\n {new Date(view.updatedAt).toLocaleDateString()}\n </div>\n </div>\n <div style={{ display: 'flex', alignItems: 'center', gap: '4px' }}>\n {!view.isDefault && (\n <button\n onClick={(e) => handleSetDefault(view.id, e)}\n title={t('bigconsole.dashboards.savedViews.setAsDefaultTitle', 'Set as default')}\n style={{\n padding: '4px 6px',\n backgroundColor: 'transparent',\n border: 'none',\n cursor: 'pointer',\n color: SEMANTIC_COLORS.textSecondary,\n fontSize: '11px',\n }}\n >\n {t('bigconsole.dashboards.savedViews.setDefault', 'Set Default')}\n </button>\n )}\n <button\n onClick={(e) => handleDeleteView(view.id, e)}\n title={t('bigconsole.dashboards.savedViews.deleteViewTitle', 'Delete view')}\n style={{\n padding: '4px 6px',\n backgroundColor: 'transparent',\n border: 'none',\n cursor: 'pointer',\n color: SEMANTIC_COLORS.statusErrorText,\n fontSize: '11px',\n }}\n >\n {t('bigconsole.dashboards.savedViews.delete', 'Delete')}\n </button>\n </div>\n </div>\n ))}\n </>\n )}\n </div>\n\n {/* Update Current View Button */}\n {currentView && (\n <div\n style={{\n padding: '12px 16px',\n borderTop: `1px solid ${SEMANTIC_COLORS.borderDefault}`,\n backgroundColor: SEMANTIC_COLORS.bgSecondary,\n }}\n >\n <button\n onClick={handleUpdateCurrentView}\n style={{\n width: '100%',\n padding: '8px',\n backgroundColor: SEMANTIC_COLORS.bgPrimary,\n border: `1px solid ${SEMANTIC_COLORS.borderDefault}`,\n borderRadius: '4px',\n cursor: 'pointer',\n fontSize: '12px',\n color: SEMANTIC_COLORS.textPrimary,\n }}\n >\n {t('bigconsole.dashboards.savedViews.updateCurrent', 'Update \"{{name}}\" with current state', {\n name: currentView.name ?? '',\n })}\n </button>\n </div>\n )}\n </div>,\n document.body\n )\n : null;\n\n // Save Dialog rendered via portal\n const saveDialog = showSaveDialog\n ? createPortal(\n <div\n style={{\n position: 'fixed',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n backgroundColor: 'var(--color-overlay-scrim)',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n padding: 'var(--space-formGap)',\n zIndex: 99999,\n isolation: 'isolate',\n }}\n onClick={() => setShowSaveDialog(false)}\n >\n <div\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"saved-view-dialog-title\"\n style={{\n // was a hard 400px, which overflowed a 375px phone viewport\n width: '100%',\n maxWidth: '400px',\n maxHeight: '85vh',\n overflowY: 'auto',\n backgroundColor: solidBgColor, // Solid opaque background - no transparency\n borderRadius: 'var(--radius-card)',\n boxShadow: 'var(--shadow-elevation-3)',\n overflow: 'hidden',\n position: 'relative',\n zIndex: 100000,\n color: SEMANTIC_COLORS.textPrimary,\n }}\n onClick={(e) => e.stopPropagation()}\n >\n <div\n style={{\n padding: '16px 20px',\n borderBottom: `1px solid ${SEMANTIC_COLORS.borderDefault}`,\n }}\n >\n <h3\n id=\"saved-view-dialog-title\"\n style={{ margin: 0, fontSize: '16px', fontWeight: 600, color: SEMANTIC_COLORS.textPrimary }}\n >\n {t('bigconsole.dashboards.savedViews.saveDialog.title', 'Save Current View')}\n </h3>\n </div>\n <div style={{ padding: '20px' }}>\n <div style={{ marginBottom: '16px' }}>\n <label\n style={{\n display: 'block',\n marginBottom: '6px',\n fontSize: '13px',\n fontWeight: 500,\n color: SEMANTIC_COLORS.textPrimary,\n }}\n >\n {t('bigconsole.dashboards.savedViews.saveDialog.nameLabel', 'View Name *')}\n </label>\n <input\n type=\"text\"\n value={newViewName}\n onChange={(e) => setNewViewName(e.target.value)}\n placeholder={t(\n 'bigconsole.dashboards.savedViews.saveDialog.namePlaceholder',\n 'e.g., Q4 Analysis, Sales Overview'\n )}\n style={{\n width: '100%',\n padding: '10px 12px',\n border: `1px solid ${SEMANTIC_COLORS.borderDefault}`,\n borderRadius: '6px',\n fontSize: '14px',\n backgroundColor: SEMANTIC_COLORS.bgPrimary,\n color: SEMANTIC_COLORS.textPrimary,\n boxSizing: 'border-box',\n }}\n />\n </div>\n <div style={{ marginBottom: '16px' }}>\n <label\n style={{\n display: 'block',\n marginBottom: '6px',\n fontSize: '13px',\n fontWeight: 500,\n color: SEMANTIC_COLORS.textPrimary,\n }}\n >\n {t('bigconsole.dashboards.savedViews.saveDialog.descriptionLabel', 'Description')}\n </label>\n <textarea\n value={newViewDescription}\n onChange={(e) => setNewViewDescription(e.target.value)}\n placeholder={t(\n 'bigconsole.dashboards.savedViews.saveDialog.descriptionPlaceholder',\n 'Optional description...'\n )}\n rows={2}\n style={{\n width: '100%',\n padding: '10px 12px',\n border: `1px solid ${SEMANTIC_COLORS.borderDefault}`,\n borderRadius: '6px',\n fontSize: '14px',\n resize: 'vertical',\n backgroundColor: SEMANTIC_COLORS.bgPrimary,\n color: SEMANTIC_COLORS.textPrimary,\n boxSizing: 'border-box',\n }}\n />\n </div>\n <label style={{ display: 'flex', alignItems: 'center', gap: '8px', cursor: 'pointer' }}>\n <input type=\"checkbox\" checked={saveAsDefault} onChange={(e) => setSaveAsDefault(e.target.checked)} />\n <span style={{ fontSize: '13px', color: SEMANTIC_COLORS.textPrimary }}>\n {t('bigconsole.dashboards.savedViews.saveDialog.setAsDefault', 'Set as default view')}\n </span>\n </label>\n </div>\n <div\n style={{\n padding: '16px 20px',\n borderTop: `1px solid ${SEMANTIC_COLORS.borderDefault}`,\n display: 'flex',\n justifyContent: 'flex-end',\n gap: '12px',\n backgroundColor: SEMANTIC_COLORS.bgSecondary,\n }}\n >\n <button\n onClick={() => setShowSaveDialog(false)}\n style={{\n padding: '10px 20px',\n backgroundColor: SEMANTIC_COLORS.bgPrimary,\n border: `1px solid ${SEMANTIC_COLORS.borderDefault}`,\n borderRadius: '6px',\n cursor: 'pointer',\n fontSize: '14px',\n color: SEMANTIC_COLORS.textPrimary,\n }}\n >\n {t('bigconsole.dashboards.savedViews.saveDialog.cancel', 'Cancel')}\n </button>\n <button\n onClick={handleSaveView}\n disabled={!newViewName.trim()}\n style={{\n padding: '10px 20px',\n backgroundColor: newViewName.trim() ? SEMANTIC_COLORS.actionPrimaryBg : SEMANTIC_COLORS.bgSecondary,\n color: newViewName.trim() ? 'var(--color-action-primary-text)' : SEMANTIC_COLORS.textSecondary,\n border: 'none',\n borderRadius: '6px',\n cursor: newViewName.trim() ? 'pointer' : 'not-allowed',\n fontSize: '14px',\n fontWeight: 500,\n }}\n >\n {t('bigconsole.dashboards.savedViews.saveDialog.save', 'Save View')}\n </button>\n </div>\n </div>\n </div>,\n document.body\n )\n : null;\n\n return (\n <div className={className} style={{ position: 'relative', display: 'inline-block' }}>\n {/* Trigger Button */}\n <button\n ref={buttonRef}\n onClick={() => setIsOpen(!isOpen)}\n style={{\n display: 'flex',\n alignItems: 'center',\n gap: '6px',\n padding: '6px 12px',\n backgroundColor: currentView ? SEMANTIC_COLORS.actionPrimaryBgSubtle : SEMANTIC_COLORS.bgSecondary,\n border: `1px solid ${currentView ? SEMANTIC_COLORS.actionPrimaryBg : SEMANTIC_COLORS.borderDefault}`,\n borderRadius: '6px',\n cursor: 'pointer',\n fontSize: '13px',\n color: currentView ? SEMANTIC_COLORS.actionPrimaryBg : SEMANTIC_COLORS.textPrimary,\n }}\n >\n <span style={{ fontWeight: 500 }}>\n {currentView ? currentView.name : t('bigconsole.dashboards.savedViews.triggerLabel', 'Views')}\n </span>\n <span style={{ fontSize: '10px' }}>{isOpen ? '▲' : '▼'}</span>\n </button>\n\n {/* Dropdown Menu - rendered via portal */}\n {dropdownMenu}\n\n {/* Save Dialog - rendered via portal */}\n {saveDialog}\n </div>\n );\n}\n\nexport default SavedViewsDropdown;\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/bigconsole/components/dashboard/SavedViewsDropdown/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,kBAAkB,EAAE,KAAK,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AACxF,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"EmbedTab.d.ts","sourceRoot":"","sources":["../../../../../src/bigconsole/components/dashboard/ShareDialog/EmbedTab.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAA+C,MAAM,OAAO,CAAC;AAMpE,UAAU,YAAY;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,YAAY,CAAC;CACtB;AAED,8DAA8D;AAC9D,KAAK,iBAAiB,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AAInD;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,GAAG,MAAM,CAYpF;AAgBD,wBAAgB,QAAQ,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,aAAa,qBA8e9D;AAED,eAAe,QAAQ,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"EmbedTab.js","names":[],"sources":["../../../../../src/bigconsole/components/dashboard/ShareDialog/EmbedTab.tsx"],"sourcesContent":["/**\n * EmbedTab — \"Publish to web\" section of the dashboard Share dialog.\n *\n * Owner-facing UI to publish a dashboard as an anonymous-link embed serving LIVE\n * data, manage the allowed parent domains, copy the iframe snippet, rotate the\n * link key, and unpublish. Backed by {@link useDashboardEmbedPolicy}; all\n * mutations are gateway-enforced by `@rbac(manage_embed)` (owner-only).\n *\n * Self-contained (inline styles driven by the dialog's `colors`) so it slots into\n * the existing hand-styled ShareDialog without a broader refactor.\n */\n\nimport React, { useEffect, useMemo, useRef, useState } from 'react';\nimport { usePermissions } from '@burdenoff/fe-libs/shared/providers/shell';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport { useDashboardEmbedPolicy, themeChoiceFromPolicy } from '../../../hooks/useDashboardEmbedPolicy';\nimport { BIGCONSOLE_PERMISSIONS } from '../../../../constants/permissions';\n\ninterface DialogColors {\n bgPrimary: string;\n bgSecondary: string;\n bgTertiary: string;\n textPrimary: string;\n textSecondary: string;\n textTertiary: string;\n borderDefault: string;\n actionPrimaryBg: string;\n actionPrimaryBgHover: string;\n statusSuccessBg: string;\n statusErrorText: string;\n}\n\nexport interface EmbedTabProps {\n dashboardId: string;\n colors: DialogColors;\n}\n\n/** Embed color-mode baked into the iframe URL (BOFF-5734). */\ntype EmbedSnippetTheme = 'light' | 'dark' | 'auto';\n\nconst THEME_OPTION_VALUES: ReadonlyArray<EmbedSnippetTheme> = ['light', 'dark', 'auto'];\n\n/**\n * Bake the chosen color mode into an iframe snippet by adding `?theme=` to its\n * `src` URL. `light` is the default and is left implicit so existing/plain\n * snippets stay unchanged. The secret `#key=` fragment is preserved untouched.\n *\n * Inserted via string splicing (before the fragment) rather than `URL`/\n * `URLSearchParams`, which re-serialize ALL params and could subtly re-encode\n * existing ones (e.g. `%20` → `+`). `theme` is a fixed enum, so no encoding is\n * needed; every other part of the URL is passed through byte-for-byte.\n */\nexport function withThemeInSnippet(snippet: string, theme: EmbedSnippetTheme): string {\n if (theme === 'light') return snippet;\n // Require whitespace before `src` so we match the real attribute, never a\n // substring like `data-src`/`srcdoc` (the snippet is backend-generated with\n // each attribute on its own indented line).\n return snippet.replace(/(?<=\\s)src=\"([^\"]*)\"/, (_match, url: string) => {\n const hashIdx = url.indexOf('#');\n const base = hashIdx === -1 ? url : url.slice(0, hashIdx);\n const fragment = hashIdx === -1 ? '' : url.slice(hashIdx);\n const sep = base.includes('?') ? '&' : '?';\n return `src=\"${base}${sep}theme=${theme}${fragment}\"`;\n });\n}\n\n/** Validate an exact https origin (matches the backend allowlist rules). */\nfunction normalizeOrigin(raw: string): string | null {\n const trimmed = raw.trim();\n if (!trimmed) return null;\n try {\n const url = new URL(trimmed);\n if (url.protocol !== 'https:') return null;\n if ((url.pathname !== '' && url.pathname !== '/') || url.search || url.hash) return null;\n return url.origin;\n } catch {\n return null;\n }\n}\n\nexport function EmbedTab({ dashboardId, colors }: EmbedTabProps) {\n const { t } = useI18n();\n const {\n policy,\n secret,\n loading,\n error,\n fetchPolicy,\n publishToWeb,\n applyPresentation,\n setAllowedOrigins,\n rotateKey,\n unpublish,\n } = useDashboardEmbedPolicy();\n\n // All embed policy mutations (publish, rotate, revoke, set-origins, apply\n // presentation) are gateway-enforced by `@rbac(manage_embed)`. Gate the UI on\n // the same permission so the controls degrade gracefully instead of erroring.\n const { hasPermission } = usePermissions();\n const canManageEmbed = hasPermission(BIGCONSOLE_PERMISSIONS.DASHBOARD_MANAGE_EMBED);\n\n const [domainInput, setDomainInput] = useState('');\n const [pendingDomains, setPendingDomains] = useState<string[]>([]);\n const [attested, setAttested] = useState(false);\n const [copied, setCopied] = useState(false);\n // Presentation options (BOFF-5735). Defaults mirror the backend column defaults\n // so a fresh publish captures a sensible look without extra clicks.\n const [theme, setTheme] = useState<EmbedSnippetTheme>('light');\n const [showTitle, setShowTitle] = useState(false);\n const [presentationSaved, setPresentationSaved] = useState(false);\n const [localError, setLocalError] = useState<string | null>(null);\n // Only seed the presentation controls once per policy identity — NOT on every\n // `policy` object change. Otherwise an unrelated mutation (e.g. adding a domain\n // via setAllowedOrigins) would return a fresh policy object and clobber the\n // owner's in-progress, not-yet-applied theme/title edits.\n const syncedPolicyIdRef = useRef<string | null>(null);\n const savedTimerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n useEffect(() => {\n if (dashboardId) fetchPolicy(dashboardId);\n }, [dashboardId, fetchPolicy]);\n\n // Reflect the persisted presentation the first time each policy loads.\n useEffect(() => {\n if (!policy || syncedPolicyIdRef.current === policy.id) return;\n syncedPolicyIdRef.current = policy.id;\n setTheme(themeChoiceFromPolicy(policy.presentationTheme));\n setShowTitle(policy.showDashboardTitle);\n }, [policy]);\n\n // Clear any pending \"Updated ✓\" timer on unmount.\n useEffect(\n () => () => {\n if (savedTimerRef.current) clearTimeout(savedTimerRef.current);\n },\n []\n );\n\n const isPublished = policy?.status === 'ACTIVE';\n const domains = isPublished ? (policy?.allowedParentOrigins ?? []) : pendingDomains;\n\n // The copyable iframe snippet: from the one-time secret if present (fresh\n // publish/rotate), else reconstructed from the locator for an already-published\n // policy (the fragment key is only available in the one-time secret).\n const iframeSnippet = useMemo(() => {\n if (secret?.iframeSnippet) return withThemeInSnippet(secret.iframeSnippet, theme);\n return null;\n }, [secret, theme]);\n\n const addDomain = () => {\n setLocalError(null);\n const origin = normalizeOrigin(domainInput);\n if (!origin) {\n setLocalError(\n t('bigconsole.dashboards.embed.error.invalidOrigin', 'Enter a valid https origin, e.g. https://example.com')\n );\n return;\n }\n if (domains.includes(origin)) {\n setDomainInput('');\n return;\n }\n if (isPublished && policy) {\n void setAllowedOrigins(policy.id, [...domains, origin]);\n } else {\n setPendingDomains((prev) => [...prev, origin]);\n }\n setDomainInput('');\n };\n\n const removeDomain = (origin: string) => {\n if (isPublished && policy) {\n void setAllowedOrigins(\n policy.id,\n domains.filter((d) => d !== origin)\n );\n } else {\n setPendingDomains((prev) => prev.filter((d) => d !== origin));\n }\n };\n\n const handlePublish = async () => {\n setLocalError(null);\n if (pendingDomains.length === 0) {\n setLocalError(\n t('bigconsole.dashboards.embed.error.noDomains', 'Add at least one allowed website domain before publishing.')\n );\n return;\n }\n if (!attested) {\n setLocalError(\n t('bigconsole.dashboards.embed.error.notAttested', 'Please confirm this dashboard is safe to be public.')\n );\n return;\n }\n await publishToWeb(dashboardId, pendingDomains, true, { theme, showTitle });\n };\n\n const handleApplyPresentation = async () => {\n if (!policy) return;\n setLocalError(null);\n const updated = await applyPresentation(policy.id, { theme, showTitle });\n if (updated) {\n setPresentationSaved(true);\n // Clear any in-flight timer so rapid re-clicks don't hide the confirmation early.\n if (savedTimerRef.current) clearTimeout(savedTimerRef.current);\n savedTimerRef.current = setTimeout(() => setPresentationSaved(false), 1500);\n }\n };\n\n const handleCopy = async (text: string) => {\n try {\n await navigator.clipboard.writeText(text);\n setCopied(true);\n setTimeout(() => setCopied(false), 1500);\n } catch {\n setLocalError(t('bigconsole.dashboards.embed.error.copyFailed', 'Could not copy — select and copy manually.'));\n }\n };\n\n const primaryBtn: React.CSSProperties = {\n padding: '8px 14px',\n borderRadius: '8px',\n border: 'none',\n background: colors.actionPrimaryBg,\n color: '#fff',\n fontSize: '13px',\n fontWeight: 600,\n cursor: 'pointer',\n };\n const ghostBtn: React.CSSProperties = {\n padding: '8px 14px',\n borderRadius: '8px',\n border: `1px solid ${colors.borderDefault}`,\n background: 'transparent',\n color: colors.textPrimary,\n fontSize: '13px',\n cursor: 'pointer',\n };\n const inputStyle: React.CSSProperties = {\n flex: 1,\n padding: '8px 10px',\n borderRadius: '8px',\n border: `1px solid ${colors.borderDefault}`,\n background: colors.bgSecondary,\n color: colors.textPrimary,\n fontSize: '13px',\n };\n const selectStyle: React.CSSProperties = {\n padding: '4px 8px',\n borderRadius: '6px',\n border: `1px solid ${colors.borderDefault}`,\n background: colors.bgSecondary,\n color: colors.textPrimary,\n fontSize: '12px',\n cursor: 'pointer',\n };\n const toggleRow: React.CSSProperties = {\n display: 'flex',\n gap: '8px',\n alignItems: 'flex-start',\n fontSize: '12px',\n color: colors.textSecondary,\n };\n\n const themeOptions = useMemo(\n () =>\n THEME_OPTION_VALUES.map((value) => ({\n value,\n label:\n value === 'light'\n ? t('bigconsole.dashboards.embed.theme.option.light', 'Light')\n : value === 'dark'\n ? t('bigconsole.dashboards.embed.theme.option.dark', 'Dark')\n : t('bigconsole.dashboards.embed.theme.option.auto', 'Auto (match viewer)'),\n })),\n [t]\n );\n\n // Presentation controls (BOFF-5735) — shared by the pre-publish and published\n // states. Local state drives both the persisted policy and the snippet `?theme=`.\n // Branding is not a control: every embed carries the \"Powered by BigConsole\"\n // footer (no white-labelling), so the owner only sees a static note about it.\n const presentationControls = (\n <div style={{ display: 'flex', flexDirection: 'column', gap: '10px' }}>\n <label style={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between', gap: '8px' }}>\n <span style={{ fontSize: '12px', color: colors.textSecondary }}>\n {t('bigconsole.dashboards.embed.theme.label', 'Theme')}\n </span>\n <select\n value={theme}\n onChange={(e) => {\n // The options are fixed, but narrow instead of casting so an\n // unexpected value can never slip into state.\n const value = e.target.value;\n if (value === 'light' || value === 'dark' || value === 'auto') {\n setTheme(value);\n }\n }}\n style={selectStyle}\n >\n {themeOptions.map((opt) => (\n <option key={opt.value} value={opt.value}>\n {opt.label}\n </option>\n ))}\n </select>\n </label>\n <label style={toggleRow}>\n <input type=\"checkbox\" checked={showTitle} onChange={(e) => setShowTitle(e.target.checked)} />\n <span>{t('bigconsole.dashboards.embed.presentation.showTitle', 'Show the dashboard title as a header')}</span>\n </label>\n <div style={{ fontSize: '11px', color: colors.textTertiary }}>\n {t(\n 'bigconsole.dashboards.embed.presentation.brandingNote',\n 'Embeds always carry a “Powered by BigConsole” footer.'\n )}\n </div>\n </div>\n );\n\n return (\n <div style={{ padding: '20px 24px' }}>\n {/* Status banner */}\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n padding: '12px 14px',\n borderRadius: '10px',\n background: colors.bgSecondary,\n marginBottom: '16px',\n }}\n >\n <div>\n <div style={{ fontSize: '14px', fontWeight: 600, color: colors.textPrimary }}>\n {t('bigconsole.dashboards.embed.heading', 'Publish to the web')}\n </div>\n <div style={{ fontSize: '12px', color: colors.textSecondary, marginTop: '2px' }}>\n {isPublished\n ? t(\n 'bigconsole.dashboards.embed.status.liveDescription',\n 'This dashboard is live. Anyone with the link on an allowed website sees its live data.'\n )\n : t(\n 'bigconsole.dashboards.embed.status.privateDescription',\n 'Embed this dashboard on your website. Viewers see live data — no login required.'\n )}\n </div>\n </div>\n <span\n style={{\n fontSize: '11px',\n fontWeight: 700,\n padding: '3px 8px',\n borderRadius: '999px',\n color: '#fff',\n background: isPublished ? colors.statusSuccessBg : colors.textTertiary,\n }}\n >\n {isPublished\n ? t('bigconsole.dashboards.embed.badge.published', 'PUBLISHED')\n : t('bigconsole.dashboards.embed.badge.private', 'PRIVATE')}\n </span>\n </div>\n\n {/* Allowed domains */}\n <div style={{ marginBottom: '16px' }}>\n <div style={{ fontSize: '12px', fontWeight: 600, color: colors.textSecondary, marginBottom: '6px' }}>\n {t('bigconsole.dashboards.embed.domains.label', 'Allowed website domains')}\n </div>\n <div style={{ display: 'flex', gap: '8px', marginBottom: '8px' }}>\n <input\n style={inputStyle}\n placeholder={t('bigconsole.dashboards.embed.domains.placeholder', 'https://yoursite.com')}\n value={domainInput}\n onChange={(e) => setDomainInput(e.target.value)}\n onKeyDown={(e) => {\n if (e.key === 'Enter') addDomain();\n }}\n />\n <button style={ghostBtn} onClick={addDomain} type=\"button\" disabled={!canManageEmbed}>\n {t('bigconsole.dashboards.embed.domains.add', 'Add')}\n </button>\n </div>\n {domains.length === 0 ? (\n <div style={{ fontSize: '12px', color: colors.textTertiary }}>\n {t(\n 'bigconsole.dashboards.embed.domains.empty',\n 'No domains yet. Only listed https domains may frame this dashboard.'\n )}\n </div>\n ) : (\n <div style={{ display: 'flex', flexDirection: 'column', gap: '6px' }}>\n {domains.map((d) => (\n <div\n key={d}\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n padding: '6px 10px',\n borderRadius: '8px',\n background: colors.bgTertiary,\n }}\n >\n <span style={{ fontSize: '13px', color: colors.textPrimary }}>{d}</span>\n {canManageEmbed && (\n <button\n style={{ ...ghostBtn, padding: '2px 8px', color: colors.statusErrorText }}\n onClick={() => removeDomain(d)}\n type=\"button\"\n >\n {t('bigconsole.dashboards.embed.domains.remove', 'Remove')}\n </button>\n )}\n </div>\n ))}\n </div>\n )}\n </div>\n\n {/* Presentation (unpublished — captured into the publish) */}\n {!isPublished && (\n <div style={{ marginBottom: '16px' }}>\n <div style={{ fontSize: '12px', fontWeight: 600, color: colors.textSecondary, marginBottom: '8px' }}>\n {t('bigconsole.dashboards.embed.presentation.heading', 'Presentation')}\n </div>\n {presentationControls}\n </div>\n )}\n\n {/* Publish CTA (unpublished) */}\n {!isPublished && (\n <div style={{ marginBottom: '8px' }}>\n <label style={{ display: 'flex', gap: '8px', alignItems: 'flex-start', marginBottom: '12px' }}>\n <input type=\"checkbox\" checked={attested} onChange={(e) => setAttested(e.target.checked)} />\n <span style={{ fontSize: '12px', color: colors.textSecondary }}>\n {t(\n 'bigconsole.dashboards.embed.attestation',\n 'I understand this makes the dashboard’s live data visible to anyone with the link, and I confirm it is safe to be public.'\n )}\n </span>\n </label>\n <button style={primaryBtn} onClick={handlePublish} disabled={loading || !canManageEmbed} type=\"button\">\n {loading\n ? t('bigconsole.dashboards.embed.publishing', 'Publishing…')\n : t('bigconsole.dashboards.embed.publish', 'Publish to web')}\n </button>\n </div>\n )}\n\n {/* Embed snippet + management (published) */}\n {isPublished && (\n <>\n {iframeSnippet ? (\n <div style={{ marginBottom: '16px' }}>\n <div style={{ marginBottom: '6px' }}>\n <span style={{ fontSize: '12px', fontWeight: 600, color: colors.textSecondary }}>\n {t('bigconsole.dashboards.embed.snippet.label', 'Embed snippet')}\n </span>\n </div>\n <textarea\n readOnly\n value={iframeSnippet}\n style={{\n width: '100%',\n minHeight: '96px',\n padding: '10px',\n borderRadius: '8px',\n border: `1px solid ${colors.borderDefault}`,\n background: colors.bgSecondary,\n color: colors.textPrimary,\n fontFamily: 'monospace',\n fontSize: '12px',\n resize: 'vertical',\n }}\n />\n <button style={{ ...ghostBtn, marginTop: '8px' }} onClick={() => handleCopy(iframeSnippet)} type=\"button\">\n {copied\n ? t('bigconsole.dashboards.embed.snippet.copied', 'Copied ✓')\n : t('bigconsole.dashboards.embed.snippet.copy', 'Copy snippet')}\n </button>\n </div>\n ) : (\n <div\n style={{\n fontSize: '12px',\n color: colors.textSecondary,\n background: colors.bgSecondary,\n borderRadius: '8px',\n padding: '10px 12px',\n marginBottom: '16px',\n }}\n >\n {t(\n 'bigconsole.dashboards.embed.snippet.alreadyActive',\n 'The embed link is already active. For security the snippet (which contains the secret key) is only shown once at publish time — use {{rotateLabel}} to generate a fresh snippet.',\n { rotateLabel: t('bigconsole.dashboards.embed.rotate', 'Rotate link') }\n )}\n </div>\n )}\n\n {/* Presentation (published — persisted + re-published to take effect) */}\n <div style={{ marginBottom: '16px' }}>\n <div style={{ fontSize: '12px', fontWeight: 600, color: colors.textSecondary, marginBottom: '8px' }}>\n {t('bigconsole.dashboards.embed.presentation.heading', 'Presentation')}\n </div>\n {presentationControls}\n <div style={{ display: 'flex', alignItems: 'center', gap: '10px', marginTop: '10px' }}>\n <button\n style={ghostBtn}\n onClick={handleApplyPresentation}\n disabled={loading || !canManageEmbed}\n type=\"button\"\n >\n {loading\n ? t('bigconsole.dashboards.embed.applying', 'Applying…')\n : t('bigconsole.dashboards.embed.apply', 'Apply changes')}\n </button>\n {presentationSaved && (\n <span style={{ fontSize: '12px', color: colors.textTertiary }}>\n {t('bigconsole.dashboards.embed.updated', 'Updated ✓')}\n </span>\n )}\n </div>\n <div style={{ fontSize: '11px', color: colors.textTertiary, marginTop: '6px' }}>\n {t(\n 'bigconsole.dashboards.embed.presentation.applyHelp',\n 'Changes apply to live embeds within a few seconds — no re-publish needed, and the embed link stays the same.'\n )}\n </div>\n </div>\n\n {/* Rotate/Unpublish are destructive management actions — hide entirely\n when the caller can't manage the embed. */}\n {canManageEmbed && (\n <div style={{ display: 'flex', gap: '8px' }}>\n <button style={ghostBtn} onClick={() => policy && rotateKey(policy.id)} disabled={loading} type=\"button\">\n {t('bigconsole.dashboards.embed.rotate', 'Rotate link')}\n </button>\n <button\n style={{ ...ghostBtn, color: colors.statusErrorText, borderColor: colors.statusErrorText }}\n onClick={() => {\n if (\n policy &&\n window.confirm(\n t(\n 'bigconsole.dashboards.embed.unpublishConfirm',\n 'Unpublish this dashboard? The embed will stop working immediately for anyone using the link.'\n )\n )\n ) {\n void unpublish(policy.id);\n }\n }}\n disabled={loading}\n type=\"button\"\n >\n {t('bigconsole.dashboards.embed.unpublish', 'Unpublish')}\n </button>\n </div>\n )}\n </>\n )}\n\n {(localError || error) && (\n <div style={{ marginTop: '12px', fontSize: '12px', color: colors.statusErrorText }}>\n {localError ?? error?.message}\n </div>\n )}\n </div>\n );\n}\n\nexport default EmbedTab;\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ShareDialog.d.ts","sourceRoot":"","sources":["../../../../../src/bigconsole/components/dashboard/ShareDialog/ShareDialog.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAmD,MAAM,OAAO,CAAC;AASxE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AA0B1D,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,mBAAmB,CAAC;IACjC,6EAA6E;IAC7E,kBAAkB,CAAC,EAAE,CAAC,UAAU,EAAE,mBAAmB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxE,+FAA+F;IAC/F,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AA4BD,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,qBAYlD;AAkuBD,eAAe,WAAW,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ShareDialog.js","names":[],"sources":["../../../../../src/bigconsole/components/dashboard/ShareDialog/ShareDialog.tsx"],"sourcesContent":["/**\n * ShareDialog Component\n *\n * Dialog for sharing dashboards with users and roles.\n */\n\nimport React, { useState, useEffect, useCallback, useRef } from 'react';\nimport {\n ResponsiveDialog,\n ResponsiveDialogContent,\n ResponsiveDialogTitle,\n ResponsiveDialogDescription,\n} from '@burdenoff/fe-libs/ui';\nimport { formatDistanceToNow } from 'date-fns';\nimport { useDashboardSharing, type DashboardShare, type SharePermission } from '../../../hooks';\nimport type { DashboardVisibility } from '../../../types';\nimport { useBigConsoleAnalytics } from '../../../hooks/useBigConsoleAnalytics';\nimport { EmbedTab } from './EmbedTab';\nimport { useShareRecipients, type ShareRecipient } from '../../../hooks/useShareRecipients';\nimport { useBigConsole, useBigConsoleBasePath } from '../../../context/BigConsoleContext';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\n\n// Semantic variables follow shell themes even though the dialog is portalled.\nconst colors = {\n bgPrimary: 'var(--color-bg-surface)',\n bgSecondary: 'var(--color-bg-sunken)',\n bgTertiary: 'var(--color-bg-canvas)',\n textPrimary: 'var(--color-text-primary)',\n textSecondary: 'var(--color-text-secondary)',\n textTertiary: 'var(--color-text-muted)',\n borderDefault: 'var(--color-border-default)',\n actionPrimaryBg: 'var(--color-action-primary-bg)',\n actionPrimaryBgHover: 'var(--color-action-primary-bgHover)',\n statusSuccessBg: 'var(--color-status-success-bg)',\n statusErrorText: 'var(--color-status-error-text)',\n};\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface ShareDialogProps {\n dashboardId: string;\n dashboardName: string;\n isOpen: boolean;\n onClose: () => void;\n /**\n * Current general-access level (`Dashboard.visibility`). The General access\n * control renders ONLY when this and `onVisibilityChange` are both supplied —\n * a selector with no known current value would be a guess, and one with no\n * handler would be a switch wired to nothing.\n */\n visibility?: DashboardVisibility;\n /** Persist a new general-access level. Resolves once the write completes. */\n onVisibilityChange?: (visibility: DashboardVisibility) => Promise<void>;\n /** False when the actor lacks `bigconsole-dashboard:update`; the control is then read-only. */\n canChangeVisibility?: boolean;\n}\n\n/** General-access levels, in widening order. */\nconst VISIBILITY_OPTIONS: { value: DashboardVisibility; label: string; description: string }[] = [\n { value: 'PRIVATE', label: 'Private', description: 'Only people added below' },\n { value: 'WORKSPACE', label: 'Workspace', description: 'Anyone in this workspace' },\n { value: 'PUBLIC', label: 'Public', description: 'Anyone with the link' },\n];\n\n// ============================================================================\n// Constants\n// ============================================================================\n\n/**\n * Permission options as per spec (03-graphql-contract.md)\n * Spec values: view, edit\n */\nconst PERMISSION_OPTIONS: { value: SharePermission; label: string; description: string }[] = [\n { value: 'VIEW', label: 'View', description: 'Can view the dashboard' },\n { value: 'EDIT', label: 'Edit', description: 'Can edit widgets, layout, and share' },\n];\n\n// Use shared semantic tokens for portal rendering\n\n// ============================================================================\n// Component\n// ============================================================================\n\nexport function ShareDialog(props: ShareDialogProps) {\n const { workspaceId, currentUser } = useBigConsole();\n const returnFocusRef = useRef<HTMLElement | null>(null);\n // Remount sharing state at the authorization boundary, including in-flight ACL reads.\n // The existing sharing hook belongs to a single actor/workspace/dashboard.\n return (\n <ShareDialogContent\n key={`${currentUser?.id ?? ''}|${workspaceId ?? ''}|${props.dashboardId}`}\n {...props}\n returnFocusRef={returnFocusRef}\n />\n );\n}\n\nfunction ShareDialogContent({\n dashboardId,\n dashboardName,\n isOpen,\n onClose,\n visibility,\n onVisibilityChange,\n canChangeVisibility = true,\n returnFocusRef,\n}: ShareDialogProps & { returnFocusRef: React.RefObject<HTMLElement | null> }) {\n const { t } = useI18n();\n const {\n shares,\n loading,\n error: sharingError,\n fetchShares,\n shareWithUser,\n shareWithGroup,\n updateShare,\n revokeShare,\n revokeAllShares,\n } = useDashboardSharing();\n const emitBigConsoleEvent = useBigConsoleAnalytics();\n\n const [searchQuery, setSearchQuery] = useState('');\n const [selectedRecipient, setSelectedRecipient] = useState<ShareRecipient | null>(null);\n const [selectedPermission, setSelectedPermission] = useState<SharePermission>('VIEW');\n const [shareLink, setShareLink] = useState('');\n const [copySuccess, setCopySuccess] = useState(false);\n const [activeTab, setActiveTab] = useState<'people' | 'embed'>('people');\n const [visibilitySaving, setVisibilitySaving] = useState(false);\n const [visibilityError, setVisibilityError] = useState<string | null>(null);\n const [shareError, setShareError] = useState<string | null>(null);\n const directory = useShareRecipients(isOpen, searchQuery);\n const basePath = useBigConsoleBasePath();\n useEffect(() => {\n let cancelled = false;\n void Promise.resolve().then(() => {\n if (cancelled) return;\n setSelectedRecipient(null);\n setSearchQuery('');\n setShareError(null);\n });\n return () => {\n cancelled = true;\n };\n }, [directory.owner, dashboardId, isOpen]);\n\n // Fetch shares when dialog opens\n useEffect(() => {\n if (isOpen && dashboardId) {\n fetchShares(dashboardId);\n // Generate share link\n const url = new URL(`${basePath}/dashboards/${encodeURIComponent(dashboardId)}`, window.location.origin);\n const context = new URLSearchParams(window.location.search);\n for (const key of ['org', 'workspace', 'project', 'tenant']) {\n const value = context.get(key);\n if (value) url.searchParams.set(key, value);\n }\n // The selected workspace remains authoritative when host navigation omits context parameters.\n if (directory.workspaceId) url.searchParams.set('workspace', directory.workspaceId);\n setShareLink(url.toString());\n }\n }, [isOpen, dashboardId, fetchShares, basePath, directory.workspaceId]);\n\n // Handle share - per spec: only USER and GROUP recipient types\n const handleShare = useCallback(async () => {\n if (!selectedRecipient || loading || selectedRecipient.workspaceId !== directory.workspaceId) return;\n setShareError(null);\n\n emitBigConsoleEvent('bigconsole.dashboard.share_clicked', {\n dashboardId,\n permission: selectedPermission,\n recipientType: selectedRecipient.type,\n });\n\n let share: DashboardShare | null = null;\n if (selectedRecipient.type === 'USER') {\n share = await shareWithUser(dashboardId, selectedRecipient.id, selectedPermission);\n } else if (selectedRecipient.type === 'GROUP') {\n share = await shareWithGroup(dashboardId, selectedRecipient.id, selectedPermission);\n }\n\n if (share) {\n emitBigConsoleEvent('bigconsole.dashboard.shared', {\n dashboardId,\n permission: selectedPermission,\n recipientType: selectedRecipient.type,\n });\n }\n\n if (!share) {\n setShareError(\n t('bigconsole.share.error.grantFailed', 'Access could not be granted. Review the recipient and try again.')\n );\n return;\n }\n setSelectedRecipient(null);\n setSearchQuery('');\n }, [\n directory.workspaceId,\n t,\n loading,\n dashboardId,\n emitBigConsoleEvent,\n selectedRecipient,\n selectedPermission,\n shareWithGroup,\n shareWithUser,\n ]);\n\n // Handle update permission\n const handleUpdatePermission = useCallback(\n async (shareId: string, newPermission: SharePermission) => {\n await updateShare({ id: shareId, permission: newPermission });\n },\n [updateShare]\n );\n\n // Handle revoke\n const handleRevoke = useCallback(\n async (shareId: string) => {\n if (window.confirm('Are you sure you want to revoke this access?')) {\n await revokeShare(shareId);\n }\n },\n [revokeShare]\n );\n\n // Handle revoke all\n const handleRevokeAll = useCallback(async () => {\n if (window.confirm('Are you sure you want to revoke all shared access?')) {\n await revokeAllShares(dashboardId);\n }\n }, [dashboardId, revokeAllShares]);\n\n const handleVisibilityChange = useCallback(\n async (next: DashboardVisibility) => {\n if (!onVisibilityChange || next === visibility) return;\n setVisibilityError(null);\n setVisibilitySaving(true);\n try {\n await onVisibilityChange(next);\n } catch (err) {\n // Surface the failure: the select snaps back to `visibility`, which the\n // parent has not changed, so a silent catch would look like a success.\n setVisibilityError(err instanceof Error ? err.message : 'Could not update general access.');\n } finally {\n setVisibilitySaving(false);\n }\n },\n [onVisibilityChange, visibility]\n );\n\n // Copy link to clipboard\n const handleCopyLink = useCallback(async () => {\n try {\n await navigator.clipboard.writeText(shareLink);\n setCopySuccess(true);\n setTimeout(() => setCopySuccess(false), 2000);\n } catch {\n setShareError(\n t('bigconsole.share.error.copyFailed', 'The link could not be copied. Select the link and copy it manually.')\n );\n }\n }, [shareLink, t]);\n\n const searchResults = directory.results;\n\n if (!isOpen) return null;\n\n return (\n <ResponsiveDialog\n open={isOpen}\n onOpenChange={(open) => {\n if (!open) onClose();\n }}\n >\n <ResponsiveDialogContent\n showCloseButton={false}\n data-testid=\"share-dialog\"\n className=\"flex w-full flex-col gap-0 overflow-hidden rounded-card p-0 sm:w-[calc(100%-2rem)] sm:max-w-[520px]\"\n onOpenAutoFocus={() => {\n const active = document.activeElement;\n // ResponsiveDialog swaps implementations at the breakpoint while open.\n // Keep the original external trigger rather than a control in the old dialog.\n if (active instanceof HTMLElement && active !== document.body && !active.closest('[role=dialog]')) {\n returnFocusRef.current = active;\n }\n }}\n onCloseAutoFocus={(event) => {\n event.preventDefault();\n if (returnFocusRef.current?.isConnected) returnFocusRef.current.focus();\n }}\n style={{ maxWidth: '520px', maxHeight: '85dvh', backgroundColor: colors.bgPrimary, color: colors.textPrimary }}\n >\n {/* Header */}\n <div\n style={{\n flexShrink: 0,\n padding: '20px 24px',\n borderBottom: `1px solid ${colors.borderDefault}`,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n backgroundColor: colors.bgPrimary,\n }}\n >\n <div>\n <ResponsiveDialogTitle style={{ margin: 0, fontSize: '18px', fontWeight: 600, color: colors.textPrimary }}>\n Share Dashboard\n </ResponsiveDialogTitle>\n <ResponsiveDialogDescription style={{ margin: '4px 0 0', fontSize: '13px', color: colors.textSecondary }}>\n {dashboardName}\n </ResponsiveDialogDescription>\n </div>\n <button\n type=\"button\"\n aria-label={t('bigconsole.share.closeLabel', 'Close share dialog')}\n onClick={onClose}\n style={{\n background: 'none',\n border: 'none',\n fontSize: '24px',\n cursor: 'pointer',\n color: colors.textSecondary,\n padding: '4px',\n lineHeight: 1,\n }}\n >\n ×\n </button>\n </div>\n\n {/* Tabs */}\n <div\n role=\"tablist\"\n aria-label=\"Share options\"\n style={{\n flexShrink: 0,\n display: 'flex',\n gap: '4px',\n padding: '0 24px',\n borderBottom: `1px solid ${colors.borderDefault}`,\n backgroundColor: colors.bgPrimary,\n }}\n >\n {(['people', 'embed'] as const).map((tab) => (\n <button\n key={tab}\n type=\"button\"\n role=\"tab\"\n aria-selected={activeTab === tab}\n onClick={() => setActiveTab(tab)}\n style={{\n padding: '10px 12px',\n background: 'none',\n border: 'none',\n borderBottom: `2px solid ${activeTab === tab ? colors.actionPrimaryBg : 'transparent'}`,\n color: activeTab === tab ? colors.textPrimary : colors.textSecondary,\n fontSize: '13px',\n fontWeight: 600,\n cursor: 'pointer',\n }}\n >\n {tab === 'people' ? 'People' : 'Publish to web'}\n </button>\n ))}\n </div>\n\n {/* Publish-to-web tab */}\n {activeTab === 'embed' && (\n <div className=\"min-h-0 flex-1 overflow-y-auto\" style={{ backgroundColor: colors.bgPrimary }}>\n <EmbedTab dashboardId={dashboardId} colors={colors} />\n </div>\n )}\n\n {/* People tab (existing content) */}\n {activeTab === 'people' && (\n <div\n className=\"flex min-h-0 flex-1 flex-col gap-section-gap overflow-y-auto p-card-padding\"\n style={{ backgroundColor: colors.bgPrimary }}\n >\n {/* General access — WHO the link works for. It leads because the\n link below is only as useful as this setting allows: copying a\n URL from a PRIVATE board hands over something the recipient\n cannot open. Backed by `Dashboard.visibility` +\n `BigConsoleUpdateDashboardInput.visibility`. */}\n {visibility && onVisibilityChange && (\n <section aria-labelledby=\"share-visibility-heading\">\n <h3\n id=\"share-visibility-heading\"\n className=\"mb-form-gap text-sm font-semibold\"\n style={{ color: colors.textPrimary }}\n >\n General access\n </h3>\n <div style={{ display: 'flex', alignItems: 'center', gap: '8px', flexWrap: 'wrap' }}>\n <select\n aria-label=\"General access\"\n data-testid=\"share-visibility\"\n value={visibility}\n disabled={!canChangeVisibility || visibilitySaving}\n onChange={(e) => void handleVisibilityChange(e.target.value as DashboardVisibility)}\n style={{\n padding: '10px 12px',\n border: `1px solid ${colors.borderDefault}`,\n borderRadius: '6px',\n fontSize: '13px',\n backgroundColor: colors.bgPrimary,\n color: colors.textPrimary,\n cursor: !canChangeVisibility || visibilitySaving ? 'not-allowed' : 'pointer',\n opacity: !canChangeVisibility || visibilitySaving ? 0.6 : 1,\n }}\n >\n {VISIBILITY_OPTIONS.map((opt) => (\n <option key={opt.value} value={opt.value}>\n {opt.label}\n </option>\n ))}\n </select>\n <span style={{ fontSize: '12px', color: colors.textSecondary }}>\n {VISIBILITY_OPTIONS.find((opt) => opt.value === visibility)?.description}\n </span>\n </div>\n {!canChangeVisibility && (\n <p style={{ margin: '6px 0 0', fontSize: '11px', color: colors.textSecondary }}>\n You don&apos;t have permission to change general access.\n </p>\n )}\n {visibilityError && (\n <p style={{ margin: '6px 0 0', fontSize: '11px', color: colors.statusErrorText }}>\n {visibilityError}\n </p>\n )}\n </section>\n )}\n\n {/* Share Link Section — the fastest way to share, so it leads */}\n <section aria-labelledby=\"share-link-heading\">\n <h3\n id=\"share-link-heading\"\n className=\"mb-form-gap text-sm font-semibold\"\n style={{ color: colors.textPrimary }}\n >\n Share link\n </h3>\n <div style={{ display: 'flex', gap: '8px', flexWrap: 'wrap' }}>\n <input\n type=\"text\"\n value={shareLink}\n readOnly\n style={{\n flex: 1,\n padding: '10px 12px',\n border: `1px solid ${colors.borderDefault}`,\n borderRadius: '6px',\n fontSize: '13px',\n backgroundColor: colors.bgSecondary,\n color: colors.textPrimary,\n }}\n />\n <button\n onClick={handleCopyLink}\n style={{\n padding: '10px 16px',\n backgroundColor: copySuccess ? colors.statusSuccessBg : colors.actionPrimaryBg,\n color: 'var(--color-action-primary-text)',\n border: 'none',\n borderRadius: '6px',\n cursor: 'pointer',\n fontSize: '13px',\n fontWeight: 500,\n minWidth: '80px',\n }}\n >\n {copySuccess ? 'Copied!' : 'Copy'}\n </button>\n </div>\n </section>\n\n {(sharingError || shareError) && (\n <p role=\"alert\" style={{ color: colors.statusErrorText }}>\n {shareError ||\n t('bigconsole.share.error.loadFailed', 'Dashboard access could not be loaded or updated. Try again.')}\n </p>\n )}\n {/* Add People Section */}\n <section aria-labelledby=\"share-invite-heading\">\n <h3\n id=\"share-invite-heading\"\n className=\"mb-form-gap text-sm font-semibold\"\n style={{ color: colors.textPrimary }}\n >\n Invite people\n </h3>\n <p style={{ color: colors.textSecondary, fontSize: '13px', marginBottom: '8px' }}>\n {t(\n 'bigconsole.share.directory.scopeHint',\n 'Only members and groups from the current workspace are listed.'\n )}\n </p>\n {directory.loading && (\n <p role=\"status\">{t('bigconsole.share.directory.loading', 'Loading workspace recipients…')}</p>\n )}\n {directory.error && (\n <div role=\"alert\">\n <p>\n {t(\n 'bigconsole.share.directory.loadFailed',\n 'The workspace directory could not be loaded. Your access may not allow directory lookup.'\n )}\n </p>\n <button type=\"button\" onClick={directory.retry}>\n {t('bigconsole.share.directory.retry', 'Retry directory')}\n </button>\n </div>\n )}\n {searchQuery &&\n !selectedRecipient &&\n !directory.loading &&\n !directory.error &&\n searchResults.length === 0 && (\n <p role=\"status\">\n {t('bigconsole.share.directory.empty', 'No matching workspace members or groups.')}\n </p>\n )}\n {directory.hasMoreMembers && (\n <button type=\"button\" disabled={directory.loading} onClick={directory.loadMoreMembers}>\n {t('bigconsole.share.directory.loadMore', 'Load more workspace members')}\n </button>\n )}\n {directory.hasMoreGroups && (\n <p>\n {t(\n 'bigconsole.share.directory.moreGroups',\n 'More groups match. Narrow your search to find a specific group.'\n )}\n </p>\n )}\n <div style={{ display: 'flex', gap: '8px', marginBottom: '8px', flexWrap: 'wrap' }}>\n <div style={{ flex: 1, position: 'relative' }}>\n <input\n type=\"text\"\n value={selectedRecipient ? selectedRecipient.name : searchQuery}\n onChange={(e) => {\n setSearchQuery(e.target.value);\n setSelectedRecipient(null);\n }}\n aria-label={t('bigconsole.share.directory.searchLabel', 'Search workspace members and groups')}\n placeholder={t(\n 'bigconsole.share.directory.searchPlaceholder',\n 'Search workspace members or groups...'\n )}\n style={{\n width: '100%',\n padding: '10px 12px',\n border: `1px solid ${colors.borderDefault}`,\n borderRadius: '6px',\n fontSize: '13px',\n backgroundColor: colors.bgPrimary,\n color: colors.textPrimary,\n }}\n />\n {/* Search Results Dropdown */}\n {searchQuery && !selectedRecipient && searchResults.length > 0 && (\n <div\n style={{\n position: 'absolute',\n top: '100%',\n left: 0,\n right: 0,\n marginTop: '4px',\n backgroundColor: colors.bgPrimary,\n border: `1px solid ${colors.borderDefault}`,\n borderRadius: '6px',\n boxShadow: 'var(--shadow-elevation-3)',\n zIndex: 100001,\n maxHeight: '200px',\n overflowY: 'auto',\n }}\n >\n {searchResults.map((result) => (\n <button\n key={`${result.type}:${result.id}`}\n type=\"button\"\n onClick={() => setSelectedRecipient(result)}\n style={{\n display: 'block',\n width: '100%',\n padding: '10px 12px',\n textAlign: 'left',\n backgroundColor: 'transparent',\n border: 'none',\n cursor: 'pointer',\n borderBottom: `1px solid ${colors.borderDefault}`,\n }}\n >\n <div style={{ fontSize: '13px', fontWeight: 500, color: colors.textPrimary }}>\n {result.name}\n </div>\n {result.email && (\n <div style={{ fontSize: '11px', color: colors.textSecondary }}>{result.email}</div>\n )}\n <span\n style={{\n fontSize: '10px',\n color: colors.textTertiary,\n textTransform: 'uppercase',\n }}\n >\n {result.type}\n </span>\n </button>\n ))}\n </div>\n )}\n </div>\n <select\n aria-label={t('bigconsole.share.permissionLabel', 'Access permission')}\n value={selectedPermission}\n onChange={(e) => setSelectedPermission(e.target.value as SharePermission)}\n style={{\n padding: '10px 12px',\n border: `1px solid ${colors.borderDefault}`,\n borderRadius: '6px',\n fontSize: '13px',\n backgroundColor: colors.bgPrimary,\n color: colors.textPrimary,\n }}\n >\n {PERMISSION_OPTIONS.map((opt) => (\n <option key={opt.value} value={opt.value}>\n {opt.label}\n </option>\n ))}\n </select>\n <button\n onClick={handleShare}\n disabled={!selectedRecipient || loading || selectedRecipient.workspaceId !== directory.workspaceId}\n style={{\n padding: '10px 16px',\n backgroundColor: selectedRecipient ? colors.actionPrimaryBg : colors.bgTertiary,\n color: selectedRecipient ? 'var(--color-action-primary-text)' : colors.textSecondary,\n border: 'none',\n borderRadius: '6px',\n cursor: selectedRecipient ? 'pointer' : 'not-allowed',\n fontSize: '13px',\n fontWeight: 500,\n }}\n >\n Share\n </button>\n </div>\n </section>\n\n {/* Current Shares */}\n <section aria-labelledby=\"share-access-heading\">\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n flexWrap: 'wrap',\n gap: '8px',\n marginBottom: '12px',\n }}\n >\n <h3 id=\"share-access-heading\" className=\"text-sm font-semibold\" style={{ color: colors.textPrimary }}>\n People with access ({shares.length})\n </h3>\n {shares.length > 0 && (\n <button\n onClick={handleRevokeAll}\n style={{\n padding: '4px 8px',\n backgroundColor: 'transparent',\n color: colors.statusErrorText,\n border: 'none',\n cursor: 'pointer',\n fontSize: '12px',\n }}\n >\n Revoke All\n </button>\n )}\n </div>\n\n {loading && shares.length === 0 ? (\n <p style={{ color: colors.textSecondary, fontSize: '13px' }}>Loading...</p>\n ) : shares.length === 0 ? (\n <p style={{ color: colors.textSecondary, fontSize: '13px' }}>\n No one has access to this dashboard yet.\n </p>\n ) : (\n <div style={{ display: 'flex', flexDirection: 'column', gap: '8px' }}>\n {shares.map((share) => (\n <ShareItem\n key={share.id}\n share={share}\n onUpdatePermission={handleUpdatePermission}\n onRevoke={handleRevoke}\n colors={colors}\n />\n ))}\n </div>\n )}\n </section>\n </div>\n )}\n </ResponsiveDialogContent>\n </ResponsiveDialog>\n );\n}\n\n// ============================================================================\n// ShareItem Sub-component\n// ============================================================================\n\ninterface ShareItemProps {\n share: DashboardShare;\n onUpdatePermission: (shareId: string, permission: SharePermission) => void;\n onRevoke: (shareId: string) => void;\n colors: typeof colors;\n}\n\n/**\n * Access window for one share.\n *\n * `expiresAt` is selected by DashboardShareFields on every share this dialog\n * loads, but the row never said whether the access it lists ends — so a share\n * that lapsed yesterday looked identical to a permanent one. Expired shares are\n * called out explicitly: the backend leaves the row in place, so \"expired\" is a\n * state the reader has to be told about, not one they can infer from absence.\n */\nfunction describeExpiry(expiresAt: string | undefined): { label: string; expired: boolean } {\n if (!expiresAt) return { label: 'No expiry', expired: false };\n const date = new Date(expiresAt);\n if (Number.isNaN(date.getTime())) return { label: 'No expiry', expired: false };\n if (date.getTime() <= Date.now()) {\n return { label: `Expired ${formatDistanceToNow(date, { addSuffix: true })}`, expired: true };\n }\n return { label: `Expires ${formatDistanceToNow(date, { addSuffix: true })}`, expired: false };\n}\n\nfunction ShareItem({ share, onUpdatePermission, onRevoke, colors }: ShareItemProps) {\n const expiry = describeExpiry(share.expiresAt);\n\n return (\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n padding: '10px 12px',\n backgroundColor: colors.bgSecondary,\n borderRadius: '6px',\n }}\n >\n <div style={{ display: 'flex', alignItems: 'center', gap: '10px' }}>\n <div\n style={{\n width: '36px',\n height: '36px',\n borderRadius: '50%',\n backgroundColor: colors.actionPrimaryBg,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n color: 'var(--color-action-primary-text)',\n fontWeight: 600,\n fontSize: '14px',\n }}\n >\n {share.recipientType === 'USER' ? 'U' : 'R'}\n </div>\n <div>\n <div style={{ fontSize: '13px', fontWeight: 500, color: colors.textPrimary }}>{share.recipientId}</div>\n <div style={{ fontSize: '11px', color: colors.textSecondary }}>\n {share.recipientType} - Shared {new Date(share.createdAt).toLocaleDateString()}\n </div>\n </div>\n </div>\n <div style={{ display: 'flex', alignItems: 'center', gap: '8px', flexWrap: 'wrap' }}>\n <span\n data-testid=\"share-expiry\"\n title={share.expiresAt ? new Date(share.expiresAt).toLocaleString() : 'Access does not expire'}\n style={{\n fontSize: '11px',\n padding: '4px 8px',\n borderRadius: '999px',\n whiteSpace: 'nowrap',\n backgroundColor: colors.bgTertiary,\n color: expiry.expired ? colors.statusErrorText : colors.textSecondary,\n fontWeight: expiry.expired ? 600 : 400,\n }}\n >\n {expiry.label}\n </span>\n <select\n value={share.permission}\n onChange={(e) => onUpdatePermission(share.id, e.target.value as SharePermission)}\n style={{\n padding: '6px 10px',\n border: `1px solid ${colors.borderDefault}`,\n borderRadius: '4px',\n fontSize: '12px',\n backgroundColor: colors.bgPrimary,\n color: colors.textPrimary,\n }}\n >\n {PERMISSION_OPTIONS.map((opt) => (\n <option key={opt.value} value={opt.value}>\n {opt.label}\n </option>\n ))}\n </select>\n <button\n onClick={() => onRevoke(share.id)}\n style={{\n padding: '6px 10px',\n backgroundColor: 'transparent',\n color: colors.statusErrorText,\n border: `1px solid ${colors.statusErrorText}`,\n borderRadius: '4px',\n cursor: 'pointer',\n fontSize: '12px',\n }}\n >\n Revoke\n </button>\n </div>\n </div>\n );\n}\n\nexport default ShareDialog;\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/bigconsole/components/dashboard/ShareDialog/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"StoreTemplatePicker.d.ts","sourceRoot":"","sources":["../../../../src/bigconsole/components/dashboard/StoreTemplatePicker.tsx"],"names":[],"mappings":"AAYA,OAAO,EAAE,KAAK,EAAE,EAAQ,MAAM,OAAO,CAAC;AAEtC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAErF,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,sBAAsB,EAAE,CAAC;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,EAAE,CAAC,QAAQ,EAAE,sBAAsB,KAAK,IAAI,CAAC;CACtD;AA+BD,eAAO,MAAM,mBAAmB,EAAE,EAAE,CAAC,wBAAwB,CAyK3D,CAAC;AAEH,eAAe,mBAAmB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"StoreTemplatePicker.js","names":[],"sources":["../../../../src/bigconsole/components/dashboard/StoreTemplatePicker.tsx"],"sourcesContent":["/**\n * StoreTemplatePicker\n *\n * Renders dashboard templates published to the global store as selectable\n * cards. Replaces the workspace-table-backed TemplatePicker for the \"From\n * Template\" flow, which surfaced nothing because no workspace templates have\n * ever been authored.\n *\n * @module bigconsole/components/dashboard/StoreTemplatePicker\n */\nimport { Badge, Spinner } from '@burdenoff/fe-libs/ui';\nimport { Download, LayoutTemplate, Sparkles, Star } from 'lucide-react';\nimport { type FC, memo } from 'react';\n\nimport type { StoreDashboardTemplate } from '../../hooks/useStoreDashboardTemplates';\n\nexport interface StoreTemplatePickerProps {\n templates: StoreDashboardTemplate[];\n loading: boolean;\n error: string | null;\n selectedTemplateId?: string;\n onSelect: (template: StoreDashboardTemplate) => void;\n}\n\nconst cardBase: React.CSSProperties = {\n textAlign: 'left',\n padding: 'var(--space-cardPadding)',\n borderRadius: 'var(--radius-card)',\n border: '1px solid var(--color-border-default)',\n background: 'var(--color-bg-surface)',\n cursor: 'pointer',\n display: 'flex',\n flexDirection: 'column',\n gap: 'var(--space-controlGap)',\n transition: 'all 0.15s ease',\n};\n\n/**\n * `StoreProduct.category` is a free-form String column, so publishers write it\n * either as prose (\"Operations\") or as a machine constant (\"SALES_PIPELINE\").\n * Only the machine form is rewritten; anything already written for humans is\n * left exactly as the publisher entered it.\n */\nfunction formatCategoryLabel(raw: string): string {\n if (!/^[A-Z0-9_]+$/.test(raw)) return raw;\n return raw\n .toLowerCase()\n .split('_')\n .filter(Boolean)\n .map((word) => word.charAt(0).toUpperCase() + word.slice(1))\n .join(' ');\n}\n\nexport const StoreTemplatePicker: FC<StoreTemplatePickerProps> = memo(function StoreTemplatePicker({\n templates,\n loading,\n error,\n selectedTemplateId,\n onSelect,\n}) {\n if (loading) {\n return (\n <div style={{ display: 'flex', justifyContent: 'center', padding: 'var(--space-pagePadding)' }}>\n <Spinner />\n </div>\n );\n }\n\n if (error) {\n return (\n <div style={{ padding: 'var(--space-cardPadding)', color: 'var(--color-status-error-text)' }}>\n Could not load templates from the store: {error}\n </div>\n );\n }\n\n if (templates.length === 0) {\n return (\n <div\n style={{\n padding: 'var(--space-pagePadding)',\n textAlign: 'center',\n color: 'var(--color-text-muted)',\n }}\n >\n <LayoutTemplate\n style={{\n height: 'var(--size-icon-lg)',\n width: 'var(--size-icon-lg)',\n margin: '0 auto var(--space-formGap)',\n }}\n />\n <div>No dashboard templates published yet</div>\n <div style={{ fontSize: 'var(--font-size-body-sm)', marginTop: 'var(--space-iconGap)' }}>\n Templates published to the store will appear here.\n </div>\n </div>\n );\n }\n\n return (\n <div\n style={{\n display: 'grid',\n gridTemplateColumns: 'repeat(auto-fill, minmax(min(220px, 100%), 1fr))',\n gap: 'var(--space-formGap)',\n }}\n >\n {templates.map((template) => {\n const selected = template.id === selectedTemplateId;\n return (\n <button\n key={template.id}\n type=\"button\"\n onClick={() => onSelect(template)}\n aria-pressed={selected}\n style={{\n ...cardBase,\n // Selection needs to survive a glance across a 900px grid: brand\n // border + ring + tinted surface, not a 1-step elevation alone.\n borderColor: selected ? 'var(--color-action-primary-border)' : 'var(--color-border-subtle)',\n backgroundColor: selected ? 'var(--color-bg-accentSubtle)' : 'var(--color-bg-surface)',\n boxShadow: selected ? '0 0 0 2px var(--color-action-primary-bg)' : 'none',\n }}\n >\n <div style={{ display: 'flex', alignItems: 'center', gap: 'var(--space-iconGap)' }}>\n <LayoutTemplate style={{ height: 'var(--size-icon-sm)', width: 'var(--size-icon-sm)', flexShrink: 0 }} />\n <span style={{ fontWeight: 'var(--font-weight-medium)', minWidth: 0 }}>{template.name}</span>\n {/* `featured` ships on every browseStore product and was dropped\n on the floor — it is the store's own ranking signal and the one\n thing that tells a first-time author where to start. */}\n {template.featured && (\n <span\n data-testid=\"template-featured\"\n title=\"Featured in the store\"\n style={{\n marginLeft: 'auto',\n display: 'inline-flex',\n alignItems: 'center',\n gap: '2px',\n flexShrink: 0,\n padding: '2px 6px',\n borderRadius: 'var(--radius-pill)',\n backgroundColor: 'var(--color-status-warning-bgSubtle)',\n color: 'var(--color-status-warning-text)',\n fontSize: 'var(--font-size-xs)',\n fontWeight: 'var(--font-weight-semibold)',\n textTransform: 'uppercase',\n letterSpacing: '0.02em',\n }}\n >\n <Sparkles style={{ height: '10px', width: '10px' }} aria-hidden=\"true\" />\n Featured\n </span>\n )}\n </div>\n\n <div\n style={{\n fontSize: 'var(--font-size-body-sm)',\n color: 'var(--color-text-muted)',\n display: '-webkit-box',\n WebkitLineClamp: 2,\n WebkitBoxOrient: 'vertical',\n overflow: 'hidden',\n }}\n >\n {template.description || 'No description provided'}\n </div>\n\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n gap: 'var(--space-controlGap)',\n marginTop: 'auto',\n flexWrap: 'wrap',\n // `--font-size-body-xs` does not exist in the token build — using it\n // drops the declaration and the row silently inherits body size.\n fontSize: 'var(--font-size-xs)',\n color: 'var(--color-text-muted)',\n }}\n >\n {template.requiresPurchase ? (\n <Badge variant=\"secondary\">${template.price}</Badge>\n ) : (\n <Badge variant=\"secondary\">Free</Badge>\n )}\n {/* `category` is fetched by BrowseDashboardTemplates and was never\n shown; it is what makes a wall of template cards scannable. */}\n {template.category && (\n <span\n data-testid=\"template-category\"\n style={{\n padding: '2px 6px',\n borderRadius: 'var(--radius-pill)',\n backgroundColor: 'var(--color-bg-sunken)',\n color: 'var(--color-text-secondary)',\n whiteSpace: 'nowrap',\n }}\n >\n {formatCategoryLabel(template.category)}\n </span>\n )}\n {template.downloads > 0 && (\n <span style={{ display: 'inline-flex', alignItems: 'center', gap: '2px' }}>\n <Download style={{ height: '12px', width: '12px' }} />\n {template.downloads}\n </span>\n )}\n {template.rating ? (\n <span style={{ display: 'inline-flex', alignItems: 'center', gap: '2px' }}>\n <Star style={{ height: '12px', width: '12px' }} />\n {template.rating.toFixed(1)}\n </span>\n ) : null}\n </div>\n </button>\n );\n })}\n </div>\n );\n});\n\nexport default StoreTemplatePicker;\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"TemplateInstallOptions.d.ts","sourceRoot":"","sources":["../../../../src/bigconsole/components/dashboard/TemplateInstallOptions.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAEvF,wBAAgB,sBAAsB,CAAC,EACrC,OAAO,EACP,QAAQ,EACR,eAAe,EACf,WAAW,EACX,aAAa,EACb,QAAQ,GACT,EAAE;IACD,OAAO,EAAE,wBAAwB,CAAC;IAClC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACpD,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACtD,QAAQ,EAAE,OAAO,CAAC;CACnB,+BAgNA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"TemplateInstallOptions.js","names":[],"sources":["../../../../src/bigconsole/components/dashboard/TemplateInstallOptions.tsx"],"sourcesContent":["import { Input } from '@burdenoff/fe-libs/ui';\nimport { useEffect, useId, useRef, useState } from 'react';\nimport { usePermissions } from '@burdenoff/fe-libs/shared/providers/shell/PermissionProvider';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport { BIGCONSOLE_PERMISSIONS } from '../../../constants/permissions';\nimport { useApolloClient } from '@apollo/client/react';\nimport { useActiveContext } from '@burdenoff/fe-libs/shared/providers/shell/ActiveContextProvider';\nimport { ListDataSinksDocument, type ListDataSinksQuery } from '../../../generated/wspace-operations';\nimport type { DashboardTemplateContent } from '../../hooks/useStoreDashboardTemplates';\n\nexport function TemplateInstallOptions({\n content,\n bindings,\n onBindingChange,\n inputValues,\n onInputChange,\n disabled,\n}: {\n content: DashboardTemplateContent;\n bindings: Record<string, string>;\n onBindingChange: (slot: string, id: string) => void;\n inputValues: Record<string, unknown>;\n onInputChange: (name: string, value: unknown) => void;\n disabled: boolean;\n}) {\n const prefix = useId();\n const { t } = useI18n();\n const client = useApolloClient();\n const { workspaceId } = useActiveContext();\n const { hasPermission, isLoading: permissionsLoading } = usePermissions();\n const canRead = !permissionsLoading && hasPermission(BIGCONSOLE_PERMISSIONS.DATASINK_READ);\n const hasSlots = content.requiredDataSinks.length > 0;\n const owner = `${workspaceId}:${canRead}:${hasSlots}`;\n const ownerRef = useRef(owner);\n ownerRef.current = owner;\n const [retry, setRetry] = useState(0);\n const [page, setPage] = useState<{ owner: string; cursor?: string } | null>(null);\n const cursor = page?.owner === owner ? page.cursor : undefined;\n const [result, setResult] = useState<{\n owner: string;\n data?: ListDataSinksQuery;\n error?: boolean;\n loading?: boolean;\n } | null>(null);\n useEffect(() => {\n setPage(null);\n setResult(null);\n }, [owner]);\n useEffect(() => {\n let cancelled = false;\n if (!workspaceId || !hasSlots || !canRead) return;\n setResult((previous) => ({ ...previous, owner, loading: true, error: false }));\n void client\n .query<ListDataSinksQuery>({\n query: ListDataSinksDocument,\n variables: { isActive: true, first: 100, ...(cursor ? { after: cursor } : {}) },\n fetchPolicy: 'network-only',\n })\n .then((response) => {\n if (cancelled || ownerRef.current !== owner) return;\n setResult((previous) => {\n const incoming = response.data;\n if (!incoming) return { owner, error: true, loading: false };\n const previousEdges = cursor && previous?.owner === owner ? (previous.data?.listDataSinks.edges ?? []) : [];\n const edges = [\n ...new Map(\n [...previousEdges, ...incoming.listDataSinks.edges].map((edge) => [edge.node.id, edge])\n ).values(),\n ];\n return { owner, data: { ...incoming, listDataSinks: { ...incoming.listDataSinks, edges } }, loading: false };\n });\n })\n .catch(() => {\n if (!cancelled && ownerRef.current === owner)\n setResult((previous) => ({ ...previous, owner, error: true, loading: false }));\n });\n return () => {\n cancelled = true;\n };\n }, [client, workspaceId, hasSlots, canRead, owner, cursor, retry]);\n const owned = result?.owner === owner ? result : null;\n const loading = Boolean(workspaceId && canRead && hasSlots && (!owned || owned.loading));\n const error = owned?.error;\n const available = owned?.data?.listDataSinks.edges.map((edge) => edge.node).filter((sink) => sink.isActive) ?? [];\n const selectStyle = {\n width: '100%',\n padding: 'var(--space-controlGap)',\n background: 'var(--color-bg-surface)',\n color: 'var(--color-text-primary)',\n border: '1px solid var(--color-border-default)',\n borderRadius: 'var(--radius-control)',\n };\n return (\n <section aria-label={t('bigconsole.dashboards.templateSetup.title', 'Template setup')} className=\"space-y-form-gap\">\n {content.requiredDataSinks.length > 0 && (\n <div>\n <h3 className=\"text-sm font-medium\">\n {t('bigconsole.dashboards.templateSetup.connect', 'Connect your data')}\n </h3>\n <p className=\"text-xs text-text-muted\">\n {t(\n 'bigconsole.dashboards.templateSetup.connectHelp',\n 'Choose a source for each group of widgets. You can also connect it later in the dashboard builder.'\n )}\n </p>\n {!permissionsLoading && !canRead && (\n <p role=\"status\">\n {t(\n 'bigconsole.dashboards.templateSetup.noReadPermission',\n 'You do not have access to browse data sources. You can connect a source later with help from your workspace admin.'\n )}\n </p>\n )}\n {error && (\n <div>\n <p role=\"alert\">{t('bigconsole.dashboards.templateSetup.loadError', 'Could not load data sources.')}</p>\n <button type=\"button\" disabled={disabled} onClick={() => setRetry((value) => value + 1)}>\n {t('bigconsole.dashboards.templateSetup.retry', 'Retry loading sources')}\n </button>\n </div>\n )}\n {content.requiredDataSinks.map((slot, index) => (\n <div key={slot.slot} className=\"mt-form-gap\">\n <label htmlFor={`${prefix}-sink-${index}`} className=\"text-sm font-medium\">\n {slot.label}\n </label>\n {slot.description && <p className=\"text-xs text-text-muted\">{slot.description}</p>}\n <select\n id={`${prefix}-sink-${index}`}\n value={bindings[slot.slot] ?? ''}\n disabled={disabled || loading || !workspaceId || !canRead}\n style={selectStyle}\n onChange={(event) => onBindingChange(slot.slot, event.target.value)}\n >\n <option value=\"\">{t('bigconsole.dashboards.templateSetup.connectLater', 'Connect later')}</option>\n {available.map((sink) => (\n <option key={sink.id} value={sink.id}>\n {sink.name || sink.key}\n </option>\n ))}\n </select>\n {slot.expectedFields.length > 0 && (\n <p className=\"text-xs text-text-muted\">\n {t('bigconsole.dashboards.templateSetup.expectedFields', 'Expected fields: {fields}', {\n fields: slot.expectedFields.map((field) => field.name).join(', '),\n })}\n </p>\n )}\n {slot.widgetTitles.length > 0 && (\n <p className=\"text-xs text-text-muted\">\n {t('bigconsole.dashboards.templateSetup.usedBy', 'Used by: {widgets}', {\n widgets: slot.widgetTitles.join(', '),\n })}\n </p>\n )}\n </div>\n ))}\n {owned?.data?.listDataSinks.pageInfo.hasNextPage && (\n <button\n type=\"button\"\n disabled={disabled || loading}\n onClick={() => setPage({ owner, cursor: owned.data?.listDataSinks.pageInfo.endCursor ?? undefined })}\n >\n {t('bigconsole.dashboards.templateSetup.loadMore', 'Load more sources')}\n </button>\n )}\n </div>\n )}\n {content.requiredInputs.map((input, index) => (\n <div key={input.name}>\n <label htmlFor={`${prefix}-input-${index}`} className=\"text-sm font-medium\">\n {input.label}\n {input.required ? ' *' : ''}\n </label>\n {input.type === 'boolean' ? (\n <select\n id={`${prefix}-input-${index}`}\n value={typeof inputValues[input.name] === 'boolean' ? String(inputValues[input.name]) : ''}\n style={selectStyle}\n disabled={disabled}\n onChange={(event) =>\n onInputChange(input.name, event.target.value === '' ? undefined : event.target.value === 'true')\n }\n >\n <option value=\"\">{t('bigconsole.dashboards.templateSetup.chooseValue', 'Choose a value')}</option>\n <option value=\"true\">{t('bigconsole.dashboards.templateSetup.true', 'True')}</option>\n <option value=\"false\">{t('bigconsole.dashboards.templateSetup.false', 'False')}</option>\n </select>\n ) : input.type === 'select' ? (\n <select\n id={`${prefix}-input-${index}`}\n value={typeof inputValues[input.name] === 'string' ? String(inputValues[input.name]) : ''}\n style={selectStyle}\n disabled={disabled}\n onChange={(event) => onInputChange(input.name, event.target.value)}\n >\n <option value=\"\">{t('bigconsole.dashboards.templateSetup.chooseValue', 'Choose a value')}</option>\n {input.options?.map((option) => (\n <option key={option.value} value={option.value}>\n {option.label}\n </option>\n ))}\n </select>\n ) : (\n <Input\n id={`${prefix}-input-${index}`}\n type={input.type === 'secret' ? 'password' : input.type === 'number' ? 'number' : 'text'}\n step={input.type === 'number' ? 'any' : undefined}\n value={\n typeof inputValues[input.name] === 'string' || typeof inputValues[input.name] === 'number'\n ? String(inputValues[input.name])\n : ''\n }\n placeholder={input.placeholder}\n disabled={disabled}\n onChange={(event) =>\n onInputChange(\n input.name,\n input.type === 'number'\n ? event.target.value === ''\n ? undefined\n : Number(event.target.value)\n : event.target.value\n )\n }\n />\n )}\n {input.helpText && <p className=\"text-xs text-text-muted\">{input.helpText}</p>}\n </div>\n ))}\n </section>\n );\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"TemplateLayoutPreview.d.ts","sourceRoot":"","sources":["../../../../src/bigconsole/components/dashboard/TemplateLayoutPreview.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAMvF,iFAAiF;AACjF,wBAAgB,qBAAqB,CAAC,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,EAAE,wBAAwB,CAAA;CAAE,sCA6DvF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"TemplateLayoutPreview.js","names":[],"sources":["../../../../src/bigconsole/components/dashboard/TemplateLayoutPreview.tsx"],"sourcesContent":["import { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport type { DashboardTemplateContent } from '../../hooks/useStoreDashboardTemplates';\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return value !== null && typeof value === 'object' && !Array.isArray(value);\n}\n\n/** Show the publisher's actual page/widget structure without running actions. */\nexport function TemplateLayoutPreview({ content }: { content: DashboardTemplateContent }) {\n const { t } = useI18n();\n if (!isRecord(content.definition) || !Array.isArray(content.definition.pages)) return null;\n return (\n <section\n aria-label={t('bigconsole.dashboards.templatePreview.label', 'Template layout preview')}\n className=\"mb-form-gap space-y-control-gap\"\n >\n <h3 className=\"text-sm font-medium\">{t('bigconsole.dashboards.templatePreview.title', 'Layout preview')}</h3>\n {content.definition.pages.filter(isRecord).map((page, pageIndex) => (\n <div key={pageIndex}>\n <p className=\"text-xs text-text-muted\">\n {typeof page.name === 'string'\n ? page.name\n : t('bigconsole.dashboards.templatePreview.page', 'Page {number}', { number: pageIndex + 1 })}\n </p>\n <div\n style={{\n display: 'grid',\n gridTemplateColumns: 'repeat(12, minmax(0, 1fr))',\n gap: 'var(--space-controlGap)',\n }}\n >\n {Array.isArray(page.widgets) &&\n page.widgets.filter(isRecord).map((widget, index) => {\n const config = isRecord(widget.config) ? widget.config : {};\n const typeLabel =\n typeof config.chartType === 'string'\n ? t('bigconsole.dashboards.templatePreview.chartType', '{type} chart', { type: config.chartType })\n : typeof widget.type === 'string'\n ? widget.type.toLowerCase().replaceAll('_', ' ')\n : t('bigconsole.dashboards.templatePreview.widgetType', 'Widget');\n const position = isRecord(widget.position) ? widget.position : {};\n const width =\n typeof position.width === 'number' ? Math.min(12, Math.max(1, Math.round(position.width))) : 6;\n return (\n <div\n key={index}\n className=\"rounded-card border border-border-default bg-bg-sunken p-3\"\n style={{ gridColumn: `span ${width}` }}\n >\n <p className=\"truncate text-xs font-medium\">\n {typeof widget.title === 'string'\n ? widget.title\n : t('bigconsole.dashboards.templatePreview.widget', 'Widget {number}', { number: index + 1 })}\n </p>\n <p className=\"truncate text-xs text-text-muted\">{typeLabel}</p>\n </div>\n );\n })}\n </div>\n </div>\n ))}\n <p className=\"text-xs text-text-muted\">\n {t(\n 'bigconsole.dashboards.templatePreview.help',\n 'Data appears after you connect a source. The dashboard uses these saved widgets and layouts.'\n )}\n </p>\n </section>\n );\n}\n"],"mappings":";;;AAGA,SAAS,EAAS,GAAkD;AAClE,QAAyB,OAAO,KAAU,cAAnC,KAA+C,CAAC,MAAM,QAAQ,EAAM;;AAI7E,SAAgB,EAAsB,EAAE,cAAkD;CACxF,IAAM,EAAE,SAAM,GAAS;AAEvB,QADI,CAAC,EAAS,EAAQ,WAAW,IAAI,CAAC,MAAM,QAAQ,EAAQ,WAAW,MAAM,GAAS,OAEpF,kBAAC,WAAD;EACE,cAAY,EAAE,+CAA+C,0BAA0B;EACvF,WAAU;YAFZ;GAIE,kBAAC,MAAD;IAAI,WAAU;cAAuB,EAAE,+CAA+C,iBAAiB;IAAM,CAAA;GAC5G,EAAQ,WAAW,MAAM,OAAO,EAAS,CAAC,KAAK,GAAM,MACpD,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,KAAD;IAAG,WAAU;cACV,OAAO,EAAK,QAAS,WAClB,EAAK,OACL,EAAE,8CAA8C,iBAAiB,EAAE,QAAQ,IAAY,GAAG,CAAC;IAC7F,CAAA,EACJ,kBAAC,OAAD;IACE,OAAO;KACL,SAAS;KACT,qBAAqB;KACrB,KAAK;KACN;cAEA,MAAM,QAAQ,EAAK,QAAQ,IAC1B,EAAK,QAAQ,OAAO,EAAS,CAAC,KAAK,GAAQ,MAAU;KACnD,IAAM,IAAS,EAAS,EAAO,OAAO,GAAG,EAAO,SAAS,EAAE,EACrD,IACJ,OAAO,EAAO,aAAc,WACxB,EAAE,mDAAmD,gBAAgB,EAAE,MAAM,EAAO,WAAW,CAAC,GAChG,OAAO,EAAO,QAAS,WACrB,EAAO,KAAK,aAAa,CAAC,WAAW,KAAK,IAAI,GAC9C,EAAE,oDAAoD,SAAS,EACjE,IAAW,EAAS,EAAO,SAAS,GAAG,EAAO,WAAW,EAAE;AAGjE,YACE,kBAAC,OAAD;MAEE,WAAU;MACV,OAAO,EAAE,YAAY,QALvB,OAAO,EAAS,SAAU,WAAW,KAAK,IAAI,IAAI,KAAK,IAAI,GAAG,KAAK,MAAM,EAAS,MAAM,CAAC,CAAC,GAAG,KAKrD;gBAHxC,CAKE,kBAAC,KAAD;OAAG,WAAU;iBACV,OAAO,EAAO,SAAU,WACrB,EAAO,QACP,EAAE,gDAAgD,mBAAmB,EAAE,QAAQ,IAAQ,GAAG,CAAC;OAC7F,CAAA,EACJ,kBAAC,KAAD;OAAG,WAAU;iBAAoC;OAAc,CAAA,CAC3D;QAVC,EAUD;MAER;IACA,CAAA,CACF,EAAA,EAzCI,EAyCJ,CACN;GACF,kBAAC,KAAD;IAAG,WAAU;cACV,EACC,8CACA,+FACD;IACC,CAAA;GACI"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"TemplatePicker.d.ts","sourceRoot":"","sources":["../../../../../src/bigconsole/components/dashboard/TemplatePicker/TemplatePicker.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAoD,MAAM,OAAO,CAAC;AAEzE,OAAO,EAEL,KAAK,yBAAyB,EAG/B,MAAM,gBAAgB,CAAC;AAMxB,MAAM,WAAW,mBAAmB;IAClC,4CAA4C;IAC5C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,8CAA8C;IAC9C,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,gFAAgF;IAChF,gBAAgB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAC1G,oDAAoD;IACpD,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,wDAAwD;IACxD,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,yBAAyB,KAAK,IAAI,CAAC;IACzD,2DAA2D;IAC3D,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAkBD,wBAAgB,cAAc,CAAC,EAC7B,MAAM,EACN,OAAO,EACP,gBAAgB,EAChB,kBAAkB,EAClB,QAAQ,EACR,OAAe,GAChB,EAAE,mBAAmB,4BAmjBrB;AA2VD,eAAe,cAAc,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/bigconsole/components/dashboard/TemplatePicker/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"TemplateSetupBanner.d.ts","sourceRoot":"","sources":["../../../../src/bigconsole/components/dashboard/TemplateSetupBanner.tsx"],"names":[],"mappings":"AA8BA,OAAO,EAAE,KAAK,EAAE,EAAiB,MAAM,OAAO,CAAC;AAG/C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAK1C,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,yEAAyE;IACzE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,8EAA8E;IAC9E,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;CAC3C;AASD,eAAO,MAAM,mBAAmB,EAAE,EAAE,CAAC,wBAAwB,CA0C3D,CAAC;AAEH,eAAe,mBAAmB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"TemplateSetupBanner.js","names":[],"sources":["../../../../src/bigconsole/components/dashboard/TemplateSetupBanner.tsx"],"sourcesContent":["/**\n * TemplateSetupBanner\n *\n * Shown on a board installed from a store template that still has widgets\n * without a data source.\n *\n * WHY THIS EXISTS:\n * Template installs deliberately do not require every data-sink slot to be\n * bound up front — a brand-new workspace has no sinks at all, so a hard\n * requirement would make the template gallery unusable for exactly the users\n * it exists to serve. The cost of that choice is that the board renders\n * immediately with some widgets holding no data.\n *\n * A workflow can get away with the equivalent (FluidGrids just toasts \"go\n * configure your credential\") because nothing runs until you press Test. A\n * dashboard renders the instant you open it, so an unconnected widget is\n * visually indistinguishable from a crashed one. This banner is what\n * reframes the screen from \"broken\" to \"setup in progress\", and it does more\n * work for that than any per-widget treatment.\n *\n * It derives its state from the widgets themselves — each widget installed from\n * a template carries its originating slot in `metadata.templateDataSinkSlot` —\n * so it needs no extra query and lights up for any such board.\n *\n * Semantic status tokens only, no raw colors.\n *\n * @module bigconsole/components/dashboard/TemplateSetupBanner\n */\nimport { Button } from '@burdenoff/fe-libs/ui';\nimport { DatabaseZap } from 'lucide-react';\nimport { type FC, memo, useMemo } from 'react';\n\nimport { Section } from '../common';\nimport type { Widget } from '../../types';\n\n/** Metadata key written by the backend template installer. */\nconst WIDGET_TEMPLATE_SLOT_KEY = 'templateDataSinkSlot';\n\nexport interface TemplateSetupBannerProps {\n widgets: Widget[];\n /** Hidden while editing: the builder has its own binding affordances. */\n isEditMode?: boolean;\n /** Opens the guided connect flow. Omit to render the banner without a CTA. */\n onConnectData?: (slots: string[]) => void;\n}\n\n/** A widget that came from a template and still has no sink bound. */\nfunction needsData(widget: Widget): string | null {\n if (widget.dataSinkId) return null;\n const slot = widget.metadata?.[WIDGET_TEMPLATE_SLOT_KEY];\n return typeof slot === 'string' && slot.length > 0 ? slot : null;\n}\n\nexport const TemplateSetupBanner: FC<TemplateSetupBannerProps> = memo(function TemplateSetupBanner({\n widgets,\n isEditMode = false,\n onConnectData,\n}) {\n const { unconnectedCount, slots } = useMemo(() => {\n const found = new Set<string>();\n let count = 0;\n for (const widget of widgets) {\n const slot = needsData(widget);\n if (!slot) continue;\n count += 1;\n found.add(slot);\n }\n return { unconnectedCount: count, slots: Array.from(found) };\n }, [widgets]);\n\n if (isEditMode || unconnectedCount === 0) return null;\n\n const sourceWord = slots.length === 1 ? 'data source' : 'data sources';\n const widgetWord = unconnectedCount === 1 ? 'widget needs' : 'widgets need';\n\n return (\n <div role=\"status\" className=\"mx-card-padding mt-control-gap flex-shrink-0\">\n <Section\n tone=\"info\"\n padding=\"compact\"\n headingLevel={3}\n data-testid=\"template-setup-banner\"\n icon={<DatabaseZap className=\"h-icon-sm w-icon-sm\" />}\n title=\"This dashboard came from a template\"\n description={`${unconnectedCount} ${widgetWord} connecting to your data — ${slots.length} ${sourceWord} to set up.`}\n actions={\n onConnectData ? (\n <Button size=\"sm\" onClick={() => onConnectData(slots)}>\n Connect data\n </Button>\n ) : undefined\n }\n />\n </div>\n );\n});\n\nexport default TemplateSetupBanner;\n"],"mappings":";;;;;;;AAoCA,IAAM,IAA2B;AAWjC,SAAS,EAAU,GAA+B;AAChD,KAAI,EAAO,WAAY,QAAO;CAC9B,IAAM,IAAO,EAAO,WAAW;AAC/B,QAAO,OAAO,KAAS,YAAY,EAAK,SAAS,IAAI,IAAO;;AAG9D,IAAa,IAAoD,EAAK,SAA6B,EACjG,YACA,gBAAa,IACb,oBACC;CACD,IAAM,EAAE,qBAAkB,aAAU,QAAc;EAChD,IAAM,oBAAQ,IAAI,KAAa,EAC3B,IAAQ;AACZ,OAAK,IAAM,KAAU,GAAS;GAC5B,IAAM,IAAO,EAAU,EAAO;AACzB,SACL,KAAS,GACT,EAAM,IAAI,EAAK;;AAEjB,SAAO;GAAE,kBAAkB;GAAO,OAAO,MAAM,KAAK,EAAM;GAAE;IAC3D,CAAC,EAAQ,CAAC;AAEb,KAAI,KAAc,MAAqB,EAAG,QAAO;CAEjD,IAAM,IAAa,EAAM,WAAW,IAAI,gBAAgB;AAGxD,QACE,kBAAC,OAAD;EAAK,MAAK;EAAS,WAAU;YAC3B,kBAAC,GAAD;GACE,MAAK;GACL,SAAQ;GACR,cAAc;GACd,eAAY;GACZ,MAAM,kBAAC,GAAD,EAAa,WAAU,uBAAwB,CAAA;GACrD,OAAM;GACN,aAAa,GAAG,EAAiB,GAXpB,MAAqB,IAAI,iBAAiB,eAWR,6BAA6B,EAAM,OAAO,GAAG,EAAW;GACvG,SACE,IACE,kBAAC,GAAD;IAAQ,MAAK;IAAK,eAAe,EAAc,EAAM;cAAE;IAE9C,CAAA,GACP,KAAA;GAEN,CAAA;EACE,CAAA;EAER"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"WidgetPalette.d.ts","sourceRoot":"","sources":["../../../../src/bigconsole/components/dashboard/WidgetPalette.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,KAAK,EAAE,EAAwC,MAAM,OAAO,CAAC;AA+BtE,OAAO,EAIL,KAAK,gBAAgB,EACtB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,UAAU,EAAkB,MAAM,aAAa,CAAC;AAkC9D,MAAM,WAAW,kBAAkB;IACjC,kCAAkC;IAClC,MAAM,EAAE,OAAO,CAAC;IAChB,oCAAoC;IACpC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,sEAAsE;IACtE,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC3E,gCAAgC;IAChC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACvE,8BAA8B;IAC9B,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,2DAA2D;IAC3D,gBAAgB,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACtC,kDAAkD;IAClD,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC;;;;OAIG;IACH,WAAW,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAClC;AAsTD,eAAO,MAAM,aAAa,EAAE,EAAE,CAAC,kBAAkB,CA4V/C,CAAC;AAEH,eAAe,aAAa,CAAC"}