@burdenoff/microfe-bigconsole 2026.1006.1 → 2026.1007.11

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 (1448) hide show
  1. package/README.md +0 -22
  2. package/dist/bigconsole/AdminRoot.d.ts +1 -0
  3. package/dist/bigconsole/AdminRoot.d.ts.map +1 -0
  4. package/dist/bigconsole/AdminRoot.js +2 -0
  5. package/dist/bigconsole/AdminRoot.js.map +1 -0
  6. package/dist/bigconsole/AdminRoutes.d.ts +1 -0
  7. package/dist/bigconsole/AdminRoutes.d.ts.map +1 -0
  8. package/dist/bigconsole/AdminRoutes.js +2 -0
  9. package/dist/bigconsole/AdminRoutes.js.map +1 -0
  10. package/dist/bigconsole/BigConsoleRoot.d.ts +1 -0
  11. package/dist/bigconsole/BigConsoleRoot.d.ts.map +1 -0
  12. package/dist/bigconsole/BigConsoleRoot.js +84 -88
  13. package/dist/bigconsole/BigConsoleRoot.js.map +1 -0
  14. package/dist/bigconsole/BigConsoleRoutes.d.ts +1 -0
  15. package/dist/bigconsole/BigConsoleRoutes.d.ts.map +1 -0
  16. package/dist/bigconsole/BigConsoleRoutes.js +5 -39
  17. package/dist/bigconsole/BigConsoleRoutes.js.map +1 -0
  18. package/dist/bigconsole/assistant/assistantApi.d.ts +1 -0
  19. package/dist/bigconsole/assistant/assistantApi.d.ts.map +1 -0
  20. package/dist/bigconsole/assistant/assistantApi.js +2 -0
  21. package/dist/bigconsole/assistant/assistantApi.js.map +1 -0
  22. package/dist/bigconsole/assistant/assistantProduct.d.ts +1 -0
  23. package/dist/bigconsole/assistant/assistantProduct.d.ts.map +1 -0
  24. package/dist/bigconsole/assistant/assistantProduct.js +4 -1
  25. package/dist/bigconsole/assistant/assistantProduct.js.map +1 -0
  26. package/dist/bigconsole/assistant/assistantPrompt.d.ts +1 -0
  27. package/dist/bigconsole/assistant/assistantPrompt.d.ts.map +1 -0
  28. package/dist/bigconsole/assistant/assistantPrompt.js +2 -0
  29. package/dist/bigconsole/assistant/assistantPrompt.js.map +1 -0
  30. package/dist/bigconsole/assistant/assistantRunPersistence.d.ts +1 -0
  31. package/dist/bigconsole/assistant/assistantRunPersistence.d.ts.map +1 -0
  32. package/dist/bigconsole/assistant/assistantRunPersistence.js +2 -0
  33. package/dist/bigconsole/assistant/assistantRunPersistence.js.map +1 -0
  34. package/dist/bigconsole/assistant/assistantRunStore.d.ts +1 -0
  35. package/dist/bigconsole/assistant/assistantRunStore.d.ts.map +1 -0
  36. package/dist/bigconsole/assistant/assistantRunStore.js +2 -0
  37. package/dist/bigconsole/assistant/assistantRunStore.js.map +1 -0
  38. package/dist/bigconsole/assistant/assistantRuntime.d.ts +1 -0
  39. package/dist/bigconsole/assistant/assistantRuntime.d.ts.map +1 -0
  40. package/dist/bigconsole/assistant/assistantRuntime.js +2 -0
  41. package/dist/bigconsole/assistant/assistantRuntime.js.map +1 -0
  42. package/dist/bigconsole/assistant/attachmentExtract.d.ts +1 -0
  43. package/dist/bigconsole/assistant/attachmentExtract.d.ts.map +1 -0
  44. package/dist/bigconsole/assistant/attachmentExtract.js +2 -0
  45. package/dist/bigconsole/assistant/attachmentExtract.js.map +1 -0
  46. package/dist/bigconsole/assistant/conversationHistoryApi.d.ts +1 -0
  47. package/dist/bigconsole/assistant/conversationHistoryApi.d.ts.map +1 -0
  48. package/dist/bigconsole/assistant/conversationHistoryApi.js +2 -0
  49. package/dist/bigconsole/assistant/conversationHistoryApi.js.map +1 -0
  50. package/dist/bigconsole/assistant/createSandboxAssistantTransport.d.ts +1 -0
  51. package/dist/bigconsole/assistant/createSandboxAssistantTransport.d.ts.map +1 -0
  52. package/dist/bigconsole/assistant/createSandboxAssistantTransport.js +2 -0
  53. package/dist/bigconsole/assistant/createSandboxAssistantTransport.js.map +1 -0
  54. package/dist/bigconsole/assistant/displayCopy.d.ts +33 -0
  55. package/dist/bigconsole/assistant/displayCopy.d.ts.map +1 -0
  56. package/dist/bigconsole/assistant/index.d.ts +1 -0
  57. package/dist/bigconsole/assistant/index.d.ts.map +1 -0
  58. package/dist/bigconsole/assistant/modes.d.ts +1 -0
  59. package/dist/bigconsole/assistant/modes.d.ts.map +1 -0
  60. package/dist/bigconsole/assistant/modes.js +2 -0
  61. package/dist/bigconsole/assistant/modes.js.map +1 -0
  62. package/dist/bigconsole/assistant/pageContext.d.ts +15 -0
  63. package/dist/bigconsole/assistant/pageContext.d.ts.map +1 -0
  64. package/dist/bigconsole/assistant/pageContext.js +8 -1
  65. package/dist/bigconsole/assistant/pageContext.js.map +1 -0
  66. package/dist/bigconsole/assistant/previewController.d.ts +1 -0
  67. package/dist/bigconsole/assistant/previewController.d.ts.map +1 -0
  68. package/dist/bigconsole/assistant/previewController.js +2 -0
  69. package/dist/bigconsole/assistant/previewController.js.map +1 -0
  70. package/dist/bigconsole/assistant/previewMutationResult.d.ts +1 -0
  71. package/dist/bigconsole/assistant/previewMutationResult.d.ts.map +1 -0
  72. package/dist/bigconsole/assistant/previewMutationResult.js +2 -0
  73. package/dist/bigconsole/assistant/previewMutationResult.js.map +1 -0
  74. package/dist/bigconsole/assistant/previewRunAction.d.ts +1 -0
  75. package/dist/bigconsole/assistant/previewRunAction.d.ts.map +1 -0
  76. package/dist/bigconsole/assistant/previewRunAction.js +2 -0
  77. package/dist/bigconsole/assistant/previewRunAction.js.map +1 -0
  78. package/dist/bigconsole/assistant/product.d.ts +1 -0
  79. package/dist/bigconsole/assistant/product.d.ts.map +1 -0
  80. package/dist/bigconsole/assistant/product.js +2 -0
  81. package/dist/bigconsole/assistant/product.js.map +1 -0
  82. package/dist/bigconsole/assistant/recordAdapters.d.ts +1 -0
  83. package/dist/bigconsole/assistant/recordAdapters.d.ts.map +1 -0
  84. package/dist/bigconsole/assistant/recordAdapters.js +29 -26
  85. package/dist/bigconsole/assistant/recordAdapters.js.map +1 -0
  86. package/dist/bigconsole/assistant/types.d.ts +1 -0
  87. package/dist/bigconsole/assistant/types.d.ts.map +1 -0
  88. package/dist/bigconsole/assistant/useAssistantRunWorkspace.d.ts +1 -0
  89. package/dist/bigconsole/assistant/useAssistantRunWorkspace.d.ts.map +1 -0
  90. package/dist/bigconsole/assistant/useAssistantRunWorkspace.js +2 -0
  91. package/dist/bigconsole/assistant/useAssistantRunWorkspace.js.map +1 -0
  92. package/dist/bigconsole/assistant/useWorkspaceWriteAccess.d.ts +1 -0
  93. package/dist/bigconsole/assistant/useWorkspaceWriteAccess.d.ts.map +1 -0
  94. package/dist/bigconsole/assistant/useWorkspaceWriteAccess.js +2 -0
  95. package/dist/bigconsole/assistant/useWorkspaceWriteAccess.js.map +1 -0
  96. package/dist/bigconsole/components/DrilldownDashboardRenderer.d.ts +1 -0
  97. package/dist/bigconsole/components/DrilldownDashboardRenderer.d.ts.map +1 -0
  98. package/dist/bigconsole/components/DrilldownDashboardRenderer.js +2 -0
  99. package/dist/bigconsole/components/DrilldownDashboardRenderer.js.map +1 -0
  100. package/dist/bigconsole/components/DrilldownModal.d.ts +1 -0
  101. package/dist/bigconsole/components/DrilldownModal.d.ts.map +1 -0
  102. package/dist/bigconsole/components/DrilldownModal.js +2 -0
  103. package/dist/bigconsole/components/DrilldownModal.js.map +1 -0
  104. package/dist/bigconsole/components/builder/BuilderCanvas.d.ts +1 -0
  105. package/dist/bigconsole/components/builder/BuilderCanvas.d.ts.map +1 -0
  106. package/dist/bigconsole/components/builder/BuilderCanvas.js +2 -0
  107. package/dist/bigconsole/components/builder/BuilderCanvas.js.map +1 -0
  108. package/dist/bigconsole/components/builder/BuilderTopbar.d.ts +1 -0
  109. package/dist/bigconsole/components/builder/BuilderTopbar.d.ts.map +1 -0
  110. package/dist/bigconsole/components/builder/BuilderTopbar.js +2 -0
  111. package/dist/bigconsole/components/builder/BuilderTopbar.js.map +1 -0
  112. package/dist/bigconsole/components/builder/DashboardEditorShell.d.ts +1 -0
  113. package/dist/bigconsole/components/builder/DashboardEditorShell.d.ts.map +1 -0
  114. package/dist/bigconsole/components/builder/DashboardEditorShell.js +2 -0
  115. package/dist/bigconsole/components/builder/DashboardEditorShell.js.map +1 -0
  116. package/dist/bigconsole/components/builder/WidgetInspector.d.ts +1 -0
  117. package/dist/bigconsole/components/builder/WidgetInspector.d.ts.map +1 -0
  118. package/dist/bigconsole/components/builder/WidgetInspector.js +2 -0
  119. package/dist/bigconsole/components/builder/WidgetInspector.js.map +1 -0
  120. package/dist/bigconsole/components/builder/index.d.ts +1 -0
  121. package/dist/bigconsole/components/builder/index.d.ts.map +1 -0
  122. package/dist/bigconsole/components/builder/inspector/AdvancedSection.d.ts +1 -0
  123. package/dist/bigconsole/components/builder/inspector/AdvancedSection.d.ts.map +1 -0
  124. package/dist/bigconsole/components/builder/inspector/AdvancedSection.js +2 -0
  125. package/dist/bigconsole/components/builder/inspector/AdvancedSection.js.map +1 -0
  126. package/dist/bigconsole/components/builder/inspector/AppearanceSection.d.ts +1 -0
  127. package/dist/bigconsole/components/builder/inspector/AppearanceSection.d.ts.map +1 -0
  128. package/dist/bigconsole/components/builder/inspector/AppearanceSection.js +2 -0
  129. package/dist/bigconsole/components/builder/inspector/AppearanceSection.js.map +1 -0
  130. package/dist/bigconsole/components/builder/inspector/DataBindingSection.d.ts +1 -0
  131. package/dist/bigconsole/components/builder/inspector/DataBindingSection.d.ts.map +1 -0
  132. package/dist/bigconsole/components/builder/inspector/DataBindingSection.js +2 -0
  133. package/dist/bigconsole/components/builder/inspector/DataBindingSection.js.map +1 -0
  134. package/dist/bigconsole/components/builder/inspector/GeneralSection.d.ts +1 -0
  135. package/dist/bigconsole/components/builder/inspector/GeneralSection.d.ts.map +1 -0
  136. package/dist/bigconsole/components/builder/inspector/GeneralSection.js +2 -0
  137. package/dist/bigconsole/components/builder/inspector/GeneralSection.js.map +1 -0
  138. package/dist/bigconsole/components/builder/inspector/LayoutSection.d.ts +1 -0
  139. package/dist/bigconsole/components/builder/inspector/LayoutSection.d.ts.map +1 -0
  140. package/dist/bigconsole/components/builder/inspector/LayoutSection.js +2 -0
  141. package/dist/bigconsole/components/builder/inspector/LayoutSection.js.map +1 -0
  142. package/dist/bigconsole/components/builder/inspector/index.d.ts +1 -0
  143. package/dist/bigconsole/components/builder/inspector/index.d.ts.map +1 -0
  144. package/dist/bigconsole/components/common/Section.d.ts +1 -0
  145. package/dist/bigconsole/components/common/Section.d.ts.map +1 -0
  146. package/dist/bigconsole/components/common/Section.js +2 -0
  147. package/dist/bigconsole/components/common/Section.js.map +1 -0
  148. package/dist/bigconsole/components/common/index.d.ts +1 -0
  149. package/dist/bigconsole/components/common/index.d.ts.map +1 -0
  150. package/dist/bigconsole/components/common/sectionStyles.d.ts +1 -0
  151. package/dist/bigconsole/components/common/sectionStyles.d.ts.map +1 -0
  152. package/dist/bigconsole/components/common/sectionStyles.js +2 -0
  153. package/dist/bigconsole/components/common/sectionStyles.js.map +1 -0
  154. package/dist/bigconsole/components/dashboard/CreateDashboardDialog.d.ts +1 -0
  155. package/dist/bigconsole/components/dashboard/CreateDashboardDialog.d.ts.map +1 -0
  156. package/dist/bigconsole/components/dashboard/CreateDashboardDialog.js +2 -0
  157. package/dist/bigconsole/components/dashboard/CreateDashboardDialog.js.map +1 -0
  158. package/dist/bigconsole/components/dashboard/DashboardCanvas.d.ts +1 -0
  159. package/dist/bigconsole/components/dashboard/DashboardCanvas.d.ts.map +1 -0
  160. package/dist/bigconsole/components/dashboard/DashboardCanvas.js +2 -0
  161. package/dist/bigconsole/components/dashboard/DashboardCanvas.js.map +1 -0
  162. package/dist/bigconsole/components/dashboard/DashboardGrid.d.ts +1 -0
  163. package/dist/bigconsole/components/dashboard/DashboardGrid.d.ts.map +1 -0
  164. package/dist/bigconsole/components/dashboard/DashboardGrid.js +2 -0
  165. package/dist/bigconsole/components/dashboard/DashboardGrid.js.map +1 -0
  166. package/dist/bigconsole/components/dashboard/DashboardStatusPill.d.ts +1 -0
  167. package/dist/bigconsole/components/dashboard/DashboardStatusPill.d.ts.map +1 -0
  168. package/dist/bigconsole/components/dashboard/DashboardStatusPill.js +2 -0
  169. package/dist/bigconsole/components/dashboard/DashboardStatusPill.js.map +1 -0
  170. package/dist/bigconsole/components/dashboard/DashboardToolbar.d.ts +1 -0
  171. package/dist/bigconsole/components/dashboard/DashboardToolbar.d.ts.map +1 -0
  172. package/dist/bigconsole/components/dashboard/DashboardToolbar.js +2 -0
  173. package/dist/bigconsole/components/dashboard/DashboardToolbar.js.map +1 -0
  174. package/dist/bigconsole/components/dashboard/DrilldownBreadcrumb.d.ts +1 -0
  175. package/dist/bigconsole/components/dashboard/DrilldownBreadcrumb.d.ts.map +1 -0
  176. package/dist/bigconsole/components/dashboard/DrilldownBreadcrumb.js +64 -63
  177. package/dist/bigconsole/components/dashboard/DrilldownBreadcrumb.js.map +1 -0
  178. package/dist/bigconsole/components/dashboard/ExportDashboardDialog.d.ts +1 -0
  179. package/dist/bigconsole/components/dashboard/ExportDashboardDialog.d.ts.map +1 -0
  180. package/dist/bigconsole/components/dashboard/ExportDashboardDialog.js +2 -0
  181. package/dist/bigconsole/components/dashboard/ExportDashboardDialog.js.map +1 -0
  182. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterChip.d.ts +1 -0
  183. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterChip.d.ts.map +1 -0
  184. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterChip.js +2 -0
  185. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterChip.js.map +1 -0
  186. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterEditor.d.ts +1 -0
  187. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterEditor.d.ts.map +1 -0
  188. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterEditor.js +2 -0
  189. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterEditor.js.map +1 -0
  190. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterPresetSelector.d.ts +1 -0
  191. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterPresetSelector.d.ts.map +1 -0
  192. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterPresetSelector.js +2 -0
  193. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterPresetSelector.js.map +1 -0
  194. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.d.ts +1 -0
  195. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.d.ts.map +1 -0
  196. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.js +2 -0
  197. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.js.map +1 -0
  198. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/index.d.ts +1 -0
  199. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/index.d.ts.map +1 -0
  200. package/dist/bigconsole/components/dashboard/ImportDashboardDialog.d.ts +1 -0
  201. package/dist/bigconsole/components/dashboard/ImportDashboardDialog.d.ts.map +1 -0
  202. package/dist/bigconsole/components/dashboard/ImportDashboardDialog.js +2 -0
  203. package/dist/bigconsole/components/dashboard/ImportDashboardDialog.js.map +1 -0
  204. package/dist/bigconsole/components/dashboard/LiveBoardBanner.d.ts +1 -0
  205. package/dist/bigconsole/components/dashboard/LiveBoardBanner.d.ts.map +1 -0
  206. package/dist/bigconsole/components/dashboard/LiveBoardBanner.js +2 -0
  207. package/dist/bigconsole/components/dashboard/LiveBoardBanner.js.map +1 -0
  208. package/dist/bigconsole/components/dashboard/LiveCanvasToggle.d.ts +1 -0
  209. package/dist/bigconsole/components/dashboard/LiveCanvasToggle.d.ts.map +1 -0
  210. package/dist/bigconsole/components/dashboard/LiveCanvasToggle.js +2 -0
  211. package/dist/bigconsole/components/dashboard/LiveCanvasToggle.js.map +1 -0
  212. package/dist/bigconsole/components/dashboard/PageTabsManager/PageTabsManager.d.ts +1 -0
  213. package/dist/bigconsole/components/dashboard/PageTabsManager/PageTabsManager.d.ts.map +1 -0
  214. package/dist/bigconsole/components/dashboard/PageTabsManager/PageTabsManager.js +2 -0
  215. package/dist/bigconsole/components/dashboard/PageTabsManager/PageTabsManager.js.map +1 -0
  216. package/dist/bigconsole/components/dashboard/PageTabsManager/index.d.ts +1 -0
  217. package/dist/bigconsole/components/dashboard/PageTabsManager/index.d.ts.map +1 -0
  218. package/dist/bigconsole/components/dashboard/PublishToStoreDialog.d.ts +1 -0
  219. package/dist/bigconsole/components/dashboard/PublishToStoreDialog.d.ts.map +1 -0
  220. package/dist/bigconsole/components/dashboard/PublishToStoreDialog.js +2 -0
  221. package/dist/bigconsole/components/dashboard/PublishToStoreDialog.js.map +1 -0
  222. package/dist/bigconsole/components/dashboard/SavedViewsDropdown/SavedViewsDropdown.d.ts +1 -0
  223. package/dist/bigconsole/components/dashboard/SavedViewsDropdown/SavedViewsDropdown.d.ts.map +1 -0
  224. package/dist/bigconsole/components/dashboard/SavedViewsDropdown/SavedViewsDropdown.js +2 -0
  225. package/dist/bigconsole/components/dashboard/SavedViewsDropdown/SavedViewsDropdown.js.map +1 -0
  226. package/dist/bigconsole/components/dashboard/SavedViewsDropdown/index.d.ts +1 -0
  227. package/dist/bigconsole/components/dashboard/SavedViewsDropdown/index.d.ts.map +1 -0
  228. package/dist/bigconsole/components/dashboard/ShareDialog/EmbedTab.d.ts +1 -0
  229. package/dist/bigconsole/components/dashboard/ShareDialog/EmbedTab.d.ts.map +1 -0
  230. package/dist/bigconsole/components/dashboard/ShareDialog/EmbedTab.js +108 -97
  231. package/dist/bigconsole/components/dashboard/ShareDialog/EmbedTab.js.map +1 -0
  232. package/dist/bigconsole/components/dashboard/ShareDialog/ShareDialog.d.ts +1 -0
  233. package/dist/bigconsole/components/dashboard/ShareDialog/ShareDialog.d.ts.map +1 -0
  234. package/dist/bigconsole/components/dashboard/ShareDialog/ShareDialog.js +2 -0
  235. package/dist/bigconsole/components/dashboard/ShareDialog/ShareDialog.js.map +1 -0
  236. package/dist/bigconsole/components/dashboard/ShareDialog/index.d.ts +1 -0
  237. package/dist/bigconsole/components/dashboard/ShareDialog/index.d.ts.map +1 -0
  238. package/dist/bigconsole/components/dashboard/StoreTemplatePicker.d.ts +1 -0
  239. package/dist/bigconsole/components/dashboard/StoreTemplatePicker.d.ts.map +1 -0
  240. package/dist/bigconsole/components/dashboard/StoreTemplatePicker.js +2 -0
  241. package/dist/bigconsole/components/dashboard/StoreTemplatePicker.js.map +1 -0
  242. package/dist/bigconsole/components/dashboard/TemplateInstallOptions.d.ts +1 -0
  243. package/dist/bigconsole/components/dashboard/TemplateInstallOptions.d.ts.map +1 -0
  244. package/dist/bigconsole/components/dashboard/TemplateInstallOptions.js +2 -0
  245. package/dist/bigconsole/components/dashboard/TemplateInstallOptions.js.map +1 -0
  246. package/dist/bigconsole/components/dashboard/TemplateLayoutPreview.d.ts +1 -0
  247. package/dist/bigconsole/components/dashboard/TemplateLayoutPreview.d.ts.map +1 -0
  248. package/dist/bigconsole/components/dashboard/TemplateLayoutPreview.js +2 -0
  249. package/dist/bigconsole/components/dashboard/TemplateLayoutPreview.js.map +1 -0
  250. package/dist/bigconsole/components/dashboard/TemplatePicker/TemplatePicker.d.ts +1 -0
  251. package/dist/bigconsole/components/dashboard/TemplatePicker/TemplatePicker.d.ts.map +1 -0
  252. package/dist/bigconsole/components/dashboard/TemplatePicker/index.d.ts +1 -0
  253. package/dist/bigconsole/components/dashboard/TemplatePicker/index.d.ts.map +1 -0
  254. package/dist/bigconsole/components/dashboard/TemplateSetupBanner.d.ts +1 -0
  255. package/dist/bigconsole/components/dashboard/TemplateSetupBanner.d.ts.map +1 -0
  256. package/dist/bigconsole/components/dashboard/TemplateSetupBanner.js +2 -0
  257. package/dist/bigconsole/components/dashboard/TemplateSetupBanner.js.map +1 -0
  258. package/dist/bigconsole/components/dashboard/WidgetPalette.d.ts +1 -0
  259. package/dist/bigconsole/components/dashboard/WidgetPalette.d.ts.map +1 -0
  260. package/dist/bigconsole/components/dashboard/WidgetPalette.js +165 -165
  261. package/dist/bigconsole/components/dashboard/WidgetPalette.js.map +1 -0
  262. package/dist/bigconsole/components/dashboard/index.d.ts +1 -0
  263. package/dist/bigconsole/components/dashboard/index.d.ts.map +1 -0
  264. package/dist/bigconsole/components/datasink/AlertExecutionHistory.d.ts +1 -0
  265. package/dist/bigconsole/components/datasink/AlertExecutionHistory.d.ts.map +1 -0
  266. package/dist/bigconsole/components/datasink/AlertExecutionHistory.js +2 -0
  267. package/dist/bigconsole/components/datasink/AlertExecutionHistory.js.map +1 -0
  268. package/dist/bigconsole/components/datasink/AlertRuleEditor.d.ts +1 -0
  269. package/dist/bigconsole/components/datasink/AlertRuleEditor.d.ts.map +1 -0
  270. package/dist/bigconsole/components/datasink/AlertRuleEditor.js +2 -0
  271. package/dist/bigconsole/components/datasink/AlertRuleEditor.js.map +1 -0
  272. package/dist/bigconsole/components/datasink/CacheTTLSelector.d.ts +1 -0
  273. package/dist/bigconsole/components/datasink/CacheTTLSelector.d.ts.map +1 -0
  274. package/dist/bigconsole/components/datasink/CacheTTLSelector.js +2 -0
  275. package/dist/bigconsole/components/datasink/CacheTTLSelector.js.map +1 -0
  276. package/dist/bigconsole/components/datasink/ConfigurationForm.d.ts +1 -0
  277. package/dist/bigconsole/components/datasink/ConfigurationForm.d.ts.map +1 -0
  278. package/dist/bigconsole/components/datasink/DataPreviewPanel.d.ts +1 -0
  279. package/dist/bigconsole/components/datasink/DataPreviewPanel.d.ts.map +1 -0
  280. package/dist/bigconsole/components/datasink/DataSinkCard.d.ts +1 -0
  281. package/dist/bigconsole/components/datasink/DataSinkCard.d.ts.map +1 -0
  282. package/dist/bigconsole/components/datasink/DataSinkCard.js +30 -27
  283. package/dist/bigconsole/components/datasink/DataSinkCard.js.map +1 -0
  284. package/dist/bigconsole/components/datasink/DataSinkDataViewer.d.ts +1 -0
  285. package/dist/bigconsole/components/datasink/DataSinkDataViewer.d.ts.map +1 -0
  286. package/dist/bigconsole/components/datasink/DataSinkDataViewer.js +2 -0
  287. package/dist/bigconsole/components/datasink/DataSinkDataViewer.js.map +1 -0
  288. package/dist/bigconsole/components/datasink/DataSinkDeleteDialog.d.ts +1 -0
  289. package/dist/bigconsole/components/datasink/DataSinkDeleteDialog.d.ts.map +1 -0
  290. package/dist/bigconsole/components/datasink/DataSinkDeleteDialog.js +2 -0
  291. package/dist/bigconsole/components/datasink/DataSinkDeleteDialog.js.map +1 -0
  292. package/dist/bigconsole/components/datasink/DataSinkRefreshConfig.d.ts +1 -0
  293. package/dist/bigconsole/components/datasink/DataSinkRefreshConfig.d.ts.map +1 -0
  294. package/dist/bigconsole/components/datasink/DataSinkRefreshDialog.d.ts +1 -0
  295. package/dist/bigconsole/components/datasink/DataSinkRefreshDialog.d.ts.map +1 -0
  296. package/dist/bigconsole/components/datasink/DataSinkRefreshDialog.js +2 -0
  297. package/dist/bigconsole/components/datasink/DataSinkRefreshDialog.js.map +1 -0
  298. package/dist/bigconsole/components/datasink/DataSinkStatusBadge.d.ts +1 -0
  299. package/dist/bigconsole/components/datasink/DataSinkStatusBadge.d.ts.map +1 -0
  300. package/dist/bigconsole/components/datasink/DataSinkStatusBadge.js +2 -0
  301. package/dist/bigconsole/components/datasink/DataSinkStatusBadge.js.map +1 -0
  302. package/dist/bigconsole/components/datasink/DataSinkTableViewer.d.ts +1 -0
  303. package/dist/bigconsole/components/datasink/DataSinkTableViewer.d.ts.map +1 -0
  304. package/dist/bigconsole/components/datasink/DataSinkTableViewer.js +2 -0
  305. package/dist/bigconsole/components/datasink/DataSinkTableViewer.js.map +1 -0
  306. package/dist/bigconsole/components/datasink/ExportDataSinkDialog.d.ts +1 -0
  307. package/dist/bigconsole/components/datasink/ExportDataSinkDialog.d.ts.map +1 -0
  308. package/dist/bigconsole/components/datasink/ExportDataSinkDialog.js +2 -0
  309. package/dist/bigconsole/components/datasink/ExportDataSinkDialog.js.map +1 -0
  310. package/dist/bigconsole/components/datasink/FluidGridsPanel.d.ts +1 -0
  311. package/dist/bigconsole/components/datasink/FluidGridsPanel.d.ts.map +1 -0
  312. package/dist/bigconsole/components/datasink/ImportDataGuideDialog.d.ts +1 -0
  313. package/dist/bigconsole/components/datasink/ImportDataGuideDialog.d.ts.map +1 -0
  314. package/dist/bigconsole/components/datasink/ImportDataGuideDialog.js +2 -0
  315. package/dist/bigconsole/components/datasink/ImportDataGuideDialog.js.map +1 -0
  316. package/dist/bigconsole/components/datasink/ImportDataSinkDialog.d.ts +1 -0
  317. package/dist/bigconsole/components/datasink/ImportDataSinkDialog.d.ts.map +1 -0
  318. package/dist/bigconsole/components/datasink/ImportDataSinkDialog.js +2 -0
  319. package/dist/bigconsole/components/datasink/ImportDataSinkDialog.js.map +1 -0
  320. package/dist/bigconsole/components/datasink/LinkedParsersPanel.d.ts +1 -0
  321. package/dist/bigconsole/components/datasink/LinkedParsersPanel.d.ts.map +1 -0
  322. package/dist/bigconsole/components/datasink/LinkedParsersPanel.js +2 -0
  323. package/dist/bigconsole/components/datasink/LinkedParsersPanel.js.map +1 -0
  324. package/dist/bigconsole/components/datasink/LinkedWorkflowsPanel.d.ts +1 -0
  325. package/dist/bigconsole/components/datasink/LinkedWorkflowsPanel.d.ts.map +1 -0
  326. package/dist/bigconsole/components/datasink/LinkedWorkflowsPanel.js +2 -0
  327. package/dist/bigconsole/components/datasink/LinkedWorkflowsPanel.js.map +1 -0
  328. package/dist/bigconsole/components/datasink/RefreshTypeSelector.d.ts +1 -0
  329. package/dist/bigconsole/components/datasink/RefreshTypeSelector.d.ts.map +1 -0
  330. package/dist/bigconsole/components/datasink/RefreshTypeSelector.js +2 -0
  331. package/dist/bigconsole/components/datasink/RefreshTypeSelector.js.map +1 -0
  332. package/dist/bigconsole/components/datasink/SetupStateBadge.d.ts +1 -0
  333. package/dist/bigconsole/components/datasink/SetupStateBadge.d.ts.map +1 -0
  334. package/dist/bigconsole/components/datasink/SetupStateBadge.js +2 -0
  335. package/dist/bigconsole/components/datasink/SetupStateBadge.js.map +1 -0
  336. package/dist/bigconsole/components/datasink/WorkflowStatusPanel.d.ts +1 -0
  337. package/dist/bigconsole/components/datasink/WorkflowStatusPanel.d.ts.map +1 -0
  338. package/dist/bigconsole/components/datasink/WorkflowStatusPanel.js +2 -0
  339. package/dist/bigconsole/components/datasink/WorkflowStatusPanel.js.map +1 -0
  340. package/dist/bigconsole/components/datasink/index.d.ts +1 -0
  341. package/dist/bigconsole/components/datasink/index.d.ts.map +1 -0
  342. package/dist/bigconsole/components/embed/EmbedErrorBoundary.d.ts +1 -0
  343. package/dist/bigconsole/components/embed/EmbedErrorBoundary.d.ts.map +1 -0
  344. package/dist/bigconsole/components/embed/EmbedErrorBoundary.js +2 -0
  345. package/dist/bigconsole/components/embed/EmbedErrorBoundary.js.map +1 -0
  346. package/dist/bigconsole/components/embed/EmbedWidgetRenderer.d.ts +1 -0
  347. package/dist/bigconsole/components/embed/EmbedWidgetRenderer.d.ts.map +1 -0
  348. package/dist/bigconsole/components/embed/EmbedWidgetRenderer.js +2 -0
  349. package/dist/bigconsole/components/embed/EmbedWidgetRenderer.js.map +1 -0
  350. package/dist/bigconsole/components/embed/ReadOnlyDashboardRenderer.d.ts +1 -0
  351. package/dist/bigconsole/components/embed/ReadOnlyDashboardRenderer.d.ts.map +1 -0
  352. package/dist/bigconsole/components/embed/ReadOnlyDashboardRenderer.js +2 -0
  353. package/dist/bigconsole/components/embed/ReadOnlyDashboardRenderer.js.map +1 -0
  354. package/dist/bigconsole/components/embed/drilldown.d.ts +1 -0
  355. package/dist/bigconsole/components/embed/drilldown.d.ts.map +1 -0
  356. package/dist/bigconsole/components/embed/drilldown.js +2 -0
  357. package/dist/bigconsole/components/embed/drilldown.js.map +1 -0
  358. package/dist/bigconsole/components/embed/index.d.ts +1 -0
  359. package/dist/bigconsole/components/embed/index.d.ts.map +1 -0
  360. package/dist/bigconsole/components/embed/renderer-manifest.d.ts +1 -0
  361. package/dist/bigconsole/components/embed/renderer-manifest.d.ts.map +1 -0
  362. package/dist/bigconsole/components/embed/renderer-manifest.js +2 -0
  363. package/dist/bigconsole/components/embed/renderer-manifest.js.map +1 -0
  364. package/dist/bigconsole/components/embed/types.d.ts +1 -0
  365. package/dist/bigconsole/components/embed/types.d.ts.map +1 -0
  366. package/dist/bigconsole/components/embed/types.js +2 -0
  367. package/dist/bigconsole/components/embed/types.js.map +1 -0
  368. package/dist/bigconsole/components/embed/validate.d.ts +1 -0
  369. package/dist/bigconsole/components/embed/validate.d.ts.map +1 -0
  370. package/dist/bigconsole/components/embed/validate.js +2 -0
  371. package/dist/bigconsole/components/embed/validate.js.map +1 -0
  372. package/dist/bigconsole/components/embed/widgetShim.d.ts +1 -0
  373. package/dist/bigconsole/components/embed/widgetShim.d.ts.map +1 -0
  374. package/dist/bigconsole/components/embed/widgetShim.js +2 -0
  375. package/dist/bigconsole/components/embed/widgetShim.js.map +1 -0
  376. package/dist/bigconsole/components/embed/widgets/CalendarEmbed.d.ts +1 -0
  377. package/dist/bigconsole/components/embed/widgets/CalendarEmbed.d.ts.map +1 -0
  378. package/dist/bigconsole/components/embed/widgets/CalendarEmbed.js +2 -0
  379. package/dist/bigconsole/components/embed/widgets/CalendarEmbed.js.map +1 -0
  380. package/dist/bigconsole/components/embed/widgets/ChartEmbed.d.ts +1 -0
  381. package/dist/bigconsole/components/embed/widgets/ChartEmbed.d.ts.map +1 -0
  382. package/dist/bigconsole/components/embed/widgets/ChartEmbed.js +2 -0
  383. package/dist/bigconsole/components/embed/widgets/ChartEmbed.js.map +1 -0
  384. package/dist/bigconsole/components/embed/widgets/EmbedFrame.d.ts +1 -0
  385. package/dist/bigconsole/components/embed/widgets/EmbedFrame.d.ts.map +1 -0
  386. package/dist/bigconsole/components/embed/widgets/EmbedFrame.js +2 -0
  387. package/dist/bigconsole/components/embed/widgets/EmbedFrame.js.map +1 -0
  388. package/dist/bigconsole/components/embed/widgets/FormEmbed.d.ts +1 -0
  389. package/dist/bigconsole/components/embed/widgets/FormEmbed.d.ts.map +1 -0
  390. package/dist/bigconsole/components/embed/widgets/FormEmbed.js +2 -0
  391. package/dist/bigconsole/components/embed/widgets/FormEmbed.js.map +1 -0
  392. package/dist/bigconsole/components/embed/widgets/GaugeEmbed.d.ts +1 -0
  393. package/dist/bigconsole/components/embed/widgets/GaugeEmbed.d.ts.map +1 -0
  394. package/dist/bigconsole/components/embed/widgets/GaugeEmbed.js +2 -0
  395. package/dist/bigconsole/components/embed/widgets/GaugeEmbed.js.map +1 -0
  396. package/dist/bigconsole/components/embed/widgets/HeatmapEmbed.d.ts +1 -0
  397. package/dist/bigconsole/components/embed/widgets/HeatmapEmbed.d.ts.map +1 -0
  398. package/dist/bigconsole/components/embed/widgets/HeatmapEmbed.js +2 -0
  399. package/dist/bigconsole/components/embed/widgets/HeatmapEmbed.js.map +1 -0
  400. package/dist/bigconsole/components/embed/widgets/KanbanEmbed.d.ts +1 -0
  401. package/dist/bigconsole/components/embed/widgets/KanbanEmbed.d.ts.map +1 -0
  402. package/dist/bigconsole/components/embed/widgets/KanbanEmbed.js +2 -0
  403. package/dist/bigconsole/components/embed/widgets/KanbanEmbed.js.map +1 -0
  404. package/dist/bigconsole/components/embed/widgets/KpiComparisonEmbed.d.ts +1 -0
  405. package/dist/bigconsole/components/embed/widgets/KpiComparisonEmbed.d.ts.map +1 -0
  406. package/dist/bigconsole/components/embed/widgets/KpiComparisonEmbed.js +2 -0
  407. package/dist/bigconsole/components/embed/widgets/KpiComparisonEmbed.js.map +1 -0
  408. package/dist/bigconsole/components/embed/widgets/ListEmbed.d.ts +1 -0
  409. package/dist/bigconsole/components/embed/widgets/ListEmbed.d.ts.map +1 -0
  410. package/dist/bigconsole/components/embed/widgets/ListEmbed.js +2 -0
  411. package/dist/bigconsole/components/embed/widgets/ListEmbed.js.map +1 -0
  412. package/dist/bigconsole/components/embed/widgets/MetricCardEmbed.d.ts +1 -0
  413. package/dist/bigconsole/components/embed/widgets/MetricCardEmbed.d.ts.map +1 -0
  414. package/dist/bigconsole/components/embed/widgets/MetricCardEmbed.js +2 -0
  415. package/dist/bigconsole/components/embed/widgets/MetricCardEmbed.js.map +1 -0
  416. package/dist/bigconsole/components/embed/widgets/PivotEmbed.d.ts +1 -0
  417. package/dist/bigconsole/components/embed/widgets/PivotEmbed.d.ts.map +1 -0
  418. package/dist/bigconsole/components/embed/widgets/PivotEmbed.js +2 -0
  419. package/dist/bigconsole/components/embed/widgets/PivotEmbed.js.map +1 -0
  420. package/dist/bigconsole/components/embed/widgets/ProgressEmbed.d.ts +1 -0
  421. package/dist/bigconsole/components/embed/widgets/ProgressEmbed.d.ts.map +1 -0
  422. package/dist/bigconsole/components/embed/widgets/ProgressEmbed.js +2 -0
  423. package/dist/bigconsole/components/embed/widgets/ProgressEmbed.js.map +1 -0
  424. package/dist/bigconsole/components/embed/widgets/RetentionEmbed.d.ts +1 -0
  425. package/dist/bigconsole/components/embed/widgets/RetentionEmbed.d.ts.map +1 -0
  426. package/dist/bigconsole/components/embed/widgets/RetentionEmbed.js +2 -0
  427. package/dist/bigconsole/components/embed/widgets/RetentionEmbed.js.map +1 -0
  428. package/dist/bigconsole/components/embed/widgets/TableEmbed.d.ts +1 -0
  429. package/dist/bigconsole/components/embed/widgets/TableEmbed.d.ts.map +1 -0
  430. package/dist/bigconsole/components/embed/widgets/TableEmbed.js +2 -0
  431. package/dist/bigconsole/components/embed/widgets/TableEmbed.js.map +1 -0
  432. package/dist/bigconsole/components/embed/widgets/TextEmbed.d.ts +1 -0
  433. package/dist/bigconsole/components/embed/widgets/TextEmbed.d.ts.map +1 -0
  434. package/dist/bigconsole/components/embed/widgets/TextEmbed.js +2 -0
  435. package/dist/bigconsole/components/embed/widgets/TextEmbed.js.map +1 -0
  436. package/dist/bigconsole/components/embed/widgets/TimelineEmbed.d.ts +1 -0
  437. package/dist/bigconsole/components/embed/widgets/TimelineEmbed.d.ts.map +1 -0
  438. package/dist/bigconsole/components/embed/widgets/TimelineEmbed.js +2 -0
  439. package/dist/bigconsole/components/embed/widgets/TimelineEmbed.js.map +1 -0
  440. package/dist/bigconsole/components/embed/widgets/shared.d.ts +1 -0
  441. package/dist/bigconsole/components/embed/widgets/shared.d.ts.map +1 -0
  442. package/dist/bigconsole/components/embed/widgets/shared.js +2 -0
  443. package/dist/bigconsole/components/embed/widgets/shared.js.map +1 -0
  444. package/dist/bigconsole/components/overview/DashboardGuide.d.ts +1 -0
  445. package/dist/bigconsole/components/overview/DashboardGuide.d.ts.map +1 -0
  446. package/dist/bigconsole/components/overview/DashboardGuide.js +2 -0
  447. package/dist/bigconsole/components/overview/DashboardGuide.js.map +1 -0
  448. package/dist/bigconsole/components/overview/DataHealthCard.d.ts +1 -0
  449. package/dist/bigconsole/components/overview/DataHealthCard.d.ts.map +1 -0
  450. package/dist/bigconsole/components/overview/DataHealthCard.js +2 -0
  451. package/dist/bigconsole/components/overview/DataHealthCard.js.map +1 -0
  452. package/dist/bigconsole/components/overview/OverviewQuickActions.d.ts +1 -0
  453. package/dist/bigconsole/components/overview/OverviewQuickActions.d.ts.map +1 -0
  454. package/dist/bigconsole/components/overview/OverviewQuickActions.js +2 -0
  455. package/dist/bigconsole/components/overview/OverviewQuickActions.js.map +1 -0
  456. package/dist/bigconsole/components/overview/OverviewStatCard.d.ts +1 -0
  457. package/dist/bigconsole/components/overview/OverviewStatCard.d.ts.map +1 -0
  458. package/dist/bigconsole/components/overview/OverviewStatCard.js +2 -0
  459. package/dist/bigconsole/components/overview/OverviewStatCard.js.map +1 -0
  460. package/dist/bigconsole/components/overview/RecentDashboardsPanel.d.ts +1 -0
  461. package/dist/bigconsole/components/overview/RecentDashboardsPanel.d.ts.map +1 -0
  462. package/dist/bigconsole/components/overview/RecentDashboardsPanel.js +2 -0
  463. package/dist/bigconsole/components/overview/RecentDashboardsPanel.js.map +1 -0
  464. package/dist/bigconsole/components/overview/dashboardGuideSteps.d.ts +1 -0
  465. package/dist/bigconsole/components/overview/dashboardGuideSteps.d.ts.map +1 -0
  466. package/dist/bigconsole/components/overview/dashboardGuideSteps.js +2 -0
  467. package/dist/bigconsole/components/overview/dashboardGuideSteps.js.map +1 -0
  468. package/dist/bigconsole/components/overview/index.d.ts +1 -0
  469. package/dist/bigconsole/components/overview/index.d.ts.map +1 -0
  470. package/dist/bigconsole/components/overview/overviewModel.d.ts +1 -0
  471. package/dist/bigconsole/components/overview/overviewModel.d.ts.map +1 -0
  472. package/dist/bigconsole/components/overview/overviewModel.js +2 -0
  473. package/dist/bigconsole/components/overview/overviewModel.js.map +1 -0
  474. package/dist/bigconsole/components/overview/useOverviewData.d.ts +1 -0
  475. package/dist/bigconsole/components/overview/useOverviewData.d.ts.map +1 -0
  476. package/dist/bigconsole/components/overview/useOverviewData.js +2 -0
  477. package/dist/bigconsole/components/overview/useOverviewData.js.map +1 -0
  478. package/dist/bigconsole/components/parser/DataSinkSelector.d.ts +1 -0
  479. package/dist/bigconsole/components/parser/DataSinkSelector.d.ts.map +1 -0
  480. package/dist/bigconsole/components/parser/DataSinkSelector.js +2 -0
  481. package/dist/bigconsole/components/parser/DataSinkSelector.js.map +1 -0
  482. package/dist/bigconsole/components/parser/ExportParserDialog.d.ts +1 -0
  483. package/dist/bigconsole/components/parser/ExportParserDialog.d.ts.map +1 -0
  484. package/dist/bigconsole/components/parser/ExportParserDialog.js +2 -0
  485. package/dist/bigconsole/components/parser/ExportParserDialog.js.map +1 -0
  486. package/dist/bigconsole/components/parser/ExpressionEditor.d.ts +1 -0
  487. package/dist/bigconsole/components/parser/ExpressionEditor.d.ts.map +1 -0
  488. package/dist/bigconsole/components/parser/ExpressionEditor.js +2 -0
  489. package/dist/bigconsole/components/parser/ExpressionEditor.js.map +1 -0
  490. package/dist/bigconsole/components/parser/ImportParserDialog.d.ts +1 -0
  491. package/dist/bigconsole/components/parser/ImportParserDialog.d.ts.map +1 -0
  492. package/dist/bigconsole/components/parser/ImportParserDialog.js +2 -0
  493. package/dist/bigconsole/components/parser/ImportParserDialog.js.map +1 -0
  494. package/dist/bigconsole/components/parser/ParserBuilder.d.ts +1 -0
  495. package/dist/bigconsole/components/parser/ParserBuilder.d.ts.map +1 -0
  496. package/dist/bigconsole/components/parser/ParserCard.d.ts +1 -0
  497. package/dist/bigconsole/components/parser/ParserCard.d.ts.map +1 -0
  498. package/dist/bigconsole/components/parser/ParserCard.js +2 -0
  499. package/dist/bigconsole/components/parser/ParserCard.js.map +1 -0
  500. package/dist/bigconsole/components/parser/ParserFormDialog.d.ts +1 -0
  501. package/dist/bigconsole/components/parser/ParserFormDialog.d.ts.map +1 -0
  502. package/dist/bigconsole/components/parser/ParserSelector.d.ts +1 -0
  503. package/dist/bigconsole/components/parser/ParserSelector.d.ts.map +1 -0
  504. package/dist/bigconsole/components/parser/ParserSelector.js +2 -0
  505. package/dist/bigconsole/components/parser/ParserSelector.js.map +1 -0
  506. package/dist/bigconsole/components/parser/ParserStatusBadge.d.ts +1 -0
  507. package/dist/bigconsole/components/parser/ParserStatusBadge.d.ts.map +1 -0
  508. package/dist/bigconsole/components/parser/ParserStatusBadge.js +2 -0
  509. package/dist/bigconsole/components/parser/ParserStatusBadge.js.map +1 -0
  510. package/dist/bigconsole/components/parser/ParserTypeBadge.d.ts +1 -0
  511. package/dist/bigconsole/components/parser/ParserTypeBadge.d.ts.map +1 -0
  512. package/dist/bigconsole/components/parser/ParserTypeBadge.js +2 -0
  513. package/dist/bigconsole/components/parser/ParserTypeBadge.js.map +1 -0
  514. package/dist/bigconsole/components/parser/TestPanel.d.ts +1 -0
  515. package/dist/bigconsole/components/parser/TestPanel.d.ts.map +1 -0
  516. package/dist/bigconsole/components/parser/index.d.ts +1 -0
  517. package/dist/bigconsole/components/parser/index.d.ts.map +1 -0
  518. package/dist/bigconsole/components/parser/parserFieldStyles.d.ts +1 -0
  519. package/dist/bigconsole/components/parser/parserFieldStyles.d.ts.map +1 -0
  520. package/dist/bigconsole/components/pipeline/PipelineCard.d.ts +1 -0
  521. package/dist/bigconsole/components/pipeline/PipelineCard.d.ts.map +1 -0
  522. package/dist/bigconsole/components/pipeline/PipelineCard.js +2 -0
  523. package/dist/bigconsole/components/pipeline/PipelineCard.js.map +1 -0
  524. package/dist/bigconsole/components/pipeline/PipelineDeleteDialog.d.ts +1 -0
  525. package/dist/bigconsole/components/pipeline/PipelineDeleteDialog.d.ts.map +1 -0
  526. package/dist/bigconsole/components/pipeline/PipelineDeleteDialog.js +2 -0
  527. package/dist/bigconsole/components/pipeline/PipelineDeleteDialog.js.map +1 -0
  528. package/dist/bigconsole/components/pipeline/PipelineScopePicker.d.ts +1 -0
  529. package/dist/bigconsole/components/pipeline/PipelineScopePicker.d.ts.map +1 -0
  530. package/dist/bigconsole/components/pipeline/PipelineScopePicker.js +2 -0
  531. package/dist/bigconsole/components/pipeline/PipelineScopePicker.js.map +1 -0
  532. package/dist/bigconsole/components/pipeline/PipelineStatusBadge.d.ts +1 -0
  533. package/dist/bigconsole/components/pipeline/PipelineStatusBadge.d.ts.map +1 -0
  534. package/dist/bigconsole/components/pipeline/PipelineStatusBadge.js +2 -0
  535. package/dist/bigconsole/components/pipeline/PipelineStatusBadge.js.map +1 -0
  536. package/dist/bigconsole/components/pipeline/index.d.ts +1 -0
  537. package/dist/bigconsole/components/pipeline/index.d.ts.map +1 -0
  538. package/dist/bigconsole/components/preview/AiPreviewContent.d.ts +1 -0
  539. package/dist/bigconsole/components/preview/AiPreviewContent.d.ts.map +1 -0
  540. package/dist/bigconsole/components/preview/AiPreviewContent.js +2 -0
  541. package/dist/bigconsole/components/preview/AiPreviewContent.js.map +1 -0
  542. package/dist/bigconsole/components/preview/AiPreviewMiniPanel.d.ts +1 -0
  543. package/dist/bigconsole/components/preview/AiPreviewMiniPanel.d.ts.map +1 -0
  544. package/dist/bigconsole/components/preview/AiPreviewMiniPanel.js +2 -0
  545. package/dist/bigconsole/components/preview/AiPreviewMiniPanel.js.map +1 -0
  546. package/dist/bigconsole/components/preview/AiPreviewPanel.d.ts +1 -0
  547. package/dist/bigconsole/components/preview/AiPreviewPanel.d.ts.map +1 -0
  548. package/dist/bigconsole/components/preview/AiPreviewPanel.js +2 -0
  549. package/dist/bigconsole/components/preview/AiPreviewPanel.js.map +1 -0
  550. package/dist/bigconsole/components/preview/parserPreview.d.ts +1 -0
  551. package/dist/bigconsole/components/preview/parserPreview.d.ts.map +1 -0
  552. package/dist/bigconsole/components/preview/parserPreview.js +2 -0
  553. package/dist/bigconsole/components/preview/parserPreview.js.map +1 -0
  554. package/dist/bigconsole/components/preview/previewShared.d.ts +1 -0
  555. package/dist/bigconsole/components/preview/previewShared.d.ts.map +1 -0
  556. package/dist/bigconsole/components/preview/previewShared.js +2 -0
  557. package/dist/bigconsole/components/preview/previewShared.js.map +1 -0
  558. package/dist/bigconsole/components/widgets/ActionConfigDialog.d.ts +1 -0
  559. package/dist/bigconsole/components/widgets/ActionConfigDialog.d.ts.map +1 -0
  560. package/dist/bigconsole/components/widgets/ActionConfigDialog.js +2 -0
  561. package/dist/bigconsole/components/widgets/ActionConfigDialog.js.map +1 -0
  562. package/dist/bigconsole/components/widgets/DrilldownConfigPanel.d.ts +1 -0
  563. package/dist/bigconsole/components/widgets/DrilldownConfigPanel.d.ts.map +1 -0
  564. package/dist/bigconsole/components/widgets/DrilldownConfigPanel.js +2 -0
  565. package/dist/bigconsole/components/widgets/DrilldownConfigPanel.js.map +1 -0
  566. package/dist/bigconsole/components/widgets/PropertiesPanel.d.ts +1 -0
  567. package/dist/bigconsole/components/widgets/PropertiesPanel.d.ts.map +1 -0
  568. package/dist/bigconsole/components/widgets/PropertiesPanel.js +2 -0
  569. package/dist/bigconsole/components/widgets/PropertiesPanel.js.map +1 -0
  570. package/dist/bigconsole/components/widgets/WidgetErrorBoundary.d.ts +1 -0
  571. package/dist/bigconsole/components/widgets/WidgetErrorBoundary.d.ts.map +1 -0
  572. package/dist/bigconsole/components/widgets/WidgetErrorBoundary.js +2 -0
  573. package/dist/bigconsole/components/widgets/WidgetErrorBoundary.js.map +1 -0
  574. package/dist/bigconsole/components/widgets/WidgetHeader.d.ts +1 -0
  575. package/dist/bigconsole/components/widgets/WidgetHeader.d.ts.map +1 -0
  576. package/dist/bigconsole/components/widgets/WidgetHeader.js +2 -0
  577. package/dist/bigconsole/components/widgets/WidgetHeader.js.map +1 -0
  578. package/dist/bigconsole/components/widgets/WidgetMenu.d.ts +1 -0
  579. package/dist/bigconsole/components/widgets/WidgetMenu.d.ts.map +1 -0
  580. package/dist/bigconsole/components/widgets/WidgetMenu.js +2 -0
  581. package/dist/bigconsole/components/widgets/WidgetMenu.js.map +1 -0
  582. package/dist/bigconsole/components/widgets/WidgetRegistry.d.ts +1 -0
  583. package/dist/bigconsole/components/widgets/WidgetRegistry.d.ts.map +1 -0
  584. package/dist/bigconsole/components/widgets/WidgetRegistry.js +3 -0
  585. package/dist/bigconsole/components/widgets/WidgetRegistry.js.map +1 -0
  586. package/dist/bigconsole/components/widgets/WidgetTypeSelector.d.ts +1 -0
  587. package/dist/bigconsole/components/widgets/WidgetTypeSelector.d.ts.map +1 -0
  588. package/dist/bigconsole/components/widgets/WidgetWrapper.d.ts +1 -0
  589. package/dist/bigconsole/components/widgets/WidgetWrapper.d.ts.map +1 -0
  590. package/dist/bigconsole/components/widgets/WidgetWrapper.js +2 -0
  591. package/dist/bigconsole/components/widgets/WidgetWrapper.js.map +1 -0
  592. package/dist/bigconsole/components/widgets/actionConfig.d.ts +1 -0
  593. package/dist/bigconsole/components/widgets/actionConfig.d.ts.map +1 -0
  594. package/dist/bigconsole/components/widgets/actionConfig.js +2 -0
  595. package/dist/bigconsole/components/widgets/actionConfig.js.map +1 -0
  596. package/dist/bigconsole/components/widgets/adaptive-card/AdaptiveCardWidget.d.ts +1 -0
  597. package/dist/bigconsole/components/widgets/adaptive-card/AdaptiveCardWidget.d.ts.map +1 -0
  598. package/dist/bigconsole/components/widgets/adaptive-card/AdaptiveCardWidget.js +2 -0
  599. package/dist/bigconsole/components/widgets/adaptive-card/AdaptiveCardWidget.js.map +1 -0
  600. package/dist/bigconsole/components/widgets/adaptive-card/index.d.ts +1 -0
  601. package/dist/bigconsole/components/widgets/adaptive-card/index.d.ts.map +1 -0
  602. package/dist/bigconsole/components/widgets/calendar/CalendarView.d.ts +1 -0
  603. package/dist/bigconsole/components/widgets/calendar/CalendarView.d.ts.map +1 -0
  604. package/dist/bigconsole/components/widgets/calendar/CalendarView.js +2 -0
  605. package/dist/bigconsole/components/widgets/calendar/CalendarView.js.map +1 -0
  606. package/dist/bigconsole/components/widgets/calendar/CalendarWidget.d.ts +1 -0
  607. package/dist/bigconsole/components/widgets/calendar/CalendarWidget.d.ts.map +1 -0
  608. package/dist/bigconsole/components/widgets/calendar/CalendarWidget.js +2 -0
  609. package/dist/bigconsole/components/widgets/calendar/CalendarWidget.js.map +1 -0
  610. package/dist/bigconsole/components/widgets/calendar/index.d.ts +1 -0
  611. package/dist/bigconsole/components/widgets/calendar/index.d.ts.map +1 -0
  612. package/dist/bigconsole/components/widgets/chart/ChartConfig.d.ts +1 -0
  613. package/dist/bigconsole/components/widgets/chart/ChartConfig.d.ts.map +1 -0
  614. package/dist/bigconsole/components/widgets/chart/ChartConfig.js +2 -0
  615. package/dist/bigconsole/components/widgets/chart/ChartConfig.js.map +1 -0
  616. package/dist/bigconsole/components/widgets/chart/ChartLegend.d.ts +1 -0
  617. package/dist/bigconsole/components/widgets/chart/ChartLegend.d.ts.map +1 -0
  618. package/dist/bigconsole/components/widgets/chart/ChartLegend.js +2 -0
  619. package/dist/bigconsole/components/widgets/chart/ChartLegend.js.map +1 -0
  620. package/dist/bigconsole/components/widgets/chart/ChartTooltip.d.ts +1 -0
  621. package/dist/bigconsole/components/widgets/chart/ChartTooltip.d.ts.map +1 -0
  622. package/dist/bigconsole/components/widgets/chart/ChartTooltip.js +2 -0
  623. package/dist/bigconsole/components/widgets/chart/ChartTooltip.js.map +1 -0
  624. package/dist/bigconsole/components/widgets/chart/ChartWidget.d.ts +1 -0
  625. package/dist/bigconsole/components/widgets/chart/ChartWidget.d.ts.map +1 -0
  626. package/dist/bigconsole/components/widgets/chart/ChartWidget.js +2 -0
  627. package/dist/bigconsole/components/widgets/chart/ChartWidget.js.map +1 -0
  628. package/dist/bigconsole/components/widgets/chart/charts/AreaChart.d.ts +1 -0
  629. package/dist/bigconsole/components/widgets/chart/charts/AreaChart.d.ts.map +1 -0
  630. package/dist/bigconsole/components/widgets/chart/charts/AreaChart.js +2 -0
  631. package/dist/bigconsole/components/widgets/chart/charts/AreaChart.js.map +1 -0
  632. package/dist/bigconsole/components/widgets/chart/charts/BarChart.d.ts +1 -0
  633. package/dist/bigconsole/components/widgets/chart/charts/BarChart.d.ts.map +1 -0
  634. package/dist/bigconsole/components/widgets/chart/charts/BarChart.js +2 -0
  635. package/dist/bigconsole/components/widgets/chart/charts/BarChart.js.map +1 -0
  636. package/dist/bigconsole/components/widgets/chart/charts/ComboChart.d.ts +1 -0
  637. package/dist/bigconsole/components/widgets/chart/charts/ComboChart.d.ts.map +1 -0
  638. package/dist/bigconsole/components/widgets/chart/charts/ComboChart.js +2 -0
  639. package/dist/bigconsole/components/widgets/chart/charts/ComboChart.js.map +1 -0
  640. package/dist/bigconsole/components/widgets/chart/charts/FunnelChart.d.ts +1 -0
  641. package/dist/bigconsole/components/widgets/chart/charts/FunnelChart.d.ts.map +1 -0
  642. package/dist/bigconsole/components/widgets/chart/charts/FunnelChart.js +2 -0
  643. package/dist/bigconsole/components/widgets/chart/charts/FunnelChart.js.map +1 -0
  644. package/dist/bigconsole/components/widgets/chart/charts/LineChart.d.ts +1 -0
  645. package/dist/bigconsole/components/widgets/chart/charts/LineChart.d.ts.map +1 -0
  646. package/dist/bigconsole/components/widgets/chart/charts/LineChart.js +2 -0
  647. package/dist/bigconsole/components/widgets/chart/charts/LineChart.js.map +1 -0
  648. package/dist/bigconsole/components/widgets/chart/charts/PieChart.d.ts +1 -0
  649. package/dist/bigconsole/components/widgets/chart/charts/PieChart.d.ts.map +1 -0
  650. package/dist/bigconsole/components/widgets/chart/charts/PieChart.js +2 -0
  651. package/dist/bigconsole/components/widgets/chart/charts/PieChart.js.map +1 -0
  652. package/dist/bigconsole/components/widgets/chart/charts/ScatterChart.d.ts +1 -0
  653. package/dist/bigconsole/components/widgets/chart/charts/ScatterChart.d.ts.map +1 -0
  654. package/dist/bigconsole/components/widgets/chart/charts/ScatterChart.js +2 -0
  655. package/dist/bigconsole/components/widgets/chart/charts/ScatterChart.js.map +1 -0
  656. package/dist/bigconsole/components/widgets/chart/charts/WaterfallChart.d.ts +1 -0
  657. package/dist/bigconsole/components/widgets/chart/charts/WaterfallChart.d.ts.map +1 -0
  658. package/dist/bigconsole/components/widgets/chart/charts/WaterfallChart.js +2 -0
  659. package/dist/bigconsole/components/widgets/chart/charts/WaterfallChart.js.map +1 -0
  660. package/dist/bigconsole/components/widgets/chart/charts/index.d.ts +1 -0
  661. package/dist/bigconsole/components/widgets/chart/charts/index.d.ts.map +1 -0
  662. package/dist/bigconsole/components/widgets/chart/charts/referenceElements.d.ts +1 -0
  663. package/dist/bigconsole/components/widgets/chart/charts/referenceElements.d.ts.map +1 -0
  664. package/dist/bigconsole/components/widgets/chart/charts/referenceElements.js +2 -0
  665. package/dist/bigconsole/components/widgets/chart/charts/referenceElements.js.map +1 -0
  666. package/dist/bigconsole/components/widgets/chart/charts/types.d.ts +1 -0
  667. package/dist/bigconsole/components/widgets/chart/charts/types.d.ts.map +1 -0
  668. package/dist/bigconsole/components/widgets/chart/index.d.ts +1 -0
  669. package/dist/bigconsole/components/widgets/chart/index.d.ts.map +1 -0
  670. package/dist/bigconsole/components/widgets/comments/WidgetComments.d.ts +1 -0
  671. package/dist/bigconsole/components/widgets/comments/WidgetComments.d.ts.map +1 -0
  672. package/dist/bigconsole/components/widgets/comments/WidgetComments.js +2 -0
  673. package/dist/bigconsole/components/widgets/comments/WidgetComments.js.map +1 -0
  674. package/dist/bigconsole/components/widgets/custom/CustomWidget.d.ts +1 -0
  675. package/dist/bigconsole/components/widgets/custom/CustomWidget.d.ts.map +1 -0
  676. package/dist/bigconsole/components/widgets/custom/CustomWidget.js +133 -73
  677. package/dist/bigconsole/components/widgets/custom/CustomWidget.js.map +1 -0
  678. package/dist/bigconsole/components/widgets/custom/config.d.ts +1 -0
  679. package/dist/bigconsole/components/widgets/custom/config.d.ts.map +1 -0
  680. package/dist/bigconsole/components/widgets/custom/config.js +2 -0
  681. package/dist/bigconsole/components/widgets/custom/config.js.map +1 -0
  682. package/dist/bigconsole/components/widgets/custom/index.d.ts +1 -0
  683. package/dist/bigconsole/components/widgets/custom/index.d.ts.map +1 -0
  684. package/dist/bigconsole/components/widgets/custom/utils.d.ts +1 -0
  685. package/dist/bigconsole/components/widgets/custom/utils.d.ts.map +1 -0
  686. package/dist/bigconsole/components/widgets/custom/utils.js +2 -0
  687. package/dist/bigconsole/components/widgets/custom/utils.js.map +1 -0
  688. package/dist/bigconsole/components/widgets/event-logs/EventLogViewer.d.ts +1 -0
  689. package/dist/bigconsole/components/widgets/event-logs/EventLogViewer.d.ts.map +1 -0
  690. package/dist/bigconsole/components/widgets/event-logs/EventLogViewer.js +2 -0
  691. package/dist/bigconsole/components/widgets/event-logs/EventLogViewer.js.map +1 -0
  692. package/dist/bigconsole/components/widgets/event-logs/index.d.ts +1 -0
  693. package/dist/bigconsole/components/widgets/event-logs/index.d.ts.map +1 -0
  694. package/dist/bigconsole/components/widgets/form/FormWidget.d.ts +1 -0
  695. package/dist/bigconsole/components/widgets/form/FormWidget.d.ts.map +1 -0
  696. package/dist/bigconsole/components/widgets/form/FormWidget.js +2 -0
  697. package/dist/bigconsole/components/widgets/form/FormWidget.js.map +1 -0
  698. package/dist/bigconsole/components/widgets/form/index.d.ts +1 -0
  699. package/dist/bigconsole/components/widgets/form/index.d.ts.map +1 -0
  700. package/dist/bigconsole/components/widgets/funnel/index.d.ts +1 -0
  701. package/dist/bigconsole/components/widgets/funnel/index.d.ts.map +1 -0
  702. package/dist/bigconsole/components/widgets/funnel/index.js +2 -0
  703. package/dist/bigconsole/components/widgets/funnel/index.js.map +1 -0
  704. package/dist/bigconsole/components/widgets/gauge/CircularGauge.d.ts +1 -0
  705. package/dist/bigconsole/components/widgets/gauge/CircularGauge.d.ts.map +1 -0
  706. package/dist/bigconsole/components/widgets/gauge/CircularGauge.js +2 -0
  707. package/dist/bigconsole/components/widgets/gauge/CircularGauge.js.map +1 -0
  708. package/dist/bigconsole/components/widgets/gauge/GaugeConfig.d.ts +1 -0
  709. package/dist/bigconsole/components/widgets/gauge/GaugeConfig.d.ts.map +1 -0
  710. package/dist/bigconsole/components/widgets/gauge/GaugeConfig.js +2 -0
  711. package/dist/bigconsole/components/widgets/gauge/GaugeConfig.js.map +1 -0
  712. package/dist/bigconsole/components/widgets/gauge/GaugeWidget.d.ts +1 -0
  713. package/dist/bigconsole/components/widgets/gauge/GaugeWidget.d.ts.map +1 -0
  714. package/dist/bigconsole/components/widgets/gauge/GaugeWidget.js +2 -0
  715. package/dist/bigconsole/components/widgets/gauge/GaugeWidget.js.map +1 -0
  716. package/dist/bigconsole/components/widgets/gauge/LinearGauge.d.ts +1 -0
  717. package/dist/bigconsole/components/widgets/gauge/LinearGauge.d.ts.map +1 -0
  718. package/dist/bigconsole/components/widgets/gauge/LinearGauge.js +2 -0
  719. package/dist/bigconsole/components/widgets/gauge/LinearGauge.js.map +1 -0
  720. package/dist/bigconsole/components/widgets/gauge/index.d.ts +1 -0
  721. package/dist/bigconsole/components/widgets/gauge/index.d.ts.map +1 -0
  722. package/dist/bigconsole/components/widgets/heatmap/HeatmapConfig.d.ts +1 -0
  723. package/dist/bigconsole/components/widgets/heatmap/HeatmapConfig.d.ts.map +1 -0
  724. package/dist/bigconsole/components/widgets/heatmap/HeatmapConfig.js +2 -0
  725. package/dist/bigconsole/components/widgets/heatmap/HeatmapConfig.js.map +1 -0
  726. package/dist/bigconsole/components/widgets/heatmap/HeatmapWidget.d.ts +1 -0
  727. package/dist/bigconsole/components/widgets/heatmap/HeatmapWidget.d.ts.map +1 -0
  728. package/dist/bigconsole/components/widgets/heatmap/HeatmapWidget.js +2 -0
  729. package/dist/bigconsole/components/widgets/heatmap/HeatmapWidget.js.map +1 -0
  730. package/dist/bigconsole/components/widgets/heatmap/index.d.ts +1 -0
  731. package/dist/bigconsole/components/widgets/heatmap/index.d.ts.map +1 -0
  732. package/dist/bigconsole/components/widgets/iframe-widget/IframeWidget.d.ts +10 -28
  733. package/dist/bigconsole/components/widgets/iframe-widget/IframeWidget.d.ts.map +1 -0
  734. package/dist/bigconsole/components/widgets/iframe-widget/IframeWidget.js +44 -115
  735. package/dist/bigconsole/components/widgets/iframe-widget/IframeWidget.js.map +1 -0
  736. package/dist/bigconsole/components/widgets/iframe-widget/index.d.ts +2 -2
  737. package/dist/bigconsole/components/widgets/iframe-widget/index.d.ts.map +1 -0
  738. package/dist/bigconsole/components/widgets/iframe-widget/index.js +2 -3
  739. package/dist/bigconsole/components/widgets/index.d.ts +1 -0
  740. package/dist/bigconsole/components/widgets/index.d.ts.map +1 -0
  741. package/dist/bigconsole/components/widgets/kanban/KanbanView.d.ts +1 -0
  742. package/dist/bigconsole/components/widgets/kanban/KanbanView.d.ts.map +1 -0
  743. package/dist/bigconsole/components/widgets/kanban/KanbanView.js +2 -0
  744. package/dist/bigconsole/components/widgets/kanban/KanbanView.js.map +1 -0
  745. package/dist/bigconsole/components/widgets/kanban/KanbanWidget.d.ts +1 -0
  746. package/dist/bigconsole/components/widgets/kanban/KanbanWidget.d.ts.map +1 -0
  747. package/dist/bigconsole/components/widgets/kanban/KanbanWidget.js +2 -0
  748. package/dist/bigconsole/components/widgets/kanban/KanbanWidget.js.map +1 -0
  749. package/dist/bigconsole/components/widgets/kanban/index.d.ts +1 -0
  750. package/dist/bigconsole/components/widgets/kanban/index.d.ts.map +1 -0
  751. package/dist/bigconsole/components/widgets/kanban/model.d.ts +1 -0
  752. package/dist/bigconsole/components/widgets/kanban/model.d.ts.map +1 -0
  753. package/dist/bigconsole/components/widgets/kanban/model.js +2 -0
  754. package/dist/bigconsole/components/widgets/kanban/model.js.map +1 -0
  755. package/dist/bigconsole/components/widgets/kpi/KPIWidget.d.ts +1 -0
  756. package/dist/bigconsole/components/widgets/kpi/KPIWidget.d.ts.map +1 -0
  757. package/dist/bigconsole/components/widgets/kpi/KPIWidget.js +2 -0
  758. package/dist/bigconsole/components/widgets/kpi/KPIWidget.js.map +1 -0
  759. package/dist/bigconsole/components/widgets/kpi/index.d.ts +1 -0
  760. package/dist/bigconsole/components/widgets/kpi/index.d.ts.map +1 -0
  761. package/dist/bigconsole/components/widgets/kpi-comparison/KPIComparisonWidget.d.ts +1 -0
  762. package/dist/bigconsole/components/widgets/kpi-comparison/KPIComparisonWidget.d.ts.map +1 -0
  763. package/dist/bigconsole/components/widgets/kpi-comparison/KPIComparisonWidget.js +2 -0
  764. package/dist/bigconsole/components/widgets/kpi-comparison/KPIComparisonWidget.js.map +1 -0
  765. package/dist/bigconsole/components/widgets/kpi-comparison/index.d.ts +1 -0
  766. package/dist/bigconsole/components/widgets/kpi-comparison/index.d.ts.map +1 -0
  767. package/dist/bigconsole/components/widgets/list/ListConfig.d.ts +1 -0
  768. package/dist/bigconsole/components/widgets/list/ListConfig.d.ts.map +1 -0
  769. package/dist/bigconsole/components/widgets/list/ListConfig.js +2 -0
  770. package/dist/bigconsole/components/widgets/list/ListConfig.js.map +1 -0
  771. package/dist/bigconsole/components/widgets/list/ListItem.d.ts +1 -0
  772. package/dist/bigconsole/components/widgets/list/ListItem.d.ts.map +1 -0
  773. package/dist/bigconsole/components/widgets/list/ListItem.js +2 -0
  774. package/dist/bigconsole/components/widgets/list/ListItem.js.map +1 -0
  775. package/dist/bigconsole/components/widgets/list/ListWidget.d.ts +1 -0
  776. package/dist/bigconsole/components/widgets/list/ListWidget.d.ts.map +1 -0
  777. package/dist/bigconsole/components/widgets/list/ListWidget.js +2 -0
  778. package/dist/bigconsole/components/widgets/list/ListWidget.js.map +1 -0
  779. package/dist/bigconsole/components/widgets/list/index.d.ts +1 -0
  780. package/dist/bigconsole/components/widgets/list/index.d.ts.map +1 -0
  781. package/dist/bigconsole/components/widgets/map-widget/MapWidget.d.ts +1 -0
  782. package/dist/bigconsole/components/widgets/map-widget/MapWidget.d.ts.map +1 -0
  783. package/dist/bigconsole/components/widgets/map-widget/MapWidget.js +2 -0
  784. package/dist/bigconsole/components/widgets/map-widget/MapWidget.js.map +1 -0
  785. package/dist/bigconsole/components/widgets/map-widget/index.d.ts +1 -0
  786. package/dist/bigconsole/components/widgets/map-widget/index.d.ts.map +1 -0
  787. package/dist/bigconsole/components/widgets/metric-card/ComparisonBadge.d.ts +1 -0
  788. package/dist/bigconsole/components/widgets/metric-card/ComparisonBadge.d.ts.map +1 -0
  789. package/dist/bigconsole/components/widgets/metric-card/ComparisonBadge.js +2 -0
  790. package/dist/bigconsole/components/widgets/metric-card/ComparisonBadge.js.map +1 -0
  791. package/dist/bigconsole/components/widgets/metric-card/MetricCardConfig.d.ts +1 -0
  792. package/dist/bigconsole/components/widgets/metric-card/MetricCardConfig.d.ts.map +1 -0
  793. package/dist/bigconsole/components/widgets/metric-card/MetricCardConfig.js +2 -0
  794. package/dist/bigconsole/components/widgets/metric-card/MetricCardConfig.js.map +1 -0
  795. package/dist/bigconsole/components/widgets/metric-card/MetricCardWidget.d.ts +1 -0
  796. package/dist/bigconsole/components/widgets/metric-card/MetricCardWidget.d.ts.map +1 -0
  797. package/dist/bigconsole/components/widgets/metric-card/MetricCardWidget.js +2 -0
  798. package/dist/bigconsole/components/widgets/metric-card/MetricCardWidget.js.map +1 -0
  799. package/dist/bigconsole/components/widgets/metric-card/SparklineChart.d.ts +1 -0
  800. package/dist/bigconsole/components/widgets/metric-card/SparklineChart.d.ts.map +1 -0
  801. package/dist/bigconsole/components/widgets/metric-card/SparklineChart.js +2 -0
  802. package/dist/bigconsole/components/widgets/metric-card/SparklineChart.js.map +1 -0
  803. package/dist/bigconsole/components/widgets/metric-card/TrendIndicator.d.ts +1 -0
  804. package/dist/bigconsole/components/widgets/metric-card/TrendIndicator.d.ts.map +1 -0
  805. package/dist/bigconsole/components/widgets/metric-card/TrendIndicator.js +2 -0
  806. package/dist/bigconsole/components/widgets/metric-card/TrendIndicator.js.map +1 -0
  807. package/dist/bigconsole/components/widgets/metric-card/index.d.ts +1 -0
  808. package/dist/bigconsole/components/widgets/metric-card/index.d.ts.map +1 -0
  809. package/dist/bigconsole/components/widgets/pivot-table/PivotTableWidget.d.ts +1 -0
  810. package/dist/bigconsole/components/widgets/pivot-table/PivotTableWidget.d.ts.map +1 -0
  811. package/dist/bigconsole/components/widgets/pivot-table/PivotTableWidget.js +2 -0
  812. package/dist/bigconsole/components/widgets/pivot-table/PivotTableWidget.js.map +1 -0
  813. package/dist/bigconsole/components/widgets/pivot-table/index.d.ts +1 -0
  814. package/dist/bigconsole/components/widgets/pivot-table/index.d.ts.map +1 -0
  815. package/dist/bigconsole/components/widgets/progress/ProgressBar.d.ts +1 -0
  816. package/dist/bigconsole/components/widgets/progress/ProgressBar.d.ts.map +1 -0
  817. package/dist/bigconsole/components/widgets/progress/ProgressBar.js +2 -0
  818. package/dist/bigconsole/components/widgets/progress/ProgressBar.js.map +1 -0
  819. package/dist/bigconsole/components/widgets/progress/ProgressConfig.d.ts +1 -0
  820. package/dist/bigconsole/components/widgets/progress/ProgressConfig.d.ts.map +1 -0
  821. package/dist/bigconsole/components/widgets/progress/ProgressConfig.js +2 -0
  822. package/dist/bigconsole/components/widgets/progress/ProgressConfig.js.map +1 -0
  823. package/dist/bigconsole/components/widgets/progress/ProgressWidget.d.ts +1 -0
  824. package/dist/bigconsole/components/widgets/progress/ProgressWidget.d.ts.map +1 -0
  825. package/dist/bigconsole/components/widgets/progress/ProgressWidget.js +2 -0
  826. package/dist/bigconsole/components/widgets/progress/ProgressWidget.js.map +1 -0
  827. package/dist/bigconsole/components/widgets/progress/index.d.ts +1 -0
  828. package/dist/bigconsole/components/widgets/progress/index.d.ts.map +1 -0
  829. package/dist/bigconsole/components/widgets/retention/RetentionWidget.d.ts +1 -0
  830. package/dist/bigconsole/components/widgets/retention/RetentionWidget.d.ts.map +1 -0
  831. package/dist/bigconsole/components/widgets/retention/RetentionWidget.js +2 -0
  832. package/dist/bigconsole/components/widgets/retention/RetentionWidget.js.map +1 -0
  833. package/dist/bigconsole/components/widgets/retention/index.d.ts +1 -0
  834. package/dist/bigconsole/components/widgets/retention/index.d.ts.map +1 -0
  835. package/dist/bigconsole/components/widgets/states/EmptyState.d.ts +1 -0
  836. package/dist/bigconsole/components/widgets/states/EmptyState.d.ts.map +1 -0
  837. package/dist/bigconsole/components/widgets/states/EmptyState.js +2 -0
  838. package/dist/bigconsole/components/widgets/states/EmptyState.js.map +1 -0
  839. package/dist/bigconsole/components/widgets/states/ErrorState.d.ts +1 -0
  840. package/dist/bigconsole/components/widgets/states/ErrorState.d.ts.map +1 -0
  841. package/dist/bigconsole/components/widgets/states/ErrorState.js +2 -0
  842. package/dist/bigconsole/components/widgets/states/ErrorState.js.map +1 -0
  843. package/dist/bigconsole/components/widgets/states/LoadingState.d.ts +1 -0
  844. package/dist/bigconsole/components/widgets/states/LoadingState.d.ts.map +1 -0
  845. package/dist/bigconsole/components/widgets/states/LoadingState.js +2 -0
  846. package/dist/bigconsole/components/widgets/states/LoadingState.js.map +1 -0
  847. package/dist/bigconsole/components/widgets/states/index.d.ts +1 -0
  848. package/dist/bigconsole/components/widgets/states/index.d.ts.map +1 -0
  849. package/dist/bigconsole/components/widgets/table/TableCell.d.ts +1 -0
  850. package/dist/bigconsole/components/widgets/table/TableCell.d.ts.map +1 -0
  851. package/dist/bigconsole/components/widgets/table/TableCell.js +2 -0
  852. package/dist/bigconsole/components/widgets/table/TableCell.js.map +1 -0
  853. package/dist/bigconsole/components/widgets/table/TableConfig.d.ts +1 -0
  854. package/dist/bigconsole/components/widgets/table/TableConfig.d.ts.map +1 -0
  855. package/dist/bigconsole/components/widgets/table/TableConfig.js +2 -0
  856. package/dist/bigconsole/components/widgets/table/TableConfig.js.map +1 -0
  857. package/dist/bigconsole/components/widgets/table/TableHeader.d.ts +1 -0
  858. package/dist/bigconsole/components/widgets/table/TableHeader.d.ts.map +1 -0
  859. package/dist/bigconsole/components/widgets/table/TableHeader.js +2 -0
  860. package/dist/bigconsole/components/widgets/table/TableHeader.js.map +1 -0
  861. package/dist/bigconsole/components/widgets/table/TablePagination.d.ts +1 -0
  862. package/dist/bigconsole/components/widgets/table/TablePagination.d.ts.map +1 -0
  863. package/dist/bigconsole/components/widgets/table/TablePagination.js +2 -0
  864. package/dist/bigconsole/components/widgets/table/TablePagination.js.map +1 -0
  865. package/dist/bigconsole/components/widgets/table/TableWidget.d.ts +1 -0
  866. package/dist/bigconsole/components/widgets/table/TableWidget.d.ts.map +1 -0
  867. package/dist/bigconsole/components/widgets/table/TableWidget.js +2 -0
  868. package/dist/bigconsole/components/widgets/table/TableWidget.js.map +1 -0
  869. package/dist/bigconsole/components/widgets/table/cellLink.d.ts +1 -0
  870. package/dist/bigconsole/components/widgets/table/cellLink.d.ts.map +1 -0
  871. package/dist/bigconsole/components/widgets/table/cellLink.js +2 -0
  872. package/dist/bigconsole/components/widgets/table/cellLink.js.map +1 -0
  873. package/dist/bigconsole/components/widgets/table/index.d.ts +1 -0
  874. package/dist/bigconsole/components/widgets/table/index.d.ts.map +1 -0
  875. package/dist/bigconsole/components/widgets/text-widget/TextWidget.d.ts +1 -0
  876. package/dist/bigconsole/components/widgets/text-widget/TextWidget.d.ts.map +1 -0
  877. package/dist/bigconsole/components/widgets/text-widget/TextWidget.js +29 -110
  878. package/dist/bigconsole/components/widgets/text-widget/TextWidget.js.map +1 -0
  879. package/dist/bigconsole/components/widgets/text-widget/index.d.ts +1 -0
  880. package/dist/bigconsole/components/widgets/text-widget/index.d.ts.map +1 -0
  881. package/dist/bigconsole/components/widgets/text-widget/textData.d.ts +1 -6
  882. package/dist/bigconsole/components/widgets/text-widget/textData.d.ts.map +1 -0
  883. package/dist/bigconsole/components/widgets/text-widget/textData.js +16 -17
  884. package/dist/bigconsole/components/widgets/text-widget/textData.js.map +1 -0
  885. package/dist/bigconsole/components/widgets/timeline/TimelineWidget.d.ts +1 -0
  886. package/dist/bigconsole/components/widgets/timeline/TimelineWidget.d.ts.map +1 -0
  887. package/dist/bigconsole/components/widgets/timeline/TimelineWidget.js +2 -0
  888. package/dist/bigconsole/components/widgets/timeline/TimelineWidget.js.map +1 -0
  889. package/dist/bigconsole/components/widgets/timeline/index.d.ts +1 -0
  890. package/dist/bigconsole/components/widgets/timeline/index.d.ts.map +1 -0
  891. package/dist/bigconsole/components/widgets/utils/conditionalFormat.d.ts +1 -0
  892. package/dist/bigconsole/components/widgets/utils/conditionalFormat.d.ts.map +1 -0
  893. package/dist/bigconsole/components/widgets/utils/conditionalFormat.js +2 -0
  894. package/dist/bigconsole/components/widgets/utils/conditionalFormat.js.map +1 -0
  895. package/dist/bigconsole/components/widgets/utils/inferFields.d.ts +1 -0
  896. package/dist/bigconsole/components/widgets/utils/inferFields.d.ts.map +1 -0
  897. package/dist/bigconsole/components/widgets/utils/inferFields.js +2 -0
  898. package/dist/bigconsole/components/widgets/utils/inferFields.js.map +1 -0
  899. package/dist/bigconsole/components/widgets/utils/targetProgress.d.ts +1 -0
  900. package/dist/bigconsole/components/widgets/utils/targetProgress.d.ts.map +1 -0
  901. package/dist/bigconsole/components/widgets/utils/targetProgress.js +2 -0
  902. package/dist/bigconsole/components/widgets/utils/targetProgress.js.map +1 -0
  903. package/dist/bigconsole/components/widgets/utils/translate.d.ts +1 -0
  904. package/dist/bigconsole/components/widgets/utils/translate.d.ts.map +1 -0
  905. package/dist/bigconsole/components/widgets/utils/translate.js +2 -0
  906. package/dist/bigconsole/components/widgets/utils/translate.js.map +1 -0
  907. package/dist/bigconsole/components/widgets/webhook-config/WebhookConfigPanel.d.ts +1 -0
  908. package/dist/bigconsole/components/widgets/webhook-config/WebhookConfigPanel.d.ts.map +1 -0
  909. package/dist/bigconsole/components/widgets/webhook-config/WebhookConfigPanel.js +2 -0
  910. package/dist/bigconsole/components/widgets/webhook-config/WebhookConfigPanel.js.map +1 -0
  911. package/dist/bigconsole/components/widgets/webhook-config/index.d.ts +1 -0
  912. package/dist/bigconsole/components/widgets/webhook-config/index.d.ts.map +1 -0
  913. package/dist/bigconsole/components/widgets/widget-actions/WidgetActions.d.ts +1 -0
  914. package/dist/bigconsole/components/widgets/widget-actions/WidgetActions.d.ts.map +1 -0
  915. package/dist/bigconsole/components/widgets/widget-actions/WidgetActions.js +2 -0
  916. package/dist/bigconsole/components/widgets/widget-actions/WidgetActions.js.map +1 -0
  917. package/dist/bigconsole/components/widgets/widget-actions/index.d.ts +1 -0
  918. package/dist/bigconsole/components/widgets/widget-actions/index.d.ts.map +1 -0
  919. package/dist/bigconsole/components/workflow/DataSinkMultiSelector.d.ts +1 -0
  920. package/dist/bigconsole/components/workflow/DataSinkMultiSelector.d.ts.map +1 -0
  921. package/dist/bigconsole/components/workflow/WorkflowCard.d.ts +1 -0
  922. package/dist/bigconsole/components/workflow/WorkflowCard.d.ts.map +1 -0
  923. package/dist/bigconsole/components/workflow/WorkflowCard.js +2 -0
  924. package/dist/bigconsole/components/workflow/WorkflowCard.js.map +1 -0
  925. package/dist/bigconsole/components/workflow/WorkflowDeleteDialog.d.ts +1 -0
  926. package/dist/bigconsole/components/workflow/WorkflowDeleteDialog.d.ts.map +1 -0
  927. package/dist/bigconsole/components/workflow/WorkflowDeleteDialog.js +2 -0
  928. package/dist/bigconsole/components/workflow/WorkflowDeleteDialog.js.map +1 -0
  929. package/dist/bigconsole/components/workflow/WorkflowDesignPreview.d.ts +1 -0
  930. package/dist/bigconsole/components/workflow/WorkflowDesignPreview.d.ts.map +1 -0
  931. package/dist/bigconsole/components/workflow/WorkflowDesignPreview.js +2 -0
  932. package/dist/bigconsole/components/workflow/WorkflowDesignPreview.js.map +1 -0
  933. package/dist/bigconsole/components/workflow/WorkflowOpenGuard.d.ts +1 -0
  934. package/dist/bigconsole/components/workflow/WorkflowOpenGuard.d.ts.map +1 -0
  935. package/dist/bigconsole/components/workflow/WorkflowOpenGuard.js +2 -0
  936. package/dist/bigconsole/components/workflow/WorkflowOpenGuard.js.map +1 -0
  937. package/dist/bigconsole/components/workflow/WorkflowSinkLinkForm.d.ts +1 -0
  938. package/dist/bigconsole/components/workflow/WorkflowSinkLinkForm.d.ts.map +1 -0
  939. package/dist/bigconsole/components/workflow/WorkflowSinkLinkForm.js +2 -0
  940. package/dist/bigconsole/components/workflow/WorkflowSinkLinkForm.js.map +1 -0
  941. package/dist/bigconsole/components/workflow/WorkflowStatusBadge.d.ts +1 -0
  942. package/dist/bigconsole/components/workflow/WorkflowStatusBadge.d.ts.map +1 -0
  943. package/dist/bigconsole/components/workflow/WorkflowStatusBadge.js +2 -0
  944. package/dist/bigconsole/components/workflow/WorkflowStatusBadge.js.map +1 -0
  945. package/dist/bigconsole/components/workflow/index.d.ts +1 -0
  946. package/dist/bigconsole/components/workflow/index.d.ts.map +1 -0
  947. package/dist/bigconsole/constants/backendErrors.d.ts +1 -0
  948. package/dist/bigconsole/constants/backendErrors.d.ts.map +1 -0
  949. package/dist/bigconsole/constants/backendErrors.js +96 -0
  950. package/dist/bigconsole/constants/backendErrors.js.map +1 -0
  951. package/dist/bigconsole/constants.d.ts +1 -0
  952. package/dist/bigconsole/constants.d.ts.map +1 -0
  953. package/dist/bigconsole/constants.js +2 -0
  954. package/dist/bigconsole/constants.js.map +1 -0
  955. package/dist/bigconsole/context/BigConsoleContext.d.ts +1 -10
  956. package/dist/bigconsole/context/BigConsoleContext.d.ts.map +1 -0
  957. package/dist/bigconsole/context/BigConsoleContext.js +32 -47
  958. package/dist/bigconsole/context/BigConsoleContext.js.map +1 -0
  959. package/dist/bigconsole/context/index.d.ts +2 -1
  960. package/dist/bigconsole/context/index.d.ts.map +1 -0
  961. package/dist/bigconsole/contexts/CrossFilterContext.d.ts +1 -0
  962. package/dist/bigconsole/contexts/CrossFilterContext.d.ts.map +1 -0
  963. package/dist/bigconsole/contexts/CrossFilterContext.js +2 -0
  964. package/dist/bigconsole/contexts/CrossFilterContext.js.map +1 -0
  965. package/dist/bigconsole/contexts/NavigationContext.d.ts +1 -0
  966. package/dist/bigconsole/contexts/NavigationContext.d.ts.map +1 -0
  967. package/dist/bigconsole/contexts/NavigationContext.js +2 -0
  968. package/dist/bigconsole/contexts/NavigationContext.js.map +1 -0
  969. package/dist/bigconsole/contexts/index.d.ts +1 -0
  970. package/dist/bigconsole/contexts/index.d.ts.map +1 -0
  971. package/dist/bigconsole/customWidget/CustomWidgetBuilderSheet.d.ts +1 -0
  972. package/dist/bigconsole/customWidget/CustomWidgetBuilderSheet.d.ts.map +1 -0
  973. package/dist/bigconsole/customWidget/CustomWidgetBuilderSheet.js +2 -0
  974. package/dist/bigconsole/customWidget/CustomWidgetBuilderSheet.js.map +1 -0
  975. package/dist/bigconsole/customWidget/CustomWidgetProposalPanel.d.ts +1 -0
  976. package/dist/bigconsole/customWidget/CustomWidgetProposalPanel.d.ts.map +1 -0
  977. package/dist/bigconsole/customWidget/CustomWidgetProposalPanel.js +2 -0
  978. package/dist/bigconsole/customWidget/CustomWidgetProposalPanel.js.map +1 -0
  979. package/dist/bigconsole/customWidget/index.d.ts +1 -0
  980. package/dist/bigconsole/customWidget/index.d.ts.map +1 -0
  981. package/dist/bigconsole/customWidget/proposalContract.d.ts +1 -0
  982. package/dist/bigconsole/customWidget/proposalContract.d.ts.map +1 -0
  983. package/dist/bigconsole/customWidget/proposalContract.js +2 -0
  984. package/dist/bigconsole/customWidget/proposalContract.js.map +1 -0
  985. package/dist/bigconsole/customWidget/proposalSource.d.ts +1 -0
  986. package/dist/bigconsole/customWidget/proposalSource.d.ts.map +1 -0
  987. package/dist/bigconsole/customWidget/proposalSource.js +2 -0
  988. package/dist/bigconsole/customWidget/proposalSource.js.map +1 -0
  989. package/dist/bigconsole/graphql/apollo-compat.d.ts +1 -0
  990. package/dist/bigconsole/graphql/apollo-compat.d.ts.map +1 -0
  991. package/dist/bigconsole/graphql/storeTemplates.d.ts +1 -0
  992. package/dist/bigconsole/graphql/storeTemplates.d.ts.map +1 -0
  993. package/dist/bigconsole/graphql/storeTemplates.js +2 -0
  994. package/dist/bigconsole/graphql/storeTemplates.js.map +1 -0
  995. package/dist/bigconsole/hooks/index.d.ts +1 -0
  996. package/dist/bigconsole/hooks/index.d.ts.map +1 -0
  997. package/dist/bigconsole/hooks/useActivePage.d.ts +1 -0
  998. package/dist/bigconsole/hooks/useActivePage.d.ts.map +1 -0
  999. package/dist/bigconsole/hooks/useActivePage.js +2 -0
  1000. package/dist/bigconsole/hooks/useActivePage.js.map +1 -0
  1001. package/dist/bigconsole/hooks/useAutoRefresh.d.ts +1 -0
  1002. package/dist/bigconsole/hooks/useAutoRefresh.d.ts.map +1 -0
  1003. package/dist/bigconsole/hooks/useAutoRefresh.js +2 -0
  1004. package/dist/bigconsole/hooks/useAutoRefresh.js.map +1 -0
  1005. package/dist/bigconsole/hooks/useBigConsoleAnalytics.d.ts +1 -0
  1006. package/dist/bigconsole/hooks/useBigConsoleAnalytics.d.ts.map +1 -0
  1007. package/dist/bigconsole/hooks/useBigConsoleAnalytics.js +2 -0
  1008. package/dist/bigconsole/hooks/useBigConsoleAnalytics.js.map +1 -0
  1009. package/dist/bigconsole/hooks/useBigConsoleSettings.d.ts +1 -0
  1010. package/dist/bigconsole/hooks/useBigConsoleSettings.d.ts.map +1 -0
  1011. package/dist/bigconsole/hooks/useBigConsoleSettings.js +2 -0
  1012. package/dist/bigconsole/hooks/useBigConsoleSettings.js.map +1 -0
  1013. package/dist/bigconsole/hooks/useCrossFilter.d.ts +1 -0
  1014. package/dist/bigconsole/hooks/useCrossFilter.d.ts.map +1 -0
  1015. package/dist/bigconsole/hooks/useCrossFilter.js +2 -0
  1016. package/dist/bigconsole/hooks/useCrossFilter.js.map +1 -0
  1017. package/dist/bigconsole/hooks/useDashboardEmbedPolicy.d.ts +1 -0
  1018. package/dist/bigconsole/hooks/useDashboardEmbedPolicy.d.ts.map +1 -0
  1019. package/dist/bigconsole/hooks/useDashboardEmbedPolicy.js +2 -0
  1020. package/dist/bigconsole/hooks/useDashboardEmbedPolicy.js.map +1 -0
  1021. package/dist/bigconsole/hooks/useDashboardImageExport.d.ts +1 -0
  1022. package/dist/bigconsole/hooks/useDashboardImageExport.d.ts.map +1 -0
  1023. package/dist/bigconsole/hooks/useDashboardImageExport.js +2 -0
  1024. package/dist/bigconsole/hooks/useDashboardImageExport.js.map +1 -0
  1025. package/dist/bigconsole/hooks/useDashboardOperations.d.ts +1 -0
  1026. package/dist/bigconsole/hooks/useDashboardOperations.d.ts.map +1 -0
  1027. package/dist/bigconsole/hooks/useDashboardOperations.js +2 -0
  1028. package/dist/bigconsole/hooks/useDashboardOperations.js.map +1 -0
  1029. package/dist/bigconsole/hooks/useDashboardSharing.d.ts +1 -0
  1030. package/dist/bigconsole/hooks/useDashboardSharing.d.ts.map +1 -0
  1031. package/dist/bigconsole/hooks/useDashboardSharing.js +2 -0
  1032. package/dist/bigconsole/hooks/useDashboardSharing.js.map +1 -0
  1033. package/dist/bigconsole/hooks/useDashboardTemplates.d.ts +1 -0
  1034. package/dist/bigconsole/hooks/useDashboardTemplates.d.ts.map +1 -0
  1035. package/dist/bigconsole/hooks/useDashboardViews.d.ts +1 -0
  1036. package/dist/bigconsole/hooks/useDashboardViews.d.ts.map +1 -0
  1037. package/dist/bigconsole/hooks/useDashboardViews.js +2 -0
  1038. package/dist/bigconsole/hooks/useDashboardViews.js.map +1 -0
  1039. package/dist/bigconsole/hooks/useDataSinkAlerts.d.ts +24 -0
  1040. package/dist/bigconsole/hooks/useDataSinkAlerts.d.ts.map +1 -0
  1041. package/dist/bigconsole/hooks/useDataSinkAlerts.js +140 -113
  1042. package/dist/bigconsole/hooks/useDataSinkAlerts.js.map +1 -0
  1043. package/dist/bigconsole/hooks/useDataSinkOperations.d.ts +1 -7
  1044. package/dist/bigconsole/hooks/useDataSinkOperations.d.ts.map +1 -0
  1045. package/dist/bigconsole/hooks/useDataSinkOperations.js +100 -109
  1046. package/dist/bigconsole/hooks/useDataSinkOperations.js.map +1 -0
  1047. package/dist/bigconsole/hooks/useDataSinkSubscription.d.ts +1 -0
  1048. package/dist/bigconsole/hooks/useDataSinkSubscription.d.ts.map +1 -0
  1049. package/dist/bigconsole/hooks/useDataSinkSubscription.js +3 -0
  1050. package/dist/bigconsole/hooks/useDataSinkSubscription.js.map +1 -0
  1051. package/dist/bigconsole/hooks/useDrilldown.d.ts +1 -0
  1052. package/dist/bigconsole/hooks/useDrilldown.d.ts.map +1 -0
  1053. package/dist/bigconsole/hooks/useDrilldown.js +70 -69
  1054. package/dist/bigconsole/hooks/useDrilldown.js.map +1 -0
  1055. package/dist/bigconsole/hooks/useDrilldownOperations.d.ts +1 -0
  1056. package/dist/bigconsole/hooks/useDrilldownOperations.d.ts.map +1 -0
  1057. package/dist/bigconsole/hooks/useDrilldownOperations.js +2 -0
  1058. package/dist/bigconsole/hooks/useDrilldownOperations.js.map +1 -0
  1059. package/dist/bigconsole/hooks/useEventLogs.d.ts +1 -0
  1060. package/dist/bigconsole/hooks/useEventLogs.d.ts.map +1 -0
  1061. package/dist/bigconsole/hooks/useEventLogs.js +2 -0
  1062. package/dist/bigconsole/hooks/useEventLogs.js.map +1 -0
  1063. package/dist/bigconsole/hooks/useEventWebhooks.d.ts +1 -0
  1064. package/dist/bigconsole/hooks/useEventWebhooks.d.ts.map +1 -0
  1065. package/dist/bigconsole/hooks/useEventWebhooks.js +2 -0
  1066. package/dist/bigconsole/hooks/useEventWebhooks.js.map +1 -0
  1067. package/dist/bigconsole/hooks/useExportDashboard.d.ts +1 -0
  1068. package/dist/bigconsole/hooks/useExportDashboard.d.ts.map +1 -0
  1069. package/dist/bigconsole/hooks/useExportDashboard.js +2 -0
  1070. package/dist/bigconsole/hooks/useExportDashboard.js.map +1 -0
  1071. package/dist/bigconsole/hooks/useExportDataSink.d.ts +1 -0
  1072. package/dist/bigconsole/hooks/useExportDataSink.d.ts.map +1 -0
  1073. package/dist/bigconsole/hooks/useExportDataSink.js +3 -1
  1074. package/dist/bigconsole/hooks/useExportDataSink.js.map +1 -0
  1075. package/dist/bigconsole/hooks/useExportParser.d.ts +1 -0
  1076. package/dist/bigconsole/hooks/useExportParser.d.ts.map +1 -0
  1077. package/dist/bigconsole/hooks/useExportParser.js +2 -0
  1078. package/dist/bigconsole/hooks/useExportParser.js.map +1 -0
  1079. package/dist/bigconsole/hooks/useFilterPresets.d.ts +1 -0
  1080. package/dist/bigconsole/hooks/useFilterPresets.d.ts.map +1 -0
  1081. package/dist/bigconsole/hooks/useFilterPresets.js +2 -0
  1082. package/dist/bigconsole/hooks/useFilterPresets.js.map +1 -0
  1083. package/dist/bigconsole/hooks/useFilterUrlSync.d.ts +1 -0
  1084. package/dist/bigconsole/hooks/useFilterUrlSync.d.ts.map +1 -0
  1085. package/dist/bigconsole/hooks/useFilterUrlSync.js +2 -0
  1086. package/dist/bigconsole/hooks/useFilterUrlSync.js.map +1 -0
  1087. package/dist/bigconsole/hooks/useGlobalFilters.d.ts +1 -0
  1088. package/dist/bigconsole/hooks/useGlobalFilters.d.ts.map +1 -0
  1089. package/dist/bigconsole/hooks/useGlobalFilters.js +2 -0
  1090. package/dist/bigconsole/hooks/useGlobalFilters.js.map +1 -0
  1091. package/dist/bigconsole/hooks/useImportDashboard.d.ts +1 -0
  1092. package/dist/bigconsole/hooks/useImportDashboard.d.ts.map +1 -0
  1093. package/dist/bigconsole/hooks/useImportDashboard.js +2 -0
  1094. package/dist/bigconsole/hooks/useImportDashboard.js.map +1 -0
  1095. package/dist/bigconsole/hooks/useImportDataSink.d.ts +1 -0
  1096. package/dist/bigconsole/hooks/useImportDataSink.d.ts.map +1 -0
  1097. package/dist/bigconsole/hooks/useImportDataSink.js +92 -102
  1098. package/dist/bigconsole/hooks/useImportDataSink.js.map +1 -0
  1099. package/dist/bigconsole/hooks/useImportParser.d.ts +1 -0
  1100. package/dist/bigconsole/hooks/useImportParser.d.ts.map +1 -0
  1101. package/dist/bigconsole/hooks/useImportParser.js +2 -0
  1102. package/dist/bigconsole/hooks/useImportParser.js.map +1 -0
  1103. package/dist/bigconsole/hooks/useInstalledWidgets.d.ts +1 -0
  1104. package/dist/bigconsole/hooks/useInstalledWidgets.d.ts.map +1 -0
  1105. package/dist/bigconsole/hooks/useInstalledWidgets.js +2 -0
  1106. package/dist/bigconsole/hooks/useInstalledWidgets.js.map +1 -0
  1107. package/dist/bigconsole/hooks/useModalFocusTrap.d.ts +1 -0
  1108. package/dist/bigconsole/hooks/useModalFocusTrap.d.ts.map +1 -0
  1109. package/dist/bigconsole/hooks/useModalFocusTrap.js +2 -0
  1110. package/dist/bigconsole/hooks/useModalFocusTrap.js.map +1 -0
  1111. package/dist/bigconsole/hooks/usePageOperations.d.ts +1 -0
  1112. package/dist/bigconsole/hooks/usePageOperations.d.ts.map +1 -0
  1113. package/dist/bigconsole/hooks/usePageOperations.js +2 -0
  1114. package/dist/bigconsole/hooks/usePageOperations.js.map +1 -0
  1115. package/dist/bigconsole/hooks/useParserOperations.d.ts +1 -0
  1116. package/dist/bigconsole/hooks/useParserOperations.d.ts.map +1 -0
  1117. package/dist/bigconsole/hooks/useParserOperations.js +2 -0
  1118. package/dist/bigconsole/hooks/useParserOperations.js.map +1 -0
  1119. package/dist/bigconsole/hooks/usePipelineOperations.d.ts +1 -0
  1120. package/dist/bigconsole/hooks/usePipelineOperations.d.ts.map +1 -0
  1121. package/dist/bigconsole/hooks/usePipelineOperations.js +2 -0
  1122. package/dist/bigconsole/hooks/usePipelineOperations.js.map +1 -0
  1123. package/dist/bigconsole/hooks/useShareRecipients.d.ts +1 -0
  1124. package/dist/bigconsole/hooks/useShareRecipients.d.ts.map +1 -0
  1125. package/dist/bigconsole/hooks/useShareRecipients.js +2 -0
  1126. package/dist/bigconsole/hooks/useShareRecipients.js.map +1 -0
  1127. package/dist/bigconsole/hooks/useStoreDashboardTemplates.d.ts +1 -0
  1128. package/dist/bigconsole/hooks/useStoreDashboardTemplates.d.ts.map +1 -0
  1129. package/dist/bigconsole/hooks/useStoreDashboardTemplates.js +2 -0
  1130. package/dist/bigconsole/hooks/useStoreDashboardTemplates.js.map +1 -0
  1131. package/dist/bigconsole/hooks/useWidgetActions.d.ts +1 -0
  1132. package/dist/bigconsole/hooks/useWidgetActions.d.ts.map +1 -0
  1133. package/dist/bigconsole/hooks/useWidgetActions.js +2 -0
  1134. package/dist/bigconsole/hooks/useWidgetActions.js.map +1 -0
  1135. package/dist/bigconsole/hooks/useWidgetCatalog.d.ts +1 -0
  1136. package/dist/bigconsole/hooks/useWidgetCatalog.d.ts.map +1 -0
  1137. package/dist/bigconsole/hooks/useWidgetCatalog.js +2 -0
  1138. package/dist/bigconsole/hooks/useWidgetCatalog.js.map +1 -0
  1139. package/dist/bigconsole/hooks/useWidgetComments.d.ts +1 -0
  1140. package/dist/bigconsole/hooks/useWidgetComments.d.ts.map +1 -0
  1141. package/dist/bigconsole/hooks/useWidgetComments.js +2 -0
  1142. package/dist/bigconsole/hooks/useWidgetComments.js.map +1 -0
  1143. package/dist/bigconsole/hooks/useWidgetConfigPersist.d.ts +1 -0
  1144. package/dist/bigconsole/hooks/useWidgetConfigPersist.d.ts.map +1 -0
  1145. package/dist/bigconsole/hooks/useWidgetConfigPersist.js +2 -0
  1146. package/dist/bigconsole/hooks/useWidgetConfigPersist.js.map +1 -0
  1147. package/dist/bigconsole/hooks/useWidgetData.d.ts +1 -0
  1148. package/dist/bigconsole/hooks/useWidgetData.d.ts.map +1 -0
  1149. package/dist/bigconsole/hooks/useWidgetData.js +2 -0
  1150. package/dist/bigconsole/hooks/useWidgetData.js.map +1 -0
  1151. package/dist/bigconsole/hooks/useWidgetEvents.d.ts +1 -0
  1152. package/dist/bigconsole/hooks/useWidgetEvents.d.ts.map +1 -0
  1153. package/dist/bigconsole/hooks/useWidgetEvents.js +2 -0
  1154. package/dist/bigconsole/hooks/useWidgetEvents.js.map +1 -0
  1155. package/dist/bigconsole/hooks/useWidgetExport.d.ts +1 -0
  1156. package/dist/bigconsole/hooks/useWidgetExport.d.ts.map +1 -0
  1157. package/dist/bigconsole/hooks/useWidgetExport.js +2 -0
  1158. package/dist/bigconsole/hooks/useWidgetExport.js.map +1 -0
  1159. package/dist/bigconsole/hooks/useWidgetOperations.d.ts +1 -0
  1160. package/dist/bigconsole/hooks/useWidgetOperations.d.ts.map +1 -0
  1161. package/dist/bigconsole/hooks/useWidgetOperations.js +2 -0
  1162. package/dist/bigconsole/hooks/useWidgetOperations.js.map +1 -0
  1163. package/dist/bigconsole/hooks/useWorkflowOperations.d.ts +1 -0
  1164. package/dist/bigconsole/hooks/useWorkflowOperations.d.ts.map +1 -0
  1165. package/dist/bigconsole/hooks/useWorkflowOperations.js +2 -0
  1166. package/dist/bigconsole/hooks/useWorkflowOperations.js.map +1 -0
  1167. package/dist/bigconsole/index.d.ts +1 -0
  1168. package/dist/bigconsole/index.d.ts.map +1 -0
  1169. package/dist/bigconsole/modules/dashboard/index.d.ts +1 -0
  1170. package/dist/bigconsole/modules/dashboard/index.d.ts.map +1 -0
  1171. package/dist/bigconsole/modules/index.d.ts +1 -0
  1172. package/dist/bigconsole/modules/index.d.ts.map +1 -0
  1173. package/dist/bigconsole/modules/renderer/index.d.ts +1 -0
  1174. package/dist/bigconsole/modules/renderer/index.d.ts.map +1 -0
  1175. package/dist/bigconsole/modules/widget/index.d.ts +1 -0
  1176. package/dist/bigconsole/modules/widget/index.d.ts.map +1 -0
  1177. package/dist/bigconsole/pages/AdminPage.d.ts +1 -0
  1178. package/dist/bigconsole/pages/AdminPage.d.ts.map +1 -0
  1179. package/dist/bigconsole/pages/AdminPage.js +2 -0
  1180. package/dist/bigconsole/pages/AdminPage.js.map +1 -0
  1181. package/dist/bigconsole/pages/DashboardBuilderPage.d.ts +1 -0
  1182. package/dist/bigconsole/pages/DashboardBuilderPage.d.ts.map +1 -0
  1183. package/dist/bigconsole/pages/DashboardBuilderPage.js +2 -0
  1184. package/dist/bigconsole/pages/DashboardBuilderPage.js.map +1 -0
  1185. package/dist/bigconsole/pages/DashboardViewPage.d.ts +1 -0
  1186. package/dist/bigconsole/pages/DashboardViewPage.d.ts.map +1 -0
  1187. package/dist/bigconsole/pages/DashboardViewPage.js +207 -205
  1188. package/dist/bigconsole/pages/DashboardViewPage.js.map +1 -0
  1189. package/dist/bigconsole/pages/DashboardsPage.d.ts +1 -0
  1190. package/dist/bigconsole/pages/DashboardsPage.d.ts.map +1 -0
  1191. package/dist/bigconsole/pages/DashboardsPage.js +2 -0
  1192. package/dist/bigconsole/pages/DashboardsPage.js.map +1 -0
  1193. package/dist/bigconsole/pages/DataParsersPage.d.ts +1 -0
  1194. package/dist/bigconsole/pages/DataParsersPage.d.ts.map +1 -0
  1195. package/dist/bigconsole/pages/DataParsersPage.js +2 -0
  1196. package/dist/bigconsole/pages/DataParsersPage.js.map +1 -0
  1197. package/dist/bigconsole/pages/DataSinkAlertsPage.d.ts +1 -0
  1198. package/dist/bigconsole/pages/DataSinkAlertsPage.d.ts.map +1 -0
  1199. package/dist/bigconsole/pages/DataSinkAlertsPage.js +55 -53
  1200. package/dist/bigconsole/pages/DataSinkAlertsPage.js.map +1 -0
  1201. package/dist/bigconsole/pages/DataSinkBuilderPage.d.ts +1 -0
  1202. package/dist/bigconsole/pages/DataSinkBuilderPage.d.ts.map +1 -0
  1203. package/dist/bigconsole/pages/DataSinkBuilderPage.js +282 -312
  1204. package/dist/bigconsole/pages/DataSinkBuilderPage.js.map +1 -0
  1205. package/dist/bigconsole/pages/DataSinkViewPage.d.ts +1 -0
  1206. package/dist/bigconsole/pages/DataSinkViewPage.d.ts.map +1 -0
  1207. package/dist/bigconsole/pages/DataSinkViewPage.js +257 -256
  1208. package/dist/bigconsole/pages/DataSinkViewPage.js.map +1 -0
  1209. package/dist/bigconsole/pages/DataSinksPage.d.ts +1 -0
  1210. package/dist/bigconsole/pages/DataSinksPage.d.ts.map +1 -0
  1211. package/dist/bigconsole/pages/DataSinksPage.js +197 -196
  1212. package/dist/bigconsole/pages/DataSinksPage.js.map +1 -0
  1213. package/dist/bigconsole/pages/DataSourcesPage.d.ts +1 -0
  1214. package/dist/bigconsole/pages/DataSourcesPage.d.ts.map +1 -0
  1215. package/dist/bigconsole/pages/DataSourcesPage.js +2 -0
  1216. package/dist/bigconsole/pages/DataSourcesPage.js.map +1 -0
  1217. package/dist/bigconsole/pages/InsightsPage.d.ts +1 -0
  1218. package/dist/bigconsole/pages/InsightsPage.d.ts.map +1 -0
  1219. package/dist/bigconsole/pages/InsightsPage.js +2 -0
  1220. package/dist/bigconsole/pages/InsightsPage.js.map +1 -0
  1221. package/dist/bigconsole/pages/OverviewPage.d.ts +1 -0
  1222. package/dist/bigconsole/pages/OverviewPage.d.ts.map +1 -0
  1223. package/dist/bigconsole/pages/OverviewPage.js +2 -0
  1224. package/dist/bigconsole/pages/OverviewPage.js.map +1 -0
  1225. package/dist/bigconsole/pages/ParserBuilderPage.d.ts +1 -0
  1226. package/dist/bigconsole/pages/ParserBuilderPage.d.ts.map +1 -0
  1227. package/dist/bigconsole/pages/ParserBuilderPage.js +2 -0
  1228. package/dist/bigconsole/pages/ParserBuilderPage.js.map +1 -0
  1229. package/dist/bigconsole/pages/ParserViewPage.d.ts +1 -0
  1230. package/dist/bigconsole/pages/ParserViewPage.d.ts.map +1 -0
  1231. package/dist/bigconsole/pages/ParserViewPage.js +2 -0
  1232. package/dist/bigconsole/pages/ParserViewPage.js.map +1 -0
  1233. package/dist/bigconsole/pages/PipelineBuilderPage.d.ts +1 -0
  1234. package/dist/bigconsole/pages/PipelineBuilderPage.d.ts.map +1 -0
  1235. package/dist/bigconsole/pages/PipelineBuilderPage.js +2 -0
  1236. package/dist/bigconsole/pages/PipelineBuilderPage.js.map +1 -0
  1237. package/dist/bigconsole/pages/PipelineViewPage.d.ts +1 -0
  1238. package/dist/bigconsole/pages/PipelineViewPage.d.ts.map +1 -0
  1239. package/dist/bigconsole/pages/PipelineViewPage.js +2 -0
  1240. package/dist/bigconsole/pages/PipelineViewPage.js.map +1 -0
  1241. package/dist/bigconsole/pages/PipelinesPage.d.ts +1 -0
  1242. package/dist/bigconsole/pages/PipelinesPage.d.ts.map +1 -0
  1243. package/dist/bigconsole/pages/PipelinesPage.js +2 -0
  1244. package/dist/bigconsole/pages/PipelinesPage.js.map +1 -0
  1245. package/dist/bigconsole/pages/SettingsPage.d.ts +1 -0
  1246. package/dist/bigconsole/pages/SettingsPage.d.ts.map +1 -0
  1247. package/dist/bigconsole/pages/SettingsPage.js +2 -0
  1248. package/dist/bigconsole/pages/SettingsPage.js.map +1 -0
  1249. package/dist/bigconsole/pages/WidgetDemoPage.d.ts +1 -0
  1250. package/dist/bigconsole/pages/WidgetDemoPage.d.ts.map +1 -0
  1251. package/dist/bigconsole/pages/WidgetDemoPage.js +2 -0
  1252. package/dist/bigconsole/pages/WidgetDemoPage.js.map +1 -0
  1253. package/dist/bigconsole/pages/WorkflowViewPage.d.ts +1 -0
  1254. package/dist/bigconsole/pages/WorkflowViewPage.d.ts.map +1 -0
  1255. package/dist/bigconsole/pages/WorkflowViewPage.js +2 -0
  1256. package/dist/bigconsole/pages/WorkflowViewPage.js.map +1 -0
  1257. package/dist/bigconsole/pages/WorkflowsPage.d.ts +1 -0
  1258. package/dist/bigconsole/pages/WorkflowsPage.d.ts.map +1 -0
  1259. package/dist/bigconsole/pages/WorkflowsPage.js +2 -0
  1260. package/dist/bigconsole/pages/WorkflowsPage.js.map +1 -0
  1261. package/dist/bigconsole/pages/index.d.ts +1 -0
  1262. package/dist/bigconsole/pages/index.d.ts.map +1 -0
  1263. package/dist/bigconsole/providers/BigConsoleQuotaProvider.d.ts +1 -0
  1264. package/dist/bigconsole/providers/BigConsoleQuotaProvider.d.ts.map +1 -0
  1265. package/dist/bigconsole/providers/BigConsoleQuotaProvider.js +2 -0
  1266. package/dist/bigconsole/providers/BigConsoleQuotaProvider.js.map +1 -0
  1267. package/dist/bigconsole/renderers/adapters/AdaptiveCardRenderer.d.ts +1 -0
  1268. package/dist/bigconsole/renderers/adapters/AdaptiveCardRenderer.d.ts.map +1 -0
  1269. package/dist/bigconsole/renderers/adapters/AdaptiveCardRenderer.js +124 -235
  1270. package/dist/bigconsole/renderers/adapters/AdaptiveCardRenderer.js.map +1 -0
  1271. package/dist/bigconsole/renderers/adapters/BigConsoleRenderer.d.ts +1 -0
  1272. package/dist/bigconsole/renderers/adapters/BigConsoleRenderer.d.ts.map +1 -0
  1273. package/dist/bigconsole/renderers/adapters/BigConsoleRenderer.js +2 -0
  1274. package/dist/bigconsole/renderers/adapters/BigConsoleRenderer.js.map +1 -0
  1275. package/dist/bigconsole/renderers/adapters/BlockKitRenderer.d.ts +2 -6
  1276. package/dist/bigconsole/renderers/adapters/BlockKitRenderer.d.ts.map +1 -0
  1277. package/dist/bigconsole/renderers/adapters/BlockKitRenderer.js +157 -155
  1278. package/dist/bigconsole/renderers/adapters/BlockKitRenderer.js.map +1 -0
  1279. package/dist/bigconsole/renderers/adapters/CustomRenderer.d.ts +1 -0
  1280. package/dist/bigconsole/renderers/adapters/CustomRenderer.d.ts.map +1 -0
  1281. package/dist/bigconsole/renderers/adapters/CustomRenderer.js +2 -0
  1282. package/dist/bigconsole/renderers/adapters/CustomRenderer.js.map +1 -0
  1283. package/dist/bigconsole/renderers/adapters/index.d.ts +1 -0
  1284. package/dist/bigconsole/renderers/adapters/index.d.ts.map +1 -0
  1285. package/dist/bigconsole/renderers/factory/WidgetRendererFactory.d.ts +1 -0
  1286. package/dist/bigconsole/renderers/factory/WidgetRendererFactory.d.ts.map +1 -0
  1287. package/dist/bigconsole/renderers/factory/WidgetRendererFactory.js +2 -0
  1288. package/dist/bigconsole/renderers/factory/WidgetRendererFactory.js.map +1 -0
  1289. package/dist/bigconsole/renderers/index.d.ts +1 -0
  1290. package/dist/bigconsole/renderers/index.d.ts.map +1 -0
  1291. package/dist/bigconsole/renderers/registry/RendererRegistry.d.ts +1 -0
  1292. package/dist/bigconsole/renderers/registry/RendererRegistry.d.ts.map +1 -0
  1293. package/dist/bigconsole/renderers/registry/RendererRegistry.js +2 -0
  1294. package/dist/bigconsole/renderers/registry/RendererRegistry.js.map +1 -0
  1295. package/dist/bigconsole/renderers/types/index.d.ts +1 -0
  1296. package/dist/bigconsole/renderers/types/index.d.ts.map +1 -0
  1297. package/dist/bigconsole/renderers/types/renderer.d.ts +1 -0
  1298. package/dist/bigconsole/renderers/types/renderer.d.ts.map +1 -0
  1299. package/dist/bigconsole/store/dashboardStore.d.ts +1 -0
  1300. package/dist/bigconsole/store/dashboardStore.d.ts.map +1 -0
  1301. package/dist/bigconsole/store/dashboardStore.js +2 -0
  1302. package/dist/bigconsole/store/dashboardStore.js.map +1 -0
  1303. package/dist/bigconsole/store/dataSinkStore.d.ts +1 -0
  1304. package/dist/bigconsole/store/dataSinkStore.d.ts.map +1 -0
  1305. package/dist/bigconsole/store/dataSinkStore.js +2 -0
  1306. package/dist/bigconsole/store/dataSinkStore.js.map +1 -0
  1307. package/dist/bigconsole/store/drilldownStore.d.ts +1 -0
  1308. package/dist/bigconsole/store/drilldownStore.d.ts.map +1 -0
  1309. package/dist/bigconsole/store/drilldownStore.js +2 -0
  1310. package/dist/bigconsole/store/drilldownStore.js.map +1 -0
  1311. package/dist/bigconsole/store/index.d.ts +1 -0
  1312. package/dist/bigconsole/store/index.d.ts.map +1 -0
  1313. package/dist/bigconsole/store/parserStore.d.ts +1 -0
  1314. package/dist/bigconsole/store/parserStore.d.ts.map +1 -0
  1315. package/dist/bigconsole/store/parserStore.js +2 -0
  1316. package/dist/bigconsole/store/parserStore.js.map +1 -0
  1317. package/dist/bigconsole/store/pipelineStore.d.ts +1 -0
  1318. package/dist/bigconsole/store/pipelineStore.d.ts.map +1 -0
  1319. package/dist/bigconsole/store/pipelineStore.js +2 -0
  1320. package/dist/bigconsole/store/pipelineStore.js.map +1 -0
  1321. package/dist/bigconsole/store/widgetStore.d.ts +1 -0
  1322. package/dist/bigconsole/store/widgetStore.d.ts.map +1 -0
  1323. package/dist/bigconsole/store/widgetStore.js +2 -0
  1324. package/dist/bigconsole/store/widgetStore.js.map +1 -0
  1325. package/dist/bigconsole/store/workflowStore.d.ts +1 -0
  1326. package/dist/bigconsole/store/workflowStore.d.ts.map +1 -0
  1327. package/dist/bigconsole/store/workflowStore.js +2 -0
  1328. package/dist/bigconsole/store/workflowStore.js.map +1 -0
  1329. package/dist/bigconsole/types/index.d.ts +3 -17
  1330. package/dist/bigconsole/types/index.d.ts.map +1 -0
  1331. package/dist/bigconsole/utils/alertRules.d.ts +1 -0
  1332. package/dist/bigconsole/utils/alertRules.d.ts.map +1 -0
  1333. package/dist/bigconsole/utils/alertRules.js +2 -0
  1334. package/dist/bigconsole/utils/alertRules.js.map +1 -0
  1335. package/dist/bigconsole/utils/backendError.d.ts +19 -0
  1336. package/dist/bigconsole/utils/backendError.d.ts.map +1 -0
  1337. package/dist/bigconsole/utils/backendError.js +44 -0
  1338. package/dist/bigconsole/utils/backendError.js.map +1 -0
  1339. package/dist/bigconsole/utils/createDialogParam.d.ts +1 -0
  1340. package/dist/bigconsole/utils/createDialogParam.d.ts.map +1 -0
  1341. package/dist/bigconsole/utils/createDialogParam.js +2 -0
  1342. package/dist/bigconsole/utils/createDialogParam.js.map +1 -0
  1343. package/dist/bigconsole/utils/csv.d.ts +1 -0
  1344. package/dist/bigconsole/utils/csv.d.ts.map +1 -0
  1345. package/dist/bigconsole/utils/csv.js +2 -0
  1346. package/dist/bigconsole/utils/csv.js.map +1 -0
  1347. package/dist/bigconsole/utils/dashboardTemplateContent.d.ts +1 -0
  1348. package/dist/bigconsole/utils/dashboardTemplateContent.d.ts.map +1 -0
  1349. package/dist/bigconsole/utils/dashboardTemplateContent.js +2 -0
  1350. package/dist/bigconsole/utils/dashboardTemplateContent.js.map +1 -0
  1351. package/dist/bigconsole/utils/drilldownParams.d.ts +1 -0
  1352. package/dist/bigconsole/utils/drilldownParams.d.ts.map +1 -0
  1353. package/dist/bigconsole/utils/drilldownParams.js +2 -0
  1354. package/dist/bigconsole/utils/drilldownParams.js.map +1 -0
  1355. package/dist/bigconsole/utils/format.d.ts +1 -0
  1356. package/dist/bigconsole/utils/format.d.ts.map +1 -0
  1357. package/dist/bigconsole/utils/format.js +2 -0
  1358. package/dist/bigconsole/utils/format.js.map +1 -0
  1359. package/dist/bigconsole/utils/index.d.ts +1 -2
  1360. package/dist/bigconsole/utils/index.d.ts.map +1 -0
  1361. package/dist/bigconsole/utils/quota.d.ts +1 -0
  1362. package/dist/bigconsole/utils/quota.d.ts.map +1 -0
  1363. package/dist/bigconsole/utils/quota.js +2 -0
  1364. package/dist/bigconsole/utils/quota.js.map +1 -0
  1365. package/dist/bigconsole/utils/semanticTokens.d.ts +1 -0
  1366. package/dist/bigconsole/utils/semanticTokens.d.ts.map +1 -0
  1367. package/dist/bigconsole/utils/semanticTokens.js +2 -0
  1368. package/dist/bigconsole/utils/semanticTokens.js.map +1 -0
  1369. package/dist/bigconsole/utils/templateInstallInputs.d.ts +1 -0
  1370. package/dist/bigconsole/utils/templateInstallInputs.d.ts.map +1 -0
  1371. package/dist/bigconsole/utils/templateInstallInputs.js +2 -0
  1372. package/dist/bigconsole/utils/templateInstallInputs.js.map +1 -0
  1373. package/dist/bigconsole/utils/widgetBinding.d.ts +1 -0
  1374. package/dist/bigconsole/utils/widgetBinding.d.ts.map +1 -0
  1375. package/dist/bigconsole/utils/widgetBinding.js +2 -0
  1376. package/dist/bigconsole/utils/widgetBinding.js.map +1 -0
  1377. package/dist/bigconsole/utils/widgetPositioning.d.ts +1 -0
  1378. package/dist/bigconsole/utils/widgetPositioning.d.ts.map +1 -0
  1379. package/dist/bigconsole/utils/widgetPositioning.js +2 -0
  1380. package/dist/bigconsole/utils/widgetPositioning.js.map +1 -0
  1381. package/dist/bigconsole/utils/widgetTypeMapping.d.ts +1 -0
  1382. package/dist/bigconsole/utils/widgetTypeMapping.d.ts.map +1 -0
  1383. package/dist/bigconsole/utils/widgetTypeMapping.js +2 -0
  1384. package/dist/bigconsole/utils/widgetTypeMapping.js.map +1 -0
  1385. package/dist/bigconsole/workflowOpen.d.ts +1 -0
  1386. package/dist/bigconsole/workflowOpen.d.ts.map +1 -0
  1387. package/dist/bigconsole/workflowOpen.js +17 -14
  1388. package/dist/bigconsole/workflowOpen.js.map +1 -0
  1389. package/dist/constants/permissions.d.ts +1 -0
  1390. package/dist/constants/permissions.d.ts.map +1 -0
  1391. package/dist/constants/permissions.js +2 -0
  1392. package/dist/constants/permissions.js.map +1 -0
  1393. package/dist/generated/global-operations.d.ts +1 -0
  1394. package/dist/generated/global-operations.d.ts.map +1 -0
  1395. package/dist/generated/global-operations.js +2 -0
  1396. package/dist/generated/global-operations.js.map +1 -0
  1397. package/dist/generated/global-types.d.ts +1 -0
  1398. package/dist/generated/global-types.d.ts.map +1 -0
  1399. package/dist/generated/wspace-operations.d.ts +9 -138
  1400. package/dist/generated/wspace-operations.d.ts.map +1 -0
  1401. package/dist/generated/wspace-operations.js +242 -281
  1402. package/dist/generated/wspace-operations.js.map +1 -0
  1403. package/dist/generated/wspace-types.d.ts +1 -0
  1404. package/dist/generated/wspace-types.d.ts.map +1 -0
  1405. package/dist/generated/wspace-types.js +2 -0
  1406. package/dist/generated/wspace-types.js.map +1 -0
  1407. package/dist/index.d.ts +1 -0
  1408. package/dist/index.d.ts.map +1 -0
  1409. package/dist/node_modules/@e965/xlsx/xlsx.js +2 -0
  1410. package/dist/node_modules/@e965/xlsx/xlsx.js.map +1 -0
  1411. package/dist/node_modules/pdfjs-dist/build/pdf.js +2 -0
  1412. package/dist/node_modules/pdfjs-dist/build/pdf.js.map +1 -0
  1413. package/dist/shared/hooks/useTr.d.ts +1 -0
  1414. package/dist/shared/hooks/useTr.d.ts.map +1 -0
  1415. package/dist/shared/hooks/useTr.js +2 -0
  1416. package/dist/shared/hooks/useTr.js.map +1 -0
  1417. package/dist/stories/DashboardGuide.stories.d.ts +15 -0
  1418. package/dist/stories/DashboardGuide.stories.d.ts.map +1 -0
  1419. package/dist/stories/DataSinkStatusBadge.stories.d.ts +12 -0
  1420. package/dist/stories/DataSinkStatusBadge.stories.d.ts.map +1 -0
  1421. package/dist/stories/GaugeWidget.stories.d.ts +58 -0
  1422. package/dist/stories/GaugeWidget.stories.d.ts.map +1 -0
  1423. package/dist/stories/KPIComparisonWidget.stories.d.ts +76 -0
  1424. package/dist/stories/KPIComparisonWidget.stories.d.ts.map +1 -0
  1425. package/dist/stories/LiveCanvasToggle.stories.d.ts +9 -0
  1426. package/dist/stories/LiveCanvasToggle.stories.d.ts.map +1 -0
  1427. package/dist/stories/MetricCardWidget.stories.d.ts +88 -0
  1428. package/dist/stories/MetricCardWidget.stories.d.ts.map +1 -0
  1429. package/dist/stories/ProgressWidget.stories.d.ts +48 -0
  1430. package/dist/stories/ProgressWidget.stories.d.ts.map +1 -0
  1431. package/dist/stories/SetupStateBadge.stories.d.ts +12 -0
  1432. package/dist/stories/SetupStateBadge.stories.d.ts.map +1 -0
  1433. package/dist/translations/en.d.ts +1 -0
  1434. package/dist/translations/en.d.ts.map +1 -0
  1435. package/dist/utils/nativeBridge.d.ts +1 -0
  1436. package/dist/utils/nativeBridge.d.ts.map +1 -0
  1437. package/package.json +6 -11
  1438. package/dist/bigconsole/components/widgets/iframe-widget/framePolicy.d.ts +0 -20
  1439. package/dist/bigconsole/components/widgets/iframe-widget/framePolicy.js +0 -10
  1440. package/dist/bigconsole/renderers/adapters/adaptiveCardContent.d.ts +0 -29
  1441. package/dist/bigconsole/renderers/adapters/adaptiveCardContent.js +0 -51
  1442. package/dist/bigconsole/utils/dataSinkPayload.d.ts +0 -48
  1443. package/dist/bigconsole/utils/dataSinkPayload.js +0 -38
  1444. package/dist/bigconsole/utils/safeUrl.d.ts +0 -79
  1445. package/dist/bigconsole/utils/safeUrl.js +0 -93
  1446. package/dist/bigconsole/utils/sanitizeHtml.d.ts +0 -16
  1447. package/dist/bigconsole/utils/sanitizeHtml.js +0 -67
  1448. package/dist/node_modules/dompurify/dist/purify.es.js +0 -800
@@ -0,0 +1 @@
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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"}
@@ -6,3 +6,4 @@ export interface PropertiesPanelProps {
6
6
  }
7
7
  export declare const PropertiesPanel: FC<PropertiesPanelProps>;
8
8
  export default PropertiesPanel;
9
+ //# sourceMappingURL=PropertiesPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PropertiesPanel.d.ts","sourceRoot":"","sources":["../../../../src/bigconsole/components/widgets/PropertiesPanel.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAc,EAAE,KAAK,EAAE,EAA2D,MAAM,OAAO,CAAC;AAmJhG,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAqWD,eAAO,MAAM,eAAe,EAAE,EAAE,CAAC,oBAAoB,CA0kDnD,CAAC;AAEH,eAAe,eAAe,CAAC"}
@@ -1448,3 +1448,5 @@ var D = d(function({ isOpen: d, onClose: _e }) {
1448
1448
  });
1449
1449
  //#endregion
1450
1450
  export { D as default };
1451
+
1452
+ //# sourceMappingURL=PropertiesPanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PropertiesPanel.js","names":[],"sources":["../../../../src/bigconsole/components/widgets/PropertiesPanel.tsx"],"sourcesContent":["/**\n * PropertiesPanel Component\n *\n * Right-side panel for widget configuration.\n * v2.0: Added Actions tab for managing widget actions.\n * Uses fe-libs shared components for consistent styling.\n */\n\nimport React, { type FC, memo, useCallback, useState, useEffect, useRef, useMemo } from 'react';\nimport { Sheet, SheetContent, SheetHeader, SheetTitle, SheetDescription } from '@burdenoff/fe-libs/ui';\nimport { Tabs, TabsList, TabsTrigger, TabsContent } from '@burdenoff/fe-libs/ui';\nimport { Button } from '@burdenoff/fe-libs/ui';\nimport { Input } from '@burdenoff/fe-libs/ui';\nimport { Textarea } from '@burdenoff/fe-libs/ui';\nimport { Label } from '@burdenoff/fe-libs/ui';\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@burdenoff/fe-libs/ui';\nimport { Spinner } from '@burdenoff/fe-libs/ui';\nimport { Card, CardContent } from '@burdenoff/fe-libs/ui';\nimport { Plus, ChevronUp, ChevronDown, Pencil, Trash2, ExternalLink, Check, X, Info } from 'lucide-react';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport { toast } from 'sonner';\nimport type { Widget, DataSourceType, RendererType, Parser } from '../../types';\nimport { useWidgetStore, useIsEditMode } from '../../store';\nimport { useWidgetOperations, useDrilldownOperations } from '../../hooks';\nimport {\n useWidgetActions,\n type WidgetAction,\n type CreateWidgetActionInput,\n type UpdateWidgetActionInput,\n} from '../../hooks/useWidgetActions';\nimport { getWidgetDefinition } from './WidgetRegistry';\nimport { ActionConfigDialog, type ActionSaveData, type ActionWebhookDraft } from './ActionConfigDialog';\nimport { useEventWebhooks, type EventWebhookMapping } from '../../hooks/useEventWebhooks';\nimport { WebhookConfigPanel } from './webhook-config';\nimport { EventLogViewer } from './event-logs';\nimport { DrilldownConfigPanel, type DrilldownConfig } from './DrilldownConfigPanel';\n// Data Source selectors\nimport { useDataSinkOperations } from '../../hooks/useDataSinkOperations';\nimport { useParserOperations } from '../../hooks/useParserOperations';\nimport {\n AdvancedSection,\n AppearanceSection,\n DataBindingSection,\n GeneralSection,\n LayoutSection,\n} from '../builder/inspector';\nimport { DEFAULT_GRID_CONFIG, type WidgetPosition } from '../../utils/widgetPositioning';\nimport { Section, SectionStack } from '../common';\nimport {\n getWidgetBinding,\n getWidgetBindingStatus,\n reconcilePanelConfig,\n serializeWidgetBinding,\n} from '../../utils/widgetBinding';\n\n// ============================================================================\n// v2.0: Renderer Options\n// ============================================================================\n\nconst RENDERER_OPTIONS: {\n value: RendererType;\n labelKey: string;\n label: string;\n descriptionKey: string;\n description: string;\n}[] = [\n {\n value: 'BIGCONSOLE',\n labelKey: 'bigconsole.widget.properties.renderer.bigconsole.label',\n label: 'BigConsole Native',\n descriptionKey: 'bigconsole.widget.properties.renderer.bigconsole.description',\n description: 'Full-featured native widgets',\n },\n {\n value: 'ADAPTIVE_CARD',\n labelKey: 'bigconsole.widget.properties.renderer.adaptiveCard.label',\n label: 'Adaptive Cards',\n descriptionKey: 'bigconsole.widget.properties.renderer.adaptiveCard.description',\n description: 'Microsoft Teams/Outlook format',\n },\n {\n value: 'BLOCKKIT',\n labelKey: 'bigconsole.widget.properties.renderer.blockKit.label',\n label: 'Block Kit',\n descriptionKey: 'bigconsole.widget.properties.renderer.blockKit.description',\n description: 'Slack format',\n },\n {\n value: 'CUSTOM',\n labelKey: 'bigconsole.widget.properties.renderer.custom.label',\n label: 'Custom',\n descriptionKey: 'bigconsole.widget.properties.renderer.custom.description',\n description: 'Custom React component',\n },\n];\n\n// ============================================================================\n// Data Source Constants\n// ============================================================================\n\nconst DATA_SOURCE_TYPES: {\n value: DataSourceType;\n labelKey: string;\n label: string;\n descriptionKey: string;\n description: string;\n}[] = [\n {\n value: 'DATASINK',\n labelKey: 'bigconsole.widget.properties.dataSourceType.datasink.label',\n label: 'DataSink',\n descriptionKey: 'bigconsole.widget.properties.dataSourceType.datasink.description',\n description: 'Use data from BigConsole DataSinks',\n },\n {\n value: 'REST_API',\n labelKey: 'bigconsole.widget.properties.dataSourceType.restApi.label',\n label: 'REST API',\n descriptionKey: 'bigconsole.widget.properties.dataSourceType.restApi.description',\n description: 'Fetch data from REST endpoints',\n },\n {\n value: 'GRAPHQL',\n labelKey: 'bigconsole.widget.properties.dataSourceType.graphql.label',\n label: 'GraphQL',\n descriptionKey: 'bigconsole.widget.properties.dataSourceType.graphql.description',\n description: 'Query data using GraphQL',\n },\n {\n value: 'SQL',\n labelKey: 'bigconsole.widget.properties.dataSourceType.sql.label',\n label: 'SQL Database',\n descriptionKey: 'bigconsole.widget.properties.dataSourceType.sql.description',\n description: 'Query SQL databases directly',\n },\n {\n value: 'WEBSOCKET',\n labelKey: 'bigconsole.widget.properties.dataSourceType.websocket.label',\n label: 'WebSocket',\n descriptionKey: 'bigconsole.widget.properties.dataSourceType.websocket.description',\n description: 'Real-time data streaming',\n },\n {\n value: 'MOCK',\n labelKey: 'bigconsole.widget.properties.dataSourceType.mock.label',\n label: 'Sample JSON',\n descriptionKey: 'bigconsole.widget.properties.dataSourceType.mock.description',\n description: 'Manually enter sample JSON data',\n },\n];\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface PropertiesPanelProps {\n isOpen: boolean;\n onClose: () => void;\n}\n\ntype TabId = 'general' | 'data' | 'appearance' | 'advanced';\n\n// The event a button emits when clicked. MUST match DashboardGrid.handleWidgetAction\n// (`widget:${name.toLowerCase().replace(/\\s+/g,'_')}:clicked`) so a webhook mapping\n// created here actually fires for the click.\nfunction eventPatternForAction(actionName: string): string {\n return `widget:${actionName.toLowerCase().replace(/\\s+/g, '_')}:clicked`;\n}\n\n// Action style colours. `bg-action-primary` / `bg-muted-foreground` are not\n// registered in the BigConsole shell theme, so they emitted no CSS at all and\n// the status dot rendered invisible — see sectionStyles.ts for the failure mode.\nconst ACTION_STYLE_COLORS: Record<string, string> = {\n PRIMARY: 'bg-action-primary-bg',\n SECONDARY: 'bg-[var(--color-text-muted)]',\n SUCCESS: 'bg-status-success-bg',\n WARNING: 'bg-status-warning-bg',\n DANGER: 'bg-status-error-bg',\n};\n\nconst ACTION_STYLE_FALLBACK_COLOR = 'bg-[var(--color-text-muted)]';\n\n/** Tab triggers: body-sm type and a 40px touch target on every device. */\nconst TAB_TRIGGER_STYLE: React.CSSProperties = {\n fontWeight: 'var(--font-weight-semibold)',\n fontSize: 'var(--font-size-body-sm)',\n padding: '6px 10px',\n minHeight: 'var(--size-controlHeight-md)',\n flexShrink: 0,\n};\n\n// ============================================================================\n// Config Component Map\n// ============================================================================\n\n/**\n * Detects field names from parser output and returns suggested labelField and valueField\n * @param output - The parser execution output\n * @returns Object with suggested labelField and valueField\n */\nfunction detectFieldsFromParserOutput(output: unknown): {\n labelField?: string;\n valueField?: string;\n xAxisField?: string;\n} {\n if (!output) return {};\n\n // If output is an array, look at the first item\n const sampleItem = Array.isArray(output) ? output[0] : output;\n\n if (!sampleItem || typeof sampleItem !== 'object') return {};\n\n const keys = Object.keys(sampleItem as Record<string, unknown>);\n\n // Common label field names (in order of priority)\n const labelFieldCandidates = [\n 'name',\n 'label',\n 'category',\n 'title',\n 'key',\n 'id',\n 'month',\n 'date',\n 'region',\n 'product',\n ];\n // Common value field names (in order of priority)\n const valueFieldCandidates = ['value', 'amount', 'count', 'total', 'revenue', 'sales', 'quantity', 'orders', 'sum'];\n\n let labelField: string | undefined;\n let valueField: string | undefined;\n\n // Find the best label field\n for (const candidate of labelFieldCandidates) {\n if (keys.includes(candidate)) {\n labelField = candidate;\n break;\n }\n }\n\n // Find the best value field\n for (const candidate of valueFieldCandidates) {\n if (keys.includes(candidate)) {\n valueField = candidate;\n break;\n }\n }\n\n // If no standard names found, use heuristics:\n // - First string field as label\n // - First number field as value\n if (!labelField || !valueField) {\n for (const key of keys) {\n const val = (sampleItem as Record<string, unknown>)[key];\n if (!labelField && typeof val === 'string') {\n labelField = key;\n }\n if (!valueField && typeof val === 'number') {\n valueField = key;\n }\n if (labelField && valueField) break;\n }\n }\n\n return {\n labelField,\n valueField,\n xAxisField: labelField, // For line/bar charts, xAxisField is usually the same as labelField\n };\n}\n\n// ============================================================================\n// Template Editor Component\n// ============================================================================\n\ninterface TemplateEditorProps {\n widget: Widget;\n onSave: (template: Record<string, unknown>) => void;\n}\n\nconst TemplateEditor: FC<TemplateEditorProps> = memo(function TemplateEditor({ widget, onSave }) {\n const { t } = useI18n();\n const [localValue, setLocalValue] = useState<string>('');\n const [jsonError, setJsonError] = useState<string | null>(null);\n const initializedRef = useRef(false);\n\n // Initialize from widget.template only once per widget\n useEffect(() => {\n try {\n const templateStr =\n widget.template && typeof widget.template === 'object' ? JSON.stringify(widget.template, null, 2) : '';\n setLocalValue(templateStr);\n setJsonError(null);\n initializedRef.current = true;\n } catch {\n setLocalValue('');\n }\n }, [widget.id, widget.template]);\n\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n const value = e.target.value;\n setLocalValue(value);\n\n if (value.trim() === '') {\n setJsonError(null);\n // Empty template is valid - notify parent\n onSave({});\n } else {\n try {\n const parsed = JSON.parse(value);\n setJsonError(null);\n // Valid JSON - immediately notify parent so main Save button becomes active\n onSave(parsed);\n } catch (err) {\n setJsonError((err as Error).message);\n // Don't call onSave for invalid JSON\n }\n }\n },\n [onSave]\n );\n\n const handleFormat = useCallback(() => {\n try {\n const parsed = JSON.parse(localValue);\n const formatted = JSON.stringify(parsed, null, 2);\n setLocalValue(formatted);\n setJsonError(null);\n onSave(parsed);\n } catch (err) {\n setJsonError((err as Error).message);\n }\n }, [localValue, onSave]);\n\n return (\n <Section\n emphasis=\"muted\"\n padding=\"compact\"\n headingLevel={4}\n title={t('bigconsole.widget.properties.template.label', 'Template (JSON)')}\n description={`The ${widget.renderer} payload this widget renders.`}\n tone={jsonError ? 'danger' : 'neutral'}\n meta={\n jsonError ? (\n <span className=\"text-xs font-medium text-[var(--color-status-error-text)]\">\n {t('bigconsole.widget.properties.template.invalidJson', 'Invalid JSON')}\n </span>\n ) : undefined\n }\n className=\"mt-form-gap\"\n data-testid=\"widget-inspector-template\"\n >\n <Textarea\n value={localValue}\n onChange={handleChange}\n spellCheck={false}\n placeholder={t('bigconsole.widget.properties.template.placeholder', 'Enter {{renderer}} template JSON...', {\n renderer: widget.renderer ?? '',\n })}\n style={{\n fontFamily: 'var(--font-family-mono)',\n fontSize: 'var(--font-size-body-sm)',\n minHeight: '180px',\n borderColor: jsonError ? 'var(--color-status-error-border)' : undefined,\n resize: 'vertical',\n }}\n />\n\n {jsonError && (\n <p\n style={{\n fontSize: 'var(--font-size-body-sm)',\n color: 'var(--color-status-error-text)',\n backgroundColor: 'var(--color-status-error-bgSubtle)',\n padding: 'var(--space-controlGap)',\n borderRadius: 'var(--radius-button)',\n marginTop: 'var(--space-controlGap)',\n }}\n >\n {jsonError}\n </p>\n )}\n\n <div className=\"mt-control-gap flex flex-wrap items-center gap-control-gap\">\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={handleFormat}\n disabled={!!jsonError || localValue.trim() === ''}\n style={{ height: 'var(--size-controlHeight-sm)', fontWeight: 'var(--font-weight-semibold)' }}\n >\n {t('bigconsole.widget.properties.template.format', 'Format')}\n </Button>\n {!jsonError && localValue.trim() !== '' && (\n <span\n style={{\n fontSize: 'var(--font-size-body-sm)',\n color: 'var(--color-status-success-text)',\n display: 'flex',\n alignItems: 'center',\n gap: '4px',\n }}\n >\n <Check style={{ width: '12px', height: '12px' }} />\n {t('bigconsole.widget.properties.template.validJson', 'Valid JSON')}\n </span>\n )}\n </div>\n\n <div className=\"mt-control-gap flex flex-wrap items-center justify-between gap-x-4 gap-y-1 border-t border-[var(--color-border-subtle)] pt-control-gap text-xs text-text-muted\">\n <span className=\"font-medium\">{t('bigconsole.widget.properties.template.ctrlSToSave', 'Ctrl+S to save')}</span>\n {widget.renderer === 'ADAPTIVE_CARD' && (\n <a\n href=\"https://adaptivecards.io/designer/\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n style={{\n display: 'flex',\n alignItems: 'center',\n gap: 'var(--space-controlGap)',\n color: 'var(--color-text-link)',\n fontSize: 'var(--font-size-body-sm)',\n fontWeight: 'var(--font-weight-medium)',\n textDecoration: 'none',\n }}\n >\n {t('bigconsole.widget.properties.template.designer', 'Designer')}\n <ExternalLink style={{ height: 'var(--size-icon-sm)', width: 'var(--size-icon-sm)' }} />\n </a>\n )}\n {widget.renderer === 'BLOCKKIT' && (\n <a\n href=\"https://app.slack.com/block-kit-builder\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n style={{\n display: 'flex',\n alignItems: 'center',\n gap: 'var(--space-controlGap)',\n color: 'var(--color-text-link)',\n fontSize: 'var(--font-size-body-sm)',\n fontWeight: 'var(--font-weight-medium)',\n textDecoration: 'none',\n }}\n >\n {t('bigconsole.widget.properties.template.blockKitBuilder', 'Block Kit Builder')}\n <ExternalLink style={{ height: 'var(--size-icon-sm)', width: 'var(--size-icon-sm)' }} />\n </a>\n )}\n </div>\n </Section>\n );\n});\n\n// ============================================================================\n// Local Form State Type\n// ============================================================================\n\ninterface LocalFormState {\n title: string;\n description: string;\n refreshInterval: number | undefined;\n renderer: RendererType;\n template: Record<string, unknown> | undefined;\n // v2.0: Data source fields (DataSink → Parser → Widget)\n dataSinkId: string | undefined;\n datasetId: string | undefined;\n parserId: string | undefined;\n parserRules: string | undefined;\n config: Record<string, unknown>;\n // Drilldown configuration\n drilldownConfig: DrilldownConfig | undefined;\n}\n\nfunction createLocalFormStateFromWidget(widget: Widget): LocalFormState {\n const widgetFields = widget as unknown as Record<string, string | undefined>;\n const binding = getWidgetBinding({\n dataSinkId: widgetFields.dataSinkId,\n parserId: widgetFields.parserId,\n config: (widget.config as Record<string, unknown>) || {},\n });\n\n return {\n title: widget.title || '',\n description: widget.description || '',\n refreshInterval: widget.refreshInterval ?? undefined,\n renderer: (widget.renderer as RendererType) || 'BIGCONSOLE',\n template: widget.template as Record<string, unknown> | undefined,\n // v2.0: Data source fields (DataSink → Parser → Widget)\n dataSinkId: binding.source.kind === 'DATASINK' ? binding.source.ref : undefined,\n datasetId: widgetFields.datasetId ?? undefined,\n parserId: binding.parserId,\n parserRules: widgetFields.parserRules ?? undefined,\n config: (widget.config as Record<string, unknown>) || {},\n // Drilldown configuration\n drilldownConfig: widget.drilldown\n ? {\n enabled: widget.drilldown.enabled ?? false,\n targetDashboardId: widget.drilldown.targetDashboardId ?? '',\n targetPageId: widget.drilldown.targetPageId ?? null,\n navigationMode: widget.drilldown.navigationMode ?? 'MODAL',\n parameterMapping: (widget.drilldown.parameterMapping as Record<string, string>) ?? {},\n passGlobalFilters: widget.drilldown.passGlobalFilters ?? true,\n maxDepth: widget.drilldown.maxDepth ?? 3,\n }\n : undefined,\n };\n}\n\n// ============================================================================\n// Component\n// ============================================================================\n\nexport const PropertiesPanel: FC<PropertiesPanelProps> = memo(function PropertiesPanel({ isOpen, onClose }) {\n const { t } = useI18n();\n const [activeTab, setActiveTab] = useState<TabId>('general');\n const [saveStatus, setSaveStatus] = useState<'idle' | 'saving' | 'saved' | 'error'>('idle');\n const [localForm, setLocalForm] = useState<LocalFormState | null>(null);\n const [hasUnsavedChanges, setHasUnsavedChanges] = useState(false);\n\n const selectedWidgetId = useWidgetStore((state) => state.selectedWidgetId);\n const widgets = useWidgetStore((state) => state.widgets);\n const updateWidgetInStore = useWidgetStore((state) => state.updateWidget);\n const updateWidgetPosition = useWidgetStore((state) => state.updateWidgetPosition);\n // Grid placement is only editable while the board is in edit mode — outside\n // it there is no Save to persist the change, so the fields would look live\n // and quietly revert on reload.\n const isEditMode = useIsEditMode();\n\n const selectedWidget = selectedWidgetId ? widgets.get(selectedWidgetId) : undefined;\n\n /**\n * The widget's grid placement. `position` is the canonical field; the flat\n * `positionX/Y/Width/Height` mirrors are the fallback for widgets normalised\n * before `position` was populated.\n */\n const selectedPosition: WidgetPosition | null = selectedWidget\n ? {\n x: selectedWidget.position?.x ?? selectedWidget.positionX ?? 0,\n y: selectedWidget.position?.y ?? selectedWidget.positionY ?? 0,\n width: selectedWidget.position?.width ?? selectedWidget.positionWidth ?? 4,\n height: selectedWidget.position?.height ?? selectedWidget.positionHeight ?? 4,\n }\n : null;\n\n const handlePositionChange = useCallback(\n (next: WidgetPosition) => {\n if (!selectedWidgetId) return;\n updateWidgetPosition(selectedWidgetId, next);\n },\n [selectedWidgetId, updateWidgetPosition]\n );\n const previousSelectedWidgetIdRef = useRef<string | null>(null);\n // The widget config as it was when `localForm` was last seeded. Used on save to\n // apply only the panel's own config changes without clobbering keys another\n // editor (e.g. the pivot canvas) persisted while the panel held unsaved edits.\n const seededConfigRef = useRef<Record<string, unknown>>({});\n\n /**\n * Monotonic counter bumped on every local edit.\n *\n * `handleSaveAll` snapshots it before awaiting the mutation. Any edit made\n * while that request is in flight bumps it, which tells the completion\n * handler NOT to clear `hasUnsavedChanges` — otherwise the re-seed effect\n * below (which only bails out `if (hasUnsavedChanges)`) would immediately\n * overwrite `localForm` with the just-saved server state and the user's\n * in-flight edit would vanish with no error.\n */\n const formRevisionRef = useRef(0);\n const markFormDirty = useCallback(() => {\n formRevisionRef.current += 1;\n setHasUnsavedChanges(true);\n }, []);\n\n useEffect(() => {\n if (!selectedWidgetId) {\n previousSelectedWidgetIdRef.current = null;\n setLocalForm(null);\n setHasUnsavedChanges(false);\n setSaveStatus('idle');\n return;\n }\n\n const widgetSwitched = previousSelectedWidgetIdRef.current !== selectedWidgetId;\n previousSelectedWidgetIdRef.current = selectedWidgetId;\n\n if (selectedWidget) {\n if (hasUnsavedChanges && !widgetSwitched) return;\n\n setLocalForm(createLocalFormStateFromWidget(selectedWidget));\n seededConfigRef.current = (selectedWidget.config as Record<string, unknown>) || {};\n setHasUnsavedChanges(false);\n setSaveStatus('idle');\n } else {\n setLocalForm(null);\n setHasUnsavedChanges(false);\n setSaveStatus('idle');\n }\n }, [selectedWidgetId, selectedWidget, hasUnsavedChanges]);\n\n const { updateWidget: updateWidgetApi } = useWidgetOperations(selectedWidget?.pageId, selectedWidget?.dashboardId, {\n skipFetch: true,\n });\n\n // Drilldown operations\n const { createDrilldown, updateDrilldown, deleteDrilldown } = useDrilldownOperations();\n\n // DataSink operations - for looking up DataSink by key\n const { dataSinks } = useDataSinkOperations({ skipFetch: false });\n\n // Track selected DataSink key for filtering parsers\n const [selectedDataSinkKey, setSelectedDataSinkKey] = useState<string | null>(null);\n\n // Parser operations - for executing parser to detect fields\n const { executeParser, fetchParser } = useParserOperations({\n consoleId: selectedWidget?.dashboardId,\n skipFetch: true,\n });\n\n const [resolvedBindingParser, setResolvedBindingParser] = useState<Parser | null>(null);\n const [isResolvingBinding, setIsResolvingBinding] = useState(false);\n const bindingParserId = localForm?.parserId;\n\n // AI-created widgets can bind a parser without duplicating its input sink ID.\n // Resolve that existing parser rather than presenting a valid chart as unbound.\n useEffect(() => {\n let cancelled = false;\n setResolvedBindingParser(null);\n if (!isOpen || !bindingParserId) {\n setIsResolvingBinding(false);\n return;\n }\n setIsResolvingBinding(true);\n void fetchParser(bindingParserId).then((parser) => {\n if (cancelled) return;\n setResolvedBindingParser(parser);\n setIsResolvingBinding(false);\n });\n return () => {\n cancelled = true;\n };\n }, [isOpen, bindingParserId, selectedWidgetId, fetchParser]);\n\n // Track if we're auto-detecting fields\n const [isDetectingFields, setIsDetectingFields] = useState(false);\n const [bindingPreview, setBindingPreview] = useState<unknown>(undefined);\n const [bindingPreviewComplete, setBindingPreviewComplete] = useState(false);\n const [bindingPreviewError, setBindingPreviewError] = useState<string | null>(null);\n\n useEffect(() => {\n setBindingPreview(undefined);\n setBindingPreviewComplete(false);\n setBindingPreviewError(null);\n setIsDetectingFields(false);\n }, [selectedWidgetId]);\n\n const {\n actions,\n loading: actionsLoading,\n createAction,\n updateAction,\n deleteAction,\n reorderActions,\n } = useWidgetActions(selectedWidgetId || undefined);\n\n // Webhook mappings for this widget — used to pair a button with an HTTP call\n // inline (\"When clicked → call a webhook\") without leaving the Add-Button flow.\n const {\n webhooks,\n loading: webhooksLoading,\n createWebhook,\n updateWebhook,\n deleteWebhook,\n refetch: refetchWebhooks,\n } = useEventWebhooks({\n widgetId: selectedWidgetId || undefined,\n skipFetch: !selectedWidgetId,\n });\n\n // Match a webhook mapping to an action (by its emitted event) within a given list.\n const findWebhookIn = useCallback(\n (list: EventWebhookMapping[], actionName: string) => {\n const pattern = eventPatternForAction(actionName);\n return list.find((w) => w.widgetId === selectedWidgetId && w.eventPattern === pattern) ?? null;\n },\n [selectedWidgetId]\n );\n\n // Find the webhook mapping paired to an action from the currently-loaded list.\n const webhookForAction = useCallback(\n (actionName: string) => findWebhookIn(webhooks, actionName),\n [findWebhookIn, webhooks]\n );\n\n // Create/update/remove the paired webhook mapping to match the dialog's outcome.\n // Returns false if a required webhook mutation failed so the caller can surface\n // it instead of silently leaving a button that looks wired but isn't (#5).\n const reconcileActionWebhook = useCallback(\n async (actionName: string, draft: ActionWebhookDraft | null | undefined): Promise<boolean> => {\n if (!selectedWidgetId || draft === undefined) return true;\n const pattern = eventPatternForAction(actionName);\n let existing = webhookForAction(actionName);\n // If the mapping list is still loading, a null lookup is unreliable and a\n // create here would duplicate an existing mapping (two endpoints firing per\n // click). Force a fresh fetch and re-check before deciding there is none (#7).\n if (!existing && webhooksLoading) {\n const res = await refetchWebhooks();\n const fresh = (res?.data?.listEventWebhookMappings ?? []) as EventWebhookMapping[];\n existing = findWebhookIn(fresh, actionName);\n }\n if (draft && draft.url) {\n if (existing) {\n // Re-activate on save — a mapping disabled in the Webhooks panel would\n // otherwise show as wired while clicks are still ignored (#4).\n const res = await updateWebhook({\n id: existing.id,\n eventPattern: pattern,\n webhookUrl: draft.url,\n method: draft.method,\n isActive: true,\n });\n return res !== null;\n }\n const res = await createWebhook({\n widgetId: selectedWidgetId,\n eventPattern: pattern,\n webhookUrl: draft.url,\n method: draft.method,\n });\n return res !== null;\n }\n if (draft === null && existing) {\n // Outcome switched away from \"call a webhook\" — drop the binding.\n return deleteWebhook(existing.id);\n }\n return true;\n },\n [\n selectedWidgetId,\n webhookForAction,\n webhooksLoading,\n refetchWebhooks,\n findWebhookIn,\n createWebhook,\n updateWebhook,\n deleteWebhook,\n ]\n );\n\n const [isActionDialogOpen, setIsActionDialogOpen] = useState(false);\n const [editingAction, setEditingAction] = useState<WidgetAction | undefined>(undefined);\n const [actionSaving, setActionSaving] = useState(false);\n // When a webhook mutation fails after the action itself saved, we keep the\n // dialog open on the persisted action so the user can retry. That reassigns\n // the dialog's `action` prop and re-runs its reset effect, which would wipe the\n // URL the user just typed (the mapping never persisted, so `editingWebhook` is\n // null). Stash the attempted draft here and feed it back as `initialWebhook` so\n // the dialog re-seeds it instead of clearing it.\n //\n // Tri-state: `undefined` = no retry draft (use the persisted mapping);\n // an object = a failed webhook create/update to re-seed; `null` = a failed\n // \"switch to Emit / remove webhook\" so the retry keeps the Emit selection\n // instead of falling back to the still-present old mapping (#8).\n const [pendingWebhookDraft, setPendingWebhookDraft] = useState<ActionWebhookDraft | null | undefined>(undefined);\n // Surfaces a save failure inside the dialog so the user isn't left with a\n // silently-editable form and no idea what went wrong (#9).\n const [pendingActionError, setPendingActionError] = useState<string | null>(null);\n\n // Prefill the dialog's webhook field when editing an action already paired with one.\n const editingWebhook = useMemo<ActionWebhookDraft | null>(() => {\n if (!editingAction) return null;\n const paired = webhookForAction(editingAction.name);\n return paired ? { url: paired.webhookUrl, method: paired.method } : null;\n }, [editingAction, webhookForAction]);\n\n // A retry draft (from a failed save) wins over the persisted mapping — including\n // an explicit `null` removal retry, which must NOT fall back to `editingWebhook`.\n const dialogInitialWebhook = pendingWebhookDraft !== undefined ? pendingWebhookDraft : editingWebhook;\n\n // Pre-compute each action's paired webhook once per render instead of running a\n // `.find()` inside the action-list JSX for every row on every render.\n const webhookByActionName = useMemo(() => {\n const map = new Map<string, EventWebhookMapping>();\n for (const a of actions) {\n const paired = webhookForAction(a.name);\n if (paired) map.set(a.name, paired);\n }\n return map;\n }, [actions, webhookForAction]);\n\n const handleAddAction = useCallback(() => {\n setPendingWebhookDraft(undefined);\n setPendingActionError(null);\n setEditingAction(undefined);\n setIsActionDialogOpen(true);\n }, []);\n\n const handleEditAction = useCallback((action: WidgetAction) => {\n setPendingWebhookDraft(undefined);\n setPendingActionError(null);\n setEditingAction(action);\n setIsActionDialogOpen(true);\n }, []);\n\n const handleSaveAction = useCallback(\n async (data: ActionSaveData, webhook: ActionWebhookDraft | null) => {\n if (!selectedWidgetId) return;\n\n setActionSaving(true);\n setPendingActionError(null);\n try {\n // `data` carries only action fields; the webhook binding arrives as a\n // separate arg so it can never leak into the GraphQL mutation input.\n const isUpdate = 'id' in data && !!data.id;\n\n let newAction: WidgetAction | null = null;\n if (isUpdate) {\n newAction = await updateAction(data as UpdateWidgetActionInput);\n } else {\n newAction = await createAction(data as Omit<CreateWidgetActionInput, 'widgetId'>);\n }\n\n // Immediately sync to widget store after successful save\n // This ensures the widget displays the action right away\n if (newAction) {\n const currentActions = [...actions];\n if (isUpdate) {\n // Update existing action\n const idx = currentActions.findIndex((a) => a.id === newAction?.id);\n if (idx >= 0) {\n currentActions[idx] = newAction;\n }\n } else {\n // Add new action\n currentActions.push(newAction);\n }\n // Sort by order and update store\n const sortedActions = currentActions.sort((a, b) => a.order - b.order);\n updateWidgetInStore(selectedWidgetId, { actions: sortedActions });\n\n // Pair (or unpair) the webhook that actually gives the button its behaviour.\n const webhookOk = await reconcileActionWebhook(newAction.name, webhook);\n if (!webhookOk) {\n // The action saved but its webhook did not. Keep the dialog open on\n // the now-persisted action so the user can retry (as an update, not a\n // duplicate). Stash the typed draft (which may be `null` for a failed\n // switch-to-Emit) so re-seeding the dialog keeps the user's choice (#8),\n // and surface why the save didn't fully land (#9).\n setPendingWebhookDraft(webhook);\n setPendingActionError(\n webhook\n ? t(\n 'bigconsole.widget.properties.action.webhookSaveFailed',\n 'The button was saved, but its webhook could not be saved. Check the URL and try again.'\n )\n : t(\n 'bigconsole.widget.properties.action.webhookRemoveFailed',\n 'The button was saved, but its old webhook could not be removed. Try again.'\n )\n );\n setEditingAction(newAction);\n return;\n }\n\n setPendingWebhookDraft(undefined);\n setPendingActionError(null);\n setIsActionDialogOpen(false);\n setEditingAction(undefined);\n }\n } catch (err) {\n // Keep the dialog open (we never closed it in the throw path) and surface\n // the failure to the user — console.log is globally no-op'd here, so warn (#9).\n console.warn('Failed to save widget action:', err);\n setPendingActionError(\n err instanceof Error\n ? err.message\n : t('bigconsole.widget.properties.action.saveFailed', 'Could not save the button. Please try again.')\n );\n } finally {\n setActionSaving(false);\n }\n },\n [selectedWidgetId, actions, createAction, updateAction, updateWidgetInStore, reconcileActionWebhook, t]\n );\n\n const handleDeleteAction = useCallback(\n async (actionId: string) => {\n if (!selectedWidgetId) return;\n\n if (\n window.confirm(\n t('bigconsole.widget.properties.action.deleteConfirm', 'Are you sure you want to delete this action?')\n )\n ) {\n const target = actions.find((a) => a.id === actionId);\n const success = await deleteAction(actionId);\n if (success) {\n // Immediately sync to widget store after deletion\n const updatedActions = actions.filter((a) => a.id !== actionId);\n updateWidgetInStore(selectedWidgetId, { actions: updatedActions });\n\n // Best-effort: remove the webhook mapping this button was paired with.\n if (target) {\n const paired = webhookForAction(target.name);\n if (paired) await deleteWebhook(paired.id);\n }\n }\n }\n },\n [selectedWidgetId, actions, deleteAction, updateWidgetInStore, webhookForAction, deleteWebhook, t]\n );\n\n const handleMoveActionUp = useCallback(\n async (index: number) => {\n if (!selectedWidgetId || index === 0) return;\n const sortedActions = [...actions].sort((a, b) => a.order - b.order);\n const newOrder = sortedActions.map((a) => a.id);\n [newOrder[index - 1], newOrder[index]] = [newOrder[index], newOrder[index - 1]];\n const success = await reorderActions(newOrder);\n if (success) {\n // Immediately update local order for UI responsiveness\n const reordered = sortedActions\n .map((a, _i) => ({\n ...a,\n order: newOrder.indexOf(a.id),\n }))\n .sort((a, b) => a.order - b.order);\n updateWidgetInStore(selectedWidgetId, { actions: reordered });\n }\n },\n [selectedWidgetId, actions, reorderActions, updateWidgetInStore]\n );\n\n const handleMoveActionDown = useCallback(\n async (index: number) => {\n if (!selectedWidgetId) return;\n const sortedActions = [...actions].sort((a, b) => a.order - b.order);\n if (index === sortedActions.length - 1) return;\n const newOrder = sortedActions.map((a) => a.id);\n [newOrder[index], newOrder[index + 1]] = [newOrder[index + 1], newOrder[index]];\n const success = await reorderActions(newOrder);\n if (success) {\n // Immediately update local order for UI responsiveness\n const reordered = sortedActions\n .map((a, _i) => ({\n ...a,\n order: newOrder.indexOf(a.id),\n }))\n .sort((a, b) => a.order - b.order);\n updateWidgetInStore(selectedWidgetId, { actions: reordered });\n }\n },\n [selectedWidgetId, actions, reorderActions, updateWidgetInStore]\n );\n\n useEffect(() => {\n if (selectedWidgetId && actions.length >= 0 && !actionsLoading) {\n updateWidgetInStore(selectedWidgetId, { actions });\n }\n }, [selectedWidgetId, actions, actionsLoading, updateWidgetInStore]);\n\n const updateLocalForm = useCallback(\n <K extends keyof LocalFormState>(key: K, value: LocalFormState[K]) => {\n setLocalForm((prev) => (prev ? { ...prev, [key]: value } : prev));\n markFormDirty();\n },\n [markFormDirty]\n );\n\n const updateLocalConfig = useCallback(\n (newConfig: Record<string, unknown>) => {\n setLocalForm((prev) => (prev ? { ...prev, config: newConfig } : prev));\n markFormDirty();\n },\n [markFormDirty]\n );\n\n // Explicit bindings win. Only an absent DataSink ref is inferred from the\n // actual parser input key and the current workspace's real sink records.\n useEffect(() => {\n if (!localForm) {\n setSelectedDataSinkKey(null);\n return;\n }\n if (localForm.dataSinkId) {\n setSelectedDataSinkKey(dataSinks.find((sink) => sink.id === localForm.dataSinkId)?.key ?? null);\n return;\n }\n const binding = getWidgetBinding({ parserId: localForm.parserId, config: localForm.config });\n const parser = resolvedBindingParser?.id === localForm.parserId ? resolvedBindingParser : null;\n const sink =\n binding.source.kind === 'DATASINK' && !binding.source.ref && parser\n ? dataSinks.find((candidate) => candidate.key === parser.inputSinkKey)\n : undefined;\n setSelectedDataSinkKey(sink?.key ?? null);\n if (sink) {\n setLocalForm((previous) =>\n previous && previous.parserId === parser?.id && !previous.dataSinkId\n ? { ...previous, dataSinkId: sink.id }\n : previous\n );\n }\n }, [localForm, dataSinks, resolvedBindingParser]);\n\n // Handle DataSink selection - looks up ID from key and updates form\n const handleDataSinkChange = useCallback(\n (key: string | null) => {\n setBindingPreview(undefined);\n setBindingPreviewComplete(false);\n setBindingPreviewError(null);\n setSelectedDataSinkKey(key);\n if (key) {\n const ds = dataSinks.find((d) => d.key === key);\n if (ds) {\n updateLocalForm('dataSinkId', ds.id);\n // Also update config.dataSinkKey for backward compatibility\n setLocalForm((prev) =>\n prev\n ? {\n ...prev,\n config: { ...prev.config, dataSinkKey: key },\n }\n : prev\n );\n markFormDirty();\n }\n } else {\n updateLocalForm('dataSinkId', undefined);\n setLocalForm((prev) =>\n prev\n ? {\n ...prev,\n config: { ...prev.config, dataSinkKey: undefined },\n parserId: undefined, // Clear parser when DataSink is cleared\n }\n : prev\n );\n markFormDirty();\n }\n },\n [dataSinks, updateLocalForm, markFormDirty]\n );\n\n // Handle Parser selection - with auto-detection of field mappings\n const handleParserChange = useCallback(\n async (parserId: string | null) => {\n updateLocalForm('parserId', parserId || undefined);\n setBindingPreview(undefined);\n setBindingPreviewComplete(false);\n setBindingPreviewError(null);\n\n // If a parser is selected, execute it to detect field structure\n if (parserId && selectedWidget) {\n setIsDetectingFields(true);\n try {\n const result = await executeParser(parserId);\n\n if (result?.success) {\n setBindingPreview(result.output);\n setBindingPreviewComplete(true);\n const detectedFields = detectFieldsFromParserOutput(result.output);\n\n // Only auto-populate if fields were detected and not already set\n if (detectedFields.labelField || detectedFields.valueField) {\n setLocalForm((prev) => {\n if (!prev) return prev;\n\n const currentConfig = prev.config || {};\n const newConfig = { ...currentConfig };\n\n // Auto-populate labelField if not already set\n if (detectedFields.labelField && !currentConfig.labelField) {\n newConfig.labelField = detectedFields.labelField;\n }\n\n // Auto-populate valueField if not already set\n if (detectedFields.valueField && !currentConfig.valueField) {\n newConfig.valueField = detectedFields.valueField;\n }\n\n // Auto-populate xAxisField for line/bar/area charts if not already set\n if (detectedFields.xAxisField && !currentConfig.xAxisField) {\n newConfig.xAxisField = detectedFields.xAxisField;\n }\n\n return { ...prev, config: newConfig };\n });\n markFormDirty();\n }\n } else {\n setBindingPreviewComplete(true);\n setBindingPreviewError(\n result?.error ||\n t('bigconsole.widget.properties.parser.previewFailed', 'The parser could not produce a preview.')\n );\n }\n } catch (err) {\n setBindingPreviewComplete(true);\n setBindingPreviewError(\n err instanceof Error\n ? err.message\n : t('bigconsole.widget.properties.parser.previewFailed', 'The parser could not produce a preview.')\n );\n console.warn('Failed to auto-detect parser fields:', err);\n } finally {\n setIsDetectingFields(false);\n }\n }\n },\n [updateLocalForm, executeParser, selectedWidget, markFormDirty, t]\n );\n\n const handleSaveAll = useCallback(async () => {\n if (!selectedWidget || !localForm) return;\n\n // Snapshot the form revision before awaiting: any edit made while the\n // mutation is in flight bumps it, and must survive the completion handler.\n const revisionAtSave = formRevisionRef.current;\n\n setSaveStatus('saving');\n\n try {\n const metadata = { ...(selectedWidget.metadata || {}), description: localForm.description || '' };\n // Reconcile against the latest persisted config so we don't wipe keys another\n // editor changed while the panel held unsaved edits (e.g. pivot rows/columns/\n // values dragged on the canvas). See reconcilePanelConfig.\n const latestConfig =\n (useWidgetStore.getState().widgets.get(selectedWidget.id)?.config as Record<string, unknown>) ?? {};\n const mergedConfig = reconcilePanelConfig(latestConfig, seededConfigRef.current, localForm.config);\n const bindingDraft = getWidgetBinding({\n dataSinkId: localForm.dataSinkId,\n parserId: localForm.parserId,\n config: { ...mergedConfig, binding: undefined },\n });\n const bindingWrite = serializeWidgetBinding(bindingDraft, mergedConfig);\n\n const result = await updateWidgetApi({\n id: selectedWidget.id,\n title: localForm.title,\n renderer: localForm.renderer,\n template: localForm.template,\n config: bindingWrite.config,\n refreshInterval: localForm.refreshInterval,\n // v2.0: Data source fields (DataSink → Parser → Widget)\n dataSinkId: bindingWrite.dataSinkId,\n datasetId: localForm.datasetId,\n parserId: bindingWrite.parserId,\n parserRules: localForm.parserRules,\n metadata,\n });\n\n // Save drilldown configuration to backend. A rejected drilldown (target\n // archived or no longer shared, a page from another dashboard) must not\n // read as a successful save, so it is reported separately (BOFF-7625).\n let savedDrilldown = selectedWidget.drilldown;\n let drilldownFailure: Error | null = null;\n const existingDrilldownId = selectedWidget.drilldown?.id;\n try {\n if (localForm.drilldownConfig) {\n const {\n enabled,\n targetDashboardId,\n targetPageId,\n navigationMode,\n parameterMapping,\n passGlobalFilters,\n maxDepth,\n } = localForm.drilldownConfig;\n\n if (existingDrilldownId && !enabled) {\n // Turning drilldown off removes it, as the panel tells the user.\n await deleteDrilldown(existingDrilldownId);\n savedDrilldown = undefined;\n } else if (existingDrilldownId) {\n const drilldownResult = await updateDrilldown({\n id: existingDrilldownId,\n targetDashboardId,\n targetPageId,\n parameterMapping,\n navigationMode,\n enabled,\n passGlobalFilters,\n maxDepth,\n });\n if (drilldownResult) {\n savedDrilldown = drilldownResult;\n }\n } else if (enabled && targetDashboardId) {\n const drilldownResult = await createDrilldown({\n sourceWidgetId: selectedWidget.id,\n targetDashboardId,\n targetPageId,\n parameterMapping: parameterMapping || {},\n navigationMode,\n passGlobalFilters,\n maxDepth,\n });\n if (drilldownResult) {\n savedDrilldown = drilldownResult;\n }\n }\n }\n } catch (err) {\n drilldownFailure = err instanceof Error ? err : new Error(String(err));\n }\n\n if (result) {\n updateWidgetInStore(selectedWidget.id, {\n title: localForm.title,\n description: localForm.description,\n renderer: localForm.renderer,\n template: localForm.template,\n config: bindingWrite.config,\n refreshInterval: localForm.refreshInterval,\n // v2.0: Data source fields\n dataSinkId: bindingWrite.dataSinkId,\n datasetId: localForm.datasetId,\n parserId: bindingWrite.parserId,\n parserRules: localForm.parserRules,\n // Drilldown configuration from backend\n drilldown: savedDrilldown,\n // Update timestamp to trigger WidgetWrapper re-render (fixes drilldown mode change bug)\n updatedAt: new Date().toISOString(),\n } as Partial<Widget>);\n\n if (drilldownFailure) {\n // The widget itself saved; keep the form dirty so the drilldown edit\n // can be corrected and saved again.\n setSaveStatus('error');\n toast.error(t('bigconsole.widget.drilldown.saveFailed', 'Drilldown not saved'), {\n description: drilldownFailure.message,\n });\n return;\n }\n\n setSaveStatus('saved');\n // Only mark clean if nothing was edited during the round-trip.\n // Clearing unconditionally let the re-seed effect overwrite localForm\n // with the just-saved server state, silently discarding that edit.\n if (formRevisionRef.current === revisionAtSave) {\n setHasUnsavedChanges(false);\n }\n setTimeout(() => setSaveStatus('idle'), 2000);\n } else {\n setSaveStatus('error');\n }\n } catch (err) {\n setSaveStatus('error');\n }\n }, [\n selectedWidget,\n localForm,\n updateWidgetApi,\n updateWidgetInStore,\n createDrilldown,\n updateDrilldown,\n deleteDrilldown,\n t,\n ]);\n\n const handleDiscardAll = useCallback(() => {\n if (!selectedWidget) return;\n\n setLocalForm(createLocalFormStateFromWidget(selectedWidget));\n seededConfigRef.current = (selectedWidget.config as Record<string, unknown>) || {};\n setHasUnsavedChanges(false);\n setSaveStatus('idle');\n }, [selectedWidget]);\n\n const handleConfigChange = useCallback(\n (newConfig: Record<string, unknown>) => {\n updateLocalConfig(newConfig);\n },\n [updateLocalConfig]\n );\n\n const handleDrilldownChange = useCallback(\n (config: DrilldownConfig) => {\n setLocalForm((prev) => (prev ? { ...prev, drilldownConfig: config } : prev));\n markFormDirty();\n },\n [markFormDirty]\n );\n\n const definition = selectedWidget ? getWidgetDefinition(selectedWidget.type) : null;\n\n const rendererOptions = useMemo(\n () =>\n RENDERER_OPTIONS.map((opt) => ({\n value: opt.value,\n label: t(opt.labelKey, opt.label),\n description: t(opt.descriptionKey, opt.description),\n })),\n [t]\n );\n\n const dataSourceTypes = useMemo(\n () =>\n DATA_SOURCE_TYPES.map((type) => ({\n value: type.value,\n label: t(type.labelKey, type.label),\n })),\n [t]\n );\n\n return (\n <Sheet open={isOpen} onOpenChange={(open) => !open && onClose()} modal={false}>\n {/*\n `min(420px, 100vw)` instead of a hard 420px + 90vw cap: on a 390px\n viewport the old sizing left a 39px sliver of unusable canvas beside a\n full-bleed sheet. Now the sheet simply takes the viewport (BOFF-5636).\n */}\n <SheetContent\n style={{\n width: 'min(420px, 100vw)',\n maxWidth: '100vw',\n padding: 0,\n display: 'flex',\n flexDirection: 'column',\n height: '100%',\n overflow: 'hidden',\n }}\n >\n <SheetHeader\n style={{\n padding: 'var(--space-cardPadding)',\n borderBottom: '1px solid var(--color-border-subtle)',\n backgroundColor: 'var(--color-bg-surface)',\n flexShrink: 0,\n }}\n >\n <div style={{ display: 'flex', alignItems: 'center', gap: 'var(--space-controlGap)' }}>\n <div\n style={{\n display: 'flex',\n height: 'var(--size-controlHeight-lg)',\n width: 'var(--size-controlHeight-lg)',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: 'var(--radius-card)',\n backgroundColor: 'var(--color-action-primary-bg)',\n boxShadow: 'var(--shadow-elevation-2)',\n flexShrink: 0,\n }}\n >\n <Info\n style={{\n height: 'var(--size-icon-md)',\n width: 'var(--size-icon-md)',\n color: 'var(--color-action-primary-text)',\n }}\n />\n </div>\n <div style={{ flex: 1, minWidth: 0 }}>\n <div style={{ display: 'flex', alignItems: 'center', gap: 'var(--space-iconGap)' }}>\n <SheetTitle\n style={{\n fontSize: 'var(--font-size-body-md)',\n fontWeight: 'var(--font-weight-bold)',\n color: 'var(--color-text-primary)',\n margin: 0,\n }}\n >\n {selectedWidget\n ? t('bigconsole.widget.properties.header.widgetProperties', 'Widget Properties')\n : t('bigconsole.widget.properties.header.properties', 'Properties')}\n </SheetTitle>\n {saveStatus === 'saving' && (\n <Spinner style={{ height: 'var(--size-icon-sm)', width: 'var(--size-icon-sm)' }} />\n )}\n {saveStatus === 'saved' && (\n <Check\n style={{\n height: 'var(--size-icon-sm)',\n width: 'var(--size-icon-sm)',\n color: 'var(--color-status-success-bg)',\n }}\n />\n )}\n {saveStatus === 'error' && (\n <X\n style={{\n height: 'var(--size-icon-sm)',\n width: 'var(--size-icon-sm)',\n color: 'var(--color-status-error-bg)',\n }}\n />\n )}\n </div>\n {definition && (\n <SheetDescription\n style={{\n fontSize: 'var(--font-size-body-sm)',\n color: 'var(--color-text-secondary)',\n margin: 'var(--space-controlGap) 0 0 0',\n fontWeight: 'var(--font-weight-medium)',\n }}\n >\n {definition.name}\n </SheetDescription>\n )}\n </div>\n </div>\n </SheetHeader>\n\n {selectedWidget ? (\n <Tabs\n value={activeTab}\n onValueChange={(v) => setActiveTab(v as TabId)}\n style={{ flex: 1, display: 'flex', flexDirection: 'column', minHeight: 0, overflow: 'hidden' }}\n >\n {/*\n The tab strip is the panel's navigation, so it no longer renders in\n type smaller than the content it switches (was a hard-coded 12px),\n and it wraps to a second row instead of becoming a horizontal\n scroller that can hide the fourth tab off-screen (BOFF-5636).\n */}\n <TabsList\n style={{\n width: '100%',\n display: 'flex',\n flexWrap: 'wrap',\n justifyContent: 'flex-start',\n borderRadius: 0,\n borderBottom: '1px solid var(--color-border-subtle)',\n padding: '2px 8px',\n backgroundColor: 'var(--color-bg-sunken)',\n minHeight: 'var(--size-controlHeight-lg)',\n height: 'auto',\n flexShrink: 0,\n gap: '2px',\n }}\n >\n <TabsTrigger value=\"general\" style={TAB_TRIGGER_STYLE}>\n {t('bigconsole.widget.properties.tab.general', 'General')}\n </TabsTrigger>\n <TabsTrigger value=\"data\" style={TAB_TRIGGER_STYLE}>\n {t('bigconsole.widget.properties.tab.data', 'Data')}\n </TabsTrigger>\n <TabsTrigger value=\"advanced\" style={TAB_TRIGGER_STYLE}>\n {t('bigconsole.widget.properties.tab.advanced', 'Advanced')}\n </TabsTrigger>\n <TabsTrigger value=\"appearance\" style={TAB_TRIGGER_STYLE}>\n {t('bigconsole.widget.properties.tab.style', 'Style')}\n </TabsTrigger>\n </TabsList>\n\n <div style={{ flex: 1, overflow: 'auto', padding: 'var(--space-cardPadding)', minHeight: 0 }}>\n <TabsContent value=\"general\" className=\"mt-0\">\n {localForm && (\n <SectionStack>\n <GeneralSection\n title={localForm.title}\n description={localForm.description}\n refreshInterval={localForm.refreshInterval}\n onTitleChange={(title) => updateLocalForm('title', title)}\n onDescriptionChange={(description) => updateLocalForm('description', description)}\n onRefreshIntervalChange={(refreshInterval) => updateLocalForm('refreshInterval', refreshInterval)}\n />\n\n <Section\n title={t('bigconsole.widget.properties.actions.heading', 'Buttons')}\n description={t(\n 'bigconsole.widget.properties.actions.subheading',\n 'Configure buttons on this widget'\n )}\n headingLevel={3}\n meta={\n actions.length > 0 ? (\n <span className=\"rounded-pill bg-bg-sunken px-2 py-0.5 text-xs font-medium text-text-secondary\">\n {actions.length}\n </span>\n ) : undefined\n }\n actions={\n <Button size=\"sm\" onClick={handleAddAction}>\n <Plus className=\"size-4\" />\n {t('bigconsole.widget.properties.actions.add', 'Add button')}\n </Button>\n }\n data-testid=\"widget-inspector-actions\"\n >\n {actionsLoading ? (\n <div className=\"flex justify-center py-8\">\n <Spinner className=\"size-6\" />\n </div>\n ) : actions.length === 0 ? (\n <p className=\"text-sm text-text-secondary\">\n {t(\n 'bigconsole.widget.properties.actions.empty',\n 'No buttons yet — add one to let viewers take an action.'\n )}\n </p>\n ) : (\n <div className=\"space-y-2\">\n {[...actions]\n .sort((a, b) => a.order - b.order)\n .map((action, index) => (\n <Card key={action.id} className={action.disabled ? 'opacity-60' : ''}>\n <CardContent className=\"p-3 flex items-center gap-2\">\n <div className=\"flex flex-col gap-0.5\">\n <Button\n variant=\"ghost\"\n size=\"icon-sm\"\n onClick={() => handleMoveActionUp(index)}\n disabled={index === 0}\n className=\"h-5 w-5\"\n >\n <ChevronUp className=\"size-3\" />\n </Button>\n <Button\n variant=\"ghost\"\n size=\"icon-sm\"\n onClick={() => handleMoveActionDown(index)}\n disabled={index === actions.length - 1}\n className=\"h-5 w-5\"\n >\n <ChevronDown className=\"size-3\" />\n </Button>\n </div>\n\n <div className=\"flex-1 min-w-0\">\n <div className=\"flex items-center gap-2\">\n <span\n aria-hidden=\"true\"\n className={`size-2 shrink-0 rounded-full ${ACTION_STYLE_COLORS[action.style] || ACTION_STYLE_FALLBACK_COLOR}`}\n />\n <span className=\"text-sm font-medium truncate\">{action.label}</span>\n </div>\n <p className=\"text-xs text-text-secondary truncate\">\n {webhookByActionName.has(action.name)\n ? t(\n 'bigconsole.widget.properties.actions.webhookSummary',\n '→ {{method}} {{url}}',\n {\n method: webhookByActionName.get(action.name)?.method ?? '',\n url: webhookByActionName.get(action.name)?.webhookUrl ?? '',\n }\n )\n : t('bigconsole.widget.properties.actions.emitsEvent', 'Emits an event')}\n </p>\n </div>\n\n <div className=\"flex shrink-0 gap-1\">\n <Button\n variant=\"ghost\"\n size=\"icon-sm\"\n aria-label={`Edit ${action.label}`}\n onClick={() => handleEditAction(action)}\n >\n <Pencil className=\"size-4\" />\n </Button>\n <Button\n variant=\"ghost\"\n size=\"icon-sm\"\n aria-label={`Delete ${action.label}`}\n onClick={() => handleDeleteAction(action.id)}\n >\n <Trash2 className=\"size-4\" />\n </Button>\n </div>\n </CardContent>\n </Card>\n ))}\n </div>\n )}\n </Section>\n\n {isEditMode && selectedPosition && (\n <LayoutSection\n position={selectedPosition}\n columns={DEFAULT_GRID_CONFIG.cols}\n onChange={handlePositionChange}\n />\n )}\n </SectionStack>\n )}\n </TabsContent>\n\n <TabsContent value=\"data\" className=\"mt-0\">\n {localForm && (\n <SectionStack>\n {(() => {\n const binding = getWidgetBinding({\n dataSinkId: localForm.dataSinkId,\n parserId: localForm.parserId,\n config: { ...localForm.config, binding: undefined },\n });\n const validation = getWidgetBindingStatus({\n binding,\n loading: isDetectingFields || isResolvingBinding,\n error: bindingPreviewError,\n preview: bindingPreview,\n previewComplete: bindingPreviewComplete,\n });\n\n return (\n <DataBindingSection\n consoleId={selectedWidget?.dashboardId || ''}\n binding={binding}\n resolvedParser={resolvedBindingParser ?? undefined}\n dataSinkKey={selectedDataSinkKey}\n dataPath={\n typeof localForm.config.dataPath === 'string' ? localForm.config.dataPath : undefined\n }\n status={validation.status}\n resolving={isResolvingBinding}\n missingFields={validation.missingFields}\n preview={bindingPreview}\n error={bindingPreviewError}\n onDataSinkChange={handleDataSinkChange}\n onParserChange={handleParserChange}\n onDataPathChange={(dataPath) => updateLocalConfig({ ...localForm.config, dataPath })}\n />\n );\n })()}\n\n {/*\n Escape hatch for widgets that bypass the DataSink pipeline.\n It used to be an uppercase micro-label over up to seven\n ungrouped fields shaped exactly like the primary binding\n above it; a recessed section says plainly that this is the\n alternative path (BOFF-5636).\n */}\n <Section\n emphasis=\"muted\"\n title={t('bigconsole.widget.properties.data.alternativeSources', 'Alternative Data Sources')}\n description=\"Skip the DataSink pipeline and fetch straight from an API, a GraphQL endpoint or sample JSON.\"\n headingLevel={3}\n data-testid=\"widget-inspector-alt-sources\"\n >\n <div className=\"flex flex-col gap-form-gap\">\n <div className=\"space-y-2\">\n <Label>{t('bigconsole.widget.properties.data.sourceTypeLabel', 'Data Source Type')}</Label>\n <Select\n value={(localForm.config?.dataSourceType as string) || ''}\n onValueChange={(value) =>\n updateLocalConfig({ ...localForm.config, dataSourceType: value || undefined })\n }\n >\n <SelectTrigger\n style={{ height: 'var(--size-controlHeight-md)', fontSize: 'var(--font-size-body-sm)' }}\n >\n <SelectValue\n placeholder={t(\n 'bigconsole.widget.properties.data.selectTypePlaceholder',\n 'Select type...'\n )}\n />\n </SelectTrigger>\n <SelectContent\n position=\"popper\"\n side=\"bottom\"\n sideOffset={4}\n align=\"start\"\n style={{\n zIndex: 9999,\n maxHeight: '200px',\n backgroundColor: 'var(--color-overlay-popoverBg, var(--color-bg-surface))',\n border: '1px solid var(--color-border-subtle)',\n boxShadow: 'var(--shadow-elevation-3)',\n borderRadius: 'var(--radius-button)',\n }}\n >\n {dataSourceTypes.map((type) => (\n <SelectItem key={type.value} value={type.value}>\n {type.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n\n {localForm.config?.dataSourceType === 'REST_API' && (\n <div className=\"space-y-3\">\n {/* Endpoint URL */}\n <div className=\"space-y-2\">\n <Label>{t('bigconsole.widget.properties.rest.endpointUrlLabel', 'Endpoint URL *')}</Label>\n <Input\n value={(localForm.config?.endpointUrl as string) || ''}\n onChange={(e) =>\n updateLocalConfig({ ...localForm.config, endpointUrl: e.target.value || undefined })\n }\n placeholder=\"https://api.example.com/data\"\n />\n </div>\n\n {/* HTTP Method */}\n <div className=\"space-y-2\">\n <Label>{t('bigconsole.widget.properties.rest.httpMethodLabel', 'HTTP Method')}</Label>\n <Select\n value={(localForm.config?.httpMethod as string) || 'GET'}\n onValueChange={(value) => updateLocalConfig({ ...localForm.config, httpMethod: value })}\n >\n <SelectTrigger style={{ height: 'var(--size-controlHeight-md)' }}>\n <SelectValue />\n </SelectTrigger>\n <SelectContent position=\"popper\" side=\"bottom\" sideOffset={4}>\n <SelectItem value=\"GET\">GET</SelectItem>\n <SelectItem value=\"POST\">POST</SelectItem>\n <SelectItem value=\"PUT\">PUT</SelectItem>\n <SelectItem value=\"DELETE\">DELETE</SelectItem>\n </SelectContent>\n </Select>\n </div>\n\n {/* Headers */}\n <div className=\"space-y-2\">\n <Label>{t('bigconsole.widget.properties.rest.headersLabel', 'Headers (JSON)')}</Label>\n <Textarea\n value={(localForm.config?.headers as string) || ''}\n onChange={(e) =>\n updateLocalConfig({ ...localForm.config, headers: e.target.value || undefined })\n }\n rows={3}\n placeholder='{\"Authorization\": \"Bearer token\", \"Content-Type\": \"application/json\"}'\n className=\"font-mono text-xs\"\n />\n </div>\n\n {/* Authentication Type */}\n <div className=\"space-y-2\">\n <Label>\n {t('bigconsole.widget.properties.rest.authenticationLabel', 'Authentication')}\n </Label>\n <Select\n value={(localForm.config?.authType as string) || 'none'}\n onValueChange={(value) => updateLocalConfig({ ...localForm.config, authType: value })}\n >\n <SelectTrigger style={{ height: 'var(--size-controlHeight-md)' }}>\n <SelectValue />\n </SelectTrigger>\n <SelectContent position=\"popper\" side=\"bottom\" sideOffset={4}>\n <SelectItem value=\"none\">\n {t('bigconsole.widget.properties.rest.authNone', 'None')}\n </SelectItem>\n <SelectItem value=\"api_key\">\n {t('bigconsole.widget.properties.rest.authApiKey', 'API Key')}\n </SelectItem>\n <SelectItem value=\"bearer\">\n {t('bigconsole.widget.properties.rest.authBearer', 'Bearer Token')}\n </SelectItem>\n <SelectItem value=\"basic\">\n {t('bigconsole.widget.properties.rest.authBasic', 'Basic Auth')}\n </SelectItem>\n </SelectContent>\n </Select>\n </div>\n\n {/* Auth Value (conditional) */}\n {!!(localForm.config?.authType && localForm.config.authType !== 'none') && (\n <div className=\"space-y-2\">\n <Label>\n {String(localForm.config.authType) === 'basic'\n ? t('bigconsole.widget.properties.rest.credentialsLabel', 'Credentials (user:pass)')\n : t('bigconsole.widget.properties.rest.tokenKeyLabel', 'Token/Key')}\n </Label>\n <Input\n type=\"password\"\n value={(localForm.config?.authValue as string) || ''}\n onChange={(e) =>\n updateLocalConfig({ ...localForm.config, authValue: e.target.value || undefined })\n }\n placeholder={\n localForm.config.authType === 'basic'\n ? t(\n 'bigconsole.widget.properties.rest.credentialsPlaceholder',\n 'username:password'\n )\n : t(\n 'bigconsole.widget.properties.rest.tokenKeyPlaceholder',\n 'Enter token or API key'\n )\n }\n />\n </div>\n )}\n\n {/* Request Body (for POST/PUT) */}\n {(localForm.config?.httpMethod === 'POST' || localForm.config?.httpMethod === 'PUT') && (\n <div className=\"space-y-2\">\n <Label>\n {t('bigconsole.widget.properties.rest.requestBodyLabel', 'Request Body (JSON)')}\n </Label>\n <Textarea\n value={(localForm.config?.requestBody as string) || ''}\n onChange={(e) =>\n updateLocalConfig({ ...localForm.config, requestBody: e.target.value || undefined })\n }\n rows={4}\n placeholder='{\"key\": \"value\"}'\n className=\"font-mono text-xs\"\n />\n </div>\n )}\n\n {/* Data Path */}\n <div className=\"space-y-2\">\n <Label>{t('bigconsole.widget.properties.dataPath.label', 'Data Path (optional)')}</Label>\n <Input\n value={(localForm.config?.dataPath as string) || ''}\n onChange={(e) =>\n updateLocalConfig({ ...localForm.config, dataPath: e.target.value || undefined })\n }\n placeholder=\"$.data.items or .data.items\"\n />\n <p className=\"text-xs text-text-secondary\">\n {t(\n 'bigconsole.widget.properties.dataPath.restHelp',\n 'JSONPath or dot notation to extract data from response'\n )}\n </p>\n </div>\n </div>\n )}\n\n {localForm.config?.dataSourceType === 'GRAPHQL' && (\n <div className=\"space-y-3\">\n {/* GraphQL Endpoint */}\n <div className=\"space-y-2\">\n <Label>\n {t('bigconsole.widget.properties.graphql.endpointLabel', 'GraphQL Endpoint *')}\n </Label>\n <Input\n value={(localForm.config?.graphqlEndpoint as string) || ''}\n onChange={(e) =>\n updateLocalConfig({\n ...localForm.config,\n graphqlEndpoint: e.target.value || undefined,\n })\n }\n placeholder=\"https://api.example.com/graphql\"\n />\n </div>\n\n {/* GraphQL Query */}\n <div className=\"space-y-2\">\n <Label>{t('bigconsole.widget.properties.graphql.queryLabel', 'Query *')}</Label>\n <Textarea\n value={(localForm.config?.graphqlQuery as string) || ''}\n onChange={(e) =>\n updateLocalConfig({ ...localForm.config, graphqlQuery: e.target.value || undefined })\n }\n rows={6}\n placeholder={`query GetData($limit: Int) {\n items(limit: $limit) {\n id\n name\n value\n }\n}`}\n className=\"font-mono text-xs\"\n />\n </div>\n\n {/* GraphQL Variables */}\n <div className=\"space-y-2\">\n <Label>\n {t('bigconsole.widget.properties.graphql.variablesLabel', 'Variables (JSON, optional)')}\n </Label>\n <Textarea\n value={(localForm.config?.graphqlVariables as string) || ''}\n onChange={(e) =>\n updateLocalConfig({\n ...localForm.config,\n graphqlVariables: e.target.value || undefined,\n })\n }\n rows={3}\n placeholder='{\"limit\": 10, \"offset\": 0}'\n className=\"font-mono text-xs\"\n />\n </div>\n\n {/* Headers */}\n <div className=\"space-y-2\">\n <Label>\n {t('bigconsole.widget.properties.graphql.headersLabel', 'Headers (JSON, optional)')}\n </Label>\n <Textarea\n value={(localForm.config?.headers as string) || ''}\n onChange={(e) =>\n updateLocalConfig({ ...localForm.config, headers: e.target.value || undefined })\n }\n rows={2}\n placeholder='{\"Authorization\": \"Bearer token\"}'\n className=\"font-mono text-xs\"\n />\n </div>\n\n {/* Data Path */}\n <div className=\"space-y-2\">\n <Label>{t('bigconsole.widget.properties.dataPath.label', 'Data Path (optional)')}</Label>\n <Input\n value={(localForm.config?.dataPath as string) || ''}\n onChange={(e) =>\n updateLocalConfig({ ...localForm.config, dataPath: e.target.value || undefined })\n }\n placeholder=\".data.items\"\n />\n <p className=\"text-xs text-text-secondary\">\n {t(\n 'bigconsole.widget.properties.dataPath.graphqlHelp',\n 'Path to extract data from GraphQL response'\n )}\n </p>\n </div>\n </div>\n )}\n\n {localForm.config?.dataSourceType === 'MOCK' && (\n <div className=\"space-y-2\">\n <Label>\n {t('bigconsole.widget.properties.mock.sampleDataLabel', 'Sample Data (JSON)')}\n </Label>\n <Textarea\n value={(localForm.config?.mockData as string) || ''}\n onChange={(e) =>\n updateLocalConfig({ ...localForm.config, mockData: e.target.value || undefined })\n }\n rows={5}\n placeholder='{\"value\": 100}'\n className=\"font-mono text-sm\"\n />\n </div>\n )}\n </div>\n </Section>\n </SectionStack>\n )}\n </TabsContent>\n\n <TabsContent value=\"advanced\" className=\"mt-0\">\n <SectionStack>\n {localForm && (\n <AdvancedSection\n renderer={localForm.renderer}\n rendererOptions={rendererOptions}\n onRendererChange={(renderer) => {\n updateLocalForm('renderer', renderer);\n if (renderer === 'BIGCONSOLE') updateLocalForm('template', undefined);\n }}\n templateEditor={\n localForm.renderer !== 'BIGCONSOLE' ? (\n <TemplateEditor\n widget={{ ...selectedWidget, template: localForm.template, renderer: localForm.renderer }}\n onSave={(template) => updateLocalForm('template', template)}\n />\n ) : undefined\n }\n />\n )}\n\n <Section\n title={t('bigconsole.widget.properties.section.drilldown', 'Drilldown')}\n description=\"Where a click on this widget's data takes the viewer.\"\n headingLevel={3}\n data-testid=\"widget-inspector-drilldown\"\n >\n <DrilldownConfigPanel widget={selectedWidget} onChange={handleDrilldownChange} />\n </Section>\n\n <Section\n title={t('bigconsole.widget.properties.section.webhooks', 'Webhooks')}\n description=\"HTTP endpoints called when this widget emits an event.\"\n headingLevel={3}\n data-testid=\"widget-inspector-webhooks\"\n >\n <WebhookConfigPanel dashboardId={selectedWidget.dashboardId} widgetId={selectedWidget.id} />\n </Section>\n\n <Section\n emphasis=\"muted\"\n title={t('bigconsole.widget.properties.section.events', 'Events')}\n description=\"Recent deliveries for this widget, newest first. Supporting detail — nothing here changes the widget.\"\n headingLevel={3}\n data-testid=\"widget-inspector-events\"\n >\n <EventLogViewer\n dashboardId={selectedWidget.dashboardId}\n widgetId={selectedWidget.id}\n maxHeight=\"min(50vh, 360px)\"\n />\n </Section>\n </SectionStack>\n </TabsContent>\n\n <TabsContent value=\"appearance\" className=\"mt-0\">\n {localForm && (\n <AppearanceSection\n widgetType={selectedWidget.type}\n config={localForm.config || {}}\n onChange={handleConfigChange}\n />\n )}\n </TabsContent>\n </div>\n </Tabs>\n ) : (\n <div className=\"flex min-h-0 flex-1 items-center justify-center p-card-padding\">\n <Section\n tone=\"info\"\n title={t('bigconsole.widget.properties.emptyState', 'Select a widget to edit')}\n headingLevel={3}\n icon={<Info className=\"h-icon-md w-icon-md\" />}\n className=\"w-full max-w-sm\"\n data-testid=\"widget-inspector-empty\"\n >\n <p className=\"text-sm text-text-secondary\">\n Pick a widget on the canvas and its identity, data binding, actions and style options appear here.\n </p>\n </Section>\n </div>\n )}\n\n {/* Global Save/Discard Footer */}\n {selectedWidget && (\n <div\n style={{\n padding: 'var(--space-cardPadding)',\n borderTop: '1px solid var(--color-border-subtle)',\n backgroundColor: 'var(--color-bg-sunken)',\n flexShrink: 0,\n }}\n >\n {/*\n Save state used to be three ad-hoc inline chips with raw rgba()\n fallbacks baked into the var() calls. They are now one toned\n section, so \"unsaved / saved / failed\" reads the same here as every\n other status surface in the module (BOFF-5636).\n */}\n {hasUnsavedChanges && (\n <Section\n tone=\"warning\"\n padding=\"compact\"\n title={t('bigconsole.widget.properties.footer.unsavedChanges', 'You have unsaved changes')}\n headingLevel={3}\n className=\"mb-control-gap\"\n data-testid=\"widget-inspector-save-unsaved\"\n />\n )}\n\n {saveStatus === 'saved' && !hasUnsavedChanges && (\n <Section\n tone=\"success\"\n padding=\"compact\"\n title={t('bigconsole.widget.properties.footer.allSaved', 'All changes saved')}\n headingLevel={3}\n icon={<Check className=\"h-icon-sm w-icon-sm\" />}\n className=\"mb-control-gap\"\n data-testid=\"widget-inspector-save-saved\"\n />\n )}\n\n {saveStatus === 'error' && (\n <Section\n tone=\"danger\"\n padding=\"compact\"\n title={t('bigconsole.widget.properties.footer.saveFailed', 'Failed to save changes')}\n headingLevel={3}\n icon={<X className=\"h-icon-sm w-icon-sm\" />}\n className=\"mb-control-gap\"\n data-testid=\"widget-inspector-save-error\"\n />\n )}\n\n {/* Action buttons */}\n <div className=\"flex flex-wrap gap-control-gap\">\n <Button\n onClick={handleSaveAll}\n disabled={saveStatus === 'saving' || !hasUnsavedChanges}\n style={{\n flex: 1,\n height: 'var(--size-controlHeight-md)',\n backgroundColor: hasUnsavedChanges ? 'var(--color-action-primary-bg)' : undefined,\n opacity: hasUnsavedChanges ? 1 : 0.5,\n }}\n >\n {saveStatus === 'saving' ? (\n <span style={{ display: 'flex', alignItems: 'center', gap: 'var(--space-iconGap)' }}>\n <Spinner style={{ width: 'var(--size-icon-sm)', height: 'var(--size-icon-sm)' }} />\n {t('bigconsole.widget.properties.footer.saving', 'Saving...')}\n </span>\n ) : (\n <span style={{ display: 'flex', alignItems: 'center', gap: 'var(--space-iconGap)' }}>\n <Check style={{ width: 'var(--size-icon-sm)', height: 'var(--size-icon-sm)' }} />\n {t('bigconsole.widget.properties.footer.saveChanges', 'Save Changes')}\n </span>\n )}\n </Button>\n <Button\n variant=\"outline\"\n onClick={handleDiscardAll}\n disabled={saveStatus === 'saving' || !hasUnsavedChanges}\n style={{\n height: 'var(--size-controlHeight-md)',\n opacity: hasUnsavedChanges ? 1 : 0.5,\n }}\n >\n <X style={{ width: 'var(--size-icon-sm)', height: 'var(--size-icon-sm)' }} />\n {t('bigconsole.widget.properties.footer.discard', 'Discard')}\n </Button>\n </div>\n </div>\n )}\n\n <ActionConfigDialog\n isOpen={isActionDialogOpen}\n action={editingAction}\n initialWebhook={dialogInitialWebhook}\n isLoading={actionSaving}\n saveError={pendingActionError}\n onClose={() => {\n setIsActionDialogOpen(false);\n setEditingAction(undefined);\n setPendingWebhookDraft(undefined);\n setPendingActionError(null);\n }}\n onSave={handleSaveAction}\n />\n </SheetContent>\n </Sheet>\n );\n});\n\nexport default PropertiesPanel;\n"],"mappings":"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"}
@@ -20,3 +20,4 @@ export declare class WidgetErrorBoundary extends Component<WidgetErrorBoundaryPr
20
20
  render(): ReactNode;
21
21
  }
22
22
  export default WidgetErrorBoundary;
23
+ //# sourceMappingURL=WidgetErrorBoundary.d.ts.map
@@ -0,0 +1 @@
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"}
@@ -73,3 +73,5 @@ var r = class extends e {
73
73
  };
74
74
  //#endregion
75
75
  export { r as default };
76
+
77
+ //# sourceMappingURL=WidgetErrorBoundary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WidgetErrorBoundary.js","names":[],"sources":["../../../../src/bigconsole/components/widgets/WidgetErrorBoundary.tsx"],"sourcesContent":["// Per-widget error boundary — isolates render errors so one bad widget can't\n// unmount the whole dashboard (BOFF-2242).\n\nimport { Component, type ErrorInfo, type ReactNode } from 'react';\n\nexport interface WidgetErrorBoundaryProps {\n widgetId: string;\n widgetType?: string;\n widgetTitle?: string;\n // Change to reset even when widgetId is stable (e.g. parser re-bind or config edit).\n resetKey?: string | number;\n children: ReactNode;\n onError?: (error: Error, info: ErrorInfo) => void;\n}\n\ninterface WidgetErrorBoundaryState {\n error: Error | null;\n}\n\nexport class WidgetErrorBoundary extends Component<WidgetErrorBoundaryProps, WidgetErrorBoundaryState> {\n state: WidgetErrorBoundaryState = { error: null };\n\n static getDerivedStateFromError(error: Error): WidgetErrorBoundaryState {\n return { error };\n }\n\n componentDidCatch(error: Error, info: ErrorInfo): void {\n const { widgetId, widgetType, widgetTitle, onError } = this.props;\n // eslint-disable-next-line no-console -- boundary needs a visible trace\n console.error(\n `[WidgetErrorBoundary] widget ${widgetId}${widgetType ? ` (${widgetType})` : ''}${\n widgetTitle ? ` \"${widgetTitle}\"` : ''\n } threw:`,\n error,\n info.componentStack\n );\n onError?.(error, info);\n }\n\n componentDidUpdate(prevProps: WidgetErrorBoundaryProps): void {\n // Reset on widgetId or resetKey change so config edits auto-recover without requiring Retry.\n if (\n this.state.error &&\n (prevProps.widgetId !== this.props.widgetId || prevProps.resetKey !== this.props.resetKey)\n ) {\n this.setState({ error: null });\n }\n }\n\n private handleRetry = (): void => {\n this.setState({ error: null });\n };\n\n render(): ReactNode {\n const { error } = this.state;\n if (!error) return this.props.children;\n\n // Full error is logged via componentDidCatch — never render raw error\n // text in the DOM (title, data-*, etc.) since it can leak internal paths.\n const { widgetType, widgetTitle } = this.props;\n const label = widgetTitle || widgetType || 'This widget';\n\n return (\n /* Shares the widget-state recipe (chip, copy width, padding, retry button). */\n <div\n className=\"flex h-full w-full min-w-0 min-h-[120px] flex-col items-center justify-center px-3 text-center\"\n role=\"alert\"\n data-widget-error=\"true\"\n >\n <div className=\"mb-3 flex h-12 w-12 shrink-0 items-center justify-center rounded-full bg-status-error-bg-subtle text-[var(--color-status-error-text)]\">\n <svg aria-hidden=\"true\" className=\"w-6 h-6\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z\"\n />\n </svg>\n </div>\n\n <p className=\"mb-1 text-sm font-semibold text-[var(--color-status-error-text)]\">Widget failed to render</p>\n <p className=\"mb-3 max-w-[32ch] text-xs text-text-secondary\">\n {label} hit an unexpected error. Check the console for details or retry.\n </p>\n\n <button\n type=\"button\"\n onClick={this.handleRetry}\n className=\"inline-flex min-h-control-md items-center gap-1.5 rounded-button bg-action-primary-bg px-3 text-sm font-medium text-action-primary-text hover:bg-action-primary-bgHover motion-safe:transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-bg-surface\"\n >\n <svg aria-hidden=\"true\" className=\"w-4 h-4\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15\"\n />\n </svg>\n Retry\n </button>\n </div>\n );\n }\n}\n\nexport default WidgetErrorBoundary;\n"],"mappings":";;;AAmBA,IAAa,IAAb,cAAyC,EAA8D;CACrG,QAAkC,EAAE,OAAO,MAAM;CAEjD,OAAO,yBAAyB,GAAwC;AACtE,SAAO,EAAE,UAAO;;CAGlB,kBAAkB,GAAc,GAAuB;EACrD,IAAM,EAAE,aAAU,eAAY,gBAAa,eAAY,KAAK;AAS5D,EAPA,QAAQ,MACN,gCAAgC,IAAW,IAAa,KAAK,EAAW,KAAK,KAC3E,IAAc,KAAK,EAAY,KAAK,GACrC,UACD,GACA,EAAK,eACN,EACD,IAAU,GAAO,EAAK;;CAGxB,mBAAmB,GAA2C;AAE5D,EACE,KAAK,MAAM,UACV,EAAU,aAAa,KAAK,MAAM,YAAY,EAAU,aAAa,KAAK,MAAM,aAEjF,KAAK,SAAS,EAAE,OAAO,MAAM,CAAC;;CAIlC,oBAAkC;AAChC,OAAK,SAAS,EAAE,OAAO,MAAM,CAAC;;CAGhC,SAAoB;EAClB,IAAM,EAAE,aAAU,KAAK;AACvB,MAAI,CAAC,EAAO,QAAO,KAAK,MAAM;EAI9B,IAAM,EAAE,eAAY,mBAAgB,KAAK;AAGzC,SAEE,kBAAC,OAAD;GACE,WAAU;GACV,MAAK;GACL,qBAAkB;aAHpB;IAKE,kBAAC,OAAD;KAAK,WAAU;eACb,kBAAC,OAAD;MAAK,eAAY;MAAO,WAAU;MAAU,MAAK;MAAO,QAAO;MAAe,SAAQ;gBACpF,kBAAC,QAAD;OACE,eAAc;OACd,gBAAe;OACf,aAAa;OACb,GAAE;OACF,CAAA;MACE,CAAA;KACF,CAAA;IAEN,kBAAC,KAAD;KAAG,WAAU;eAAmE;KAA2B,CAAA;IAC3G,kBAAC,KAAD;KAAG,WAAU;eAAb,CArBU,KAAe,KAAc,eAsB9B,oEACL;;IAEJ,kBAAC,UAAD;KACE,MAAK;KACL,SAAS,KAAK;KACd,WAAU;eAHZ,CAKE,kBAAC,OAAD;MAAK,eAAY;MAAO,WAAU;MAAU,MAAK;MAAO,QAAO;MAAe,SAAQ;gBACpF,kBAAC,QAAD;OACE,eAAc;OACd,gBAAe;OACf,aAAa;OACb,GAAE;OACF,CAAA;MACE,CAAA,EAAA,QAEC;;IACL"}
@@ -41,3 +41,4 @@ export interface WidgetHeaderProps {
41
41
  }
42
42
  export declare const WidgetHeader: FC<WidgetHeaderProps>;
43
43
  export default WidgetHeader;
44
+ //# sourceMappingURL=WidgetHeader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WidgetHeader.d.ts","sourceRoot":"","sources":["../../../../src/bigconsole/components/widgets/WidgetHeader.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,EAA2B,MAAM,OAAO,CAAC;AAEzD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAOzD,MAAM,WAAW,iBAAiB;IAChC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,sBAAsB;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,sCAAsC;IACtC,UAAU,EAAE,gBAAgB,CAAC;IAC7B,qCAAqC;IACrC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,2BAA2B;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,oCAAoC;IACpC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iDAAiD;IACjD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kDAAkD;IAClD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,gCAAgC;IAChC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,gCAAgC;IAChC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,6BAA6B;IAC7B,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,uCAAuC;IACvC,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,mDAAmD;IACnD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gDAAgD;IAChD,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAMD,eAAO,MAAM,YAAY,EAAE,EAAE,CAAC,iBAAiB,CAsO7C,CAAC;AAgHH,eAAe,YAAY,CAAC"}
@@ -284,3 +284,5 @@ var a = t(function({ previewOnly: t = !1, widget: a, definition: s, isSelected:
284
284
  };
285
285
  //#endregion
286
286
  export { a as default };
287
+
288
+ //# sourceMappingURL=WidgetHeader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WidgetHeader.js","names":[],"sources":["../../../../src/bigconsole/components/widgets/WidgetHeader.tsx"],"sourcesContent":["/**\n * WidgetHeader Component\n *\n * Header section of a widget with title, icon, and action menu.\n */\n\nimport { type FC, type ReactElement, memo } from 'react';\nimport { MessageSquare } from 'lucide-react';\nimport type { Widget } from '../../types';\nimport type { WidgetDefinition } from './WidgetRegistry';\nimport { WidgetMenu } from './WidgetMenu';\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface WidgetHeaderProps {\n previewOnly?: boolean;\n /** The widget data */\n widget: Widget;\n /** Widget definition from registry */\n definition: WidgetDefinition;\n /** Whether the widget is selected */\n isSelected?: boolean;\n /** Whether in edit mode */\n isEditMode?: boolean;\n /**\n * The rendered values come from a template's embedded sample, not a\n * connected data source. Badged so nobody mistakes example numbers for\n * their own.\n */\n isSampleData?: boolean;\n /** Whether the widget is loading */\n isLoading?: boolean;\n /** Time until next refresh (formatted string) */\n timeUntilRefresh?: string;\n /** Whether drilldown is enabled on this widget */\n hasDrilldown?: boolean;\n /** Callback to refresh widget */\n onRefresh?: () => void;\n /** Callback to export as CSV */\n onExportCSV?: () => void;\n /** Callback to export as PNG */\n onExportPNG?: () => void;\n /** Callback for drilldown */\n onDrilldown?: () => void;\n /** Toggle the widget comments panel */\n onToggleComments?: () => void;\n /** Whether the comments panel is currently open */\n commentsOpen?: boolean;\n /** Number of comments on this widget (badge) */\n commentCount?: number;\n}\n\n// ============================================================================\n// Component\n// ============================================================================\n\nexport const WidgetHeader: FC<WidgetHeaderProps> = memo(function WidgetHeader({\n previewOnly = false,\n widget,\n definition,\n isSelected,\n isEditMode,\n isLoading,\n isSampleData,\n timeUntilRefresh,\n hasDrilldown,\n onRefresh,\n onExportCSV,\n onExportPNG,\n onDrilldown,\n onToggleComments,\n commentsOpen,\n commentCount = 0,\n}) {\n return (\n /*\n The card's title band. It is the anchor of the card, so the title is\n `font-semibold` (was `font-medium`, identical to body copy) and the band\n sits on the card surface with a seam — the sunken fill now belongs to the\n action tray at the bottom, so the two strips read as different jobs\n (BOFF-5636).\n\n The fill is chosen in ONE branch rather than layering\n `bg-action-primary-bg/5` on top of `bg-bg-surface`: two background-colour\n utilities on the same element are resolved by Tailwind's output order, not\n by the order they are written, so the selected tint was not reliably\n winning.\n */\n <div\n className={`\n flex min-w-0 items-center justify-between gap-1\n px-3 py-2 sm:px-4\n border-b border-[var(--color-border-subtle)]\n ${isSelected && isEditMode ? 'bg-action-primary-bg/5' : 'bg-bg-surface'}\n `}\n >\n {/* Left side: Icon and Title - THIS IS THE DRAG HANDLE */}\n <div\n className={`\n widget-drag-handle\n flex items-center gap-2 min-w-0 flex-1\n ${isEditMode ? 'cursor-move' : ''}\n `}\n >\n {/* Widget type icon */}\n <div\n className={`\n flex-shrink-0 h-icon-md w-icon-md\n text-text-secondary\n ${isLoading ? 'animate-pulse' : ''}\n `}\n >\n <WidgetIcon name={definition.icon} />\n </div>\n\n {/* Title */}\n <h3\n className=\"\n truncate text-sm font-semibold leading-tight tracking-tight\n text-text-primary\n \"\n title={widget.title}\n >\n {widget.title}\n </h3>\n\n {/* Sample-data badge — example values, not the viewer's own data */}\n {isSampleData && (\n <span\n className=\"\n flex-shrink-0\n px-1.5 py-0.5\n rounded\n text-[10px] font-medium uppercase tracking-wide\n bg-status-info-bg-subtle text-status-info-text\n \"\n title=\"Example values from the template. Connect a data source to see your own data.\"\n >\n Sample\n </span>\n )}\n\n {/* Drilldown indicator badge */}\n {hasDrilldown && (\n <span\n className=\"\n flex-shrink-0 inline-flex items-center gap-0.5\n px-1.5 py-0.5 rounded-md\n bg-action-primary-bg/10 text-action-primary-text\n text-[10px] font-medium\n \"\n title=\"Click data to drill down\"\n >\n <svg className=\"w-2.5 h-2.5\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2.5}\n d=\"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14\"\n />\n </svg>\n Drilldown\n </span>\n )}\n\n {/* Refresh indicator */}\n {timeUntilRefresh && !isEditMode && (\n <span\n className=\"\n flex-shrink-0 text-xs\n text-text-secondary\n tabular-nums\n \"\n title=\"Time until next refresh\"\n >\n {timeUntilRefresh}\n </span>\n )}\n </div>\n\n {/* Right side: Actions — allowed to shrink so a narrow card keeps its title */}\n <div className=\"flex min-w-0 shrink items-center gap-0.5\">\n {/* Drilldown button (shown in view mode) */}\n {onDrilldown && !isEditMode && (\n <button\n type=\"button\"\n onClick={(e) => {\n e.stopPropagation();\n onDrilldown();\n }}\n className=\"\n p-1.5 rounded-md\n text-text-secondary\n hover:text-text-primary\n hover:bg-bg-sunken\n transition-colors\n \"\n title=\"Drill down to details\"\n >\n <svg className=\"w-4 h-4\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14\"\n />\n </svg>\n </button>\n )}\n\n {/* Refresh button */}\n {onRefresh && (\n <button\n type=\"button\"\n onClick={(e) => {\n e.stopPropagation();\n onRefresh();\n }}\n disabled={isLoading}\n className={`\n p-1.5 rounded-md\n text-text-secondary\n hover:text-text-primary\n hover:bg-bg-sunken\n transition-colors\n disabled:opacity-50 disabled:cursor-not-allowed\n ${isLoading ? 'animate-spin' : ''}\n `}\n title=\"Refresh data\"\n >\n <svg className=\"w-4 h-4\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15\"\n />\n </svg>\n </button>\n )}\n\n {/* Comments toggle */}\n {onToggleComments && (\n <button\n type=\"button\"\n onClick={(e) => {\n e.stopPropagation();\n onToggleComments();\n }}\n aria-label=\"Toggle comments\"\n aria-pressed={commentsOpen}\n className={`\n relative p-1.5 rounded-md\n transition-colors\n ${\n commentsOpen\n ? 'text-action-primary-text bg-action-primary-bg/10'\n : 'text-text-secondary hover:text-text-primary hover:bg-bg-sunken'\n }\n `}\n title=\"Comments\"\n >\n <MessageSquare className=\"w-4 h-4\" />\n {commentCount > 0 && (\n <span className=\"absolute -top-0.5 -right-0.5 min-w-[14px] h-[14px] px-0.5 rounded-full bg-action-primary-bg text-action-primary-text text-[9px] font-semibold leading-[14px] text-center tabular-nums\">\n {commentCount > 99 ? '99+' : commentCount}\n </span>\n )}\n </button>\n )}\n\n {/* Menu (always visible) */}\n {!previewOnly && (\n <div className=\"block\">\n <WidgetMenu\n widget={widget}\n isEditMode={isEditMode}\n onRefresh={onRefresh}\n onExportCSV={onExportCSV}\n onExportPNG={onExportPNG}\n />\n </div>\n )}\n </div>\n </div>\n );\n});\n\n// ============================================================================\n// Widget Icon Component\n// ============================================================================\n\ninterface WidgetIconProps {\n name: string;\n className?: string;\n}\n\nconst WidgetIcon: FC<WidgetIconProps> = ({ name, className = '' }) => {\n // Simple icon mapping - in production, use lucide-react or similar\n const icons: Record<string, ReactElement> = {\n TrendingUp: (\n <svg fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" className={className}>\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M13 7h8m0 0v8m0-8l-8 8-4-4-6 6\" />\n </svg>\n ),\n BarChart3: (\n <svg fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" className={className}>\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M18 20V10M12 20V4M6 20v-6\" />\n </svg>\n ),\n LineChart: (\n <svg fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" className={className}>\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M7 20l4-16m2 16l4-16M6 9h14M4 15h14\" />\n </svg>\n ),\n Table: (\n <svg fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" className={className}>\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M3 10h18M3 14h18m-9-4v8m-7 0h14a2 2 0 002-2V8a2 2 0 00-2-2H5a2 2 0 00-2 2v8a2 2 0 002 2z\"\n />\n </svg>\n ),\n Gauge: (\n <svg fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" className={className}>\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z\"\n />\n </svg>\n ),\n Activity: (\n <svg fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" className={className}>\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M22 12h-4l-3 9L9 3l-3 9H2\" />\n </svg>\n ),\n List: (\n <svg fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" className={className}>\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M4 6h16M4 10h16M4 14h16M4 18h16\" />\n </svg>\n ),\n PieChart: (\n <svg fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" className={className}>\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M11 3.055A9.001 9.001 0 1020.945 13H11V3.055z\"\n />\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M20.488 9H15V3.512A9.025 9.025 0 0120.488 9z\"\n />\n </svg>\n ),\n BarChart: (\n <svg fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" className={className}>\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z\"\n />\n </svg>\n ),\n AreaChart: (\n <svg fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" className={className}>\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M7 12l3-3 3 3 4-4M8 21l4-4 4 4M3 4h18M4 4v16\"\n />\n </svg>\n ),\n };\n\n // Default icon\n const defaultIcon = (\n <svg fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" className={className}>\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M4 5a1 1 0 011-1h14a1 1 0 011 1v2a1 1 0 01-1 1H5a1 1 0 01-1-1V5zM4 13a1 1 0 011-1h6a1 1 0 011 1v6a1 1 0 01-1 1H5a1 1 0 01-1-1v-6zM16 13a1 1 0 011-1h2a1 1 0 011 1v6a1 1 0 01-1 1h-2a1 1 0 01-1-1v-6z\"\n />\n </svg>\n );\n\n return icons[name] || defaultIcon;\n};\n\nexport default WidgetHeader;\n"],"mappings":"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"}
@@ -15,3 +15,4 @@ export interface WidgetMenuProps {
15
15
  }
16
16
  export declare const WidgetMenu: FC<WidgetMenuProps>;
17
17
  export default WidgetMenu;
18
+ //# sourceMappingURL=WidgetMenu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WidgetMenu.d.ts","sourceRoot":"","sources":["../../../../src/bigconsole/components/widgets/WidgetMenu.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,EAAqE,MAAM,OAAO,CAAC;AAGnG,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAS1C,MAAM,WAAW,eAAe;IAC9B,sBAAsB;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,2BAA2B;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,gCAAgC;IAChC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,gCAAgC;IAChC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;CAC1B;AAsBD,eAAO,MAAM,UAAU,EAAE,EAAE,CAAC,eAAe,CAuZzC,CAAC;AAEH,eAAe,UAAU,CAAC"}
@@ -303,3 +303,5 @@ var p = r(function({ widget: r, isEditMode: p, onRefresh: m, onExportCSV: h, onE
303
303
  });
304
304
  //#endregion
305
305
  export { p as default };
306
+
307
+ //# sourceMappingURL=WidgetMenu.js.map