@burdenoff/microfe-bigconsole 2026.1008.13 → 2026.1008.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -0
- package/dist/bigconsole/AdminRoot.d.ts +0 -1
- package/dist/bigconsole/AdminRoot.js +0 -2
- package/dist/bigconsole/AdminRoutes.d.ts +0 -1
- package/dist/bigconsole/AdminRoutes.js +0 -2
- package/dist/bigconsole/BigConsoleRoot.d.ts +0 -1
- package/dist/bigconsole/BigConsoleRoot.js +0 -2
- package/dist/bigconsole/BigConsoleRoutes.d.ts +0 -1
- package/dist/bigconsole/BigConsoleRoutes.js +0 -2
- package/dist/bigconsole/assistant/assistantApi.d.ts +0 -1
- package/dist/bigconsole/assistant/assistantApi.js +0 -2
- package/dist/bigconsole/assistant/assistantProduct.d.ts +0 -1
- package/dist/bigconsole/assistant/assistantProduct.js +0 -2
- package/dist/bigconsole/assistant/assistantPrompt.d.ts +0 -1
- package/dist/bigconsole/assistant/assistantPrompt.js +0 -2
- package/dist/bigconsole/assistant/assistantRunPersistence.d.ts +0 -1
- package/dist/bigconsole/assistant/assistantRunPersistence.js +0 -2
- package/dist/bigconsole/assistant/assistantRunStore.d.ts +0 -1
- package/dist/bigconsole/assistant/assistantRunStore.js +0 -2
- package/dist/bigconsole/assistant/assistantRuntime.d.ts +0 -1
- package/dist/bigconsole/assistant/assistantRuntime.js +0 -2
- package/dist/bigconsole/assistant/attachmentExtract.d.ts +0 -1
- package/dist/bigconsole/assistant/attachmentExtract.js +0 -2
- package/dist/bigconsole/assistant/conversationHistoryApi.d.ts +0 -1
- package/dist/bigconsole/assistant/conversationHistoryApi.js +0 -2
- package/dist/bigconsole/assistant/createSandboxAssistantTransport.d.ts +0 -1
- package/dist/bigconsole/assistant/createSandboxAssistantTransport.js +0 -2
- package/dist/bigconsole/assistant/displayCopy.d.ts +0 -1
- package/dist/bigconsole/assistant/index.d.ts +0 -1
- package/dist/bigconsole/assistant/modes.d.ts +0 -1
- package/dist/bigconsole/assistant/modes.js +0 -2
- package/dist/bigconsole/assistant/pageContext.d.ts +0 -1
- package/dist/bigconsole/assistant/pageContext.js +0 -2
- package/dist/bigconsole/assistant/previewController.d.ts +0 -1
- package/dist/bigconsole/assistant/previewController.js +0 -2
- package/dist/bigconsole/assistant/previewMutationResult.d.ts +0 -1
- package/dist/bigconsole/assistant/previewMutationResult.js +0 -2
- package/dist/bigconsole/assistant/previewRunAction.d.ts +0 -1
- package/dist/bigconsole/assistant/previewRunAction.js +0 -2
- package/dist/bigconsole/assistant/product.d.ts +0 -1
- package/dist/bigconsole/assistant/product.js +0 -2
- package/dist/bigconsole/assistant/recordAdapters.d.ts +0 -1
- package/dist/bigconsole/assistant/recordAdapters.js +0 -2
- package/dist/bigconsole/assistant/types.d.ts +0 -1
- package/dist/bigconsole/assistant/useAssistantRunWorkspace.d.ts +0 -1
- package/dist/bigconsole/assistant/useAssistantRunWorkspace.js +0 -2
- package/dist/bigconsole/assistant/useWorkspaceWriteAccess.d.ts +0 -1
- package/dist/bigconsole/assistant/useWorkspaceWriteAccess.js +0 -2
- package/dist/bigconsole/components/DrilldownDashboardRenderer.d.ts +0 -1
- package/dist/bigconsole/components/DrilldownDashboardRenderer.js +0 -2
- package/dist/bigconsole/components/DrilldownModal.d.ts +0 -1
- package/dist/bigconsole/components/DrilldownModal.js +0 -2
- package/dist/bigconsole/components/builder/BuilderCanvas.d.ts +0 -1
- package/dist/bigconsole/components/builder/BuilderCanvas.js +0 -2
- package/dist/bigconsole/components/builder/BuilderTopbar.d.ts +0 -1
- package/dist/bigconsole/components/builder/BuilderTopbar.js +0 -2
- package/dist/bigconsole/components/builder/DashboardEditorShell.d.ts +0 -1
- package/dist/bigconsole/components/builder/DashboardEditorShell.js +0 -2
- package/dist/bigconsole/components/builder/WidgetInspector.d.ts +0 -1
- package/dist/bigconsole/components/builder/WidgetInspector.js +0 -2
- package/dist/bigconsole/components/builder/index.d.ts +0 -1
- package/dist/bigconsole/components/builder/inspector/AdvancedSection.d.ts +0 -1
- package/dist/bigconsole/components/builder/inspector/AdvancedSection.js +0 -2
- package/dist/bigconsole/components/builder/inspector/AppearanceSection.d.ts +0 -1
- package/dist/bigconsole/components/builder/inspector/AppearanceSection.js +0 -2
- package/dist/bigconsole/components/builder/inspector/DataBindingSection.d.ts +0 -1
- package/dist/bigconsole/components/builder/inspector/DataBindingSection.js +0 -2
- package/dist/bigconsole/components/builder/inspector/GeneralSection.d.ts +0 -1
- package/dist/bigconsole/components/builder/inspector/GeneralSection.js +0 -2
- package/dist/bigconsole/components/builder/inspector/LayoutSection.d.ts +0 -1
- package/dist/bigconsole/components/builder/inspector/LayoutSection.js +0 -2
- package/dist/bigconsole/components/builder/inspector/index.d.ts +0 -1
- package/dist/bigconsole/components/common/Section.d.ts +0 -1
- package/dist/bigconsole/components/common/Section.js +0 -2
- package/dist/bigconsole/components/common/index.d.ts +0 -1
- package/dist/bigconsole/components/common/sectionStyles.d.ts +0 -1
- package/dist/bigconsole/components/common/sectionStyles.js +0 -2
- package/dist/bigconsole/components/dashboard/CreateDashboardDialog.d.ts +0 -1
- package/dist/bigconsole/components/dashboard/CreateDashboardDialog.js +0 -2
- package/dist/bigconsole/components/dashboard/DashboardCanvas.d.ts +0 -1
- package/dist/bigconsole/components/dashboard/DashboardCanvas.js +0 -2
- package/dist/bigconsole/components/dashboard/DashboardGrid.d.ts +0 -1
- package/dist/bigconsole/components/dashboard/DashboardGrid.js +0 -2
- package/dist/bigconsole/components/dashboard/DashboardStatusPill.d.ts +0 -1
- package/dist/bigconsole/components/dashboard/DashboardStatusPill.js +0 -2
- package/dist/bigconsole/components/dashboard/DashboardToolbar.d.ts +0 -1
- package/dist/bigconsole/components/dashboard/DashboardToolbar.js +0 -2
- package/dist/bigconsole/components/dashboard/DrilldownBreadcrumb.d.ts +0 -1
- package/dist/bigconsole/components/dashboard/DrilldownBreadcrumb.js +0 -2
- package/dist/bigconsole/components/dashboard/ExportDashboardDialog.d.ts +0 -1
- package/dist/bigconsole/components/dashboard/ExportDashboardDialog.js +0 -2
- package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterChip.d.ts +0 -1
- package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterChip.js +0 -2
- package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterEditor.d.ts +0 -1
- package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterEditor.js +0 -2
- package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterPresetSelector.d.ts +0 -1
- package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterPresetSelector.js +0 -2
- package/dist/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.d.ts +0 -1
- package/dist/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.js +0 -2
- package/dist/bigconsole/components/dashboard/GlobalFiltersBar/index.d.ts +0 -1
- package/dist/bigconsole/components/dashboard/ImportDashboardDialog.d.ts +0 -1
- package/dist/bigconsole/components/dashboard/ImportDashboardDialog.js +0 -2
- package/dist/bigconsole/components/dashboard/LiveBoardBanner.d.ts +0 -1
- package/dist/bigconsole/components/dashboard/LiveBoardBanner.js +0 -2
- package/dist/bigconsole/components/dashboard/LiveCanvasToggle.d.ts +0 -1
- package/dist/bigconsole/components/dashboard/LiveCanvasToggle.js +0 -2
- package/dist/bigconsole/components/dashboard/PageTabsManager/PageTabsManager.d.ts +0 -1
- package/dist/bigconsole/components/dashboard/PageTabsManager/PageTabsManager.js +0 -2
- package/dist/bigconsole/components/dashboard/PageTabsManager/index.d.ts +0 -1
- package/dist/bigconsole/components/dashboard/PublishToStoreDialog.d.ts +0 -1
- package/dist/bigconsole/components/dashboard/PublishToStoreDialog.js +0 -2
- package/dist/bigconsole/components/dashboard/SavedViewsDropdown/SavedViewsDropdown.d.ts +0 -1
- package/dist/bigconsole/components/dashboard/SavedViewsDropdown/SavedViewsDropdown.js +0 -2
- package/dist/bigconsole/components/dashboard/SavedViewsDropdown/index.d.ts +0 -1
- package/dist/bigconsole/components/dashboard/ShareDialog/EmbedTab.d.ts +0 -1
- package/dist/bigconsole/components/dashboard/ShareDialog/EmbedTab.js +0 -2
- package/dist/bigconsole/components/dashboard/ShareDialog/ShareDialog.d.ts +0 -1
- package/dist/bigconsole/components/dashboard/ShareDialog/ShareDialog.js +0 -2
- package/dist/bigconsole/components/dashboard/ShareDialog/index.d.ts +0 -1
- package/dist/bigconsole/components/dashboard/StoreTemplatePicker.d.ts +0 -1
- package/dist/bigconsole/components/dashboard/StoreTemplatePicker.js +0 -2
- package/dist/bigconsole/components/dashboard/TemplateInstallOptions.d.ts +0 -1
- package/dist/bigconsole/components/dashboard/TemplateInstallOptions.js +0 -2
- package/dist/bigconsole/components/dashboard/TemplateLayoutPreview.d.ts +0 -1
- package/dist/bigconsole/components/dashboard/TemplateLayoutPreview.js +0 -2
- package/dist/bigconsole/components/dashboard/TemplatePicker/TemplatePicker.d.ts +0 -1
- package/dist/bigconsole/components/dashboard/TemplatePicker/index.d.ts +0 -1
- package/dist/bigconsole/components/dashboard/TemplateSetupBanner.d.ts +0 -1
- package/dist/bigconsole/components/dashboard/TemplateSetupBanner.js +0 -2
- package/dist/bigconsole/components/dashboard/WidgetPalette.d.ts +0 -1
- package/dist/bigconsole/components/dashboard/WidgetPalette.js +0 -2
- package/dist/bigconsole/components/dashboard/index.d.ts +0 -1
- package/dist/bigconsole/components/datasink/AlertExecutionHistory.d.ts +0 -1
- package/dist/bigconsole/components/datasink/AlertExecutionHistory.js +0 -2
- package/dist/bigconsole/components/datasink/AlertRuleEditor.d.ts +0 -1
- package/dist/bigconsole/components/datasink/AlertRuleEditor.js +0 -2
- package/dist/bigconsole/components/datasink/CacheTTLSelector.d.ts +0 -1
- package/dist/bigconsole/components/datasink/CacheTTLSelector.js +0 -2
- package/dist/bigconsole/components/datasink/ConfigurationForm.d.ts +0 -1
- package/dist/bigconsole/components/datasink/DataPreviewPanel.d.ts +0 -1
- package/dist/bigconsole/components/datasink/DataSinkCard.d.ts +0 -1
- package/dist/bigconsole/components/datasink/DataSinkCard.js +0 -2
- package/dist/bigconsole/components/datasink/DataSinkDataViewer.d.ts +0 -1
- package/dist/bigconsole/components/datasink/DataSinkDataViewer.js +0 -2
- package/dist/bigconsole/components/datasink/DataSinkDeleteDialog.d.ts +0 -1
- package/dist/bigconsole/components/datasink/DataSinkDeleteDialog.js +0 -2
- package/dist/bigconsole/components/datasink/DataSinkRefreshConfig.d.ts +0 -1
- package/dist/bigconsole/components/datasink/DataSinkRefreshDialog.d.ts +0 -1
- package/dist/bigconsole/components/datasink/DataSinkRefreshDialog.js +0 -2
- package/dist/bigconsole/components/datasink/DataSinkStatusBadge.d.ts +0 -1
- package/dist/bigconsole/components/datasink/DataSinkStatusBadge.js +0 -2
- package/dist/bigconsole/components/datasink/DataSinkTableViewer.d.ts +0 -1
- package/dist/bigconsole/components/datasink/DataSinkTableViewer.js +0 -2
- package/dist/bigconsole/components/datasink/ExportDataSinkDialog.d.ts +0 -1
- package/dist/bigconsole/components/datasink/ExportDataSinkDialog.js +0 -2
- package/dist/bigconsole/components/datasink/FluidGridsPanel.d.ts +0 -1
- package/dist/bigconsole/components/datasink/ImportDataGuideDialog.d.ts +0 -1
- package/dist/bigconsole/components/datasink/ImportDataGuideDialog.js +0 -2
- package/dist/bigconsole/components/datasink/ImportDataSinkDialog.d.ts +0 -1
- package/dist/bigconsole/components/datasink/ImportDataSinkDialog.js +0 -2
- package/dist/bigconsole/components/datasink/LinkedParsersPanel.d.ts +0 -1
- package/dist/bigconsole/components/datasink/LinkedParsersPanel.js +0 -2
- package/dist/bigconsole/components/datasink/LinkedWorkflowsPanel.d.ts +0 -1
- package/dist/bigconsole/components/datasink/LinkedWorkflowsPanel.js +0 -2
- package/dist/bigconsole/components/datasink/RefreshTypeSelector.d.ts +0 -1
- package/dist/bigconsole/components/datasink/RefreshTypeSelector.js +0 -2
- package/dist/bigconsole/components/datasink/SetupStateBadge.d.ts +0 -1
- package/dist/bigconsole/components/datasink/SetupStateBadge.js +0 -2
- package/dist/bigconsole/components/datasink/WorkflowStatusPanel.d.ts +0 -1
- package/dist/bigconsole/components/datasink/WorkflowStatusPanel.js +0 -2
- package/dist/bigconsole/components/datasink/index.d.ts +0 -1
- package/dist/bigconsole/components/embed/EmbedErrorBoundary.d.ts +0 -1
- package/dist/bigconsole/components/embed/EmbedErrorBoundary.js +0 -2
- package/dist/bigconsole/components/embed/EmbedWidgetRenderer.d.ts +0 -1
- package/dist/bigconsole/components/embed/EmbedWidgetRenderer.js +0 -2
- package/dist/bigconsole/components/embed/ReadOnlyDashboardRenderer.d.ts +0 -1
- package/dist/bigconsole/components/embed/ReadOnlyDashboardRenderer.js +0 -2
- package/dist/bigconsole/components/embed/drilldown.d.ts +0 -1
- package/dist/bigconsole/components/embed/drilldown.js +0 -2
- package/dist/bigconsole/components/embed/index.d.ts +0 -1
- package/dist/bigconsole/components/embed/renderer-manifest.d.ts +0 -1
- package/dist/bigconsole/components/embed/renderer-manifest.js +0 -2
- package/dist/bigconsole/components/embed/types.d.ts +0 -1
- package/dist/bigconsole/components/embed/types.js +0 -2
- package/dist/bigconsole/components/embed/validate.d.ts +0 -1
- package/dist/bigconsole/components/embed/validate.js +0 -2
- package/dist/bigconsole/components/embed/widgetShim.d.ts +0 -1
- package/dist/bigconsole/components/embed/widgetShim.js +0 -2
- package/dist/bigconsole/components/embed/widgets/CalendarEmbed.d.ts +0 -1
- package/dist/bigconsole/components/embed/widgets/CalendarEmbed.js +0 -2
- package/dist/bigconsole/components/embed/widgets/ChartEmbed.d.ts +0 -1
- package/dist/bigconsole/components/embed/widgets/ChartEmbed.js +0 -2
- package/dist/bigconsole/components/embed/widgets/EmbedFrame.d.ts +0 -1
- package/dist/bigconsole/components/embed/widgets/EmbedFrame.js +0 -2
- package/dist/bigconsole/components/embed/widgets/FormEmbed.d.ts +0 -1
- package/dist/bigconsole/components/embed/widgets/FormEmbed.js +0 -2
- package/dist/bigconsole/components/embed/widgets/GaugeEmbed.d.ts +0 -1
- package/dist/bigconsole/components/embed/widgets/GaugeEmbed.js +0 -2
- package/dist/bigconsole/components/embed/widgets/HeatmapEmbed.d.ts +0 -1
- package/dist/bigconsole/components/embed/widgets/HeatmapEmbed.js +0 -2
- package/dist/bigconsole/components/embed/widgets/KanbanEmbed.d.ts +0 -1
- package/dist/bigconsole/components/embed/widgets/KanbanEmbed.js +0 -2
- package/dist/bigconsole/components/embed/widgets/KpiComparisonEmbed.d.ts +0 -1
- package/dist/bigconsole/components/embed/widgets/KpiComparisonEmbed.js +0 -2
- package/dist/bigconsole/components/embed/widgets/ListEmbed.d.ts +0 -1
- package/dist/bigconsole/components/embed/widgets/ListEmbed.js +0 -2
- package/dist/bigconsole/components/embed/widgets/MetricCardEmbed.d.ts +0 -1
- package/dist/bigconsole/components/embed/widgets/MetricCardEmbed.js +0 -2
- package/dist/bigconsole/components/embed/widgets/PivotEmbed.d.ts +0 -1
- package/dist/bigconsole/components/embed/widgets/PivotEmbed.js +0 -2
- package/dist/bigconsole/components/embed/widgets/ProgressEmbed.d.ts +0 -1
- package/dist/bigconsole/components/embed/widgets/ProgressEmbed.js +0 -2
- package/dist/bigconsole/components/embed/widgets/RetentionEmbed.d.ts +0 -1
- package/dist/bigconsole/components/embed/widgets/RetentionEmbed.js +0 -2
- package/dist/bigconsole/components/embed/widgets/TableEmbed.d.ts +0 -1
- package/dist/bigconsole/components/embed/widgets/TableEmbed.js +0 -2
- package/dist/bigconsole/components/embed/widgets/TextEmbed.d.ts +0 -1
- package/dist/bigconsole/components/embed/widgets/TextEmbed.js +0 -2
- package/dist/bigconsole/components/embed/widgets/TimelineEmbed.d.ts +0 -1
- package/dist/bigconsole/components/embed/widgets/TimelineEmbed.js +0 -2
- package/dist/bigconsole/components/embed/widgets/shared.d.ts +0 -1
- package/dist/bigconsole/components/embed/widgets/shared.js +0 -2
- package/dist/bigconsole/components/overview/DashboardGuide.d.ts +0 -1
- package/dist/bigconsole/components/overview/DashboardGuide.js +0 -2
- package/dist/bigconsole/components/overview/DataHealthCard.d.ts +0 -1
- package/dist/bigconsole/components/overview/DataHealthCard.js +0 -2
- package/dist/bigconsole/components/overview/OverviewQuickActions.d.ts +0 -1
- package/dist/bigconsole/components/overview/OverviewQuickActions.js +0 -2
- package/dist/bigconsole/components/overview/OverviewStatCard.d.ts +0 -1
- package/dist/bigconsole/components/overview/OverviewStatCard.js +0 -2
- package/dist/bigconsole/components/overview/RecentDashboardsPanel.d.ts +0 -1
- package/dist/bigconsole/components/overview/RecentDashboardsPanel.js +0 -2
- package/dist/bigconsole/components/overview/dashboardGuideSteps.d.ts +0 -1
- package/dist/bigconsole/components/overview/dashboardGuideSteps.js +0 -2
- package/dist/bigconsole/components/overview/index.d.ts +0 -1
- package/dist/bigconsole/components/overview/overviewModel.d.ts +0 -1
- package/dist/bigconsole/components/overview/overviewModel.js +0 -2
- package/dist/bigconsole/components/overview/useOverviewData.d.ts +0 -1
- package/dist/bigconsole/components/overview/useOverviewData.js +0 -2
- package/dist/bigconsole/components/parser/DataSinkSelector.d.ts +0 -1
- package/dist/bigconsole/components/parser/DataSinkSelector.js +0 -2
- package/dist/bigconsole/components/parser/ExportParserDialog.d.ts +0 -1
- package/dist/bigconsole/components/parser/ExportParserDialog.js +0 -2
- package/dist/bigconsole/components/parser/ExpressionEditor.d.ts +0 -1
- package/dist/bigconsole/components/parser/ExpressionEditor.js +0 -2
- package/dist/bigconsole/components/parser/ImportParserDialog.d.ts +0 -1
- package/dist/bigconsole/components/parser/ImportParserDialog.js +0 -2
- package/dist/bigconsole/components/parser/ParserBuilder.d.ts +0 -1
- package/dist/bigconsole/components/parser/ParserCard.d.ts +0 -1
- package/dist/bigconsole/components/parser/ParserCard.js +0 -2
- package/dist/bigconsole/components/parser/ParserFormDialog.d.ts +0 -1
- package/dist/bigconsole/components/parser/ParserSelector.d.ts +0 -1
- package/dist/bigconsole/components/parser/ParserSelector.js +0 -2
- package/dist/bigconsole/components/parser/ParserStatusBadge.d.ts +0 -1
- package/dist/bigconsole/components/parser/ParserStatusBadge.js +0 -2
- package/dist/bigconsole/components/parser/ParserTypeBadge.d.ts +0 -1
- package/dist/bigconsole/components/parser/ParserTypeBadge.js +0 -2
- package/dist/bigconsole/components/parser/TestPanel.d.ts +0 -1
- package/dist/bigconsole/components/parser/index.d.ts +0 -1
- package/dist/bigconsole/components/parser/parserFieldStyles.d.ts +0 -1
- package/dist/bigconsole/components/pipeline/PipelineCard.d.ts +0 -1
- package/dist/bigconsole/components/pipeline/PipelineCard.js +0 -2
- package/dist/bigconsole/components/pipeline/PipelineDeleteDialog.d.ts +0 -1
- package/dist/bigconsole/components/pipeline/PipelineDeleteDialog.js +0 -2
- package/dist/bigconsole/components/pipeline/PipelineScopePicker.d.ts +0 -1
- package/dist/bigconsole/components/pipeline/PipelineScopePicker.js +0 -2
- package/dist/bigconsole/components/pipeline/PipelineStatusBadge.d.ts +0 -1
- package/dist/bigconsole/components/pipeline/PipelineStatusBadge.js +0 -2
- package/dist/bigconsole/components/pipeline/index.d.ts +0 -1
- package/dist/bigconsole/components/preview/AiPreviewContent.d.ts +0 -1
- package/dist/bigconsole/components/preview/AiPreviewContent.js +0 -2
- package/dist/bigconsole/components/preview/AiPreviewMiniPanel.d.ts +0 -1
- package/dist/bigconsole/components/preview/AiPreviewMiniPanel.js +0 -2
- package/dist/bigconsole/components/preview/AiPreviewPanel.d.ts +0 -1
- package/dist/bigconsole/components/preview/AiPreviewPanel.js +0 -2
- package/dist/bigconsole/components/preview/parserPreview.d.ts +0 -1
- package/dist/bigconsole/components/preview/parserPreview.js +0 -2
- package/dist/bigconsole/components/preview/previewShared.d.ts +0 -1
- package/dist/bigconsole/components/preview/previewShared.js +0 -2
- package/dist/bigconsole/components/widgets/ActionConfigDialog.d.ts +0 -1
- package/dist/bigconsole/components/widgets/ActionConfigDialog.js +0 -2
- package/dist/bigconsole/components/widgets/DrilldownConfigPanel.d.ts +0 -1
- package/dist/bigconsole/components/widgets/DrilldownConfigPanel.js +0 -2
- package/dist/bigconsole/components/widgets/PropertiesPanel.d.ts +0 -1
- package/dist/bigconsole/components/widgets/PropertiesPanel.js +0 -2
- package/dist/bigconsole/components/widgets/WidgetErrorBoundary.d.ts +0 -1
- package/dist/bigconsole/components/widgets/WidgetErrorBoundary.js +0 -2
- package/dist/bigconsole/components/widgets/WidgetHeader.d.ts +0 -1
- package/dist/bigconsole/components/widgets/WidgetHeader.js +0 -2
- package/dist/bigconsole/components/widgets/WidgetMenu.d.ts +0 -1
- package/dist/bigconsole/components/widgets/WidgetMenu.js +0 -2
- package/dist/bigconsole/components/widgets/WidgetRegistry.d.ts +0 -1
- package/dist/bigconsole/components/widgets/WidgetRegistry.js +0 -2
- package/dist/bigconsole/components/widgets/WidgetTypeSelector.d.ts +0 -1
- package/dist/bigconsole/components/widgets/WidgetWrapper.d.ts +0 -1
- package/dist/bigconsole/components/widgets/WidgetWrapper.js +0 -2
- package/dist/bigconsole/components/widgets/actionConfig.d.ts +0 -1
- package/dist/bigconsole/components/widgets/actionConfig.js +0 -2
- package/dist/bigconsole/components/widgets/adaptive-card/AdaptiveCardWidget.d.ts +0 -1
- package/dist/bigconsole/components/widgets/adaptive-card/AdaptiveCardWidget.js +0 -2
- package/dist/bigconsole/components/widgets/adaptive-card/index.d.ts +0 -1
- package/dist/bigconsole/components/widgets/calendar/CalendarView.d.ts +0 -1
- package/dist/bigconsole/components/widgets/calendar/CalendarView.js +0 -2
- package/dist/bigconsole/components/widgets/calendar/CalendarWidget.d.ts +0 -1
- package/dist/bigconsole/components/widgets/calendar/CalendarWidget.js +0 -2
- package/dist/bigconsole/components/widgets/calendar/index.d.ts +0 -1
- package/dist/bigconsole/components/widgets/chart/ChartConfig.d.ts +0 -1
- package/dist/bigconsole/components/widgets/chart/ChartConfig.js +0 -2
- package/dist/bigconsole/components/widgets/chart/ChartLegend.d.ts +0 -1
- package/dist/bigconsole/components/widgets/chart/ChartLegend.js +0 -2
- package/dist/bigconsole/components/widgets/chart/ChartTooltip.d.ts +0 -1
- package/dist/bigconsole/components/widgets/chart/ChartTooltip.js +0 -2
- package/dist/bigconsole/components/widgets/chart/ChartWidget.d.ts +0 -1
- package/dist/bigconsole/components/widgets/chart/ChartWidget.js +0 -2
- package/dist/bigconsole/components/widgets/chart/charts/AreaChart.d.ts +0 -1
- package/dist/bigconsole/components/widgets/chart/charts/AreaChart.js +0 -2
- package/dist/bigconsole/components/widgets/chart/charts/BarChart.d.ts +0 -1
- package/dist/bigconsole/components/widgets/chart/charts/BarChart.js +0 -2
- package/dist/bigconsole/components/widgets/chart/charts/ComboChart.d.ts +0 -1
- package/dist/bigconsole/components/widgets/chart/charts/ComboChart.js +0 -2
- package/dist/bigconsole/components/widgets/chart/charts/FunnelChart.d.ts +0 -1
- package/dist/bigconsole/components/widgets/chart/charts/FunnelChart.js +0 -2
- package/dist/bigconsole/components/widgets/chart/charts/LineChart.d.ts +0 -1
- package/dist/bigconsole/components/widgets/chart/charts/LineChart.js +0 -2
- package/dist/bigconsole/components/widgets/chart/charts/PieChart.d.ts +0 -1
- package/dist/bigconsole/components/widgets/chart/charts/PieChart.js +0 -2
- package/dist/bigconsole/components/widgets/chart/charts/ScatterChart.d.ts +0 -1
- package/dist/bigconsole/components/widgets/chart/charts/ScatterChart.js +0 -2
- package/dist/bigconsole/components/widgets/chart/charts/WaterfallChart.d.ts +0 -1
- package/dist/bigconsole/components/widgets/chart/charts/WaterfallChart.js +0 -2
- package/dist/bigconsole/components/widgets/chart/charts/index.d.ts +0 -1
- package/dist/bigconsole/components/widgets/chart/charts/referenceElements.d.ts +0 -1
- package/dist/bigconsole/components/widgets/chart/charts/referenceElements.js +0 -2
- package/dist/bigconsole/components/widgets/chart/charts/types.d.ts +0 -1
- package/dist/bigconsole/components/widgets/chart/index.d.ts +0 -1
- package/dist/bigconsole/components/widgets/comments/WidgetComments.d.ts +0 -1
- package/dist/bigconsole/components/widgets/comments/WidgetComments.js +0 -2
- package/dist/bigconsole/components/widgets/custom/CustomWidget.d.ts +0 -1
- package/dist/bigconsole/components/widgets/custom/CustomWidget.js +0 -2
- package/dist/bigconsole/components/widgets/custom/config.d.ts +0 -1
- package/dist/bigconsole/components/widgets/custom/config.js +0 -2
- package/dist/bigconsole/components/widgets/custom/index.d.ts +0 -1
- package/dist/bigconsole/components/widgets/custom/utils.d.ts +0 -1
- package/dist/bigconsole/components/widgets/custom/utils.js +0 -2
- package/dist/bigconsole/components/widgets/event-logs/EventLogViewer.d.ts +0 -1
- package/dist/bigconsole/components/widgets/event-logs/EventLogViewer.js +0 -2
- package/dist/bigconsole/components/widgets/event-logs/index.d.ts +0 -1
- package/dist/bigconsole/components/widgets/form/FormWidget.d.ts +0 -1
- package/dist/bigconsole/components/widgets/form/FormWidget.js +0 -2
- package/dist/bigconsole/components/widgets/form/index.d.ts +0 -1
- package/dist/bigconsole/components/widgets/funnel/index.d.ts +0 -1
- package/dist/bigconsole/components/widgets/funnel/index.js +0 -2
- package/dist/bigconsole/components/widgets/gauge/CircularGauge.d.ts +0 -1
- package/dist/bigconsole/components/widgets/gauge/CircularGauge.js +0 -2
- package/dist/bigconsole/components/widgets/gauge/GaugeConfig.d.ts +0 -1
- package/dist/bigconsole/components/widgets/gauge/GaugeConfig.js +0 -2
- package/dist/bigconsole/components/widgets/gauge/GaugeWidget.d.ts +0 -1
- package/dist/bigconsole/components/widgets/gauge/GaugeWidget.js +0 -2
- package/dist/bigconsole/components/widgets/gauge/LinearGauge.d.ts +0 -1
- package/dist/bigconsole/components/widgets/gauge/LinearGauge.js +0 -2
- package/dist/bigconsole/components/widgets/gauge/index.d.ts +0 -1
- package/dist/bigconsole/components/widgets/heatmap/HeatmapConfig.d.ts +0 -1
- package/dist/bigconsole/components/widgets/heatmap/HeatmapConfig.js +0 -2
- package/dist/bigconsole/components/widgets/heatmap/HeatmapWidget.d.ts +0 -1
- package/dist/bigconsole/components/widgets/heatmap/HeatmapWidget.js +0 -2
- package/dist/bigconsole/components/widgets/heatmap/index.d.ts +0 -1
- package/dist/bigconsole/components/widgets/iframe-widget/IframeWidget.d.ts +0 -1
- package/dist/bigconsole/components/widgets/iframe-widget/IframeWidget.js +0 -2
- package/dist/bigconsole/components/widgets/iframe-widget/index.d.ts +0 -1
- package/dist/bigconsole/components/widgets/index.d.ts +0 -1
- package/dist/bigconsole/components/widgets/kanban/KanbanView.d.ts +0 -1
- package/dist/bigconsole/components/widgets/kanban/KanbanView.js +0 -2
- package/dist/bigconsole/components/widgets/kanban/KanbanWidget.d.ts +0 -1
- package/dist/bigconsole/components/widgets/kanban/KanbanWidget.js +0 -2
- package/dist/bigconsole/components/widgets/kanban/index.d.ts +0 -1
- package/dist/bigconsole/components/widgets/kanban/model.d.ts +0 -1
- package/dist/bigconsole/components/widgets/kanban/model.js +0 -2
- package/dist/bigconsole/components/widgets/kpi/KPIWidget.d.ts +0 -1
- package/dist/bigconsole/components/widgets/kpi/KPIWidget.js +0 -2
- package/dist/bigconsole/components/widgets/kpi/index.d.ts +0 -1
- package/dist/bigconsole/components/widgets/kpi-comparison/KPIComparisonWidget.d.ts +0 -1
- package/dist/bigconsole/components/widgets/kpi-comparison/KPIComparisonWidget.js +0 -2
- package/dist/bigconsole/components/widgets/kpi-comparison/index.d.ts +0 -1
- package/dist/bigconsole/components/widgets/list/ListConfig.d.ts +0 -1
- package/dist/bigconsole/components/widgets/list/ListConfig.js +0 -2
- package/dist/bigconsole/components/widgets/list/ListItem.d.ts +0 -1
- package/dist/bigconsole/components/widgets/list/ListItem.js +0 -2
- package/dist/bigconsole/components/widgets/list/ListWidget.d.ts +0 -1
- package/dist/bigconsole/components/widgets/list/ListWidget.js +0 -2
- package/dist/bigconsole/components/widgets/list/index.d.ts +0 -1
- package/dist/bigconsole/components/widgets/map-widget/MapWidget.d.ts +0 -1
- package/dist/bigconsole/components/widgets/map-widget/MapWidget.js +0 -2
- package/dist/bigconsole/components/widgets/map-widget/index.d.ts +0 -1
- package/dist/bigconsole/components/widgets/metric-card/ComparisonBadge.d.ts +0 -1
- package/dist/bigconsole/components/widgets/metric-card/ComparisonBadge.js +0 -2
- package/dist/bigconsole/components/widgets/metric-card/MetricCardConfig.d.ts +0 -1
- package/dist/bigconsole/components/widgets/metric-card/MetricCardConfig.js +0 -2
- package/dist/bigconsole/components/widgets/metric-card/MetricCardWidget.d.ts +0 -1
- package/dist/bigconsole/components/widgets/metric-card/MetricCardWidget.js +0 -2
- package/dist/bigconsole/components/widgets/metric-card/SparklineChart.d.ts +0 -1
- package/dist/bigconsole/components/widgets/metric-card/SparklineChart.js +0 -2
- package/dist/bigconsole/components/widgets/metric-card/TrendIndicator.d.ts +0 -1
- package/dist/bigconsole/components/widgets/metric-card/TrendIndicator.js +0 -2
- package/dist/bigconsole/components/widgets/metric-card/index.d.ts +0 -1
- package/dist/bigconsole/components/widgets/pivot-table/PivotTableWidget.d.ts +0 -1
- package/dist/bigconsole/components/widgets/pivot-table/PivotTableWidget.js +0 -2
- package/dist/bigconsole/components/widgets/pivot-table/index.d.ts +0 -1
- package/dist/bigconsole/components/widgets/progress/ProgressBar.d.ts +0 -1
- package/dist/bigconsole/components/widgets/progress/ProgressBar.js +0 -2
- package/dist/bigconsole/components/widgets/progress/ProgressConfig.d.ts +0 -1
- package/dist/bigconsole/components/widgets/progress/ProgressConfig.js +0 -2
- package/dist/bigconsole/components/widgets/progress/ProgressWidget.d.ts +0 -1
- package/dist/bigconsole/components/widgets/progress/ProgressWidget.js +0 -2
- package/dist/bigconsole/components/widgets/progress/index.d.ts +0 -1
- package/dist/bigconsole/components/widgets/retention/RetentionWidget.d.ts +0 -1
- package/dist/bigconsole/components/widgets/retention/RetentionWidget.js +0 -2
- package/dist/bigconsole/components/widgets/retention/index.d.ts +0 -1
- package/dist/bigconsole/components/widgets/states/EmptyState.d.ts +0 -1
- package/dist/bigconsole/components/widgets/states/EmptyState.js +0 -2
- package/dist/bigconsole/components/widgets/states/ErrorState.d.ts +0 -1
- package/dist/bigconsole/components/widgets/states/ErrorState.js +0 -2
- package/dist/bigconsole/components/widgets/states/LoadingState.d.ts +0 -1
- package/dist/bigconsole/components/widgets/states/LoadingState.js +0 -2
- package/dist/bigconsole/components/widgets/states/index.d.ts +0 -1
- package/dist/bigconsole/components/widgets/table/TableCell.d.ts +0 -1
- package/dist/bigconsole/components/widgets/table/TableCell.js +0 -2
- package/dist/bigconsole/components/widgets/table/TableConfig.d.ts +0 -1
- package/dist/bigconsole/components/widgets/table/TableConfig.js +0 -2
- package/dist/bigconsole/components/widgets/table/TableHeader.d.ts +0 -1
- package/dist/bigconsole/components/widgets/table/TableHeader.js +0 -2
- package/dist/bigconsole/components/widgets/table/TablePagination.d.ts +0 -1
- package/dist/bigconsole/components/widgets/table/TablePagination.js +0 -2
- package/dist/bigconsole/components/widgets/table/TableWidget.d.ts +0 -1
- package/dist/bigconsole/components/widgets/table/TableWidget.js +0 -2
- package/dist/bigconsole/components/widgets/table/cellLink.d.ts +0 -1
- package/dist/bigconsole/components/widgets/table/cellLink.js +0 -2
- package/dist/bigconsole/components/widgets/table/index.d.ts +0 -1
- package/dist/bigconsole/components/widgets/text-widget/TextWidget.d.ts +0 -1
- package/dist/bigconsole/components/widgets/text-widget/TextWidget.js +0 -2
- package/dist/bigconsole/components/widgets/text-widget/index.d.ts +0 -1
- package/dist/bigconsole/components/widgets/text-widget/textData.d.ts +0 -1
- package/dist/bigconsole/components/widgets/text-widget/textData.js +0 -2
- package/dist/bigconsole/components/widgets/timeline/TimelineWidget.d.ts +0 -1
- package/dist/bigconsole/components/widgets/timeline/TimelineWidget.js +0 -2
- package/dist/bigconsole/components/widgets/timeline/index.d.ts +0 -1
- package/dist/bigconsole/components/widgets/utils/conditionalFormat.d.ts +0 -1
- package/dist/bigconsole/components/widgets/utils/conditionalFormat.js +0 -2
- package/dist/bigconsole/components/widgets/utils/inferFields.d.ts +0 -1
- package/dist/bigconsole/components/widgets/utils/inferFields.js +0 -2
- package/dist/bigconsole/components/widgets/utils/targetProgress.d.ts +0 -1
- package/dist/bigconsole/components/widgets/utils/targetProgress.js +0 -2
- package/dist/bigconsole/components/widgets/utils/translate.d.ts +0 -1
- package/dist/bigconsole/components/widgets/utils/translate.js +0 -2
- package/dist/bigconsole/components/widgets/webhook-config/WebhookConfigPanel.d.ts +0 -1
- package/dist/bigconsole/components/widgets/webhook-config/WebhookConfigPanel.js +0 -2
- package/dist/bigconsole/components/widgets/webhook-config/index.d.ts +0 -1
- package/dist/bigconsole/components/widgets/widget-actions/WidgetActions.d.ts +0 -1
- package/dist/bigconsole/components/widgets/widget-actions/WidgetActions.js +0 -2
- package/dist/bigconsole/components/widgets/widget-actions/index.d.ts +0 -1
- package/dist/bigconsole/components/workflow/DataSinkMultiSelector.d.ts +0 -1
- package/dist/bigconsole/components/workflow/WorkflowCard.d.ts +0 -1
- package/dist/bigconsole/components/workflow/WorkflowCard.js +0 -2
- package/dist/bigconsole/components/workflow/WorkflowDeleteDialog.d.ts +0 -1
- package/dist/bigconsole/components/workflow/WorkflowDeleteDialog.js +0 -2
- package/dist/bigconsole/components/workflow/WorkflowDesignPreview.d.ts +0 -1
- package/dist/bigconsole/components/workflow/WorkflowDesignPreview.js +0 -2
- package/dist/bigconsole/components/workflow/WorkflowOpenGuard.d.ts +0 -1
- package/dist/bigconsole/components/workflow/WorkflowOpenGuard.js +0 -2
- package/dist/bigconsole/components/workflow/WorkflowSinkLinkForm.d.ts +0 -1
- package/dist/bigconsole/components/workflow/WorkflowSinkLinkForm.js +0 -2
- package/dist/bigconsole/components/workflow/WorkflowStatusBadge.d.ts +0 -1
- package/dist/bigconsole/components/workflow/WorkflowStatusBadge.js +0 -2
- package/dist/bigconsole/components/workflow/index.d.ts +0 -1
- package/dist/bigconsole/constants/backendErrors.d.ts +0 -1
- package/dist/bigconsole/constants/backendErrors.js +0 -2
- package/dist/bigconsole/constants.d.ts +0 -1
- package/dist/bigconsole/constants.js +0 -2
- package/dist/bigconsole/context/BigConsoleContext.d.ts +0 -1
- package/dist/bigconsole/context/BigConsoleContext.js +0 -2
- package/dist/bigconsole/context/index.d.ts +0 -1
- package/dist/bigconsole/contexts/CrossFilterContext.d.ts +0 -1
- package/dist/bigconsole/contexts/CrossFilterContext.js +0 -2
- package/dist/bigconsole/contexts/NavigationContext.d.ts +0 -1
- package/dist/bigconsole/contexts/NavigationContext.js +0 -2
- package/dist/bigconsole/contexts/index.d.ts +0 -1
- package/dist/bigconsole/customWidget/CustomWidgetBuilderSheet.d.ts +0 -1
- package/dist/bigconsole/customWidget/CustomWidgetBuilderSheet.js +0 -2
- package/dist/bigconsole/customWidget/CustomWidgetProposalPanel.d.ts +0 -1
- package/dist/bigconsole/customWidget/CustomWidgetProposalPanel.js +0 -2
- package/dist/bigconsole/customWidget/index.d.ts +0 -1
- package/dist/bigconsole/customWidget/proposalContract.d.ts +0 -1
- package/dist/bigconsole/customWidget/proposalContract.js +0 -2
- package/dist/bigconsole/customWidget/proposalSource.d.ts +0 -1
- package/dist/bigconsole/customWidget/proposalSource.js +0 -2
- package/dist/bigconsole/graphql/apollo-compat.d.ts +0 -1
- package/dist/bigconsole/graphql/storeTemplates.d.ts +0 -1
- package/dist/bigconsole/graphql/storeTemplates.js +0 -2
- package/dist/bigconsole/hooks/index.d.ts +0 -1
- package/dist/bigconsole/hooks/useActivePage.d.ts +0 -1
- package/dist/bigconsole/hooks/useActivePage.js +0 -2
- package/dist/bigconsole/hooks/useAutoRefresh.d.ts +0 -1
- package/dist/bigconsole/hooks/useAutoRefresh.js +0 -2
- package/dist/bigconsole/hooks/useBigConsoleAnalytics.d.ts +0 -1
- package/dist/bigconsole/hooks/useBigConsoleAnalytics.js +0 -2
- package/dist/bigconsole/hooks/useBigConsoleSettings.d.ts +0 -1
- package/dist/bigconsole/hooks/useBigConsoleSettings.js +0 -2
- package/dist/bigconsole/hooks/useCrossFilter.d.ts +0 -1
- package/dist/bigconsole/hooks/useCrossFilter.js +0 -2
- package/dist/bigconsole/hooks/useDashboardEmbedPolicy.d.ts +0 -1
- package/dist/bigconsole/hooks/useDashboardEmbedPolicy.js +0 -2
- package/dist/bigconsole/hooks/useDashboardImageExport.d.ts +0 -1
- package/dist/bigconsole/hooks/useDashboardImageExport.js +0 -2
- package/dist/bigconsole/hooks/useDashboardLayoutBaseline.d.ts +0 -1
- package/dist/bigconsole/hooks/useDashboardLayoutBaseline.js +0 -2
- package/dist/bigconsole/hooks/useDashboardOperations.d.ts +0 -1
- package/dist/bigconsole/hooks/useDashboardOperations.js +0 -2
- package/dist/bigconsole/hooks/useDashboardSharing.d.ts +0 -1
- package/dist/bigconsole/hooks/useDashboardSharing.js +0 -2
- package/dist/bigconsole/hooks/useDashboardTemplates.d.ts +0 -1
- package/dist/bigconsole/hooks/useDashboardViews.d.ts +0 -1
- package/dist/bigconsole/hooks/useDashboardViews.js +0 -2
- package/dist/bigconsole/hooks/useDataSinkAlerts.d.ts +0 -1
- package/dist/bigconsole/hooks/useDataSinkAlerts.js +0 -2
- package/dist/bigconsole/hooks/useDataSinkOperations.d.ts +0 -1
- package/dist/bigconsole/hooks/useDataSinkOperations.js +0 -2
- package/dist/bigconsole/hooks/useDataSinkSubscription.d.ts +0 -1
- package/dist/bigconsole/hooks/useDataSinkSubscription.js +0 -2
- package/dist/bigconsole/hooks/useDrilldown.d.ts +0 -1
- package/dist/bigconsole/hooks/useDrilldown.js +0 -2
- package/dist/bigconsole/hooks/useDrilldownOperations.d.ts +0 -1
- package/dist/bigconsole/hooks/useDrilldownOperations.js +0 -2
- package/dist/bigconsole/hooks/useEventLogs.d.ts +0 -1
- package/dist/bigconsole/hooks/useEventLogs.js +0 -2
- package/dist/bigconsole/hooks/useEventWebhooks.d.ts +0 -1
- package/dist/bigconsole/hooks/useEventWebhooks.js +0 -2
- package/dist/bigconsole/hooks/useExportDashboard.d.ts +0 -1
- package/dist/bigconsole/hooks/useExportDashboard.js +0 -2
- package/dist/bigconsole/hooks/useExportDataSink.d.ts +0 -1
- package/dist/bigconsole/hooks/useExportDataSink.js +0 -2
- package/dist/bigconsole/hooks/useExportParser.d.ts +0 -1
- package/dist/bigconsole/hooks/useExportParser.js +0 -2
- package/dist/bigconsole/hooks/useFilterPresets.d.ts +0 -1
- package/dist/bigconsole/hooks/useFilterPresets.js +0 -2
- package/dist/bigconsole/hooks/useFilterUrlSync.d.ts +0 -1
- package/dist/bigconsole/hooks/useFilterUrlSync.js +0 -2
- package/dist/bigconsole/hooks/useGlobalFilters.d.ts +0 -1
- package/dist/bigconsole/hooks/useGlobalFilters.js +0 -2
- package/dist/bigconsole/hooks/useImportDashboard.d.ts +0 -1
- package/dist/bigconsole/hooks/useImportDashboard.js +0 -2
- package/dist/bigconsole/hooks/useImportDataSink.d.ts +0 -1
- package/dist/bigconsole/hooks/useImportDataSink.js +0 -2
- package/dist/bigconsole/hooks/useImportParser.d.ts +0 -1
- package/dist/bigconsole/hooks/useImportParser.js +0 -2
- package/dist/bigconsole/hooks/useInstalledWidgets.d.ts +0 -1
- package/dist/bigconsole/hooks/useInstalledWidgets.js +0 -2
- package/dist/bigconsole/hooks/useModalFocusTrap.d.ts +0 -1
- package/dist/bigconsole/hooks/useModalFocusTrap.js +0 -2
- package/dist/bigconsole/hooks/usePageOperations.d.ts +0 -1
- package/dist/bigconsole/hooks/usePageOperations.js +0 -2
- package/dist/bigconsole/hooks/useParserOperations.d.ts +0 -1
- package/dist/bigconsole/hooks/useParserOperations.js +0 -2
- package/dist/bigconsole/hooks/usePipelineOperations.d.ts +0 -1
- package/dist/bigconsole/hooks/usePipelineOperations.js +0 -2
- package/dist/bigconsole/hooks/useShareRecipients.d.ts +0 -1
- package/dist/bigconsole/hooks/useShareRecipients.js +0 -2
- package/dist/bigconsole/hooks/useStoreDashboardTemplates.d.ts +0 -1
- package/dist/bigconsole/hooks/useStoreDashboardTemplates.js +0 -2
- package/dist/bigconsole/hooks/useWidgetActions.d.ts +0 -1
- package/dist/bigconsole/hooks/useWidgetActions.js +0 -2
- package/dist/bigconsole/hooks/useWidgetCatalog.d.ts +0 -1
- package/dist/bigconsole/hooks/useWidgetCatalog.js +0 -2
- package/dist/bigconsole/hooks/useWidgetComments.d.ts +0 -1
- package/dist/bigconsole/hooks/useWidgetComments.js +0 -2
- package/dist/bigconsole/hooks/useWidgetConfigPersist.d.ts +0 -1
- package/dist/bigconsole/hooks/useWidgetConfigPersist.js +0 -2
- package/dist/bigconsole/hooks/useWidgetData.d.ts +0 -1
- package/dist/bigconsole/hooks/useWidgetData.js +0 -2
- package/dist/bigconsole/hooks/useWidgetEvents.d.ts +0 -1
- package/dist/bigconsole/hooks/useWidgetEvents.js +0 -2
- package/dist/bigconsole/hooks/useWidgetExport.d.ts +0 -1
- package/dist/bigconsole/hooks/useWidgetExport.js +0 -2
- package/dist/bigconsole/hooks/useWidgetOperations.d.ts +0 -1
- package/dist/bigconsole/hooks/useWidgetOperations.js +0 -2
- package/dist/bigconsole/hooks/useWorkflowOperations.d.ts +0 -1
- package/dist/bigconsole/hooks/useWorkflowOperations.js +0 -2
- package/dist/bigconsole/index.d.ts +0 -1
- package/dist/bigconsole/modules/dashboard/index.d.ts +0 -1
- package/dist/bigconsole/modules/index.d.ts +0 -1
- package/dist/bigconsole/modules/renderer/index.d.ts +0 -1
- package/dist/bigconsole/modules/widget/index.d.ts +0 -1
- package/dist/bigconsole/pages/AdminPage.d.ts +0 -1
- package/dist/bigconsole/pages/AdminPage.js +0 -2
- package/dist/bigconsole/pages/DashboardBuilderPage.d.ts +0 -1
- package/dist/bigconsole/pages/DashboardBuilderPage.js +0 -2
- package/dist/bigconsole/pages/DashboardViewPage.d.ts +0 -1
- package/dist/bigconsole/pages/DashboardViewPage.js +0 -2
- package/dist/bigconsole/pages/DashboardsPage.d.ts +0 -1
- package/dist/bigconsole/pages/DashboardsPage.js +0 -2
- package/dist/bigconsole/pages/DataParsersPage.d.ts +0 -1
- package/dist/bigconsole/pages/DataParsersPage.js +0 -2
- package/dist/bigconsole/pages/DataSinkAlertsPage.d.ts +0 -1
- package/dist/bigconsole/pages/DataSinkAlertsPage.js +0 -2
- package/dist/bigconsole/pages/DataSinkBuilderPage.d.ts +0 -1
- package/dist/bigconsole/pages/DataSinkBuilderPage.js +0 -2
- package/dist/bigconsole/pages/DataSinkViewPage.d.ts +0 -1
- package/dist/bigconsole/pages/DataSinkViewPage.js +0 -2
- package/dist/bigconsole/pages/DataSinksPage.d.ts +0 -1
- package/dist/bigconsole/pages/DataSinksPage.js +0 -2
- package/dist/bigconsole/pages/DataSourcesPage.d.ts +0 -1
- package/dist/bigconsole/pages/DataSourcesPage.js +0 -2
- package/dist/bigconsole/pages/InsightsPage.d.ts +0 -1
- package/dist/bigconsole/pages/InsightsPage.js +0 -2
- package/dist/bigconsole/pages/OverviewPage.d.ts +0 -1
- package/dist/bigconsole/pages/OverviewPage.js +0 -2
- package/dist/bigconsole/pages/ParserBuilderPage.d.ts +0 -1
- package/dist/bigconsole/pages/ParserBuilderPage.js +0 -2
- package/dist/bigconsole/pages/ParserViewPage.d.ts +0 -1
- package/dist/bigconsole/pages/ParserViewPage.js +0 -2
- package/dist/bigconsole/pages/PipelineBuilderPage.d.ts +0 -1
- package/dist/bigconsole/pages/PipelineBuilderPage.js +0 -2
- package/dist/bigconsole/pages/PipelineViewPage.d.ts +0 -1
- package/dist/bigconsole/pages/PipelineViewPage.js +0 -2
- package/dist/bigconsole/pages/PipelinesPage.d.ts +0 -1
- package/dist/bigconsole/pages/PipelinesPage.js +0 -2
- package/dist/bigconsole/pages/SettingsPage.d.ts +0 -1
- package/dist/bigconsole/pages/SettingsPage.js +0 -2
- package/dist/bigconsole/pages/WidgetDemoPage.d.ts +0 -1
- package/dist/bigconsole/pages/WidgetDemoPage.js +0 -2
- package/dist/bigconsole/pages/WorkflowViewPage.d.ts +0 -1
- package/dist/bigconsole/pages/WorkflowViewPage.js +0 -2
- package/dist/bigconsole/pages/WorkflowsPage.d.ts +0 -1
- package/dist/bigconsole/pages/WorkflowsPage.js +0 -2
- package/dist/bigconsole/pages/index.d.ts +0 -1
- package/dist/bigconsole/providers/BigConsoleQuotaProvider.d.ts +0 -1
- package/dist/bigconsole/providers/BigConsoleQuotaProvider.js +0 -2
- package/dist/bigconsole/renderers/adapters/AdaptiveCardRenderer.d.ts +0 -1
- package/dist/bigconsole/renderers/adapters/AdaptiveCardRenderer.js +0 -2
- package/dist/bigconsole/renderers/adapters/BigConsoleRenderer.d.ts +0 -1
- package/dist/bigconsole/renderers/adapters/BigConsoleRenderer.js +0 -2
- package/dist/bigconsole/renderers/adapters/BlockKitRenderer.d.ts +0 -1
- package/dist/bigconsole/renderers/adapters/BlockKitRenderer.js +0 -2
- package/dist/bigconsole/renderers/adapters/CustomRenderer.d.ts +0 -1
- package/dist/bigconsole/renderers/adapters/CustomRenderer.js +0 -2
- package/dist/bigconsole/renderers/adapters/index.d.ts +0 -1
- package/dist/bigconsole/renderers/factory/WidgetRendererFactory.d.ts +0 -1
- package/dist/bigconsole/renderers/factory/WidgetRendererFactory.js +0 -2
- package/dist/bigconsole/renderers/index.d.ts +0 -1
- package/dist/bigconsole/renderers/registry/RendererRegistry.d.ts +0 -1
- package/dist/bigconsole/renderers/registry/RendererRegistry.js +0 -2
- package/dist/bigconsole/renderers/types/index.d.ts +0 -1
- package/dist/bigconsole/renderers/types/renderer.d.ts +0 -1
- package/dist/bigconsole/store/dashboardStore.d.ts +0 -1
- package/dist/bigconsole/store/dashboardStore.js +0 -2
- package/dist/bigconsole/store/dataSinkStore.d.ts +0 -1
- package/dist/bigconsole/store/dataSinkStore.js +0 -2
- package/dist/bigconsole/store/drilldownStore.d.ts +0 -1
- package/dist/bigconsole/store/drilldownStore.js +0 -2
- package/dist/bigconsole/store/index.d.ts +0 -1
- package/dist/bigconsole/store/parserStore.d.ts +0 -1
- package/dist/bigconsole/store/parserStore.js +0 -2
- package/dist/bigconsole/store/pipelineStore.d.ts +0 -1
- package/dist/bigconsole/store/pipelineStore.js +0 -2
- package/dist/bigconsole/store/widgetStore.d.ts +0 -1
- package/dist/bigconsole/store/widgetStore.js +0 -2
- package/dist/bigconsole/store/workflowStore.d.ts +0 -1
- package/dist/bigconsole/store/workflowStore.js +0 -2
- package/dist/bigconsole/types/index.d.ts +0 -1
- package/dist/bigconsole/utils/alertRules.d.ts +0 -1
- package/dist/bigconsole/utils/alertRules.js +0 -2
- package/dist/bigconsole/utils/backendError.d.ts +0 -1
- package/dist/bigconsole/utils/backendError.js +0 -2
- package/dist/bigconsole/utils/createDialogParam.d.ts +0 -1
- package/dist/bigconsole/utils/createDialogParam.js +0 -2
- package/dist/bigconsole/utils/csv.d.ts +0 -1
- package/dist/bigconsole/utils/csv.js +0 -2
- package/dist/bigconsole/utils/dashboardTemplateContent.d.ts +0 -1
- package/dist/bigconsole/utils/dashboardTemplateContent.js +0 -2
- package/dist/bigconsole/utils/drilldownParams.d.ts +0 -1
- package/dist/bigconsole/utils/drilldownParams.js +0 -2
- package/dist/bigconsole/utils/formDirty.d.ts +0 -1
- package/dist/bigconsole/utils/formDirty.js +0 -2
- package/dist/bigconsole/utils/format.d.ts +0 -1
- package/dist/bigconsole/utils/format.js +0 -2
- package/dist/bigconsole/utils/index.d.ts +0 -1
- package/dist/bigconsole/utils/insightsDraft.d.ts +0 -1
- package/dist/bigconsole/utils/insightsDraft.js +0 -2
- package/dist/bigconsole/utils/layoutBaseline.d.ts +0 -1
- package/dist/bigconsole/utils/layoutBaseline.js +0 -2
- package/dist/bigconsole/utils/quota.d.ts +0 -1
- package/dist/bigconsole/utils/quota.js +0 -2
- package/dist/bigconsole/utils/semanticTokens.d.ts +0 -1
- package/dist/bigconsole/utils/semanticTokens.js +0 -2
- package/dist/bigconsole/utils/templateInstallInputs.d.ts +0 -1
- package/dist/bigconsole/utils/templateInstallInputs.js +0 -2
- package/dist/bigconsole/utils/widgetBinding.d.ts +0 -1
- package/dist/bigconsole/utils/widgetBinding.js +0 -2
- package/dist/bigconsole/utils/widgetFormDirty.d.ts +0 -1
- package/dist/bigconsole/utils/widgetFormDirty.js +0 -2
- package/dist/bigconsole/utils/widgetPositioning.d.ts +0 -1
- package/dist/bigconsole/utils/widgetPositioning.js +0 -2
- package/dist/bigconsole/utils/widgetTypeMapping.d.ts +0 -1
- package/dist/bigconsole/utils/widgetTypeMapping.js +0 -2
- package/dist/bigconsole/workflowOpen.d.ts +0 -1
- package/dist/bigconsole/workflowOpen.js +0 -2
- package/dist/constants/permissions.d.ts +0 -1
- package/dist/constants/permissions.js +0 -2
- package/dist/generated/global-operations.d.ts +0 -1
- package/dist/generated/global-operations.js +0 -2
- package/dist/generated/global-types.d.ts +0 -1
- package/dist/generated/wspace-operations.d.ts +0 -1
- package/dist/generated/wspace-operations.js +0 -2
- package/dist/generated/wspace-types.d.ts +0 -1
- package/dist/generated/wspace-types.js +0 -2
- package/dist/index.d.ts +0 -1
- package/dist/node_modules/@e965/xlsx/xlsx.js +0 -2
- package/dist/node_modules/pdfjs-dist/build/pdf.js +0 -2
- package/dist/shared/hooks/useTr.d.ts +0 -1
- package/dist/shared/hooks/useTr.js +0 -2
- package/dist/translations/en.d.ts +0 -1
- package/dist/utils/nativeBridge.d.ts +0 -1
- package/package.json +5 -4
- package/dist/bigconsole/AdminRoot.d.ts.map +0 -1
- package/dist/bigconsole/AdminRoot.js.map +0 -1
- package/dist/bigconsole/AdminRoutes.d.ts.map +0 -1
- package/dist/bigconsole/AdminRoutes.js.map +0 -1
- package/dist/bigconsole/BigConsoleRoot.d.ts.map +0 -1
- package/dist/bigconsole/BigConsoleRoot.js.map +0 -1
- package/dist/bigconsole/BigConsoleRoutes.d.ts.map +0 -1
- package/dist/bigconsole/BigConsoleRoutes.js.map +0 -1
- package/dist/bigconsole/assistant/assistantApi.d.ts.map +0 -1
- package/dist/bigconsole/assistant/assistantApi.js.map +0 -1
- package/dist/bigconsole/assistant/assistantProduct.d.ts.map +0 -1
- package/dist/bigconsole/assistant/assistantProduct.js.map +0 -1
- package/dist/bigconsole/assistant/assistantPrompt.d.ts.map +0 -1
- package/dist/bigconsole/assistant/assistantPrompt.js.map +0 -1
- package/dist/bigconsole/assistant/assistantRunPersistence.d.ts.map +0 -1
- package/dist/bigconsole/assistant/assistantRunPersistence.js.map +0 -1
- package/dist/bigconsole/assistant/assistantRunStore.d.ts.map +0 -1
- package/dist/bigconsole/assistant/assistantRunStore.js.map +0 -1
- package/dist/bigconsole/assistant/assistantRuntime.d.ts.map +0 -1
- package/dist/bigconsole/assistant/assistantRuntime.js.map +0 -1
- package/dist/bigconsole/assistant/attachmentExtract.d.ts.map +0 -1
- package/dist/bigconsole/assistant/attachmentExtract.js.map +0 -1
- package/dist/bigconsole/assistant/conversationHistoryApi.d.ts.map +0 -1
- package/dist/bigconsole/assistant/conversationHistoryApi.js.map +0 -1
- package/dist/bigconsole/assistant/createSandboxAssistantTransport.d.ts.map +0 -1
- package/dist/bigconsole/assistant/createSandboxAssistantTransport.js.map +0 -1
- package/dist/bigconsole/assistant/displayCopy.d.ts.map +0 -1
- package/dist/bigconsole/assistant/index.d.ts.map +0 -1
- package/dist/bigconsole/assistant/modes.d.ts.map +0 -1
- package/dist/bigconsole/assistant/modes.js.map +0 -1
- package/dist/bigconsole/assistant/pageContext.d.ts.map +0 -1
- package/dist/bigconsole/assistant/pageContext.js.map +0 -1
- package/dist/bigconsole/assistant/previewController.d.ts.map +0 -1
- package/dist/bigconsole/assistant/previewController.js.map +0 -1
- package/dist/bigconsole/assistant/previewMutationResult.d.ts.map +0 -1
- package/dist/bigconsole/assistant/previewMutationResult.js.map +0 -1
- package/dist/bigconsole/assistant/previewRunAction.d.ts.map +0 -1
- package/dist/bigconsole/assistant/previewRunAction.js.map +0 -1
- package/dist/bigconsole/assistant/product.d.ts.map +0 -1
- package/dist/bigconsole/assistant/product.js.map +0 -1
- package/dist/bigconsole/assistant/recordAdapters.d.ts.map +0 -1
- package/dist/bigconsole/assistant/recordAdapters.js.map +0 -1
- package/dist/bigconsole/assistant/types.d.ts.map +0 -1
- package/dist/bigconsole/assistant/useAssistantRunWorkspace.d.ts.map +0 -1
- package/dist/bigconsole/assistant/useAssistantRunWorkspace.js.map +0 -1
- package/dist/bigconsole/assistant/useWorkspaceWriteAccess.d.ts.map +0 -1
- package/dist/bigconsole/assistant/useWorkspaceWriteAccess.js.map +0 -1
- package/dist/bigconsole/components/DrilldownDashboardRenderer.d.ts.map +0 -1
- package/dist/bigconsole/components/DrilldownDashboardRenderer.js.map +0 -1
- package/dist/bigconsole/components/DrilldownModal.d.ts.map +0 -1
- package/dist/bigconsole/components/DrilldownModal.js.map +0 -1
- package/dist/bigconsole/components/builder/BuilderCanvas.d.ts.map +0 -1
- package/dist/bigconsole/components/builder/BuilderCanvas.js.map +0 -1
- package/dist/bigconsole/components/builder/BuilderTopbar.d.ts.map +0 -1
- package/dist/bigconsole/components/builder/BuilderTopbar.js.map +0 -1
- package/dist/bigconsole/components/builder/DashboardEditorShell.d.ts.map +0 -1
- package/dist/bigconsole/components/builder/DashboardEditorShell.js.map +0 -1
- package/dist/bigconsole/components/builder/WidgetInspector.d.ts.map +0 -1
- package/dist/bigconsole/components/builder/WidgetInspector.js.map +0 -1
- package/dist/bigconsole/components/builder/index.d.ts.map +0 -1
- package/dist/bigconsole/components/builder/inspector/AdvancedSection.d.ts.map +0 -1
- package/dist/bigconsole/components/builder/inspector/AdvancedSection.js.map +0 -1
- package/dist/bigconsole/components/builder/inspector/AppearanceSection.d.ts.map +0 -1
- package/dist/bigconsole/components/builder/inspector/AppearanceSection.js.map +0 -1
- package/dist/bigconsole/components/builder/inspector/DataBindingSection.d.ts.map +0 -1
- package/dist/bigconsole/components/builder/inspector/DataBindingSection.js.map +0 -1
- package/dist/bigconsole/components/builder/inspector/GeneralSection.d.ts.map +0 -1
- package/dist/bigconsole/components/builder/inspector/GeneralSection.js.map +0 -1
- package/dist/bigconsole/components/builder/inspector/LayoutSection.d.ts.map +0 -1
- package/dist/bigconsole/components/builder/inspector/LayoutSection.js.map +0 -1
- package/dist/bigconsole/components/builder/inspector/index.d.ts.map +0 -1
- package/dist/bigconsole/components/common/Section.d.ts.map +0 -1
- package/dist/bigconsole/components/common/Section.js.map +0 -1
- package/dist/bigconsole/components/common/index.d.ts.map +0 -1
- package/dist/bigconsole/components/common/sectionStyles.d.ts.map +0 -1
- package/dist/bigconsole/components/common/sectionStyles.js.map +0 -1
- package/dist/bigconsole/components/dashboard/CreateDashboardDialog.d.ts.map +0 -1
- package/dist/bigconsole/components/dashboard/CreateDashboardDialog.js.map +0 -1
- package/dist/bigconsole/components/dashboard/DashboardCanvas.d.ts.map +0 -1
- package/dist/bigconsole/components/dashboard/DashboardCanvas.js.map +0 -1
- package/dist/bigconsole/components/dashboard/DashboardGrid.d.ts.map +0 -1
- package/dist/bigconsole/components/dashboard/DashboardGrid.js.map +0 -1
- package/dist/bigconsole/components/dashboard/DashboardStatusPill.d.ts.map +0 -1
- package/dist/bigconsole/components/dashboard/DashboardStatusPill.js.map +0 -1
- package/dist/bigconsole/components/dashboard/DashboardToolbar.d.ts.map +0 -1
- package/dist/bigconsole/components/dashboard/DashboardToolbar.js.map +0 -1
- package/dist/bigconsole/components/dashboard/DrilldownBreadcrumb.d.ts.map +0 -1
- package/dist/bigconsole/components/dashboard/DrilldownBreadcrumb.js.map +0 -1
- package/dist/bigconsole/components/dashboard/ExportDashboardDialog.d.ts.map +0 -1
- package/dist/bigconsole/components/dashboard/ExportDashboardDialog.js.map +0 -1
- package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterChip.d.ts.map +0 -1
- package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterChip.js.map +0 -1
- package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterEditor.d.ts.map +0 -1
- package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterEditor.js.map +0 -1
- package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterPresetSelector.d.ts.map +0 -1
- package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterPresetSelector.js.map +0 -1
- package/dist/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.d.ts.map +0 -1
- package/dist/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.js.map +0 -1
- package/dist/bigconsole/components/dashboard/GlobalFiltersBar/index.d.ts.map +0 -1
- package/dist/bigconsole/components/dashboard/ImportDashboardDialog.d.ts.map +0 -1
- package/dist/bigconsole/components/dashboard/ImportDashboardDialog.js.map +0 -1
- package/dist/bigconsole/components/dashboard/LiveBoardBanner.d.ts.map +0 -1
- package/dist/bigconsole/components/dashboard/LiveBoardBanner.js.map +0 -1
- package/dist/bigconsole/components/dashboard/LiveCanvasToggle.d.ts.map +0 -1
- package/dist/bigconsole/components/dashboard/LiveCanvasToggle.js.map +0 -1
- package/dist/bigconsole/components/dashboard/PageTabsManager/PageTabsManager.d.ts.map +0 -1
- package/dist/bigconsole/components/dashboard/PageTabsManager/PageTabsManager.js.map +0 -1
- package/dist/bigconsole/components/dashboard/PageTabsManager/index.d.ts.map +0 -1
- package/dist/bigconsole/components/dashboard/PublishToStoreDialog.d.ts.map +0 -1
- package/dist/bigconsole/components/dashboard/PublishToStoreDialog.js.map +0 -1
- package/dist/bigconsole/components/dashboard/SavedViewsDropdown/SavedViewsDropdown.d.ts.map +0 -1
- package/dist/bigconsole/components/dashboard/SavedViewsDropdown/SavedViewsDropdown.js.map +0 -1
- package/dist/bigconsole/components/dashboard/SavedViewsDropdown/index.d.ts.map +0 -1
- package/dist/bigconsole/components/dashboard/ShareDialog/EmbedTab.d.ts.map +0 -1
- package/dist/bigconsole/components/dashboard/ShareDialog/EmbedTab.js.map +0 -1
- package/dist/bigconsole/components/dashboard/ShareDialog/ShareDialog.d.ts.map +0 -1
- package/dist/bigconsole/components/dashboard/ShareDialog/ShareDialog.js.map +0 -1
- package/dist/bigconsole/components/dashboard/ShareDialog/index.d.ts.map +0 -1
- package/dist/bigconsole/components/dashboard/StoreTemplatePicker.d.ts.map +0 -1
- package/dist/bigconsole/components/dashboard/StoreTemplatePicker.js.map +0 -1
- package/dist/bigconsole/components/dashboard/TemplateInstallOptions.d.ts.map +0 -1
- package/dist/bigconsole/components/dashboard/TemplateInstallOptions.js.map +0 -1
- package/dist/bigconsole/components/dashboard/TemplateLayoutPreview.d.ts.map +0 -1
- package/dist/bigconsole/components/dashboard/TemplateLayoutPreview.js.map +0 -1
- package/dist/bigconsole/components/dashboard/TemplatePicker/TemplatePicker.d.ts.map +0 -1
- package/dist/bigconsole/components/dashboard/TemplatePicker/index.d.ts.map +0 -1
- package/dist/bigconsole/components/dashboard/TemplateSetupBanner.d.ts.map +0 -1
- package/dist/bigconsole/components/dashboard/TemplateSetupBanner.js.map +0 -1
- package/dist/bigconsole/components/dashboard/WidgetPalette.d.ts.map +0 -1
- package/dist/bigconsole/components/dashboard/WidgetPalette.js.map +0 -1
- package/dist/bigconsole/components/dashboard/index.d.ts.map +0 -1
- package/dist/bigconsole/components/datasink/AlertExecutionHistory.d.ts.map +0 -1
- package/dist/bigconsole/components/datasink/AlertExecutionHistory.js.map +0 -1
- package/dist/bigconsole/components/datasink/AlertRuleEditor.d.ts.map +0 -1
- package/dist/bigconsole/components/datasink/AlertRuleEditor.js.map +0 -1
- package/dist/bigconsole/components/datasink/CacheTTLSelector.d.ts.map +0 -1
- package/dist/bigconsole/components/datasink/CacheTTLSelector.js.map +0 -1
- package/dist/bigconsole/components/datasink/ConfigurationForm.d.ts.map +0 -1
- package/dist/bigconsole/components/datasink/DataPreviewPanel.d.ts.map +0 -1
- package/dist/bigconsole/components/datasink/DataSinkCard.d.ts.map +0 -1
- package/dist/bigconsole/components/datasink/DataSinkCard.js.map +0 -1
- package/dist/bigconsole/components/datasink/DataSinkDataViewer.d.ts.map +0 -1
- package/dist/bigconsole/components/datasink/DataSinkDataViewer.js.map +0 -1
- package/dist/bigconsole/components/datasink/DataSinkDeleteDialog.d.ts.map +0 -1
- package/dist/bigconsole/components/datasink/DataSinkDeleteDialog.js.map +0 -1
- package/dist/bigconsole/components/datasink/DataSinkRefreshConfig.d.ts.map +0 -1
- package/dist/bigconsole/components/datasink/DataSinkRefreshDialog.d.ts.map +0 -1
- package/dist/bigconsole/components/datasink/DataSinkRefreshDialog.js.map +0 -1
- package/dist/bigconsole/components/datasink/DataSinkStatusBadge.d.ts.map +0 -1
- package/dist/bigconsole/components/datasink/DataSinkStatusBadge.js.map +0 -1
- package/dist/bigconsole/components/datasink/DataSinkTableViewer.d.ts.map +0 -1
- package/dist/bigconsole/components/datasink/DataSinkTableViewer.js.map +0 -1
- package/dist/bigconsole/components/datasink/ExportDataSinkDialog.d.ts.map +0 -1
- package/dist/bigconsole/components/datasink/ExportDataSinkDialog.js.map +0 -1
- package/dist/bigconsole/components/datasink/FluidGridsPanel.d.ts.map +0 -1
- package/dist/bigconsole/components/datasink/ImportDataGuideDialog.d.ts.map +0 -1
- package/dist/bigconsole/components/datasink/ImportDataGuideDialog.js.map +0 -1
- package/dist/bigconsole/components/datasink/ImportDataSinkDialog.d.ts.map +0 -1
- package/dist/bigconsole/components/datasink/ImportDataSinkDialog.js.map +0 -1
- package/dist/bigconsole/components/datasink/LinkedParsersPanel.d.ts.map +0 -1
- package/dist/bigconsole/components/datasink/LinkedParsersPanel.js.map +0 -1
- package/dist/bigconsole/components/datasink/LinkedWorkflowsPanel.d.ts.map +0 -1
- package/dist/bigconsole/components/datasink/LinkedWorkflowsPanel.js.map +0 -1
- package/dist/bigconsole/components/datasink/RefreshTypeSelector.d.ts.map +0 -1
- package/dist/bigconsole/components/datasink/RefreshTypeSelector.js.map +0 -1
- package/dist/bigconsole/components/datasink/SetupStateBadge.d.ts.map +0 -1
- package/dist/bigconsole/components/datasink/SetupStateBadge.js.map +0 -1
- package/dist/bigconsole/components/datasink/WorkflowStatusPanel.d.ts.map +0 -1
- package/dist/bigconsole/components/datasink/WorkflowStatusPanel.js.map +0 -1
- package/dist/bigconsole/components/datasink/index.d.ts.map +0 -1
- package/dist/bigconsole/components/embed/EmbedErrorBoundary.d.ts.map +0 -1
- package/dist/bigconsole/components/embed/EmbedErrorBoundary.js.map +0 -1
- package/dist/bigconsole/components/embed/EmbedWidgetRenderer.d.ts.map +0 -1
- package/dist/bigconsole/components/embed/EmbedWidgetRenderer.js.map +0 -1
- package/dist/bigconsole/components/embed/ReadOnlyDashboardRenderer.d.ts.map +0 -1
- package/dist/bigconsole/components/embed/ReadOnlyDashboardRenderer.js.map +0 -1
- package/dist/bigconsole/components/embed/drilldown.d.ts.map +0 -1
- package/dist/bigconsole/components/embed/drilldown.js.map +0 -1
- package/dist/bigconsole/components/embed/index.d.ts.map +0 -1
- package/dist/bigconsole/components/embed/renderer-manifest.d.ts.map +0 -1
- package/dist/bigconsole/components/embed/renderer-manifest.js.map +0 -1
- package/dist/bigconsole/components/embed/types.d.ts.map +0 -1
- package/dist/bigconsole/components/embed/types.js.map +0 -1
- package/dist/bigconsole/components/embed/validate.d.ts.map +0 -1
- package/dist/bigconsole/components/embed/validate.js.map +0 -1
- package/dist/bigconsole/components/embed/widgetShim.d.ts.map +0 -1
- package/dist/bigconsole/components/embed/widgetShim.js.map +0 -1
- package/dist/bigconsole/components/embed/widgets/CalendarEmbed.d.ts.map +0 -1
- package/dist/bigconsole/components/embed/widgets/CalendarEmbed.js.map +0 -1
- package/dist/bigconsole/components/embed/widgets/ChartEmbed.d.ts.map +0 -1
- package/dist/bigconsole/components/embed/widgets/ChartEmbed.js.map +0 -1
- package/dist/bigconsole/components/embed/widgets/EmbedFrame.d.ts.map +0 -1
- package/dist/bigconsole/components/embed/widgets/EmbedFrame.js.map +0 -1
- package/dist/bigconsole/components/embed/widgets/FormEmbed.d.ts.map +0 -1
- package/dist/bigconsole/components/embed/widgets/FormEmbed.js.map +0 -1
- package/dist/bigconsole/components/embed/widgets/GaugeEmbed.d.ts.map +0 -1
- package/dist/bigconsole/components/embed/widgets/GaugeEmbed.js.map +0 -1
- package/dist/bigconsole/components/embed/widgets/HeatmapEmbed.d.ts.map +0 -1
- package/dist/bigconsole/components/embed/widgets/HeatmapEmbed.js.map +0 -1
- package/dist/bigconsole/components/embed/widgets/KanbanEmbed.d.ts.map +0 -1
- package/dist/bigconsole/components/embed/widgets/KanbanEmbed.js.map +0 -1
- package/dist/bigconsole/components/embed/widgets/KpiComparisonEmbed.d.ts.map +0 -1
- package/dist/bigconsole/components/embed/widgets/KpiComparisonEmbed.js.map +0 -1
- package/dist/bigconsole/components/embed/widgets/ListEmbed.d.ts.map +0 -1
- package/dist/bigconsole/components/embed/widgets/ListEmbed.js.map +0 -1
- package/dist/bigconsole/components/embed/widgets/MetricCardEmbed.d.ts.map +0 -1
- package/dist/bigconsole/components/embed/widgets/MetricCardEmbed.js.map +0 -1
- package/dist/bigconsole/components/embed/widgets/PivotEmbed.d.ts.map +0 -1
- package/dist/bigconsole/components/embed/widgets/PivotEmbed.js.map +0 -1
- package/dist/bigconsole/components/embed/widgets/ProgressEmbed.d.ts.map +0 -1
- package/dist/bigconsole/components/embed/widgets/ProgressEmbed.js.map +0 -1
- package/dist/bigconsole/components/embed/widgets/RetentionEmbed.d.ts.map +0 -1
- package/dist/bigconsole/components/embed/widgets/RetentionEmbed.js.map +0 -1
- package/dist/bigconsole/components/embed/widgets/TableEmbed.d.ts.map +0 -1
- package/dist/bigconsole/components/embed/widgets/TableEmbed.js.map +0 -1
- package/dist/bigconsole/components/embed/widgets/TextEmbed.d.ts.map +0 -1
- package/dist/bigconsole/components/embed/widgets/TextEmbed.js.map +0 -1
- package/dist/bigconsole/components/embed/widgets/TimelineEmbed.d.ts.map +0 -1
- package/dist/bigconsole/components/embed/widgets/TimelineEmbed.js.map +0 -1
- package/dist/bigconsole/components/embed/widgets/shared.d.ts.map +0 -1
- package/dist/bigconsole/components/embed/widgets/shared.js.map +0 -1
- package/dist/bigconsole/components/overview/DashboardGuide.d.ts.map +0 -1
- package/dist/bigconsole/components/overview/DashboardGuide.js.map +0 -1
- package/dist/bigconsole/components/overview/DataHealthCard.d.ts.map +0 -1
- package/dist/bigconsole/components/overview/DataHealthCard.js.map +0 -1
- package/dist/bigconsole/components/overview/OverviewQuickActions.d.ts.map +0 -1
- package/dist/bigconsole/components/overview/OverviewQuickActions.js.map +0 -1
- package/dist/bigconsole/components/overview/OverviewStatCard.d.ts.map +0 -1
- package/dist/bigconsole/components/overview/OverviewStatCard.js.map +0 -1
- package/dist/bigconsole/components/overview/RecentDashboardsPanel.d.ts.map +0 -1
- package/dist/bigconsole/components/overview/RecentDashboardsPanel.js.map +0 -1
- package/dist/bigconsole/components/overview/dashboardGuideSteps.d.ts.map +0 -1
- package/dist/bigconsole/components/overview/dashboardGuideSteps.js.map +0 -1
- package/dist/bigconsole/components/overview/index.d.ts.map +0 -1
- package/dist/bigconsole/components/overview/overviewModel.d.ts.map +0 -1
- package/dist/bigconsole/components/overview/overviewModel.js.map +0 -1
- package/dist/bigconsole/components/overview/useOverviewData.d.ts.map +0 -1
- package/dist/bigconsole/components/overview/useOverviewData.js.map +0 -1
- package/dist/bigconsole/components/parser/DataSinkSelector.d.ts.map +0 -1
- package/dist/bigconsole/components/parser/DataSinkSelector.js.map +0 -1
- package/dist/bigconsole/components/parser/ExportParserDialog.d.ts.map +0 -1
- package/dist/bigconsole/components/parser/ExportParserDialog.js.map +0 -1
- package/dist/bigconsole/components/parser/ExpressionEditor.d.ts.map +0 -1
- package/dist/bigconsole/components/parser/ExpressionEditor.js.map +0 -1
- package/dist/bigconsole/components/parser/ImportParserDialog.d.ts.map +0 -1
- package/dist/bigconsole/components/parser/ImportParserDialog.js.map +0 -1
- package/dist/bigconsole/components/parser/ParserBuilder.d.ts.map +0 -1
- package/dist/bigconsole/components/parser/ParserCard.d.ts.map +0 -1
- package/dist/bigconsole/components/parser/ParserCard.js.map +0 -1
- package/dist/bigconsole/components/parser/ParserFormDialog.d.ts.map +0 -1
- package/dist/bigconsole/components/parser/ParserSelector.d.ts.map +0 -1
- package/dist/bigconsole/components/parser/ParserSelector.js.map +0 -1
- package/dist/bigconsole/components/parser/ParserStatusBadge.d.ts.map +0 -1
- package/dist/bigconsole/components/parser/ParserStatusBadge.js.map +0 -1
- package/dist/bigconsole/components/parser/ParserTypeBadge.d.ts.map +0 -1
- package/dist/bigconsole/components/parser/ParserTypeBadge.js.map +0 -1
- package/dist/bigconsole/components/parser/TestPanel.d.ts.map +0 -1
- package/dist/bigconsole/components/parser/index.d.ts.map +0 -1
- package/dist/bigconsole/components/parser/parserFieldStyles.d.ts.map +0 -1
- package/dist/bigconsole/components/pipeline/PipelineCard.d.ts.map +0 -1
- package/dist/bigconsole/components/pipeline/PipelineCard.js.map +0 -1
- package/dist/bigconsole/components/pipeline/PipelineDeleteDialog.d.ts.map +0 -1
- package/dist/bigconsole/components/pipeline/PipelineDeleteDialog.js.map +0 -1
- package/dist/bigconsole/components/pipeline/PipelineScopePicker.d.ts.map +0 -1
- package/dist/bigconsole/components/pipeline/PipelineScopePicker.js.map +0 -1
- package/dist/bigconsole/components/pipeline/PipelineStatusBadge.d.ts.map +0 -1
- package/dist/bigconsole/components/pipeline/PipelineStatusBadge.js.map +0 -1
- package/dist/bigconsole/components/pipeline/index.d.ts.map +0 -1
- package/dist/bigconsole/components/preview/AiPreviewContent.d.ts.map +0 -1
- package/dist/bigconsole/components/preview/AiPreviewContent.js.map +0 -1
- package/dist/bigconsole/components/preview/AiPreviewMiniPanel.d.ts.map +0 -1
- package/dist/bigconsole/components/preview/AiPreviewMiniPanel.js.map +0 -1
- package/dist/bigconsole/components/preview/AiPreviewPanel.d.ts.map +0 -1
- package/dist/bigconsole/components/preview/AiPreviewPanel.js.map +0 -1
- package/dist/bigconsole/components/preview/parserPreview.d.ts.map +0 -1
- package/dist/bigconsole/components/preview/parserPreview.js.map +0 -1
- package/dist/bigconsole/components/preview/previewShared.d.ts.map +0 -1
- package/dist/bigconsole/components/preview/previewShared.js.map +0 -1
- package/dist/bigconsole/components/widgets/ActionConfigDialog.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/ActionConfigDialog.js.map +0 -1
- package/dist/bigconsole/components/widgets/DrilldownConfigPanel.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/DrilldownConfigPanel.js.map +0 -1
- package/dist/bigconsole/components/widgets/PropertiesPanel.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/PropertiesPanel.js.map +0 -1
- package/dist/bigconsole/components/widgets/WidgetErrorBoundary.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/WidgetErrorBoundary.js.map +0 -1
- package/dist/bigconsole/components/widgets/WidgetHeader.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/WidgetHeader.js.map +0 -1
- package/dist/bigconsole/components/widgets/WidgetMenu.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/WidgetMenu.js.map +0 -1
- package/dist/bigconsole/components/widgets/WidgetRegistry.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/WidgetRegistry.js.map +0 -1
- package/dist/bigconsole/components/widgets/WidgetTypeSelector.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/WidgetWrapper.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/WidgetWrapper.js.map +0 -1
- package/dist/bigconsole/components/widgets/actionConfig.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/actionConfig.js.map +0 -1
- package/dist/bigconsole/components/widgets/adaptive-card/AdaptiveCardWidget.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/adaptive-card/AdaptiveCardWidget.js.map +0 -1
- package/dist/bigconsole/components/widgets/adaptive-card/index.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/calendar/CalendarView.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/calendar/CalendarView.js.map +0 -1
- package/dist/bigconsole/components/widgets/calendar/CalendarWidget.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/calendar/CalendarWidget.js.map +0 -1
- package/dist/bigconsole/components/widgets/calendar/index.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/chart/ChartConfig.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/chart/ChartConfig.js.map +0 -1
- package/dist/bigconsole/components/widgets/chart/ChartLegend.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/chart/ChartLegend.js.map +0 -1
- package/dist/bigconsole/components/widgets/chart/ChartTooltip.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/chart/ChartTooltip.js.map +0 -1
- package/dist/bigconsole/components/widgets/chart/ChartWidget.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/chart/ChartWidget.js.map +0 -1
- package/dist/bigconsole/components/widgets/chart/charts/AreaChart.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/chart/charts/AreaChart.js.map +0 -1
- package/dist/bigconsole/components/widgets/chart/charts/BarChart.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/chart/charts/BarChart.js.map +0 -1
- package/dist/bigconsole/components/widgets/chart/charts/ComboChart.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/chart/charts/ComboChart.js.map +0 -1
- package/dist/bigconsole/components/widgets/chart/charts/FunnelChart.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/chart/charts/FunnelChart.js.map +0 -1
- package/dist/bigconsole/components/widgets/chart/charts/LineChart.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/chart/charts/LineChart.js.map +0 -1
- package/dist/bigconsole/components/widgets/chart/charts/PieChart.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/chart/charts/PieChart.js.map +0 -1
- package/dist/bigconsole/components/widgets/chart/charts/ScatterChart.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/chart/charts/ScatterChart.js.map +0 -1
- package/dist/bigconsole/components/widgets/chart/charts/WaterfallChart.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/chart/charts/WaterfallChart.js.map +0 -1
- package/dist/bigconsole/components/widgets/chart/charts/index.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/chart/charts/referenceElements.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/chart/charts/referenceElements.js.map +0 -1
- package/dist/bigconsole/components/widgets/chart/charts/types.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/chart/index.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/comments/WidgetComments.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/comments/WidgetComments.js.map +0 -1
- package/dist/bigconsole/components/widgets/custom/CustomWidget.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/custom/CustomWidget.js.map +0 -1
- package/dist/bigconsole/components/widgets/custom/config.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/custom/config.js.map +0 -1
- package/dist/bigconsole/components/widgets/custom/index.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/custom/utils.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/custom/utils.js.map +0 -1
- package/dist/bigconsole/components/widgets/event-logs/EventLogViewer.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/event-logs/EventLogViewer.js.map +0 -1
- package/dist/bigconsole/components/widgets/event-logs/index.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/form/FormWidget.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/form/FormWidget.js.map +0 -1
- package/dist/bigconsole/components/widgets/form/index.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/funnel/index.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/funnel/index.js.map +0 -1
- package/dist/bigconsole/components/widgets/gauge/CircularGauge.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/gauge/CircularGauge.js.map +0 -1
- package/dist/bigconsole/components/widgets/gauge/GaugeConfig.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/gauge/GaugeConfig.js.map +0 -1
- package/dist/bigconsole/components/widgets/gauge/GaugeWidget.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/gauge/GaugeWidget.js.map +0 -1
- package/dist/bigconsole/components/widgets/gauge/LinearGauge.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/gauge/LinearGauge.js.map +0 -1
- package/dist/bigconsole/components/widgets/gauge/index.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/heatmap/HeatmapConfig.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/heatmap/HeatmapConfig.js.map +0 -1
- package/dist/bigconsole/components/widgets/heatmap/HeatmapWidget.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/heatmap/HeatmapWidget.js.map +0 -1
- package/dist/bigconsole/components/widgets/heatmap/index.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/iframe-widget/IframeWidget.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/iframe-widget/IframeWidget.js.map +0 -1
- package/dist/bigconsole/components/widgets/iframe-widget/index.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/index.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/kanban/KanbanView.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/kanban/KanbanView.js.map +0 -1
- package/dist/bigconsole/components/widgets/kanban/KanbanWidget.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/kanban/KanbanWidget.js.map +0 -1
- package/dist/bigconsole/components/widgets/kanban/index.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/kanban/model.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/kanban/model.js.map +0 -1
- package/dist/bigconsole/components/widgets/kpi/KPIWidget.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/kpi/KPIWidget.js.map +0 -1
- package/dist/bigconsole/components/widgets/kpi/index.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/kpi-comparison/KPIComparisonWidget.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/kpi-comparison/KPIComparisonWidget.js.map +0 -1
- package/dist/bigconsole/components/widgets/kpi-comparison/index.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/list/ListConfig.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/list/ListConfig.js.map +0 -1
- package/dist/bigconsole/components/widgets/list/ListItem.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/list/ListItem.js.map +0 -1
- package/dist/bigconsole/components/widgets/list/ListWidget.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/list/ListWidget.js.map +0 -1
- package/dist/bigconsole/components/widgets/list/index.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/map-widget/MapWidget.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/map-widget/MapWidget.js.map +0 -1
- package/dist/bigconsole/components/widgets/map-widget/index.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/metric-card/ComparisonBadge.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/metric-card/ComparisonBadge.js.map +0 -1
- package/dist/bigconsole/components/widgets/metric-card/MetricCardConfig.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/metric-card/MetricCardConfig.js.map +0 -1
- package/dist/bigconsole/components/widgets/metric-card/MetricCardWidget.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/metric-card/MetricCardWidget.js.map +0 -1
- package/dist/bigconsole/components/widgets/metric-card/SparklineChart.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/metric-card/SparklineChart.js.map +0 -1
- package/dist/bigconsole/components/widgets/metric-card/TrendIndicator.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/metric-card/TrendIndicator.js.map +0 -1
- package/dist/bigconsole/components/widgets/metric-card/index.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/pivot-table/PivotTableWidget.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/pivot-table/PivotTableWidget.js.map +0 -1
- package/dist/bigconsole/components/widgets/pivot-table/index.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/progress/ProgressBar.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/progress/ProgressBar.js.map +0 -1
- package/dist/bigconsole/components/widgets/progress/ProgressConfig.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/progress/ProgressConfig.js.map +0 -1
- package/dist/bigconsole/components/widgets/progress/ProgressWidget.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/progress/ProgressWidget.js.map +0 -1
- package/dist/bigconsole/components/widgets/progress/index.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/retention/RetentionWidget.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/retention/RetentionWidget.js.map +0 -1
- package/dist/bigconsole/components/widgets/retention/index.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/states/EmptyState.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/states/EmptyState.js.map +0 -1
- package/dist/bigconsole/components/widgets/states/ErrorState.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/states/ErrorState.js.map +0 -1
- package/dist/bigconsole/components/widgets/states/LoadingState.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/states/LoadingState.js.map +0 -1
- package/dist/bigconsole/components/widgets/states/index.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/table/TableCell.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/table/TableCell.js.map +0 -1
- package/dist/bigconsole/components/widgets/table/TableConfig.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/table/TableConfig.js.map +0 -1
- package/dist/bigconsole/components/widgets/table/TableHeader.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/table/TableHeader.js.map +0 -1
- package/dist/bigconsole/components/widgets/table/TablePagination.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/table/TablePagination.js.map +0 -1
- package/dist/bigconsole/components/widgets/table/TableWidget.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/table/TableWidget.js.map +0 -1
- package/dist/bigconsole/components/widgets/table/cellLink.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/table/cellLink.js.map +0 -1
- package/dist/bigconsole/components/widgets/table/index.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/text-widget/TextWidget.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/text-widget/TextWidget.js.map +0 -1
- package/dist/bigconsole/components/widgets/text-widget/index.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/text-widget/textData.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/text-widget/textData.js.map +0 -1
- package/dist/bigconsole/components/widgets/timeline/TimelineWidget.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/timeline/TimelineWidget.js.map +0 -1
- package/dist/bigconsole/components/widgets/timeline/index.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/utils/conditionalFormat.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/utils/conditionalFormat.js.map +0 -1
- package/dist/bigconsole/components/widgets/utils/inferFields.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/utils/inferFields.js.map +0 -1
- package/dist/bigconsole/components/widgets/utils/targetProgress.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/utils/targetProgress.js.map +0 -1
- package/dist/bigconsole/components/widgets/utils/translate.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/utils/translate.js.map +0 -1
- package/dist/bigconsole/components/widgets/webhook-config/WebhookConfigPanel.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/webhook-config/WebhookConfigPanel.js.map +0 -1
- package/dist/bigconsole/components/widgets/webhook-config/index.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/widget-actions/WidgetActions.d.ts.map +0 -1
- package/dist/bigconsole/components/widgets/widget-actions/WidgetActions.js.map +0 -1
- package/dist/bigconsole/components/widgets/widget-actions/index.d.ts.map +0 -1
- package/dist/bigconsole/components/workflow/DataSinkMultiSelector.d.ts.map +0 -1
- package/dist/bigconsole/components/workflow/WorkflowCard.d.ts.map +0 -1
- package/dist/bigconsole/components/workflow/WorkflowCard.js.map +0 -1
- package/dist/bigconsole/components/workflow/WorkflowDeleteDialog.d.ts.map +0 -1
- package/dist/bigconsole/components/workflow/WorkflowDeleteDialog.js.map +0 -1
- package/dist/bigconsole/components/workflow/WorkflowDesignPreview.d.ts.map +0 -1
- package/dist/bigconsole/components/workflow/WorkflowDesignPreview.js.map +0 -1
- package/dist/bigconsole/components/workflow/WorkflowOpenGuard.d.ts.map +0 -1
- package/dist/bigconsole/components/workflow/WorkflowOpenGuard.js.map +0 -1
- package/dist/bigconsole/components/workflow/WorkflowSinkLinkForm.d.ts.map +0 -1
- package/dist/bigconsole/components/workflow/WorkflowSinkLinkForm.js.map +0 -1
- package/dist/bigconsole/components/workflow/WorkflowStatusBadge.d.ts.map +0 -1
- package/dist/bigconsole/components/workflow/WorkflowStatusBadge.js.map +0 -1
- package/dist/bigconsole/components/workflow/index.d.ts.map +0 -1
- package/dist/bigconsole/constants/backendErrors.d.ts.map +0 -1
- package/dist/bigconsole/constants/backendErrors.js.map +0 -1
- package/dist/bigconsole/constants.d.ts.map +0 -1
- package/dist/bigconsole/constants.js.map +0 -1
- package/dist/bigconsole/context/BigConsoleContext.d.ts.map +0 -1
- package/dist/bigconsole/context/BigConsoleContext.js.map +0 -1
- package/dist/bigconsole/context/index.d.ts.map +0 -1
- package/dist/bigconsole/contexts/CrossFilterContext.d.ts.map +0 -1
- package/dist/bigconsole/contexts/CrossFilterContext.js.map +0 -1
- package/dist/bigconsole/contexts/NavigationContext.d.ts.map +0 -1
- package/dist/bigconsole/contexts/NavigationContext.js.map +0 -1
- package/dist/bigconsole/contexts/index.d.ts.map +0 -1
- package/dist/bigconsole/customWidget/CustomWidgetBuilderSheet.d.ts.map +0 -1
- package/dist/bigconsole/customWidget/CustomWidgetBuilderSheet.js.map +0 -1
- package/dist/bigconsole/customWidget/CustomWidgetProposalPanel.d.ts.map +0 -1
- package/dist/bigconsole/customWidget/CustomWidgetProposalPanel.js.map +0 -1
- package/dist/bigconsole/customWidget/index.d.ts.map +0 -1
- package/dist/bigconsole/customWidget/proposalContract.d.ts.map +0 -1
- package/dist/bigconsole/customWidget/proposalContract.js.map +0 -1
- package/dist/bigconsole/customWidget/proposalSource.d.ts.map +0 -1
- package/dist/bigconsole/customWidget/proposalSource.js.map +0 -1
- package/dist/bigconsole/graphql/apollo-compat.d.ts.map +0 -1
- package/dist/bigconsole/graphql/storeTemplates.d.ts.map +0 -1
- package/dist/bigconsole/graphql/storeTemplates.js.map +0 -1
- package/dist/bigconsole/hooks/index.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useActivePage.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useActivePage.js.map +0 -1
- package/dist/bigconsole/hooks/useAutoRefresh.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useAutoRefresh.js.map +0 -1
- package/dist/bigconsole/hooks/useBigConsoleAnalytics.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useBigConsoleAnalytics.js.map +0 -1
- package/dist/bigconsole/hooks/useBigConsoleSettings.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useBigConsoleSettings.js.map +0 -1
- package/dist/bigconsole/hooks/useCrossFilter.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useCrossFilter.js.map +0 -1
- package/dist/bigconsole/hooks/useDashboardEmbedPolicy.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useDashboardEmbedPolicy.js.map +0 -1
- package/dist/bigconsole/hooks/useDashboardImageExport.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useDashboardImageExport.js.map +0 -1
- package/dist/bigconsole/hooks/useDashboardLayoutBaseline.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useDashboardLayoutBaseline.js.map +0 -1
- package/dist/bigconsole/hooks/useDashboardOperations.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useDashboardOperations.js.map +0 -1
- package/dist/bigconsole/hooks/useDashboardSharing.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useDashboardSharing.js.map +0 -1
- package/dist/bigconsole/hooks/useDashboardTemplates.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useDashboardViews.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useDashboardViews.js.map +0 -1
- package/dist/bigconsole/hooks/useDataSinkAlerts.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useDataSinkAlerts.js.map +0 -1
- package/dist/bigconsole/hooks/useDataSinkOperations.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useDataSinkOperations.js.map +0 -1
- package/dist/bigconsole/hooks/useDataSinkSubscription.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useDataSinkSubscription.js.map +0 -1
- package/dist/bigconsole/hooks/useDrilldown.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useDrilldown.js.map +0 -1
- package/dist/bigconsole/hooks/useDrilldownOperations.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useDrilldownOperations.js.map +0 -1
- package/dist/bigconsole/hooks/useEventLogs.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useEventLogs.js.map +0 -1
- package/dist/bigconsole/hooks/useEventWebhooks.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useEventWebhooks.js.map +0 -1
- package/dist/bigconsole/hooks/useExportDashboard.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useExportDashboard.js.map +0 -1
- package/dist/bigconsole/hooks/useExportDataSink.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useExportDataSink.js.map +0 -1
- package/dist/bigconsole/hooks/useExportParser.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useExportParser.js.map +0 -1
- package/dist/bigconsole/hooks/useFilterPresets.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useFilterPresets.js.map +0 -1
- package/dist/bigconsole/hooks/useFilterUrlSync.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useFilterUrlSync.js.map +0 -1
- package/dist/bigconsole/hooks/useGlobalFilters.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useGlobalFilters.js.map +0 -1
- package/dist/bigconsole/hooks/useImportDashboard.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useImportDashboard.js.map +0 -1
- package/dist/bigconsole/hooks/useImportDataSink.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useImportDataSink.js.map +0 -1
- package/dist/bigconsole/hooks/useImportParser.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useImportParser.js.map +0 -1
- package/dist/bigconsole/hooks/useInstalledWidgets.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useInstalledWidgets.js.map +0 -1
- package/dist/bigconsole/hooks/useModalFocusTrap.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useModalFocusTrap.js.map +0 -1
- package/dist/bigconsole/hooks/usePageOperations.d.ts.map +0 -1
- package/dist/bigconsole/hooks/usePageOperations.js.map +0 -1
- package/dist/bigconsole/hooks/useParserOperations.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useParserOperations.js.map +0 -1
- package/dist/bigconsole/hooks/usePipelineOperations.d.ts.map +0 -1
- package/dist/bigconsole/hooks/usePipelineOperations.js.map +0 -1
- package/dist/bigconsole/hooks/useShareRecipients.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useShareRecipients.js.map +0 -1
- package/dist/bigconsole/hooks/useStoreDashboardTemplates.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useStoreDashboardTemplates.js.map +0 -1
- package/dist/bigconsole/hooks/useWidgetActions.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useWidgetActions.js.map +0 -1
- package/dist/bigconsole/hooks/useWidgetCatalog.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useWidgetCatalog.js.map +0 -1
- package/dist/bigconsole/hooks/useWidgetComments.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useWidgetComments.js.map +0 -1
- package/dist/bigconsole/hooks/useWidgetConfigPersist.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useWidgetConfigPersist.js.map +0 -1
- package/dist/bigconsole/hooks/useWidgetData.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useWidgetData.js.map +0 -1
- package/dist/bigconsole/hooks/useWidgetEvents.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useWidgetEvents.js.map +0 -1
- package/dist/bigconsole/hooks/useWidgetExport.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useWidgetExport.js.map +0 -1
- package/dist/bigconsole/hooks/useWidgetOperations.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useWidgetOperations.js.map +0 -1
- package/dist/bigconsole/hooks/useWorkflowOperations.d.ts.map +0 -1
- package/dist/bigconsole/hooks/useWorkflowOperations.js.map +0 -1
- package/dist/bigconsole/index.d.ts.map +0 -1
- package/dist/bigconsole/modules/dashboard/index.d.ts.map +0 -1
- package/dist/bigconsole/modules/index.d.ts.map +0 -1
- package/dist/bigconsole/modules/renderer/index.d.ts.map +0 -1
- package/dist/bigconsole/modules/widget/index.d.ts.map +0 -1
- package/dist/bigconsole/pages/AdminPage.d.ts.map +0 -1
- package/dist/bigconsole/pages/AdminPage.js.map +0 -1
- package/dist/bigconsole/pages/DashboardBuilderPage.d.ts.map +0 -1
- package/dist/bigconsole/pages/DashboardBuilderPage.js.map +0 -1
- package/dist/bigconsole/pages/DashboardViewPage.d.ts.map +0 -1
- package/dist/bigconsole/pages/DashboardViewPage.js.map +0 -1
- package/dist/bigconsole/pages/DashboardsPage.d.ts.map +0 -1
- package/dist/bigconsole/pages/DashboardsPage.js.map +0 -1
- package/dist/bigconsole/pages/DataParsersPage.d.ts.map +0 -1
- package/dist/bigconsole/pages/DataParsersPage.js.map +0 -1
- package/dist/bigconsole/pages/DataSinkAlertsPage.d.ts.map +0 -1
- package/dist/bigconsole/pages/DataSinkAlertsPage.js.map +0 -1
- package/dist/bigconsole/pages/DataSinkBuilderPage.d.ts.map +0 -1
- package/dist/bigconsole/pages/DataSinkBuilderPage.js.map +0 -1
- package/dist/bigconsole/pages/DataSinkViewPage.d.ts.map +0 -1
- package/dist/bigconsole/pages/DataSinkViewPage.js.map +0 -1
- package/dist/bigconsole/pages/DataSinksPage.d.ts.map +0 -1
- package/dist/bigconsole/pages/DataSinksPage.js.map +0 -1
- package/dist/bigconsole/pages/DataSourcesPage.d.ts.map +0 -1
- package/dist/bigconsole/pages/DataSourcesPage.js.map +0 -1
- package/dist/bigconsole/pages/InsightsPage.d.ts.map +0 -1
- package/dist/bigconsole/pages/InsightsPage.js.map +0 -1
- package/dist/bigconsole/pages/OverviewPage.d.ts.map +0 -1
- package/dist/bigconsole/pages/OverviewPage.js.map +0 -1
- package/dist/bigconsole/pages/ParserBuilderPage.d.ts.map +0 -1
- package/dist/bigconsole/pages/ParserBuilderPage.js.map +0 -1
- package/dist/bigconsole/pages/ParserViewPage.d.ts.map +0 -1
- package/dist/bigconsole/pages/ParserViewPage.js.map +0 -1
- package/dist/bigconsole/pages/PipelineBuilderPage.d.ts.map +0 -1
- package/dist/bigconsole/pages/PipelineBuilderPage.js.map +0 -1
- package/dist/bigconsole/pages/PipelineViewPage.d.ts.map +0 -1
- package/dist/bigconsole/pages/PipelineViewPage.js.map +0 -1
- package/dist/bigconsole/pages/PipelinesPage.d.ts.map +0 -1
- package/dist/bigconsole/pages/PipelinesPage.js.map +0 -1
- package/dist/bigconsole/pages/SettingsPage.d.ts.map +0 -1
- package/dist/bigconsole/pages/SettingsPage.js.map +0 -1
- package/dist/bigconsole/pages/WidgetDemoPage.d.ts.map +0 -1
- package/dist/bigconsole/pages/WidgetDemoPage.js.map +0 -1
- package/dist/bigconsole/pages/WorkflowViewPage.d.ts.map +0 -1
- package/dist/bigconsole/pages/WorkflowViewPage.js.map +0 -1
- package/dist/bigconsole/pages/WorkflowsPage.d.ts.map +0 -1
- package/dist/bigconsole/pages/WorkflowsPage.js.map +0 -1
- package/dist/bigconsole/pages/index.d.ts.map +0 -1
- package/dist/bigconsole/providers/BigConsoleQuotaProvider.d.ts.map +0 -1
- package/dist/bigconsole/providers/BigConsoleQuotaProvider.js.map +0 -1
- package/dist/bigconsole/renderers/adapters/AdaptiveCardRenderer.d.ts.map +0 -1
- package/dist/bigconsole/renderers/adapters/AdaptiveCardRenderer.js.map +0 -1
- package/dist/bigconsole/renderers/adapters/BigConsoleRenderer.d.ts.map +0 -1
- package/dist/bigconsole/renderers/adapters/BigConsoleRenderer.js.map +0 -1
- package/dist/bigconsole/renderers/adapters/BlockKitRenderer.d.ts.map +0 -1
- package/dist/bigconsole/renderers/adapters/BlockKitRenderer.js.map +0 -1
- package/dist/bigconsole/renderers/adapters/CustomRenderer.d.ts.map +0 -1
- package/dist/bigconsole/renderers/adapters/CustomRenderer.js.map +0 -1
- package/dist/bigconsole/renderers/adapters/index.d.ts.map +0 -1
- package/dist/bigconsole/renderers/factory/WidgetRendererFactory.d.ts.map +0 -1
- package/dist/bigconsole/renderers/factory/WidgetRendererFactory.js.map +0 -1
- package/dist/bigconsole/renderers/index.d.ts.map +0 -1
- package/dist/bigconsole/renderers/registry/RendererRegistry.d.ts.map +0 -1
- package/dist/bigconsole/renderers/registry/RendererRegistry.js.map +0 -1
- package/dist/bigconsole/renderers/types/index.d.ts.map +0 -1
- package/dist/bigconsole/renderers/types/renderer.d.ts.map +0 -1
- package/dist/bigconsole/store/dashboardStore.d.ts.map +0 -1
- package/dist/bigconsole/store/dashboardStore.js.map +0 -1
- package/dist/bigconsole/store/dataSinkStore.d.ts.map +0 -1
- package/dist/bigconsole/store/dataSinkStore.js.map +0 -1
- package/dist/bigconsole/store/drilldownStore.d.ts.map +0 -1
- package/dist/bigconsole/store/drilldownStore.js.map +0 -1
- package/dist/bigconsole/store/index.d.ts.map +0 -1
- package/dist/bigconsole/store/parserStore.d.ts.map +0 -1
- package/dist/bigconsole/store/parserStore.js.map +0 -1
- package/dist/bigconsole/store/pipelineStore.d.ts.map +0 -1
- package/dist/bigconsole/store/pipelineStore.js.map +0 -1
- package/dist/bigconsole/store/widgetStore.d.ts.map +0 -1
- package/dist/bigconsole/store/widgetStore.js.map +0 -1
- package/dist/bigconsole/store/workflowStore.d.ts.map +0 -1
- package/dist/bigconsole/store/workflowStore.js.map +0 -1
- package/dist/bigconsole/types/index.d.ts.map +0 -1
- package/dist/bigconsole/utils/alertRules.d.ts.map +0 -1
- package/dist/bigconsole/utils/alertRules.js.map +0 -1
- package/dist/bigconsole/utils/backendError.d.ts.map +0 -1
- package/dist/bigconsole/utils/backendError.js.map +0 -1
- package/dist/bigconsole/utils/createDialogParam.d.ts.map +0 -1
- package/dist/bigconsole/utils/createDialogParam.js.map +0 -1
- package/dist/bigconsole/utils/csv.d.ts.map +0 -1
- package/dist/bigconsole/utils/csv.js.map +0 -1
- package/dist/bigconsole/utils/dashboardTemplateContent.d.ts.map +0 -1
- package/dist/bigconsole/utils/dashboardTemplateContent.js.map +0 -1
- package/dist/bigconsole/utils/drilldownParams.d.ts.map +0 -1
- package/dist/bigconsole/utils/drilldownParams.js.map +0 -1
- package/dist/bigconsole/utils/formDirty.d.ts.map +0 -1
- package/dist/bigconsole/utils/formDirty.js.map +0 -1
- package/dist/bigconsole/utils/format.d.ts.map +0 -1
- package/dist/bigconsole/utils/format.js.map +0 -1
- package/dist/bigconsole/utils/index.d.ts.map +0 -1
- package/dist/bigconsole/utils/insightsDraft.d.ts.map +0 -1
- package/dist/bigconsole/utils/insightsDraft.js.map +0 -1
- package/dist/bigconsole/utils/layoutBaseline.d.ts.map +0 -1
- package/dist/bigconsole/utils/layoutBaseline.js.map +0 -1
- package/dist/bigconsole/utils/quota.d.ts.map +0 -1
- package/dist/bigconsole/utils/quota.js.map +0 -1
- package/dist/bigconsole/utils/semanticTokens.d.ts.map +0 -1
- package/dist/bigconsole/utils/semanticTokens.js.map +0 -1
- package/dist/bigconsole/utils/templateInstallInputs.d.ts.map +0 -1
- package/dist/bigconsole/utils/templateInstallInputs.js.map +0 -1
- package/dist/bigconsole/utils/widgetBinding.d.ts.map +0 -1
- package/dist/bigconsole/utils/widgetBinding.js.map +0 -1
- package/dist/bigconsole/utils/widgetFormDirty.d.ts.map +0 -1
- package/dist/bigconsole/utils/widgetFormDirty.js.map +0 -1
- package/dist/bigconsole/utils/widgetPositioning.d.ts.map +0 -1
- package/dist/bigconsole/utils/widgetPositioning.js.map +0 -1
- package/dist/bigconsole/utils/widgetTypeMapping.d.ts.map +0 -1
- package/dist/bigconsole/utils/widgetTypeMapping.js.map +0 -1
- package/dist/bigconsole/workflowOpen.d.ts.map +0 -1
- package/dist/bigconsole/workflowOpen.js.map +0 -1
- package/dist/constants/permissions.d.ts.map +0 -1
- package/dist/constants/permissions.js.map +0 -1
- package/dist/generated/global-operations.d.ts.map +0 -1
- package/dist/generated/global-operations.js.map +0 -1
- package/dist/generated/global-types.d.ts.map +0 -1
- package/dist/generated/wspace-operations.d.ts.map +0 -1
- package/dist/generated/wspace-operations.js.map +0 -1
- package/dist/generated/wspace-types.d.ts.map +0 -1
- package/dist/generated/wspace-types.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/node_modules/@e965/xlsx/xlsx.js.map +0 -1
- package/dist/node_modules/pdfjs-dist/build/pdf.js.map +0 -1
- package/dist/shared/hooks/useTr.d.ts.map +0 -1
- package/dist/shared/hooks/useTr.js.map +0 -1
- package/dist/stories/DashboardGuide.stories.d.ts +0 -15
- package/dist/stories/DashboardGuide.stories.d.ts.map +0 -1
- package/dist/stories/DataSinkStatusBadge.stories.d.ts +0 -12
- package/dist/stories/DataSinkStatusBadge.stories.d.ts.map +0 -1
- package/dist/stories/GaugeWidget.stories.d.ts +0 -58
- package/dist/stories/GaugeWidget.stories.d.ts.map +0 -1
- package/dist/stories/KPIComparisonWidget.stories.d.ts +0 -76
- package/dist/stories/KPIComparisonWidget.stories.d.ts.map +0 -1
- package/dist/stories/LiveCanvasToggle.stories.d.ts +0 -9
- package/dist/stories/LiveCanvasToggle.stories.d.ts.map +0 -1
- package/dist/stories/MetricCardWidget.stories.d.ts +0 -88
- package/dist/stories/MetricCardWidget.stories.d.ts.map +0 -1
- package/dist/stories/ProgressWidget.stories.d.ts +0 -48
- package/dist/stories/ProgressWidget.stories.d.ts.map +0 -1
- package/dist/stories/SetupStateBadge.stories.d.ts +0 -12
- package/dist/stories/SetupStateBadge.stories.d.ts.map +0 -1
- package/dist/translations/en.d.ts.map +0 -1
- package/dist/utils/nativeBridge.d.ts.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DataBindingSection.js","names":[],"sources":["../../../../../src/bigconsole/components/builder/inspector/DataBindingSection.tsx"],"sourcesContent":["import type { FC } from 'react';\nimport { Input, Label, Spinner } from '@burdenoff/fe-libs/ui';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport type { WidgetBinding, WidgetBindingStatus, Parser } from '../../../types';\nimport { DataSinkSelector } from '../../parser/DataSinkSelector';\nimport { ParserSelector } from '../../parser/ParserSelector';\nimport { Section, SectionStack, type SectionTone } from '../../common';\n\nexport interface DataBindingSectionProps {\n consoleId: string;\n binding: WidgetBinding;\n resolvedParser?: Parser;\n dataSinkKey: string | null;\n dataPath?: string;\n status: WidgetBindingStatus;\n resolving?: boolean;\n missingFields?: string[];\n preview?: unknown;\n error?: string | null;\n onDataSinkChange: (key: string | null) => void;\n onParserChange: (parserId: string | null) => void;\n onDataPathChange: (path: string | undefined) => void;\n}\n\n/**\n * Binding health is the single most important signal on this tab, so it gets a\n * toned section of its own instead of the bare `<p class=\"text-xs\">` it used to\n * be (BOFF-5636).\n */\nconst STATUS_TONES: Record<WidgetBindingStatus, SectionTone> = {\n unbound: 'info',\n loading: 'info',\n bound: 'success',\n no_data: 'warning',\n parser_error: 'danger',\n field_mismatch: 'warning',\n};\n\nexport const DataBindingSection: FC<DataBindingSectionProps> = ({\n consoleId,\n binding,\n resolvedParser,\n dataSinkKey,\n dataPath,\n status,\n resolving = false,\n missingFields = [],\n preview,\n error,\n onDataSinkChange,\n onParserChange,\n onDataPathChange,\n}) => {\n const { t } = useI18n();\n\n const statusLabels: Record<WidgetBindingStatus, string> = {\n unbound: t('bigconsole.builder.dataBinding.status.unbound', 'Select a DataSink to begin'),\n loading: resolving\n ? t('bigconsole.parsers.selector.loading', 'Loading parsers...')\n : t('bigconsole.builder.dataBinding.status.loading', 'Testing parser and detecting fields…'),\n bound: t('bigconsole.builder.dataBinding.status.bound', 'Binding ready'),\n no_data: t('bigconsole.builder.dataBinding.status.noData', 'Parser returned no data'),\n parser_error: t('bigconsole.builder.dataBinding.status.parserError', 'Parser test failed'),\n field_mismatch: t('bigconsole.builder.dataBinding.status.fieldMismatch', 'Some mapped fields were not found'),\n };\n\n return (\n <SectionStack>\n <Section\n title=\"Data source\"\n description={t(\n 'bigconsole.builder.dataBinding.intro',\n 'Connect this widget to a DataSink and Parser to display transformed data.'\n )}\n data-testid=\"widget-inspector-data-source\"\n >\n <div className=\"flex flex-col gap-form-gap\">\n <div className=\"space-y-2\">\n <Label>{t('bigconsole.builder.dataBinding.dataSinkLabel', 'DataSink')}</Label>\n <DataSinkSelector\n value={dataSinkKey}\n onChange={onDataSinkChange}\n placeholder={t('bigconsole.builder.dataBinding.dataSinkPlaceholder', 'Select a DataSink...')}\n />\n {dataSinkKey && (\n <p className=\"text-xs text-text-secondary\">\n {t('bigconsole.builder.dataBinding.keyLabel', 'Key: {{key}}', { key: dataSinkKey })}\n {binding.source.ref && (\n <span className=\"ml-2 text-text-muted\">\n {t('bigconsole.builder.dataBinding.idLabel', 'ID: {{id}}...', {\n id: binding.source.ref.slice(0, 8),\n })}\n </span>\n )}\n </p>\n )}\n </div>\n\n <div className=\"space-y-2\">\n <Label>{t('bigconsole.builder.dataBinding.parserLabel', 'Parser')}</Label>\n <ParserSelector\n consoleId={consoleId}\n value={binding.parserId ?? null}\n resolvedParser={resolvedParser}\n onChange={onParserChange}\n filterInputSinkKey={dataSinkKey ?? undefined}\n filterStatus={undefined}\n placeholder={\n dataSinkKey\n ? t('bigconsole.builder.dataBinding.parserPlaceholder', 'Select a parser...')\n : t('bigconsole.builder.dataBinding.parserPlaceholderNoSink', 'Select a DataSink first...')\n }\n disabled={!dataSinkKey}\n />\n </div>\n </div>\n </Section>\n\n <Section\n title={statusLabels[status]}\n tone={STATUS_TONES[status]}\n padding=\"compact\"\n headingLevel={3}\n icon={status === 'loading' ? <Spinner style={{ width: '14px', height: '14px' }} /> : undefined}\n data-testid=\"widget-inspector-binding-status\"\n >\n <div role=\"status\" aria-live=\"polite\" className=\"min-w-0 space-y-1\">\n {/*\n The status label is the section heading, which sits OUTSIDE this live\n region — without this echo a screen reader would never hear the binding\n flip from \"loading\" to \"bound\".\n */}\n <p className=\"sr-only\">{statusLabels[status]}</p>\n {error && <p className=\"break-words text-xs text-[var(--color-status-error-text)]\">{error}</p>}\n {missingFields.length > 0 && (\n <p className=\"break-words text-xs text-[var(--color-status-warning-text)]\">\n {t('bigconsole.builder.dataBinding.missingFields', 'Missing: {{fields}}', {\n fields: missingFields.join(', '),\n })}\n </p>\n )}\n {!error && missingFields.length === 0 && status === 'bound' && preview !== undefined && (\n <p className=\"text-xs text-text-secondary\">\n The parser ran and its output matches the fields this widget expects.\n </p>\n )}\n </div>\n </Section>\n\n {binding.parserId && Object.keys(binding.fields).length > 0 && (\n <Section\n emphasis=\"muted\"\n padding=\"compact\"\n title={t('bigconsole.builder.dataBinding.fieldMappingsConfigured', 'Field mappings configured')}\n headingLevel={3}\n >\n <div className=\"min-w-0 space-y-1 text-xs text-text-secondary\">\n {Object.entries(binding.fields).map(([name, path]) => (\n <p key={name} className=\"break-words\">\n {name}: <code className=\"rounded bg-bg-surface px-1 font-mono\">{path}</code>\n </p>\n ))}\n </div>\n </Section>\n )}\n\n {preview !== undefined && (\n <Section\n emphasis=\"muted\"\n padding=\"compact\"\n title={t('bigconsole.builder.dataBinding.livePreviewLabel', 'Live Preview')}\n description=\"Raw parser output, exactly as the widget receives it.\"\n headingLevel={3}\n >\n <pre className=\"max-h-40 min-w-0 overflow-auto rounded-input border border-[var(--color-border-subtle)] bg-bg-surface p-3 text-xs text-text-secondary\">\n {JSON.stringify(preview, null, 2)}\n </pre>\n </Section>\n )}\n\n <Section emphasis=\"muted\" padding=\"compact\" title=\"Data path\" headingLevel={3}>\n <div className=\"space-y-2\">\n <Label htmlFor=\"widget-inspector-data-path\">\n {t('bigconsole.builder.dataBinding.dataPathLabel', 'Data Path (Optional)')}\n </Label>\n <Input\n id=\"widget-inspector-data-path\"\n value={dataPath ?? ''}\n onChange={(event) => onDataPathChange(event.target.value || undefined)}\n placeholder={t('bigconsole.builder.dataBinding.dataPathPlaceholder', 'e.g., summary.totalRevenue')}\n />\n <p className=\"text-xs text-text-secondary\">\n {t(\n 'bigconsole.builder.dataBinding.dataPathHelp',\n 'Path to extract specific data from the parser output (dot notation)'\n )}\n </p>\n </div>\n </Section>\n </SectionStack>\n );\n};\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GeneralSection.d.ts","sourceRoot":"","sources":["../../../../../src/bigconsole/components/builder/inspector/GeneralSection.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,EAAQ,MAAM,OAAO,CAAC;AAItC,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,mBAAmB,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IACnD,uBAAuB,EAAE,CAAC,eAAe,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;CACxE;AAED;;;;;GAKG;AACH,eAAO,MAAM,cAAc,EAAE,EAAE,CAAC,mBAAmB,CA8DjD,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GeneralSection.js","names":[],"sources":["../../../../../src/bigconsole/components/builder/inspector/GeneralSection.tsx"],"sourcesContent":["import { type FC, memo } from 'react';\nimport { Input, Textarea } from '@burdenoff/fe-libs/ui';\nimport { Section } from '../../common';\n\nexport interface GeneralSectionProps {\n title: string;\n description: string;\n refreshInterval?: number;\n onTitleChange: (title: string) => void;\n onDescriptionChange: (description: string) => void;\n onRefreshIntervalChange: (refreshInterval: number | undefined) => void;\n}\n\n/**\n * Widget identity and refresh settings shared by every widget type.\n *\n * Field labels are `font-medium`: the section heading owns `font-semibold`, so a\n * label can never be mistaken for the heading that groups it (BOFF-5636).\n */\nexport const GeneralSection: FC<GeneralSectionProps> = memo(function GeneralSection({\n title,\n description,\n refreshInterval,\n onTitleChange,\n onDescriptionChange,\n onRefreshIntervalChange,\n}) {\n const labelClassName = 'mb-1 block text-sm font-medium text-text-primary';\n\n return (\n <Section\n title=\"Identity\"\n description=\"How this widget names itself on the dashboard, and how often it reloads.\"\n data-testid=\"widget-inspector-general\"\n >\n <div className=\"flex flex-col gap-form-gap\">\n <div>\n <label htmlFor=\"widget-inspector-title\" className={labelClassName}>\n Title\n </label>\n <Input\n id=\"widget-inspector-title\"\n value={title}\n onChange={(event) => onTitleChange(event.target.value)}\n className=\"h-control-md text-sm\"\n />\n </div>\n\n <div>\n <label htmlFor=\"widget-inspector-description\" className={labelClassName}>\n Description\n </label>\n <Textarea\n id=\"widget-inspector-description\"\n value={description}\n onChange={(event) => onDescriptionChange(event.target.value)}\n rows={3}\n className=\"resize-none text-sm\"\n />\n </div>\n\n <div>\n <label htmlFor=\"widget-inspector-refresh\" className={labelClassName}>\n Auto-refresh (seconds)\n </label>\n <Input\n id=\"widget-inspector-refresh\"\n type=\"number\"\n value={refreshInterval ?? ''}\n onChange={(event) =>\n onRefreshIntervalChange(event.target.value === '' ? undefined : Number(event.target.value))\n }\n min={0}\n placeholder=\"No auto-refresh\"\n className=\"h-control-md text-sm\"\n />\n <p className=\"mt-1 text-xs text-text-secondary\">Leave empty to refresh only on demand.</p>\n </div>\n </div>\n </Section>\n );\n});\n"],"mappings":";;;;;;AAmBA,IAAa,IAA0C,EAAK,SAAwB,EAClF,UACA,gBACA,oBACA,kBACA,wBACA,8BACC;CACD,IAAM,IAAiB;AAEvB,QACE,kBAAC,GAAD;EACE,OAAM;EACN,aAAY;EACZ,eAAY;YAEZ,kBAAC,OAAD;GAAK,WAAU;aAAf;IACE,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,SAAD;KAAO,SAAQ;KAAyB,WAAW;eAAgB;KAE3D,CAAA,EACR,kBAAC,GAAD;KACE,IAAG;KACH,OAAO;KACP,WAAW,MAAU,EAAc,EAAM,OAAO,MAAM;KACtD,WAAU;KACV,CAAA,CACE,EAAA,CAAA;IAEN,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,SAAD;KAAO,SAAQ;KAA+B,WAAW;eAAgB;KAEjE,CAAA,EACR,kBAAC,GAAD;KACE,IAAG;KACH,OAAO;KACP,WAAW,MAAU,EAAoB,EAAM,OAAO,MAAM;KAC5D,MAAM;KACN,WAAU;KACV,CAAA,CACE,EAAA,CAAA;IAEN,kBAAC,OAAD,EAAA,UAAA;KACE,kBAAC,SAAD;MAAO,SAAQ;MAA2B,WAAW;gBAAgB;MAE7D,CAAA;KACR,kBAAC,GAAD;MACE,IAAG;MACH,MAAK;MACL,OAAO,KAAmB;MAC1B,WAAW,MACT,EAAwB,EAAM,OAAO,UAAU,KAAK,KAAA,IAAY,OAAO,EAAM,OAAO,MAAM,CAAC;MAE7F,KAAK;MACL,aAAY;MACZ,WAAU;MACV,CAAA;KACF,kBAAC,KAAD;MAAG,WAAU;gBAAmC;MAA0C,CAAA;KACtF,EAAA,CAAA;IACF;;EACE,CAAA;EAEZ"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LayoutSection.d.ts","sourceRoot":"","sources":["../../../../../src/bigconsole/components/builder/inspector/LayoutSection.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,EAAqB,MAAM,OAAO,CAAC;AAGnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAEvE,MAAM,WAAW,kBAAkB;IACjC,qDAAqD;IACrD,QAAQ,EAAE,cAAc,CAAC;IACzB,iEAAiE;IACjE,OAAO,EAAE,MAAM,CAAC;IAChB,yEAAyE;IACzE,QAAQ,EAAE,CAAC,QAAQ,EAAE,cAAc,KAAK,IAAI,CAAC;CAC9C;AAYD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,aAAa,EAAE,EAAE,CAAC,kBAAkB,CAkE/C,CAAC;AAEH,eAAe,aAAa,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LayoutSection.js","names":[],"sources":["../../../../../src/bigconsole/components/builder/inspector/LayoutSection.tsx"],"sourcesContent":["import { type FC, memo, useCallback } from 'react';\nimport { Input } from '@burdenoff/fe-libs/ui';\nimport { Section } from '../../common';\nimport type { WidgetPosition } from '../../../utils/widgetPositioning';\n\nexport interface LayoutSectionProps {\n /** Current grid placement of the selected widget. */\n position: WidgetPosition;\n /** Columns in the board's grid — the ceiling for `x + width`. */\n columns: number;\n /** Commit a new placement. The caller persists it with the dashboard. */\n onChange: (position: WidgetPosition) => void;\n}\n\n/** Which of the four numbers an input edits. */\ntype PositionField = keyof WidgetPosition;\n\nconst FIELD_LABELS: Record<PositionField, string> = {\n x: 'Column (X)',\n y: 'Row (Y)',\n width: 'Width',\n height: 'Height',\n};\n\n/**\n * Numeric grid placement for the selected widget.\n *\n * Drag-and-resize on the canvas is the only way a widget could be placed until\n * now, which makes precise alignment guesswork and leaves keyboard-only users\n * with no way to move a widget at all. The four numbers here are the SAME ones\n * the canvas writes (`Widget.position` / `positionX|Y|Width|Height`), committed\n * through the same store action, so the board and this panel can never disagree\n * and the dashboard's Save persists them exactly as a drag would.\n *\n * The mockup also shows Min W / Min H fields. Those are deliberately absent:\n * `WidgetPosition` on the service carries only x/y/width/height, so a minimum\n * would have nowhere to be stored and would silently reset on reload.\n */\nexport const LayoutSection: FC<LayoutSectionProps> = memo(function LayoutSection({ position, columns, onChange }) {\n const labelClassName = 'mb-1 block text-sm font-medium text-text-primary';\n\n const commit = useCallback(\n (field: PositionField, raw: string) => {\n const parsed = Number.parseInt(raw, 10);\n if (Number.isNaN(parsed)) return;\n\n const next: WidgetPosition = { ...position, [field]: parsed };\n\n // Clamp to a placement the grid can actually hold. Letting a widget be\n // 0 columns wide, or start past the last column, produces a widget that\n // renders nowhere — an input that appears to work and then loses content.\n next.width = Math.min(Math.max(next.width, 1), columns);\n next.x = Math.min(Math.max(next.x, 0), Math.max(columns - next.width, 0));\n next.height = Math.max(next.height, 1);\n next.y = Math.max(next.y, 0);\n\n if (\n next.x === position.x &&\n next.y === position.y &&\n next.width === position.width &&\n next.height === position.height\n ) {\n return;\n }\n\n onChange(next);\n },\n [columns, onChange, position]\n );\n\n const fields: Array<{ field: PositionField; min: number; max?: number }> = [\n { field: 'x', min: 0, max: Math.max(columns - position.width, 0) },\n { field: 'y', min: 0 },\n { field: 'width', min: 1, max: columns },\n { field: 'height', min: 1 },\n ];\n\n return (\n <Section\n title=\"Position & size\"\n description={`Grid placement on the ${columns}-column board. Saved with the dashboard.`}\n data-testid=\"widget-inspector-layout\"\n >\n <div className=\"grid grid-cols-2 gap-form-gap\">\n {fields.map(({ field, min, max }) => (\n <div key={field}>\n <label htmlFor={`widget-inspector-position-${field}`} className={labelClassName}>\n {FIELD_LABELS[field]}\n </label>\n <Input\n id={`widget-inspector-position-${field}`}\n type=\"number\"\n inputMode=\"numeric\"\n value={position[field]}\n min={min}\n max={max}\n onChange={(event) => commit(field, event.target.value)}\n className=\"h-control-md text-sm\"\n />\n </div>\n ))}\n </div>\n </Section>\n );\n});\n\nexport default LayoutSection;\n"],"mappings":";;;;;;AAiBA,IAAM,IAA8C;CAClD,GAAG;CACH,GAAG;CACH,OAAO;CACP,QAAQ;CACT,EAgBY,IAAwC,EAAK,SAAuB,EAAE,aAAU,YAAS,eAAY;CAChH,IAEM,IAAS,GACZ,GAAsB,MAAgB;EACrC,IAAM,IAAS,OAAO,SAAS,GAAK,GAAG;AACvC,MAAI,OAAO,MAAM,EAAO,CAAE;EAE1B,IAAM,IAAuB;GAAE,GAAG;IAAW,IAAQ;GAAQ;AAK7D,IAAK,QAAQ,KAAK,IAAI,KAAK,IAAI,EAAK,OAAO,EAAE,EAAE,EAAQ,EACvD,EAAK,IAAI,KAAK,IAAI,KAAK,IAAI,EAAK,GAAG,EAAE,EAAE,KAAK,IAAI,IAAU,EAAK,OAAO,EAAE,CAAC,EACzE,EAAK,SAAS,KAAK,IAAI,EAAK,QAAQ,EAAE,EACtC,EAAK,IAAI,KAAK,IAAI,EAAK,GAAG,EAAE,EAG1B,IAAK,MAAM,EAAS,KACpB,EAAK,MAAM,EAAS,KACpB,EAAK,UAAU,EAAS,SACxB,EAAK,WAAW,EAAS,WAK3B,EAAS,EAAK;IAEhB;EAAC;EAAS;EAAU;EAAS,CAC9B,EAEK,IAAqE;EACzE;GAAE,OAAO;GAAK,KAAK;GAAG,KAAK,KAAK,IAAI,IAAU,EAAS,OAAO,EAAE;GAAE;EAClE;GAAE,OAAO;GAAK,KAAK;GAAG;EACtB;GAAE,OAAO;GAAS,KAAK;GAAG,KAAK;GAAS;EACxC;GAAE,OAAO;GAAU,KAAK;GAAG;EAC5B;AAED,QACE,kBAAC,GAAD;EACE,OAAM;EACN,aAAa,yBAAyB,EAAQ;EAC9C,eAAY;YAEZ,kBAAC,OAAD;GAAK,WAAU;aACZ,EAAO,KAAK,EAAE,UAAO,QAAK,aACzB,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,SAAD;IAAO,SAAS,6BAA6B;IAAS,WAAW;cAC9D,EAAa;IACR,CAAA,EACR,kBAAC,GAAD;IACE,IAAI,6BAA6B;IACjC,MAAK;IACL,WAAU;IACV,OAAO,EAAS;IACX;IACA;IACL,WAAW,MAAU,EAAO,GAAO,EAAM,OAAO,MAAM;IACtD,WAAU;IACV,CAAA,CACE,EAAA,EAdI,EAcJ,CACN;GACE,CAAA;EACE,CAAA;EAEZ"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/bigconsole/components/builder/inspector/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,KAAK,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC5G,OAAO,EAAE,iBAAiB,EAAE,KAAK,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AACrF,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,KAAK,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AACxF,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Section.d.ts","sourceRoot":"","sources":["../../../../src/bigconsole/components/common/Section.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAe,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,EAIL,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,WAAW,EACjB,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEpF,iFAAiF;AACjF,MAAM,MAAM,mBAAmB,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAE5C,MAAM,WAAW,kBAAkB;IACjC,+EAA+E;IAC/E,KAAK,EAAE,SAAS,CAAC;IACjB,0DAA0D;IAC1D,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,yEAAyE;IACzE,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,6EAA6E;IAC7E,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,2DAA2D;IAC3D,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,YAAY,CAAC,EAAE,mBAAmB,CAAC;IACnC,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,eAAO,MAAM,aAAa,0DAoCxB,CAAC;AAEH,MAAM,WAAW,YAAa,SAAQ,IAAI,CAAC,kBAAkB,EAAE,WAAW,GAAG,WAAW,GAAG,OAAO,CAAC;IACjG;;;;OAIG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,sEAAsE;IACtE,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,8EAA8E;IAC9E,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,wDAAwD;IACxD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6DAA6D;IAC7D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mEAAmE;IACnE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,6DAA6D;IAC7D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,OAAO,oDAgElB,CAAC;AAEH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY,yDAEvB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Section.js","names":[],"sources":["../../../../src/bigconsole/components/common/Section.tsx"],"sourcesContent":["/**\n * Section / SectionHeader / SectionStack — BigConsole's section-emphasis\n * components (BOFF-5632).\n *\n * A `Section` is a labelled region of a screen. It renders a real `<section>`\n * tied to its heading with `aria-labelledby`, so screen-reader users get the\n * same \"where am I\" landmarks that the visual treatment gives sighted users.\n *\n * ```tsx\n * <SectionStack>\n * <Section title=\"Configuration\" description=\"How this parser reads input.\" >\n * …fields…\n * </Section>\n * <Section title=\"Output\" emphasis=\"primary\" actions={<Button>Run</Button>}>\n * …result…\n * </Section>\n * <Section title=\"Last run failed\" emphasis=\"standard\" tone=\"danger\">\n * …error detail…\n * </Section>\n * </SectionStack>\n * ```\n *\n * The class vocabulary lives in `./sectionStyles.ts` — see the notes there on which\n * design tokens actually emit CSS in the BigConsole shell.\n */\n\nimport { memo, useId, type ReactNode } from 'react';\nimport {\n SECTION_STACK,\n sectionSurfaceClasses,\n sectionTitleClasses,\n type SectionEmphasis,\n type SectionPadding,\n type SectionTone,\n} from './sectionStyles';\n\nexport type { SectionEmphasis, SectionPadding, SectionTone } from './sectionStyles';\n\n/** Heading level the section title renders as. Keep the page outline ordered. */\nexport type SectionHeadingLevel = 2 | 3 | 4;\n\nexport interface SectionHeaderProps {\n /** Short, scannable label. Sentence case — this is a UI label, not a title. */\n title: ReactNode;\n /** One line of context. Keep it under ~120 characters. */\n description?: ReactNode;\n /** Leading icon, already sized by the caller (`h-icon-sm w-icon-sm`). */\n icon?: ReactNode;\n /** Buttons/toggles for this section. They wrap under the title on mobile. */\n actions?: ReactNode;\n /** Status chip or count rendered right after the title. */\n meta?: ReactNode;\n headingLevel?: SectionHeadingLevel;\n tone?: SectionTone;\n /** id applied to the heading so the owning `<section>` can reference it. */\n headingId?: string;\n className?: string;\n}\n\n/**\n * The header row of a section: icon + title + meta on the left, actions on the\n * right. Stacks vertically below `sm` so a two-button action cluster never\n * squeezes the title into a one-word-per-line column on mobile.\n */\nexport const SectionHeader = memo(function SectionHeader({\n title,\n description,\n icon,\n actions,\n meta,\n headingLevel = 3,\n tone = 'neutral',\n headingId,\n className,\n}: SectionHeaderProps) {\n const Heading = `h${headingLevel}` as 'h2' | 'h3' | 'h4';\n\n return (\n <div\n className={`flex flex-col gap-control-gap sm:flex-row sm:items-start sm:justify-between ${className ?? ''}`.trim()}\n >\n <div className=\"flex min-w-0 items-start gap-icon-gap\">\n {icon ? (\n <span aria-hidden=\"true\" className=\"mt-0.5 flex shrink-0 items-center justify-center text-text-secondary\">\n {icon}\n </span>\n ) : null}\n <div className=\"min-w-0\">\n <div className=\"flex flex-wrap items-center gap-icon-gap\">\n <Heading id={headingId} className={sectionTitleClasses(tone)}>\n {title}\n </Heading>\n {meta}\n </div>\n {description ? <p className=\"mt-1 text-sm leading-relaxed text-text-secondary\">{description}</p> : null}\n </div>\n </div>\n {actions ? <div className=\"flex shrink-0 flex-wrap items-center gap-control-gap\">{actions}</div> : null}\n </div>\n );\n});\n\nexport interface SectionProps extends Omit<SectionHeaderProps, 'headingId' | 'className' | 'title'> {\n /**\n * Visible section label. Optional: a `bare` strip or a section whose heading\n * is supplied through `header` can go without one, but it must then carry an\n * `aria-label` so the region is still announced.\n */\n title?: ReactNode;\n /** Visual weight relative to sibling sections. @default 'standard' */\n emphasis?: SectionEmphasis;\n /** Inner padding step. Use `none` when the child owns its own scroll area. */\n padding?: SectionPadding;\n /** Extra classes for the `<section>` element itself. */\n className?: string;\n /** Extra classes for the body wrapper (below the header). */\n bodyClassName?: string;\n /** Classes for the header block (e.g. `mb-form-gap` overrides). */\n headerClassName?: string;\n /**\n * Renders the header without a title element — for sections whose heading is\n * supplied by a caller-provided node. Prefer passing `title` when possible.\n */\n header?: ReactNode;\n children?: ReactNode;\n id?: string;\n /** Accessible name when the section has no visible title. */\n 'aria-label'?: string;\n 'data-testid'?: string;\n}\n\n/**\n * A labelled region with a consistent emphasis treatment.\n *\n * Layout rules that hold at every breakpoint:\n * - the section never forces horizontal page scroll (`min-w-0`);\n * - the header collapses to a column below `sm` (640px);\n * - padding and inter-section gaps follow the density tokens, so a compact\n * workspace stays compact and a spacious one stays readable.\n */\nexport const Section = memo(function Section({\n title,\n description,\n icon,\n actions,\n meta,\n headingLevel = 3,\n emphasis = 'standard',\n tone = 'neutral',\n padding = 'default',\n className,\n bodyClassName,\n headerClassName,\n header,\n children,\n id,\n 'aria-label': ariaLabel,\n 'data-testid': dataTestId,\n}: SectionProps) {\n const generatedId = useId();\n const headingId = title ? `${id ?? generatedId}-title` : undefined;\n const hasHeader = Boolean(title || header);\n\n // `title` and `aria-label` are independently optional, so nothing in the type\n // system stops a caller from rendering a `<section>` landmark that screen\n // readers announce as just \"section\". Fail loudly in development rather than\n // shipping a silent a11y regression.\n if (import.meta.env.DEV && !title && !ariaLabel) {\n console.warn(\n '[BigConsole] Section: pass `title` or `aria-label` — a section landmark without an accessible name is announced with no context.'\n );\n }\n\n return (\n <section\n id={id}\n data-testid={dataTestId}\n data-section-emphasis={emphasis}\n data-section-tone={tone}\n aria-labelledby={headingId}\n aria-label={headingId ? undefined : ariaLabel}\n className={`${sectionSurfaceClasses(emphasis, tone, padding)} ${className ?? ''}`.trim()}\n >\n {hasHeader ? (\n <div className={headerClassName ?? (children ? 'mb-form-gap' : undefined)}>\n {title ? (\n <SectionHeader\n title={title}\n description={description}\n icon={icon}\n actions={actions}\n meta={meta}\n headingLevel={headingLevel}\n tone={tone}\n headingId={headingId}\n />\n ) : (\n header\n )}\n </div>\n ) : null}\n {children ? <div className={`min-w-0 ${bodyClassName ?? ''}`.trim()}>{children}</div> : null}\n </section>\n );\n});\n\nexport interface SectionStackProps {\n children: ReactNode;\n className?: string;\n}\n\n/**\n * Vertical rhythm container for sibling sections. Use it instead of ad-hoc\n * `space-y-6`, so section spacing tracks the workspace density setting.\n */\nexport const SectionStack = memo(function SectionStack({ children, className }: SectionStackProps) {\n return <div className={`${SECTION_STACK} ${className ?? ''}`.trim()}>{children}</div>;\n});\n"],"mappings":";;;;AAgEA,IAAa,IAAgB,EAAK,SAAuB,EACvD,UACA,gBACA,SACA,YACA,SACA,kBAAe,GACf,UAAO,WACP,cACA,gBACqB;CACrB,IAAM,IAAU,IAAI;AAEpB,QACE,kBAAC,OAAD;EACE,WAAW,+EAA+E,KAAa,KAAK,MAAM;YADpH,CAGE,kBAAC,OAAD;GAAK,WAAU;aAAf,CACG,IACC,kBAAC,QAAD;IAAM,eAAY;IAAO,WAAU;cAChC;IACI,CAAA,GACL,MACJ,kBAAC,OAAD;IAAK,WAAU;cAAf,CACE,kBAAC,OAAD;KAAK,WAAU;eAAf,CACE,kBAAC,GAAD;MAAS,IAAI;MAAW,WAAW,EAAoB,EAAK;gBACzD;MACO,CAAA,EACT,EACG;QACL,IAAc,kBAAC,KAAD;KAAG,WAAU;eAAoD;KAAgB,CAAA,GAAG,KAC/F;MACF;MACL,IAAU,kBAAC,OAAD;GAAK,WAAU;aAAwD;GAAc,CAAA,GAAG,KAC/F;;EAER,EAwCW,IAAU,EAAK,SAAiB,EAC3C,UACA,gBACA,SACA,YACA,SACA,kBAAe,GACf,cAAW,YACX,UAAO,WACP,aAAU,WACV,cACA,kBACA,oBACA,WACA,aACA,OACA,cAAc,GACd,eAAe,KACA;CACf,IAAM,IAAc,GAAO,EACrB,IAAY,IAAQ,GAAG,KAAM,EAAY,UAAU,KAAA,GACnD,IAAY,GAAQ,KAAS;AAYnC,QACE,kBAAC,WAAD;EACM;EACJ,eAAa;EACb,yBAAuB;EACvB,qBAAmB;EACnB,mBAAiB;EACjB,cAAY,IAAY,KAAA,IAAY;EACpC,WAAW,GAAG,EAAsB,GAAU,GAAM,EAAQ,CAAC,GAAG,KAAa,KAAK,MAAM;YAP1F,CASG,IACC,kBAAC,OAAD;GAAK,WAAW,MAAoB,IAAW,gBAAgB,KAAA;aAC5D,IACC,kBAAC,GAAD;IACS;IACM;IACP;IACG;IACH;IACQ;IACR;IACK;IACX,CAAA,GAEF;GAEE,CAAA,GACJ,MACH,IAAW,kBAAC,OAAD;GAAK,WAAW,WAAW,KAAiB,KAAK,MAAM;GAAG;GAAe,CAAA,GAAG,KAChF;;EAEZ,EAWW,IAAe,EAAK,SAAsB,EAAE,aAAU,gBAAgC;AACjG,QAAO,kBAAC,OAAD;EAAK,WAAW,GAAG,EAAc,GAAG,KAAa,KAAK,MAAM;EAAG;EAAe,CAAA;EACrF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/bigconsole/components/common/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACjE,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC1G,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,aAAa,EACb,qBAAqB,EACrB,mBAAmB,EACnB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,WAAW,GACjB,MAAM,iBAAiB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sectionStyles.d.ts","sourceRoot":"","sources":["../../../../src/bigconsole/components/common/sectionStyles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH;;;;;;;;;;GAUG;AACH,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,UAAU,GAAG,OAAO,GAAG,MAAM,CAAC;AAExE,iFAAiF;AACjF,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEhF,+EAA+E;AAC/E,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;AA0D5D;;;;GAIG;AACH,eAAO,MAAM,cAAc,qKACyI,CAAC;AAErK,gFAAgF;AAChF,eAAO,MAAM,kBAAkB,6IAC6G,CAAC;AAE7I,kEAAkE;AAClE,eAAO,MAAM,aAAa,kCAAkC,CAAC;AAE7D;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,GAAE,eAA4B,EACtC,IAAI,GAAE,WAAuB,EAC7B,OAAO,GAAE,cAA0B,GAClC,MAAM,CAmBR;AAED,4DAA4D;AAC5D,wBAAgB,mBAAmB,CAAC,IAAI,GAAE,WAAuB,GAAG,MAAM,CAEzE"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sectionStyles.js","names":[],"sources":["../../../../src/bigconsole/components/common/sectionStyles.ts"],"sourcesContent":["/**\n * Section emphasis — shared visual-hierarchy vocabulary for BigConsole (BOFF-5632).\n *\n * BigConsole screens are dense: a builder can stack a toolbar, a palette, a\n * canvas, an inspector, a preview and a status strip on one route. Before this\n * module every one of those blocks was drawn with the same weight, so nothing\n * told the eye where a section started or which one mattered. This file is the\n * single source of truth for that answer; `Section.tsx` renders it and every\n * module imports from there.\n *\n * ## Why the class recipes look the way they do\n *\n * The host shells (`bigconsole-app`, `admin-app`) register a *narrower*\n * `@theme` than `fe-libs/shared/styles/app-shell.css`. A Tailwind utility only\n * exists if its token key is in that shell registry, which makes three\n * otherwise reasonable choices silently emit **no CSS** (the same failure mode\n * as BOFF-5660's `state-*` classes):\n *\n * - `shadow-elevation-1` … `shadow-elevation-5` are not registered — the\n * elevation scale has to be reached through `shadow-[var(--shadow-…)]`.\n * - `--color-border-*` are registered as *hard-coded light hex*, so\n * `border-border-subtle` keeps a light border in dark mode. The arbitrary\n * form `border-[var(--color-border-subtle)]` re-resolves per theme.\n * - `status-{warning,info}-text` are not registered even though the CSS\n * variables exist per theme, so tones read their text colour through\n * `text-[var(--color-status-…-text)]`.\n *\n * Everything below therefore uses registered utilities where they exist and\n * `var()` arbitrary values where they do not. Both forms are theme-aware, so a\n * section keeps its meaning in light, dark and high-contrast themes.\n */\n\n/**\n * How much visual weight a section carries relative to its siblings.\n *\n * - `primary` — the one block the route exists for (the canvas, the generated\n * result, the test output). Raised surface + border + elevation shadow.\n * - `standard` — a normal grouped block: configuration, lists, forms.\n * - `muted` — supporting context that must stay readable but never compete:\n * metadata, raw payloads, help, secondary summaries. Recessed surface.\n * - `bare` — structural grouping only (header strips, toolbars, filter rows).\n * Contributes rhythm and a11y semantics, no surface of its own.\n */\nexport type SectionEmphasis = 'primary' | 'standard' | 'muted' | 'bare';\n\n/** Semantic colouring for state-carrying sections (banners, results, errors). */\nexport type SectionTone = 'neutral' | 'info' | 'success' | 'warning' | 'danger';\n\n/** Padding step. `none` is for sections that own their inner scroll/canvas. */\nexport type SectionPadding = 'none' | 'compact' | 'default';\n\n/**\n * Emphasis is split into STRUCTURE (geometry) and FILL (colour) so that a\n * section never carries two competing `bg-*` or `border-*` utilities.\n *\n * The obvious implementation — emit the emphasis surface, then append the tone\n * surface to override it — relies on the tone's utility winning the cascade.\n * Tailwind v4 orders utilities by their position in the generated stylesheet,\n * not by their order in the `class` attribute, so that override is an accident\n * of build output rather than a guarantee: it can invert silently on a Tailwind\n * upgrade and leave a danger banner painted like a neutral card. Composing\n * exactly one fill instead makes the outcome independent of stylesheet order.\n */\nconst EMPHASIS_STRUCTURE: Record<SectionEmphasis, string> = {\n primary: 'rounded-card border shadow-[var(--shadow-elevation-1)]',\n standard: 'rounded-card border',\n muted: 'rounded-card border',\n bare: '',\n};\n\n/** Neutral fill per emphasis level — used when no tone is set. */\nconst EMPHASIS_FILL: Record<Exclude<SectionEmphasis, 'bare'>, string> = {\n primary: 'border-[var(--color-border-subtle)] bg-bg-surface',\n standard: 'border-[var(--color-border-subtle)] bg-bg-surface',\n muted: 'border-transparent bg-bg-sunken',\n};\n\n/**\n * Tone fills replace the emphasis fill (they are alternatives, never additions)\n * so a status section reads as status first while keeping its emphasis\n * geometry. `bare` has no surface at all, so a tone on `bare` colours nothing —\n * callers wanting a coloured banner use `muted`/`standard`.\n */\nconst TONE_SURFACE: Record<Exclude<SectionTone, 'neutral'>, string> = {\n info: 'border-[var(--color-status-info-border)] bg-[var(--color-status-info-bgSubtle)]',\n success: 'border-[var(--color-status-success-border)] bg-[var(--color-status-success-bgSubtle)]',\n warning: 'border-[var(--color-status-warning-border)] bg-[var(--color-status-warning-bgSubtle)]',\n danger: 'border-[var(--color-status-error-border)] bg-[var(--color-status-error-bgSubtle)]',\n};\n\n/** Title colour per tone — the neutral case inherits the normal heading colour. */\nconst TONE_TITLE: Record<SectionTone, string> = {\n neutral: 'text-text-primary',\n info: 'text-[var(--color-status-info-text)]',\n success: 'text-[var(--color-status-success-text)]',\n warning: 'text-[var(--color-status-warning-text)]',\n danger: 'text-[var(--color-status-error-text)]',\n};\n\nconst PADDING: Record<SectionPadding, string> = {\n none: '',\n // `--spacing-control-gap` and `--spacing-card-padding` both track\n // `data-density`, so compact/comfortable/spacious users keep their rhythm.\n compact: 'p-control-gap',\n default: 'p-card-padding',\n};\n\n/**\n * Transitions are opt-in through `motion-safe:` so the OS \"reduce motion\"\n * setting removes them; the shell's `data-reduce-motion` attribute neutralises\n * whatever survives. Only colour/shadow animate — never layout.\n */\nexport const SECTION_MOTION =\n 'motion-safe:transition-[box-shadow,border-color,background-color] motion-safe:duration-[var(--motion-duration-fast)] motion-safe:ease-[var(--motion-easing-out)]';\n\n/** Focus ring used when a section itself is focusable (collapsible headers). */\nexport const SECTION_FOCUS_RING =\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-bg-surface';\n\n/** Vertical rhythm between sibling sections. Density-reactive. */\nexport const SECTION_STACK = 'flex flex-col gap-section-gap';\n\n/**\n * Composes the container classes for a section.\n *\n * `min-w-0` is always applied: BigConsole sections routinely host tables, JSON\n * previews and node canvases, and without it a flex/grid child refuses to\n * shrink and pushes the page into horizontal scroll on tablet and mobile.\n */\nexport function sectionSurfaceClasses(\n emphasis: SectionEmphasis = 'standard',\n tone: SectionTone = 'neutral',\n padding: SectionPadding = 'default'\n): string {\n const parts = ['min-w-0'];\n\n if (emphasis === 'bare') {\n // A tone is a fill, and `bare` has no surface to fill — asking for\n // `emphasis=\"bare\" tone=\"danger\"` silently produces an uncoloured section,\n // which reads as a styling bug rather than a deliberate choice. Say so.\n if (import.meta.env.DEV && tone !== 'neutral') {\n console.warn(\n `[BigConsole] Section: tone=\"${tone}\" is ignored on emphasis=\"bare\" — a tone needs a surface. Use \"muted\" or \"standard\" for a coloured banner.`\n );\n }\n if (padding !== 'default') parts.push(PADDING[padding]);\n } else {\n const fill = tone === 'neutral' ? EMPHASIS_FILL[emphasis] : TONE_SURFACE[tone];\n parts.push(EMPHASIS_STRUCTURE[emphasis], fill, PADDING[padding], SECTION_MOTION);\n }\n\n return parts.filter(Boolean).join(' ');\n}\n\n/** Title classes for a section header at the given tone. */\nexport function sectionTitleClasses(tone: SectionTone = 'neutral'): string {\n return `text-sm font-semibold leading-tight tracking-tight ${TONE_TITLE[tone]}`;\n}\n"],"mappings":";AA+DA,IAAM,IAAsD;CAC1D,SAAS;CACT,UAAU;CACV,OAAO;CACP,MAAM;CACP,EAGK,IAAkE;CACtE,SAAS;CACT,UAAU;CACV,OAAO;CACR,EAQK,IAAgE;CACpE,MAAM;CACN,SAAS;CACT,SAAS;CACT,QAAQ;CACT,EAGK,IAA0C;CAC9C,SAAS;CACT,MAAM;CACN,SAAS;CACT,SAAS;CACT,QAAQ;CACT,EAEK,IAA0C;CAC9C,MAAM;CAGN,SAAS;CACT,SAAS;CACV,EAOY,IACX,oKAGW,IACX,4IAGW,IAAgB;AAS7B,SAAgB,EACd,IAA4B,YAC5B,IAAoB,WACpB,IAA0B,WAClB;CACR,IAAM,IAAQ,CAAC,UAAU;AAEzB,KAAI,MAAa,QASX,MAAY,aAAW,EAAM,KAAK,EAAQ,GAAS;MAClD;EACL,IAAM,IAAO,MAAS,YAAY,EAAc,KAAY,EAAa;AACzE,IAAM,KAAK,EAAmB,IAAW,GAAM,EAAQ,IAAU,EAAe;;AAGlF,QAAO,EAAM,OAAO,QAAQ,CAAC,KAAK,IAAI;;AAIxC,SAAgB,EAAoB,IAAoB,WAAmB;AACzE,QAAO,sDAAsD,EAAW"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CreateDashboardDialog.d.ts","sourceRoot":"","sources":["../../../../src/bigconsole/components/dashboard/CreateDashboardDialog.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,KAAK,EAAE,EAAsE,MAAM,OAAO,CAAC;AA6BpG,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,CAAC,IAAI,EAAE;QACf,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,iDAAiD;IACjD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,CAAC,MAAM,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,kBAAkB,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CAC7F;AAQD,eAAO,MAAM,qBAAqB,EAAE,EAAE,CAAC,0BAA0B,CA+qB/D,CAAC;AAEH,eAAe,qBAAqB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CreateDashboardDialog.js","names":[],"sources":["../../../../src/bigconsole/components/dashboard/CreateDashboardDialog.tsx"],"sourcesContent":["/**\n * CreateDashboardDialog Component\n *\n * Modal dialog for creating a new dashboard with name and description.\n * Uses fe-libs shared UI components and semantic tokens for consistent styling.\n * Phase 2: Added TemplatePicker integration for creating from templates.\n */\n\nimport { type FC, memo, useState, useCallback, useEffect, useRef, type KeyboardEvent } from 'react';\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n} from '@burdenoff/fe-libs/ui';\nimport { Button } from '@burdenoff/fe-libs/ui';\nimport { Input } from '@burdenoff/fe-libs/ui';\nimport { Textarea } from '@burdenoff/fe-libs/ui';\nimport { Spinner } from '@burdenoff/fe-libs/ui';\nimport { Badge } from '@burdenoff/fe-libs/ui';\nimport { Plus, LayoutDashboard, Copy, X, Tag } from 'lucide-react';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport { StoreTemplatePicker } from './StoreTemplatePicker';\nimport { TemplateInstallOptions } from './TemplateInstallOptions';\nimport { TemplateLayoutPreview } from './TemplateLayoutPreview';\nimport { templateInputDefaults, templateInputError } from '../../utils/templateInstallInputs';\nimport type { DashboardTemplateContent } from '../../hooks/useStoreDashboardTemplates';\nimport { useActiveContext } from '@burdenoff/fe-libs/shared/providers/shell/ActiveContextProvider';\nimport { Section } from '../common';\nimport { useStoreDashboardTemplates, type StoreDashboardTemplate } from '../../hooks/useStoreDashboardTemplates';\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface CreateDashboardDialogProps {\n isOpen: boolean;\n isCreating?: boolean;\n onClose: () => void;\n onCreate: (data: {\n name: string;\n description: string;\n category: string;\n tags?: string[];\n templateId?: string;\n }) => void | Promise<void>;\n /** Whether to show the template picker option */\n showTemplates?: boolean;\n /**\n * Called after a store template has been installed. Receives the new\n * dashboard id and how many widgets still need a data source, so the host can\n * navigate and surface the \"connect your data\" prompts.\n */\n onTemplateInstalled?: (result: { dashboardId: string; widgetsNeedingData: number }) => void;\n}\n\ntype CreateMode = 'blank' | 'template';\n\n// ============================================================================\n// Component\n// ============================================================================\n\nexport const CreateDashboardDialog: FC<CreateDashboardDialogProps> = memo(function CreateDashboardDialog({\n isOpen,\n isCreating = false,\n onClose,\n onCreate,\n showTemplates = true,\n onTemplateInstalled,\n}) {\n const { t } = useI18n();\n const {\n templates,\n loading: templatesLoading,\n error: templatesError,\n fetchTemplateContent,\n installTemplate,\n } = useStoreDashboardTemplates({ autoLoad: showTemplates });\n const [installing, setInstalling] = useState(false);\n const { workspaceId } = useActiveContext();\n const activeWorkspaceRef = useRef(workspaceId);\n activeWorkspaceRef.current = workspaceId;\n const [templateContent, setTemplateContent] = useState<DashboardTemplateContent | null>(null);\n const [contentOwner, setContentOwner] = useState<string | null>(null);\n const [contentLoading, setContentLoading] = useState(false);\n const [dataSinkBindings, setDataSinkBindings] = useState<Record<string, string>>({});\n const [inputValues, setInputValues] = useState<Record<string, unknown>>({});\n const [mode, setMode] = useState<CreateMode>('blank');\n const [name, setName] = useState('');\n const [description, setDescription] = useState('');\n const [tags, setTags] = useState<string[]>([]);\n const [tagInput, setTagInput] = useState('');\n const [selectedTemplate, setSelectedTemplate] = useState<StoreDashboardTemplate | null>(null);\n const [error, setError] = useState<string | null>(null);\n const nameInputRef = useRef<HTMLInputElement>(null);\n const ownedContent = contentOwner === `${selectedTemplate?.id}:${workspaceId}` ? templateContent : null;\n\n // Reset form when dialog opens\n useEffect(() => {\n if (isOpen) {\n setMode('blank');\n setName('');\n setDescription('');\n setTags([]);\n setTagInput('');\n setSelectedTemplate(null);\n setError(null);\n setTimeout(() => {\n nameInputRef.current?.focus();\n }, 100);\n }\n }, [isOpen]);\n\n // Handle adding a tag\n const handleAddTag = useCallback(() => {\n const trimmedTag = tagInput.trim().toLowerCase();\n if (trimmedTag && !tags.includes(trimmedTag) && tags.length < 10) {\n setTags((prev) => [...prev, trimmedTag]);\n setTagInput('');\n }\n }, [tagInput, tags]);\n\n useEffect(() => {\n let cancelled = false;\n setTemplateContent(null);\n setDataSinkBindings({});\n setInputValues({});\n setContentLoading(Boolean(selectedTemplate));\n if (!selectedTemplate || !isOpen) return;\n void fetchTemplateContent(selectedTemplate.id).then((content) => {\n if (cancelled) return;\n setTemplateContent(content);\n setContentOwner(`${selectedTemplate.id}:${workspaceId}`);\n setContentLoading(false);\n setInputValues(content ? templateInputDefaults(content.requiredInputs) : {});\n if (!content)\n setError(\n t(\n 'bigconsole.dashboards.createDialog.error.noDefinition',\n 'This template has no dashboard definition attached and cannot be installed.'\n )\n );\n });\n return () => {\n cancelled = true;\n };\n }, [selectedTemplate, fetchTemplateContent, workspaceId, isOpen, t]);\n\n // Handle removing a tag\n const handleRemoveTag = useCallback((tagToRemove: string) => {\n setTags((prev) => prev.filter((tag) => tag !== tagToRemove));\n }, []);\n\n // Handle tag input key press\n const handleTagKeyDown = useCallback(\n (e: KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Enter') {\n e.preventDefault();\n handleAddTag();\n } else if (e.key === 'Backspace' && !tagInput && tags.length > 0) {\n // Remove last tag when backspace is pressed on empty input\n setTags((prev) => prev.slice(0, -1));\n }\n },\n [handleAddTag, tagInput, tags.length]\n );\n\n // Handle template selection\n const handleTemplateSelect = useCallback((template: StoreDashboardTemplate) => {\n setSelectedTemplate(template);\n setError(null);\n // Pre-fill name and description from template\n setName(template.name);\n setDescription(template.description || '');\n }, []);\n\n // Handle form submission\n const handleSubmit = useCallback(\n async (e: React.FormEvent) => {\n e.preventDefault();\n\n // For template mode without selection, show error\n if (mode === 'template' && !selectedTemplate) {\n setError(t('bigconsole.dashboards.createDialog.error.selectTemplate', 'Please select a template'));\n return;\n }\n\n const trimmedName = name.trim();\n if (!trimmedName) {\n setError(t('bigconsole.dashboards.createDialog.error.nameRequired', 'Dashboard name is required'));\n nameInputRef.current?.focus();\n return;\n }\n\n if (trimmedName.length < 3) {\n setError(\n t('bigconsole.dashboards.createDialog.error.nameTooShort', 'Dashboard name must be at least 3 characters')\n );\n nameInputRef.current?.focus();\n return;\n }\n\n if (trimmedName.length > 100) {\n setError(\n t('bigconsole.dashboards.createDialog.error.nameTooLong', 'Dashboard name must be less than 100 characters')\n );\n nameInputRef.current?.focus();\n return;\n }\n\n setError(null);\n\n // Store templates are installed here rather than through onCreate: the\n // install carries data-sink bindings and returns which slots are still\n // unconnected, neither of which the plain create path models.\n if (mode === 'template' && selectedTemplate) {\n setInstalling(true);\n try {\n const content = await fetchTemplateContent(selectedTemplate.id);\n if (activeWorkspaceRef.current !== workspaceId) {\n setError(\n t(\n 'bigconsole.dashboards.templateSetup.workspaceChanged',\n 'The workspace changed. Review the template setup before creating your dashboard.'\n )\n );\n return;\n }\n if (!content) {\n setError(\n t(\n 'bigconsole.dashboards.createDialog.error.noDefinition',\n 'This template has no dashboard definition attached and cannot be installed.'\n )\n );\n return;\n }\n\n const inputError = templateInputError(content.requiredInputs, inputValues, t);\n if (inputError) {\n setError(inputError);\n return;\n }\n const result = await installTemplate({\n templateId: selectedTemplate.id,\n templateName: selectedTemplate.name,\n content,\n name: trimmedName,\n description: description.trim(),\n tags,\n dataSinkBindings: Object.entries(dataSinkBindings)\n .filter(([, id]) => id)\n .map(([slot, dataSinkId]) => ({ slot, dataSinkId })),\n inputValues,\n });\n\n if (!result.success) {\n setError(\n result.errorMessage ??\n t('bigconsole.dashboards.createDialog.error.installFailed', 'Failed to create dashboard from template.')\n );\n return;\n }\n\n if (result.dashboardId) {\n onTemplateInstalled?.({\n dashboardId: result.dashboardId,\n widgetsNeedingData: result.widgetsNeedingData,\n });\n }\n onClose();\n } catch (err) {\n setError(\n err instanceof Error\n ? err.message\n : t('bigconsole.dashboards.createDialog.error.installFailed', 'Failed to create dashboard from template.')\n );\n } finally {\n setInstalling(false);\n }\n return;\n }\n\n try {\n await onCreate({\n name: trimmedName,\n description: description.trim(),\n category: 'CUSTOM',\n tags: tags.length > 0 ? tags : undefined,\n });\n } catch (err) {\n setError(\n err instanceof Error\n ? err.message\n : t(\n 'bigconsole.dashboards.createDialog.error.createFailed',\n 'Failed to create dashboard. Please try again.'\n )\n );\n }\n },\n [\n name,\n description,\n tags,\n mode,\n selectedTemplate,\n workspaceId,\n dataSinkBindings,\n inputValues,\n onCreate,\n onClose,\n fetchTemplateContent,\n installTemplate,\n onTemplateInstalled,\n t,\n ]\n );\n\n return (\n <Dialog open={isOpen} onOpenChange={(open) => !open && !isCreating && !installing && onClose()}>\n <DialogContent style={{ maxWidth: mode === 'template' ? '900px' : '480px', width: '100%', padding: 0 }}>\n {/* Header */}\n <DialogHeader style={{ padding: 'var(--space-pagePadding) var(--space-pagePadding) 0' }}>\n <div style={{ display: 'flex', alignItems: 'center', gap: 'var(--space-formGap)' }}>\n <div\n style={{\n display: 'flex',\n height: 'var(--size-controlHeight-lg)',\n width: 'var(--size-controlHeight-lg)',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n borderRadius: 'var(--radius-card)',\n backgroundColor: 'var(--color-bg-accentSubtle)',\n }}\n >\n <LayoutDashboard\n aria-hidden=\"true\"\n style={{\n height: 'var(--size-icon-lg)',\n width: 'var(--size-icon-lg)',\n color: 'var(--color-action-primary-bg)',\n }}\n />\n </div>\n <div>\n <DialogTitle\n style={{\n fontSize: 'var(--font-size-heading-h4)',\n fontWeight: 'var(--font-weight-bold)',\n color: 'var(--color-text-primary)',\n margin: 0,\n }}\n >\n {t('bigconsole.dashboards.createDialog.title', 'Create New Dashboard')}\n </DialogTitle>\n <DialogDescription\n style={{\n fontSize: 'var(--font-size-body-sm)',\n color: 'var(--color-text-secondary)',\n margin: 'var(--space-controlGap) 0 0 0',\n }}\n >\n {t('bigconsole.dashboards.createDialog.subtitle', 'Create a new dashboard to visualize your data')}\n </DialogDescription>\n </div>\n </div>\n </DialogHeader>\n\n <form onSubmit={handleSubmit}>\n {/* Mode Selection Tabs */}\n {showTemplates && (\n <div style={{ padding: 'var(--space-pagePadding) var(--space-pagePadding) 0' }}>\n <div\n role=\"group\"\n aria-label=\"How to start\"\n style={{\n display: 'flex',\n flexWrap: 'wrap',\n gap: 'var(--space-controlGap)',\n padding: 'var(--space-controlGap)',\n backgroundColor: 'var(--color-bg-sunken)',\n borderRadius: 'var(--radius-button)',\n }}\n >\n <button\n type=\"button\"\n disabled={isCreating || installing}\n onClick={() => {\n setMode('blank');\n setSelectedTemplate(null);\n }}\n style={{\n flex: 1,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n gap: 'var(--space-iconGap)',\n padding: 'var(--space-controlGap) var(--space-formGap)',\n borderRadius: 'var(--radius-button)',\n border: 'none',\n backgroundColor: mode === 'blank' ? 'var(--color-bg-surface)' : 'transparent',\n color: mode === 'blank' ? 'var(--color-text-primary)' : 'var(--color-text-secondary)',\n fontWeight: mode === 'blank' ? 'var(--font-weight-semibold)' : 'var(--font-weight-regular)',\n fontSize: 'var(--font-size-body-sm)',\n cursor: 'pointer',\n boxShadow: mode === 'blank' ? 'var(--shadow-elevation-1)' : 'none',\n transition: 'all 0.15s ease',\n }}\n >\n <Plus style={{ height: 'var(--size-icon-sm)', width: 'var(--size-icon-sm)' }} />\n {t('bigconsole.dashboards.createDialog.tab.blank', 'Blank Dashboard')}\n </button>\n <button\n type=\"button\"\n disabled={isCreating || installing}\n onClick={() => setMode('template')}\n style={{\n flex: 1,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n gap: 'var(--space-iconGap)',\n padding: 'var(--space-controlGap) var(--space-formGap)',\n borderRadius: 'var(--radius-button)',\n border: 'none',\n backgroundColor: mode === 'template' ? 'var(--color-bg-surface)' : 'transparent',\n color: mode === 'template' ? 'var(--color-text-primary)' : 'var(--color-text-secondary)',\n fontWeight: mode === 'template' ? 'var(--font-weight-semibold)' : 'var(--font-weight-regular)',\n fontSize: 'var(--font-size-body-sm)',\n cursor: 'pointer',\n boxShadow: mode === 'template' ? 'var(--shadow-elevation-1)' : 'none',\n transition: 'all 0.15s ease',\n }}\n >\n <Copy style={{ height: 'var(--size-icon-sm)', width: 'var(--size-icon-sm)' }} />\n {t('bigconsole.dashboards.createDialog.tab.template', 'From Template')}\n </button>\n </div>\n </div>\n )}\n\n {/* Template Picker (when in template mode) */}\n {mode === 'template' && (\n <div style={{ padding: 'var(--space-pagePadding)', maxHeight: '400px', overflowY: 'auto' }}>\n <StoreTemplatePicker\n templates={templates}\n loading={templatesLoading}\n error={templatesError}\n selectedTemplateId={selectedTemplate?.id}\n onSelect={handleTemplateSelect}\n />\n </div>\n )}\n\n {mode === 'template' && selectedTemplate && (\n <div style={{ padding: 'var(--space-pagePadding)' }}>\n {contentLoading && <Spinner />}\n {ownedContent && (\n <>\n <TemplateLayoutPreview content={ownedContent} />\n <TemplateInstallOptions\n content={ownedContent}\n bindings={dataSinkBindings}\n onBindingChange={(slot, id) => setDataSinkBindings((current) => ({ ...current, [slot]: id }))}\n inputValues={inputValues}\n onInputChange={(name, value) => setInputValues((current) => ({ ...current, [name]: value }))}\n disabled={isCreating || installing}\n />\n </>\n )}\n </div>\n )}\n\n {/* Form Content */}\n <div style={{ padding: 'var(--space-pagePadding)' }}>\n {/*\n The fields carry no surface of their own — the dialog is already a\n raised surface — but they still need a name, so the group is a `bare`\n section. It gives the form a heading screen readers can land on and\n tells the eye where the template picker ends and the form begins.\n */}\n <Section\n headingLevel={3}\n emphasis=\"bare\"\n padding=\"none\"\n title=\"Dashboard details\"\n description=\"Name it now — everything else can change later.\"\n data-testid=\"create-dashboard-details\"\n >\n {/* Name Field */}\n <div style={{ marginBottom: 'var(--space-formGap)' }}>\n <label\n htmlFor=\"dashboard-name\"\n style={{\n display: 'block',\n fontSize: 'var(--font-size-body-sm)',\n fontWeight: 'var(--font-weight-semibold)',\n color: 'var(--color-text-primary)',\n marginBottom: 'var(--space-controlGap)',\n }}\n >\n {t('bigconsole.dashboards.createDialog.field.name', 'Dashboard Name')}\n <span style={{ color: 'var(--color-status-error-text)', marginLeft: 'var(--space-controlGap)' }}>\n *\n </span>\n </label>\n <Input\n ref={nameInputRef}\n id=\"dashboard-name\"\n type=\"text\"\n value={name}\n onChange={(e) => {\n setName(e.target.value);\n if (error) setError(null);\n }}\n placeholder={t('bigconsole.dashboards.createDialog.field.namePlaceholder', 'Enter dashboard name')}\n disabled={isCreating || installing}\n style={{\n height: 'var(--size-controlHeight-md)',\n fontSize: 'var(--font-size-body-sm)',\n borderColor: error ? 'var(--color-status-error-border)' : undefined,\n }}\n />\n {error && (\n <p\n style={{\n fontSize: 'var(--font-size-body-sm)',\n color: 'var(--color-status-error-text)',\n marginTop: 'var(--space-controlGap)',\n fontWeight: 'var(--font-weight-medium)',\n }}\n >\n {error}\n </p>\n )}\n </div>\n\n {/* Description Field */}\n <div style={{ marginBottom: 'var(--space-formGap)' }}>\n <label\n htmlFor=\"dashboard-description\"\n style={{\n display: 'block',\n fontSize: 'var(--font-size-body-sm)',\n fontWeight: 'var(--font-weight-semibold)',\n color: 'var(--color-text-primary)',\n marginBottom: 'var(--space-controlGap)',\n }}\n >\n {t('bigconsole.dashboards.createDialog.field.description', 'Description')}\n <span\n style={{\n color: 'var(--color-text-muted)',\n fontWeight: 'var(--font-weight-regular)',\n marginLeft: 'var(--space-controlGap)',\n }}\n >\n {t('bigconsole.dashboards.createDialog.field.optional', '(optional)')}\n </span>\n </label>\n <Textarea\n id=\"dashboard-description\"\n value={description}\n onChange={(e) => setDescription(e.target.value)}\n placeholder={t(\n 'bigconsole.dashboards.createDialog.field.descriptionPlaceholder',\n 'Enter a brief description for this dashboard'\n )}\n rows={3}\n disabled={isCreating || installing}\n style={{\n fontSize: 'var(--font-size-body-sm)',\n resize: 'none',\n }}\n />\n </div>\n\n {/* Tags Field */}\n <div>\n <label\n htmlFor=\"dashboard-tags\"\n style={{\n display: 'flex',\n alignItems: 'center',\n gap: 'var(--space-iconGap)',\n fontSize: 'var(--font-size-body-sm)',\n fontWeight: 'var(--font-weight-semibold)',\n color: 'var(--color-text-primary)',\n marginBottom: 'var(--space-controlGap)',\n }}\n >\n <Tag style={{ height: 'var(--size-icon-sm)', width: 'var(--size-icon-sm)' }} />\n {t('bigconsole.dashboards.createDialog.field.tags', 'Tags')}\n <span\n style={{\n color: 'var(--color-text-muted)',\n fontWeight: 'var(--font-weight-regular)',\n }}\n >\n {t('bigconsole.dashboards.createDialog.field.tagsOptional', '(optional, max 10)')}\n </span>\n </label>\n {/* Tag chips display */}\n {tags.length > 0 && (\n <div\n style={{\n display: 'flex',\n flexWrap: 'wrap',\n gap: 'var(--space-controlGap)',\n marginBottom: 'var(--space-controlGap)',\n }}\n >\n {tags.map((tag) => (\n <Badge\n key={tag}\n variant=\"secondary\"\n style={{\n display: 'flex',\n alignItems: 'center',\n gap: '4px',\n paddingRight: '4px',\n }}\n >\n {tag}\n <button\n type=\"button\"\n onClick={() => handleRemoveTag(tag)}\n disabled={isCreating || installing}\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n background: 'none',\n border: 'none',\n cursor: 'pointer',\n padding: '2px',\n borderRadius: '50%',\n color: 'inherit',\n opacity: 0.7,\n }}\n onMouseOver={(e) => (e.currentTarget.style.opacity = '1')}\n onMouseOut={(e) => (e.currentTarget.style.opacity = '0.7')}\n >\n <X style={{ height: '12px', width: '12px' }} />\n </button>\n </Badge>\n ))}\n </div>\n )}\n {/* Tag input */}\n <div style={{ display: 'flex', gap: 'var(--space-controlGap)' }}>\n <Input\n id=\"dashboard-tags\"\n type=\"text\"\n value={tagInput}\n onChange={(e) => setTagInput(e.target.value)}\n onKeyDown={handleTagKeyDown}\n placeholder={\n tags.length >= 10\n ? t('bigconsole.dashboards.createDialog.field.tagsMaxReached', 'Max tags reached')\n : t(\n 'bigconsole.dashboards.createDialog.field.tagsInputPlaceholder',\n 'Type a tag and press Enter'\n )\n }\n disabled={isCreating || installing || tags.length >= 10}\n style={{\n flex: 1,\n height: 'var(--size-controlHeight-md)',\n fontSize: 'var(--font-size-body-sm)',\n }}\n />\n <Button\n type=\"button\"\n variant=\"outline\"\n onClick={handleAddTag}\n disabled={isCreating || installing || !tagInput.trim() || tags.length >= 10}\n style={{ height: 'var(--size-controlHeight-md)' }}\n >\n {t('bigconsole.dashboards.createDialog.action.addTag', 'Add')}\n </Button>\n </div>\n <p\n style={{\n // `--font-size-body-xs` is not a real token — the declaration is\n // dropped and the hint inherits body size. `--font-size-xs` is.\n fontSize: 'var(--font-size-xs)',\n color: 'var(--color-text-muted)',\n marginTop: 'var(--space-controlGap)',\n }}\n >\n {t('bigconsole.dashboards.createDialog.field.tagsHelp', 'Press Enter to add a tag, or click Add')}\n </p>\n </div>\n </Section>\n </div>\n\n {/* Footer */}\n <DialogFooter\n style={{\n padding: 'var(--space-formGap) var(--space-pagePadding)',\n borderTop: '1px solid var(--color-border)',\n backgroundColor: 'var(--color-bg-sunken)',\n display: 'flex',\n justifyContent: 'flex-end',\n gap: 'var(--space-controlGap)',\n }}\n >\n <Button\n type=\"button\"\n variant=\"outline\"\n onClick={onClose}\n disabled={isCreating || installing}\n style={{ height: 'var(--size-controlHeight-md)' }}\n >\n {t('bigconsole.dashboards.createDialog.action.cancel', 'Cancel')}\n </Button>\n <Button\n type=\"submit\"\n disabled={\n isCreating ||\n installing ||\n !name.trim() ||\n (mode === 'template' && (!selectedTemplate || !ownedContent || contentLoading))\n }\n style={{\n height: 'var(--size-controlHeight-md)',\n backgroundColor: 'var(--color-action-primary-bg)',\n }}\n >\n {isCreating || installing ? (\n <span style={{ display: 'flex', alignItems: 'center', gap: 'var(--space-iconGap)' }}>\n <Spinner style={{ height: 'var(--size-icon-sm)', width: 'var(--size-icon-sm)' }} />\n {t('bigconsole.dashboards.createDialog.action.creating', 'Creating...')}\n </span>\n ) : (\n <span style={{ display: 'flex', alignItems: 'center', gap: 'var(--space-iconGap)' }}>\n <Plus style={{ height: 'var(--size-icon-sm)', width: 'var(--size-icon-sm)' }} />\n {t('bigconsole.dashboards.createDialog.action.create', 'Create Dashboard')}\n </span>\n )}\n </Button>\n </DialogFooter>\n </form>\n </DialogContent>\n </Dialog>\n );\n});\n\nexport default CreateDashboardDialog;\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DashboardCanvas.d.ts","sourceRoot":"","sources":["../../../../src/bigconsole/components/dashboard/DashboardCanvas.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,KAAK,EAAE,EAA2D,MAAM,OAAO,CAAC;AAsBzF,OAAO,EAAmB,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAc3E,MAAM,WAAW,oBAAoB;IACnC,mBAAmB;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,oCAAoC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sBAAsB;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+BAA+B;IAC/B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,uCAAuC;IACvC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,kCAAkC;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mCAAmC;IACnC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,0CAA0C;IAC1C,KAAK,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC3B,qBAAqB;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iCAAiC;IACjC,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,wCAAwC;IACxC,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,EAAE,KAAK,IAAI,CAAC;IACrD,kCAAkC;IAClC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,oCAAoC;IACpC,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACzD,uCAAuC;IACvC,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,oCAAoC;IACpC,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,yCAAyC;IACzC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,gCAAgC;IAChC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,uEAAuE;IACvE,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAmBD,eAAO,MAAM,eAAe,EAAE,EAAE,CAAC,oBAAoB,CAqmBnD,CAAC;AAEH,eAAe,eAAe,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DashboardCanvas.js","names":[],"sources":["../../../../src/bigconsole/components/dashboard/DashboardCanvas.tsx"],"sourcesContent":["/**\n * DashboardCanvas Component\n *\n * Main canvas for dashboard with grid layout and widget rendering.\n * Phase 2: Added GlobalFiltersBar and PageTabsManager integration.\n * Phase 3: Added WidgetPalette sidebar for drag-and-drop widget creation.\n */\n\nimport { type FC, memo, useRef, useState, useCallback, useEffect, useMemo } from 'react';\nimport { Button } from '@burdenoff/fe-libs/ui';\nimport { Plus } from 'lucide-react';\nimport type { Layout } from 'react-grid-layout';\nimport { usePermissions } from '@burdenoff/fe-libs/shared/providers/shell';\nimport type { DashboardVisibility, Widget, WidgetType } from '../../types';\nimport { BIGCONSOLE_PERMISSIONS } from '../../../constants/permissions';\nimport { useDashboardStore, useWidgetStore } from '../../store';\nimport { useDashboardOperations } from '../../hooks/useDashboardOperations';\nimport { useWidgetOperations } from '../../hooks/useWidgetOperations';\nimport { useInstalledWidgets } from '../../hooks/useInstalledWidgets';\nimport { useWidgetCatalog } from '../../hooks/useWidgetCatalog';\nimport { useDashboardImageExport } from '../../hooks/useDashboardImageExport';\nimport { useBigConsole } from '../../context';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport { Section } from '../common';\nimport { DashboardGrid } from './DashboardGrid';\nimport { loadBigConsoleSettings } from '../../hooks/useBigConsoleSettings';\nimport { DashboardToolbar } from './DashboardToolbar';\nimport { GlobalFiltersBar } from './GlobalFiltersBar';\nimport { LiveBoardBanner } from './LiveBoardBanner';\nimport { TemplateSetupBanner } from './TemplateSetupBanner';\nimport { PageTabsManager, type DashboardPageTab } from './PageTabsManager';\nimport { ShareDialog } from './ShareDialog';\nimport { WidgetPalette } from './WidgetPalette';\nimport { WidgetInspector } from '../builder';\nimport { getWidgetDefinition, type WidgetDefinition } from '../widgets/WidgetRegistry';\n// Phase 2: Cross-filtering context\nimport { CrossFilterProvider } from '../../contexts';\n// Smart widget positioning\nimport { findNextAvailablePosition, calculatePositionFromDrop } from '../../utils/widgetPositioning';\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface DashboardCanvasProps {\n /** Dashboard ID */\n dashboardId: string;\n /** Page ID (for loading widgets) */\n pageId?: string;\n /** Dashboard title */\n title?: string;\n /** Callback to paste widget */\n onPaste?: () => void;\n /** Callback when dashboard is saved */\n onSave?: () => void;\n /** Whether save is in progress */\n isSaving?: boolean;\n /** Callback to export dashboard */\n onExport?: () => void;\n onPublishTemplate?: () => void;\n /** Dashboard pages for PageTabsManager */\n pages?: DashboardPageTab[];\n /** Active page ID */\n activePageId?: string;\n /** Callback when page changes */\n onPageChange?: (pageId: string) => void;\n /** Callback when pages are reordered */\n onPagesReorder?: (pages: DashboardPageTab[]) => void;\n /** Callback when page is added */\n onPageAdd?: () => void;\n /** Callback when page is renamed */\n onPageRename?: (pageId: string, newName: string) => void;\n /** Callback when page is duplicated */\n onPageDuplicate?: (pageId: string) => void;\n /** Callback when page is deleted */\n onPageDelete?: (pageId: string) => void;\n /** Whether to show global filters bar */\n showFilters?: boolean;\n /** Whether to show page tabs */\n showPageTabs?: boolean;\n /** Whether to enable cross-filtering (widget clicks update filters) */\n enableCrossFilter?: boolean;\n}\n\ninterface WidgetPlacement {\n position: { x: number; y: number; width: number; height: number };\n definition?: WidgetDefinition | null;\n}\n\ninterface PaletteDropData {\n type: WidgetType;\n name?: string;\n category?: WidgetDefinition['category'];\n defaultConfig?: Record<string, unknown>;\n defaultSize?: WidgetDefinition['defaultSize'];\n}\n\n// ============================================================================\n// Component\n// ============================================================================\n\nexport const DashboardCanvas: FC<DashboardCanvasProps> = memo(function DashboardCanvas({\n dashboardId,\n pageId,\n title,\n onPaste,\n onSave,\n isSaving = false,\n onExport,\n onPublishTemplate,\n pages = [],\n activePageId,\n onPageChange,\n onPagesReorder,\n onPageAdd,\n onPageRename,\n onPageDuplicate,\n onPageDelete,\n showFilters = true,\n showPageTabs = true,\n enableCrossFilter = true,\n}) {\n const { t } = useI18n();\n const containerRef = useRef<HTMLDivElement>(null);\n // Inner board element (the grid surface) — rasterized for PNG/PDF board-pack export.\n const boardRef = useRef<HTMLDivElement>(null);\n const [containerWidth, setContainerWidth] = useState(1200);\n const [isShareDialogOpen, setIsShareDialogOpen] = useState(false);\n const [widgetCreateError, setWidgetCreateError] = useState<string | null>(null);\n const [isDraggingWidget, setIsDraggingWidget] = useState(false);\n const [dragWidgetType, setDragWidgetType] = useState<WidgetType | null>(null);\n /**\n * Locally confirmed general-access level, keyed by the dashboard it belongs\n * to. Kept out of the dashboard store on purpose: `setCurrentDashboard` also\n * resets the active page and clears undo history, which changing a share\n * setting must not do.\n */\n const [visibilityOverride, setVisibilityOverride] = useState<{ id: string; value: DashboardVisibility } | null>(null);\n\n // Store state\n const isEditMode = useDashboardStore((state) => state.viewMode === 'edit');\n const currentDashboard = useDashboardStore((state) => state.currentDashboard);\n const gridColumns = currentDashboard?.pages.find((page) => page.id === pageId)?.gridColumns ?? 12;\n\n // Mutation only — `skipFetch` keeps this from pulling the whole dashboard list.\n const { updateDashboard } = useDashboardOperations({ skipFetch: true });\n const { hasPermission } = usePermissions();\n const canUpdateDashboard = hasPermission(BIGCONSOLE_PERMISSIONS.DASHBOARD_UPDATE);\n\n /**\n * General access for the board currently on screen. Only surfaced when the\n * loaded dashboard IS this one and its `visibility` came back from the\n * server — the share dialog hides the control otherwise rather than showing\n * a default that may not match reality.\n */\n const dashboardVisibility: DashboardVisibility | undefined =\n visibilityOverride?.id === dashboardId\n ? visibilityOverride.value\n : currentDashboard?.id === dashboardId\n ? currentDashboard.visibility\n : undefined;\n\n const handleVisibilityChange = useCallback(\n async (visibility: DashboardVisibility) => {\n // `updateDashboard` swallows Apollo errors and resolves to null, so null\n // is the failure signal the dialog needs in order to report it.\n const updated = await updateDashboard({ id: dashboardId, visibility });\n if (!updated) {\n throw new Error('The dashboard service did not accept the change.');\n }\n setVisibilityOverride({ id: dashboardId, value: updated.visibility ?? visibility });\n },\n [dashboardId, updateDashboard]\n );\n\n // Fetch installed widgets only in edit mode — the palette and add-widget dialog\n // are not usable in read-only view, so skip the request for viewer-only sessions.\n const { workspaceId, apiGatewayUrl, authToken } = useBigConsole();\n const { installedWidgets, loading: installedWidgetsLoading } = useInstalledWidgets({\n workspaceId,\n apiGatewayUrl,\n authToken,\n enabled: isEditMode,\n });\n // Built-in widget catalog from the backend (getWidgetTypes); falls back to the\n // bundled registry while loading or if the supergraph hasn't adopted it yet.\n const { definitions: widgetCatalog } = useWidgetCatalog({\n workspaceId,\n apiGatewayUrl,\n authToken,\n enabled: isEditMode,\n });\n const zoomLevel = useDashboardStore((state) => state.zoomLevel);\n const sidebarCollapsed = useDashboardStore((state) => state.sidebarCollapsed);\n const toggleSidebar = useDashboardStore((state) => state.toggleSidebar);\n const isPaletteOpen = !sidebarCollapsed;\n const setGlobalFilterValues = useDashboardStore((state) => state.setGlobalFilterValues);\n\n // Handle filter changes - update store for widget access\n const handleFilterChange = useCallback(\n (filterValues: Record<string, unknown>) => {\n // Update global filter values in dashboard store\n setGlobalFilterValues(filterValues);\n\n // Widgets can now access filter values via useGlobalFilterValues() hook\n // When backend supports filter parameters, widget queries will include these values\n },\n [setGlobalFilterValues]\n );\n\n // Widget operations hook (connects to backend) - skipFetch since parent page fetches\n const { createWidget: createWidgetApi } = useWidgetOperations(pageId, dashboardId, { skipFetch: true });\n\n const widgetsMap = useWidgetStore((state) => state.widgets);\n // Filter widgets to only show widgets for the current page\n const widgetsArray = useMemo(() => {\n const allWidgets = Array.from(widgetsMap.values());\n if (!pageId) return allWidgets;\n return allWidgets.filter((widget) => widget.pageId === pageId);\n }, [widgetsMap, pageId]);\n const selectedWidgetId = useWidgetStore((state) => state.selectedWidgetId);\n const selectWidget = useWidgetStore((state) => state.selectWidget);\n const addWidgetToStore = useWidgetStore((state) => state.addWidget);\n const updateWidgetPosition = useWidgetStore((state) => state.updateWidgetPosition);\n const configPanelOpen = useWidgetStore((state) => state.configPanelOpen);\n const closeConfigPanel = useWidgetStore((state) => state.closeConfigPanel);\n\n // Keep react-grid-layout's explicit width in sync with the actual canvas.\n // A ResizeObserver is required because opening the docked inspector or widget\n // palette resizes this element without resizing the browser window.\n useEffect(() => {\n const container = containerRef.current;\n if (!container) return;\n\n const updateWidth = () => {\n setContainerWidth(container.offsetWidth);\n };\n\n updateWidth();\n\n if (typeof ResizeObserver !== 'undefined') {\n const observer = new ResizeObserver(updateWidth);\n observer.observe(container);\n return () => observer.disconnect();\n }\n\n window.addEventListener('resize', updateWidth);\n return () => window.removeEventListener('resize', updateWidth);\n }, []);\n\n // Handle layout change\n const handleLayoutChange = useCallback(\n (layout: Layout[]) => {\n layout.forEach((item) => {\n updateWidgetPosition(item.i, {\n x: item.x,\n y: item.y,\n width: item.w,\n height: item.h,\n });\n });\n },\n [updateWidgetPosition]\n );\n\n // Handle widget select\n const handleWidgetSelect = useCallback(\n (widgetId: string) => {\n selectWidget(widgetId);\n },\n [selectWidget]\n );\n\n // Create with defaults, select the result, then configure it in the inspector.\n const handleAddWidget = useCallback(\n async (widgetData: Partial<Widget>, placement?: WidgetPlacement) => {\n setWidgetCreateError(null);\n const definition = placement?.definition || (widgetData.type ? getWidgetDefinition(widgetData.type) : null);\n const defaults = loadBigConsoleSettings();\n const widgetSize = {\n width: Math.min(definition?.defaultSize?.width ?? 4, gridColumns),\n height: defaults.defaultWidgetHeight,\n };\n\n let position: { x: number; y: number; width: number; height: number };\n if (placement?.position) {\n position = placement.position;\n } else {\n // Use smart placement algorithm - horizontal first, then next row\n const { x, y } = findNextAvailablePosition(widgetsArray, widgetSize, { cols: gridColumns });\n position = {\n x,\n y,\n width: widgetSize.width,\n height: widgetSize.height,\n };\n }\n\n // Preserve legacy binding fields when creating from imported/default data.\n const extendedData = widgetData as Partial<Widget> & { dataSinkId?: string; parserId?: string };\n\n // Try to create via API first\n if (pageId) {\n const widget = await createWidgetApi({\n pageId,\n dashboardId,\n type: widgetData.type!,\n title: widgetData.title || t('bigconsole.dashboards.canvas.untitledWidget', 'Untitled Widget'),\n description: widgetData.description,\n // v2.0: Renderer and template support\n renderer: widgetData.renderer,\n template: widgetData.template,\n config: widgetData.config || {},\n position,\n refreshInterval: widgetData.refreshInterval ?? defaults.defaultRefreshInterval,\n // v2.0: Data source fields (DataSink → Parser → Widget)\n dataSinkId: extendedData.dataSinkId,\n parserId: extendedData.parserId,\n });\n\n if (widget) {\n selectWidget(widget.id);\n return;\n }\n\n setWidgetCreateError(\n t(\n 'bigconsole.dashboards.canvas.widgetCreateError',\n 'Could not create the widget. Check the connection and try again.'\n )\n );\n return;\n }\n\n // Fallback to local store if API fails or no pageId\n const newWidget: Widget = {\n id: crypto.randomUUID(),\n dashboardId,\n pageId: pageId || 'local',\n type: widgetData.type!,\n title: widgetData.title || t('bigconsole.dashboards.canvas.untitledWidget', 'Untitled Widget'),\n description: widgetData.description,\n // v2.0: Renderer and template support\n renderer: widgetData.renderer,\n template: widgetData.template,\n refreshInterval: widgetData.refreshInterval ?? defaults.defaultRefreshInterval,\n config: widgetData.config || {},\n position,\n positionX: position.x,\n positionY: position.y,\n positionWidth: position.width,\n positionHeight: position.height,\n // v2.0: Data source fields (DataSink → Parser → Widget)\n dataSinkId: extendedData.dataSinkId,\n parserId: extendedData.parserId,\n translations: [],\n createdAt: new Date().toISOString(),\n updatedAt: new Date().toISOString(),\n };\n\n addWidgetToStore(newWidget);\n selectWidget(newWidget.id);\n },\n [dashboardId, pageId, createWidgetApi, addWidgetToStore, selectWidget, widgetsArray, gridColumns, t]\n );\n\n // Handle drag start from palette\n const handlePaletteDragStart = useCallback((type: WidgetType) => {\n setIsDraggingWidget(true);\n setDragWidgetType(type);\n }, []);\n\n // Handle drag end from palette\n const handlePaletteDragEnd = useCallback(() => {\n setIsDraggingWidget(false);\n setDragWidgetType(null);\n }, []);\n\n // Handle drop on canvas - create immediately with defaults.\n const handleCanvasDrop = useCallback(\n (e: React.DragEvent) => {\n e.preventDefault();\n setIsDraggingWidget(false);\n setDragWidgetType(null);\n\n try {\n const data = e.dataTransfer.getData('application/json');\n if (!data) return;\n\n const parsedData: unknown = JSON.parse(data);\n if (!parsedData || typeof parsedData !== 'object' || !('type' in parsedData)) return;\n const widgetData = parsedData as PaletteDropData;\n const definition = getWidgetDefinition(widgetData.type);\n\n // If the dropped data includes defaultConfig (from WidgetPalette drag serialization),\n // reconstruct a full WidgetDefinition so installed/store widget identity is preserved.\n let droppedDefinition: WidgetDefinition | null = null;\n if (widgetData.defaultConfig && widgetData.category) {\n droppedDefinition = {\n ...definition,\n name: widgetData.name || definition.name,\n category: widgetData.category,\n defaultConfig: widgetData.defaultConfig,\n defaultSize: widgetData.defaultSize || definition.defaultSize,\n };\n }\n\n // Calculate drop position relative to canvas\n const canvasRect = containerRef.current?.getBoundingClientRect();\n if (!canvasRect) return;\n\n // Use utility to calculate grid position from drop coordinates\n const widgetSize = {\n width: Math.min(definition.defaultSize.width, gridColumns),\n height: loadBigConsoleSettings().defaultWidgetHeight,\n };\n\n const { x: gridX, y: gridY } = calculatePositionFromDrop(\n e.clientX,\n e.clientY,\n canvasRect,\n containerWidth,\n widgetSize,\n { cols: gridColumns }\n );\n\n const position = {\n x: gridX,\n y: gridY,\n width: widgetSize.width,\n height: widgetSize.height,\n };\n\n void handleAddWidget(\n {\n type: widgetData.type,\n title: widgetData.name || definition.name,\n config: widgetData.defaultConfig || definition.defaultConfig,\n },\n { position, definition: droppedDefinition }\n );\n } catch (error) {\n console.error('Failed to handle widget drop:', error);\n }\n },\n [containerWidth, handleAddWidget, gridColumns]\n );\n\n // Handle drag over to allow drop\n const handleCanvasDragOver = useCallback((e: React.DragEvent) => {\n e.preventDefault();\n e.dataTransfer.dropEffect = 'copy';\n }, []);\n\n // Handle widget select from palette (quick add without drag)\n const handlePaletteWidgetSelect = useCallback(\n (type: WidgetType, paletteDefinition?: WidgetDefinition) => {\n const definition = paletteDefinition || getWidgetDefinition(type);\n handleAddWidget({\n type,\n title: definition.name,\n config: definition.defaultConfig,\n });\n },\n [handleAddWidget]\n );\n\n // Toggle palette\n const togglePalette = useCallback(() => {\n toggleSidebar();\n }, [toggleSidebar]);\n\n const openWidgetPalette = useCallback(() => {\n if (sidebarCollapsed) toggleSidebar();\n window.requestAnimationFrame(() => {\n const searchPlaceholder = t('bigconsole.dashboards.widgetPalette.searchPlaceholder', 'Search widgets...');\n document.querySelector<HTMLInputElement>(`input[placeholder=\"${searchPlaceholder}\"]`)?.focus();\n });\n }, [sidebarCollapsed, toggleSidebar, t]);\n\n // Board-pack export (PNG + PDF) — rasterizes the inner board element.\n const {\n exportPNG,\n exportPDF,\n isExporting: isExportingImage,\n } = useDashboardImageExport({ containerRef: boardRef, name: title || 'dashboard' });\n const handleExportImage = useCallback(() => {\n void exportPNG();\n }, [exportPNG]);\n const handleExportPdf = useCallback(() => {\n void exportPDF();\n }, [exportPDF]);\n\n return (\n <div className=\"flex flex-col h-full min-w-0 overflow-hidden\">\n {/* Toolbar */}\n <DashboardToolbar\n dashboardId={dashboardId}\n title={title}\n onAddWidget={openWidgetPalette}\n onTogglePalette={togglePalette}\n isPaletteOpen={isPaletteOpen}\n onPaste={onPaste}\n onSave={onSave}\n isSaving={isSaving}\n onExport={onExport}\n onPublishTemplate={onPublishTemplate}\n onExportImage={handleExportImage}\n onExportPdf={handleExportPdf}\n isExportingImage={isExportingImage}\n onShare={() => setIsShareDialogOpen(true)}\n />\n\n {widgetCreateError && (\n <div role=\"alert\" className=\"mx-card-padding mt-control-gap flex-shrink-0\">\n {/* The section title has no catalog key — BOFF-6004 translated only the\n message and the Dismiss action — so it stays a literal until a key\n lands in src/translations/en.ts. */}\n <Section\n tone=\"danger\"\n padding=\"compact\"\n headingLevel={3}\n data-testid=\"widget-create-error\"\n title=\"Widget not created\"\n description={widgetCreateError}\n actions={\n <Button variant=\"outline\" size=\"sm\" onClick={() => setWidgetCreateError(null)}>\n {t('bigconsole.dashboards.canvas.dismiss', 'Dismiss')}\n </Button>\n }\n />\n </div>\n )}\n\n {/* Live wall-board freshness banner — renders only when the page has\n auto-refreshing widgets (e.g. the Live Bed Board) and not in edit mode. */}\n <TemplateSetupBanner widgets={widgetsArray} isEditMode={isEditMode} />\n <LiveBoardBanner widgets={widgetsArray} isEditMode={isEditMode} />\n\n {/* Global Filters Bar */}\n {showFilters && <GlobalFiltersBar dashboardId={dashboardId} onFilterChange={handleFilterChange} collapsible />}\n\n {/* Page Tabs - always show in edit mode so user can add first page */}\n {showPageTabs && (isEditMode || pages.length > 0) && (\n <PageTabsManager\n pages={pages}\n activePageId={activePageId || pages[0]?.id}\n editable={isEditMode}\n onPageSelect={onPageChange || (() => {})}\n onPagesReorder={\n onPagesReorder\n ? (pageIds) => {\n // Convert string[] to DashboardPageTab[] for the callback\n const reorderedPages = pageIds.map((id) => pages.find((p) => p.id === id)!).filter(Boolean);\n onPagesReorder(reorderedPages);\n }\n : undefined\n }\n onPageCreate={onPageAdd}\n onPageRename={onPageRename}\n onPageDuplicate={onPageDuplicate}\n onPageDelete={onPageDelete}\n />\n )}\n\n {/* Main content area with palette and canvas.\n When the properties inspector is open we reserve equal space on the\n right so the (fixed, non-modal) panel docks beside the canvas instead\n of overlaying the selected widget. */}\n <div\n data-testid=\"dashboard-canvas-panes\"\n className={`flex flex-1 min-w-0 overflow-hidden ${\n // Only reserve the inspector gutter where there is room for both. The\n // panel is `min(420px, 100vw)` wide, so below `lg` it overlays the\n // board instead — reserving 420px there left the canvas a sliver.\n configPanelOpen ? 'lg:mr-[var(--bc-inspector-width,420px)]' : ''\n }`}\n >\n {/* Widget Palette Sidebar */}\n {isEditMode && (\n <WidgetPalette\n isOpen={isPaletteOpen}\n onClose={togglePalette}\n onWidgetSelect={handlePaletteWidgetSelect}\n onDragStart={handlePaletteDragStart}\n onDragEnd={handlePaletteDragEnd}\n installedWidgets={installedWidgets}\n installedWidgetsLoading={installedWidgetsLoading}\n definitions={widgetCatalog}\n />\n )}\n\n {/*\n The board. This is the one `primary` region on the route — everything\n above it is bare chrome or a compact status strip, so the widgets are\n what the eye lands on. It keeps the recessed canvas surface on purpose:\n the widgets are the raised cards, the board is the well they sit in.\n The drop border is always 2px (transparent when idle) so drag-over\n highlights without nudging the whole board.\n */}\n <div\n ref={containerRef}\n role=\"region\"\n aria-label=\"Dashboard board\"\n data-section-emphasis=\"primary\"\n data-testid=\"dashboard-board\"\n className=\"relative min-w-0 flex-1 overflow-auto border-2 border-transparent bg-bg-sunken motion-safe:transition-[border-color,background-color]\"\n onDrop={handleCanvasDrop}\n onDragOver={handleCanvasDragOver}\n onClick={() => {\n if (isEditMode) {\n selectWidget(null);\n }\n }}\n style={\n isDraggingWidget\n ? {\n borderStyle: 'dashed',\n borderColor: 'var(--color-action-primary-bg)',\n backgroundColor: 'var(--color-bg-accentSubtle)',\n }\n : undefined\n }\n >\n {/* Drop zone indicator */}\n {isDraggingWidget && (\n <div\n style={{\n position: 'absolute',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)',\n padding: 'var(--space-pagePadding)',\n backgroundColor: 'var(--color-bg-surface)',\n borderRadius: 'var(--radius-card)',\n boxShadow: 'var(--shadow-elevation-2)',\n textAlign: 'center',\n pointerEvents: 'none',\n zIndex: 100,\n }}\n >\n <p style={{ fontSize: 'var(--font-size-body-md)', color: 'var(--color-text-primary)', margin: 0 }}>\n {t('bigconsole.dashboards.canvas.dropToAddBefore', 'Drop to add')} <strong>{dragWidgetType}</strong>{' '}\n {t('bigconsole.dashboards.canvas.dropToAddAfter', 'widget')}\n </p>\n </div>\n )}\n\n <div\n ref={boardRef}\n className=\"min-h-full origin-top-left transition-transform\"\n style={{\n transform: `scale(${zoomLevel / 100})`,\n width: `${100 / (zoomLevel / 100)}%`,\n }}\n >\n {widgetsArray.length > 0 ? (\n <CrossFilterProvider\n enabled={enableCrossFilter}\n onCrossFilter={(_filters) => {\n // Cross-filter applied - widget queries can access filter values\n }}\n >\n <DashboardGrid\n widgets={widgetsArray}\n cols={gridColumns}\n isEditMode={isEditMode}\n width={containerWidth}\n onLayoutChange={handleLayoutChange}\n onWidgetSelect={handleWidgetSelect}\n selectedWidgetId={selectedWidgetId}\n />\n </CrossFilterProvider>\n ) : (\n <div className=\"flex min-h-[min(400px,60vh)] items-center justify-center p-card-padding\">\n <Section\n headingLevel={3}\n className=\"w-full max-w-md\"\n data-testid=\"dashboard-empty-board\"\n headerClassName=\"mb-form-gap\"\n title={t('bigconsole.dashboards.canvas.noWidgetsTitle', 'No widgets yet')}\n description={t(\n 'bigconsole.dashboards.canvas.noWidgetsDescription',\n 'Add widgets to build your dashboard. Click the \"Add Widget\" button to get started.'\n )}\n >\n {isEditMode && (\n <Button onClick={openWidgetPalette}>\n <Plus className=\"size-4\" />\n {t('bigconsole.dashboards.canvas.addWidget', 'Add Widget')}\n </Button>\n )}\n </Section>\n </div>\n )}\n </div>\n </div>\n </div>\n\n {/* Properties Panel */}\n <WidgetInspector isOpen={configPanelOpen} onClose={closeConfigPanel} />\n\n {/* Share Dialog */}\n <ShareDialog\n dashboardId={dashboardId}\n dashboardName={title || t('bigconsole.dashboards.canvas.dashboardFallbackName', 'Dashboard')}\n isOpen={isShareDialogOpen}\n onClose={() => setIsShareDialogOpen(false)}\n visibility={dashboardVisibility}\n onVisibilityChange={handleVisibilityChange}\n canChangeVisibility={canUpdateDashboard}\n />\n </div>\n );\n});\n\nexport default DashboardCanvas;\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DashboardGrid.d.ts","sourceRoot":"","sources":["../../../../src/bigconsole/components/dashboard/DashboardGrid.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,EAAE,EAA8B,MAAM,OAAO,CAAC;AAC5D,OAAmB,EAAE,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAO1C,OAAO,kCAAkC,CAAC;AAC1C,OAAO,gCAAgC,CAAC;AAMxC,MAAM,WAAW,kBAAkB;IACjC,yBAAyB;IACzB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,2BAA2B;IAC3B,UAAU,EAAE,OAAO,CAAC;IACpB,sBAAsB;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,wBAAwB;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mCAAmC;IACnC,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC5C,uCAAuC;IACvC,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,mCAAmC;IACnC,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC;AA6BD,eAAO,MAAM,aAAa,EAAE,EAAE,CAAC,kBAAkB,CA+I/C,CAAC;AAEH,eAAe,aAAa,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DashboardGrid.js","names":[],"sources":["../../../../src/bigconsole/components/dashboard/DashboardGrid.tsx"],"sourcesContent":["/**\n * DashboardGrid Component\n *\n * Grid layout for widgets using react-grid-layout.\n * v2.0: Added widget event emission support\n */\n\nimport { type FC, memo, useMemo, useCallback } from 'react';\nimport GridLayout, { type Layout } from 'react-grid-layout';\nimport type { Widget } from '../../types';\nimport { WidgetWrapper } from '../widgets/WidgetWrapper';\nimport { useWidgetEvents } from '../../hooks/useWidgetEvents';\nimport { useGlobalFilterValues } from '../../store';\nimport type { WidgetAction, ActionContext, ActionResult } from '../../renderers/types/renderer';\n\n// Import react-grid-layout styles\nimport 'react-grid-layout/css/styles.css';\nimport 'react-resizable/css/styles.css';\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface DashboardGridProps {\n /** Widgets to display */\n widgets: Widget[];\n /** Whether in edit mode */\n isEditMode: boolean;\n /** Container width */\n width: number;\n /** Number of columns */\n cols?: number;\n /** Row height in pixels */\n rowHeight?: number;\n /** Callback when layout changes */\n onLayoutChange?: (layout: Layout[]) => void;\n /** Callback when widget is selected */\n onWidgetSelect?: (widgetId: string) => void;\n /** Currently selected widget ID */\n selectedWidgetId?: string | null;\n}\n\n// ============================================================================\n// Helpers\n// ============================================================================\n\nfunction widgetToLayout(widget: Widget, cols: number): Layout {\n const x = widget.position?.x ?? widget.positionX ?? 0;\n const y = widget.position?.y ?? widget.positionY ?? 0;\n const w = widget.position?.width ?? widget.positionWidth ?? 4;\n const h = widget.position?.height ?? widget.positionHeight ?? 4;\n\n return {\n i: widget.id,\n x,\n y,\n w,\n h,\n minW: 1,\n minH: 1,\n maxW: cols,\n maxH: 12,\n };\n}\n\n// ============================================================================\n// Component\n// ============================================================================\n\nexport const DashboardGrid: FC<DashboardGridProps> = memo(function DashboardGrid({\n widgets,\n isEditMode,\n width,\n cols = 12,\n rowHeight = 60,\n onLayoutChange,\n onWidgetSelect,\n selectedWidgetId,\n}) {\n // Phase 2: Get global filter values\n const globalFilterValues = useGlobalFilterValues();\n\n // v2.0: Widget event emission hook\n const { emitEvent } = useWidgetEvents({});\n\n // A phone displays a reading layout. Never save this temporary layout over\n // the authored desktop positions when a drag/resize callback fires.\n const isNarrow = width < 640;\n const canEditLayout = isEditMode && !isNarrow;\n const layout = useMemo(() => {\n const authored = widgets.map((widget) => widgetToLayout(widget, cols));\n if (!isNarrow) return authored;\n let nextRow = 0;\n return [...authored]\n .sort((a, b) => a.y - b.y || a.x - b.x)\n .map((item) => {\n const stacked = { ...item, x: 0, y: nextRow, w: cols, minW: cols };\n nextRow += item.h;\n return stacked;\n });\n }, [widgets, cols, isNarrow]);\n\n // Gutters are a fixed 16px in react-grid-layout, which on a 390px canvas spends\n // ~32px of the board on padding alone. Shrink them on narrow canvases — this is\n // purely visual and never touches the stored x/y/w/h.\n const gutter = width < 480 ? 8 : 16;\n\n // Handle widget click - only select in edit mode\n const handleWidgetClick = useCallback(\n (widgetId: string, _event: React.MouseEvent) => {\n // Only select widget in edit mode\n // In view mode, let WidgetWrapper handle drilldown\n if (isEditMode && onWidgetSelect) {\n onWidgetSelect(widgetId);\n }\n },\n [onWidgetSelect, isEditMode]\n );\n\n // Handle drag/resize stop - only update when user finishes interaction\n const handleDragStop = useCallback(\n (layout: Layout[]) => {\n if (onLayoutChange && canEditLayout) {\n onLayoutChange(layout);\n }\n },\n [onLayoutChange, canEditLayout]\n );\n\n const handleResizeStop = useCallback(\n (layout: Layout[]) => {\n if (onLayoutChange && canEditLayout) {\n onLayoutChange(layout);\n }\n },\n [onLayoutChange, canEditLayout]\n );\n\n // v2.0: Handle widget action - emit event to backend\n const handleWidgetAction = useCallback(\n async (action: WidgetAction, context: ActionContext): Promise<ActionResult | void> => {\n // Safety check: ensure action.name is a string\n const actionName = typeof action?.name === 'string' ? action.name : 'unknown';\n\n // Build event name from action name (e.g., \"Edit Profile\" -> \"widget:edit_profile:clicked\")\n const eventName = `widget:${actionName.toLowerCase().replace(/\\s+/g, '_')}:clicked`;\n\n // Emit event to backend (triggers webhook if configured)\n const eventLog = await emitEvent({\n widgetId: context.widgetId,\n actionName: actionName,\n event: eventName,\n payload: context.data || {},\n });\n\n if (eventLog) {\n return {\n success: eventLog.status !== 'FAILED',\n message: eventLog.status === 'DELIVERED' ? 'Action completed' : `Event status: ${eventLog.status}`,\n };\n }\n\n return { success: false, message: 'Failed to emit event' };\n },\n [emitEvent]\n );\n\n return (\n <GridLayout\n className=\"dashboard-grid\"\n layout={layout}\n cols={cols}\n rowHeight={rowHeight}\n width={width}\n margin={[gutter, gutter]}\n containerPadding={[gutter, gutter]}\n isDraggable={canEditLayout}\n isResizable={canEditLayout}\n draggableHandle=\".widget-drag-handle\"\n onDragStop={handleDragStop}\n onResizeStop={handleResizeStop}\n useCSSTransforms\n compactType={null}\n preventCollision={false}\n >\n {widgets.map((widget) => {\n // v2.0: Extract actions from widget\n const widgetWithActions = widget as Widget & { actions?: WidgetAction[] };\n const widgetActions = widgetWithActions.actions || [];\n\n return (\n <div\n key={widget.id}\n onClick={(e) => handleWidgetClick(widget.id, e)}\n data-selected={selectedWidgetId === widget.id && isEditMode ? 'true' : undefined}\n className={`flex h-full min-w-0 flex-col overflow-visible ${\n selectedWidgetId === widget.id && isEditMode\n ? 'rounded-card ring-2 ring-action-primary-bg ring-offset-2 ring-offset-bg-sunken'\n : ''\n }`}\n >\n <WidgetWrapper\n widget={widget}\n actions={widgetActions}\n onAction={handleWidgetAction}\n filterValues={globalFilterValues}\n />\n </div>\n );\n })}\n </GridLayout>\n );\n});\n\nexport default DashboardGrid;\n"],"mappings":";;;;;;;;;;AA8CA,SAAS,EAAe,GAAgB,GAAsB;CAC5D,IAAM,IAAI,EAAO,UAAU,KAAK,EAAO,aAAa,GAC9C,IAAI,EAAO,UAAU,KAAK,EAAO,aAAa,GAC9C,IAAI,EAAO,UAAU,SAAS,EAAO,iBAAiB,GACtD,IAAI,EAAO,UAAU,UAAU,EAAO,kBAAkB;AAE9D,QAAO;EACL,GAAG,EAAO;EACV;EACA;EACA;EACA;EACA,MAAM;EACN,MAAM;EACN,MAAM;EACN,MAAM;EACP;;AAOH,IAAa,IAAwC,EAAK,SAAuB,EAC/E,YACA,eACA,UACA,UAAO,IACP,eAAY,IACZ,mBACA,mBACA,uBACC;CAED,IAAM,IAAqB,GAAuB,EAG5C,EAAE,iBAAc,EAAgB,EAAE,CAAC,EAInC,IAAW,IAAQ,KACnB,IAAgB,KAAc,CAAC,GAC/B,IAAS,QAAc;EAC3B,IAAM,IAAW,EAAQ,KAAK,MAAW,EAAe,GAAQ,EAAK,CAAC;AACtE,MAAI,CAAC,EAAU,QAAO;EACtB,IAAI,IAAU;AACd,SAAO,CAAC,GAAG,EAAS,CACjB,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CACtC,KAAK,MAAS;GACb,IAAM,IAAU;IAAE,GAAG;IAAM,GAAG;IAAG,GAAG;IAAS,GAAG;IAAM,MAAM;IAAM;AAElE,UADA,KAAW,EAAK,GACT;IACP;IACH;EAAC;EAAS;EAAM;EAAS,CAAC,EAKvB,IAAS,IAAQ,MAAM,IAAI,IAG3B,IAAoB,GACvB,GAAkB,MAA6B;AAG9C,EAAI,KAAc,KAChB,EAAe,EAAS;IAG5B,CAAC,GAAgB,EAAW,CAC7B,EAGK,IAAiB,GACpB,MAAqB;AACpB,EAAI,KAAkB,KACpB,EAAe,EAAO;IAG1B,CAAC,GAAgB,EAAc,CAChC,EAEK,IAAmB,GACtB,MAAqB;AACpB,EAAI,KAAkB,KACpB,EAAe,EAAO;IAG1B,CAAC,GAAgB,EAAc,CAChC,EAGK,IAAqB,EACzB,OAAO,GAAsB,MAAyD;EAEpF,IAAM,IAAa,OAAO,GAAQ,QAAS,WAAW,EAAO,OAAO,WAG9D,IAAY,UAAU,EAAW,aAAa,CAAC,QAAQ,QAAQ,IAAI,CAAC,WAGpE,IAAW,MAAM,EAAU;GAC/B,UAAU,EAAQ;GACN;GACZ,OAAO;GACP,SAAS,EAAQ,QAAQ,EAAE;GAC5B,CAAC;AASF,SAPI,IACK;GACL,SAAS,EAAS,WAAW;GAC7B,SAAS,EAAS,WAAW,cAAc,qBAAqB,iBAAiB,EAAS;GAC3F,GAGI;GAAE,SAAS;GAAO,SAAS;GAAwB;IAE5D,CAAC,EAAU,CACZ;AAED,QACE,kBAAC,GAAD;EACE,WAAU;EACF;EACF;EACK;EACJ;EACP,QAAQ,CAAC,GAAQ,EAAO;EACxB,kBAAkB,CAAC,GAAQ,EAAO;EAClC,aAAa;EACb,aAAa;EACb,iBAAgB;EAChB,YAAY;EACZ,cAAc;EACd,kBAAA;EACA,aAAa;EACb,kBAAkB;YAEjB,EAAQ,KAAK,MAAW;GAGvB,IAAM,IADoB,EACc,WAAW,EAAE;AAErD,UACE,kBAAC,OAAD;IAEE,UAAU,MAAM,EAAkB,EAAO,IAAI,EAAE;IAC/C,iBAAe,MAAqB,EAAO,MAAM,IAAa,SAAS,KAAA;IACvE,WAAW,iDACT,MAAqB,EAAO,MAAM,IAC9B,mFACA;cAGN,kBAAC,GAAD;KACU;KACR,SAAS;KACT,UAAU;KACV,cAAc;KACd,CAAA;IACE,EAfC,EAAO,GAeR;IAER;EACS,CAAA;EAEf"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DashboardStatusPill.d.ts","sourceRoot":"","sources":["../../../../src/bigconsole/components/dashboard/DashboardStatusPill.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,KAAK,EAAE,EAAqB,MAAM,OAAO,CAAC;AAEnD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAe9E,yDAAyD;AACzD,wBAAgB,uBAAuB,IAAI,CAAC,MAAM,EAAE,mBAAmB,KAAK,MAAM,CAejF;AAED,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,mBAAmB,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,mBAAmB,EAAE,EAAE,CAAC,wBAAwB,CAiC3D,CAAC;AAEH,eAAe,mBAAmB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DashboardStatusPill.js","names":[],"sources":["../../../../src/bigconsole/components/dashboard/DashboardStatusPill.tsx"],"sourcesContent":["/**\n * DashboardStatusPill\n *\n * Compact lifecycle badge for a dashboard (Draft / Published / Archived).\n * Shared by the Dashboards list and the Overview's recent dashboards so the\n * same state always reads the same way.\n */\n\nimport { type FC, memo, useCallback } from 'react';\nimport { useTr } from '../../../shared/hooks/useTr';\nimport type { DashboardListStatus } from '../../hooks/useDashboardOperations';\n\n/**\n * Lifecycle status of a dashboard.\n *\n * Backed by `Dashboard.status` (DashboardStatus: DRAFT | PUBLISHED | ARCHIVED).\n * Whether a board is a published surface or still a draft is the fact a list of\n * boards is most often scanned for.\n */\nconst DASHBOARD_STATUS_DOT: Record<DashboardListStatus, string> = {\n PUBLISHED: 'var(--color-status-success-bg)',\n DRAFT: 'var(--color-text-muted)',\n ARCHIVED: 'var(--color-status-warning-bg)',\n};\n\n/** Translated label for a dashboard lifecycle status. */\nexport function useDashboardStatusLabel(): (status: DashboardListStatus) => string {\n const tr = useTr();\n return useCallback(\n (status: DashboardListStatus) => {\n switch (status) {\n case 'PUBLISHED':\n return tr('bigconsole.dashboards.status.published', 'Published');\n case 'ARCHIVED':\n return tr('bigconsole.dashboards.status.archived', 'Archived');\n default:\n return tr('bigconsole.dashboards.status.draft', 'Draft');\n }\n },\n [tr]\n );\n}\n\nexport interface DashboardStatusPillProps {\n status: DashboardListStatus;\n label: string;\n}\n\nexport const DashboardStatusPill: FC<DashboardStatusPillProps> = memo(function DashboardStatusPill({ status, label }) {\n return (\n <span\n data-testid=\"dashboard-status\"\n style={{\n display: 'inline-flex',\n alignItems: 'center',\n gap: 'var(--space-iconGap)',\n padding: '2px 8px',\n borderRadius: 'var(--radius-pill)',\n backgroundColor: 'var(--color-bg-sunken)',\n border: '1px solid var(--color-border-subtle)',\n fontSize: '10px',\n fontWeight: 'var(--font-weight-semibold)',\n textTransform: 'uppercase',\n letterSpacing: '0.02em',\n color: 'var(--color-text-secondary)',\n whiteSpace: 'nowrap',\n }}\n >\n <span\n aria-hidden=\"true\"\n style={{\n width: 6,\n height: 6,\n borderRadius: '50%',\n backgroundColor: DASHBOARD_STATUS_DOT[status],\n flexShrink: 0,\n }}\n />\n {label}\n </span>\n );\n});\n\nexport default DashboardStatusPill;\n"],"mappings":";;;;AAmBA,IAAM,IAA4D;CAChE,WAAW;CACX,OAAO;CACP,UAAU;CACX;AAGD,SAAgB,IAAmE;CACjF,IAAM,IAAK,GAAO;AAClB,QAAO,GACJ,MAAgC;AAC/B,UAAQ,GAAR;GACE,KAAK,YACH,QAAO,EAAG,0CAA0C,YAAY;GAClE,KAAK,WACH,QAAO,EAAG,yCAAyC,WAAW;GAChE,QACE,QAAO,EAAG,sCAAsC,QAAQ;;IAG9D,CAAC,EAAG,CACL;;AAQH,IAAa,IAAoD,EAAK,SAA6B,EAAE,WAAQ,YAAS;AACpH,QACE,kBAAC,QAAD;EACE,eAAY;EACZ,OAAO;GACL,SAAS;GACT,YAAY;GACZ,KAAK;GACL,SAAS;GACT,cAAc;GACd,iBAAiB;GACjB,QAAQ;GACR,UAAU;GACV,YAAY;GACZ,eAAe;GACf,eAAe;GACf,OAAO;GACP,YAAY;GACb;YAhBH,CAkBE,kBAAC,QAAD;GACE,eAAY;GACZ,OAAO;IACL,OAAO;IACP,QAAQ;IACR,cAAc;IACd,iBAAiB,EAAqB;IACtC,YAAY;IACb;GACD,CAAA,EACD,EACI;;EAET"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DashboardToolbar.d.ts","sourceRoot":"","sources":["../../../../src/bigconsole/components/dashboard/DashboardToolbar.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,KAAK,EAAE,EAAqB,MAAM,OAAO,CAAC;AAgCnD,MAAM,WAAW,qBAAqB;IACpC,mCAAmC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sBAAsB;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6BAA6B;IAC7B,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,wCAAwC;IACxC,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,8BAA8B;IAC9B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,+BAA+B;IAC/B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,iCAAiC;IACjC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,kCAAkC;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,qDAAqD;IACrD,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,kDAAkD;IAClD,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,4CAA4C;IAC5C,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,iDAAiD;IACjD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,oCAAoC;IACpC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAMD,eAAO,MAAM,gBAAgB,EAAE,EAAE,CAAC,qBAAqB,CAsQrD,CAAC;AAEH,eAAe,gBAAgB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DashboardToolbar.js","names":[],"sources":["../../../../src/bigconsole/components/dashboard/DashboardToolbar.tsx"],"sourcesContent":["/**\n * DashboardToolbar Component\n *\n * Toolbar for dashboard actions and controls.\n * Uses fe-libs shared components for consistent styling.\n * Phase 2: Added SavedViewsDropdown and Share button.\n */\n\nimport { type FC, memo, useCallback } from 'react';\nimport { Button } from '@burdenoff/fe-libs/ui';\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@burdenoff/fe-libs/ui';\nimport { Spinner } from '@burdenoff/fe-libs/ui';\nimport {\n Clipboard,\n Download,\n Eye,\n FileText,\n Image as ImageIcon,\n Minus,\n PanelLeft,\n PanelLeftClose,\n Pencil,\n Plus,\n RotateCcw,\n Save,\n Share2,\n Store,\n} from 'lucide-react';\nimport { usePermissions } from '@burdenoff/fe-libs/shared/providers/shell';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport { PermissionButton } from '@burdenoff/fe-libs/shared/components';\nimport { useDashboardStore, useWidgetStore } from '../../store';\nimport { BIGCONSOLE_PERMISSIONS } from '../../../constants/permissions';\nimport { Section } from '../common';\nimport { SavedViewsDropdown } from './SavedViewsDropdown';\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface DashboardToolbarProps {\n /** Dashboard ID for saved views */\n dashboardId?: string;\n /** Dashboard title */\n title?: string;\n /** Callback to add widget */\n onAddWidget: () => void;\n /** Callback to toggle widget palette */\n onTogglePalette?: () => void;\n /** Whether palette is open */\n isPaletteOpen?: boolean;\n /** Callback to paste widget */\n onPaste?: () => void;\n /** Callback to save dashboard */\n onSave?: () => void;\n /** Whether save is in progress */\n isSaving?: boolean;\n /** Callback to export dashboard (JSON console definition) */\n onExport?: () => void;\n /** Publish this dashboard as a reusable template. */\n onPublishTemplate?: () => void;\n /** Callback to export the board as a PNG image */\n onExportImage?: () => void;\n /** Callback to export the board as a PDF */\n onExportPdf?: () => void;\n /** Whether an image/PDF export is in progress */\n isExportingImage?: boolean;\n /** Callback to open share dialog */\n onShare?: () => void;\n}\n\n// ============================================================================\n// Component\n// ============================================================================\n\nexport const DashboardToolbar: FC<DashboardToolbarProps> = memo(function DashboardToolbar({\n dashboardId,\n title,\n onAddWidget,\n onTogglePalette,\n isPaletteOpen = false,\n onPaste,\n onSave,\n isSaving = false,\n onExport,\n onPublishTemplate,\n onExportImage,\n onExportPdf,\n isExportingImage = false,\n onShare,\n}) {\n const { hasPermission } = usePermissions();\n const { t } = useI18n();\n const isEditMode = useDashboardStore((state) => state.viewMode === 'edit');\n const toggleViewMode = useDashboardStore((state) => state.toggleViewMode);\n const zoomLevel = useDashboardStore((state) => state.zoomLevel);\n const setZoomLevel = useDashboardStore((state) => state.setZoomLevel);\n\n const clipboardWidgetId = useWidgetStore((state) => state.clipboardWidgetId);\n const hasClipboard = !!clipboardWidgetId;\n\n // Handle paste - use provided callback or fallback\n const handlePaste = useCallback(() => {\n if (hasClipboard && onPaste) {\n onPaste();\n }\n }, [hasClipboard, onPaste]);\n\n return (\n <TooltipProvider>\n {/*\n Structural band only — no surface of its own and, deliberately, no title:\n the board is named once, by the route header above this toolbar. Three\n labelled clusters (views · zoom · actions) replace what used to read as\n one continuous run of same-weight buttons.\n */}\n <Section\n emphasis=\"bare\"\n padding=\"none\"\n aria-label={title ? `Board toolbar — ${title}` : 'Board toolbar'}\n data-testid=\"dashboard-toolbar\"\n className=\"flex-shrink-0 border-b border-[var(--color-border-subtle)] bg-bg-surface px-4 py-2\"\n bodyClassName=\"flex flex-wrap items-center justify-between gap-x-4 gap-y-2\"\n >\n {/* Left section — saved views */}\n <div className=\"flex min-w-0 items-center gap-4\">\n {/* Saved Views Dropdown */}\n {dashboardId && <SavedViewsDropdown dashboardId={dashboardId} />}\n </div>\n\n {/* Center section - Zoom controls */}\n <div\n role=\"group\"\n aria-label=\"Zoom\"\n className=\"flex min-w-0 items-center gap-1 border-l border-[var(--color-border-subtle)] pl-4\"\n >\n <Tooltip>\n <TooltipTrigger asChild>\n <Button\n variant=\"ghost\"\n size=\"icon-sm\"\n onClick={() => setZoomLevel(Math.max(50, zoomLevel - 10))}\n disabled={zoomLevel <= 50}\n >\n <Minus className=\"size-4\" />\n </Button>\n </TooltipTrigger>\n <TooltipContent>{t('bigconsole.dashboards.toolbar.zoomOut', 'Zoom out')}</TooltipContent>\n </Tooltip>\n\n <span className=\"text-sm text-text-secondary w-12 text-center\">{zoomLevel}%</span>\n\n <Tooltip>\n <TooltipTrigger asChild>\n <Button\n variant=\"ghost\"\n size=\"icon-sm\"\n onClick={() => setZoomLevel(Math.min(200, zoomLevel + 10))}\n disabled={zoomLevel >= 200}\n >\n <Plus className=\"size-4\" />\n </Button>\n </TooltipTrigger>\n <TooltipContent>{t('bigconsole.dashboards.toolbar.zoomIn', 'Zoom in')}</TooltipContent>\n </Tooltip>\n\n <Tooltip>\n <TooltipTrigger asChild>\n <Button variant=\"ghost\" size=\"sm\" onClick={() => setZoomLevel(100)}>\n <RotateCcw className=\"size-3.5 mr-1\" />\n {t('bigconsole.dashboards.toolbar.reset', 'Reset')}\n </Button>\n </TooltipTrigger>\n <TooltipContent>{t('bigconsole.dashboards.toolbar.resetZoomTooltip', 'Reset zoom to 100%')}</TooltipContent>\n </Tooltip>\n </div>\n\n {/* Right section - Actions */}\n <div\n role=\"group\"\n aria-label=\"Board actions\"\n className=\"flex min-w-0 flex-wrap items-center justify-end gap-2 border-l border-[var(--color-border-subtle)] pl-4\"\n >\n {isEditMode && (\n <>\n {/* Widget Palette Toggle */}\n {onTogglePalette && (\n <Tooltip>\n <TooltipTrigger asChild>\n <Button variant={isPaletteOpen ? 'secondary' : 'outline'} size=\"sm\" onClick={onTogglePalette}>\n {isPaletteOpen ? <PanelLeftClose className=\"size-4\" /> : <PanelLeft className=\"size-4\" />}\n {t('bigconsole.dashboards.toolbar.widgets', 'Widgets')}\n </Button>\n </TooltipTrigger>\n <TooltipContent>\n {isPaletteOpen\n ? t('bigconsole.dashboards.toolbar.hidePalette', 'Hide widget palette')\n : t('bigconsole.dashboards.toolbar.showPalette', 'Show widget palette for drag & drop')}\n </TooltipContent>\n </Tooltip>\n )}\n\n {/* Paste */}\n <Tooltip>\n <TooltipTrigger asChild>\n <Button variant=\"ghost\" size=\"sm\" onClick={handlePaste} disabled={!hasClipboard}>\n <Clipboard className=\"size-4\" />\n {t('bigconsole.dashboards.toolbar.paste', 'Paste')}\n </Button>\n </TooltipTrigger>\n <TooltipContent>\n {t('bigconsole.dashboards.toolbar.pasteTooltip', 'Paste widget from clipboard')}\n </TooltipContent>\n </Tooltip>\n\n {/* Add Widget (Dialog) */}\n <PermissionButton permission={BIGCONSOLE_PERMISSIONS.WIDGET_CREATE} deniedBehavior=\"hide\">\n <Button size=\"sm\" onClick={onAddWidget}>\n <Plus className=\"size-4\" />\n {t('bigconsole.dashboards.toolbar.addWidget', 'Add Widget')}\n </Button>\n </PermissionButton>\n </>\n )}\n\n {/* Edit/View Mode Toggle */}\n <Button variant={isEditMode ? 'secondary' : 'outline'} size=\"sm\" onClick={toggleViewMode}>\n {isEditMode ? (\n <>\n <Eye className=\"size-4\" />\n {t('bigconsole.dashboards.toolbar.preview', 'Preview')}\n </>\n ) : (\n <>\n <Pencil className=\"size-4\" />\n {t('bigconsole.dashboards.toolbar.edit', 'Edit')}\n </>\n )}\n </Button>\n\n {/* Save */}\n {onSave && (\n <Button variant=\"outline\" size=\"sm\" onClick={onSave} disabled={isSaving}>\n {isSaving ? (\n <>\n <Spinner className=\"size-4\" />\n {t('bigconsole.dashboards.toolbar.saving', 'Saving...')}\n </>\n ) : (\n <>\n <Save className=\"size-4\" />\n {t('bigconsole.dashboards.toolbar.save', 'Save')}\n </>\n )}\n </Button>\n )}\n\n {/* Share */}\n {onShare && (\n <PermissionButton permission={BIGCONSOLE_PERMISSIONS.DASHBOARD_SHARE} deniedBehavior=\"hide\">\n <Tooltip>\n <TooltipTrigger asChild>\n <Button variant=\"outline\" size=\"sm\" onClick={onShare}>\n <Share2 className=\"size-4\" />\n {t('bigconsole.dashboards.toolbar.share', 'Share')}\n </Button>\n </TooltipTrigger>\n <TooltipContent>\n {t('bigconsole.dashboards.toolbar.shareTooltip', 'Share dashboard with others')}\n </TooltipContent>\n </Tooltip>\n </PermissionButton>\n )}\n\n {/* Publish as a store template */}\n {onPublishTemplate && (\n <PermissionButton permission={BIGCONSOLE_PERMISSIONS.DASHBOARD_PUBLISH} deniedBehavior=\"hide\">\n <Tooltip>\n <TooltipTrigger asChild>\n <Button variant=\"outline\" size=\"sm\" onClick={onPublishTemplate}>\n <Store className=\"size-4\" />\n <span className=\"hidden sm:inline\">{t('bigconsole.dashboards.toolbar.publish', 'Publish')}</span>\n </Button>\n </TooltipTrigger>\n <TooltipContent>\n {t('bigconsole.dashboards.toolbar.publishTooltip', 'Publish this dashboard as a reusable template')}\n </TooltipContent>\n </Tooltip>\n </PermissionButton>\n )}\n\n {/* Export — JSON definition */}\n {onExport && (\n <Tooltip>\n <TooltipTrigger asChild>\n <Button variant=\"outline\" size=\"sm\" onClick={onExport}>\n <Download className=\"size-4\" />\n {t('bigconsole.dashboards.toolbar.export', 'Export')}\n </Button>\n </TooltipTrigger>\n <TooltipContent>\n {t('bigconsole.dashboards.toolbar.exportTooltip', 'Export dashboard to JSON')}\n </TooltipContent>\n </Tooltip>\n )}\n\n {/* Export — board PNG */}\n {onExportImage && (\n <Tooltip>\n <TooltipTrigger asChild>\n <Button variant=\"outline\" size=\"icon-sm\" onClick={onExportImage} disabled={isExportingImage}>\n {isExportingImage ? <Spinner className=\"size-4\" /> : <ImageIcon className=\"size-4\" />}\n </Button>\n </TooltipTrigger>\n <TooltipContent>\n {t('bigconsole.dashboards.toolbar.exportPngTooltip', 'Export board as PNG image')}\n </TooltipContent>\n </Tooltip>\n )}\n\n {/* Export — board PDF */}\n {onExportPdf && (\n <Tooltip>\n <TooltipTrigger asChild>\n <Button variant=\"outline\" size=\"icon-sm\" onClick={onExportPdf} disabled={isExportingImage}>\n <FileText className=\"size-4\" />\n </Button>\n </TooltipTrigger>\n <TooltipContent>\n {t('bigconsole.dashboards.toolbar.exportPdfTooltip', 'Export board as PDF')}\n </TooltipContent>\n </Tooltip>\n )}\n </div>\n </Section>\n </TooltipProvider>\n );\n});\n\nexport default DashboardToolbar;\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DrilldownBreadcrumb.d.ts","sourceRoot":"","sources":["../../../../src/bigconsole/components/dashboard/DrilldownBreadcrumb.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAcH,UAAU,wBAAwB;IAChC,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2BAA2B;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,6BAA6B;IAC7B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,yCAAyC;IACzC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mCAAmC;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAYD,eAAO,MAAM,mBAAmB,gEAqM9B,CAAC;AAEH,eAAe,mBAAmB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DrilldownBreadcrumb.js","names":[],"sources":["../../../../src/bigconsole/components/dashboard/DrilldownBreadcrumb.tsx"],"sourcesContent":["/**\n * DrilldownBreadcrumb Component\n *\n * Displays a breadcrumb trail showing the drilldown navigation path.\n * Allows users to navigate back up the drilldown hierarchy.\n *\n * URL Parameters Used:\n * - drilldown_depth: Current depth in drilldown hierarchy\n * - drilldown_parent: Parent dashboard ID\n * - drilldown_path: JSON array of dashboard IDs in the path\n */\n\nimport { memo, useCallback, useEffect, useState } from 'react';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport { useBigConsoleNavigate } from '../../context';\nimport { useFilterUrlSync } from '../../hooks/useFilterUrlSync';\nimport { useDashboardStore } from '../../store';\nimport { ChevronRight, Home, ArrowLeft } from 'lucide-react';\nimport { SECTION_FOCUS_RING } from '../common';\n\n// ============================================================================\n// Types\n// ============================================================================\n\ninterface DrilldownBreadcrumbProps {\n /** Additional CSS classes */\n className?: string;\n /** Current dashboard ID */\n currentDashboardId?: string;\n /** Current dashboard name */\n currentDashboardName?: string;\n /** Whether to show the home/root link */\n showHome?: boolean;\n /** Base path for dashboard URLs */\n basePath?: string;\n}\n\ninterface BreadcrumbItem {\n id: string;\n name: string;\n href: string;\n}\n\n// ============================================================================\n// Component\n// ============================================================================\n\nexport const DrilldownBreadcrumb = memo(function DrilldownBreadcrumb({\n className = '',\n currentDashboardId,\n currentDashboardName,\n showHome = true,\n basePath = '/bigconsole/dashboards',\n}: DrilldownBreadcrumbProps) {\n const { t } = useI18n();\n const navigate = useBigConsoleNavigate();\n const { getDrilldownMetadata, isInDrilldown, drilldownDepth } = useFilterUrlSync();\n\n // Get dashboards from store for name lookup\n const dashboards = useDashboardStore((state) => state.dashboards);\n\n const [breadcrumbs, setBreadcrumbs] = useState<BreadcrumbItem[]>([]);\n\n // Build breadcrumb items from path\n useEffect(() => {\n if (!isInDrilldown) {\n setBreadcrumbs([]);\n return;\n }\n\n const metadata = getDrilldownMetadata();\n const { path } = metadata;\n\n if (path.length === 0) {\n setBreadcrumbs([]);\n return;\n }\n\n // Map path IDs to breadcrumb items\n const items: BreadcrumbItem[] = path.map((dashboardId) => {\n // Try to find dashboard name in store\n const dashboard = dashboards.get(dashboardId);\n const name =\n dashboard?.name ||\n t('bigconsole.dashboards.drilldownBreadcrumb.fallbackName', 'Dashboard {{id}}...', {\n id: dashboardId.slice(0, 8),\n });\n\n return {\n id: dashboardId,\n name,\n href: `${basePath}/${dashboardId}`,\n };\n });\n\n setBreadcrumbs(items);\n }, [isInDrilldown, getDrilldownMetadata, dashboards, basePath, t]);\n\n // Handle navigation to a breadcrumb item\n const handleNavigate = useCallback(\n (item: BreadcrumbItem, index: number) => {\n // Build URL preserving context up to this point\n const metadata = getDrilldownMetadata();\n const newPath = metadata.path.slice(0, index);\n const newDepth = index;\n\n // Build URL with updated drilldown params\n const url = new URL(item.href, window.location.origin);\n url.searchParams.set('drilldown_depth', String(newDepth));\n if (newPath.length > 0) {\n url.searchParams.set('drilldown_path', encodeURIComponent(JSON.stringify(newPath)));\n }\n if (index > 0 && newPath.length > 0) {\n url.searchParams.set('drilldown_parent', newPath[newPath.length - 1]);\n }\n\n navigate(url.pathname + url.search);\n },\n [getDrilldownMetadata, navigate]\n );\n\n // Handle back button click. When the drilldown was reached inside this app\n // session, step back through browser history: that restores the exact\n // origin (its page, filters and scroll) rather than rebuilding a URL that\n // would land on the parent's first page (BOFF-7625). React Router records\n // the history index in `history.state.idx`.\n const handleBack = useCallback(() => {\n const historyIndex = (window.history.state as { idx?: unknown } | null)?.idx;\n if (typeof historyIndex === 'number' && historyIndex > 0) {\n window.history.back();\n return;\n }\n\n const metadata = getDrilldownMetadata();\n\n if (metadata.parent) {\n // Navigate to parent dashboard\n const newPath = metadata.path.slice(0, -1);\n const newDepth = metadata.depth - 1;\n\n const url = new URL(`${basePath}/${metadata.parent}`, window.location.origin);\n url.searchParams.set('drilldown_depth', String(newDepth));\n if (newPath.length > 0) {\n url.searchParams.set('drilldown_path', encodeURIComponent(JSON.stringify(newPath)));\n url.searchParams.set('drilldown_parent', newPath[newPath.length - 1]);\n }\n\n navigate(url.pathname + url.search);\n } else if (breadcrumbs.length > 0) {\n // Navigate to last breadcrumb\n const lastBreadcrumb = breadcrumbs[breadcrumbs.length - 1];\n handleNavigate(lastBreadcrumb, breadcrumbs.length - 1);\n }\n }, [getDrilldownMetadata, basePath, navigate, breadcrumbs, handleNavigate]);\n\n // Handle home click\n const handleHomeClick = useCallback(\n (e: React.MouseEvent) => {\n e.preventDefault();\n navigate(basePath);\n },\n [navigate, basePath]\n );\n\n // Don't render if not in drilldown mode\n if (!isInDrilldown) {\n return null;\n }\n\n return (\n <nav\n // Recessed on purpose: this is navigational CONTEXT, not chrome you act\n // on, so it reads a step below the route header and the toolbar it sits\n // between instead of being a third identical bar. Wraps rather than\n // overflowing once the trail gets deep on a narrow viewport.\n className={`flex min-w-0 flex-wrap items-center gap-x-2 gap-y-1 border-b border-[var(--color-border-subtle)] bg-bg-sunken px-4 py-1.5 ${className}`}\n aria-label={t('bigconsole.dashboards.drilldownBreadcrumb.ariaLabel', 'Drilldown breadcrumb')}\n data-testid=\"drilldown-breadcrumb\"\n >\n {/* Back button */}\n <button\n type=\"button\"\n onClick={handleBack}\n className={`flex min-h-control-sm items-center gap-1 rounded-button px-2 py-1 text-sm font-medium text-text-link motion-safe:transition-colors hover:bg-bg-accentSubtle ${SECTION_FOCUS_RING}`}\n aria-label={t('bigconsole.dashboards.drilldownBreadcrumb.back', 'Go back')}\n >\n <ArrowLeft className=\"w-4 h-4\" />\n <span className=\"hidden sm:inline\">{t('bigconsole.dashboards.drilldownBreadcrumb.backLabel', 'Back')}</span>\n </button>\n\n <span className=\"text-text-muted\" aria-hidden=\"true\">\n |\n </span>\n\n {/* Home link */}\n {showHome && (\n <>\n <a\n href={basePath}\n onClick={handleHomeClick}\n className={`flex min-h-control-sm items-center gap-1 rounded-button px-1 text-sm text-text-secondary motion-safe:transition-colors hover:text-text-primary ${SECTION_FOCUS_RING}`}\n aria-label={t('bigconsole.dashboards.drilldownBreadcrumb.home', 'Home')}\n >\n <Home className=\"w-4 h-4\" />\n <span className=\"hidden sm:inline\">\n {t('bigconsole.dashboards.drilldownBreadcrumb.dashboards', 'Dashboards')}\n </span>\n </a>\n <ChevronRight className=\"w-4 h-4 shrink-0 text-text-muted\" aria-hidden=\"true\" />\n </>\n )}\n\n {/* Breadcrumb items */}\n {breadcrumbs.map((item, index) => (\n <div key={item.id} className=\"flex min-w-0 items-center gap-2\">\n <button\n type=\"button\"\n onClick={() => handleNavigate(item, index)}\n className={`min-h-control-sm max-w-[150px] truncate rounded-button px-1 text-sm text-text-secondary motion-safe:transition-colors hover:text-text-primary hover:underline ${SECTION_FOCUS_RING}`}\n title={item.name}\n >\n {item.name}\n </button>\n <ChevronRight className=\"w-4 h-4 shrink-0 text-text-muted\" aria-hidden=\"true\" />\n </div>\n ))}\n\n {/* Current dashboard (non-clickable) */}\n {currentDashboardName && (\n <span\n aria-current=\"page\"\n className=\"max-w-[200px] truncate text-sm font-medium text-text-primary\"\n title={currentDashboardName}\n >\n {currentDashboardName}\n </span>\n )}\n\n {/* Depth indicator */}\n <span className=\"ml-auto shrink-0 rounded-pill bg-bg-surface px-2 py-0.5 text-xs text-text-muted\">\n {t('bigconsole.dashboards.drilldownBreadcrumb.level', 'Level {{depth}}', { depth: drilldownDepth ?? '' })}\n </span>\n </nav>\n );\n});\n\nexport default DrilldownBreadcrumb;\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ExportDashboardDialog.d.ts","sourceRoot":"","sources":["../../../../src/bigconsole/components/dashboard/ExportDashboardDialog.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,EAAE,EAA0C,MAAM,OAAO,CAAC;AAiBxE,MAAM,WAAW,0BAA0B;IACzC,6BAA6B;IAC7B,MAAM,EAAE,OAAO,CAAC;IAChB,6BAA6B;IAC7B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,kCAAkC;IAClC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qCAAqC;IACrC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,oCAAoC;IACpC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AAkOD,eAAO,MAAM,qBAAqB,EAAE,EAAE,CAAC,0BAA0B,CAsR/D,CAAC;AAEH,eAAe,qBAAqB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ExportDashboardDialog.js","names":[],"sources":["../../../../src/bigconsole/components/dashboard/ExportDashboardDialog.tsx"],"sourcesContent":["/**\n * ExportDashboardDialog Component\n *\n * Modal dialog for exporting a dashboard to JSON.\n * Uses inline styles for consistent styling across environments.\n */\n\nimport { type FC, memo, useState, useCallback, useEffect } from 'react';\nimport {\n ResponsiveDialog as Dialog,\n ResponsiveDialogContent as DialogContent,\n ResponsiveDialogTitle as DialogTitle,\n ResponsiveDialogDescription as DialogDescription,\n} from '@burdenoff/fe-libs/ui';\nimport { Spinner } from '@burdenoff/fe-libs/ui';\nimport { Download, FileJson, Check, Copy } from 'lucide-react';\nimport { Section, SectionStack } from '../common';\nimport { useExportDashboard, type ExportDashboardOptions } from '../../hooks';\nimport { nativeCopyText } from '../../../utils/nativeBridge';\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface ExportDashboardDialogProps {\n /** Whether dialog is open */\n isOpen: boolean;\n /** Dashboard ID to export */\n dashboardId: string | null;\n /** Dashboard name for filename */\n dashboardName?: string;\n /** Callback when dialog is closed */\n onClose: () => void;\n /** Callback when export succeeds */\n onSuccess?: () => void;\n}\n\n// ============================================================================\n// Styles\n// ============================================================================\n\nconst styles = {\n dialogContent: {\n // Wider than the old 450px so the JSON preview has a usable line length;\n // still capped to the viewport on a phone.\n maxWidth: '640px',\n width: '95vw',\n maxHeight: '90dvh',\n padding: 0,\n borderRadius: '12px',\n overflow: 'hidden',\n display: 'flex',\n flexDirection: 'column',\n } as React.CSSProperties,\n header: {\n display: 'flex',\n alignItems: 'center',\n gap: '12px',\n padding: '20px 24px',\n borderBottom: '1px solid var(--color-border-subtle)',\n backgroundColor: 'var(--color-bg-sunken)',\n } as React.CSSProperties,\n iconWrapper: {\n width: '44px',\n height: '44px',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: '10px',\n backgroundColor: 'var(--color-action-primary-bg)',\n color: 'var(--color-action-primary-text)',\n flexShrink: 0,\n } as React.CSSProperties,\n headerText: {\n flex: 1,\n } as React.CSSProperties,\n title: {\n fontSize: '16px',\n fontWeight: 600,\n color: 'var(--color-text-primary)',\n margin: 0,\n } as React.CSSProperties,\n description: {\n fontSize: '13px',\n color: 'var(--color-text-secondary)',\n margin: '4px 0 0 0',\n } as React.CSSProperties,\n content: {\n padding: '20px 24px',\n flex: '1 1 auto',\n minHeight: 0,\n overflowY: 'auto',\n } as React.CSSProperties,\n previewBlock: {\n margin: 0,\n maxHeight: '260px',\n overflow: 'auto',\n padding: '12px',\n borderRadius: '8px',\n border: '1px solid var(--color-border-subtle)',\n backgroundColor: 'var(--color-bg-sunken)',\n color: 'var(--color-text-primary)',\n fontFamily: 'var(--font-family-mono, monospace)',\n fontSize: '12px',\n lineHeight: 1.5,\n whiteSpace: 'pre',\n tabSize: 2,\n } as React.CSSProperties,\n previewAction: {\n display: 'inline-flex',\n alignItems: 'center',\n gap: '6px',\n minHeight: 'var(--size-controlHeight-sm)',\n padding: '4px 10px',\n fontSize: '12px',\n fontWeight: 500,\n borderRadius: '6px',\n border: '1px solid var(--color-border-subtle)',\n backgroundColor: 'var(--color-bg-surface)',\n color: 'var(--color-text-secondary)',\n cursor: 'pointer',\n } as React.CSSProperties,\n optionItem: {\n display: 'flex',\n alignItems: 'flex-start',\n gap: '12px',\n padding: '12px',\n borderRadius: '8px',\n marginBottom: '8px',\n backgroundColor: 'var(--color-bg-sunken)',\n border: '1px solid var(--color-border-subtle)',\n cursor: 'pointer',\n transition: 'all 0.15s ease',\n } as React.CSSProperties,\n optionItemActive: {\n backgroundColor: 'var(--color-action-primary-bg)',\n borderColor: 'var(--color-action-primary-bg)',\n } as React.CSSProperties,\n checkbox: {\n width: '20px',\n height: '20px',\n borderRadius: '4px',\n border: '2px solid var(--color-border-subtle)',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n marginTop: '2px',\n transition: 'all 0.15s ease',\n cursor: 'pointer',\n } as React.CSSProperties,\n checkboxChecked: {\n backgroundColor: 'var(--color-action-primary-bg)',\n borderColor: 'var(--color-action-primary-bg)',\n } as React.CSSProperties,\n optionText: {\n flex: 1,\n } as React.CSSProperties,\n optionLabel: {\n fontSize: '14px',\n fontWeight: 500,\n color: 'var(--color-text-primary)',\n margin: 0,\n } as React.CSSProperties,\n optionDescription: {\n fontSize: '12px',\n color: 'var(--color-text-secondary)',\n margin: '4px 0 0 0',\n } as React.CSSProperties,\n footer: {\n display: 'flex',\n justifyContent: 'flex-end',\n gap: '12px',\n padding: '16px 24px',\n borderTop: '1px solid var(--color-border-subtle)',\n backgroundColor: 'var(--color-bg-sunken)',\n } as React.CSSProperties,\n cancelButton: {\n padding: '10px 20px',\n fontSize: '14px',\n fontWeight: 500,\n borderRadius: '8px',\n border: '1px solid var(--color-border-subtle)',\n backgroundColor: 'var(--color-bg-surface)',\n color: 'var(--color-text-secondary)',\n cursor: 'pointer',\n transition: 'all 0.15s ease',\n } as React.CSSProperties,\n exportButton: {\n display: 'flex',\n alignItems: 'center',\n gap: '8px',\n padding: '10px 20px',\n fontSize: '14px',\n fontWeight: 500,\n borderRadius: '8px',\n border: 'none',\n backgroundColor: 'var(--color-action-primary-bg)',\n color: 'var(--color-action-primary-text)',\n cursor: 'pointer',\n transition: 'all 0.15s ease',\n } as React.CSSProperties,\n exportButtonDisabled: {\n backgroundColor: 'var(--color-action-primary-bg)',\n opacity: 0.5,\n cursor: 'not-allowed',\n } as React.CSSProperties,\n};\n\n// ============================================================================\n// Custom Checkbox Component\n// ============================================================================\n\ninterface CustomCheckboxProps {\n checked: boolean;\n onChange: (checked: boolean) => void;\n disabled?: boolean;\n label: string;\n description: string;\n}\n\nconst CustomCheckbox: FC<CustomCheckboxProps> = memo(function CustomCheckbox({\n checked,\n onChange,\n disabled,\n label,\n description,\n}) {\n return (\n <label\n style={{\n ...styles.optionItem,\n ...(checked ? styles.optionItemActive : {}),\n opacity: disabled ? 0.6 : 1,\n cursor: disabled ? 'not-allowed' : 'pointer',\n }}\n >\n <input\n type=\"checkbox\"\n checked={checked}\n onChange={(event) => onChange(event.target.checked)}\n disabled={disabled}\n aria-label={label}\n style={{ width: '18px', height: '18px', flexShrink: 0, accentColor: 'var(--color-action-primary-bg)' }}\n />\n <span style={styles.optionText}>\n <span className=\"block\" style={styles.optionLabel}>\n {label}\n </span>\n <span className=\"block\" style={styles.optionDescription}>\n {description}\n </span>\n </span>\n </label>\n );\n});\n\n// ============================================================================\n// Component\n// ============================================================================\n\nexport const ExportDashboardDialog: FC<ExportDashboardDialogProps> = memo(function ExportDashboardDialog({\n isOpen,\n dashboardId,\n dashboardName,\n onClose,\n onSuccess,\n}) {\n const [includeDataSources, setIncludeDataSources] = useState(false);\n const [includeWebhooks, setIncludeWebhooks] = useState(false);\n const [prettyPrint, setPrettyPrint] = useState(true);\n /**\n * The preview and the \"Copied\" flag are keyed by the option set that produced\n * them and DERIVED, not reset in an effect: toggling an option must invalidate\n * both instantly, and clearing them from the effect body would cascade an\n * extra render on every open (`react-hooks/set-state-in-effect`).\n */\n const [previewResult, setPreviewResult] = useState<{ key: string; json: string | null } | null>(null);\n const [copiedKey, setCopiedKey] = useState<string | null>(null);\n\n const { loading, error, downloadDashboard, clearError } = useExportDashboard();\n\n /**\n * The preview runs on its OWN hook instance. `useExportDashboard` keeps a\n * single `loading`/`error` pair per instance, so sharing one would make the\n * footer button read \"Exporting…\" while only the preview was refreshing, and\n * a preview failure would look like a failed download.\n */\n const { loading: previewLoading, error: previewError, exportDashboard: fetchPreview } = useExportDashboard();\n\n /** Identity of the current option set — one export document per combination. */\n const previewKey = `${dashboardId}|${includeDataSources}|${includeWebhooks}|${prettyPrint}`;\n const previewJson = previewResult?.key === previewKey ? previewResult.json : null;\n const copied = copiedKey === previewKey;\n\n // Reset state when dialog opens\n useEffect(() => {\n if (isOpen) {\n setIncludeDataSources(false);\n setIncludeWebhooks(false);\n setPrettyPrint(true);\n clearError();\n }\n }, [isOpen, clearError]);\n\n /**\n * Load the exact document the Download button will write, so what is reviewed\n * IS what is exported — same query, same options. Re-runs when an option\n * changes because each option changes the document.\n */\n useEffect(() => {\n if (!isOpen || !dashboardId) return;\n\n let cancelled = false;\n\n void fetchPreview(dashboardId, {\n includeDataSourceRefs: includeDataSources,\n includeWebhookMappings: includeWebhooks,\n prettyPrint,\n }).then((content) => {\n // Guard the stale response: options can change while a fetch is in flight.\n if (!cancelled) setPreviewResult({ key: previewKey, json: content });\n });\n\n return () => {\n cancelled = true;\n };\n }, [isOpen, dashboardId, includeDataSources, includeWebhooks, prettyPrint, previewKey, fetchPreview]);\n\n const handleCopyPreview = useCallback(async () => {\n if (!previewJson) return;\n const ok = await nativeCopyText(previewJson);\n if (ok) {\n setCopiedKey(previewKey);\n window.setTimeout(() => setCopiedKey(null), 2000);\n }\n }, [previewJson, previewKey]);\n\n // Handle export\n const handleExport = useCallback(async () => {\n if (!dashboardId || !previewJson || previewLoading) return;\n\n const options: ExportDashboardOptions = {\n includeDataSourceRefs: includeDataSources,\n includeWebhookMappings: includeWebhooks,\n prettyPrint,\n };\n\n const success = await downloadDashboard(dashboardId, dashboardName, { ...options, preparedContent: previewJson });\n\n if (success) {\n onSuccess?.();\n onClose();\n }\n }, [\n dashboardId,\n dashboardName,\n includeDataSources,\n includeWebhooks,\n prettyPrint,\n downloadDashboard,\n previewJson,\n previewLoading,\n onSuccess,\n onClose,\n ]);\n\n // Don't render if no dashboard\n if (!dashboardId) return null;\n\n return (\n <Dialog open={isOpen} onOpenChange={(open) => !open && !loading && onClose()}>\n <DialogContent style={styles.dialogContent}>\n {/* Header */}\n <div style={styles.header}>\n <div style={styles.iconWrapper}>\n <FileJson style={{ width: '22px', height: '22px' }} />\n </div>\n <div style={styles.headerText}>\n <DialogTitle asChild>\n <h2 style={styles.title}>Export Dashboard</h2>\n </DialogTitle>\n <DialogDescription asChild>\n <p style={styles.description}>Export your dashboard configuration to a JSON file.</p>\n </DialogDescription>\n </div>\n </div>\n\n {/* Content */}\n <div style={styles.content}>\n <SectionStack>\n {/* What is being exported — supporting context, recessed. */}\n {dashboardName && (\n <Section\n headingLevel={3}\n emphasis=\"muted\"\n padding=\"compact\"\n title=\"Exporting\"\n description={dashboardName}\n data-testid=\"export-target\"\n />\n )}\n\n {/* The choices you actually make here — one bounded group instead of\n a floating label above three unbounded rows. */}\n <Section\n headingLevel={3}\n title=\"Export options\"\n description=\"What to include in the JSON file.\"\n data-testid=\"export-options\"\n bodyClassName=\"flex flex-col gap-form-gap\"\n >\n <CustomCheckbox\n checked={includeDataSources}\n onChange={setIncludeDataSources}\n disabled\n label=\"Include Data Source References\"\n description=\"Not available for exports from this session.\"\n />\n\n <CustomCheckbox\n checked={includeWebhooks}\n onChange={setIncludeWebhooks}\n disabled\n label=\"Include Webhook Mappings\"\n description=\"Not available for exports from this session.\"\n />\n\n <CustomCheckbox\n checked={prettyPrint}\n onChange={setPrettyPrint}\n disabled={loading}\n label=\"Format JSON (Pretty Print)\"\n description=\"Makes the export file human-readable (larger file size)\"\n />\n </Section>\n\n {/* The document itself. Reviewing before download is the point of\n the dialog — the options above only make sense once you can see\n what they change. */}\n <Section\n headingLevel={3}\n title=\"Preview\"\n description=\"The exact JSON the download writes. Credentials are never serialized — only data source references.\"\n data-testid=\"export-preview\"\n actions={\n previewJson ? (\n <button type=\"button\" style={styles.previewAction} onClick={handleCopyPreview}>\n {copied ? (\n <Check style={{ width: '14px', height: '14px' }} aria-hidden=\"true\" />\n ) : (\n <Copy style={{ width: '14px', height: '14px' }} aria-hidden=\"true\" />\n )}\n {copied ? 'Copied' : 'Copy'}\n </button>\n ) : undefined\n }\n >\n {previewLoading && !previewJson && (\n <div\n style={{ display: 'flex', alignItems: 'center', gap: '8px', color: 'var(--color-text-secondary)' }}\n >\n <Spinner style={{ width: '16px', height: '16px' }} />\n <span style={{ fontSize: '13px' }}>Building the export…</span>\n </div>\n )}\n\n {!previewLoading && previewError && (\n <p style={{ margin: 0, fontSize: '13px', color: 'var(--color-status-error-text)' }}>\n Preview unavailable: {previewError.message}\n </p>\n )}\n\n {previewJson && (\n <pre style={styles.previewBlock} data-testid=\"export-preview-json\">\n {previewJson}\n </pre>\n )}\n </Section>\n\n {/* Error */}\n {error && (\n <Section\n headingLevel={3}\n tone=\"danger\"\n padding=\"compact\"\n title=\"Export failed\"\n description={error.message}\n data-testid=\"export-error\"\n />\n )}\n </SectionStack>\n </div>\n\n {/* Footer */}\n <div style={styles.footer}>\n <button\n style={styles.cancelButton}\n onClick={onClose}\n disabled={loading}\n onMouseEnter={(e) => {\n e.currentTarget.style.backgroundColor = 'var(--color-bg-muted)';\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.backgroundColor = 'var(--color-bg-surface)';\n }}\n >\n Cancel\n </button>\n <button\n style={{\n ...styles.exportButton,\n ...(loading || previewLoading || !previewJson ? styles.exportButtonDisabled : {}),\n }}\n onClick={handleExport}\n disabled={loading || previewLoading || !previewJson}\n onMouseEnter={(e) => {\n if (!loading) e.currentTarget.style.opacity = '0.9';\n }}\n onMouseLeave={(e) => {\n if (!loading) e.currentTarget.style.opacity = '1';\n }}\n >\n {loading ? (\n <>\n <Spinner style={{ width: '16px', height: '16px' }} />\n Exporting...\n </>\n ) : (\n <>\n <Download style={{ width: '16px', height: '16px' }} />\n Download Export\n </>\n )}\n </button>\n </div>\n </DialogContent>\n </Dialog>\n );\n});\n\nexport default ExportDashboardDialog;\n"],"mappings":";;;;;;;;;;AAyCA,IAAM,IAAS;CACb,eAAe;EAGb,UAAU;EACV,OAAO;EACP,WAAW;EACX,SAAS;EACT,cAAc;EACd,UAAU;EACV,SAAS;EACT,eAAe;EAChB;CACD,QAAQ;EACN,SAAS;EACT,YAAY;EACZ,KAAK;EACL,SAAS;EACT,cAAc;EACd,iBAAiB;EAClB;CACD,aAAa;EACX,OAAO;EACP,QAAQ;EACR,SAAS;EACT,YAAY;EACZ,gBAAgB;EAChB,cAAc;EACd,iBAAiB;EACjB,OAAO;EACP,YAAY;EACb;CACD,YAAY,EACV,MAAM,GACP;CACD,OAAO;EACL,UAAU;EACV,YAAY;EACZ,OAAO;EACP,QAAQ;EACT;CACD,aAAa;EACX,UAAU;EACV,OAAO;EACP,QAAQ;EACT;CACD,SAAS;EACP,SAAS;EACT,MAAM;EACN,WAAW;EACX,WAAW;EACZ;CACD,cAAc;EACZ,QAAQ;EACR,WAAW;EACX,UAAU;EACV,SAAS;EACT,cAAc;EACd,QAAQ;EACR,iBAAiB;EACjB,OAAO;EACP,YAAY;EACZ,UAAU;EACV,YAAY;EACZ,YAAY;EACZ,SAAS;EACV;CACD,eAAe;EACb,SAAS;EACT,YAAY;EACZ,KAAK;EACL,WAAW;EACX,SAAS;EACT,UAAU;EACV,YAAY;EACZ,cAAc;EACd,QAAQ;EACR,iBAAiB;EACjB,OAAO;EACP,QAAQ;EACT;CACD,YAAY;EACV,SAAS;EACT,YAAY;EACZ,KAAK;EACL,SAAS;EACT,cAAc;EACd,cAAc;EACd,iBAAiB;EACjB,QAAQ;EACR,QAAQ;EACR,YAAY;EACb;CACD,kBAAkB;EAChB,iBAAiB;EACjB,aAAa;EACd;CACD,UAAU;EACR,OAAO;EACP,QAAQ;EACR,cAAc;EACd,QAAQ;EACR,SAAS;EACT,YAAY;EACZ,gBAAgB;EAChB,YAAY;EACZ,WAAW;EACX,YAAY;EACZ,QAAQ;EACT;CACD,iBAAiB;EACf,iBAAiB;EACjB,aAAa;EACd;CACD,YAAY,EACV,MAAM,GACP;CACD,aAAa;EACX,UAAU;EACV,YAAY;EACZ,OAAO;EACP,QAAQ;EACT;CACD,mBAAmB;EACjB,UAAU;EACV,OAAO;EACP,QAAQ;EACT;CACD,QAAQ;EACN,SAAS;EACT,gBAAgB;EAChB,KAAK;EACL,SAAS;EACT,WAAW;EACX,iBAAiB;EAClB;CACD,cAAc;EACZ,SAAS;EACT,UAAU;EACV,YAAY;EACZ,cAAc;EACd,QAAQ;EACR,iBAAiB;EACjB,OAAO;EACP,QAAQ;EACR,YAAY;EACb;CACD,cAAc;EACZ,SAAS;EACT,YAAY;EACZ,KAAK;EACL,SAAS;EACT,UAAU;EACV,YAAY;EACZ,cAAc;EACd,QAAQ;EACR,iBAAiB;EACjB,OAAO;EACP,QAAQ;EACR,YAAY;EACb;CACD,sBAAsB;EACpB,iBAAiB;EACjB,SAAS;EACT,QAAQ;EACT;CACF,EAcK,IAA0C,EAAK,SAAwB,EAC3E,YACA,aACA,aACA,UACA,kBACC;AACD,QACE,kBAAC,SAAD;EACE,OAAO;GACL,GAAG,EAAO;GACV,GAAI,IAAU,EAAO,mBAAmB,EAAE;GAC1C,SAAS,IAAW,KAAM;GAC1B,QAAQ,IAAW,gBAAgB;GACpC;YANH,CAQE,kBAAC,SAAD;GACE,MAAK;GACI;GACT,WAAW,MAAU,EAAS,EAAM,OAAO,QAAQ;GACzC;GACV,cAAY;GACZ,OAAO;IAAE,OAAO;IAAQ,QAAQ;IAAQ,YAAY;IAAG,aAAa;IAAkC;GACtG,CAAA,EACF,kBAAC,QAAD;GAAM,OAAO,EAAO;aAApB,CACE,kBAAC,QAAD;IAAM,WAAU;IAAQ,OAAO,EAAO;cACnC;IACI,CAAA,EACP,kBAAC,QAAD;IAAM,WAAU;IAAQ,OAAO,EAAO;cACnC;IACI,CAAA,CACF;KACD;;EAEV,EAMW,IAAwD,EAAK,SAA+B,EACvG,WACA,gBACA,kBACA,YACA,gBACC;CACD,IAAM,CAAC,GAAoB,KAAyB,EAAS,GAAM,EAC7D,CAAC,GAAiB,KAAsB,EAAS,GAAM,EACvD,CAAC,GAAa,KAAkB,EAAS,GAAK,EAO9C,CAAC,GAAe,KAAoB,EAAsD,KAAK,EAC/F,CAAC,GAAW,KAAgB,EAAwB,KAAK,EAEzD,EAAE,YAAS,UAAO,sBAAmB,kBAAe,GAAoB,EAQxE,EAAE,SAAS,GAAgB,OAAO,GAAc,iBAAiB,MAAiB,GAAoB,EAGtG,IAAa,GAAG,EAAY,GAAG,EAAmB,GAAG,EAAgB,GAAG,KACxE,IAAc,GAAe,QAAQ,IAAa,EAAc,OAAO,MACvE,IAAS,MAAc;AAiB7B,CAdA,QAAgB;AACd,EAAI,MACF,EAAsB,GAAM,EAC5B,EAAmB,GAAM,EACzB,EAAe,GAAK,EACpB,GAAY;IAEb,CAAC,GAAQ,EAAW,CAAC,EAOxB,QAAgB;AACd,MAAI,CAAC,KAAU,CAAC,EAAa;EAE7B,IAAI,IAAY;AAWhB,SATK,EAAa,GAAa;GAC7B,uBAAuB;GACvB,wBAAwB;GACxB;GACD,CAAC,CAAC,MAAM,MAAY;AAEnB,GAAK,KAAW,EAAiB;IAAE,KAAK;IAAY,MAAM;IAAS,CAAC;IACpE,QAEW;AACX,OAAY;;IAEb;EAAC;EAAQ;EAAa;EAAoB;EAAiB;EAAa;EAAY;EAAa,CAAC;CAErG,IAAM,IAAoB,EAAY,YAAY;AAC3C,OACM,MAAM,EAAe,EAAY,KAE1C,EAAa,EAAW,EACxB,OAAO,iBAAiB,EAAa,KAAK,EAAE,IAAK;IAElD,CAAC,GAAa,EAAW,CAAC,EAGvB,IAAe,EAAY,YAAY;AACvC,GAAC,KAAe,CAAC,KAAe,KAQpB,MAAM,EAAkB,GAAa,GAAe;GALlE,uBAAuB;GACvB,wBAAwB;GACxB;GAGgF,iBAAiB;GAAa,CAAC,KAG/G,KAAa,EACb,GAAS;IAEV;EACD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CAAC;AAKF,QAFK,IAGH,kBAAC,GAAD;EAAQ,MAAM;EAAQ,eAAe,MAAS,CAAC,KAAQ,CAAC,KAAW,GAAS;YAC1E,kBAAC,GAAD;GAAe,OAAO,EAAO;aAA7B;IAEE,kBAAC,OAAD;KAAK,OAAO,EAAO;eAAnB,CACE,kBAAC,OAAD;MAAK,OAAO,EAAO;gBACjB,kBAAC,GAAD,EAAU,OAAO;OAAE,OAAO;OAAQ,QAAQ;OAAQ,EAAI,CAAA;MAClD,CAAA,EACN,kBAAC,OAAD;MAAK,OAAO,EAAO;gBAAnB,CACE,kBAAC,GAAD;OAAa,SAAA;iBACX,kBAAC,MAAD;QAAI,OAAO,EAAO;kBAAO;QAAqB,CAAA;OAClC,CAAA,EACd,kBAAC,GAAD;OAAmB,SAAA;iBACjB,kBAAC,KAAD;QAAG,OAAO,EAAO;kBAAa;QAAuD,CAAA;OACnE,CAAA,CAChB;QACF;;IAGN,kBAAC,OAAD;KAAK,OAAO,EAAO;eACjB,kBAAC,GAAD,EAAA,UAAA;MAEG,KACC,kBAAC,GAAD;OACE,cAAc;OACd,UAAS;OACT,SAAQ;OACR,OAAM;OACN,aAAa;OACb,eAAY;OACZ,CAAA;MAKJ,kBAAC,GAAD;OACE,cAAc;OACd,OAAM;OACN,aAAY;OACZ,eAAY;OACZ,eAAc;iBALhB;QAOE,kBAAC,GAAD;SACE,SAAS;SACT,UAAU;SACV,UAAA;SACA,OAAM;SACN,aAAY;SACZ,CAAA;QAEF,kBAAC,GAAD;SACE,SAAS;SACT,UAAU;SACV,UAAA;SACA,OAAM;SACN,aAAY;SACZ,CAAA;QAEF,kBAAC,GAAD;SACE,SAAS;SACT,UAAU;SACV,UAAU;SACV,OAAM;SACN,aAAY;SACZ,CAAA;QACM;;MAKV,kBAAC,GAAD;OACE,cAAc;OACd,OAAM;OACN,aAAY;OACZ,eAAY;OACZ,SACE,IACE,kBAAC,UAAD;QAAQ,MAAK;QAAS,OAAO,EAAO;QAAe,SAAS;kBAA5D,CAEI,EADD,IACE,IAEA,GAFD;SAAO,OAAO;UAAE,OAAO;UAAQ,QAAQ;UAAQ;SAAE,eAAY;SAAS,CAED,EAEtE,IAAS,WAAW,OACd;YACP,KAAA;iBAfR;QAkBG,KAAkB,CAAC,KAClB,kBAAC,OAAD;SACE,OAAO;UAAE,SAAS;UAAQ,YAAY;UAAU,KAAK;UAAO,OAAO;UAA+B;mBADpG,CAGE,kBAAC,GAAD,EAAS,OAAO;UAAE,OAAO;UAAQ,QAAQ;UAAQ,EAAI,CAAA,EACrD,kBAAC,QAAD;UAAM,OAAO,EAAE,UAAU,QAAQ;oBAAE;UAA2B,CAAA,CAC1D;;QAGP,CAAC,KAAkB,KAClB,kBAAC,KAAD;SAAG,OAAO;UAAE,QAAQ;UAAG,UAAU;UAAQ,OAAO;UAAkC;mBAAlF,CAAoF,yBAC5D,EAAa,QACjC;;QAGL,KACC,kBAAC,OAAD;SAAK,OAAO,EAAO;SAAc,eAAY;mBAC1C;SACG,CAAA;QAEA;;MAGT,KACC,kBAAC,GAAD;OACE,cAAc;OACd,MAAK;OACL,SAAQ;OACR,OAAM;OACN,aAAa,EAAM;OACnB,eAAY;OACZ,CAAA;MAES,EAAA,CAAA;KACX,CAAA;IAGN,kBAAC,OAAD;KAAK,OAAO,EAAO;eAAnB,CACE,kBAAC,UAAD;MACE,OAAO,EAAO;MACd,SAAS;MACT,UAAU;MACV,eAAe,MAAM;AACnB,SAAE,cAAc,MAAM,kBAAkB;;MAE1C,eAAe,MAAM;AACnB,SAAE,cAAc,MAAM,kBAAkB;;gBAE3C;MAEQ,CAAA,EACT,kBAAC,UAAD;MACE,OAAO;OACL,GAAG,EAAO;OACV,GAAI,KAAW,KAAkB,CAAC,IAAc,EAAO,uBAAuB,EAAE;OACjF;MACD,SAAS;MACT,UAAU,KAAW,KAAkB,CAAC;MACxC,eAAe,MAAM;AACnB,OAAK,MAAS,EAAE,cAAc,MAAM,UAAU;;MAEhD,eAAe,MAAM;AACnB,OAAK,MAAS,EAAE,cAAc,MAAM,UAAU;;gBAG/C,IACC,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD,EAAS,OAAO;OAAE,OAAO;OAAQ,QAAQ;OAAQ,EAAI,CAAA,EAAA,eAEpD,EAAA,CAAA,GAEH,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD,EAAU,OAAO;OAAE,OAAO;OAAQ,QAAQ;OAAQ,EAAI,CAAA,EAAA,kBAErD,EAAA,CAAA;MAEE,CAAA,CACL;;IACQ;;EACT,CAAA,GAzKc;EA2KzB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FilterChip.d.ts","sourceRoot":"","sources":["../../../../../src/bigconsole/components/dashboard/GlobalFiltersBar/FilterChip.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAsC,MAAM,OAAO,CAAC;AAE3D,OAAO,KAAK,EAAE,YAAY,EAAc,MAAM,gBAAgB,CAAC;AAgD/D,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,YAAY,CAAC;IACrB,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AAkFD,wBAAgB,UAAU,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,eAAe,qBAyOxF;AAyOD,eAAe,UAAU,CAAC"}
|