@burdenoff/microfe-bigconsole 2026.1005.4 → 2026.1006.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1442) hide show
  1. package/README.md +22 -0
  2. package/dist/bigconsole/AdminRoot.d.ts +0 -1
  3. package/dist/bigconsole/AdminRoot.js +0 -2
  4. package/dist/bigconsole/AdminRoutes.d.ts +0 -1
  5. package/dist/bigconsole/AdminRoutes.js +0 -2
  6. package/dist/bigconsole/BigConsoleRoot.d.ts +0 -1
  7. package/dist/bigconsole/BigConsoleRoot.js +88 -84
  8. package/dist/bigconsole/BigConsoleRoutes.d.ts +0 -1
  9. package/dist/bigconsole/BigConsoleRoutes.js +39 -5
  10. package/dist/bigconsole/assistant/assistantApi.d.ts +0 -1
  11. package/dist/bigconsole/assistant/assistantApi.js +0 -2
  12. package/dist/bigconsole/assistant/assistantProduct.d.ts +0 -1
  13. package/dist/bigconsole/assistant/assistantProduct.js +0 -2
  14. package/dist/bigconsole/assistant/assistantPrompt.d.ts +0 -1
  15. package/dist/bigconsole/assistant/assistantPrompt.js +0 -2
  16. package/dist/bigconsole/assistant/assistantRunPersistence.d.ts +0 -1
  17. package/dist/bigconsole/assistant/assistantRunPersistence.js +0 -2
  18. package/dist/bigconsole/assistant/assistantRunStore.d.ts +0 -1
  19. package/dist/bigconsole/assistant/assistantRunStore.js +0 -2
  20. package/dist/bigconsole/assistant/assistantRuntime.d.ts +0 -1
  21. package/dist/bigconsole/assistant/assistantRuntime.js +0 -2
  22. package/dist/bigconsole/assistant/attachmentExtract.d.ts +0 -1
  23. package/dist/bigconsole/assistant/attachmentExtract.js +0 -2
  24. package/dist/bigconsole/assistant/conversationHistoryApi.d.ts +0 -1
  25. package/dist/bigconsole/assistant/conversationHistoryApi.js +0 -2
  26. package/dist/bigconsole/assistant/createSandboxAssistantTransport.d.ts +0 -1
  27. package/dist/bigconsole/assistant/createSandboxAssistantTransport.js +0 -2
  28. package/dist/bigconsole/assistant/index.d.ts +0 -1
  29. package/dist/bigconsole/assistant/modes.d.ts +0 -1
  30. package/dist/bigconsole/assistant/modes.js +0 -2
  31. package/dist/bigconsole/assistant/pageContext.d.ts +0 -1
  32. package/dist/bigconsole/assistant/pageContext.js +0 -2
  33. package/dist/bigconsole/assistant/previewController.d.ts +0 -1
  34. package/dist/bigconsole/assistant/previewController.js +0 -2
  35. package/dist/bigconsole/assistant/previewMutationResult.d.ts +0 -1
  36. package/dist/bigconsole/assistant/previewMutationResult.js +0 -2
  37. package/dist/bigconsole/assistant/previewRunAction.d.ts +0 -1
  38. package/dist/bigconsole/assistant/previewRunAction.js +0 -2
  39. package/dist/bigconsole/assistant/product.d.ts +0 -1
  40. package/dist/bigconsole/assistant/product.js +0 -2
  41. package/dist/bigconsole/assistant/recordAdapters.d.ts +0 -1
  42. package/dist/bigconsole/assistant/recordAdapters.js +0 -2
  43. package/dist/bigconsole/assistant/types.d.ts +0 -1
  44. package/dist/bigconsole/assistant/useAssistantRunWorkspace.d.ts +0 -1
  45. package/dist/bigconsole/assistant/useAssistantRunWorkspace.js +0 -2
  46. package/dist/bigconsole/assistant/useWorkspaceWriteAccess.d.ts +0 -1
  47. package/dist/bigconsole/assistant/useWorkspaceWriteAccess.js +0 -2
  48. package/dist/bigconsole/components/DrilldownDashboardRenderer.d.ts +0 -1
  49. package/dist/bigconsole/components/DrilldownDashboardRenderer.js +0 -2
  50. package/dist/bigconsole/components/DrilldownModal.d.ts +0 -1
  51. package/dist/bigconsole/components/DrilldownModal.js +0 -2
  52. package/dist/bigconsole/components/builder/BuilderCanvas.d.ts +0 -1
  53. package/dist/bigconsole/components/builder/BuilderCanvas.js +0 -2
  54. package/dist/bigconsole/components/builder/BuilderTopbar.d.ts +0 -1
  55. package/dist/bigconsole/components/builder/BuilderTopbar.js +0 -2
  56. package/dist/bigconsole/components/builder/DashboardEditorShell.d.ts +0 -1
  57. package/dist/bigconsole/components/builder/DashboardEditorShell.js +0 -2
  58. package/dist/bigconsole/components/builder/WidgetInspector.d.ts +0 -1
  59. package/dist/bigconsole/components/builder/WidgetInspector.js +0 -2
  60. package/dist/bigconsole/components/builder/index.d.ts +0 -1
  61. package/dist/bigconsole/components/builder/inspector/AdvancedSection.d.ts +0 -1
  62. package/dist/bigconsole/components/builder/inspector/AdvancedSection.js +0 -2
  63. package/dist/bigconsole/components/builder/inspector/AppearanceSection.d.ts +0 -1
  64. package/dist/bigconsole/components/builder/inspector/AppearanceSection.js +0 -2
  65. package/dist/bigconsole/components/builder/inspector/DataBindingSection.d.ts +0 -1
  66. package/dist/bigconsole/components/builder/inspector/DataBindingSection.js +0 -2
  67. package/dist/bigconsole/components/builder/inspector/GeneralSection.d.ts +0 -1
  68. package/dist/bigconsole/components/builder/inspector/GeneralSection.js +0 -2
  69. package/dist/bigconsole/components/builder/inspector/LayoutSection.d.ts +0 -1
  70. package/dist/bigconsole/components/builder/inspector/LayoutSection.js +0 -2
  71. package/dist/bigconsole/components/builder/inspector/index.d.ts +0 -1
  72. package/dist/bigconsole/components/common/Section.d.ts +0 -1
  73. package/dist/bigconsole/components/common/Section.js +0 -2
  74. package/dist/bigconsole/components/common/index.d.ts +0 -1
  75. package/dist/bigconsole/components/common/sectionStyles.d.ts +0 -1
  76. package/dist/bigconsole/components/common/sectionStyles.js +0 -2
  77. package/dist/bigconsole/components/dashboard/CreateDashboardDialog.d.ts +0 -1
  78. package/dist/bigconsole/components/dashboard/CreateDashboardDialog.js +0 -2
  79. package/dist/bigconsole/components/dashboard/DashboardCanvas.d.ts +0 -1
  80. package/dist/bigconsole/components/dashboard/DashboardCanvas.js +0 -2
  81. package/dist/bigconsole/components/dashboard/DashboardGrid.d.ts +0 -1
  82. package/dist/bigconsole/components/dashboard/DashboardGrid.js +0 -2
  83. package/dist/bigconsole/components/dashboard/DashboardStatusPill.d.ts +0 -1
  84. package/dist/bigconsole/components/dashboard/DashboardStatusPill.js +0 -2
  85. package/dist/bigconsole/components/dashboard/DashboardToolbar.d.ts +0 -1
  86. package/dist/bigconsole/components/dashboard/DashboardToolbar.js +0 -2
  87. package/dist/bigconsole/components/dashboard/DrilldownBreadcrumb.d.ts +0 -1
  88. package/dist/bigconsole/components/dashboard/DrilldownBreadcrumb.js +63 -64
  89. package/dist/bigconsole/components/dashboard/ExportDashboardDialog.d.ts +0 -1
  90. package/dist/bigconsole/components/dashboard/ExportDashboardDialog.js +0 -2
  91. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterChip.d.ts +0 -1
  92. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterChip.js +0 -2
  93. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterEditor.d.ts +0 -1
  94. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterEditor.js +0 -2
  95. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterPresetSelector.d.ts +0 -1
  96. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterPresetSelector.js +0 -2
  97. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.d.ts +0 -1
  98. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.js +0 -2
  99. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/index.d.ts +0 -1
  100. package/dist/bigconsole/components/dashboard/ImportDashboardDialog.d.ts +0 -1
  101. package/dist/bigconsole/components/dashboard/ImportDashboardDialog.js +0 -2
  102. package/dist/bigconsole/components/dashboard/LiveBoardBanner.d.ts +0 -1
  103. package/dist/bigconsole/components/dashboard/LiveBoardBanner.js +0 -2
  104. package/dist/bigconsole/components/dashboard/LiveCanvasToggle.d.ts +0 -1
  105. package/dist/bigconsole/components/dashboard/LiveCanvasToggle.js +0 -2
  106. package/dist/bigconsole/components/dashboard/PageTabsManager/PageTabsManager.d.ts +0 -1
  107. package/dist/bigconsole/components/dashboard/PageTabsManager/PageTabsManager.js +0 -2
  108. package/dist/bigconsole/components/dashboard/PageTabsManager/index.d.ts +0 -1
  109. package/dist/bigconsole/components/dashboard/PublishToStoreDialog.d.ts +0 -1
  110. package/dist/bigconsole/components/dashboard/PublishToStoreDialog.js +0 -2
  111. package/dist/bigconsole/components/dashboard/SavedViewsDropdown/SavedViewsDropdown.d.ts +0 -1
  112. package/dist/bigconsole/components/dashboard/SavedViewsDropdown/SavedViewsDropdown.js +0 -2
  113. package/dist/bigconsole/components/dashboard/SavedViewsDropdown/index.d.ts +0 -1
  114. package/dist/bigconsole/components/dashboard/ShareDialog/EmbedTab.d.ts +0 -1
  115. package/dist/bigconsole/components/dashboard/ShareDialog/EmbedTab.js +97 -108
  116. package/dist/bigconsole/components/dashboard/ShareDialog/ShareDialog.d.ts +0 -1
  117. package/dist/bigconsole/components/dashboard/ShareDialog/ShareDialog.js +0 -2
  118. package/dist/bigconsole/components/dashboard/ShareDialog/index.d.ts +0 -1
  119. package/dist/bigconsole/components/dashboard/StoreTemplatePicker.d.ts +0 -1
  120. package/dist/bigconsole/components/dashboard/StoreTemplatePicker.js +0 -2
  121. package/dist/bigconsole/components/dashboard/TemplateInstallOptions.d.ts +0 -1
  122. package/dist/bigconsole/components/dashboard/TemplateInstallOptions.js +0 -2
  123. package/dist/bigconsole/components/dashboard/TemplateLayoutPreview.d.ts +0 -1
  124. package/dist/bigconsole/components/dashboard/TemplateLayoutPreview.js +0 -2
  125. package/dist/bigconsole/components/dashboard/TemplatePicker/TemplatePicker.d.ts +0 -1
  126. package/dist/bigconsole/components/dashboard/TemplatePicker/index.d.ts +0 -1
  127. package/dist/bigconsole/components/dashboard/TemplateSetupBanner.d.ts +0 -1
  128. package/dist/bigconsole/components/dashboard/TemplateSetupBanner.js +0 -2
  129. package/dist/bigconsole/components/dashboard/WidgetPalette.d.ts +0 -1
  130. package/dist/bigconsole/components/dashboard/WidgetPalette.js +165 -165
  131. package/dist/bigconsole/components/dashboard/index.d.ts +0 -1
  132. package/dist/bigconsole/components/datasink/AlertExecutionHistory.d.ts +0 -1
  133. package/dist/bigconsole/components/datasink/AlertExecutionHistory.js +0 -2
  134. package/dist/bigconsole/components/datasink/AlertRuleEditor.d.ts +0 -1
  135. package/dist/bigconsole/components/datasink/AlertRuleEditor.js +0 -2
  136. package/dist/bigconsole/components/datasink/CacheTTLSelector.d.ts +0 -1
  137. package/dist/bigconsole/components/datasink/CacheTTLSelector.js +0 -2
  138. package/dist/bigconsole/components/datasink/ConfigurationForm.d.ts +0 -1
  139. package/dist/bigconsole/components/datasink/DataPreviewPanel.d.ts +0 -1
  140. package/dist/bigconsole/components/datasink/DataSinkCard.d.ts +0 -1
  141. package/dist/bigconsole/components/datasink/DataSinkCard.js +0 -2
  142. package/dist/bigconsole/components/datasink/DataSinkDataViewer.d.ts +0 -1
  143. package/dist/bigconsole/components/datasink/DataSinkDataViewer.js +0 -2
  144. package/dist/bigconsole/components/datasink/DataSinkDeleteDialog.d.ts +0 -1
  145. package/dist/bigconsole/components/datasink/DataSinkDeleteDialog.js +0 -2
  146. package/dist/bigconsole/components/datasink/DataSinkRefreshConfig.d.ts +0 -1
  147. package/dist/bigconsole/components/datasink/DataSinkRefreshDialog.d.ts +0 -1
  148. package/dist/bigconsole/components/datasink/DataSinkRefreshDialog.js +0 -2
  149. package/dist/bigconsole/components/datasink/DataSinkStatusBadge.d.ts +0 -1
  150. package/dist/bigconsole/components/datasink/DataSinkStatusBadge.js +0 -2
  151. package/dist/bigconsole/components/datasink/DataSinkTableViewer.d.ts +0 -1
  152. package/dist/bigconsole/components/datasink/DataSinkTableViewer.js +0 -2
  153. package/dist/bigconsole/components/datasink/ExportDataSinkDialog.d.ts +0 -1
  154. package/dist/bigconsole/components/datasink/ExportDataSinkDialog.js +0 -2
  155. package/dist/bigconsole/components/datasink/FluidGridsPanel.d.ts +0 -1
  156. package/dist/bigconsole/components/datasink/ImportDataGuideDialog.d.ts +0 -1
  157. package/dist/bigconsole/components/datasink/ImportDataGuideDialog.js +0 -2
  158. package/dist/bigconsole/components/datasink/ImportDataSinkDialog.d.ts +0 -1
  159. package/dist/bigconsole/components/datasink/ImportDataSinkDialog.js +0 -2
  160. package/dist/bigconsole/components/datasink/LinkedParsersPanel.d.ts +0 -1
  161. package/dist/bigconsole/components/datasink/LinkedParsersPanel.js +0 -2
  162. package/dist/bigconsole/components/datasink/LinkedWorkflowsPanel.d.ts +0 -1
  163. package/dist/bigconsole/components/datasink/LinkedWorkflowsPanel.js +0 -2
  164. package/dist/bigconsole/components/datasink/RefreshTypeSelector.d.ts +0 -1
  165. package/dist/bigconsole/components/datasink/RefreshTypeSelector.js +0 -2
  166. package/dist/bigconsole/components/datasink/SetupStateBadge.d.ts +0 -1
  167. package/dist/bigconsole/components/datasink/SetupStateBadge.js +0 -2
  168. package/dist/bigconsole/components/datasink/WorkflowStatusPanel.d.ts +0 -1
  169. package/dist/bigconsole/components/datasink/WorkflowStatusPanel.js +0 -2
  170. package/dist/bigconsole/components/datasink/index.d.ts +0 -1
  171. package/dist/bigconsole/components/embed/EmbedErrorBoundary.d.ts +0 -1
  172. package/dist/bigconsole/components/embed/EmbedErrorBoundary.js +0 -2
  173. package/dist/bigconsole/components/embed/EmbedWidgetRenderer.d.ts +0 -1
  174. package/dist/bigconsole/components/embed/EmbedWidgetRenderer.js +0 -2
  175. package/dist/bigconsole/components/embed/ReadOnlyDashboardRenderer.d.ts +0 -1
  176. package/dist/bigconsole/components/embed/ReadOnlyDashboardRenderer.js +0 -2
  177. package/dist/bigconsole/components/embed/drilldown.d.ts +0 -1
  178. package/dist/bigconsole/components/embed/drilldown.js +0 -2
  179. package/dist/bigconsole/components/embed/index.d.ts +0 -1
  180. package/dist/bigconsole/components/embed/renderer-manifest.d.ts +0 -1
  181. package/dist/bigconsole/components/embed/renderer-manifest.js +0 -2
  182. package/dist/bigconsole/components/embed/types.d.ts +0 -1
  183. package/dist/bigconsole/components/embed/types.js +0 -2
  184. package/dist/bigconsole/components/embed/validate.d.ts +0 -1
  185. package/dist/bigconsole/components/embed/validate.js +0 -2
  186. package/dist/bigconsole/components/embed/widgetShim.d.ts +0 -1
  187. package/dist/bigconsole/components/embed/widgetShim.js +0 -2
  188. package/dist/bigconsole/components/embed/widgets/CalendarEmbed.d.ts +0 -1
  189. package/dist/bigconsole/components/embed/widgets/CalendarEmbed.js +0 -2
  190. package/dist/bigconsole/components/embed/widgets/ChartEmbed.d.ts +0 -1
  191. package/dist/bigconsole/components/embed/widgets/ChartEmbed.js +0 -2
  192. package/dist/bigconsole/components/embed/widgets/EmbedFrame.d.ts +0 -1
  193. package/dist/bigconsole/components/embed/widgets/EmbedFrame.js +0 -2
  194. package/dist/bigconsole/components/embed/widgets/FormEmbed.d.ts +0 -1
  195. package/dist/bigconsole/components/embed/widgets/FormEmbed.js +0 -2
  196. package/dist/bigconsole/components/embed/widgets/GaugeEmbed.d.ts +0 -1
  197. package/dist/bigconsole/components/embed/widgets/GaugeEmbed.js +0 -2
  198. package/dist/bigconsole/components/embed/widgets/HeatmapEmbed.d.ts +0 -1
  199. package/dist/bigconsole/components/embed/widgets/HeatmapEmbed.js +0 -2
  200. package/dist/bigconsole/components/embed/widgets/KanbanEmbed.d.ts +0 -1
  201. package/dist/bigconsole/components/embed/widgets/KanbanEmbed.js +0 -2
  202. package/dist/bigconsole/components/embed/widgets/KpiComparisonEmbed.d.ts +0 -1
  203. package/dist/bigconsole/components/embed/widgets/KpiComparisonEmbed.js +0 -2
  204. package/dist/bigconsole/components/embed/widgets/ListEmbed.d.ts +0 -1
  205. package/dist/bigconsole/components/embed/widgets/ListEmbed.js +0 -2
  206. package/dist/bigconsole/components/embed/widgets/MetricCardEmbed.d.ts +0 -1
  207. package/dist/bigconsole/components/embed/widgets/MetricCardEmbed.js +0 -2
  208. package/dist/bigconsole/components/embed/widgets/PivotEmbed.d.ts +0 -1
  209. package/dist/bigconsole/components/embed/widgets/PivotEmbed.js +0 -2
  210. package/dist/bigconsole/components/embed/widgets/ProgressEmbed.d.ts +0 -1
  211. package/dist/bigconsole/components/embed/widgets/ProgressEmbed.js +0 -2
  212. package/dist/bigconsole/components/embed/widgets/RetentionEmbed.d.ts +0 -1
  213. package/dist/bigconsole/components/embed/widgets/RetentionEmbed.js +0 -2
  214. package/dist/bigconsole/components/embed/widgets/TableEmbed.d.ts +0 -1
  215. package/dist/bigconsole/components/embed/widgets/TableEmbed.js +0 -2
  216. package/dist/bigconsole/components/embed/widgets/TextEmbed.d.ts +0 -1
  217. package/dist/bigconsole/components/embed/widgets/TextEmbed.js +0 -2
  218. package/dist/bigconsole/components/embed/widgets/TimelineEmbed.d.ts +0 -1
  219. package/dist/bigconsole/components/embed/widgets/TimelineEmbed.js +0 -2
  220. package/dist/bigconsole/components/embed/widgets/shared.d.ts +0 -1
  221. package/dist/bigconsole/components/embed/widgets/shared.js +0 -2
  222. package/dist/bigconsole/components/overview/DashboardGuide.d.ts +0 -1
  223. package/dist/bigconsole/components/overview/DashboardGuide.js +0 -2
  224. package/dist/bigconsole/components/overview/DataHealthCard.d.ts +0 -1
  225. package/dist/bigconsole/components/overview/DataHealthCard.js +0 -2
  226. package/dist/bigconsole/components/overview/OverviewQuickActions.d.ts +0 -1
  227. package/dist/bigconsole/components/overview/OverviewQuickActions.js +0 -2
  228. package/dist/bigconsole/components/overview/OverviewStatCard.d.ts +0 -1
  229. package/dist/bigconsole/components/overview/OverviewStatCard.js +0 -2
  230. package/dist/bigconsole/components/overview/RecentDashboardsPanel.d.ts +0 -1
  231. package/dist/bigconsole/components/overview/RecentDashboardsPanel.js +0 -2
  232. package/dist/bigconsole/components/overview/dashboardGuideSteps.d.ts +0 -1
  233. package/dist/bigconsole/components/overview/dashboardGuideSteps.js +0 -2
  234. package/dist/bigconsole/components/overview/index.d.ts +0 -1
  235. package/dist/bigconsole/components/overview/overviewModel.d.ts +0 -1
  236. package/dist/bigconsole/components/overview/overviewModel.js +0 -2
  237. package/dist/bigconsole/components/overview/useOverviewData.d.ts +0 -1
  238. package/dist/bigconsole/components/overview/useOverviewData.js +0 -2
  239. package/dist/bigconsole/components/parser/DataSinkSelector.d.ts +0 -1
  240. package/dist/bigconsole/components/parser/DataSinkSelector.js +0 -2
  241. package/dist/bigconsole/components/parser/ExportParserDialog.d.ts +0 -1
  242. package/dist/bigconsole/components/parser/ExportParserDialog.js +0 -2
  243. package/dist/bigconsole/components/parser/ExpressionEditor.d.ts +0 -1
  244. package/dist/bigconsole/components/parser/ExpressionEditor.js +0 -2
  245. package/dist/bigconsole/components/parser/ImportParserDialog.d.ts +0 -1
  246. package/dist/bigconsole/components/parser/ImportParserDialog.js +0 -2
  247. package/dist/bigconsole/components/parser/ParserBuilder.d.ts +0 -1
  248. package/dist/bigconsole/components/parser/ParserCard.d.ts +0 -1
  249. package/dist/bigconsole/components/parser/ParserCard.js +0 -2
  250. package/dist/bigconsole/components/parser/ParserFormDialog.d.ts +0 -1
  251. package/dist/bigconsole/components/parser/ParserSelector.d.ts +0 -1
  252. package/dist/bigconsole/components/parser/ParserSelector.js +0 -2
  253. package/dist/bigconsole/components/parser/ParserStatusBadge.d.ts +0 -1
  254. package/dist/bigconsole/components/parser/ParserStatusBadge.js +0 -2
  255. package/dist/bigconsole/components/parser/ParserTypeBadge.d.ts +0 -1
  256. package/dist/bigconsole/components/parser/ParserTypeBadge.js +0 -2
  257. package/dist/bigconsole/components/parser/TestPanel.d.ts +0 -1
  258. package/dist/bigconsole/components/parser/index.d.ts +0 -1
  259. package/dist/bigconsole/components/parser/parserFieldStyles.d.ts +0 -1
  260. package/dist/bigconsole/components/pipeline/PipelineCard.d.ts +0 -1
  261. package/dist/bigconsole/components/pipeline/PipelineCard.js +0 -2
  262. package/dist/bigconsole/components/pipeline/PipelineDeleteDialog.d.ts +0 -1
  263. package/dist/bigconsole/components/pipeline/PipelineDeleteDialog.js +0 -2
  264. package/dist/bigconsole/components/pipeline/PipelineScopePicker.d.ts +0 -1
  265. package/dist/bigconsole/components/pipeline/PipelineScopePicker.js +0 -2
  266. package/dist/bigconsole/components/pipeline/PipelineStatusBadge.d.ts +0 -1
  267. package/dist/bigconsole/components/pipeline/PipelineStatusBadge.js +0 -2
  268. package/dist/bigconsole/components/pipeline/index.d.ts +0 -1
  269. package/dist/bigconsole/components/preview/AiPreviewContent.d.ts +0 -1
  270. package/dist/bigconsole/components/preview/AiPreviewContent.js +0 -2
  271. package/dist/bigconsole/components/preview/AiPreviewMiniPanel.d.ts +0 -1
  272. package/dist/bigconsole/components/preview/AiPreviewMiniPanel.js +0 -2
  273. package/dist/bigconsole/components/preview/AiPreviewPanel.d.ts +0 -1
  274. package/dist/bigconsole/components/preview/AiPreviewPanel.js +0 -2
  275. package/dist/bigconsole/components/preview/parserPreview.d.ts +0 -1
  276. package/dist/bigconsole/components/preview/parserPreview.js +0 -2
  277. package/dist/bigconsole/components/preview/previewShared.d.ts +0 -1
  278. package/dist/bigconsole/components/preview/previewShared.js +0 -2
  279. package/dist/bigconsole/components/widgets/ActionConfigDialog.d.ts +0 -1
  280. package/dist/bigconsole/components/widgets/ActionConfigDialog.js +0 -2
  281. package/dist/bigconsole/components/widgets/DrilldownConfigPanel.d.ts +0 -1
  282. package/dist/bigconsole/components/widgets/DrilldownConfigPanel.js +0 -2
  283. package/dist/bigconsole/components/widgets/PropertiesPanel.d.ts +0 -1
  284. package/dist/bigconsole/components/widgets/PropertiesPanel.js +0 -2
  285. package/dist/bigconsole/components/widgets/WidgetErrorBoundary.d.ts +0 -1
  286. package/dist/bigconsole/components/widgets/WidgetErrorBoundary.js +0 -2
  287. package/dist/bigconsole/components/widgets/WidgetHeader.d.ts +0 -1
  288. package/dist/bigconsole/components/widgets/WidgetHeader.js +0 -2
  289. package/dist/bigconsole/components/widgets/WidgetMenu.d.ts +0 -1
  290. package/dist/bigconsole/components/widgets/WidgetMenu.js +0 -2
  291. package/dist/bigconsole/components/widgets/WidgetRegistry.d.ts +0 -1
  292. package/dist/bigconsole/components/widgets/WidgetRegistry.js +0 -3
  293. package/dist/bigconsole/components/widgets/WidgetTypeSelector.d.ts +0 -1
  294. package/dist/bigconsole/components/widgets/WidgetWrapper.d.ts +0 -1
  295. package/dist/bigconsole/components/widgets/WidgetWrapper.js +0 -2
  296. package/dist/bigconsole/components/widgets/actionConfig.d.ts +0 -1
  297. package/dist/bigconsole/components/widgets/actionConfig.js +0 -2
  298. package/dist/bigconsole/components/widgets/adaptive-card/AdaptiveCardWidget.d.ts +0 -1
  299. package/dist/bigconsole/components/widgets/adaptive-card/AdaptiveCardWidget.js +0 -2
  300. package/dist/bigconsole/components/widgets/adaptive-card/index.d.ts +0 -1
  301. package/dist/bigconsole/components/widgets/calendar/CalendarView.d.ts +0 -1
  302. package/dist/bigconsole/components/widgets/calendar/CalendarView.js +0 -2
  303. package/dist/bigconsole/components/widgets/calendar/CalendarWidget.d.ts +0 -1
  304. package/dist/bigconsole/components/widgets/calendar/CalendarWidget.js +0 -2
  305. package/dist/bigconsole/components/widgets/calendar/index.d.ts +0 -1
  306. package/dist/bigconsole/components/widgets/chart/ChartConfig.d.ts +0 -1
  307. package/dist/bigconsole/components/widgets/chart/ChartConfig.js +0 -2
  308. package/dist/bigconsole/components/widgets/chart/ChartLegend.d.ts +0 -1
  309. package/dist/bigconsole/components/widgets/chart/ChartLegend.js +0 -2
  310. package/dist/bigconsole/components/widgets/chart/ChartTooltip.d.ts +0 -1
  311. package/dist/bigconsole/components/widgets/chart/ChartTooltip.js +0 -2
  312. package/dist/bigconsole/components/widgets/chart/ChartWidget.d.ts +0 -1
  313. package/dist/bigconsole/components/widgets/chart/ChartWidget.js +0 -2
  314. package/dist/bigconsole/components/widgets/chart/charts/AreaChart.d.ts +0 -1
  315. package/dist/bigconsole/components/widgets/chart/charts/AreaChart.js +0 -2
  316. package/dist/bigconsole/components/widgets/chart/charts/BarChart.d.ts +0 -1
  317. package/dist/bigconsole/components/widgets/chart/charts/BarChart.js +0 -2
  318. package/dist/bigconsole/components/widgets/chart/charts/ComboChart.d.ts +0 -1
  319. package/dist/bigconsole/components/widgets/chart/charts/ComboChart.js +0 -2
  320. package/dist/bigconsole/components/widgets/chart/charts/FunnelChart.d.ts +0 -1
  321. package/dist/bigconsole/components/widgets/chart/charts/FunnelChart.js +0 -2
  322. package/dist/bigconsole/components/widgets/chart/charts/LineChart.d.ts +0 -1
  323. package/dist/bigconsole/components/widgets/chart/charts/LineChart.js +0 -2
  324. package/dist/bigconsole/components/widgets/chart/charts/PieChart.d.ts +0 -1
  325. package/dist/bigconsole/components/widgets/chart/charts/PieChart.js +0 -2
  326. package/dist/bigconsole/components/widgets/chart/charts/ScatterChart.d.ts +0 -1
  327. package/dist/bigconsole/components/widgets/chart/charts/ScatterChart.js +0 -2
  328. package/dist/bigconsole/components/widgets/chart/charts/WaterfallChart.d.ts +0 -1
  329. package/dist/bigconsole/components/widgets/chart/charts/WaterfallChart.js +0 -2
  330. package/dist/bigconsole/components/widgets/chart/charts/index.d.ts +0 -1
  331. package/dist/bigconsole/components/widgets/chart/charts/referenceElements.d.ts +0 -1
  332. package/dist/bigconsole/components/widgets/chart/charts/referenceElements.js +0 -2
  333. package/dist/bigconsole/components/widgets/chart/charts/types.d.ts +0 -1
  334. package/dist/bigconsole/components/widgets/chart/index.d.ts +0 -1
  335. package/dist/bigconsole/components/widgets/comments/WidgetComments.d.ts +0 -1
  336. package/dist/bigconsole/components/widgets/comments/WidgetComments.js +0 -2
  337. package/dist/bigconsole/components/widgets/custom/CustomWidget.d.ts +0 -1
  338. package/dist/bigconsole/components/widgets/custom/CustomWidget.js +73 -133
  339. package/dist/bigconsole/components/widgets/custom/config.d.ts +0 -1
  340. package/dist/bigconsole/components/widgets/custom/config.js +0 -2
  341. package/dist/bigconsole/components/widgets/custom/index.d.ts +0 -1
  342. package/dist/bigconsole/components/widgets/custom/utils.d.ts +0 -1
  343. package/dist/bigconsole/components/widgets/custom/utils.js +0 -2
  344. package/dist/bigconsole/components/widgets/event-logs/EventLogViewer.d.ts +0 -1
  345. package/dist/bigconsole/components/widgets/event-logs/EventLogViewer.js +0 -2
  346. package/dist/bigconsole/components/widgets/event-logs/index.d.ts +0 -1
  347. package/dist/bigconsole/components/widgets/form/FormWidget.d.ts +0 -1
  348. package/dist/bigconsole/components/widgets/form/FormWidget.js +0 -2
  349. package/dist/bigconsole/components/widgets/form/index.d.ts +0 -1
  350. package/dist/bigconsole/components/widgets/funnel/index.d.ts +0 -1
  351. package/dist/bigconsole/components/widgets/funnel/index.js +0 -2
  352. package/dist/bigconsole/components/widgets/gauge/CircularGauge.d.ts +0 -1
  353. package/dist/bigconsole/components/widgets/gauge/CircularGauge.js +0 -2
  354. package/dist/bigconsole/components/widgets/gauge/GaugeConfig.d.ts +0 -1
  355. package/dist/bigconsole/components/widgets/gauge/GaugeConfig.js +0 -2
  356. package/dist/bigconsole/components/widgets/gauge/GaugeWidget.d.ts +0 -1
  357. package/dist/bigconsole/components/widgets/gauge/GaugeWidget.js +0 -2
  358. package/dist/bigconsole/components/widgets/gauge/LinearGauge.d.ts +0 -1
  359. package/dist/bigconsole/components/widgets/gauge/LinearGauge.js +0 -2
  360. package/dist/bigconsole/components/widgets/gauge/index.d.ts +0 -1
  361. package/dist/bigconsole/components/widgets/heatmap/HeatmapConfig.d.ts +0 -1
  362. package/dist/bigconsole/components/widgets/heatmap/HeatmapConfig.js +0 -2
  363. package/dist/bigconsole/components/widgets/heatmap/HeatmapWidget.d.ts +0 -1
  364. package/dist/bigconsole/components/widgets/heatmap/HeatmapWidget.js +0 -2
  365. package/dist/bigconsole/components/widgets/heatmap/index.d.ts +0 -1
  366. package/dist/bigconsole/components/widgets/iframe-widget/IframeWidget.d.ts +28 -10
  367. package/dist/bigconsole/components/widgets/iframe-widget/IframeWidget.js +115 -44
  368. package/dist/bigconsole/components/widgets/iframe-widget/framePolicy.d.ts +20 -0
  369. package/dist/bigconsole/components/widgets/iframe-widget/framePolicy.js +10 -0
  370. package/dist/bigconsole/components/widgets/iframe-widget/index.d.ts +2 -2
  371. package/dist/bigconsole/components/widgets/iframe-widget/index.js +3 -2
  372. package/dist/bigconsole/components/widgets/index.d.ts +0 -1
  373. package/dist/bigconsole/components/widgets/kanban/KanbanView.d.ts +0 -1
  374. package/dist/bigconsole/components/widgets/kanban/KanbanView.js +0 -2
  375. package/dist/bigconsole/components/widgets/kanban/KanbanWidget.d.ts +0 -1
  376. package/dist/bigconsole/components/widgets/kanban/KanbanWidget.js +0 -2
  377. package/dist/bigconsole/components/widgets/kanban/index.d.ts +0 -1
  378. package/dist/bigconsole/components/widgets/kanban/model.d.ts +0 -1
  379. package/dist/bigconsole/components/widgets/kanban/model.js +0 -2
  380. package/dist/bigconsole/components/widgets/kpi/KPIWidget.d.ts +0 -1
  381. package/dist/bigconsole/components/widgets/kpi/KPIWidget.js +0 -2
  382. package/dist/bigconsole/components/widgets/kpi/index.d.ts +0 -1
  383. package/dist/bigconsole/components/widgets/kpi-comparison/KPIComparisonWidget.d.ts +0 -1
  384. package/dist/bigconsole/components/widgets/kpi-comparison/KPIComparisonWidget.js +0 -2
  385. package/dist/bigconsole/components/widgets/kpi-comparison/index.d.ts +0 -1
  386. package/dist/bigconsole/components/widgets/list/ListConfig.d.ts +0 -1
  387. package/dist/bigconsole/components/widgets/list/ListConfig.js +0 -2
  388. package/dist/bigconsole/components/widgets/list/ListItem.d.ts +0 -1
  389. package/dist/bigconsole/components/widgets/list/ListItem.js +0 -2
  390. package/dist/bigconsole/components/widgets/list/ListWidget.d.ts +0 -1
  391. package/dist/bigconsole/components/widgets/list/ListWidget.js +0 -2
  392. package/dist/bigconsole/components/widgets/list/index.d.ts +0 -1
  393. package/dist/bigconsole/components/widgets/map-widget/MapWidget.d.ts +0 -1
  394. package/dist/bigconsole/components/widgets/map-widget/MapWidget.js +0 -2
  395. package/dist/bigconsole/components/widgets/map-widget/index.d.ts +0 -1
  396. package/dist/bigconsole/components/widgets/metric-card/ComparisonBadge.d.ts +0 -1
  397. package/dist/bigconsole/components/widgets/metric-card/ComparisonBadge.js +0 -2
  398. package/dist/bigconsole/components/widgets/metric-card/MetricCardConfig.d.ts +0 -1
  399. package/dist/bigconsole/components/widgets/metric-card/MetricCardConfig.js +0 -2
  400. package/dist/bigconsole/components/widgets/metric-card/MetricCardWidget.d.ts +0 -1
  401. package/dist/bigconsole/components/widgets/metric-card/MetricCardWidget.js +0 -2
  402. package/dist/bigconsole/components/widgets/metric-card/SparklineChart.d.ts +0 -1
  403. package/dist/bigconsole/components/widgets/metric-card/SparklineChart.js +0 -2
  404. package/dist/bigconsole/components/widgets/metric-card/TrendIndicator.d.ts +0 -1
  405. package/dist/bigconsole/components/widgets/metric-card/TrendIndicator.js +0 -2
  406. package/dist/bigconsole/components/widgets/metric-card/index.d.ts +0 -1
  407. package/dist/bigconsole/components/widgets/pivot-table/PivotTableWidget.d.ts +0 -1
  408. package/dist/bigconsole/components/widgets/pivot-table/PivotTableWidget.js +0 -2
  409. package/dist/bigconsole/components/widgets/pivot-table/index.d.ts +0 -1
  410. package/dist/bigconsole/components/widgets/progress/ProgressBar.d.ts +0 -1
  411. package/dist/bigconsole/components/widgets/progress/ProgressBar.js +0 -2
  412. package/dist/bigconsole/components/widgets/progress/ProgressConfig.d.ts +0 -1
  413. package/dist/bigconsole/components/widgets/progress/ProgressConfig.js +0 -2
  414. package/dist/bigconsole/components/widgets/progress/ProgressWidget.d.ts +0 -1
  415. package/dist/bigconsole/components/widgets/progress/ProgressWidget.js +0 -2
  416. package/dist/bigconsole/components/widgets/progress/index.d.ts +0 -1
  417. package/dist/bigconsole/components/widgets/retention/RetentionWidget.d.ts +0 -1
  418. package/dist/bigconsole/components/widgets/retention/RetentionWidget.js +0 -2
  419. package/dist/bigconsole/components/widgets/retention/index.d.ts +0 -1
  420. package/dist/bigconsole/components/widgets/states/EmptyState.d.ts +0 -1
  421. package/dist/bigconsole/components/widgets/states/EmptyState.js +0 -2
  422. package/dist/bigconsole/components/widgets/states/ErrorState.d.ts +0 -1
  423. package/dist/bigconsole/components/widgets/states/ErrorState.js +0 -2
  424. package/dist/bigconsole/components/widgets/states/LoadingState.d.ts +0 -1
  425. package/dist/bigconsole/components/widgets/states/LoadingState.js +0 -2
  426. package/dist/bigconsole/components/widgets/states/index.d.ts +0 -1
  427. package/dist/bigconsole/components/widgets/table/TableCell.d.ts +0 -1
  428. package/dist/bigconsole/components/widgets/table/TableCell.js +0 -2
  429. package/dist/bigconsole/components/widgets/table/TableConfig.d.ts +0 -1
  430. package/dist/bigconsole/components/widgets/table/TableConfig.js +0 -2
  431. package/dist/bigconsole/components/widgets/table/TableHeader.d.ts +0 -1
  432. package/dist/bigconsole/components/widgets/table/TableHeader.js +0 -2
  433. package/dist/bigconsole/components/widgets/table/TablePagination.d.ts +0 -1
  434. package/dist/bigconsole/components/widgets/table/TablePagination.js +0 -2
  435. package/dist/bigconsole/components/widgets/table/TableWidget.d.ts +0 -1
  436. package/dist/bigconsole/components/widgets/table/TableWidget.js +0 -2
  437. package/dist/bigconsole/components/widgets/table/cellLink.d.ts +0 -1
  438. package/dist/bigconsole/components/widgets/table/cellLink.js +0 -2
  439. package/dist/bigconsole/components/widgets/table/index.d.ts +0 -1
  440. package/dist/bigconsole/components/widgets/text-widget/TextWidget.d.ts +0 -1
  441. package/dist/bigconsole/components/widgets/text-widget/TextWidget.js +110 -29
  442. package/dist/bigconsole/components/widgets/text-widget/index.d.ts +0 -1
  443. package/dist/bigconsole/components/widgets/text-widget/textData.d.ts +6 -1
  444. package/dist/bigconsole/components/widgets/text-widget/textData.js +17 -16
  445. package/dist/bigconsole/components/widgets/timeline/TimelineWidget.d.ts +0 -1
  446. package/dist/bigconsole/components/widgets/timeline/TimelineWidget.js +0 -2
  447. package/dist/bigconsole/components/widgets/timeline/index.d.ts +0 -1
  448. package/dist/bigconsole/components/widgets/utils/conditionalFormat.d.ts +0 -1
  449. package/dist/bigconsole/components/widgets/utils/conditionalFormat.js +0 -2
  450. package/dist/bigconsole/components/widgets/utils/inferFields.d.ts +0 -1
  451. package/dist/bigconsole/components/widgets/utils/inferFields.js +0 -2
  452. package/dist/bigconsole/components/widgets/utils/targetProgress.d.ts +0 -1
  453. package/dist/bigconsole/components/widgets/utils/targetProgress.js +0 -2
  454. package/dist/bigconsole/components/widgets/utils/translate.d.ts +0 -1
  455. package/dist/bigconsole/components/widgets/utils/translate.js +0 -2
  456. package/dist/bigconsole/components/widgets/webhook-config/WebhookConfigPanel.d.ts +0 -1
  457. package/dist/bigconsole/components/widgets/webhook-config/WebhookConfigPanel.js +0 -2
  458. package/dist/bigconsole/components/widgets/webhook-config/index.d.ts +0 -1
  459. package/dist/bigconsole/components/widgets/widget-actions/WidgetActions.d.ts +0 -1
  460. package/dist/bigconsole/components/widgets/widget-actions/WidgetActions.js +0 -2
  461. package/dist/bigconsole/components/widgets/widget-actions/index.d.ts +0 -1
  462. package/dist/bigconsole/components/workflow/DataSinkMultiSelector.d.ts +0 -1
  463. package/dist/bigconsole/components/workflow/WorkflowCard.d.ts +0 -1
  464. package/dist/bigconsole/components/workflow/WorkflowCard.js +0 -2
  465. package/dist/bigconsole/components/workflow/WorkflowDeleteDialog.d.ts +0 -1
  466. package/dist/bigconsole/components/workflow/WorkflowDeleteDialog.js +0 -2
  467. package/dist/bigconsole/components/workflow/WorkflowDesignPreview.d.ts +0 -1
  468. package/dist/bigconsole/components/workflow/WorkflowDesignPreview.js +0 -2
  469. package/dist/bigconsole/components/workflow/WorkflowOpenGuard.d.ts +0 -1
  470. package/dist/bigconsole/components/workflow/WorkflowOpenGuard.js +0 -2
  471. package/dist/bigconsole/components/workflow/WorkflowSinkLinkForm.d.ts +0 -1
  472. package/dist/bigconsole/components/workflow/WorkflowSinkLinkForm.js +0 -2
  473. package/dist/bigconsole/components/workflow/WorkflowStatusBadge.d.ts +0 -1
  474. package/dist/bigconsole/components/workflow/WorkflowStatusBadge.js +0 -2
  475. package/dist/bigconsole/components/workflow/index.d.ts +0 -1
  476. package/dist/bigconsole/constants/backendErrors.d.ts +0 -1
  477. package/dist/bigconsole/constants.d.ts +0 -1
  478. package/dist/bigconsole/constants.js +0 -2
  479. package/dist/bigconsole/context/BigConsoleContext.d.ts +10 -1
  480. package/dist/bigconsole/context/BigConsoleContext.js +47 -32
  481. package/dist/bigconsole/context/index.d.ts +1 -2
  482. package/dist/bigconsole/contexts/CrossFilterContext.d.ts +0 -1
  483. package/dist/bigconsole/contexts/CrossFilterContext.js +0 -2
  484. package/dist/bigconsole/contexts/NavigationContext.d.ts +0 -1
  485. package/dist/bigconsole/contexts/NavigationContext.js +0 -2
  486. package/dist/bigconsole/contexts/index.d.ts +0 -1
  487. package/dist/bigconsole/customWidget/CustomWidgetBuilderSheet.d.ts +0 -1
  488. package/dist/bigconsole/customWidget/CustomWidgetBuilderSheet.js +0 -2
  489. package/dist/bigconsole/customWidget/CustomWidgetProposalPanel.d.ts +0 -1
  490. package/dist/bigconsole/customWidget/CustomWidgetProposalPanel.js +0 -2
  491. package/dist/bigconsole/customWidget/index.d.ts +0 -1
  492. package/dist/bigconsole/customWidget/proposalContract.d.ts +0 -1
  493. package/dist/bigconsole/customWidget/proposalContract.js +0 -2
  494. package/dist/bigconsole/customWidget/proposalSource.d.ts +0 -1
  495. package/dist/bigconsole/customWidget/proposalSource.js +0 -2
  496. package/dist/bigconsole/graphql/apollo-compat.d.ts +0 -1
  497. package/dist/bigconsole/graphql/storeTemplates.d.ts +0 -1
  498. package/dist/bigconsole/graphql/storeTemplates.js +0 -2
  499. package/dist/bigconsole/hooks/index.d.ts +0 -1
  500. package/dist/bigconsole/hooks/useActivePage.d.ts +0 -1
  501. package/dist/bigconsole/hooks/useActivePage.js +0 -2
  502. package/dist/bigconsole/hooks/useAutoRefresh.d.ts +0 -1
  503. package/dist/bigconsole/hooks/useAutoRefresh.js +0 -2
  504. package/dist/bigconsole/hooks/useBigConsoleAnalytics.d.ts +0 -1
  505. package/dist/bigconsole/hooks/useBigConsoleAnalytics.js +0 -2
  506. package/dist/bigconsole/hooks/useBigConsoleSettings.d.ts +0 -1
  507. package/dist/bigconsole/hooks/useBigConsoleSettings.js +0 -2
  508. package/dist/bigconsole/hooks/useCrossFilter.d.ts +0 -1
  509. package/dist/bigconsole/hooks/useCrossFilter.js +0 -2
  510. package/dist/bigconsole/hooks/useDashboardEmbedPolicy.d.ts +0 -1
  511. package/dist/bigconsole/hooks/useDashboardEmbedPolicy.js +0 -2
  512. package/dist/bigconsole/hooks/useDashboardImageExport.d.ts +0 -1
  513. package/dist/bigconsole/hooks/useDashboardImageExport.js +0 -2
  514. package/dist/bigconsole/hooks/useDashboardOperations.d.ts +0 -1
  515. package/dist/bigconsole/hooks/useDashboardOperations.js +0 -2
  516. package/dist/bigconsole/hooks/useDashboardSharing.d.ts +0 -1
  517. package/dist/bigconsole/hooks/useDashboardSharing.js +0 -2
  518. package/dist/bigconsole/hooks/useDashboardTemplates.d.ts +0 -1
  519. package/dist/bigconsole/hooks/useDashboardViews.d.ts +0 -1
  520. package/dist/bigconsole/hooks/useDashboardViews.js +0 -2
  521. package/dist/bigconsole/hooks/useDataSinkAlerts.d.ts +0 -1
  522. package/dist/bigconsole/hooks/useDataSinkAlerts.js +0 -2
  523. package/dist/bigconsole/hooks/useDataSinkOperations.d.ts +7 -1
  524. package/dist/bigconsole/hooks/useDataSinkOperations.js +109 -100
  525. package/dist/bigconsole/hooks/useDataSinkSubscription.d.ts +0 -1
  526. package/dist/bigconsole/hooks/useDataSinkSubscription.js +0 -3
  527. package/dist/bigconsole/hooks/useDrilldown.d.ts +0 -1
  528. package/dist/bigconsole/hooks/useDrilldown.js +69 -70
  529. package/dist/bigconsole/hooks/useDrilldownOperations.d.ts +0 -1
  530. package/dist/bigconsole/hooks/useDrilldownOperations.js +0 -2
  531. package/dist/bigconsole/hooks/useEventLogs.d.ts +0 -1
  532. package/dist/bigconsole/hooks/useEventLogs.js +0 -2
  533. package/dist/bigconsole/hooks/useEventWebhooks.d.ts +0 -1
  534. package/dist/bigconsole/hooks/useEventWebhooks.js +0 -2
  535. package/dist/bigconsole/hooks/useExportDashboard.d.ts +0 -1
  536. package/dist/bigconsole/hooks/useExportDashboard.js +0 -2
  537. package/dist/bigconsole/hooks/useExportDataSink.d.ts +0 -1
  538. package/dist/bigconsole/hooks/useExportDataSink.js +1 -3
  539. package/dist/bigconsole/hooks/useExportParser.d.ts +0 -1
  540. package/dist/bigconsole/hooks/useExportParser.js +0 -2
  541. package/dist/bigconsole/hooks/useFilterPresets.d.ts +0 -1
  542. package/dist/bigconsole/hooks/useFilterPresets.js +0 -2
  543. package/dist/bigconsole/hooks/useFilterUrlSync.d.ts +0 -1
  544. package/dist/bigconsole/hooks/useFilterUrlSync.js +0 -2
  545. package/dist/bigconsole/hooks/useGlobalFilters.d.ts +0 -1
  546. package/dist/bigconsole/hooks/useGlobalFilters.js +0 -2
  547. package/dist/bigconsole/hooks/useImportDashboard.d.ts +0 -1
  548. package/dist/bigconsole/hooks/useImportDashboard.js +0 -2
  549. package/dist/bigconsole/hooks/useImportDataSink.d.ts +0 -1
  550. package/dist/bigconsole/hooks/useImportDataSink.js +102 -92
  551. package/dist/bigconsole/hooks/useImportParser.d.ts +0 -1
  552. package/dist/bigconsole/hooks/useImportParser.js +0 -2
  553. package/dist/bigconsole/hooks/useInstalledWidgets.d.ts +0 -1
  554. package/dist/bigconsole/hooks/useInstalledWidgets.js +0 -2
  555. package/dist/bigconsole/hooks/useModalFocusTrap.d.ts +0 -1
  556. package/dist/bigconsole/hooks/useModalFocusTrap.js +0 -2
  557. package/dist/bigconsole/hooks/usePageOperations.d.ts +0 -1
  558. package/dist/bigconsole/hooks/usePageOperations.js +0 -2
  559. package/dist/bigconsole/hooks/useParserOperations.d.ts +0 -1
  560. package/dist/bigconsole/hooks/useParserOperations.js +0 -2
  561. package/dist/bigconsole/hooks/usePipelineOperations.d.ts +0 -1
  562. package/dist/bigconsole/hooks/usePipelineOperations.js +0 -2
  563. package/dist/bigconsole/hooks/useShareRecipients.d.ts +0 -1
  564. package/dist/bigconsole/hooks/useShareRecipients.js +0 -2
  565. package/dist/bigconsole/hooks/useStoreDashboardTemplates.d.ts +0 -1
  566. package/dist/bigconsole/hooks/useStoreDashboardTemplates.js +0 -2
  567. package/dist/bigconsole/hooks/useWidgetActions.d.ts +0 -1
  568. package/dist/bigconsole/hooks/useWidgetActions.js +0 -2
  569. package/dist/bigconsole/hooks/useWidgetCatalog.d.ts +0 -1
  570. package/dist/bigconsole/hooks/useWidgetCatalog.js +0 -2
  571. package/dist/bigconsole/hooks/useWidgetComments.d.ts +0 -1
  572. package/dist/bigconsole/hooks/useWidgetComments.js +0 -2
  573. package/dist/bigconsole/hooks/useWidgetConfigPersist.d.ts +0 -1
  574. package/dist/bigconsole/hooks/useWidgetConfigPersist.js +0 -2
  575. package/dist/bigconsole/hooks/useWidgetData.d.ts +0 -1
  576. package/dist/bigconsole/hooks/useWidgetData.js +0 -2
  577. package/dist/bigconsole/hooks/useWidgetEvents.d.ts +0 -1
  578. package/dist/bigconsole/hooks/useWidgetEvents.js +0 -2
  579. package/dist/bigconsole/hooks/useWidgetExport.d.ts +0 -1
  580. package/dist/bigconsole/hooks/useWidgetExport.js +0 -2
  581. package/dist/bigconsole/hooks/useWidgetOperations.d.ts +0 -1
  582. package/dist/bigconsole/hooks/useWidgetOperations.js +0 -2
  583. package/dist/bigconsole/hooks/useWorkflowOperations.d.ts +0 -1
  584. package/dist/bigconsole/hooks/useWorkflowOperations.js +0 -2
  585. package/dist/bigconsole/index.d.ts +0 -1
  586. package/dist/bigconsole/modules/dashboard/index.d.ts +0 -1
  587. package/dist/bigconsole/modules/index.d.ts +0 -1
  588. package/dist/bigconsole/modules/renderer/index.d.ts +0 -1
  589. package/dist/bigconsole/modules/widget/index.d.ts +0 -1
  590. package/dist/bigconsole/pages/AdminPage.d.ts +0 -1
  591. package/dist/bigconsole/pages/AdminPage.js +0 -2
  592. package/dist/bigconsole/pages/DashboardBuilderPage.d.ts +0 -1
  593. package/dist/bigconsole/pages/DashboardBuilderPage.js +0 -2
  594. package/dist/bigconsole/pages/DashboardViewPage.d.ts +0 -1
  595. package/dist/bigconsole/pages/DashboardViewPage.js +205 -207
  596. package/dist/bigconsole/pages/DashboardsPage.d.ts +0 -1
  597. package/dist/bigconsole/pages/DashboardsPage.js +0 -2
  598. package/dist/bigconsole/pages/DataParsersPage.d.ts +0 -1
  599. package/dist/bigconsole/pages/DataParsersPage.js +0 -2
  600. package/dist/bigconsole/pages/DataSinkAlertsPage.d.ts +0 -1
  601. package/dist/bigconsole/pages/DataSinkAlertsPage.js +0 -2
  602. package/dist/bigconsole/pages/DataSinkBuilderPage.d.ts +0 -1
  603. package/dist/bigconsole/pages/DataSinkBuilderPage.js +312 -282
  604. package/dist/bigconsole/pages/DataSinkViewPage.d.ts +0 -1
  605. package/dist/bigconsole/pages/DataSinkViewPage.js +256 -257
  606. package/dist/bigconsole/pages/DataSinksPage.d.ts +0 -1
  607. package/dist/bigconsole/pages/DataSinksPage.js +196 -197
  608. package/dist/bigconsole/pages/DataSourcesPage.d.ts +0 -1
  609. package/dist/bigconsole/pages/DataSourcesPage.js +0 -2
  610. package/dist/bigconsole/pages/InsightsPage.d.ts +0 -1
  611. package/dist/bigconsole/pages/InsightsPage.js +0 -2
  612. package/dist/bigconsole/pages/OverviewPage.d.ts +0 -1
  613. package/dist/bigconsole/pages/OverviewPage.js +0 -2
  614. package/dist/bigconsole/pages/ParserBuilderPage.d.ts +0 -1
  615. package/dist/bigconsole/pages/ParserBuilderPage.js +0 -2
  616. package/dist/bigconsole/pages/ParserViewPage.d.ts +0 -1
  617. package/dist/bigconsole/pages/ParserViewPage.js +0 -2
  618. package/dist/bigconsole/pages/PipelineBuilderPage.d.ts +0 -1
  619. package/dist/bigconsole/pages/PipelineBuilderPage.js +0 -2
  620. package/dist/bigconsole/pages/PipelineViewPage.d.ts +0 -1
  621. package/dist/bigconsole/pages/PipelineViewPage.js +0 -2
  622. package/dist/bigconsole/pages/PipelinesPage.d.ts +0 -1
  623. package/dist/bigconsole/pages/PipelinesPage.js +0 -2
  624. package/dist/bigconsole/pages/SettingsPage.d.ts +0 -1
  625. package/dist/bigconsole/pages/SettingsPage.js +0 -2
  626. package/dist/bigconsole/pages/WidgetDemoPage.d.ts +0 -1
  627. package/dist/bigconsole/pages/WidgetDemoPage.js +0 -2
  628. package/dist/bigconsole/pages/WorkflowViewPage.d.ts +0 -1
  629. package/dist/bigconsole/pages/WorkflowViewPage.js +0 -2
  630. package/dist/bigconsole/pages/WorkflowsPage.d.ts +0 -1
  631. package/dist/bigconsole/pages/WorkflowsPage.js +0 -2
  632. package/dist/bigconsole/pages/index.d.ts +0 -1
  633. package/dist/bigconsole/providers/BigConsoleQuotaProvider.d.ts +0 -1
  634. package/dist/bigconsole/providers/BigConsoleQuotaProvider.js +0 -2
  635. package/dist/bigconsole/renderers/adapters/AdaptiveCardRenderer.d.ts +0 -1
  636. package/dist/bigconsole/renderers/adapters/AdaptiveCardRenderer.js +235 -124
  637. package/dist/bigconsole/renderers/adapters/BigConsoleRenderer.d.ts +0 -1
  638. package/dist/bigconsole/renderers/adapters/BigConsoleRenderer.js +0 -2
  639. package/dist/bigconsole/renderers/adapters/BlockKitRenderer.d.ts +6 -2
  640. package/dist/bigconsole/renderers/adapters/BlockKitRenderer.js +155 -157
  641. package/dist/bigconsole/renderers/adapters/CustomRenderer.d.ts +0 -1
  642. package/dist/bigconsole/renderers/adapters/CustomRenderer.js +0 -2
  643. package/dist/bigconsole/renderers/adapters/adaptiveCardContent.d.ts +29 -0
  644. package/dist/bigconsole/renderers/adapters/adaptiveCardContent.js +51 -0
  645. package/dist/bigconsole/renderers/adapters/index.d.ts +0 -1
  646. package/dist/bigconsole/renderers/factory/WidgetRendererFactory.d.ts +0 -1
  647. package/dist/bigconsole/renderers/factory/WidgetRendererFactory.js +0 -2
  648. package/dist/bigconsole/renderers/index.d.ts +0 -1
  649. package/dist/bigconsole/renderers/registry/RendererRegistry.d.ts +0 -1
  650. package/dist/bigconsole/renderers/registry/RendererRegistry.js +0 -2
  651. package/dist/bigconsole/renderers/types/index.d.ts +0 -1
  652. package/dist/bigconsole/renderers/types/renderer.d.ts +0 -1
  653. package/dist/bigconsole/store/dashboardStore.d.ts +0 -1
  654. package/dist/bigconsole/store/dashboardStore.js +0 -2
  655. package/dist/bigconsole/store/dataSinkStore.d.ts +0 -1
  656. package/dist/bigconsole/store/dataSinkStore.js +0 -2
  657. package/dist/bigconsole/store/drilldownStore.d.ts +0 -1
  658. package/dist/bigconsole/store/drilldownStore.js +0 -2
  659. package/dist/bigconsole/store/index.d.ts +0 -1
  660. package/dist/bigconsole/store/parserStore.d.ts +0 -1
  661. package/dist/bigconsole/store/parserStore.js +0 -2
  662. package/dist/bigconsole/store/pipelineStore.d.ts +0 -1
  663. package/dist/bigconsole/store/pipelineStore.js +0 -2
  664. package/dist/bigconsole/store/widgetStore.d.ts +0 -1
  665. package/dist/bigconsole/store/widgetStore.js +0 -2
  666. package/dist/bigconsole/store/workflowStore.d.ts +0 -1
  667. package/dist/bigconsole/store/workflowStore.js +0 -2
  668. package/dist/bigconsole/types/index.d.ts +17 -3
  669. package/dist/bigconsole/utils/alertRules.d.ts +0 -1
  670. package/dist/bigconsole/utils/alertRules.js +0 -2
  671. package/dist/bigconsole/utils/backendError.d.ts +0 -1
  672. package/dist/bigconsole/utils/createDialogParam.d.ts +0 -1
  673. package/dist/bigconsole/utils/createDialogParam.js +0 -2
  674. package/dist/bigconsole/utils/csv.d.ts +0 -1
  675. package/dist/bigconsole/utils/csv.js +0 -2
  676. package/dist/bigconsole/utils/dashboardTemplateContent.d.ts +0 -1
  677. package/dist/bigconsole/utils/dashboardTemplateContent.js +0 -2
  678. package/dist/bigconsole/utils/dataSinkPayload.d.ts +48 -0
  679. package/dist/bigconsole/utils/dataSinkPayload.js +38 -0
  680. package/dist/bigconsole/utils/drilldownParams.d.ts +0 -1
  681. package/dist/bigconsole/utils/drilldownParams.js +0 -2
  682. package/dist/bigconsole/utils/format.d.ts +0 -1
  683. package/dist/bigconsole/utils/format.js +0 -2
  684. package/dist/bigconsole/utils/index.d.ts +2 -1
  685. package/dist/bigconsole/utils/quota.d.ts +0 -1
  686. package/dist/bigconsole/utils/quota.js +0 -2
  687. package/dist/bigconsole/utils/safeUrl.d.ts +79 -0
  688. package/dist/bigconsole/utils/safeUrl.js +93 -0
  689. package/dist/bigconsole/utils/sanitizeHtml.d.ts +16 -0
  690. package/dist/bigconsole/utils/sanitizeHtml.js +67 -0
  691. package/dist/bigconsole/utils/semanticTokens.d.ts +0 -1
  692. package/dist/bigconsole/utils/semanticTokens.js +0 -2
  693. package/dist/bigconsole/utils/templateInstallInputs.d.ts +0 -1
  694. package/dist/bigconsole/utils/templateInstallInputs.js +0 -2
  695. package/dist/bigconsole/utils/widgetBinding.d.ts +0 -1
  696. package/dist/bigconsole/utils/widgetBinding.js +0 -2
  697. package/dist/bigconsole/utils/widgetPositioning.d.ts +0 -1
  698. package/dist/bigconsole/utils/widgetPositioning.js +0 -2
  699. package/dist/bigconsole/utils/widgetTypeMapping.d.ts +0 -1
  700. package/dist/bigconsole/utils/widgetTypeMapping.js +0 -2
  701. package/dist/bigconsole/workflowOpen.d.ts +0 -1
  702. package/dist/bigconsole/workflowOpen.js +0 -2
  703. package/dist/constants/permissions.d.ts +0 -1
  704. package/dist/constants/permissions.js +0 -2
  705. package/dist/generated/global-operations.d.ts +0 -1
  706. package/dist/generated/global-operations.js +0 -2
  707. package/dist/generated/global-types.d.ts +0 -1
  708. package/dist/generated/wspace-operations.d.ts +138 -9
  709. package/dist/generated/wspace-operations.js +281 -242
  710. package/dist/generated/wspace-types.d.ts +0 -1
  711. package/dist/generated/wspace-types.js +0 -2
  712. package/dist/index.d.ts +0 -1
  713. package/dist/node_modules/@e965/xlsx/xlsx.js +0 -2
  714. package/dist/node_modules/dompurify/dist/purify.es.js +800 -0
  715. package/dist/node_modules/pdfjs-dist/build/pdf.js +0 -2
  716. package/dist/shared/hooks/useTr.d.ts +0 -1
  717. package/dist/shared/hooks/useTr.js +0 -2
  718. package/dist/translations/en.d.ts +0 -1
  719. package/dist/utils/nativeBridge.d.ts +0 -1
  720. package/package.json +9 -4
  721. package/dist/bigconsole/AdminRoot.d.ts.map +0 -1
  722. package/dist/bigconsole/AdminRoot.js.map +0 -1
  723. package/dist/bigconsole/AdminRoutes.d.ts.map +0 -1
  724. package/dist/bigconsole/AdminRoutes.js.map +0 -1
  725. package/dist/bigconsole/BigConsoleRoot.d.ts.map +0 -1
  726. package/dist/bigconsole/BigConsoleRoot.js.map +0 -1
  727. package/dist/bigconsole/BigConsoleRoutes.d.ts.map +0 -1
  728. package/dist/bigconsole/BigConsoleRoutes.js.map +0 -1
  729. package/dist/bigconsole/assistant/assistantApi.d.ts.map +0 -1
  730. package/dist/bigconsole/assistant/assistantApi.js.map +0 -1
  731. package/dist/bigconsole/assistant/assistantProduct.d.ts.map +0 -1
  732. package/dist/bigconsole/assistant/assistantProduct.js.map +0 -1
  733. package/dist/bigconsole/assistant/assistantPrompt.d.ts.map +0 -1
  734. package/dist/bigconsole/assistant/assistantPrompt.js.map +0 -1
  735. package/dist/bigconsole/assistant/assistantRunPersistence.d.ts.map +0 -1
  736. package/dist/bigconsole/assistant/assistantRunPersistence.js.map +0 -1
  737. package/dist/bigconsole/assistant/assistantRunStore.d.ts.map +0 -1
  738. package/dist/bigconsole/assistant/assistantRunStore.js.map +0 -1
  739. package/dist/bigconsole/assistant/assistantRuntime.d.ts.map +0 -1
  740. package/dist/bigconsole/assistant/assistantRuntime.js.map +0 -1
  741. package/dist/bigconsole/assistant/attachmentExtract.d.ts.map +0 -1
  742. package/dist/bigconsole/assistant/attachmentExtract.js.map +0 -1
  743. package/dist/bigconsole/assistant/conversationHistoryApi.d.ts.map +0 -1
  744. package/dist/bigconsole/assistant/conversationHistoryApi.js.map +0 -1
  745. package/dist/bigconsole/assistant/createSandboxAssistantTransport.d.ts.map +0 -1
  746. package/dist/bigconsole/assistant/createSandboxAssistantTransport.js.map +0 -1
  747. package/dist/bigconsole/assistant/index.d.ts.map +0 -1
  748. package/dist/bigconsole/assistant/modes.d.ts.map +0 -1
  749. package/dist/bigconsole/assistant/modes.js.map +0 -1
  750. package/dist/bigconsole/assistant/pageContext.d.ts.map +0 -1
  751. package/dist/bigconsole/assistant/pageContext.js.map +0 -1
  752. package/dist/bigconsole/assistant/previewController.d.ts.map +0 -1
  753. package/dist/bigconsole/assistant/previewController.js.map +0 -1
  754. package/dist/bigconsole/assistant/previewMutationResult.d.ts.map +0 -1
  755. package/dist/bigconsole/assistant/previewMutationResult.js.map +0 -1
  756. package/dist/bigconsole/assistant/previewRunAction.d.ts.map +0 -1
  757. package/dist/bigconsole/assistant/previewRunAction.js.map +0 -1
  758. package/dist/bigconsole/assistant/product.d.ts.map +0 -1
  759. package/dist/bigconsole/assistant/product.js.map +0 -1
  760. package/dist/bigconsole/assistant/recordAdapters.d.ts.map +0 -1
  761. package/dist/bigconsole/assistant/recordAdapters.js.map +0 -1
  762. package/dist/bigconsole/assistant/types.d.ts.map +0 -1
  763. package/dist/bigconsole/assistant/useAssistantRunWorkspace.d.ts.map +0 -1
  764. package/dist/bigconsole/assistant/useAssistantRunWorkspace.js.map +0 -1
  765. package/dist/bigconsole/assistant/useWorkspaceWriteAccess.d.ts.map +0 -1
  766. package/dist/bigconsole/assistant/useWorkspaceWriteAccess.js.map +0 -1
  767. package/dist/bigconsole/components/DrilldownDashboardRenderer.d.ts.map +0 -1
  768. package/dist/bigconsole/components/DrilldownDashboardRenderer.js.map +0 -1
  769. package/dist/bigconsole/components/DrilldownModal.d.ts.map +0 -1
  770. package/dist/bigconsole/components/DrilldownModal.js.map +0 -1
  771. package/dist/bigconsole/components/builder/BuilderCanvas.d.ts.map +0 -1
  772. package/dist/bigconsole/components/builder/BuilderCanvas.js.map +0 -1
  773. package/dist/bigconsole/components/builder/BuilderTopbar.d.ts.map +0 -1
  774. package/dist/bigconsole/components/builder/BuilderTopbar.js.map +0 -1
  775. package/dist/bigconsole/components/builder/DashboardEditorShell.d.ts.map +0 -1
  776. package/dist/bigconsole/components/builder/DashboardEditorShell.js.map +0 -1
  777. package/dist/bigconsole/components/builder/WidgetInspector.d.ts.map +0 -1
  778. package/dist/bigconsole/components/builder/WidgetInspector.js.map +0 -1
  779. package/dist/bigconsole/components/builder/index.d.ts.map +0 -1
  780. package/dist/bigconsole/components/builder/inspector/AdvancedSection.d.ts.map +0 -1
  781. package/dist/bigconsole/components/builder/inspector/AdvancedSection.js.map +0 -1
  782. package/dist/bigconsole/components/builder/inspector/AppearanceSection.d.ts.map +0 -1
  783. package/dist/bigconsole/components/builder/inspector/AppearanceSection.js.map +0 -1
  784. package/dist/bigconsole/components/builder/inspector/DataBindingSection.d.ts.map +0 -1
  785. package/dist/bigconsole/components/builder/inspector/DataBindingSection.js.map +0 -1
  786. package/dist/bigconsole/components/builder/inspector/GeneralSection.d.ts.map +0 -1
  787. package/dist/bigconsole/components/builder/inspector/GeneralSection.js.map +0 -1
  788. package/dist/bigconsole/components/builder/inspector/LayoutSection.d.ts.map +0 -1
  789. package/dist/bigconsole/components/builder/inspector/LayoutSection.js.map +0 -1
  790. package/dist/bigconsole/components/builder/inspector/index.d.ts.map +0 -1
  791. package/dist/bigconsole/components/common/Section.d.ts.map +0 -1
  792. package/dist/bigconsole/components/common/Section.js.map +0 -1
  793. package/dist/bigconsole/components/common/index.d.ts.map +0 -1
  794. package/dist/bigconsole/components/common/sectionStyles.d.ts.map +0 -1
  795. package/dist/bigconsole/components/common/sectionStyles.js.map +0 -1
  796. package/dist/bigconsole/components/dashboard/CreateDashboardDialog.d.ts.map +0 -1
  797. package/dist/bigconsole/components/dashboard/CreateDashboardDialog.js.map +0 -1
  798. package/dist/bigconsole/components/dashboard/DashboardCanvas.d.ts.map +0 -1
  799. package/dist/bigconsole/components/dashboard/DashboardCanvas.js.map +0 -1
  800. package/dist/bigconsole/components/dashboard/DashboardGrid.d.ts.map +0 -1
  801. package/dist/bigconsole/components/dashboard/DashboardGrid.js.map +0 -1
  802. package/dist/bigconsole/components/dashboard/DashboardStatusPill.d.ts.map +0 -1
  803. package/dist/bigconsole/components/dashboard/DashboardStatusPill.js.map +0 -1
  804. package/dist/bigconsole/components/dashboard/DashboardToolbar.d.ts.map +0 -1
  805. package/dist/bigconsole/components/dashboard/DashboardToolbar.js.map +0 -1
  806. package/dist/bigconsole/components/dashboard/DrilldownBreadcrumb.d.ts.map +0 -1
  807. package/dist/bigconsole/components/dashboard/DrilldownBreadcrumb.js.map +0 -1
  808. package/dist/bigconsole/components/dashboard/ExportDashboardDialog.d.ts.map +0 -1
  809. package/dist/bigconsole/components/dashboard/ExportDashboardDialog.js.map +0 -1
  810. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterChip.d.ts.map +0 -1
  811. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterChip.js.map +0 -1
  812. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterEditor.d.ts.map +0 -1
  813. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterEditor.js.map +0 -1
  814. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterPresetSelector.d.ts.map +0 -1
  815. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterPresetSelector.js.map +0 -1
  816. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.d.ts.map +0 -1
  817. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.js.map +0 -1
  818. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/index.d.ts.map +0 -1
  819. package/dist/bigconsole/components/dashboard/ImportDashboardDialog.d.ts.map +0 -1
  820. package/dist/bigconsole/components/dashboard/ImportDashboardDialog.js.map +0 -1
  821. package/dist/bigconsole/components/dashboard/LiveBoardBanner.d.ts.map +0 -1
  822. package/dist/bigconsole/components/dashboard/LiveBoardBanner.js.map +0 -1
  823. package/dist/bigconsole/components/dashboard/LiveCanvasToggle.d.ts.map +0 -1
  824. package/dist/bigconsole/components/dashboard/LiveCanvasToggle.js.map +0 -1
  825. package/dist/bigconsole/components/dashboard/PageTabsManager/PageTabsManager.d.ts.map +0 -1
  826. package/dist/bigconsole/components/dashboard/PageTabsManager/PageTabsManager.js.map +0 -1
  827. package/dist/bigconsole/components/dashboard/PageTabsManager/index.d.ts.map +0 -1
  828. package/dist/bigconsole/components/dashboard/PublishToStoreDialog.d.ts.map +0 -1
  829. package/dist/bigconsole/components/dashboard/PublishToStoreDialog.js.map +0 -1
  830. package/dist/bigconsole/components/dashboard/SavedViewsDropdown/SavedViewsDropdown.d.ts.map +0 -1
  831. package/dist/bigconsole/components/dashboard/SavedViewsDropdown/SavedViewsDropdown.js.map +0 -1
  832. package/dist/bigconsole/components/dashboard/SavedViewsDropdown/index.d.ts.map +0 -1
  833. package/dist/bigconsole/components/dashboard/ShareDialog/EmbedTab.d.ts.map +0 -1
  834. package/dist/bigconsole/components/dashboard/ShareDialog/EmbedTab.js.map +0 -1
  835. package/dist/bigconsole/components/dashboard/ShareDialog/ShareDialog.d.ts.map +0 -1
  836. package/dist/bigconsole/components/dashboard/ShareDialog/ShareDialog.js.map +0 -1
  837. package/dist/bigconsole/components/dashboard/ShareDialog/index.d.ts.map +0 -1
  838. package/dist/bigconsole/components/dashboard/StoreTemplatePicker.d.ts.map +0 -1
  839. package/dist/bigconsole/components/dashboard/StoreTemplatePicker.js.map +0 -1
  840. package/dist/bigconsole/components/dashboard/TemplateInstallOptions.d.ts.map +0 -1
  841. package/dist/bigconsole/components/dashboard/TemplateInstallOptions.js.map +0 -1
  842. package/dist/bigconsole/components/dashboard/TemplateLayoutPreview.d.ts.map +0 -1
  843. package/dist/bigconsole/components/dashboard/TemplateLayoutPreview.js.map +0 -1
  844. package/dist/bigconsole/components/dashboard/TemplatePicker/TemplatePicker.d.ts.map +0 -1
  845. package/dist/bigconsole/components/dashboard/TemplatePicker/index.d.ts.map +0 -1
  846. package/dist/bigconsole/components/dashboard/TemplateSetupBanner.d.ts.map +0 -1
  847. package/dist/bigconsole/components/dashboard/TemplateSetupBanner.js.map +0 -1
  848. package/dist/bigconsole/components/dashboard/WidgetPalette.d.ts.map +0 -1
  849. package/dist/bigconsole/components/dashboard/WidgetPalette.js.map +0 -1
  850. package/dist/bigconsole/components/dashboard/index.d.ts.map +0 -1
  851. package/dist/bigconsole/components/datasink/AlertExecutionHistory.d.ts.map +0 -1
  852. package/dist/bigconsole/components/datasink/AlertExecutionHistory.js.map +0 -1
  853. package/dist/bigconsole/components/datasink/AlertRuleEditor.d.ts.map +0 -1
  854. package/dist/bigconsole/components/datasink/AlertRuleEditor.js.map +0 -1
  855. package/dist/bigconsole/components/datasink/CacheTTLSelector.d.ts.map +0 -1
  856. package/dist/bigconsole/components/datasink/CacheTTLSelector.js.map +0 -1
  857. package/dist/bigconsole/components/datasink/ConfigurationForm.d.ts.map +0 -1
  858. package/dist/bigconsole/components/datasink/DataPreviewPanel.d.ts.map +0 -1
  859. package/dist/bigconsole/components/datasink/DataSinkCard.d.ts.map +0 -1
  860. package/dist/bigconsole/components/datasink/DataSinkCard.js.map +0 -1
  861. package/dist/bigconsole/components/datasink/DataSinkDataViewer.d.ts.map +0 -1
  862. package/dist/bigconsole/components/datasink/DataSinkDataViewer.js.map +0 -1
  863. package/dist/bigconsole/components/datasink/DataSinkDeleteDialog.d.ts.map +0 -1
  864. package/dist/bigconsole/components/datasink/DataSinkDeleteDialog.js.map +0 -1
  865. package/dist/bigconsole/components/datasink/DataSinkRefreshConfig.d.ts.map +0 -1
  866. package/dist/bigconsole/components/datasink/DataSinkRefreshDialog.d.ts.map +0 -1
  867. package/dist/bigconsole/components/datasink/DataSinkRefreshDialog.js.map +0 -1
  868. package/dist/bigconsole/components/datasink/DataSinkStatusBadge.d.ts.map +0 -1
  869. package/dist/bigconsole/components/datasink/DataSinkStatusBadge.js.map +0 -1
  870. package/dist/bigconsole/components/datasink/DataSinkTableViewer.d.ts.map +0 -1
  871. package/dist/bigconsole/components/datasink/DataSinkTableViewer.js.map +0 -1
  872. package/dist/bigconsole/components/datasink/ExportDataSinkDialog.d.ts.map +0 -1
  873. package/dist/bigconsole/components/datasink/ExportDataSinkDialog.js.map +0 -1
  874. package/dist/bigconsole/components/datasink/FluidGridsPanel.d.ts.map +0 -1
  875. package/dist/bigconsole/components/datasink/ImportDataGuideDialog.d.ts.map +0 -1
  876. package/dist/bigconsole/components/datasink/ImportDataGuideDialog.js.map +0 -1
  877. package/dist/bigconsole/components/datasink/ImportDataSinkDialog.d.ts.map +0 -1
  878. package/dist/bigconsole/components/datasink/ImportDataSinkDialog.js.map +0 -1
  879. package/dist/bigconsole/components/datasink/LinkedParsersPanel.d.ts.map +0 -1
  880. package/dist/bigconsole/components/datasink/LinkedParsersPanel.js.map +0 -1
  881. package/dist/bigconsole/components/datasink/LinkedWorkflowsPanel.d.ts.map +0 -1
  882. package/dist/bigconsole/components/datasink/LinkedWorkflowsPanel.js.map +0 -1
  883. package/dist/bigconsole/components/datasink/RefreshTypeSelector.d.ts.map +0 -1
  884. package/dist/bigconsole/components/datasink/RefreshTypeSelector.js.map +0 -1
  885. package/dist/bigconsole/components/datasink/SetupStateBadge.d.ts.map +0 -1
  886. package/dist/bigconsole/components/datasink/SetupStateBadge.js.map +0 -1
  887. package/dist/bigconsole/components/datasink/WorkflowStatusPanel.d.ts.map +0 -1
  888. package/dist/bigconsole/components/datasink/WorkflowStatusPanel.js.map +0 -1
  889. package/dist/bigconsole/components/datasink/index.d.ts.map +0 -1
  890. package/dist/bigconsole/components/embed/EmbedErrorBoundary.d.ts.map +0 -1
  891. package/dist/bigconsole/components/embed/EmbedErrorBoundary.js.map +0 -1
  892. package/dist/bigconsole/components/embed/EmbedWidgetRenderer.d.ts.map +0 -1
  893. package/dist/bigconsole/components/embed/EmbedWidgetRenderer.js.map +0 -1
  894. package/dist/bigconsole/components/embed/ReadOnlyDashboardRenderer.d.ts.map +0 -1
  895. package/dist/bigconsole/components/embed/ReadOnlyDashboardRenderer.js.map +0 -1
  896. package/dist/bigconsole/components/embed/drilldown.d.ts.map +0 -1
  897. package/dist/bigconsole/components/embed/drilldown.js.map +0 -1
  898. package/dist/bigconsole/components/embed/index.d.ts.map +0 -1
  899. package/dist/bigconsole/components/embed/renderer-manifest.d.ts.map +0 -1
  900. package/dist/bigconsole/components/embed/renderer-manifest.js.map +0 -1
  901. package/dist/bigconsole/components/embed/types.d.ts.map +0 -1
  902. package/dist/bigconsole/components/embed/types.js.map +0 -1
  903. package/dist/bigconsole/components/embed/validate.d.ts.map +0 -1
  904. package/dist/bigconsole/components/embed/validate.js.map +0 -1
  905. package/dist/bigconsole/components/embed/widgetShim.d.ts.map +0 -1
  906. package/dist/bigconsole/components/embed/widgetShim.js.map +0 -1
  907. package/dist/bigconsole/components/embed/widgets/CalendarEmbed.d.ts.map +0 -1
  908. package/dist/bigconsole/components/embed/widgets/CalendarEmbed.js.map +0 -1
  909. package/dist/bigconsole/components/embed/widgets/ChartEmbed.d.ts.map +0 -1
  910. package/dist/bigconsole/components/embed/widgets/ChartEmbed.js.map +0 -1
  911. package/dist/bigconsole/components/embed/widgets/EmbedFrame.d.ts.map +0 -1
  912. package/dist/bigconsole/components/embed/widgets/EmbedFrame.js.map +0 -1
  913. package/dist/bigconsole/components/embed/widgets/FormEmbed.d.ts.map +0 -1
  914. package/dist/bigconsole/components/embed/widgets/FormEmbed.js.map +0 -1
  915. package/dist/bigconsole/components/embed/widgets/GaugeEmbed.d.ts.map +0 -1
  916. package/dist/bigconsole/components/embed/widgets/GaugeEmbed.js.map +0 -1
  917. package/dist/bigconsole/components/embed/widgets/HeatmapEmbed.d.ts.map +0 -1
  918. package/dist/bigconsole/components/embed/widgets/HeatmapEmbed.js.map +0 -1
  919. package/dist/bigconsole/components/embed/widgets/KanbanEmbed.d.ts.map +0 -1
  920. package/dist/bigconsole/components/embed/widgets/KanbanEmbed.js.map +0 -1
  921. package/dist/bigconsole/components/embed/widgets/KpiComparisonEmbed.d.ts.map +0 -1
  922. package/dist/bigconsole/components/embed/widgets/KpiComparisonEmbed.js.map +0 -1
  923. package/dist/bigconsole/components/embed/widgets/ListEmbed.d.ts.map +0 -1
  924. package/dist/bigconsole/components/embed/widgets/ListEmbed.js.map +0 -1
  925. package/dist/bigconsole/components/embed/widgets/MetricCardEmbed.d.ts.map +0 -1
  926. package/dist/bigconsole/components/embed/widgets/MetricCardEmbed.js.map +0 -1
  927. package/dist/bigconsole/components/embed/widgets/PivotEmbed.d.ts.map +0 -1
  928. package/dist/bigconsole/components/embed/widgets/PivotEmbed.js.map +0 -1
  929. package/dist/bigconsole/components/embed/widgets/ProgressEmbed.d.ts.map +0 -1
  930. package/dist/bigconsole/components/embed/widgets/ProgressEmbed.js.map +0 -1
  931. package/dist/bigconsole/components/embed/widgets/RetentionEmbed.d.ts.map +0 -1
  932. package/dist/bigconsole/components/embed/widgets/RetentionEmbed.js.map +0 -1
  933. package/dist/bigconsole/components/embed/widgets/TableEmbed.d.ts.map +0 -1
  934. package/dist/bigconsole/components/embed/widgets/TableEmbed.js.map +0 -1
  935. package/dist/bigconsole/components/embed/widgets/TextEmbed.d.ts.map +0 -1
  936. package/dist/bigconsole/components/embed/widgets/TextEmbed.js.map +0 -1
  937. package/dist/bigconsole/components/embed/widgets/TimelineEmbed.d.ts.map +0 -1
  938. package/dist/bigconsole/components/embed/widgets/TimelineEmbed.js.map +0 -1
  939. package/dist/bigconsole/components/embed/widgets/shared.d.ts.map +0 -1
  940. package/dist/bigconsole/components/embed/widgets/shared.js.map +0 -1
  941. package/dist/bigconsole/components/overview/DashboardGuide.d.ts.map +0 -1
  942. package/dist/bigconsole/components/overview/DashboardGuide.js.map +0 -1
  943. package/dist/bigconsole/components/overview/DataHealthCard.d.ts.map +0 -1
  944. package/dist/bigconsole/components/overview/DataHealthCard.js.map +0 -1
  945. package/dist/bigconsole/components/overview/OverviewQuickActions.d.ts.map +0 -1
  946. package/dist/bigconsole/components/overview/OverviewQuickActions.js.map +0 -1
  947. package/dist/bigconsole/components/overview/OverviewStatCard.d.ts.map +0 -1
  948. package/dist/bigconsole/components/overview/OverviewStatCard.js.map +0 -1
  949. package/dist/bigconsole/components/overview/RecentDashboardsPanel.d.ts.map +0 -1
  950. package/dist/bigconsole/components/overview/RecentDashboardsPanel.js.map +0 -1
  951. package/dist/bigconsole/components/overview/dashboardGuideSteps.d.ts.map +0 -1
  952. package/dist/bigconsole/components/overview/dashboardGuideSteps.js.map +0 -1
  953. package/dist/bigconsole/components/overview/index.d.ts.map +0 -1
  954. package/dist/bigconsole/components/overview/overviewModel.d.ts.map +0 -1
  955. package/dist/bigconsole/components/overview/overviewModel.js.map +0 -1
  956. package/dist/bigconsole/components/overview/useOverviewData.d.ts.map +0 -1
  957. package/dist/bigconsole/components/overview/useOverviewData.js.map +0 -1
  958. package/dist/bigconsole/components/parser/DataSinkSelector.d.ts.map +0 -1
  959. package/dist/bigconsole/components/parser/DataSinkSelector.js.map +0 -1
  960. package/dist/bigconsole/components/parser/ExportParserDialog.d.ts.map +0 -1
  961. package/dist/bigconsole/components/parser/ExportParserDialog.js.map +0 -1
  962. package/dist/bigconsole/components/parser/ExpressionEditor.d.ts.map +0 -1
  963. package/dist/bigconsole/components/parser/ExpressionEditor.js.map +0 -1
  964. package/dist/bigconsole/components/parser/ImportParserDialog.d.ts.map +0 -1
  965. package/dist/bigconsole/components/parser/ImportParserDialog.js.map +0 -1
  966. package/dist/bigconsole/components/parser/ParserBuilder.d.ts.map +0 -1
  967. package/dist/bigconsole/components/parser/ParserCard.d.ts.map +0 -1
  968. package/dist/bigconsole/components/parser/ParserCard.js.map +0 -1
  969. package/dist/bigconsole/components/parser/ParserFormDialog.d.ts.map +0 -1
  970. package/dist/bigconsole/components/parser/ParserSelector.d.ts.map +0 -1
  971. package/dist/bigconsole/components/parser/ParserSelector.js.map +0 -1
  972. package/dist/bigconsole/components/parser/ParserStatusBadge.d.ts.map +0 -1
  973. package/dist/bigconsole/components/parser/ParserStatusBadge.js.map +0 -1
  974. package/dist/bigconsole/components/parser/ParserTypeBadge.d.ts.map +0 -1
  975. package/dist/bigconsole/components/parser/ParserTypeBadge.js.map +0 -1
  976. package/dist/bigconsole/components/parser/TestPanel.d.ts.map +0 -1
  977. package/dist/bigconsole/components/parser/index.d.ts.map +0 -1
  978. package/dist/bigconsole/components/parser/parserFieldStyles.d.ts.map +0 -1
  979. package/dist/bigconsole/components/pipeline/PipelineCard.d.ts.map +0 -1
  980. package/dist/bigconsole/components/pipeline/PipelineCard.js.map +0 -1
  981. package/dist/bigconsole/components/pipeline/PipelineDeleteDialog.d.ts.map +0 -1
  982. package/dist/bigconsole/components/pipeline/PipelineDeleteDialog.js.map +0 -1
  983. package/dist/bigconsole/components/pipeline/PipelineScopePicker.d.ts.map +0 -1
  984. package/dist/bigconsole/components/pipeline/PipelineScopePicker.js.map +0 -1
  985. package/dist/bigconsole/components/pipeline/PipelineStatusBadge.d.ts.map +0 -1
  986. package/dist/bigconsole/components/pipeline/PipelineStatusBadge.js.map +0 -1
  987. package/dist/bigconsole/components/pipeline/index.d.ts.map +0 -1
  988. package/dist/bigconsole/components/preview/AiPreviewContent.d.ts.map +0 -1
  989. package/dist/bigconsole/components/preview/AiPreviewContent.js.map +0 -1
  990. package/dist/bigconsole/components/preview/AiPreviewMiniPanel.d.ts.map +0 -1
  991. package/dist/bigconsole/components/preview/AiPreviewMiniPanel.js.map +0 -1
  992. package/dist/bigconsole/components/preview/AiPreviewPanel.d.ts.map +0 -1
  993. package/dist/bigconsole/components/preview/AiPreviewPanel.js.map +0 -1
  994. package/dist/bigconsole/components/preview/parserPreview.d.ts.map +0 -1
  995. package/dist/bigconsole/components/preview/parserPreview.js.map +0 -1
  996. package/dist/bigconsole/components/preview/previewShared.d.ts.map +0 -1
  997. package/dist/bigconsole/components/preview/previewShared.js.map +0 -1
  998. package/dist/bigconsole/components/widgets/ActionConfigDialog.d.ts.map +0 -1
  999. package/dist/bigconsole/components/widgets/ActionConfigDialog.js.map +0 -1
  1000. package/dist/bigconsole/components/widgets/DrilldownConfigPanel.d.ts.map +0 -1
  1001. package/dist/bigconsole/components/widgets/DrilldownConfigPanel.js.map +0 -1
  1002. package/dist/bigconsole/components/widgets/PropertiesPanel.d.ts.map +0 -1
  1003. package/dist/bigconsole/components/widgets/PropertiesPanel.js.map +0 -1
  1004. package/dist/bigconsole/components/widgets/WidgetErrorBoundary.d.ts.map +0 -1
  1005. package/dist/bigconsole/components/widgets/WidgetErrorBoundary.js.map +0 -1
  1006. package/dist/bigconsole/components/widgets/WidgetHeader.d.ts.map +0 -1
  1007. package/dist/bigconsole/components/widgets/WidgetHeader.js.map +0 -1
  1008. package/dist/bigconsole/components/widgets/WidgetMenu.d.ts.map +0 -1
  1009. package/dist/bigconsole/components/widgets/WidgetMenu.js.map +0 -1
  1010. package/dist/bigconsole/components/widgets/WidgetRegistry.d.ts.map +0 -1
  1011. package/dist/bigconsole/components/widgets/WidgetRegistry.js.map +0 -1
  1012. package/dist/bigconsole/components/widgets/WidgetTypeSelector.d.ts.map +0 -1
  1013. package/dist/bigconsole/components/widgets/WidgetWrapper.d.ts.map +0 -1
  1014. package/dist/bigconsole/components/widgets/WidgetWrapper.js.map +0 -1
  1015. package/dist/bigconsole/components/widgets/actionConfig.d.ts.map +0 -1
  1016. package/dist/bigconsole/components/widgets/actionConfig.js.map +0 -1
  1017. package/dist/bigconsole/components/widgets/adaptive-card/AdaptiveCardWidget.d.ts.map +0 -1
  1018. package/dist/bigconsole/components/widgets/adaptive-card/AdaptiveCardWidget.js.map +0 -1
  1019. package/dist/bigconsole/components/widgets/adaptive-card/index.d.ts.map +0 -1
  1020. package/dist/bigconsole/components/widgets/calendar/CalendarView.d.ts.map +0 -1
  1021. package/dist/bigconsole/components/widgets/calendar/CalendarView.js.map +0 -1
  1022. package/dist/bigconsole/components/widgets/calendar/CalendarWidget.d.ts.map +0 -1
  1023. package/dist/bigconsole/components/widgets/calendar/CalendarWidget.js.map +0 -1
  1024. package/dist/bigconsole/components/widgets/calendar/index.d.ts.map +0 -1
  1025. package/dist/bigconsole/components/widgets/chart/ChartConfig.d.ts.map +0 -1
  1026. package/dist/bigconsole/components/widgets/chart/ChartConfig.js.map +0 -1
  1027. package/dist/bigconsole/components/widgets/chart/ChartLegend.d.ts.map +0 -1
  1028. package/dist/bigconsole/components/widgets/chart/ChartLegend.js.map +0 -1
  1029. package/dist/bigconsole/components/widgets/chart/ChartTooltip.d.ts.map +0 -1
  1030. package/dist/bigconsole/components/widgets/chart/ChartTooltip.js.map +0 -1
  1031. package/dist/bigconsole/components/widgets/chart/ChartWidget.d.ts.map +0 -1
  1032. package/dist/bigconsole/components/widgets/chart/ChartWidget.js.map +0 -1
  1033. package/dist/bigconsole/components/widgets/chart/charts/AreaChart.d.ts.map +0 -1
  1034. package/dist/bigconsole/components/widgets/chart/charts/AreaChart.js.map +0 -1
  1035. package/dist/bigconsole/components/widgets/chart/charts/BarChart.d.ts.map +0 -1
  1036. package/dist/bigconsole/components/widgets/chart/charts/BarChart.js.map +0 -1
  1037. package/dist/bigconsole/components/widgets/chart/charts/ComboChart.d.ts.map +0 -1
  1038. package/dist/bigconsole/components/widgets/chart/charts/ComboChart.js.map +0 -1
  1039. package/dist/bigconsole/components/widgets/chart/charts/FunnelChart.d.ts.map +0 -1
  1040. package/dist/bigconsole/components/widgets/chart/charts/FunnelChart.js.map +0 -1
  1041. package/dist/bigconsole/components/widgets/chart/charts/LineChart.d.ts.map +0 -1
  1042. package/dist/bigconsole/components/widgets/chart/charts/LineChart.js.map +0 -1
  1043. package/dist/bigconsole/components/widgets/chart/charts/PieChart.d.ts.map +0 -1
  1044. package/dist/bigconsole/components/widgets/chart/charts/PieChart.js.map +0 -1
  1045. package/dist/bigconsole/components/widgets/chart/charts/ScatterChart.d.ts.map +0 -1
  1046. package/dist/bigconsole/components/widgets/chart/charts/ScatterChart.js.map +0 -1
  1047. package/dist/bigconsole/components/widgets/chart/charts/WaterfallChart.d.ts.map +0 -1
  1048. package/dist/bigconsole/components/widgets/chart/charts/WaterfallChart.js.map +0 -1
  1049. package/dist/bigconsole/components/widgets/chart/charts/index.d.ts.map +0 -1
  1050. package/dist/bigconsole/components/widgets/chart/charts/referenceElements.d.ts.map +0 -1
  1051. package/dist/bigconsole/components/widgets/chart/charts/referenceElements.js.map +0 -1
  1052. package/dist/bigconsole/components/widgets/chart/charts/types.d.ts.map +0 -1
  1053. package/dist/bigconsole/components/widgets/chart/index.d.ts.map +0 -1
  1054. package/dist/bigconsole/components/widgets/comments/WidgetComments.d.ts.map +0 -1
  1055. package/dist/bigconsole/components/widgets/comments/WidgetComments.js.map +0 -1
  1056. package/dist/bigconsole/components/widgets/custom/CustomWidget.d.ts.map +0 -1
  1057. package/dist/bigconsole/components/widgets/custom/CustomWidget.js.map +0 -1
  1058. package/dist/bigconsole/components/widgets/custom/config.d.ts.map +0 -1
  1059. package/dist/bigconsole/components/widgets/custom/config.js.map +0 -1
  1060. package/dist/bigconsole/components/widgets/custom/index.d.ts.map +0 -1
  1061. package/dist/bigconsole/components/widgets/custom/utils.d.ts.map +0 -1
  1062. package/dist/bigconsole/components/widgets/custom/utils.js.map +0 -1
  1063. package/dist/bigconsole/components/widgets/event-logs/EventLogViewer.d.ts.map +0 -1
  1064. package/dist/bigconsole/components/widgets/event-logs/EventLogViewer.js.map +0 -1
  1065. package/dist/bigconsole/components/widgets/event-logs/index.d.ts.map +0 -1
  1066. package/dist/bigconsole/components/widgets/form/FormWidget.d.ts.map +0 -1
  1067. package/dist/bigconsole/components/widgets/form/FormWidget.js.map +0 -1
  1068. package/dist/bigconsole/components/widgets/form/index.d.ts.map +0 -1
  1069. package/dist/bigconsole/components/widgets/funnel/index.d.ts.map +0 -1
  1070. package/dist/bigconsole/components/widgets/funnel/index.js.map +0 -1
  1071. package/dist/bigconsole/components/widgets/gauge/CircularGauge.d.ts.map +0 -1
  1072. package/dist/bigconsole/components/widgets/gauge/CircularGauge.js.map +0 -1
  1073. package/dist/bigconsole/components/widgets/gauge/GaugeConfig.d.ts.map +0 -1
  1074. package/dist/bigconsole/components/widgets/gauge/GaugeConfig.js.map +0 -1
  1075. package/dist/bigconsole/components/widgets/gauge/GaugeWidget.d.ts.map +0 -1
  1076. package/dist/bigconsole/components/widgets/gauge/GaugeWidget.js.map +0 -1
  1077. package/dist/bigconsole/components/widgets/gauge/LinearGauge.d.ts.map +0 -1
  1078. package/dist/bigconsole/components/widgets/gauge/LinearGauge.js.map +0 -1
  1079. package/dist/bigconsole/components/widgets/gauge/index.d.ts.map +0 -1
  1080. package/dist/bigconsole/components/widgets/heatmap/HeatmapConfig.d.ts.map +0 -1
  1081. package/dist/bigconsole/components/widgets/heatmap/HeatmapConfig.js.map +0 -1
  1082. package/dist/bigconsole/components/widgets/heatmap/HeatmapWidget.d.ts.map +0 -1
  1083. package/dist/bigconsole/components/widgets/heatmap/HeatmapWidget.js.map +0 -1
  1084. package/dist/bigconsole/components/widgets/heatmap/index.d.ts.map +0 -1
  1085. package/dist/bigconsole/components/widgets/iframe-widget/IframeWidget.d.ts.map +0 -1
  1086. package/dist/bigconsole/components/widgets/iframe-widget/IframeWidget.js.map +0 -1
  1087. package/dist/bigconsole/components/widgets/iframe-widget/index.d.ts.map +0 -1
  1088. package/dist/bigconsole/components/widgets/index.d.ts.map +0 -1
  1089. package/dist/bigconsole/components/widgets/kanban/KanbanView.d.ts.map +0 -1
  1090. package/dist/bigconsole/components/widgets/kanban/KanbanView.js.map +0 -1
  1091. package/dist/bigconsole/components/widgets/kanban/KanbanWidget.d.ts.map +0 -1
  1092. package/dist/bigconsole/components/widgets/kanban/KanbanWidget.js.map +0 -1
  1093. package/dist/bigconsole/components/widgets/kanban/index.d.ts.map +0 -1
  1094. package/dist/bigconsole/components/widgets/kanban/model.d.ts.map +0 -1
  1095. package/dist/bigconsole/components/widgets/kanban/model.js.map +0 -1
  1096. package/dist/bigconsole/components/widgets/kpi/KPIWidget.d.ts.map +0 -1
  1097. package/dist/bigconsole/components/widgets/kpi/KPIWidget.js.map +0 -1
  1098. package/dist/bigconsole/components/widgets/kpi/index.d.ts.map +0 -1
  1099. package/dist/bigconsole/components/widgets/kpi-comparison/KPIComparisonWidget.d.ts.map +0 -1
  1100. package/dist/bigconsole/components/widgets/kpi-comparison/KPIComparisonWidget.js.map +0 -1
  1101. package/dist/bigconsole/components/widgets/kpi-comparison/index.d.ts.map +0 -1
  1102. package/dist/bigconsole/components/widgets/list/ListConfig.d.ts.map +0 -1
  1103. package/dist/bigconsole/components/widgets/list/ListConfig.js.map +0 -1
  1104. package/dist/bigconsole/components/widgets/list/ListItem.d.ts.map +0 -1
  1105. package/dist/bigconsole/components/widgets/list/ListItem.js.map +0 -1
  1106. package/dist/bigconsole/components/widgets/list/ListWidget.d.ts.map +0 -1
  1107. package/dist/bigconsole/components/widgets/list/ListWidget.js.map +0 -1
  1108. package/dist/bigconsole/components/widgets/list/index.d.ts.map +0 -1
  1109. package/dist/bigconsole/components/widgets/map-widget/MapWidget.d.ts.map +0 -1
  1110. package/dist/bigconsole/components/widgets/map-widget/MapWidget.js.map +0 -1
  1111. package/dist/bigconsole/components/widgets/map-widget/index.d.ts.map +0 -1
  1112. package/dist/bigconsole/components/widgets/metric-card/ComparisonBadge.d.ts.map +0 -1
  1113. package/dist/bigconsole/components/widgets/metric-card/ComparisonBadge.js.map +0 -1
  1114. package/dist/bigconsole/components/widgets/metric-card/MetricCardConfig.d.ts.map +0 -1
  1115. package/dist/bigconsole/components/widgets/metric-card/MetricCardConfig.js.map +0 -1
  1116. package/dist/bigconsole/components/widgets/metric-card/MetricCardWidget.d.ts.map +0 -1
  1117. package/dist/bigconsole/components/widgets/metric-card/MetricCardWidget.js.map +0 -1
  1118. package/dist/bigconsole/components/widgets/metric-card/SparklineChart.d.ts.map +0 -1
  1119. package/dist/bigconsole/components/widgets/metric-card/SparklineChart.js.map +0 -1
  1120. package/dist/bigconsole/components/widgets/metric-card/TrendIndicator.d.ts.map +0 -1
  1121. package/dist/bigconsole/components/widgets/metric-card/TrendIndicator.js.map +0 -1
  1122. package/dist/bigconsole/components/widgets/metric-card/index.d.ts.map +0 -1
  1123. package/dist/bigconsole/components/widgets/pivot-table/PivotTableWidget.d.ts.map +0 -1
  1124. package/dist/bigconsole/components/widgets/pivot-table/PivotTableWidget.js.map +0 -1
  1125. package/dist/bigconsole/components/widgets/pivot-table/index.d.ts.map +0 -1
  1126. package/dist/bigconsole/components/widgets/progress/ProgressBar.d.ts.map +0 -1
  1127. package/dist/bigconsole/components/widgets/progress/ProgressBar.js.map +0 -1
  1128. package/dist/bigconsole/components/widgets/progress/ProgressConfig.d.ts.map +0 -1
  1129. package/dist/bigconsole/components/widgets/progress/ProgressConfig.js.map +0 -1
  1130. package/dist/bigconsole/components/widgets/progress/ProgressWidget.d.ts.map +0 -1
  1131. package/dist/bigconsole/components/widgets/progress/ProgressWidget.js.map +0 -1
  1132. package/dist/bigconsole/components/widgets/progress/index.d.ts.map +0 -1
  1133. package/dist/bigconsole/components/widgets/retention/RetentionWidget.d.ts.map +0 -1
  1134. package/dist/bigconsole/components/widgets/retention/RetentionWidget.js.map +0 -1
  1135. package/dist/bigconsole/components/widgets/retention/index.d.ts.map +0 -1
  1136. package/dist/bigconsole/components/widgets/states/EmptyState.d.ts.map +0 -1
  1137. package/dist/bigconsole/components/widgets/states/EmptyState.js.map +0 -1
  1138. package/dist/bigconsole/components/widgets/states/ErrorState.d.ts.map +0 -1
  1139. package/dist/bigconsole/components/widgets/states/ErrorState.js.map +0 -1
  1140. package/dist/bigconsole/components/widgets/states/LoadingState.d.ts.map +0 -1
  1141. package/dist/bigconsole/components/widgets/states/LoadingState.js.map +0 -1
  1142. package/dist/bigconsole/components/widgets/states/index.d.ts.map +0 -1
  1143. package/dist/bigconsole/components/widgets/table/TableCell.d.ts.map +0 -1
  1144. package/dist/bigconsole/components/widgets/table/TableCell.js.map +0 -1
  1145. package/dist/bigconsole/components/widgets/table/TableConfig.d.ts.map +0 -1
  1146. package/dist/bigconsole/components/widgets/table/TableConfig.js.map +0 -1
  1147. package/dist/bigconsole/components/widgets/table/TableHeader.d.ts.map +0 -1
  1148. package/dist/bigconsole/components/widgets/table/TableHeader.js.map +0 -1
  1149. package/dist/bigconsole/components/widgets/table/TablePagination.d.ts.map +0 -1
  1150. package/dist/bigconsole/components/widgets/table/TablePagination.js.map +0 -1
  1151. package/dist/bigconsole/components/widgets/table/TableWidget.d.ts.map +0 -1
  1152. package/dist/bigconsole/components/widgets/table/TableWidget.js.map +0 -1
  1153. package/dist/bigconsole/components/widgets/table/cellLink.d.ts.map +0 -1
  1154. package/dist/bigconsole/components/widgets/table/cellLink.js.map +0 -1
  1155. package/dist/bigconsole/components/widgets/table/index.d.ts.map +0 -1
  1156. package/dist/bigconsole/components/widgets/text-widget/TextWidget.d.ts.map +0 -1
  1157. package/dist/bigconsole/components/widgets/text-widget/TextWidget.js.map +0 -1
  1158. package/dist/bigconsole/components/widgets/text-widget/index.d.ts.map +0 -1
  1159. package/dist/bigconsole/components/widgets/text-widget/textData.d.ts.map +0 -1
  1160. package/dist/bigconsole/components/widgets/text-widget/textData.js.map +0 -1
  1161. package/dist/bigconsole/components/widgets/timeline/TimelineWidget.d.ts.map +0 -1
  1162. package/dist/bigconsole/components/widgets/timeline/TimelineWidget.js.map +0 -1
  1163. package/dist/bigconsole/components/widgets/timeline/index.d.ts.map +0 -1
  1164. package/dist/bigconsole/components/widgets/utils/conditionalFormat.d.ts.map +0 -1
  1165. package/dist/bigconsole/components/widgets/utils/conditionalFormat.js.map +0 -1
  1166. package/dist/bigconsole/components/widgets/utils/inferFields.d.ts.map +0 -1
  1167. package/dist/bigconsole/components/widgets/utils/inferFields.js.map +0 -1
  1168. package/dist/bigconsole/components/widgets/utils/targetProgress.d.ts.map +0 -1
  1169. package/dist/bigconsole/components/widgets/utils/targetProgress.js.map +0 -1
  1170. package/dist/bigconsole/components/widgets/utils/translate.d.ts.map +0 -1
  1171. package/dist/bigconsole/components/widgets/utils/translate.js.map +0 -1
  1172. package/dist/bigconsole/components/widgets/webhook-config/WebhookConfigPanel.d.ts.map +0 -1
  1173. package/dist/bigconsole/components/widgets/webhook-config/WebhookConfigPanel.js.map +0 -1
  1174. package/dist/bigconsole/components/widgets/webhook-config/index.d.ts.map +0 -1
  1175. package/dist/bigconsole/components/widgets/widget-actions/WidgetActions.d.ts.map +0 -1
  1176. package/dist/bigconsole/components/widgets/widget-actions/WidgetActions.js.map +0 -1
  1177. package/dist/bigconsole/components/widgets/widget-actions/index.d.ts.map +0 -1
  1178. package/dist/bigconsole/components/workflow/DataSinkMultiSelector.d.ts.map +0 -1
  1179. package/dist/bigconsole/components/workflow/WorkflowCard.d.ts.map +0 -1
  1180. package/dist/bigconsole/components/workflow/WorkflowCard.js.map +0 -1
  1181. package/dist/bigconsole/components/workflow/WorkflowDeleteDialog.d.ts.map +0 -1
  1182. package/dist/bigconsole/components/workflow/WorkflowDeleteDialog.js.map +0 -1
  1183. package/dist/bigconsole/components/workflow/WorkflowDesignPreview.d.ts.map +0 -1
  1184. package/dist/bigconsole/components/workflow/WorkflowDesignPreview.js.map +0 -1
  1185. package/dist/bigconsole/components/workflow/WorkflowOpenGuard.d.ts.map +0 -1
  1186. package/dist/bigconsole/components/workflow/WorkflowOpenGuard.js.map +0 -1
  1187. package/dist/bigconsole/components/workflow/WorkflowSinkLinkForm.d.ts.map +0 -1
  1188. package/dist/bigconsole/components/workflow/WorkflowSinkLinkForm.js.map +0 -1
  1189. package/dist/bigconsole/components/workflow/WorkflowStatusBadge.d.ts.map +0 -1
  1190. package/dist/bigconsole/components/workflow/WorkflowStatusBadge.js.map +0 -1
  1191. package/dist/bigconsole/components/workflow/index.d.ts.map +0 -1
  1192. package/dist/bigconsole/constants/backendErrors.d.ts.map +0 -1
  1193. package/dist/bigconsole/constants.d.ts.map +0 -1
  1194. package/dist/bigconsole/constants.js.map +0 -1
  1195. package/dist/bigconsole/context/BigConsoleContext.d.ts.map +0 -1
  1196. package/dist/bigconsole/context/BigConsoleContext.js.map +0 -1
  1197. package/dist/bigconsole/context/index.d.ts.map +0 -1
  1198. package/dist/bigconsole/contexts/CrossFilterContext.d.ts.map +0 -1
  1199. package/dist/bigconsole/contexts/CrossFilterContext.js.map +0 -1
  1200. package/dist/bigconsole/contexts/NavigationContext.d.ts.map +0 -1
  1201. package/dist/bigconsole/contexts/NavigationContext.js.map +0 -1
  1202. package/dist/bigconsole/contexts/index.d.ts.map +0 -1
  1203. package/dist/bigconsole/customWidget/CustomWidgetBuilderSheet.d.ts.map +0 -1
  1204. package/dist/bigconsole/customWidget/CustomWidgetBuilderSheet.js.map +0 -1
  1205. package/dist/bigconsole/customWidget/CustomWidgetProposalPanel.d.ts.map +0 -1
  1206. package/dist/bigconsole/customWidget/CustomWidgetProposalPanel.js.map +0 -1
  1207. package/dist/bigconsole/customWidget/index.d.ts.map +0 -1
  1208. package/dist/bigconsole/customWidget/proposalContract.d.ts.map +0 -1
  1209. package/dist/bigconsole/customWidget/proposalContract.js.map +0 -1
  1210. package/dist/bigconsole/customWidget/proposalSource.d.ts.map +0 -1
  1211. package/dist/bigconsole/customWidget/proposalSource.js.map +0 -1
  1212. package/dist/bigconsole/graphql/apollo-compat.d.ts.map +0 -1
  1213. package/dist/bigconsole/graphql/storeTemplates.d.ts.map +0 -1
  1214. package/dist/bigconsole/graphql/storeTemplates.js.map +0 -1
  1215. package/dist/bigconsole/hooks/index.d.ts.map +0 -1
  1216. package/dist/bigconsole/hooks/useActivePage.d.ts.map +0 -1
  1217. package/dist/bigconsole/hooks/useActivePage.js.map +0 -1
  1218. package/dist/bigconsole/hooks/useAutoRefresh.d.ts.map +0 -1
  1219. package/dist/bigconsole/hooks/useAutoRefresh.js.map +0 -1
  1220. package/dist/bigconsole/hooks/useBigConsoleAnalytics.d.ts.map +0 -1
  1221. package/dist/bigconsole/hooks/useBigConsoleAnalytics.js.map +0 -1
  1222. package/dist/bigconsole/hooks/useBigConsoleSettings.d.ts.map +0 -1
  1223. package/dist/bigconsole/hooks/useBigConsoleSettings.js.map +0 -1
  1224. package/dist/bigconsole/hooks/useCrossFilter.d.ts.map +0 -1
  1225. package/dist/bigconsole/hooks/useCrossFilter.js.map +0 -1
  1226. package/dist/bigconsole/hooks/useDashboardEmbedPolicy.d.ts.map +0 -1
  1227. package/dist/bigconsole/hooks/useDashboardEmbedPolicy.js.map +0 -1
  1228. package/dist/bigconsole/hooks/useDashboardImageExport.d.ts.map +0 -1
  1229. package/dist/bigconsole/hooks/useDashboardImageExport.js.map +0 -1
  1230. package/dist/bigconsole/hooks/useDashboardOperations.d.ts.map +0 -1
  1231. package/dist/bigconsole/hooks/useDashboardOperations.js.map +0 -1
  1232. package/dist/bigconsole/hooks/useDashboardSharing.d.ts.map +0 -1
  1233. package/dist/bigconsole/hooks/useDashboardSharing.js.map +0 -1
  1234. package/dist/bigconsole/hooks/useDashboardTemplates.d.ts.map +0 -1
  1235. package/dist/bigconsole/hooks/useDashboardViews.d.ts.map +0 -1
  1236. package/dist/bigconsole/hooks/useDashboardViews.js.map +0 -1
  1237. package/dist/bigconsole/hooks/useDataSinkAlerts.d.ts.map +0 -1
  1238. package/dist/bigconsole/hooks/useDataSinkAlerts.js.map +0 -1
  1239. package/dist/bigconsole/hooks/useDataSinkOperations.d.ts.map +0 -1
  1240. package/dist/bigconsole/hooks/useDataSinkOperations.js.map +0 -1
  1241. package/dist/bigconsole/hooks/useDataSinkSubscription.d.ts.map +0 -1
  1242. package/dist/bigconsole/hooks/useDataSinkSubscription.js.map +0 -1
  1243. package/dist/bigconsole/hooks/useDrilldown.d.ts.map +0 -1
  1244. package/dist/bigconsole/hooks/useDrilldown.js.map +0 -1
  1245. package/dist/bigconsole/hooks/useDrilldownOperations.d.ts.map +0 -1
  1246. package/dist/bigconsole/hooks/useDrilldownOperations.js.map +0 -1
  1247. package/dist/bigconsole/hooks/useEventLogs.d.ts.map +0 -1
  1248. package/dist/bigconsole/hooks/useEventLogs.js.map +0 -1
  1249. package/dist/bigconsole/hooks/useEventWebhooks.d.ts.map +0 -1
  1250. package/dist/bigconsole/hooks/useEventWebhooks.js.map +0 -1
  1251. package/dist/bigconsole/hooks/useExportDashboard.d.ts.map +0 -1
  1252. package/dist/bigconsole/hooks/useExportDashboard.js.map +0 -1
  1253. package/dist/bigconsole/hooks/useExportDataSink.d.ts.map +0 -1
  1254. package/dist/bigconsole/hooks/useExportDataSink.js.map +0 -1
  1255. package/dist/bigconsole/hooks/useExportParser.d.ts.map +0 -1
  1256. package/dist/bigconsole/hooks/useExportParser.js.map +0 -1
  1257. package/dist/bigconsole/hooks/useFilterPresets.d.ts.map +0 -1
  1258. package/dist/bigconsole/hooks/useFilterPresets.js.map +0 -1
  1259. package/dist/bigconsole/hooks/useFilterUrlSync.d.ts.map +0 -1
  1260. package/dist/bigconsole/hooks/useFilterUrlSync.js.map +0 -1
  1261. package/dist/bigconsole/hooks/useGlobalFilters.d.ts.map +0 -1
  1262. package/dist/bigconsole/hooks/useGlobalFilters.js.map +0 -1
  1263. package/dist/bigconsole/hooks/useImportDashboard.d.ts.map +0 -1
  1264. package/dist/bigconsole/hooks/useImportDashboard.js.map +0 -1
  1265. package/dist/bigconsole/hooks/useImportDataSink.d.ts.map +0 -1
  1266. package/dist/bigconsole/hooks/useImportDataSink.js.map +0 -1
  1267. package/dist/bigconsole/hooks/useImportParser.d.ts.map +0 -1
  1268. package/dist/bigconsole/hooks/useImportParser.js.map +0 -1
  1269. package/dist/bigconsole/hooks/useInstalledWidgets.d.ts.map +0 -1
  1270. package/dist/bigconsole/hooks/useInstalledWidgets.js.map +0 -1
  1271. package/dist/bigconsole/hooks/useModalFocusTrap.d.ts.map +0 -1
  1272. package/dist/bigconsole/hooks/useModalFocusTrap.js.map +0 -1
  1273. package/dist/bigconsole/hooks/usePageOperations.d.ts.map +0 -1
  1274. package/dist/bigconsole/hooks/usePageOperations.js.map +0 -1
  1275. package/dist/bigconsole/hooks/useParserOperations.d.ts.map +0 -1
  1276. package/dist/bigconsole/hooks/useParserOperations.js.map +0 -1
  1277. package/dist/bigconsole/hooks/usePipelineOperations.d.ts.map +0 -1
  1278. package/dist/bigconsole/hooks/usePipelineOperations.js.map +0 -1
  1279. package/dist/bigconsole/hooks/useShareRecipients.d.ts.map +0 -1
  1280. package/dist/bigconsole/hooks/useShareRecipients.js.map +0 -1
  1281. package/dist/bigconsole/hooks/useStoreDashboardTemplates.d.ts.map +0 -1
  1282. package/dist/bigconsole/hooks/useStoreDashboardTemplates.js.map +0 -1
  1283. package/dist/bigconsole/hooks/useWidgetActions.d.ts.map +0 -1
  1284. package/dist/bigconsole/hooks/useWidgetActions.js.map +0 -1
  1285. package/dist/bigconsole/hooks/useWidgetCatalog.d.ts.map +0 -1
  1286. package/dist/bigconsole/hooks/useWidgetCatalog.js.map +0 -1
  1287. package/dist/bigconsole/hooks/useWidgetComments.d.ts.map +0 -1
  1288. package/dist/bigconsole/hooks/useWidgetComments.js.map +0 -1
  1289. package/dist/bigconsole/hooks/useWidgetConfigPersist.d.ts.map +0 -1
  1290. package/dist/bigconsole/hooks/useWidgetConfigPersist.js.map +0 -1
  1291. package/dist/bigconsole/hooks/useWidgetData.d.ts.map +0 -1
  1292. package/dist/bigconsole/hooks/useWidgetData.js.map +0 -1
  1293. package/dist/bigconsole/hooks/useWidgetEvents.d.ts.map +0 -1
  1294. package/dist/bigconsole/hooks/useWidgetEvents.js.map +0 -1
  1295. package/dist/bigconsole/hooks/useWidgetExport.d.ts.map +0 -1
  1296. package/dist/bigconsole/hooks/useWidgetExport.js.map +0 -1
  1297. package/dist/bigconsole/hooks/useWidgetOperations.d.ts.map +0 -1
  1298. package/dist/bigconsole/hooks/useWidgetOperations.js.map +0 -1
  1299. package/dist/bigconsole/hooks/useWorkflowOperations.d.ts.map +0 -1
  1300. package/dist/bigconsole/hooks/useWorkflowOperations.js.map +0 -1
  1301. package/dist/bigconsole/index.d.ts.map +0 -1
  1302. package/dist/bigconsole/modules/dashboard/index.d.ts.map +0 -1
  1303. package/dist/bigconsole/modules/index.d.ts.map +0 -1
  1304. package/dist/bigconsole/modules/renderer/index.d.ts.map +0 -1
  1305. package/dist/bigconsole/modules/widget/index.d.ts.map +0 -1
  1306. package/dist/bigconsole/pages/AdminPage.d.ts.map +0 -1
  1307. package/dist/bigconsole/pages/AdminPage.js.map +0 -1
  1308. package/dist/bigconsole/pages/DashboardBuilderPage.d.ts.map +0 -1
  1309. package/dist/bigconsole/pages/DashboardBuilderPage.js.map +0 -1
  1310. package/dist/bigconsole/pages/DashboardViewPage.d.ts.map +0 -1
  1311. package/dist/bigconsole/pages/DashboardViewPage.js.map +0 -1
  1312. package/dist/bigconsole/pages/DashboardsPage.d.ts.map +0 -1
  1313. package/dist/bigconsole/pages/DashboardsPage.js.map +0 -1
  1314. package/dist/bigconsole/pages/DataParsersPage.d.ts.map +0 -1
  1315. package/dist/bigconsole/pages/DataParsersPage.js.map +0 -1
  1316. package/dist/bigconsole/pages/DataSinkAlertsPage.d.ts.map +0 -1
  1317. package/dist/bigconsole/pages/DataSinkAlertsPage.js.map +0 -1
  1318. package/dist/bigconsole/pages/DataSinkBuilderPage.d.ts.map +0 -1
  1319. package/dist/bigconsole/pages/DataSinkBuilderPage.js.map +0 -1
  1320. package/dist/bigconsole/pages/DataSinkViewPage.d.ts.map +0 -1
  1321. package/dist/bigconsole/pages/DataSinkViewPage.js.map +0 -1
  1322. package/dist/bigconsole/pages/DataSinksPage.d.ts.map +0 -1
  1323. package/dist/bigconsole/pages/DataSinksPage.js.map +0 -1
  1324. package/dist/bigconsole/pages/DataSourcesPage.d.ts.map +0 -1
  1325. package/dist/bigconsole/pages/DataSourcesPage.js.map +0 -1
  1326. package/dist/bigconsole/pages/InsightsPage.d.ts.map +0 -1
  1327. package/dist/bigconsole/pages/InsightsPage.js.map +0 -1
  1328. package/dist/bigconsole/pages/OverviewPage.d.ts.map +0 -1
  1329. package/dist/bigconsole/pages/OverviewPage.js.map +0 -1
  1330. package/dist/bigconsole/pages/ParserBuilderPage.d.ts.map +0 -1
  1331. package/dist/bigconsole/pages/ParserBuilderPage.js.map +0 -1
  1332. package/dist/bigconsole/pages/ParserViewPage.d.ts.map +0 -1
  1333. package/dist/bigconsole/pages/ParserViewPage.js.map +0 -1
  1334. package/dist/bigconsole/pages/PipelineBuilderPage.d.ts.map +0 -1
  1335. package/dist/bigconsole/pages/PipelineBuilderPage.js.map +0 -1
  1336. package/dist/bigconsole/pages/PipelineViewPage.d.ts.map +0 -1
  1337. package/dist/bigconsole/pages/PipelineViewPage.js.map +0 -1
  1338. package/dist/bigconsole/pages/PipelinesPage.d.ts.map +0 -1
  1339. package/dist/bigconsole/pages/PipelinesPage.js.map +0 -1
  1340. package/dist/bigconsole/pages/SettingsPage.d.ts.map +0 -1
  1341. package/dist/bigconsole/pages/SettingsPage.js.map +0 -1
  1342. package/dist/bigconsole/pages/WidgetDemoPage.d.ts.map +0 -1
  1343. package/dist/bigconsole/pages/WidgetDemoPage.js.map +0 -1
  1344. package/dist/bigconsole/pages/WorkflowViewPage.d.ts.map +0 -1
  1345. package/dist/bigconsole/pages/WorkflowViewPage.js.map +0 -1
  1346. package/dist/bigconsole/pages/WorkflowsPage.d.ts.map +0 -1
  1347. package/dist/bigconsole/pages/WorkflowsPage.js.map +0 -1
  1348. package/dist/bigconsole/pages/index.d.ts.map +0 -1
  1349. package/dist/bigconsole/providers/BigConsoleQuotaProvider.d.ts.map +0 -1
  1350. package/dist/bigconsole/providers/BigConsoleQuotaProvider.js.map +0 -1
  1351. package/dist/bigconsole/renderers/adapters/AdaptiveCardRenderer.d.ts.map +0 -1
  1352. package/dist/bigconsole/renderers/adapters/AdaptiveCardRenderer.js.map +0 -1
  1353. package/dist/bigconsole/renderers/adapters/BigConsoleRenderer.d.ts.map +0 -1
  1354. package/dist/bigconsole/renderers/adapters/BigConsoleRenderer.js.map +0 -1
  1355. package/dist/bigconsole/renderers/adapters/BlockKitRenderer.d.ts.map +0 -1
  1356. package/dist/bigconsole/renderers/adapters/BlockKitRenderer.js.map +0 -1
  1357. package/dist/bigconsole/renderers/adapters/CustomRenderer.d.ts.map +0 -1
  1358. package/dist/bigconsole/renderers/adapters/CustomRenderer.js.map +0 -1
  1359. package/dist/bigconsole/renderers/adapters/index.d.ts.map +0 -1
  1360. package/dist/bigconsole/renderers/factory/WidgetRendererFactory.d.ts.map +0 -1
  1361. package/dist/bigconsole/renderers/factory/WidgetRendererFactory.js.map +0 -1
  1362. package/dist/bigconsole/renderers/index.d.ts.map +0 -1
  1363. package/dist/bigconsole/renderers/registry/RendererRegistry.d.ts.map +0 -1
  1364. package/dist/bigconsole/renderers/registry/RendererRegistry.js.map +0 -1
  1365. package/dist/bigconsole/renderers/types/index.d.ts.map +0 -1
  1366. package/dist/bigconsole/renderers/types/renderer.d.ts.map +0 -1
  1367. package/dist/bigconsole/store/dashboardStore.d.ts.map +0 -1
  1368. package/dist/bigconsole/store/dashboardStore.js.map +0 -1
  1369. package/dist/bigconsole/store/dataSinkStore.d.ts.map +0 -1
  1370. package/dist/bigconsole/store/dataSinkStore.js.map +0 -1
  1371. package/dist/bigconsole/store/drilldownStore.d.ts.map +0 -1
  1372. package/dist/bigconsole/store/drilldownStore.js.map +0 -1
  1373. package/dist/bigconsole/store/index.d.ts.map +0 -1
  1374. package/dist/bigconsole/store/parserStore.d.ts.map +0 -1
  1375. package/dist/bigconsole/store/parserStore.js.map +0 -1
  1376. package/dist/bigconsole/store/pipelineStore.d.ts.map +0 -1
  1377. package/dist/bigconsole/store/pipelineStore.js.map +0 -1
  1378. package/dist/bigconsole/store/widgetStore.d.ts.map +0 -1
  1379. package/dist/bigconsole/store/widgetStore.js.map +0 -1
  1380. package/dist/bigconsole/store/workflowStore.d.ts.map +0 -1
  1381. package/dist/bigconsole/store/workflowStore.js.map +0 -1
  1382. package/dist/bigconsole/types/index.d.ts.map +0 -1
  1383. package/dist/bigconsole/utils/alertRules.d.ts.map +0 -1
  1384. package/dist/bigconsole/utils/alertRules.js.map +0 -1
  1385. package/dist/bigconsole/utils/backendError.d.ts.map +0 -1
  1386. package/dist/bigconsole/utils/createDialogParam.d.ts.map +0 -1
  1387. package/dist/bigconsole/utils/createDialogParam.js.map +0 -1
  1388. package/dist/bigconsole/utils/csv.d.ts.map +0 -1
  1389. package/dist/bigconsole/utils/csv.js.map +0 -1
  1390. package/dist/bigconsole/utils/dashboardTemplateContent.d.ts.map +0 -1
  1391. package/dist/bigconsole/utils/dashboardTemplateContent.js.map +0 -1
  1392. package/dist/bigconsole/utils/drilldownParams.d.ts.map +0 -1
  1393. package/dist/bigconsole/utils/drilldownParams.js.map +0 -1
  1394. package/dist/bigconsole/utils/format.d.ts.map +0 -1
  1395. package/dist/bigconsole/utils/format.js.map +0 -1
  1396. package/dist/bigconsole/utils/index.d.ts.map +0 -1
  1397. package/dist/bigconsole/utils/quota.d.ts.map +0 -1
  1398. package/dist/bigconsole/utils/quota.js.map +0 -1
  1399. package/dist/bigconsole/utils/semanticTokens.d.ts.map +0 -1
  1400. package/dist/bigconsole/utils/semanticTokens.js.map +0 -1
  1401. package/dist/bigconsole/utils/templateInstallInputs.d.ts.map +0 -1
  1402. package/dist/bigconsole/utils/templateInstallInputs.js.map +0 -1
  1403. package/dist/bigconsole/utils/widgetBinding.d.ts.map +0 -1
  1404. package/dist/bigconsole/utils/widgetBinding.js.map +0 -1
  1405. package/dist/bigconsole/utils/widgetPositioning.d.ts.map +0 -1
  1406. package/dist/bigconsole/utils/widgetPositioning.js.map +0 -1
  1407. package/dist/bigconsole/utils/widgetTypeMapping.d.ts.map +0 -1
  1408. package/dist/bigconsole/utils/widgetTypeMapping.js.map +0 -1
  1409. package/dist/bigconsole/workflowOpen.d.ts.map +0 -1
  1410. package/dist/bigconsole/workflowOpen.js.map +0 -1
  1411. package/dist/constants/permissions.d.ts.map +0 -1
  1412. package/dist/constants/permissions.js.map +0 -1
  1413. package/dist/generated/global-operations.d.ts.map +0 -1
  1414. package/dist/generated/global-operations.js.map +0 -1
  1415. package/dist/generated/global-types.d.ts.map +0 -1
  1416. package/dist/generated/wspace-operations.d.ts.map +0 -1
  1417. package/dist/generated/wspace-operations.js.map +0 -1
  1418. package/dist/generated/wspace-types.d.ts.map +0 -1
  1419. package/dist/generated/wspace-types.js.map +0 -1
  1420. package/dist/index.d.ts.map +0 -1
  1421. package/dist/node_modules/@e965/xlsx/xlsx.js.map +0 -1
  1422. package/dist/node_modules/pdfjs-dist/build/pdf.js.map +0 -1
  1423. package/dist/shared/hooks/useTr.d.ts.map +0 -1
  1424. package/dist/shared/hooks/useTr.js.map +0 -1
  1425. package/dist/stories/DashboardGuide.stories.d.ts +0 -15
  1426. package/dist/stories/DashboardGuide.stories.d.ts.map +0 -1
  1427. package/dist/stories/DataSinkStatusBadge.stories.d.ts +0 -12
  1428. package/dist/stories/DataSinkStatusBadge.stories.d.ts.map +0 -1
  1429. package/dist/stories/GaugeWidget.stories.d.ts +0 -58
  1430. package/dist/stories/GaugeWidget.stories.d.ts.map +0 -1
  1431. package/dist/stories/KPIComparisonWidget.stories.d.ts +0 -76
  1432. package/dist/stories/KPIComparisonWidget.stories.d.ts.map +0 -1
  1433. package/dist/stories/LiveCanvasToggle.stories.d.ts +0 -9
  1434. package/dist/stories/LiveCanvasToggle.stories.d.ts.map +0 -1
  1435. package/dist/stories/MetricCardWidget.stories.d.ts +0 -88
  1436. package/dist/stories/MetricCardWidget.stories.d.ts.map +0 -1
  1437. package/dist/stories/ProgressWidget.stories.d.ts +0 -48
  1438. package/dist/stories/ProgressWidget.stories.d.ts.map +0 -1
  1439. package/dist/stories/SetupStateBadge.stories.d.ts +0 -12
  1440. package/dist/stories/SetupStateBadge.stories.d.ts.map +0 -1
  1441. package/dist/translations/en.d.ts.map +0 -1
  1442. package/dist/utils/nativeBridge.d.ts.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"ActionConfigDialog.js","names":[],"sources":["../../../../src/bigconsole/components/widgets/ActionConfigDialog.tsx"],"sourcesContent":["/**\n * ActionConfigDialog: compact API button setup (BOFF-7626).\n *\n * Modal dialog for creating/editing widget actions.\n *\n * v2.1 (BOFF-5659): reframed around the *outcome* — \"When clicked, do this\" —\n * instead of the abstract action Type. A button always emits\n * `widget:<name>:clicked`; the dialog now lets the user attach the behaviour\n * inline. Today the two shippable outcomes are:\n * - \"Call a webhook / my API\" → captures a URL + method; the parent pairs the\n * action with an EventWebhookMapping bound to that event (no backend change).\n * - \"Just emit an event\" → the raw emit, for callers wiring their own\n * consumers.\n * The action `name` (the event id) is auto-derived from the label and tucked\n * under More options. Label and destination are the two required inputs.\n *\n * Uses fe-libs shared UI components and semantic tokens for consistent styling.\n */\n\nimport { type FC, memo, useState, useCallback, useEffect, useMemo, useRef, useId } from 'react';\nimport {\n ResponsiveDialog as Dialog,\n ResponsiveDialogContent as DialogContent,\n ResponsiveDialogDescription as DialogDescription,\n ResponsiveDialogFooter as DialogFooter,\n ResponsiveDialogHeader as DialogHeader,\n ResponsiveDialogTitle as DialogTitle,\n} from '@burdenoff/fe-libs/ui';\nimport { Button } from '@burdenoff/fe-libs/ui';\nimport { Input } from '@burdenoff/fe-libs/ui';\nimport { Textarea } from '@burdenoff/fe-libs/ui';\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@burdenoff/fe-libs/ui';\nimport { Checkbox } from '@burdenoff/fe-libs/ui';\nimport { Spinner } from '@burdenoff/fe-libs/ui';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport { PermissionButton } from '@burdenoff/fe-libs/shared/components';\nimport { ChevronDown, ChevronRight } from 'lucide-react';\nimport { BIGCONSOLE_PERMISSIONS } from '../../../constants/permissions';\nimport type { WidgetAction, ActionStyle, ActionConfirmation } from '../../hooks/useWidgetActions';\nimport type { HttpMethod } from '../../hooks/useEventWebhooks';\nimport { Section } from '../common';\nimport {\n slugifyActionName,\n validateActionConfig,\n serializeActionConfig,\n type ActionConfigError,\n type ActionConfigDraft,\n type ActionOutcome,\n type ActionSaveData,\n type ActionWebhookDraft,\n} from './actionConfig';\nexport type { ActionOutcome, ActionSaveData, ActionWebhookDraft } from './actionConfig';\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface ActionConfigDialogProps {\n isOpen: boolean;\n action?: WidgetAction;\n /** Existing webhook binding for the edited action (prefills the URL field). */\n initialWebhook?: ActionWebhookDraft | null;\n isLoading?: boolean;\n /** A save failure from the parent (action or webhook mutation) to surface inline. */\n saveError?: string | null;\n onClose: () => void;\n /** `webhook` is the paired binding, or `null` to remove any existing one. */\n onSave: (data: ActionSaveData, webhook: ActionWebhookDraft | null) => void;\n}\n\n// ============================================================================\n// Constants\n// ============================================================================\n\nconst HTTP_METHODS: HttpMethod[] = ['POST', 'GET', 'PUT', 'PATCH', 'DELETE'];\n\n/** Stable style values + preview colors; labels are resolved via i18n in-component. */\nconst ACTION_STYLE_META: { value: ActionStyle; color: string }[] = [\n { value: 'PRIMARY', color: 'var(--color-action-primary-bg)' },\n { value: 'SECONDARY', color: 'var(--color-action-secondary-bg)' },\n { value: 'SUCCESS', color: 'var(--color-status-success-bg)' },\n { value: 'WARNING', color: 'var(--color-status-warning-bg)' },\n { value: 'DANGER', color: 'var(--color-action-danger-bg)' },\n { value: 'GHOST', color: 'transparent' },\n { value: 'LINK', color: 'transparent' },\n];\n\n/** Stable icon values; labels are resolved via i18n in-component. */\nconst ICON_VALUES = [\n '',\n 'refresh',\n 'download',\n 'upload',\n 'trash',\n 'edit',\n 'plus',\n 'check',\n 'eye',\n 'copy',\n 'share',\n 'settings',\n 'filter',\n 'search',\n] as const;\n\n// Field labels sit BELOW group headings in the type ladder: `medium` here,\n// `bold` + uppercase tracking for the group heading. Previously both were\n// semibold body-sm, so a label and a group heading were indistinguishable.\nconst labelStyle: React.CSSProperties = {\n display: 'block',\n fontSize: 'var(--font-size-body-sm)',\n fontWeight: 'var(--font-weight-medium)',\n color: 'var(--color-text-primary)',\n marginBottom: 'var(--space-controlGap)',\n};\n\n/** Group heading inside the dialog body: \"Appearance\" / \"Behaviour\" / \"Advanced\". */\nconst groupHeadingStyle: React.CSSProperties = {\n margin: '0 0 var(--space-controlGap) 0',\n fontSize: 'var(--font-size-body-sm)',\n fontWeight: 'var(--font-weight-bold)',\n letterSpacing: '0.06em',\n textTransform: 'uppercase',\n color: 'var(--color-text-secondary)',\n};\n\nconst hintStyle: React.CSSProperties = {\n fontSize: 'var(--font-size-body-sm)',\n color: 'var(--color-text-muted)',\n marginTop: 'var(--space-controlGap)',\n};\n\nconst selectContentStyle: React.CSSProperties = {\n zIndex: 9999,\n backgroundColor: 'var(--color-overlay-popoverBg, var(--color-bg-surface))',\n border: '1px solid var(--color-border-subtle)',\n boxShadow: 'var(--shadow-elevation-3)',\n borderRadius: 'var(--radius-button)',\n};\n\n// ============================================================================\n// Component\n// ============================================================================\n\nexport const ActionConfigDialog: FC<ActionConfigDialogProps> = memo(function ActionConfigDialog({\n isOpen,\n action,\n initialWebhook,\n isLoading = false,\n saveError,\n onClose,\n onSave,\n}) {\n const { t } = useI18n();\n const isEditMode = !!action;\n const labelInputRef = useRef<HTMLInputElement>(null);\n const urlInputRef = useRef<HTMLInputElement>(null);\n const nameInputRef = useRef<HTMLInputElement>(null);\n const fieldId = useId();\n const fallbackNameRef = useRef('');\n // True once the user touches the webhook fields, so a late-arriving\n // `initialWebhook` fetch can seed the form without clobbering in-progress edits.\n const webhookTouchedRef = useRef(false);\n\n // Form state\n const [label, setLabel] = useState('');\n const [name, setName] = useState('');\n const [nameEdited, setNameEdited] = useState(false);\n const [style, setStyle] = useState<ActionStyle>('PRIMARY');\n const [icon, setIcon] = useState('');\n const [outcome, setOutcome] = useState<ActionOutcome>('WEBHOOK');\n const [webhookUrl, setWebhookUrl] = useState('');\n const [webhookMethod, setWebhookMethod] = useState<HttpMethod>('POST');\n const [disabled, setDisabled] = useState(false);\n const [hidden, setHidden] = useState(false);\n const [showAdvanced, setShowAdvanced] = useState(false);\n const [hasConfirmation, setHasConfirmation] = useState(false);\n const [confirmTitle, setConfirmTitle] = useState(() =>\n t('bigconsole.widget.actions.confirm.defaultTitle', 'Confirm Action')\n );\n const [confirmMessage, setConfirmMessage] = useState(() =>\n t('bigconsole.widget.actions.confirm.defaultMessage', 'Are you sure you want to proceed?')\n );\n const [confirmLabel, setConfirmLabel] = useState(() =>\n t('bigconsole.widget.actions.confirm.defaultConfirmLabel', 'Confirm')\n );\n const [cancelLabel, setCancelLabel] = useState(() =>\n t('bigconsole.widget.actions.confirm.defaultCancelLabel', 'Cancel')\n );\n const [error, setError] = useState<ActionConfigError | null>(null);\n\n // Localized option lists — value/enum fields stay stable; only the display copy is translated.\n const ACTION_STYLES = useMemo<{ value: ActionStyle; label: string; color: string }[]>(() => {\n const labels: Record<ActionStyle, string> = {\n PRIMARY: t('bigconsole.widget.actions.style.primary', 'Primary'),\n SECONDARY: t('bigconsole.widget.actions.style.secondary', 'Secondary'),\n SUCCESS: t('bigconsole.widget.actions.style.success', 'Success'),\n WARNING: t('bigconsole.widget.actions.style.warning', 'Warning'),\n DANGER: t('bigconsole.widget.actions.style.danger', 'Danger'),\n GHOST: t('bigconsole.widget.actions.style.ghost', 'Ghost'),\n LINK: t('bigconsole.widget.actions.style.link', 'Link'),\n };\n return ACTION_STYLE_META.map((s) => ({ value: s.value, label: labels[s.value], color: s.color }));\n }, [t]);\n\n const ICON_OPTIONS = useMemo(() => {\n const labels: Record<(typeof ICON_VALUES)[number], string> = {\n '': t('bigconsole.widget.actions.icon.none', 'No icon'),\n refresh: t('bigconsole.widget.actions.icon.refresh', 'Refresh'),\n download: t('bigconsole.widget.actions.icon.download', 'Download'),\n upload: t('bigconsole.widget.actions.icon.upload', 'Upload'),\n trash: t('bigconsole.widget.actions.icon.trash', 'Trash'),\n edit: t('bigconsole.widget.actions.icon.edit', 'Edit'),\n plus: t('bigconsole.widget.actions.icon.plus', 'Plus'),\n check: t('bigconsole.widget.actions.icon.check', 'Check'),\n eye: t('bigconsole.widget.actions.icon.eye', 'View'),\n copy: t('bigconsole.widget.actions.icon.copy', 'Copy'),\n share: t('bigconsole.widget.actions.icon.share', 'Share'),\n settings: t('bigconsole.widget.actions.icon.settings', 'Settings'),\n filter: t('bigconsole.widget.actions.icon.filter', 'Filter'),\n search: t('bigconsole.widget.actions.icon.search', 'Search'),\n };\n return ICON_VALUES.map((value) => ({ value, label: labels[value] }));\n }, [t]);\n\n // Reset form when the dialog opens or the edited action changes. Deliberately\n // does NOT depend on `initialWebhook` — that fetch can settle after the dialog\n // is open, and re-running this would wipe the user's in-progress edits (#6).\n // The webhook fields are seeded by the separate effect below.\n useEffect(() => {\n if (!isOpen) return;\n\n webhookTouchedRef.current = false;\n // Non-Latin labels still get an internal ID without asking users to name an event.\n fallbackNameRef.current = `button_${crypto.randomUUID().replace(/-/g, '').slice(0, 12)}`;\n setWebhookUrl('');\n setWebhookMethod('POST');\n\n if (action) {\n setLabel(action.label);\n setName(action.name);\n setNameEdited(false);\n setStyle(action.style);\n setIcon(action.icon || '');\n setDisabled(action.disabled);\n setHidden(action.hidden);\n // Default to \"emit\"; the seed effect flips to WEBHOOK if a mapping exists.\n setOutcome('EMIT');\n setHasConfirmation(!!action.confirmation);\n if (action.confirmation) {\n setConfirmTitle(action.confirmation.title);\n setConfirmMessage(action.confirmation.message);\n setConfirmLabel(\n action.confirmation.confirmLabel || t('bigconsole.widget.actions.confirm.defaultConfirmLabel', 'Confirm')\n );\n setCancelLabel(\n action.confirmation.cancelLabel || t('bigconsole.widget.actions.confirm.defaultCancelLabel', 'Cancel')\n );\n } else {\n setConfirmTitle(t('bigconsole.widget.actions.confirm.defaultTitle', 'Confirm Action'));\n setConfirmMessage(t('bigconsole.widget.actions.confirm.defaultMessage', 'Are you sure you want to proceed?'));\n setConfirmLabel(t('bigconsole.widget.actions.confirm.defaultConfirmLabel', 'Confirm'));\n setCancelLabel(t('bigconsole.widget.actions.confirm.defaultCancelLabel', 'Cancel'));\n }\n } else {\n setLabel('');\n setName('');\n setNameEdited(false);\n setStyle('PRIMARY');\n setIcon('');\n setOutcome('WEBHOOK');\n setDisabled(false);\n setHidden(false);\n setHasConfirmation(false);\n setConfirmTitle(t('bigconsole.widget.actions.confirm.defaultTitle', 'Confirm Action'));\n setConfirmMessage(t('bigconsole.widget.actions.confirm.defaultMessage', 'Are you sure you want to proceed?'));\n setConfirmLabel(t('bigconsole.widget.actions.confirm.defaultConfirmLabel', 'Confirm'));\n setCancelLabel(t('bigconsole.widget.actions.confirm.defaultCancelLabel', 'Cancel'));\n }\n setShowAdvanced(false);\n setError(null);\n // Focus the label after the dialog paints — a double rAF is more reliable than\n // a magic setTimeout delay and doesn't race the open animation.\n const raf = requestAnimationFrame(() => requestAnimationFrame(() => labelInputRef.current?.focus()));\n return () => cancelAnimationFrame(raf);\n }, [isOpen, action, t]);\n\n // Seed the webhook fields from the (possibly late-arriving) mapping fetch,\n // unless the user has already started editing them.\n useEffect(() => {\n if (!isOpen || !initialWebhook || webhookTouchedRef.current) return;\n setOutcome('WEBHOOK');\n setWebhookUrl(initialWebhook.url);\n setWebhookMethod(initialWebhook.method);\n }, [isOpen, initialWebhook]);\n\n // Keep the auto-derived name in sync with the label until the user overrides it.\n const handleLabelChange = useCallback(\n (value: string) => {\n setLabel(value);\n if (!nameEdited && !isEditMode) setName(slugifyActionName(value) || fallbackNameRef.current);\n if (error) setError(null);\n },\n [nameEdited, error, isEditMode]\n );\n\n const handleSubmit = useCallback(\n (e: React.FormEvent) => {\n e.preventDefault();\n\n const finalName =\n isEditMode && action\n ? action.name\n : slugifyActionName(nameEdited ? name : label) || slugifyActionName(label) || fallbackNameRef.current;\n\n const confirmation: ActionConfirmation | undefined = hasConfirmation\n ? {\n title: confirmTitle.trim() || t('bigconsole.widget.actions.confirm.defaultTitle', 'Confirm Action'),\n message: confirmMessage.trim() || t('bigconsole.widget.actions.confirm.fallbackMessage', 'Are you sure?'),\n confirmLabel: confirmLabel.trim() || t('bigconsole.widget.actions.confirm.defaultConfirmLabel', 'Confirm'),\n cancelLabel: cancelLabel.trim() || t('bigconsole.widget.actions.confirm.defaultCancelLabel', 'Cancel'),\n }\n : undefined;\n\n const draft: ActionConfigDraft = {\n label,\n name: finalName,\n outcome,\n url: webhookUrl,\n method: webhookMethod,\n style,\n icon,\n confirmation: confirmation ?? null,\n disabled,\n hidden,\n };\n const invalid = validateActionConfig(draft);\n setError(invalid);\n if (invalid) {\n if (invalid.field === 'name') setShowAdvanced(true);\n const input = invalid.field === 'url' ? urlInputRef : invalid.field === 'label' ? labelInputRef : nameInputRef;\n // A hidden advanced field must mount before it can receive focus.\n requestAnimationFrame(() => input.current?.focus());\n return;\n }\n const payload = serializeActionConfig(draft, action);\n onSave(payload.data, payload.webhook);\n },\n [\n label,\n name,\n nameEdited,\n outcome,\n webhookUrl,\n webhookMethod,\n style,\n icon,\n disabled,\n hidden,\n hasConfirmation,\n confirmTitle,\n confirmMessage,\n confirmLabel,\n cancelLabel,\n isEditMode,\n action,\n onSave,\n t,\n ]\n );\n\n const getStyleColor = (s: ActionStyle) =>\n ACTION_STYLES.find((as) => as.value === s)?.color || 'var(--color-action-primary-bg)';\n\n const errorMessage =\n error?.field === 'url'\n ? error.reason === 'required'\n ? t('bigconsole.widget.actions.validation.urlRequired', 'Enter the URL to call when the button is clicked')\n : t('bigconsole.widget.actions.validation.urlScheme', 'Enter a complete URL starting with http:// or https://')\n : error?.field === 'label'\n ? t('bigconsole.widget.actions.validation.labelRequired', 'Button label is required')\n : error\n ? t(\n 'bigconsole.widget.actions.validation.labelLettersOrNumbers',\n 'Enter an event name using letters or numbers'\n )\n : null;\n const fieldError = (field: ActionConfigError['field']) =>\n error?.field === field ? (\n <p id={`${fieldId}-${field}-error`} role=\"alert\" className=\"mt-1 text-sm text-[var(--color-status-error-text)]\">\n {errorMessage}\n </p>\n ) : null;\n\n return (\n <Dialog open={isOpen} onOpenChange={(open) => !open && !isLoading && onClose()}>\n {/* Sheets sit at z-120. This nested dialog must remain above its inspector. */}\n <DialogContent\n data-testid=\"action-config-dialog\"\n showHandle={false}\n style={{\n width: 'min(500px, calc(100vw - 2rem))',\n maxWidth: 'calc(100vw - 2rem)',\n maxHeight: 'calc(100dvh - 2rem)',\n padding: 0,\n gap: 0,\n zIndex: 140,\n display: 'flex',\n flexDirection: 'column',\n }}\n onEscapeKeyDown={(event) => {\n if (isLoading) event.preventDefault();\n }}\n >\n <DialogHeader className=\"p-4 pr-12 text-left\">\n <DialogTitle>\n {isEditMode\n ? t('bigconsole.widget.actions.header.editTitle', 'Edit Button')\n : t('bigconsole.widget.actions.header.addTitle', 'Add Button')}\n </DialogTitle>\n <DialogDescription>\n {isEditMode\n ? t('bigconsole.widget.actions.header.editDescription', 'Update the button and what it does')\n : t(\n 'bigconsole.widget.actions.header.addDescription',\n 'Add a button that sends this widget’s data to an API.'\n )}\n </DialogDescription>\n </DialogHeader>\n <form\n onSubmit={handleSubmit}\n noValidate\n className=\"flex min-h-0 flex-col\"\n style={{ maxHeight: 'calc(100dvh - 8rem)' }}\n >\n <div className=\"min-h-0 overflow-y-auto px-4 pb-4\">\n {saveError && (\n <Section\n tone=\"danger\"\n padding=\"compact\"\n headingLevel={3}\n title={t('bigconsole.widget.actions.validation.saveFailed', 'This button could not be saved')}\n className=\"mb-4\"\n >\n <p role=\"alert\" className=\"break-words text-sm\">\n {saveError}\n </p>\n </Section>\n )}\n <div className=\"mb-4\">\n <label htmlFor={`${fieldId}-label`} style={labelStyle}>\n {t('bigconsole.widget.actions.field.buttonLabel', 'Button label')} *\n </label>\n <Input\n id={`${fieldId}-label`}\n ref={labelInputRef}\n value={label}\n onChange={(e) => handleLabelChange(e.target.value)}\n placeholder={t(\n 'bigconsole.widget.actions.field.buttonLabelPlaceholder',\n 'e.g., Refresh Data, Export CSV'\n )}\n disabled={isLoading}\n aria-required\n aria-invalid={error?.field === 'label'}\n aria-describedby={error?.field === 'label' ? `${fieldId}-label-error` : undefined}\n />\n {fieldError('label')}\n </div>\n <div className=\"mb-4\">\n <p style={labelStyle}>{t('bigconsole.widget.actions.field.whenClicked', 'When clicked')}</p>\n <p className=\"text-sm text-text-secondary\" data-testid=\"action-outcome-summary\">\n {outcome === 'WEBHOOK'\n ? t('bigconsole.widget.actions.outcome.webhook.label', 'Send data to an API')\n : t('bigconsole.widget.actions.outcome.emit.label', 'Emit a custom event')}\n </p>\n </div>\n {outcome === 'WEBHOOK' && (\n <div className=\"mb-4\">\n <label htmlFor={`${fieldId}-url`} style={labelStyle}>\n {t('bigconsole.widget.actions.webhook.urlLabel', 'Destination URL')} *\n </label>\n <Input\n id={`${fieldId}-url`}\n ref={urlInputRef}\n type=\"url\"\n value={webhookUrl}\n onChange={(e) => {\n webhookTouchedRef.current = true;\n setWebhookUrl(e.target.value);\n if (error?.field === 'url') setError(null);\n }}\n placeholder={t('bigconsole.widget.actions.webhook.urlPlaceholder', 'https://your-service.com/hook')}\n disabled={isLoading}\n aria-required\n aria-invalid={error?.field === 'url'}\n aria-describedby={error?.field === 'url' ? `${fieldId}-url-error` : `${fieldId}-url-hint`}\n />\n {fieldError('url')}\n <p id={`${fieldId}-url-hint`} style={hintStyle}>\n {t(\n 'bigconsole.widget.actions.webhook.payloadHint',\n \"The widget's current data is sent as the request payload.\"\n )}\n </p>\n </div>\n )}\n <button\n type=\"button\"\n onClick={() => setShowAdvanced((v) => !v)}\n aria-expanded={showAdvanced}\n aria-controls={`${fieldId}-options`}\n className=\"flex min-h-10 items-center gap-2 text-sm font-medium\"\n disabled={isLoading}\n >\n {showAdvanced ? <ChevronDown className=\"size-4\" /> : <ChevronRight className=\"size-4\" />}\n {t('bigconsole.widget.actions.advanced.toggle', 'More options')}\n </button>\n {/* Collapse display, never reset the values used when submitting. */}\n <div\n id={`${fieldId}-options`}\n hidden={!showAdvanced}\n className=\"space-y-4 border-t border-border-subtle pt-4\"\n >\n <div>\n <h3 style={groupHeadingStyle}>{t('bigconsole.widget.actions.options.appearance', 'Appearance')}</h3>\n <div className=\"grid grid-cols-2 gap-3\">\n <div>\n <label id={`${fieldId}-style-label`} htmlFor={`${fieldId}-style`} style={labelStyle}>\n {t('bigconsole.widget.actions.field.style', 'Style')}\n </label>\n <Select\n value={style}\n onValueChange={(v) => {\n const selected = ACTION_STYLES.find((s) => s.value === v);\n if (selected) setStyle(selected.value);\n }}\n disabled={isLoading}\n >\n <SelectTrigger id={`${fieldId}-style`} aria-labelledby={`${fieldId}-style-label`}>\n <SelectValue />\n </SelectTrigger>\n <SelectContent style={selectContentStyle}>\n {ACTION_STYLES.map((s) => (\n <SelectItem key={s.value} value={s.value}>\n {s.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n <div>\n <label id={`${fieldId}-icon-label`} htmlFor={`${fieldId}-icon`} style={labelStyle}>\n {t('bigconsole.widget.actions.field.icon', 'Icon')}\n </label>\n <Select\n value={icon || 'none'}\n onValueChange={(value) => setIcon(value === 'none' ? '' : value)}\n disabled={isLoading}\n >\n <SelectTrigger id={`${fieldId}-icon`} aria-labelledby={`${fieldId}-icon-label`}>\n <SelectValue />\n </SelectTrigger>\n <SelectContent style={{ ...selectContentStyle, maxHeight: '200px' }}>\n {ICON_OPTIONS.map((i) => (\n <SelectItem key={i.value || 'none'} value={i.value || 'none'}>\n {i.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n </div>\n <div className=\"mt-3 flex items-center gap-2 rounded-button bg-bg-sunken p-2\">\n <span className=\"text-sm text-text-muted\">\n {t('bigconsole.widget.actions.preview.label', 'Preview:')}\n </span>\n <span\n className=\"rounded-button px-3 py-1 text-sm\"\n style={{ backgroundColor: getStyleColor(style), color: 'var(--color-action-primary-text)' }}\n >\n {label || t('bigconsole.widget.actions.preview.buttonFallback', 'Button')}\n </span>\n </div>\n </div>\n {outcome === 'WEBHOOK' && (\n <div>\n <label id={`${fieldId}-method-label`} htmlFor={`${fieldId}-method`} style={labelStyle}>\n {t('bigconsole.widget.actions.webhook.methodLabel', 'Request method')}\n </label>\n <Select\n value={webhookMethod}\n onValueChange={(v) => {\n const method = HTTP_METHODS.find((m) => m === v);\n if (method) {\n webhookTouchedRef.current = true;\n setWebhookMethod(method);\n }\n }}\n disabled={isLoading}\n >\n <SelectTrigger id={`${fieldId}-method`} aria-labelledby={`${fieldId}-method-label`}>\n <SelectValue />\n </SelectTrigger>\n <SelectContent style={selectContentStyle}>\n {HTTP_METHODS.map((m) => (\n <SelectItem key={m} value={m}>\n {m}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n )}\n <div>\n <label className=\"flex items-center gap-2 text-sm\">\n <Checkbox\n checked={hasConfirmation}\n onCheckedChange={(c) => setHasConfirmation(c === true)}\n disabled={isLoading}\n />\n {t('bigconsole.widget.actions.confirm.toggleLabel', 'Ask for confirmation first')}\n </label>\n {hasConfirmation && (\n <div className=\"mt-3 space-y-3\">\n <label htmlFor={`${fieldId}-message`} style={labelStyle}>\n {t('bigconsole.widget.actions.confirm.messageLabel', 'Message')}\n </label>\n <Textarea\n id={`${fieldId}-message`}\n value={confirmMessage}\n onChange={(e) => setConfirmMessage(e.target.value)}\n rows={2}\n disabled={isLoading}\n />\n <details>\n <summary className=\"cursor-pointer text-sm text-text-secondary\">\n {t('bigconsole.widget.actions.confirm.customize', 'Customize confirmation labels')}\n </summary>\n <div className=\"mt-3 space-y-3\">\n <div>\n <label htmlFor={`${fieldId}-confirm-title`} style={labelStyle}>\n {t('bigconsole.widget.actions.confirm.dialogTitleLabel', 'Dialog Title')}\n </label>\n <Input\n id={`${fieldId}-confirm-title`}\n value={confirmTitle}\n onChange={(e) => setConfirmTitle(e.target.value)}\n disabled={isLoading}\n />\n </div>\n <div>\n <label htmlFor={`${fieldId}-confirm-label`} style={labelStyle}>\n {t('bigconsole.widget.actions.confirm.confirmButtonLabel', 'Confirm Button')}\n </label>\n <Input\n id={`${fieldId}-confirm-label`}\n value={confirmLabel}\n onChange={(e) => setConfirmLabel(e.target.value)}\n disabled={isLoading}\n />\n </div>\n <div>\n <label htmlFor={`${fieldId}-cancel-label`} style={labelStyle}>\n {t('bigconsole.widget.actions.confirm.cancelButtonLabel', 'Cancel Button')}\n </label>\n <Input\n id={`${fieldId}-cancel-label`}\n value={cancelLabel}\n onChange={(e) => setCancelLabel(e.target.value)}\n disabled={isLoading}\n />\n </div>\n </div>\n </details>\n </div>\n )}\n </div>\n <div>\n <label className=\"flex items-center gap-2 text-sm\">\n <Checkbox\n checked={outcome === 'EMIT'}\n onCheckedChange={(checked) => {\n webhookTouchedRef.current = true;\n setOutcome(checked === true ? 'EMIT' : 'WEBHOOK');\n setError(null);\n }}\n disabled={isLoading}\n />\n {t('bigconsole.widget.actions.options.customEvent', 'Use a custom event instead of calling an API')}\n </label>\n <p style={hintStyle}>\n {t(\n 'bigconsole.widget.actions.outcome.emit.hint',\n 'For integrations configured in Webhooks / Events.'\n )}\n </p>\n <div className=\"mt-3\">\n <label htmlFor={`${fieldId}-name`} style={labelStyle}>\n {t('bigconsole.widget.actions.advanced.eventNameLabel', 'Event name (id)')}\n </label>\n <Input\n id={`${fieldId}-name`}\n ref={nameInputRef}\n value={isEditMode && action ? action.name : name}\n onChange={(e) => {\n setName(e.target.value);\n setNameEdited(true);\n if (error?.field === 'name') setError(null);\n }}\n disabled={isLoading || isEditMode}\n aria-invalid={error?.field === 'name'}\n aria-describedby={error?.field === 'name' ? `${fieldId}-name-error` : undefined}\n />\n {fieldError('name')}\n <p style={hintStyle}>\n <code>\n widget:{isEditMode && action ? action.name : slugifyActionName(name || label) || '<name>'}:clicked\n </code>\n </p>\n </div>\n </div>\n <div className=\"flex flex-wrap gap-4 text-sm\">\n <label className=\"flex items-center gap-2\">\n <Checkbox checked={disabled} onCheckedChange={(c) => setDisabled(c === true)} disabled={isLoading} />\n {t('bigconsole.widget.actions.advanced.disabled', 'Disabled')}\n </label>\n <label className=\"flex items-center gap-2\">\n <Checkbox checked={hidden} onCheckedChange={(c) => setHidden(c === true)} disabled={isLoading} />\n {t('bigconsole.widget.actions.advanced.hidden', 'Hidden')}\n </label>\n </div>\n </div>\n </div>\n <DialogFooter className=\"shrink-0 border-t border-border-subtle bg-bg-sunken p-4\">\n <Button type=\"button\" variant=\"outline\" onClick={onClose} disabled={isLoading}>\n {t('bigconsole.widget.actions.footer.cancel', 'Cancel')}\n </Button>\n <PermissionButton\n permission={\n isEditMode ? BIGCONSOLE_PERMISSIONS.WIDGET_ACTION_UPDATE : BIGCONSOLE_PERMISSIONS.WIDGET_ACTION_CREATE\n }\n deniedBehavior=\"disable\"\n >\n <Button type=\"submit\" disabled={isLoading}>\n {isLoading ? (\n <>\n <Spinner className=\"size-4\" />\n {t('bigconsole.widget.actions.footer.saving', 'Saving...')}\n </>\n ) : isEditMode ? (\n t('bigconsole.widget.actions.footer.updateButton', 'Update Button')\n ) : (\n t('bigconsole.widget.actions.footer.addButton', 'Add Button')\n )}\n </Button>\n </PermissionButton>\n </DialogFooter>\n </form>\n </DialogContent>\n </Dialog>\n );\n});\n\nexport default ActionConfigDialog;\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"DrilldownConfigPanel.d.ts","sourceRoot":"","sources":["../../../../src/bigconsole/components/widgets/DrilldownConfigPanel.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,KAAK,EAAE,EAAmD,MAAM,OAAO,CAAC;AAGjF,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AA0C1D,MAAM,WAAW,yBAAyB;IACxC,wCAAwC;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAC;IAC7C,+CAA+C;IAC/C,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,0EAA0E;IAC1E,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,cAAc,EAAE,cAAc,CAAC;IAC/B,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,yDAAyD;IACzD,iBAAiB,EAAE,OAAO,CAAC;IAC3B,2CAA2C;IAC3C,QAAQ,EAAE,MAAM,CAAC;CAClB;AA6DD,eAAO,MAAM,oBAAoB,EAAE,EAAE,CAAC,yBAAyB,CAkjB7D,CAAC;AAEH,eAAe,oBAAoB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"DrilldownConfigPanel.js","names":[],"sources":["../../../../src/bigconsole/components/widgets/DrilldownConfigPanel.tsx"],"sourcesContent":["/**\n * DrilldownConfigPanel Component\n *\n * UI for configuring widget drilldown settings.\n * Allows selecting the target (a page of this dashboard, or another dashboard\n * and optionally one of its pages), navigation mode, and parameter mappings.\n *\n * Features:\n * - Target page (BOFF-7625): same-dashboard drilldowns must pick another page;\n * other dashboards default to their first page\n * - Searchable dashboard picker; a saved target that was archived, deleted or\n * unshared is flagged as unavailable\n * - passGlobalFilters: Pass current dashboard filters to target\n * - maxDepth: Limit drilldown depth (default: 3)\n * - Field suggestions based on widget data\n */\n\nimport { type FC, memo, useState, useEffect, useCallback, useMemo } from 'react';\nimport { useApolloClient, useQuery } from '@apollo/client/react';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport type { Widget, NavigationMode } from '../../types';\nimport {\n GetDrilldownTargetDashboardDocument,\n GetWidgetDrilldownTargetDocument,\n ListDashboardsDocument,\n type GetDrilldownTargetDashboardQuery,\n type GetDrilldownTargetDashboardQueryVariables,\n type GetWidgetDrilldownTargetQuery,\n type GetWidgetDrilldownTargetQueryVariables,\n type ListDashboardsQuery,\n type ListDashboardsQueryVariables,\n} from '../../../generated/wspace-operations';\nimport { DEFAULT_MAX_DEPTH } from '../../hooks/useDrilldown';\nimport { Section, SECTION_FOCUS_RING } from '../common';\n\n/**\n * Shared recipes for the raw controls in this panel. The panel predates the\n * fe-libs form primitives and previously used literal Tailwind palette colours\n * (`bg-gray-300`, `bg-white`, `text-white`, `bg-amber-100`), which ignore the\n * theme entirely — a white switch knob on a light track is invisible in dark\n * mode. Everything below resolves through semantic tokens (BOFF-5636).\n */\n/**\n * Chrome only — no width or horizontal padding. Those are per-call-site, because\n * appending `w-auto`/`px-2` to a recipe that already carries `w-full`/`px-3`\n * leaves the winner to Tailwind's internal utility ordering rather than to the\n * author.\n */\nconst RAW_CONTROL_CHROME =\n 'min-h-control-md rounded-input border border-[var(--color-border-subtle)] bg-bg-surface py-2 text-sm text-text-primary focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-bg-surface';\n\n/** Full-bleed form control: the common case in this panel. */\nconst RAW_CONTROL_CLASSES = `${RAW_CONTROL_CHROME} w-full px-3`;\n\nconst SWITCH_TRACK_ON = 'bg-action-primary-bg border-action-primary-bg';\nconst SWITCH_TRACK_OFF = 'bg-bg-sunken border-[var(--color-border-strong)]';\nconst SWITCH_KNOB = 'bg-bg-surface shadow-[var(--shadow-elevation-1)]';\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface DrilldownConfigPanelProps {\n /** Widget to configure drilldown for */\n widget: Widget;\n /** Callback when drilldown settings change (for tracking unsaved changes) */\n onChange?: (config: DrilldownConfig) => void;\n /** Sample widget data for field suggestions */\n widgetData?: Record<string, unknown>;\n}\n\nexport interface DrilldownConfig {\n enabled: boolean;\n targetDashboardId: string;\n /** Page of the target dashboard; null opens its first page (BOFF-7625) */\n targetPageId: string | null;\n navigationMode: NavigationMode;\n parameterMapping: Record<string, string>;\n /** Whether to pass global filters to target dashboard */\n passGlobalFilters: boolean;\n /** Maximum drilldown depth (default: 3) */\n maxDepth: number;\n}\n\ninterface DashboardOption {\n id: string;\n name: string;\n}\n\ninterface PageOption {\n id: string;\n name: string;\n order: number;\n}\n\n/** Page size for the searchable dashboard picker. */\nconst DASHBOARD_PICKER_PAGE_SIZE = 50;\n/** Debounce for the dashboard picker search box. */\nconst DASHBOARD_SEARCH_DEBOUNCE_MS = 250;\n\ninterface ParameterMapping {\n key: string;\n value: string;\n}\n\n// ============================================================================\n// Helper Functions\n// ============================================================================\n\n/**\n * Extract available fields from widget data for field suggestions\n */\nfunction extractFieldPaths(obj: unknown, prefix = ''): string[] {\n if (!obj || typeof obj !== 'object') return [];\n\n const paths: string[] = [];\n\n // Handle arrays - use first element as template\n if (Array.isArray(obj)) {\n if (obj.length > 0 && typeof obj[0] === 'object') {\n return extractFieldPaths(obj[0], prefix);\n }\n return [];\n }\n\n // Handle objects\n for (const [key, value] of Object.entries(obj as Record<string, unknown>)) {\n const path = prefix ? `${prefix}.${key}` : key;\n paths.push(path);\n\n // Recurse into nested objects (but not too deep)\n if (value && typeof value === 'object' && !Array.isArray(value) && prefix.split('.').length < 2) {\n paths.push(...extractFieldPaths(value, path));\n }\n }\n\n return paths;\n}\n\n// ============================================================================\n// Component\n// ============================================================================\n\nexport const DrilldownConfigPanel: FC<DrilldownConfigPanelProps> = memo(function DrilldownConfigPanel({\n widget,\n onChange,\n widgetData,\n}) {\n const { t } = useI18n();\n const apolloClient = useApolloClient();\n\n // State\n const [enabled, setEnabled] = useState(widget.drilldown?.enabled ?? false);\n const [targetDashboardId, setTargetDashboardId] = useState(widget.drilldown?.targetDashboardId ?? '');\n const [targetPageId, setTargetPageId] = useState<string | null>(widget.drilldown?.targetPageId ?? null);\n const [navigationMode, setNavigationMode] = useState<NavigationMode>(widget.drilldown?.navigationMode ?? 'MODAL');\n const [passGlobalFilters, setPassGlobalFilters] = useState(widget.drilldown?.passGlobalFilters ?? true);\n const [maxDepth, setMaxDepth] = useState(widget.drilldown?.maxDepth ?? DEFAULT_MAX_DEPTH);\n const [parameterMappings, setParameterMappings] = useState<ParameterMapping[]>(() => {\n const mapping = widget.drilldown?.parameterMapping as Record<string, string> | undefined;\n if (mapping) {\n return Object.entries(mapping).map(([key, value]) => ({ key, value }));\n }\n return [{ key: '', value: '' }];\n });\n\n const [dashboards, setDashboards] = useState<DashboardOption[]>([]);\n const [loading, setLoading] = useState(false);\n const [dashboardsError, setDashboardsError] = useState(false);\n const [dashboardSearch, setDashboardSearch] = useState('');\n const [showFieldSuggestions, setShowFieldSuggestions] = useState<number | null>(null);\n\n const currentDashboardId = widget.dashboardId ?? '';\n const isSameDashboard = !!targetDashboardId && targetDashboardId === currentDashboardId;\n\n // Saved target as the server resolves it: null means archived, deleted or no\n // longer readable by this user (BOFF-7625).\n const savedDrilldownId = widget.drilldown?.id;\n const { data: savedTargetData } = useQuery<GetWidgetDrilldownTargetQuery, GetWidgetDrilldownTargetQueryVariables>(\n GetWidgetDrilldownTargetDocument,\n {\n variables: { widgetId: widget.id },\n skip: !savedDrilldownId,\n fetchPolicy: 'cache-and-network',\n }\n );\n const savedTarget = savedTargetData?.getWidget?.drilldown;\n const savedTargetUnavailable =\n !!savedDrilldownId &&\n !!savedTargetData &&\n !savedTarget?.targetDashboard &&\n targetDashboardId === (widget.drilldown?.targetDashboardId ?? '');\n\n // Pages of the selected target, for the page picker.\n const { data: targetPagesData, loading: targetPagesLoading } = useQuery<\n GetDrilldownTargetDashboardQuery,\n GetDrilldownTargetDashboardQueryVariables\n >(GetDrilldownTargetDashboardDocument, {\n variables: { id: targetDashboardId },\n skip: !targetDashboardId,\n fetchPolicy: 'cache-first',\n });\n const targetPages = useMemo<PageOption[]>(() => {\n const edges = targetPagesData?.getDashboard?.pages?.edges ?? [];\n return edges\n .map((edge) => edge?.node)\n .filter((node): node is NonNullable<typeof node> => !!node)\n .map((node) => ({ id: node.id, name: node.name ?? '', order: node.order ?? 0 }))\n .sort((a, b) => a.order - b.order);\n }, [targetPagesData]);\n // A same-dashboard drilldown to the widget's own page would be a no-op.\n const selectablePages = useMemo(\n () => (isSameDashboard ? targetPages.filter((page) => page.id !== widget.pageId) : targetPages),\n [isSameDashboard, targetPages, widget.pageId]\n );\n const samePageMissing = enabled && isSameDashboard && !targetPageId;\n\n // Extract available field paths from widget data\n const availableFields = useMemo(() => {\n if (!widgetData) return [];\n\n // Common prefixes for different widget types\n const prefixes = ['row', 'item', 'point', 'selectedData'];\n const fields = extractFieldPaths(widgetData);\n\n // Generate mustache-style suggestions\n const suggestions: string[] = [];\n for (const field of fields) {\n for (const prefix of prefixes) {\n suggestions.push(`{{${prefix}.${field}}}`);\n }\n }\n\n // Add common widget data fields\n suggestions.push('{{widget.value}}', '{{widget.title}}', '{{widget.id}}');\n suggestions.push('{{globals.vars.dateFrom}}', '{{globals.vars.dateTo}}');\n\n return [...new Set(suggestions)];\n }, [widgetData]);\n\n // Notify parent of changes\n const notifyChange = useCallback(() => {\n const parameterMapping: Record<string, string> = {};\n for (const { key, value } of parameterMappings) {\n if (key.trim() && value.trim()) {\n parameterMapping[key.trim()] = value.trim();\n }\n }\n onChange?.({\n enabled,\n targetDashboardId,\n targetPageId,\n navigationMode,\n parameterMapping,\n passGlobalFilters,\n maxDepth,\n });\n }, [\n enabled,\n targetDashboardId,\n targetPageId,\n navigationMode,\n parameterMappings,\n passGlobalFilters,\n maxDepth,\n onChange,\n ]);\n\n // Call notifyChange when any value changes\n useEffect(() => {\n notifyChange();\n }, [\n enabled,\n targetDashboardId,\n targetPageId,\n navigationMode,\n parameterMappings,\n passGlobalFilters,\n maxDepth,\n notifyChange,\n ]);\n\n // Fetch dashboards for the picker. `listDashboards` only returns dashboards\n // the caller can read, so an inaccessible dashboard can never be picked.\n useEffect(() => {\n let cancelled = false;\n const timer = setTimeout(async () => {\n setLoading(true);\n setDashboardsError(false);\n try {\n const search = dashboardSearch.trim();\n const result = await apolloClient.query<ListDashboardsQuery, ListDashboardsQueryVariables>({\n query: ListDashboardsDocument,\n variables: {\n first: DASHBOARD_PICKER_PAGE_SIZE,\n ...(search ? { search } : {}),\n },\n fetchPolicy: 'cache-first',\n });\n if (cancelled) return;\n const edges = result.data?.listDashboards?.edges ?? [];\n setDashboards(\n edges\n .map((edge) => edge?.node)\n .filter((node): node is NonNullable<typeof node> => !!node)\n .map((node) => ({ id: node.id, name: node.name }))\n );\n } catch {\n if (!cancelled) setDashboardsError(true);\n } finally {\n if (!cancelled) setLoading(false);\n }\n }, DASHBOARD_SEARCH_DEBOUNCE_MS);\n\n return () => {\n cancelled = true;\n clearTimeout(timer);\n };\n }, [apolloClient, dashboardSearch]);\n\n // Options for the dashboard select: this dashboard first, then the others,\n // plus the saved target when the current search does not include it.\n const dashboardOptions = useMemo<DashboardOption[]>(() => {\n const others = dashboards.filter((d) => d.id !== currentDashboardId);\n if (\n targetDashboardId &&\n targetDashboardId !== currentDashboardId &&\n !others.some((d) => d.id === targetDashboardId)\n ) {\n const savedName =\n savedTarget?.targetDashboard?.id === targetDashboardId ? savedTarget.targetDashboard.name : undefined;\n others.unshift({\n id: targetDashboardId,\n name: savedName ?? t('bigconsole.widget.drilldown.unavailableDashboard', 'Unavailable dashboard'),\n });\n }\n return others;\n }, [dashboards, currentDashboardId, targetDashboardId, savedTarget, t]);\n\n const handleTargetDashboardChange = useCallback((nextDashboardId: string) => {\n setTargetDashboardId(nextDashboardId);\n // A page belongs to exactly one dashboard.\n setTargetPageId(null);\n }, []);\n\n // Add parameter mapping row\n const addParameterMapping = useCallback(() => {\n setParameterMappings((prev) => [...prev, { key: '', value: '' }]);\n }, []);\n\n // Remove parameter mapping row\n const removeParameterMapping = useCallback((index: number) => {\n setParameterMappings((prev) => prev.filter((_, i) => i !== index));\n }, []);\n\n // Update parameter mapping\n const updateParameterMapping = useCallback((index: number, field: 'key' | 'value', newValue: string) => {\n setParameterMappings((prev) => prev.map((item, i) => (i === index ? { ...item, [field]: newValue } : item)));\n }, []);\n\n return (\n <div className=\"min-w-0 space-y-form-gap\">\n {/* Enable Toggle */}\n <div className=\"flex min-w-0 flex-wrap items-center justify-between gap-2 rounded-card border border-[var(--color-border-subtle)] bg-bg-surface p-3\">\n <label htmlFor=\"drilldown-enable\" className=\"text-sm font-medium text-text-primary\">\n {t('bigconsole.widget.drilldown.enableLabel', 'Enable Drilldown')}\n </label>\n <button\n id=\"drilldown-enable\"\n type=\"button\"\n role=\"switch\"\n aria-checked={enabled}\n onClick={() => setEnabled(!enabled)}\n className={`relative inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border motion-safe:transition-colors ${SECTION_FOCUS_RING} ${\n enabled ? SWITCH_TRACK_ON : SWITCH_TRACK_OFF\n }`}\n >\n <span\n className={`inline-block h-4 w-4 transform rounded-full motion-safe:transition-transform ${SWITCH_KNOB} ${\n enabled ? 'translate-x-6' : 'translate-x-1'\n }`}\n />\n </button>\n </div>\n\n {enabled && (\n <>\n {/* Target Dashboard */}\n <div>\n <label htmlFor=\"drilldown-target\" className=\"mb-1 block text-sm font-medium text-text-primary\">\n {t('bigconsole.widget.drilldown.targetDashboardLabel', 'Target Dashboard')}\n </label>\n <input\n type=\"search\"\n value={dashboardSearch}\n onChange={(e) => setDashboardSearch(e.target.value)}\n placeholder={t('bigconsole.widget.drilldown.searchDashboards', 'Search dashboards...')}\n aria-label={t('bigconsole.widget.drilldown.searchDashboards', 'Search dashboards...')}\n className={`${RAW_CONTROL_CLASSES} mb-2`}\n data-testid=\"drilldown-dashboard-search\"\n />\n <select\n id=\"drilldown-target\"\n value={targetDashboardId}\n onChange={(e) => handleTargetDashboardChange(e.target.value)}\n className={RAW_CONTROL_CLASSES}\n data-testid=\"drilldown-target-dashboard\"\n >\n <option value=\"\">{t('bigconsole.widget.drilldown.selectDashboard', 'Select a dashboard...')}</option>\n {currentDashboardId && (\n <option value={currentDashboardId}>\n {t('bigconsole.widget.drilldown.thisDashboard', 'This dashboard (another page)')}\n </option>\n )}\n {dashboardOptions.map((dashboard) => (\n <option key={dashboard.id} value={dashboard.id}>\n {dashboard.name}\n </option>\n ))}\n </select>\n {loading && (\n <p className=\"mt-1 text-xs text-text-muted\" role=\"status\">\n {t('bigconsole.widget.drilldown.loadingDashboards', 'Loading dashboards...')}\n </p>\n )}\n {dashboardsError && (\n <p className=\"mt-1 text-xs text-[var(--color-status-error-text)]\" role=\"alert\">\n {t('bigconsole.widget.drilldown.dashboardsLoadError', 'Could not load dashboards. Try again.')}\n </p>\n )}\n </div>\n\n {/* Target Page */}\n {targetDashboardId && (\n <div>\n <label htmlFor=\"drilldown-target-page\" className=\"mb-1 block text-sm font-medium text-text-primary\">\n {t('bigconsole.widget.drilldown.targetPageLabel', 'Target Page')}\n </label>\n <select\n id=\"drilldown-target-page\"\n value={targetPageId ?? ''}\n onChange={(e) => setTargetPageId(e.target.value || null)}\n disabled={targetPagesLoading}\n aria-invalid={samePageMissing}\n className={RAW_CONTROL_CLASSES}\n data-testid=\"drilldown-target-page\"\n >\n <option value=\"\">\n {isSameDashboard\n ? t('bigconsole.widget.drilldown.selectPage', 'Select a page...')\n : t('bigconsole.widget.drilldown.firstPage', 'First page (default)')}\n </option>\n {selectablePages.map((page, index) => (\n <option key={page.id} value={page.id}>\n {page.name || t('bigconsole.dashboards.view.pageName', 'Page {{count}}', { count: index + 1 })}\n </option>\n ))}\n </select>\n {samePageMissing && (\n <p className=\"mt-1 text-xs text-[var(--color-status-error-text)]\" role=\"alert\">\n {selectablePages.length === 0 && !targetPagesLoading\n ? t(\n 'bigconsole.widget.drilldown.noOtherPages',\n 'This dashboard has no other page. Add a page, or pick another dashboard.'\n )\n : t('bigconsole.widget.drilldown.samePageRequired', 'Pick the page of this dashboard to open.')}\n </p>\n )}\n </div>\n )}\n\n {savedTargetUnavailable && (\n <Section\n tone=\"warning\"\n padding=\"compact\"\n headingLevel={4}\n title={t('bigconsole.widget.drilldown.unavailableTitle', 'Target unavailable')}\n data-testid=\"drilldown-target-unavailable\"\n >\n <p className=\"text-xs text-text-secondary\">\n {t(\n 'bigconsole.widget.drilldown.unavailableHelp',\n 'The target dashboard was deleted, archived, or is no longer shared with you. Viewers see a notice instead of navigating. Pick another target.'\n )}\n </p>\n </Section>\n )}\n\n {/* Navigation Mode */}\n <div>\n <p className=\"mb-1 text-sm font-medium text-text-primary\" id=\"drilldown-nav-mode-label\">\n {t('bigconsole.widget.drilldown.navigationModeLabel', 'Navigation Mode')}\n </p>\n <div className=\"flex flex-wrap gap-2\" role=\"group\" aria-labelledby=\"drilldown-nav-mode-label\">\n {(['MODAL', 'NEW_TAB', 'SAME_WINDOW'] as NavigationMode[]).map((mode) => (\n <button\n key={mode}\n type=\"button\"\n aria-pressed={navigationMode === mode}\n onClick={() => setNavigationMode(mode)}\n className={`min-h-control-md min-w-[7rem] flex-1 rounded-button px-3 text-sm font-medium motion-safe:transition-colors ${SECTION_FOCUS_RING} ${\n navigationMode === mode\n ? 'bg-action-primary-bg text-action-primary-text'\n : 'bg-bg-sunken text-text-secondary hover:text-text-primary'\n }`}\n >\n {mode === 'MODAL' && t('bigconsole.widget.drilldown.mode.modal', 'Modal')}\n {mode === 'NEW_TAB' && t('bigconsole.widget.drilldown.mode.newTab', 'New Tab')}\n {mode === 'SAME_WINDOW' && t('bigconsole.widget.drilldown.mode.sameWindow', 'Same Window')}\n </button>\n ))}\n </div>\n <p className=\"mt-1 text-xs text-text-muted\">\n {navigationMode === 'MODAL' &&\n t('bigconsole.widget.drilldown.modeHelp.modal', 'Opens the target in a modal overlay')}\n {navigationMode === 'NEW_TAB' &&\n t('bigconsole.widget.drilldown.modeHelp.newTab', 'Opens the target in a new browser tab')}\n {navigationMode === 'SAME_WINDOW' &&\n t(\n 'bigconsole.widget.drilldown.modeHelp.sameWindow',\n 'Navigates to the target in the current window; Back returns here'\n )}\n </p>\n </div>\n\n {/* Parameter Mappings */}\n <div>\n <div className=\"mb-2 flex flex-wrap items-center justify-between gap-2\">\n <p className=\"text-sm font-medium text-text-primary\">\n {t('bigconsole.widget.drilldown.parameterMappingsLabel', 'Parameter Mappings')}\n </p>\n <button\n type=\"button\"\n onClick={addParameterMapping}\n className={`rounded-button px-1 text-xs text-text-link hover:underline ${SECTION_FOCUS_RING}`}\n >\n {t('bigconsole.widget.drilldown.addParameter', '+ Add Parameter')}\n </button>\n </div>\n\n <div className=\"space-y-2\">\n {parameterMappings.map((mapping, index) => (\n <div key={index} className=\"relative\">\n <div className=\"flex min-w-0 flex-wrap items-center gap-2\">\n <input\n type=\"text\"\n value={mapping.key}\n onChange={(e) => updateParameterMapping(index, 'key', e.target.value)}\n placeholder={t('bigconsole.widget.drilldown.parameterNamePlaceholder', 'Parameter name')}\n aria-label={`Parameter ${index + 1} name`}\n className={`${RAW_CONTROL_CLASSES} min-w-[7rem] flex-1`}\n />\n <span aria-hidden=\"true\" className=\"text-text-muted\">\n =\n </span>\n <div className=\"relative min-w-[7rem] flex-1\">\n <input\n type=\"text\"\n value={mapping.value}\n onChange={(e) => updateParameterMapping(index, 'value', e.target.value)}\n onFocus={() => setShowFieldSuggestions(index)}\n onBlur={() => setTimeout(() => setShowFieldSuggestions(null), 200)}\n placeholder={t(\n 'bigconsole.widget.drilldown.parameterValuePlaceholder',\n '{{row.field}} or static'\n )}\n aria-label={`Parameter ${index + 1} value`}\n className={RAW_CONTROL_CLASSES}\n />\n {/* Field suggestions dropdown */}\n {showFieldSuggestions === index && availableFields.length > 0 && (\n <div className=\"absolute left-0 right-0 top-full z-10 mt-1 max-h-40 overflow-y-auto rounded-input border border-[var(--color-border-subtle)] bg-bg-surface shadow-[var(--shadow-elevation-2)]\">\n {availableFields.slice(0, 10).map((field) => (\n <button\n key={field}\n type=\"button\"\n onClick={() => {\n updateParameterMapping(index, 'value', field);\n setShowFieldSuggestions(null);\n }}\n className={`w-full px-3 py-1.5 text-left font-mono text-xs text-text-primary hover:bg-bg-sunken ${SECTION_FOCUS_RING}`}\n >\n {field}\n </button>\n ))}\n </div>\n )}\n </div>\n {parameterMappings.length > 1 && (\n <button\n type=\"button\"\n onClick={() => removeParameterMapping(index)}\n aria-label={`Remove parameter ${index + 1}`}\n className={`rounded-button p-1 text-text-muted hover:text-[var(--color-status-error-text)] ${SECTION_FOCUS_RING}`}\n >\n <svg className=\"h-icon-sm w-icon-sm\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M6 18L18 6M6 6l12 12\" />\n </svg>\n </button>\n )}\n </div>\n </div>\n ))}\n </div>\n\n <p className=\"mt-2 text-xs text-text-muted\">\n {t('bigconsole.widget.drilldown.paramHelp.usePrefix', 'Use')}{' '}\n <code className=\"px-1 bg-bg-sunken rounded\">{'{{row.field}}'}</code>{' '}\n {t('bigconsole.widget.drilldown.paramHelp.useSuffix', 'for dynamic values or enter static text.')}\n <br />\n {t('bigconsole.widget.drilldown.paramHelp.examples', 'Examples:')}{' '}\n <code className=\"px-1 bg-bg-sunken rounded\">{'{{row.category}}'}</code>,{' '}\n <code className=\"px-1 bg-bg-sunken rounded\">{'{{item.id}}'}</code>,{' '}\n <code className=\"px-1 bg-bg-sunken rounded\">{'{{globals.vars.dateFrom}}'}</code>\n </p>\n </div>\n\n {/* Advanced Options — a nested block, so it steps down to `muted` */}\n <Section\n emphasis=\"muted\"\n padding=\"compact\"\n headingLevel={4}\n title={t('bigconsole.widget.drilldown.advancedOptions', 'Advanced Options')}\n description={t(\n 'bigconsole.widget.drilldown.advancedOptionsHelp',\n 'Rarely changed. Defaults suit most drilldowns.'\n )}\n data-testid=\"drilldown-advanced\"\n >\n <div className=\"flex flex-col gap-2\">\n {/* Pass Global Filters */}\n <div className=\"flex min-w-0 flex-wrap items-center justify-between gap-2 rounded-button bg-bg-surface p-2\">\n <div className=\"min-w-0\">\n <label htmlFor=\"drilldown-pass-filters\" className=\"text-sm text-text-primary\">\n {t('bigconsole.widget.drilldown.passGlobalFiltersLabel', 'Pass Global Filters')}\n </label>\n <p className=\"text-xs text-text-muted\">\n {t(\n 'bigconsole.widget.drilldown.passGlobalFiltersHelp',\n 'Include current dashboard filters in drilldown'\n )}\n </p>\n </div>\n <button\n id=\"drilldown-pass-filters\"\n type=\"button\"\n role=\"switch\"\n aria-checked={passGlobalFilters}\n onClick={() => setPassGlobalFilters(!passGlobalFilters)}\n className={`relative inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border motion-safe:transition-colors ${SECTION_FOCUS_RING} ${\n passGlobalFilters ? SWITCH_TRACK_ON : SWITCH_TRACK_OFF\n }`}\n >\n <span\n className={`inline-block h-3 w-3 transform rounded-full motion-safe:transition-transform ${SWITCH_KNOB} ${\n passGlobalFilters ? 'translate-x-5' : 'translate-x-1'\n }`}\n />\n </button>\n </div>\n\n {/* Max Depth */}\n <div className=\"flex min-w-0 flex-wrap items-center justify-between gap-2 rounded-button bg-bg-surface p-2\">\n <div className=\"min-w-0\">\n <label htmlFor=\"drilldown-max-depth\" className=\"text-sm text-text-primary\">\n {t('bigconsole.widget.drilldown.maxDepthLabel', 'Max Drilldown Depth')}\n </label>\n <p className=\"text-xs text-text-muted\">\n {t('bigconsole.widget.drilldown.maxDepthHelp', 'Limit nested drilldown levels')}\n </p>\n </div>\n <select\n id=\"drilldown-max-depth\"\n value={maxDepth}\n onChange={(e) => setMaxDepth(Number(e.target.value))}\n className={`${RAW_CONTROL_CHROME} w-auto min-w-[4rem] shrink-0 px-2`}\n >\n {[1, 2, 3, 4, 5].map((n) => (\n <option key={n} value={n}>\n {n}\n </option>\n ))}\n </select>\n </div>\n </div>\n </Section>\n </>\n )}\n\n {/* Info when drilldown will be removed */}\n {!enabled && widget.drilldown?.id && (\n <Section\n tone=\"warning\"\n padding=\"compact\"\n headingLevel={4}\n title={t('bigconsole.widget.drilldown.removalTitle', 'Drilldown will be removed')}\n data-testid=\"drilldown-removal-notice\"\n >\n <p className=\"text-xs text-text-secondary\">\n {t('bigconsole.widget.drilldown.removalWarning', 'Drilldown will be removed when you save changes.')}\n </p>\n </Section>\n )}\n </div>\n );\n});\n\nexport default DrilldownConfigPanel;\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"PropertiesPanel.d.ts","sourceRoot":"","sources":["../../../../src/bigconsole/components/widgets/PropertiesPanel.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAc,EAAE,KAAK,EAAE,EAA2D,MAAM,OAAO,CAAC;AAmJhG,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAqWD,eAAO,MAAM,eAAe,EAAE,EAAE,CAAC,oBAAoB,CA0kDnD,CAAC;AAEH,eAAe,eAAe,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"PropertiesPanel.js","names":[],"sources":["../../../../src/bigconsole/components/widgets/PropertiesPanel.tsx"],"sourcesContent":["/**\n * PropertiesPanel Component\n *\n * Right-side panel for widget configuration.\n * v2.0: Added Actions tab for managing widget actions.\n * Uses fe-libs shared components for consistent styling.\n */\n\nimport React, { type FC, memo, useCallback, useState, useEffect, useRef, useMemo } from 'react';\nimport { Sheet, SheetContent, SheetHeader, SheetTitle, SheetDescription } from '@burdenoff/fe-libs/ui';\nimport { Tabs, TabsList, TabsTrigger, TabsContent } from '@burdenoff/fe-libs/ui';\nimport { Button } from '@burdenoff/fe-libs/ui';\nimport { Input } from '@burdenoff/fe-libs/ui';\nimport { Textarea } from '@burdenoff/fe-libs/ui';\nimport { Label } from '@burdenoff/fe-libs/ui';\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@burdenoff/fe-libs/ui';\nimport { Spinner } from '@burdenoff/fe-libs/ui';\nimport { Card, CardContent } from '@burdenoff/fe-libs/ui';\nimport { Plus, ChevronUp, ChevronDown, Pencil, Trash2, ExternalLink, Check, X, Info } from 'lucide-react';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport { toast } from 'sonner';\nimport type { Widget, DataSourceType, RendererType, Parser } from '../../types';\nimport { useWidgetStore, useIsEditMode } from '../../store';\nimport { useWidgetOperations, useDrilldownOperations } from '../../hooks';\nimport {\n useWidgetActions,\n type WidgetAction,\n type CreateWidgetActionInput,\n type UpdateWidgetActionInput,\n} from '../../hooks/useWidgetActions';\nimport { getWidgetDefinition } from './WidgetRegistry';\nimport { ActionConfigDialog, type ActionSaveData, type ActionWebhookDraft } from './ActionConfigDialog';\nimport { useEventWebhooks, type EventWebhookMapping } from '../../hooks/useEventWebhooks';\nimport { WebhookConfigPanel } from './webhook-config';\nimport { EventLogViewer } from './event-logs';\nimport { DrilldownConfigPanel, type DrilldownConfig } from './DrilldownConfigPanel';\n// Data Source selectors\nimport { useDataSinkOperations } from '../../hooks/useDataSinkOperations';\nimport { useParserOperations } from '../../hooks/useParserOperations';\nimport {\n AdvancedSection,\n AppearanceSection,\n DataBindingSection,\n GeneralSection,\n LayoutSection,\n} from '../builder/inspector';\nimport { DEFAULT_GRID_CONFIG, type WidgetPosition } from '../../utils/widgetPositioning';\nimport { Section, SectionStack } from '../common';\nimport {\n getWidgetBinding,\n getWidgetBindingStatus,\n reconcilePanelConfig,\n serializeWidgetBinding,\n} from '../../utils/widgetBinding';\n\n// ============================================================================\n// v2.0: Renderer Options\n// ============================================================================\n\nconst RENDERER_OPTIONS: {\n value: RendererType;\n labelKey: string;\n label: string;\n descriptionKey: string;\n description: string;\n}[] = [\n {\n value: 'BIGCONSOLE',\n labelKey: 'bigconsole.widget.properties.renderer.bigconsole.label',\n label: 'BigConsole Native',\n descriptionKey: 'bigconsole.widget.properties.renderer.bigconsole.description',\n description: 'Full-featured native widgets',\n },\n {\n value: 'ADAPTIVE_CARD',\n labelKey: 'bigconsole.widget.properties.renderer.adaptiveCard.label',\n label: 'Adaptive Cards',\n descriptionKey: 'bigconsole.widget.properties.renderer.adaptiveCard.description',\n description: 'Microsoft Teams/Outlook format',\n },\n {\n value: 'BLOCKKIT',\n labelKey: 'bigconsole.widget.properties.renderer.blockKit.label',\n label: 'Block Kit',\n descriptionKey: 'bigconsole.widget.properties.renderer.blockKit.description',\n description: 'Slack format',\n },\n {\n value: 'CUSTOM',\n labelKey: 'bigconsole.widget.properties.renderer.custom.label',\n label: 'Custom',\n descriptionKey: 'bigconsole.widget.properties.renderer.custom.description',\n description: 'Custom React component',\n },\n];\n\n// ============================================================================\n// Data Source Constants\n// ============================================================================\n\nconst DATA_SOURCE_TYPES: {\n value: DataSourceType;\n labelKey: string;\n label: string;\n descriptionKey: string;\n description: string;\n}[] = [\n {\n value: 'DATASINK',\n labelKey: 'bigconsole.widget.properties.dataSourceType.datasink.label',\n label: 'DataSink',\n descriptionKey: 'bigconsole.widget.properties.dataSourceType.datasink.description',\n description: 'Use data from BigConsole DataSinks',\n },\n {\n value: 'REST_API',\n labelKey: 'bigconsole.widget.properties.dataSourceType.restApi.label',\n label: 'REST API',\n descriptionKey: 'bigconsole.widget.properties.dataSourceType.restApi.description',\n description: 'Fetch data from REST endpoints',\n },\n {\n value: 'GRAPHQL',\n labelKey: 'bigconsole.widget.properties.dataSourceType.graphql.label',\n label: 'GraphQL',\n descriptionKey: 'bigconsole.widget.properties.dataSourceType.graphql.description',\n description: 'Query data using GraphQL',\n },\n {\n value: 'SQL',\n labelKey: 'bigconsole.widget.properties.dataSourceType.sql.label',\n label: 'SQL Database',\n descriptionKey: 'bigconsole.widget.properties.dataSourceType.sql.description',\n description: 'Query SQL databases directly',\n },\n {\n value: 'WEBSOCKET',\n labelKey: 'bigconsole.widget.properties.dataSourceType.websocket.label',\n label: 'WebSocket',\n descriptionKey: 'bigconsole.widget.properties.dataSourceType.websocket.description',\n description: 'Real-time data streaming',\n },\n {\n value: 'MOCK',\n labelKey: 'bigconsole.widget.properties.dataSourceType.mock.label',\n label: 'Sample JSON',\n descriptionKey: 'bigconsole.widget.properties.dataSourceType.mock.description',\n description: 'Manually enter sample JSON data',\n },\n];\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface PropertiesPanelProps {\n isOpen: boolean;\n onClose: () => void;\n}\n\ntype TabId = 'general' | 'data' | 'appearance' | 'advanced';\n\n// The event a button emits when clicked. MUST match DashboardGrid.handleWidgetAction\n// (`widget:${name.toLowerCase().replace(/\\s+/g,'_')}:clicked`) so a webhook mapping\n// created here actually fires for the click.\nfunction eventPatternForAction(actionName: string): string {\n return `widget:${actionName.toLowerCase().replace(/\\s+/g, '_')}:clicked`;\n}\n\n// Action style colours. `bg-action-primary` / `bg-muted-foreground` are not\n// registered in the BigConsole shell theme, so they emitted no CSS at all and\n// the status dot rendered invisible — see sectionStyles.ts for the failure mode.\nconst ACTION_STYLE_COLORS: Record<string, string> = {\n PRIMARY: 'bg-action-primary-bg',\n SECONDARY: 'bg-[var(--color-text-muted)]',\n SUCCESS: 'bg-status-success-bg',\n WARNING: 'bg-status-warning-bg',\n DANGER: 'bg-status-error-bg',\n};\n\nconst ACTION_STYLE_FALLBACK_COLOR = 'bg-[var(--color-text-muted)]';\n\n/** Tab triggers: body-sm type and a 40px touch target on every device. */\nconst TAB_TRIGGER_STYLE: React.CSSProperties = {\n fontWeight: 'var(--font-weight-semibold)',\n fontSize: 'var(--font-size-body-sm)',\n padding: '6px 10px',\n minHeight: 'var(--size-controlHeight-md)',\n flexShrink: 0,\n};\n\n// ============================================================================\n// Config Component Map\n// ============================================================================\n\n/**\n * Detects field names from parser output and returns suggested labelField and valueField\n * @param output - The parser execution output\n * @returns Object with suggested labelField and valueField\n */\nfunction detectFieldsFromParserOutput(output: unknown): {\n labelField?: string;\n valueField?: string;\n xAxisField?: string;\n} {\n if (!output) return {};\n\n // If output is an array, look at the first item\n const sampleItem = Array.isArray(output) ? output[0] : output;\n\n if (!sampleItem || typeof sampleItem !== 'object') return {};\n\n const keys = Object.keys(sampleItem as Record<string, unknown>);\n\n // Common label field names (in order of priority)\n const labelFieldCandidates = [\n 'name',\n 'label',\n 'category',\n 'title',\n 'key',\n 'id',\n 'month',\n 'date',\n 'region',\n 'product',\n ];\n // Common value field names (in order of priority)\n const valueFieldCandidates = ['value', 'amount', 'count', 'total', 'revenue', 'sales', 'quantity', 'orders', 'sum'];\n\n let labelField: string | undefined;\n let valueField: string | undefined;\n\n // Find the best label field\n for (const candidate of labelFieldCandidates) {\n if (keys.includes(candidate)) {\n labelField = candidate;\n break;\n }\n }\n\n // Find the best value field\n for (const candidate of valueFieldCandidates) {\n if (keys.includes(candidate)) {\n valueField = candidate;\n break;\n }\n }\n\n // If no standard names found, use heuristics:\n // - First string field as label\n // - First number field as value\n if (!labelField || !valueField) {\n for (const key of keys) {\n const val = (sampleItem as Record<string, unknown>)[key];\n if (!labelField && typeof val === 'string') {\n labelField = key;\n }\n if (!valueField && typeof val === 'number') {\n valueField = key;\n }\n if (labelField && valueField) break;\n }\n }\n\n return {\n labelField,\n valueField,\n xAxisField: labelField, // For line/bar charts, xAxisField is usually the same as labelField\n };\n}\n\n// ============================================================================\n// Template Editor Component\n// ============================================================================\n\ninterface TemplateEditorProps {\n widget: Widget;\n onSave: (template: Record<string, unknown>) => void;\n}\n\nconst TemplateEditor: FC<TemplateEditorProps> = memo(function TemplateEditor({ widget, onSave }) {\n const { t } = useI18n();\n const [localValue, setLocalValue] = useState<string>('');\n const [jsonError, setJsonError] = useState<string | null>(null);\n const initializedRef = useRef(false);\n\n // Initialize from widget.template only once per widget\n useEffect(() => {\n try {\n const templateStr =\n widget.template && typeof widget.template === 'object' ? JSON.stringify(widget.template, null, 2) : '';\n setLocalValue(templateStr);\n setJsonError(null);\n initializedRef.current = true;\n } catch {\n setLocalValue('');\n }\n }, [widget.id, widget.template]);\n\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n const value = e.target.value;\n setLocalValue(value);\n\n if (value.trim() === '') {\n setJsonError(null);\n // Empty template is valid - notify parent\n onSave({});\n } else {\n try {\n const parsed = JSON.parse(value);\n setJsonError(null);\n // Valid JSON - immediately notify parent so main Save button becomes active\n onSave(parsed);\n } catch (err) {\n setJsonError((err as Error).message);\n // Don't call onSave for invalid JSON\n }\n }\n },\n [onSave]\n );\n\n const handleFormat = useCallback(() => {\n try {\n const parsed = JSON.parse(localValue);\n const formatted = JSON.stringify(parsed, null, 2);\n setLocalValue(formatted);\n setJsonError(null);\n onSave(parsed);\n } catch (err) {\n setJsonError((err as Error).message);\n }\n }, [localValue, onSave]);\n\n return (\n <Section\n emphasis=\"muted\"\n padding=\"compact\"\n headingLevel={4}\n title={t('bigconsole.widget.properties.template.label', 'Template (JSON)')}\n description={`The ${widget.renderer} payload this widget renders.`}\n tone={jsonError ? 'danger' : 'neutral'}\n meta={\n jsonError ? (\n <span className=\"text-xs font-medium text-[var(--color-status-error-text)]\">\n {t('bigconsole.widget.properties.template.invalidJson', 'Invalid JSON')}\n </span>\n ) : undefined\n }\n className=\"mt-form-gap\"\n data-testid=\"widget-inspector-template\"\n >\n <Textarea\n value={localValue}\n onChange={handleChange}\n spellCheck={false}\n placeholder={t('bigconsole.widget.properties.template.placeholder', 'Enter {{renderer}} template JSON...', {\n renderer: widget.renderer ?? '',\n })}\n style={{\n fontFamily: 'var(--font-family-mono)',\n fontSize: 'var(--font-size-body-sm)',\n minHeight: '180px',\n borderColor: jsonError ? 'var(--color-status-error-border)' : undefined,\n resize: 'vertical',\n }}\n />\n\n {jsonError && (\n <p\n style={{\n fontSize: 'var(--font-size-body-sm)',\n color: 'var(--color-status-error-text)',\n backgroundColor: 'var(--color-status-error-bgSubtle)',\n padding: 'var(--space-controlGap)',\n borderRadius: 'var(--radius-button)',\n marginTop: 'var(--space-controlGap)',\n }}\n >\n {jsonError}\n </p>\n )}\n\n <div className=\"mt-control-gap flex flex-wrap items-center gap-control-gap\">\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={handleFormat}\n disabled={!!jsonError || localValue.trim() === ''}\n style={{ height: 'var(--size-controlHeight-sm)', fontWeight: 'var(--font-weight-semibold)' }}\n >\n {t('bigconsole.widget.properties.template.format', 'Format')}\n </Button>\n {!jsonError && localValue.trim() !== '' && (\n <span\n style={{\n fontSize: 'var(--font-size-body-sm)',\n color: 'var(--color-status-success-text)',\n display: 'flex',\n alignItems: 'center',\n gap: '4px',\n }}\n >\n <Check style={{ width: '12px', height: '12px' }} />\n {t('bigconsole.widget.properties.template.validJson', 'Valid JSON')}\n </span>\n )}\n </div>\n\n <div className=\"mt-control-gap flex flex-wrap items-center justify-between gap-x-4 gap-y-1 border-t border-[var(--color-border-subtle)] pt-control-gap text-xs text-text-muted\">\n <span className=\"font-medium\">{t('bigconsole.widget.properties.template.ctrlSToSave', 'Ctrl+S to save')}</span>\n {widget.renderer === 'ADAPTIVE_CARD' && (\n <a\n href=\"https://adaptivecards.io/designer/\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n style={{\n display: 'flex',\n alignItems: 'center',\n gap: 'var(--space-controlGap)',\n color: 'var(--color-text-link)',\n fontSize: 'var(--font-size-body-sm)',\n fontWeight: 'var(--font-weight-medium)',\n textDecoration: 'none',\n }}\n >\n {t('bigconsole.widget.properties.template.designer', 'Designer')}\n <ExternalLink style={{ height: 'var(--size-icon-sm)', width: 'var(--size-icon-sm)' }} />\n </a>\n )}\n {widget.renderer === 'BLOCKKIT' && (\n <a\n href=\"https://app.slack.com/block-kit-builder\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n style={{\n display: 'flex',\n alignItems: 'center',\n gap: 'var(--space-controlGap)',\n color: 'var(--color-text-link)',\n fontSize: 'var(--font-size-body-sm)',\n fontWeight: 'var(--font-weight-medium)',\n textDecoration: 'none',\n }}\n >\n {t('bigconsole.widget.properties.template.blockKitBuilder', 'Block Kit Builder')}\n <ExternalLink style={{ height: 'var(--size-icon-sm)', width: 'var(--size-icon-sm)' }} />\n </a>\n )}\n </div>\n </Section>\n );\n});\n\n// ============================================================================\n// Local Form State Type\n// ============================================================================\n\ninterface LocalFormState {\n title: string;\n description: string;\n refreshInterval: number | undefined;\n renderer: RendererType;\n template: Record<string, unknown> | undefined;\n // v2.0: Data source fields (DataSink → Parser → Widget)\n dataSinkId: string | undefined;\n datasetId: string | undefined;\n parserId: string | undefined;\n parserRules: string | undefined;\n config: Record<string, unknown>;\n // Drilldown configuration\n drilldownConfig: DrilldownConfig | undefined;\n}\n\nfunction createLocalFormStateFromWidget(widget: Widget): LocalFormState {\n const widgetFields = widget as unknown as Record<string, string | undefined>;\n const binding = getWidgetBinding({\n dataSinkId: widgetFields.dataSinkId,\n parserId: widgetFields.parserId,\n config: (widget.config as Record<string, unknown>) || {},\n });\n\n return {\n title: widget.title || '',\n description: widget.description || '',\n refreshInterval: widget.refreshInterval ?? undefined,\n renderer: (widget.renderer as RendererType) || 'BIGCONSOLE',\n template: widget.template as Record<string, unknown> | undefined,\n // v2.0: Data source fields (DataSink → Parser → Widget)\n dataSinkId: binding.source.kind === 'DATASINK' ? binding.source.ref : undefined,\n datasetId: widgetFields.datasetId ?? undefined,\n parserId: binding.parserId,\n parserRules: widgetFields.parserRules ?? undefined,\n config: (widget.config as Record<string, unknown>) || {},\n // Drilldown configuration\n drilldownConfig: widget.drilldown\n ? {\n enabled: widget.drilldown.enabled ?? false,\n targetDashboardId: widget.drilldown.targetDashboardId ?? '',\n targetPageId: widget.drilldown.targetPageId ?? null,\n navigationMode: widget.drilldown.navigationMode ?? 'MODAL',\n parameterMapping: (widget.drilldown.parameterMapping as Record<string, string>) ?? {},\n passGlobalFilters: widget.drilldown.passGlobalFilters ?? true,\n maxDepth: widget.drilldown.maxDepth ?? 3,\n }\n : undefined,\n };\n}\n\n// ============================================================================\n// Component\n// ============================================================================\n\nexport const PropertiesPanel: FC<PropertiesPanelProps> = memo(function PropertiesPanel({ isOpen, onClose }) {\n const { t } = useI18n();\n const [activeTab, setActiveTab] = useState<TabId>('general');\n const [saveStatus, setSaveStatus] = useState<'idle' | 'saving' | 'saved' | 'error'>('idle');\n const [localForm, setLocalForm] = useState<LocalFormState | null>(null);\n const [hasUnsavedChanges, setHasUnsavedChanges] = useState(false);\n\n const selectedWidgetId = useWidgetStore((state) => state.selectedWidgetId);\n const widgets = useWidgetStore((state) => state.widgets);\n const updateWidgetInStore = useWidgetStore((state) => state.updateWidget);\n const updateWidgetPosition = useWidgetStore((state) => state.updateWidgetPosition);\n // Grid placement is only editable while the board is in edit mode — outside\n // it there is no Save to persist the change, so the fields would look live\n // and quietly revert on reload.\n const isEditMode = useIsEditMode();\n\n const selectedWidget = selectedWidgetId ? widgets.get(selectedWidgetId) : undefined;\n\n /**\n * The widget's grid placement. `position` is the canonical field; the flat\n * `positionX/Y/Width/Height` mirrors are the fallback for widgets normalised\n * before `position` was populated.\n */\n const selectedPosition: WidgetPosition | null = selectedWidget\n ? {\n x: selectedWidget.position?.x ?? selectedWidget.positionX ?? 0,\n y: selectedWidget.position?.y ?? selectedWidget.positionY ?? 0,\n width: selectedWidget.position?.width ?? selectedWidget.positionWidth ?? 4,\n height: selectedWidget.position?.height ?? selectedWidget.positionHeight ?? 4,\n }\n : null;\n\n const handlePositionChange = useCallback(\n (next: WidgetPosition) => {\n if (!selectedWidgetId) return;\n updateWidgetPosition(selectedWidgetId, next);\n },\n [selectedWidgetId, updateWidgetPosition]\n );\n const previousSelectedWidgetIdRef = useRef<string | null>(null);\n // The widget config as it was when `localForm` was last seeded. Used on save to\n // apply only the panel's own config changes without clobbering keys another\n // editor (e.g. the pivot canvas) persisted while the panel held unsaved edits.\n const seededConfigRef = useRef<Record<string, unknown>>({});\n\n /**\n * Monotonic counter bumped on every local edit.\n *\n * `handleSaveAll` snapshots it before awaiting the mutation. Any edit made\n * while that request is in flight bumps it, which tells the completion\n * handler NOT to clear `hasUnsavedChanges` — otherwise the re-seed effect\n * below (which only bails out `if (hasUnsavedChanges)`) would immediately\n * overwrite `localForm` with the just-saved server state and the user's\n * in-flight edit would vanish with no error.\n */\n const formRevisionRef = useRef(0);\n const markFormDirty = useCallback(() => {\n formRevisionRef.current += 1;\n setHasUnsavedChanges(true);\n }, []);\n\n useEffect(() => {\n if (!selectedWidgetId) {\n previousSelectedWidgetIdRef.current = null;\n setLocalForm(null);\n setHasUnsavedChanges(false);\n setSaveStatus('idle');\n return;\n }\n\n const widgetSwitched = previousSelectedWidgetIdRef.current !== selectedWidgetId;\n previousSelectedWidgetIdRef.current = selectedWidgetId;\n\n if (selectedWidget) {\n if (hasUnsavedChanges && !widgetSwitched) return;\n\n setLocalForm(createLocalFormStateFromWidget(selectedWidget));\n seededConfigRef.current = (selectedWidget.config as Record<string, unknown>) || {};\n setHasUnsavedChanges(false);\n setSaveStatus('idle');\n } else {\n setLocalForm(null);\n setHasUnsavedChanges(false);\n setSaveStatus('idle');\n }\n }, [selectedWidgetId, selectedWidget, hasUnsavedChanges]);\n\n const { updateWidget: updateWidgetApi } = useWidgetOperations(selectedWidget?.pageId, selectedWidget?.dashboardId, {\n skipFetch: true,\n });\n\n // Drilldown operations\n const { createDrilldown, updateDrilldown, deleteDrilldown } = useDrilldownOperations();\n\n // DataSink operations - for looking up DataSink by key\n const { dataSinks } = useDataSinkOperations({ skipFetch: false });\n\n // Track selected DataSink key for filtering parsers\n const [selectedDataSinkKey, setSelectedDataSinkKey] = useState<string | null>(null);\n\n // Parser operations - for executing parser to detect fields\n const { executeParser, fetchParser } = useParserOperations({\n consoleId: selectedWidget?.dashboardId,\n skipFetch: true,\n });\n\n const [resolvedBindingParser, setResolvedBindingParser] = useState<Parser | null>(null);\n const [isResolvingBinding, setIsResolvingBinding] = useState(false);\n const bindingParserId = localForm?.parserId;\n\n // AI-created widgets can bind a parser without duplicating its input sink ID.\n // Resolve that existing parser rather than presenting a valid chart as unbound.\n useEffect(() => {\n let cancelled = false;\n setResolvedBindingParser(null);\n if (!isOpen || !bindingParserId) {\n setIsResolvingBinding(false);\n return;\n }\n setIsResolvingBinding(true);\n void fetchParser(bindingParserId).then((parser) => {\n if (cancelled) return;\n setResolvedBindingParser(parser);\n setIsResolvingBinding(false);\n });\n return () => {\n cancelled = true;\n };\n }, [isOpen, bindingParserId, selectedWidgetId, fetchParser]);\n\n // Track if we're auto-detecting fields\n const [isDetectingFields, setIsDetectingFields] = useState(false);\n const [bindingPreview, setBindingPreview] = useState<unknown>(undefined);\n const [bindingPreviewComplete, setBindingPreviewComplete] = useState(false);\n const [bindingPreviewError, setBindingPreviewError] = useState<string | null>(null);\n\n useEffect(() => {\n setBindingPreview(undefined);\n setBindingPreviewComplete(false);\n setBindingPreviewError(null);\n setIsDetectingFields(false);\n }, [selectedWidgetId]);\n\n const {\n actions,\n loading: actionsLoading,\n createAction,\n updateAction,\n deleteAction,\n reorderActions,\n } = useWidgetActions(selectedWidgetId || undefined);\n\n // Webhook mappings for this widget — used to pair a button with an HTTP call\n // inline (\"When clicked → call a webhook\") without leaving the Add-Button flow.\n const {\n webhooks,\n loading: webhooksLoading,\n createWebhook,\n updateWebhook,\n deleteWebhook,\n refetch: refetchWebhooks,\n } = useEventWebhooks({\n widgetId: selectedWidgetId || undefined,\n skipFetch: !selectedWidgetId,\n });\n\n // Match a webhook mapping to an action (by its emitted event) within a given list.\n const findWebhookIn = useCallback(\n (list: EventWebhookMapping[], actionName: string) => {\n const pattern = eventPatternForAction(actionName);\n return list.find((w) => w.widgetId === selectedWidgetId && w.eventPattern === pattern) ?? null;\n },\n [selectedWidgetId]\n );\n\n // Find the webhook mapping paired to an action from the currently-loaded list.\n const webhookForAction = useCallback(\n (actionName: string) => findWebhookIn(webhooks, actionName),\n [findWebhookIn, webhooks]\n );\n\n // Create/update/remove the paired webhook mapping to match the dialog's outcome.\n // Returns false if a required webhook mutation failed so the caller can surface\n // it instead of silently leaving a button that looks wired but isn't (#5).\n const reconcileActionWebhook = useCallback(\n async (actionName: string, draft: ActionWebhookDraft | null | undefined): Promise<boolean> => {\n if (!selectedWidgetId || draft === undefined) return true;\n const pattern = eventPatternForAction(actionName);\n let existing = webhookForAction(actionName);\n // If the mapping list is still loading, a null lookup is unreliable and a\n // create here would duplicate an existing mapping (two endpoints firing per\n // click). Force a fresh fetch and re-check before deciding there is none (#7).\n if (!existing && webhooksLoading) {\n const res = await refetchWebhooks();\n const fresh = (res?.data?.listEventWebhookMappings ?? []) as EventWebhookMapping[];\n existing = findWebhookIn(fresh, actionName);\n }\n if (draft && draft.url) {\n if (existing) {\n // Re-activate on save — a mapping disabled in the Webhooks panel would\n // otherwise show as wired while clicks are still ignored (#4).\n const res = await updateWebhook({\n id: existing.id,\n eventPattern: pattern,\n webhookUrl: draft.url,\n method: draft.method,\n isActive: true,\n });\n return res !== null;\n }\n const res = await createWebhook({\n widgetId: selectedWidgetId,\n eventPattern: pattern,\n webhookUrl: draft.url,\n method: draft.method,\n });\n return res !== null;\n }\n if (draft === null && existing) {\n // Outcome switched away from \"call a webhook\" — drop the binding.\n return deleteWebhook(existing.id);\n }\n return true;\n },\n [\n selectedWidgetId,\n webhookForAction,\n webhooksLoading,\n refetchWebhooks,\n findWebhookIn,\n createWebhook,\n updateWebhook,\n deleteWebhook,\n ]\n );\n\n const [isActionDialogOpen, setIsActionDialogOpen] = useState(false);\n const [editingAction, setEditingAction] = useState<WidgetAction | undefined>(undefined);\n const [actionSaving, setActionSaving] = useState(false);\n // When a webhook mutation fails after the action itself saved, we keep the\n // dialog open on the persisted action so the user can retry. That reassigns\n // the dialog's `action` prop and re-runs its reset effect, which would wipe the\n // URL the user just typed (the mapping never persisted, so `editingWebhook` is\n // null). Stash the attempted draft here and feed it back as `initialWebhook` so\n // the dialog re-seeds it instead of clearing it.\n //\n // Tri-state: `undefined` = no retry draft (use the persisted mapping);\n // an object = a failed webhook create/update to re-seed; `null` = a failed\n // \"switch to Emit / remove webhook\" so the retry keeps the Emit selection\n // instead of falling back to the still-present old mapping (#8).\n const [pendingWebhookDraft, setPendingWebhookDraft] = useState<ActionWebhookDraft | null | undefined>(undefined);\n // Surfaces a save failure inside the dialog so the user isn't left with a\n // silently-editable form and no idea what went wrong (#9).\n const [pendingActionError, setPendingActionError] = useState<string | null>(null);\n\n // Prefill the dialog's webhook field when editing an action already paired with one.\n const editingWebhook = useMemo<ActionWebhookDraft | null>(() => {\n if (!editingAction) return null;\n const paired = webhookForAction(editingAction.name);\n return paired ? { url: paired.webhookUrl, method: paired.method } : null;\n }, [editingAction, webhookForAction]);\n\n // A retry draft (from a failed save) wins over the persisted mapping — including\n // an explicit `null` removal retry, which must NOT fall back to `editingWebhook`.\n const dialogInitialWebhook = pendingWebhookDraft !== undefined ? pendingWebhookDraft : editingWebhook;\n\n // Pre-compute each action's paired webhook once per render instead of running a\n // `.find()` inside the action-list JSX for every row on every render.\n const webhookByActionName = useMemo(() => {\n const map = new Map<string, EventWebhookMapping>();\n for (const a of actions) {\n const paired = webhookForAction(a.name);\n if (paired) map.set(a.name, paired);\n }\n return map;\n }, [actions, webhookForAction]);\n\n const handleAddAction = useCallback(() => {\n setPendingWebhookDraft(undefined);\n setPendingActionError(null);\n setEditingAction(undefined);\n setIsActionDialogOpen(true);\n }, []);\n\n const handleEditAction = useCallback((action: WidgetAction) => {\n setPendingWebhookDraft(undefined);\n setPendingActionError(null);\n setEditingAction(action);\n setIsActionDialogOpen(true);\n }, []);\n\n const handleSaveAction = useCallback(\n async (data: ActionSaveData, webhook: ActionWebhookDraft | null) => {\n if (!selectedWidgetId) return;\n\n setActionSaving(true);\n setPendingActionError(null);\n try {\n // `data` carries only action fields; the webhook binding arrives as a\n // separate arg so it can never leak into the GraphQL mutation input.\n const isUpdate = 'id' in data && !!data.id;\n\n let newAction: WidgetAction | null = null;\n if (isUpdate) {\n newAction = await updateAction(data as UpdateWidgetActionInput);\n } else {\n newAction = await createAction(data as Omit<CreateWidgetActionInput, 'widgetId'>);\n }\n\n // Immediately sync to widget store after successful save\n // This ensures the widget displays the action right away\n if (newAction) {\n const currentActions = [...actions];\n if (isUpdate) {\n // Update existing action\n const idx = currentActions.findIndex((a) => a.id === newAction?.id);\n if (idx >= 0) {\n currentActions[idx] = newAction;\n }\n } else {\n // Add new action\n currentActions.push(newAction);\n }\n // Sort by order and update store\n const sortedActions = currentActions.sort((a, b) => a.order - b.order);\n updateWidgetInStore(selectedWidgetId, { actions: sortedActions });\n\n // Pair (or unpair) the webhook that actually gives the button its behaviour.\n const webhookOk = await reconcileActionWebhook(newAction.name, webhook);\n if (!webhookOk) {\n // The action saved but its webhook did not. Keep the dialog open on\n // the now-persisted action so the user can retry (as an update, not a\n // duplicate). Stash the typed draft (which may be `null` for a failed\n // switch-to-Emit) so re-seeding the dialog keeps the user's choice (#8),\n // and surface why the save didn't fully land (#9).\n setPendingWebhookDraft(webhook);\n setPendingActionError(\n webhook\n ? t(\n 'bigconsole.widget.properties.action.webhookSaveFailed',\n 'The button was saved, but its webhook could not be saved. Check the URL and try again.'\n )\n : t(\n 'bigconsole.widget.properties.action.webhookRemoveFailed',\n 'The button was saved, but its old webhook could not be removed. Try again.'\n )\n );\n setEditingAction(newAction);\n return;\n }\n\n setPendingWebhookDraft(undefined);\n setPendingActionError(null);\n setIsActionDialogOpen(false);\n setEditingAction(undefined);\n }\n } catch (err) {\n // Keep the dialog open (we never closed it in the throw path) and surface\n // the failure to the user — console.log is globally no-op'd here, so warn (#9).\n console.warn('Failed to save widget action:', err);\n setPendingActionError(\n err instanceof Error\n ? err.message\n : t('bigconsole.widget.properties.action.saveFailed', 'Could not save the button. Please try again.')\n );\n } finally {\n setActionSaving(false);\n }\n },\n [selectedWidgetId, actions, createAction, updateAction, updateWidgetInStore, reconcileActionWebhook, t]\n );\n\n const handleDeleteAction = useCallback(\n async (actionId: string) => {\n if (!selectedWidgetId) return;\n\n if (\n window.confirm(\n t('bigconsole.widget.properties.action.deleteConfirm', 'Are you sure you want to delete this action?')\n )\n ) {\n const target = actions.find((a) => a.id === actionId);\n const success = await deleteAction(actionId);\n if (success) {\n // Immediately sync to widget store after deletion\n const updatedActions = actions.filter((a) => a.id !== actionId);\n updateWidgetInStore(selectedWidgetId, { actions: updatedActions });\n\n // Best-effort: remove the webhook mapping this button was paired with.\n if (target) {\n const paired = webhookForAction(target.name);\n if (paired) await deleteWebhook(paired.id);\n }\n }\n }\n },\n [selectedWidgetId, actions, deleteAction, updateWidgetInStore, webhookForAction, deleteWebhook, t]\n );\n\n const handleMoveActionUp = useCallback(\n async (index: number) => {\n if (!selectedWidgetId || index === 0) return;\n const sortedActions = [...actions].sort((a, b) => a.order - b.order);\n const newOrder = sortedActions.map((a) => a.id);\n [newOrder[index - 1], newOrder[index]] = [newOrder[index], newOrder[index - 1]];\n const success = await reorderActions(newOrder);\n if (success) {\n // Immediately update local order for UI responsiveness\n const reordered = sortedActions\n .map((a, _i) => ({\n ...a,\n order: newOrder.indexOf(a.id),\n }))\n .sort((a, b) => a.order - b.order);\n updateWidgetInStore(selectedWidgetId, { actions: reordered });\n }\n },\n [selectedWidgetId, actions, reorderActions, updateWidgetInStore]\n );\n\n const handleMoveActionDown = useCallback(\n async (index: number) => {\n if (!selectedWidgetId) return;\n const sortedActions = [...actions].sort((a, b) => a.order - b.order);\n if (index === sortedActions.length - 1) return;\n const newOrder = sortedActions.map((a) => a.id);\n [newOrder[index], newOrder[index + 1]] = [newOrder[index + 1], newOrder[index]];\n const success = await reorderActions(newOrder);\n if (success) {\n // Immediately update local order for UI responsiveness\n const reordered = sortedActions\n .map((a, _i) => ({\n ...a,\n order: newOrder.indexOf(a.id),\n }))\n .sort((a, b) => a.order - b.order);\n updateWidgetInStore(selectedWidgetId, { actions: reordered });\n }\n },\n [selectedWidgetId, actions, reorderActions, updateWidgetInStore]\n );\n\n useEffect(() => {\n if (selectedWidgetId && actions.length >= 0 && !actionsLoading) {\n updateWidgetInStore(selectedWidgetId, { actions });\n }\n }, [selectedWidgetId, actions, actionsLoading, updateWidgetInStore]);\n\n const updateLocalForm = useCallback(\n <K extends keyof LocalFormState>(key: K, value: LocalFormState[K]) => {\n setLocalForm((prev) => (prev ? { ...prev, [key]: value } : prev));\n markFormDirty();\n },\n [markFormDirty]\n );\n\n const updateLocalConfig = useCallback(\n (newConfig: Record<string, unknown>) => {\n setLocalForm((prev) => (prev ? { ...prev, config: newConfig } : prev));\n markFormDirty();\n },\n [markFormDirty]\n );\n\n // Explicit bindings win. Only an absent DataSink ref is inferred from the\n // actual parser input key and the current workspace's real sink records.\n useEffect(() => {\n if (!localForm) {\n setSelectedDataSinkKey(null);\n return;\n }\n if (localForm.dataSinkId) {\n setSelectedDataSinkKey(dataSinks.find((sink) => sink.id === localForm.dataSinkId)?.key ?? null);\n return;\n }\n const binding = getWidgetBinding({ parserId: localForm.parserId, config: localForm.config });\n const parser = resolvedBindingParser?.id === localForm.parserId ? resolvedBindingParser : null;\n const sink =\n binding.source.kind === 'DATASINK' && !binding.source.ref && parser\n ? dataSinks.find((candidate) => candidate.key === parser.inputSinkKey)\n : undefined;\n setSelectedDataSinkKey(sink?.key ?? null);\n if (sink) {\n setLocalForm((previous) =>\n previous && previous.parserId === parser?.id && !previous.dataSinkId\n ? { ...previous, dataSinkId: sink.id }\n : previous\n );\n }\n }, [localForm, dataSinks, resolvedBindingParser]);\n\n // Handle DataSink selection - looks up ID from key and updates form\n const handleDataSinkChange = useCallback(\n (key: string | null) => {\n setBindingPreview(undefined);\n setBindingPreviewComplete(false);\n setBindingPreviewError(null);\n setSelectedDataSinkKey(key);\n if (key) {\n const ds = dataSinks.find((d) => d.key === key);\n if (ds) {\n updateLocalForm('dataSinkId', ds.id);\n // Also update config.dataSinkKey for backward compatibility\n setLocalForm((prev) =>\n prev\n ? {\n ...prev,\n config: { ...prev.config, dataSinkKey: key },\n }\n : prev\n );\n markFormDirty();\n }\n } else {\n updateLocalForm('dataSinkId', undefined);\n setLocalForm((prev) =>\n prev\n ? {\n ...prev,\n config: { ...prev.config, dataSinkKey: undefined },\n parserId: undefined, // Clear parser when DataSink is cleared\n }\n : prev\n );\n markFormDirty();\n }\n },\n [dataSinks, updateLocalForm, markFormDirty]\n );\n\n // Handle Parser selection - with auto-detection of field mappings\n const handleParserChange = useCallback(\n async (parserId: string | null) => {\n updateLocalForm('parserId', parserId || undefined);\n setBindingPreview(undefined);\n setBindingPreviewComplete(false);\n setBindingPreviewError(null);\n\n // If a parser is selected, execute it to detect field structure\n if (parserId && selectedWidget) {\n setIsDetectingFields(true);\n try {\n const result = await executeParser(parserId);\n\n if (result?.success) {\n setBindingPreview(result.output);\n setBindingPreviewComplete(true);\n const detectedFields = detectFieldsFromParserOutput(result.output);\n\n // Only auto-populate if fields were detected and not already set\n if (detectedFields.labelField || detectedFields.valueField) {\n setLocalForm((prev) => {\n if (!prev) return prev;\n\n const currentConfig = prev.config || {};\n const newConfig = { ...currentConfig };\n\n // Auto-populate labelField if not already set\n if (detectedFields.labelField && !currentConfig.labelField) {\n newConfig.labelField = detectedFields.labelField;\n }\n\n // Auto-populate valueField if not already set\n if (detectedFields.valueField && !currentConfig.valueField) {\n newConfig.valueField = detectedFields.valueField;\n }\n\n // Auto-populate xAxisField for line/bar/area charts if not already set\n if (detectedFields.xAxisField && !currentConfig.xAxisField) {\n newConfig.xAxisField = detectedFields.xAxisField;\n }\n\n return { ...prev, config: newConfig };\n });\n markFormDirty();\n }\n } else {\n setBindingPreviewComplete(true);\n setBindingPreviewError(\n result?.error ||\n t('bigconsole.widget.properties.parser.previewFailed', 'The parser could not produce a preview.')\n );\n }\n } catch (err) {\n setBindingPreviewComplete(true);\n setBindingPreviewError(\n err instanceof Error\n ? err.message\n : t('bigconsole.widget.properties.parser.previewFailed', 'The parser could not produce a preview.')\n );\n console.warn('Failed to auto-detect parser fields:', err);\n } finally {\n setIsDetectingFields(false);\n }\n }\n },\n [updateLocalForm, executeParser, selectedWidget, markFormDirty, t]\n );\n\n const handleSaveAll = useCallback(async () => {\n if (!selectedWidget || !localForm) return;\n\n // Snapshot the form revision before awaiting: any edit made while the\n // mutation is in flight bumps it, and must survive the completion handler.\n const revisionAtSave = formRevisionRef.current;\n\n setSaveStatus('saving');\n\n try {\n const metadata = { ...(selectedWidget.metadata || {}), description: localForm.description || '' };\n // Reconcile against the latest persisted config so we don't wipe keys another\n // editor changed while the panel held unsaved edits (e.g. pivot rows/columns/\n // values dragged on the canvas). See reconcilePanelConfig.\n const latestConfig =\n (useWidgetStore.getState().widgets.get(selectedWidget.id)?.config as Record<string, unknown>) ?? {};\n const mergedConfig = reconcilePanelConfig(latestConfig, seededConfigRef.current, localForm.config);\n const bindingDraft = getWidgetBinding({\n dataSinkId: localForm.dataSinkId,\n parserId: localForm.parserId,\n config: { ...mergedConfig, binding: undefined },\n });\n const bindingWrite = serializeWidgetBinding(bindingDraft, mergedConfig);\n\n const result = await updateWidgetApi({\n id: selectedWidget.id,\n title: localForm.title,\n renderer: localForm.renderer,\n template: localForm.template,\n config: bindingWrite.config,\n refreshInterval: localForm.refreshInterval,\n // v2.0: Data source fields (DataSink → Parser → Widget)\n dataSinkId: bindingWrite.dataSinkId,\n datasetId: localForm.datasetId,\n parserId: bindingWrite.parserId,\n parserRules: localForm.parserRules,\n metadata,\n });\n\n // Save drilldown configuration to backend. A rejected drilldown (target\n // archived or no longer shared, a page from another dashboard) must not\n // read as a successful save, so it is reported separately (BOFF-7625).\n let savedDrilldown = selectedWidget.drilldown;\n let drilldownFailure: Error | null = null;\n const existingDrilldownId = selectedWidget.drilldown?.id;\n try {\n if (localForm.drilldownConfig) {\n const {\n enabled,\n targetDashboardId,\n targetPageId,\n navigationMode,\n parameterMapping,\n passGlobalFilters,\n maxDepth,\n } = localForm.drilldownConfig;\n\n if (existingDrilldownId && !enabled) {\n // Turning drilldown off removes it, as the panel tells the user.\n await deleteDrilldown(existingDrilldownId);\n savedDrilldown = undefined;\n } else if (existingDrilldownId) {\n const drilldownResult = await updateDrilldown({\n id: existingDrilldownId,\n targetDashboardId,\n targetPageId,\n parameterMapping,\n navigationMode,\n enabled,\n passGlobalFilters,\n maxDepth,\n });\n if (drilldownResult) {\n savedDrilldown = drilldownResult;\n }\n } else if (enabled && targetDashboardId) {\n const drilldownResult = await createDrilldown({\n sourceWidgetId: selectedWidget.id,\n targetDashboardId,\n targetPageId,\n parameterMapping: parameterMapping || {},\n navigationMode,\n passGlobalFilters,\n maxDepth,\n });\n if (drilldownResult) {\n savedDrilldown = drilldownResult;\n }\n }\n }\n } catch (err) {\n drilldownFailure = err instanceof Error ? err : new Error(String(err));\n }\n\n if (result) {\n updateWidgetInStore(selectedWidget.id, {\n title: localForm.title,\n description: localForm.description,\n renderer: localForm.renderer,\n template: localForm.template,\n config: bindingWrite.config,\n refreshInterval: localForm.refreshInterval,\n // v2.0: Data source fields\n dataSinkId: bindingWrite.dataSinkId,\n datasetId: localForm.datasetId,\n parserId: bindingWrite.parserId,\n parserRules: localForm.parserRules,\n // Drilldown configuration from backend\n drilldown: savedDrilldown,\n // Update timestamp to trigger WidgetWrapper re-render (fixes drilldown mode change bug)\n updatedAt: new Date().toISOString(),\n } as Partial<Widget>);\n\n if (drilldownFailure) {\n // The widget itself saved; keep the form dirty so the drilldown edit\n // can be corrected and saved again.\n setSaveStatus('error');\n toast.error(t('bigconsole.widget.drilldown.saveFailed', 'Drilldown not saved'), {\n description: drilldownFailure.message,\n });\n return;\n }\n\n setSaveStatus('saved');\n // Only mark clean if nothing was edited during the round-trip.\n // Clearing unconditionally let the re-seed effect overwrite localForm\n // with the just-saved server state, silently discarding that edit.\n if (formRevisionRef.current === revisionAtSave) {\n setHasUnsavedChanges(false);\n }\n setTimeout(() => setSaveStatus('idle'), 2000);\n } else {\n setSaveStatus('error');\n }\n } catch (err) {\n setSaveStatus('error');\n }\n }, [\n selectedWidget,\n localForm,\n updateWidgetApi,\n updateWidgetInStore,\n createDrilldown,\n updateDrilldown,\n deleteDrilldown,\n t,\n ]);\n\n const handleDiscardAll = useCallback(() => {\n if (!selectedWidget) return;\n\n setLocalForm(createLocalFormStateFromWidget(selectedWidget));\n seededConfigRef.current = (selectedWidget.config as Record<string, unknown>) || {};\n setHasUnsavedChanges(false);\n setSaveStatus('idle');\n }, [selectedWidget]);\n\n const handleConfigChange = useCallback(\n (newConfig: Record<string, unknown>) => {\n updateLocalConfig(newConfig);\n },\n [updateLocalConfig]\n );\n\n const handleDrilldownChange = useCallback(\n (config: DrilldownConfig) => {\n setLocalForm((prev) => (prev ? { ...prev, drilldownConfig: config } : prev));\n markFormDirty();\n },\n [markFormDirty]\n );\n\n const definition = selectedWidget ? getWidgetDefinition(selectedWidget.type) : null;\n\n const rendererOptions = useMemo(\n () =>\n RENDERER_OPTIONS.map((opt) => ({\n value: opt.value,\n label: t(opt.labelKey, opt.label),\n description: t(opt.descriptionKey, opt.description),\n })),\n [t]\n );\n\n const dataSourceTypes = useMemo(\n () =>\n DATA_SOURCE_TYPES.map((type) => ({\n value: type.value,\n label: t(type.labelKey, type.label),\n })),\n [t]\n );\n\n return (\n <Sheet open={isOpen} onOpenChange={(open) => !open && onClose()} modal={false}>\n {/*\n `min(420px, 100vw)` instead of a hard 420px + 90vw cap: on a 390px\n viewport the old sizing left a 39px sliver of unusable canvas beside a\n full-bleed sheet. Now the sheet simply takes the viewport (BOFF-5636).\n */}\n <SheetContent\n style={{\n width: 'min(420px, 100vw)',\n maxWidth: '100vw',\n padding: 0,\n display: 'flex',\n flexDirection: 'column',\n height: '100%',\n overflow: 'hidden',\n }}\n >\n <SheetHeader\n style={{\n padding: 'var(--space-cardPadding)',\n borderBottom: '1px solid var(--color-border-subtle)',\n backgroundColor: 'var(--color-bg-surface)',\n flexShrink: 0,\n }}\n >\n <div style={{ display: 'flex', alignItems: 'center', gap: 'var(--space-controlGap)' }}>\n <div\n style={{\n display: 'flex',\n height: 'var(--size-controlHeight-lg)',\n width: 'var(--size-controlHeight-lg)',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: 'var(--radius-card)',\n backgroundColor: 'var(--color-action-primary-bg)',\n boxShadow: 'var(--shadow-elevation-2)',\n flexShrink: 0,\n }}\n >\n <Info\n style={{\n height: 'var(--size-icon-md)',\n width: 'var(--size-icon-md)',\n color: 'var(--color-action-primary-text)',\n }}\n />\n </div>\n <div style={{ flex: 1, minWidth: 0 }}>\n <div style={{ display: 'flex', alignItems: 'center', gap: 'var(--space-iconGap)' }}>\n <SheetTitle\n style={{\n fontSize: 'var(--font-size-body-md)',\n fontWeight: 'var(--font-weight-bold)',\n color: 'var(--color-text-primary)',\n margin: 0,\n }}\n >\n {selectedWidget\n ? t('bigconsole.widget.properties.header.widgetProperties', 'Widget Properties')\n : t('bigconsole.widget.properties.header.properties', 'Properties')}\n </SheetTitle>\n {saveStatus === 'saving' && (\n <Spinner style={{ height: 'var(--size-icon-sm)', width: 'var(--size-icon-sm)' }} />\n )}\n {saveStatus === 'saved' && (\n <Check\n style={{\n height: 'var(--size-icon-sm)',\n width: 'var(--size-icon-sm)',\n color: 'var(--color-status-success-bg)',\n }}\n />\n )}\n {saveStatus === 'error' && (\n <X\n style={{\n height: 'var(--size-icon-sm)',\n width: 'var(--size-icon-sm)',\n color: 'var(--color-status-error-bg)',\n }}\n />\n )}\n </div>\n {definition && (\n <SheetDescription\n style={{\n fontSize: 'var(--font-size-body-sm)',\n color: 'var(--color-text-secondary)',\n margin: 'var(--space-controlGap) 0 0 0',\n fontWeight: 'var(--font-weight-medium)',\n }}\n >\n {definition.name}\n </SheetDescription>\n )}\n </div>\n </div>\n </SheetHeader>\n\n {selectedWidget ? (\n <Tabs\n value={activeTab}\n onValueChange={(v) => setActiveTab(v as TabId)}\n style={{ flex: 1, display: 'flex', flexDirection: 'column', minHeight: 0, overflow: 'hidden' }}\n >\n {/*\n The tab strip is the panel's navigation, so it no longer renders in\n type smaller than the content it switches (was a hard-coded 12px),\n and it wraps to a second row instead of becoming a horizontal\n scroller that can hide the fourth tab off-screen (BOFF-5636).\n */}\n <TabsList\n style={{\n width: '100%',\n display: 'flex',\n flexWrap: 'wrap',\n justifyContent: 'flex-start',\n borderRadius: 0,\n borderBottom: '1px solid var(--color-border-subtle)',\n padding: '2px 8px',\n backgroundColor: 'var(--color-bg-sunken)',\n minHeight: 'var(--size-controlHeight-lg)',\n height: 'auto',\n flexShrink: 0,\n gap: '2px',\n }}\n >\n <TabsTrigger value=\"general\" style={TAB_TRIGGER_STYLE}>\n {t('bigconsole.widget.properties.tab.general', 'General')}\n </TabsTrigger>\n <TabsTrigger value=\"data\" style={TAB_TRIGGER_STYLE}>\n {t('bigconsole.widget.properties.tab.data', 'Data')}\n </TabsTrigger>\n <TabsTrigger value=\"advanced\" style={TAB_TRIGGER_STYLE}>\n {t('bigconsole.widget.properties.tab.advanced', 'Advanced')}\n </TabsTrigger>\n <TabsTrigger value=\"appearance\" style={TAB_TRIGGER_STYLE}>\n {t('bigconsole.widget.properties.tab.style', 'Style')}\n </TabsTrigger>\n </TabsList>\n\n <div style={{ flex: 1, overflow: 'auto', padding: 'var(--space-cardPadding)', minHeight: 0 }}>\n <TabsContent value=\"general\" className=\"mt-0\">\n {localForm && (\n <SectionStack>\n <GeneralSection\n title={localForm.title}\n description={localForm.description}\n refreshInterval={localForm.refreshInterval}\n onTitleChange={(title) => updateLocalForm('title', title)}\n onDescriptionChange={(description) => updateLocalForm('description', description)}\n onRefreshIntervalChange={(refreshInterval) => updateLocalForm('refreshInterval', refreshInterval)}\n />\n\n <Section\n title={t('bigconsole.widget.properties.actions.heading', 'Buttons')}\n description={t(\n 'bigconsole.widget.properties.actions.subheading',\n 'Configure buttons on this widget'\n )}\n headingLevel={3}\n meta={\n actions.length > 0 ? (\n <span className=\"rounded-pill bg-bg-sunken px-2 py-0.5 text-xs font-medium text-text-secondary\">\n {actions.length}\n </span>\n ) : undefined\n }\n actions={\n <Button size=\"sm\" onClick={handleAddAction}>\n <Plus className=\"size-4\" />\n {t('bigconsole.widget.properties.actions.add', 'Add button')}\n </Button>\n }\n data-testid=\"widget-inspector-actions\"\n >\n {actionsLoading ? (\n <div className=\"flex justify-center py-8\">\n <Spinner className=\"size-6\" />\n </div>\n ) : actions.length === 0 ? (\n <p className=\"text-sm text-text-secondary\">\n {t(\n 'bigconsole.widget.properties.actions.empty',\n 'No buttons yet — add one to let viewers take an action.'\n )}\n </p>\n ) : (\n <div className=\"space-y-2\">\n {[...actions]\n .sort((a, b) => a.order - b.order)\n .map((action, index) => (\n <Card key={action.id} className={action.disabled ? 'opacity-60' : ''}>\n <CardContent className=\"p-3 flex items-center gap-2\">\n <div className=\"flex flex-col gap-0.5\">\n <Button\n variant=\"ghost\"\n size=\"icon-sm\"\n onClick={() => handleMoveActionUp(index)}\n disabled={index === 0}\n className=\"h-5 w-5\"\n >\n <ChevronUp className=\"size-3\" />\n </Button>\n <Button\n variant=\"ghost\"\n size=\"icon-sm\"\n onClick={() => handleMoveActionDown(index)}\n disabled={index === actions.length - 1}\n className=\"h-5 w-5\"\n >\n <ChevronDown className=\"size-3\" />\n </Button>\n </div>\n\n <div className=\"flex-1 min-w-0\">\n <div className=\"flex items-center gap-2\">\n <span\n aria-hidden=\"true\"\n className={`size-2 shrink-0 rounded-full ${ACTION_STYLE_COLORS[action.style] || ACTION_STYLE_FALLBACK_COLOR}`}\n />\n <span className=\"text-sm font-medium truncate\">{action.label}</span>\n </div>\n <p className=\"text-xs text-text-secondary truncate\">\n {webhookByActionName.has(action.name)\n ? t(\n 'bigconsole.widget.properties.actions.webhookSummary',\n '→ {{method}} {{url}}',\n {\n method: webhookByActionName.get(action.name)?.method ?? '',\n url: webhookByActionName.get(action.name)?.webhookUrl ?? '',\n }\n )\n : t('bigconsole.widget.properties.actions.emitsEvent', 'Emits an event')}\n </p>\n </div>\n\n <div className=\"flex shrink-0 gap-1\">\n <Button\n variant=\"ghost\"\n size=\"icon-sm\"\n aria-label={`Edit ${action.label}`}\n onClick={() => handleEditAction(action)}\n >\n <Pencil className=\"size-4\" />\n </Button>\n <Button\n variant=\"ghost\"\n size=\"icon-sm\"\n aria-label={`Delete ${action.label}`}\n onClick={() => handleDeleteAction(action.id)}\n >\n <Trash2 className=\"size-4\" />\n </Button>\n </div>\n </CardContent>\n </Card>\n ))}\n </div>\n )}\n </Section>\n\n {isEditMode && selectedPosition && (\n <LayoutSection\n position={selectedPosition}\n columns={DEFAULT_GRID_CONFIG.cols}\n onChange={handlePositionChange}\n />\n )}\n </SectionStack>\n )}\n </TabsContent>\n\n <TabsContent value=\"data\" className=\"mt-0\">\n {localForm && (\n <SectionStack>\n {(() => {\n const binding = getWidgetBinding({\n dataSinkId: localForm.dataSinkId,\n parserId: localForm.parserId,\n config: { ...localForm.config, binding: undefined },\n });\n const validation = getWidgetBindingStatus({\n binding,\n loading: isDetectingFields || isResolvingBinding,\n error: bindingPreviewError,\n preview: bindingPreview,\n previewComplete: bindingPreviewComplete,\n });\n\n return (\n <DataBindingSection\n consoleId={selectedWidget?.dashboardId || ''}\n binding={binding}\n resolvedParser={resolvedBindingParser ?? undefined}\n dataSinkKey={selectedDataSinkKey}\n dataPath={\n typeof localForm.config.dataPath === 'string' ? localForm.config.dataPath : undefined\n }\n status={validation.status}\n resolving={isResolvingBinding}\n missingFields={validation.missingFields}\n preview={bindingPreview}\n error={bindingPreviewError}\n onDataSinkChange={handleDataSinkChange}\n onParserChange={handleParserChange}\n onDataPathChange={(dataPath) => updateLocalConfig({ ...localForm.config, dataPath })}\n />\n );\n })()}\n\n {/*\n Escape hatch for widgets that bypass the DataSink pipeline.\n It used to be an uppercase micro-label over up to seven\n ungrouped fields shaped exactly like the primary binding\n above it; a recessed section says plainly that this is the\n alternative path (BOFF-5636).\n */}\n <Section\n emphasis=\"muted\"\n title={t('bigconsole.widget.properties.data.alternativeSources', 'Alternative Data Sources')}\n description=\"Skip the DataSink pipeline and fetch straight from an API, a GraphQL endpoint or sample JSON.\"\n headingLevel={3}\n data-testid=\"widget-inspector-alt-sources\"\n >\n <div className=\"flex flex-col gap-form-gap\">\n <div className=\"space-y-2\">\n <Label>{t('bigconsole.widget.properties.data.sourceTypeLabel', 'Data Source Type')}</Label>\n <Select\n value={(localForm.config?.dataSourceType as string) || ''}\n onValueChange={(value) =>\n updateLocalConfig({ ...localForm.config, dataSourceType: value || undefined })\n }\n >\n <SelectTrigger\n style={{ height: 'var(--size-controlHeight-md)', fontSize: 'var(--font-size-body-sm)' }}\n >\n <SelectValue\n placeholder={t(\n 'bigconsole.widget.properties.data.selectTypePlaceholder',\n 'Select type...'\n )}\n />\n </SelectTrigger>\n <SelectContent\n position=\"popper\"\n side=\"bottom\"\n sideOffset={4}\n align=\"start\"\n style={{\n zIndex: 9999,\n maxHeight: '200px',\n backgroundColor: 'var(--color-overlay-popoverBg, var(--color-bg-surface))',\n border: '1px solid var(--color-border-subtle)',\n boxShadow: 'var(--shadow-elevation-3)',\n borderRadius: 'var(--radius-button)',\n }}\n >\n {dataSourceTypes.map((type) => (\n <SelectItem key={type.value} value={type.value}>\n {type.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n\n {localForm.config?.dataSourceType === 'REST_API' && (\n <div className=\"space-y-3\">\n {/* Endpoint URL */}\n <div className=\"space-y-2\">\n <Label>{t('bigconsole.widget.properties.rest.endpointUrlLabel', 'Endpoint URL *')}</Label>\n <Input\n value={(localForm.config?.endpointUrl as string) || ''}\n onChange={(e) =>\n updateLocalConfig({ ...localForm.config, endpointUrl: e.target.value || undefined })\n }\n placeholder=\"https://api.example.com/data\"\n />\n </div>\n\n {/* HTTP Method */}\n <div className=\"space-y-2\">\n <Label>{t('bigconsole.widget.properties.rest.httpMethodLabel', 'HTTP Method')}</Label>\n <Select\n value={(localForm.config?.httpMethod as string) || 'GET'}\n onValueChange={(value) => updateLocalConfig({ ...localForm.config, httpMethod: value })}\n >\n <SelectTrigger style={{ height: 'var(--size-controlHeight-md)' }}>\n <SelectValue />\n </SelectTrigger>\n <SelectContent position=\"popper\" side=\"bottom\" sideOffset={4}>\n <SelectItem value=\"GET\">GET</SelectItem>\n <SelectItem value=\"POST\">POST</SelectItem>\n <SelectItem value=\"PUT\">PUT</SelectItem>\n <SelectItem value=\"DELETE\">DELETE</SelectItem>\n </SelectContent>\n </Select>\n </div>\n\n {/* Headers */}\n <div className=\"space-y-2\">\n <Label>{t('bigconsole.widget.properties.rest.headersLabel', 'Headers (JSON)')}</Label>\n <Textarea\n value={(localForm.config?.headers as string) || ''}\n onChange={(e) =>\n updateLocalConfig({ ...localForm.config, headers: e.target.value || undefined })\n }\n rows={3}\n placeholder='{\"Authorization\": \"Bearer token\", \"Content-Type\": \"application/json\"}'\n className=\"font-mono text-xs\"\n />\n </div>\n\n {/* Authentication Type */}\n <div className=\"space-y-2\">\n <Label>\n {t('bigconsole.widget.properties.rest.authenticationLabel', 'Authentication')}\n </Label>\n <Select\n value={(localForm.config?.authType as string) || 'none'}\n onValueChange={(value) => updateLocalConfig({ ...localForm.config, authType: value })}\n >\n <SelectTrigger style={{ height: 'var(--size-controlHeight-md)' }}>\n <SelectValue />\n </SelectTrigger>\n <SelectContent position=\"popper\" side=\"bottom\" sideOffset={4}>\n <SelectItem value=\"none\">\n {t('bigconsole.widget.properties.rest.authNone', 'None')}\n </SelectItem>\n <SelectItem value=\"api_key\">\n {t('bigconsole.widget.properties.rest.authApiKey', 'API Key')}\n </SelectItem>\n <SelectItem value=\"bearer\">\n {t('bigconsole.widget.properties.rest.authBearer', 'Bearer Token')}\n </SelectItem>\n <SelectItem value=\"basic\">\n {t('bigconsole.widget.properties.rest.authBasic', 'Basic Auth')}\n </SelectItem>\n </SelectContent>\n </Select>\n </div>\n\n {/* Auth Value (conditional) */}\n {!!(localForm.config?.authType && localForm.config.authType !== 'none') && (\n <div className=\"space-y-2\">\n <Label>\n {String(localForm.config.authType) === 'basic'\n ? t('bigconsole.widget.properties.rest.credentialsLabel', 'Credentials (user:pass)')\n : t('bigconsole.widget.properties.rest.tokenKeyLabel', 'Token/Key')}\n </Label>\n <Input\n type=\"password\"\n value={(localForm.config?.authValue as string) || ''}\n onChange={(e) =>\n updateLocalConfig({ ...localForm.config, authValue: e.target.value || undefined })\n }\n placeholder={\n localForm.config.authType === 'basic'\n ? t(\n 'bigconsole.widget.properties.rest.credentialsPlaceholder',\n 'username:password'\n )\n : t(\n 'bigconsole.widget.properties.rest.tokenKeyPlaceholder',\n 'Enter token or API key'\n )\n }\n />\n </div>\n )}\n\n {/* Request Body (for POST/PUT) */}\n {(localForm.config?.httpMethod === 'POST' || localForm.config?.httpMethod === 'PUT') && (\n <div className=\"space-y-2\">\n <Label>\n {t('bigconsole.widget.properties.rest.requestBodyLabel', 'Request Body (JSON)')}\n </Label>\n <Textarea\n value={(localForm.config?.requestBody as string) || ''}\n onChange={(e) =>\n updateLocalConfig({ ...localForm.config, requestBody: e.target.value || undefined })\n }\n rows={4}\n placeholder='{\"key\": \"value\"}'\n className=\"font-mono text-xs\"\n />\n </div>\n )}\n\n {/* Data Path */}\n <div className=\"space-y-2\">\n <Label>{t('bigconsole.widget.properties.dataPath.label', 'Data Path (optional)')}</Label>\n <Input\n value={(localForm.config?.dataPath as string) || ''}\n onChange={(e) =>\n updateLocalConfig({ ...localForm.config, dataPath: e.target.value || undefined })\n }\n placeholder=\"$.data.items or .data.items\"\n />\n <p className=\"text-xs text-text-secondary\">\n {t(\n 'bigconsole.widget.properties.dataPath.restHelp',\n 'JSONPath or dot notation to extract data from response'\n )}\n </p>\n </div>\n </div>\n )}\n\n {localForm.config?.dataSourceType === 'GRAPHQL' && (\n <div className=\"space-y-3\">\n {/* GraphQL Endpoint */}\n <div className=\"space-y-2\">\n <Label>\n {t('bigconsole.widget.properties.graphql.endpointLabel', 'GraphQL Endpoint *')}\n </Label>\n <Input\n value={(localForm.config?.graphqlEndpoint as string) || ''}\n onChange={(e) =>\n updateLocalConfig({\n ...localForm.config,\n graphqlEndpoint: e.target.value || undefined,\n })\n }\n placeholder=\"https://api.example.com/graphql\"\n />\n </div>\n\n {/* GraphQL Query */}\n <div className=\"space-y-2\">\n <Label>{t('bigconsole.widget.properties.graphql.queryLabel', 'Query *')}</Label>\n <Textarea\n value={(localForm.config?.graphqlQuery as string) || ''}\n onChange={(e) =>\n updateLocalConfig({ ...localForm.config, graphqlQuery: e.target.value || undefined })\n }\n rows={6}\n placeholder={`query GetData($limit: Int) {\n items(limit: $limit) {\n id\n name\n value\n }\n}`}\n className=\"font-mono text-xs\"\n />\n </div>\n\n {/* GraphQL Variables */}\n <div className=\"space-y-2\">\n <Label>\n {t('bigconsole.widget.properties.graphql.variablesLabel', 'Variables (JSON, optional)')}\n </Label>\n <Textarea\n value={(localForm.config?.graphqlVariables as string) || ''}\n onChange={(e) =>\n updateLocalConfig({\n ...localForm.config,\n graphqlVariables: e.target.value || undefined,\n })\n }\n rows={3}\n placeholder='{\"limit\": 10, \"offset\": 0}'\n className=\"font-mono text-xs\"\n />\n </div>\n\n {/* Headers */}\n <div className=\"space-y-2\">\n <Label>\n {t('bigconsole.widget.properties.graphql.headersLabel', 'Headers (JSON, optional)')}\n </Label>\n <Textarea\n value={(localForm.config?.headers as string) || ''}\n onChange={(e) =>\n updateLocalConfig({ ...localForm.config, headers: e.target.value || undefined })\n }\n rows={2}\n placeholder='{\"Authorization\": \"Bearer token\"}'\n className=\"font-mono text-xs\"\n />\n </div>\n\n {/* Data Path */}\n <div className=\"space-y-2\">\n <Label>{t('bigconsole.widget.properties.dataPath.label', 'Data Path (optional)')}</Label>\n <Input\n value={(localForm.config?.dataPath as string) || ''}\n onChange={(e) =>\n updateLocalConfig({ ...localForm.config, dataPath: e.target.value || undefined })\n }\n placeholder=\".data.items\"\n />\n <p className=\"text-xs text-text-secondary\">\n {t(\n 'bigconsole.widget.properties.dataPath.graphqlHelp',\n 'Path to extract data from GraphQL response'\n )}\n </p>\n </div>\n </div>\n )}\n\n {localForm.config?.dataSourceType === 'MOCK' && (\n <div className=\"space-y-2\">\n <Label>\n {t('bigconsole.widget.properties.mock.sampleDataLabel', 'Sample Data (JSON)')}\n </Label>\n <Textarea\n value={(localForm.config?.mockData as string) || ''}\n onChange={(e) =>\n updateLocalConfig({ ...localForm.config, mockData: e.target.value || undefined })\n }\n rows={5}\n placeholder='{\"value\": 100}'\n className=\"font-mono text-sm\"\n />\n </div>\n )}\n </div>\n </Section>\n </SectionStack>\n )}\n </TabsContent>\n\n <TabsContent value=\"advanced\" className=\"mt-0\">\n <SectionStack>\n {localForm && (\n <AdvancedSection\n renderer={localForm.renderer}\n rendererOptions={rendererOptions}\n onRendererChange={(renderer) => {\n updateLocalForm('renderer', renderer);\n if (renderer === 'BIGCONSOLE') updateLocalForm('template', undefined);\n }}\n templateEditor={\n localForm.renderer !== 'BIGCONSOLE' ? (\n <TemplateEditor\n widget={{ ...selectedWidget, template: localForm.template, renderer: localForm.renderer }}\n onSave={(template) => updateLocalForm('template', template)}\n />\n ) : undefined\n }\n />\n )}\n\n <Section\n title={t('bigconsole.widget.properties.section.drilldown', 'Drilldown')}\n description=\"Where a click on this widget's data takes the viewer.\"\n headingLevel={3}\n data-testid=\"widget-inspector-drilldown\"\n >\n <DrilldownConfigPanel widget={selectedWidget} onChange={handleDrilldownChange} />\n </Section>\n\n <Section\n title={t('bigconsole.widget.properties.section.webhooks', 'Webhooks')}\n description=\"HTTP endpoints called when this widget emits an event.\"\n headingLevel={3}\n data-testid=\"widget-inspector-webhooks\"\n >\n <WebhookConfigPanel dashboardId={selectedWidget.dashboardId} widgetId={selectedWidget.id} />\n </Section>\n\n <Section\n emphasis=\"muted\"\n title={t('bigconsole.widget.properties.section.events', 'Events')}\n description=\"Recent deliveries for this widget, newest first. Supporting detail — nothing here changes the widget.\"\n headingLevel={3}\n data-testid=\"widget-inspector-events\"\n >\n <EventLogViewer\n dashboardId={selectedWidget.dashboardId}\n widgetId={selectedWidget.id}\n maxHeight=\"min(50vh, 360px)\"\n />\n </Section>\n </SectionStack>\n </TabsContent>\n\n <TabsContent value=\"appearance\" className=\"mt-0\">\n {localForm && (\n <AppearanceSection\n widgetType={selectedWidget.type}\n config={localForm.config || {}}\n onChange={handleConfigChange}\n />\n )}\n </TabsContent>\n </div>\n </Tabs>\n ) : (\n <div className=\"flex min-h-0 flex-1 items-center justify-center p-card-padding\">\n <Section\n tone=\"info\"\n title={t('bigconsole.widget.properties.emptyState', 'Select a widget to edit')}\n headingLevel={3}\n icon={<Info className=\"h-icon-md w-icon-md\" />}\n className=\"w-full max-w-sm\"\n data-testid=\"widget-inspector-empty\"\n >\n <p className=\"text-sm text-text-secondary\">\n Pick a widget on the canvas and its identity, data binding, actions and style options appear here.\n </p>\n </Section>\n </div>\n )}\n\n {/* Global Save/Discard Footer */}\n {selectedWidget && (\n <div\n style={{\n padding: 'var(--space-cardPadding)',\n borderTop: '1px solid var(--color-border-subtle)',\n backgroundColor: 'var(--color-bg-sunken)',\n flexShrink: 0,\n }}\n >\n {/*\n Save state used to be three ad-hoc inline chips with raw rgba()\n fallbacks baked into the var() calls. They are now one toned\n section, so \"unsaved / saved / failed\" reads the same here as every\n other status surface in the module (BOFF-5636).\n */}\n {hasUnsavedChanges && (\n <Section\n tone=\"warning\"\n padding=\"compact\"\n title={t('bigconsole.widget.properties.footer.unsavedChanges', 'You have unsaved changes')}\n headingLevel={3}\n className=\"mb-control-gap\"\n data-testid=\"widget-inspector-save-unsaved\"\n />\n )}\n\n {saveStatus === 'saved' && !hasUnsavedChanges && (\n <Section\n tone=\"success\"\n padding=\"compact\"\n title={t('bigconsole.widget.properties.footer.allSaved', 'All changes saved')}\n headingLevel={3}\n icon={<Check className=\"h-icon-sm w-icon-sm\" />}\n className=\"mb-control-gap\"\n data-testid=\"widget-inspector-save-saved\"\n />\n )}\n\n {saveStatus === 'error' && (\n <Section\n tone=\"danger\"\n padding=\"compact\"\n title={t('bigconsole.widget.properties.footer.saveFailed', 'Failed to save changes')}\n headingLevel={3}\n icon={<X className=\"h-icon-sm w-icon-sm\" />}\n className=\"mb-control-gap\"\n data-testid=\"widget-inspector-save-error\"\n />\n )}\n\n {/* Action buttons */}\n <div className=\"flex flex-wrap gap-control-gap\">\n <Button\n onClick={handleSaveAll}\n disabled={saveStatus === 'saving' || !hasUnsavedChanges}\n style={{\n flex: 1,\n height: 'var(--size-controlHeight-md)',\n backgroundColor: hasUnsavedChanges ? 'var(--color-action-primary-bg)' : undefined,\n opacity: hasUnsavedChanges ? 1 : 0.5,\n }}\n >\n {saveStatus === 'saving' ? (\n <span style={{ display: 'flex', alignItems: 'center', gap: 'var(--space-iconGap)' }}>\n <Spinner style={{ width: 'var(--size-icon-sm)', height: 'var(--size-icon-sm)' }} />\n {t('bigconsole.widget.properties.footer.saving', 'Saving...')}\n </span>\n ) : (\n <span style={{ display: 'flex', alignItems: 'center', gap: 'var(--space-iconGap)' }}>\n <Check style={{ width: 'var(--size-icon-sm)', height: 'var(--size-icon-sm)' }} />\n {t('bigconsole.widget.properties.footer.saveChanges', 'Save Changes')}\n </span>\n )}\n </Button>\n <Button\n variant=\"outline\"\n onClick={handleDiscardAll}\n disabled={saveStatus === 'saving' || !hasUnsavedChanges}\n style={{\n height: 'var(--size-controlHeight-md)',\n opacity: hasUnsavedChanges ? 1 : 0.5,\n }}\n >\n <X style={{ width: 'var(--size-icon-sm)', height: 'var(--size-icon-sm)' }} />\n {t('bigconsole.widget.properties.footer.discard', 'Discard')}\n </Button>\n </div>\n </div>\n )}\n\n <ActionConfigDialog\n isOpen={isActionDialogOpen}\n action={editingAction}\n initialWebhook={dialogInitialWebhook}\n isLoading={actionSaving}\n saveError={pendingActionError}\n onClose={() => {\n setIsActionDialogOpen(false);\n setEditingAction(undefined);\n setPendingWebhookDraft(undefined);\n setPendingActionError(null);\n }}\n onSave={handleSaveAction}\n />\n </SheetContent>\n </Sheet>\n );\n});\n\nexport default PropertiesPanel;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2DA,IAAM,KAMA;CACJ;EACE,OAAO;EACP,UAAU;EACV,OAAO;EACP,gBAAgB;EAChB,aAAa;EACd;CACD;EACE,OAAO;EACP,UAAU;EACV,OAAO;EACP,gBAAgB;EAChB,aAAa;EACd;CACD;EACE,OAAO;EACP,UAAU;EACV,OAAO;EACP,gBAAgB;EAChB,aAAa;EACd;CACD;EACE,OAAO;EACP,UAAU;EACV,OAAO;EACP,gBAAgB;EAChB,aAAa;EACd;CACF,EAMK,KAMA;CACJ;EACE,OAAO;EACP,UAAU;EACV,OAAO;EACP,gBAAgB;EAChB,aAAa;EACd;CACD;EACE,OAAO;EACP,UAAU;EACV,OAAO;EACP,gBAAgB;EAChB,aAAa;EACd;CACD;EACE,OAAO;EACP,UAAU;EACV,OAAO;EACP,gBAAgB;EAChB,aAAa;EACd;CACD;EACE,OAAO;EACP,UAAU;EACV,OAAO;EACP,gBAAgB;EAChB,aAAa;EACd;CACD;EACE,OAAO;EACP,UAAU;EACV,OAAO;EACP,gBAAgB;EAChB,aAAa;EACd;CACD;EACE,OAAO;EACP,UAAU;EACV,OAAO;EACP,gBAAgB;EAChB,aAAa;EACd;CACF;AAgBD,SAAS,GAAsB,GAA4B;AACzD,QAAO,UAAU,EAAW,aAAa,CAAC,QAAQ,QAAQ,IAAI,CAAC;;AAMjE,IAAM,KAA8C;CAClD,SAAS;CACT,WAAW;CACX,SAAS;CACT,SAAS;CACT,QAAQ;CACT,EAEK,KAA8B,gCAG9B,IAAyC;CAC7C,YAAY;CACZ,UAAU;CACV,SAAS;CACT,WAAW;CACX,YAAY;CACb;AAWD,SAAS,GAA6B,GAIpC;AACA,KAAI,CAAC,EAAQ,QAAO,EAAE;CAGtB,IAAM,IAAa,MAAM,QAAQ,EAAO,GAAG,EAAO,KAAK;AAEvD,KAAI,CAAC,KAAc,OAAO,KAAe,SAAU,QAAO,EAAE;CAE5D,IAAM,IAAO,OAAO,KAAK,EAAsC,EAGzD,IAAuB;EAC3B;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD,EAEK,IAAuB;EAAC;EAAS;EAAU;EAAS;EAAS;EAAW;EAAS;EAAY;EAAU;EAAM,EAE/G,GACA;AAGJ,MAAK,IAAM,KAAa,EACtB,KAAI,EAAK,SAAS,EAAU,EAAE;AAC5B,MAAa;AACb;;AAKJ,MAAK,IAAM,KAAa,EACtB,KAAI,EAAK,SAAS,EAAU,EAAE;AAC5B,MAAa;AACb;;AAOJ,KAAI,CAAC,KAAc,CAAC,EAClB,MAAK,IAAM,KAAO,GAAM;EACtB,IAAM,IAAO,EAAuC;AAOpD,MANI,CAAC,KAAc,OAAO,KAAQ,aAChC,IAAa,IAEX,CAAC,KAAc,OAAO,KAAQ,aAChC,IAAa,IAEX,KAAc,EAAY;;AAIlC,QAAO;EACL;EACA;EACA,YAAY;EACb;;AAYH,IAAM,KAA0C,EAAK,SAAwB,EAAE,WAAQ,aAAU;CAC/F,IAAM,EAAE,SAAM,IAAS,EACjB,CAAC,GAAY,KAAiB,EAAiB,GAAG,EAClD,CAAC,GAAW,KAAgB,EAAwB,KAAK,EACzD,IAAiB,GAAO,GAAM;AAGpC,SAAgB;AACd,MAAI;AAKF,GAFA,EADE,EAAO,YAAY,OAAO,EAAO,YAAa,WAAW,KAAK,UAAU,EAAO,UAAU,MAAM,EAAE,GAAG,GAC5E,EAC1B,EAAa,KAAK,EAClB,EAAe,UAAU;UACnB;AACN,KAAc,GAAG;;IAElB,CAAC,EAAO,IAAI,EAAO,SAAS,CAAC;CAEhC,IAAM,IAAe,GAClB,MAA8C;EAC7C,IAAM,IAAQ,EAAE,OAAO;AAGvB,MAFA,EAAc,EAAM,EAEhB,EAAM,MAAM,KAAK,GAGnB,CAFA,EAAa,KAAK,EAElB,EAAO,EAAE,CAAC;MAEV,KAAI;GACF,IAAM,IAAS,KAAK,MAAM,EAAM;AAGhC,GAFA,EAAa,KAAK,EAElB,EAAO,EAAO;WACP,GAAK;AACZ,KAAc,EAAc,QAAQ;;IAK1C,CAAC,EAAO,CACT,EAEK,KAAe,QAAkB;AACrC,MAAI;GACF,IAAM,IAAS,KAAK,MAAM,EAAW;AAIrC,GAFA,EADkB,KAAK,UAAU,GAAQ,MAAM,EAAE,CACzB,EACxB,EAAa,KAAK,EAClB,EAAO,EAAO;WACP,GAAK;AACZ,KAAc,EAAc,QAAQ;;IAErC,CAAC,GAAY,EAAO,CAAC;AAExB,QACE,kBAAC,GAAD;EACE,UAAS;EACT,SAAQ;EACR,cAAc;EACd,OAAO,EAAE,+CAA+C,kBAAkB;EAC1E,aAAa,OAAO,EAAO,SAAS;EACpC,MAAM,IAAY,WAAW;EAC7B,MACE,IACE,kBAAC,QAAD;GAAM,WAAU;aACb,EAAE,qDAAqD,eAAe;GAClE,CAAA,GACL,KAAA;EAEN,WAAU;EACV,eAAY;YAfd;GAiBE,kBAAC,GAAD;IACE,OAAO;IACP,UAAU;IACV,YAAY;IACZ,aAAa,EAAE,qDAAqD,uCAAuC,EACzG,UAAU,EAAO,YAAY,IAC9B,CAAC;IACF,OAAO;KACL,YAAY;KACZ,UAAU;KACV,WAAW;KACX,aAAa,IAAY,qCAAqC,KAAA;KAC9D,QAAQ;KACT;IACD,CAAA;GAED,KACC,kBAAC,KAAD;IACE,OAAO;KACL,UAAU;KACV,OAAO;KACP,iBAAiB;KACjB,SAAS;KACT,cAAc;KACd,WAAW;KACZ;cAEA;IACC,CAAA;GAGN,kBAAC,OAAD;IAAK,WAAU;cAAf,CACE,kBAAC,GAAD;KACE,SAAQ;KACR,MAAK;KACL,SAAS;KACT,UAAU,CAAC,CAAC,KAAa,EAAW,MAAM,KAAK;KAC/C,OAAO;MAAE,QAAQ;MAAgC,YAAY;MAA+B;eAE3F,EAAE,gDAAgD,SAAS;KACrD,CAAA,EACR,CAAC,KAAa,EAAW,MAAM,KAAK,MACnC,kBAAC,QAAD;KACE,OAAO;MACL,UAAU;MACV,OAAO;MACP,SAAS;MACT,YAAY;MACZ,KAAK;MACN;eAPH,CASE,kBAAC,GAAD,EAAO,OAAO;MAAE,OAAO;MAAQ,QAAQ;MAAQ,EAAI,CAAA,EAClD,EAAE,mDAAmD,aAAa,CAC9D;OAEL;;GAEN,kBAAC,OAAD;IAAK,WAAU;cAAf;KACE,kBAAC,QAAD;MAAM,WAAU;gBAAe,EAAE,qDAAqD,iBAAiB;MAAQ,CAAA;KAC9G,EAAO,aAAa,mBACnB,kBAAC,KAAD;MACE,MAAK;MACL,QAAO;MACP,KAAI;MACJ,OAAO;OACL,SAAS;OACT,YAAY;OACZ,KAAK;OACL,OAAO;OACP,UAAU;OACV,YAAY;OACZ,gBAAgB;OACjB;gBAZH,CAcG,EAAE,kDAAkD,WAAW,EAChE,kBAAC,IAAD,EAAc,OAAO;OAAE,QAAQ;OAAuB,OAAO;OAAuB,EAAI,CAAA,CACtF;;KAEL,EAAO,aAAa,cACnB,kBAAC,KAAD;MACE,MAAK;MACL,QAAO;MACP,KAAI;MACJ,OAAO;OACL,SAAS;OACT,YAAY;OACZ,KAAK;OACL,OAAO;OACP,UAAU;OACV,YAAY;OACZ,gBAAgB;OACjB;gBAZH,CAcG,EAAE,yDAAyD,oBAAoB,EAChF,kBAAC,IAAD,EAAc,OAAO;OAAE,QAAQ;OAAuB,OAAO;OAAuB,EAAI,CAAA,CACtF;;KAEF;;GACE;;EAEZ;AAsBF,SAAS,GAA+B,GAAgC;CACtE,IAAM,IAAe,GACf,IAAU,EAAiB;EAC/B,YAAY,EAAa;EACzB,UAAU,EAAa;EACvB,QAAS,EAAO,UAAsC,EAAE;EACzD,CAAC;AAEF,QAAO;EACL,OAAO,EAAO,SAAS;EACvB,aAAa,EAAO,eAAe;EACnC,iBAAiB,EAAO,mBAAmB,KAAA;EAC3C,UAAW,EAAO,YAA6B;EAC/C,UAAU,EAAO;EAEjB,YAAY,EAAQ,OAAO,SAAS,aAAa,EAAQ,OAAO,MAAM,KAAA;EACtE,WAAW,EAAa,aAAa,KAAA;EACrC,UAAU,EAAQ;EAClB,aAAa,EAAa,eAAe,KAAA;EACzC,QAAS,EAAO,UAAsC,EAAE;EAExD,iBAAiB,EAAO,YACpB;GACE,SAAS,EAAO,UAAU,WAAW;GACrC,mBAAmB,EAAO,UAAU,qBAAqB;GACzD,cAAc,EAAO,UAAU,gBAAgB;GAC/C,gBAAgB,EAAO,UAAU,kBAAkB;GACnD,kBAAmB,EAAO,UAAU,oBAA+C,EAAE;GACrF,mBAAmB,EAAO,UAAU,qBAAqB;GACzD,UAAU,EAAO,UAAU,YAAY;GACxC,GACD,KAAA;EACL;;AAOH,IAAa,IAA4C,EAAK,SAAyB,EAAE,WAAQ,eAAW;CAC1G,IAAM,EAAE,SAAM,IAAS,EACjB,CAAC,IAAW,MAAgB,EAAgB,UAAU,EACtD,CAAC,GAAY,KAAiB,EAAgD,OAAO,EACrF,CAAC,GAAW,KAAgB,EAAgC,KAAK,EACjE,CAAC,GAAmB,KAAwB,EAAS,GAAM,EAE3D,IAAmB,GAAgB,MAAU,EAAM,iBAAiB,EACpE,KAAU,GAAgB,MAAU,EAAM,QAAQ,EAClD,IAAsB,GAAgB,MAAU,EAAM,aAAa,EACnE,KAAuB,GAAgB,MAAU,EAAM,qBAAqB,EAI5E,KAAa,GAAe,EAE5B,IAAiB,IAAmB,GAAQ,IAAI,EAAiB,GAAG,KAAA,GAOpE,KAA0C,IAC5C;EACE,GAAG,EAAe,UAAU,KAAK,EAAe,aAAa;EAC7D,GAAG,EAAe,UAAU,KAAK,EAAe,aAAa;EAC7D,OAAO,EAAe,UAAU,SAAS,EAAe,iBAAiB;EACzE,QAAQ,EAAe,UAAU,UAAU,EAAe,kBAAkB;EAC7E,GACD,MAEE,KAAuB,GAC1B,MAAyB;AACnB,OACL,GAAqB,GAAkB,EAAK;IAE9C,CAAC,GAAkB,GAAqB,CACzC,EACK,KAA8B,GAAsB,KAAK,EAIzD,KAAkB,GAAgC,EAAE,CAAC,EAYrD,KAAkB,GAAO,EAAE,EAC3B,IAAgB,QAAkB;AAEtC,EADA,GAAgB,WAAW,GAC3B,EAAqB,GAAK;IACzB,EAAE,CAAC;AAEN,SAAgB;AACd,MAAI,CAAC,GAAkB;AAIrB,GAHA,GAA4B,UAAU,MACtC,EAAa,KAAK,EAClB,EAAqB,GAAM,EAC3B,EAAc,OAAO;AACrB;;EAGF,IAAM,IAAiB,GAA4B,YAAY;AAG/D,MAFA,GAA4B,UAAU,GAElC,GAAgB;AAClB,OAAI,KAAqB,CAAC,EAAgB;AAK1C,GAHA,EAAa,GAA+B,EAAe,CAAC,EAC5D,GAAgB,UAAW,EAAe,UAAsC,EAAE,EAClF,EAAqB,GAAM,EAC3B,EAAc,OAAO;QAIrB,CAFA,EAAa,KAAK,EAClB,EAAqB,GAAM,EAC3B,EAAc,OAAO;IAEtB;EAAC;EAAkB;EAAgB;EAAkB,CAAC;CAEzD,IAAM,EAAE,cAAc,OAAoB,EAAoB,GAAgB,QAAQ,GAAgB,aAAa,EACjH,WAAW,IACZ,CAAC,EAGI,EAAE,qBAAiB,qBAAiB,wBAAoB,GAAwB,EAGhF,EAAE,iBAAc,EAAsB,EAAE,WAAW,IAAO,CAAC,EAG3D,CAAC,IAAqB,KAA0B,EAAwB,KAAK,EAG7E,EAAE,mBAAe,oBAAgB,GAAoB;EACzD,WAAW,GAAgB;EAC3B,WAAW;EACZ,CAAC,EAEI,CAAC,GAAuB,MAA4B,EAAwB,KAAK,EACjF,CAAC,IAAoB,MAAyB,EAAS,GAAM,EAC7D,KAAkB,GAAW;AAInC,SAAgB;EACd,IAAI,IAAY;AAEhB,MADA,GAAyB,KAAK,EAC1B,CAAC,KAAU,CAAC,IAAiB;AAC/B,MAAsB,GAAM;AAC5B;;AAQF,SANA,GAAsB,GAAK,EACtB,GAAY,GAAgB,CAAC,MAAM,MAAW;AAC7C,SACJ,GAAyB,EAAO,EAChC,GAAsB,GAAM;IAC5B,QACW;AACX,OAAY;;IAEb;EAAC;EAAQ;EAAiB;EAAkB;EAAY,CAAC;CAG5D,IAAM,CAAC,IAAmB,MAAwB,EAAS,GAAM,EAC3D,CAAC,IAAgB,KAAqB,EAAkB,KAAA,EAAU,EAClE,CAAC,IAAwB,KAA6B,EAAS,GAAM,EACrE,CAAC,IAAqB,KAA0B,EAAwB,KAAK;AAEnF,SAAgB;AAId,EAHA,EAAkB,KAAA,EAAU,EAC5B,EAA0B,GAAM,EAChC,EAAuB,KAAK,EAC5B,GAAqB,GAAM;IAC1B,CAAC,EAAiB,CAAC;CAEtB,IAAM,EACJ,YACA,SAAS,IACT,kBACA,kBACA,kBACA,sBACE,EAAiB,KAAoB,KAAA,EAAU,EAI7C,EACJ,cACA,SAAS,IACT,mBACA,mBACA,kBACA,SAAS,OACP,EAAiB;EACnB,UAAU,KAAoB,KAAA;EAC9B,WAAW,CAAC;EACb,CAAC,EAGI,IAAgB,GACnB,GAA6B,MAAuB;EACnD,IAAM,IAAU,GAAsB,EAAW;AACjD,SAAO,EAAK,MAAM,MAAM,EAAE,aAAa,KAAoB,EAAE,iBAAiB,EAAQ,IAAI;IAE5F,CAAC,EAAiB,CACnB,EAGK,IAAmB,GACtB,MAAuB,EAAc,IAAU,EAAW,EAC3D,CAAC,GAAe,GAAS,CAC1B,EAKK,KAAyB,EAC7B,OAAO,GAAoB,MAAmE;AAC5F,MAAI,CAAC,KAAoB,MAAU,KAAA,EAAW,QAAO;EACrD,IAAM,IAAU,GAAsB,EAAW,EAC7C,IAAW,EAAiB,EAAW;AAkC3C,SA9BI,CAAC,KAAY,OAGf,IAAW,GAFC,MAAM,IAAiB,GACf,MAAM,4BAA4B,EAAE,EACxB,EAAW,GAEzC,KAAS,EAAM,MACb,IAGU,MAAM,GAAc;GAC9B,IAAI,EAAS;GACb,cAAc;GACd,YAAY,EAAM;GAClB,QAAQ,EAAM;GACd,UAAU;GACX,CAAC,KACa,OAEL,MAAM,GAAc;GAC9B,UAAU;GACV,cAAc;GACd,YAAY,EAAM;GAClB,QAAQ,EAAM;GACf,CAAC,KACa,OAEb,MAAU,QAAQ,IAEb,EAAc,EAAS,GAAG,GAE5B;IAET;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CACF,EAEK,CAAC,IAAoB,MAAyB,EAAS,GAAM,EAC7D,CAAC,IAAe,KAAoB,EAAmC,KAAA,EAAU,EACjF,CAAC,IAAc,MAAmB,EAAS,GAAM,EAYjD,CAAC,IAAqB,KAA0B,EAAgD,KAAA,EAAU,EAG1G,CAAC,IAAoB,KAAyB,EAAwB,KAAK,EAG3E,KAAiB,QAAyC;AAC9D,MAAI,CAAC,GAAe,QAAO;EAC3B,IAAM,IAAS,EAAiB,GAAc,KAAK;AACnD,SAAO,IAAS;GAAE,KAAK,EAAO;GAAY,QAAQ,EAAO;GAAQ,GAAG;IACnE,CAAC,IAAe,EAAiB,CAAC,EAI/B,KAAuB,OAAwB,KAAA,IAAkC,KAAtB,IAI3D,KAAsB,QAAc;EACxC,IAAM,oBAAM,IAAI,KAAkC;AAClD,OAAK,IAAM,KAAK,GAAS;GACvB,IAAM,IAAS,EAAiB,EAAE,KAAK;AACvC,GAAI,KAAQ,EAAI,IAAI,EAAE,MAAM,EAAO;;AAErC,SAAO;IACN,CAAC,GAAS,EAAiB,CAAC,EAEzB,KAAkB,QAAkB;AAIxC,EAHA,EAAuB,KAAA,EAAU,EACjC,EAAsB,KAAK,EAC3B,EAAiB,KAAA,EAAU,EAC3B,GAAsB,GAAK;IAC1B,EAAE,CAAC,EAEA,KAAmB,GAAa,MAAyB;AAI7D,EAHA,EAAuB,KAAA,EAAU,EACjC,EAAsB,KAAK,EAC3B,EAAiB,EAAO,EACxB,GAAsB,GAAK;IAC1B,EAAE,CAAC,EAEA,KAAmB,EACvB,OAAO,GAAsB,MAAuC;AAC7D,SAGL;GADA,GAAgB,GAAK,EACrB,EAAsB,KAAK;AAC3B,OAAI;IAGF,IAAM,IAAW,QAAQ,KAAQ,CAAC,CAAC,EAAK,IAEpC,IAAiC;AASrC,QARA,AAGE,IAHE,IACU,MAAM,GAAa,EAAgC,GAEnD,MAAM,GAAa,EAAkD,EAK/E,GAAW;KACb,IAAM,IAAiB,CAAC,GAAG,EAAQ;AACnC,SAAI,GAAU;MAEZ,IAAM,IAAM,EAAe,WAAW,MAAM,EAAE,OAAO,GAAW,GAAG;AACnE,MAAI,KAAO,MACT,EAAe,KAAO;WAIxB,GAAe,KAAK,EAAU;AAQhC,SAJA,EAAoB,GAAkB,EAAE,SADlB,EAAe,MAAM,GAAG,MAAM,EAAE,QAAQ,EAAE,MAAM,EACN,CAAC,EAI7D,CADc,MAAM,GAAuB,EAAU,MAAM,EAAQ,EACvD;AAkBd,MAZA,EAAuB,EAAQ,EAC/B,EACE,IACI,EACE,yDACA,yFACD,GACD,EACE,2DACA,6EACD,CACN,EACD,EAAiB,EAAU;AAC3B;;AAMF,KAHA,EAAuB,KAAA,EAAU,EACjC,EAAsB,KAAK,EAC3B,GAAsB,GAAM,EAC5B,EAAiB,KAAA,EAAU;;YAEtB,GAAK;AAIZ,IADA,QAAQ,KAAK,iCAAiC,EAAI,EAClD,EACE,aAAe,QACX,EAAI,UACJ,EAAE,kDAAkD,+CAA+C,CACxG;aACO;AACR,OAAgB,GAAM;;;IAG1B;EAAC;EAAkB;EAAS;EAAc;EAAc;EAAqB;EAAwB;EAAE,CACxG,EAEK,KAAqB,EACzB,OAAO,MAAqB;AACrB,WAGH,OAAO,QACL,EAAE,qDAAqD,+CAA+C,CACvG,EACD;GACA,IAAM,IAAS,EAAQ,MAAM,MAAM,EAAE,OAAO,EAAS;AAErD,OADgB,MAAM,GAAa,EAAS,KAI1C,EAAoB,GAAkB,EAAE,SADjB,EAAQ,QAAQ,MAAM,EAAE,OAAO,EAAS,EACE,CAAC,EAG9D,IAAQ;IACV,IAAM,IAAS,EAAiB,EAAO,KAAK;AAC5C,IAAI,KAAQ,MAAM,EAAc,EAAO,GAAG;;;IAKlD;EAAC;EAAkB;EAAS;EAAc;EAAqB;EAAkB;EAAe;EAAE,CACnG,EAEK,KAAqB,EACzB,OAAO,MAAkB;AACvB,MAAI,CAAC,KAAoB,MAAU,EAAG;EACtC,IAAM,IAAgB,CAAC,GAAG,EAAQ,CAAC,MAAM,GAAG,MAAM,EAAE,QAAQ,EAAE,MAAM,EAC9D,IAAW,EAAc,KAAK,MAAM,EAAE,GAAG;AAG/C,EAFA,CAAC,EAAS,IAAQ,IAAI,EAAS,MAAU,CAAC,EAAS,IAAQ,EAAS,IAAQ,GAAG,EAC/D,MAAM,EAAe,EAAS,IAS5C,EAAoB,GAAkB,EAAE,SANtB,EACf,KAAK,GAAG,OAAQ;GACf,GAAG;GACH,OAAO,EAAS,QAAQ,EAAE,GAAG;GAC9B,EAAE,CACF,MAAM,GAAG,MAAM,EAAE,QAAQ,EAAE,MAAM,EACwB,CAAC;IAGjE;EAAC;EAAkB;EAAS;EAAgB;EAAoB,CACjE,EAEK,KAAuB,EAC3B,OAAO,MAAkB;AACvB,MAAI,CAAC,EAAkB;EACvB,IAAM,IAAgB,CAAC,GAAG,EAAQ,CAAC,MAAM,GAAG,MAAM,EAAE,QAAQ,EAAE,MAAM;AACpE,MAAI,MAAU,EAAc,SAAS,EAAG;EACxC,IAAM,IAAW,EAAc,KAAK,MAAM,EAAE,GAAG;AAG/C,EAFA,CAAC,EAAS,IAAQ,EAAS,IAAQ,MAAM,CAAC,EAAS,IAAQ,IAAI,EAAS,GAAO,EAC/D,MAAM,EAAe,EAAS,IAS5C,EAAoB,GAAkB,EAAE,SANtB,EACf,KAAK,GAAG,OAAQ;GACf,GAAG;GACH,OAAO,EAAS,QAAQ,EAAE,GAAG;GAC9B,EAAE,CACF,MAAM,GAAG,MAAM,EAAE,QAAQ,EAAE,MAAM,EACwB,CAAC;IAGjE;EAAC;EAAkB;EAAS;EAAgB;EAAoB,CACjE;AAED,SAAgB;AACd,EAAI,KAAoB,EAAQ,UAAU,KAAK,CAAC,MAC9C,EAAoB,GAAkB,EAAE,YAAS,CAAC;IAEnD;EAAC;EAAkB;EAAS;EAAgB;EAAoB,CAAC;CAEpE,IAAM,IAAkB,GACW,GAAQ,MAA6B;AAEpE,EADA,GAAc,MAAU,KAAO;GAAE,GAAG;IAAO,IAAM;GAAO,CAAS,EACjE,GAAe;IAEjB,CAAC,EAAc,CAChB,EAEK,IAAoB,GACvB,MAAuC;AAEtC,EADA,GAAc,MAAU,KAAO;GAAE,GAAG;GAAM,QAAQ;GAAW,CAAS,EACtE,GAAe;IAEjB,CAAC,EAAc,CAChB;AAID,SAAgB;AACd,MAAI,CAAC,GAAW;AACd,KAAuB,KAAK;AAC5B;;AAEF,MAAI,EAAU,YAAY;AACxB,KAAuB,EAAU,MAAM,MAAS,EAAK,OAAO,EAAU,WAAW,EAAE,OAAO,KAAK;AAC/F;;EAEF,IAAM,IAAU,EAAiB;GAAE,UAAU,EAAU;GAAU,QAAQ,EAAU;GAAQ,CAAC,EACtF,IAAS,GAAuB,OAAO,EAAU,WAAW,IAAwB,MACpF,IACJ,EAAQ,OAAO,SAAS,cAAc,CAAC,EAAQ,OAAO,OAAO,IACzD,EAAU,MAAM,MAAc,EAAU,QAAQ,EAAO,aAAa,GACpE,KAAA;AAEN,EADA,EAAuB,GAAM,OAAO,KAAK,EACrC,KACF,GAAc,MACZ,KAAY,EAAS,aAAa,GAAQ,MAAM,CAAC,EAAS,aACtD;GAAE,GAAG;GAAU,YAAY,EAAK;GAAI,GACpC,EACL;IAEF;EAAC;EAAW;EAAW;EAAsB,CAAC;CAGjD,IAAM,KAAuB,GAC1B,MAAuB;AAKtB,MAJA,EAAkB,KAAA,EAAU,EAC5B,EAA0B,GAAM,EAChC,EAAuB,KAAK,EAC5B,EAAuB,EAAI,EACvB,GAAK;GACP,IAAM,IAAK,EAAU,MAAM,MAAM,EAAE,QAAQ,EAAI;AAC/C,GAAI,MACF,EAAgB,cAAc,EAAG,GAAG,EAEpC,GAAc,MACZ,KACI;IACE,GAAG;IACH,QAAQ;KAAE,GAAG,EAAK;KAAQ,aAAa;KAAK;IAC7C,CAEN,EACD,GAAe;QAajB,CAVA,EAAgB,cAAc,KAAA,EAAU,EACxC,GAAc,MACZ,KACI;GACE,GAAG;GACH,QAAQ;IAAE,GAAG,EAAK;IAAQ,aAAa,KAAA;IAAW;GAClD,UAAU,KAAA;GACX,CAEN,EACD,GAAe;IAGnB;EAAC;EAAW;EAAiB;EAAc,CAC5C,EAGK,KAAqB,EACzB,OAAO,MAA4B;AAOjC,MANA,EAAgB,YAAY,KAAY,KAAA,EAAU,EAClD,EAAkB,KAAA,EAAU,EAC5B,EAA0B,GAAM,EAChC,EAAuB,KAAK,EAGxB,KAAY,GAAgB;AAC9B,MAAqB,GAAK;AAC1B,OAAI;IACF,IAAM,IAAS,MAAM,GAAc,EAAS;AAE5C,QAAI,GAAQ,SAAS;AAEnB,KADA,EAAkB,EAAO,OAAO,EAChC,EAA0B,GAAK;KAC/B,IAAM,IAAiB,GAA6B,EAAO,OAAO;AAGlE,MAAI,EAAe,cAAc,EAAe,gBAC9C,GAAc,MAAS;AACrB,UAAI,CAAC,EAAM,QAAO;MAElB,IAAM,IAAgB,EAAK,UAAU,EAAE,EACjC,IAAY,EAAE,GAAG,GAAe;AAiBtC,aAdI,EAAe,cAAc,CAAC,EAAc,eAC9C,EAAU,aAAa,EAAe,aAIpC,EAAe,cAAc,CAAC,EAAc,eAC9C,EAAU,aAAa,EAAe,aAIpC,EAAe,cAAc,CAAC,EAAc,eAC9C,EAAU,aAAa,EAAe,aAGjC;OAAE,GAAG;OAAM,QAAQ;OAAW;OACrC,EACF,GAAe;UAIjB,CADA,EAA0B,GAAK,EAC/B,EACE,GAAQ,SACN,EAAE,qDAAqD,0CAA0C,CACpG;YAEI,GAAK;AAOZ,IANA,EAA0B,GAAK,EAC/B,EACE,aAAe,QACX,EAAI,UACJ,EAAE,qDAAqD,0CAA0C,CACtG,EACD,QAAQ,KAAK,wCAAwC,EAAI;aACjD;AACR,OAAqB,GAAM;;;IAIjC;EAAC;EAAiB;EAAe;EAAgB;EAAe;EAAE,CACnE,EAEK,KAAgB,EAAY,YAAY;AAC5C,MAAI,CAAC,KAAkB,CAAC,EAAW;EAInC,IAAM,IAAiB,GAAgB;AAEvC,IAAc,SAAS;AAEvB,MAAI;GACF,IAAM,IAAW;IAAE,GAAI,EAAe,YAAY,EAAE;IAAG,aAAa,EAAU,eAAe;IAAI,EAM3F,IAAe,GADlB,EAAe,UAAU,CAAC,QAAQ,IAAI,EAAe,GAAG,EAAE,UAAsC,EAAE,EAC7C,GAAgB,SAAS,EAAU,OAAO,EAM5F,IAAe,GALA,EAAiB;IACpC,YAAY,EAAU;IACtB,UAAU,EAAU;IACpB,QAAQ;KAAE,GAAG;KAAc,SAAS,KAAA;KAAW;IAChD,CAAC,EACwD,EAAa,EAEjE,IAAS,MAAM,GAAgB;IACnC,IAAI,EAAe;IACnB,OAAO,EAAU;IACjB,UAAU,EAAU;IACpB,UAAU,EAAU;IACpB,QAAQ,EAAa;IACrB,iBAAiB,EAAU;IAE3B,YAAY,EAAa;IACzB,WAAW,EAAU;IACrB,UAAU,EAAa;IACvB,aAAa,EAAU;IACvB;IACD,CAAC,EAKE,IAAiB,EAAe,WAChC,IAAiC,MAC/B,IAAsB,EAAe,WAAW;AACtD,OAAI;AACF,QAAI,EAAU,iBAAiB;KAC7B,IAAM,EACJ,YACA,sBACA,iBACA,mBACA,qBACA,sBACA,gBACE,EAAU;AAEd,SAAI,KAAuB,CAAC,EAG1B,CADA,MAAM,GAAgB,EAAoB,EAC1C,IAAiB,KAAA;cACR,GAAqB;MAC9B,IAAM,IAAkB,MAAM,GAAgB;OAC5C,IAAI;OACJ;OACA;OACA;OACA;OACA;OACA;OACA;OACD,CAAC;AACF,MAAI,MACF,IAAiB;gBAEV,KAAW,GAAmB;MACvC,IAAM,IAAkB,MAAM,GAAgB;OAC5C,gBAAgB,EAAe;OAC/B;OACA;OACA,kBAAkB,KAAoB,EAAE;OACxC;OACA;OACA;OACD,CAAC;AACF,MAAI,MACF,IAAiB;;;YAIhB,GAAK;AACZ,QAAmB,aAAe,QAAQ,IAAU,MAAM,OAAO,EAAI,CAAC;;AAGxE,OAAI,GAAQ;AAmBV,QAlBA,EAAoB,EAAe,IAAI;KACrC,OAAO,EAAU;KACjB,aAAa,EAAU;KACvB,UAAU,EAAU;KACpB,UAAU,EAAU;KACpB,QAAQ,EAAa;KACrB,iBAAiB,EAAU;KAE3B,YAAY,EAAa;KACzB,WAAW,EAAU;KACrB,UAAU,EAAa;KACvB,aAAa,EAAU;KAEvB,WAAW;KAEX,4BAAW,IAAI,MAAM,EAAC,aAAa;KACpC,CAAoB,EAEjB,GAAkB;AAIpB,KADA,EAAc,QAAQ,EACtB,GAAM,MAAM,EAAE,0CAA0C,sBAAsB,EAAE,EAC9E,aAAa,EAAiB,SAC/B,CAAC;AACF;;AAUF,IAPA,EAAc,QAAQ,EAIlB,GAAgB,YAAY,KAC9B,EAAqB,GAAM,EAE7B,iBAAiB,EAAc,OAAO,EAAE,IAAK;SAE7C,GAAc,QAAQ;UAEZ;AACZ,KAAc,QAAQ;;IAEvB;EACD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CAAC,EAEI,KAAmB,QAAkB;AACpC,QAEL,EAAa,GAA+B,EAAe,CAAC,EAC5D,GAAgB,UAAW,EAAe,UAAsC,EAAE,EAClF,EAAqB,GAAM,EAC3B,EAAc,OAAO;IACpB,CAAC,EAAe,CAAC,EAEd,KAAqB,GACxB,MAAuC;AACtC,IAAkB,EAAU;IAE9B,CAAC,EAAkB,CACpB,EAEK,KAAwB,GAC3B,MAA4B;AAE3B,EADA,GAAc,MAAU,KAAO;GAAE,GAAG;GAAM,iBAAiB;GAAQ,CAAS,EAC5E,GAAe;IAEjB,CAAC,EAAc,CAChB,EAEK,KAAa,IAAiB,EAAoB,EAAe,KAAK,GAAG,MAEzE,KAAkB,QAEpB,GAAiB,KAAK,OAAS;EAC7B,OAAO,EAAI;EACX,OAAO,EAAE,EAAI,UAAU,EAAI,MAAM;EACjC,aAAa,EAAE,EAAI,gBAAgB,EAAI,YAAY;EACpD,EAAE,EACL,CAAC,EAAE,CACJ,EAEK,KAAkB,QAEpB,GAAkB,KAAK,OAAU;EAC/B,OAAO,EAAK;EACZ,OAAO,EAAE,EAAK,UAAU,EAAK,MAAM;EACpC,EAAE,EACL,CAAC,EAAE,CACJ;AAED,QACE,kBAAC,IAAD;EAAO,MAAM;EAAQ,eAAe,MAAS,CAAC,KAAQ,IAAS;EAAE,OAAO;YAMtE,kBAAC,IAAD;GACE,OAAO;IACL,OAAO;IACP,UAAU;IACV,SAAS;IACT,SAAS;IACT,eAAe;IACf,QAAQ;IACR,UAAU;IACX;aATH;IAWE,kBAAC,IAAD;KACE,OAAO;MACL,SAAS;MACT,cAAc;MACd,iBAAiB;MACjB,YAAY;MACb;eAED,kBAAC,OAAD;MAAK,OAAO;OAAE,SAAS;OAAQ,YAAY;OAAU,KAAK;OAA2B;gBAArF,CACE,kBAAC,OAAD;OACE,OAAO;QACL,SAAS;QACT,QAAQ;QACR,OAAO;QACP,YAAY;QACZ,gBAAgB;QAChB,cAAc;QACd,iBAAiB;QACjB,WAAW;QACX,YAAY;QACb;iBAED,kBAAC,IAAD,EACE,OAAO;QACL,QAAQ;QACR,OAAO;QACP,OAAO;QACR,EACD,CAAA;OACE,CAAA,EACN,kBAAC,OAAD;OAAK,OAAO;QAAE,MAAM;QAAG,UAAU;QAAG;iBAApC,CACE,kBAAC,OAAD;QAAK,OAAO;SAAE,SAAS;SAAQ,YAAY;SAAU,KAAK;SAAwB;kBAAlF;SACE,kBAAC,IAAD;UACE,OAAO;WACL,UAAU;WACV,YAAY;WACZ,OAAO;WACP,QAAQ;WACT;oBAEA,IACG,EAAE,wDAAwD,oBAAoB,GAC9E,EAAE,kDAAkD,aAAa;UAC1D,CAAA;SACZ,MAAe,YACd,kBAAC,IAAD,EAAS,OAAO;UAAE,QAAQ;UAAuB,OAAO;UAAuB,EAAI,CAAA;SAEpF,MAAe,WACd,kBAAC,GAAD,EACE,OAAO;UACL,QAAQ;UACR,OAAO;UACP,OAAO;UACR,EACD,CAAA;SAEH,MAAe,WACd,kBAAC,IAAD,EACE,OAAO;UACL,QAAQ;UACR,OAAO;UACP,OAAO;UACR,EACD,CAAA;SAEA;WACL,MACC,kBAAC,IAAD;QACE,OAAO;SACL,UAAU;SACV,OAAO;SACP,QAAQ;SACR,YAAY;SACb;kBAEA,GAAW;QACK,CAAA,CAEjB;SACF;;KACM,CAAA;IAEb,IACC,kBAAC,IAAD;KACE,OAAO;KACP,gBAAgB,MAAM,GAAa,EAAW;KAC9C,OAAO;MAAE,MAAM;MAAG,SAAS;MAAQ,eAAe;MAAU,WAAW;MAAG,UAAU;MAAU;eAHhG,CAWE,kBAAC,IAAD;MACE,OAAO;OACL,OAAO;OACP,SAAS;OACT,UAAU;OACV,gBAAgB;OAChB,cAAc;OACd,cAAc;OACd,SAAS;OACT,iBAAiB;OACjB,WAAW;OACX,QAAQ;OACR,YAAY;OACZ,KAAK;OACN;gBAdH;OAgBE,kBAAC,GAAD;QAAa,OAAM;QAAU,OAAO;kBACjC,EAAE,4CAA4C,UAAU;QAC7C,CAAA;OACd,kBAAC,GAAD;QAAa,OAAM;QAAO,OAAO;kBAC9B,EAAE,yCAAyC,OAAO;QACvC,CAAA;OACd,kBAAC,GAAD;QAAa,OAAM;QAAW,OAAO;kBAClC,EAAE,6CAA6C,WAAW;QAC/C,CAAA;OACd,kBAAC,GAAD;QAAa,OAAM;QAAa,OAAO;kBACpC,EAAE,0CAA0C,QAAQ;QACzC,CAAA;OACL;SAEX,kBAAC,OAAD;MAAK,OAAO;OAAE,MAAM;OAAG,UAAU;OAAQ,SAAS;OAA4B,WAAW;OAAG;gBAA5F;OACE,kBAAC,GAAD;QAAa,OAAM;QAAU,WAAU;kBACpC,KACC,kBAAC,GAAD,EAAA,UAAA;SACE,kBAAC,IAAD;UACE,OAAO,EAAU;UACjB,aAAa,EAAU;UACvB,iBAAiB,EAAU;UAC3B,gBAAgB,MAAU,EAAgB,SAAS,EAAM;UACzD,sBAAsB,MAAgB,EAAgB,eAAe,EAAY;UACjF,0BAA0B,MAAoB,EAAgB,mBAAmB,EAAgB;UACjG,CAAA;SAEF,kBAAC,GAAD;UACE,OAAO,EAAE,gDAAgD,UAAU;UACnE,aAAa,EACX,mDACA,mCACD;UACD,cAAc;UACd,MACE,EAAQ,SAAS,IACf,kBAAC,QAAD;WAAM,WAAU;qBACb,EAAQ;WACJ,CAAA,GACL,KAAA;UAEN,SACE,kBAAC,GAAD;WAAQ,MAAK;WAAK,SAAS;qBAA3B,CACE,kBAAC,IAAD,EAAM,WAAU,UAAW,CAAA,EAC1B,EAAE,4CAA4C,aAAa,CACrD;;UAEX,eAAY;oBAEX,KACC,kBAAC,OAAD;WAAK,WAAU;qBACb,kBAAC,IAAD,EAAS,WAAU,UAAW,CAAA;WAC1B,CAAA,GACJ,EAAQ,WAAW,IACrB,kBAAC,KAAD;WAAG,WAAU;qBACV,EACC,8CACA,0DACD;WACC,CAAA,GAEJ,kBAAC,OAAD;WAAK,WAAU;qBACZ,CAAC,GAAG,EAAQ,CACV,MAAM,GAAG,MAAM,EAAE,QAAQ,EAAE,MAAM,CACjC,KAAK,GAAQ,MACZ,kBAAC,IAAD;YAAsB,WAAW,EAAO,WAAW,eAAe;sBAChE,kBAAC,IAAD;aAAa,WAAU;uBAAvB;cACE,kBAAC,OAAD;eAAK,WAAU;yBAAf,CACE,kBAAC,GAAD;gBACE,SAAQ;gBACR,MAAK;gBACL,eAAe,GAAmB,EAAM;gBACxC,UAAU,MAAU;gBACpB,WAAU;0BAEV,kBAAC,IAAD,EAAW,WAAU,UAAW,CAAA;gBACzB,CAAA,EACT,kBAAC,GAAD;gBACE,SAAQ;gBACR,MAAK;gBACL,eAAe,GAAqB,EAAM;gBAC1C,UAAU,MAAU,EAAQ,SAAS;gBACrC,WAAU;0BAEV,kBAAC,IAAD,EAAa,WAAU,UAAW,CAAA;gBAC3B,CAAA,CACL;;cAEN,kBAAC,OAAD;eAAK,WAAU;yBAAf,CACE,kBAAC,OAAD;gBAAK,WAAU;0BAAf,CACE,kBAAC,QAAD;iBACE,eAAY;iBACZ,WAAW,gCAAgC,GAAoB,EAAO,UAAU;iBAChF,CAAA,EACF,kBAAC,QAAD;iBAAM,WAAU;2BAAgC,EAAO;iBAAa,CAAA,CAChE;mBACN,kBAAC,KAAD;gBAAG,WAAU;0BACV,GAAoB,IAAI,EAAO,KAAK,GACjC,EACE,uDACA,wBACA;iBACE,QAAQ,GAAoB,IAAI,EAAO,KAAK,EAAE,UAAU;iBACxD,KAAK,GAAoB,IAAI,EAAO,KAAK,EAAE,cAAc;iBAC1D,CACF,GACD,EAAE,mDAAmD,iBAAiB;gBACxE,CAAA,CACA;;cAEN,kBAAC,OAAD;eAAK,WAAU;yBAAf,CACE,kBAAC,GAAD;gBACE,SAAQ;gBACR,MAAK;gBACL,cAAY,QAAQ,EAAO;gBAC3B,eAAe,GAAiB,EAAO;0BAEvC,kBAAC,IAAD,EAAQ,WAAU,UAAW,CAAA;gBACtB,CAAA,EACT,kBAAC,GAAD;gBACE,SAAQ;gBACR,MAAK;gBACL,cAAY,UAAU,EAAO;gBAC7B,eAAe,GAAmB,EAAO,GAAG;0BAE5C,kBAAC,IAAD,EAAQ,WAAU,UAAW,CAAA;gBACtB,CAAA,CACL;;cACM;;YACT,EAhEI,EAAO,GAgEX,CACP;WACA,CAAA;UAEA,CAAA;SAET,MAAc,MACb,kBAAC,IAAD;UACE,UAAU;UACV,SAAS,GAAoB;UAC7B,UAAU;UACV,CAAA;SAES,EAAA,CAAA;QAEL,CAAA;OAEd,kBAAC,GAAD;QAAa,OAAM;QAAO,WAAU;kBACjC,KACC,kBAAC,GAAD,EAAA,UAAA,QACU;SACN,IAAM,IAAU,EAAiB;UAC/B,YAAY,EAAU;UACtB,UAAU,EAAU;UACpB,QAAQ;WAAE,GAAG,EAAU;WAAQ,SAAS,KAAA;WAAW;UACpD,CAAC,EACI,IAAa,GAAuB;UACxC;UACA,SAAS,MAAqB;UAC9B,OAAO;UACP,SAAS;UACT,iBAAiB;UAClB,CAAC;AAEF,gBACE,kBAAC,IAAD;UACE,WAAW,GAAgB,eAAe;UACjC;UACT,gBAAgB,KAAyB,KAAA;UACzC,aAAa;UACb,UACE,OAAO,EAAU,OAAO,YAAa,WAAW,EAAU,OAAO,WAAW,KAAA;UAE9E,QAAQ,EAAW;UACnB,WAAW;UACX,eAAe,EAAW;UAC1B,SAAS;UACT,OAAO;UACP,kBAAkB;UAClB,gBAAgB;UAChB,mBAAmB,MAAa,EAAkB;WAAE,GAAG,EAAU;WAAQ;WAAU,CAAC;UACpF,CAAA;YAEF,EASJ,kBAAC,GAAD;SACE,UAAS;SACT,OAAO,EAAE,wDAAwD,2BAA2B;SAC5F,aAAY;SACZ,cAAc;SACd,eAAY;mBAEZ,kBAAC,OAAD;UAAK,WAAU;oBAAf;WACE,kBAAC,OAAD;YAAK,WAAU;sBAAf,CACE,kBAAC,GAAD,EAAA,UAAQ,EAAE,qDAAqD,mBAAmB,EAAS,CAAA,EAC3F,kBAAC,IAAD;aACE,OAAQ,EAAU,QAAQ,kBAA6B;aACvD,gBAAgB,MACd,EAAkB;cAAE,GAAG,EAAU;cAAQ,gBAAgB,KAAS,KAAA;cAAW,CAAC;uBAHlF,CAME,kBAAC,IAAD;cACE,OAAO;eAAE,QAAQ;eAAgC,UAAU;eAA4B;wBAEvF,kBAAC,IAAD,EACE,aAAa,EACX,2DACA,iBACD,EACD,CAAA;cACY,CAAA,EAChB,kBAAC,IAAD;cACE,UAAS;cACT,MAAK;cACL,YAAY;cACZ,OAAM;cACN,OAAO;eACL,QAAQ;eACR,WAAW;eACX,iBAAiB;eACjB,QAAQ;eACR,WAAW;eACX,cAAc;eACf;wBAEA,GAAgB,KAAK,MACpB,kBAAC,GAAD;eAA6B,OAAO,EAAK;yBACtC,EAAK;eACK,EAFI,EAAK,MAET,CACb;cACY,CAAA,CACT;eACL;;WAEL,EAAU,QAAQ,mBAAmB,cACpC,kBAAC,OAAD;YAAK,WAAU;sBAAf;aAEE,kBAAC,OAAD;cAAK,WAAU;wBAAf,CACE,kBAAC,GAAD,EAAA,UAAQ,EAAE,sDAAsD,iBAAiB,EAAS,CAAA,EAC1F,kBAAC,GAAD;eACE,OAAQ,EAAU,QAAQ,eAA0B;eACpD,WAAW,MACT,EAAkB;gBAAE,GAAG,EAAU;gBAAQ,aAAa,EAAE,OAAO,SAAS,KAAA;gBAAW,CAAC;eAEtF,aAAY;eACZ,CAAA,CACE;;aAGN,kBAAC,OAAD;cAAK,WAAU;wBAAf,CACE,kBAAC,GAAD,EAAA,UAAQ,EAAE,qDAAqD,cAAc,EAAS,CAAA,EACtF,kBAAC,IAAD;eACE,OAAQ,EAAU,QAAQ,cAAyB;eACnD,gBAAgB,MAAU,EAAkB;gBAAE,GAAG,EAAU;gBAAQ,YAAY;gBAAO,CAAC;yBAFzF,CAIE,kBAAC,IAAD;gBAAe,OAAO,EAAE,QAAQ,gCAAgC;0BAC9D,kBAAC,IAAD,EAAe,CAAA;gBACD,CAAA,EAChB,kBAAC,IAAD;gBAAe,UAAS;gBAAS,MAAK;gBAAS,YAAY;0BAA3D;iBACE,kBAAC,GAAD;kBAAY,OAAM;4BAAM;kBAAgB,CAAA;iBACxC,kBAAC,GAAD;kBAAY,OAAM;4BAAO;kBAAiB,CAAA;iBAC1C,kBAAC,GAAD;kBAAY,OAAM;4BAAM;kBAAgB,CAAA;iBACxC,kBAAC,GAAD;kBAAY,OAAM;4BAAS;kBAAmB,CAAA;iBAChC;kBACT;iBACL;;aAGN,kBAAC,OAAD;cAAK,WAAU;wBAAf,CACE,kBAAC,GAAD,EAAA,UAAQ,EAAE,kDAAkD,iBAAiB,EAAS,CAAA,EACtF,kBAAC,GAAD;eACE,OAAQ,EAAU,QAAQ,WAAsB;eAChD,WAAW,MACT,EAAkB;gBAAE,GAAG,EAAU;gBAAQ,SAAS,EAAE,OAAO,SAAS,KAAA;gBAAW,CAAC;eAElF,MAAM;eACN,aAAY;eACZ,WAAU;eACV,CAAA,CACE;;aAGN,kBAAC,OAAD;cAAK,WAAU;wBAAf,CACE,kBAAC,GAAD,EAAA,UACG,EAAE,yDAAyD,iBAAiB,EACvE,CAAA,EACR,kBAAC,IAAD;eACE,OAAQ,EAAU,QAAQ,YAAuB;eACjD,gBAAgB,MAAU,EAAkB;gBAAE,GAAG,EAAU;gBAAQ,UAAU;gBAAO,CAAC;yBAFvF,CAIE,kBAAC,IAAD;gBAAe,OAAO,EAAE,QAAQ,gCAAgC;0BAC9D,kBAAC,IAAD,EAAe,CAAA;gBACD,CAAA,EAChB,kBAAC,IAAD;gBAAe,UAAS;gBAAS,MAAK;gBAAS,YAAY;0BAA3D;iBACE,kBAAC,GAAD;kBAAY,OAAM;4BACf,EAAE,8CAA8C,OAAO;kBAC7C,CAAA;iBACb,kBAAC,GAAD;kBAAY,OAAM;4BACf,EAAE,gDAAgD,UAAU;kBAClD,CAAA;iBACb,kBAAC,GAAD;kBAAY,OAAM;4BACf,EAAE,gDAAgD,eAAe;kBACvD,CAAA;iBACb,kBAAC,GAAD;kBAAY,OAAM;4BACf,EAAE,+CAA+C,aAAa;kBACpD,CAAA;iBACC;kBACT;iBACL;;aAGL,CAAC,EAAE,EAAU,QAAQ,YAAY,EAAU,OAAO,aAAa,WAC9D,kBAAC,OAAD;cAAK,WAAU;wBAAf,CACE,kBAAC,GAAD,EAAA,UACG,OAAO,EAAU,OAAO,SAAS,KAAK,UACnC,EAAE,sDAAsD,0BAA0B,GAClF,EAAE,mDAAmD,YAAY,EAC/D,CAAA,EACR,kBAAC,GAAD;eACE,MAAK;eACL,OAAQ,EAAU,QAAQ,aAAwB;eAClD,WAAW,MACT,EAAkB;gBAAE,GAAG,EAAU;gBAAQ,WAAW,EAAE,OAAO,SAAS,KAAA;gBAAW,CAAC;eAEpF,aACE,EAAU,OAAO,aAAa,UAC1B,EACE,4DACA,oBACD,GACD,EACE,yDACA,yBACD;eAEP,CAAA,CACE;;cAIN,EAAU,QAAQ,eAAe,UAAU,EAAU,QAAQ,eAAe,UAC5E,kBAAC,OAAD;cAAK,WAAU;wBAAf,CACE,kBAAC,GAAD,EAAA,UACG,EAAE,sDAAsD,sBAAsB,EACzE,CAAA,EACR,kBAAC,GAAD;eACE,OAAQ,EAAU,QAAQ,eAA0B;eACpD,WAAW,MACT,EAAkB;gBAAE,GAAG,EAAU;gBAAQ,aAAa,EAAE,OAAO,SAAS,KAAA;gBAAW,CAAC;eAEtF,MAAM;eACN,aAAY;eACZ,WAAU;eACV,CAAA,CACE;;aAIR,kBAAC,OAAD;cAAK,WAAU;wBAAf;eACE,kBAAC,GAAD,EAAA,UAAQ,EAAE,+CAA+C,uBAAuB,EAAS,CAAA;eACzF,kBAAC,GAAD;gBACE,OAAQ,EAAU,QAAQ,YAAuB;gBACjD,WAAW,MACT,EAAkB;iBAAE,GAAG,EAAU;iBAAQ,UAAU,EAAE,OAAO,SAAS,KAAA;iBAAW,CAAC;gBAEnF,aAAY;gBACZ,CAAA;eACF,kBAAC,KAAD;gBAAG,WAAU;0BACV,EACC,kDACA,yDACD;gBACC,CAAA;eACA;;aACF;;WAGP,EAAU,QAAQ,mBAAmB,aACpC,kBAAC,OAAD;YAAK,WAAU;sBAAf;aAEE,kBAAC,OAAD;cAAK,WAAU;wBAAf,CACE,kBAAC,GAAD,EAAA,UACG,EAAE,sDAAsD,qBAAqB,EACxE,CAAA,EACR,kBAAC,GAAD;eACE,OAAQ,EAAU,QAAQ,mBAA8B;eACxD,WAAW,MACT,EAAkB;gBAChB,GAAG,EAAU;gBACb,iBAAiB,EAAE,OAAO,SAAS,KAAA;gBACpC,CAAC;eAEJ,aAAY;eACZ,CAAA,CACE;;aAGN,kBAAC,OAAD;cAAK,WAAU;wBAAf,CACE,kBAAC,GAAD,EAAA,UAAQ,EAAE,mDAAmD,UAAU,EAAS,CAAA,EAChF,kBAAC,GAAD;eACE,OAAQ,EAAU,QAAQ,gBAA2B;eACrD,WAAW,MACT,EAAkB;gBAAE,GAAG,EAAU;gBAAQ,cAAc,EAAE,OAAO,SAAS,KAAA;gBAAW,CAAC;eAEvF,MAAM;eACN,aAAa;eAOb,WAAU;eACV,CAAA,CACE;;aAGN,kBAAC,OAAD;cAAK,WAAU;wBAAf,CACE,kBAAC,GAAD,EAAA,UACG,EAAE,uDAAuD,6BAA6B,EACjF,CAAA,EACR,kBAAC,GAAD;eACE,OAAQ,EAAU,QAAQ,oBAA+B;eACzD,WAAW,MACT,EAAkB;gBAChB,GAAG,EAAU;gBACb,kBAAkB,EAAE,OAAO,SAAS,KAAA;gBACrC,CAAC;eAEJ,MAAM;eACN,aAAY;eACZ,WAAU;eACV,CAAA,CACE;;aAGN,kBAAC,OAAD;cAAK,WAAU;wBAAf,CACE,kBAAC,GAAD,EAAA,UACG,EAAE,qDAAqD,2BAA2B,EAC7E,CAAA,EACR,kBAAC,GAAD;eACE,OAAQ,EAAU,QAAQ,WAAsB;eAChD,WAAW,MACT,EAAkB;gBAAE,GAAG,EAAU;gBAAQ,SAAS,EAAE,OAAO,SAAS,KAAA;gBAAW,CAAC;eAElF,MAAM;eACN,aAAY;eACZ,WAAU;eACV,CAAA,CACE;;aAGN,kBAAC,OAAD;cAAK,WAAU;wBAAf;eACE,kBAAC,GAAD,EAAA,UAAQ,EAAE,+CAA+C,uBAAuB,EAAS,CAAA;eACzF,kBAAC,GAAD;gBACE,OAAQ,EAAU,QAAQ,YAAuB;gBACjD,WAAW,MACT,EAAkB;iBAAE,GAAG,EAAU;iBAAQ,UAAU,EAAE,OAAO,SAAS,KAAA;iBAAW,CAAC;gBAEnF,aAAY;gBACZ,CAAA;eACF,kBAAC,KAAD;gBAAG,WAAU;0BACV,EACC,qDACA,6CACD;gBACC,CAAA;eACA;;aACF;;WAGP,EAAU,QAAQ,mBAAmB,UACpC,kBAAC,OAAD;YAAK,WAAU;sBAAf,CACE,kBAAC,GAAD,EAAA,UACG,EAAE,qDAAqD,qBAAqB,EACvE,CAAA,EACR,kBAAC,GAAD;aACE,OAAQ,EAAU,QAAQ,YAAuB;aACjD,WAAW,MACT,EAAkB;cAAE,GAAG,EAAU;cAAQ,UAAU,EAAE,OAAO,SAAS,KAAA;cAAW,CAAC;aAEnF,MAAM;aACN,aAAY;aACZ,WAAU;aACV,CAAA,CACE;;WAEJ;;SACE,CAAA,CACG,EAAA,CAAA;QAEL,CAAA;OAEd,kBAAC,GAAD;QAAa,OAAM;QAAW,WAAU;kBACtC,kBAAC,GAAD,EAAA,UAAA;SACG,KACC,kBAAC,IAAD;UACE,UAAU,EAAU;UACH;UACjB,mBAAmB,MAAa;AAE9B,WADA,EAAgB,YAAY,EAAS,EACjC,MAAa,gBAAc,EAAgB,YAAY,KAAA,EAAU;;UAEvE,gBACE,EAAU,aAAa,eAKnB,KAAA,IAJF,kBAAC,IAAD;WACE,QAAQ;YAAE,GAAG;YAAgB,UAAU,EAAU;YAAU,UAAU,EAAU;YAAU;WACzF,SAAS,MAAa,EAAgB,YAAY,EAAS;WAC3D,CAAA;UAGN,CAAA;SAGJ,kBAAC,GAAD;UACE,OAAO,EAAE,kDAAkD,YAAY;UACvE,aAAY;UACZ,cAAc;UACd,eAAY;oBAEZ,kBAAC,IAAD;WAAsB,QAAQ;WAAgB,UAAU;WAAyB,CAAA;UACzE,CAAA;SAEV,kBAAC,GAAD;UACE,OAAO,EAAE,iDAAiD,WAAW;UACrE,aAAY;UACZ,cAAc;UACd,eAAY;oBAEZ,kBAAC,IAAD;WAAoB,aAAa,EAAe;WAAa,UAAU,EAAe;WAAM,CAAA;UACpF,CAAA;SAEV,kBAAC,GAAD;UACE,UAAS;UACT,OAAO,EAAE,+CAA+C,SAAS;UACjE,aAAY;UACZ,cAAc;UACd,eAAY;oBAEZ,kBAAC,IAAD;WACE,aAAa,EAAe;WAC5B,UAAU,EAAe;WACzB,WAAU;WACV,CAAA;UACM,CAAA;SACG,EAAA,CAAA;QACH,CAAA;OAEd,kBAAC,GAAD;QAAa,OAAM;QAAa,WAAU;kBACvC,KACC,kBAAC,IAAD;SACE,YAAY,EAAe;SAC3B,QAAQ,EAAU,UAAU,EAAE;SAC9B,UAAU;SACV,CAAA;QAEQ,CAAA;OACV;QACD;SAEP,kBAAC,OAAD;KAAK,WAAU;eACb,kBAAC,GAAD;MACE,MAAK;MACL,OAAO,EAAE,2CAA2C,0BAA0B;MAC9E,cAAc;MACd,MAAM,kBAAC,IAAD,EAAM,WAAU,uBAAwB,CAAA;MAC9C,WAAU;MACV,eAAY;gBAEZ,kBAAC,KAAD;OAAG,WAAU;iBAA8B;OAEvC,CAAA;MACI,CAAA;KACN,CAAA;IAIP,KACC,kBAAC,OAAD;KACE,OAAO;MACL,SAAS;MACT,WAAW;MACX,iBAAiB;MACjB,YAAY;MACb;eANH;MAcG,KACC,kBAAC,GAAD;OACE,MAAK;OACL,SAAQ;OACR,OAAO,EAAE,sDAAsD,2BAA2B;OAC1F,cAAc;OACd,WAAU;OACV,eAAY;OACZ,CAAA;MAGH,MAAe,WAAW,CAAC,KAC1B,kBAAC,GAAD;OACE,MAAK;OACL,SAAQ;OACR,OAAO,EAAE,gDAAgD,oBAAoB;OAC7E,cAAc;OACd,MAAM,kBAAC,GAAD,EAAO,WAAU,uBAAwB,CAAA;OAC/C,WAAU;OACV,eAAY;OACZ,CAAA;MAGH,MAAe,WACd,kBAAC,GAAD;OACE,MAAK;OACL,SAAQ;OACR,OAAO,EAAE,kDAAkD,yBAAyB;OACpF,cAAc;OACd,MAAM,kBAAC,IAAD,EAAG,WAAU,uBAAwB,CAAA;OAC3C,WAAU;OACV,eAAY;OACZ,CAAA;MAIJ,kBAAC,OAAD;OAAK,WAAU;iBAAf,CACE,kBAAC,GAAD;QACE,SAAS;QACT,UAAU,MAAe,YAAY,CAAC;QACtC,OAAO;SACL,MAAM;SACN,QAAQ;SACR,iBAAiB,IAAoB,mCAAmC,KAAA;SACxE,SAAS,IAAoB,IAAI;SAClC;kBAEA,MAAe,WACd,kBAAC,QAAD;SAAM,OAAO;UAAE,SAAS;UAAQ,YAAY;UAAU,KAAK;UAAwB;mBAAnF,CACE,kBAAC,IAAD,EAAS,OAAO;UAAE,OAAO;UAAuB,QAAQ;UAAuB,EAAI,CAAA,EAClF,EAAE,8CAA8C,YAAY,CACxD;aAEP,kBAAC,QAAD;SAAM,OAAO;UAAE,SAAS;UAAQ,YAAY;UAAU,KAAK;UAAwB;mBAAnF,CACE,kBAAC,GAAD,EAAO,OAAO;UAAE,OAAO;UAAuB,QAAQ;UAAuB,EAAI,CAAA,EAChF,EAAE,mDAAmD,eAAe,CAChE;;QAEF,CAAA,EACT,kBAAC,GAAD;QACE,SAAQ;QACR,SAAS;QACT,UAAU,MAAe,YAAY,CAAC;QACtC,OAAO;SACL,QAAQ;SACR,SAAS,IAAoB,IAAI;SAClC;kBAPH,CASE,kBAAC,IAAD,EAAG,OAAO;SAAE,OAAO;SAAuB,QAAQ;SAAuB,EAAI,CAAA,EAC5E,EAAE,+CAA+C,UAAU,CACrD;UACL;;MACF;;IAGR,kBAAC,IAAD;KACE,QAAQ;KACR,QAAQ;KACR,gBAAgB;KAChB,WAAW;KACX,WAAW;KACX,eAAe;AAIb,MAHA,GAAsB,GAAM,EAC5B,EAAiB,KAAA,EAAU,EAC3B,EAAuB,KAAA,EAAU,EACjC,EAAsB,KAAK;;KAE7B,QAAQ;KACR,CAAA;IACW;;EACT,CAAA;EAEV"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"WidgetErrorBoundary.d.ts","sourceRoot":"","sources":["../../../../src/bigconsole/components/widgets/WidgetErrorBoundary.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAElE,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,QAAQ,EAAE,SAAS,CAAC;IACpB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;CACnD;AAED,UAAU,wBAAwB;IAChC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB;AAED,qBAAa,mBAAoB,SAAQ,SAAS,CAAC,wBAAwB,EAAE,wBAAwB,CAAC;IACpG,KAAK,EAAE,wBAAwB,CAAmB;IAElD,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,KAAK,GAAG,wBAAwB;IAIvE,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI;IAatD,kBAAkB,CAAC,SAAS,EAAE,wBAAwB,GAAG,IAAI;IAU7D,OAAO,CAAC,WAAW,CAEjB;IAEF,MAAM,IAAI,SAAS;CAkDpB;AAED,eAAe,mBAAmB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"WidgetErrorBoundary.js","names":[],"sources":["../../../../src/bigconsole/components/widgets/WidgetErrorBoundary.tsx"],"sourcesContent":["// Per-widget error boundary — isolates render errors so one bad widget can't\n// unmount the whole dashboard (BOFF-2242).\n\nimport { Component, type ErrorInfo, type ReactNode } from 'react';\n\nexport interface WidgetErrorBoundaryProps {\n widgetId: string;\n widgetType?: string;\n widgetTitle?: string;\n // Change to reset even when widgetId is stable (e.g. parser re-bind or config edit).\n resetKey?: string | number;\n children: ReactNode;\n onError?: (error: Error, info: ErrorInfo) => void;\n}\n\ninterface WidgetErrorBoundaryState {\n error: Error | null;\n}\n\nexport class WidgetErrorBoundary extends Component<WidgetErrorBoundaryProps, WidgetErrorBoundaryState> {\n state: WidgetErrorBoundaryState = { error: null };\n\n static getDerivedStateFromError(error: Error): WidgetErrorBoundaryState {\n return { error };\n }\n\n componentDidCatch(error: Error, info: ErrorInfo): void {\n const { widgetId, widgetType, widgetTitle, onError } = this.props;\n // eslint-disable-next-line no-console -- boundary needs a visible trace\n console.error(\n `[WidgetErrorBoundary] widget ${widgetId}${widgetType ? ` (${widgetType})` : ''}${\n widgetTitle ? ` \"${widgetTitle}\"` : ''\n } threw:`,\n error,\n info.componentStack\n );\n onError?.(error, info);\n }\n\n componentDidUpdate(prevProps: WidgetErrorBoundaryProps): void {\n // Reset on widgetId or resetKey change so config edits auto-recover without requiring Retry.\n if (\n this.state.error &&\n (prevProps.widgetId !== this.props.widgetId || prevProps.resetKey !== this.props.resetKey)\n ) {\n this.setState({ error: null });\n }\n }\n\n private handleRetry = (): void => {\n this.setState({ error: null });\n };\n\n render(): ReactNode {\n const { error } = this.state;\n if (!error) return this.props.children;\n\n // Full error is logged via componentDidCatch — never render raw error\n // text in the DOM (title, data-*, etc.) since it can leak internal paths.\n const { widgetType, widgetTitle } = this.props;\n const label = widgetTitle || widgetType || 'This widget';\n\n return (\n /* Shares the widget-state recipe (chip, copy width, padding, retry button). */\n <div\n className=\"flex h-full w-full min-w-0 min-h-[120px] flex-col items-center justify-center px-3 text-center\"\n role=\"alert\"\n data-widget-error=\"true\"\n >\n <div className=\"mb-3 flex h-12 w-12 shrink-0 items-center justify-center rounded-full bg-status-error-bg-subtle text-[var(--color-status-error-text)]\">\n <svg aria-hidden=\"true\" className=\"w-6 h-6\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z\"\n />\n </svg>\n </div>\n\n <p className=\"mb-1 text-sm font-semibold text-[var(--color-status-error-text)]\">Widget failed to render</p>\n <p className=\"mb-3 max-w-[32ch] text-xs text-text-secondary\">\n {label} hit an unexpected error. Check the console for details or retry.\n </p>\n\n <button\n type=\"button\"\n onClick={this.handleRetry}\n className=\"inline-flex min-h-control-md items-center gap-1.5 rounded-button bg-action-primary-bg px-3 text-sm font-medium text-action-primary-text hover:bg-action-primary-bgHover motion-safe:transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-bg-surface\"\n >\n <svg aria-hidden=\"true\" className=\"w-4 h-4\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15\"\n />\n </svg>\n Retry\n </button>\n </div>\n );\n }\n}\n\nexport default WidgetErrorBoundary;\n"],"mappings":";;;AAmBA,IAAa,IAAb,cAAyC,EAA8D;CACrG,QAAkC,EAAE,OAAO,MAAM;CAEjD,OAAO,yBAAyB,GAAwC;AACtE,SAAO,EAAE,UAAO;;CAGlB,kBAAkB,GAAc,GAAuB;EACrD,IAAM,EAAE,aAAU,eAAY,gBAAa,eAAY,KAAK;AAS5D,EAPA,QAAQ,MACN,gCAAgC,IAAW,IAAa,KAAK,EAAW,KAAK,KAC3E,IAAc,KAAK,EAAY,KAAK,GACrC,UACD,GACA,EAAK,eACN,EACD,IAAU,GAAO,EAAK;;CAGxB,mBAAmB,GAA2C;AAE5D,EACE,KAAK,MAAM,UACV,EAAU,aAAa,KAAK,MAAM,YAAY,EAAU,aAAa,KAAK,MAAM,aAEjF,KAAK,SAAS,EAAE,OAAO,MAAM,CAAC;;CAIlC,oBAAkC;AAChC,OAAK,SAAS,EAAE,OAAO,MAAM,CAAC;;CAGhC,SAAoB;EAClB,IAAM,EAAE,aAAU,KAAK;AACvB,MAAI,CAAC,EAAO,QAAO,KAAK,MAAM;EAI9B,IAAM,EAAE,eAAY,mBAAgB,KAAK;AAGzC,SAEE,kBAAC,OAAD;GACE,WAAU;GACV,MAAK;GACL,qBAAkB;aAHpB;IAKE,kBAAC,OAAD;KAAK,WAAU;eACb,kBAAC,OAAD;MAAK,eAAY;MAAO,WAAU;MAAU,MAAK;MAAO,QAAO;MAAe,SAAQ;gBACpF,kBAAC,QAAD;OACE,eAAc;OACd,gBAAe;OACf,aAAa;OACb,GAAE;OACF,CAAA;MACE,CAAA;KACF,CAAA;IAEN,kBAAC,KAAD;KAAG,WAAU;eAAmE;KAA2B,CAAA;IAC3G,kBAAC,KAAD;KAAG,WAAU;eAAb,CArBU,KAAe,KAAc,eAsB9B,oEACL;;IAEJ,kBAAC,UAAD;KACE,MAAK;KACL,SAAS,KAAK;KACd,WAAU;eAHZ,CAKE,kBAAC,OAAD;MAAK,eAAY;MAAO,WAAU;MAAU,MAAK;MAAO,QAAO;MAAe,SAAQ;gBACpF,kBAAC,QAAD;OACE,eAAc;OACd,gBAAe;OACf,aAAa;OACb,GAAE;OACF,CAAA;MACE,CAAA,EAAA,QAEC;;IACL"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"WidgetHeader.d.ts","sourceRoot":"","sources":["../../../../src/bigconsole/components/widgets/WidgetHeader.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,EAA2B,MAAM,OAAO,CAAC;AAEzD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAOzD,MAAM,WAAW,iBAAiB;IAChC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,sBAAsB;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,sCAAsC;IACtC,UAAU,EAAE,gBAAgB,CAAC;IAC7B,qCAAqC;IACrC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,2BAA2B;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,oCAAoC;IACpC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iDAAiD;IACjD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kDAAkD;IAClD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,gCAAgC;IAChC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,gCAAgC;IAChC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,6BAA6B;IAC7B,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,uCAAuC;IACvC,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,mDAAmD;IACnD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gDAAgD;IAChD,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAMD,eAAO,MAAM,YAAY,EAAE,EAAE,CAAC,iBAAiB,CAsO7C,CAAC;AAgHH,eAAe,YAAY,CAAC"}