@burdenoff/microfe-bigconsole 2026.1008.12 → 2026.1008.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1452) hide show
  1. package/README.md +3 -0
  2. package/dist/bigconsole/AdminRoot.d.ts +0 -1
  3. package/dist/bigconsole/AdminRoot.js +0 -2
  4. package/dist/bigconsole/AdminRoutes.d.ts +0 -1
  5. package/dist/bigconsole/AdminRoutes.js +0 -2
  6. package/dist/bigconsole/BigConsoleRoot.d.ts +0 -1
  7. package/dist/bigconsole/BigConsoleRoot.js +0 -2
  8. package/dist/bigconsole/BigConsoleRoutes.d.ts +0 -1
  9. package/dist/bigconsole/BigConsoleRoutes.js +0 -2
  10. package/dist/bigconsole/assistant/assistantApi.d.ts +0 -1
  11. package/dist/bigconsole/assistant/assistantApi.js +0 -2
  12. package/dist/bigconsole/assistant/assistantProduct.d.ts +0 -1
  13. package/dist/bigconsole/assistant/assistantProduct.js +0 -2
  14. package/dist/bigconsole/assistant/assistantPrompt.d.ts +0 -1
  15. package/dist/bigconsole/assistant/assistantPrompt.js +0 -2
  16. package/dist/bigconsole/assistant/assistantRunPersistence.d.ts +0 -1
  17. package/dist/bigconsole/assistant/assistantRunPersistence.js +0 -2
  18. package/dist/bigconsole/assistant/assistantRunStore.d.ts +0 -1
  19. package/dist/bigconsole/assistant/assistantRunStore.js +0 -2
  20. package/dist/bigconsole/assistant/assistantRuntime.d.ts +0 -1
  21. package/dist/bigconsole/assistant/assistantRuntime.js +0 -2
  22. package/dist/bigconsole/assistant/attachmentExtract.d.ts +0 -1
  23. package/dist/bigconsole/assistant/attachmentExtract.js +0 -2
  24. package/dist/bigconsole/assistant/conversationHistoryApi.d.ts +0 -1
  25. package/dist/bigconsole/assistant/conversationHistoryApi.js +0 -2
  26. package/dist/bigconsole/assistant/createSandboxAssistantTransport.d.ts +0 -1
  27. package/dist/bigconsole/assistant/createSandboxAssistantTransport.js +0 -2
  28. package/dist/bigconsole/assistant/displayCopy.d.ts +0 -1
  29. package/dist/bigconsole/assistant/index.d.ts +0 -1
  30. package/dist/bigconsole/assistant/modes.d.ts +0 -1
  31. package/dist/bigconsole/assistant/modes.js +0 -2
  32. package/dist/bigconsole/assistant/pageContext.d.ts +0 -1
  33. package/dist/bigconsole/assistant/pageContext.js +0 -2
  34. package/dist/bigconsole/assistant/previewController.d.ts +0 -1
  35. package/dist/bigconsole/assistant/previewController.js +0 -2
  36. package/dist/bigconsole/assistant/previewMutationResult.d.ts +0 -1
  37. package/dist/bigconsole/assistant/previewMutationResult.js +0 -2
  38. package/dist/bigconsole/assistant/previewRunAction.d.ts +0 -1
  39. package/dist/bigconsole/assistant/previewRunAction.js +0 -2
  40. package/dist/bigconsole/assistant/product.d.ts +0 -1
  41. package/dist/bigconsole/assistant/product.js +0 -2
  42. package/dist/bigconsole/assistant/recordAdapters.d.ts +0 -1
  43. package/dist/bigconsole/assistant/recordAdapters.js +0 -2
  44. package/dist/bigconsole/assistant/types.d.ts +0 -1
  45. package/dist/bigconsole/assistant/useAssistantRunWorkspace.d.ts +0 -1
  46. package/dist/bigconsole/assistant/useAssistantRunWorkspace.js +0 -2
  47. package/dist/bigconsole/assistant/useWorkspaceWriteAccess.d.ts +0 -1
  48. package/dist/bigconsole/assistant/useWorkspaceWriteAccess.js +0 -2
  49. package/dist/bigconsole/components/DrilldownDashboardRenderer.d.ts +0 -1
  50. package/dist/bigconsole/components/DrilldownDashboardRenderer.js +0 -2
  51. package/dist/bigconsole/components/DrilldownModal.d.ts +0 -1
  52. package/dist/bigconsole/components/DrilldownModal.js +0 -2
  53. package/dist/bigconsole/components/builder/BuilderCanvas.d.ts +0 -1
  54. package/dist/bigconsole/components/builder/BuilderCanvas.js +0 -2
  55. package/dist/bigconsole/components/builder/BuilderTopbar.d.ts +0 -1
  56. package/dist/bigconsole/components/builder/BuilderTopbar.js +0 -2
  57. package/dist/bigconsole/components/builder/DashboardEditorShell.d.ts +0 -1
  58. package/dist/bigconsole/components/builder/DashboardEditorShell.js +0 -2
  59. package/dist/bigconsole/components/builder/WidgetInspector.d.ts +0 -1
  60. package/dist/bigconsole/components/builder/WidgetInspector.js +0 -2
  61. package/dist/bigconsole/components/builder/index.d.ts +0 -1
  62. package/dist/bigconsole/components/builder/inspector/AdvancedSection.d.ts +0 -1
  63. package/dist/bigconsole/components/builder/inspector/AdvancedSection.js +0 -2
  64. package/dist/bigconsole/components/builder/inspector/AppearanceSection.d.ts +0 -1
  65. package/dist/bigconsole/components/builder/inspector/AppearanceSection.js +0 -2
  66. package/dist/bigconsole/components/builder/inspector/DataBindingSection.d.ts +0 -1
  67. package/dist/bigconsole/components/builder/inspector/DataBindingSection.js +0 -2
  68. package/dist/bigconsole/components/builder/inspector/GeneralSection.d.ts +0 -1
  69. package/dist/bigconsole/components/builder/inspector/GeneralSection.js +0 -2
  70. package/dist/bigconsole/components/builder/inspector/LayoutSection.d.ts +0 -1
  71. package/dist/bigconsole/components/builder/inspector/LayoutSection.js +0 -2
  72. package/dist/bigconsole/components/builder/inspector/index.d.ts +0 -1
  73. package/dist/bigconsole/components/common/Section.d.ts +0 -1
  74. package/dist/bigconsole/components/common/Section.js +0 -2
  75. package/dist/bigconsole/components/common/index.d.ts +0 -1
  76. package/dist/bigconsole/components/common/sectionStyles.d.ts +0 -1
  77. package/dist/bigconsole/components/common/sectionStyles.js +0 -2
  78. package/dist/bigconsole/components/dashboard/CreateDashboardDialog.d.ts +0 -1
  79. package/dist/bigconsole/components/dashboard/CreateDashboardDialog.js +0 -2
  80. package/dist/bigconsole/components/dashboard/DashboardCanvas.d.ts +0 -1
  81. package/dist/bigconsole/components/dashboard/DashboardCanvas.js +0 -2
  82. package/dist/bigconsole/components/dashboard/DashboardGrid.d.ts +0 -1
  83. package/dist/bigconsole/components/dashboard/DashboardGrid.js +0 -2
  84. package/dist/bigconsole/components/dashboard/DashboardStatusPill.d.ts +0 -1
  85. package/dist/bigconsole/components/dashboard/DashboardStatusPill.js +0 -2
  86. package/dist/bigconsole/components/dashboard/DashboardToolbar.d.ts +0 -1
  87. package/dist/bigconsole/components/dashboard/DashboardToolbar.js +0 -2
  88. package/dist/bigconsole/components/dashboard/DrilldownBreadcrumb.d.ts +0 -1
  89. package/dist/bigconsole/components/dashboard/DrilldownBreadcrumb.js +0 -2
  90. package/dist/bigconsole/components/dashboard/ExportDashboardDialog.d.ts +0 -1
  91. package/dist/bigconsole/components/dashboard/ExportDashboardDialog.js +0 -2
  92. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterChip.d.ts +0 -1
  93. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterChip.js +0 -2
  94. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterEditor.d.ts +0 -1
  95. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterEditor.js +0 -2
  96. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterPresetSelector.d.ts +0 -1
  97. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterPresetSelector.js +0 -2
  98. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.d.ts +0 -1
  99. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.js +0 -2
  100. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/index.d.ts +0 -1
  101. package/dist/bigconsole/components/dashboard/ImportDashboardDialog.d.ts +0 -1
  102. package/dist/bigconsole/components/dashboard/ImportDashboardDialog.js +0 -2
  103. package/dist/bigconsole/components/dashboard/LiveBoardBanner.d.ts +0 -1
  104. package/dist/bigconsole/components/dashboard/LiveBoardBanner.js +0 -2
  105. package/dist/bigconsole/components/dashboard/LiveCanvasToggle.d.ts +0 -1
  106. package/dist/bigconsole/components/dashboard/LiveCanvasToggle.js +0 -2
  107. package/dist/bigconsole/components/dashboard/PageTabsManager/PageTabsManager.d.ts +0 -1
  108. package/dist/bigconsole/components/dashboard/PageTabsManager/PageTabsManager.js +0 -2
  109. package/dist/bigconsole/components/dashboard/PageTabsManager/index.d.ts +0 -1
  110. package/dist/bigconsole/components/dashboard/PublishToStoreDialog.d.ts +0 -1
  111. package/dist/bigconsole/components/dashboard/PublishToStoreDialog.js +0 -2
  112. package/dist/bigconsole/components/dashboard/SavedViewsDropdown/SavedViewsDropdown.d.ts +0 -1
  113. package/dist/bigconsole/components/dashboard/SavedViewsDropdown/SavedViewsDropdown.js +0 -2
  114. package/dist/bigconsole/components/dashboard/SavedViewsDropdown/index.d.ts +0 -1
  115. package/dist/bigconsole/components/dashboard/ShareDialog/EmbedTab.d.ts +0 -1
  116. package/dist/bigconsole/components/dashboard/ShareDialog/EmbedTab.js +0 -2
  117. package/dist/bigconsole/components/dashboard/ShareDialog/ShareDialog.d.ts +0 -1
  118. package/dist/bigconsole/components/dashboard/ShareDialog/ShareDialog.js +0 -2
  119. package/dist/bigconsole/components/dashboard/ShareDialog/index.d.ts +0 -1
  120. package/dist/bigconsole/components/dashboard/StoreTemplatePicker.d.ts +0 -1
  121. package/dist/bigconsole/components/dashboard/StoreTemplatePicker.js +0 -2
  122. package/dist/bigconsole/components/dashboard/TemplateInstallOptions.d.ts +0 -1
  123. package/dist/bigconsole/components/dashboard/TemplateInstallOptions.js +0 -2
  124. package/dist/bigconsole/components/dashboard/TemplateLayoutPreview.d.ts +0 -1
  125. package/dist/bigconsole/components/dashboard/TemplateLayoutPreview.js +0 -2
  126. package/dist/bigconsole/components/dashboard/TemplatePicker/TemplatePicker.d.ts +0 -1
  127. package/dist/bigconsole/components/dashboard/TemplatePicker/index.d.ts +0 -1
  128. package/dist/bigconsole/components/dashboard/TemplateSetupBanner.d.ts +0 -1
  129. package/dist/bigconsole/components/dashboard/TemplateSetupBanner.js +0 -2
  130. package/dist/bigconsole/components/dashboard/WidgetPalette.d.ts +0 -1
  131. package/dist/bigconsole/components/dashboard/WidgetPalette.js +0 -2
  132. package/dist/bigconsole/components/dashboard/index.d.ts +0 -1
  133. package/dist/bigconsole/components/datasink/AlertExecutionHistory.d.ts +0 -1
  134. package/dist/bigconsole/components/datasink/AlertExecutionHistory.js +0 -2
  135. package/dist/bigconsole/components/datasink/AlertRuleEditor.d.ts +0 -1
  136. package/dist/bigconsole/components/datasink/AlertRuleEditor.js +0 -2
  137. package/dist/bigconsole/components/datasink/CacheTTLSelector.d.ts +0 -1
  138. package/dist/bigconsole/components/datasink/CacheTTLSelector.js +0 -2
  139. package/dist/bigconsole/components/datasink/ConfigurationForm.d.ts +0 -1
  140. package/dist/bigconsole/components/datasink/DataPreviewPanel.d.ts +0 -1
  141. package/dist/bigconsole/components/datasink/DataSinkCard.d.ts +0 -1
  142. package/dist/bigconsole/components/datasink/DataSinkCard.js +0 -2
  143. package/dist/bigconsole/components/datasink/DataSinkDataViewer.d.ts +0 -1
  144. package/dist/bigconsole/components/datasink/DataSinkDataViewer.js +0 -2
  145. package/dist/bigconsole/components/datasink/DataSinkDeleteDialog.d.ts +0 -1
  146. package/dist/bigconsole/components/datasink/DataSinkDeleteDialog.js +0 -2
  147. package/dist/bigconsole/components/datasink/DataSinkRefreshConfig.d.ts +0 -1
  148. package/dist/bigconsole/components/datasink/DataSinkRefreshDialog.d.ts +0 -1
  149. package/dist/bigconsole/components/datasink/DataSinkRefreshDialog.js +0 -2
  150. package/dist/bigconsole/components/datasink/DataSinkStatusBadge.d.ts +0 -1
  151. package/dist/bigconsole/components/datasink/DataSinkStatusBadge.js +0 -2
  152. package/dist/bigconsole/components/datasink/DataSinkTableViewer.d.ts +0 -1
  153. package/dist/bigconsole/components/datasink/DataSinkTableViewer.js +0 -2
  154. package/dist/bigconsole/components/datasink/ExportDataSinkDialog.d.ts +0 -1
  155. package/dist/bigconsole/components/datasink/ExportDataSinkDialog.js +0 -2
  156. package/dist/bigconsole/components/datasink/FluidGridsPanel.d.ts +0 -1
  157. package/dist/bigconsole/components/datasink/ImportDataGuideDialog.d.ts +0 -1
  158. package/dist/bigconsole/components/datasink/ImportDataGuideDialog.js +0 -2
  159. package/dist/bigconsole/components/datasink/ImportDataSinkDialog.d.ts +0 -1
  160. package/dist/bigconsole/components/datasink/ImportDataSinkDialog.js +0 -2
  161. package/dist/bigconsole/components/datasink/LinkedParsersPanel.d.ts +0 -1
  162. package/dist/bigconsole/components/datasink/LinkedParsersPanel.js +0 -2
  163. package/dist/bigconsole/components/datasink/LinkedWorkflowsPanel.d.ts +0 -1
  164. package/dist/bigconsole/components/datasink/LinkedWorkflowsPanel.js +0 -2
  165. package/dist/bigconsole/components/datasink/RefreshTypeSelector.d.ts +0 -1
  166. package/dist/bigconsole/components/datasink/RefreshTypeSelector.js +0 -2
  167. package/dist/bigconsole/components/datasink/SetupStateBadge.d.ts +0 -1
  168. package/dist/bigconsole/components/datasink/SetupStateBadge.js +0 -2
  169. package/dist/bigconsole/components/datasink/WorkflowStatusPanel.d.ts +0 -1
  170. package/dist/bigconsole/components/datasink/WorkflowStatusPanel.js +0 -2
  171. package/dist/bigconsole/components/datasink/index.d.ts +0 -1
  172. package/dist/bigconsole/components/embed/EmbedErrorBoundary.d.ts +0 -1
  173. package/dist/bigconsole/components/embed/EmbedErrorBoundary.js +0 -2
  174. package/dist/bigconsole/components/embed/EmbedWidgetRenderer.d.ts +0 -1
  175. package/dist/bigconsole/components/embed/EmbedWidgetRenderer.js +0 -2
  176. package/dist/bigconsole/components/embed/ReadOnlyDashboardRenderer.d.ts +0 -1
  177. package/dist/bigconsole/components/embed/ReadOnlyDashboardRenderer.js +0 -2
  178. package/dist/bigconsole/components/embed/drilldown.d.ts +0 -1
  179. package/dist/bigconsole/components/embed/drilldown.js +0 -2
  180. package/dist/bigconsole/components/embed/index.d.ts +0 -1
  181. package/dist/bigconsole/components/embed/renderer-manifest.d.ts +0 -1
  182. package/dist/bigconsole/components/embed/renderer-manifest.js +0 -2
  183. package/dist/bigconsole/components/embed/types.d.ts +0 -1
  184. package/dist/bigconsole/components/embed/types.js +0 -2
  185. package/dist/bigconsole/components/embed/validate.d.ts +0 -1
  186. package/dist/bigconsole/components/embed/validate.js +0 -2
  187. package/dist/bigconsole/components/embed/widgetShim.d.ts +0 -1
  188. package/dist/bigconsole/components/embed/widgetShim.js +0 -2
  189. package/dist/bigconsole/components/embed/widgets/CalendarEmbed.d.ts +0 -1
  190. package/dist/bigconsole/components/embed/widgets/CalendarEmbed.js +0 -2
  191. package/dist/bigconsole/components/embed/widgets/ChartEmbed.d.ts +0 -1
  192. package/dist/bigconsole/components/embed/widgets/ChartEmbed.js +0 -2
  193. package/dist/bigconsole/components/embed/widgets/EmbedFrame.d.ts +0 -1
  194. package/dist/bigconsole/components/embed/widgets/EmbedFrame.js +0 -2
  195. package/dist/bigconsole/components/embed/widgets/FormEmbed.d.ts +0 -1
  196. package/dist/bigconsole/components/embed/widgets/FormEmbed.js +0 -2
  197. package/dist/bigconsole/components/embed/widgets/GaugeEmbed.d.ts +0 -1
  198. package/dist/bigconsole/components/embed/widgets/GaugeEmbed.js +0 -2
  199. package/dist/bigconsole/components/embed/widgets/HeatmapEmbed.d.ts +0 -1
  200. package/dist/bigconsole/components/embed/widgets/HeatmapEmbed.js +0 -2
  201. package/dist/bigconsole/components/embed/widgets/KanbanEmbed.d.ts +0 -1
  202. package/dist/bigconsole/components/embed/widgets/KanbanEmbed.js +0 -2
  203. package/dist/bigconsole/components/embed/widgets/KpiComparisonEmbed.d.ts +0 -1
  204. package/dist/bigconsole/components/embed/widgets/KpiComparisonEmbed.js +0 -2
  205. package/dist/bigconsole/components/embed/widgets/ListEmbed.d.ts +0 -1
  206. package/dist/bigconsole/components/embed/widgets/ListEmbed.js +0 -2
  207. package/dist/bigconsole/components/embed/widgets/MetricCardEmbed.d.ts +0 -1
  208. package/dist/bigconsole/components/embed/widgets/MetricCardEmbed.js +0 -2
  209. package/dist/bigconsole/components/embed/widgets/PivotEmbed.d.ts +0 -1
  210. package/dist/bigconsole/components/embed/widgets/PivotEmbed.js +0 -2
  211. package/dist/bigconsole/components/embed/widgets/ProgressEmbed.d.ts +0 -1
  212. package/dist/bigconsole/components/embed/widgets/ProgressEmbed.js +0 -2
  213. package/dist/bigconsole/components/embed/widgets/RetentionEmbed.d.ts +0 -1
  214. package/dist/bigconsole/components/embed/widgets/RetentionEmbed.js +0 -2
  215. package/dist/bigconsole/components/embed/widgets/TableEmbed.d.ts +0 -1
  216. package/dist/bigconsole/components/embed/widgets/TableEmbed.js +0 -2
  217. package/dist/bigconsole/components/embed/widgets/TextEmbed.d.ts +0 -1
  218. package/dist/bigconsole/components/embed/widgets/TextEmbed.js +0 -2
  219. package/dist/bigconsole/components/embed/widgets/TimelineEmbed.d.ts +0 -1
  220. package/dist/bigconsole/components/embed/widgets/TimelineEmbed.js +0 -2
  221. package/dist/bigconsole/components/embed/widgets/shared.d.ts +0 -1
  222. package/dist/bigconsole/components/embed/widgets/shared.js +0 -2
  223. package/dist/bigconsole/components/overview/DashboardGuide.d.ts +0 -1
  224. package/dist/bigconsole/components/overview/DashboardGuide.js +0 -2
  225. package/dist/bigconsole/components/overview/DataHealthCard.d.ts +0 -1
  226. package/dist/bigconsole/components/overview/DataHealthCard.js +0 -2
  227. package/dist/bigconsole/components/overview/OverviewQuickActions.d.ts +0 -1
  228. package/dist/bigconsole/components/overview/OverviewQuickActions.js +0 -2
  229. package/dist/bigconsole/components/overview/OverviewStatCard.d.ts +0 -1
  230. package/dist/bigconsole/components/overview/OverviewStatCard.js +0 -2
  231. package/dist/bigconsole/components/overview/RecentDashboardsPanel.d.ts +0 -1
  232. package/dist/bigconsole/components/overview/RecentDashboardsPanel.js +0 -2
  233. package/dist/bigconsole/components/overview/dashboardGuideSteps.d.ts +0 -1
  234. package/dist/bigconsole/components/overview/dashboardGuideSteps.js +0 -2
  235. package/dist/bigconsole/components/overview/index.d.ts +0 -1
  236. package/dist/bigconsole/components/overview/overviewModel.d.ts +0 -1
  237. package/dist/bigconsole/components/overview/overviewModel.js +0 -2
  238. package/dist/bigconsole/components/overview/useOverviewData.d.ts +0 -1
  239. package/dist/bigconsole/components/overview/useOverviewData.js +0 -2
  240. package/dist/bigconsole/components/parser/DataSinkSelector.d.ts +0 -1
  241. package/dist/bigconsole/components/parser/DataSinkSelector.js +0 -2
  242. package/dist/bigconsole/components/parser/ExportParserDialog.d.ts +0 -1
  243. package/dist/bigconsole/components/parser/ExportParserDialog.js +0 -2
  244. package/dist/bigconsole/components/parser/ExpressionEditor.d.ts +0 -1
  245. package/dist/bigconsole/components/parser/ExpressionEditor.js +0 -2
  246. package/dist/bigconsole/components/parser/ImportParserDialog.d.ts +0 -1
  247. package/dist/bigconsole/components/parser/ImportParserDialog.js +0 -2
  248. package/dist/bigconsole/components/parser/ParserBuilder.d.ts +0 -1
  249. package/dist/bigconsole/components/parser/ParserCard.d.ts +0 -1
  250. package/dist/bigconsole/components/parser/ParserCard.js +0 -2
  251. package/dist/bigconsole/components/parser/ParserFormDialog.d.ts +0 -1
  252. package/dist/bigconsole/components/parser/ParserSelector.d.ts +0 -1
  253. package/dist/bigconsole/components/parser/ParserSelector.js +0 -2
  254. package/dist/bigconsole/components/parser/ParserStatusBadge.d.ts +0 -1
  255. package/dist/bigconsole/components/parser/ParserStatusBadge.js +0 -2
  256. package/dist/bigconsole/components/parser/ParserTypeBadge.d.ts +0 -1
  257. package/dist/bigconsole/components/parser/ParserTypeBadge.js +0 -2
  258. package/dist/bigconsole/components/parser/TestPanel.d.ts +0 -1
  259. package/dist/bigconsole/components/parser/index.d.ts +0 -1
  260. package/dist/bigconsole/components/parser/parserFieldStyles.d.ts +0 -1
  261. package/dist/bigconsole/components/pipeline/PipelineCard.d.ts +0 -1
  262. package/dist/bigconsole/components/pipeline/PipelineCard.js +0 -2
  263. package/dist/bigconsole/components/pipeline/PipelineDeleteDialog.d.ts +0 -1
  264. package/dist/bigconsole/components/pipeline/PipelineDeleteDialog.js +0 -2
  265. package/dist/bigconsole/components/pipeline/PipelineScopePicker.d.ts +0 -1
  266. package/dist/bigconsole/components/pipeline/PipelineScopePicker.js +0 -2
  267. package/dist/bigconsole/components/pipeline/PipelineStatusBadge.d.ts +0 -1
  268. package/dist/bigconsole/components/pipeline/PipelineStatusBadge.js +0 -2
  269. package/dist/bigconsole/components/pipeline/index.d.ts +0 -1
  270. package/dist/bigconsole/components/preview/AiPreviewContent.d.ts +0 -1
  271. package/dist/bigconsole/components/preview/AiPreviewContent.js +0 -2
  272. package/dist/bigconsole/components/preview/AiPreviewMiniPanel.d.ts +0 -1
  273. package/dist/bigconsole/components/preview/AiPreviewMiniPanel.js +0 -2
  274. package/dist/bigconsole/components/preview/AiPreviewPanel.d.ts +0 -1
  275. package/dist/bigconsole/components/preview/AiPreviewPanel.js +0 -2
  276. package/dist/bigconsole/components/preview/parserPreview.d.ts +0 -1
  277. package/dist/bigconsole/components/preview/parserPreview.js +0 -2
  278. package/dist/bigconsole/components/preview/previewShared.d.ts +0 -1
  279. package/dist/bigconsole/components/preview/previewShared.js +0 -2
  280. package/dist/bigconsole/components/widgets/ActionConfigDialog.d.ts +0 -1
  281. package/dist/bigconsole/components/widgets/ActionConfigDialog.js +0 -2
  282. package/dist/bigconsole/components/widgets/DrilldownConfigPanel.d.ts +0 -1
  283. package/dist/bigconsole/components/widgets/DrilldownConfigPanel.js +0 -2
  284. package/dist/bigconsole/components/widgets/PropertiesPanel.d.ts +0 -1
  285. package/dist/bigconsole/components/widgets/PropertiesPanel.js +505 -506
  286. package/dist/bigconsole/components/widgets/WidgetErrorBoundary.d.ts +0 -1
  287. package/dist/bigconsole/components/widgets/WidgetErrorBoundary.js +0 -2
  288. package/dist/bigconsole/components/widgets/WidgetHeader.d.ts +0 -1
  289. package/dist/bigconsole/components/widgets/WidgetHeader.js +0 -2
  290. package/dist/bigconsole/components/widgets/WidgetMenu.d.ts +0 -1
  291. package/dist/bigconsole/components/widgets/WidgetMenu.js +0 -2
  292. package/dist/bigconsole/components/widgets/WidgetRegistry.d.ts +0 -1
  293. package/dist/bigconsole/components/widgets/WidgetRegistry.js +0 -2
  294. package/dist/bigconsole/components/widgets/WidgetTypeSelector.d.ts +0 -1
  295. package/dist/bigconsole/components/widgets/WidgetWrapper.d.ts +0 -1
  296. package/dist/bigconsole/components/widgets/WidgetWrapper.js +0 -2
  297. package/dist/bigconsole/components/widgets/actionConfig.d.ts +0 -1
  298. package/dist/bigconsole/components/widgets/actionConfig.js +0 -2
  299. package/dist/bigconsole/components/widgets/adaptive-card/AdaptiveCardWidget.d.ts +0 -1
  300. package/dist/bigconsole/components/widgets/adaptive-card/AdaptiveCardWidget.js +0 -2
  301. package/dist/bigconsole/components/widgets/adaptive-card/index.d.ts +0 -1
  302. package/dist/bigconsole/components/widgets/calendar/CalendarView.d.ts +0 -1
  303. package/dist/bigconsole/components/widgets/calendar/CalendarView.js +0 -2
  304. package/dist/bigconsole/components/widgets/calendar/CalendarWidget.d.ts +0 -1
  305. package/dist/bigconsole/components/widgets/calendar/CalendarWidget.js +0 -2
  306. package/dist/bigconsole/components/widgets/calendar/index.d.ts +0 -1
  307. package/dist/bigconsole/components/widgets/chart/ChartConfig.d.ts +0 -1
  308. package/dist/bigconsole/components/widgets/chart/ChartConfig.js +0 -2
  309. package/dist/bigconsole/components/widgets/chart/ChartLegend.d.ts +0 -1
  310. package/dist/bigconsole/components/widgets/chart/ChartLegend.js +0 -2
  311. package/dist/bigconsole/components/widgets/chart/ChartTooltip.d.ts +0 -1
  312. package/dist/bigconsole/components/widgets/chart/ChartTooltip.js +0 -2
  313. package/dist/bigconsole/components/widgets/chart/ChartWidget.d.ts +0 -1
  314. package/dist/bigconsole/components/widgets/chart/ChartWidget.js +0 -2
  315. package/dist/bigconsole/components/widgets/chart/charts/AreaChart.d.ts +0 -1
  316. package/dist/bigconsole/components/widgets/chart/charts/AreaChart.js +0 -2
  317. package/dist/bigconsole/components/widgets/chart/charts/BarChart.d.ts +0 -1
  318. package/dist/bigconsole/components/widgets/chart/charts/BarChart.js +0 -2
  319. package/dist/bigconsole/components/widgets/chart/charts/ComboChart.d.ts +0 -1
  320. package/dist/bigconsole/components/widgets/chart/charts/ComboChart.js +0 -2
  321. package/dist/bigconsole/components/widgets/chart/charts/FunnelChart.d.ts +0 -1
  322. package/dist/bigconsole/components/widgets/chart/charts/FunnelChart.js +0 -2
  323. package/dist/bigconsole/components/widgets/chart/charts/LineChart.d.ts +0 -1
  324. package/dist/bigconsole/components/widgets/chart/charts/LineChart.js +0 -2
  325. package/dist/bigconsole/components/widgets/chart/charts/PieChart.d.ts +0 -1
  326. package/dist/bigconsole/components/widgets/chart/charts/PieChart.js +0 -2
  327. package/dist/bigconsole/components/widgets/chart/charts/ScatterChart.d.ts +0 -1
  328. package/dist/bigconsole/components/widgets/chart/charts/ScatterChart.js +0 -2
  329. package/dist/bigconsole/components/widgets/chart/charts/WaterfallChart.d.ts +0 -1
  330. package/dist/bigconsole/components/widgets/chart/charts/WaterfallChart.js +0 -2
  331. package/dist/bigconsole/components/widgets/chart/charts/index.d.ts +0 -1
  332. package/dist/bigconsole/components/widgets/chart/charts/referenceElements.d.ts +0 -1
  333. package/dist/bigconsole/components/widgets/chart/charts/referenceElements.js +0 -2
  334. package/dist/bigconsole/components/widgets/chart/charts/types.d.ts +0 -1
  335. package/dist/bigconsole/components/widgets/chart/index.d.ts +0 -1
  336. package/dist/bigconsole/components/widgets/comments/WidgetComments.d.ts +0 -1
  337. package/dist/bigconsole/components/widgets/comments/WidgetComments.js +0 -2
  338. package/dist/bigconsole/components/widgets/custom/CustomWidget.d.ts +0 -1
  339. package/dist/bigconsole/components/widgets/custom/CustomWidget.js +0 -2
  340. package/dist/bigconsole/components/widgets/custom/config.d.ts +0 -1
  341. package/dist/bigconsole/components/widgets/custom/config.js +0 -2
  342. package/dist/bigconsole/components/widgets/custom/index.d.ts +0 -1
  343. package/dist/bigconsole/components/widgets/custom/utils.d.ts +0 -1
  344. package/dist/bigconsole/components/widgets/custom/utils.js +0 -2
  345. package/dist/bigconsole/components/widgets/event-logs/EventLogViewer.d.ts +0 -1
  346. package/dist/bigconsole/components/widgets/event-logs/EventLogViewer.js +0 -2
  347. package/dist/bigconsole/components/widgets/event-logs/index.d.ts +0 -1
  348. package/dist/bigconsole/components/widgets/form/FormWidget.d.ts +0 -1
  349. package/dist/bigconsole/components/widgets/form/FormWidget.js +0 -2
  350. package/dist/bigconsole/components/widgets/form/index.d.ts +0 -1
  351. package/dist/bigconsole/components/widgets/funnel/index.d.ts +0 -1
  352. package/dist/bigconsole/components/widgets/funnel/index.js +0 -2
  353. package/dist/bigconsole/components/widgets/gauge/CircularGauge.d.ts +0 -1
  354. package/dist/bigconsole/components/widgets/gauge/CircularGauge.js +0 -2
  355. package/dist/bigconsole/components/widgets/gauge/GaugeConfig.d.ts +0 -1
  356. package/dist/bigconsole/components/widgets/gauge/GaugeConfig.js +0 -2
  357. package/dist/bigconsole/components/widgets/gauge/GaugeWidget.d.ts +0 -1
  358. package/dist/bigconsole/components/widgets/gauge/GaugeWidget.js +0 -2
  359. package/dist/bigconsole/components/widgets/gauge/LinearGauge.d.ts +0 -1
  360. package/dist/bigconsole/components/widgets/gauge/LinearGauge.js +0 -2
  361. package/dist/bigconsole/components/widgets/gauge/index.d.ts +0 -1
  362. package/dist/bigconsole/components/widgets/heatmap/HeatmapConfig.d.ts +0 -1
  363. package/dist/bigconsole/components/widgets/heatmap/HeatmapConfig.js +0 -2
  364. package/dist/bigconsole/components/widgets/heatmap/HeatmapWidget.d.ts +0 -1
  365. package/dist/bigconsole/components/widgets/heatmap/HeatmapWidget.js +0 -2
  366. package/dist/bigconsole/components/widgets/heatmap/index.d.ts +0 -1
  367. package/dist/bigconsole/components/widgets/iframe-widget/IframeWidget.d.ts +0 -1
  368. package/dist/bigconsole/components/widgets/iframe-widget/IframeWidget.js +0 -2
  369. package/dist/bigconsole/components/widgets/iframe-widget/index.d.ts +0 -1
  370. package/dist/bigconsole/components/widgets/index.d.ts +0 -1
  371. package/dist/bigconsole/components/widgets/kanban/KanbanView.d.ts +0 -1
  372. package/dist/bigconsole/components/widgets/kanban/KanbanView.js +0 -2
  373. package/dist/bigconsole/components/widgets/kanban/KanbanWidget.d.ts +0 -1
  374. package/dist/bigconsole/components/widgets/kanban/KanbanWidget.js +0 -2
  375. package/dist/bigconsole/components/widgets/kanban/index.d.ts +0 -1
  376. package/dist/bigconsole/components/widgets/kanban/model.d.ts +0 -1
  377. package/dist/bigconsole/components/widgets/kanban/model.js +0 -2
  378. package/dist/bigconsole/components/widgets/kpi/KPIWidget.d.ts +0 -1
  379. package/dist/bigconsole/components/widgets/kpi/KPIWidget.js +0 -2
  380. package/dist/bigconsole/components/widgets/kpi/index.d.ts +0 -1
  381. package/dist/bigconsole/components/widgets/kpi-comparison/KPIComparisonWidget.d.ts +0 -1
  382. package/dist/bigconsole/components/widgets/kpi-comparison/KPIComparisonWidget.js +0 -2
  383. package/dist/bigconsole/components/widgets/kpi-comparison/index.d.ts +0 -1
  384. package/dist/bigconsole/components/widgets/list/ListConfig.d.ts +0 -1
  385. package/dist/bigconsole/components/widgets/list/ListConfig.js +0 -2
  386. package/dist/bigconsole/components/widgets/list/ListItem.d.ts +0 -1
  387. package/dist/bigconsole/components/widgets/list/ListItem.js +0 -2
  388. package/dist/bigconsole/components/widgets/list/ListWidget.d.ts +0 -1
  389. package/dist/bigconsole/components/widgets/list/ListWidget.js +0 -2
  390. package/dist/bigconsole/components/widgets/list/index.d.ts +0 -1
  391. package/dist/bigconsole/components/widgets/map-widget/MapWidget.d.ts +0 -1
  392. package/dist/bigconsole/components/widgets/map-widget/MapWidget.js +0 -2
  393. package/dist/bigconsole/components/widgets/map-widget/index.d.ts +0 -1
  394. package/dist/bigconsole/components/widgets/metric-card/ComparisonBadge.d.ts +0 -1
  395. package/dist/bigconsole/components/widgets/metric-card/ComparisonBadge.js +0 -2
  396. package/dist/bigconsole/components/widgets/metric-card/MetricCardConfig.d.ts +0 -1
  397. package/dist/bigconsole/components/widgets/metric-card/MetricCardConfig.js +0 -2
  398. package/dist/bigconsole/components/widgets/metric-card/MetricCardWidget.d.ts +0 -1
  399. package/dist/bigconsole/components/widgets/metric-card/MetricCardWidget.js +0 -2
  400. package/dist/bigconsole/components/widgets/metric-card/SparklineChart.d.ts +0 -1
  401. package/dist/bigconsole/components/widgets/metric-card/SparklineChart.js +0 -2
  402. package/dist/bigconsole/components/widgets/metric-card/TrendIndicator.d.ts +0 -1
  403. package/dist/bigconsole/components/widgets/metric-card/TrendIndicator.js +0 -2
  404. package/dist/bigconsole/components/widgets/metric-card/index.d.ts +0 -1
  405. package/dist/bigconsole/components/widgets/pivot-table/PivotTableWidget.d.ts +0 -1
  406. package/dist/bigconsole/components/widgets/pivot-table/PivotTableWidget.js +0 -2
  407. package/dist/bigconsole/components/widgets/pivot-table/index.d.ts +0 -1
  408. package/dist/bigconsole/components/widgets/progress/ProgressBar.d.ts +0 -1
  409. package/dist/bigconsole/components/widgets/progress/ProgressBar.js +0 -2
  410. package/dist/bigconsole/components/widgets/progress/ProgressConfig.d.ts +0 -1
  411. package/dist/bigconsole/components/widgets/progress/ProgressConfig.js +0 -2
  412. package/dist/bigconsole/components/widgets/progress/ProgressWidget.d.ts +0 -1
  413. package/dist/bigconsole/components/widgets/progress/ProgressWidget.js +0 -2
  414. package/dist/bigconsole/components/widgets/progress/index.d.ts +0 -1
  415. package/dist/bigconsole/components/widgets/retention/RetentionWidget.d.ts +0 -1
  416. package/dist/bigconsole/components/widgets/retention/RetentionWidget.js +0 -2
  417. package/dist/bigconsole/components/widgets/retention/index.d.ts +0 -1
  418. package/dist/bigconsole/components/widgets/states/EmptyState.d.ts +0 -1
  419. package/dist/bigconsole/components/widgets/states/EmptyState.js +0 -2
  420. package/dist/bigconsole/components/widgets/states/ErrorState.d.ts +0 -1
  421. package/dist/bigconsole/components/widgets/states/ErrorState.js +0 -2
  422. package/dist/bigconsole/components/widgets/states/LoadingState.d.ts +0 -1
  423. package/dist/bigconsole/components/widgets/states/LoadingState.js +0 -2
  424. package/dist/bigconsole/components/widgets/states/index.d.ts +0 -1
  425. package/dist/bigconsole/components/widgets/table/TableCell.d.ts +0 -1
  426. package/dist/bigconsole/components/widgets/table/TableCell.js +0 -2
  427. package/dist/bigconsole/components/widgets/table/TableConfig.d.ts +0 -1
  428. package/dist/bigconsole/components/widgets/table/TableConfig.js +0 -2
  429. package/dist/bigconsole/components/widgets/table/TableHeader.d.ts +0 -1
  430. package/dist/bigconsole/components/widgets/table/TableHeader.js +0 -2
  431. package/dist/bigconsole/components/widgets/table/TablePagination.d.ts +0 -1
  432. package/dist/bigconsole/components/widgets/table/TablePagination.js +0 -2
  433. package/dist/bigconsole/components/widgets/table/TableWidget.d.ts +0 -1
  434. package/dist/bigconsole/components/widgets/table/TableWidget.js +0 -2
  435. package/dist/bigconsole/components/widgets/table/cellLink.d.ts +0 -1
  436. package/dist/bigconsole/components/widgets/table/cellLink.js +0 -2
  437. package/dist/bigconsole/components/widgets/table/index.d.ts +0 -1
  438. package/dist/bigconsole/components/widgets/text-widget/TextWidget.d.ts +0 -1
  439. package/dist/bigconsole/components/widgets/text-widget/TextWidget.js +0 -2
  440. package/dist/bigconsole/components/widgets/text-widget/index.d.ts +0 -1
  441. package/dist/bigconsole/components/widgets/text-widget/textData.d.ts +0 -1
  442. package/dist/bigconsole/components/widgets/text-widget/textData.js +0 -2
  443. package/dist/bigconsole/components/widgets/timeline/TimelineWidget.d.ts +0 -1
  444. package/dist/bigconsole/components/widgets/timeline/TimelineWidget.js +0 -2
  445. package/dist/bigconsole/components/widgets/timeline/index.d.ts +0 -1
  446. package/dist/bigconsole/components/widgets/utils/conditionalFormat.d.ts +0 -1
  447. package/dist/bigconsole/components/widgets/utils/conditionalFormat.js +0 -2
  448. package/dist/bigconsole/components/widgets/utils/inferFields.d.ts +0 -1
  449. package/dist/bigconsole/components/widgets/utils/inferFields.js +0 -2
  450. package/dist/bigconsole/components/widgets/utils/targetProgress.d.ts +0 -1
  451. package/dist/bigconsole/components/widgets/utils/targetProgress.js +0 -2
  452. package/dist/bigconsole/components/widgets/utils/translate.d.ts +0 -1
  453. package/dist/bigconsole/components/widgets/utils/translate.js +0 -2
  454. package/dist/bigconsole/components/widgets/webhook-config/WebhookConfigPanel.d.ts +0 -1
  455. package/dist/bigconsole/components/widgets/webhook-config/WebhookConfigPanel.js +0 -2
  456. package/dist/bigconsole/components/widgets/webhook-config/index.d.ts +0 -1
  457. package/dist/bigconsole/components/widgets/widget-actions/WidgetActions.d.ts +0 -1
  458. package/dist/bigconsole/components/widgets/widget-actions/WidgetActions.js +0 -2
  459. package/dist/bigconsole/components/widgets/widget-actions/index.d.ts +0 -1
  460. package/dist/bigconsole/components/workflow/DataSinkMultiSelector.d.ts +0 -1
  461. package/dist/bigconsole/components/workflow/WorkflowCard.d.ts +0 -1
  462. package/dist/bigconsole/components/workflow/WorkflowCard.js +0 -2
  463. package/dist/bigconsole/components/workflow/WorkflowDeleteDialog.d.ts +0 -1
  464. package/dist/bigconsole/components/workflow/WorkflowDeleteDialog.js +0 -2
  465. package/dist/bigconsole/components/workflow/WorkflowDesignPreview.d.ts +0 -1
  466. package/dist/bigconsole/components/workflow/WorkflowDesignPreview.js +0 -2
  467. package/dist/bigconsole/components/workflow/WorkflowOpenGuard.d.ts +0 -1
  468. package/dist/bigconsole/components/workflow/WorkflowOpenGuard.js +0 -2
  469. package/dist/bigconsole/components/workflow/WorkflowSinkLinkForm.d.ts +0 -1
  470. package/dist/bigconsole/components/workflow/WorkflowSinkLinkForm.js +0 -2
  471. package/dist/bigconsole/components/workflow/WorkflowStatusBadge.d.ts +0 -1
  472. package/dist/bigconsole/components/workflow/WorkflowStatusBadge.js +0 -2
  473. package/dist/bigconsole/components/workflow/index.d.ts +0 -1
  474. package/dist/bigconsole/constants/backendErrors.d.ts +0 -1
  475. package/dist/bigconsole/constants/backendErrors.js +0 -2
  476. package/dist/bigconsole/constants.d.ts +0 -1
  477. package/dist/bigconsole/constants.js +0 -2
  478. package/dist/bigconsole/context/BigConsoleContext.d.ts +0 -1
  479. package/dist/bigconsole/context/BigConsoleContext.js +0 -2
  480. package/dist/bigconsole/context/index.d.ts +0 -1
  481. package/dist/bigconsole/contexts/CrossFilterContext.d.ts +0 -1
  482. package/dist/bigconsole/contexts/CrossFilterContext.js +0 -2
  483. package/dist/bigconsole/contexts/NavigationContext.d.ts +0 -1
  484. package/dist/bigconsole/contexts/NavigationContext.js +0 -2
  485. package/dist/bigconsole/contexts/index.d.ts +0 -1
  486. package/dist/bigconsole/customWidget/CustomWidgetBuilderSheet.d.ts +0 -1
  487. package/dist/bigconsole/customWidget/CustomWidgetBuilderSheet.js +0 -2
  488. package/dist/bigconsole/customWidget/CustomWidgetProposalPanel.d.ts +0 -1
  489. package/dist/bigconsole/customWidget/CustomWidgetProposalPanel.js +0 -2
  490. package/dist/bigconsole/customWidget/index.d.ts +0 -1
  491. package/dist/bigconsole/customWidget/proposalContract.d.ts +0 -1
  492. package/dist/bigconsole/customWidget/proposalContract.js +0 -2
  493. package/dist/bigconsole/customWidget/proposalSource.d.ts +0 -1
  494. package/dist/bigconsole/customWidget/proposalSource.js +0 -2
  495. package/dist/bigconsole/graphql/apollo-compat.d.ts +0 -1
  496. package/dist/bigconsole/graphql/storeTemplates.d.ts +0 -1
  497. package/dist/bigconsole/graphql/storeTemplates.js +0 -2
  498. package/dist/bigconsole/hooks/index.d.ts +0 -1
  499. package/dist/bigconsole/hooks/useActivePage.d.ts +0 -1
  500. package/dist/bigconsole/hooks/useActivePage.js +0 -2
  501. package/dist/bigconsole/hooks/useAutoRefresh.d.ts +0 -1
  502. package/dist/bigconsole/hooks/useAutoRefresh.js +0 -2
  503. package/dist/bigconsole/hooks/useBigConsoleAnalytics.d.ts +0 -1
  504. package/dist/bigconsole/hooks/useBigConsoleAnalytics.js +0 -2
  505. package/dist/bigconsole/hooks/useBigConsoleSettings.d.ts +0 -1
  506. package/dist/bigconsole/hooks/useBigConsoleSettings.js +0 -2
  507. package/dist/bigconsole/hooks/useCrossFilter.d.ts +0 -1
  508. package/dist/bigconsole/hooks/useCrossFilter.js +0 -2
  509. package/dist/bigconsole/hooks/useDashboardEmbedPolicy.d.ts +0 -1
  510. package/dist/bigconsole/hooks/useDashboardEmbedPolicy.js +0 -2
  511. package/dist/bigconsole/hooks/useDashboardImageExport.d.ts +0 -1
  512. package/dist/bigconsole/hooks/useDashboardImageExport.js +0 -2
  513. package/dist/bigconsole/hooks/useDashboardLayoutBaseline.d.ts +0 -1
  514. package/dist/bigconsole/hooks/useDashboardLayoutBaseline.js +0 -2
  515. package/dist/bigconsole/hooks/useDashboardOperations.d.ts +0 -1
  516. package/dist/bigconsole/hooks/useDashboardOperations.js +0 -2
  517. package/dist/bigconsole/hooks/useDashboardSharing.d.ts +0 -1
  518. package/dist/bigconsole/hooks/useDashboardSharing.js +0 -2
  519. package/dist/bigconsole/hooks/useDashboardTemplates.d.ts +0 -1
  520. package/dist/bigconsole/hooks/useDashboardViews.d.ts +0 -1
  521. package/dist/bigconsole/hooks/useDashboardViews.js +0 -2
  522. package/dist/bigconsole/hooks/useDataSinkAlerts.d.ts +0 -1
  523. package/dist/bigconsole/hooks/useDataSinkAlerts.js +0 -2
  524. package/dist/bigconsole/hooks/useDataSinkOperations.d.ts +0 -1
  525. package/dist/bigconsole/hooks/useDataSinkOperations.js +0 -2
  526. package/dist/bigconsole/hooks/useDataSinkSubscription.d.ts +0 -1
  527. package/dist/bigconsole/hooks/useDataSinkSubscription.js +0 -2
  528. package/dist/bigconsole/hooks/useDrilldown.d.ts +0 -1
  529. package/dist/bigconsole/hooks/useDrilldown.js +0 -2
  530. package/dist/bigconsole/hooks/useDrilldownOperations.d.ts +0 -1
  531. package/dist/bigconsole/hooks/useDrilldownOperations.js +0 -2
  532. package/dist/bigconsole/hooks/useEventLogs.d.ts +0 -1
  533. package/dist/bigconsole/hooks/useEventLogs.js +0 -2
  534. package/dist/bigconsole/hooks/useEventWebhooks.d.ts +0 -1
  535. package/dist/bigconsole/hooks/useEventWebhooks.js +0 -2
  536. package/dist/bigconsole/hooks/useExportDashboard.d.ts +0 -1
  537. package/dist/bigconsole/hooks/useExportDashboard.js +0 -2
  538. package/dist/bigconsole/hooks/useExportDataSink.d.ts +0 -1
  539. package/dist/bigconsole/hooks/useExportDataSink.js +0 -2
  540. package/dist/bigconsole/hooks/useExportParser.d.ts +0 -1
  541. package/dist/bigconsole/hooks/useExportParser.js +0 -2
  542. package/dist/bigconsole/hooks/useFilterPresets.d.ts +0 -1
  543. package/dist/bigconsole/hooks/useFilterPresets.js +0 -2
  544. package/dist/bigconsole/hooks/useFilterUrlSync.d.ts +0 -1
  545. package/dist/bigconsole/hooks/useFilterUrlSync.js +0 -2
  546. package/dist/bigconsole/hooks/useGlobalFilters.d.ts +0 -1
  547. package/dist/bigconsole/hooks/useGlobalFilters.js +0 -2
  548. package/dist/bigconsole/hooks/useImportDashboard.d.ts +0 -1
  549. package/dist/bigconsole/hooks/useImportDashboard.js +0 -2
  550. package/dist/bigconsole/hooks/useImportDataSink.d.ts +0 -1
  551. package/dist/bigconsole/hooks/useImportDataSink.js +0 -2
  552. package/dist/bigconsole/hooks/useImportParser.d.ts +0 -1
  553. package/dist/bigconsole/hooks/useImportParser.js +0 -2
  554. package/dist/bigconsole/hooks/useInstalledWidgets.d.ts +0 -1
  555. package/dist/bigconsole/hooks/useInstalledWidgets.js +0 -2
  556. package/dist/bigconsole/hooks/useModalFocusTrap.d.ts +0 -1
  557. package/dist/bigconsole/hooks/useModalFocusTrap.js +0 -2
  558. package/dist/bigconsole/hooks/usePageOperations.d.ts +0 -1
  559. package/dist/bigconsole/hooks/usePageOperations.js +0 -2
  560. package/dist/bigconsole/hooks/useParserOperations.d.ts +0 -1
  561. package/dist/bigconsole/hooks/useParserOperations.js +0 -2
  562. package/dist/bigconsole/hooks/usePipelineOperations.d.ts +0 -1
  563. package/dist/bigconsole/hooks/usePipelineOperations.js +0 -2
  564. package/dist/bigconsole/hooks/useShareRecipients.d.ts +0 -1
  565. package/dist/bigconsole/hooks/useShareRecipients.js +0 -2
  566. package/dist/bigconsole/hooks/useStoreDashboardTemplates.d.ts +0 -1
  567. package/dist/bigconsole/hooks/useStoreDashboardTemplates.js +0 -2
  568. package/dist/bigconsole/hooks/useWidgetActions.d.ts +0 -1
  569. package/dist/bigconsole/hooks/useWidgetActions.js +0 -2
  570. package/dist/bigconsole/hooks/useWidgetCatalog.d.ts +0 -1
  571. package/dist/bigconsole/hooks/useWidgetCatalog.js +0 -2
  572. package/dist/bigconsole/hooks/useWidgetComments.d.ts +0 -1
  573. package/dist/bigconsole/hooks/useWidgetComments.js +0 -2
  574. package/dist/bigconsole/hooks/useWidgetConfigPersist.d.ts +0 -1
  575. package/dist/bigconsole/hooks/useWidgetConfigPersist.js +0 -2
  576. package/dist/bigconsole/hooks/useWidgetData.d.ts +0 -1
  577. package/dist/bigconsole/hooks/useWidgetData.js +0 -2
  578. package/dist/bigconsole/hooks/useWidgetEvents.d.ts +0 -1
  579. package/dist/bigconsole/hooks/useWidgetEvents.js +0 -2
  580. package/dist/bigconsole/hooks/useWidgetExport.d.ts +0 -1
  581. package/dist/bigconsole/hooks/useWidgetExport.js +0 -2
  582. package/dist/bigconsole/hooks/useWidgetOperations.d.ts +0 -1
  583. package/dist/bigconsole/hooks/useWidgetOperations.js +0 -2
  584. package/dist/bigconsole/hooks/useWorkflowOperations.d.ts +0 -1
  585. package/dist/bigconsole/hooks/useWorkflowOperations.js +0 -2
  586. package/dist/bigconsole/index.d.ts +0 -1
  587. package/dist/bigconsole/modules/dashboard/index.d.ts +0 -1
  588. package/dist/bigconsole/modules/index.d.ts +0 -1
  589. package/dist/bigconsole/modules/renderer/index.d.ts +0 -1
  590. package/dist/bigconsole/modules/widget/index.d.ts +0 -1
  591. package/dist/bigconsole/pages/AdminPage.d.ts +0 -1
  592. package/dist/bigconsole/pages/AdminPage.js +0 -2
  593. package/dist/bigconsole/pages/DashboardBuilderPage.d.ts +0 -1
  594. package/dist/bigconsole/pages/DashboardBuilderPage.js +0 -2
  595. package/dist/bigconsole/pages/DashboardViewPage.d.ts +0 -1
  596. package/dist/bigconsole/pages/DashboardViewPage.js +0 -2
  597. package/dist/bigconsole/pages/DashboardsPage.d.ts +0 -1
  598. package/dist/bigconsole/pages/DashboardsPage.js +0 -2
  599. package/dist/bigconsole/pages/DataParsersPage.d.ts +0 -1
  600. package/dist/bigconsole/pages/DataParsersPage.js +0 -2
  601. package/dist/bigconsole/pages/DataSinkAlertsPage.d.ts +0 -1
  602. package/dist/bigconsole/pages/DataSinkAlertsPage.js +0 -2
  603. package/dist/bigconsole/pages/DataSinkBuilderPage.d.ts +0 -1
  604. package/dist/bigconsole/pages/DataSinkBuilderPage.js +8 -10
  605. package/dist/bigconsole/pages/DataSinkViewPage.d.ts +0 -1
  606. package/dist/bigconsole/pages/DataSinkViewPage.js +0 -2
  607. package/dist/bigconsole/pages/DataSinksPage.d.ts +0 -1
  608. package/dist/bigconsole/pages/DataSinksPage.js +0 -2
  609. package/dist/bigconsole/pages/DataSourcesPage.d.ts +0 -1
  610. package/dist/bigconsole/pages/DataSourcesPage.js +0 -2
  611. package/dist/bigconsole/pages/InsightsPage.d.ts +0 -1
  612. package/dist/bigconsole/pages/InsightsPage.js +373 -361
  613. package/dist/bigconsole/pages/OverviewPage.d.ts +0 -1
  614. package/dist/bigconsole/pages/OverviewPage.js +0 -2
  615. package/dist/bigconsole/pages/ParserBuilderPage.d.ts +0 -1
  616. package/dist/bigconsole/pages/ParserBuilderPage.js +5 -7
  617. package/dist/bigconsole/pages/ParserViewPage.d.ts +0 -1
  618. package/dist/bigconsole/pages/ParserViewPage.js +0 -2
  619. package/dist/bigconsole/pages/PipelineBuilderPage.d.ts +0 -1
  620. package/dist/bigconsole/pages/PipelineBuilderPage.js +0 -2
  621. package/dist/bigconsole/pages/PipelineViewPage.d.ts +0 -1
  622. package/dist/bigconsole/pages/PipelineViewPage.js +0 -2
  623. package/dist/bigconsole/pages/PipelinesPage.d.ts +0 -1
  624. package/dist/bigconsole/pages/PipelinesPage.js +0 -2
  625. package/dist/bigconsole/pages/SettingsPage.d.ts +0 -1
  626. package/dist/bigconsole/pages/SettingsPage.js +0 -2
  627. package/dist/bigconsole/pages/WidgetDemoPage.d.ts +0 -1
  628. package/dist/bigconsole/pages/WidgetDemoPage.js +0 -2
  629. package/dist/bigconsole/pages/WorkflowViewPage.d.ts +0 -1
  630. package/dist/bigconsole/pages/WorkflowViewPage.js +0 -2
  631. package/dist/bigconsole/pages/WorkflowsPage.d.ts +0 -1
  632. package/dist/bigconsole/pages/WorkflowsPage.js +0 -2
  633. package/dist/bigconsole/pages/index.d.ts +0 -1
  634. package/dist/bigconsole/providers/BigConsoleQuotaProvider.d.ts +0 -1
  635. package/dist/bigconsole/providers/BigConsoleQuotaProvider.js +0 -2
  636. package/dist/bigconsole/renderers/adapters/AdaptiveCardRenderer.d.ts +0 -1
  637. package/dist/bigconsole/renderers/adapters/AdaptiveCardRenderer.js +0 -2
  638. package/dist/bigconsole/renderers/adapters/BigConsoleRenderer.d.ts +0 -1
  639. package/dist/bigconsole/renderers/adapters/BigConsoleRenderer.js +0 -2
  640. package/dist/bigconsole/renderers/adapters/BlockKitRenderer.d.ts +0 -1
  641. package/dist/bigconsole/renderers/adapters/BlockKitRenderer.js +0 -2
  642. package/dist/bigconsole/renderers/adapters/CustomRenderer.d.ts +0 -1
  643. package/dist/bigconsole/renderers/adapters/CustomRenderer.js +0 -2
  644. package/dist/bigconsole/renderers/adapters/index.d.ts +0 -1
  645. package/dist/bigconsole/renderers/factory/WidgetRendererFactory.d.ts +0 -1
  646. package/dist/bigconsole/renderers/factory/WidgetRendererFactory.js +0 -2
  647. package/dist/bigconsole/renderers/index.d.ts +0 -1
  648. package/dist/bigconsole/renderers/registry/RendererRegistry.d.ts +0 -1
  649. package/dist/bigconsole/renderers/registry/RendererRegistry.js +0 -2
  650. package/dist/bigconsole/renderers/types/index.d.ts +0 -1
  651. package/dist/bigconsole/renderers/types/renderer.d.ts +0 -1
  652. package/dist/bigconsole/store/dashboardStore.d.ts +0 -1
  653. package/dist/bigconsole/store/dashboardStore.js +0 -2
  654. package/dist/bigconsole/store/dataSinkStore.d.ts +0 -1
  655. package/dist/bigconsole/store/dataSinkStore.js +0 -2
  656. package/dist/bigconsole/store/drilldownStore.d.ts +0 -1
  657. package/dist/bigconsole/store/drilldownStore.js +0 -2
  658. package/dist/bigconsole/store/index.d.ts +0 -1
  659. package/dist/bigconsole/store/parserStore.d.ts +0 -1
  660. package/dist/bigconsole/store/parserStore.js +0 -2
  661. package/dist/bigconsole/store/pipelineStore.d.ts +0 -1
  662. package/dist/bigconsole/store/pipelineStore.js +0 -2
  663. package/dist/bigconsole/store/widgetStore.d.ts +0 -1
  664. package/dist/bigconsole/store/widgetStore.js +0 -2
  665. package/dist/bigconsole/store/workflowStore.d.ts +0 -1
  666. package/dist/bigconsole/store/workflowStore.js +0 -2
  667. package/dist/bigconsole/types/index.d.ts +0 -1
  668. package/dist/bigconsole/utils/alertRules.d.ts +0 -1
  669. package/dist/bigconsole/utils/alertRules.js +0 -2
  670. package/dist/bigconsole/utils/backendError.d.ts +0 -1
  671. package/dist/bigconsole/utils/backendError.js +0 -2
  672. package/dist/bigconsole/utils/createDialogParam.d.ts +0 -1
  673. package/dist/bigconsole/utils/createDialogParam.js +0 -2
  674. package/dist/bigconsole/utils/csv.d.ts +0 -1
  675. package/dist/bigconsole/utils/csv.js +0 -2
  676. package/dist/bigconsole/utils/dashboardTemplateContent.d.ts +0 -1
  677. package/dist/bigconsole/utils/dashboardTemplateContent.js +0 -2
  678. package/dist/bigconsole/utils/drilldownParams.d.ts +0 -1
  679. package/dist/bigconsole/utils/drilldownParams.js +0 -2
  680. package/dist/bigconsole/utils/formDirty.d.ts +0 -1
  681. package/dist/bigconsole/utils/formDirty.js +0 -2
  682. package/dist/bigconsole/utils/format.d.ts +0 -1
  683. package/dist/bigconsole/utils/format.js +0 -2
  684. package/dist/bigconsole/utils/index.d.ts +0 -1
  685. package/dist/bigconsole/utils/insightsDraft.d.ts +29 -0
  686. package/dist/bigconsole/utils/insightsDraft.js +8 -0
  687. package/dist/bigconsole/utils/layoutBaseline.d.ts +0 -1
  688. package/dist/bigconsole/utils/layoutBaseline.js +0 -2
  689. package/dist/bigconsole/utils/quota.d.ts +0 -1
  690. package/dist/bigconsole/utils/quota.js +0 -2
  691. package/dist/bigconsole/utils/semanticTokens.d.ts +0 -1
  692. package/dist/bigconsole/utils/semanticTokens.js +0 -2
  693. package/dist/bigconsole/utils/templateInstallInputs.d.ts +0 -1
  694. package/dist/bigconsole/utils/templateInstallInputs.js +0 -2
  695. package/dist/bigconsole/utils/widgetBinding.d.ts +0 -1
  696. package/dist/bigconsole/utils/widgetBinding.js +0 -2
  697. package/dist/bigconsole/utils/widgetFormDirty.d.ts +16 -0
  698. package/dist/bigconsole/utils/widgetFormDirty.js +13 -0
  699. package/dist/bigconsole/utils/widgetPositioning.d.ts +0 -1
  700. package/dist/bigconsole/utils/widgetPositioning.js +0 -2
  701. package/dist/bigconsole/utils/widgetTypeMapping.d.ts +0 -1
  702. package/dist/bigconsole/utils/widgetTypeMapping.js +0 -2
  703. package/dist/bigconsole/workflowOpen.d.ts +0 -1
  704. package/dist/bigconsole/workflowOpen.js +0 -2
  705. package/dist/constants/permissions.d.ts +0 -1
  706. package/dist/constants/permissions.js +0 -2
  707. package/dist/generated/global-operations.d.ts +0 -1
  708. package/dist/generated/global-operations.js +0 -2
  709. package/dist/generated/global-types.d.ts +0 -1
  710. package/dist/generated/wspace-operations.d.ts +0 -1
  711. package/dist/generated/wspace-operations.js +0 -2
  712. package/dist/generated/wspace-types.d.ts +0 -1
  713. package/dist/generated/wspace-types.js +0 -2
  714. package/dist/index.d.ts +0 -1
  715. package/dist/node_modules/@e965/xlsx/xlsx.js +0 -2
  716. package/dist/node_modules/pdfjs-dist/build/pdf.js +0 -2
  717. package/dist/shared/hooks/useTr.d.ts +0 -1
  718. package/dist/shared/hooks/useTr.js +0 -2
  719. package/dist/translations/en.d.ts +0 -1
  720. package/dist/utils/nativeBridge.d.ts +0 -1
  721. package/package.json +5 -4
  722. package/dist/bigconsole/AdminRoot.d.ts.map +0 -1
  723. package/dist/bigconsole/AdminRoot.js.map +0 -1
  724. package/dist/bigconsole/AdminRoutes.d.ts.map +0 -1
  725. package/dist/bigconsole/AdminRoutes.js.map +0 -1
  726. package/dist/bigconsole/BigConsoleRoot.d.ts.map +0 -1
  727. package/dist/bigconsole/BigConsoleRoot.js.map +0 -1
  728. package/dist/bigconsole/BigConsoleRoutes.d.ts.map +0 -1
  729. package/dist/bigconsole/BigConsoleRoutes.js.map +0 -1
  730. package/dist/bigconsole/assistant/assistantApi.d.ts.map +0 -1
  731. package/dist/bigconsole/assistant/assistantApi.js.map +0 -1
  732. package/dist/bigconsole/assistant/assistantProduct.d.ts.map +0 -1
  733. package/dist/bigconsole/assistant/assistantProduct.js.map +0 -1
  734. package/dist/bigconsole/assistant/assistantPrompt.d.ts.map +0 -1
  735. package/dist/bigconsole/assistant/assistantPrompt.js.map +0 -1
  736. package/dist/bigconsole/assistant/assistantRunPersistence.d.ts.map +0 -1
  737. package/dist/bigconsole/assistant/assistantRunPersistence.js.map +0 -1
  738. package/dist/bigconsole/assistant/assistantRunStore.d.ts.map +0 -1
  739. package/dist/bigconsole/assistant/assistantRunStore.js.map +0 -1
  740. package/dist/bigconsole/assistant/assistantRuntime.d.ts.map +0 -1
  741. package/dist/bigconsole/assistant/assistantRuntime.js.map +0 -1
  742. package/dist/bigconsole/assistant/attachmentExtract.d.ts.map +0 -1
  743. package/dist/bigconsole/assistant/attachmentExtract.js.map +0 -1
  744. package/dist/bigconsole/assistant/conversationHistoryApi.d.ts.map +0 -1
  745. package/dist/bigconsole/assistant/conversationHistoryApi.js.map +0 -1
  746. package/dist/bigconsole/assistant/createSandboxAssistantTransport.d.ts.map +0 -1
  747. package/dist/bigconsole/assistant/createSandboxAssistantTransport.js.map +0 -1
  748. package/dist/bigconsole/assistant/displayCopy.d.ts.map +0 -1
  749. package/dist/bigconsole/assistant/index.d.ts.map +0 -1
  750. package/dist/bigconsole/assistant/modes.d.ts.map +0 -1
  751. package/dist/bigconsole/assistant/modes.js.map +0 -1
  752. package/dist/bigconsole/assistant/pageContext.d.ts.map +0 -1
  753. package/dist/bigconsole/assistant/pageContext.js.map +0 -1
  754. package/dist/bigconsole/assistant/previewController.d.ts.map +0 -1
  755. package/dist/bigconsole/assistant/previewController.js.map +0 -1
  756. package/dist/bigconsole/assistant/previewMutationResult.d.ts.map +0 -1
  757. package/dist/bigconsole/assistant/previewMutationResult.js.map +0 -1
  758. package/dist/bigconsole/assistant/previewRunAction.d.ts.map +0 -1
  759. package/dist/bigconsole/assistant/previewRunAction.js.map +0 -1
  760. package/dist/bigconsole/assistant/product.d.ts.map +0 -1
  761. package/dist/bigconsole/assistant/product.js.map +0 -1
  762. package/dist/bigconsole/assistant/recordAdapters.d.ts.map +0 -1
  763. package/dist/bigconsole/assistant/recordAdapters.js.map +0 -1
  764. package/dist/bigconsole/assistant/types.d.ts.map +0 -1
  765. package/dist/bigconsole/assistant/useAssistantRunWorkspace.d.ts.map +0 -1
  766. package/dist/bigconsole/assistant/useAssistantRunWorkspace.js.map +0 -1
  767. package/dist/bigconsole/assistant/useWorkspaceWriteAccess.d.ts.map +0 -1
  768. package/dist/bigconsole/assistant/useWorkspaceWriteAccess.js.map +0 -1
  769. package/dist/bigconsole/components/DrilldownDashboardRenderer.d.ts.map +0 -1
  770. package/dist/bigconsole/components/DrilldownDashboardRenderer.js.map +0 -1
  771. package/dist/bigconsole/components/DrilldownModal.d.ts.map +0 -1
  772. package/dist/bigconsole/components/DrilldownModal.js.map +0 -1
  773. package/dist/bigconsole/components/builder/BuilderCanvas.d.ts.map +0 -1
  774. package/dist/bigconsole/components/builder/BuilderCanvas.js.map +0 -1
  775. package/dist/bigconsole/components/builder/BuilderTopbar.d.ts.map +0 -1
  776. package/dist/bigconsole/components/builder/BuilderTopbar.js.map +0 -1
  777. package/dist/bigconsole/components/builder/DashboardEditorShell.d.ts.map +0 -1
  778. package/dist/bigconsole/components/builder/DashboardEditorShell.js.map +0 -1
  779. package/dist/bigconsole/components/builder/WidgetInspector.d.ts.map +0 -1
  780. package/dist/bigconsole/components/builder/WidgetInspector.js.map +0 -1
  781. package/dist/bigconsole/components/builder/index.d.ts.map +0 -1
  782. package/dist/bigconsole/components/builder/inspector/AdvancedSection.d.ts.map +0 -1
  783. package/dist/bigconsole/components/builder/inspector/AdvancedSection.js.map +0 -1
  784. package/dist/bigconsole/components/builder/inspector/AppearanceSection.d.ts.map +0 -1
  785. package/dist/bigconsole/components/builder/inspector/AppearanceSection.js.map +0 -1
  786. package/dist/bigconsole/components/builder/inspector/DataBindingSection.d.ts.map +0 -1
  787. package/dist/bigconsole/components/builder/inspector/DataBindingSection.js.map +0 -1
  788. package/dist/bigconsole/components/builder/inspector/GeneralSection.d.ts.map +0 -1
  789. package/dist/bigconsole/components/builder/inspector/GeneralSection.js.map +0 -1
  790. package/dist/bigconsole/components/builder/inspector/LayoutSection.d.ts.map +0 -1
  791. package/dist/bigconsole/components/builder/inspector/LayoutSection.js.map +0 -1
  792. package/dist/bigconsole/components/builder/inspector/index.d.ts.map +0 -1
  793. package/dist/bigconsole/components/common/Section.d.ts.map +0 -1
  794. package/dist/bigconsole/components/common/Section.js.map +0 -1
  795. package/dist/bigconsole/components/common/index.d.ts.map +0 -1
  796. package/dist/bigconsole/components/common/sectionStyles.d.ts.map +0 -1
  797. package/dist/bigconsole/components/common/sectionStyles.js.map +0 -1
  798. package/dist/bigconsole/components/dashboard/CreateDashboardDialog.d.ts.map +0 -1
  799. package/dist/bigconsole/components/dashboard/CreateDashboardDialog.js.map +0 -1
  800. package/dist/bigconsole/components/dashboard/DashboardCanvas.d.ts.map +0 -1
  801. package/dist/bigconsole/components/dashboard/DashboardCanvas.js.map +0 -1
  802. package/dist/bigconsole/components/dashboard/DashboardGrid.d.ts.map +0 -1
  803. package/dist/bigconsole/components/dashboard/DashboardGrid.js.map +0 -1
  804. package/dist/bigconsole/components/dashboard/DashboardStatusPill.d.ts.map +0 -1
  805. package/dist/bigconsole/components/dashboard/DashboardStatusPill.js.map +0 -1
  806. package/dist/bigconsole/components/dashboard/DashboardToolbar.d.ts.map +0 -1
  807. package/dist/bigconsole/components/dashboard/DashboardToolbar.js.map +0 -1
  808. package/dist/bigconsole/components/dashboard/DrilldownBreadcrumb.d.ts.map +0 -1
  809. package/dist/bigconsole/components/dashboard/DrilldownBreadcrumb.js.map +0 -1
  810. package/dist/bigconsole/components/dashboard/ExportDashboardDialog.d.ts.map +0 -1
  811. package/dist/bigconsole/components/dashboard/ExportDashboardDialog.js.map +0 -1
  812. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterChip.d.ts.map +0 -1
  813. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterChip.js.map +0 -1
  814. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterEditor.d.ts.map +0 -1
  815. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterEditor.js.map +0 -1
  816. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterPresetSelector.d.ts.map +0 -1
  817. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterPresetSelector.js.map +0 -1
  818. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.d.ts.map +0 -1
  819. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.js.map +0 -1
  820. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/index.d.ts.map +0 -1
  821. package/dist/bigconsole/components/dashboard/ImportDashboardDialog.d.ts.map +0 -1
  822. package/dist/bigconsole/components/dashboard/ImportDashboardDialog.js.map +0 -1
  823. package/dist/bigconsole/components/dashboard/LiveBoardBanner.d.ts.map +0 -1
  824. package/dist/bigconsole/components/dashboard/LiveBoardBanner.js.map +0 -1
  825. package/dist/bigconsole/components/dashboard/LiveCanvasToggle.d.ts.map +0 -1
  826. package/dist/bigconsole/components/dashboard/LiveCanvasToggle.js.map +0 -1
  827. package/dist/bigconsole/components/dashboard/PageTabsManager/PageTabsManager.d.ts.map +0 -1
  828. package/dist/bigconsole/components/dashboard/PageTabsManager/PageTabsManager.js.map +0 -1
  829. package/dist/bigconsole/components/dashboard/PageTabsManager/index.d.ts.map +0 -1
  830. package/dist/bigconsole/components/dashboard/PublishToStoreDialog.d.ts.map +0 -1
  831. package/dist/bigconsole/components/dashboard/PublishToStoreDialog.js.map +0 -1
  832. package/dist/bigconsole/components/dashboard/SavedViewsDropdown/SavedViewsDropdown.d.ts.map +0 -1
  833. package/dist/bigconsole/components/dashboard/SavedViewsDropdown/SavedViewsDropdown.js.map +0 -1
  834. package/dist/bigconsole/components/dashboard/SavedViewsDropdown/index.d.ts.map +0 -1
  835. package/dist/bigconsole/components/dashboard/ShareDialog/EmbedTab.d.ts.map +0 -1
  836. package/dist/bigconsole/components/dashboard/ShareDialog/EmbedTab.js.map +0 -1
  837. package/dist/bigconsole/components/dashboard/ShareDialog/ShareDialog.d.ts.map +0 -1
  838. package/dist/bigconsole/components/dashboard/ShareDialog/ShareDialog.js.map +0 -1
  839. package/dist/bigconsole/components/dashboard/ShareDialog/index.d.ts.map +0 -1
  840. package/dist/bigconsole/components/dashboard/StoreTemplatePicker.d.ts.map +0 -1
  841. package/dist/bigconsole/components/dashboard/StoreTemplatePicker.js.map +0 -1
  842. package/dist/bigconsole/components/dashboard/TemplateInstallOptions.d.ts.map +0 -1
  843. package/dist/bigconsole/components/dashboard/TemplateInstallOptions.js.map +0 -1
  844. package/dist/bigconsole/components/dashboard/TemplateLayoutPreview.d.ts.map +0 -1
  845. package/dist/bigconsole/components/dashboard/TemplateLayoutPreview.js.map +0 -1
  846. package/dist/bigconsole/components/dashboard/TemplatePicker/TemplatePicker.d.ts.map +0 -1
  847. package/dist/bigconsole/components/dashboard/TemplatePicker/index.d.ts.map +0 -1
  848. package/dist/bigconsole/components/dashboard/TemplateSetupBanner.d.ts.map +0 -1
  849. package/dist/bigconsole/components/dashboard/TemplateSetupBanner.js.map +0 -1
  850. package/dist/bigconsole/components/dashboard/WidgetPalette.d.ts.map +0 -1
  851. package/dist/bigconsole/components/dashboard/WidgetPalette.js.map +0 -1
  852. package/dist/bigconsole/components/dashboard/index.d.ts.map +0 -1
  853. package/dist/bigconsole/components/datasink/AlertExecutionHistory.d.ts.map +0 -1
  854. package/dist/bigconsole/components/datasink/AlertExecutionHistory.js.map +0 -1
  855. package/dist/bigconsole/components/datasink/AlertRuleEditor.d.ts.map +0 -1
  856. package/dist/bigconsole/components/datasink/AlertRuleEditor.js.map +0 -1
  857. package/dist/bigconsole/components/datasink/CacheTTLSelector.d.ts.map +0 -1
  858. package/dist/bigconsole/components/datasink/CacheTTLSelector.js.map +0 -1
  859. package/dist/bigconsole/components/datasink/ConfigurationForm.d.ts.map +0 -1
  860. package/dist/bigconsole/components/datasink/DataPreviewPanel.d.ts.map +0 -1
  861. package/dist/bigconsole/components/datasink/DataSinkCard.d.ts.map +0 -1
  862. package/dist/bigconsole/components/datasink/DataSinkCard.js.map +0 -1
  863. package/dist/bigconsole/components/datasink/DataSinkDataViewer.d.ts.map +0 -1
  864. package/dist/bigconsole/components/datasink/DataSinkDataViewer.js.map +0 -1
  865. package/dist/bigconsole/components/datasink/DataSinkDeleteDialog.d.ts.map +0 -1
  866. package/dist/bigconsole/components/datasink/DataSinkDeleteDialog.js.map +0 -1
  867. package/dist/bigconsole/components/datasink/DataSinkRefreshConfig.d.ts.map +0 -1
  868. package/dist/bigconsole/components/datasink/DataSinkRefreshDialog.d.ts.map +0 -1
  869. package/dist/bigconsole/components/datasink/DataSinkRefreshDialog.js.map +0 -1
  870. package/dist/bigconsole/components/datasink/DataSinkStatusBadge.d.ts.map +0 -1
  871. package/dist/bigconsole/components/datasink/DataSinkStatusBadge.js.map +0 -1
  872. package/dist/bigconsole/components/datasink/DataSinkTableViewer.d.ts.map +0 -1
  873. package/dist/bigconsole/components/datasink/DataSinkTableViewer.js.map +0 -1
  874. package/dist/bigconsole/components/datasink/ExportDataSinkDialog.d.ts.map +0 -1
  875. package/dist/bigconsole/components/datasink/ExportDataSinkDialog.js.map +0 -1
  876. package/dist/bigconsole/components/datasink/FluidGridsPanel.d.ts.map +0 -1
  877. package/dist/bigconsole/components/datasink/ImportDataGuideDialog.d.ts.map +0 -1
  878. package/dist/bigconsole/components/datasink/ImportDataGuideDialog.js.map +0 -1
  879. package/dist/bigconsole/components/datasink/ImportDataSinkDialog.d.ts.map +0 -1
  880. package/dist/bigconsole/components/datasink/ImportDataSinkDialog.js.map +0 -1
  881. package/dist/bigconsole/components/datasink/LinkedParsersPanel.d.ts.map +0 -1
  882. package/dist/bigconsole/components/datasink/LinkedParsersPanel.js.map +0 -1
  883. package/dist/bigconsole/components/datasink/LinkedWorkflowsPanel.d.ts.map +0 -1
  884. package/dist/bigconsole/components/datasink/LinkedWorkflowsPanel.js.map +0 -1
  885. package/dist/bigconsole/components/datasink/RefreshTypeSelector.d.ts.map +0 -1
  886. package/dist/bigconsole/components/datasink/RefreshTypeSelector.js.map +0 -1
  887. package/dist/bigconsole/components/datasink/SetupStateBadge.d.ts.map +0 -1
  888. package/dist/bigconsole/components/datasink/SetupStateBadge.js.map +0 -1
  889. package/dist/bigconsole/components/datasink/WorkflowStatusPanel.d.ts.map +0 -1
  890. package/dist/bigconsole/components/datasink/WorkflowStatusPanel.js.map +0 -1
  891. package/dist/bigconsole/components/datasink/index.d.ts.map +0 -1
  892. package/dist/bigconsole/components/embed/EmbedErrorBoundary.d.ts.map +0 -1
  893. package/dist/bigconsole/components/embed/EmbedErrorBoundary.js.map +0 -1
  894. package/dist/bigconsole/components/embed/EmbedWidgetRenderer.d.ts.map +0 -1
  895. package/dist/bigconsole/components/embed/EmbedWidgetRenderer.js.map +0 -1
  896. package/dist/bigconsole/components/embed/ReadOnlyDashboardRenderer.d.ts.map +0 -1
  897. package/dist/bigconsole/components/embed/ReadOnlyDashboardRenderer.js.map +0 -1
  898. package/dist/bigconsole/components/embed/drilldown.d.ts.map +0 -1
  899. package/dist/bigconsole/components/embed/drilldown.js.map +0 -1
  900. package/dist/bigconsole/components/embed/index.d.ts.map +0 -1
  901. package/dist/bigconsole/components/embed/renderer-manifest.d.ts.map +0 -1
  902. package/dist/bigconsole/components/embed/renderer-manifest.js.map +0 -1
  903. package/dist/bigconsole/components/embed/types.d.ts.map +0 -1
  904. package/dist/bigconsole/components/embed/types.js.map +0 -1
  905. package/dist/bigconsole/components/embed/validate.d.ts.map +0 -1
  906. package/dist/bigconsole/components/embed/validate.js.map +0 -1
  907. package/dist/bigconsole/components/embed/widgetShim.d.ts.map +0 -1
  908. package/dist/bigconsole/components/embed/widgetShim.js.map +0 -1
  909. package/dist/bigconsole/components/embed/widgets/CalendarEmbed.d.ts.map +0 -1
  910. package/dist/bigconsole/components/embed/widgets/CalendarEmbed.js.map +0 -1
  911. package/dist/bigconsole/components/embed/widgets/ChartEmbed.d.ts.map +0 -1
  912. package/dist/bigconsole/components/embed/widgets/ChartEmbed.js.map +0 -1
  913. package/dist/bigconsole/components/embed/widgets/EmbedFrame.d.ts.map +0 -1
  914. package/dist/bigconsole/components/embed/widgets/EmbedFrame.js.map +0 -1
  915. package/dist/bigconsole/components/embed/widgets/FormEmbed.d.ts.map +0 -1
  916. package/dist/bigconsole/components/embed/widgets/FormEmbed.js.map +0 -1
  917. package/dist/bigconsole/components/embed/widgets/GaugeEmbed.d.ts.map +0 -1
  918. package/dist/bigconsole/components/embed/widgets/GaugeEmbed.js.map +0 -1
  919. package/dist/bigconsole/components/embed/widgets/HeatmapEmbed.d.ts.map +0 -1
  920. package/dist/bigconsole/components/embed/widgets/HeatmapEmbed.js.map +0 -1
  921. package/dist/bigconsole/components/embed/widgets/KanbanEmbed.d.ts.map +0 -1
  922. package/dist/bigconsole/components/embed/widgets/KanbanEmbed.js.map +0 -1
  923. package/dist/bigconsole/components/embed/widgets/KpiComparisonEmbed.d.ts.map +0 -1
  924. package/dist/bigconsole/components/embed/widgets/KpiComparisonEmbed.js.map +0 -1
  925. package/dist/bigconsole/components/embed/widgets/ListEmbed.d.ts.map +0 -1
  926. package/dist/bigconsole/components/embed/widgets/ListEmbed.js.map +0 -1
  927. package/dist/bigconsole/components/embed/widgets/MetricCardEmbed.d.ts.map +0 -1
  928. package/dist/bigconsole/components/embed/widgets/MetricCardEmbed.js.map +0 -1
  929. package/dist/bigconsole/components/embed/widgets/PivotEmbed.d.ts.map +0 -1
  930. package/dist/bigconsole/components/embed/widgets/PivotEmbed.js.map +0 -1
  931. package/dist/bigconsole/components/embed/widgets/ProgressEmbed.d.ts.map +0 -1
  932. package/dist/bigconsole/components/embed/widgets/ProgressEmbed.js.map +0 -1
  933. package/dist/bigconsole/components/embed/widgets/RetentionEmbed.d.ts.map +0 -1
  934. package/dist/bigconsole/components/embed/widgets/RetentionEmbed.js.map +0 -1
  935. package/dist/bigconsole/components/embed/widgets/TableEmbed.d.ts.map +0 -1
  936. package/dist/bigconsole/components/embed/widgets/TableEmbed.js.map +0 -1
  937. package/dist/bigconsole/components/embed/widgets/TextEmbed.d.ts.map +0 -1
  938. package/dist/bigconsole/components/embed/widgets/TextEmbed.js.map +0 -1
  939. package/dist/bigconsole/components/embed/widgets/TimelineEmbed.d.ts.map +0 -1
  940. package/dist/bigconsole/components/embed/widgets/TimelineEmbed.js.map +0 -1
  941. package/dist/bigconsole/components/embed/widgets/shared.d.ts.map +0 -1
  942. package/dist/bigconsole/components/embed/widgets/shared.js.map +0 -1
  943. package/dist/bigconsole/components/overview/DashboardGuide.d.ts.map +0 -1
  944. package/dist/bigconsole/components/overview/DashboardGuide.js.map +0 -1
  945. package/dist/bigconsole/components/overview/DataHealthCard.d.ts.map +0 -1
  946. package/dist/bigconsole/components/overview/DataHealthCard.js.map +0 -1
  947. package/dist/bigconsole/components/overview/OverviewQuickActions.d.ts.map +0 -1
  948. package/dist/bigconsole/components/overview/OverviewQuickActions.js.map +0 -1
  949. package/dist/bigconsole/components/overview/OverviewStatCard.d.ts.map +0 -1
  950. package/dist/bigconsole/components/overview/OverviewStatCard.js.map +0 -1
  951. package/dist/bigconsole/components/overview/RecentDashboardsPanel.d.ts.map +0 -1
  952. package/dist/bigconsole/components/overview/RecentDashboardsPanel.js.map +0 -1
  953. package/dist/bigconsole/components/overview/dashboardGuideSteps.d.ts.map +0 -1
  954. package/dist/bigconsole/components/overview/dashboardGuideSteps.js.map +0 -1
  955. package/dist/bigconsole/components/overview/index.d.ts.map +0 -1
  956. package/dist/bigconsole/components/overview/overviewModel.d.ts.map +0 -1
  957. package/dist/bigconsole/components/overview/overviewModel.js.map +0 -1
  958. package/dist/bigconsole/components/overview/useOverviewData.d.ts.map +0 -1
  959. package/dist/bigconsole/components/overview/useOverviewData.js.map +0 -1
  960. package/dist/bigconsole/components/parser/DataSinkSelector.d.ts.map +0 -1
  961. package/dist/bigconsole/components/parser/DataSinkSelector.js.map +0 -1
  962. package/dist/bigconsole/components/parser/ExportParserDialog.d.ts.map +0 -1
  963. package/dist/bigconsole/components/parser/ExportParserDialog.js.map +0 -1
  964. package/dist/bigconsole/components/parser/ExpressionEditor.d.ts.map +0 -1
  965. package/dist/bigconsole/components/parser/ExpressionEditor.js.map +0 -1
  966. package/dist/bigconsole/components/parser/ImportParserDialog.d.ts.map +0 -1
  967. package/dist/bigconsole/components/parser/ImportParserDialog.js.map +0 -1
  968. package/dist/bigconsole/components/parser/ParserBuilder.d.ts.map +0 -1
  969. package/dist/bigconsole/components/parser/ParserCard.d.ts.map +0 -1
  970. package/dist/bigconsole/components/parser/ParserCard.js.map +0 -1
  971. package/dist/bigconsole/components/parser/ParserFormDialog.d.ts.map +0 -1
  972. package/dist/bigconsole/components/parser/ParserSelector.d.ts.map +0 -1
  973. package/dist/bigconsole/components/parser/ParserSelector.js.map +0 -1
  974. package/dist/bigconsole/components/parser/ParserStatusBadge.d.ts.map +0 -1
  975. package/dist/bigconsole/components/parser/ParserStatusBadge.js.map +0 -1
  976. package/dist/bigconsole/components/parser/ParserTypeBadge.d.ts.map +0 -1
  977. package/dist/bigconsole/components/parser/ParserTypeBadge.js.map +0 -1
  978. package/dist/bigconsole/components/parser/TestPanel.d.ts.map +0 -1
  979. package/dist/bigconsole/components/parser/index.d.ts.map +0 -1
  980. package/dist/bigconsole/components/parser/parserFieldStyles.d.ts.map +0 -1
  981. package/dist/bigconsole/components/pipeline/PipelineCard.d.ts.map +0 -1
  982. package/dist/bigconsole/components/pipeline/PipelineCard.js.map +0 -1
  983. package/dist/bigconsole/components/pipeline/PipelineDeleteDialog.d.ts.map +0 -1
  984. package/dist/bigconsole/components/pipeline/PipelineDeleteDialog.js.map +0 -1
  985. package/dist/bigconsole/components/pipeline/PipelineScopePicker.d.ts.map +0 -1
  986. package/dist/bigconsole/components/pipeline/PipelineScopePicker.js.map +0 -1
  987. package/dist/bigconsole/components/pipeline/PipelineStatusBadge.d.ts.map +0 -1
  988. package/dist/bigconsole/components/pipeline/PipelineStatusBadge.js.map +0 -1
  989. package/dist/bigconsole/components/pipeline/index.d.ts.map +0 -1
  990. package/dist/bigconsole/components/preview/AiPreviewContent.d.ts.map +0 -1
  991. package/dist/bigconsole/components/preview/AiPreviewContent.js.map +0 -1
  992. package/dist/bigconsole/components/preview/AiPreviewMiniPanel.d.ts.map +0 -1
  993. package/dist/bigconsole/components/preview/AiPreviewMiniPanel.js.map +0 -1
  994. package/dist/bigconsole/components/preview/AiPreviewPanel.d.ts.map +0 -1
  995. package/dist/bigconsole/components/preview/AiPreviewPanel.js.map +0 -1
  996. package/dist/bigconsole/components/preview/parserPreview.d.ts.map +0 -1
  997. package/dist/bigconsole/components/preview/parserPreview.js.map +0 -1
  998. package/dist/bigconsole/components/preview/previewShared.d.ts.map +0 -1
  999. package/dist/bigconsole/components/preview/previewShared.js.map +0 -1
  1000. package/dist/bigconsole/components/widgets/ActionConfigDialog.d.ts.map +0 -1
  1001. package/dist/bigconsole/components/widgets/ActionConfigDialog.js.map +0 -1
  1002. package/dist/bigconsole/components/widgets/DrilldownConfigPanel.d.ts.map +0 -1
  1003. package/dist/bigconsole/components/widgets/DrilldownConfigPanel.js.map +0 -1
  1004. package/dist/bigconsole/components/widgets/PropertiesPanel.d.ts.map +0 -1
  1005. package/dist/bigconsole/components/widgets/PropertiesPanel.js.map +0 -1
  1006. package/dist/bigconsole/components/widgets/WidgetErrorBoundary.d.ts.map +0 -1
  1007. package/dist/bigconsole/components/widgets/WidgetErrorBoundary.js.map +0 -1
  1008. package/dist/bigconsole/components/widgets/WidgetHeader.d.ts.map +0 -1
  1009. package/dist/bigconsole/components/widgets/WidgetHeader.js.map +0 -1
  1010. package/dist/bigconsole/components/widgets/WidgetMenu.d.ts.map +0 -1
  1011. package/dist/bigconsole/components/widgets/WidgetMenu.js.map +0 -1
  1012. package/dist/bigconsole/components/widgets/WidgetRegistry.d.ts.map +0 -1
  1013. package/dist/bigconsole/components/widgets/WidgetRegistry.js.map +0 -1
  1014. package/dist/bigconsole/components/widgets/WidgetTypeSelector.d.ts.map +0 -1
  1015. package/dist/bigconsole/components/widgets/WidgetWrapper.d.ts.map +0 -1
  1016. package/dist/bigconsole/components/widgets/WidgetWrapper.js.map +0 -1
  1017. package/dist/bigconsole/components/widgets/actionConfig.d.ts.map +0 -1
  1018. package/dist/bigconsole/components/widgets/actionConfig.js.map +0 -1
  1019. package/dist/bigconsole/components/widgets/adaptive-card/AdaptiveCardWidget.d.ts.map +0 -1
  1020. package/dist/bigconsole/components/widgets/adaptive-card/AdaptiveCardWidget.js.map +0 -1
  1021. package/dist/bigconsole/components/widgets/adaptive-card/index.d.ts.map +0 -1
  1022. package/dist/bigconsole/components/widgets/calendar/CalendarView.d.ts.map +0 -1
  1023. package/dist/bigconsole/components/widgets/calendar/CalendarView.js.map +0 -1
  1024. package/dist/bigconsole/components/widgets/calendar/CalendarWidget.d.ts.map +0 -1
  1025. package/dist/bigconsole/components/widgets/calendar/CalendarWidget.js.map +0 -1
  1026. package/dist/bigconsole/components/widgets/calendar/index.d.ts.map +0 -1
  1027. package/dist/bigconsole/components/widgets/chart/ChartConfig.d.ts.map +0 -1
  1028. package/dist/bigconsole/components/widgets/chart/ChartConfig.js.map +0 -1
  1029. package/dist/bigconsole/components/widgets/chart/ChartLegend.d.ts.map +0 -1
  1030. package/dist/bigconsole/components/widgets/chart/ChartLegend.js.map +0 -1
  1031. package/dist/bigconsole/components/widgets/chart/ChartTooltip.d.ts.map +0 -1
  1032. package/dist/bigconsole/components/widgets/chart/ChartTooltip.js.map +0 -1
  1033. package/dist/bigconsole/components/widgets/chart/ChartWidget.d.ts.map +0 -1
  1034. package/dist/bigconsole/components/widgets/chart/ChartWidget.js.map +0 -1
  1035. package/dist/bigconsole/components/widgets/chart/charts/AreaChart.d.ts.map +0 -1
  1036. package/dist/bigconsole/components/widgets/chart/charts/AreaChart.js.map +0 -1
  1037. package/dist/bigconsole/components/widgets/chart/charts/BarChart.d.ts.map +0 -1
  1038. package/dist/bigconsole/components/widgets/chart/charts/BarChart.js.map +0 -1
  1039. package/dist/bigconsole/components/widgets/chart/charts/ComboChart.d.ts.map +0 -1
  1040. package/dist/bigconsole/components/widgets/chart/charts/ComboChart.js.map +0 -1
  1041. package/dist/bigconsole/components/widgets/chart/charts/FunnelChart.d.ts.map +0 -1
  1042. package/dist/bigconsole/components/widgets/chart/charts/FunnelChart.js.map +0 -1
  1043. package/dist/bigconsole/components/widgets/chart/charts/LineChart.d.ts.map +0 -1
  1044. package/dist/bigconsole/components/widgets/chart/charts/LineChart.js.map +0 -1
  1045. package/dist/bigconsole/components/widgets/chart/charts/PieChart.d.ts.map +0 -1
  1046. package/dist/bigconsole/components/widgets/chart/charts/PieChart.js.map +0 -1
  1047. package/dist/bigconsole/components/widgets/chart/charts/ScatterChart.d.ts.map +0 -1
  1048. package/dist/bigconsole/components/widgets/chart/charts/ScatterChart.js.map +0 -1
  1049. package/dist/bigconsole/components/widgets/chart/charts/WaterfallChart.d.ts.map +0 -1
  1050. package/dist/bigconsole/components/widgets/chart/charts/WaterfallChart.js.map +0 -1
  1051. package/dist/bigconsole/components/widgets/chart/charts/index.d.ts.map +0 -1
  1052. package/dist/bigconsole/components/widgets/chart/charts/referenceElements.d.ts.map +0 -1
  1053. package/dist/bigconsole/components/widgets/chart/charts/referenceElements.js.map +0 -1
  1054. package/dist/bigconsole/components/widgets/chart/charts/types.d.ts.map +0 -1
  1055. package/dist/bigconsole/components/widgets/chart/index.d.ts.map +0 -1
  1056. package/dist/bigconsole/components/widgets/comments/WidgetComments.d.ts.map +0 -1
  1057. package/dist/bigconsole/components/widgets/comments/WidgetComments.js.map +0 -1
  1058. package/dist/bigconsole/components/widgets/custom/CustomWidget.d.ts.map +0 -1
  1059. package/dist/bigconsole/components/widgets/custom/CustomWidget.js.map +0 -1
  1060. package/dist/bigconsole/components/widgets/custom/config.d.ts.map +0 -1
  1061. package/dist/bigconsole/components/widgets/custom/config.js.map +0 -1
  1062. package/dist/bigconsole/components/widgets/custom/index.d.ts.map +0 -1
  1063. package/dist/bigconsole/components/widgets/custom/utils.d.ts.map +0 -1
  1064. package/dist/bigconsole/components/widgets/custom/utils.js.map +0 -1
  1065. package/dist/bigconsole/components/widgets/event-logs/EventLogViewer.d.ts.map +0 -1
  1066. package/dist/bigconsole/components/widgets/event-logs/EventLogViewer.js.map +0 -1
  1067. package/dist/bigconsole/components/widgets/event-logs/index.d.ts.map +0 -1
  1068. package/dist/bigconsole/components/widgets/form/FormWidget.d.ts.map +0 -1
  1069. package/dist/bigconsole/components/widgets/form/FormWidget.js.map +0 -1
  1070. package/dist/bigconsole/components/widgets/form/index.d.ts.map +0 -1
  1071. package/dist/bigconsole/components/widgets/funnel/index.d.ts.map +0 -1
  1072. package/dist/bigconsole/components/widgets/funnel/index.js.map +0 -1
  1073. package/dist/bigconsole/components/widgets/gauge/CircularGauge.d.ts.map +0 -1
  1074. package/dist/bigconsole/components/widgets/gauge/CircularGauge.js.map +0 -1
  1075. package/dist/bigconsole/components/widgets/gauge/GaugeConfig.d.ts.map +0 -1
  1076. package/dist/bigconsole/components/widgets/gauge/GaugeConfig.js.map +0 -1
  1077. package/dist/bigconsole/components/widgets/gauge/GaugeWidget.d.ts.map +0 -1
  1078. package/dist/bigconsole/components/widgets/gauge/GaugeWidget.js.map +0 -1
  1079. package/dist/bigconsole/components/widgets/gauge/LinearGauge.d.ts.map +0 -1
  1080. package/dist/bigconsole/components/widgets/gauge/LinearGauge.js.map +0 -1
  1081. package/dist/bigconsole/components/widgets/gauge/index.d.ts.map +0 -1
  1082. package/dist/bigconsole/components/widgets/heatmap/HeatmapConfig.d.ts.map +0 -1
  1083. package/dist/bigconsole/components/widgets/heatmap/HeatmapConfig.js.map +0 -1
  1084. package/dist/bigconsole/components/widgets/heatmap/HeatmapWidget.d.ts.map +0 -1
  1085. package/dist/bigconsole/components/widgets/heatmap/HeatmapWidget.js.map +0 -1
  1086. package/dist/bigconsole/components/widgets/heatmap/index.d.ts.map +0 -1
  1087. package/dist/bigconsole/components/widgets/iframe-widget/IframeWidget.d.ts.map +0 -1
  1088. package/dist/bigconsole/components/widgets/iframe-widget/IframeWidget.js.map +0 -1
  1089. package/dist/bigconsole/components/widgets/iframe-widget/index.d.ts.map +0 -1
  1090. package/dist/bigconsole/components/widgets/index.d.ts.map +0 -1
  1091. package/dist/bigconsole/components/widgets/kanban/KanbanView.d.ts.map +0 -1
  1092. package/dist/bigconsole/components/widgets/kanban/KanbanView.js.map +0 -1
  1093. package/dist/bigconsole/components/widgets/kanban/KanbanWidget.d.ts.map +0 -1
  1094. package/dist/bigconsole/components/widgets/kanban/KanbanWidget.js.map +0 -1
  1095. package/dist/bigconsole/components/widgets/kanban/index.d.ts.map +0 -1
  1096. package/dist/bigconsole/components/widgets/kanban/model.d.ts.map +0 -1
  1097. package/dist/bigconsole/components/widgets/kanban/model.js.map +0 -1
  1098. package/dist/bigconsole/components/widgets/kpi/KPIWidget.d.ts.map +0 -1
  1099. package/dist/bigconsole/components/widgets/kpi/KPIWidget.js.map +0 -1
  1100. package/dist/bigconsole/components/widgets/kpi/index.d.ts.map +0 -1
  1101. package/dist/bigconsole/components/widgets/kpi-comparison/KPIComparisonWidget.d.ts.map +0 -1
  1102. package/dist/bigconsole/components/widgets/kpi-comparison/KPIComparisonWidget.js.map +0 -1
  1103. package/dist/bigconsole/components/widgets/kpi-comparison/index.d.ts.map +0 -1
  1104. package/dist/bigconsole/components/widgets/list/ListConfig.d.ts.map +0 -1
  1105. package/dist/bigconsole/components/widgets/list/ListConfig.js.map +0 -1
  1106. package/dist/bigconsole/components/widgets/list/ListItem.d.ts.map +0 -1
  1107. package/dist/bigconsole/components/widgets/list/ListItem.js.map +0 -1
  1108. package/dist/bigconsole/components/widgets/list/ListWidget.d.ts.map +0 -1
  1109. package/dist/bigconsole/components/widgets/list/ListWidget.js.map +0 -1
  1110. package/dist/bigconsole/components/widgets/list/index.d.ts.map +0 -1
  1111. package/dist/bigconsole/components/widgets/map-widget/MapWidget.d.ts.map +0 -1
  1112. package/dist/bigconsole/components/widgets/map-widget/MapWidget.js.map +0 -1
  1113. package/dist/bigconsole/components/widgets/map-widget/index.d.ts.map +0 -1
  1114. package/dist/bigconsole/components/widgets/metric-card/ComparisonBadge.d.ts.map +0 -1
  1115. package/dist/bigconsole/components/widgets/metric-card/ComparisonBadge.js.map +0 -1
  1116. package/dist/bigconsole/components/widgets/metric-card/MetricCardConfig.d.ts.map +0 -1
  1117. package/dist/bigconsole/components/widgets/metric-card/MetricCardConfig.js.map +0 -1
  1118. package/dist/bigconsole/components/widgets/metric-card/MetricCardWidget.d.ts.map +0 -1
  1119. package/dist/bigconsole/components/widgets/metric-card/MetricCardWidget.js.map +0 -1
  1120. package/dist/bigconsole/components/widgets/metric-card/SparklineChart.d.ts.map +0 -1
  1121. package/dist/bigconsole/components/widgets/metric-card/SparklineChart.js.map +0 -1
  1122. package/dist/bigconsole/components/widgets/metric-card/TrendIndicator.d.ts.map +0 -1
  1123. package/dist/bigconsole/components/widgets/metric-card/TrendIndicator.js.map +0 -1
  1124. package/dist/bigconsole/components/widgets/metric-card/index.d.ts.map +0 -1
  1125. package/dist/bigconsole/components/widgets/pivot-table/PivotTableWidget.d.ts.map +0 -1
  1126. package/dist/bigconsole/components/widgets/pivot-table/PivotTableWidget.js.map +0 -1
  1127. package/dist/bigconsole/components/widgets/pivot-table/index.d.ts.map +0 -1
  1128. package/dist/bigconsole/components/widgets/progress/ProgressBar.d.ts.map +0 -1
  1129. package/dist/bigconsole/components/widgets/progress/ProgressBar.js.map +0 -1
  1130. package/dist/bigconsole/components/widgets/progress/ProgressConfig.d.ts.map +0 -1
  1131. package/dist/bigconsole/components/widgets/progress/ProgressConfig.js.map +0 -1
  1132. package/dist/bigconsole/components/widgets/progress/ProgressWidget.d.ts.map +0 -1
  1133. package/dist/bigconsole/components/widgets/progress/ProgressWidget.js.map +0 -1
  1134. package/dist/bigconsole/components/widgets/progress/index.d.ts.map +0 -1
  1135. package/dist/bigconsole/components/widgets/retention/RetentionWidget.d.ts.map +0 -1
  1136. package/dist/bigconsole/components/widgets/retention/RetentionWidget.js.map +0 -1
  1137. package/dist/bigconsole/components/widgets/retention/index.d.ts.map +0 -1
  1138. package/dist/bigconsole/components/widgets/states/EmptyState.d.ts.map +0 -1
  1139. package/dist/bigconsole/components/widgets/states/EmptyState.js.map +0 -1
  1140. package/dist/bigconsole/components/widgets/states/ErrorState.d.ts.map +0 -1
  1141. package/dist/bigconsole/components/widgets/states/ErrorState.js.map +0 -1
  1142. package/dist/bigconsole/components/widgets/states/LoadingState.d.ts.map +0 -1
  1143. package/dist/bigconsole/components/widgets/states/LoadingState.js.map +0 -1
  1144. package/dist/bigconsole/components/widgets/states/index.d.ts.map +0 -1
  1145. package/dist/bigconsole/components/widgets/table/TableCell.d.ts.map +0 -1
  1146. package/dist/bigconsole/components/widgets/table/TableCell.js.map +0 -1
  1147. package/dist/bigconsole/components/widgets/table/TableConfig.d.ts.map +0 -1
  1148. package/dist/bigconsole/components/widgets/table/TableConfig.js.map +0 -1
  1149. package/dist/bigconsole/components/widgets/table/TableHeader.d.ts.map +0 -1
  1150. package/dist/bigconsole/components/widgets/table/TableHeader.js.map +0 -1
  1151. package/dist/bigconsole/components/widgets/table/TablePagination.d.ts.map +0 -1
  1152. package/dist/bigconsole/components/widgets/table/TablePagination.js.map +0 -1
  1153. package/dist/bigconsole/components/widgets/table/TableWidget.d.ts.map +0 -1
  1154. package/dist/bigconsole/components/widgets/table/TableWidget.js.map +0 -1
  1155. package/dist/bigconsole/components/widgets/table/cellLink.d.ts.map +0 -1
  1156. package/dist/bigconsole/components/widgets/table/cellLink.js.map +0 -1
  1157. package/dist/bigconsole/components/widgets/table/index.d.ts.map +0 -1
  1158. package/dist/bigconsole/components/widgets/text-widget/TextWidget.d.ts.map +0 -1
  1159. package/dist/bigconsole/components/widgets/text-widget/TextWidget.js.map +0 -1
  1160. package/dist/bigconsole/components/widgets/text-widget/index.d.ts.map +0 -1
  1161. package/dist/bigconsole/components/widgets/text-widget/textData.d.ts.map +0 -1
  1162. package/dist/bigconsole/components/widgets/text-widget/textData.js.map +0 -1
  1163. package/dist/bigconsole/components/widgets/timeline/TimelineWidget.d.ts.map +0 -1
  1164. package/dist/bigconsole/components/widgets/timeline/TimelineWidget.js.map +0 -1
  1165. package/dist/bigconsole/components/widgets/timeline/index.d.ts.map +0 -1
  1166. package/dist/bigconsole/components/widgets/utils/conditionalFormat.d.ts.map +0 -1
  1167. package/dist/bigconsole/components/widgets/utils/conditionalFormat.js.map +0 -1
  1168. package/dist/bigconsole/components/widgets/utils/inferFields.d.ts.map +0 -1
  1169. package/dist/bigconsole/components/widgets/utils/inferFields.js.map +0 -1
  1170. package/dist/bigconsole/components/widgets/utils/targetProgress.d.ts.map +0 -1
  1171. package/dist/bigconsole/components/widgets/utils/targetProgress.js.map +0 -1
  1172. package/dist/bigconsole/components/widgets/utils/translate.d.ts.map +0 -1
  1173. package/dist/bigconsole/components/widgets/utils/translate.js.map +0 -1
  1174. package/dist/bigconsole/components/widgets/webhook-config/WebhookConfigPanel.d.ts.map +0 -1
  1175. package/dist/bigconsole/components/widgets/webhook-config/WebhookConfigPanel.js.map +0 -1
  1176. package/dist/bigconsole/components/widgets/webhook-config/index.d.ts.map +0 -1
  1177. package/dist/bigconsole/components/widgets/widget-actions/WidgetActions.d.ts.map +0 -1
  1178. package/dist/bigconsole/components/widgets/widget-actions/WidgetActions.js.map +0 -1
  1179. package/dist/bigconsole/components/widgets/widget-actions/index.d.ts.map +0 -1
  1180. package/dist/bigconsole/components/workflow/DataSinkMultiSelector.d.ts.map +0 -1
  1181. package/dist/bigconsole/components/workflow/WorkflowCard.d.ts.map +0 -1
  1182. package/dist/bigconsole/components/workflow/WorkflowCard.js.map +0 -1
  1183. package/dist/bigconsole/components/workflow/WorkflowDeleteDialog.d.ts.map +0 -1
  1184. package/dist/bigconsole/components/workflow/WorkflowDeleteDialog.js.map +0 -1
  1185. package/dist/bigconsole/components/workflow/WorkflowDesignPreview.d.ts.map +0 -1
  1186. package/dist/bigconsole/components/workflow/WorkflowDesignPreview.js.map +0 -1
  1187. package/dist/bigconsole/components/workflow/WorkflowOpenGuard.d.ts.map +0 -1
  1188. package/dist/bigconsole/components/workflow/WorkflowOpenGuard.js.map +0 -1
  1189. package/dist/bigconsole/components/workflow/WorkflowSinkLinkForm.d.ts.map +0 -1
  1190. package/dist/bigconsole/components/workflow/WorkflowSinkLinkForm.js.map +0 -1
  1191. package/dist/bigconsole/components/workflow/WorkflowStatusBadge.d.ts.map +0 -1
  1192. package/dist/bigconsole/components/workflow/WorkflowStatusBadge.js.map +0 -1
  1193. package/dist/bigconsole/components/workflow/index.d.ts.map +0 -1
  1194. package/dist/bigconsole/constants/backendErrors.d.ts.map +0 -1
  1195. package/dist/bigconsole/constants/backendErrors.js.map +0 -1
  1196. package/dist/bigconsole/constants.d.ts.map +0 -1
  1197. package/dist/bigconsole/constants.js.map +0 -1
  1198. package/dist/bigconsole/context/BigConsoleContext.d.ts.map +0 -1
  1199. package/dist/bigconsole/context/BigConsoleContext.js.map +0 -1
  1200. package/dist/bigconsole/context/index.d.ts.map +0 -1
  1201. package/dist/bigconsole/contexts/CrossFilterContext.d.ts.map +0 -1
  1202. package/dist/bigconsole/contexts/CrossFilterContext.js.map +0 -1
  1203. package/dist/bigconsole/contexts/NavigationContext.d.ts.map +0 -1
  1204. package/dist/bigconsole/contexts/NavigationContext.js.map +0 -1
  1205. package/dist/bigconsole/contexts/index.d.ts.map +0 -1
  1206. package/dist/bigconsole/customWidget/CustomWidgetBuilderSheet.d.ts.map +0 -1
  1207. package/dist/bigconsole/customWidget/CustomWidgetBuilderSheet.js.map +0 -1
  1208. package/dist/bigconsole/customWidget/CustomWidgetProposalPanel.d.ts.map +0 -1
  1209. package/dist/bigconsole/customWidget/CustomWidgetProposalPanel.js.map +0 -1
  1210. package/dist/bigconsole/customWidget/index.d.ts.map +0 -1
  1211. package/dist/bigconsole/customWidget/proposalContract.d.ts.map +0 -1
  1212. package/dist/bigconsole/customWidget/proposalContract.js.map +0 -1
  1213. package/dist/bigconsole/customWidget/proposalSource.d.ts.map +0 -1
  1214. package/dist/bigconsole/customWidget/proposalSource.js.map +0 -1
  1215. package/dist/bigconsole/graphql/apollo-compat.d.ts.map +0 -1
  1216. package/dist/bigconsole/graphql/storeTemplates.d.ts.map +0 -1
  1217. package/dist/bigconsole/graphql/storeTemplates.js.map +0 -1
  1218. package/dist/bigconsole/hooks/index.d.ts.map +0 -1
  1219. package/dist/bigconsole/hooks/useActivePage.d.ts.map +0 -1
  1220. package/dist/bigconsole/hooks/useActivePage.js.map +0 -1
  1221. package/dist/bigconsole/hooks/useAutoRefresh.d.ts.map +0 -1
  1222. package/dist/bigconsole/hooks/useAutoRefresh.js.map +0 -1
  1223. package/dist/bigconsole/hooks/useBigConsoleAnalytics.d.ts.map +0 -1
  1224. package/dist/bigconsole/hooks/useBigConsoleAnalytics.js.map +0 -1
  1225. package/dist/bigconsole/hooks/useBigConsoleSettings.d.ts.map +0 -1
  1226. package/dist/bigconsole/hooks/useBigConsoleSettings.js.map +0 -1
  1227. package/dist/bigconsole/hooks/useCrossFilter.d.ts.map +0 -1
  1228. package/dist/bigconsole/hooks/useCrossFilter.js.map +0 -1
  1229. package/dist/bigconsole/hooks/useDashboardEmbedPolicy.d.ts.map +0 -1
  1230. package/dist/bigconsole/hooks/useDashboardEmbedPolicy.js.map +0 -1
  1231. package/dist/bigconsole/hooks/useDashboardImageExport.d.ts.map +0 -1
  1232. package/dist/bigconsole/hooks/useDashboardImageExport.js.map +0 -1
  1233. package/dist/bigconsole/hooks/useDashboardLayoutBaseline.d.ts.map +0 -1
  1234. package/dist/bigconsole/hooks/useDashboardLayoutBaseline.js.map +0 -1
  1235. package/dist/bigconsole/hooks/useDashboardOperations.d.ts.map +0 -1
  1236. package/dist/bigconsole/hooks/useDashboardOperations.js.map +0 -1
  1237. package/dist/bigconsole/hooks/useDashboardSharing.d.ts.map +0 -1
  1238. package/dist/bigconsole/hooks/useDashboardSharing.js.map +0 -1
  1239. package/dist/bigconsole/hooks/useDashboardTemplates.d.ts.map +0 -1
  1240. package/dist/bigconsole/hooks/useDashboardViews.d.ts.map +0 -1
  1241. package/dist/bigconsole/hooks/useDashboardViews.js.map +0 -1
  1242. package/dist/bigconsole/hooks/useDataSinkAlerts.d.ts.map +0 -1
  1243. package/dist/bigconsole/hooks/useDataSinkAlerts.js.map +0 -1
  1244. package/dist/bigconsole/hooks/useDataSinkOperations.d.ts.map +0 -1
  1245. package/dist/bigconsole/hooks/useDataSinkOperations.js.map +0 -1
  1246. package/dist/bigconsole/hooks/useDataSinkSubscription.d.ts.map +0 -1
  1247. package/dist/bigconsole/hooks/useDataSinkSubscription.js.map +0 -1
  1248. package/dist/bigconsole/hooks/useDrilldown.d.ts.map +0 -1
  1249. package/dist/bigconsole/hooks/useDrilldown.js.map +0 -1
  1250. package/dist/bigconsole/hooks/useDrilldownOperations.d.ts.map +0 -1
  1251. package/dist/bigconsole/hooks/useDrilldownOperations.js.map +0 -1
  1252. package/dist/bigconsole/hooks/useEventLogs.d.ts.map +0 -1
  1253. package/dist/bigconsole/hooks/useEventLogs.js.map +0 -1
  1254. package/dist/bigconsole/hooks/useEventWebhooks.d.ts.map +0 -1
  1255. package/dist/bigconsole/hooks/useEventWebhooks.js.map +0 -1
  1256. package/dist/bigconsole/hooks/useExportDashboard.d.ts.map +0 -1
  1257. package/dist/bigconsole/hooks/useExportDashboard.js.map +0 -1
  1258. package/dist/bigconsole/hooks/useExportDataSink.d.ts.map +0 -1
  1259. package/dist/bigconsole/hooks/useExportDataSink.js.map +0 -1
  1260. package/dist/bigconsole/hooks/useExportParser.d.ts.map +0 -1
  1261. package/dist/bigconsole/hooks/useExportParser.js.map +0 -1
  1262. package/dist/bigconsole/hooks/useFilterPresets.d.ts.map +0 -1
  1263. package/dist/bigconsole/hooks/useFilterPresets.js.map +0 -1
  1264. package/dist/bigconsole/hooks/useFilterUrlSync.d.ts.map +0 -1
  1265. package/dist/bigconsole/hooks/useFilterUrlSync.js.map +0 -1
  1266. package/dist/bigconsole/hooks/useGlobalFilters.d.ts.map +0 -1
  1267. package/dist/bigconsole/hooks/useGlobalFilters.js.map +0 -1
  1268. package/dist/bigconsole/hooks/useImportDashboard.d.ts.map +0 -1
  1269. package/dist/bigconsole/hooks/useImportDashboard.js.map +0 -1
  1270. package/dist/bigconsole/hooks/useImportDataSink.d.ts.map +0 -1
  1271. package/dist/bigconsole/hooks/useImportDataSink.js.map +0 -1
  1272. package/dist/bigconsole/hooks/useImportParser.d.ts.map +0 -1
  1273. package/dist/bigconsole/hooks/useImportParser.js.map +0 -1
  1274. package/dist/bigconsole/hooks/useInstalledWidgets.d.ts.map +0 -1
  1275. package/dist/bigconsole/hooks/useInstalledWidgets.js.map +0 -1
  1276. package/dist/bigconsole/hooks/useModalFocusTrap.d.ts.map +0 -1
  1277. package/dist/bigconsole/hooks/useModalFocusTrap.js.map +0 -1
  1278. package/dist/bigconsole/hooks/usePageOperations.d.ts.map +0 -1
  1279. package/dist/bigconsole/hooks/usePageOperations.js.map +0 -1
  1280. package/dist/bigconsole/hooks/useParserOperations.d.ts.map +0 -1
  1281. package/dist/bigconsole/hooks/useParserOperations.js.map +0 -1
  1282. package/dist/bigconsole/hooks/usePipelineOperations.d.ts.map +0 -1
  1283. package/dist/bigconsole/hooks/usePipelineOperations.js.map +0 -1
  1284. package/dist/bigconsole/hooks/useShareRecipients.d.ts.map +0 -1
  1285. package/dist/bigconsole/hooks/useShareRecipients.js.map +0 -1
  1286. package/dist/bigconsole/hooks/useStoreDashboardTemplates.d.ts.map +0 -1
  1287. package/dist/bigconsole/hooks/useStoreDashboardTemplates.js.map +0 -1
  1288. package/dist/bigconsole/hooks/useWidgetActions.d.ts.map +0 -1
  1289. package/dist/bigconsole/hooks/useWidgetActions.js.map +0 -1
  1290. package/dist/bigconsole/hooks/useWidgetCatalog.d.ts.map +0 -1
  1291. package/dist/bigconsole/hooks/useWidgetCatalog.js.map +0 -1
  1292. package/dist/bigconsole/hooks/useWidgetComments.d.ts.map +0 -1
  1293. package/dist/bigconsole/hooks/useWidgetComments.js.map +0 -1
  1294. package/dist/bigconsole/hooks/useWidgetConfigPersist.d.ts.map +0 -1
  1295. package/dist/bigconsole/hooks/useWidgetConfigPersist.js.map +0 -1
  1296. package/dist/bigconsole/hooks/useWidgetData.d.ts.map +0 -1
  1297. package/dist/bigconsole/hooks/useWidgetData.js.map +0 -1
  1298. package/dist/bigconsole/hooks/useWidgetEvents.d.ts.map +0 -1
  1299. package/dist/bigconsole/hooks/useWidgetEvents.js.map +0 -1
  1300. package/dist/bigconsole/hooks/useWidgetExport.d.ts.map +0 -1
  1301. package/dist/bigconsole/hooks/useWidgetExport.js.map +0 -1
  1302. package/dist/bigconsole/hooks/useWidgetOperations.d.ts.map +0 -1
  1303. package/dist/bigconsole/hooks/useWidgetOperations.js.map +0 -1
  1304. package/dist/bigconsole/hooks/useWorkflowOperations.d.ts.map +0 -1
  1305. package/dist/bigconsole/hooks/useWorkflowOperations.js.map +0 -1
  1306. package/dist/bigconsole/index.d.ts.map +0 -1
  1307. package/dist/bigconsole/modules/dashboard/index.d.ts.map +0 -1
  1308. package/dist/bigconsole/modules/index.d.ts.map +0 -1
  1309. package/dist/bigconsole/modules/renderer/index.d.ts.map +0 -1
  1310. package/dist/bigconsole/modules/widget/index.d.ts.map +0 -1
  1311. package/dist/bigconsole/pages/AdminPage.d.ts.map +0 -1
  1312. package/dist/bigconsole/pages/AdminPage.js.map +0 -1
  1313. package/dist/bigconsole/pages/DashboardBuilderPage.d.ts.map +0 -1
  1314. package/dist/bigconsole/pages/DashboardBuilderPage.js.map +0 -1
  1315. package/dist/bigconsole/pages/DashboardViewPage.d.ts.map +0 -1
  1316. package/dist/bigconsole/pages/DashboardViewPage.js.map +0 -1
  1317. package/dist/bigconsole/pages/DashboardsPage.d.ts.map +0 -1
  1318. package/dist/bigconsole/pages/DashboardsPage.js.map +0 -1
  1319. package/dist/bigconsole/pages/DataParsersPage.d.ts.map +0 -1
  1320. package/dist/bigconsole/pages/DataParsersPage.js.map +0 -1
  1321. package/dist/bigconsole/pages/DataSinkAlertsPage.d.ts.map +0 -1
  1322. package/dist/bigconsole/pages/DataSinkAlertsPage.js.map +0 -1
  1323. package/dist/bigconsole/pages/DataSinkBuilderPage.d.ts.map +0 -1
  1324. package/dist/bigconsole/pages/DataSinkBuilderPage.js.map +0 -1
  1325. package/dist/bigconsole/pages/DataSinkViewPage.d.ts.map +0 -1
  1326. package/dist/bigconsole/pages/DataSinkViewPage.js.map +0 -1
  1327. package/dist/bigconsole/pages/DataSinksPage.d.ts.map +0 -1
  1328. package/dist/bigconsole/pages/DataSinksPage.js.map +0 -1
  1329. package/dist/bigconsole/pages/DataSourcesPage.d.ts.map +0 -1
  1330. package/dist/bigconsole/pages/DataSourcesPage.js.map +0 -1
  1331. package/dist/bigconsole/pages/InsightsPage.d.ts.map +0 -1
  1332. package/dist/bigconsole/pages/InsightsPage.js.map +0 -1
  1333. package/dist/bigconsole/pages/OverviewPage.d.ts.map +0 -1
  1334. package/dist/bigconsole/pages/OverviewPage.js.map +0 -1
  1335. package/dist/bigconsole/pages/ParserBuilderPage.d.ts.map +0 -1
  1336. package/dist/bigconsole/pages/ParserBuilderPage.js.map +0 -1
  1337. package/dist/bigconsole/pages/ParserViewPage.d.ts.map +0 -1
  1338. package/dist/bigconsole/pages/ParserViewPage.js.map +0 -1
  1339. package/dist/bigconsole/pages/PipelineBuilderPage.d.ts.map +0 -1
  1340. package/dist/bigconsole/pages/PipelineBuilderPage.js.map +0 -1
  1341. package/dist/bigconsole/pages/PipelineViewPage.d.ts.map +0 -1
  1342. package/dist/bigconsole/pages/PipelineViewPage.js.map +0 -1
  1343. package/dist/bigconsole/pages/PipelinesPage.d.ts.map +0 -1
  1344. package/dist/bigconsole/pages/PipelinesPage.js.map +0 -1
  1345. package/dist/bigconsole/pages/SettingsPage.d.ts.map +0 -1
  1346. package/dist/bigconsole/pages/SettingsPage.js.map +0 -1
  1347. package/dist/bigconsole/pages/WidgetDemoPage.d.ts.map +0 -1
  1348. package/dist/bigconsole/pages/WidgetDemoPage.js.map +0 -1
  1349. package/dist/bigconsole/pages/WorkflowViewPage.d.ts.map +0 -1
  1350. package/dist/bigconsole/pages/WorkflowViewPage.js.map +0 -1
  1351. package/dist/bigconsole/pages/WorkflowsPage.d.ts.map +0 -1
  1352. package/dist/bigconsole/pages/WorkflowsPage.js.map +0 -1
  1353. package/dist/bigconsole/pages/index.d.ts.map +0 -1
  1354. package/dist/bigconsole/providers/BigConsoleQuotaProvider.d.ts.map +0 -1
  1355. package/dist/bigconsole/providers/BigConsoleQuotaProvider.js.map +0 -1
  1356. package/dist/bigconsole/renderers/adapters/AdaptiveCardRenderer.d.ts.map +0 -1
  1357. package/dist/bigconsole/renderers/adapters/AdaptiveCardRenderer.js.map +0 -1
  1358. package/dist/bigconsole/renderers/adapters/BigConsoleRenderer.d.ts.map +0 -1
  1359. package/dist/bigconsole/renderers/adapters/BigConsoleRenderer.js.map +0 -1
  1360. package/dist/bigconsole/renderers/adapters/BlockKitRenderer.d.ts.map +0 -1
  1361. package/dist/bigconsole/renderers/adapters/BlockKitRenderer.js.map +0 -1
  1362. package/dist/bigconsole/renderers/adapters/CustomRenderer.d.ts.map +0 -1
  1363. package/dist/bigconsole/renderers/adapters/CustomRenderer.js.map +0 -1
  1364. package/dist/bigconsole/renderers/adapters/index.d.ts.map +0 -1
  1365. package/dist/bigconsole/renderers/factory/WidgetRendererFactory.d.ts.map +0 -1
  1366. package/dist/bigconsole/renderers/factory/WidgetRendererFactory.js.map +0 -1
  1367. package/dist/bigconsole/renderers/index.d.ts.map +0 -1
  1368. package/dist/bigconsole/renderers/registry/RendererRegistry.d.ts.map +0 -1
  1369. package/dist/bigconsole/renderers/registry/RendererRegistry.js.map +0 -1
  1370. package/dist/bigconsole/renderers/types/index.d.ts.map +0 -1
  1371. package/dist/bigconsole/renderers/types/renderer.d.ts.map +0 -1
  1372. package/dist/bigconsole/store/dashboardStore.d.ts.map +0 -1
  1373. package/dist/bigconsole/store/dashboardStore.js.map +0 -1
  1374. package/dist/bigconsole/store/dataSinkStore.d.ts.map +0 -1
  1375. package/dist/bigconsole/store/dataSinkStore.js.map +0 -1
  1376. package/dist/bigconsole/store/drilldownStore.d.ts.map +0 -1
  1377. package/dist/bigconsole/store/drilldownStore.js.map +0 -1
  1378. package/dist/bigconsole/store/index.d.ts.map +0 -1
  1379. package/dist/bigconsole/store/parserStore.d.ts.map +0 -1
  1380. package/dist/bigconsole/store/parserStore.js.map +0 -1
  1381. package/dist/bigconsole/store/pipelineStore.d.ts.map +0 -1
  1382. package/dist/bigconsole/store/pipelineStore.js.map +0 -1
  1383. package/dist/bigconsole/store/widgetStore.d.ts.map +0 -1
  1384. package/dist/bigconsole/store/widgetStore.js.map +0 -1
  1385. package/dist/bigconsole/store/workflowStore.d.ts.map +0 -1
  1386. package/dist/bigconsole/store/workflowStore.js.map +0 -1
  1387. package/dist/bigconsole/types/index.d.ts.map +0 -1
  1388. package/dist/bigconsole/utils/alertRules.d.ts.map +0 -1
  1389. package/dist/bigconsole/utils/alertRules.js.map +0 -1
  1390. package/dist/bigconsole/utils/backendError.d.ts.map +0 -1
  1391. package/dist/bigconsole/utils/backendError.js.map +0 -1
  1392. package/dist/bigconsole/utils/createDialogParam.d.ts.map +0 -1
  1393. package/dist/bigconsole/utils/createDialogParam.js.map +0 -1
  1394. package/dist/bigconsole/utils/csv.d.ts.map +0 -1
  1395. package/dist/bigconsole/utils/csv.js.map +0 -1
  1396. package/dist/bigconsole/utils/dashboardTemplateContent.d.ts.map +0 -1
  1397. package/dist/bigconsole/utils/dashboardTemplateContent.js.map +0 -1
  1398. package/dist/bigconsole/utils/drilldownParams.d.ts.map +0 -1
  1399. package/dist/bigconsole/utils/drilldownParams.js.map +0 -1
  1400. package/dist/bigconsole/utils/formDirty.d.ts.map +0 -1
  1401. package/dist/bigconsole/utils/formDirty.js.map +0 -1
  1402. package/dist/bigconsole/utils/format.d.ts.map +0 -1
  1403. package/dist/bigconsole/utils/format.js.map +0 -1
  1404. package/dist/bigconsole/utils/index.d.ts.map +0 -1
  1405. package/dist/bigconsole/utils/layoutBaseline.d.ts.map +0 -1
  1406. package/dist/bigconsole/utils/layoutBaseline.js.map +0 -1
  1407. package/dist/bigconsole/utils/quota.d.ts.map +0 -1
  1408. package/dist/bigconsole/utils/quota.js.map +0 -1
  1409. package/dist/bigconsole/utils/semanticTokens.d.ts.map +0 -1
  1410. package/dist/bigconsole/utils/semanticTokens.js.map +0 -1
  1411. package/dist/bigconsole/utils/templateInstallInputs.d.ts.map +0 -1
  1412. package/dist/bigconsole/utils/templateInstallInputs.js.map +0 -1
  1413. package/dist/bigconsole/utils/widgetBinding.d.ts.map +0 -1
  1414. package/dist/bigconsole/utils/widgetBinding.js.map +0 -1
  1415. package/dist/bigconsole/utils/widgetPositioning.d.ts.map +0 -1
  1416. package/dist/bigconsole/utils/widgetPositioning.js.map +0 -1
  1417. package/dist/bigconsole/utils/widgetTypeMapping.d.ts.map +0 -1
  1418. package/dist/bigconsole/utils/widgetTypeMapping.js.map +0 -1
  1419. package/dist/bigconsole/workflowOpen.d.ts.map +0 -1
  1420. package/dist/bigconsole/workflowOpen.js.map +0 -1
  1421. package/dist/constants/permissions.d.ts.map +0 -1
  1422. package/dist/constants/permissions.js.map +0 -1
  1423. package/dist/generated/global-operations.d.ts.map +0 -1
  1424. package/dist/generated/global-operations.js.map +0 -1
  1425. package/dist/generated/global-types.d.ts.map +0 -1
  1426. package/dist/generated/wspace-operations.d.ts.map +0 -1
  1427. package/dist/generated/wspace-operations.js.map +0 -1
  1428. package/dist/generated/wspace-types.d.ts.map +0 -1
  1429. package/dist/generated/wspace-types.js.map +0 -1
  1430. package/dist/index.d.ts.map +0 -1
  1431. package/dist/node_modules/@e965/xlsx/xlsx.js.map +0 -1
  1432. package/dist/node_modules/pdfjs-dist/build/pdf.js.map +0 -1
  1433. package/dist/shared/hooks/useTr.d.ts.map +0 -1
  1434. package/dist/shared/hooks/useTr.js.map +0 -1
  1435. package/dist/stories/DashboardGuide.stories.d.ts +0 -15
  1436. package/dist/stories/DashboardGuide.stories.d.ts.map +0 -1
  1437. package/dist/stories/DataSinkStatusBadge.stories.d.ts +0 -12
  1438. package/dist/stories/DataSinkStatusBadge.stories.d.ts.map +0 -1
  1439. package/dist/stories/GaugeWidget.stories.d.ts +0 -58
  1440. package/dist/stories/GaugeWidget.stories.d.ts.map +0 -1
  1441. package/dist/stories/KPIComparisonWidget.stories.d.ts +0 -76
  1442. package/dist/stories/KPIComparisonWidget.stories.d.ts.map +0 -1
  1443. package/dist/stories/LiveCanvasToggle.stories.d.ts +0 -9
  1444. package/dist/stories/LiveCanvasToggle.stories.d.ts.map +0 -1
  1445. package/dist/stories/MetricCardWidget.stories.d.ts +0 -88
  1446. package/dist/stories/MetricCardWidget.stories.d.ts.map +0 -1
  1447. package/dist/stories/ProgressWidget.stories.d.ts +0 -48
  1448. package/dist/stories/ProgressWidget.stories.d.ts.map +0 -1
  1449. package/dist/stories/SetupStateBadge.stories.d.ts +0 -12
  1450. package/dist/stories/SetupStateBadge.stories.d.ts.map +0 -1
  1451. package/dist/translations/en.d.ts.map +0 -1
  1452. package/dist/utils/nativeBridge.d.ts.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"previewShared.js","names":[],"sources":["../../../../src/bigconsole/components/preview/previewShared.tsx"],"sourcesContent":["/**\n * What is still BigConsole's about the AI preview surfaces.\n *\n * ★★★ THE SHELL, DIVIDERS AND STEP RAIL HAVE MOVED TO fe-libs\n * (`AssistantEntityPreview` / `AssistantStepRail`). They existed here so the\n * full panel and the mini panel could not drift apart; the shared component now\n * guarantees that for both, and for every other product that adopts it.\n *\n * What remains is genuinely local: BigConsole's relationship to the assistant\n * DOCK, and how it words a relative timestamp.\n *\n * Nothing here touches Apollo, React Query, BigConsole context — or, since BC4,\n * the DOM: the dock clearance is a CSS custom property fe-libs publishes, so\n * what is left is one constant plus formatting, which is why the mini panel can\n * live in the app shell without dragging the data layer along.\n */\nimport { useEffect, useState } from 'react';\n\nimport type { AssistantEntityPreviewProps } from '@burdenoff/fe-libs/shared/assistant';\n\nimport type { PreviewStepKey } from '../../assistant/assistantRunStore';\n\n/** The `t` both panels already hold — accepted rather than imported, so this\n * file keeps no provider requirement of its own. */\ntype Translate = (key: string, fallback: string, params?: Record<string, string | number>) => string;\n\n/**\n * \"just now\" / \"40s ago\" / \"12m ago\" / \"3h ago\".\n *\n * ★★ TRANSLATED, and it now has an hour bucket. It used to return English in\n * all three locales (en, hi, ta), and a panel left open past an hour read \"240m ago\" rather\n * than \"4h ago\" — both of which were only visible on the surface that outlives\n * a build, which is exactly the one people leave sitting there.\n */\nexport function formatAgo(seconds: number, t: Translate): string {\n if (seconds < 5) return t('bigconsole.widget.aiPreview.agoJustNow', 'just now');\n if (seconds < 60) {\n return t('bigconsole.widget.aiPreview.agoSeconds', '{{n}}s ago', { n: seconds });\n }\n if (seconds < 3600) {\n return t('bigconsole.widget.aiPreview.agoMinutes', '{{n}}m ago', { n: Math.floor(seconds / 60) });\n }\n // ★ `{{n}}`, not `{n}` — fe-libs' single-brace interpolation was broken until\n // 2026.910.7 and shipped raw braces to users across the fleet. Double braces\n // are what this repo already uses (see `…aiPreviewMini.linkReady`).\n return t('bigconsole.widget.aiPreview.agoHours', '{{n}}h ago', { n: Math.floor(seconds / 3600) });\n}\n\n/**\n * Clearance for the assistant dock, as a CSS length.\n *\n * ★★★ THIS REPLACED A 500ms `querySelector` POLL (BC4, BOFF-7337). The old hook\n * measured `[data-testid=\"assistant-widget-window\"][data-layout=\"sidebar\"]` on an\n * interval because the legacy widget lived in fe-libs, was mounted by the app\n * shell, and emitted nothing when it opened or closed — reading the DOM really\n * was the only signal available.\n *\n * The shared overlay publishes its width instead. fe-libs sets\n * `--assistant-dock-width` on `<html>` from\n * `publishedAssistantDockWidth({ isOpen, docked, isDesktop })` — 440px only when\n * the panel is open AND docked AND the viewport is at least 640px — and REMOVES\n * the property on unmount.\n *\n * ★★★ THE FLOATING PANEL NEEDS CLEARANCE TOO (BOFF-7799, fe-libs 2026.930.3).\n * The dock width is `0px` while the panel FLOATS, which is the default, so\n * reading it alone left the right 45 % of the preview (its close button, its\n * \"Live · updated\" status and the tabs' Open buttons) under the open chat.\n * fe-libs now also publishes `--assistant-panel-inset` from\n * `publishedAssistantPanelInset`: 440px docked, 544px floating (the 520px\n * window plus its 24px right gap), and `0px` closed or below 640px, where the\n * panel is a bottom sheet. It is read FIRST, with the dock width as the fallback\n * for an fe-libs that does not publish it, and `0px` after that for a host with\n * no overlay mounted at all.\n *\n * ★★★ THE FALLBACK FAILS OPEN, SO THE VERSIONS ARE COUPLED. A host shell that\n * pins this package but still mounts the LEGACY `AssistantWidget` publishes no\n * variable at all, this resolves to `0px`, and the preview renders underneath a\n * fixed 440px dock where tabs and Open buttons silently stop taking clicks.\n * Nothing throws and no test fails. bigconsole-app therefore bumps this\n * dependency and mounts `AssistantOverlay` in the SAME commit.\n *\n * ★★ A STRING, NOT A HOOK. It needs no React context and no provider ancestry —\n * which matters because the mini panel is mounted by the app shell, outside the\n * assistant's own tree — and the browser recomputes the margin on open/close\n * with no re-render at all.\n *\n * ★ APPLIED TWO WAYS, DELIBERATELY. The collapsed bars carry only `px-*`, so\n * they take it as `marginRight` and a closed dock reproduces the old `0`\n * exactly. The open panels carry `mx-4 md:mx-6`, so they take it as\n * `paddingRight` and leave those margins alone: the old\n * `assistantWidth ? assistantWidth + 16 : undefined` fell through to the\n * RESPONSIVE 24px gutter at md when closed, and folding a flat `+ 16px` into a\n * calc would have quietly shrunk it on every desktop width. Padding keeps the\n * closed state pixel-identical and only adds clearance while the panel is open.\n */\nexport const DOCK_CLEARANCE = 'var(--assistant-panel-inset, var(--assistant-dock-width, 0px))';\n\n/**\n * Step labels, reusing the TAB keys.\n *\n * ★★ They used to be English constants in the store (`PREVIEW_STEP_LABEL`), so\n * the rail rendered \"Data Sink / Dashboard / Parser / Widget\" in every locale —\n * directly beside the SAME four names rendered translated as tab labels. The\n * keys already exist and are already seeded; nothing new was needed to fix it.\n *\n * ★ Lives here because BOTH panels render the rail. It was defined twice, which\n * is the exact duplication this migration exists to remove.\n */\nexport const STEP_LABEL: Record<PreviewStepKey, { key: string; fallback: string }> = {\n datasink: { key: 'bigconsole.widget.aiPreview.tab.dataSink', fallback: 'Data Sink' },\n dashboard: { key: 'bigconsole.widget.aiPreview.tab.dashboard', fallback: 'Dashboard' },\n parser: { key: 'bigconsole.widget.aiPreview.tab.parser', fallback: 'Parser' },\n widget: { key: 'bigconsole.widget.aiPreview.tab.widget', fallback: 'Widget' },\n};\n\n/**\n * The shared surface's chrome strings, already translated.\n *\n * ★★ ONE copy, deliberately. BOTH defects this migration produced were the same\n * bug written twice — the failure caption and the reopen clock each had to be\n * fixed in the full panel AND the mini panel — so anything the two pass\n * identically belongs here rather than inlined in each. That is the same reason\n * the shell lived in this file before it moved to fe-libs.\n *\n * ★ Both surfaces use the `aiPreview` namespace, not `aiPreviewMini`: the rail\n * says the same thing wherever it is rendered, and splitting the keys would mean\n * translating \"running\" and \"failed\" twice per locale for no difference.\n *\n * `AssistantEntityPreviewProps['labels']` rather than a hand-written shape, so a\n * new label added upstream is a type error here instead of a silently missing\n * string.\n */\nexport function previewLabels(t: Translate): AssistantEntityPreviewProps['labels'] {\n const buildProgress = t('bigconsole.widget.aiPreview.buildProgress', 'Build progress');\n const skipped = t('bigconsole.widget.aiPreview.stepSkipped', 'skipped');\n return {\n // ★ main named the failure \"Build stopped\" in a hardcoded English <h3>. The\n // shared surface cannot know that word — it takes it as a label — so this\n // both restores the name AND makes it translatable for the first time.\n errorHeading: t('bigconsole.widget.aiPreview.errorHeading', 'Build stopped'),\n steps: buildProgress,\n stepsHeading: buildProgress,\n skipped,\n stepStatus: {\n pending: t('bigconsole.widget.aiPreview.stepPending', 'not started'),\n running: t('bigconsole.widget.aiPreview.stepRunning', 'running'),\n done: t('bigconsole.widget.aiPreview.stepDone', 'completed'),\n failed: t('bigconsole.widget.aiPreview.stepFailed', 'failed'),\n skipped,\n },\n };\n}\n\n/**\n * The status strip both panels hand to the shared surface as `meta`.\n *\n * ★★★ ONE copy, and this one is not a tidiness argument — the SAME DEFECT was\n * written into both panels twice over. The migration changed this chip from\n * `bg-status-success-bg` to `bg-status-success-bgSubtle` in both files, and that\n * utility DOES NOT EXIST: the token is `--color-status-success-bgSubtle` but the\n * Tailwind preset exposes it as `status-success-bg-subtle`. The app shell emits\n * `.bg-status-success-bg-subtle` and never `.bg-status-success-bgSubtle`, so the\n * \"Live\" pill lost its background entirely and became transparent text.\n * Nothing failed: an unknown utility is simply absent from the stylesheet.\n *\n * ★ Fixed with the ARBITRARY-VALUE form, `bg-[var(--color-status-…-bgSubtle)]`,\n * which is what the other ~30 sites in this repo use. It names the token\n * directly, so it cannot be broken by a preset key being spelled differently\n * from the variable — which is the entire mechanism of the bug above.\n *\n * ★★ It also carries the FAILED state, which the caption cannot. The shared\n * surface blanks `caption` whenever `error` is set — deliberately, so a rotating\n * \"Creating…\" cannot sit under a dead run — so a product that wants the failure\n * NAMED (as this one did on main, with \"Stopped\") has to say it somewhere the\n * error does not suppress. `meta` is that place: `PreviewHeader` renders it\n * without consulting `error`.\n *\n * Labels are passed in already translated, so the `t('literal.key', …)` calls\n * stay greppable at each call site and each panel keeps its own namespace.\n */\nexport function PreviewMeta({\n state,\n stateLabel,\n updatedLabel,\n updatedAt,\n ago,\n}: {\n state: 'running' | 'stopped' | 'idle';\n stateLabel: string | null;\n updatedLabel: string;\n /** When the run last changed, or null when there is nothing to age. */\n updatedAt: number | null;\n /** Renders the elapsed seconds — `formatAgo` bound to the caller's `t`. */\n ago: (seconds: number) => string;\n}) {\n /**\n * ★★★ THE CLOCK LIVES HERE, in the one element that displays it.\n *\n * It used to live in each panel, and that made a 1 Hz `setState` on the PANEL\n * — which re-rendered everything below it. `AssistantEntityPreview` calls\n * `activeTab.render()` on every render with no memo, so the Widgets tab's live\n * dashboard and every Recharts widget inside it re-rendered once a second, for\n * as long as the preview stayed open. main did not: its ticker was gated on\n * `isRunning`, so it stopped when the build did. Ungating it to fix the frozen\n * timestamp is right, but it has to cost one <span>, not the whole subtree.\n *\n * ★★ Mounting is also the gate now. The mini panel is mounted on EVERY route\n * and returns null when the full panel is up — but a hook cannot sit below an\n * early return, so its interval ran on every page regardless of whether\n * anything was shown. Owning the timer here means \"not rendered\" is \"not\n * ticking\", by construction rather than by remembering to pass a flag.\n */\n const [now, setNow] = useState(() => Date.now());\n useEffect(() => {\n if (updatedAt === null) return;\n // ★ Re-read on mount so a reopened panel cannot show the previous open's\n // reading for up to a second. See the note on lint in the git history:\n // reading the clock in render is an ESLint error (Date.now is impure).\n setNow(Date.now());\n const id = window.setInterval(() => setNow(Date.now()), 1000);\n return () => window.clearInterval(id);\n }, [updatedAt]);\n\n const agoSeconds = updatedAt === null ? 0 : Math.max(0, Math.floor((now - updatedAt) / 1000));\n\n const chip =\n 'inline-flex items-center gap-1.5 rounded-full px-2 py-0.5 text-[11px] font-semibold uppercase tracking-wide';\n return (\n <span className=\"inline-flex items-center gap-2\" data-testid=\"ai-preview-ago\">\n {state !== 'idle' && stateLabel ? (\n <span\n className={\n state === 'running'\n ? `${chip} bg-[var(--color-status-success-bgSubtle)] text-status-success-text`\n : `${chip} bg-[var(--color-status-error-bgSubtle)] text-status-error-text`\n }\n data-testid={state === 'running' ? 'ai-preview-live' : 'ai-preview-stopped'}\n >\n {state === 'running' ? (\n <span className=\"relative flex size-2\">\n <span className=\"absolute inline-flex size-full rounded-full bg-status-success-text opacity-75 motion-safe:animate-ping\" />\n <span className=\"relative inline-flex size-2 rounded-full bg-status-success-text\" />\n </span>\n ) : (\n /* ★ Still, not pulsing: the ping says \"this is happening now\", which\n is the opposite of what a stopped run means. */\n <span className=\"relative inline-flex size-2 rounded-full bg-status-error-text\" />\n )}\n {stateLabel}\n </span>\n ) : null}\n <span>\n {updatedLabel} {ago(agoSeconds)}\n </span>\n </span>\n );\n}\n"],"mappings":";;;AAkCA,SAAgB,EAAU,GAAiB,GAAsB;AAW/D,QAVI,IAAU,IAAU,EAAE,0CAA0C,WAAW,GAC3E,IAAU,KACL,EAAE,0CAA0C,cAAc,EAAE,GAAG,GAAS,CAAC,GAE9E,IAAU,OACL,EAAE,0CAA0C,cAAc,EAAE,GAAG,KAAK,MAAM,IAAU,GAAG,EAAE,CAAC,GAK5F,EAAE,wCAAwC,cAAc,EAAE,GAAG,KAAK,MAAM,IAAU,KAAK,EAAE,CAAC;;AAkDnG,IAAa,IAAiB,kEAajB,IAAwE;CACnF,UAAU;EAAE,KAAK;EAA4C,UAAU;EAAa;CACpF,WAAW;EAAE,KAAK;EAA6C,UAAU;EAAa;CACtF,QAAQ;EAAE,KAAK;EAA0C,UAAU;EAAU;CAC7E,QAAQ;EAAE,KAAK;EAA0C,UAAU;EAAU;CAC9E;AAmBD,SAAgB,EAAc,GAAqD;CACjF,IAAM,IAAgB,EAAE,6CAA6C,iBAAiB,EAChF,IAAU,EAAE,2CAA2C,UAAU;AACvE,QAAO;EAIL,cAAc,EAAE,4CAA4C,gBAAgB;EAC5E,OAAO;EACP,cAAc;EACd;EACA,YAAY;GACV,SAAS,EAAE,2CAA2C,cAAc;GACpE,SAAS,EAAE,2CAA2C,UAAU;GAChE,MAAM,EAAE,wCAAwC,YAAY;GAC5D,QAAQ,EAAE,0CAA0C,SAAS;GAC7D;GACD;EACF;;AA8BH,SAAgB,EAAY,EAC1B,UACA,eACA,iBACA,cACA,UASC;CAkBD,IAAM,CAAC,GAAK,KAAU,QAAe,KAAK,KAAK,CAAC;AAChD,SAAgB;AACd,MAAI,MAAc,KAAM;AAIxB,IAAO,KAAK,KAAK,CAAC;EAClB,IAAM,IAAK,OAAO,kBAAkB,EAAO,KAAK,KAAK,CAAC,EAAE,IAAK;AAC7D,eAAa,OAAO,cAAc,EAAG;IACpC,CAAC,EAAU,CAAC;CAEf,IAAM,IAAa,MAAc,OAAO,IAAI,KAAK,IAAI,GAAG,KAAK,OAAO,IAAM,KAAa,IAAK,CAAC,EAEvF,IACJ;AACF,QACE,kBAAC,QAAD;EAAM,WAAU;EAAiC,eAAY;YAA7D,CACG,MAAU,UAAU,IACnB,kBAAC,QAAD;GACE,WACE,MAAU,YACN,GAAG,EAAK,uEACR,GAAG,EAAK;GAEd,eAAa,MAAU,YAAY,oBAAoB;aANzD,CAQG,MAAU,YACT,kBAAC,QAAD;IAAM,WAAU;cAAhB,CACE,kBAAC,QAAD,EAAM,WAAU,0GAA2G,CAAA,EAC3H,kBAAC,QAAD,EAAM,WAAU,mEAAoE,CAAA,CAC/E;QAIP,kBAAC,QAAD,EAAM,WAAU,iEAAkE,CAAA,EAEnF,EACI;OACL,MACJ,kBAAC,QAAD,EAAA,UAAA;GACG;GAAa;GAAE,EAAI,EAAW;GAC1B,EAAA,CAAA,CACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ActionConfigDialog.d.ts","sourceRoot":"","sources":["../../../../src/bigconsole/components/widgets/ActionConfigDialog.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,KAAK,EAAE,EAAkE,MAAM,OAAO,CAAC;AAmBhG,OAAO,KAAK,EAAE,YAAY,EAAmC,MAAM,8BAA8B,CAAC;AAGlG,OAAO,EAOL,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACxB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAMxF,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,+EAA+E;IAC/E,cAAc,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAC3C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,qFAAqF;IACrF,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,6EAA6E;IAC7E,MAAM,EAAE,CAAC,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,kBAAkB,GAAG,IAAI,KAAK,IAAI,CAAC;CAC5E;AA4ED,eAAO,MAAM,kBAAkB,EAAE,EAAE,CAAC,uBAAuB,CA0mBzD,CAAC;AAEH,eAAe,kBAAkB,CAAC"}
@@ -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;AAoJhG,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAqWD,eAAO,MAAM,eAAe,EAAE,EAAE,CAAC,oBAAoB,CAglDnD,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 { useUnsavedChanges } from '@burdenoff/fe-libs/shared/hooks';\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 // N3/N4 (BOFF-8060): the panel's own accurate flag, reported to the assistant's leave guard.\n useUnsavedChanges({\n id: 'dashboard-widget-properties',\n label: t('bigconsole.assistant.unsaved.widgetProperties', 'the widget properties'),\n dirty: hasUnsavedChanges,\n });\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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4DA,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,KAAyC;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,EAAO,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;AAEjE,IAAkB;EAChB,IAAI;EACJ,OAAO,EAAE,iDAAiD,wBAAwB;EAClF,OAAO;EACR,CAAC;CAEF,IAAM,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,EAAsB,KAAK,EAIzD,KAAkB,EAAgC,EAAE,CAAC,EAYrD,KAAkB,EAAO,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"}