@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":"WidgetMenu.js","names":[],"sources":["../../../../src/bigconsole/components/widgets/WidgetMenu.tsx"],"sourcesContent":["/**\n * WidgetMenu Component\n *\n * Dropdown menu with widget actions (edit, duplicate, delete, etc.)\n */\n\nimport { type FC, type ReactElement, useState, useRef, useEffect, useCallback, memo } from 'react';\nimport { createPortal } from 'react-dom';\nimport { usePermissions } from '@burdenoff/fe-libs/shared/providers/shell';\nimport type { Widget } from '../../types';\nimport { useWidgetStore } from '../../store';\nimport { useWidgetOperations } from '../../hooks';\nimport { BIGCONSOLE_PERMISSIONS } from '../../../constants/permissions';\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface WidgetMenuProps {\n /** The widget data */\n widget: Widget;\n /** Whether in edit mode */\n isEditMode?: 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}\n\ninterface MenuItem {\n id: string;\n label: string;\n icon: ReactElement;\n action: () => void;\n disabled?: boolean;\n destructive?: boolean;\n divider?: boolean;\n /**\n * When `false`, the item is filtered out entirely because the caller lacks the\n * matching widget permission. `undefined`/`true` = always shown (read-only\n * actions and dividers).\n */\n permitted?: boolean;\n}\n\n// ============================================================================\n// Component\n// ============================================================================\n\nexport const WidgetMenu: FC<WidgetMenuProps> = memo(function WidgetMenu({\n widget,\n isEditMode,\n onRefresh,\n onExportCSV,\n onExportPNG,\n}) {\n const [isOpen, setIsOpen] = useState(false);\n const [menuPosition, setMenuPosition] = useState({ top: 0, left: 0 });\n const menuRef = useRef<HTMLDivElement>(null);\n const buttonRef = useRef<HTMLButtonElement>(null);\n\n // Permission gating for the widget CRUD actions. Read-only actions (refresh,\n // export) are always available; mutating actions are hidden when denied. The\n // menu items are custom portalled <button>s (not fe-libs Button), so we filter\n // by capability rather than wrapping in PermissionButton.\n const { hasPermission } = usePermissions();\n const canUpdate = hasPermission(BIGCONSOLE_PERMISSIONS.WIDGET_UPDATE);\n const canCreate = hasPermission(BIGCONSOLE_PERMISSIONS.WIDGET_CREATE);\n const canDelete = hasPermission(BIGCONSOLE_PERMISSIONS.WIDGET_DELETE);\n\n // Store actions\n const selectWidget = useWidgetStore((state) => state.selectWidget);\n const copyWidget = useWidgetStore((state) => state.copyWidget);\n const cutWidget = useWidgetStore((state) => state.cutWidget);\n const removeWidget = useWidgetStore((state) => state.removeWidget);\n const openConfigPanel = useWidgetStore((state) => state.openConfigPanel);\n\n // API operations - skipFetch since parent page fetches\n const {\n duplicateWidget: duplicateWidgetApi,\n deleteWidget: deleteWidgetApi,\n refreshWidgetData,\n } = useWidgetOperations(widget.pageId, widget.dashboardId, { skipFetch: true });\n\n // Close menu when clicking outside\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n if (\n menuRef.current &&\n !menuRef.current.contains(event.target as Node) &&\n buttonRef.current &&\n !buttonRef.current.contains(event.target as Node)\n ) {\n setIsOpen(false);\n }\n };\n\n if (isOpen) {\n document.addEventListener('mousedown', handleClickOutside);\n }\n\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n };\n }, [isOpen]);\n\n // Close menu on escape\n useEffect(() => {\n const handleEscape = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n setIsOpen(false);\n buttonRef.current?.focus();\n }\n };\n\n if (isOpen) {\n document.addEventListener('keydown', handleEscape);\n }\n\n return () => {\n document.removeEventListener('keydown', handleEscape);\n };\n }, [isOpen]);\n\n // Toggle menu with collision detection\n const toggleMenu = useCallback((event: React.MouseEvent) => {\n event.stopPropagation();\n setIsOpen((prev) => {\n if (!prev && buttonRef.current) {\n // Calculate position when opening with collision detection\n const rect = buttonRef.current.getBoundingClientRect();\n const menuWidth = 160;\n const menuHeight = 320; // Approximate max height of menu\n const collisionPadding = 10;\n\n // Calculate initial position\n let top = rect.bottom + 4;\n let left = rect.right - menuWidth;\n\n // Check right overflow - ensure menu doesn't go past viewport right edge\n if (left + menuWidth > window.innerWidth - collisionPadding) {\n left = window.innerWidth - menuWidth - collisionPadding;\n }\n\n // Check left overflow - ensure menu doesn't go past viewport left edge\n if (left < collisionPadding) {\n left = collisionPadding;\n }\n\n // Check bottom overflow - flip to top if needed\n if (top + menuHeight > window.innerHeight - collisionPadding) {\n top = rect.top - menuHeight - 4;\n // If still overflows at top, position at top of viewport\n if (top < collisionPadding) {\n top = collisionPadding;\n }\n }\n\n setMenuPosition({\n top: top + window.scrollY,\n left: left + window.scrollX,\n });\n }\n return !prev;\n });\n }, []);\n\n // Menu items\n const menuItems: MenuItem[] = [\n {\n id: 'edit',\n label: 'Edit Widget',\n icon: (\n <svg fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" className=\"w-4 h-4\">\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z\"\n />\n </svg>\n ),\n action: () => {\n selectWidget(widget.id);\n openConfigPanel();\n setIsOpen(false);\n },\n disabled: !isEditMode,\n permitted: canUpdate,\n },\n {\n id: 'refresh',\n label: 'Refresh Data',\n icon: (\n <svg fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" className=\"w-4 h-4\">\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 ),\n action: async () => {\n setIsOpen(false);\n if (onRefresh) {\n onRefresh();\n } else {\n await refreshWidgetData(widget.id);\n }\n },\n disabled: false,\n },\n {\n id: 'exportCSV',\n label: 'Export CSV',\n icon: (\n <svg fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" className=\"w-4 h-4\">\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M12 10v6m0 0l-3-3m3 3l3-3m2 8H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z\"\n />\n </svg>\n ),\n action: () => {\n setIsOpen(false);\n onExportCSV?.();\n },\n disabled: !onExportCSV,\n },\n {\n id: 'exportPNG',\n label: 'Export PNG',\n icon: (\n <svg fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" className=\"w-4 h-4\">\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z\"\n />\n </svg>\n ),\n action: () => {\n setIsOpen(false);\n onExportPNG?.();\n },\n disabled: !onExportPNG,\n },\n {\n id: 'divider1',\n label: '',\n icon: <></>,\n action: () => {},\n divider: true,\n },\n {\n id: 'copy',\n label: 'Copy',\n icon: (\n <svg fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" className=\"w-4 h-4\">\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\"\n />\n </svg>\n ),\n action: () => {\n copyWidget(widget.id);\n setIsOpen(false);\n },\n disabled: !isEditMode,\n permitted: canCreate,\n },\n {\n id: 'cut',\n label: 'Cut',\n icon: (\n <svg fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" className=\"w-4 h-4\">\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M14.121 14.121L19 19m-7-7l7-7m-7 7l-2.879 2.879M12 12L9.121 9.121m0 5.758a3 3 0 10-4.243 4.243 3 3 0 004.243-4.243zm0-5.758a3 3 0 10-4.243-4.243 3 3 0 004.243 4.243z\"\n />\n </svg>\n ),\n action: () => {\n cutWidget(widget.id);\n setIsOpen(false);\n },\n disabled: !isEditMode,\n // Cut both removes the source widget and stages a paste, so it needs\n // create AND update rights.\n permitted: canCreate && canUpdate,\n },\n {\n id: 'duplicate',\n label: 'Duplicate',\n icon: (\n <svg fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" className=\"w-4 h-4\">\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M8 7v8a2 2 0 002 2h6M8 7V5a2 2 0 012-2h4.586a1 1 0 01.707.293l4.414 4.414a1 1 0 01.293.707V15a2 2 0 01-2 2h-2M8 7H6a2 2 0 00-2 2v10a2 2 0 002 2h8a2 2 0 002-2v-2\"\n />\n </svg>\n ),\n action: async () => {\n setIsOpen(false);\n // Calculate new position (offset from original)\n const newPosition = {\n x: (widget.positionX ?? 0) + 1,\n y: (widget.positionY ?? 0) + 1,\n width: widget.positionWidth ?? 4,\n height: widget.positionHeight ?? 4,\n };\n await duplicateWidgetApi(widget.id, newPosition, `${widget.title} (Copy)`);\n },\n disabled: !isEditMode,\n permitted: canCreate,\n },\n {\n id: 'divider2',\n label: '',\n icon: <></>,\n action: () => {},\n divider: true,\n },\n {\n id: 'delete',\n label: 'Delete',\n icon: (\n <svg fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\" className=\"w-4 h-4\">\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16\"\n />\n </svg>\n ),\n action: async () => {\n if (window.confirm('Are you sure you want to delete this widget?')) {\n setIsOpen(false);\n const success = await deleteWidgetApi(widget.id);\n if (!success) {\n // Fallback to local store removal if API fails\n removeWidget(widget.id);\n }\n } else {\n setIsOpen(false);\n }\n },\n disabled: !isEditMode,\n destructive: true,\n permitted: canDelete,\n },\n ];\n\n // Drop items the caller lacks permission for, then collapse any dividers that\n // are now leading, trailing, or adjacent to another divider (so removing a\n // gated action never leaves an orphaned separator line).\n const permittedItems = menuItems.filter((item) => item.permitted !== false);\n const visibleMenuItems = permittedItems.filter((item, index) => {\n if (!item.divider) return true;\n const prev = permittedItems[index - 1];\n const next = permittedItems[index + 1];\n return prev !== undefined && next !== undefined && !prev.divider && !next.divider;\n });\n\n return (\n <div className=\"relative\">\n {/* Menu Button */}\n <button\n ref={buttonRef}\n type=\"button\"\n onClick={toggleMenu}\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 ${isOpen ? 'bg-bg-sunken' : ''}\n `}\n title=\"Widget options\"\n aria-haspopup=\"menu\"\n aria-expanded={isOpen}\n >\n <svg className=\"w-4 h-4\" fill=\"currentColor\" viewBox=\"0 0 24 24\">\n <circle cx=\"12\" cy=\"5\" r=\"2\" />\n <circle cx=\"12\" cy=\"12\" r=\"2\" />\n <circle cx=\"12\" cy=\"19\" r=\"2\" />\n </svg>\n </button>\n\n {/* Dropdown Menu - Rendered via Portal to avoid overflow clipping */}\n {isOpen &&\n createPortal(\n <div\n ref={menuRef}\n style={{\n position: 'fixed',\n top: menuPosition.top,\n left: menuPosition.left,\n zIndex: 99999,\n }}\n className=\"\n min-w-[160px]\n py-1\n bg-bg-surface\n border border-border-default\n rounded-lg shadow-lg\n \"\n role=\"menu\"\n aria-orientation=\"vertical\"\n >\n {visibleMenuItems.map((item) => {\n if (item.divider) {\n return <div key={item.id} className=\"my-1 border-t border-border-default\" />;\n }\n\n return (\n <button\n key={item.id}\n type=\"button\"\n onClick={(e) => {\n e.stopPropagation();\n item.action();\n }}\n disabled={item.disabled}\n className={`\n w-full flex items-center gap-2\n px-3 py-2 text-left text-sm\n transition-colors\n ${item.disabled ? 'opacity-50 cursor-not-allowed' : 'hover:bg-bg-sunken'}\n ${item.destructive ? 'text-status-error-text hover:text-status-error-text' : 'text-text-primary'}\n `}\n role=\"menuitem\"\n >\n {item.icon}\n <span>{item.label}</span>\n </button>\n );\n })}\n </div>,\n document.body\n )}\n </div>\n );\n});\n\nexport default WidgetMenu;\n"],"mappings":"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"}
@@ -128,3 +128,4 @@ export declare function validateWidgetSize(type: WidgetType, width: number, heig
128
128
  */
129
129
  export declare function getWidgetKey(widget: WidgetDefinition): string;
130
130
  export default WIDGET_DEFINITIONS;
131
+ //# sourceMappingURL=WidgetRegistry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WidgetRegistry.d.ts","sourceRoot":"","sources":["../../../../src/bigconsole/components/widgets/WidgetRegistry.ts"],"names":[],"mappings":"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"}
@@ -490,6 +490,7 @@ var e = {
490
490
  component: null,
491
491
  defaultConfig: {
492
492
  url: "",
493
+ sandbox: "allow-scripts allow-same-origin",
493
494
  allowFullscreen: !1
494
495
  },
495
496
  defaultSize: {
@@ -890,3 +891,5 @@ function s(e) {
890
891
  }
891
892
  //#endregion
892
893
  export { a as WIDGET_CATEGORY_LABELS, e as default, r as getAllWidgetDefinitions, o as getWidgetCategories, n as getWidgetDefinition, s as getWidgetKey, i as getWidgetsByCategory };
894
+
895
+ //# sourceMappingURL=WidgetRegistry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WidgetRegistry.js","names":[],"sources":["../../../../src/bigconsole/components/widgets/WidgetRegistry.ts"],"sourcesContent":["/**\n * Widget Registry\n *\n * Central registry mapping widget types to their components,\n * metadata, and configuration schemas.\n */\n\nimport type { ComponentType } from 'react';\nimport type { WidgetType, WidgetCategory, Widget } from '../../types';\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface WidgetComponentProps {\n /** The widget data */\n widget: Widget;\n /** Widget data (processed) */\n data: Record<string, unknown>;\n /** Whether the widget is in edit mode */\n isEditMode?: boolean;\n /** Whether the widget is selected */\n isSelected?: boolean;\n /** Whether data is loading */\n isLoading?: boolean;\n /** Error message if any */\n error?: string | null;\n /** Callback when widget is clicked */\n onClick?: () => void;\n /** Callback for drilldown navigation */\n onDrilldown?: (params: Record<string, unknown>) => void;\n}\n\nexport interface WidgetDefinition {\n /** Widget type */\n type: WidgetType;\n /** Human-readable name */\n name: string;\n /** Description */\n description: string;\n /** Lucide icon name */\n icon: string;\n /** Category for grouping */\n category: WidgetCategory;\n /** Component to render. Null for all current widget types because the render path\n * uses WidgetRendererFactory + RendererRegistry instead of this field. */\n component: ComponentType<WidgetComponentProps> | null;\n /** Default configuration */\n defaultConfig: Record<string, unknown>;\n /** Default size (fixed grid) */\n defaultSize: { width: number; height: number };\n /**\n * Default responsive position (v1.0 spec). `xl` is optional and falls back\n * to `lg` when not set so existing widget defaults remain valid.\n */\n defaultResponsive: { xs: number; sm: number; md: number; lg: number; xl?: number };\n /** Minimum size constraints */\n minSize: { width: number; height: number };\n /** Maximum size constraints */\n maxSize: { width: number; height: number };\n /** Whether the widget supports data binding */\n supportsDataBinding: boolean;\n /** Whether the widget supports drilldown */\n supportsDrilldown: boolean;\n /** Whether the widget supports auto-refresh */\n supportsAutoRefresh: boolean;\n /**\n * Whether the widget honors rule-based conditional formatting\n * (`config.conditionalRules`). Drives which options the config UI shows.\n */\n supportsConditionalFormat?: boolean;\n /**\n * Whether the widget supports reference / threshold lines & bands\n * (`config.referenceLines`).\n */\n supportsThresholds?: boolean;\n /** Whether the widget supports a combo / dual-axis layout (`config.dualAxis`). */\n supportsDualAxis?: boolean;\n /** Whether the widget supports a totals/aggregate footer (`config.showTotals`). */\n supportsTotals?: boolean;\n /** Tags for search/filter */\n tags: string[];\n}\n\n// ============================================================================\n// Widget Definitions\n// ============================================================================\n\nexport const WIDGET_DEFINITIONS: Record<WidgetType, WidgetDefinition> = {\n // ============================================================================\n // Core Visualization (6 types)\n // ============================================================================\n\n kpi_card_comparison: {\n type: 'kpi_card_comparison',\n name: 'KPI Card Comparison',\n description: 'Compare multiple KPIs side by side with trends',\n icon: 'LayoutDashboard',\n category: 'KPI',\n component: null,\n defaultConfig: {\n comparisons: [],\n showSparklines: true,\n layout: 'horizontal',\n format: 'number',\n },\n defaultSize: { width: 6, height: 3 },\n defaultResponsive: { xs: 12, sm: 6, md: 6, lg: 4 },\n minSize: { width: 4, height: 2 },\n maxSize: { width: 12, height: 6 },\n supportsDataBinding: true,\n supportsDrilldown: true,\n supportsAutoRefresh: true,\n supportsConditionalFormat: true,\n tags: ['kpi', 'comparison', 'metrics', 'multi'],\n },\n\n metric_card: {\n type: 'metric_card',\n name: 'Metric Card',\n description: 'Display a single KPI value with trend indicator',\n icon: 'TrendingUp',\n category: 'KPI',\n component: null,\n defaultConfig: {\n // 'auto' defers the numeric style to the payload's `isCurrency`, so a\n // parser emitting the documented MetricCardData contract renders as\n // currency without the user having to re-pick it in the Style tab.\n format: 'auto',\n decimalPlaces: 0,\n showTrend: true,\n showSparkline: false,\n },\n defaultSize: { width: 3, height: 2 },\n defaultResponsive: { xs: 12, sm: 6, md: 4, lg: 3 },\n minSize: { width: 2, height: 2 },\n maxSize: { width: 6, height: 4 },\n supportsDataBinding: true,\n supportsDrilldown: true,\n supportsAutoRefresh: true,\n supportsConditionalFormat: true,\n tags: ['kpi', 'metric', 'number', 'trend'],\n },\n\n chart: {\n type: 'chart',\n name: 'Chart',\n description: 'Multi-type chart (Line, Bar, Area, Pie)',\n icon: 'BarChart3',\n category: 'Visualization',\n component: null,\n defaultConfig: {\n chartType: 'line',\n showLegend: true,\n legendPosition: 'bottom',\n showGrid: true,\n showTooltip: true,\n },\n defaultSize: { width: 6, height: 4 },\n defaultResponsive: { xs: 12, sm: 12, md: 6, lg: 6 },\n minSize: { width: 3, height: 3 },\n maxSize: { width: 12, height: 8 },\n supportsDataBinding: true,\n supportsDrilldown: true,\n supportsAutoRefresh: true,\n supportsConditionalFormat: true,\n supportsThresholds: true,\n supportsDualAxis: true,\n tags: ['chart', 'graph', 'visualization', 'line', 'bar', 'area', 'pie', 'combo', 'dual-axis'],\n },\n\n funnel_chart: {\n type: 'funnel_chart',\n name: 'Funnel Chart',\n description: 'Visualize conversion or drop-off stages',\n icon: 'Filter',\n category: 'Visualization',\n component: null,\n defaultConfig: {\n // ChartWidget dispatches on `chartType` and falls back to 'line' when it is\n // absent, so a palette-created funnel must seed it explicitly.\n chartType: 'funnel',\n showLabels: true,\n showValues: true,\n showPercentages: true,\n orientation: 'vertical',\n },\n defaultSize: { width: 4, height: 5 },\n defaultResponsive: { xs: 12, sm: 6, md: 4, lg: 4 },\n minSize: { width: 3, height: 4 },\n maxSize: { width: 8, height: 10 },\n supportsDataBinding: true,\n supportsDrilldown: true,\n supportsAutoRefresh: true,\n tags: ['funnel', 'conversion', 'stages', 'pipeline'],\n },\n\n table: {\n type: 'table',\n name: 'Data Table',\n description: 'Display data in sortable, filterable rows and columns',\n icon: 'Table',\n category: 'Data',\n component: null,\n defaultConfig: {\n pageSize: 10,\n sortable: true,\n filterable: true,\n stickyHeader: true,\n columns: [],\n },\n defaultSize: { width: 8, height: 5 },\n defaultResponsive: { xs: 12, sm: 12, md: 8, lg: 8 },\n minSize: { width: 4, height: 3 },\n maxSize: { width: 12, height: 10 },\n supportsDataBinding: true,\n supportsDrilldown: true,\n supportsAutoRefresh: true,\n supportsConditionalFormat: true,\n supportsTotals: true,\n tags: ['table', 'data', 'grid', 'rows'],\n },\n\n pivot_table: {\n type: 'pivot_table',\n name: 'Pivot Table',\n description: 'Interactive pivot table for data analysis',\n icon: 'Grid3x3',\n category: 'Data',\n component: null,\n defaultConfig: {\n rows: [],\n columns: [],\n values: [],\n aggregation: 'sum',\n showTotals: true,\n },\n defaultSize: { width: 10, height: 6 },\n defaultResponsive: { xs: 12, sm: 12, md: 12, lg: 10 },\n minSize: { width: 6, height: 4 },\n maxSize: { width: 12, height: 10 },\n supportsDataBinding: true,\n supportsDrilldown: true,\n supportsAutoRefresh: true,\n tags: ['pivot', 'table', 'analysis', 'aggregation'],\n },\n\n // ============================================================================\n // Indicators (2 types)\n // ============================================================================\n\n gauge: {\n type: 'gauge',\n name: 'Gauge',\n description: 'Display a value within a range',\n icon: 'Gauge',\n category: 'KPI',\n component: null,\n defaultConfig: {\n variant: 'circular',\n min: 0,\n max: 100,\n showValue: true,\n showLabels: true,\n // Semantic threshold vocabulary — matches what the Gauge inspector\n // writes (GaugeConfig.tsx) and what GaugeWidget maps onto fe-libs\n // `--color-status-*` tokens. Raw colour names are not permitted in UI.\n thresholds: [\n { value: 33, color: 'error' },\n { value: 66, color: 'warning' },\n { value: 100, color: 'success' },\n ],\n },\n defaultSize: { width: 3, height: 3 },\n defaultResponsive: { xs: 6, sm: 4, md: 3, lg: 3 },\n minSize: { width: 2, height: 2 },\n maxSize: { width: 6, height: 6 },\n supportsDataBinding: true,\n supportsDrilldown: false,\n supportsAutoRefresh: true,\n tags: ['gauge', 'meter', 'dial', 'indicator'],\n },\n\n progress: {\n type: 'progress',\n name: 'Progress Bar',\n description: 'Show progress towards a goal with milestones',\n icon: 'Activity',\n category: 'KPI',\n component: null,\n defaultConfig: {\n showPercentage: true,\n showValue: false,\n target: null,\n milestones: [],\n },\n defaultSize: { width: 4, height: 2 },\n defaultResponsive: { xs: 12, sm: 6, md: 4, lg: 4 },\n minSize: { width: 3, height: 2 },\n maxSize: { width: 12, height: 3 },\n supportsDataBinding: true,\n supportsDrilldown: false,\n supportsAutoRefresh: true,\n tags: ['progress', 'bar', 'goal', 'completion'],\n },\n\n // ============================================================================\n // Data Display (2 types)\n // ============================================================================\n\n list: {\n type: 'list',\n name: 'List',\n description: 'Display items in a scrollable list',\n icon: 'List',\n category: 'Data',\n component: null,\n defaultConfig: {\n showMetadata: true,\n showActions: false,\n showBadges: true,\n maxItems: 10,\n itemClickable: true,\n },\n defaultSize: { width: 4, height: 5 },\n defaultResponsive: { xs: 12, sm: 6, md: 4, lg: 4 },\n minSize: { width: 3, height: 3 },\n maxSize: { width: 8, height: 10 },\n supportsDataBinding: true,\n supportsDrilldown: true,\n supportsAutoRefresh: true,\n tags: ['list', 'items', 'scroll'],\n },\n\n form: {\n type: 'form',\n name: 'Form',\n description: 'Interactive form widget for data input',\n icon: 'FileText',\n category: 'Data',\n component: null,\n defaultConfig: {\n fields: [],\n submitAction: null,\n layout: 'vertical',\n showLabels: true,\n },\n defaultSize: { width: 6, height: 5 },\n defaultResponsive: { xs: 12, sm: 12, md: 6, lg: 6 },\n minSize: { width: 4, height: 3 },\n maxSize: { width: 12, height: 10 },\n supportsDataBinding: true,\n supportsDrilldown: false,\n supportsAutoRefresh: false,\n tags: ['form', 'input', 'submit', 'fields'],\n },\n\n // ============================================================================\n // Content (2 types)\n // ============================================================================\n\n text: {\n type: 'text',\n name: 'Text',\n description: 'Rich text or markdown content widget',\n icon: 'Type',\n category: 'Content',\n component: null,\n defaultConfig: {\n content: '',\n format: 'markdown',\n alignment: 'left',\n },\n defaultSize: { width: 4, height: 3 },\n defaultResponsive: { xs: 12, sm: 6, md: 4, lg: 4 },\n minSize: { width: 2, height: 1 },\n maxSize: { width: 12, height: 12 },\n supportsDataBinding: true,\n supportsDrilldown: false,\n supportsAutoRefresh: false,\n tags: ['text', 'markdown', 'content', 'rich text'],\n },\n\n iframe: {\n type: 'iframe',\n name: 'Iframe',\n description: 'Embed external content via iframe',\n icon: 'ExternalLink',\n category: 'Content',\n component: null,\n defaultConfig: {\n url: '',\n sandbox: 'allow-scripts allow-same-origin',\n allowFullscreen: false,\n },\n defaultSize: { width: 6, height: 4 },\n defaultResponsive: { xs: 12, sm: 12, md: 6, lg: 6 },\n minSize: { width: 3, height: 2 },\n maxSize: { width: 12, height: 12 },\n supportsDataBinding: false,\n supportsDrilldown: false,\n supportsAutoRefresh: false,\n tags: ['iframe', 'embed', 'external', 'web'],\n },\n\n // ============================================================================\n // Spatial & Temporal (5 types)\n // ============================================================================\n\n map: {\n type: 'map',\n name: 'Map',\n description: 'Geographic map visualization with markers',\n icon: 'MapPin',\n category: 'Visualization',\n component: null,\n defaultConfig: {\n provider: 'mapbox',\n center: { lat: 0, lng: 0 },\n zoom: 2,\n showMarkers: true,\n showRegions: false,\n },\n defaultSize: { width: 6, height: 5 },\n defaultResponsive: { xs: 12, sm: 12, md: 6, lg: 6 },\n minSize: { width: 4, height: 3 },\n maxSize: { width: 12, height: 10 },\n supportsDataBinding: true,\n supportsDrilldown: true,\n supportsAutoRefresh: true,\n tags: ['map', 'geo', 'location', 'markers'],\n },\n\n heatmap: {\n type: 'heatmap',\n name: 'Heatmap',\n description: 'Display values in a color-coded grid',\n icon: 'Grid3x3',\n category: 'Visualization',\n component: null,\n defaultConfig: {\n xAxisField: '',\n yAxisField: '',\n valueField: '',\n // HeatmapWidget renders intensity from `colorScheme` (token-based Tailwind\n // classes), not `colorScale`; keep the scale empty rather than seeding it\n // with CSS var() strings that a data array can never resolve.\n colorScale: [],\n colorScheme: 'blue',\n showValues: true,\n },\n defaultSize: { width: 6, height: 5 },\n defaultResponsive: { xs: 12, sm: 12, md: 6, lg: 6 },\n minSize: { width: 4, height: 4 },\n maxSize: { width: 12, height: 10 },\n supportsDataBinding: true,\n supportsDrilldown: true,\n supportsAutoRefresh: true,\n tags: ['heatmap', 'grid', 'density', 'color'],\n },\n\n calendar: {\n type: 'calendar',\n name: 'Calendar',\n description: 'Calendar view for events and schedules',\n icon: 'Calendar',\n category: 'Temporal',\n component: null,\n defaultConfig: {\n view: 'month',\n showWeekNumbers: false,\n firstDayOfWeek: 0,\n eventField: '',\n },\n defaultSize: { width: 8, height: 6 },\n defaultResponsive: { xs: 12, sm: 12, md: 8, lg: 8 },\n minSize: { width: 6, height: 4 },\n maxSize: { width: 12, height: 10 },\n supportsDataBinding: true,\n supportsDrilldown: true,\n supportsAutoRefresh: true,\n tags: ['calendar', 'events', 'schedule', 'dates'],\n },\n\n kanban: {\n type: 'kanban',\n name: 'Kanban Board',\n description: 'Kanban board for task and workflow management',\n icon: 'Columns',\n category: 'Data',\n component: null,\n defaultConfig: {\n columns: [],\n cardTitleField: '',\n cardDescriptionField: '',\n columnField: '',\n allowDragDrop: true,\n },\n defaultSize: { width: 12, height: 6 },\n defaultResponsive: { xs: 12, sm: 12, md: 12, lg: 12 },\n minSize: { width: 8, height: 4 },\n maxSize: { width: 12, height: 10 },\n supportsDataBinding: true,\n supportsDrilldown: true,\n supportsAutoRefresh: true,\n tags: ['kanban', 'board', 'tasks', 'workflow'],\n },\n\n timeline: {\n type: 'timeline',\n name: 'Timeline',\n description: 'Timeline or Gantt chart for project scheduling',\n icon: 'GitBranch',\n category: 'Temporal',\n component: null,\n defaultConfig: {\n startDateField: '',\n endDateField: '',\n titleField: '',\n groupField: '',\n showToday: true,\n },\n defaultSize: { width: 12, height: 5 },\n defaultResponsive: { xs: 12, sm: 12, md: 12, lg: 12 },\n minSize: { width: 8, height: 3 },\n maxSize: { width: 12, height: 10 },\n supportsDataBinding: true,\n supportsDrilldown: true,\n supportsAutoRefresh: true,\n tags: ['timeline', 'gantt', 'project', 'schedule'],\n },\n\n // ============================================================================\n // Cohort / Retention (1 type)\n // ============================================================================\n\n retention: {\n type: 'retention',\n name: 'Retention / Cohort',\n description: 'Cohort-by-period retention grid with decay shading',\n icon: 'Grid3x3',\n category: 'Data',\n component: null,\n defaultConfig: {\n cohortField: 'cohort',\n periodField: 'period',\n valueField: 'value',\n periodType: 'month',\n showPercentages: true,\n showAverages: true,\n showLegend: true,\n },\n defaultSize: { width: 8, height: 5 },\n defaultResponsive: { xs: 12, sm: 12, md: 8, lg: 8 },\n minSize: { width: 4, height: 3 },\n maxSize: { width: 12, height: 10 },\n supportsDataBinding: true,\n supportsDrilldown: false,\n supportsAutoRefresh: true,\n tags: ['retention', 'cohort', 'grid', 'churn', 'saas'],\n },\n\n // ============================================================================\n // Extensibility (1 type)\n // ============================================================================\n\n custom: {\n type: 'custom',\n name: 'Custom Widget',\n description: 'Custom widget with user-defined rendering',\n icon: 'Puzzle',\n category: 'Custom',\n component: null,\n defaultConfig: {\n componentId: '',\n props: {},\n },\n defaultSize: { width: 4, height: 4 },\n defaultResponsive: { xs: 12, sm: 6, md: 4, lg: 4 },\n minSize: { width: 2, height: 2 },\n maxSize: { width: 12, height: 12 },\n supportsDataBinding: true,\n supportsDrilldown: true,\n supportsAutoRefresh: true,\n tags: ['custom', 'plugin', 'extension'],\n },\n};\n\n// ============================================================================\n// Registry Functions\n// ============================================================================\n\n/**\n * Default widget definition for unknown types\n */\nconst DEFAULT_WIDGET_DEFINITION: WidgetDefinition = {\n type: 'custom' as WidgetType,\n name: 'Unknown Widget',\n description: 'Unknown widget type',\n icon: 'Puzzle',\n category: 'Custom',\n component: null,\n defaultConfig: {},\n defaultSize: { width: 4, height: 4 },\n defaultResponsive: { xs: 12, sm: 6, md: 4, lg: 4 },\n minSize: { width: 2, height: 2 },\n maxSize: { width: 12, height: 12 },\n supportsDataBinding: true,\n supportsDrilldown: true,\n supportsAutoRefresh: true,\n tags: ['unknown'],\n};\n\n/**\n * Get widget definition by type\n * Handles both lowercase (frontend) and uppercase (backend) types\n */\nexport function getWidgetDefinition(type: WidgetType | string): WidgetDefinition {\n // Try exact match first\n if (WIDGET_DEFINITIONS[type as WidgetType]) {\n return WIDGET_DEFINITIONS[type as WidgetType];\n }\n\n // Try lowercase version (backend returns uppercase for some types)\n const lowerType = type.toLowerCase() as WidgetType;\n if (WIDGET_DEFINITIONS[lowerType]) {\n return WIDGET_DEFINITIONS[lowerType];\n }\n\n // Return default definition for unknown types\n return { ...DEFAULT_WIDGET_DEFINITION, type: type as WidgetType };\n}\n\n/**\n * Get all widget definitions\n */\nexport function getAllWidgetDefinitions(): WidgetDefinition[] {\n return Object.values(WIDGET_DEFINITIONS);\n}\n\n/**\n * Get widget definitions by category\n */\nexport function getWidgetsByCategory(category: WidgetCategory): WidgetDefinition[] {\n return Object.values(WIDGET_DEFINITIONS).filter((def) => def.category === category);\n}\n\n/**\n * Search widget definitions by query\n */\nexport function searchWidgets(query: string): WidgetDefinition[] {\n const lowerQuery = query.toLowerCase();\n return Object.values(WIDGET_DEFINITIONS).filter(\n (def) =>\n def.name.toLowerCase().includes(lowerQuery) ||\n def.description.toLowerCase().includes(lowerQuery) ||\n def.tags.some((tag) => tag.includes(lowerQuery))\n );\n}\n\n/**\n * Canonical mapping from widget category to human-readable label.\n * Shared across WidgetTypeSelector, WidgetPalette, and other UI.\n */\nexport const WIDGET_CATEGORY_LABELS: Record<WidgetCategory, string> = {\n KPI: 'Metrics & KPIs',\n Visualization: 'Charts & Visualization',\n Data: 'Data Display',\n Content: 'Content',\n Temporal: 'Temporal & Scheduling',\n Custom: 'Custom',\n Installed: 'Installed from Store',\n};\n\n/**\n * Get widget categories with their definitions\n */\nexport function getWidgetCategories(): {\n category: WidgetCategory;\n label: string;\n widgets: WidgetDefinition[];\n}[] {\n const categories: WidgetCategory[] = ['KPI', 'Visualization', 'Data', 'Content', 'Temporal', 'Custom', 'Installed'];\n\n return categories.map((category) => ({\n category,\n label: WIDGET_CATEGORY_LABELS[category],\n widgets: getWidgetsByCategory(category),\n }));\n}\n\n/**\n * Validate widget size constraints\n */\nexport function validateWidgetSize(\n type: WidgetType,\n width: number,\n height: number\n): { valid: boolean; width: number; height: number } {\n const def = WIDGET_DEFINITIONS[type];\n\n const clampedWidth = Math.min(Math.max(width, def.minSize.width), def.maxSize.width);\n const clampedHeight = Math.min(Math.max(height, def.minSize.height), def.maxSize.height);\n\n return {\n valid: width === clampedWidth && height === clampedHeight,\n width: clampedWidth,\n height: clampedHeight,\n };\n}\n\n/**\n * Get a stable key for a widget definition (handles installed widgets with componentId)\n */\nexport function getWidgetKey(widget: WidgetDefinition): string {\n if (widget.defaultConfig?.componentId) {\n return `installed-${widget.defaultConfig.componentId}`;\n }\n if (widget.category === 'Installed') {\n return `installed-${widget.name}`;\n }\n return widget.type;\n}\n\nexport default WIDGET_DEFINITIONS;\n"],"mappings":"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"}
@@ -19,3 +19,4 @@ export interface WidgetTypeSelectorProps {
19
19
  }
20
20
  export declare const WidgetTypeSelector: FC<WidgetTypeSelectorProps>;
21
21
  export default WidgetTypeSelector;
22
+ //# sourceMappingURL=WidgetTypeSelector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WidgetTypeSelector.d.ts","sourceRoot":"","sources":["../../../../src/bigconsole/components/widgets/WidgetTypeSelector.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,KAAK,EAAE,EAAwC,MAAM,OAAO,CAAC;AAGtE,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC5E,OAAO,EAAiE,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AA2DxH,MAAM,WAAW,uBAAuB;IACtC,YAAY,CAAC,EAAE,UAAU,CAAC;IAC1B,QAAQ,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACpE,UAAU,CAAC,EAAE,cAAc,EAAE,CAAC;IAC9B,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,YAAY,KAAK,IAAI,CAAC;IACpD,gBAAgB,CAAC,EAAE,YAAY,CAAC;IAChC,2DAA2D;IAC3D,gBAAgB,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACtC;;;;OAIG;IACH,WAAW,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAClC;AAiCD,eAAO,MAAM,kBAAkB,EAAE,EAAE,CAAC,uBAAuB,CAwVzD,CAAC;AAEH,eAAe,kBAAkB,CAAC"}
@@ -30,3 +30,4 @@ export interface WidgetWrapperProps {
30
30
  }
31
31
  export declare const WidgetWrapper: FC<WidgetWrapperProps>;
32
32
  export default WidgetWrapper;
33
+ //# sourceMappingURL=WidgetWrapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WidgetWrapper.d.ts","sourceRoot":"","sources":["../../../../src/bigconsole/components/widgets/WidgetWrapper.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EACL,KAAK,EAAE,EACP,KAAK,SAAS,EAUf,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAiC1C,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAgB,MAAM,gCAAgC,CAAC;AA8B9G,MAAM,WAAW,kBAAkB;IACjC,uEAAuE;IACvE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,sBAAsB;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,0BAA0B;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACtC,wBAAwB;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oCAAoC;IACpC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,oBAAoB;IACpB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,sCAAsC;IACtC,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,wCAAwC;IACxC,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IACxD,2BAA2B;IAC3B,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IACzB,uCAAuC;IACvC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,aAAa,KAAK,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;IAC1F,4DAA4D;IAC5D,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACxC;AA8BD,eAAO,MAAM,aAAa,EAAE,EAAE,CAAC,kBAAkB,CA8iChC,CAAC;AAElB,eAAe,aAAa,CAAC"}
@@ -575,3 +575,5 @@ var y = f(function({ widget: d, children: f, data: v, className: y = "", isLoadi
575
575
  }, v);
576
576
  //#endregion
577
577
  export { y as default };
578
+
579
+ //# sourceMappingURL=WidgetWrapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WidgetWrapper.js","names":[],"sources":["../../../../src/bigconsole/components/widgets/WidgetWrapper.tsx"],"sourcesContent":["/**\n * WidgetWrapper Component (v2.1)\n *\n * Common wrapper for all widget types. Handles:\n * - Header with title and menu\n * - Loading, error, and empty states\n * - Selection highlighting\n * - Edit mode controls\n * - Real data only — no mock fallback; widgets show empty state when data is missing\n * - v2.0: Multi-renderer support via WidgetRendererFactory\n * - v2.0: Widget actions support\n */\n\nimport {\n type FC,\n type ReactNode,\n type RefObject,\n useCallback,\n memo,\n useMemo,\n useRef,\n useState,\n useEffect,\n lazy,\n Suspense,\n} from 'react';\nimport type { Widget } from '../../types';\nimport {\n useWidgetStore,\n useDashboardStore,\n useIsWidgetSelected,\n useWidgetUIState,\n useGlobalFilterValues,\n} from '../../store';\nimport {\n useWidgetAutoRefresh,\n formatTimeUntilRefresh,\n useWidgetExport,\n useDrilldown,\n useWidgetData,\n useWidgetComments,\n type DrilldownContext,\n} from '../../hooks';\nimport { useApolloClient } from '@apollo/client/react';\nimport { GetDashboardDocument } from '../../../generated/wspace-operations';\nimport { getWidgetDefinition } from './WidgetRegistry';\nimport { resolveTextData } from './text-widget/textData';\nimport { WidgetHeader } from './WidgetHeader';\nimport { useBigConsoleSettings } from '../../hooks/useBigConsoleSettings';\nimport { WidgetLoadingState } from './states/LoadingState';\nimport { WidgetErrorState } from './states/ErrorState';\nimport { WidgetEmptyState } from './states/EmptyState';\nimport { WidgetErrorBoundary } from './WidgetErrorBoundary';\nimport { hasRenderableCustomConfig, hasCustomIframeConfig } from './custom/config';\nimport { getBindingForWidget } from '../../utils/widgetBinding';\n\n// v2.0: Renderer factory and actions\nimport { WidgetRendererFactory } from '../../renderers/factory/WidgetRendererFactory';\nimport { WidgetActions } from './widget-actions';\nimport type { WidgetAction, ActionContext, ActionResult, RendererType } from '../../renderers/types/renderer';\n// Widget components - lazy loaded for better code splitting\n// Each widget loads only when its type is rendered\nconst MetricCardWidget = lazy(() => import('./metric-card').then((m) => ({ default: m.MetricCardWidget })));\nconst ChartWidget = lazy(() => import('./chart').then((m) => ({ default: m.ChartWidget })));\nconst TableWidget = lazy(() => import('./table').then((m) => ({ default: m.TableWidget })));\nconst PivotTableWidget = lazy(() => import('./pivot-table').then((m) => ({ default: m.PivotTableWidget })));\nconst GaugeWidget = lazy(() => import('./gauge').then((m) => ({ default: m.GaugeWidget })));\nconst ProgressWidget = lazy(() => import('./progress').then((m) => ({ default: m.ProgressWidget })));\nconst ListWidget = lazy(() => import('./list').then((m) => ({ default: m.ListWidget })));\nconst HeatmapWidget = lazy(() => import('./heatmap').then((m) => ({ default: m.HeatmapWidget })));\nconst RetentionWidget = lazy(() => import('./retention').then((m) => ({ default: m.RetentionWidget })));\nconst CalendarWidget = lazy(() => import('./calendar').then((m) => ({ default: m.CalendarWidget })));\nconst KanbanWidget = lazy(() => import('./kanban').then((m) => ({ default: m.KanbanWidget })));\nconst TimelineWidget = lazy(() => import('./timeline').then((m) => ({ default: m.TimelineWidget })));\nconst KPIComparisonWidget = lazy(() => import('./kpi-comparison').then((m) => ({ default: m.KPIComparisonWidget })));\nconst TextWidget = lazy(() => import('./text-widget').then((m) => ({ default: m.TextWidget })));\nconst MapWidget = lazy(() => import('./map-widget').then((m) => ({ default: m.MapWidget })));\nconst IframeWidget = lazy(() => import('./iframe-widget').then((m) => ({ default: m.IframeWidget })));\nconst CustomWidget = lazy(() => import('./custom').then((m) => ({ default: m.CustomWidget })));\n// AdaptiveCardWidget is HUGE (984KB) - lazy load only when 'adaptive_card' type is used\nconst AdaptiveCardWidget = lazy(() => import('./adaptive-card').then((m) => ({ default: m.AdaptiveCardWidget })));\nconst FormWidget = lazy(() => import('./form').then((m) => ({ default: m.FormWidget })));\n// Comments panel - lazy loaded; only mounts when the user opens comments\nconst WidgetComments = lazy(() => import('./comments/WidgetComments').then((m) => ({ default: m.WidgetComments })));\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface WidgetWrapperProps {\n /** Gallery previews have no persisted widget to comment on or edit. */\n previewOnly?: boolean;\n /** The widget data */\n widget: Widget;\n /** Widget content to render */\n children?: ReactNode;\n /** Data for the widget */\n data?: Record<string, unknown> | null;\n /** Custom class name */\n className?: string;\n /** Whether the widget is loading */\n isLoading?: boolean;\n /** Error message */\n error?: string | null;\n /** Callback to refresh widget data */\n onRefresh?: () => Promise<void>;\n /** Callback for drilldown navigation */\n onDrilldown?: (params: Record<string, unknown>) => void;\n /** v2.0: Widget actions */\n actions?: WidgetAction[];\n /** v2.0: Callback for action events */\n onAction?: (action: WidgetAction, context: ActionContext) => Promise<ActionResult | void>;\n /** Phase 2: Global filter values to apply to widget data */\n filterValues?: Record<string, unknown>;\n}\n\n// ============================================================================\n// Custom comparison for memo - ensures actions changes trigger re-render\n// ============================================================================\n\nfunction arePropsEqual(prevProps: WidgetWrapperProps, nextProps: WidgetWrapperProps): boolean {\n if (prevProps.previewOnly !== nextProps.previewOnly) return false;\n // Always re-render if widget ID changes\n if (prevProps.widget.id !== nextProps.widget.id) return false;\n // Re-render if widget was updated\n if (prevProps.widget.updatedAt !== nextProps.widget.updatedAt) return false;\n // Re-render if loading state changes\n if (prevProps.isLoading !== nextProps.isLoading) return false;\n // Re-render if error changes\n if (prevProps.error !== nextProps.error) return false;\n // Action IDs survive edits. Compare the immutable list so label, appearance,\n // confirmation and visibility changes reach the canvas immediately after save.\n if (prevProps.actions !== nextProps.actions) return false;\n // Also check data changes\n if (prevProps.data !== nextProps.data) return false;\n // Phase 2: Re-render if filter values changed\n if (JSON.stringify(prevProps.filterValues) !== JSON.stringify(nextProps.filterValues)) return false;\n return true;\n}\n\n// ============================================================================\n// Component\n// ============================================================================\n\nexport const WidgetWrapper: FC<WidgetWrapperProps> = memo(function WidgetWrapper({\n widget,\n children,\n data,\n className = '',\n isLoading: isLoadingProp,\n error: errorProp,\n onRefresh,\n onDrilldown,\n actions,\n onAction,\n filterValues,\n previewOnly = false,\n}) {\n const settings = useBigConsoleSettings();\n // Store state - use Dashboard store for edit mode (synced with toolbar)\n const dashboardIsEditMode = useDashboardStore((state) => state.viewMode === 'edit');\n const isEditMode = !previewOnly && dashboardIsEditMode;\n const selectWidget = useWidgetStore((state) => state.selectWidget);\n const isSelected = useIsWidgetSelected(widget.id);\n const uiState = useWidgetUIState(widget.id);\n const globalFilterValues = useGlobalFilterValues();\n const apolloClient = useApolloClient();\n\n // Map a global-filter's id -> the data field it targets (`config.field`).\n // Global CATEGORY/TEXT filter values are keyed in the store by filter id (a\n // UUID), not by the data column they filter. Without this map, applyClientFilters\n // can only fall back to value/heuristic matching, which fails to narrow rows\n // whose targeted column (e.g. `country`, `cohort`) isn't in the hardcoded\n // heuristic list — so a selected Country/Cohort would not actually filter the\n // widget. We resolve the targeted field from the dashboard's globalFilters\n // (already in the Apollo cache from the page load) so a UUID-keyed filter\n // matches the row's configured field exactly.\n const widgetDashboardId = (widget as unknown as Record<string, unknown>).dashboardId as string | undefined;\n const filterFieldMap = useMemo<Record<string, string>>(() => {\n if (!widgetDashboardId) return {};\n try {\n const cached = apolloClient.readQuery<{\n getDashboard?: {\n globalFilters?: Array<{ id: string; config?: Record<string, unknown> | null }>;\n };\n }>({ query: GetDashboardDocument, variables: { id: widgetDashboardId } });\n const map: Record<string, string> = {};\n for (const f of cached?.getDashboard?.globalFilters ?? []) {\n const field = f.config?.field;\n if (typeof field === 'string' && field && Object.hasOwn(globalFilterValues, f.id)) map[f.id] = field;\n }\n return map;\n } catch {\n return {};\n }\n }, [apolloClient, widgetDashboardId, globalFilterValues]);\n\n // Fetch per-widget data from backend (parser-processed data)\n // This is needed because listWidgetsByDashboard uses WidgetListFields (without data)\n // for performance, so each widget fetches its own data individually\n const widgetBinding = useMemo(() => getBindingForWidget(widget), [widget]);\n const hasDataSource =\n widgetBinding.source.kind !== 'DATASINK' ||\n !!widgetBinding.source.ref ||\n !!widgetBinding.parserId ||\n !!widget.datasetId;\n const { data: fetchedWidgetData, loading: widgetDataLoading } = useWidgetData(widget.id, {\n skip: previewOnly || !hasDataSource,\n pollInterval: (widget.refreshInterval ?? 0) * 1000 || 0,\n });\n\n // WORKAROUND: If Zustand store is empty, directly read filter_* params from URL\n // This handles race conditions where the store hasn't been populated yet\n const urlFilterValues = useMemo(() => {\n if (typeof window === 'undefined') return {};\n\n const params = new URLSearchParams(window.location.search);\n const filters: Record<string, unknown> = {};\n\n params.forEach((value, key) => {\n if (key.startsWith('filter_')) {\n const filterId = key.slice('filter_'.length);\n // Skip internal metadata keys\n if (!filterId.startsWith('__')) {\n filters[filterId] = value;\n }\n }\n });\n\n return filters;\n }, []);\n\n // Phase 2: Merge global filter values (from URL) with explicit filterValues prop\n // This ensures both URL params (filter_*) and drilldown params work together\n const mergedFilterValues = useMemo(() => {\n const merged: Record<string, unknown> = {};\n\n // First, add URL filter values as fallback (in case Zustand store hasn't loaded yet)\n if (urlFilterValues && Object.keys(urlFilterValues).length > 0) {\n Object.assign(merged, urlFilterValues);\n }\n\n // Then, add global filter values from Zustand store (if populated)\n if (globalFilterValues && Object.keys(globalFilterValues).length > 0) {\n Object.assign(merged, globalFilterValues);\n }\n\n // Finally, add/override with explicit filterValues prop (e.g., from drilldown modal)\n if (filterValues && Object.keys(filterValues).length > 0) {\n Object.assign(merged, filterValues);\n }\n\n return merged;\n }, [urlFilterValues, globalFilterValues, filterValues]);\n\n // Track active filters (client-side filtering until backend supports it)\n const hasFilters = Object.keys(mergedFilterValues).length > 0;\n\n // Merge loading/error from props and store\n // Show loading if widget data is being fetched for the first time (no data yet)\n const isLoading = isLoadingProp ?? (widgetDataLoading && !fetchedWidgetData) ?? uiState.isLoading;\n const error = errorProp ?? uiState.errorMessage;\n\n // Get widget definition\n const definition = getWidgetDefinition(widget.type);\n\n // Stable refresh callback - use ref to avoid creating new function on each render\n const onRefreshRef = useRef(onRefresh);\n useEffect(() => {\n onRefreshRef.current = onRefresh;\n }, [onRefresh]);\n\n const stableOnRefresh = useCallback(async () => {\n if (onRefreshRef.current) {\n await onRefreshRef.current();\n }\n }, []);\n\n // Auto-refresh\n const { timeUntilRefresh, isPaused } = useWidgetAutoRefresh({\n widgetId: widget.id,\n refreshInterval: widget.refreshInterval,\n onRefresh: stableOnRefresh,\n enabled: !previewOnly && !isEditMode && !!widget.refreshInterval,\n });\n\n // Container ref for PNG export\n const containerRef = useRef<HTMLDivElement>(null);\n\n // Comments panel. The count query stays disabled until the panel is first\n // opened, so a dashboard of N widgets doesn't fire N comment queries on load.\n const [showComments, setShowComments] = useState(false);\n const [commentsEverOpened, setCommentsEverOpened] = useState(false);\n const { count: commentCount } = useWidgetComments(widget.id, commentsEverOpened);\n const toggleComments = useCallback(() => {\n setShowComments((open) => {\n const next = !open;\n if (next) setCommentsEverOpened(true);\n return next;\n });\n }, []);\n\n // Get widget data for export (computed early for hook)\n const exportData = useMemo(() => {\n if (data && Array.isArray(data)) return data;\n const rawData = (widget as unknown as Record<string, unknown>).data as Record<string, unknown> | undefined;\n if (rawData?.processed && Array.isArray(rawData.processed)) {\n return rawData.processed;\n }\n if (rawData?.raw) {\n const parsed = typeof rawData.raw === 'string' ? JSON.parse(rawData.raw) : rawData.raw;\n if (Array.isArray(parsed)) return parsed;\n }\n return null;\n }, [data, widget]);\n\n // Export functionality\n const { exportCSV, exportPNG } = useWidgetExport(widget, {\n data: exportData,\n containerRef: containerRef as unknown as RefObject<HTMLElement>,\n });\n\n // Helper to check if data is actually usable (has real content)\n const isUsableData = useCallback((d: unknown): boolean => {\n if (d === null || d === undefined) return false;\n if (Array.isArray(d)) return d.length > 0;\n if (typeof d === 'object') {\n const obj = d as Record<string, unknown>;\n const keys = Object.keys(obj);\n if (keys.length === 0) return false;\n // Check recursively for actual data content\n return keys.some((key) => {\n const val = obj[key];\n if (val === null || val === undefined || val === '') return false;\n if (Array.isArray(val)) return val.length > 0;\n if (typeof val === 'object') return isUsableData(val);\n return true;\n });\n }\n return true;\n }, []);\n\n // Phase 2: Client-side filter function for widget data\n const applyClientFilters = useCallback(\n (\n widgetData: Record<string, unknown> | Record<string, unknown>[]\n ): Record<string, unknown> | Record<string, unknown>[] => {\n if (!hasFilters || !widgetData) return widgetData;\n\n // Separate drilldown context filters (ctx_*) from regular filters\n const contextFilters: Record<string, unknown> = {};\n const regularFilters: Record<string, unknown> = {};\n\n Object.entries(mergedFilterValues || {}).forEach(([key, value]) => {\n if (key.startsWith('ctx_')) {\n // Strip ctx_ prefix to get the target field name\n const fieldName = key.slice(4); // Remove 'ctx_'\n contextFilters[fieldName] = value;\n } else if (!key.startsWith('__')) {\n // Skip internal metadata keys (__drilldown_depth, etc.)\n regularFilters[key] = value;\n }\n });\n\n // Helper to match a value against a filter (case-insensitive)\n const matchesFilter = (itemValue: unknown, filterValue: unknown): boolean => {\n if (filterValue === undefined || filterValue === null || filterValue === '') return true;\n if (itemValue === undefined || itemValue === null) return false;\n\n const itemStr = String(itemValue).toLowerCase();\n const filterStr = String(filterValue).toLowerCase();\n\n // Exact match or contains\n return itemStr === filterStr || itemStr.includes(filterStr);\n };\n\n // Helper to find a matching field in the item (case-insensitive key matching)\n const findFieldValue = (item: Record<string, unknown>, targetField: string): unknown => {\n const targetLower = targetField.toLowerCase();\n\n // Try exact match first\n if (item[targetField] !== undefined) return item[targetField];\n\n // Try case-insensitive match\n const matchingKey = Object.keys(item).find((k) => k.toLowerCase() === targetLower);\n if (matchingKey) return item[matchingKey];\n\n // Try partial match (e.g., 'region' matches 'regionName' or 'user_region')\n const partialMatch = Object.keys(item).find(\n (k) => k.toLowerCase().includes(targetLower) || targetLower.includes(k.toLowerCase())\n );\n if (partialMatch) return item[partialMatch];\n\n // Try stripping common prefixes from target field (e.g., 'kpiId' -> 'id', 'rowName' -> 'name')\n // This handles drilldown context where widget passes 'kpiId' but data has 'id'\n const commonPrefixes = ['kpi', 'row', 'item', 'data', 'cell', 'record', 'entry'];\n for (const prefix of commonPrefixes) {\n if (targetLower.startsWith(prefix) && targetLower.length > prefix.length) {\n const strippedField = targetLower.slice(prefix.length);\n // Try exact match with stripped field\n const strippedMatch = Object.keys(item).find((k) => k.toLowerCase() === strippedField);\n if (strippedMatch) return item[strippedMatch];\n }\n }\n\n return undefined;\n };\n\n // Helper function to filter an array of items\n const filterItems = (items: Record<string, unknown>[]): Record<string, unknown>[] => {\n return items.filter((item: Record<string, unknown>) => {\n // Only object rows are field-filterable. An array of primitives (e.g.\n // a heatmap's `rows: [\"5W-MedSurg\", …]`) carries no named fields — keep\n // every element. Without this, `findFieldValue` indexes into the string\n // by character offset and spuriously \"matches\" a filter, dropping rows.\n if (item === null || typeof item !== 'object' || Array.isArray(item)) {\n return true;\n }\n // First, apply drilldown context filters (ctx_*) - these have explicit field names\n for (const [fieldName, filterValue] of Object.entries(contextFilters)) {\n if (filterValue === undefined || filterValue === null || filterValue === '') continue;\n\n const itemValue = findFieldValue(item, fieldName);\n // If the field doesn't exist in this data item, skip this context filter.\n // Drilldown context params (e.g., source=support_status) are metadata about\n // the drilldown origin and should NOT filter out data when the target\n // dashboard's widgets don't have a matching field.\n if (itemValue === undefined) continue;\n if (!matchesFilter(itemValue, filterValue)) {\n return false;\n }\n }\n\n // Then, apply regular filters\n for (const [filterKey, filterValue] of Object.entries(regularFilters)) {\n if (filterValue === undefined || filterValue === null || filterValue === '') continue;\n\n // For date range filters\n if (typeof filterValue === 'object') {\n const fv = filterValue as Record<string, unknown>;\n if (fv.start || fv.end) {\n const dateFields = Object.entries(item).filter(\n ([k, _v]) => k.toLowerCase().includes('date') || k.toLowerCase().includes('time')\n );\n if (dateFields.length > 0) {\n const itemDate = new Date(dateFields[0][1] as string);\n if (fv.start && itemDate < new Date(fv.start as string)) return false;\n if (fv.end && itemDate > new Date(fv.end as string)) return false;\n }\n continue;\n }\n }\n\n // For numeric range filters\n if (typeof filterValue === 'object') {\n const nv = filterValue as Record<string, unknown>;\n if (nv.min !== undefined || nv.max !== undefined) {\n const numericFields = Object.entries(item).filter(([_k, v]) => typeof v === 'number');\n if (numericFields.length > 0) {\n const itemNum = numericFields[0][1] as number;\n if (nv.min !== undefined && itemNum < (nv.min as number)) return false;\n if (nv.max !== undefined && itemNum > (nv.max as number)) return false;\n }\n continue;\n }\n }\n\n // Any other object-shaped filter value (e.g. a DATE_RANGE filter set\n // to a preset like { preset: \"last_30_days\" } with no resolved\n // start/end, or a structured value we don't understand) cannot be\n // compared with the scalar matchers below. Passing it through would\n // stringify it to \"[object Object]\" and, via fuzzy field matching\n // (e.g. an `enrolledAt` filter partial-matching an `enrolled` number\n // column), spuriously exclude EVERY row. Treat such values as a no-op\n // for client-side filtering — the row set is unchanged until the\n // filter resolves to concrete start/end or scalar values.\n if (filterValue !== null && typeof filterValue === 'object' && !Array.isArray(filterValue)) {\n continue;\n }\n\n // Global CATEGORY/TEXT filters are keyed by filter id (UUID). Resolve\n // the data column they target from the filter's config.field. When the\n // widget's rows carry that column, the filter is authoritative — a\n // mismatch excludes the row; a missing column is a no-op (the filter\n // simply doesn't apply to this widget's shape). This is what makes a\n // selected Country/Cohort actually narrow the visible data.\n const targetField = filterFieldMap[filterKey];\n if (targetField) {\n const mappedValue = findFieldValue(item, targetField);\n if (mappedValue !== undefined) {\n if (!matchesFilter(mappedValue, filterValue)) {\n return false;\n }\n continue;\n }\n // Configured field absent from this widget's rows → filter is a\n // no-op for this widget (do not fall through to value heuristics,\n // which could spuriously match an unrelated column).\n continue;\n }\n\n // Try to match by filter key name first (for named filters). When\n // the widget's data actually carries the filter's field, the filter\n // is authoritative — a mismatch excludes the row.\n const fieldValue = findFieldValue(item, filterKey);\n if (fieldValue !== undefined) {\n if (!matchesFilter(fieldValue, filterValue)) {\n return false;\n }\n continue;\n }\n\n // For text/category filters - try multiple matching strategies\n const filterStr = String(filterValue).toLowerCase();\n\n // Strategy 1: Check all field values for exact or partial match\n const itemValues = Object.values(item).map((v) => String(v).toLowerCase());\n const hasMatch = itemValues.some((v) => v === filterStr || v.includes(filterStr));\n\n if (!hasMatch) {\n // Strategy 2: Try to find a field name that matches the filter value context\n const fieldNames = Object.keys(item).map((k) => k.toLowerCase());\n const possibleFields = fieldNames.filter(\n (f) =>\n f.includes('category') ||\n f.includes('type') ||\n f.includes('status') ||\n f.includes('name') ||\n f.includes('region') ||\n f.includes('group')\n );\n\n let fieldMatch = false;\n for (const fieldName of possibleFields) {\n const originalKey = Object.keys(item).find((k) => k.toLowerCase() === fieldName);\n if (originalKey) {\n const itemFieldValue = String(item[originalKey]).toLowerCase();\n if (itemFieldValue === filterStr || itemFieldValue.includes(filterStr)) {\n fieldMatch = true;\n break;\n }\n }\n }\n\n // The filter's field is NOT present in this dataset (named-field\n // lookup failed AND no value/heuristic match). A global filter that\n // doesn't apply to a widget's shape must be a no-op for that widget\n // — not a silent \"exclude every row\". This mirrors the ctx_* rule\n // above (skip when the targeted field is absent). Without this, an\n // always-active required filter (e.g. campus=main) blanks every\n // parser-derived widget whose output has no campus column.\n if (!fieldMatch) {\n continue;\n }\n }\n }\n return true;\n });\n };\n\n // If data is an array, filter the items directly\n if (Array.isArray(widgetData)) {\n const filtered = filterItems(widgetData);\n return filtered;\n }\n\n // Handle object with array properties (rows, items, members, questions, data, etc.)\n if (widgetData && typeof widgetData === 'object') {\n // Common array property names in widget data\n const arrayPropertyNames = [\n 'kpis', // KPI Comparison widget\n 'rows', // Table widget\n 'items', // List widget\n 'members', // Team/member widgets\n 'questions', // Form widget\n 'data', // Generic data\n 'records', // Database-style data\n 'results', // Search/query results\n 'entries', // Log/feed entries\n 'list', // Generic list\n 'values', // Value arrays\n 'series', // Chart series\n 'datasets', // Chart datasets\n ];\n\n for (const propName of arrayPropertyNames) {\n if (widgetData[propName] && Array.isArray(widgetData[propName])) {\n const filteredArray = filterItems(widgetData[propName]);\n return {\n ...widgetData,\n [propName]: filteredArray,\n ...(propName === 'rows' ? { totalRows: filteredArray.length } : {}),\n };\n }\n }\n\n // If no known array property found, check for any array property\n const arrayProps = Object.entries(widgetData).filter(([_key, v]) => Array.isArray(v));\n if (arrayProps.length > 0) {\n const [propName, propValue] = arrayProps[0];\n const filteredArray = filterItems(propValue as Record<string, unknown>[]);\n return {\n ...widgetData,\n [propName]: filteredArray,\n };\n }\n }\n\n // For non-filterable data, return as-is\n return widgetData;\n },\n [hasFilters, mergedFilterValues, widget.id, filterFieldMap]\n );\n\n // Get widget data from the widget itself (fetched from backend)\n const realWidgetData = useMemo(() => {\n let rawWidgetData = null;\n\n // Priority 1: Explicitly passed data prop\n if (data && isUsableData(data)) {\n rawWidgetData = data;\n }\n // Priority 2: Per-widget fetched data (from useWidgetData hook)\n // fetchedWidgetData IS a WidgetData object: { raw, processed, fetchedAt, cached }\n else if (fetchedWidgetData) {\n const fetched = fetchedWidgetData as unknown as Record<string, unknown>;\n if (fetched?.processed && isUsableData(fetched.processed)) {\n rawWidgetData = fetched.processed;\n } else if (fetched?.raw) {\n try {\n const parsed = typeof fetched.raw === 'string' ? JSON.parse(fetched.raw as string) : fetched.raw;\n if (isUsableData(parsed)) rawWidgetData = parsed;\n } catch {\n // Invalid JSON, ignore\n }\n }\n }\n // Priority 3: widget.data from GraphQL response (if already on widget object)\n else {\n const rawData = (widget as unknown as Record<string, unknown>).data as Record<string, unknown> | undefined;\n if (rawData?.processed && isUsableData(rawData.processed)) {\n rawWidgetData = rawData.processed;\n } else if (rawData?.raw) {\n try {\n const parsed = typeof rawData.raw === 'string' ? JSON.parse(rawData.raw) : rawData.raw;\n if (isUsableData(parsed)) rawWidgetData = parsed;\n } catch {\n // Invalid JSON, ignore\n }\n }\n }\n\n // Priority 4: config.mockData — user-configured sample JSON from Widget Properties Data tab\n // This is NOT auto-generated mock data; it's explicit JSON the user pasted in the UI\n if (!rawWidgetData) {\n const configMockData = (widget.config as Record<string, unknown> | undefined)?.mockData;\n if (configMockData) {\n try {\n const parsed = typeof configMockData === 'string' ? JSON.parse(configMockData) : configMockData;\n if (isUsableData(parsed)) {\n rawWidgetData = parsed;\n }\n } catch (e) {}\n }\n }\n\n // Generic parser-output resolution: a widget may bind to a parser whose\n // output is an envelope ({ byUnit:[...], house:{...} }) rather than the\n // exact array/object the renderer wants. config.dataKey / dataPath /\n // seriesPath is a dot-path INTO the resolved data that points at the\n // renderable subtree (e.g. \"byUnit\" for a table, \"rows\" for a chart).\n // Resolving it here keeps every renderer generic — the use-case-specific\n // shape knowledge lives in the widget config (set by the seed/UI), not in\n // the renderer. valueField (single-value metric path) is intentionally NOT\n // applied here: MetricCardWidget resolves it itself against the envelope.\n if (rawWidgetData && typeof rawWidgetData === 'object' && !Array.isArray(rawWidgetData)) {\n const cfg = widget.config as Record<string, unknown> | undefined;\n const pathKey = (cfg?.dataKey ?? cfg?.dataPath ?? cfg?.seriesPath) as string | undefined;\n if (pathKey && typeof pathKey === 'string') {\n const resolved = pathKey.split('.').reduce<unknown>((cur, seg) => {\n return cur && typeof cur === 'object' ? (cur as Record<string, unknown>)[seg] : undefined;\n }, rawWidgetData);\n if (resolved !== undefined && resolved !== null && isUsableData(resolved)) {\n rawWidgetData = resolved as Record<string, unknown>;\n }\n }\n }\n\n // Phase 2: Apply client-side filters if active\n if (hasFilters && rawWidgetData) {\n const filtered = applyClientFilters(rawWidgetData);\n return filtered;\n }\n\n return rawWidgetData;\n }, [data, widget, fetchedWidgetData, hasFilters, applyClientFilters, mergedFilterValues, isUsableData]);\n\n // Final widget data - real data only, no mock fallback\n const widgetData = useMemo(() => {\n return realWidgetData ?? null;\n }, [realWidgetData]);\n\n // Values rendered from a template's embedded sample rather than a connected\n // source. Only possible when no data source is configured, since a real\n // source outranks config.mockData in the resolution chain above.\n const isSampleData = useMemo(() => {\n if (!widgetData || hasDataSource) return false;\n const mock = (widget.config as Record<string, unknown> | undefined)?.mockData;\n return mock !== undefined && mock !== null;\n }, [widgetData, hasDataSource, widget.config]);\n\n // Drilldown navigation (must be after widgetData is defined)\n const { executeDrilldown, canDrilldown } = useDrilldown({\n onDrilldown: (params, _mode) => {\n onDrilldown?.(params);\n },\n });\n\n // Check if widget has drilldown configured\n const hasDrilldown = useMemo(() => canDrilldown(widget), [widget, canDrilldown]);\n\n // Handle drilldown execution with context\n const handleDrilldown = useCallback(\n (selectedData?: Record<string, unknown>) => {\n if (!widget.drilldown?.enabled) return;\n\n const context: DrilldownContext = {\n selectedData: selectedData || {},\n globalFilters: globalFilterValues || {},\n widgetData: widgetData || {},\n metadata: {\n widgetId: widget.id,\n widgetType: widget.type,\n widgetTitle: widget.title,\n },\n sourceDashboardId: widget.dashboardId,\n };\n\n void executeDrilldown(widget.drilldown, context);\n },\n [widget, widgetData, globalFilterValues, executeDrilldown]\n );\n\n // Data clicks drill down only while viewing. In edit mode a click selects\n // the widget; the builder's Preview (view mode) drills down (BOFF-7625).\n const activeDrilldown = hasDrilldown && !isEditMode ? handleDrilldown : undefined;\n\n // Track mouse position to distinguish click from drag\n const mouseDownPos = useRef<{ x: number; y: number } | null>(null);\n const DRAG_THRESHOLD = 5; // pixels - if mouse moves more than this, it's a drag\n\n // Handle mouse down - record position\n const handleMouseDown = useCallback((e: React.MouseEvent) => {\n mouseDownPos.current = { x: e.clientX, y: e.clientY };\n }, []);\n\n // Handle widget click - Edit mode only (View mode drilldown is triggered by data clicks)\n // Only trigger if mouse hasn't moved much (not a drag)\n const handleClick = useCallback(\n (e: React.MouseEvent) => {\n e.stopPropagation(); // Prevent DashboardGrid from also handling\n\n // Check if this was a drag (mouse moved significantly)\n if (mouseDownPos.current) {\n const dx = Math.abs(e.clientX - mouseDownPos.current.x);\n const dy = Math.abs(e.clientY - mouseDownPos.current.y);\n if (dx > DRAG_THRESHOLD || dy > DRAG_THRESHOLD) {\n // This was a drag, not a click - don't open config panel\n mouseDownPos.current = null;\n return;\n }\n }\n mouseDownPos.current = null;\n\n if (isEditMode) {\n // Edit mode: select widget for editing\n selectWidget(widget.id);\n }\n // View mode: drilldown is triggered by clicking specific data elements\n // (table rows, chart points, etc.) - not by clicking the widget itself\n },\n [isEditMode, selectWidget, widget.id]\n );\n\n // Handle keyboard navigation (Edit mode only)\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n event.stopPropagation();\n if (isEditMode) {\n selectWidget(widget.id);\n }\n }\n },\n [isEditMode, selectWidget, widget.id]\n );\n\n const hasRenderableCustomWidgetConfig = useMemo(\n () => widget.type === 'custom' && hasRenderableCustomConfig(widget.config),\n [widget.type, widget.config]\n );\n\n const customWidgetHasIframeConfig = useMemo(\n () => widget.type === 'custom' && hasCustomIframeConfig(widget.config),\n [widget.type, widget.config]\n );\n\n const showContainerDrilldownHints = hasDrilldown && !customWidgetHasIframeConfig;\n\n // Text widgets can render static config.content even when no parser/sink is bound.\n const isTextWithContent = useMemo(() => {\n if (widget.type !== 'text') return false;\n return resolveTextData(widget.config as Record<string, unknown> | undefined, widgetData).hasContent;\n }, [widget.type, widget.config, widgetData]);\n\n // Determine if data is empty\n const isEmpty = !isLoading && !error && !widgetData && !hasRenderableCustomWidgetConfig && !isTextWithContent;\n\n // v2.0: Check if widget has a renderer specified (non-BIGCONSOLE)\n const widgetRenderer = useMemo(() => {\n const widgetWithRenderer = widget as Widget & { renderer?: RendererType };\n return widgetWithRenderer.renderer;\n }, [widget]);\n\n // v2.0: Determine if we should use the factory (non-BIGCONSOLE renderer)\n const useRendererFactory = useMemo(() => {\n const shouldUse = widgetRenderer && widgetRenderer !== 'BIGCONSOLE';\n return shouldUse;\n }, [widgetRenderer]);\n\n // v2.0: Create action context\n const actionContext = useMemo<ActionContext>(\n () => ({\n widgetId: widget.id,\n data: widgetData || {},\n }),\n [widget.id, widgetData]\n );\n\n // v2.0: Handle action callback from WidgetRendererFactory\n // Receives (action: WidgetAction, context: ActionContext) and forwards to parent\n // Checks if a more detailed backend action exists with same name\n const handleActionFromFactory = useCallback(\n (action: WidgetAction, context: ActionContext) => {\n if (!onAction) return;\n\n // Try to find a matching backend action by name (has more details like confirmation)\n const existingAction = actions?.find((a) => a.name === action.name);\n\n if (existingAction) {\n // Use existing backend action (has confirmation, style, icon, etc.)\n onAction(existingAction, context);\n } else {\n // Use the action from WidgetRendererFactory as-is\n onAction(action, context);\n }\n },\n [onAction, actions]\n );\n\n // Render the appropriate widget component based on type (v1.0 snake_case)\n const renderWidgetComponent = useCallback(() => {\n // Extract data based on widget type expectations\n // Different widgets expect different data formats\n const getDataForWidget = () => {\n if (!widgetData) return widgetData;\n\n // If data has 'rows' property (table data), extract rows\n if (widget.type === 'table' || widget.type === 'pivot_table') {\n if (Array.isArray(widgetData)) return widgetData;\n if (widgetData && typeof widgetData === 'object' && 'rows' in widgetData) {\n return (widgetData as { rows: unknown[] }).rows;\n }\n }\n\n // If data has 'items' property (list data), extract items\n if (widget.type === 'list') {\n if (Array.isArray(widgetData)) return widgetData;\n if (widgetData && typeof widgetData === 'object' && 'items' in widgetData) {\n return (widgetData as { items: unknown[] }).items;\n }\n }\n\n // If data has 'stages' property (old funnel format), extract stages\n if (widget.type === 'funnel_chart') {\n if (Array.isArray(widgetData)) return widgetData;\n if (widgetData && typeof widgetData === 'object' && 'stages' in widgetData) {\n return (widgetData as { stages: unknown[] }).stages;\n }\n }\n\n // If data has 'datasets' property (old chart format), convert to array format\n if (widget.type === 'chart') {\n if (Array.isArray(widgetData)) return widgetData;\n if (widgetData && typeof widgetData === 'object' && 'datasets' in widgetData) {\n // Convert old format to new array format\n const oldData = widgetData as { labels?: string[]; datasets?: { name: string; data: number[] }[] };\n if (oldData.labels && oldData.datasets) {\n return oldData.labels.map((label, i) => {\n const point: Record<string, unknown> = { name: label };\n oldData.datasets?.forEach((ds) => {\n point[ds.name.toLowerCase()] = ds.data[i];\n });\n return point;\n });\n }\n }\n }\n\n // For text widgets: merge parser output with static config via the shared\n // text-data contract (string/object-with-content/object-without-content).\n if (widget.type === 'text') {\n const resolved = resolveTextData(widget.config as Record<string, unknown> | undefined, widgetData);\n return {\n content: resolved.content,\n format: resolved.format,\n alignment: resolved.alignment,\n };\n }\n\n // For custom widgets: pass data through with extracted value if configured\n if (widget.type === 'custom') {\n const config = widget.config as Record<string, unknown> | undefined;\n const valueField = config?.valueField as string | undefined;\n if (valueField && widgetData && typeof widgetData === 'object' && !Array.isArray(widgetData)) {\n const obj = widgetData as Record<string, unknown>;\n if (valueField in obj) {\n return { value: obj[valueField], label: widget.title, data: obj };\n }\n }\n }\n\n return widgetData;\n };\n\n const normalizedData = getDataForWidget();\n const props = {\n widget,\n data: normalizedData,\n onDrilldown: activeDrilldown,\n };\n\n // v2.0: Use WidgetRendererFactory for non-BIGCONSOLE renderers\n if (useRendererFactory) {\n // For factory renderers (Adaptive Card, BlockKit, Custom), pass the RAW\n // processed data — NOT the type-normalized data. Normalization (e.g., text→markdown)\n // is only for BIGCONSOLE renderer widgets. Factory renderers handle their own\n // template interpolation against the raw data object.\n let factoryData: Record<string, unknown> = {};\n\n if (\n realWidgetData &&\n typeof realWidgetData === 'object' &&\n !Array.isArray(realWidgetData) &&\n Object.keys(realWidgetData as Record<string, unknown>).length > 0\n ) {\n // Use real data from backend (raw processed, not type-normalized)\n factoryData = { ...(realWidgetData as Record<string, unknown>) };\n }\n\n // For CUSTOM renderer: enrich data with standard fields expected by built-in components.\n // Built-in components (Counter, Card, SimpleText) read specific fields from data:\n // Counter: data.value, Card: data.title/data.description, SimpleText: data.text\n // Parsed data from datasinks has domain-specific fields (totalFiles, totalMessages, etc.)\n // Use config.valueField to extract the primary value and map it to standard fields.\n const internalType = (widget.config as Record<string, unknown> | undefined)?._internalWidgetType as\n string | undefined;\n if (internalType === 'custom' && Object.keys(factoryData).length > 0) {\n const config = widget.config as Record<string, unknown> | undefined;\n const valueField = config?.valueField as string | undefined;\n if (valueField && valueField in factoryData) {\n const val = factoryData[valueField];\n const formatted = typeof val === 'number' ? val.toLocaleString() : String(val);\n // Map to standard fields for all built-in custom components\n factoryData = {\n ...factoryData,\n value: val, // Counter component\n title: factoryData.title || formatted, // Card component\n description: factoryData.description || widget.title || '', // Card component\n text: factoryData.text || formatted, // SimpleText component\n };\n }\n }\n\n return (\n <WidgetRendererFactory\n widget={widget}\n data={factoryData}\n isEditMode={isEditMode}\n isSelected={isSelected}\n isLoading={isLoading}\n error={error}\n onDrilldown={activeDrilldown}\n onAction={handleActionFromFactory}\n />\n );\n }\n\n // v1.0: Use switch-case for BIGCONSOLE renderer (default)\n // Normalize widget type to lowercase for case-insensitive matching\n const normalizedType = widget.type?.toLowerCase() || '';\n switch (normalizedType) {\n case 'metric_card':\n return <MetricCardWidget {...props} />;\n case 'kpi_card_comparison':\n return <KPIComparisonWidget {...props} />;\n case 'chart':\n case 'funnel_chart':\n return <ChartWidget {...props} />;\n case 'table':\n return <TableWidget {...props} />;\n case 'pivot_table':\n return <PivotTableWidget {...props} />;\n case 'gauge':\n return <GaugeWidget {...props} />;\n case 'progress':\n return <ProgressWidget {...props} />;\n case 'list':\n return <ListWidget {...props} />;\n case 'heatmap':\n return <HeatmapWidget {...props} />;\n case 'retention':\n return <RetentionWidget {...props} />;\n case 'calendar':\n return <CalendarWidget {...props} />;\n case 'timeline':\n return <TimelineWidget {...props} />;\n case 'kanban':\n return <KanbanWidget {...props} />;\n case 'form':\n return <FormWidget {...props} />;\n case 'text':\n return <TextWidget {...props} />;\n case 'iframe':\n return <IframeWidget {...props} />;\n case 'map':\n return <MapWidget {...props} />;\n case 'custom':\n return <CustomWidget {...props} />;\n default:\n return children || <WidgetEmptyState widgetType={widget.type} />;\n }\n }, [\n widget,\n widgetData,\n children,\n activeDrilldown,\n useRendererFactory,\n isEditMode,\n isSelected,\n isLoading,\n error,\n handleActionFromFactory,\n realWidgetData,\n ]);\n\n // Determine content to render\n const renderContent = () => {\n if (isLoading) {\n return <WidgetLoadingState />;\n }\n\n if (error) {\n return <WidgetErrorState error={error} onRetry={onRefresh} />;\n }\n\n if (isEmpty && !children) {\n // v2.0: Check parserId (primary) or dataSinkId (for context/drilldowns)\n return (\n <WidgetEmptyState\n widgetType={widget.type}\n hideEditHint={previewOnly}\n hasDataSource={hasDataSource}\n templateSlot={\n typeof widget.metadata?.['templateDataSinkSlot'] === 'string'\n ? (widget.metadata['templateDataSinkSlot'] as string)\n : null\n }\n />\n );\n }\n\n // resetKey auto-resets the boundary on parser/sink re-bind or config edit without widget.id changing (BOFF-2242).\n const resetKey = `${widgetBinding.source.kind}|${widgetBinding.source.ref ?? ''}|${widgetBinding.parserId ?? ''}|${widget.updatedAt ?? ''}`;\n\n return (\n <WidgetErrorBoundary widgetId={widget.id} widgetType={widget.type} widgetTitle={widget.title} resetKey={resetKey}>\n {children ?? <Suspense fallback={<WidgetLoadingState />}>{renderWidgetComponent()}</Suspense>}\n </WidgetErrorBoundary>\n );\n };\n\n return (\n <div\n ref={containerRef}\n /*\n The card is an object lifted off the (sunken) canvas, so it carries the\n elevation scale rather than expressing depth as one more 1px border —\n elevation was previously almost unused in this module (BOFF-5636).\n Only colour/shadow animate, and only when motion is allowed.\n\n `--color-action-primary-border` exists as a CSS variable but is NOT in the\n shell's Tailwind `@theme`, so `border-action-primary-border` /\n `ring-action-primary-border` emit no CSS at all and the selected state\n rendered with the default border and no ring. Both go through the\n arbitrary `var()` form, which resolves per theme (BOFF-5636).\n */\n className={`\n group relative flex flex-col\n h-full w-full min-w-0\n rounded-card border\n bg-bg-surface\n shadow-[var(--shadow-elevation-1)]\n ${settings.animationsEnabled ? 'motion-safe:transition-[box-shadow,border-color] motion-safe:duration-200' : ''}\n ${\n isSelected && isEditMode\n ? 'border-[var(--color-action-primary-border)] ring-2 ring-[var(--color-action-primary-border)]/30 shadow-[var(--shadow-elevation-2)]'\n : settings.showWidgetBorders\n ? 'border-[var(--color-border-subtle)] hover:border-action-primary-bg hover:shadow-[var(--shadow-elevation-2)]'\n : 'border-transparent'\n }\n ${isEditMode ? 'cursor-pointer' : ''}\n ${className}\n `}\n onMouseDown={handleMouseDown}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n tabIndex={isEditMode ? 0 : -1}\n role={isEditMode ? 'button' : undefined}\n aria-selected={isSelected}\n aria-label={`Widget: ${widget.title}`}\n data-widget-id={widget.id}\n data-widget-type={widget.type}\n >\n {/* Header */}\n <WidgetHeader\n widget={widget}\n previewOnly={previewOnly}\n definition={definition}\n isSelected={isSelected}\n isEditMode={isEditMode}\n isLoading={isLoading}\n isSampleData={isSampleData}\n timeUntilRefresh={widget.refreshInterval && !isPaused ? formatTimeUntilRefresh(timeUntilRefresh) : undefined}\n hasDrilldown={hasDrilldown}\n onRefresh={onRefresh}\n onExportCSV={exportData ? exportCSV : undefined}\n onExportPNG={exportPNG}\n onDrilldown={activeDrilldown ? () => activeDrilldown() : undefined}\n onToggleComments={previewOnly ? undefined : toggleComments}\n commentsOpen={showComments}\n commentCount={commentsEverOpened ? commentCount : undefined}\n />\n\n {/* Content Area — the point of the card, so it gets the room */}\n <div\n className={`\n flex-1 overflow-hidden min-h-0 min-w-0\n ${settings.compactMode ? 'p-2' : 'p-3 sm:p-4'}\n ${showContainerDrilldownHints && !isEditMode ? 'cursor-pointer' : ''}\n `}\n title={showContainerDrilldownHints && !isEditMode ? 'Click data to drill down' : undefined}\n >\n <div className=\"h-full min-w-0 overflow-auto\">{renderContent()}</div>\n </div>\n\n {/*\n v2.0: Widget Actions. A recessed control tray, deliberately lighter than\n the title band above it, so the card is no longer a symmetric sandwich of\n two identically-weighted strips.\n */}\n {actions && actions.length > 0 && !isLoading && !error && (\n <div\n className=\"min-w-0 border-t border-[var(--color-border-subtle)] bg-bg-sunken px-3 py-2 sm:px-4\"\n style={{ flexShrink: 0 }}\n >\n <WidgetActions\n actions={actions}\n context={actionContext}\n onAction={onAction}\n disabled={isEditMode}\n layout=\"horizontal\"\n size=\"sm\"\n />\n </div>\n )}\n\n {/* Edit mode: react-grid-layout provides resize handles */}\n\n {/* Drilldown Indicator */}\n {showContainerDrilldownHints && !isEditMode && (\n <div\n className=\"\n absolute bottom-2 right-2\n opacity-0 group-hover:opacity-100\n transition-opacity duration-200\n \"\n title=\"Click to drill down\"\n >\n <svg className=\"w-4 h-4 text-text-secondary\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M13 7l5 5m0 0l-5 5m5-5H6\" />\n </svg>\n </div>\n )}\n\n {/* Comments panel (overlay) */}\n {showComments && (\n <Suspense fallback={null}>\n <WidgetComments widgetId={widget.id} onClose={() => setShowComments(false)} />\n </Suspense>\n )}\n </div>\n );\n}, arePropsEqual);\n\nexport default WidgetWrapper;\n"],"mappings":"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"}
@@ -33,3 +33,4 @@ export declare function serializeActionConfig(draft: ActionConfigDraft, existing
33
33
  data: ActionSaveData;
34
34
  webhook: ActionWebhookDraft | null;
35
35
  };
36
+ //# sourceMappingURL=actionConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actionConfig.d.ts","sourceRoot":"","sources":["../../../../src/bigconsole/components/widgets/actionConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,WAAW,EACX,uBAAuB,EACvB,uBAAuB,EACxB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE/D,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,MAAM,CAAC;AAC/C,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,UAAU,CAAC;CACpB;AACD,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,uBAAuB,EAAE,UAAU,CAAC,GAAG,uBAAuB,CAAC;AACjG,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,aAAa,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,EAAE,WAAW,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACxC,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;CACjB;AACD,MAAM,MAAM,iBAAiB,GAAG;IAAE,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;IAAC,MAAM,EAAE,UAAU,GAAG,SAAS,CAAA;CAAE,CAAC;AAEpG,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMvD;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,iBAAiB,GAAG,iBAAiB,GAAG,IAAI,CAavF;AAED,wFAAwF;AACxF,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,iBAAiB,EACxB,QAAQ,CAAC,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACtC;IACD,IAAI,EAAE,cAAc,CAAC;IACrB,OAAO,EAAE,kBAAkB,GAAG,IAAI,CAAC;CACpC,CAgBA"}
@@ -52,3 +52,5 @@ function n(e, t) {
52
52
  }
53
53
  //#endregion
54
54
  export { n as serializeActionConfig, e as slugifyActionName, t as validateActionConfig };
55
+
56
+ //# sourceMappingURL=actionConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actionConfig.js","names":[],"sources":["../../../../src/bigconsole/components/widgets/actionConfig.ts"],"sourcesContent":["import type {\n ActionConfirmation,\n ActionStyle,\n CreateWidgetActionInput,\n UpdateWidgetActionInput,\n} from '../../hooks/useWidgetActions';\nimport type { HttpMethod } from '../../hooks/useEventWebhooks';\n\nexport type ActionOutcome = 'WEBHOOK' | 'EMIT';\nexport interface ActionWebhookDraft {\n url: string;\n method: HttpMethod;\n}\nexport type ActionSaveData = Omit<CreateWidgetActionInput, 'widgetId'> | UpdateWidgetActionInput;\nexport interface ActionConfigDraft {\n label: string;\n name: string;\n outcome: ActionOutcome;\n url: string;\n method: HttpMethod;\n style: ActionStyle;\n icon: string;\n confirmation: ActionConfirmation | null;\n disabled: boolean;\n hidden: boolean;\n}\nexport type ActionConfigError = { field: 'label' | 'name' | 'url'; reason: 'required' | 'invalid' };\n\nexport function slugifyActionName(label: string): string {\n return label\n .trim()\n .toLowerCase()\n .replace(/[^a-z0-9]+/g, '_')\n .replace(/^_+|_+$/g, '');\n}\n\nexport function validateActionConfig(draft: ActionConfigDraft): ActionConfigError | null {\n if (!draft.label.trim()) return { field: 'label', reason: 'required' };\n if (!draft.name) return { field: 'name', reason: 'required' };\n if (draft.outcome === 'WEBHOOK') {\n if (!draft.url.trim()) return { field: 'url', reason: 'required' };\n try {\n const url = new URL(draft.url.trim());\n if (!['http:', 'https:'].includes(url.protocol) || !url.hostname) return { field: 'url', reason: 'invalid' };\n } catch {\n return { field: 'url', reason: 'invalid' };\n }\n }\n return null;\n}\n\n/** The persisted name is an event contract: changing the label must never rename it. */\nexport function serializeActionConfig(\n draft: ActionConfigDraft,\n existing?: { id: string; name: string }\n): {\n data: ActionSaveData;\n webhook: ActionWebhookDraft | null;\n} {\n const data: ActionSaveData = {\n ...(existing ? { id: existing.id } : {}),\n name: existing?.name ?? draft.name,\n label: draft.label.trim(),\n type: 'BUTTON',\n style: draft.style,\n icon: draft.icon || null,\n confirmation: draft.confirmation,\n disabled: draft.disabled,\n hidden: draft.hidden,\n };\n return {\n data,\n webhook: draft.outcome === 'WEBHOOK' ? { url: draft.url.trim(), method: draft.method } : null,\n };\n}\n"],"mappings":";AA4BA,SAAgB,EAAkB,GAAuB;AACvD,QAAO,EACJ,MAAM,CACN,aAAa,CACb,QAAQ,eAAe,IAAI,CAC3B,QAAQ,YAAY,GAAG;;AAG5B,SAAgB,EAAqB,GAAoD;AACvF,KAAI,CAAC,EAAM,MAAM,MAAM,CAAE,QAAO;EAAE,OAAO;EAAS,QAAQ;EAAY;AACtE,KAAI,CAAC,EAAM,KAAM,QAAO;EAAE,OAAO;EAAQ,QAAQ;EAAY;AAC7D,KAAI,EAAM,YAAY,WAAW;AAC/B,MAAI,CAAC,EAAM,IAAI,MAAM,CAAE,QAAO;GAAE,OAAO;GAAO,QAAQ;GAAY;AAClE,MAAI;GACF,IAAM,IAAM,IAAI,IAAI,EAAM,IAAI,MAAM,CAAC;AACrC,OAAI,CAAC,CAAC,SAAS,SAAS,CAAC,SAAS,EAAI,SAAS,IAAI,CAAC,EAAI,SAAU,QAAO;IAAE,OAAO;IAAO,QAAQ;IAAW;UACtG;AACN,UAAO;IAAE,OAAO;IAAO,QAAQ;IAAW;;;AAG9C,QAAO;;AAIT,SAAgB,EACd,GACA,GAIA;AAYA,QAAO;EACL,MAZ2B;GAC3B,GAAI,IAAW,EAAE,IAAI,EAAS,IAAI,GAAG,EAAE;GACvC,MAAM,GAAU,QAAQ,EAAM;GAC9B,OAAO,EAAM,MAAM,MAAM;GACzB,MAAM;GACN,OAAO,EAAM;GACb,MAAM,EAAM,QAAQ;GACpB,cAAc,EAAM;GACpB,UAAU,EAAM;GAChB,QAAQ,EAAM;GACf;EAGC,SAAS,EAAM,YAAY,YAAY;GAAE,KAAK,EAAM,IAAI,MAAM;GAAE,QAAQ,EAAM;GAAQ,GAAG;EAC1F"}
@@ -35,3 +35,4 @@ export interface AdaptiveCardAction {
35
35
  }
36
36
  export declare const AdaptiveCardWidget: FC<AdaptiveCardWidgetProps>;
37
37
  export default AdaptiveCardWidget;
38
+ //# sourceMappingURL=AdaptiveCardWidget.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AdaptiveCardWidget.d.ts","sourceRoot":"","sources":["../../../../../src/bigconsole/components/widgets/adaptive-card/AdaptiveCardWidget.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,EAAwB,MAAM,OAAO,CAAC;AACtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAM7C,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,CAAC;CAChD;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAC7B,OAAO,CAAC,EAAE,kBAAkB,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,WAAW,GAAG,OAAO,GAAG,WAAW,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,GAAG,WAAW,CAAC;IAC7F,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,YAAY,CAAC;IACnD,MAAM,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;IAC1C,KAAK,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,WAAW,GAAG,MAAM,GAAG,SAAS,CAAC;IAChE,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAC9B,OAAO,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAChD,OAAO,CAAC,EAAE,kBAAkB,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,gBAAgB,GAAG,eAAe,GAAG,iBAAiB,CAAC;IAC7D,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AA4ID,eAAO,MAAM,kBAAkB,EAAE,EAAE,CAAC,uBAAuB,CAuCzD,CAAC;AAEH,eAAe,kBAAkB,CAAC"}
@@ -102,3 +102,5 @@ var s = e(function({ widget: e, data: r, onClick: i }) {
102
102
  });
103
103
  //#endregion
104
104
  export { s as default };
105
+
106
+ //# sourceMappingURL=AdaptiveCardWidget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AdaptiveCardWidget.js","names":[],"sources":["../../../../../src/bigconsole/components/widgets/adaptive-card/AdaptiveCardWidget.tsx"],"sourcesContent":["/**\n * AdaptiveCardWidget Component\n *\n * JSON-based adaptive cards renderer.\n */\n\nimport { type FC, memo, type ReactNode } from 'react';\nimport type { Widget } from '../../../types';\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface AdaptiveCardWidgetProps {\n widget: Widget;\n data?: AdaptiveCardData;\n onClick?: (action: AdaptiveCardAction) => void;\n}\n\nexport interface AdaptiveCardData {\n body?: AdaptiveCardElement[];\n actions?: AdaptiveCardAction[];\n}\n\nexport interface AdaptiveCardElement {\n type: 'TextBlock' | 'Image' | 'Container' | 'ColumnSet' | 'Column' | 'FactSet' | 'ActionSet';\n text?: string;\n url?: string;\n size?: 'small' | 'medium' | 'large' | 'extraLarge';\n weight?: 'lighter' | 'default' | 'bolder';\n color?: 'default' | 'accent' | 'attention' | 'good' | 'warning';\n wrap?: boolean;\n items?: AdaptiveCardElement[];\n columns?: AdaptiveCardElement[];\n width?: string;\n facts?: Array<{ title: string; value: string }>;\n actions?: AdaptiveCardAction[];\n}\n\nexport interface AdaptiveCardAction {\n type: 'Action.OpenUrl' | 'Action.Submit' | 'Action.ShowCard';\n title: string;\n url?: string;\n data?: Record<string, unknown>;\n}\n\n// ============================================================================\n// Helpers\n// ============================================================================\n\nfunction getTextSizeClass(size?: string): string {\n switch (size) {\n case 'small':\n return 'text-xs';\n case 'large':\n return 'text-lg';\n case 'extraLarge':\n return 'text-2xl';\n default:\n return 'text-sm';\n }\n}\n\nfunction getTextWeightClass(weight?: string): string {\n switch (weight) {\n case 'lighter':\n return 'font-light';\n case 'bolder':\n return 'font-bold';\n default:\n return 'font-normal';\n }\n}\n\nfunction getTextColorClass(color?: string): string {\n switch (color) {\n case 'accent':\n return 'text-action-primary-bg';\n case 'attention':\n return 'text-status-error-text';\n case 'good':\n return 'text-status-success-text';\n case 'warning':\n return 'text-[var(--color-status-warning-text)]';\n default:\n return 'text-text-primary';\n }\n}\n\n// ============================================================================\n// Element Renderer\n// ============================================================================\n\nfunction renderElement(\n element: AdaptiveCardElement,\n index: number,\n onAction?: (action: AdaptiveCardAction) => void\n): ReactNode {\n switch (element.type) {\n case 'TextBlock':\n return (\n <p\n key={index}\n className={`\n ${getTextSizeClass(element.size)}\n ${getTextWeightClass(element.weight)}\n ${getTextColorClass(element.color)}\n ${element.wrap ? '' : 'truncate'}\n mb-1\n `}\n >\n {element.text}\n </p>\n );\n\n case 'Image':\n return <img key={index} src={element.url} alt=\"\" className=\"max-w-full h-auto rounded mb-2\" />;\n\n case 'Container':\n return (\n <div key={index} className=\"mb-2\">\n {element.items?.map((item, i) => renderElement(item, i, onAction))}\n </div>\n );\n\n case 'ColumnSet':\n return (\n <div key={index} className=\"flex gap-2 mb-2\">\n {element.columns?.map((col, i) => renderElement(col, i, onAction))}\n </div>\n );\n\n case 'Column':\n return (\n <div key={index} className=\"flex-1\" style={{ flexBasis: element.width }}>\n {element.items?.map((item, i) => renderElement(item, i, onAction))}\n </div>\n );\n\n case 'FactSet':\n return (\n <div key={index} className=\"mb-2\">\n {element.facts?.map((fact, i) => (\n <div key={i} className=\"flex gap-2 text-sm py-1\">\n <span className=\"text-text-secondary flex-shrink-0\">{fact.title}:</span>\n <span className=\"text-text-primary font-medium\">{fact.value}</span>\n </div>\n ))}\n </div>\n );\n\n case 'ActionSet':\n return (\n <div key={index} className=\"flex gap-2 mt-3\">\n {element.actions?.map((action, i) => (\n <button\n key={i}\n type=\"button\"\n onClick={() => onAction?.(action)}\n className=\"\n px-3 py-1.5\n text-sm font-medium\n text-action-primary-fg\n bg-action-primary-bg\n hover:bg-action-primary-bgHover\n rounded-md\n transition-colors\n \"\n >\n {action.title}\n </button>\n ))}\n </div>\n );\n\n default:\n return null;\n }\n}\n\n// ============================================================================\n// Component\n// ============================================================================\n\nexport const AdaptiveCardWidget: FC<AdaptiveCardWidgetProps> = memo(function AdaptiveCardWidget({\n widget: _widget,\n data,\n onClick,\n}) {\n if (!data?.body?.length && !data?.actions?.length) {\n return <div className=\"flex items-center justify-center h-full p-4 text-text-secondary\">No content to display</div>;\n }\n\n return (\n <div className=\"flex flex-col h-full p-4\">\n {/* Body */}\n <div className=\"flex-1\">{data.body?.map((element, i) => renderElement(element, i, onClick))}</div>\n\n {/* Actions */}\n {data.actions && data.actions.length > 0 && (\n <div className=\"flex gap-2 mt-4 pt-4 border-t border-border-default\">\n {data.actions.map((action, i) => (\n <button\n key={i}\n type=\"button\"\n onClick={() => onClick?.(action)}\n className=\"\n px-4 py-2\n text-sm font-medium\n text-action-primary-fg\n bg-action-primary-bg\n hover:bg-action-primary-bgHover\n rounded-md\n transition-colors\n \"\n >\n {action.title}\n </button>\n ))}\n </div>\n )}\n </div>\n );\n});\n\nexport default AdaptiveCardWidget;\n"],"mappings":";;;AAkDA,SAAS,EAAiB,GAAuB;AAC/C,SAAQ,GAAR;EACE,KAAK,QACH,QAAO;EACT,KAAK,QACH,QAAO;EACT,KAAK,aACH,QAAO;EACT,QACE,QAAO;;;AAIb,SAAS,EAAmB,GAAyB;AACnD,SAAQ,GAAR;EACE,KAAK,UACH,QAAO;EACT,KAAK,SACH,QAAO;EACT,QACE,QAAO;;;AAIb,SAAS,EAAkB,GAAwB;AACjD,SAAQ,GAAR;EACE,KAAK,SACH,QAAO;EACT,KAAK,YACH,QAAO;EACT,KAAK,OACH,QAAO;EACT,KAAK,UACH,QAAO;EACT,QACE,QAAO;;;AAQb,SAAS,EACP,GACA,GACA,GACW;AACX,SAAQ,EAAQ,MAAhB;EACE,KAAK,YACH,QACE,kBAAC,KAAD;GAEE,WAAW;cACP,EAAiB,EAAQ,KAAK,CAAC;cAC/B,EAAmB,EAAQ,OAAO,CAAC;cACnC,EAAkB,EAAQ,MAAM,CAAC;cACjC,EAAQ,OAAO,KAAK,WAAW;;;aAIlC,EAAQ;GACP,EAVG,EAUH;EAGR,KAAK,QACH,QAAO,kBAAC,OAAD;GAAiB,KAAK,EAAQ;GAAK,KAAI;GAAG,WAAU;GAAmC,EAA7E,EAA6E;EAEhG,KAAK,YACH,QACE,kBAAC,OAAD;GAAiB,WAAU;aACxB,EAAQ,OAAO,KAAK,GAAM,MAAM,EAAc,GAAM,GAAG,EAAS,CAAC;GAC9D,EAFI,EAEJ;EAGV,KAAK,YACH,QACE,kBAAC,OAAD;GAAiB,WAAU;aACxB,EAAQ,SAAS,KAAK,GAAK,MAAM,EAAc,GAAK,GAAG,EAAS,CAAC;GAC9D,EAFI,EAEJ;EAGV,KAAK,SACH,QACE,kBAAC,OAAD;GAAiB,WAAU;GAAS,OAAO,EAAE,WAAW,EAAQ,OAAO;aACpE,EAAQ,OAAO,KAAK,GAAM,MAAM,EAAc,GAAM,GAAG,EAAS,CAAC;GAC9D,EAFI,EAEJ;EAGV,KAAK,UACH,QACE,kBAAC,OAAD;GAAiB,WAAU;aACxB,EAAQ,OAAO,KAAK,GAAM,MACzB,kBAAC,OAAD;IAAa,WAAU;cAAvB,CACE,kBAAC,QAAD;KAAM,WAAU;eAAhB,CAAqD,EAAK,OAAM,IAAQ;QACxE,kBAAC,QAAD;KAAM,WAAU;eAAiC,EAAK;KAAa,CAAA,CAC/D;MAHI,EAGJ,CACN;GACE,EAPI,EAOJ;EAGV,KAAK,YACH,QACE,kBAAC,OAAD;GAAiB,WAAU;aACxB,EAAQ,SAAS,KAAK,GAAQ,MAC7B,kBAAC,UAAD;IAEE,MAAK;IACL,eAAe,IAAW,EAAO;IACjC,WAAU;cAUT,EAAO;IACD,EAdF,EAcE,CACT;GACE,EAnBI,EAmBJ;EAGV,QACE,QAAO;;;AAQb,IAAa,IAAkD,EAAK,SAA4B,EAC9F,QAAQ,GACR,SACA,cACC;AAKD,QAJI,CAAC,GAAM,MAAM,UAAU,CAAC,GAAM,SAAS,SAClC,kBAAC,OAAD;EAAK,WAAU;YAAkE;EAA2B,CAAA,GAInH,kBAAC,OAAD;EAAK,WAAU;YAAf,CAEE,kBAAC,OAAD;GAAK,WAAU;aAAU,EAAK,MAAM,KAAK,GAAS,MAAM,EAAc,GAAS,GAAG,EAAQ,CAAC;GAAO,CAAA,EAGjG,EAAK,WAAW,EAAK,QAAQ,SAAS,KACrC,kBAAC,OAAD;GAAK,WAAU;aACZ,EAAK,QAAQ,KAAK,GAAQ,MACzB,kBAAC,UAAD;IAEE,MAAK;IACL,eAAe,IAAU,EAAO;IAChC,WAAU;cAUT,EAAO;IACD,EAdF,EAcE,CACT;GACE,CAAA,CAEJ;;EAER"}
@@ -4,3 +4,4 @@
4
4
  * JSON-based adaptive cards renderer for flexible content.
5
5
  */
6
6
  export { AdaptiveCardWidget, type AdaptiveCardWidgetProps, type AdaptiveCardData, type AdaptiveCardElement, type AdaptiveCardAction, } from './AdaptiveCardWidget';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/bigconsole/components/widgets/adaptive-card/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,kBAAkB,EAClB,KAAK,uBAAuB,EAC5B,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,GACxB,MAAM,sBAAsB,CAAC"}
@@ -40,3 +40,4 @@ export interface CalendarData {
40
40
  export declare function normalizeCalendarEvents(data: CalendarData | CalendarEvent[] | Record<string, unknown> | undefined): CalendarEvent[];
41
41
  export declare const CalendarView: FC<CalendarViewProps>;
42
42
  export default CalendarView;
43
+ //# sourceMappingURL=CalendarView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CalendarView.d.ts","sourceRoot":"","sources":["../../../../../src/bigconsole/components/widgets/calendar/CalendarView.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,EAAiB,MAAM,OAAO,CAAC;AAC/C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAM5D,MAAM,WAAW,iBAAkB,SAAQ,mBAAmB;IAC5D,qGAAqG;IACrG,CAAC,EAAE,iBAAiB,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;CAC1C;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC;IACzB,0EAA0E;IAC1E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;CACjC;AAaD;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,YAAY,GAAG,aAAa,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GACzE,aAAa,EAAE,CAiCjB;AAMD,eAAO,MAAM,YAAY,EAAE,EAAE,CAAC,iBAAiB,CAgH7C,CAAC;AAEH,eAAe,YAAY,CAAC"}
@@ -148,3 +148,5 @@ var o = e(function({ widget: e, data: i, onClick: o, t: s }) {
148
148
  });
149
149
  //#endregion
150
150
  export { o as default, a as normalizeCalendarEvents };
151
+
152
+ //# sourceMappingURL=CalendarView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CalendarView.js","names":[],"sources":["../../../../../src/bigconsole/components/widgets/calendar/CalendarView.tsx"],"sourcesContent":["/**\n * CalendarWidget Component\n *\n * Simple calendar view showing events.\n */\n\nimport { type FC, memo, useMemo } from 'react';\nimport type { Widget } from '../../../types';\nimport type { WidgetTranslateFn } from '../utils/translate';\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface CalendarViewProps extends CalendarWidgetProps {\n /** Translator — the app passes useI18n().t; the public embed passes a static fallback translator. */\n t: WidgetTranslateFn;\n}\n\nexport interface CalendarWidgetProps {\n widget: Widget;\n data?: CalendarData;\n onClick?: (event: CalendarEvent) => void;\n}\n\nexport interface CalendarEvent {\n id: string;\n title: string;\n start: string;\n end: string;\n color?: string;\n allDay?: boolean;\n category?: string;\n}\n\nexport interface CalendarData {\n events?: CalendarEvent[];\n /** Total event count when `events` is a capped subset (public embeds). */\n eventCount?: number;\n currentDate?: string;\n view?: 'month' | 'week' | 'day';\n}\n\n// ============================================================================\n// Normalization\n// ============================================================================\n\nfunction firstDefined<T = unknown>(obj: Record<string, unknown>, keys: string[]): T | undefined {\n for (const key of keys) {\n if (obj[key] !== undefined && obj[key] !== null) return obj[key] as T;\n }\n return undefined;\n}\n\n/**\n * Normalize whatever the widget is bound to into `CalendarEvent[]`. Accepts the\n * documented `{ events, ... }` shape, an events array under a different common\n * key, or a bare array of event-like records — a DataSink parser naturally\n * outputs a bare array, and WidgetWrapper has no calendar-specific reshaping\n * step (unlike table/list/chart), so this widget has to tolerate it itself, the\n * same way MapWidget tolerates a bare marker array instead of requiring\n * `{ markers }`. Field names are matched against common aliases so a parser\n * doesn't have to emit the exact `title`/`start`/`end` keys.\n */\nexport function normalizeCalendarEvents(\n data: CalendarData | CalendarEvent[] | Record<string, unknown> | undefined\n): CalendarEvent[] {\n const rawEvents: unknown = Array.isArray(data)\n ? data\n : Array.isArray((data as CalendarData | undefined)?.events)\n ? (data as CalendarData).events\n : Array.isArray((data as Record<string, unknown> | undefined)?.items)\n ? (data as Record<string, unknown>).items\n : Array.isArray((data as Record<string, unknown> | undefined)?.data)\n ? (data as Record<string, unknown>).data\n : undefined;\n\n if (!Array.isArray(rawEvents)) return [];\n\n return rawEvents\n .map((raw, i): CalendarEvent | null => {\n if (!raw || typeof raw !== 'object') return null;\n const r = raw as Record<string, unknown>;\n const start = firstDefined<string>(r, ['start', 'startDate', 'date', 'startTime']);\n if (!start) return null;\n const end = firstDefined<string>(r, ['end', 'endDate', 'endTime']) ?? start;\n const title = firstDefined<string>(r, ['title', 'name', 'label', 'summary']) ?? 'Untitled event';\n const id = firstDefined<string>(r, ['id', 'eventId', '_id']) ?? `${title}-${start}-${i}`;\n return {\n id: String(id),\n title: String(title),\n start: String(start),\n end: String(end),\n color: typeof r.color === 'string' ? r.color : undefined,\n allDay: typeof r.allDay === 'boolean' ? r.allDay : undefined,\n category: firstDefined<string>(r, ['category', 'group', 'type']),\n };\n })\n .filter((e): e is CalendarEvent => e !== null);\n}\n\n// ============================================================================\n// Component\n// ============================================================================\n\nexport const CalendarView: FC<CalendarViewProps> = memo(function CalendarView({ widget: _widget, data, onClick, t }) {\n const events = useMemo(() => normalizeCalendarEvents(data), [data]);\n const declaredCount =\n data && !Array.isArray(data) && typeof (data as CalendarData).eventCount === 'number'\n ? (data as CalendarData).eventCount\n : undefined;\n const totalCount = Math.max(declaredCount ?? 0, events.length);\n\n // Get upcoming events (next 7 days)\n const upcomingEvents = useMemo(() => {\n const now = new Date();\n const weekFromNow = new Date(now.getTime() + 7 * 24 * 60 * 60 * 1000);\n return events\n .filter((e) => {\n const eventDate = new Date(e.start);\n return eventDate >= now && eventDate <= weekFromNow;\n })\n .sort((a, b) => new Date(a.start).getTime() - new Date(b.start).getTime())\n .slice(0, 8);\n }, [events]);\n\n if (!events.length) {\n return (\n <div className=\"flex items-center justify-center h-full text-text-secondary text-sm\">\n <div className=\"text-center\">\n <svg className=\"w-12 h-12 mx-auto mb-2 text-text-muted\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={1.5}\n d=\"M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z\"\n />\n </svg>\n <p>{t('bigconsole.widget.calendar.emptyState', 'No events to display')}</p>\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"flex flex-col h-full p-4 overflow-auto\">\n {/* Header */}\n <div className=\"flex items-center justify-between mb-4\">\n <h3 className=\"text-sm font-medium text-text-primary\">\n {t('bigconsole.widget.calendar.upcomingEvents', 'Upcoming Events')}\n </h3>\n <span className=\"text-xs text-text-secondary\">\n {t('bigconsole.widget.calendar.eventCount', '{{count}} events', { count: totalCount })}\n </span>\n </div>\n\n {/* Event List */}\n <div className=\"flex-1 space-y-2 overflow-auto\">\n {upcomingEvents.map((event) => {\n const eventDate = new Date(event.start);\n const isToday = eventDate.toDateString() === new Date().toDateString();\n\n return (\n <div\n key={event.id}\n className={`\n p-3 rounded-lg border border-border-default\n ${onClick ? 'cursor-pointer hover:border-action-primary-bg' : ''}\n transition-colors\n `}\n onClick={() => onClick?.(event)}\n >\n <div className=\"flex items-start gap-3\">\n {/* Color indicator */}\n <div\n className=\"w-1 h-full min-h-[40px] rounded-full flex-shrink-0\"\n style={{ backgroundColor: event.color || 'var(--color-action-primary-bg)' }}\n />\n\n <div className=\"flex-1 min-w-0\">\n <p className=\"text-sm font-medium text-text-primary truncate\">{event.title}</p>\n <p className=\"text-xs text-text-secondary mt-1\">\n {isToday ? (\n <span className=\"text-status-success-text font-medium\">\n {t('bigconsole.widget.calendar.today', 'Today')}\n </span>\n ) : (\n eventDate.toLocaleDateString('en-US', { weekday: 'short', month: 'short', day: 'numeric' })\n )}\n {!event.allDay && (\n <span className=\"ml-2\">\n {eventDate.toLocaleTimeString('en-US', { hour: 'numeric', minute: '2-digit' })}\n </span>\n )}\n {event.allDay && <span className=\"ml-2\">{t('bigconsole.widget.calendar.allDay', 'All day')}</span>}\n </p>\n {event.category && (\n <span className=\"inline-block mt-1 px-2 py-0.5 text-[10px] rounded bg-bg-sunken text-text-secondary\">\n {event.category}\n </span>\n )}\n </div>\n </div>\n </div>\n );\n })}\n </div>\n\n {totalCount > upcomingEvents.length && (\n <p className=\"text-xs text-text-muted text-center mt-3\">\n {t('bigconsole.widget.calendar.moreEvents', '+{{count}} more events', {\n count: totalCount - upcomingEvents.length,\n })}\n </p>\n )}\n </div>\n );\n});\n\nexport default CalendarView;\n"],"mappings":";;;AA+CA,SAAS,EAA0B,GAA8B,GAA+B;AAC9F,MAAK,IAAM,KAAO,EAChB,KAAI,EAAI,OAAS,KAAA,KAAa,EAAI,OAAS,KAAM,QAAO,EAAI;;AAehE,SAAgB,EACd,GACiB;CACjB,IAAM,IAAqB,MAAM,QAAQ,EAAK,GAC1C,IACA,MAAM,QAAS,GAAmC,OAAO,GACtD,EAAsB,SACvB,MAAM,QAAS,GAA8C,MAAM,GAChE,EAAiC,QAClC,MAAM,QAAS,GAA8C,KAAK,GAC/D,EAAiC,OAClC,KAAA;AAIV,QAFK,MAAM,QAAQ,EAAU,GAEtB,EACJ,KAAK,GAAK,MAA4B;AACrC,MAAI,CAAC,KAAO,OAAO,KAAQ,SAAU,QAAO;EAC5C,IAAM,IAAI,GACJ,IAAQ,EAAqB,GAAG;GAAC;GAAS;GAAa;GAAQ;GAAY,CAAC;AAClF,MAAI,CAAC,EAAO,QAAO;EACnB,IAAM,IAAM,EAAqB,GAAG;GAAC;GAAO;GAAW;GAAU,CAAC,IAAI,GAChE,IAAQ,EAAqB,GAAG;GAAC;GAAS;GAAQ;GAAS;GAAU,CAAC,IAAI,kBAC1E,IAAK,EAAqB,GAAG;GAAC;GAAM;GAAW;GAAM,CAAC,IAAI,GAAG,EAAM,GAAG,EAAM,GAAG;AACrF,SAAO;GACL,IAAI,OAAO,EAAG;GACd,OAAO,OAAO,EAAM;GACpB,OAAO,OAAO,EAAM;GACpB,KAAK,OAAO,EAAI;GAChB,OAAO,OAAO,EAAE,SAAU,WAAW,EAAE,QAAQ,KAAA;GAC/C,QAAQ,OAAO,EAAE,UAAW,YAAY,EAAE,SAAS,KAAA;GACnD,UAAU,EAAqB,GAAG;IAAC;IAAY;IAAS;IAAO,CAAC;GACjE;GACD,CACD,QAAQ,MAA0B,MAAM,KAAK,GArBV,EAAE;;AA4B1C,IAAa,IAAsC,EAAK,SAAsB,EAAE,QAAQ,GAAS,SAAM,YAAS,QAAK;CACnH,IAAM,IAAS,QAAc,EAAwB,EAAK,EAAE,CAAC,EAAK,CAAC,EAC7D,IACJ,KAAQ,CAAC,MAAM,QAAQ,EAAK,IAAI,OAAQ,EAAsB,cAAe,WACxE,EAAsB,aACvB,KAAA,GACA,IAAa,KAAK,IAAI,KAAiB,GAAG,EAAO,OAAO,EAGxD,IAAiB,QAAc;EACnC,IAAM,oBAAM,IAAI,MAAM,EAChB,IAAc,IAAI,KAAK,EAAI,SAAS,GAAG,QAAc,KAAK,IAAK;AACrE,SAAO,EACJ,QAAQ,MAAM;GACb,IAAM,IAAY,IAAI,KAAK,EAAE,MAAM;AACnC,UAAO,KAAa,KAAO,KAAa;IACxC,CACD,MAAM,GAAG,MAAM,IAAI,KAAK,EAAE,MAAM,CAAC,SAAS,GAAG,IAAI,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,CACzE,MAAM,GAAG,EAAE;IACb,CAAC,EAAO,CAAC;AAoBZ,QAlBK,EAAO,SAmBV,kBAAC,OAAD;EAAK,WAAU;YAAf;GAEE,kBAAC,OAAD;IAAK,WAAU;cAAf,CACE,kBAAC,MAAD;KAAI,WAAU;eACX,EAAE,6CAA6C,kBAAkB;KAC/D,CAAA,EACL,kBAAC,QAAD;KAAM,WAAU;eACb,EAAE,yCAAyC,oBAAoB,EAAE,OAAO,GAAY,CAAC;KACjF,CAAA,CACH;;GAGN,kBAAC,OAAD;IAAK,WAAU;cACZ,EAAe,KAAK,MAAU;KAC7B,IAAM,IAAY,IAAI,KAAK,EAAM,MAAM,EACjC,IAAU,EAAU,cAAc,sBAAK,IAAI,MAAM,EAAC,cAAc;AAEtE,YACE,kBAAC,OAAD;MAEE,WAAW;;oBAEL,IAAU,kDAAkD,GAAG;;;MAGrE,eAAe,IAAU,EAAM;gBAE/B,kBAAC,OAAD;OAAK,WAAU;iBAAf,CAEE,kBAAC,OAAD;QACE,WAAU;QACV,OAAO,EAAE,iBAAiB,EAAM,SAAS,kCAAkC;QAC3E,CAAA,EAEF,kBAAC,OAAD;QAAK,WAAU;kBAAf;SACE,kBAAC,KAAD;UAAG,WAAU;oBAAkD,EAAM;UAAU,CAAA;SAC/E,kBAAC,KAAD;UAAG,WAAU;oBAAb;WACG,IACC,kBAAC,QAAD;YAAM,WAAU;sBACb,EAAE,oCAAoC,QAAQ;YAC1C,CAAA,GAEP,EAAU,mBAAmB,SAAS;YAAE,SAAS;YAAS,OAAO;YAAS,KAAK;YAAW,CAAC;WAE5F,CAAC,EAAM,UACN,kBAAC,QAAD;YAAM,WAAU;sBACb,EAAU,mBAAmB,SAAS;aAAE,MAAM;aAAW,QAAQ;aAAW,CAAC;YACzE,CAAA;WAER,EAAM,UAAU,kBAAC,QAAD;YAAM,WAAU;sBAAQ,EAAE,qCAAqC,UAAU;YAAQ,CAAA;WAChG;;SACH,EAAM,YACL,kBAAC,QAAD;UAAM,WAAU;oBACb,EAAM;UACF,CAAA;SAEL;UACF;;MACF,EAvCC,EAAM,GAuCP;MAER;IACE,CAAA;GAEL,IAAa,EAAe,UAC3B,kBAAC,KAAD;IAAG,WAAU;cACV,EAAE,yCAAyC,0BAA0B,EACpE,OAAO,IAAa,EAAe,QACpC,CAAC;IACA,CAAA;GAEF;MAvFJ,kBAAC,OAAD;EAAK,WAAU;YACb,kBAAC,OAAD;GAAK,WAAU;aAAf,CACE,kBAAC,OAAD;IAAK,WAAU;IAAyC,MAAK;IAAO,QAAO;IAAe,SAAQ;cAChG,kBAAC,QAAD;KACE,eAAc;KACd,gBAAe;KACf,aAAa;KACb,GAAE;KACF,CAAA;IACE,CAAA,EACN,kBAAC,KAAD,EAAA,UAAI,EAAE,yCAAyC,uBAAuB,EAAK,CAAA,CACvE;;EACF,CAAA;EA6EV"}
@@ -4,3 +4,4 @@ import { CalendarWidgetProps } from './CalendarView';
4
4
  export * from './CalendarView';
5
5
  export declare const CalendarWidget: FC<CalendarWidgetProps>;
6
6
  export default CalendarWidget;
7
+ //# sourceMappingURL=CalendarWidget.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CalendarWidget.d.ts","sourceRoot":"","sources":["../../../../../src/bigconsole/components/widgets/calendar/CalendarWidget.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,KAAK,EAAE,EAAQ,MAAM,OAAO,CAAC;AAEtC,OAAO,EAAgB,KAAK,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAExE,cAAc,gBAAgB,CAAC;AAE/B,eAAO,MAAM,cAAc,EAAE,EAAE,CAAC,mBAAmB,CAGjD,CAAC;AAEH,eAAe,cAAc,CAAC"}
@@ -12,3 +12,5 @@ var i = t(function(t) {
12
12
  });
13
13
  //#endregion
14
14
  export { i as default };
15
+
16
+ //# sourceMappingURL=CalendarWidget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CalendarWidget.js","names":[],"sources":["../../../../../src/bigconsole/components/widgets/calendar/CalendarWidget.tsx"],"sourcesContent":["/**\n * CalendarWidget — in-app wrapper around the pure CalendarView (BOFF-7926).\n *\n * The view is i18n-provider-free so the public embed bundle can render it with a\n * static translator (the fe-libs I18nProvider touches localStorage, which throws\n * in third-party iframes when the visitor blocks third-party storage).\n */\n\nimport { type FC, memo } from 'react';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport { CalendarView, type CalendarWidgetProps } from './CalendarView';\n\nexport * from './CalendarView';\n\nexport const CalendarWidget: FC<CalendarWidgetProps> = memo(function CalendarWidget(props) {\n const { t } = useI18n();\n return <CalendarView {...props} t={t} />;\n});\n\nexport default CalendarWidget;\n"],"mappings":";;;;;AAcA,IAAa,IAA0C,EAAK,SAAwB,GAAO;CACzF,IAAM,EAAE,SAAM,GAAS;AACvB,QAAO,kBAAC,GAAD;EAAc,GAAI;EAAU;EAAK,CAAA;EACxC"}
@@ -1,2 +1,3 @@
1
1
  export { CalendarWidget, type CalendarWidgetProps, type CalendarData, type CalendarEvent } from './CalendarWidget';
2
2
  export { default } from './CalendarWidget';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/bigconsole/components/widgets/calendar/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,KAAK,YAAY,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACnH,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC"}
@@ -9,3 +9,4 @@ export interface ChartConfigProps {
9
9
  }
10
10
  export declare const ChartConfig: FC<ChartConfigProps>;
11
11
  export default ChartConfig;
12
+ //# sourceMappingURL=ChartConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChartConfig.d.ts","sourceRoot":"","sources":["../../../../../src/bigconsole/components/widgets/chart/ChartConfig.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,EAA8B,MAAM,OAAO,CAAC;AAE5D,OAAO,KAAK,EAAE,WAAW,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAMhE,MAAM,WAAW,gBAAgB;IAC/B,4BAA4B;IAC5B,MAAM,EAAE,UAAU,CAAC;IACnB,mCAAmC;IACnC,QAAQ,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;CACxC;AAMD,eAAO,MAAM,WAAW,EAAE,EAAE,CAAC,gBAAgB,CAuY3C,CAAC;AAEH,eAAe,WAAW,CAAC"}
@@ -257,3 +257,5 @@ var s = e(function({ config: e, onChange: s }) {
257
257
  });
258
258
  //#endregion
259
259
  export { s as default };
260
+
261
+ //# sourceMappingURL=ChartConfig.js.map