@burdenoff/microfe-bigconsole 2026.1006.1 → 2026.1007.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1442) hide show
  1. package/README.md +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/index.d.ts +1 -0
  55. package/dist/bigconsole/assistant/index.d.ts.map +1 -0
  56. package/dist/bigconsole/assistant/modes.d.ts +1 -0
  57. package/dist/bigconsole/assistant/modes.d.ts.map +1 -0
  58. package/dist/bigconsole/assistant/modes.js +2 -0
  59. package/dist/bigconsole/assistant/modes.js.map +1 -0
  60. package/dist/bigconsole/assistant/pageContext.d.ts +1 -0
  61. package/dist/bigconsole/assistant/pageContext.d.ts.map +1 -0
  62. package/dist/bigconsole/assistant/pageContext.js +2 -0
  63. package/dist/bigconsole/assistant/pageContext.js.map +1 -0
  64. package/dist/bigconsole/assistant/previewController.d.ts +1 -0
  65. package/dist/bigconsole/assistant/previewController.d.ts.map +1 -0
  66. package/dist/bigconsole/assistant/previewController.js +2 -0
  67. package/dist/bigconsole/assistant/previewController.js.map +1 -0
  68. package/dist/bigconsole/assistant/previewMutationResult.d.ts +1 -0
  69. package/dist/bigconsole/assistant/previewMutationResult.d.ts.map +1 -0
  70. package/dist/bigconsole/assistant/previewMutationResult.js +2 -0
  71. package/dist/bigconsole/assistant/previewMutationResult.js.map +1 -0
  72. package/dist/bigconsole/assistant/previewRunAction.d.ts +1 -0
  73. package/dist/bigconsole/assistant/previewRunAction.d.ts.map +1 -0
  74. package/dist/bigconsole/assistant/previewRunAction.js +2 -0
  75. package/dist/bigconsole/assistant/previewRunAction.js.map +1 -0
  76. package/dist/bigconsole/assistant/product.d.ts +1 -0
  77. package/dist/bigconsole/assistant/product.d.ts.map +1 -0
  78. package/dist/bigconsole/assistant/product.js +2 -0
  79. package/dist/bigconsole/assistant/product.js.map +1 -0
  80. package/dist/bigconsole/assistant/recordAdapters.d.ts +1 -0
  81. package/dist/bigconsole/assistant/recordAdapters.d.ts.map +1 -0
  82. package/dist/bigconsole/assistant/recordAdapters.js +29 -26
  83. package/dist/bigconsole/assistant/recordAdapters.js.map +1 -0
  84. package/dist/bigconsole/assistant/types.d.ts +1 -0
  85. package/dist/bigconsole/assistant/types.d.ts.map +1 -0
  86. package/dist/bigconsole/assistant/useAssistantRunWorkspace.d.ts +1 -0
  87. package/dist/bigconsole/assistant/useAssistantRunWorkspace.d.ts.map +1 -0
  88. package/dist/bigconsole/assistant/useAssistantRunWorkspace.js +2 -0
  89. package/dist/bigconsole/assistant/useAssistantRunWorkspace.js.map +1 -0
  90. package/dist/bigconsole/assistant/useWorkspaceWriteAccess.d.ts +1 -0
  91. package/dist/bigconsole/assistant/useWorkspaceWriteAccess.d.ts.map +1 -0
  92. package/dist/bigconsole/assistant/useWorkspaceWriteAccess.js +2 -0
  93. package/dist/bigconsole/assistant/useWorkspaceWriteAccess.js.map +1 -0
  94. package/dist/bigconsole/components/DrilldownDashboardRenderer.d.ts +1 -0
  95. package/dist/bigconsole/components/DrilldownDashboardRenderer.d.ts.map +1 -0
  96. package/dist/bigconsole/components/DrilldownDashboardRenderer.js +2 -0
  97. package/dist/bigconsole/components/DrilldownDashboardRenderer.js.map +1 -0
  98. package/dist/bigconsole/components/DrilldownModal.d.ts +1 -0
  99. package/dist/bigconsole/components/DrilldownModal.d.ts.map +1 -0
  100. package/dist/bigconsole/components/DrilldownModal.js +2 -0
  101. package/dist/bigconsole/components/DrilldownModal.js.map +1 -0
  102. package/dist/bigconsole/components/builder/BuilderCanvas.d.ts +1 -0
  103. package/dist/bigconsole/components/builder/BuilderCanvas.d.ts.map +1 -0
  104. package/dist/bigconsole/components/builder/BuilderCanvas.js +2 -0
  105. package/dist/bigconsole/components/builder/BuilderCanvas.js.map +1 -0
  106. package/dist/bigconsole/components/builder/BuilderTopbar.d.ts +1 -0
  107. package/dist/bigconsole/components/builder/BuilderTopbar.d.ts.map +1 -0
  108. package/dist/bigconsole/components/builder/BuilderTopbar.js +2 -0
  109. package/dist/bigconsole/components/builder/BuilderTopbar.js.map +1 -0
  110. package/dist/bigconsole/components/builder/DashboardEditorShell.d.ts +1 -0
  111. package/dist/bigconsole/components/builder/DashboardEditorShell.d.ts.map +1 -0
  112. package/dist/bigconsole/components/builder/DashboardEditorShell.js +2 -0
  113. package/dist/bigconsole/components/builder/DashboardEditorShell.js.map +1 -0
  114. package/dist/bigconsole/components/builder/WidgetInspector.d.ts +1 -0
  115. package/dist/bigconsole/components/builder/WidgetInspector.d.ts.map +1 -0
  116. package/dist/bigconsole/components/builder/WidgetInspector.js +2 -0
  117. package/dist/bigconsole/components/builder/WidgetInspector.js.map +1 -0
  118. package/dist/bigconsole/components/builder/index.d.ts +1 -0
  119. package/dist/bigconsole/components/builder/index.d.ts.map +1 -0
  120. package/dist/bigconsole/components/builder/inspector/AdvancedSection.d.ts +1 -0
  121. package/dist/bigconsole/components/builder/inspector/AdvancedSection.d.ts.map +1 -0
  122. package/dist/bigconsole/components/builder/inspector/AdvancedSection.js +2 -0
  123. package/dist/bigconsole/components/builder/inspector/AdvancedSection.js.map +1 -0
  124. package/dist/bigconsole/components/builder/inspector/AppearanceSection.d.ts +1 -0
  125. package/dist/bigconsole/components/builder/inspector/AppearanceSection.d.ts.map +1 -0
  126. package/dist/bigconsole/components/builder/inspector/AppearanceSection.js +2 -0
  127. package/dist/bigconsole/components/builder/inspector/AppearanceSection.js.map +1 -0
  128. package/dist/bigconsole/components/builder/inspector/DataBindingSection.d.ts +1 -0
  129. package/dist/bigconsole/components/builder/inspector/DataBindingSection.d.ts.map +1 -0
  130. package/dist/bigconsole/components/builder/inspector/DataBindingSection.js +2 -0
  131. package/dist/bigconsole/components/builder/inspector/DataBindingSection.js.map +1 -0
  132. package/dist/bigconsole/components/builder/inspector/GeneralSection.d.ts +1 -0
  133. package/dist/bigconsole/components/builder/inspector/GeneralSection.d.ts.map +1 -0
  134. package/dist/bigconsole/components/builder/inspector/GeneralSection.js +2 -0
  135. package/dist/bigconsole/components/builder/inspector/GeneralSection.js.map +1 -0
  136. package/dist/bigconsole/components/builder/inspector/LayoutSection.d.ts +1 -0
  137. package/dist/bigconsole/components/builder/inspector/LayoutSection.d.ts.map +1 -0
  138. package/dist/bigconsole/components/builder/inspector/LayoutSection.js +2 -0
  139. package/dist/bigconsole/components/builder/inspector/LayoutSection.js.map +1 -0
  140. package/dist/bigconsole/components/builder/inspector/index.d.ts +1 -0
  141. package/dist/bigconsole/components/builder/inspector/index.d.ts.map +1 -0
  142. package/dist/bigconsole/components/common/Section.d.ts +1 -0
  143. package/dist/bigconsole/components/common/Section.d.ts.map +1 -0
  144. package/dist/bigconsole/components/common/Section.js +2 -0
  145. package/dist/bigconsole/components/common/Section.js.map +1 -0
  146. package/dist/bigconsole/components/common/index.d.ts +1 -0
  147. package/dist/bigconsole/components/common/index.d.ts.map +1 -0
  148. package/dist/bigconsole/components/common/sectionStyles.d.ts +1 -0
  149. package/dist/bigconsole/components/common/sectionStyles.d.ts.map +1 -0
  150. package/dist/bigconsole/components/common/sectionStyles.js +2 -0
  151. package/dist/bigconsole/components/common/sectionStyles.js.map +1 -0
  152. package/dist/bigconsole/components/dashboard/CreateDashboardDialog.d.ts +1 -0
  153. package/dist/bigconsole/components/dashboard/CreateDashboardDialog.d.ts.map +1 -0
  154. package/dist/bigconsole/components/dashboard/CreateDashboardDialog.js +2 -0
  155. package/dist/bigconsole/components/dashboard/CreateDashboardDialog.js.map +1 -0
  156. package/dist/bigconsole/components/dashboard/DashboardCanvas.d.ts +1 -0
  157. package/dist/bigconsole/components/dashboard/DashboardCanvas.d.ts.map +1 -0
  158. package/dist/bigconsole/components/dashboard/DashboardCanvas.js +2 -0
  159. package/dist/bigconsole/components/dashboard/DashboardCanvas.js.map +1 -0
  160. package/dist/bigconsole/components/dashboard/DashboardGrid.d.ts +1 -0
  161. package/dist/bigconsole/components/dashboard/DashboardGrid.d.ts.map +1 -0
  162. package/dist/bigconsole/components/dashboard/DashboardGrid.js +2 -0
  163. package/dist/bigconsole/components/dashboard/DashboardGrid.js.map +1 -0
  164. package/dist/bigconsole/components/dashboard/DashboardStatusPill.d.ts +1 -0
  165. package/dist/bigconsole/components/dashboard/DashboardStatusPill.d.ts.map +1 -0
  166. package/dist/bigconsole/components/dashboard/DashboardStatusPill.js +2 -0
  167. package/dist/bigconsole/components/dashboard/DashboardStatusPill.js.map +1 -0
  168. package/dist/bigconsole/components/dashboard/DashboardToolbar.d.ts +1 -0
  169. package/dist/bigconsole/components/dashboard/DashboardToolbar.d.ts.map +1 -0
  170. package/dist/bigconsole/components/dashboard/DashboardToolbar.js +2 -0
  171. package/dist/bigconsole/components/dashboard/DashboardToolbar.js.map +1 -0
  172. package/dist/bigconsole/components/dashboard/DrilldownBreadcrumb.d.ts +1 -0
  173. package/dist/bigconsole/components/dashboard/DrilldownBreadcrumb.d.ts.map +1 -0
  174. package/dist/bigconsole/components/dashboard/DrilldownBreadcrumb.js +64 -63
  175. package/dist/bigconsole/components/dashboard/DrilldownBreadcrumb.js.map +1 -0
  176. package/dist/bigconsole/components/dashboard/ExportDashboardDialog.d.ts +1 -0
  177. package/dist/bigconsole/components/dashboard/ExportDashboardDialog.d.ts.map +1 -0
  178. package/dist/bigconsole/components/dashboard/ExportDashboardDialog.js +2 -0
  179. package/dist/bigconsole/components/dashboard/ExportDashboardDialog.js.map +1 -0
  180. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterChip.d.ts +1 -0
  181. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterChip.d.ts.map +1 -0
  182. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterChip.js +2 -0
  183. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterChip.js.map +1 -0
  184. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterEditor.d.ts +1 -0
  185. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterEditor.d.ts.map +1 -0
  186. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterEditor.js +2 -0
  187. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterEditor.js.map +1 -0
  188. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterPresetSelector.d.ts +1 -0
  189. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterPresetSelector.d.ts.map +1 -0
  190. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterPresetSelector.js +2 -0
  191. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterPresetSelector.js.map +1 -0
  192. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.d.ts +1 -0
  193. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.d.ts.map +1 -0
  194. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.js +2 -0
  195. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.js.map +1 -0
  196. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/index.d.ts +1 -0
  197. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/index.d.ts.map +1 -0
  198. package/dist/bigconsole/components/dashboard/ImportDashboardDialog.d.ts +1 -0
  199. package/dist/bigconsole/components/dashboard/ImportDashboardDialog.d.ts.map +1 -0
  200. package/dist/bigconsole/components/dashboard/ImportDashboardDialog.js +2 -0
  201. package/dist/bigconsole/components/dashboard/ImportDashboardDialog.js.map +1 -0
  202. package/dist/bigconsole/components/dashboard/LiveBoardBanner.d.ts +1 -0
  203. package/dist/bigconsole/components/dashboard/LiveBoardBanner.d.ts.map +1 -0
  204. package/dist/bigconsole/components/dashboard/LiveBoardBanner.js +2 -0
  205. package/dist/bigconsole/components/dashboard/LiveBoardBanner.js.map +1 -0
  206. package/dist/bigconsole/components/dashboard/LiveCanvasToggle.d.ts +1 -0
  207. package/dist/bigconsole/components/dashboard/LiveCanvasToggle.d.ts.map +1 -0
  208. package/dist/bigconsole/components/dashboard/LiveCanvasToggle.js +2 -0
  209. package/dist/bigconsole/components/dashboard/LiveCanvasToggle.js.map +1 -0
  210. package/dist/bigconsole/components/dashboard/PageTabsManager/PageTabsManager.d.ts +1 -0
  211. package/dist/bigconsole/components/dashboard/PageTabsManager/PageTabsManager.d.ts.map +1 -0
  212. package/dist/bigconsole/components/dashboard/PageTabsManager/PageTabsManager.js +2 -0
  213. package/dist/bigconsole/components/dashboard/PageTabsManager/PageTabsManager.js.map +1 -0
  214. package/dist/bigconsole/components/dashboard/PageTabsManager/index.d.ts +1 -0
  215. package/dist/bigconsole/components/dashboard/PageTabsManager/index.d.ts.map +1 -0
  216. package/dist/bigconsole/components/dashboard/PublishToStoreDialog.d.ts +1 -0
  217. package/dist/bigconsole/components/dashboard/PublishToStoreDialog.d.ts.map +1 -0
  218. package/dist/bigconsole/components/dashboard/PublishToStoreDialog.js +2 -0
  219. package/dist/bigconsole/components/dashboard/PublishToStoreDialog.js.map +1 -0
  220. package/dist/bigconsole/components/dashboard/SavedViewsDropdown/SavedViewsDropdown.d.ts +1 -0
  221. package/dist/bigconsole/components/dashboard/SavedViewsDropdown/SavedViewsDropdown.d.ts.map +1 -0
  222. package/dist/bigconsole/components/dashboard/SavedViewsDropdown/SavedViewsDropdown.js +2 -0
  223. package/dist/bigconsole/components/dashboard/SavedViewsDropdown/SavedViewsDropdown.js.map +1 -0
  224. package/dist/bigconsole/components/dashboard/SavedViewsDropdown/index.d.ts +1 -0
  225. package/dist/bigconsole/components/dashboard/SavedViewsDropdown/index.d.ts.map +1 -0
  226. package/dist/bigconsole/components/dashboard/ShareDialog/EmbedTab.d.ts +1 -0
  227. package/dist/bigconsole/components/dashboard/ShareDialog/EmbedTab.d.ts.map +1 -0
  228. package/dist/bigconsole/components/dashboard/ShareDialog/EmbedTab.js +108 -97
  229. package/dist/bigconsole/components/dashboard/ShareDialog/EmbedTab.js.map +1 -0
  230. package/dist/bigconsole/components/dashboard/ShareDialog/ShareDialog.d.ts +1 -0
  231. package/dist/bigconsole/components/dashboard/ShareDialog/ShareDialog.d.ts.map +1 -0
  232. package/dist/bigconsole/components/dashboard/ShareDialog/ShareDialog.js +2 -0
  233. package/dist/bigconsole/components/dashboard/ShareDialog/ShareDialog.js.map +1 -0
  234. package/dist/bigconsole/components/dashboard/ShareDialog/index.d.ts +1 -0
  235. package/dist/bigconsole/components/dashboard/ShareDialog/index.d.ts.map +1 -0
  236. package/dist/bigconsole/components/dashboard/StoreTemplatePicker.d.ts +1 -0
  237. package/dist/bigconsole/components/dashboard/StoreTemplatePicker.d.ts.map +1 -0
  238. package/dist/bigconsole/components/dashboard/StoreTemplatePicker.js +2 -0
  239. package/dist/bigconsole/components/dashboard/StoreTemplatePicker.js.map +1 -0
  240. package/dist/bigconsole/components/dashboard/TemplateInstallOptions.d.ts +1 -0
  241. package/dist/bigconsole/components/dashboard/TemplateInstallOptions.d.ts.map +1 -0
  242. package/dist/bigconsole/components/dashboard/TemplateInstallOptions.js +2 -0
  243. package/dist/bigconsole/components/dashboard/TemplateInstallOptions.js.map +1 -0
  244. package/dist/bigconsole/components/dashboard/TemplateLayoutPreview.d.ts +1 -0
  245. package/dist/bigconsole/components/dashboard/TemplateLayoutPreview.d.ts.map +1 -0
  246. package/dist/bigconsole/components/dashboard/TemplateLayoutPreview.js +2 -0
  247. package/dist/bigconsole/components/dashboard/TemplateLayoutPreview.js.map +1 -0
  248. package/dist/bigconsole/components/dashboard/TemplatePicker/TemplatePicker.d.ts +1 -0
  249. package/dist/bigconsole/components/dashboard/TemplatePicker/TemplatePicker.d.ts.map +1 -0
  250. package/dist/bigconsole/components/dashboard/TemplatePicker/index.d.ts +1 -0
  251. package/dist/bigconsole/components/dashboard/TemplatePicker/index.d.ts.map +1 -0
  252. package/dist/bigconsole/components/dashboard/TemplateSetupBanner.d.ts +1 -0
  253. package/dist/bigconsole/components/dashboard/TemplateSetupBanner.d.ts.map +1 -0
  254. package/dist/bigconsole/components/dashboard/TemplateSetupBanner.js +2 -0
  255. package/dist/bigconsole/components/dashboard/TemplateSetupBanner.js.map +1 -0
  256. package/dist/bigconsole/components/dashboard/WidgetPalette.d.ts +1 -0
  257. package/dist/bigconsole/components/dashboard/WidgetPalette.d.ts.map +1 -0
  258. package/dist/bigconsole/components/dashboard/WidgetPalette.js +165 -165
  259. package/dist/bigconsole/components/dashboard/WidgetPalette.js.map +1 -0
  260. package/dist/bigconsole/components/dashboard/index.d.ts +1 -0
  261. package/dist/bigconsole/components/dashboard/index.d.ts.map +1 -0
  262. package/dist/bigconsole/components/datasink/AlertExecutionHistory.d.ts +1 -0
  263. package/dist/bigconsole/components/datasink/AlertExecutionHistory.d.ts.map +1 -0
  264. package/dist/bigconsole/components/datasink/AlertExecutionHistory.js +2 -0
  265. package/dist/bigconsole/components/datasink/AlertExecutionHistory.js.map +1 -0
  266. package/dist/bigconsole/components/datasink/AlertRuleEditor.d.ts +1 -0
  267. package/dist/bigconsole/components/datasink/AlertRuleEditor.d.ts.map +1 -0
  268. package/dist/bigconsole/components/datasink/AlertRuleEditor.js +2 -0
  269. package/dist/bigconsole/components/datasink/AlertRuleEditor.js.map +1 -0
  270. package/dist/bigconsole/components/datasink/CacheTTLSelector.d.ts +1 -0
  271. package/dist/bigconsole/components/datasink/CacheTTLSelector.d.ts.map +1 -0
  272. package/dist/bigconsole/components/datasink/CacheTTLSelector.js +2 -0
  273. package/dist/bigconsole/components/datasink/CacheTTLSelector.js.map +1 -0
  274. package/dist/bigconsole/components/datasink/ConfigurationForm.d.ts +1 -0
  275. package/dist/bigconsole/components/datasink/ConfigurationForm.d.ts.map +1 -0
  276. package/dist/bigconsole/components/datasink/DataPreviewPanel.d.ts +1 -0
  277. package/dist/bigconsole/components/datasink/DataPreviewPanel.d.ts.map +1 -0
  278. package/dist/bigconsole/components/datasink/DataSinkCard.d.ts +1 -0
  279. package/dist/bigconsole/components/datasink/DataSinkCard.d.ts.map +1 -0
  280. package/dist/bigconsole/components/datasink/DataSinkCard.js +2 -0
  281. package/dist/bigconsole/components/datasink/DataSinkCard.js.map +1 -0
  282. package/dist/bigconsole/components/datasink/DataSinkDataViewer.d.ts +1 -0
  283. package/dist/bigconsole/components/datasink/DataSinkDataViewer.d.ts.map +1 -0
  284. package/dist/bigconsole/components/datasink/DataSinkDataViewer.js +2 -0
  285. package/dist/bigconsole/components/datasink/DataSinkDataViewer.js.map +1 -0
  286. package/dist/bigconsole/components/datasink/DataSinkDeleteDialog.d.ts +1 -0
  287. package/dist/bigconsole/components/datasink/DataSinkDeleteDialog.d.ts.map +1 -0
  288. package/dist/bigconsole/components/datasink/DataSinkDeleteDialog.js +2 -0
  289. package/dist/bigconsole/components/datasink/DataSinkDeleteDialog.js.map +1 -0
  290. package/dist/bigconsole/components/datasink/DataSinkRefreshConfig.d.ts +1 -0
  291. package/dist/bigconsole/components/datasink/DataSinkRefreshConfig.d.ts.map +1 -0
  292. package/dist/bigconsole/components/datasink/DataSinkRefreshDialog.d.ts +1 -0
  293. package/dist/bigconsole/components/datasink/DataSinkRefreshDialog.d.ts.map +1 -0
  294. package/dist/bigconsole/components/datasink/DataSinkRefreshDialog.js +2 -0
  295. package/dist/bigconsole/components/datasink/DataSinkRefreshDialog.js.map +1 -0
  296. package/dist/bigconsole/components/datasink/DataSinkStatusBadge.d.ts +1 -0
  297. package/dist/bigconsole/components/datasink/DataSinkStatusBadge.d.ts.map +1 -0
  298. package/dist/bigconsole/components/datasink/DataSinkStatusBadge.js +2 -0
  299. package/dist/bigconsole/components/datasink/DataSinkStatusBadge.js.map +1 -0
  300. package/dist/bigconsole/components/datasink/DataSinkTableViewer.d.ts +1 -0
  301. package/dist/bigconsole/components/datasink/DataSinkTableViewer.d.ts.map +1 -0
  302. package/dist/bigconsole/components/datasink/DataSinkTableViewer.js +2 -0
  303. package/dist/bigconsole/components/datasink/DataSinkTableViewer.js.map +1 -0
  304. package/dist/bigconsole/components/datasink/ExportDataSinkDialog.d.ts +1 -0
  305. package/dist/bigconsole/components/datasink/ExportDataSinkDialog.d.ts.map +1 -0
  306. package/dist/bigconsole/components/datasink/ExportDataSinkDialog.js +2 -0
  307. package/dist/bigconsole/components/datasink/ExportDataSinkDialog.js.map +1 -0
  308. package/dist/bigconsole/components/datasink/FluidGridsPanel.d.ts +1 -0
  309. package/dist/bigconsole/components/datasink/FluidGridsPanel.d.ts.map +1 -0
  310. package/dist/bigconsole/components/datasink/ImportDataGuideDialog.d.ts +1 -0
  311. package/dist/bigconsole/components/datasink/ImportDataGuideDialog.d.ts.map +1 -0
  312. package/dist/bigconsole/components/datasink/ImportDataGuideDialog.js +2 -0
  313. package/dist/bigconsole/components/datasink/ImportDataGuideDialog.js.map +1 -0
  314. package/dist/bigconsole/components/datasink/ImportDataSinkDialog.d.ts +1 -0
  315. package/dist/bigconsole/components/datasink/ImportDataSinkDialog.d.ts.map +1 -0
  316. package/dist/bigconsole/components/datasink/ImportDataSinkDialog.js +2 -0
  317. package/dist/bigconsole/components/datasink/ImportDataSinkDialog.js.map +1 -0
  318. package/dist/bigconsole/components/datasink/LinkedParsersPanel.d.ts +1 -0
  319. package/dist/bigconsole/components/datasink/LinkedParsersPanel.d.ts.map +1 -0
  320. package/dist/bigconsole/components/datasink/LinkedParsersPanel.js +2 -0
  321. package/dist/bigconsole/components/datasink/LinkedParsersPanel.js.map +1 -0
  322. package/dist/bigconsole/components/datasink/LinkedWorkflowsPanel.d.ts +1 -0
  323. package/dist/bigconsole/components/datasink/LinkedWorkflowsPanel.d.ts.map +1 -0
  324. package/dist/bigconsole/components/datasink/LinkedWorkflowsPanel.js +2 -0
  325. package/dist/bigconsole/components/datasink/LinkedWorkflowsPanel.js.map +1 -0
  326. package/dist/bigconsole/components/datasink/RefreshTypeSelector.d.ts +1 -0
  327. package/dist/bigconsole/components/datasink/RefreshTypeSelector.d.ts.map +1 -0
  328. package/dist/bigconsole/components/datasink/RefreshTypeSelector.js +2 -0
  329. package/dist/bigconsole/components/datasink/RefreshTypeSelector.js.map +1 -0
  330. package/dist/bigconsole/components/datasink/SetupStateBadge.d.ts +1 -0
  331. package/dist/bigconsole/components/datasink/SetupStateBadge.d.ts.map +1 -0
  332. package/dist/bigconsole/components/datasink/SetupStateBadge.js +2 -0
  333. package/dist/bigconsole/components/datasink/SetupStateBadge.js.map +1 -0
  334. package/dist/bigconsole/components/datasink/WorkflowStatusPanel.d.ts +1 -0
  335. package/dist/bigconsole/components/datasink/WorkflowStatusPanel.d.ts.map +1 -0
  336. package/dist/bigconsole/components/datasink/WorkflowStatusPanel.js +2 -0
  337. package/dist/bigconsole/components/datasink/WorkflowStatusPanel.js.map +1 -0
  338. package/dist/bigconsole/components/datasink/index.d.ts +1 -0
  339. package/dist/bigconsole/components/datasink/index.d.ts.map +1 -0
  340. package/dist/bigconsole/components/embed/EmbedErrorBoundary.d.ts +1 -0
  341. package/dist/bigconsole/components/embed/EmbedErrorBoundary.d.ts.map +1 -0
  342. package/dist/bigconsole/components/embed/EmbedErrorBoundary.js +2 -0
  343. package/dist/bigconsole/components/embed/EmbedErrorBoundary.js.map +1 -0
  344. package/dist/bigconsole/components/embed/EmbedWidgetRenderer.d.ts +1 -0
  345. package/dist/bigconsole/components/embed/EmbedWidgetRenderer.d.ts.map +1 -0
  346. package/dist/bigconsole/components/embed/EmbedWidgetRenderer.js +2 -0
  347. package/dist/bigconsole/components/embed/EmbedWidgetRenderer.js.map +1 -0
  348. package/dist/bigconsole/components/embed/ReadOnlyDashboardRenderer.d.ts +1 -0
  349. package/dist/bigconsole/components/embed/ReadOnlyDashboardRenderer.d.ts.map +1 -0
  350. package/dist/bigconsole/components/embed/ReadOnlyDashboardRenderer.js +2 -0
  351. package/dist/bigconsole/components/embed/ReadOnlyDashboardRenderer.js.map +1 -0
  352. package/dist/bigconsole/components/embed/drilldown.d.ts +1 -0
  353. package/dist/bigconsole/components/embed/drilldown.d.ts.map +1 -0
  354. package/dist/bigconsole/components/embed/drilldown.js +2 -0
  355. package/dist/bigconsole/components/embed/drilldown.js.map +1 -0
  356. package/dist/bigconsole/components/embed/index.d.ts +1 -0
  357. package/dist/bigconsole/components/embed/index.d.ts.map +1 -0
  358. package/dist/bigconsole/components/embed/renderer-manifest.d.ts +1 -0
  359. package/dist/bigconsole/components/embed/renderer-manifest.d.ts.map +1 -0
  360. package/dist/bigconsole/components/embed/renderer-manifest.js +2 -0
  361. package/dist/bigconsole/components/embed/renderer-manifest.js.map +1 -0
  362. package/dist/bigconsole/components/embed/types.d.ts +1 -0
  363. package/dist/bigconsole/components/embed/types.d.ts.map +1 -0
  364. package/dist/bigconsole/components/embed/types.js +2 -0
  365. package/dist/bigconsole/components/embed/types.js.map +1 -0
  366. package/dist/bigconsole/components/embed/validate.d.ts +1 -0
  367. package/dist/bigconsole/components/embed/validate.d.ts.map +1 -0
  368. package/dist/bigconsole/components/embed/validate.js +2 -0
  369. package/dist/bigconsole/components/embed/validate.js.map +1 -0
  370. package/dist/bigconsole/components/embed/widgetShim.d.ts +1 -0
  371. package/dist/bigconsole/components/embed/widgetShim.d.ts.map +1 -0
  372. package/dist/bigconsole/components/embed/widgetShim.js +2 -0
  373. package/dist/bigconsole/components/embed/widgetShim.js.map +1 -0
  374. package/dist/bigconsole/components/embed/widgets/CalendarEmbed.d.ts +1 -0
  375. package/dist/bigconsole/components/embed/widgets/CalendarEmbed.d.ts.map +1 -0
  376. package/dist/bigconsole/components/embed/widgets/CalendarEmbed.js +2 -0
  377. package/dist/bigconsole/components/embed/widgets/CalendarEmbed.js.map +1 -0
  378. package/dist/bigconsole/components/embed/widgets/ChartEmbed.d.ts +1 -0
  379. package/dist/bigconsole/components/embed/widgets/ChartEmbed.d.ts.map +1 -0
  380. package/dist/bigconsole/components/embed/widgets/ChartEmbed.js +2 -0
  381. package/dist/bigconsole/components/embed/widgets/ChartEmbed.js.map +1 -0
  382. package/dist/bigconsole/components/embed/widgets/EmbedFrame.d.ts +1 -0
  383. package/dist/bigconsole/components/embed/widgets/EmbedFrame.d.ts.map +1 -0
  384. package/dist/bigconsole/components/embed/widgets/EmbedFrame.js +2 -0
  385. package/dist/bigconsole/components/embed/widgets/EmbedFrame.js.map +1 -0
  386. package/dist/bigconsole/components/embed/widgets/FormEmbed.d.ts +1 -0
  387. package/dist/bigconsole/components/embed/widgets/FormEmbed.d.ts.map +1 -0
  388. package/dist/bigconsole/components/embed/widgets/FormEmbed.js +2 -0
  389. package/dist/bigconsole/components/embed/widgets/FormEmbed.js.map +1 -0
  390. package/dist/bigconsole/components/embed/widgets/GaugeEmbed.d.ts +1 -0
  391. package/dist/bigconsole/components/embed/widgets/GaugeEmbed.d.ts.map +1 -0
  392. package/dist/bigconsole/components/embed/widgets/GaugeEmbed.js +2 -0
  393. package/dist/bigconsole/components/embed/widgets/GaugeEmbed.js.map +1 -0
  394. package/dist/bigconsole/components/embed/widgets/HeatmapEmbed.d.ts +1 -0
  395. package/dist/bigconsole/components/embed/widgets/HeatmapEmbed.d.ts.map +1 -0
  396. package/dist/bigconsole/components/embed/widgets/HeatmapEmbed.js +2 -0
  397. package/dist/bigconsole/components/embed/widgets/HeatmapEmbed.js.map +1 -0
  398. package/dist/bigconsole/components/embed/widgets/KanbanEmbed.d.ts +1 -0
  399. package/dist/bigconsole/components/embed/widgets/KanbanEmbed.d.ts.map +1 -0
  400. package/dist/bigconsole/components/embed/widgets/KanbanEmbed.js +2 -0
  401. package/dist/bigconsole/components/embed/widgets/KanbanEmbed.js.map +1 -0
  402. package/dist/bigconsole/components/embed/widgets/KpiComparisonEmbed.d.ts +1 -0
  403. package/dist/bigconsole/components/embed/widgets/KpiComparisonEmbed.d.ts.map +1 -0
  404. package/dist/bigconsole/components/embed/widgets/KpiComparisonEmbed.js +2 -0
  405. package/dist/bigconsole/components/embed/widgets/KpiComparisonEmbed.js.map +1 -0
  406. package/dist/bigconsole/components/embed/widgets/ListEmbed.d.ts +1 -0
  407. package/dist/bigconsole/components/embed/widgets/ListEmbed.d.ts.map +1 -0
  408. package/dist/bigconsole/components/embed/widgets/ListEmbed.js +2 -0
  409. package/dist/bigconsole/components/embed/widgets/ListEmbed.js.map +1 -0
  410. package/dist/bigconsole/components/embed/widgets/MetricCardEmbed.d.ts +1 -0
  411. package/dist/bigconsole/components/embed/widgets/MetricCardEmbed.d.ts.map +1 -0
  412. package/dist/bigconsole/components/embed/widgets/MetricCardEmbed.js +2 -0
  413. package/dist/bigconsole/components/embed/widgets/MetricCardEmbed.js.map +1 -0
  414. package/dist/bigconsole/components/embed/widgets/PivotEmbed.d.ts +1 -0
  415. package/dist/bigconsole/components/embed/widgets/PivotEmbed.d.ts.map +1 -0
  416. package/dist/bigconsole/components/embed/widgets/PivotEmbed.js +2 -0
  417. package/dist/bigconsole/components/embed/widgets/PivotEmbed.js.map +1 -0
  418. package/dist/bigconsole/components/embed/widgets/ProgressEmbed.d.ts +1 -0
  419. package/dist/bigconsole/components/embed/widgets/ProgressEmbed.d.ts.map +1 -0
  420. package/dist/bigconsole/components/embed/widgets/ProgressEmbed.js +2 -0
  421. package/dist/bigconsole/components/embed/widgets/ProgressEmbed.js.map +1 -0
  422. package/dist/bigconsole/components/embed/widgets/RetentionEmbed.d.ts +1 -0
  423. package/dist/bigconsole/components/embed/widgets/RetentionEmbed.d.ts.map +1 -0
  424. package/dist/bigconsole/components/embed/widgets/RetentionEmbed.js +2 -0
  425. package/dist/bigconsole/components/embed/widgets/RetentionEmbed.js.map +1 -0
  426. package/dist/bigconsole/components/embed/widgets/TableEmbed.d.ts +1 -0
  427. package/dist/bigconsole/components/embed/widgets/TableEmbed.d.ts.map +1 -0
  428. package/dist/bigconsole/components/embed/widgets/TableEmbed.js +2 -0
  429. package/dist/bigconsole/components/embed/widgets/TableEmbed.js.map +1 -0
  430. package/dist/bigconsole/components/embed/widgets/TextEmbed.d.ts +1 -0
  431. package/dist/bigconsole/components/embed/widgets/TextEmbed.d.ts.map +1 -0
  432. package/dist/bigconsole/components/embed/widgets/TextEmbed.js +2 -0
  433. package/dist/bigconsole/components/embed/widgets/TextEmbed.js.map +1 -0
  434. package/dist/bigconsole/components/embed/widgets/TimelineEmbed.d.ts +1 -0
  435. package/dist/bigconsole/components/embed/widgets/TimelineEmbed.d.ts.map +1 -0
  436. package/dist/bigconsole/components/embed/widgets/TimelineEmbed.js +2 -0
  437. package/dist/bigconsole/components/embed/widgets/TimelineEmbed.js.map +1 -0
  438. package/dist/bigconsole/components/embed/widgets/shared.d.ts +1 -0
  439. package/dist/bigconsole/components/embed/widgets/shared.d.ts.map +1 -0
  440. package/dist/bigconsole/components/embed/widgets/shared.js +2 -0
  441. package/dist/bigconsole/components/embed/widgets/shared.js.map +1 -0
  442. package/dist/bigconsole/components/overview/DashboardGuide.d.ts +1 -0
  443. package/dist/bigconsole/components/overview/DashboardGuide.d.ts.map +1 -0
  444. package/dist/bigconsole/components/overview/DashboardGuide.js +2 -0
  445. package/dist/bigconsole/components/overview/DashboardGuide.js.map +1 -0
  446. package/dist/bigconsole/components/overview/DataHealthCard.d.ts +1 -0
  447. package/dist/bigconsole/components/overview/DataHealthCard.d.ts.map +1 -0
  448. package/dist/bigconsole/components/overview/DataHealthCard.js +2 -0
  449. package/dist/bigconsole/components/overview/DataHealthCard.js.map +1 -0
  450. package/dist/bigconsole/components/overview/OverviewQuickActions.d.ts +1 -0
  451. package/dist/bigconsole/components/overview/OverviewQuickActions.d.ts.map +1 -0
  452. package/dist/bigconsole/components/overview/OverviewQuickActions.js +2 -0
  453. package/dist/bigconsole/components/overview/OverviewQuickActions.js.map +1 -0
  454. package/dist/bigconsole/components/overview/OverviewStatCard.d.ts +1 -0
  455. package/dist/bigconsole/components/overview/OverviewStatCard.d.ts.map +1 -0
  456. package/dist/bigconsole/components/overview/OverviewStatCard.js +2 -0
  457. package/dist/bigconsole/components/overview/OverviewStatCard.js.map +1 -0
  458. package/dist/bigconsole/components/overview/RecentDashboardsPanel.d.ts +1 -0
  459. package/dist/bigconsole/components/overview/RecentDashboardsPanel.d.ts.map +1 -0
  460. package/dist/bigconsole/components/overview/RecentDashboardsPanel.js +2 -0
  461. package/dist/bigconsole/components/overview/RecentDashboardsPanel.js.map +1 -0
  462. package/dist/bigconsole/components/overview/dashboardGuideSteps.d.ts +1 -0
  463. package/dist/bigconsole/components/overview/dashboardGuideSteps.d.ts.map +1 -0
  464. package/dist/bigconsole/components/overview/dashboardGuideSteps.js +2 -0
  465. package/dist/bigconsole/components/overview/dashboardGuideSteps.js.map +1 -0
  466. package/dist/bigconsole/components/overview/index.d.ts +1 -0
  467. package/dist/bigconsole/components/overview/index.d.ts.map +1 -0
  468. package/dist/bigconsole/components/overview/overviewModel.d.ts +1 -0
  469. package/dist/bigconsole/components/overview/overviewModel.d.ts.map +1 -0
  470. package/dist/bigconsole/components/overview/overviewModel.js +2 -0
  471. package/dist/bigconsole/components/overview/overviewModel.js.map +1 -0
  472. package/dist/bigconsole/components/overview/useOverviewData.d.ts +1 -0
  473. package/dist/bigconsole/components/overview/useOverviewData.d.ts.map +1 -0
  474. package/dist/bigconsole/components/overview/useOverviewData.js +2 -0
  475. package/dist/bigconsole/components/overview/useOverviewData.js.map +1 -0
  476. package/dist/bigconsole/components/parser/DataSinkSelector.d.ts +1 -0
  477. package/dist/bigconsole/components/parser/DataSinkSelector.d.ts.map +1 -0
  478. package/dist/bigconsole/components/parser/DataSinkSelector.js +2 -0
  479. package/dist/bigconsole/components/parser/DataSinkSelector.js.map +1 -0
  480. package/dist/bigconsole/components/parser/ExportParserDialog.d.ts +1 -0
  481. package/dist/bigconsole/components/parser/ExportParserDialog.d.ts.map +1 -0
  482. package/dist/bigconsole/components/parser/ExportParserDialog.js +2 -0
  483. package/dist/bigconsole/components/parser/ExportParserDialog.js.map +1 -0
  484. package/dist/bigconsole/components/parser/ExpressionEditor.d.ts +1 -0
  485. package/dist/bigconsole/components/parser/ExpressionEditor.d.ts.map +1 -0
  486. package/dist/bigconsole/components/parser/ExpressionEditor.js +2 -0
  487. package/dist/bigconsole/components/parser/ExpressionEditor.js.map +1 -0
  488. package/dist/bigconsole/components/parser/ImportParserDialog.d.ts +1 -0
  489. package/dist/bigconsole/components/parser/ImportParserDialog.d.ts.map +1 -0
  490. package/dist/bigconsole/components/parser/ImportParserDialog.js +2 -0
  491. package/dist/bigconsole/components/parser/ImportParserDialog.js.map +1 -0
  492. package/dist/bigconsole/components/parser/ParserBuilder.d.ts +1 -0
  493. package/dist/bigconsole/components/parser/ParserBuilder.d.ts.map +1 -0
  494. package/dist/bigconsole/components/parser/ParserCard.d.ts +1 -0
  495. package/dist/bigconsole/components/parser/ParserCard.d.ts.map +1 -0
  496. package/dist/bigconsole/components/parser/ParserCard.js +2 -0
  497. package/dist/bigconsole/components/parser/ParserCard.js.map +1 -0
  498. package/dist/bigconsole/components/parser/ParserFormDialog.d.ts +1 -0
  499. package/dist/bigconsole/components/parser/ParserFormDialog.d.ts.map +1 -0
  500. package/dist/bigconsole/components/parser/ParserSelector.d.ts +1 -0
  501. package/dist/bigconsole/components/parser/ParserSelector.d.ts.map +1 -0
  502. package/dist/bigconsole/components/parser/ParserSelector.js +2 -0
  503. package/dist/bigconsole/components/parser/ParserSelector.js.map +1 -0
  504. package/dist/bigconsole/components/parser/ParserStatusBadge.d.ts +1 -0
  505. package/dist/bigconsole/components/parser/ParserStatusBadge.d.ts.map +1 -0
  506. package/dist/bigconsole/components/parser/ParserStatusBadge.js +2 -0
  507. package/dist/bigconsole/components/parser/ParserStatusBadge.js.map +1 -0
  508. package/dist/bigconsole/components/parser/ParserTypeBadge.d.ts +1 -0
  509. package/dist/bigconsole/components/parser/ParserTypeBadge.d.ts.map +1 -0
  510. package/dist/bigconsole/components/parser/ParserTypeBadge.js +2 -0
  511. package/dist/bigconsole/components/parser/ParserTypeBadge.js.map +1 -0
  512. package/dist/bigconsole/components/parser/TestPanel.d.ts +1 -0
  513. package/dist/bigconsole/components/parser/TestPanel.d.ts.map +1 -0
  514. package/dist/bigconsole/components/parser/index.d.ts +1 -0
  515. package/dist/bigconsole/components/parser/index.d.ts.map +1 -0
  516. package/dist/bigconsole/components/parser/parserFieldStyles.d.ts +1 -0
  517. package/dist/bigconsole/components/parser/parserFieldStyles.d.ts.map +1 -0
  518. package/dist/bigconsole/components/pipeline/PipelineCard.d.ts +1 -0
  519. package/dist/bigconsole/components/pipeline/PipelineCard.d.ts.map +1 -0
  520. package/dist/bigconsole/components/pipeline/PipelineCard.js +2 -0
  521. package/dist/bigconsole/components/pipeline/PipelineCard.js.map +1 -0
  522. package/dist/bigconsole/components/pipeline/PipelineDeleteDialog.d.ts +1 -0
  523. package/dist/bigconsole/components/pipeline/PipelineDeleteDialog.d.ts.map +1 -0
  524. package/dist/bigconsole/components/pipeline/PipelineDeleteDialog.js +2 -0
  525. package/dist/bigconsole/components/pipeline/PipelineDeleteDialog.js.map +1 -0
  526. package/dist/bigconsole/components/pipeline/PipelineScopePicker.d.ts +1 -0
  527. package/dist/bigconsole/components/pipeline/PipelineScopePicker.d.ts.map +1 -0
  528. package/dist/bigconsole/components/pipeline/PipelineScopePicker.js +2 -0
  529. package/dist/bigconsole/components/pipeline/PipelineScopePicker.js.map +1 -0
  530. package/dist/bigconsole/components/pipeline/PipelineStatusBadge.d.ts +1 -0
  531. package/dist/bigconsole/components/pipeline/PipelineStatusBadge.d.ts.map +1 -0
  532. package/dist/bigconsole/components/pipeline/PipelineStatusBadge.js +2 -0
  533. package/dist/bigconsole/components/pipeline/PipelineStatusBadge.js.map +1 -0
  534. package/dist/bigconsole/components/pipeline/index.d.ts +1 -0
  535. package/dist/bigconsole/components/pipeline/index.d.ts.map +1 -0
  536. package/dist/bigconsole/components/preview/AiPreviewContent.d.ts +1 -0
  537. package/dist/bigconsole/components/preview/AiPreviewContent.d.ts.map +1 -0
  538. package/dist/bigconsole/components/preview/AiPreviewContent.js +2 -0
  539. package/dist/bigconsole/components/preview/AiPreviewContent.js.map +1 -0
  540. package/dist/bigconsole/components/preview/AiPreviewMiniPanel.d.ts +1 -0
  541. package/dist/bigconsole/components/preview/AiPreviewMiniPanel.d.ts.map +1 -0
  542. package/dist/bigconsole/components/preview/AiPreviewMiniPanel.js +2 -0
  543. package/dist/bigconsole/components/preview/AiPreviewMiniPanel.js.map +1 -0
  544. package/dist/bigconsole/components/preview/AiPreviewPanel.d.ts +1 -0
  545. package/dist/bigconsole/components/preview/AiPreviewPanel.d.ts.map +1 -0
  546. package/dist/bigconsole/components/preview/AiPreviewPanel.js +2 -0
  547. package/dist/bigconsole/components/preview/AiPreviewPanel.js.map +1 -0
  548. package/dist/bigconsole/components/preview/parserPreview.d.ts +1 -0
  549. package/dist/bigconsole/components/preview/parserPreview.d.ts.map +1 -0
  550. package/dist/bigconsole/components/preview/parserPreview.js +2 -0
  551. package/dist/bigconsole/components/preview/parserPreview.js.map +1 -0
  552. package/dist/bigconsole/components/preview/previewShared.d.ts +1 -0
  553. package/dist/bigconsole/components/preview/previewShared.d.ts.map +1 -0
  554. package/dist/bigconsole/components/preview/previewShared.js +2 -0
  555. package/dist/bigconsole/components/preview/previewShared.js.map +1 -0
  556. package/dist/bigconsole/components/widgets/ActionConfigDialog.d.ts +1 -0
  557. package/dist/bigconsole/components/widgets/ActionConfigDialog.d.ts.map +1 -0
  558. package/dist/bigconsole/components/widgets/ActionConfigDialog.js +2 -0
  559. package/dist/bigconsole/components/widgets/ActionConfigDialog.js.map +1 -0
  560. package/dist/bigconsole/components/widgets/DrilldownConfigPanel.d.ts +1 -0
  561. package/dist/bigconsole/components/widgets/DrilldownConfigPanel.d.ts.map +1 -0
  562. package/dist/bigconsole/components/widgets/DrilldownConfigPanel.js +2 -0
  563. package/dist/bigconsole/components/widgets/DrilldownConfigPanel.js.map +1 -0
  564. package/dist/bigconsole/components/widgets/PropertiesPanel.d.ts +1 -0
  565. package/dist/bigconsole/components/widgets/PropertiesPanel.d.ts.map +1 -0
  566. package/dist/bigconsole/components/widgets/PropertiesPanel.js +2 -0
  567. package/dist/bigconsole/components/widgets/PropertiesPanel.js.map +1 -0
  568. package/dist/bigconsole/components/widgets/WidgetErrorBoundary.d.ts +1 -0
  569. package/dist/bigconsole/components/widgets/WidgetErrorBoundary.d.ts.map +1 -0
  570. package/dist/bigconsole/components/widgets/WidgetErrorBoundary.js +2 -0
  571. package/dist/bigconsole/components/widgets/WidgetErrorBoundary.js.map +1 -0
  572. package/dist/bigconsole/components/widgets/WidgetHeader.d.ts +1 -0
  573. package/dist/bigconsole/components/widgets/WidgetHeader.d.ts.map +1 -0
  574. package/dist/bigconsole/components/widgets/WidgetHeader.js +2 -0
  575. package/dist/bigconsole/components/widgets/WidgetHeader.js.map +1 -0
  576. package/dist/bigconsole/components/widgets/WidgetMenu.d.ts +1 -0
  577. package/dist/bigconsole/components/widgets/WidgetMenu.d.ts.map +1 -0
  578. package/dist/bigconsole/components/widgets/WidgetMenu.js +2 -0
  579. package/dist/bigconsole/components/widgets/WidgetMenu.js.map +1 -0
  580. package/dist/bigconsole/components/widgets/WidgetRegistry.d.ts +1 -0
  581. package/dist/bigconsole/components/widgets/WidgetRegistry.d.ts.map +1 -0
  582. package/dist/bigconsole/components/widgets/WidgetRegistry.js +3 -0
  583. package/dist/bigconsole/components/widgets/WidgetRegistry.js.map +1 -0
  584. package/dist/bigconsole/components/widgets/WidgetTypeSelector.d.ts +1 -0
  585. package/dist/bigconsole/components/widgets/WidgetTypeSelector.d.ts.map +1 -0
  586. package/dist/bigconsole/components/widgets/WidgetWrapper.d.ts +1 -0
  587. package/dist/bigconsole/components/widgets/WidgetWrapper.d.ts.map +1 -0
  588. package/dist/bigconsole/components/widgets/WidgetWrapper.js +2 -0
  589. package/dist/bigconsole/components/widgets/WidgetWrapper.js.map +1 -0
  590. package/dist/bigconsole/components/widgets/actionConfig.d.ts +1 -0
  591. package/dist/bigconsole/components/widgets/actionConfig.d.ts.map +1 -0
  592. package/dist/bigconsole/components/widgets/actionConfig.js +2 -0
  593. package/dist/bigconsole/components/widgets/actionConfig.js.map +1 -0
  594. package/dist/bigconsole/components/widgets/adaptive-card/AdaptiveCardWidget.d.ts +1 -0
  595. package/dist/bigconsole/components/widgets/adaptive-card/AdaptiveCardWidget.d.ts.map +1 -0
  596. package/dist/bigconsole/components/widgets/adaptive-card/AdaptiveCardWidget.js +2 -0
  597. package/dist/bigconsole/components/widgets/adaptive-card/AdaptiveCardWidget.js.map +1 -0
  598. package/dist/bigconsole/components/widgets/adaptive-card/index.d.ts +1 -0
  599. package/dist/bigconsole/components/widgets/adaptive-card/index.d.ts.map +1 -0
  600. package/dist/bigconsole/components/widgets/calendar/CalendarView.d.ts +1 -0
  601. package/dist/bigconsole/components/widgets/calendar/CalendarView.d.ts.map +1 -0
  602. package/dist/bigconsole/components/widgets/calendar/CalendarView.js +2 -0
  603. package/dist/bigconsole/components/widgets/calendar/CalendarView.js.map +1 -0
  604. package/dist/bigconsole/components/widgets/calendar/CalendarWidget.d.ts +1 -0
  605. package/dist/bigconsole/components/widgets/calendar/CalendarWidget.d.ts.map +1 -0
  606. package/dist/bigconsole/components/widgets/calendar/CalendarWidget.js +2 -0
  607. package/dist/bigconsole/components/widgets/calendar/CalendarWidget.js.map +1 -0
  608. package/dist/bigconsole/components/widgets/calendar/index.d.ts +1 -0
  609. package/dist/bigconsole/components/widgets/calendar/index.d.ts.map +1 -0
  610. package/dist/bigconsole/components/widgets/chart/ChartConfig.d.ts +1 -0
  611. package/dist/bigconsole/components/widgets/chart/ChartConfig.d.ts.map +1 -0
  612. package/dist/bigconsole/components/widgets/chart/ChartConfig.js +2 -0
  613. package/dist/bigconsole/components/widgets/chart/ChartConfig.js.map +1 -0
  614. package/dist/bigconsole/components/widgets/chart/ChartLegend.d.ts +1 -0
  615. package/dist/bigconsole/components/widgets/chart/ChartLegend.d.ts.map +1 -0
  616. package/dist/bigconsole/components/widgets/chart/ChartLegend.js +2 -0
  617. package/dist/bigconsole/components/widgets/chart/ChartLegend.js.map +1 -0
  618. package/dist/bigconsole/components/widgets/chart/ChartTooltip.d.ts +1 -0
  619. package/dist/bigconsole/components/widgets/chart/ChartTooltip.d.ts.map +1 -0
  620. package/dist/bigconsole/components/widgets/chart/ChartTooltip.js +2 -0
  621. package/dist/bigconsole/components/widgets/chart/ChartTooltip.js.map +1 -0
  622. package/dist/bigconsole/components/widgets/chart/ChartWidget.d.ts +1 -0
  623. package/dist/bigconsole/components/widgets/chart/ChartWidget.d.ts.map +1 -0
  624. package/dist/bigconsole/components/widgets/chart/ChartWidget.js +2 -0
  625. package/dist/bigconsole/components/widgets/chart/ChartWidget.js.map +1 -0
  626. package/dist/bigconsole/components/widgets/chart/charts/AreaChart.d.ts +1 -0
  627. package/dist/bigconsole/components/widgets/chart/charts/AreaChart.d.ts.map +1 -0
  628. package/dist/bigconsole/components/widgets/chart/charts/AreaChart.js +2 -0
  629. package/dist/bigconsole/components/widgets/chart/charts/AreaChart.js.map +1 -0
  630. package/dist/bigconsole/components/widgets/chart/charts/BarChart.d.ts +1 -0
  631. package/dist/bigconsole/components/widgets/chart/charts/BarChart.d.ts.map +1 -0
  632. package/dist/bigconsole/components/widgets/chart/charts/BarChart.js +2 -0
  633. package/dist/bigconsole/components/widgets/chart/charts/BarChart.js.map +1 -0
  634. package/dist/bigconsole/components/widgets/chart/charts/ComboChart.d.ts +1 -0
  635. package/dist/bigconsole/components/widgets/chart/charts/ComboChart.d.ts.map +1 -0
  636. package/dist/bigconsole/components/widgets/chart/charts/ComboChart.js +2 -0
  637. package/dist/bigconsole/components/widgets/chart/charts/ComboChart.js.map +1 -0
  638. package/dist/bigconsole/components/widgets/chart/charts/FunnelChart.d.ts +1 -0
  639. package/dist/bigconsole/components/widgets/chart/charts/FunnelChart.d.ts.map +1 -0
  640. package/dist/bigconsole/components/widgets/chart/charts/FunnelChart.js +2 -0
  641. package/dist/bigconsole/components/widgets/chart/charts/FunnelChart.js.map +1 -0
  642. package/dist/bigconsole/components/widgets/chart/charts/LineChart.d.ts +1 -0
  643. package/dist/bigconsole/components/widgets/chart/charts/LineChart.d.ts.map +1 -0
  644. package/dist/bigconsole/components/widgets/chart/charts/LineChart.js +2 -0
  645. package/dist/bigconsole/components/widgets/chart/charts/LineChart.js.map +1 -0
  646. package/dist/bigconsole/components/widgets/chart/charts/PieChart.d.ts +1 -0
  647. package/dist/bigconsole/components/widgets/chart/charts/PieChart.d.ts.map +1 -0
  648. package/dist/bigconsole/components/widgets/chart/charts/PieChart.js +2 -0
  649. package/dist/bigconsole/components/widgets/chart/charts/PieChart.js.map +1 -0
  650. package/dist/bigconsole/components/widgets/chart/charts/ScatterChart.d.ts +1 -0
  651. package/dist/bigconsole/components/widgets/chart/charts/ScatterChart.d.ts.map +1 -0
  652. package/dist/bigconsole/components/widgets/chart/charts/ScatterChart.js +2 -0
  653. package/dist/bigconsole/components/widgets/chart/charts/ScatterChart.js.map +1 -0
  654. package/dist/bigconsole/components/widgets/chart/charts/WaterfallChart.d.ts +1 -0
  655. package/dist/bigconsole/components/widgets/chart/charts/WaterfallChart.d.ts.map +1 -0
  656. package/dist/bigconsole/components/widgets/chart/charts/WaterfallChart.js +2 -0
  657. package/dist/bigconsole/components/widgets/chart/charts/WaterfallChart.js.map +1 -0
  658. package/dist/bigconsole/components/widgets/chart/charts/index.d.ts +1 -0
  659. package/dist/bigconsole/components/widgets/chart/charts/index.d.ts.map +1 -0
  660. package/dist/bigconsole/components/widgets/chart/charts/referenceElements.d.ts +1 -0
  661. package/dist/bigconsole/components/widgets/chart/charts/referenceElements.d.ts.map +1 -0
  662. package/dist/bigconsole/components/widgets/chart/charts/referenceElements.js +2 -0
  663. package/dist/bigconsole/components/widgets/chart/charts/referenceElements.js.map +1 -0
  664. package/dist/bigconsole/components/widgets/chart/charts/types.d.ts +1 -0
  665. package/dist/bigconsole/components/widgets/chart/charts/types.d.ts.map +1 -0
  666. package/dist/bigconsole/components/widgets/chart/index.d.ts +1 -0
  667. package/dist/bigconsole/components/widgets/chart/index.d.ts.map +1 -0
  668. package/dist/bigconsole/components/widgets/comments/WidgetComments.d.ts +1 -0
  669. package/dist/bigconsole/components/widgets/comments/WidgetComments.d.ts.map +1 -0
  670. package/dist/bigconsole/components/widgets/comments/WidgetComments.js +2 -0
  671. package/dist/bigconsole/components/widgets/comments/WidgetComments.js.map +1 -0
  672. package/dist/bigconsole/components/widgets/custom/CustomWidget.d.ts +1 -0
  673. package/dist/bigconsole/components/widgets/custom/CustomWidget.d.ts.map +1 -0
  674. package/dist/bigconsole/components/widgets/custom/CustomWidget.js +133 -73
  675. package/dist/bigconsole/components/widgets/custom/CustomWidget.js.map +1 -0
  676. package/dist/bigconsole/components/widgets/custom/config.d.ts +1 -0
  677. package/dist/bigconsole/components/widgets/custom/config.d.ts.map +1 -0
  678. package/dist/bigconsole/components/widgets/custom/config.js +2 -0
  679. package/dist/bigconsole/components/widgets/custom/config.js.map +1 -0
  680. package/dist/bigconsole/components/widgets/custom/index.d.ts +1 -0
  681. package/dist/bigconsole/components/widgets/custom/index.d.ts.map +1 -0
  682. package/dist/bigconsole/components/widgets/custom/utils.d.ts +1 -0
  683. package/dist/bigconsole/components/widgets/custom/utils.d.ts.map +1 -0
  684. package/dist/bigconsole/components/widgets/custom/utils.js +2 -0
  685. package/dist/bigconsole/components/widgets/custom/utils.js.map +1 -0
  686. package/dist/bigconsole/components/widgets/event-logs/EventLogViewer.d.ts +1 -0
  687. package/dist/bigconsole/components/widgets/event-logs/EventLogViewer.d.ts.map +1 -0
  688. package/dist/bigconsole/components/widgets/event-logs/EventLogViewer.js +2 -0
  689. package/dist/bigconsole/components/widgets/event-logs/EventLogViewer.js.map +1 -0
  690. package/dist/bigconsole/components/widgets/event-logs/index.d.ts +1 -0
  691. package/dist/bigconsole/components/widgets/event-logs/index.d.ts.map +1 -0
  692. package/dist/bigconsole/components/widgets/form/FormWidget.d.ts +1 -0
  693. package/dist/bigconsole/components/widgets/form/FormWidget.d.ts.map +1 -0
  694. package/dist/bigconsole/components/widgets/form/FormWidget.js +2 -0
  695. package/dist/bigconsole/components/widgets/form/FormWidget.js.map +1 -0
  696. package/dist/bigconsole/components/widgets/form/index.d.ts +1 -0
  697. package/dist/bigconsole/components/widgets/form/index.d.ts.map +1 -0
  698. package/dist/bigconsole/components/widgets/funnel/index.d.ts +1 -0
  699. package/dist/bigconsole/components/widgets/funnel/index.d.ts.map +1 -0
  700. package/dist/bigconsole/components/widgets/funnel/index.js +2 -0
  701. package/dist/bigconsole/components/widgets/funnel/index.js.map +1 -0
  702. package/dist/bigconsole/components/widgets/gauge/CircularGauge.d.ts +1 -0
  703. package/dist/bigconsole/components/widgets/gauge/CircularGauge.d.ts.map +1 -0
  704. package/dist/bigconsole/components/widgets/gauge/CircularGauge.js +2 -0
  705. package/dist/bigconsole/components/widgets/gauge/CircularGauge.js.map +1 -0
  706. package/dist/bigconsole/components/widgets/gauge/GaugeConfig.d.ts +1 -0
  707. package/dist/bigconsole/components/widgets/gauge/GaugeConfig.d.ts.map +1 -0
  708. package/dist/bigconsole/components/widgets/gauge/GaugeConfig.js +2 -0
  709. package/dist/bigconsole/components/widgets/gauge/GaugeConfig.js.map +1 -0
  710. package/dist/bigconsole/components/widgets/gauge/GaugeWidget.d.ts +1 -0
  711. package/dist/bigconsole/components/widgets/gauge/GaugeWidget.d.ts.map +1 -0
  712. package/dist/bigconsole/components/widgets/gauge/GaugeWidget.js +2 -0
  713. package/dist/bigconsole/components/widgets/gauge/GaugeWidget.js.map +1 -0
  714. package/dist/bigconsole/components/widgets/gauge/LinearGauge.d.ts +1 -0
  715. package/dist/bigconsole/components/widgets/gauge/LinearGauge.d.ts.map +1 -0
  716. package/dist/bigconsole/components/widgets/gauge/LinearGauge.js +2 -0
  717. package/dist/bigconsole/components/widgets/gauge/LinearGauge.js.map +1 -0
  718. package/dist/bigconsole/components/widgets/gauge/index.d.ts +1 -0
  719. package/dist/bigconsole/components/widgets/gauge/index.d.ts.map +1 -0
  720. package/dist/bigconsole/components/widgets/heatmap/HeatmapConfig.d.ts +1 -0
  721. package/dist/bigconsole/components/widgets/heatmap/HeatmapConfig.d.ts.map +1 -0
  722. package/dist/bigconsole/components/widgets/heatmap/HeatmapConfig.js +2 -0
  723. package/dist/bigconsole/components/widgets/heatmap/HeatmapConfig.js.map +1 -0
  724. package/dist/bigconsole/components/widgets/heatmap/HeatmapWidget.d.ts +1 -0
  725. package/dist/bigconsole/components/widgets/heatmap/HeatmapWidget.d.ts.map +1 -0
  726. package/dist/bigconsole/components/widgets/heatmap/HeatmapWidget.js +2 -0
  727. package/dist/bigconsole/components/widgets/heatmap/HeatmapWidget.js.map +1 -0
  728. package/dist/bigconsole/components/widgets/heatmap/index.d.ts +1 -0
  729. package/dist/bigconsole/components/widgets/heatmap/index.d.ts.map +1 -0
  730. package/dist/bigconsole/components/widgets/iframe-widget/IframeWidget.d.ts +10 -28
  731. package/dist/bigconsole/components/widgets/iframe-widget/IframeWidget.d.ts.map +1 -0
  732. package/dist/bigconsole/components/widgets/iframe-widget/IframeWidget.js +44 -115
  733. package/dist/bigconsole/components/widgets/iframe-widget/IframeWidget.js.map +1 -0
  734. package/dist/bigconsole/components/widgets/iframe-widget/index.d.ts +2 -2
  735. package/dist/bigconsole/components/widgets/iframe-widget/index.d.ts.map +1 -0
  736. package/dist/bigconsole/components/widgets/iframe-widget/index.js +2 -3
  737. package/dist/bigconsole/components/widgets/index.d.ts +1 -0
  738. package/dist/bigconsole/components/widgets/index.d.ts.map +1 -0
  739. package/dist/bigconsole/components/widgets/kanban/KanbanView.d.ts +1 -0
  740. package/dist/bigconsole/components/widgets/kanban/KanbanView.d.ts.map +1 -0
  741. package/dist/bigconsole/components/widgets/kanban/KanbanView.js +2 -0
  742. package/dist/bigconsole/components/widgets/kanban/KanbanView.js.map +1 -0
  743. package/dist/bigconsole/components/widgets/kanban/KanbanWidget.d.ts +1 -0
  744. package/dist/bigconsole/components/widgets/kanban/KanbanWidget.d.ts.map +1 -0
  745. package/dist/bigconsole/components/widgets/kanban/KanbanWidget.js +2 -0
  746. package/dist/bigconsole/components/widgets/kanban/KanbanWidget.js.map +1 -0
  747. package/dist/bigconsole/components/widgets/kanban/index.d.ts +1 -0
  748. package/dist/bigconsole/components/widgets/kanban/index.d.ts.map +1 -0
  749. package/dist/bigconsole/components/widgets/kanban/model.d.ts +1 -0
  750. package/dist/bigconsole/components/widgets/kanban/model.d.ts.map +1 -0
  751. package/dist/bigconsole/components/widgets/kanban/model.js +2 -0
  752. package/dist/bigconsole/components/widgets/kanban/model.js.map +1 -0
  753. package/dist/bigconsole/components/widgets/kpi/KPIWidget.d.ts +1 -0
  754. package/dist/bigconsole/components/widgets/kpi/KPIWidget.d.ts.map +1 -0
  755. package/dist/bigconsole/components/widgets/kpi/KPIWidget.js +2 -0
  756. package/dist/bigconsole/components/widgets/kpi/KPIWidget.js.map +1 -0
  757. package/dist/bigconsole/components/widgets/kpi/index.d.ts +1 -0
  758. package/dist/bigconsole/components/widgets/kpi/index.d.ts.map +1 -0
  759. package/dist/bigconsole/components/widgets/kpi-comparison/KPIComparisonWidget.d.ts +1 -0
  760. package/dist/bigconsole/components/widgets/kpi-comparison/KPIComparisonWidget.d.ts.map +1 -0
  761. package/dist/bigconsole/components/widgets/kpi-comparison/KPIComparisonWidget.js +2 -0
  762. package/dist/bigconsole/components/widgets/kpi-comparison/KPIComparisonWidget.js.map +1 -0
  763. package/dist/bigconsole/components/widgets/kpi-comparison/index.d.ts +1 -0
  764. package/dist/bigconsole/components/widgets/kpi-comparison/index.d.ts.map +1 -0
  765. package/dist/bigconsole/components/widgets/list/ListConfig.d.ts +1 -0
  766. package/dist/bigconsole/components/widgets/list/ListConfig.d.ts.map +1 -0
  767. package/dist/bigconsole/components/widgets/list/ListConfig.js +2 -0
  768. package/dist/bigconsole/components/widgets/list/ListConfig.js.map +1 -0
  769. package/dist/bigconsole/components/widgets/list/ListItem.d.ts +1 -0
  770. package/dist/bigconsole/components/widgets/list/ListItem.d.ts.map +1 -0
  771. package/dist/bigconsole/components/widgets/list/ListItem.js +2 -0
  772. package/dist/bigconsole/components/widgets/list/ListItem.js.map +1 -0
  773. package/dist/bigconsole/components/widgets/list/ListWidget.d.ts +1 -0
  774. package/dist/bigconsole/components/widgets/list/ListWidget.d.ts.map +1 -0
  775. package/dist/bigconsole/components/widgets/list/ListWidget.js +2 -0
  776. package/dist/bigconsole/components/widgets/list/ListWidget.js.map +1 -0
  777. package/dist/bigconsole/components/widgets/list/index.d.ts +1 -0
  778. package/dist/bigconsole/components/widgets/list/index.d.ts.map +1 -0
  779. package/dist/bigconsole/components/widgets/map-widget/MapWidget.d.ts +1 -0
  780. package/dist/bigconsole/components/widgets/map-widget/MapWidget.d.ts.map +1 -0
  781. package/dist/bigconsole/components/widgets/map-widget/MapWidget.js +2 -0
  782. package/dist/bigconsole/components/widgets/map-widget/MapWidget.js.map +1 -0
  783. package/dist/bigconsole/components/widgets/map-widget/index.d.ts +1 -0
  784. package/dist/bigconsole/components/widgets/map-widget/index.d.ts.map +1 -0
  785. package/dist/bigconsole/components/widgets/metric-card/ComparisonBadge.d.ts +1 -0
  786. package/dist/bigconsole/components/widgets/metric-card/ComparisonBadge.d.ts.map +1 -0
  787. package/dist/bigconsole/components/widgets/metric-card/ComparisonBadge.js +2 -0
  788. package/dist/bigconsole/components/widgets/metric-card/ComparisonBadge.js.map +1 -0
  789. package/dist/bigconsole/components/widgets/metric-card/MetricCardConfig.d.ts +1 -0
  790. package/dist/bigconsole/components/widgets/metric-card/MetricCardConfig.d.ts.map +1 -0
  791. package/dist/bigconsole/components/widgets/metric-card/MetricCardConfig.js +2 -0
  792. package/dist/bigconsole/components/widgets/metric-card/MetricCardConfig.js.map +1 -0
  793. package/dist/bigconsole/components/widgets/metric-card/MetricCardWidget.d.ts +1 -0
  794. package/dist/bigconsole/components/widgets/metric-card/MetricCardWidget.d.ts.map +1 -0
  795. package/dist/bigconsole/components/widgets/metric-card/MetricCardWidget.js +2 -0
  796. package/dist/bigconsole/components/widgets/metric-card/MetricCardWidget.js.map +1 -0
  797. package/dist/bigconsole/components/widgets/metric-card/SparklineChart.d.ts +1 -0
  798. package/dist/bigconsole/components/widgets/metric-card/SparklineChart.d.ts.map +1 -0
  799. package/dist/bigconsole/components/widgets/metric-card/SparklineChart.js +2 -0
  800. package/dist/bigconsole/components/widgets/metric-card/SparklineChart.js.map +1 -0
  801. package/dist/bigconsole/components/widgets/metric-card/TrendIndicator.d.ts +1 -0
  802. package/dist/bigconsole/components/widgets/metric-card/TrendIndicator.d.ts.map +1 -0
  803. package/dist/bigconsole/components/widgets/metric-card/TrendIndicator.js +2 -0
  804. package/dist/bigconsole/components/widgets/metric-card/TrendIndicator.js.map +1 -0
  805. package/dist/bigconsole/components/widgets/metric-card/index.d.ts +1 -0
  806. package/dist/bigconsole/components/widgets/metric-card/index.d.ts.map +1 -0
  807. package/dist/bigconsole/components/widgets/pivot-table/PivotTableWidget.d.ts +1 -0
  808. package/dist/bigconsole/components/widgets/pivot-table/PivotTableWidget.d.ts.map +1 -0
  809. package/dist/bigconsole/components/widgets/pivot-table/PivotTableWidget.js +2 -0
  810. package/dist/bigconsole/components/widgets/pivot-table/PivotTableWidget.js.map +1 -0
  811. package/dist/bigconsole/components/widgets/pivot-table/index.d.ts +1 -0
  812. package/dist/bigconsole/components/widgets/pivot-table/index.d.ts.map +1 -0
  813. package/dist/bigconsole/components/widgets/progress/ProgressBar.d.ts +1 -0
  814. package/dist/bigconsole/components/widgets/progress/ProgressBar.d.ts.map +1 -0
  815. package/dist/bigconsole/components/widgets/progress/ProgressBar.js +2 -0
  816. package/dist/bigconsole/components/widgets/progress/ProgressBar.js.map +1 -0
  817. package/dist/bigconsole/components/widgets/progress/ProgressConfig.d.ts +1 -0
  818. package/dist/bigconsole/components/widgets/progress/ProgressConfig.d.ts.map +1 -0
  819. package/dist/bigconsole/components/widgets/progress/ProgressConfig.js +2 -0
  820. package/dist/bigconsole/components/widgets/progress/ProgressConfig.js.map +1 -0
  821. package/dist/bigconsole/components/widgets/progress/ProgressWidget.d.ts +1 -0
  822. package/dist/bigconsole/components/widgets/progress/ProgressWidget.d.ts.map +1 -0
  823. package/dist/bigconsole/components/widgets/progress/ProgressWidget.js +2 -0
  824. package/dist/bigconsole/components/widgets/progress/ProgressWidget.js.map +1 -0
  825. package/dist/bigconsole/components/widgets/progress/index.d.ts +1 -0
  826. package/dist/bigconsole/components/widgets/progress/index.d.ts.map +1 -0
  827. package/dist/bigconsole/components/widgets/retention/RetentionWidget.d.ts +1 -0
  828. package/dist/bigconsole/components/widgets/retention/RetentionWidget.d.ts.map +1 -0
  829. package/dist/bigconsole/components/widgets/retention/RetentionWidget.js +2 -0
  830. package/dist/bigconsole/components/widgets/retention/RetentionWidget.js.map +1 -0
  831. package/dist/bigconsole/components/widgets/retention/index.d.ts +1 -0
  832. package/dist/bigconsole/components/widgets/retention/index.d.ts.map +1 -0
  833. package/dist/bigconsole/components/widgets/states/EmptyState.d.ts +1 -0
  834. package/dist/bigconsole/components/widgets/states/EmptyState.d.ts.map +1 -0
  835. package/dist/bigconsole/components/widgets/states/EmptyState.js +2 -0
  836. package/dist/bigconsole/components/widgets/states/EmptyState.js.map +1 -0
  837. package/dist/bigconsole/components/widgets/states/ErrorState.d.ts +1 -0
  838. package/dist/bigconsole/components/widgets/states/ErrorState.d.ts.map +1 -0
  839. package/dist/bigconsole/components/widgets/states/ErrorState.js +2 -0
  840. package/dist/bigconsole/components/widgets/states/ErrorState.js.map +1 -0
  841. package/dist/bigconsole/components/widgets/states/LoadingState.d.ts +1 -0
  842. package/dist/bigconsole/components/widgets/states/LoadingState.d.ts.map +1 -0
  843. package/dist/bigconsole/components/widgets/states/LoadingState.js +2 -0
  844. package/dist/bigconsole/components/widgets/states/LoadingState.js.map +1 -0
  845. package/dist/bigconsole/components/widgets/states/index.d.ts +1 -0
  846. package/dist/bigconsole/components/widgets/states/index.d.ts.map +1 -0
  847. package/dist/bigconsole/components/widgets/table/TableCell.d.ts +1 -0
  848. package/dist/bigconsole/components/widgets/table/TableCell.d.ts.map +1 -0
  849. package/dist/bigconsole/components/widgets/table/TableCell.js +2 -0
  850. package/dist/bigconsole/components/widgets/table/TableCell.js.map +1 -0
  851. package/dist/bigconsole/components/widgets/table/TableConfig.d.ts +1 -0
  852. package/dist/bigconsole/components/widgets/table/TableConfig.d.ts.map +1 -0
  853. package/dist/bigconsole/components/widgets/table/TableConfig.js +2 -0
  854. package/dist/bigconsole/components/widgets/table/TableConfig.js.map +1 -0
  855. package/dist/bigconsole/components/widgets/table/TableHeader.d.ts +1 -0
  856. package/dist/bigconsole/components/widgets/table/TableHeader.d.ts.map +1 -0
  857. package/dist/bigconsole/components/widgets/table/TableHeader.js +2 -0
  858. package/dist/bigconsole/components/widgets/table/TableHeader.js.map +1 -0
  859. package/dist/bigconsole/components/widgets/table/TablePagination.d.ts +1 -0
  860. package/dist/bigconsole/components/widgets/table/TablePagination.d.ts.map +1 -0
  861. package/dist/bigconsole/components/widgets/table/TablePagination.js +2 -0
  862. package/dist/bigconsole/components/widgets/table/TablePagination.js.map +1 -0
  863. package/dist/bigconsole/components/widgets/table/TableWidget.d.ts +1 -0
  864. package/dist/bigconsole/components/widgets/table/TableWidget.d.ts.map +1 -0
  865. package/dist/bigconsole/components/widgets/table/TableWidget.js +2 -0
  866. package/dist/bigconsole/components/widgets/table/TableWidget.js.map +1 -0
  867. package/dist/bigconsole/components/widgets/table/cellLink.d.ts +1 -0
  868. package/dist/bigconsole/components/widgets/table/cellLink.d.ts.map +1 -0
  869. package/dist/bigconsole/components/widgets/table/cellLink.js +2 -0
  870. package/dist/bigconsole/components/widgets/table/cellLink.js.map +1 -0
  871. package/dist/bigconsole/components/widgets/table/index.d.ts +1 -0
  872. package/dist/bigconsole/components/widgets/table/index.d.ts.map +1 -0
  873. package/dist/bigconsole/components/widgets/text-widget/TextWidget.d.ts +1 -0
  874. package/dist/bigconsole/components/widgets/text-widget/TextWidget.d.ts.map +1 -0
  875. package/dist/bigconsole/components/widgets/text-widget/TextWidget.js +29 -110
  876. package/dist/bigconsole/components/widgets/text-widget/TextWidget.js.map +1 -0
  877. package/dist/bigconsole/components/widgets/text-widget/index.d.ts +1 -0
  878. package/dist/bigconsole/components/widgets/text-widget/index.d.ts.map +1 -0
  879. package/dist/bigconsole/components/widgets/text-widget/textData.d.ts +1 -6
  880. package/dist/bigconsole/components/widgets/text-widget/textData.d.ts.map +1 -0
  881. package/dist/bigconsole/components/widgets/text-widget/textData.js +16 -17
  882. package/dist/bigconsole/components/widgets/text-widget/textData.js.map +1 -0
  883. package/dist/bigconsole/components/widgets/timeline/TimelineWidget.d.ts +1 -0
  884. package/dist/bigconsole/components/widgets/timeline/TimelineWidget.d.ts.map +1 -0
  885. package/dist/bigconsole/components/widgets/timeline/TimelineWidget.js +2 -0
  886. package/dist/bigconsole/components/widgets/timeline/TimelineWidget.js.map +1 -0
  887. package/dist/bigconsole/components/widgets/timeline/index.d.ts +1 -0
  888. package/dist/bigconsole/components/widgets/timeline/index.d.ts.map +1 -0
  889. package/dist/bigconsole/components/widgets/utils/conditionalFormat.d.ts +1 -0
  890. package/dist/bigconsole/components/widgets/utils/conditionalFormat.d.ts.map +1 -0
  891. package/dist/bigconsole/components/widgets/utils/conditionalFormat.js +2 -0
  892. package/dist/bigconsole/components/widgets/utils/conditionalFormat.js.map +1 -0
  893. package/dist/bigconsole/components/widgets/utils/inferFields.d.ts +1 -0
  894. package/dist/bigconsole/components/widgets/utils/inferFields.d.ts.map +1 -0
  895. package/dist/bigconsole/components/widgets/utils/inferFields.js +2 -0
  896. package/dist/bigconsole/components/widgets/utils/inferFields.js.map +1 -0
  897. package/dist/bigconsole/components/widgets/utils/targetProgress.d.ts +1 -0
  898. package/dist/bigconsole/components/widgets/utils/targetProgress.d.ts.map +1 -0
  899. package/dist/bigconsole/components/widgets/utils/targetProgress.js +2 -0
  900. package/dist/bigconsole/components/widgets/utils/targetProgress.js.map +1 -0
  901. package/dist/bigconsole/components/widgets/utils/translate.d.ts +1 -0
  902. package/dist/bigconsole/components/widgets/utils/translate.d.ts.map +1 -0
  903. package/dist/bigconsole/components/widgets/utils/translate.js +2 -0
  904. package/dist/bigconsole/components/widgets/utils/translate.js.map +1 -0
  905. package/dist/bigconsole/components/widgets/webhook-config/WebhookConfigPanel.d.ts +1 -0
  906. package/dist/bigconsole/components/widgets/webhook-config/WebhookConfigPanel.d.ts.map +1 -0
  907. package/dist/bigconsole/components/widgets/webhook-config/WebhookConfigPanel.js +2 -0
  908. package/dist/bigconsole/components/widgets/webhook-config/WebhookConfigPanel.js.map +1 -0
  909. package/dist/bigconsole/components/widgets/webhook-config/index.d.ts +1 -0
  910. package/dist/bigconsole/components/widgets/webhook-config/index.d.ts.map +1 -0
  911. package/dist/bigconsole/components/widgets/widget-actions/WidgetActions.d.ts +1 -0
  912. package/dist/bigconsole/components/widgets/widget-actions/WidgetActions.d.ts.map +1 -0
  913. package/dist/bigconsole/components/widgets/widget-actions/WidgetActions.js +2 -0
  914. package/dist/bigconsole/components/widgets/widget-actions/WidgetActions.js.map +1 -0
  915. package/dist/bigconsole/components/widgets/widget-actions/index.d.ts +1 -0
  916. package/dist/bigconsole/components/widgets/widget-actions/index.d.ts.map +1 -0
  917. package/dist/bigconsole/components/workflow/DataSinkMultiSelector.d.ts +1 -0
  918. package/dist/bigconsole/components/workflow/DataSinkMultiSelector.d.ts.map +1 -0
  919. package/dist/bigconsole/components/workflow/WorkflowCard.d.ts +1 -0
  920. package/dist/bigconsole/components/workflow/WorkflowCard.d.ts.map +1 -0
  921. package/dist/bigconsole/components/workflow/WorkflowCard.js +2 -0
  922. package/dist/bigconsole/components/workflow/WorkflowCard.js.map +1 -0
  923. package/dist/bigconsole/components/workflow/WorkflowDeleteDialog.d.ts +1 -0
  924. package/dist/bigconsole/components/workflow/WorkflowDeleteDialog.d.ts.map +1 -0
  925. package/dist/bigconsole/components/workflow/WorkflowDeleteDialog.js +2 -0
  926. package/dist/bigconsole/components/workflow/WorkflowDeleteDialog.js.map +1 -0
  927. package/dist/bigconsole/components/workflow/WorkflowDesignPreview.d.ts +1 -0
  928. package/dist/bigconsole/components/workflow/WorkflowDesignPreview.d.ts.map +1 -0
  929. package/dist/bigconsole/components/workflow/WorkflowDesignPreview.js +2 -0
  930. package/dist/bigconsole/components/workflow/WorkflowDesignPreview.js.map +1 -0
  931. package/dist/bigconsole/components/workflow/WorkflowOpenGuard.d.ts +1 -0
  932. package/dist/bigconsole/components/workflow/WorkflowOpenGuard.d.ts.map +1 -0
  933. package/dist/bigconsole/components/workflow/WorkflowOpenGuard.js +2 -0
  934. package/dist/bigconsole/components/workflow/WorkflowOpenGuard.js.map +1 -0
  935. package/dist/bigconsole/components/workflow/WorkflowSinkLinkForm.d.ts +1 -0
  936. package/dist/bigconsole/components/workflow/WorkflowSinkLinkForm.d.ts.map +1 -0
  937. package/dist/bigconsole/components/workflow/WorkflowSinkLinkForm.js +2 -0
  938. package/dist/bigconsole/components/workflow/WorkflowSinkLinkForm.js.map +1 -0
  939. package/dist/bigconsole/components/workflow/WorkflowStatusBadge.d.ts +1 -0
  940. package/dist/bigconsole/components/workflow/WorkflowStatusBadge.d.ts.map +1 -0
  941. package/dist/bigconsole/components/workflow/WorkflowStatusBadge.js +2 -0
  942. package/dist/bigconsole/components/workflow/WorkflowStatusBadge.js.map +1 -0
  943. package/dist/bigconsole/components/workflow/index.d.ts +1 -0
  944. package/dist/bigconsole/components/workflow/index.d.ts.map +1 -0
  945. package/dist/bigconsole/constants/backendErrors.d.ts +1 -0
  946. package/dist/bigconsole/constants/backendErrors.d.ts.map +1 -0
  947. package/dist/bigconsole/constants.d.ts +1 -0
  948. package/dist/bigconsole/constants.d.ts.map +1 -0
  949. package/dist/bigconsole/constants.js +2 -0
  950. package/dist/bigconsole/constants.js.map +1 -0
  951. package/dist/bigconsole/context/BigConsoleContext.d.ts +1 -10
  952. package/dist/bigconsole/context/BigConsoleContext.d.ts.map +1 -0
  953. package/dist/bigconsole/context/BigConsoleContext.js +32 -47
  954. package/dist/bigconsole/context/BigConsoleContext.js.map +1 -0
  955. package/dist/bigconsole/context/index.d.ts +2 -1
  956. package/dist/bigconsole/context/index.d.ts.map +1 -0
  957. package/dist/bigconsole/contexts/CrossFilterContext.d.ts +1 -0
  958. package/dist/bigconsole/contexts/CrossFilterContext.d.ts.map +1 -0
  959. package/dist/bigconsole/contexts/CrossFilterContext.js +2 -0
  960. package/dist/bigconsole/contexts/CrossFilterContext.js.map +1 -0
  961. package/dist/bigconsole/contexts/NavigationContext.d.ts +1 -0
  962. package/dist/bigconsole/contexts/NavigationContext.d.ts.map +1 -0
  963. package/dist/bigconsole/contexts/NavigationContext.js +2 -0
  964. package/dist/bigconsole/contexts/NavigationContext.js.map +1 -0
  965. package/dist/bigconsole/contexts/index.d.ts +1 -0
  966. package/dist/bigconsole/contexts/index.d.ts.map +1 -0
  967. package/dist/bigconsole/customWidget/CustomWidgetBuilderSheet.d.ts +1 -0
  968. package/dist/bigconsole/customWidget/CustomWidgetBuilderSheet.d.ts.map +1 -0
  969. package/dist/bigconsole/customWidget/CustomWidgetBuilderSheet.js +2 -0
  970. package/dist/bigconsole/customWidget/CustomWidgetBuilderSheet.js.map +1 -0
  971. package/dist/bigconsole/customWidget/CustomWidgetProposalPanel.d.ts +1 -0
  972. package/dist/bigconsole/customWidget/CustomWidgetProposalPanel.d.ts.map +1 -0
  973. package/dist/bigconsole/customWidget/CustomWidgetProposalPanel.js +2 -0
  974. package/dist/bigconsole/customWidget/CustomWidgetProposalPanel.js.map +1 -0
  975. package/dist/bigconsole/customWidget/index.d.ts +1 -0
  976. package/dist/bigconsole/customWidget/index.d.ts.map +1 -0
  977. package/dist/bigconsole/customWidget/proposalContract.d.ts +1 -0
  978. package/dist/bigconsole/customWidget/proposalContract.d.ts.map +1 -0
  979. package/dist/bigconsole/customWidget/proposalContract.js +2 -0
  980. package/dist/bigconsole/customWidget/proposalContract.js.map +1 -0
  981. package/dist/bigconsole/customWidget/proposalSource.d.ts +1 -0
  982. package/dist/bigconsole/customWidget/proposalSource.d.ts.map +1 -0
  983. package/dist/bigconsole/customWidget/proposalSource.js +2 -0
  984. package/dist/bigconsole/customWidget/proposalSource.js.map +1 -0
  985. package/dist/bigconsole/graphql/apollo-compat.d.ts +1 -0
  986. package/dist/bigconsole/graphql/apollo-compat.d.ts.map +1 -0
  987. package/dist/bigconsole/graphql/storeTemplates.d.ts +1 -0
  988. package/dist/bigconsole/graphql/storeTemplates.d.ts.map +1 -0
  989. package/dist/bigconsole/graphql/storeTemplates.js +2 -0
  990. package/dist/bigconsole/graphql/storeTemplates.js.map +1 -0
  991. package/dist/bigconsole/hooks/index.d.ts +1 -0
  992. package/dist/bigconsole/hooks/index.d.ts.map +1 -0
  993. package/dist/bigconsole/hooks/useActivePage.d.ts +1 -0
  994. package/dist/bigconsole/hooks/useActivePage.d.ts.map +1 -0
  995. package/dist/bigconsole/hooks/useActivePage.js +2 -0
  996. package/dist/bigconsole/hooks/useActivePage.js.map +1 -0
  997. package/dist/bigconsole/hooks/useAutoRefresh.d.ts +1 -0
  998. package/dist/bigconsole/hooks/useAutoRefresh.d.ts.map +1 -0
  999. package/dist/bigconsole/hooks/useAutoRefresh.js +2 -0
  1000. package/dist/bigconsole/hooks/useAutoRefresh.js.map +1 -0
  1001. package/dist/bigconsole/hooks/useBigConsoleAnalytics.d.ts +1 -0
  1002. package/dist/bigconsole/hooks/useBigConsoleAnalytics.d.ts.map +1 -0
  1003. package/dist/bigconsole/hooks/useBigConsoleAnalytics.js +2 -0
  1004. package/dist/bigconsole/hooks/useBigConsoleAnalytics.js.map +1 -0
  1005. package/dist/bigconsole/hooks/useBigConsoleSettings.d.ts +1 -0
  1006. package/dist/bigconsole/hooks/useBigConsoleSettings.d.ts.map +1 -0
  1007. package/dist/bigconsole/hooks/useBigConsoleSettings.js +2 -0
  1008. package/dist/bigconsole/hooks/useBigConsoleSettings.js.map +1 -0
  1009. package/dist/bigconsole/hooks/useCrossFilter.d.ts +1 -0
  1010. package/dist/bigconsole/hooks/useCrossFilter.d.ts.map +1 -0
  1011. package/dist/bigconsole/hooks/useCrossFilter.js +2 -0
  1012. package/dist/bigconsole/hooks/useCrossFilter.js.map +1 -0
  1013. package/dist/bigconsole/hooks/useDashboardEmbedPolicy.d.ts +1 -0
  1014. package/dist/bigconsole/hooks/useDashboardEmbedPolicy.d.ts.map +1 -0
  1015. package/dist/bigconsole/hooks/useDashboardEmbedPolicy.js +2 -0
  1016. package/dist/bigconsole/hooks/useDashboardEmbedPolicy.js.map +1 -0
  1017. package/dist/bigconsole/hooks/useDashboardImageExport.d.ts +1 -0
  1018. package/dist/bigconsole/hooks/useDashboardImageExport.d.ts.map +1 -0
  1019. package/dist/bigconsole/hooks/useDashboardImageExport.js +2 -0
  1020. package/dist/bigconsole/hooks/useDashboardImageExport.js.map +1 -0
  1021. package/dist/bigconsole/hooks/useDashboardOperations.d.ts +1 -0
  1022. package/dist/bigconsole/hooks/useDashboardOperations.d.ts.map +1 -0
  1023. package/dist/bigconsole/hooks/useDashboardOperations.js +2 -0
  1024. package/dist/bigconsole/hooks/useDashboardOperations.js.map +1 -0
  1025. package/dist/bigconsole/hooks/useDashboardSharing.d.ts +1 -0
  1026. package/dist/bigconsole/hooks/useDashboardSharing.d.ts.map +1 -0
  1027. package/dist/bigconsole/hooks/useDashboardSharing.js +2 -0
  1028. package/dist/bigconsole/hooks/useDashboardSharing.js.map +1 -0
  1029. package/dist/bigconsole/hooks/useDashboardTemplates.d.ts +1 -0
  1030. package/dist/bigconsole/hooks/useDashboardTemplates.d.ts.map +1 -0
  1031. package/dist/bigconsole/hooks/useDashboardViews.d.ts +1 -0
  1032. package/dist/bigconsole/hooks/useDashboardViews.d.ts.map +1 -0
  1033. package/dist/bigconsole/hooks/useDashboardViews.js +2 -0
  1034. package/dist/bigconsole/hooks/useDashboardViews.js.map +1 -0
  1035. package/dist/bigconsole/hooks/useDataSinkAlerts.d.ts +1 -0
  1036. package/dist/bigconsole/hooks/useDataSinkAlerts.d.ts.map +1 -0
  1037. package/dist/bigconsole/hooks/useDataSinkAlerts.js +2 -0
  1038. package/dist/bigconsole/hooks/useDataSinkAlerts.js.map +1 -0
  1039. package/dist/bigconsole/hooks/useDataSinkOperations.d.ts +1 -7
  1040. package/dist/bigconsole/hooks/useDataSinkOperations.d.ts.map +1 -0
  1041. package/dist/bigconsole/hooks/useDataSinkOperations.js +100 -109
  1042. package/dist/bigconsole/hooks/useDataSinkOperations.js.map +1 -0
  1043. package/dist/bigconsole/hooks/useDataSinkSubscription.d.ts +1 -0
  1044. package/dist/bigconsole/hooks/useDataSinkSubscription.d.ts.map +1 -0
  1045. package/dist/bigconsole/hooks/useDataSinkSubscription.js +3 -0
  1046. package/dist/bigconsole/hooks/useDataSinkSubscription.js.map +1 -0
  1047. package/dist/bigconsole/hooks/useDrilldown.d.ts +1 -0
  1048. package/dist/bigconsole/hooks/useDrilldown.d.ts.map +1 -0
  1049. package/dist/bigconsole/hooks/useDrilldown.js +70 -69
  1050. package/dist/bigconsole/hooks/useDrilldown.js.map +1 -0
  1051. package/dist/bigconsole/hooks/useDrilldownOperations.d.ts +1 -0
  1052. package/dist/bigconsole/hooks/useDrilldownOperations.d.ts.map +1 -0
  1053. package/dist/bigconsole/hooks/useDrilldownOperations.js +2 -0
  1054. package/dist/bigconsole/hooks/useDrilldownOperations.js.map +1 -0
  1055. package/dist/bigconsole/hooks/useEventLogs.d.ts +1 -0
  1056. package/dist/bigconsole/hooks/useEventLogs.d.ts.map +1 -0
  1057. package/dist/bigconsole/hooks/useEventLogs.js +2 -0
  1058. package/dist/bigconsole/hooks/useEventLogs.js.map +1 -0
  1059. package/dist/bigconsole/hooks/useEventWebhooks.d.ts +1 -0
  1060. package/dist/bigconsole/hooks/useEventWebhooks.d.ts.map +1 -0
  1061. package/dist/bigconsole/hooks/useEventWebhooks.js +2 -0
  1062. package/dist/bigconsole/hooks/useEventWebhooks.js.map +1 -0
  1063. package/dist/bigconsole/hooks/useExportDashboard.d.ts +1 -0
  1064. package/dist/bigconsole/hooks/useExportDashboard.d.ts.map +1 -0
  1065. package/dist/bigconsole/hooks/useExportDashboard.js +2 -0
  1066. package/dist/bigconsole/hooks/useExportDashboard.js.map +1 -0
  1067. package/dist/bigconsole/hooks/useExportDataSink.d.ts +1 -0
  1068. package/dist/bigconsole/hooks/useExportDataSink.d.ts.map +1 -0
  1069. package/dist/bigconsole/hooks/useExportDataSink.js +3 -1
  1070. package/dist/bigconsole/hooks/useExportDataSink.js.map +1 -0
  1071. package/dist/bigconsole/hooks/useExportParser.d.ts +1 -0
  1072. package/dist/bigconsole/hooks/useExportParser.d.ts.map +1 -0
  1073. package/dist/bigconsole/hooks/useExportParser.js +2 -0
  1074. package/dist/bigconsole/hooks/useExportParser.js.map +1 -0
  1075. package/dist/bigconsole/hooks/useFilterPresets.d.ts +1 -0
  1076. package/dist/bigconsole/hooks/useFilterPresets.d.ts.map +1 -0
  1077. package/dist/bigconsole/hooks/useFilterPresets.js +2 -0
  1078. package/dist/bigconsole/hooks/useFilterPresets.js.map +1 -0
  1079. package/dist/bigconsole/hooks/useFilterUrlSync.d.ts +1 -0
  1080. package/dist/bigconsole/hooks/useFilterUrlSync.d.ts.map +1 -0
  1081. package/dist/bigconsole/hooks/useFilterUrlSync.js +2 -0
  1082. package/dist/bigconsole/hooks/useFilterUrlSync.js.map +1 -0
  1083. package/dist/bigconsole/hooks/useGlobalFilters.d.ts +1 -0
  1084. package/dist/bigconsole/hooks/useGlobalFilters.d.ts.map +1 -0
  1085. package/dist/bigconsole/hooks/useGlobalFilters.js +2 -0
  1086. package/dist/bigconsole/hooks/useGlobalFilters.js.map +1 -0
  1087. package/dist/bigconsole/hooks/useImportDashboard.d.ts +1 -0
  1088. package/dist/bigconsole/hooks/useImportDashboard.d.ts.map +1 -0
  1089. package/dist/bigconsole/hooks/useImportDashboard.js +2 -0
  1090. package/dist/bigconsole/hooks/useImportDashboard.js.map +1 -0
  1091. package/dist/bigconsole/hooks/useImportDataSink.d.ts +1 -0
  1092. package/dist/bigconsole/hooks/useImportDataSink.d.ts.map +1 -0
  1093. package/dist/bigconsole/hooks/useImportDataSink.js +92 -102
  1094. package/dist/bigconsole/hooks/useImportDataSink.js.map +1 -0
  1095. package/dist/bigconsole/hooks/useImportParser.d.ts +1 -0
  1096. package/dist/bigconsole/hooks/useImportParser.d.ts.map +1 -0
  1097. package/dist/bigconsole/hooks/useImportParser.js +2 -0
  1098. package/dist/bigconsole/hooks/useImportParser.js.map +1 -0
  1099. package/dist/bigconsole/hooks/useInstalledWidgets.d.ts +1 -0
  1100. package/dist/bigconsole/hooks/useInstalledWidgets.d.ts.map +1 -0
  1101. package/dist/bigconsole/hooks/useInstalledWidgets.js +2 -0
  1102. package/dist/bigconsole/hooks/useInstalledWidgets.js.map +1 -0
  1103. package/dist/bigconsole/hooks/useModalFocusTrap.d.ts +1 -0
  1104. package/dist/bigconsole/hooks/useModalFocusTrap.d.ts.map +1 -0
  1105. package/dist/bigconsole/hooks/useModalFocusTrap.js +2 -0
  1106. package/dist/bigconsole/hooks/useModalFocusTrap.js.map +1 -0
  1107. package/dist/bigconsole/hooks/usePageOperations.d.ts +1 -0
  1108. package/dist/bigconsole/hooks/usePageOperations.d.ts.map +1 -0
  1109. package/dist/bigconsole/hooks/usePageOperations.js +2 -0
  1110. package/dist/bigconsole/hooks/usePageOperations.js.map +1 -0
  1111. package/dist/bigconsole/hooks/useParserOperations.d.ts +1 -0
  1112. package/dist/bigconsole/hooks/useParserOperations.d.ts.map +1 -0
  1113. package/dist/bigconsole/hooks/useParserOperations.js +2 -0
  1114. package/dist/bigconsole/hooks/useParserOperations.js.map +1 -0
  1115. package/dist/bigconsole/hooks/usePipelineOperations.d.ts +1 -0
  1116. package/dist/bigconsole/hooks/usePipelineOperations.d.ts.map +1 -0
  1117. package/dist/bigconsole/hooks/usePipelineOperations.js +2 -0
  1118. package/dist/bigconsole/hooks/usePipelineOperations.js.map +1 -0
  1119. package/dist/bigconsole/hooks/useShareRecipients.d.ts +1 -0
  1120. package/dist/bigconsole/hooks/useShareRecipients.d.ts.map +1 -0
  1121. package/dist/bigconsole/hooks/useShareRecipients.js +2 -0
  1122. package/dist/bigconsole/hooks/useShareRecipients.js.map +1 -0
  1123. package/dist/bigconsole/hooks/useStoreDashboardTemplates.d.ts +1 -0
  1124. package/dist/bigconsole/hooks/useStoreDashboardTemplates.d.ts.map +1 -0
  1125. package/dist/bigconsole/hooks/useStoreDashboardTemplates.js +2 -0
  1126. package/dist/bigconsole/hooks/useStoreDashboardTemplates.js.map +1 -0
  1127. package/dist/bigconsole/hooks/useWidgetActions.d.ts +1 -0
  1128. package/dist/bigconsole/hooks/useWidgetActions.d.ts.map +1 -0
  1129. package/dist/bigconsole/hooks/useWidgetActions.js +2 -0
  1130. package/dist/bigconsole/hooks/useWidgetActions.js.map +1 -0
  1131. package/dist/bigconsole/hooks/useWidgetCatalog.d.ts +1 -0
  1132. package/dist/bigconsole/hooks/useWidgetCatalog.d.ts.map +1 -0
  1133. package/dist/bigconsole/hooks/useWidgetCatalog.js +2 -0
  1134. package/dist/bigconsole/hooks/useWidgetCatalog.js.map +1 -0
  1135. package/dist/bigconsole/hooks/useWidgetComments.d.ts +1 -0
  1136. package/dist/bigconsole/hooks/useWidgetComments.d.ts.map +1 -0
  1137. package/dist/bigconsole/hooks/useWidgetComments.js +2 -0
  1138. package/dist/bigconsole/hooks/useWidgetComments.js.map +1 -0
  1139. package/dist/bigconsole/hooks/useWidgetConfigPersist.d.ts +1 -0
  1140. package/dist/bigconsole/hooks/useWidgetConfigPersist.d.ts.map +1 -0
  1141. package/dist/bigconsole/hooks/useWidgetConfigPersist.js +2 -0
  1142. package/dist/bigconsole/hooks/useWidgetConfigPersist.js.map +1 -0
  1143. package/dist/bigconsole/hooks/useWidgetData.d.ts +1 -0
  1144. package/dist/bigconsole/hooks/useWidgetData.d.ts.map +1 -0
  1145. package/dist/bigconsole/hooks/useWidgetData.js +2 -0
  1146. package/dist/bigconsole/hooks/useWidgetData.js.map +1 -0
  1147. package/dist/bigconsole/hooks/useWidgetEvents.d.ts +1 -0
  1148. package/dist/bigconsole/hooks/useWidgetEvents.d.ts.map +1 -0
  1149. package/dist/bigconsole/hooks/useWidgetEvents.js +2 -0
  1150. package/dist/bigconsole/hooks/useWidgetEvents.js.map +1 -0
  1151. package/dist/bigconsole/hooks/useWidgetExport.d.ts +1 -0
  1152. package/dist/bigconsole/hooks/useWidgetExport.d.ts.map +1 -0
  1153. package/dist/bigconsole/hooks/useWidgetExport.js +2 -0
  1154. package/dist/bigconsole/hooks/useWidgetExport.js.map +1 -0
  1155. package/dist/bigconsole/hooks/useWidgetOperations.d.ts +1 -0
  1156. package/dist/bigconsole/hooks/useWidgetOperations.d.ts.map +1 -0
  1157. package/dist/bigconsole/hooks/useWidgetOperations.js +2 -0
  1158. package/dist/bigconsole/hooks/useWidgetOperations.js.map +1 -0
  1159. package/dist/bigconsole/hooks/useWorkflowOperations.d.ts +1 -0
  1160. package/dist/bigconsole/hooks/useWorkflowOperations.d.ts.map +1 -0
  1161. package/dist/bigconsole/hooks/useWorkflowOperations.js +2 -0
  1162. package/dist/bigconsole/hooks/useWorkflowOperations.js.map +1 -0
  1163. package/dist/bigconsole/index.d.ts +1 -0
  1164. package/dist/bigconsole/index.d.ts.map +1 -0
  1165. package/dist/bigconsole/modules/dashboard/index.d.ts +1 -0
  1166. package/dist/bigconsole/modules/dashboard/index.d.ts.map +1 -0
  1167. package/dist/bigconsole/modules/index.d.ts +1 -0
  1168. package/dist/bigconsole/modules/index.d.ts.map +1 -0
  1169. package/dist/bigconsole/modules/renderer/index.d.ts +1 -0
  1170. package/dist/bigconsole/modules/renderer/index.d.ts.map +1 -0
  1171. package/dist/bigconsole/modules/widget/index.d.ts +1 -0
  1172. package/dist/bigconsole/modules/widget/index.d.ts.map +1 -0
  1173. package/dist/bigconsole/pages/AdminPage.d.ts +1 -0
  1174. package/dist/bigconsole/pages/AdminPage.d.ts.map +1 -0
  1175. package/dist/bigconsole/pages/AdminPage.js +2 -0
  1176. package/dist/bigconsole/pages/AdminPage.js.map +1 -0
  1177. package/dist/bigconsole/pages/DashboardBuilderPage.d.ts +1 -0
  1178. package/dist/bigconsole/pages/DashboardBuilderPage.d.ts.map +1 -0
  1179. package/dist/bigconsole/pages/DashboardBuilderPage.js +2 -0
  1180. package/dist/bigconsole/pages/DashboardBuilderPage.js.map +1 -0
  1181. package/dist/bigconsole/pages/DashboardViewPage.d.ts +1 -0
  1182. package/dist/bigconsole/pages/DashboardViewPage.d.ts.map +1 -0
  1183. package/dist/bigconsole/pages/DashboardViewPage.js +207 -205
  1184. package/dist/bigconsole/pages/DashboardViewPage.js.map +1 -0
  1185. package/dist/bigconsole/pages/DashboardsPage.d.ts +1 -0
  1186. package/dist/bigconsole/pages/DashboardsPage.d.ts.map +1 -0
  1187. package/dist/bigconsole/pages/DashboardsPage.js +2 -0
  1188. package/dist/bigconsole/pages/DashboardsPage.js.map +1 -0
  1189. package/dist/bigconsole/pages/DataParsersPage.d.ts +1 -0
  1190. package/dist/bigconsole/pages/DataParsersPage.d.ts.map +1 -0
  1191. package/dist/bigconsole/pages/DataParsersPage.js +2 -0
  1192. package/dist/bigconsole/pages/DataParsersPage.js.map +1 -0
  1193. package/dist/bigconsole/pages/DataSinkAlertsPage.d.ts +1 -0
  1194. package/dist/bigconsole/pages/DataSinkAlertsPage.d.ts.map +1 -0
  1195. package/dist/bigconsole/pages/DataSinkAlertsPage.js +2 -0
  1196. package/dist/bigconsole/pages/DataSinkAlertsPage.js.map +1 -0
  1197. package/dist/bigconsole/pages/DataSinkBuilderPage.d.ts +1 -0
  1198. package/dist/bigconsole/pages/DataSinkBuilderPage.d.ts.map +1 -0
  1199. package/dist/bigconsole/pages/DataSinkBuilderPage.js +282 -312
  1200. package/dist/bigconsole/pages/DataSinkBuilderPage.js.map +1 -0
  1201. package/dist/bigconsole/pages/DataSinkViewPage.d.ts +1 -0
  1202. package/dist/bigconsole/pages/DataSinkViewPage.d.ts.map +1 -0
  1203. package/dist/bigconsole/pages/DataSinkViewPage.js +257 -256
  1204. package/dist/bigconsole/pages/DataSinkViewPage.js.map +1 -0
  1205. package/dist/bigconsole/pages/DataSinksPage.d.ts +1 -0
  1206. package/dist/bigconsole/pages/DataSinksPage.d.ts.map +1 -0
  1207. package/dist/bigconsole/pages/DataSinksPage.js +197 -196
  1208. package/dist/bigconsole/pages/DataSinksPage.js.map +1 -0
  1209. package/dist/bigconsole/pages/DataSourcesPage.d.ts +1 -0
  1210. package/dist/bigconsole/pages/DataSourcesPage.d.ts.map +1 -0
  1211. package/dist/bigconsole/pages/DataSourcesPage.js +2 -0
  1212. package/dist/bigconsole/pages/DataSourcesPage.js.map +1 -0
  1213. package/dist/bigconsole/pages/InsightsPage.d.ts +1 -0
  1214. package/dist/bigconsole/pages/InsightsPage.d.ts.map +1 -0
  1215. package/dist/bigconsole/pages/InsightsPage.js +2 -0
  1216. package/dist/bigconsole/pages/InsightsPage.js.map +1 -0
  1217. package/dist/bigconsole/pages/OverviewPage.d.ts +1 -0
  1218. package/dist/bigconsole/pages/OverviewPage.d.ts.map +1 -0
  1219. package/dist/bigconsole/pages/OverviewPage.js +2 -0
  1220. package/dist/bigconsole/pages/OverviewPage.js.map +1 -0
  1221. package/dist/bigconsole/pages/ParserBuilderPage.d.ts +1 -0
  1222. package/dist/bigconsole/pages/ParserBuilderPage.d.ts.map +1 -0
  1223. package/dist/bigconsole/pages/ParserBuilderPage.js +2 -0
  1224. package/dist/bigconsole/pages/ParserBuilderPage.js.map +1 -0
  1225. package/dist/bigconsole/pages/ParserViewPage.d.ts +1 -0
  1226. package/dist/bigconsole/pages/ParserViewPage.d.ts.map +1 -0
  1227. package/dist/bigconsole/pages/ParserViewPage.js +2 -0
  1228. package/dist/bigconsole/pages/ParserViewPage.js.map +1 -0
  1229. package/dist/bigconsole/pages/PipelineBuilderPage.d.ts +1 -0
  1230. package/dist/bigconsole/pages/PipelineBuilderPage.d.ts.map +1 -0
  1231. package/dist/bigconsole/pages/PipelineBuilderPage.js +2 -0
  1232. package/dist/bigconsole/pages/PipelineBuilderPage.js.map +1 -0
  1233. package/dist/bigconsole/pages/PipelineViewPage.d.ts +1 -0
  1234. package/dist/bigconsole/pages/PipelineViewPage.d.ts.map +1 -0
  1235. package/dist/bigconsole/pages/PipelineViewPage.js +2 -0
  1236. package/dist/bigconsole/pages/PipelineViewPage.js.map +1 -0
  1237. package/dist/bigconsole/pages/PipelinesPage.d.ts +1 -0
  1238. package/dist/bigconsole/pages/PipelinesPage.d.ts.map +1 -0
  1239. package/dist/bigconsole/pages/PipelinesPage.js +2 -0
  1240. package/dist/bigconsole/pages/PipelinesPage.js.map +1 -0
  1241. package/dist/bigconsole/pages/SettingsPage.d.ts +1 -0
  1242. package/dist/bigconsole/pages/SettingsPage.d.ts.map +1 -0
  1243. package/dist/bigconsole/pages/SettingsPage.js +2 -0
  1244. package/dist/bigconsole/pages/SettingsPage.js.map +1 -0
  1245. package/dist/bigconsole/pages/WidgetDemoPage.d.ts +1 -0
  1246. package/dist/bigconsole/pages/WidgetDemoPage.d.ts.map +1 -0
  1247. package/dist/bigconsole/pages/WidgetDemoPage.js +2 -0
  1248. package/dist/bigconsole/pages/WidgetDemoPage.js.map +1 -0
  1249. package/dist/bigconsole/pages/WorkflowViewPage.d.ts +1 -0
  1250. package/dist/bigconsole/pages/WorkflowViewPage.d.ts.map +1 -0
  1251. package/dist/bigconsole/pages/WorkflowViewPage.js +2 -0
  1252. package/dist/bigconsole/pages/WorkflowViewPage.js.map +1 -0
  1253. package/dist/bigconsole/pages/WorkflowsPage.d.ts +1 -0
  1254. package/dist/bigconsole/pages/WorkflowsPage.d.ts.map +1 -0
  1255. package/dist/bigconsole/pages/WorkflowsPage.js +2 -0
  1256. package/dist/bigconsole/pages/WorkflowsPage.js.map +1 -0
  1257. package/dist/bigconsole/pages/index.d.ts +1 -0
  1258. package/dist/bigconsole/pages/index.d.ts.map +1 -0
  1259. package/dist/bigconsole/providers/BigConsoleQuotaProvider.d.ts +1 -0
  1260. package/dist/bigconsole/providers/BigConsoleQuotaProvider.d.ts.map +1 -0
  1261. package/dist/bigconsole/providers/BigConsoleQuotaProvider.js +2 -0
  1262. package/dist/bigconsole/providers/BigConsoleQuotaProvider.js.map +1 -0
  1263. package/dist/bigconsole/renderers/adapters/AdaptiveCardRenderer.d.ts +1 -0
  1264. package/dist/bigconsole/renderers/adapters/AdaptiveCardRenderer.d.ts.map +1 -0
  1265. package/dist/bigconsole/renderers/adapters/AdaptiveCardRenderer.js +124 -235
  1266. package/dist/bigconsole/renderers/adapters/AdaptiveCardRenderer.js.map +1 -0
  1267. package/dist/bigconsole/renderers/adapters/BigConsoleRenderer.d.ts +1 -0
  1268. package/dist/bigconsole/renderers/adapters/BigConsoleRenderer.d.ts.map +1 -0
  1269. package/dist/bigconsole/renderers/adapters/BigConsoleRenderer.js +2 -0
  1270. package/dist/bigconsole/renderers/adapters/BigConsoleRenderer.js.map +1 -0
  1271. package/dist/bigconsole/renderers/adapters/BlockKitRenderer.d.ts +2 -6
  1272. package/dist/bigconsole/renderers/adapters/BlockKitRenderer.d.ts.map +1 -0
  1273. package/dist/bigconsole/renderers/adapters/BlockKitRenderer.js +157 -155
  1274. package/dist/bigconsole/renderers/adapters/BlockKitRenderer.js.map +1 -0
  1275. package/dist/bigconsole/renderers/adapters/CustomRenderer.d.ts +1 -0
  1276. package/dist/bigconsole/renderers/adapters/CustomRenderer.d.ts.map +1 -0
  1277. package/dist/bigconsole/renderers/adapters/CustomRenderer.js +2 -0
  1278. package/dist/bigconsole/renderers/adapters/CustomRenderer.js.map +1 -0
  1279. package/dist/bigconsole/renderers/adapters/index.d.ts +1 -0
  1280. package/dist/bigconsole/renderers/adapters/index.d.ts.map +1 -0
  1281. package/dist/bigconsole/renderers/factory/WidgetRendererFactory.d.ts +1 -0
  1282. package/dist/bigconsole/renderers/factory/WidgetRendererFactory.d.ts.map +1 -0
  1283. package/dist/bigconsole/renderers/factory/WidgetRendererFactory.js +2 -0
  1284. package/dist/bigconsole/renderers/factory/WidgetRendererFactory.js.map +1 -0
  1285. package/dist/bigconsole/renderers/index.d.ts +1 -0
  1286. package/dist/bigconsole/renderers/index.d.ts.map +1 -0
  1287. package/dist/bigconsole/renderers/registry/RendererRegistry.d.ts +1 -0
  1288. package/dist/bigconsole/renderers/registry/RendererRegistry.d.ts.map +1 -0
  1289. package/dist/bigconsole/renderers/registry/RendererRegistry.js +2 -0
  1290. package/dist/bigconsole/renderers/registry/RendererRegistry.js.map +1 -0
  1291. package/dist/bigconsole/renderers/types/index.d.ts +1 -0
  1292. package/dist/bigconsole/renderers/types/index.d.ts.map +1 -0
  1293. package/dist/bigconsole/renderers/types/renderer.d.ts +1 -0
  1294. package/dist/bigconsole/renderers/types/renderer.d.ts.map +1 -0
  1295. package/dist/bigconsole/store/dashboardStore.d.ts +1 -0
  1296. package/dist/bigconsole/store/dashboardStore.d.ts.map +1 -0
  1297. package/dist/bigconsole/store/dashboardStore.js +2 -0
  1298. package/dist/bigconsole/store/dashboardStore.js.map +1 -0
  1299. package/dist/bigconsole/store/dataSinkStore.d.ts +1 -0
  1300. package/dist/bigconsole/store/dataSinkStore.d.ts.map +1 -0
  1301. package/dist/bigconsole/store/dataSinkStore.js +2 -0
  1302. package/dist/bigconsole/store/dataSinkStore.js.map +1 -0
  1303. package/dist/bigconsole/store/drilldownStore.d.ts +1 -0
  1304. package/dist/bigconsole/store/drilldownStore.d.ts.map +1 -0
  1305. package/dist/bigconsole/store/drilldownStore.js +2 -0
  1306. package/dist/bigconsole/store/drilldownStore.js.map +1 -0
  1307. package/dist/bigconsole/store/index.d.ts +1 -0
  1308. package/dist/bigconsole/store/index.d.ts.map +1 -0
  1309. package/dist/bigconsole/store/parserStore.d.ts +1 -0
  1310. package/dist/bigconsole/store/parserStore.d.ts.map +1 -0
  1311. package/dist/bigconsole/store/parserStore.js +2 -0
  1312. package/dist/bigconsole/store/parserStore.js.map +1 -0
  1313. package/dist/bigconsole/store/pipelineStore.d.ts +1 -0
  1314. package/dist/bigconsole/store/pipelineStore.d.ts.map +1 -0
  1315. package/dist/bigconsole/store/pipelineStore.js +2 -0
  1316. package/dist/bigconsole/store/pipelineStore.js.map +1 -0
  1317. package/dist/bigconsole/store/widgetStore.d.ts +1 -0
  1318. package/dist/bigconsole/store/widgetStore.d.ts.map +1 -0
  1319. package/dist/bigconsole/store/widgetStore.js +2 -0
  1320. package/dist/bigconsole/store/widgetStore.js.map +1 -0
  1321. package/dist/bigconsole/store/workflowStore.d.ts +1 -0
  1322. package/dist/bigconsole/store/workflowStore.d.ts.map +1 -0
  1323. package/dist/bigconsole/store/workflowStore.js +2 -0
  1324. package/dist/bigconsole/store/workflowStore.js.map +1 -0
  1325. package/dist/bigconsole/types/index.d.ts +3 -17
  1326. package/dist/bigconsole/types/index.d.ts.map +1 -0
  1327. package/dist/bigconsole/utils/alertRules.d.ts +1 -0
  1328. package/dist/bigconsole/utils/alertRules.d.ts.map +1 -0
  1329. package/dist/bigconsole/utils/alertRules.js +2 -0
  1330. package/dist/bigconsole/utils/alertRules.js.map +1 -0
  1331. package/dist/bigconsole/utils/backendError.d.ts +1 -0
  1332. package/dist/bigconsole/utils/backendError.d.ts.map +1 -0
  1333. package/dist/bigconsole/utils/createDialogParam.d.ts +1 -0
  1334. package/dist/bigconsole/utils/createDialogParam.d.ts.map +1 -0
  1335. package/dist/bigconsole/utils/createDialogParam.js +2 -0
  1336. package/dist/bigconsole/utils/createDialogParam.js.map +1 -0
  1337. package/dist/bigconsole/utils/csv.d.ts +1 -0
  1338. package/dist/bigconsole/utils/csv.d.ts.map +1 -0
  1339. package/dist/bigconsole/utils/csv.js +2 -0
  1340. package/dist/bigconsole/utils/csv.js.map +1 -0
  1341. package/dist/bigconsole/utils/dashboardTemplateContent.d.ts +1 -0
  1342. package/dist/bigconsole/utils/dashboardTemplateContent.d.ts.map +1 -0
  1343. package/dist/bigconsole/utils/dashboardTemplateContent.js +2 -0
  1344. package/dist/bigconsole/utils/dashboardTemplateContent.js.map +1 -0
  1345. package/dist/bigconsole/utils/drilldownParams.d.ts +1 -0
  1346. package/dist/bigconsole/utils/drilldownParams.d.ts.map +1 -0
  1347. package/dist/bigconsole/utils/drilldownParams.js +2 -0
  1348. package/dist/bigconsole/utils/drilldownParams.js.map +1 -0
  1349. package/dist/bigconsole/utils/format.d.ts +1 -0
  1350. package/dist/bigconsole/utils/format.d.ts.map +1 -0
  1351. package/dist/bigconsole/utils/format.js +2 -0
  1352. package/dist/bigconsole/utils/format.js.map +1 -0
  1353. package/dist/bigconsole/utils/index.d.ts +1 -2
  1354. package/dist/bigconsole/utils/index.d.ts.map +1 -0
  1355. package/dist/bigconsole/utils/quota.d.ts +1 -0
  1356. package/dist/bigconsole/utils/quota.d.ts.map +1 -0
  1357. package/dist/bigconsole/utils/quota.js +2 -0
  1358. package/dist/bigconsole/utils/quota.js.map +1 -0
  1359. package/dist/bigconsole/utils/semanticTokens.d.ts +1 -0
  1360. package/dist/bigconsole/utils/semanticTokens.d.ts.map +1 -0
  1361. package/dist/bigconsole/utils/semanticTokens.js +2 -0
  1362. package/dist/bigconsole/utils/semanticTokens.js.map +1 -0
  1363. package/dist/bigconsole/utils/templateInstallInputs.d.ts +1 -0
  1364. package/dist/bigconsole/utils/templateInstallInputs.d.ts.map +1 -0
  1365. package/dist/bigconsole/utils/templateInstallInputs.js +2 -0
  1366. package/dist/bigconsole/utils/templateInstallInputs.js.map +1 -0
  1367. package/dist/bigconsole/utils/widgetBinding.d.ts +1 -0
  1368. package/dist/bigconsole/utils/widgetBinding.d.ts.map +1 -0
  1369. package/dist/bigconsole/utils/widgetBinding.js +2 -0
  1370. package/dist/bigconsole/utils/widgetBinding.js.map +1 -0
  1371. package/dist/bigconsole/utils/widgetPositioning.d.ts +1 -0
  1372. package/dist/bigconsole/utils/widgetPositioning.d.ts.map +1 -0
  1373. package/dist/bigconsole/utils/widgetPositioning.js +2 -0
  1374. package/dist/bigconsole/utils/widgetPositioning.js.map +1 -0
  1375. package/dist/bigconsole/utils/widgetTypeMapping.d.ts +1 -0
  1376. package/dist/bigconsole/utils/widgetTypeMapping.d.ts.map +1 -0
  1377. package/dist/bigconsole/utils/widgetTypeMapping.js +2 -0
  1378. package/dist/bigconsole/utils/widgetTypeMapping.js.map +1 -0
  1379. package/dist/bigconsole/workflowOpen.d.ts +1 -0
  1380. package/dist/bigconsole/workflowOpen.d.ts.map +1 -0
  1381. package/dist/bigconsole/workflowOpen.js +2 -0
  1382. package/dist/bigconsole/workflowOpen.js.map +1 -0
  1383. package/dist/constants/permissions.d.ts +1 -0
  1384. package/dist/constants/permissions.d.ts.map +1 -0
  1385. package/dist/constants/permissions.js +2 -0
  1386. package/dist/constants/permissions.js.map +1 -0
  1387. package/dist/generated/global-operations.d.ts +1 -0
  1388. package/dist/generated/global-operations.d.ts.map +1 -0
  1389. package/dist/generated/global-operations.js +2 -0
  1390. package/dist/generated/global-operations.js.map +1 -0
  1391. package/dist/generated/global-types.d.ts +1 -0
  1392. package/dist/generated/global-types.d.ts.map +1 -0
  1393. package/dist/generated/wspace-operations.d.ts +9 -138
  1394. package/dist/generated/wspace-operations.d.ts.map +1 -0
  1395. package/dist/generated/wspace-operations.js +242 -281
  1396. package/dist/generated/wspace-operations.js.map +1 -0
  1397. package/dist/generated/wspace-types.d.ts +1 -0
  1398. package/dist/generated/wspace-types.d.ts.map +1 -0
  1399. package/dist/generated/wspace-types.js +2 -0
  1400. package/dist/generated/wspace-types.js.map +1 -0
  1401. package/dist/index.d.ts +1 -0
  1402. package/dist/index.d.ts.map +1 -0
  1403. package/dist/node_modules/@e965/xlsx/xlsx.js +2 -0
  1404. package/dist/node_modules/@e965/xlsx/xlsx.js.map +1 -0
  1405. package/dist/node_modules/pdfjs-dist/build/pdf.js +2 -0
  1406. package/dist/node_modules/pdfjs-dist/build/pdf.js.map +1 -0
  1407. package/dist/shared/hooks/useTr.d.ts +1 -0
  1408. package/dist/shared/hooks/useTr.d.ts.map +1 -0
  1409. package/dist/shared/hooks/useTr.js +2 -0
  1410. package/dist/shared/hooks/useTr.js.map +1 -0
  1411. package/dist/stories/DashboardGuide.stories.d.ts +15 -0
  1412. package/dist/stories/DashboardGuide.stories.d.ts.map +1 -0
  1413. package/dist/stories/DataSinkStatusBadge.stories.d.ts +12 -0
  1414. package/dist/stories/DataSinkStatusBadge.stories.d.ts.map +1 -0
  1415. package/dist/stories/GaugeWidget.stories.d.ts +58 -0
  1416. package/dist/stories/GaugeWidget.stories.d.ts.map +1 -0
  1417. package/dist/stories/KPIComparisonWidget.stories.d.ts +76 -0
  1418. package/dist/stories/KPIComparisonWidget.stories.d.ts.map +1 -0
  1419. package/dist/stories/LiveCanvasToggle.stories.d.ts +9 -0
  1420. package/dist/stories/LiveCanvasToggle.stories.d.ts.map +1 -0
  1421. package/dist/stories/MetricCardWidget.stories.d.ts +88 -0
  1422. package/dist/stories/MetricCardWidget.stories.d.ts.map +1 -0
  1423. package/dist/stories/ProgressWidget.stories.d.ts +48 -0
  1424. package/dist/stories/ProgressWidget.stories.d.ts.map +1 -0
  1425. package/dist/stories/SetupStateBadge.stories.d.ts +12 -0
  1426. package/dist/stories/SetupStateBadge.stories.d.ts.map +1 -0
  1427. package/dist/translations/en.d.ts +1 -0
  1428. package/dist/translations/en.d.ts.map +1 -0
  1429. package/dist/utils/nativeBridge.d.ts +1 -0
  1430. package/dist/utils/nativeBridge.d.ts.map +1 -0
  1431. package/package.json +6 -11
  1432. package/dist/bigconsole/components/widgets/iframe-widget/framePolicy.d.ts +0 -20
  1433. package/dist/bigconsole/components/widgets/iframe-widget/framePolicy.js +0 -10
  1434. package/dist/bigconsole/renderers/adapters/adaptiveCardContent.d.ts +0 -29
  1435. package/dist/bigconsole/renderers/adapters/adaptiveCardContent.js +0 -51
  1436. package/dist/bigconsole/utils/dataSinkPayload.d.ts +0 -48
  1437. package/dist/bigconsole/utils/dataSinkPayload.js +0 -38
  1438. package/dist/bigconsole/utils/safeUrl.d.ts +0 -79
  1439. package/dist/bigconsole/utils/safeUrl.js +0 -93
  1440. package/dist/bigconsole/utils/sanitizeHtml.d.ts +0 -16
  1441. package/dist/bigconsole/utils/sanitizeHtml.js +0 -67
  1442. package/dist/node_modules/dompurify/dist/purify.es.js +0 -800
@@ -165,3 +165,5 @@ var a = e(function({ config: e, onChange: a }) {
165
165
  });
166
166
  //#endregion
167
167
  export { a as default };
168
+
169
+ //# sourceMappingURL=MetricCardConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MetricCardConfig.js","names":[],"sources":["../../../../../src/bigconsole/components/widgets/metric-card/MetricCardConfig.tsx"],"sourcesContent":["/**\n * MetricCardConfig Component\n *\n * Configuration panel for MetricCard widgets.\n */\n\nimport { type FC, memo, useCallback } from 'react';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport type { MetricCardConfig as ConfigType } from '../../../types';\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface MetricCardConfigProps {\n /** Current configuration */\n config: ConfigType;\n /** Callback when config changes */\n onChange: (config: ConfigType) => void;\n}\n\n// ============================================================================\n// Component\n// ============================================================================\n\nexport const MetricCardConfig: FC<MetricCardConfigProps> = memo(function MetricCardConfig({ config, onChange }) {\n const { t } = useI18n();\n const handleChange = useCallback(\n <K extends keyof ConfigType>(key: K, value: ConfigType[K]) => {\n onChange({ ...config, [key]: value });\n },\n [config, onChange]\n );\n\n return (\n <div className=\"min-w-0 space-y-form-gap\">\n {/* Value Field */}\n <div>\n <label className=\"block text-sm font-medium text-text-primary mb-1\">\n {t('bigconsole.widget.config.metricCard.valueField.label', 'Value Field')}\n </label>\n <input\n type=\"text\"\n value={((config as unknown as Record<string, unknown>).valueField as string) || ''}\n onChange={(e) => handleChange('valueField' as keyof ConfigType, e.target.value as never)}\n placeholder={t(\n 'bigconsole.widget.config.metricCard.valueField.placeholder',\n 'e.g., totalSales, value, amount'\n )}\n className=\"\n w-full px-3 py-2\n text-sm text-text-primary\n bg-bg-surface\n border border-border-default\n rounded-md\n focus:outline-none focus:ring-2 focus:ring-action-primary-bg\n \"\n />\n <p className=\"text-xs text-text-secondary mt-1\">\n {t(\n 'bigconsole.widget.config.metricCard.valueField.help',\n 'Field name to extract from data (leave empty for auto-detect)'\n )}\n </p>\n </div>\n\n {/* Subtitle */}\n <div>\n <label className=\"block text-sm font-medium text-text-primary mb-1\">\n {t('bigconsole.widget.config.metricCard.subtitle.label', 'Subtitle')}\n </label>\n <input\n type=\"text\"\n value={config.subtitle || ''}\n onChange={(e) => handleChange('subtitle', e.target.value)}\n placeholder={t('bigconsole.widget.config.metricCard.subtitle.placeholder', 'e.g., Total Revenue')}\n className=\"\n w-full px-3 py-2\n text-sm text-text-primary\n bg-bg-surface\n border border-border-default\n rounded-md\n focus:outline-none focus:ring-2 focus:ring-action-primary-bg\n \"\n />\n </div>\n\n {/* Format */}\n <div>\n <label className=\"block text-sm font-medium text-text-primary mb-1\">\n {t('bigconsole.widget.config.metricCard.format.label', 'Value Format')}\n </label>\n <select\n value={config.format || 'auto'}\n onChange={(e) => handleChange('format', e.target.value as ConfigType['format'])}\n className=\"\n w-full px-3 py-2\n text-sm text-text-primary\n bg-bg-surface\n border border-border-default\n rounded-md\n focus:outline-none focus:ring-2 focus:ring-action-primary-bg\n \"\n >\n <option value=\"auto\">{t('bigconsole.widget.config.metricCard.format.auto', 'Auto (from data)')}</option>\n <option value=\"number\">{t('bigconsole.widget.config.metricCard.format.number', 'Number')}</option>\n <option value=\"currency\">{t('bigconsole.widget.config.metricCard.format.currency', 'Currency')}</option>\n <option value=\"percentage\">{t('bigconsole.widget.config.metricCard.format.percentage', 'Percentage')}</option>\n <option value=\"compact\">{t('bigconsole.widget.config.metricCard.format.compact', 'Compact (1K, 1M)')}</option>\n </select>\n </div>\n\n {/* Prefix & Suffix */}\n <div className=\"grid grid-cols-1 gap-3 sm:grid-cols-2\">\n <div>\n <label className=\"block text-sm font-medium text-text-primary mb-1\">\n {t('bigconsole.widget.config.metricCard.prefix.label', 'Prefix')}\n </label>\n <input\n type=\"text\"\n value={config.prefix || ''}\n onChange={(e) => handleChange('prefix', e.target.value)}\n placeholder={t('bigconsole.widget.config.metricCard.prefix.placeholder', 'e.g., $')}\n className=\"\n w-full px-3 py-2\n text-sm text-text-primary\n bg-bg-surface\n border border-border-default\n rounded-md\n focus:outline-none focus:ring-2 focus:ring-action-primary-bg\n \"\n />\n </div>\n <div>\n <label className=\"block text-sm font-medium text-text-primary mb-1\">\n {t('bigconsole.widget.config.metricCard.suffix.label', 'Suffix')}\n </label>\n <input\n type=\"text\"\n value={config.suffix || ''}\n onChange={(e) => handleChange('suffix', e.target.value)}\n placeholder={t('bigconsole.widget.config.metricCard.suffix.placeholder', 'e.g., users')}\n className=\"\n w-full px-3 py-2\n text-sm text-text-primary\n bg-bg-surface\n border border-border-default\n rounded-md\n focus:outline-none focus:ring-2 focus:ring-action-primary-bg\n \"\n />\n </div>\n </div>\n\n {/* Comparison Label */}\n <div>\n <label className=\"block text-sm font-medium text-text-primary mb-1\">\n {t('bigconsole.widget.config.metricCard.comparisonLabel.label', 'Comparison Label')}\n </label>\n <input\n type=\"text\"\n value={config.comparisonLabel || ''}\n onChange={(e) => handleChange('comparisonLabel', e.target.value)}\n placeholder={t('bigconsole.widget.config.metricCard.comparisonLabel.placeholder', 'e.g., vs last week')}\n className=\"\n w-full px-3 py-2\n text-sm text-text-primary\n bg-bg-surface\n border border-border-default\n rounded-md\n focus:outline-none focus:ring-2 focus:ring-action-primary-bg\n \"\n />\n </div>\n\n {/* Toggle Options */}\n <div\n role=\"group\"\n aria-label=\"Display options\"\n className=\"space-y-3 border-t border-[var(--color-border-subtle)] pt-form-gap\"\n >\n {/* Toggles are a different KIND of control from the field stack above,\n so they get their own labelled group instead of being visually\n identical to it (BOFF-5636). */}\n <p className=\"text-xs font-bold uppercase tracking-wider text-text-secondary\">Display options</p>\n <label className=\"flex items-center gap-3\">\n <input\n type=\"checkbox\"\n checked={config.showTrend !== false}\n onChange={(e) => handleChange('showTrend', e.target.checked)}\n className=\"\n w-4 h-4\n text-action-primary-bg\n bg-bg-surface\n border-border-default\n rounded\n focus:ring-action-primary-bg\n \"\n />\n <span className=\"text-sm text-text-primary\">\n {t('bigconsole.widget.config.metricCard.showTrend', 'Show trend indicator')}\n </span>\n </label>\n\n <label className=\"flex items-center gap-3\">\n <input\n type=\"checkbox\"\n checked={config.showComparison !== false}\n onChange={(e) => handleChange('showComparison', e.target.checked)}\n className=\"\n w-4 h-4\n text-action-primary-bg\n bg-bg-surface\n border-border-default\n rounded\n focus:ring-action-primary-bg\n \"\n />\n <span className=\"text-sm text-text-primary\">\n {t('bigconsole.widget.config.metricCard.showComparison', 'Show comparison badge')}\n </span>\n </label>\n\n <label className=\"flex items-center gap-3\">\n <input\n type=\"checkbox\"\n checked={config.showSparkline !== false}\n onChange={(e) => handleChange('showSparkline', e.target.checked)}\n className=\"\n w-4 h-4\n text-action-primary-bg\n bg-bg-surface\n border-border-default\n rounded\n focus:ring-action-primary-bg\n \"\n />\n <span className=\"text-sm text-text-primary\">\n {t('bigconsole.widget.config.metricCard.showSparkline', 'Show sparkline chart')}\n </span>\n </label>\n\n <label className=\"flex items-center gap-3\">\n <input\n type=\"checkbox\"\n checked={config.positiveIsGood !== false}\n onChange={(e) => handleChange('positiveIsGood', e.target.checked)}\n className=\"\n w-4 h-4\n text-action-primary-bg\n bg-bg-surface\n border-border-default\n rounded\n focus:ring-action-primary-bg\n \"\n />\n <span className=\"text-sm text-text-primary\">\n {t('bigconsole.widget.config.metricCard.positiveIsGood', 'Positive change is good')}\n </span>\n </label>\n </div>\n </div>\n );\n});\n\nexport default MetricCardConfig;\n"],"mappings":"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"}
@@ -33,3 +33,4 @@ export interface MetricCardData {
33
33
  }
34
34
  export declare const MetricCardWidget: FC<MetricCardWidgetProps>;
35
35
  export default MetricCardWidget;
36
+ //# sourceMappingURL=MetricCardWidget.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MetricCardWidget.d.ts","sourceRoot":"","sources":["../../../../../src/bigconsole/components/widgets/metric-card/MetricCardWidget.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,EAA8B,MAAM,OAAO,CAAC;AAC5D,OAAO,KAAK,EAAE,MAAM,EAAoB,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAkB,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvE,OAAO,EAAkB,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAS3E,MAAM,WAAW,qBAAqB;IACpC,2BAA2B;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,mBAAmB;IACnB,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,kCAAkC;IAClC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,+CAA+C;IAC/C,WAAW,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;CAC/D;AAED,MAAM,WAAW,cAAc;IAC7B,+BAA+B;IAC/B,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,oCAAoC;IACpC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,sCAAsC;IACtC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,+BAA+B;IAC/B,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,4BAA4B;IAC5B,aAAa,CAAC,EAAE,kBAAkB,EAAE,CAAC;IACrC,kCAAkC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sCAAsC;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uCAAuC;IACvC,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AA+ID,eAAO,MAAM,gBAAgB,EAAE,EAAE,CAAC,qBAAqB,CAmTrD,CAAC;AAEH,eAAe,gBAAgB,CAAC"}
@@ -218,3 +218,5 @@ var b = u(function({ widget: u, data: h, onClick: b, onDrilldown: x }) {
218
218
  });
219
219
  //#endregion
220
220
  export { b as default };
221
+
222
+ //# sourceMappingURL=MetricCardWidget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MetricCardWidget.js","names":[],"sources":["../../../../../src/bigconsole/components/widgets/metric-card/MetricCardWidget.tsx"],"sourcesContent":["/**\n * MetricCardWidget Component\n *\n * Displays a single KPI/metric with trend, comparison, and optional sparkline.\n */\n\nimport { type FC, memo, useMemo, useCallback } from 'react';\nimport type { Widget, MetricCardConfig } from '../../../types';\nimport { TrendIndicator, type TrendDirection } from './TrendIndicator';\nimport { ComparisonBadge } from './ComparisonBadge';\nimport { SparklineChart, type SparklineDataPoint } from './SparklineChart';\nimport { firstObjectRow, inferValueField, unwrapRows } from '../utils/inferFields';\nimport { resolveConditionalStyle, conditionalStyleToClassName } from '../utils/conditionalFormat';\nimport { getTargetProgress, clampProgressWidth } from '../utils/targetProgress';\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface MetricCardWidgetProps {\n /** Widget configuration */\n widget: Widget;\n /** Fetched data */\n data?: MetricCardData;\n /** Click handler for drilldown */\n onClick?: () => void;\n /** Drilldown handler - receives metric data */\n onDrilldown?: (selectedData: Record<string, unknown>) => void;\n}\n\nexport interface MetricCardData {\n /** Primary value to display */\n value: number | string;\n /** Previous value for comparison */\n previousValue?: number;\n /** Percentage change from previous */\n changePercent?: number;\n /** Trend direction override */\n trend?: TrendDirection;\n /** Sparkline data points */\n sparklineData?: SparklineDataPoint[];\n /** Target value for comparison */\n target?: number;\n /** Unit label (e.g., \"users\", \"$\") */\n unit?: string;\n /** Whether the metric is a currency */\n isCurrency?: boolean;\n}\n\n// ============================================================================\n// Helpers\n// ============================================================================\n\n/**\n * ISO-4217 codes are exactly three letters (\"USD\"); anything else is a display\n * label (\"users\", \"ms\").\n *\n * This regex is also the safety guard on untrusted parser data: `Intl.NumberFormat`\n * throws `RangeError` for a *malformed* currency (anything that is not exactly\n * three ASCII letters — e.g. `'ms'`), but accepts any well-formed code and simply\n * renders it verbatim when unregistered (`'RPS'` -> \"RPS 243.00\"). Returning\n * undefined for everything that is not three ASCII letters means a malformed\n * value can never reach `Intl`, so no try/catch is needed downstream. Keep this\n * predicate at least as strict if it is ever changed.\n */\nfunction currencyCodeFrom(unit?: string): string | undefined {\n return unit !== undefined && /^[a-z]{3}$/i.test(unit) ? unit.toUpperCase() : undefined;\n}\n\ninterface ResolvedFormat {\n style: 'currency' | 'percentage' | 'compact' | 'number';\n currency: string;\n /** Payload unit rendered as a trailing label; undefined when the style or config already covers it. */\n unitSuffix?: string;\n}\n\n/**\n * Decide the numeric style, honouring the payload without ever overriding the user.\n *\n * `MetricCardData` documents `unit` and `isCurrency`, but nothing read them — a\n * parser emitting `{value: 482350.75, unit: \"USD\", isCurrency: true}` rendered a\n * bare \"482,350.75\". They cannot simply take precedence though: WidgetRegistry\n * seeds `format` onto every card, so a persisted `'number'` is indistinguishable\n * from a deliberate choice. `'auto'` is the sentinel that defers to the payload.\n */\nfunction resolveFormat(config?: MetricCardConfig, data?: MetricCardData): ResolvedFormat {\n const configured = config?.format;\n const explicit = configured !== undefined && configured !== 'auto';\n\n const style: ResolvedFormat['style'] = explicit\n ? configured === 'currency' || configured === 'percentage' || configured === 'compact'\n ? configured\n : 'number' // 'number' and legacy 'decimal' both render as a plain number.\n : data?.isCurrency === true\n ? 'currency'\n : 'number';\n\n return {\n style,\n currency: currencyCodeFrom(data?.unit) ?? 'USD',\n // A currency render already carries its symbol, and config.suffix is the\n // user's own unit channel — neither should be doubled up.\n unitSuffix: style === 'currency' || config?.suffix ? undefined : data?.unit,\n };\n}\n\n/**\n * Format a number based on configuration\n */\nfunction formatValue(value: number | string, config: MetricCardConfig | undefined, resolved: ResolvedFormat): string {\n if (typeof value === 'string') return value;\n\n const { prefix, suffix, decimalPlaces } = config || {};\n const format = resolved.style;\n\n // `decimalPlaces` is seeded onto every metric card by WidgetRegistry and is\n // set explicitly by templated/seeded dashboards, so it must drive the\n // fraction digits. Clamp to the Intl-legal 0–20 range; when a legacy widget\n // omits the key we keep the previous per-format defaults.\n const fixedDigits =\n typeof decimalPlaces === 'number' && Number.isFinite(decimalPlaces)\n ? Math.min(Math.max(Math.trunc(decimalPlaces), 0), 20)\n : undefined;\n\n let formatted: string;\n\n switch (format) {\n case 'currency':\n formatted = new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: resolved.currency,\n minimumFractionDigits: fixedDigits ?? 0,\n maximumFractionDigits: fixedDigits ?? 2,\n }).format(value);\n break;\n\n case 'percentage':\n formatted = `${(value * 100).toFixed(fixedDigits ?? 1)}%`;\n break;\n\n case 'compact':\n formatted = new Intl.NumberFormat('en-US', {\n notation: 'compact',\n minimumFractionDigits: fixedDigits,\n maximumFractionDigits: fixedDigits ?? 1,\n }).format(value);\n break;\n\n case 'number':\n default:\n formatted = new Intl.NumberFormat('en-US', {\n minimumFractionDigits: fixedDigits,\n maximumFractionDigits: fixedDigits ?? 2,\n }).format(value);\n }\n\n // Apply prefix/suffix if provided\n if (prefix) formatted = `${prefix}${formatted}`;\n if (suffix) formatted = `${formatted}${suffix}`;\n\n // Payload unit (\"users\", \"ms\"). The endsWith guard avoids \"97.3% %\" when the\n // style already emits the symbol.\n if (resolved.unitSuffix && !formatted.endsWith(resolved.unitSuffix)) {\n formatted = `${formatted} ${resolved.unitSuffix}`;\n }\n\n return formatted;\n}\n\n/**\n * Calculate trend direction from change percent\n */\nfunction calculateTrend(changePercent?: number): TrendDirection {\n if (changePercent === undefined || changePercent === 0) return 'flat';\n return changePercent > 0 ? 'up' : 'down';\n}\n\n/**\n * Get sparkline color based on trend\n */\nfunction getSparklineColor(trend: TrendDirection, positiveIsGood: boolean): 'success' | 'error' | 'muted' {\n if (trend === 'flat') return 'muted';\n const isGood = positiveIsGood ? trend === 'up' : trend === 'down';\n return isGood ? 'success' : 'error';\n}\n\n// ============================================================================\n// Component\n// ============================================================================\n\nexport const MetricCardWidget: FC<MetricCardWidgetProps> = memo(function MetricCardWidget({\n widget,\n data: rawData,\n onClick,\n onDrilldown,\n}) {\n const config = widget.config as unknown as MetricCardConfig | undefined;\n\n // Normalize data - extract value from object if valueField is configured\n const data = useMemo((): MetricCardData | undefined => {\n if (!rawData) return undefined;\n\n // Helper to get nested value using dot notation (e.g., \"summary.totalSales\")\n const getNestedValue = (obj: Record<string, unknown>, path: string): unknown => {\n return path.split('.').reduce((current, key) => {\n return current && typeof current === 'object' ? (current as Record<string, unknown>)[key] : undefined;\n }, obj as unknown);\n };\n\n // A parser can return a bare scalar (e.g. `. | length` -> 127). Handle that\n // up front: the `in` operator below throws \"Cannot use 'in' operator to\n // search for 'value' in 127\" when rawData is a primitive, which the widget\n // error boundary surfaces as \"Failed to render\" (BOFF-4110).\n if (typeof rawData === 'number' || typeof rawData === 'string') {\n return { value: rawData };\n }\n\n // An explicit `config.valueField` mapping is authoritative and MUST be\n // resolved BEFORE the `value` pass-through below. Otherwise a payload that\n // merely happens to carry a top-level `value` silently overrides the field\n // the user picked in the inspector — e.g. `{status, value, p95LatencyMs}`\n // with valueField \"p95LatencyMs\" rendered the health flag, not the latency.\n const valueField = (config as unknown as Record<string, unknown> | undefined)?.valueField as string | undefined;\n if (valueField && typeof rawData === 'object') {\n const envelope = rawData as unknown as Record<string, unknown>;\n const extractedValue = getNestedValue(envelope, valueField);\n if (extractedValue !== undefined) {\n // Also try to extract previousValue if previousValueField is configured\n const previousValueField = (config as unknown as Record<string, unknown> | undefined)?.previousValueField as\n string | undefined;\n const previousValue = previousValueField\n ? (getNestedValue(envelope, previousValueField) as number | undefined)\n : undefined;\n\n // Spread the envelope first so sibling presentation fields the\n // pass-through used to supply (target, unit, trend, sparklineData…)\n // survive when a valueField mapping is configured.\n // A configured previousValueField derives the comparison from the\n // mapped field. Without one, the envelope's own previousValue /\n // changePercent stand — assigning undefined here would spread the\n // envelope and then immediately blank the very fields it supplied.\n // Guard the divisor — a previousValue of 0 would yield Infinity and\n // render \"Infinity%\" in the comparison badge. When we cannot compute a\n // change, keep whatever the envelope already carried rather than\n // blanking it: a source may legitimately pre-compute a change against a\n // zero baseline.\n const computedChange =\n previousValue !== undefined &&\n previousValue !== 0 &&\n Number.isFinite(previousValue) &&\n typeof extractedValue === 'number'\n ? ((extractedValue - previousValue) / previousValue) * 100\n : undefined;\n const envelopeChange = (rawData as MetricCardData).changePercent;\n const derivedComparison =\n previousValue !== undefined\n ? {\n previousValue,\n changePercent: computedChange ?? (Number.isFinite(envelopeChange) ? envelopeChange : undefined),\n }\n : {};\n\n return {\n ...(rawData as MetricCardData),\n value: extractedValue as number | string,\n ...derivedComparison,\n };\n }\n }\n\n // If data already has 'value' property, use it directly. Guard the `in`\n // operator with an object check — it only accepts an object on the RHS.\n if (typeof rawData === 'object' && 'value' in rawData && rawData.value !== undefined) {\n return rawData as MetricCardData;\n }\n\n // Try common field names at top level\n const commonFields = ['value', 'total', 'amount', 'count', 'sum', 'totalSales', 'totalRevenue', 'totalOrders'];\n for (const field of commonFields) {\n if (typeof rawData === 'object' && field in rawData) {\n const val = (rawData as unknown as Record<string, unknown>)[field];\n if (typeof val === 'number' || typeof val === 'string') {\n return { value: val };\n }\n }\n }\n\n // Try looking in nested 'summary' object (common pattern)\n if (typeof rawData === 'object' && 'summary' in rawData) {\n const summary = (rawData as Record<string, unknown>).summary as Record<string, unknown> | undefined;\n if (summary && typeof summary === 'object') {\n for (const field of commonFields) {\n if (field in summary) {\n const val = summary[field];\n if (typeof val === 'number' || typeof val === 'string') {\n return { value: val };\n }\n }\n }\n }\n }\n\n // If rawData is a number or string directly, use it\n if (typeof rawData === 'number' || typeof rawData === 'string') {\n return { value: rawData };\n }\n\n // BOFF-2246 smart default: if rawData is an array (or envelope around an\n // array) with object rows, use the configured valueField if it resolves\n // on any row (supports dotted paths like \"metrics.revenue\") — otherwise\n // pick the first numeric field from row[0]. This path only fires when\n // the earlier top-level extraction didn't find anything, but an explicit\n // `config.valueField` (flat or dotted) must always win over inference.\n const firstRow = firstObjectRow(rawData);\n if (firstRow) {\n const configuredField = (config as unknown as Record<string, unknown> | undefined)?.valueField as\n string | undefined;\n if (configuredField) {\n // Configured field is authoritative. Scan every row for it so sparse\n // envelopes like `{data:[{id:1},{revenue:120}]}` with\n // `valueField:\"revenue\"` still resolve. If no row carries it, return\n // undefined rather than substituting an unrelated numeric column\n // from row[0] (that would silently misrepresent the user's mapping).\n const rows = unwrapRows(rawData) ?? [firstRow];\n for (const r of rows) {\n if (r && typeof r === 'object') {\n const resolved = getNestedValue(r as Record<string, unknown>, configuredField);\n if (typeof resolved === 'number' || typeof resolved === 'string') {\n return { value: resolved };\n }\n }\n }\n return undefined;\n }\n const inferredField = inferValueField(firstRow);\n if (inferredField) {\n const val = firstRow[inferredField];\n if (typeof val === 'number' || typeof val === 'string') {\n return { value: val };\n }\n }\n }\n\n return undefined;\n }, [rawData, config]);\n\n // Calculate derived values\n const trend = useMemo(() => {\n return data?.trend || calculateTrend(data?.changePercent);\n }, [data?.trend, data?.changePercent]);\n\n // The arrow is renderable when the payload carries an explicit direction\n // override OR a change percentage to derive one from. Gating solely on\n // `changePercent` meant a `trend`-only payload — a documented field of\n // MetricCardData, and one the sparkline colour and drilldown payload already\n // honour — rendered no indicator at all despite `showTrend` being enabled.\n // Without either field `trend` collapses to a meaningless 'flat', so we\n // still render nothing.\n const hasTrendSignal = data?.trend !== undefined || data?.changePercent !== undefined;\n\n const positiveIsGood = config?.positiveIsGood ?? true;\n\n const resolvedFormat = useMemo(() => resolveFormat(config, data), [config, data]);\n\n const formattedValue = useMemo(() => {\n // Treat 0 / \"\" as real values — only a missing value renders the em dash.\n // (`if (!data?.value)` would wrongly blank out a legitimate 0, e.g. an ED\n // boarding-compliance of 0% or an available-bed count of 0.)\n if (data?.value === undefined || data?.value === null) return '—';\n return formatValue(data.value, config, resolvedFormat);\n }, [data?.value, config, resolvedFormat]);\n\n // Null whenever no meaningful ratio exists, which also gates the whole\n // target block. Resolving `valueField` before the `value` pass-through made\n // a numeric value reachable alongside a `target: 0` from the same envelope,\n // so the previously-unreachable division now needs a real guard.\n const targetProgress = useMemo(() => getTargetProgress(data?.value, data?.target), [data?.value, data?.target]);\n\n const sparklineColor = useMemo(() => {\n return getSparklineColor(trend, positiveIsGood);\n }, [trend, positiveIsGood]);\n\n // Conditional formatting on the metric value (threshold-driven color, not\n // just trend direction). Falls back to the default primary text color.\n const valueConditionalClass = useMemo(() => {\n const style = resolveConditionalStyle(data?.value, config?.conditionalRules);\n return conditionalStyleToClassName(style);\n }, [data?.value, config?.conditionalRules]);\n\n // Handle click\n const handleClick = useCallback(() => {\n // Support both legacy onClick and new onDrilldown\n if (onDrilldown) {\n onDrilldown({\n value: data?.value,\n changePercent: data?.changePercent,\n trend,\n target: data?.target,\n });\n } else if (onClick && widget.drilldowns?.length) {\n onClick();\n }\n }, [onClick, onDrilldown, widget.drilldowns, data, trend]);\n\n // Determine if clickable\n const isClickable = Boolean(onDrilldown || (onClick && widget.drilldowns?.length));\n\n return (\n <div\n className={`\n flex min-w-0 flex-col h-full p-4\n ${isClickable ? 'cursor-pointer hover:bg-bg-sunken/50 transition-colors' : ''}\n `}\n style={{ containerType: 'inline-size' }}\n onClick={handleClick}\n role={isClickable ? 'button' : undefined}\n tabIndex={isClickable ? 0 : undefined}\n onKeyDown={(e) => {\n if (isClickable && (e.key === 'Enter' || e.key === ' ')) {\n e.preventDefault();\n handleClick();\n }\n }}\n >\n {/* Subtitle/Label */}\n {config?.subtitle && <p className=\"text-xs text-text-secondary mb-1 truncate\">{config.subtitle}</p>}\n\n {/* Main Value */}\n <div className=\"flex min-w-0 flex-wrap items-baseline gap-2 mb-2\">\n <span\n className={`min-w-0 max-w-full [overflow-wrap:anywhere] font-semibold tracking-tight ${valueConditionalClass || 'text-text-primary'}`}\n style={{ fontSize: 'clamp(1rem, 12cqi, 1.875rem)' }}\n title={formattedValue}\n >\n {formattedValue}\n </span>\n\n {/* Trend Indicator (inline) */}\n {config?.showTrend !== false && hasTrendSignal && (\n <TrendIndicator direction={trend} size=\"md\" positiveIsGood={positiveIsGood} />\n )}\n </div>\n\n {/* Comparison Badge */}\n {config?.showComparison !== false && data?.changePercent !== undefined && (\n <div className=\"mb-3\">\n <ComparisonBadge\n value={data.changePercent}\n label={config?.comparisonLabel}\n positiveIsGood={positiveIsGood}\n size=\"sm\"\n />\n </div>\n )}\n\n {/* Target Progress */}\n {targetProgress !== null && data?.target !== undefined && (\n <div className=\"mb-3\">\n <div className=\"flex justify-between text-xs text-text-secondary mb-1\">\n <span>Target: {formatValue(data.target, config, resolvedFormat)}</span>\n <span>{targetProgress.toFixed(0)}%</span>\n </div>\n <div className=\"h-1.5 bg-bg-sunken rounded-full overflow-hidden\">\n <div\n className={`h-full rounded-full transition-all ${\n targetProgress >= 100 ? 'bg-status-success-bg' : 'bg-action-primary-bg'\n }`}\n style={{\n // Clamp both ends — a negative value would otherwise emit a\n // negative width, which the browser drops entirely.\n width: `${clampProgressWidth(targetProgress)}%`,\n }}\n />\n </div>\n </div>\n )}\n\n {/* Sparkline */}\n {config?.showSparkline !== false && data?.sparklineData?.length ? (\n <div className=\"mt-auto pt-2\">\n <SparklineChart data={data.sparklineData} width={120} height={32} color={sparklineColor} showFill />\n </div>\n ) : null}\n\n {/* Drilldown Indicator */}\n {isClickable && (\n <div className=\"mt-auto pt-2 flex items-center justify-end\">\n <span className=\"text-xs text-text-secondary flex items-center gap-1\">\n View details\n <svg className=\"w-3 h-3\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M9 5l7 7-7 7\" />\n </svg>\n </span>\n </div>\n )}\n </div>\n );\n});\n\nexport default MetricCardWidget;\n"],"mappings":"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"}
@@ -20,3 +20,4 @@ export interface SparklineChartProps {
20
20
  }
21
21
  export declare const SparklineChart: FC<SparklineChartProps>;
22
22
  export default SparklineChart;
23
+ //# sourceMappingURL=SparklineChart.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SparklineChart.d.ts","sourceRoot":"","sources":["../../../../../src/bigconsole/components/widgets/metric-card/SparklineChart.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,EAAiB,MAAM,OAAO,CAAC;AAG/C,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,oCAAoC;IACpC,IAAI,EAAE,kBAAkB,EAAE,CAAC;IAC3B,yBAAyB;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0BAA0B;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uCAAuC;IACvC,KAAK,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC;IAC9D,oCAAoC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mBAAmB;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAyBD,eAAO,MAAM,cAAc,EAAE,EAAE,CAAC,mBAAmB,CAqGjD,CAAC;AAEH,eAAe,cAAc,CAAC"}
@@ -99,3 +99,5 @@ var a = {
99
99
  });
100
100
  //#endregion
101
101
  export { o as default };
102
+
103
+ //# sourceMappingURL=SparklineChart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SparklineChart.js","names":[],"sources":["../../../../../src/bigconsole/components/widgets/metric-card/SparklineChart.tsx"],"sourcesContent":["/**\n * SparklineChart Component\n *\n * Mini trend chart for metric cards.\n */\n\nimport { type FC, memo, useMemo } from 'react';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\n\nexport interface SparklineDataPoint {\n value: number;\n timestamp?: string;\n}\n\nexport interface SparklineChartProps {\n /** Data points for the sparkline */\n data: SparklineDataPoint[];\n /** Width of the chart */\n width?: number;\n /** Height of the chart */\n height?: number;\n /** Line color (uses semantic token) */\n color?: 'primary' | 'success' | 'error' | 'warning' | 'muted';\n /** Whether to show the fill area */\n showFill?: boolean;\n /** Stroke width */\n strokeWidth?: number;\n}\n\nconst COLOR_CLASSES = {\n primary: {\n stroke: 'stroke-action-primary-bg',\n fill: 'fill-action-primary-bg/20',\n },\n success: {\n stroke: 'stroke-status-success-bg',\n fill: 'fill-status-success-bg/20',\n },\n error: {\n stroke: 'stroke-status-error-bg',\n fill: 'fill-status-error-bg/20',\n },\n warning: {\n stroke: 'stroke-status-warning-bg',\n fill: 'fill-status-warning-bg/20',\n },\n muted: {\n stroke: 'stroke-text-secondary',\n fill: 'fill-text-secondary/10',\n },\n};\n\nexport const SparklineChart: FC<SparklineChartProps> = memo(function SparklineChart({\n data,\n width = 100,\n height = 32,\n color = 'primary',\n showFill = true,\n strokeWidth = 2,\n}) {\n const { t } = useI18n();\n const pathData = useMemo(() => {\n if (!data.length) return { line: '', area: '', end: null };\n\n // Only finite numbers can be plotted. A non-numeric point (a string,\n // null or NaN coming out of a parser) would NaN-poison min/max — and\n // `NaN - NaN || 1` silently collapses the range to 1 — blanking the whole\n // series. Drop such points instead.\n // reduce, not spread: a long series would overflow the call stack.\n const values = data.reduce<number[]>((acc, d) => {\n if (typeof d.value === 'number' && Number.isFinite(d.value)) acc.push(d.value);\n return acc;\n }, []);\n if (!values.length) return { line: '', area: '', end: null };\n\n const min = values.reduce((a, b) => Math.min(a, b), Infinity);\n const max = values.reduce((a, b) => Math.max(a, b), -Infinity);\n const range = max - min || 1;\n\n const padding = strokeWidth;\n const chartWidth = width - padding * 2;\n const chartHeight = height - padding * 2;\n\n // A single point has no span to divide by — `i / 0` is NaN, which makes\n // every coordinate invalid. Draw it centred instead.\n const lastIndex = values.length - 1;\n const points = values.map((value, i) => {\n const x = padding + (lastIndex === 0 ? chartWidth / 2 : (i / lastIndex) * chartWidth);\n const y = padding + chartHeight - ((value - min) / range) * chartHeight;\n return { x, y };\n });\n\n // Create line path\n const linePath = points.map((p, i) => `${i === 0 ? 'M' : 'L'} ${p.x} ${p.y}`).join(' ');\n\n const end = points[points.length - 1];\n\n // Create area path (closed shape for fill)\n const areaPath = `\n ${linePath}\n L ${end.x} ${height - padding}\n L ${padding} ${height - padding}\n Z\n `;\n\n return { line: linePath, area: areaPath, end };\n }, [data, width, height, strokeWidth]);\n\n // `end` is null exactly when there is nothing plottable — either an empty\n // `data` array, or one whose every point was rejected as non-finite. Gating\n // on `data.length` alone would let the latter through and render a silent\n // blank SVG instead of the \"No data\" fallback.\n if (!pathData.end) {\n return (\n <div className=\"flex items-center justify-center text-text-secondary\" style={{ width, height }}>\n <span className=\"text-xs\">{t('bigconsole.widget.sparkline.noData', 'No data')}</span>\n </div>\n );\n }\n\n const colors = COLOR_CLASSES[color];\n\n return (\n <svg\n width={width}\n height={height}\n className=\"overflow-visible\"\n role=\"img\"\n aria-label={t('bigconsole.widget.sparkline.ariaLabel', 'Sparkline chart')}\n >\n {/* Gradient fill */}\n {showFill && <path d={pathData.area} className={colors.fill} strokeWidth={0} />}\n\n {/* Line */}\n <path\n d={pathData.line}\n className={colors.stroke}\n fill=\"none\"\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n\n {/* End dot — reuses the already-validated last plotted point rather than\n recomputing min/max from raw (possibly non-numeric) input. */}\n <circle\n cx={pathData.end.x}\n cy={pathData.end.y}\n r={strokeWidth + 1}\n className={`${colors.stroke.replace('stroke-', 'fill-')}`}\n />\n </svg>\n );\n});\n\nexport default SparklineChart;\n"],"mappings":";;;;AA6BA,IAAM,IAAgB;CACpB,SAAS;EACP,QAAQ;EACR,MAAM;EACP;CACD,SAAS;EACP,QAAQ;EACR,MAAM;EACP;CACD,OAAO;EACL,QAAQ;EACR,MAAM;EACP;CACD,SAAS;EACP,QAAQ;EACR,MAAM;EACP;CACD,OAAO;EACL,QAAQ;EACR,MAAM;EACP;CACF,EAEY,IAA0C,EAAK,SAAwB,EAClF,SACA,WAAQ,KACR,YAAS,IACT,WAAQ,WACR,cAAW,IACX,iBAAc,KACb;CACD,IAAM,EAAE,SAAM,GAAS,EACjB,IAAW,QAAc;AAC7B,MAAI,CAAC,EAAK,OAAQ,QAAO;GAAE,MAAM;GAAI,MAAM;GAAI,KAAK;GAAM;EAO1D,IAAM,IAAS,EAAK,QAAkB,GAAK,OACrC,OAAO,EAAE,SAAU,YAAY,OAAO,SAAS,EAAE,MAAM,IAAE,EAAI,KAAK,EAAE,MAAM,EACvE,IACN,EAAE,CAAC;AACN,MAAI,CAAC,EAAO,OAAQ,QAAO;GAAE,MAAM;GAAI,MAAM;GAAI,KAAK;GAAM;EAE5D,IAAM,IAAM,EAAO,QAAQ,GAAG,MAAM,KAAK,IAAI,GAAG,EAAE,EAAE,SAAS,EAEvD,IADM,EAAO,QAAQ,GAAG,MAAM,KAAK,IAAI,GAAG,EAAE,EAAE,UAAU,GAC1C,KAAO,GAErB,IAAU,GACV,IAAa,IAAQ,IAAU,GAC/B,IAAc,IAAS,IAAU,GAIjC,IAAY,EAAO,SAAS,GAC5B,IAAS,EAAO,KAAK,GAAO,OAGzB;GAAE,GAFC,KAAW,MAAc,IAAI,IAAa,IAAK,IAAI,IAAa;GAE9D,GADF,IAAU,KAAgB,IAAQ,KAAO,IAAS;GAC7C,EACf,EAGI,IAAW,EAAO,KAAK,GAAG,MAAM,GAAG,MAAM,IAAI,MAAM,IAAI,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,KAAK,IAAI,EAEjF,IAAM,EAAO,EAAO,SAAS;AAUnC,SAAO;GAAE,MAAM;GAAU,MAPR;UACX,EAAS;YACP,EAAI,EAAE,GAAG,IAAS,EAAQ;YAC1B,EAAQ,GAAG,IAAS,EAAQ;;;GAIK;GAAK;IAC7C;EAAC;EAAM;EAAO;EAAQ;EAAY,CAAC;AAMtC,KAAI,CAAC,EAAS,IACZ,QACE,kBAAC,OAAD;EAAK,WAAU;EAAuD,OAAO;GAAE;GAAO;GAAQ;YAC5F,kBAAC,QAAD;GAAM,WAAU;aAAW,EAAE,sCAAsC,UAAU;GAAQ,CAAA;EACjF,CAAA;CAIV,IAAM,IAAS,EAAc;AAE7B,QACE,kBAAC,OAAD;EACS;EACC;EACR,WAAU;EACV,MAAK;EACL,cAAY,EAAE,yCAAyC,kBAAkB;YAL3E;GAQG,KAAY,kBAAC,QAAD;IAAM,GAAG,EAAS;IAAM,WAAW,EAAO;IAAM,aAAa;IAAK,CAAA;GAG/E,kBAAC,QAAD;IACE,GAAG,EAAS;IACZ,WAAW,EAAO;IAClB,MAAK;IACQ;IACb,eAAc;IACd,gBAAe;IACf,CAAA;GAIF,kBAAC,UAAD;IACE,IAAI,EAAS,IAAI;IACjB,IAAI,EAAS,IAAI;IACjB,GAAG,IAAc;IACjB,WAAW,GAAG,EAAO,OAAO,QAAQ,WAAW,QAAQ;IACvD,CAAA;GACE;;EAER"}
@@ -11,3 +11,4 @@ export interface TrendIndicatorProps {
11
11
  }
12
12
  export declare const TrendIndicator: FC<TrendIndicatorProps>;
13
13
  export default TrendIndicator;
14
+ //# sourceMappingURL=TrendIndicator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TrendIndicator.d.ts","sourceRoot":"","sources":["../../../../../src/bigconsole/components/widgets/metric-card/TrendIndicator.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,EAAQ,MAAM,OAAO,CAAC;AAGtC,MAAM,MAAM,cAAc,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;AAEpD,MAAM,WAAW,mBAAmB;IAClC,6BAA6B;IAC7B,SAAS,EAAE,cAAc,CAAC;IAC1B,mBAAmB;IACnB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B,6EAA6E;IAC7E,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAQD,eAAO,MAAM,cAAc,EAAE,EAAE,CAAC,mBAAmB,CA4DjD,CAAC;AAEH,eAAe,cAAc,CAAC"}
@@ -52,3 +52,5 @@ var r = {
52
52
  });
53
53
  //#endregion
54
54
  export { i as default };
55
+
56
+ //# sourceMappingURL=TrendIndicator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TrendIndicator.js","names":[],"sources":["../../../../../src/bigconsole/components/widgets/metric-card/TrendIndicator.tsx"],"sourcesContent":["/**\n * TrendIndicator Component\n *\n * Displays up/down/flat trend arrow with color coding.\n */\n\nimport { type FC, memo } from 'react';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\n\nexport type TrendDirection = 'up' | 'down' | 'flat';\n\nexport interface TrendIndicatorProps {\n /** Direction of the trend */\n direction: TrendDirection;\n /** Size variant */\n size?: 'sm' | 'md' | 'lg';\n /** Whether positive trend is good (default true for metrics like revenue) */\n positiveIsGood?: boolean;\n}\n\nconst SIZE_CLASSES = {\n sm: 'w-3 h-3',\n md: 'w-4 h-4',\n lg: 'w-5 h-5',\n};\n\nexport const TrendIndicator: FC<TrendIndicatorProps> = memo(function TrendIndicator({\n direction,\n size = 'md',\n positiveIsGood = true,\n}) {\n const { t } = useI18n();\n // Determine color based on direction and whether positive is good\n const getColorClass = (): string => {\n if (direction === 'flat') {\n return 'text-text-secondary';\n }\n\n const isPositive = direction === 'up';\n const isGood = positiveIsGood ? isPositive : !isPositive;\n\n return isGood ? 'text-status-success-text' : 'text-status-error-text';\n };\n\n const sizeClass = SIZE_CLASSES[size];\n const colorClass = getColorClass();\n\n if (direction === 'flat') {\n return (\n <svg\n className={`${sizeClass} ${colorClass}`}\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n aria-label={t('bigconsole.widget.trend.noChange', 'No change')}\n >\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M5 12h14\" />\n </svg>\n );\n }\n\n if (direction === 'up') {\n return (\n <svg\n className={`${sizeClass} ${colorClass}`}\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n aria-label={t('bigconsole.widget.trend.up', 'Trending up')}\n >\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M5 15l7-7 7 7\" />\n </svg>\n );\n }\n\n return (\n <svg\n className={`${sizeClass} ${colorClass}`}\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n aria-label={t('bigconsole.widget.trend.down', 'Trending down')}\n >\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M19 9l-7 7-7-7\" />\n </svg>\n );\n});\n\nexport default TrendIndicator;\n"],"mappings":";;;;AAoBA,IAAM,IAAe;CACnB,IAAI;CACJ,IAAI;CACJ,IAAI;CACL,EAEY,IAA0C,EAAK,SAAwB,EAClF,cACA,UAAO,MACP,oBAAiB,MAChB;CACD,IAAM,EAAE,SAAM,GAAS,EAEjB,UAA8B;AAClC,MAAI,MAAc,OAChB,QAAO;EAGT,IAAM,IAAa,MAAc;AAGjC,UAFe,IAAiB,IAAa,CAAC,KAE9B,6BAA6B;IAGzC,IAAY,EAAa,IACzB,IAAa,GAAe;AA8BlC,QA5BI,MAAc,SAEd,kBAAC,OAAD;EACE,WAAW,GAAG,EAAU,GAAG;EAC3B,MAAK;EACL,QAAO;EACP,SAAQ;EACR,cAAY,EAAE,oCAAoC,YAAY;YAE9D,kBAAC,QAAD;GAAM,eAAc;GAAQ,gBAAe;GAAQ,aAAa;GAAG,GAAE;GAAa,CAAA;EAC9E,CAAA,GAIN,MAAc,OAEd,kBAAC,OAAD;EACE,WAAW,GAAG,EAAU,GAAG;EAC3B,MAAK;EACL,QAAO;EACP,SAAQ;EACR,cAAY,EAAE,8BAA8B,cAAc;YAE1D,kBAAC,QAAD;GAAM,eAAc;GAAQ,gBAAe;GAAQ,aAAa;GAAG,GAAE;GAAkB,CAAA;EACnF,CAAA,GAKR,kBAAC,OAAD;EACE,WAAW,GAAG,EAAU,GAAG;EAC3B,MAAK;EACL,QAAO;EACP,SAAQ;EACR,cAAY,EAAE,gCAAgC,gBAAgB;YAE9D,kBAAC,QAAD;GAAM,eAAc;GAAQ,gBAAe;GAAQ,aAAa;GAAG,GAAE;GAAmB,CAAA;EACpF,CAAA;EAER"}
@@ -8,3 +8,4 @@ export { MetricCardConfig, type MetricCardConfigProps } from './MetricCardConfig
8
8
  export { TrendIndicator, type TrendIndicatorProps, type TrendDirection } from './TrendIndicator';
9
9
  export { ComparisonBadge, type ComparisonBadgeProps } from './ComparisonBadge';
10
10
  export { SparklineChart, type SparklineChartProps, type SparklineDataPoint } from './SparklineChart';
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/bigconsole/components/widgets/metric-card/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACvG,OAAO,EAAE,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAClF,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACjG,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC"}
@@ -23,3 +23,4 @@ export interface PivotTableWidgetProps {
23
23
  }
24
24
  export declare const PivotTableWidget: FC<PivotTableWidgetProps>;
25
25
  export default PivotTableWidget;
26
+ //# sourceMappingURL=PivotTableWidget.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PivotTableWidget.d.ts","sourceRoot":"","sources":["../../../../../src/bigconsole/components/widgets/pivot-table/PivotTableWidget.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,KAAK,EAAE,EAAwC,MAAM,OAAO,CAAC;AACtE,OAAO,KAAK,EAAE,MAAM,EAAE,gBAAgB,IAAI,oBAAoB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAWxG,MAAM,MAAM,gBAAgB,GAAG,oBAAoB,CAAC;AACpD,MAAM,MAAM,UAAU,GAAG,eAAe,CAAC;AAEzC,MAAM,WAAW,qBAAqB;IACpC,2BAA2B;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,qBAAqB;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAC3D,yCAAyC;IACzC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,qCAAqC;IACrC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,8BAA8B;IAC9B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,2BAA2B;IAC3B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,sCAAsC;IACtC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,wBAAwB;IACxB,WAAW,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;CAC/D;AAkJD,eAAO,MAAM,gBAAgB,EAAE,EAAE,CAAC,qBAAqB,CAmarD,CAAC;AAuIH,eAAe,gBAAgB,CAAC"}
@@ -439,3 +439,5 @@ var v = n(function({ widget: n, data: c = [], onDrilldown: p }) {
439
439
  };
440
440
  //#endregion
441
441
  export { v as default };
442
+
443
+ //# sourceMappingURL=PivotTableWidget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PivotTableWidget.js","names":[],"sources":["../../../../../src/bigconsole/components/widgets/pivot-table/PivotTableWidget.tsx"],"sourcesContent":["/**\n * PivotTableWidget Component\n *\n * Interactive pivot table for data analysis with rows, columns, and aggregations.\n * v2.0 spec compliant widget type.\n *\n * In edit mode it exposes a drag-and-drop field shelf: fields can be dragged\n * between the Rows / Columns / Values / Available zones, the pivot recomputes\n * live, and the new layout is persisted to widget config so it survives reload.\n */\n\nimport type { JSX } from 'react';\nimport { type FC, memo, useMemo, useState, useCallback } from 'react';\nimport type { Widget, PivotTableConfig as PivotTableConfigType, PivotValueField } from '../../../types';\nimport { ChevronDown, ChevronRight, Settings, GripVertical } from 'lucide-react';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport { useIsEditMode } from '../../../store';\nimport { useWidgetOperations } from '../../../hooks';\n\n// ============================================================================\n// Types\n// ============================================================================\n\n// Re-export types from main types file\nexport type PivotTableConfig = PivotTableConfigType;\nexport type ValueField = PivotValueField;\n\nexport interface PivotTableWidgetProps {\n /** Widget configuration */\n widget: Widget;\n /** Raw data array */\n data?: Record<string, unknown> | 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 /** Drilldown handler */\n onDrilldown?: (selectedData: Record<string, unknown>) => void;\n}\n\ninterface PivotNode {\n key: string;\n values: Record<string, number>;\n children: Map<string, PivotNode>;\n expanded: boolean;\n depth: number;\n}\n\n/** The arrangement of fields across the pivot's three field zones. */\ninterface PivotLayout {\n rows: string[];\n columns: string[];\n values: ValueField[];\n}\n\n/** Drop targets for the drag-and-drop field shelf. */\ntype PivotZone = 'rows' | 'columns' | 'values' | 'available';\n\nconst AGGREGATIONS: ValueField['aggregation'][] = ['sum', 'count', 'average', 'min', 'max'];\n\n// ============================================================================\n// Aggregation Functions\n// ============================================================================\n\nconst aggregationFunctions: Record<string, (values: number[]) => number> = {\n sum: (values) => values.reduce((a, b) => a + b, 0),\n count: (values) => values.length,\n average: (values) => (values.length ? values.reduce((a, b) => a + b, 0) / values.length : 0),\n min: (values) => (values.length ? Math.min(...values) : 0),\n max: (values) => (values.length ? Math.max(...values) : 0),\n};\n\n// ============================================================================\n// Pivot Engine\n// ============================================================================\n\nfunction buildPivotTree(\n data: Record<string, unknown>[],\n rowFields: string[],\n valueFields: ValueField[],\n depth: number = 0\n): PivotNode {\n const root: PivotNode = {\n key: 'root',\n values: {},\n children: new Map(),\n expanded: true,\n depth,\n };\n\n if (rowFields.length === 0) {\n // Leaf level - aggregate values\n for (const vf of valueFields) {\n const values = data.map((row) => Number(row[vf.field]) || 0).filter((v) => !isNaN(v));\n root.values[vf.field] = aggregationFunctions[vf.aggregation](values);\n }\n return root;\n }\n\n const currentField = rowFields[0];\n const remainingFields = rowFields.slice(1);\n\n // Group data by current field\n const groups = new Map<string, Record<string, unknown>[]>();\n for (const row of data) {\n const key = String(row[currentField] ?? 'Unknown');\n if (!groups.has(key)) {\n groups.set(key, []);\n }\n groups.get(key)!.push(row);\n }\n\n // Build children recursively\n for (const [key, groupData] of groups) {\n const childNode = buildPivotTree(groupData, remainingFields, valueFields, depth + 1);\n childNode.key = key;\n root.children.set(key, childNode);\n }\n\n // Calculate aggregates for this level\n for (const vf of valueFields) {\n const values = data.map((row) => Number(row[vf.field]) || 0).filter((v) => !isNaN(v));\n root.values[vf.field] = aggregationFunctions[vf.aggregation](values);\n }\n\n return root;\n}\n\nfunction getColumnValues(data: Record<string, unknown>[], columnFields: string[]): string[] {\n if (columnFields.length === 0) return ['Total'];\n\n const columnField = columnFields[0];\n const uniqueValues = new Set<string>();\n for (const row of data) {\n uniqueValues.add(String(row[columnField] ?? 'Unknown'));\n }\n return Array.from(uniqueValues).sort();\n}\n\nfunction getValuesByColumn(\n data: Record<string, unknown>[],\n columnFields: string[],\n valueFields: ValueField[],\n rowFilter: Record<string, string>\n): Map<string, Record<string, number>> {\n // Filter data by row values\n let filteredData = data;\n for (const [field, value] of Object.entries(rowFilter)) {\n filteredData = filteredData.filter((row) => String(row[field]) === value);\n }\n\n const result = new Map<string, Record<string, number>>();\n\n if (columnFields.length === 0) {\n // No column grouping - just aggregate\n const values: Record<string, number> = {};\n for (const vf of valueFields) {\n const nums = filteredData.map((row) => Number(row[vf.field]) || 0).filter((v) => !isNaN(v));\n values[vf.field] = aggregationFunctions[vf.aggregation](nums);\n }\n result.set('Total', values);\n return result;\n }\n\n const columnField = columnFields[0];\n const columnValues = getColumnValues(data, columnFields);\n\n for (const colValue of columnValues) {\n const colData = filteredData.filter((row) => String(row[columnField]) === colValue);\n const values: Record<string, number> = {};\n for (const vf of valueFields) {\n const nums = colData.map((row) => Number(row[vf.field]) || 0).filter((v) => !isNaN(v));\n values[vf.field] = aggregationFunctions[vf.aggregation](nums);\n }\n result.set(colValue, values);\n }\n\n return result;\n}\n\n// ============================================================================\n// Component\n// ============================================================================\n\nexport const PivotTableWidget: FC<PivotTableWidgetProps> = memo(function PivotTableWidget({\n widget,\n data: rawData = [],\n onDrilldown,\n}) {\n const { t } = useI18n();\n // Normalize data to array format\n const data = useMemo(() => (Array.isArray(rawData) ? rawData : []), [rawData]);\n const config: PivotTableConfig = useMemo(() => {\n const defaultConfig: PivotTableConfig = {\n rows: [],\n columns: [],\n values: [],\n showRowTotals: true,\n showColumnTotals: true,\n showGrandTotal: true,\n expandable: true,\n numberFormat: 'number',\n decimalPlaces: 0,\n };\n return widget.config ? { ...defaultConfig, ...(widget.config as Partial<PivotTableConfig>) } : defaultConfig;\n }, [widget.config]);\n\n const isEditMode = useIsEditMode();\n const { updateWidget } = useWidgetOperations(undefined, undefined, { skipFetch: true });\n\n // Field arrangement is local state so dragging recomputes the pivot instantly.\n // Seeded from config and kept in sync with it: if config changes externally\n // (properties panel, undo, another editor), we re-seed during render via the\n // \"adjust state on prop change\" pattern. Our own persist round-trip re-seeds\n // to the identical layout, so it can't loop.\n const configSig = JSON.stringify({ rows: config.rows, columns: config.columns, values: config.values });\n const [layout, setLayout] = useState<PivotLayout>({\n rows: config.rows,\n columns: config.columns,\n values: config.values,\n });\n const [seededSig, setSeededSig] = useState(configSig);\n if (configSig !== seededSig) {\n // Config changed externally → re-seed during render (React's documented\n // \"adjusting state on prop change\" pattern). Our own persist re-seeds to the\n // identical layout, so this can't loop.\n setSeededSig(configSig);\n setLayout({ rows: config.rows, columns: config.columns, values: config.values });\n }\n\n const { rows: rowFields, columns: columnFields, values: valueFields } = layout;\n\n // Persist the layout to config (edit mode only — viewers explore locally).\n const persistLayout = useCallback(\n (next: PivotLayout) => {\n if (!isEditMode) return;\n void updateWidget({\n id: widget.id,\n config: {\n ...(widget.config as Record<string, unknown> | undefined),\n rows: next.rows,\n columns: next.columns,\n values: next.values,\n },\n });\n },\n [isEditMode, updateWidget, widget.id, widget.config]\n );\n\n const applyLayout = useCallback(\n (next: PivotLayout) => {\n setLayout(next);\n persistLayout(next);\n },\n [persistLayout]\n );\n\n const [expandedRows, setExpandedRows] = useState<Set<string>>(new Set(['root']));\n\n // Build pivot structure\n const pivotTree = useMemo(() => {\n return buildPivotTree(data, rowFields, valueFields);\n }, [data, rowFields, valueFields]);\n\n const columnValues = useMemo(() => {\n return getColumnValues(data, columnFields);\n }, [data, columnFields]);\n\n // Grand totals per column for the footer — computed once (was previously\n // recomputed for every column value inside the footer's render loop).\n const footerColumnData = useMemo(\n () => (config.showColumnTotals ? getValuesByColumn(data, columnFields, valueFields, {}) : null),\n [config.showColumnTotals, data, columnFields, valueFields]\n );\n\n // All fields present in the data, and those not yet placed in a zone.\n const allFields = useMemo(() => (data.length > 0 ? Object.keys(data[0]) : []), [data]);\n const availableFields = useMemo(() => {\n const used = new Set<string>([...rowFields, ...columnFields, ...valueFields.map((v) => v.field)]);\n return allFields.filter((f) => !used.has(f));\n }, [allFields, rowFields, columnFields, valueFields]);\n\n // Move a field from one zone to another and recompute + persist.\n const moveField = useCallback(\n (field: string, from: PivotZone, to: PivotZone) => {\n if (from === to) return;\n const next: PivotLayout = {\n rows: from === 'rows' ? rowFields.filter((f) => f !== field) : [...rowFields],\n columns: from === 'columns' ? columnFields.filter((f) => f !== field) : [...columnFields],\n values: from === 'values' ? valueFields.filter((v) => v.field !== field) : [...valueFields],\n };\n if (to === 'rows' && !next.rows.includes(field)) next.rows.push(field);\n else if (to === 'columns' && !next.columns.includes(field)) next.columns.push(field);\n else if (to === 'values' && !next.values.some((v) => v.field === field)) {\n next.values.push({ field, aggregation: 'sum' });\n }\n applyLayout(next);\n },\n [rowFields, columnFields, valueFields, applyLayout]\n );\n\n const changeAggregation = useCallback(\n (field: string, aggregation: ValueField['aggregation']) => {\n applyLayout({\n rows: [...rowFields],\n columns: [...columnFields],\n values: valueFields.map((v) => (v.field === field ? { ...v, aggregation } : v)),\n });\n },\n [rowFields, columnFields, valueFields, applyLayout]\n );\n\n // Format number based on config\n const formatValue = useCallback(\n (value: number): string => {\n if (isNaN(value)) return '-';\n\n switch (config.numberFormat) {\n case 'currency':\n return new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: 'USD',\n minimumFractionDigits: config.decimalPlaces,\n maximumFractionDigits: config.decimalPlaces,\n }).format(value);\n case 'percentage':\n return new Intl.NumberFormat('en-US', {\n style: 'percent',\n minimumFractionDigits: config.decimalPlaces,\n maximumFractionDigits: config.decimalPlaces,\n }).format(value / 100);\n default:\n return new Intl.NumberFormat('en-US', {\n minimumFractionDigits: config.decimalPlaces,\n maximumFractionDigits: config.decimalPlaces,\n }).format(value);\n }\n },\n [config.numberFormat, config.decimalPlaces]\n );\n\n // Toggle row expansion\n const toggleRow = useCallback((rowPath: string) => {\n setExpandedRows((prev) => {\n const next = new Set(prev);\n if (next.has(rowPath)) {\n next.delete(rowPath);\n } else {\n next.add(rowPath);\n }\n return next;\n });\n }, []);\n\n // Handle cell click for drilldown\n const handleCellClick = useCallback(\n (rowFilter: Record<string, string>, columnValue: string) => {\n if (onDrilldown) {\n onDrilldown({\n rowFilter,\n columnValue,\n type: 'pivot_cell_click',\n });\n }\n },\n [onDrilldown]\n );\n\n // Render row recursively\n const renderRows = useCallback(\n (node: PivotNode, rowFilter: Record<string, string>, parentPath: string, depth: number): JSX.Element[] => {\n const rows: JSX.Element[] = [];\n const hasChildren = node.children.size > 0;\n const isExpanded = expandedRows.has(parentPath);\n const rowField = rowFields[depth - 1];\n\n if (depth > 0) {\n const columnData = getValuesByColumn(data, columnFields, valueFields, rowFilter);\n\n rows.push(\n <tr key={parentPath} className=\"hover:bg-bg-sunken/50 transition-colors\">\n {/* Row header */}\n <td\n className=\"sticky left-0 bg-bg-surface border-r border-border-default px-3 py-2 font-medium text-sm\"\n style={{ paddingLeft: `${depth * 16 + 8}px` }}\n >\n <div className=\"flex items-center gap-1\">\n {config.expandable && hasChildren && (\n <button\n type=\"button\"\n onClick={() => toggleRow(parentPath)}\n className=\"p-0.5 hover:bg-bg-sunken rounded\"\n >\n {isExpanded ? (\n <ChevronDown className=\"w-4 h-4 text-text-secondary\" />\n ) : (\n <ChevronRight className=\"w-4 h-4 text-text-secondary\" />\n )}\n </button>\n )}\n {!hasChildren && config.expandable && <span className=\"w-5\" />}\n <span>{node.key}</span>\n </div>\n </td>\n\n {/* Value cells */}\n {columnValues.map((colValue) => {\n const cellValues = columnData.get(colValue) || {};\n return valueFields.map((vf) => (\n <td\n key={`${colValue}-${vf.field}`}\n className=\"px-3 py-2 text-sm text-right tabular-nums cursor-pointer hover:bg-action-primary-bg/10\"\n onClick={() => handleCellClick(rowFilter, colValue)}\n >\n {formatValue(cellValues[vf.field] || 0)}\n </td>\n ));\n })}\n\n {/* Row total */}\n {config.showRowTotals &&\n valueFields.map((vf) => (\n <td\n key={`total-${vf.field}`}\n className=\"px-3 py-2 text-sm text-right tabular-nums font-medium bg-bg-sunken/30\"\n >\n {formatValue(node.values[vf.field] || 0)}\n </td>\n ))}\n </tr>\n );\n }\n\n // Render children if expanded\n if (hasChildren && (isExpanded || depth === 0)) {\n const sortedKeys = Array.from(node.children.keys()).sort();\n for (const childKey of sortedKeys) {\n const childNode = node.children.get(childKey)!;\n const childPath = `${parentPath}/${childKey}`;\n const childFilter = rowField ? { ...rowFilter, [rowField]: childKey } : rowFilter;\n rows.push(...renderRows(childNode, childFilter, childPath, depth + 1));\n }\n }\n\n return rows;\n },\n [\n data,\n config,\n rowFields,\n columnFields,\n valueFields,\n columnValues,\n expandedRows,\n formatValue,\n handleCellClick,\n toggleRow,\n ]\n );\n\n const hasLayout = rowFields.length > 0 || valueFields.length > 0;\n\n // No data state\n if (data.length === 0) {\n return (\n <div className=\"flex flex-col items-center justify-center h-full p-8 text-text-secondary\">\n <Settings className=\"w-12 h-12 mb-4 opacity-50\" />\n <p className=\"text-sm\">{t('bigconsole.widget.pivotTable.noData', 'No data available')}</p>\n <p className=\"text-xs mt-1\">\n {t('bigconsole.widget.pivotTable.noDataHint', 'Configure data source to populate pivot table')}\n </p>\n </div>\n );\n }\n\n return (\n <div className=\"flex flex-col h-full overflow-hidden\">\n {/* Drag-and-drop field shelf (edit mode) */}\n {isEditMode && (\n <PivotFieldShelf\n rowFields={rowFields}\n columnFields={columnFields}\n valueFields={valueFields}\n availableFields={availableFields}\n onMoveField={moveField}\n onChangeAggregation={changeAggregation}\n />\n )}\n\n {!hasLayout ? (\n <div className=\"flex flex-col items-center justify-center flex-1 p-8 text-text-secondary\">\n <Settings className=\"w-12 h-12 mb-4 opacity-50\" />\n <p className=\"text-sm\">{t('bigconsole.widget.pivotTable.configureTitle', 'Configure Pivot Table')}</p>\n <p className=\"text-xs mt-1\">\n {isEditMode\n ? t('bigconsole.widget.pivotTable.configureHintEdit', 'Drag fields into the Rows and Values zones above')\n : t(\n 'bigconsole.widget.pivotTable.configureHintView',\n 'Add row fields and value fields in widget settings'\n )}\n </p>\n </div>\n ) : (\n <div className=\"flex-1 overflow-auto\">\n <table className=\"w-full border-collapse\">\n {/* Header */}\n <thead className=\"sticky top-0 z-10\">\n {/* Column headers row */}\n <tr className=\"bg-bg-sunken\">\n <th className=\"sticky left-0 bg-bg-sunken border-r border-b border-border-default px-3 py-2 text-left text-xs font-semibold uppercase tracking-wider text-text-secondary\">\n {rowFields.length > 0\n ? rowFields.map((r) => r.replace(/_/g, ' ')).join(' / ')\n : t('bigconsole.widget.pivotTable.valuesHeader', 'Values')}\n </th>\n\n {/* Column value headers */}\n {columnValues.map((colValue) => (\n <th\n key={colValue}\n colSpan={valueFields.length || 1}\n className=\"border-b border-border-default px-3 py-2 text-center text-xs font-semibold uppercase tracking-wider text-text-secondary\"\n >\n {colValue}\n </th>\n ))}\n\n {/* Total header */}\n {config.showRowTotals && (\n <th\n colSpan={valueFields.length || 1}\n className=\"border-b border-border-default px-3 py-2 text-center text-xs font-semibold uppercase tracking-wider text-text-secondary bg-bg-sunken/50\"\n >\n {t('bigconsole.widget.pivotTable.total', 'Total')}\n </th>\n )}\n </tr>\n\n {/* Value field headers row (if multiple values) */}\n {valueFields.length > 1 && (\n <tr className=\"bg-bg-surface\">\n <th className=\"sticky left-0 bg-bg-surface border-r border-b border-border-default\" />\n {columnValues.map((colValue) =>\n valueFields.map((vf) => (\n <th\n key={`${colValue}-${vf.field}`}\n className=\"border-b border-border-default px-3 py-1 text-center text-xs text-text-secondary\"\n >\n {vf.label || vf.field.replace(/_/g, ' ')}\n </th>\n ))\n )}\n {config.showRowTotals &&\n valueFields.map((vf) => (\n <th\n key={`total-${vf.field}`}\n className=\"border-b border-border-default px-3 py-1 text-center text-xs text-text-secondary bg-bg-sunken/30\"\n >\n {vf.label || vf.field.replace(/_/g, ' ')}\n </th>\n ))}\n </tr>\n )}\n </thead>\n\n {/* Body */}\n <tbody className=\"divide-y divide-border-default\">{renderRows(pivotTree, {}, 'root', 0)}</tbody>\n\n {/* Footer with column totals */}\n {config.showColumnTotals && (\n <tfoot>\n <tr className=\"bg-bg-sunken/50 font-medium\">\n <td className=\"sticky left-0 bg-bg-sunken/50 border-r border-t border-border-default px-3 py-2 text-sm\">\n {t('bigconsole.widget.pivotTable.total', 'Total')}\n </td>\n {columnValues.map((colValue) => {\n const cellValues = footerColumnData?.get(colValue) || {};\n return valueFields.map((vf) => (\n <td\n key={`footer-${colValue}-${vf.field}`}\n className=\"border-t border-border-default px-3 py-2 text-sm text-right tabular-nums\"\n >\n {formatValue(cellValues[vf.field] || 0)}\n </td>\n ));\n })}\n {config.showRowTotals &&\n config.showGrandTotal &&\n valueFields.map((vf) => (\n <td\n key={`grand-${vf.field}`}\n className=\"border-t border-border-default px-3 py-2 text-sm text-right tabular-nums font-bold bg-bg-sunken\"\n >\n {formatValue(pivotTree.values[vf.field] || 0)}\n </td>\n ))}\n </tr>\n </tfoot>\n )}\n </table>\n </div>\n )}\n </div>\n );\n});\n\n// ============================================================================\n// Field shelf (drag-and-drop zones)\n// ============================================================================\n\ninterface PivotFieldShelfProps {\n rowFields: string[];\n columnFields: string[];\n valueFields: ValueField[];\n availableFields: string[];\n onMoveField: (field: string, from: PivotZone, to: PivotZone) => void;\n onChangeAggregation: (field: string, aggregation: ValueField['aggregation']) => void;\n}\n\nconst DND_MIME = 'application/x-pivot-field';\n\nconst PivotFieldShelf: FC<PivotFieldShelfProps> = ({\n rowFields,\n columnFields,\n valueFields,\n availableFields,\n onMoveField,\n onChangeAggregation,\n}) => {\n const { t } = useI18n();\n const [dragOverZone, setDragOverZone] = useState<PivotZone | null>(null);\n\n const handleDrop = (zone: PivotZone) => (e: React.DragEvent) => {\n e.preventDefault();\n // Isolate the shelf's internal DnD from the dashboard canvas drop zone. The\n // canvas onDragOver forces dropEffect='copy' (for palette widget drops); left\n // to bubble, that conflicts with the chips' effectAllowed='move' and the\n // browser rejects the drop entirely (drop event never fires).\n e.stopPropagation();\n setDragOverZone(null);\n const raw = e.dataTransfer.getData(DND_MIME) || e.dataTransfer.getData('text/plain');\n if (!raw) return;\n try {\n const { field, from } = JSON.parse(raw) as { field: string; from: PivotZone };\n if (field) onMoveField(field, from, zone);\n } catch {\n // Ignore malformed drag payloads.\n }\n };\n\n const chip = (field: string, from: PivotZone, vf?: ValueField) => (\n <span\n key={field}\n draggable\n onDragStart={(e) => {\n const payload = JSON.stringify({ field, from });\n e.dataTransfer.setData(DND_MIME, payload);\n e.dataTransfer.setData('text/plain', payload);\n e.dataTransfer.effectAllowed = 'move';\n }}\n className=\"inline-flex items-center gap-1 px-2 py-1 rounded-md bg-bg-surface border border-border-default text-xs text-text-primary cursor-grab\"\n >\n <GripVertical className=\"w-3 h-3 text-text-muted\" aria-hidden=\"true\" />\n <span>{(vf?.label || field).replace(/_/g, ' ')}</span>\n {vf && (\n <select\n value={vf.aggregation}\n onChange={(e) => onChangeAggregation(field, e.target.value as ValueField['aggregation'])}\n onClick={(e) => e.stopPropagation()}\n aria-label={t('bigconsole.widget.pivotTable.aggregationForField', 'Aggregation for {{field}}', { field })}\n className=\"ml-1 bg-bg-sunken text-text-secondary rounded px-1 py-0.5 text-[10px] uppercase\"\n >\n {AGGREGATIONS.map((agg) => (\n <option key={agg} value={agg}>\n {agg}\n </option>\n ))}\n </select>\n )}\n </span>\n );\n\n const zone = (label: string, name: PivotZone, children: JSX.Element[] | JSX.Element) => (\n <div\n onDragOver={(e) => {\n e.preventDefault();\n // Stop bubbling to the canvas onDragOver, which would override\n // dropEffect to 'copy' and make the browser reject this 'move' drop.\n e.stopPropagation();\n e.dataTransfer.dropEffect = 'move';\n if (dragOverZone !== name) {\n setDragOverZone(name);\n }\n }}\n onDragLeave={() => setDragOverZone((z) => (z === name ? null : z))}\n onDrop={handleDrop(name)}\n className={`flex-1 min-w-[8rem] rounded-md border p-2 transition-colors ${\n dragOverZone === name\n ? 'border-action-primary-bg bg-action-primary-bg/5'\n : 'border-border-default bg-bg-sunken/30'\n }`}\n >\n <div className=\"text-[10px] font-semibold uppercase tracking-wider text-text-muted mb-1.5\">{label}</div>\n <div className=\"flex flex-wrap gap-1.5 min-h-[1.75rem]\">{children}</div>\n </div>\n );\n\n return (\n <div className=\"flex flex-wrap gap-2 p-2 border-b border-border-default bg-bg-surface\">\n {zone(\n t('bigconsole.widget.pivotTable.zoneRows', 'Rows'),\n 'rows',\n rowFields.map((f) => chip(f, 'rows'))\n )}\n {zone(\n t('bigconsole.widget.pivotTable.zoneColumns', 'Columns'),\n 'columns',\n columnFields.map((f) => chip(f, 'columns'))\n )}\n {zone(\n t('bigconsole.widget.pivotTable.zoneValues', 'Values'),\n 'values',\n valueFields.map((vf) => chip(vf.field, 'values', vf))\n )}\n {zone(\n t('bigconsole.widget.pivotTable.zoneAvailable', 'Available'),\n 'available',\n availableFields.length > 0 ? (\n availableFields.map((f) => chip(f, 'available'))\n ) : (\n <span className=\"text-[11px] text-text-muted italic\">\n {t('bigconsole.widget.pivotTable.allFieldsInUse', 'All fields in use')}\n </span>\n )\n )}\n </div>\n );\n};\n\nexport default PivotTableWidget;\n"],"mappings":"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"}
@@ -3,3 +3,4 @@
3
3
  */
4
4
  export { PivotTableWidget, type PivotTableWidgetProps, type PivotTableConfig, type ValueField, } from './PivotTableWidget';
5
5
  export { default } from './PivotTableWidget';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/bigconsole/components/widgets/pivot-table/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,gBAAgB,EAChB,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACrB,KAAK,UAAU,GAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC"}
@@ -26,3 +26,4 @@ export interface ProgressBarProps {
26
26
  }
27
27
  export declare const ProgressBar: FC<ProgressBarProps>;
28
28
  export default ProgressBar;
29
+ //# sourceMappingURL=ProgressBar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProgressBar.d.ts","sourceRoot":"","sources":["../../../../../src/bigconsole/components/widgets/progress/ProgressBar.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,EAAiB,MAAM,OAAO,CAAC;AAM/C,MAAM,WAAW,SAAS;IACxB,qCAAqC;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,qBAAqB;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mCAAmC;IACnC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,qCAAqC;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,qCAAqC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4BAA4B;IAC5B,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;IACzB,wBAAwB;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8BAA8B;IAC9B,KAAK,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;IAChE,uCAAuC;IACvC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,yBAAyB;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AA8BD,eAAO,MAAM,WAAW,EAAE,EAAE,CAAC,gBAAgB,CA8F3C,CAAC;AAEH,eAAe,WAAW,CAAC"}
@@ -90,3 +90,5 @@ var a = e(function({ value: e, target: a, milestones: o = [], height: s = 8, col
90
90
  });
91
91
  //#endregion
92
92
  export { a as default };
93
+
94
+ //# sourceMappingURL=ProgressBar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProgressBar.js","names":[],"sources":["../../../../../src/bigconsole/components/widgets/progress/ProgressBar.tsx"],"sourcesContent":["/**\n * ProgressBar Component\n *\n * Horizontal progress bar with optional milestones and target.\n */\n\nimport { type FC, memo, useMemo } from 'react';\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface Milestone {\n /** Position as percentage (0-100) */\n position: number;\n /** Optional label */\n label?: string;\n /** Whether milestone is reached */\n reached?: boolean;\n}\n\nexport interface ProgressBarProps {\n /** Current progress value (0-100) */\n value: number;\n /** Target value to show as marker */\n target?: number;\n /** Milestones to display */\n milestones?: Milestone[];\n /** Height of the bar */\n height?: number;\n /** Color based on progress */\n color?: 'default' | 'success' | 'warning' | 'error' | 'dynamic';\n /** Whether to show percentage label */\n showPercentage?: boolean;\n /** Whether to animate */\n animated?: boolean;\n}\n\n// ============================================================================\n// Helpers\n// ============================================================================\n\nfunction getProgressColor(value: number, color: ProgressBarProps['color']): string {\n if (color === 'dynamic') {\n if (value >= 75) return 'bg-status-success-bg';\n if (value >= 50) return 'bg-status-warning-bg';\n return 'bg-status-error-bg';\n }\n\n switch (color) {\n case 'success':\n return 'bg-status-success-bg';\n case 'warning':\n return 'bg-status-warning-bg';\n case 'error':\n return 'bg-status-error-bg';\n case 'default':\n default:\n return 'bg-action-primary-bg';\n }\n}\n\n// ============================================================================\n// Component\n// ============================================================================\n\nexport const ProgressBar: FC<ProgressBarProps> = memo(function ProgressBar({\n value,\n target,\n milestones = [],\n height = 8,\n color = 'default',\n showPercentage = false,\n animated = true,\n}) {\n const clampedValue = useMemo(() => Math.max(0, Math.min(100, value)), [value]);\n\n const progressColor = getProgressColor(clampedValue, color);\n\n return (\n <div className=\"w-full\">\n {/* Progress bar container */}\n <div className=\"relative w-full rounded-full bg-bg-sunken overflow-visible\" style={{ height }}>\n {/* Progress fill */}\n <div\n className={`\n absolute inset-y-0 left-0 rounded-full\n ${progressColor}\n ${animated ? 'transition-all duration-500 ease-out' : ''}\n `}\n style={{ width: `${clampedValue}%` }}\n role=\"progressbar\"\n aria-valuenow={clampedValue}\n aria-valuemin={0}\n aria-valuemax={100}\n />\n\n {/* Target marker */}\n {target !== undefined && target >= 0 && target <= 100 && (\n <div\n className=\"absolute top-1/2 -translate-y-1/2 w-0.5 h-[150%] bg-text-primary z-10\"\n style={{ left: `${target}%` }}\n title={`Target: ${target}%`}\n >\n {/* Target flag */}\n <div className=\"absolute -top-3 left-1/2 -translate-x-1/2\">\n <svg className=\"w-3 h-3 text-text-primary\" fill=\"currentColor\" viewBox=\"0 0 24 24\">\n <path d=\"M5 21V3h14l-3 9 3 9H5z\" />\n </svg>\n </div>\n </div>\n )}\n\n {/* Milestones */}\n {milestones.map((milestone, index) => (\n <div\n key={index}\n className={`\n absolute top-1/2 -translate-y-1/2\n w-3 h-3 rounded-full border-2\n ${\n milestone.reached || clampedValue >= milestone.position\n ? 'bg-bg-surface border-action-primary-bg'\n : 'bg-bg-sunken border-border-default'\n }\n z-10\n `}\n style={{ left: `${milestone.position}%`, transform: 'translate(-50%, -50%)' }}\n title={milestone.label || `${milestone.position}%`}\n />\n ))}\n </div>\n\n {/* Milestone labels */}\n {milestones.some((m) => m.label) && (\n <div className=\"relative mt-2\">\n {milestones.map((milestone, index) =>\n milestone.label ? (\n <span\n key={index}\n className=\"absolute text-xs text-text-secondary -translate-x-1/2 whitespace-nowrap\"\n style={{ left: `${milestone.position}%` }}\n >\n {milestone.label}\n </span>\n ) : null\n )}\n </div>\n )}\n\n {/* Percentage label */}\n {showPercentage && (\n <div className=\"flex justify-between items-center mt-1\">\n <span className=\"text-xs text-text-secondary\">0%</span>\n <span className=\"text-sm font-medium text-text-primary\">{clampedValue.toFixed(0)}%</span>\n <span className=\"text-xs text-text-secondary\">100%</span>\n </div>\n )}\n </div>\n );\n});\n\nexport default ProgressBar;\n"],"mappings":";;;AA0CA,SAAS,EAAiB,GAAe,GAA0C;AACjF,KAAI,MAAU,UAGZ,QAFI,KAAS,KAAW,yBACpB,KAAS,KAAW,yBACjB;AAGT,SAAQ,GAAR;EACE,KAAK,UACH,QAAO;EACT,KAAK,UACH,QAAO;EACT,KAAK,QACH,QAAO;EAET,QACE,QAAO;;;AAQb,IAAa,IAAoC,EAAK,SAAqB,EACzE,UACA,WACA,gBAAa,EAAE,EACf,YAAS,GACT,WAAQ,WACR,oBAAiB,IACjB,cAAW,MACV;CACD,IAAM,IAAe,QAAc,KAAK,IAAI,GAAG,KAAK,IAAI,KAAK,EAAM,CAAC,EAAE,CAAC,EAAM,CAAC,EAExE,IAAgB,EAAiB,GAAc,EAAM;AAE3D,QACE,kBAAC,OAAD;EAAK,WAAU;YAAf;GAEE,kBAAC,OAAD;IAAK,WAAU;IAA6D,OAAO,EAAE,WAAQ;cAA7F;KAEE,kBAAC,OAAD;MACE,WAAW;;cAEP,EAAc;cACd,IAAW,yCAAyC,GAAG;;MAE3D,OAAO,EAAE,OAAO,GAAG,EAAa,IAAI;MACpC,MAAK;MACL,iBAAe;MACf,iBAAe;MACf,iBAAe;MACf,CAAA;KAGD,MAAW,KAAA,KAAa,KAAU,KAAK,KAAU,OAChD,kBAAC,OAAD;MACE,WAAU;MACV,OAAO,EAAE,MAAM,GAAG,EAAO,IAAI;MAC7B,OAAO,WAAW,EAAO;gBAGzB,kBAAC,OAAD;OAAK,WAAU;iBACb,kBAAC,OAAD;QAAK,WAAU;QAA4B,MAAK;QAAe,SAAQ;kBACrE,kBAAC,QAAD,EAAM,GAAE,0BAA2B,CAAA;QAC/B,CAAA;OACF,CAAA;MACF,CAAA;KAIP,EAAW,KAAK,GAAW,MAC1B,kBAAC,OAAD;MAEE,WAAW;;;gBAIP,EAAU,WAAW,KAAgB,EAAU,WAC3C,2CACA,qCACL;;;MAGH,OAAO;OAAE,MAAM,GAAG,EAAU,SAAS;OAAI,WAAW;OAAyB;MAC7E,OAAO,EAAU,SAAS,GAAG,EAAU,SAAS;MAChD,EAbK,EAaL,CACF;KACE;;GAGL,EAAW,MAAM,MAAM,EAAE,MAAM,IAC9B,kBAAC,OAAD;IAAK,WAAU;cACZ,EAAW,KAAK,GAAW,MAC1B,EAAU,QACR,kBAAC,QAAD;KAEE,WAAU;KACV,OAAO,EAAE,MAAM,GAAG,EAAU,SAAS,IAAI;eAExC,EAAU;KACN,EALA,EAKA,GACL,KACL;IACG,CAAA;GAIP,KACC,kBAAC,OAAD;IAAK,WAAU;cAAf;KACE,kBAAC,QAAD;MAAM,WAAU;gBAA8B;MAAS,CAAA;KACvD,kBAAC,QAAD;MAAM,WAAU;gBAAhB,CAAyD,EAAa,QAAQ,EAAE,EAAC,IAAQ;;KACzF,kBAAC,QAAD;MAAM,WAAU;gBAA8B;MAAW,CAAA;KACrD;;GAEJ;;EAER"}
@@ -9,3 +9,4 @@ export interface ProgressConfigProps {
9
9
  }
10
10
  export declare const ProgressConfig: FC<ProgressConfigProps>;
11
11
  export default ProgressConfig;
12
+ //# sourceMappingURL=ProgressConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProgressConfig.d.ts","sourceRoot":"","sources":["../../../../../src/bigconsole/components/widgets/progress/ProgressConfig.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,EAAqB,MAAM,OAAO,CAAC;AAEnD,OAAO,KAAK,EAAE,cAAc,IAAI,UAAU,EAAqB,MAAM,gBAAgB,CAAC;AAMtF,MAAM,WAAW,mBAAmB;IAClC,4BAA4B;IAC5B,MAAM,EAAE,UAAU,CAAC;IACnB,mCAAmC;IACnC,QAAQ,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;CACxC;AAMD,eAAO,MAAM,cAAc,EAAE,EAAE,CAAC,mBAAmB,CAiQjD,CAAC;AAEH,eAAe,cAAc,CAAC"}
@@ -193,3 +193,5 @@ var a = e(function({ config: e, onChange: a }) {
193
193
  });
194
194
  //#endregion
195
195
  export { a as default };
196
+
197
+ //# sourceMappingURL=ProgressConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProgressConfig.js","names":[],"sources":["../../../../../src/bigconsole/components/widgets/progress/ProgressConfig.tsx"],"sourcesContent":["/**\n * ProgressConfig Component\n *\n * Configuration panel for Progress widgets.\n */\n\nimport { type FC, memo, useCallback } from 'react';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport type { ProgressConfig as ConfigType, ProgressMilestone } from '../../../types';\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface ProgressConfigProps {\n /** Current configuration */\n config: ConfigType;\n /** Callback when config changes */\n onChange: (config: ConfigType) => void;\n}\n\n// ============================================================================\n// Component\n// ============================================================================\n\nexport const ProgressConfig: FC<ProgressConfigProps> = memo(function ProgressConfig({ config, onChange }) {\n const { t } = useI18n();\n\n const handleChange = useCallback(\n <K extends keyof ConfigType>(key: K, value: ConfigType[K]) => {\n onChange({ ...config, [key]: value });\n },\n [config, onChange]\n );\n\n const handleMilestoneChange = useCallback(\n (index: number, field: 'position' | 'label', value: string | number) => {\n const milestones = [...(config.milestones || [])];\n milestones[index] = { ...milestones[index], [field]: value };\n handleChange('milestones', milestones);\n },\n [config.milestones, handleChange]\n );\n\n const addMilestone = useCallback(() => {\n const milestones = [...(config.milestones || []), { position: 50, label: '', value: 50 }];\n handleChange('milestones', milestones as ProgressMilestone[]);\n }, [config.milestones, handleChange]);\n\n const removeMilestone = useCallback(\n (index: number) => {\n const milestones = (config.milestones || []).filter((_, i) => i !== index);\n handleChange('milestones', milestones);\n },\n [config.milestones, handleChange]\n );\n\n return (\n <div className=\"min-w-0 space-y-form-gap\">\n {/* Max Value */}\n <div>\n <label className=\"block text-sm font-medium text-text-primary mb-1\">\n {t('bigconsole.widget.config.progress.maxValueLabel', 'Maximum Value')}\n </label>\n <input\n type=\"number\"\n value={config.max ?? 100}\n onChange={(e) => handleChange('max', Number(e.target.value))}\n className=\"\n w-full px-3 py-2\n text-sm text-text-primary\n bg-bg-surface\n border border-border-default\n rounded-md\n focus:outline-none focus:ring-2 focus:ring-action-primary-bg\n \"\n />\n </div>\n\n {/* Bar Height */}\n <div>\n <label className=\"block text-sm font-medium text-text-primary mb-1\">\n {t('bigconsole.widget.config.progress.barHeightLabel', 'Bar Height (px)')}\n </label>\n <input\n type=\"number\"\n value={config.barHeight ?? 12}\n onChange={(e) => handleChange('barHeight', Number(e.target.value))}\n min={4}\n max={32}\n className=\"\n w-full px-3 py-2\n text-sm text-text-primary\n bg-bg-surface\n border border-border-default\n rounded-md\n focus:outline-none focus:ring-2 focus:ring-action-primary-bg\n \"\n />\n </div>\n\n {/* Value Format */}\n <div>\n <label className=\"block text-sm font-medium text-text-primary mb-1\">\n {t('bigconsole.widget.config.progress.valueFormatLabel', 'Value Format')}\n </label>\n <select\n value={config.format || 'number'}\n onChange={(e) => handleChange('format', e.target.value as ConfigType['format'])}\n className=\"\n w-full px-3 py-2\n text-sm text-text-primary\n bg-bg-surface\n border border-border-default\n rounded-md\n focus:outline-none focus:ring-2 focus:ring-action-primary-bg\n \"\n >\n <option value=\"number\">{t('bigconsole.widget.config.progress.format.number', 'Number')}</option>\n <option value=\"currency\">{t('bigconsole.widget.config.progress.format.currency', 'Currency')}</option>\n <option value=\"compact\">{t('bigconsole.widget.config.progress.format.compact', 'Compact (1K, 1M)')}</option>\n </select>\n </div>\n\n {/* Color Mode */}\n <div>\n <label className=\"block text-sm font-medium text-text-primary mb-1\">\n {t('bigconsole.widget.config.progress.colorModeLabel', 'Color Mode')}\n </label>\n <select\n value={config.colorMode || 'default'}\n onChange={(e) => handleChange('colorMode', e.target.value as ConfigType['colorMode'])}\n className=\"\n w-full px-3 py-2\n text-sm text-text-primary\n bg-bg-surface\n border border-border-default\n rounded-md\n focus:outline-none focus:ring-2 focus:ring-action-primary-bg\n \"\n >\n <option value=\"default\">{t('bigconsole.widget.config.progress.colorMode.default', 'Default (Blue)')}</option>\n <option value=\"dynamic\">\n {t('bigconsole.widget.config.progress.colorMode.dynamic', 'Dynamic (based on progress)')}\n </option>\n <option value=\"success\">{t('bigconsole.widget.config.progress.colorMode.success', 'Success (Green)')}</option>\n <option value=\"warning\">\n {t('bigconsole.widget.config.progress.colorMode.warning', 'Warning (Yellow)')}\n </option>\n <option value=\"error\">{t('bigconsole.widget.config.progress.colorMode.error', 'Error (Red)')}</option>\n </select>\n </div>\n\n {/* Milestones */}\n <div>\n <div className=\"flex items-center justify-between mb-2\">\n <label className=\"text-sm font-medium text-text-primary\">\n {t('bigconsole.widget.config.progress.milestonesLabel', 'Milestones')}\n </label>\n <button\n type=\"button\"\n onClick={addMilestone}\n className=\"\n text-sm text-action-primary-bg\n hover:text-action-primary-bgHover\n \"\n >\n {t('bigconsole.widget.config.progress.addMilestone', '+ Add Milestone')}\n </button>\n </div>\n\n <div className=\"space-y-2\">\n {(config.milestones || []).map((milestone, index) => (\n <div\n key={index}\n className=\"\n flex items-center gap-2\n p-2\n bg-bg-sunken\n rounded-md\n \"\n >\n <input\n type=\"number\"\n value={milestone.position}\n onChange={(e) => handleMilestoneChange(index, 'position', Number(e.target.value))}\n min={0}\n max={100}\n className=\"\n w-20 px-2 py-1\n text-sm text-text-primary\n bg-bg-surface\n border border-border-default\n rounded-md\n focus:outline-none focus:ring-2 focus:ring-action-primary-bg\n \"\n placeholder=\"%\"\n />\n <input\n type=\"text\"\n value={milestone.label || ''}\n onChange={(e) => handleMilestoneChange(index, 'label', e.target.value)}\n className=\"\n flex-1 px-2 py-1\n text-sm text-text-primary\n bg-bg-surface\n border border-border-default\n rounded-md\n focus:outline-none focus:ring-2 focus:ring-action-primary-bg\n \"\n placeholder={t('bigconsole.widget.config.progress.milestoneLabelPlaceholder', 'Label (optional)')}\n />\n <button\n type=\"button\"\n onClick={() => removeMilestone(index)}\n className=\"text-status-error-text hover:text-status-error-text/80 p-1\"\n >\n <svg className=\"w-4 h-4\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M6 18L18 6M6 6l12 12\" />\n </svg>\n </button>\n </div>\n ))}\n\n {(!config.milestones || config.milestones.length === 0) && (\n <p className=\"text-sm text-text-secondary text-center py-2\">\n {t('bigconsole.widget.config.progress.noMilestones', 'No milestones configured')}\n </p>\n )}\n </div>\n </div>\n\n {/* Toggle Options */}\n <div\n role=\"group\"\n aria-label=\"Display options\"\n className=\"space-y-3 border-t border-[var(--color-border-subtle)] pt-form-gap\"\n >\n {/* Toggles are a different KIND of control from the field stack above,\n so they get their own labelled group instead of being visually\n identical to it (BOFF-5636). */}\n <p className=\"text-xs font-bold uppercase tracking-wider text-text-secondary\">Display options</p>\n <label className=\"flex items-center gap-3\">\n <input\n type=\"checkbox\"\n checked={config.showPercentage !== false}\n onChange={(e) => handleChange('showPercentage', e.target.checked)}\n className=\"\n w-4 h-4\n text-action-primary-bg\n bg-bg-surface\n border-border-default\n rounded\n focus:ring-action-primary-bg\n \"\n />\n <span className=\"text-sm text-text-primary\">\n {t('bigconsole.widget.config.progress.showPercentage', 'Show percentage labels')}\n </span>\n </label>\n\n <label className=\"flex items-center gap-3\">\n <input\n type=\"checkbox\"\n checked={config.showMax !== false}\n onChange={(e) => handleChange('showMax', e.target.checked)}\n className=\"\n w-4 h-4\n text-action-primary-bg\n bg-bg-surface\n border-border-default\n rounded\n focus:ring-action-primary-bg\n \"\n />\n <span className=\"text-sm text-text-primary\">\n {t('bigconsole.widget.config.progress.showMax', 'Show maximum value')}\n </span>\n </label>\n </div>\n </div>\n );\n});\n\nexport default ProgressConfig;\n"],"mappings":"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"}
@@ -25,3 +25,4 @@ export interface ProgressData {
25
25
  }
26
26
  export declare const ProgressWidget: FC<ProgressWidgetProps>;
27
27
  export default ProgressWidget;
28
+ //# sourceMappingURL=ProgressWidget.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProgressWidget.d.ts","sourceRoot":"","sources":["../../../../../src/bigconsole/components/widgets/progress/ProgressWidget.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,EAA8B,MAAM,OAAO,CAAC;AAC5D,OAAO,KAAK,EAAE,MAAM,EAAkB,MAAM,gBAAgB,CAAC;AAQ7D,MAAM,WAAW,mBAAmB;IAClC,2BAA2B;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,oBAAoB;IACpB,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,kCAAkC;IAClC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,iDAAiD;IACjD,WAAW,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;CAC/D;AAED,MAAM,WAAW,YAAY;IAC3B,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,iDAAiD;IACjD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,mBAAmB;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6BAA6B;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uBAAuB;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AA8FD,eAAO,MAAM,cAAc,EAAE,EAAE,CAAC,mBAAmB,CA2QjD,CAAC;AAEH,eAAe,cAAc,CAAC"}
@@ -212,3 +212,5 @@ var m = a(function({ widget: a, data: m, onClick: h, onDrilldown: g }) {
212
212
  });
213
213
  //#endregion
214
214
  export { m as default };
215
+
216
+ //# sourceMappingURL=ProgressWidget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProgressWidget.js","names":[],"sources":["../../../../../src/bigconsole/components/widgets/progress/ProgressWidget.tsx"],"sourcesContent":["/**\n * ProgressWidget Component\n *\n * Progress bar widget with target, milestones, and color stages.\n */\n\nimport { type FC, memo, useMemo, useCallback } from 'react';\nimport type { Widget, ProgressConfig } from '../../../types';\nimport { ProgressBar, type Milestone } from './ProgressBar';\nimport { firstObjectRow, inferValueField, inferMaxValue, unwrapRows } from '../utils/inferFields';\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface ProgressWidgetProps {\n /** Widget configuration */\n widget: Widget;\n /** Progress data */\n data?: ProgressData;\n /** Click handler for drilldown */\n onClick?: () => void;\n /** Drilldown handler - receives progress data */\n onDrilldown?: (selectedData: Record<string, unknown>) => void;\n}\n\nexport interface ProgressData {\n /** Current value */\n value: number;\n /** Maximum value (for calculating percentage) */\n max?: number;\n /** Target value */\n target?: number;\n /** Label for the progress */\n label?: string;\n /** Description text */\n description?: string;\n}\n\n// ============================================================================\n// Helpers\n// ============================================================================\n\n/**\n * Coerce a `number` or finite numeric string to a number, else null.\n *\n * Parser output is untrusted JSON and routinely serializes metrics as strings,\n * so every numeric field (`value`, `max`, `target`) goes through this rather\n * than relying on implicit coercion or truthiness.\n */\nfunction toNumber(v: unknown): number | null {\n if (typeof v === 'number' && Number.isFinite(v)) return v;\n if (typeof v === 'string') {\n // `Number('')` and `Number(' ')` are 0, not NaN. An absent/blank field\n // must stay null — otherwise a parser emitting `{target: \"\"}` would render\n // a literal \"Target: 0\" with a marker pinned at 0%.\n const trimmed = v.trim();\n if (trimmed === '') return null;\n const n = Number(trimmed);\n if (Number.isFinite(n)) return n;\n }\n return null;\n}\n\n/**\n * Resolve the denominator for percentage maths.\n *\n * Picks the first candidate that is a usable positive number, so a max of `0`\n * (or a non-finite one) can never produce an Infinity/NaN percentage. The\n * previous `data.max || config?.max || 100` chain also treated a legitimate\n * max of 0 and a *string* max inconsistently.\n */\nfunction resolveMax(dataMax: number | undefined, configMax: number | undefined): number {\n for (const candidate of [dataMax, configMax]) {\n if (typeof candidate === 'number' && Number.isFinite(candidate) && candidate > 0) return candidate;\n }\n return 100;\n}\n\ntype ProgressValueFormat = NonNullable<ProgressConfig['format']>;\n\n/**\n * Format a progress number according to the widget's configured format.\n *\n * Shared by value, max AND target so the three figures shown together stay\n * mutually consistent — the target used to be formatted with a bare\n * `Intl.NumberFormat`, rendering e.g. \"$4,823,500 / $5,000,000\" next to a\n * target of \"5,000,000\".\n */\nfunction formatProgressNumber(value: number, format: ProgressValueFormat): string {\n switch (format) {\n case 'currency':\n return new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: 'USD',\n maximumFractionDigits: 0,\n }).format(value);\n case 'compact':\n return new Intl.NumberFormat('en-US', {\n notation: 'compact',\n maximumFractionDigits: 1,\n }).format(value);\n // 'percentage' deliberately shares the plain-number branch so value, max\n // and target remain consistent (matches the pre-existing value/max behaviour).\n case 'percentage':\n case 'number':\n default:\n return new Intl.NumberFormat('en-US').format(value);\n }\n}\n\n/**\n * Optional presentation fields a DataSink row carried.\n *\n * The array/envelope branches below rebuild a fresh object, so without this\n * they silently dropped `target` and `description` — an array payload rendered\n * with no target marker, no target footer and no description while the\n * identical single-object payload rendered all three.\n */\nfunction rowExtras(row: Record<string, unknown>): Pick<ProgressData, 'target' | 'description'> {\n const target = toNumber(row.target);\n return {\n ...(target !== null ? { target } : {}),\n ...(typeof row.description === 'string' ? { description: row.description } : {}),\n };\n}\n\n// ============================================================================\n// Component\n// ============================================================================\n\nexport const ProgressWidget: FC<ProgressWidgetProps> = memo(function ProgressWidget({\n widget,\n data: rawData,\n onClick,\n onDrilldown,\n}) {\n const config = widget.config as unknown as ProgressConfig | undefined;\n\n // BOFF-2246 smart default: if rawData is an array (or envelope) rather than\n // the expected `ProgressData` single object, pull the configured valueField\n // (flat OR dotted, e.g. `metrics.revenue`) or fall back to the first\n // numeric field. Auto-compute a sensible max from the dataset.\n const normalizedData = useMemo((): ProgressData | undefined => {\n if (!rawData) return undefined;\n // Already the expected shape — pass through. Accept both number and\n // numeric-string `value`, since parsers sometimes serialize metrics as\n // strings and the pre-BOFF-2246 code path rendered those via implicit\n // JS coercion in percentage math.\n if (typeof rawData === 'object' && !Array.isArray(rawData) && 'value' in rawData) {\n const source = rawData as unknown as Record<string, unknown>;\n const numericValue = toNumber(source.value);\n if (numericValue !== null) {\n // Coerce `max`/`target` with the same rule as `value`. Parser payloads\n // are untrusted JSON: a string max escapes the numeric guards below\n // (e.g. \"0\" is truthy, so `data.max || …` would select it and yield an\n // Infinity percentage), and a string target breaks the marker maths.\n const numericMax = toNumber(source.max);\n const numericTarget = toNumber(source.target);\n return {\n ...(rawData as ProgressData),\n value: numericValue,\n max: numericMax ?? undefined,\n target: numericTarget ?? undefined,\n };\n }\n }\n const row = firstObjectRow(rawData);\n if (!row) return undefined;\n const configuredField = (config as Record<string, unknown> | undefined)?.valueField as string | undefined;\n\n // Supports dotted paths like `metrics.revenue` so nested valueFields\n // configured in widget config resolve on array/envelope payloads the\n // same way they do on single-object payloads.\n const getNestedValue = (obj: Record<string, unknown>, path: string): unknown =>\n path.split('.').reduce<unknown>((current, key) => {\n return current && typeof current === 'object' ? (current as Record<string, unknown>)[key] : undefined;\n }, obj);\n\n const labelFromRow =\n typeof row.label === 'string' ? row.label : typeof row.name === 'string' ? row.name : undefined;\n\n // Configured field is authoritative — scan every row for it so sparse\n // envelopes like `{data:[{id:1},{revenue:120}]}` with\n // `valueField:\"revenue\"` still resolve. If no row carries it, return\n // undefined rather than substituting an unrelated numeric column from\n // row[0] via inference (that would silently misrepresent user config).\n if (configuredField) {\n const rows = unwrapRows(rawData) ?? [row];\n for (const r of rows) {\n if (r && typeof r === 'object') {\n const resolvedRow = r as Record<string, unknown>;\n const resolved = toNumber(getNestedValue(resolvedRow, configuredField));\n if (resolved !== null) {\n const rowLabel =\n typeof resolvedRow.label === 'string'\n ? resolvedRow.label\n : typeof resolvedRow.name === 'string'\n ? resolvedRow.name\n : labelFromRow;\n return {\n value: resolved,\n // Explicit config wins, then the row's own max (authoritative for\n // that row), then a dataset-derived guess.\n max: config?.max ?? toNumber(resolvedRow.max) ?? inferMaxValue(rawData, configuredField) ?? undefined,\n label: rowLabel,\n ...rowExtras(resolvedRow),\n };\n }\n }\n }\n return undefined;\n }\n\n // Fall back to inference (only when no configured field). `inferValueField`\n // already filters to numeric fields, but we still coerce here for symmetry\n // with the configured branch above.\n const inferred = inferValueField(row);\n if (!inferred) return undefined;\n const inferredValue = toNumber(row[inferred]);\n if (inferredValue === null) return undefined;\n return {\n value: inferredValue,\n max: config?.max ?? toNumber(row.max) ?? inferMaxValue(rawData, inferred) ?? undefined,\n label: labelFromRow,\n ...rowExtras(row),\n };\n }, [rawData, config]);\n\n // Downstream render uses the normalized shape. Name kept as `data` so the\n // rest of the component body (formattedValue, handleClick, header, etc.)\n // stays unchanged.\n const data = normalizedData;\n\n // Calculate percentage\n const percentage = useMemo(() => {\n if (!data) return 0;\n return (data.value / resolveMax(data.max, config?.max)) * 100;\n }, [data, config?.max]);\n\n // Calculate target percentage. `=== undefined` rather than a truthiness\n // check so a legitimate target of 0 still renders its marker.\n const targetPercentage = useMemo(() => {\n if (data?.target === undefined) return undefined;\n return (data.target / resolveMax(data.max, config?.max)) * 100;\n }, [data, config?.max]);\n\n // Build milestones from config\n const milestones: Milestone[] = useMemo(() => {\n if (!config?.milestones?.length) return [];\n return config.milestones.map((m) => ({\n position: m.position ?? m.value ?? 0,\n label: m.label,\n reached: percentage >= (m.position ?? m.value ?? 0),\n }));\n }, [config?.milestones, percentage]);\n\n // Determine color mode\n const colorMode = useMemo(() => {\n if (config?.colorMode === 'dynamic') return 'dynamic';\n if (config?.colorMode === 'success') return 'success';\n if (config?.colorMode === 'warning') return 'warning';\n if (config?.colorMode === 'error') return 'error';\n return 'default';\n }, [config?.colorMode]);\n\n // Format value\n const formattedValue = useMemo(() => {\n if (!data) return '0';\n return formatProgressNumber(data.value, config?.format || 'number');\n }, [data, config?.format]);\n\n const formattedMax = useMemo(() => {\n return formatProgressNumber(resolveMax(data?.max, config?.max), config?.format || 'number');\n }, [data?.max, config?.max, config?.format]);\n\n const formattedTarget = useMemo(() => {\n if (data?.target === undefined) return undefined;\n return formatProgressNumber(data.target, config?.format || 'number');\n }, [data?.target, config?.format]);\n\n const handleClick = useCallback(() => {\n // Support both legacy onClick and new onDrilldown\n if (onDrilldown && data) {\n onDrilldown({\n value: data.value,\n max: data.max,\n target: data.target,\n label: data.label,\n percentage,\n });\n } else if (onClick && widget.drilldowns?.length) {\n onClick();\n }\n }, [onClick, onDrilldown, widget.drilldowns, data, percentage]);\n\n const hasDrilldown = !!widget.drilldown?.enabled;\n const isClickable = Boolean(hasDrilldown || (onClick && widget.drilldowns?.length));\n\n if (!data) {\n // WidgetWrapper's `isUsableData` admits payloads this widget cannot turn\n // into a number (e.g. `{\"value\":\"n/a\"}` or `[{\"name\":\"a\",\"status\":\"ok\"}]`),\n // so its own empty state never shows. Returning bare null left an\n // unexplained blank card; render the same empty state the sibling widgets\n // use instead.\n return (\n <div className=\"flex items-center justify-center h-full text-text-secondary text-sm\">\n <div className=\"text-center\">\n <svg\n className=\"w-12 h-12 mx-auto mb-2 text-text-tertiary\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={1.5}\n d=\"M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z\"\n />\n </svg>\n <p>No progress data</p>\n </div>\n </div>\n );\n }\n\n return (\n <div\n className={`\n flex flex-col h-full p-4\n ${isClickable ? 'cursor-pointer hover:bg-bg-sunken/50 transition-colors' : ''}\n `}\n onClick={handleClick}\n role={isClickable ? 'button' : undefined}\n tabIndex={isClickable ? 0 : undefined}\n onKeyDown={(e) => {\n if (isClickable && (e.key === 'Enter' || e.key === ' ')) {\n e.preventDefault();\n handleClick();\n }\n }}\n >\n {/* Header */}\n <div className=\"flex items-start justify-between mb-4\">\n <div className=\"flex-1\">\n {data.label && <h4 className=\"text-sm font-medium text-text-primary\">{data.label}</h4>}\n {data.description && <p className=\"text-xs text-text-secondary mt-0.5\">{data.description}</p>}\n </div>\n\n {/* Value display */}\n <div className=\"text-right\">\n <span className=\"text-2xl font-bold text-text-primary\">{formattedValue}</span>\n {config?.showMax !== false && (\n <span className=\"text-sm text-text-secondary\">\n {' / '}\n {formattedMax}\n </span>\n )}\n </div>\n </div>\n\n {/* Progress bar */}\n <ProgressBar\n value={percentage}\n target={targetPercentage}\n milestones={milestones}\n height={config?.barHeight || 12}\n color={colorMode}\n showPercentage={config?.showPercentage !== false}\n />\n\n {/* Target info */}\n {data.target !== undefined && (\n <div className=\"mt-3 flex items-center gap-2 text-xs\">\n <svg className=\"w-4 h-4 text-text-secondary\" fill=\"currentColor\" viewBox=\"0 0 24 24\">\n <path d=\"M5 21V3h14l-3 9 3 9H5z\" />\n </svg>\n <span className=\"text-text-secondary\">\n Target: <span className=\"font-medium text-text-primary\">{formattedTarget}</span>\n {percentage >= (targetPercentage || 0) && <span className=\"text-status-success-text ml-1\">Reached!</span>}\n </span>\n </div>\n )}\n\n {/* Drilldown indicator */}\n {isClickable && (\n <div className=\"mt-auto pt-3 flex items-center justify-end\">\n <span className=\"text-xs text-text-secondary flex items-center gap-1\">\n View details\n <svg className=\"w-3 h-3\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M9 5l7 7-7 7\" />\n </svg>\n </span>\n </div>\n )}\n </div>\n );\n});\n\nexport default ProgressWidget;\n"],"mappings":"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"}
@@ -6,3 +6,4 @@
6
6
  export { ProgressWidget, type ProgressWidgetProps, type ProgressData } from './ProgressWidget';
7
7
  export { ProgressConfig, type ProgressConfigProps } from './ProgressConfig';
8
8
  export { ProgressBar, type ProgressBarProps, type Milestone } from './ProgressBar';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/bigconsole/components/widgets/progress/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC/F,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,KAAK,SAAS,EAAE,MAAM,eAAe,CAAC"}
@@ -22,3 +22,4 @@ export interface RetentionData {
22
22
  }
23
23
  export declare const RetentionWidget: FC<RetentionWidgetProps>;
24
24
  export default RetentionWidget;
25
+ //# sourceMappingURL=RetentionWidget.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RetentionWidget.d.ts","sourceRoot":"","sources":["../../../../../src/bigconsole/components/widgets/retention/RetentionWidget.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,EAA8B,MAAM,OAAO,CAAC;AAC5D,OAAO,KAAK,EAAE,MAAM,EAAmB,MAAM,gBAAgB,CAAC;AAM9D,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACnE;AAED,MAAM,WAAW,eAAe;IAC9B,qDAAqD;IACrD,MAAM,EAAE,MAAM,CAAC;IACf,0BAA0B;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,qDAAqD;IACrD,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,oDAAoD;IACpD,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,kBAAkB;IAClB,OAAO,EAAE,eAAe,EAAE,CAAC;CAC5B;AAoBD,eAAO,MAAM,eAAe,EAAE,EAAE,CAAC,oBAAoB,CAqInD,CAAC;AAEH,eAAe,eAAe,CAAC"}
@@ -155,3 +155,5 @@ var o = e(function({ widget: e, data: o, onClick: s }) {
155
155
  });
156
156
  //#endregion
157
157
  export { o as default };
158
+
159
+ //# sourceMappingURL=RetentionWidget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RetentionWidget.js","names":[],"sources":["../../../../../src/bigconsole/components/widgets/retention/RetentionWidget.tsx"],"sourcesContent":["/**\n * RetentionWidget Component\n *\n * Retention cohort chart showing user retention over time.\n */\n\nimport { type FC, memo, useMemo, useCallback } from 'react';\nimport type { Widget, RetentionConfig } from '../../../types';\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface RetentionWidgetProps {\n widget: Widget;\n data?: RetentionData;\n onClick?: (cohort: string, period: number, value: number) => void;\n}\n\nexport interface RetentionCohort {\n /** Cohort identifier (e.g., \"Week 1\", \"Jan 2024\") */\n cohort: string;\n /** Initial cohort size */\n initialSize: number;\n /** Retention values for each period (percentages) */\n values: number[];\n}\n\nexport interface RetentionData {\n /** Period labels (e.g., [\"Day 0\", \"Day 1\", ...]) */\n periods: string[];\n /** Cohort data */\n cohorts: RetentionCohort[];\n}\n\n// ============================================================================\n// Helpers\n// ============================================================================\n\nfunction getRetentionColor(value: number): string {\n // Green gradient based on retention percentage\n if (value >= 80) return 'bg-status-success-bg/90 text-white';\n if (value >= 60) return 'bg-status-success-bg/70 text-white';\n if (value >= 40) return 'bg-status-success-bg/50 text-text-primary';\n if (value >= 20) return 'bg-status-success-bg/30 text-text-primary';\n if (value > 0) return 'bg-status-success-bg/10 text-text-secondary';\n return 'bg-bg-sunken text-text-secondary';\n}\n\n// ============================================================================\n// Component\n// ============================================================================\n\nexport const RetentionWidget: FC<RetentionWidgetProps> = memo(function RetentionWidget({ widget, data, onClick }) {\n const config = widget.config as unknown as RetentionConfig | undefined;\n\n const handleCellClick = useCallback(\n (cohort: string, periodIndex: number, value: number) => {\n if (onClick && widget.drilldowns?.length) {\n onClick(cohort, periodIndex, value);\n }\n },\n [onClick, widget.drilldowns]\n );\n\n const isClickable = Boolean(onClick && widget.drilldowns?.length);\n\n // Calculate average retention per period\n const averages = useMemo(() => {\n if (!data?.cohorts?.length || !data?.periods?.length) return [];\n\n return data.periods.map((_, periodIndex) => {\n const values = data.cohorts\n .map((c) => c.values?.[periodIndex])\n .filter((v) => v !== undefined && v !== null) as number[];\n if (values.length === 0) return 0;\n return values.reduce((a, b) => a + b, 0) / values.length;\n });\n }, [data]);\n\n // Show retention-specific empty state when cohort data is missing.\n if (!data?.cohorts?.length || !data?.periods?.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=\"M9 17V7m0 10a2 2 0 01-2 2H5a2 2 0 01-2-2V7a2 2 0 012-2h2a2 2 0 012 2m0 10a2 2 0 002 2h2a2 2 0 002-2M9 7a2 2 0 012-2h2a2 2 0 012 2m0 10V7m0 10a2 2 0 002 2h2a2 2 0 002-2V7a2 2 0 00-2-2h-2a2 2 0 00-2 2\"\n />\n </svg>\n <p className=\"font-medium text-text-primary\">No retention cohort data</p>\n <p className=\"text-xs text-text-muted mt-1\">\n Connect a data source that returns <span className=\"font-mono\">periods</span> and{' '}\n <span className=\"font-mono\">cohorts</span>.\n </p>\n <p className=\"text-xs text-text-muted mt-2\">\n Expected shape: <span className=\"font-mono\">RetentionData</span>.\n </p>\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"flex flex-col h-full p-4 overflow-auto\">\n <table className=\"w-full border-collapse\">\n <thead>\n <tr>\n <th className=\"p-2 text-xs font-medium text-text-secondary text-left sticky left-0 bg-bg-surface\">\n Cohort\n </th>\n <th className=\"p-2 text-xs font-medium text-text-secondary text-right\">Users</th>\n {data.periods.map((period, i) => (\n <th key={i} className=\"p-2 text-xs font-medium text-text-secondary text-center min-w-[60px]\">\n {period}\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {data.cohorts.map((cohort, _cohortIndex) => (\n <tr key={cohort.cohort}>\n <td className=\"p-2 text-sm font-medium text-text-primary text-left sticky left-0 bg-bg-surface\">\n {cohort.cohort}\n </td>\n <td className=\"p-2 text-sm text-text-secondary text-right\">\n {new Intl.NumberFormat('en-US').format(cohort.initialSize)}\n </td>\n {cohort.values.map((value, periodIndex) => (\n <td\n key={periodIndex}\n className={`p-0 ${isClickable ? 'cursor-pointer' : ''}`}\n onClick={() => handleCellClick(cohort.cohort, periodIndex, value)}\n >\n <div\n className={`\n m-0.5 p-2 rounded text-center\n ${getRetentionColor(value)}\n ${isClickable ? 'hover:ring-2 hover:ring-action-primary-bg' : ''}\n transition-all\n `}\n title={`${cohort.cohort} - ${data.periods[periodIndex]}: ${value.toFixed(1)}%`}\n >\n <span className=\"text-xs font-medium\">{value.toFixed(config?.decimals ?? 0)}%</span>\n </div>\n </td>\n ))}\n </tr>\n ))}\n\n {/* Average row */}\n {config?.showAverages !== false && (\n <tr className=\"border-t-2 border-border-default\">\n <td className=\"p-2 text-sm font-medium text-text-primary sticky left-0 bg-bg-surface\">Average</td>\n <td className=\"p-2 text-sm text-text-secondary text-right\">—</td>\n {averages.map((avg, i) => (\n <td key={i} className=\"p-0\">\n <div className=\"m-0.5 p-2 rounded bg-bg-sunken text-center\">\n <span className=\"text-xs font-semibold text-text-primary\">\n {avg.toFixed(config?.decimals ?? 0)}%\n </span>\n </div>\n </td>\n ))}\n </tr>\n )}\n </tbody>\n </table>\n\n {/* Legend */}\n {config?.showLegend !== false && (\n <div className=\"flex items-center justify-center gap-2 mt-4\">\n <span className=\"text-xs text-text-secondary\">0%</span>\n <div className=\"flex gap-0.5\">\n {[10, 30, 50, 70, 90].map((opacity) => (\n <div key={opacity} className={`w-6 h-4 rounded bg-status-success-bg/${opacity}`} />\n ))}\n </div>\n <span className=\"text-xs text-text-secondary\">100%</span>\n </div>\n )}\n </div>\n );\n});\n\nexport default RetentionWidget;\n"],"mappings":"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"}
@@ -4,3 +4,4 @@
4
4
  * Cohort retention chart showing user retention over time.
5
5
  */
6
6
  export { RetentionWidget, type RetentionWidgetProps, type RetentionData, type RetentionCohort, } from './RetentionWidget';
7
+ //# sourceMappingURL=index.d.ts.map