@flanksource/clicky-ui 0.2.19 → 0.2.21
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/dist/ai.cjs +26 -0
- package/dist/ai.cjs.map +1 -0
- package/dist/ai.d.ts +2 -0
- package/dist/ai.d.ts.map +1 -0
- package/dist/ai.js +26 -0
- package/dist/ai.js.map +1 -0
- package/dist/chat.cjs +7 -0
- package/dist/chat.cjs.map +1 -1
- package/dist/chat.js +7 -0
- package/dist/chat.js.map +1 -1
- package/dist/components/FilterBar.cjs +49 -18
- package/dist/components/FilterBar.cjs.map +1 -1
- package/dist/components/FilterBar.d.ts +0 -2
- package/dist/components/FilterBar.d.ts.map +1 -1
- package/dist/components/FilterBar.js +50 -19
- package/dist/components/FilterBar.js.map +1 -1
- package/dist/components/SearchInput.cjs +63 -0
- package/dist/components/SearchInput.cjs.map +1 -0
- package/dist/components/SearchInput.d.ts +31 -0
- package/dist/components/SearchInput.d.ts.map +1 -0
- package/dist/components/SearchInput.js +63 -0
- package/dist/components/SearchInput.js.map +1 -0
- package/dist/components/SegmentedControl.cjs +88 -0
- package/dist/components/SegmentedControl.cjs.map +1 -0
- package/dist/components/SegmentedControl.d.ts +38 -0
- package/dist/components/SegmentedControl.d.ts.map +1 -0
- package/dist/components/SegmentedControl.js +88 -0
- package/dist/components/SegmentedControl.js.map +1 -0
- package/dist/components/Switch.cjs +51 -0
- package/dist/components/Switch.cjs.map +1 -0
- package/dist/components/Switch.d.ts +23 -0
- package/dist/components/Switch.d.ts.map +1 -0
- package/dist/components/Switch.js +51 -0
- package/dist/components/Switch.js.map +1 -0
- package/dist/components/TimeRange.cjs +53 -45
- package/dist/components/TimeRange.cjs.map +1 -1
- package/dist/components/TimeRange.d.ts.map +1 -1
- package/dist/components/TimeRange.js +53 -45
- package/dist/components/TimeRange.js.map +1 -1
- package/dist/components/TreePickerField.cjs +5 -1
- package/dist/components/TreePickerField.cjs.map +1 -1
- package/dist/components/TreePickerField.d.ts.map +1 -1
- package/dist/components/TreePickerField.js +5 -1
- package/dist/components/TreePickerField.js.map +1 -1
- package/dist/components/filter-bar-utils.cjs +5 -0
- package/dist/components/filter-bar-utils.cjs.map +1 -1
- package/dist/components/filter-bar-utils.d.ts +2 -0
- package/dist/components/filter-bar-utils.d.ts.map +1 -1
- package/dist/components/filter-bar-utils.js +5 -0
- package/dist/components/filter-bar-utils.js.map +1 -1
- package/dist/components/json-schema-form-fields.cjs +8 -2
- package/dist/components/json-schema-form-fields.cjs.map +1 -1
- package/dist/components/json-schema-form-fields.d.ts.map +1 -1
- package/dist/components/json-schema-form-fields.js +8 -2
- package/dist/components/json-schema-form-fields.js.map +1 -1
- package/dist/components/json-schema-form-resolve.cjs +1 -1
- package/dist/components/json-schema-form-resolve.cjs.map +1 -1
- package/dist/components/json-schema-form-resolve.js +1 -1
- package/dist/components/json-schema-form-resolve.js.map +1 -1
- package/dist/components.cjs +15 -1
- package/dist/components.cjs.map +1 -1
- package/dist/components.d.ts +8 -1
- package/dist/components.d.ts.map +1 -1
- package/dist/components.js +15 -1
- package/dist/components.js.map +1 -1
- package/dist/data/Clicky.cjs +33 -44
- package/dist/data/Clicky.cjs.map +1 -1
- package/dist/data/Clicky.d.ts +0 -9
- package/dist/data/Clicky.d.ts.map +1 -1
- package/dist/data/Clicky.js +31 -42
- package/dist/data/Clicky.js.map +1 -1
- package/dist/data/DataTable.cjs +73 -50
- package/dist/data/DataTable.cjs.map +1 -1
- package/dist/data/DataTable.d.ts +4 -0
- package/dist/data/DataTable.d.ts.map +1 -1
- package/dist/data/DataTable.js +73 -50
- package/dist/data/DataTable.js.map +1 -1
- package/dist/data/Icon.cjs +2 -5
- package/dist/data/Icon.cjs.map +1 -1
- package/dist/data/Icon.d.ts +1 -21
- package/dist/data/Icon.d.ts.map +1 -1
- package/dist/data/Icon.js +3 -6
- package/dist/data/Icon.js.map +1 -1
- package/dist/data/MatrixTable.cjs +4 -4
- package/dist/data/MatrixTable.cjs.map +1 -1
- package/dist/data/MatrixTable.js +4 -4
- package/dist/data/MatrixTable.js.map +1 -1
- package/dist/data/RadialGauge.cjs +76 -0
- package/dist/data/RadialGauge.cjs.map +1 -0
- package/dist/data/RadialGauge.d.ts +24 -0
- package/dist/data/RadialGauge.d.ts.map +1 -0
- package/dist/data/RadialGauge.js +76 -0
- package/dist/data/RadialGauge.js.map +1 -0
- package/dist/data/StatusBreakdown.cjs +0 -4
- package/dist/data/StatusBreakdown.cjs.map +1 -1
- package/dist/data/StatusBreakdown.d.ts +0 -2
- package/dist/data/StatusBreakdown.d.ts.map +1 -1
- package/dist/data/StatusBreakdown.js +1 -5
- package/dist/data/StatusBreakdown.js.map +1 -1
- package/dist/data/Timeline.cjs +61 -0
- package/dist/data/Timeline.cjs.map +1 -0
- package/dist/data/Timeline.d.ts +36 -0
- package/dist/data/Timeline.d.ts.map +1 -0
- package/dist/data/Timeline.js +61 -0
- package/dist/data/Timeline.js.map +1 -0
- package/dist/data/TimeseriesCoreBars.cjs +2 -25
- package/dist/data/TimeseriesCoreBars.cjs.map +1 -1
- package/dist/data/TimeseriesCoreBars.d.ts +0 -19
- package/dist/data/TimeseriesCoreBars.d.ts.map +1 -1
- package/dist/data/TimeseriesCoreBars.js +2 -25
- package/dist/data/TimeseriesCoreBars.js.map +1 -1
- package/dist/data/TimeseriesCoreBars.model.cjs +27 -0
- package/dist/data/TimeseriesCoreBars.model.cjs.map +1 -0
- package/dist/data/TimeseriesCoreBars.model.d.ts +20 -0
- package/dist/data/TimeseriesCoreBars.model.d.ts.map +1 -0
- package/dist/data/TimeseriesCoreBars.model.js +27 -0
- package/dist/data/TimeseriesCoreBars.model.js.map +1 -0
- package/dist/data/TimeseriesPanel.axes.cjs.map +1 -1
- package/dist/data/TimeseriesPanel.axes.d.ts +1 -1
- package/dist/data/TimeseriesPanel.axes.d.ts.map +1 -1
- package/dist/data/TimeseriesPanel.axes.js.map +1 -1
- package/dist/data/TimeseriesPanel.cjs +4 -54
- package/dist/data/TimeseriesPanel.cjs.map +1 -1
- package/dist/data/TimeseriesPanel.d.ts +2 -138
- package/dist/data/TimeseriesPanel.d.ts.map +1 -1
- package/dist/data/TimeseriesPanel.js +2 -52
- package/dist/data/TimeseriesPanel.js.map +1 -1
- package/dist/data/TimeseriesPanel.model.cjs +53 -0
- package/dist/data/TimeseriesPanel.model.cjs.map +1 -0
- package/dist/data/TimeseriesPanel.model.d.ts +88 -0
- package/dist/data/TimeseriesPanel.model.d.ts.map +1 -0
- package/dist/data/TimeseriesPanel.model.js +53 -0
- package/dist/data/TimeseriesPanel.model.js.map +1 -0
- package/dist/data/Tree.cjs +1 -1
- package/dist/data/Tree.cjs.map +1 -1
- package/dist/data/Tree.js +1 -1
- package/dist/data/Tree.js.map +1 -1
- package/dist/data/ai/ChatFab.cjs +29 -0
- package/dist/data/ai/ChatFab.cjs.map +1 -0
- package/dist/data/ai/ChatFab.d.ts +12 -0
- package/dist/data/ai/ChatFab.d.ts.map +1 -0
- package/dist/data/ai/ChatFab.js +29 -0
- package/dist/data/ai/ChatFab.js.map +1 -0
- package/dist/data/ai/ChatWindow.cjs +178 -0
- package/dist/data/ai/ChatWindow.cjs.map +1 -0
- package/dist/data/ai/ChatWindow.d.ts +38 -0
- package/dist/data/ai/ChatWindow.d.ts.map +1 -0
- package/dist/data/ai/ChatWindow.js +156 -0
- package/dist/data/ai/ChatWindow.js.map +1 -0
- package/dist/data/ai/ChatWindowManager.cjs +139 -0
- package/dist/data/ai/ChatWindowManager.cjs.map +1 -0
- package/dist/data/ai/ChatWindowManager.d.ts +12 -0
- package/dist/data/ai/ChatWindowManager.d.ts.map +1 -0
- package/dist/data/ai/ChatWindowManager.js +139 -0
- package/dist/data/ai/ChatWindowManager.js.map +1 -0
- package/dist/data/ai/ContextBadges.cjs +74 -0
- package/dist/data/ai/ContextBadges.cjs.map +1 -0
- package/dist/data/ai/ContextBadges.d.ts +16 -0
- package/dist/data/ai/ContextBadges.d.ts.map +1 -0
- package/dist/data/ai/ContextBadges.js +74 -0
- package/dist/data/ai/ContextBadges.js.map +1 -0
- package/dist/data/ai/ThreadPicker.cjs +148 -0
- package/dist/data/ai/ThreadPicker.cjs.map +1 -0
- package/dist/data/ai/ThreadPicker.d.ts +37 -0
- package/dist/data/ai/ThreadPicker.d.ts.map +1 -0
- package/dist/data/ai/ThreadPicker.js +148 -0
- package/dist/data/ai/ThreadPicker.js.map +1 -0
- package/dist/data/ai/ToolPreferences.cjs +80 -0
- package/dist/data/ai/ToolPreferences.cjs.map +1 -0
- package/dist/data/ai/ToolPreferences.d.ts +19 -0
- package/dist/data/ai/ToolPreferences.d.ts.map +1 -0
- package/dist/data/ai/ToolPreferences.js +80 -0
- package/dist/data/ai/ToolPreferences.js.map +1 -0
- package/dist/data/ai/chat-window-context.cjs +78 -0
- package/dist/data/ai/chat-window-context.cjs.map +1 -0
- package/dist/data/ai/chat-window-context.d.ts +57 -0
- package/dist/data/ai/chat-window-context.d.ts.map +1 -0
- package/dist/data/ai/chat-window-context.js +78 -0
- package/dist/data/ai/chat-window-context.js.map +1 -0
- package/dist/data/ai/context.cjs +43 -0
- package/dist/data/ai/context.cjs.map +1 -0
- package/dist/data/ai/context.d.ts +35 -0
- package/dist/data/ai/context.d.ts.map +1 -0
- package/dist/data/ai/context.js +43 -0
- package/dist/data/ai/context.js.map +1 -0
- package/dist/data/ai/index.d.ts +10 -0
- package/dist/data/ai/index.d.ts.map +1 -0
- package/dist/data/cache-browser/CacheDetailPanel.cjs +15 -0
- package/dist/data/cache-browser/CacheDetailPanel.cjs.map +1 -1
- package/dist/data/cache-browser/CacheDetailPanel.d.ts.map +1 -1
- package/dist/data/cache-browser/CacheDetailPanel.js +15 -0
- package/dist/data/cache-browser/CacheDetailPanel.js.map +1 -1
- package/dist/data/cache-browser/cache-browser.fixtures.d.ts +10 -0
- package/dist/data/cache-browser/cache-browser.fixtures.d.ts.map +1 -0
- package/dist/data/cache-browser/download.cjs +13 -0
- package/dist/data/cache-browser/download.cjs.map +1 -0
- package/dist/data/cache-browser/download.d.ts +3 -0
- package/dist/data/cache-browser/download.d.ts.map +1 -0
- package/dist/data/cache-browser/download.js +13 -0
- package/dist/data/cache-browser/download.js.map +1 -0
- package/dist/data/chat/Chat.cjs +44 -3
- package/dist/data/chat/Chat.cjs.map +1 -1
- package/dist/data/chat/Chat.d.ts +5 -2
- package/dist/data/chat/Chat.d.ts.map +1 -1
- package/dist/data/chat/Chat.fixtures.cjs +86 -0
- package/dist/data/chat/Chat.fixtures.cjs.map +1 -0
- package/dist/data/chat/Chat.fixtures.d.ts +4 -0
- package/dist/data/chat/Chat.fixtures.d.ts.map +1 -1
- package/dist/data/chat/Chat.fixtures.js +86 -0
- package/dist/data/chat/Chat.fixtures.js.map +1 -0
- package/dist/data/chat/Chat.js +45 -4
- package/dist/data/chat/Chat.js.map +1 -1
- package/dist/data/chat/ContextUsage.cjs +99 -0
- package/dist/data/chat/ContextUsage.cjs.map +1 -0
- package/dist/data/chat/ContextUsage.d.ts +19 -0
- package/dist/data/chat/ContextUsage.d.ts.map +1 -0
- package/dist/data/chat/ContextUsage.js +99 -0
- package/dist/data/chat/ContextUsage.js.map +1 -0
- package/dist/data/chat/Conversation.cjs +47 -2
- package/dist/data/chat/Conversation.cjs.map +1 -1
- package/dist/data/chat/Conversation.d.ts +8 -2
- package/dist/data/chat/Conversation.d.ts.map +1 -1
- package/dist/data/chat/Conversation.js +47 -2
- package/dist/data/chat/Conversation.js.map +1 -1
- package/dist/data/chat/ModelSelector.cjs +28 -14
- package/dist/data/chat/ModelSelector.cjs.map +1 -1
- package/dist/data/chat/ModelSelector.d.ts +5 -4
- package/dist/data/chat/ModelSelector.d.ts.map +1 -1
- package/dist/data/chat/ModelSelector.js +28 -14
- package/dist/data/chat/ModelSelector.js.map +1 -1
- package/dist/data/chat/clickyOperationsToTools.cjs +21 -1
- package/dist/data/chat/clickyOperationsToTools.cjs.map +1 -1
- package/dist/data/chat/clickyOperationsToTools.d.ts +5 -4
- package/dist/data/chat/clickyOperationsToTools.d.ts.map +1 -1
- package/dist/data/chat/clickyOperationsToTools.js +21 -1
- package/dist/data/chat/clickyOperationsToTools.js.map +1 -1
- package/dist/data/chat/index.d.ts +4 -1
- package/dist/data/chat/index.d.ts.map +1 -1
- package/dist/data/chat/provider-icons.cjs +15 -0
- package/dist/data/chat/provider-icons.cjs.map +1 -0
- package/dist/data/chat/provider-icons.d.ts +7 -0
- package/dist/data/chat/provider-icons.d.ts.map +1 -0
- package/dist/data/chat/provider-icons.js +15 -0
- package/dist/data/chat/provider-icons.js.map +1 -0
- package/dist/data/chat/types.cjs.map +1 -1
- package/dist/data/chat/types.d.ts +41 -9
- package/dist/data/chat/types.d.ts.map +1 -1
- package/dist/data/chat/types.js.map +1 -1
- package/dist/data/clicky-parse.cjs +42 -0
- package/dist/data/clicky-parse.cjs.map +1 -0
- package/dist/data/clicky-parse.d.ts +11 -0
- package/dist/data/clicky-parse.d.ts.map +1 -0
- package/dist/data/clicky-parse.js +42 -0
- package/dist/data/clicky-parse.js.map +1 -0
- package/dist/data/diagnostics/FrameSourceWindow.cjs +0 -4
- package/dist/data/diagnostics/FrameSourceWindow.cjs.map +1 -1
- package/dist/data/diagnostics/FrameSourceWindow.d.ts +1 -11
- package/dist/data/diagnostics/FrameSourceWindow.d.ts.map +1 -1
- package/dist/data/diagnostics/FrameSourceWindow.js +1 -5
- package/dist/data/diagnostics/FrameSourceWindow.js.map +1 -1
- package/dist/data/diagnostics/FrameSourceWindow.utils.cjs +7 -0
- package/dist/data/diagnostics/FrameSourceWindow.utils.cjs.map +1 -0
- package/dist/data/diagnostics/FrameSourceWindow.utils.d.ts +12 -0
- package/dist/data/diagnostics/FrameSourceWindow.utils.d.ts.map +1 -0
- package/dist/data/diagnostics/FrameSourceWindow.utils.js +7 -0
- package/dist/data/diagnostics/FrameSourceWindow.utils.js.map +1 -0
- package/dist/data/diagnostics/JvmStackTrace.cjs +2 -1
- package/dist/data/diagnostics/JvmStackTrace.cjs.map +1 -1
- package/dist/data/diagnostics/JvmStackTrace.d.ts.map +1 -1
- package/dist/data/diagnostics/JvmStackTrace.js +2 -1
- package/dist/data/diagnostics/JvmStackTrace.js.map +1 -1
- package/dist/data/icon-fallback.cjs +12 -0
- package/dist/data/icon-fallback.cjs.map +1 -0
- package/dist/data/icon-fallback.d.ts +19 -0
- package/dist/data/icon-fallback.d.ts.map +1 -0
- package/dist/data/icon-fallback.js +12 -0
- package/dist/data/icon-fallback.js.map +1 -0
- package/dist/data/status-breakdown-utils.cjs +7 -0
- package/dist/data/status-breakdown-utils.cjs.map +1 -0
- package/dist/data/status-breakdown-utils.d.ts +4 -0
- package/dist/data/status-breakdown-utils.d.ts.map +1 -0
- package/dist/data/status-breakdown-utils.js +7 -0
- package/dist/data/status-breakdown-utils.js.map +1 -0
- package/dist/data/test-runner/TestRunSummary.cjs +36 -0
- package/dist/data/test-runner/TestRunSummary.cjs.map +1 -1
- package/dist/data/test-runner/TestRunSummary.d.ts +7 -1
- package/dist/data/test-runner/TestRunSummary.d.ts.map +1 -1
- package/dist/data/test-runner/TestRunSummary.js +36 -0
- package/dist/data/test-runner/TestRunSummary.js.map +1 -1
- package/dist/data/test-runner/TestRunner.cjs +5 -3
- package/dist/data/test-runner/TestRunner.cjs.map +1 -1
- package/dist/data/test-runner/TestRunner.d.ts +13 -1
- package/dist/data/test-runner/TestRunner.d.ts.map +1 -1
- package/dist/data/test-runner/TestRunner.js +5 -3
- package/dist/data/test-runner/TestRunner.js.map +1 -1
- package/dist/data/version-info.cjs +3 -3
- package/dist/data/version-info.js +3 -3
- package/dist/data.cjs +19 -6
- package/dist/data.cjs.map +1 -1
- package/dist/data.d.ts +13 -5
- package/dist/data.d.ts.map +1 -1
- package/dist/data.js +18 -5
- package/dist/data.js.map +1 -1
- package/dist/index.cjs +51 -7
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +50 -6
- package/dist/index.js.map +1 -1
- package/dist/layout/AppShell.cjs +179 -29
- package/dist/layout/AppShell.cjs.map +1 -1
- package/dist/layout/AppShell.d.ts +5 -5
- package/dist/layout/AppShell.d.ts.map +1 -1
- package/dist/layout/AppShell.js +179 -29
- package/dist/layout/AppShell.js.map +1 -1
- package/dist/layout/AppSidebar.cjs +239 -0
- package/dist/layout/AppSidebar.cjs.map +1 -0
- package/dist/layout/AppSidebar.d.ts +62 -0
- package/dist/layout/AppSidebar.d.ts.map +1 -0
- package/dist/layout/AppSidebar.js +239 -0
- package/dist/layout/AppSidebar.js.map +1 -0
- package/dist/overlay/DropdownMenu.cjs.map +1 -1
- package/dist/overlay/DropdownMenu.d.ts.map +1 -1
- package/dist/overlay/DropdownMenu.js.map +1 -1
- package/dist/overlay/Modal.cjs +4 -2
- package/dist/overlay/Modal.cjs.map +1 -1
- package/dist/overlay/Modal.d.ts +1 -1
- package/dist/overlay/Modal.d.ts.map +1 -1
- package/dist/overlay/Modal.js +4 -2
- package/dist/overlay/Modal.js.map +1 -1
- package/dist/overlay/Toast.cjs +89 -0
- package/dist/overlay/Toast.cjs.map +1 -0
- package/dist/overlay/Toast.d.ts +14 -0
- package/dist/overlay/Toast.d.ts.map +1 -0
- package/dist/overlay/Toast.js +89 -0
- package/dist/overlay/Toast.js.map +1 -0
- package/dist/overlay/toast-context.cjs +12 -0
- package/dist/overlay/toast-context.cjs.map +1 -0
- package/dist/overlay/toast-context.d.ts +24 -0
- package/dist/overlay/toast-context.d.ts.map +1 -0
- package/dist/overlay/toast-context.js +12 -0
- package/dist/overlay/toast-context.js.map +1 -0
- package/dist/rpc/AcceptPicker.cjs +81 -58
- package/dist/rpc/AcceptPicker.cjs.map +1 -1
- package/dist/rpc/AcceptPicker.d.ts.map +1 -1
- package/dist/rpc/AcceptPicker.js +81 -58
- package/dist/rpc/AcceptPicker.js.map +1 -1
- package/dist/rpc/CommandForm.cjs +5 -35
- package/dist/rpc/CommandForm.cjs.map +1 -1
- package/dist/rpc/CommandForm.d.ts +0 -3
- package/dist/rpc/CommandForm.d.ts.map +1 -1
- package/dist/rpc/CommandForm.js +2 -32
- package/dist/rpc/CommandForm.js.map +1 -1
- package/dist/rpc/CommandOutput.cjs +2 -1
- package/dist/rpc/CommandOutput.cjs.map +1 -1
- package/dist/rpc/CommandOutput.d.ts.map +1 -1
- package/dist/rpc/CommandOutput.js +2 -1
- package/dist/rpc/CommandOutput.js.map +1 -1
- package/dist/rpc/EntityExplorerApp.cjs +28 -83
- package/dist/rpc/EntityExplorerApp.cjs.map +1 -1
- package/dist/rpc/EntityExplorerApp.d.ts +1 -4
- package/dist/rpc/EntityExplorerApp.d.ts.map +1 -1
- package/dist/rpc/EntityExplorerApp.js +13 -68
- package/dist/rpc/EntityExplorerApp.js.map +1 -1
- package/dist/rpc/OperationCatalog.cjs +2 -2
- package/dist/rpc/OperationCatalog.cjs.map +1 -1
- package/dist/rpc/OperationCatalog.d.ts +1 -1
- package/dist/rpc/OperationCatalog.d.ts.map +1 -1
- package/dist/rpc/OperationCatalog.js +1 -1
- package/dist/rpc/OperationCatalog.js.map +1 -1
- package/dist/rpc/OperationCommandPage.cjs +6 -4
- package/dist/rpc/OperationCommandPage.cjs.map +1 -1
- package/dist/rpc/OperationCommandPage.d.ts.map +1 -1
- package/dist/rpc/OperationCommandPage.js +3 -1
- package/dist/rpc/OperationCommandPage.js.map +1 -1
- package/dist/rpc/RouterProvider.cjs +10 -0
- package/dist/rpc/RouterProvider.cjs.map +1 -0
- package/dist/rpc/RouterProvider.d.ts +10 -0
- package/dist/rpc/RouterProvider.d.ts.map +1 -0
- package/dist/rpc/RouterProvider.js +10 -0
- package/dist/rpc/RouterProvider.js.map +1 -0
- package/dist/rpc/apiClient.cjs +4 -4
- package/dist/rpc/apiClient.cjs.map +1 -1
- package/dist/rpc/apiClient.js +4 -4
- package/dist/rpc/apiClient.js.map +1 -1
- package/dist/rpc/command-form-utils.cjs +43 -0
- package/dist/rpc/command-form-utils.cjs.map +1 -0
- package/dist/rpc/command-form-utils.d.ts +5 -0
- package/dist/rpc/command-form-utils.d.ts.map +1 -0
- package/dist/rpc/command-form-utils.js +43 -0
- package/dist/rpc/command-form-utils.js.map +1 -0
- package/dist/rpc/commandHref.cjs +62 -0
- package/dist/rpc/commandHref.cjs.map +1 -0
- package/dist/rpc/commandHref.d.ts +7 -0
- package/dist/rpc/commandHref.d.ts.map +1 -0
- package/dist/rpc/commandHref.js +62 -0
- package/dist/rpc/commandHref.js.map +1 -0
- package/dist/rpc/formMetadata.cjs +1 -1
- package/dist/rpc/formMetadata.cjs.map +1 -1
- package/dist/rpc/formMetadata.js +1 -1
- package/dist/rpc/formMetadata.js.map +1 -1
- package/dist/rpc/router.cjs +83 -0
- package/dist/rpc/router.cjs.map +1 -0
- package/dist/rpc/router.d.ts +24 -0
- package/dist/rpc/router.d.ts.map +1 -0
- package/dist/rpc/router.js +83 -0
- package/dist/rpc/router.js.map +1 -0
- package/dist/rpc/rpc-story-fixtures/orders.fixture.d.ts +3 -0
- package/dist/rpc/rpc-story-fixtures/orders.fixture.d.ts.map +1 -0
- package/dist/rpc/rpc-story-fixtures/services.fixture.d.ts +3 -0
- package/dist/rpc/rpc-story-fixtures/services.fixture.d.ts.map +1 -0
- package/dist/rpc/rpc-story-fixtures/surface-fixture.d.ts +24 -0
- package/dist/rpc/rpc-story-fixtures/surface-fixture.d.ts.map +1 -0
- package/dist/rpc/rpc-story-fixtures/widgets.fixture.d.ts +3 -0
- package/dist/rpc/rpc-story-fixtures/widgets.fixture.d.ts.map +1 -0
- package/dist/rpc/rpc-story.fixtures.d.ts +16 -0
- package/dist/rpc/rpc-story.fixtures.d.ts.map +1 -0
- package/dist/rpc.cjs +17 -0
- package/dist/rpc.cjs.map +1 -1
- package/dist/rpc.d.ts +5 -0
- package/dist/rpc.d.ts.map +1 -1
- package/dist/rpc.js +18 -1
- package/dist/rpc.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +11 -1
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
function parseClickyData(data) {
|
|
4
|
+
if (typeof data === "string") {
|
|
5
|
+
try {
|
|
6
|
+
return normalizeClickyDocument(JSON.parse(data));
|
|
7
|
+
} catch (error) {
|
|
8
|
+
return {
|
|
9
|
+
ok: false,
|
|
10
|
+
message: error instanceof Error ? error.message : "Failed to parse JSON",
|
|
11
|
+
raw: data
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
return normalizeClickyDocument(data);
|
|
16
|
+
}
|
|
17
|
+
function normalizeClickyDocument(data) {
|
|
18
|
+
if (!data || typeof data !== "object") {
|
|
19
|
+
return {
|
|
20
|
+
ok: false,
|
|
21
|
+
message: "Payload must be an object",
|
|
22
|
+
raw: String(data ?? "")
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
const candidate = data;
|
|
26
|
+
if ("version" in candidate && candidate.version === 1 && candidate.node && isClickyNode(candidate.node)) {
|
|
27
|
+
return { ok: true, document: candidate };
|
|
28
|
+
}
|
|
29
|
+
if (isClickyNode(candidate)) {
|
|
30
|
+
return { ok: true, document: { version: 1, node: candidate } };
|
|
31
|
+
}
|
|
32
|
+
return {
|
|
33
|
+
ok: false,
|
|
34
|
+
message: "Payload is neither a Clicky document nor a Clicky node",
|
|
35
|
+
raw: JSON.stringify(data, null, 2)
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
function isClickyNode(value) {
|
|
39
|
+
return !!value && typeof value === "object" && typeof value.kind === "string";
|
|
40
|
+
}
|
|
41
|
+
exports.parseClickyData = parseClickyData;
|
|
42
|
+
//# sourceMappingURL=clicky-parse.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clicky-parse.cjs","sources":["../../src/data/clicky-parse.ts"],"sourcesContent":["import type { ClickyDocument, ClickyNode, ClickyProps } from \"./Clicky\";\n\nexport type ParsedClicky =\n | { ok: true; document: ClickyDocument }\n | { ok: false; message: string; raw: string };\n\nexport function parseClickyData(data: ClickyProps[\"data\"]): ParsedClicky {\n if (typeof data === \"string\") {\n try {\n return normalizeClickyDocument(JSON.parse(data) as unknown);\n } catch (error) {\n return {\n ok: false,\n message:\n error instanceof Error ? error.message : \"Failed to parse JSON\",\n raw: data,\n };\n }\n }\n\n return normalizeClickyDocument(data);\n}\n\nfunction normalizeClickyDocument(data: unknown): ParsedClicky {\n if (!data || typeof data !== \"object\") {\n return {\n ok: false,\n message: \"Payload must be an object\",\n raw: String(data ?? \"\"),\n };\n }\n\n const candidate = data as Partial<ClickyDocument> & Partial<ClickyNode>;\n if (\n \"version\" in candidate &&\n candidate.version === 1 &&\n candidate.node &&\n isClickyNode(candidate.node)\n ) {\n return { ok: true, document: candidate as ClickyDocument };\n }\n\n if (isClickyNode(candidate)) {\n return { ok: true, document: { version: 1, node: candidate } };\n }\n\n return {\n ok: false,\n message: \"Payload is neither a Clicky document nor a Clicky node\",\n raw: JSON.stringify(data, null, 2),\n };\n}\n\nfunction isClickyNode(value: unknown): value is ClickyNode {\n return (\n !!value &&\n typeof value === \"object\" &&\n typeof (value as { kind?: unknown }).kind === \"string\"\n );\n}\n"],"names":[],"mappings":";;AAMO,SAAS,gBAAgB,MAAyC;AACvE,MAAI,OAAO,SAAS,UAAU;AAC5B,QAAI;AACF,aAAO,wBAAwB,KAAK,MAAM,IAAI,CAAY;AAAA,IAC5D,SAAS,OAAO;AACd,aAAO;AAAA,QACL,IAAI;AAAA,QACJ,SACE,iBAAiB,QAAQ,MAAM,UAAU;AAAA,QAC3C,KAAK;AAAA,MAAA;AAAA,IAET;AAAA,EACF;AAEA,SAAO,wBAAwB,IAAI;AACrC;AAEA,SAAS,wBAAwB,MAA6B;AAC5D,MAAI,CAAC,QAAQ,OAAO,SAAS,UAAU;AACrC,WAAO;AAAA,MACL,IAAI;AAAA,MACJ,SAAS;AAAA,MACT,KAAK,OAAO,QAAQ,EAAE;AAAA,IAAA;AAAA,EAE1B;AAEA,QAAM,YAAY;AAClB,MACE,aAAa,aACb,UAAU,YAAY,KACtB,UAAU,QACV,aAAa,UAAU,IAAI,GAC3B;AACA,WAAO,EAAE,IAAI,MAAM,UAAU,UAAA;AAAA,EAC/B;AAEA,MAAI,aAAa,SAAS,GAAG;AAC3B,WAAO,EAAE,IAAI,MAAM,UAAU,EAAE,SAAS,GAAG,MAAM,YAAU;AAAA,EAC7D;AAEA,SAAO;AAAA,IACL,IAAI;AAAA,IACJ,SAAS;AAAA,IACT,KAAK,KAAK,UAAU,MAAM,MAAM,CAAC;AAAA,EAAA;AAErC;AAEA,SAAS,aAAa,OAAqC;AACzD,SACE,CAAC,CAAC,SACF,OAAO,UAAU,YACjB,OAAQ,MAA6B,SAAS;AAElD;;"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ClickyDocument, ClickyProps } from './Clicky';
|
|
2
|
+
export type ParsedClicky = {
|
|
3
|
+
ok: true;
|
|
4
|
+
document: ClickyDocument;
|
|
5
|
+
} | {
|
|
6
|
+
ok: false;
|
|
7
|
+
message: string;
|
|
8
|
+
raw: string;
|
|
9
|
+
};
|
|
10
|
+
export declare function parseClickyData(data: ClickyProps["data"]): ParsedClicky;
|
|
11
|
+
//# sourceMappingURL=clicky-parse.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clicky-parse.d.ts","sourceRoot":"","sources":["../../src/data/clicky-parse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAc,WAAW,EAAE,MAAM,UAAU,CAAC;AAExE,MAAM,MAAM,YAAY,GACpB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE,cAAc,CAAA;CAAE,GACtC;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAEhD,wBAAgB,eAAe,CAAC,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,YAAY,CAevE"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
function parseClickyData(data) {
|
|
2
|
+
if (typeof data === "string") {
|
|
3
|
+
try {
|
|
4
|
+
return normalizeClickyDocument(JSON.parse(data));
|
|
5
|
+
} catch (error) {
|
|
6
|
+
return {
|
|
7
|
+
ok: false,
|
|
8
|
+
message: error instanceof Error ? error.message : "Failed to parse JSON",
|
|
9
|
+
raw: data
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
return normalizeClickyDocument(data);
|
|
14
|
+
}
|
|
15
|
+
function normalizeClickyDocument(data) {
|
|
16
|
+
if (!data || typeof data !== "object") {
|
|
17
|
+
return {
|
|
18
|
+
ok: false,
|
|
19
|
+
message: "Payload must be an object",
|
|
20
|
+
raw: String(data ?? "")
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
const candidate = data;
|
|
24
|
+
if ("version" in candidate && candidate.version === 1 && candidate.node && isClickyNode(candidate.node)) {
|
|
25
|
+
return { ok: true, document: candidate };
|
|
26
|
+
}
|
|
27
|
+
if (isClickyNode(candidate)) {
|
|
28
|
+
return { ok: true, document: { version: 1, node: candidate } };
|
|
29
|
+
}
|
|
30
|
+
return {
|
|
31
|
+
ok: false,
|
|
32
|
+
message: "Payload is neither a Clicky document nor a Clicky node",
|
|
33
|
+
raw: JSON.stringify(data, null, 2)
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
function isClickyNode(value) {
|
|
37
|
+
return !!value && typeof value === "object" && typeof value.kind === "string";
|
|
38
|
+
}
|
|
39
|
+
export {
|
|
40
|
+
parseClickyData
|
|
41
|
+
};
|
|
42
|
+
//# sourceMappingURL=clicky-parse.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clicky-parse.js","sources":["../../src/data/clicky-parse.ts"],"sourcesContent":["import type { ClickyDocument, ClickyNode, ClickyProps } from \"./Clicky\";\n\nexport type ParsedClicky =\n | { ok: true; document: ClickyDocument }\n | { ok: false; message: string; raw: string };\n\nexport function parseClickyData(data: ClickyProps[\"data\"]): ParsedClicky {\n if (typeof data === \"string\") {\n try {\n return normalizeClickyDocument(JSON.parse(data) as unknown);\n } catch (error) {\n return {\n ok: false,\n message:\n error instanceof Error ? error.message : \"Failed to parse JSON\",\n raw: data,\n };\n }\n }\n\n return normalizeClickyDocument(data);\n}\n\nfunction normalizeClickyDocument(data: unknown): ParsedClicky {\n if (!data || typeof data !== \"object\") {\n return {\n ok: false,\n message: \"Payload must be an object\",\n raw: String(data ?? \"\"),\n };\n }\n\n const candidate = data as Partial<ClickyDocument> & Partial<ClickyNode>;\n if (\n \"version\" in candidate &&\n candidate.version === 1 &&\n candidate.node &&\n isClickyNode(candidate.node)\n ) {\n return { ok: true, document: candidate as ClickyDocument };\n }\n\n if (isClickyNode(candidate)) {\n return { ok: true, document: { version: 1, node: candidate } };\n }\n\n return {\n ok: false,\n message: \"Payload is neither a Clicky document nor a Clicky node\",\n raw: JSON.stringify(data, null, 2),\n };\n}\n\nfunction isClickyNode(value: unknown): value is ClickyNode {\n return (\n !!value &&\n typeof value === \"object\" &&\n typeof (value as { kind?: unknown }).kind === \"string\"\n );\n}\n"],"names":[],"mappings":"AAMO,SAAS,gBAAgB,MAAyC;AACvE,MAAI,OAAO,SAAS,UAAU;AAC5B,QAAI;AACF,aAAO,wBAAwB,KAAK,MAAM,IAAI,CAAY;AAAA,IAC5D,SAAS,OAAO;AACd,aAAO;AAAA,QACL,IAAI;AAAA,QACJ,SACE,iBAAiB,QAAQ,MAAM,UAAU;AAAA,QAC3C,KAAK;AAAA,MAAA;AAAA,IAET;AAAA,EACF;AAEA,SAAO,wBAAwB,IAAI;AACrC;AAEA,SAAS,wBAAwB,MAA6B;AAC5D,MAAI,CAAC,QAAQ,OAAO,SAAS,UAAU;AACrC,WAAO;AAAA,MACL,IAAI;AAAA,MACJ,SAAS;AAAA,MACT,KAAK,OAAO,QAAQ,EAAE;AAAA,IAAA;AAAA,EAE1B;AAEA,QAAM,YAAY;AAClB,MACE,aAAa,aACb,UAAU,YAAY,KACtB,UAAU,QACV,aAAa,UAAU,IAAI,GAC3B;AACA,WAAO,EAAE,IAAI,MAAM,UAAU,UAAA;AAAA,EAC/B;AAEA,MAAI,aAAa,SAAS,GAAG;AAC3B,WAAO,EAAE,IAAI,MAAM,UAAU,EAAE,SAAS,GAAG,MAAM,YAAU;AAAA,EAC7D;AAEA,SAAO;AAAA,IACL,IAAI;AAAA,IACJ,SAAS;AAAA,IACT,KAAK,KAAK,UAAU,MAAM,MAAM,CAAC;AAAA,EAAA;AAErC;AAEA,SAAS,aAAa,OAAqC;AACzD,SACE,CAAC,CAAC,SACF,OAAO,UAAU,YACjB,OAAQ,MAA6B,SAAS;AAElD;"}
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
const jsxRuntime = require("react/jsx-runtime");
|
|
4
|
-
function frameHasSource(frame) {
|
|
5
|
-
return !!frame.sourceLines && frame.sourceLines.length > 0;
|
|
6
|
-
}
|
|
7
4
|
function FrameSourceWindow({ frame }) {
|
|
8
5
|
const lines = frame.sourceLines ?? [];
|
|
9
6
|
if (lines.length === 0) return null;
|
|
@@ -33,5 +30,4 @@ function FrameSourceWindow({ frame }) {
|
|
|
33
30
|
}) });
|
|
34
31
|
}
|
|
35
32
|
exports.FrameSourceWindow = FrameSourceWindow;
|
|
36
|
-
exports.frameHasSource = frameHasSource;
|
|
37
33
|
//# sourceMappingURL=FrameSourceWindow.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FrameSourceWindow.cjs","sources":["../../../src/data/diagnostics/FrameSourceWindow.tsx"],"sourcesContent":["// FrameSourceWindow renders a decompiled / resolved source window beneath a\n// stack frame: a gutter of absolute line numbers with the focal line (the one\n// the frame points at) highlighted. It is the plain (non-Shiki) renderer shared\n// by the JVM thread-dump frames and the exception stack-trace frames so both\n// surfaces show inline source the same way.\
|
|
1
|
+
{"version":3,"file":"FrameSourceWindow.cjs","sources":["../../../src/data/diagnostics/FrameSourceWindow.tsx"],"sourcesContent":["import type { FrameSource } from \"./FrameSourceWindow.utils\";\n\n// FrameSourceWindow renders a decompiled / resolved source window beneath a\n// stack frame: a gutter of absolute line numbers with the focal line (the one\n// the frame points at) highlighted. It is the plain (non-Shiki) renderer shared\n// by the JVM thread-dump frames and the exception stack-trace frames so both\n// surfaces show inline source the same way.\nexport function FrameSourceWindow({ frame }: { frame: FrameSource }) {\n const lines = frame.sourceLines ?? [];\n if (lines.length === 0) return null;\n const start = frame.sourceStartLine ?? 0;\n const numbers = frame.sourceLineNumbers;\n const focal = frame.line ?? -1;\n\n return (\n <div className=\"mx-3 mb-2 ml-12 overflow-x-auto rounded border border-border/60 bg-muted/30 py-1 font-mono text-[11px] leading-relaxed\">\n {lines.map((source, i) => {\n const lineNumber = numbers?.[i] ?? start + i;\n const isFocal = lineNumber === focal;\n return (\n <div\n key={`${lineNumber}-${i}`}\n className={[\n \"grid min-w-max grid-cols-[3.5rem_minmax(24rem,1fr)] gap-3 px-2\",\n isFocal\n ? \"bg-red-500/10 font-semibold text-red-800 dark:text-red-300\"\n : \"text-foreground\",\n ].join(\" \")}\n >\n <span className=\"select-none text-right text-muted-foreground\">\n {isFocal ? \">\" : \"\"}\n {lineNumber}\n </span>\n <code className=\"whitespace-pre\">{source || \" \"}</code>\n </div>\n );\n })}\n </div>\n );\n}\n"],"names":["jsx","jsxs"],"mappings":";;;AAOO,SAAS,kBAAkB,EAAE,SAAiC;AACnE,QAAM,QAAQ,MAAM,eAAe,CAAA;AACnC,MAAI,MAAM,WAAW,EAAG,QAAO;AAC/B,QAAM,QAAQ,MAAM,mBAAmB;AACvC,QAAM,UAAU,MAAM;AACtB,QAAM,QAAQ,MAAM,QAAQ;AAE5B,SACEA,+BAAC,SAAI,WAAU,0HACZ,gBAAM,IAAI,CAAC,QAAQ,MAAM;AACxB,UAAM,cAAa,mCAAU,OAAM,QAAQ;AAC3C,UAAM,UAAU,eAAe;AAC/B,WACEC,2BAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QAEC,WAAW;AAAA,UACT;AAAA,UACA,UACI,+DACA;AAAA,QAAA,EACJ,KAAK,GAAG;AAAA,QAEV,UAAA;AAAA,UAAAA,2BAAAA,KAAC,QAAA,EAAK,WAAU,gDACb,UAAA;AAAA,YAAA,UAAU,MAAM;AAAA,YAChB;AAAA,UAAA,GACH;AAAA,UACAD,2BAAAA,IAAC,QAAA,EAAK,WAAU,kBAAkB,oBAAU,IAAA,CAAI;AAAA,QAAA;AAAA,MAAA;AAAA,MAZ3C,GAAG,UAAU,IAAI,CAAC;AAAA,IAAA;AAAA,EAe7B,CAAC,EAAA,CACH;AAEJ;;"}
|
|
@@ -1,14 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
/** Source lines around the focal line. */
|
|
3
|
-
sourceLines?: string[];
|
|
4
|
-
/** Absolute line number for each entry in sourceLines (preferred gutter). */
|
|
5
|
-
sourceLineNumbers?: number[];
|
|
6
|
-
/** Line number of sourceLines[0] when sourceLineNumbers is absent. */
|
|
7
|
-
sourceStartLine?: number;
|
|
8
|
-
/** The frame's focal line, highlighted when it falls inside the window. */
|
|
9
|
-
line?: number;
|
|
10
|
-
}
|
|
11
|
-
export declare function frameHasSource(frame: FrameSource): boolean;
|
|
1
|
+
import { FrameSource } from './FrameSourceWindow.utils';
|
|
12
2
|
export declare function FrameSourceWindow({ frame }: {
|
|
13
3
|
frame: FrameSource;
|
|
14
4
|
}): import("react/jsx-runtime").JSX.Element | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FrameSourceWindow.d.ts","sourceRoot":"","sources":["../../../src/data/diagnostics/FrameSourceWindow.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"FrameSourceWindow.d.ts","sourceRoot":"","sources":["../../../src/data/diagnostics/FrameSourceWindow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAO7D,wBAAgB,iBAAiB,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,WAAW,CAAA;CAAE,kDAgClE"}
|
|
@@ -1,7 +1,4 @@
|
|
|
1
1
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
-
function frameHasSource(frame) {
|
|
3
|
-
return !!frame.sourceLines && frame.sourceLines.length > 0;
|
|
4
|
-
}
|
|
5
2
|
function FrameSourceWindow({ frame }) {
|
|
6
3
|
const lines = frame.sourceLines ?? [];
|
|
7
4
|
if (lines.length === 0) return null;
|
|
@@ -31,7 +28,6 @@ function FrameSourceWindow({ frame }) {
|
|
|
31
28
|
}) });
|
|
32
29
|
}
|
|
33
30
|
export {
|
|
34
|
-
FrameSourceWindow
|
|
35
|
-
frameHasSource
|
|
31
|
+
FrameSourceWindow
|
|
36
32
|
};
|
|
37
33
|
//# sourceMappingURL=FrameSourceWindow.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FrameSourceWindow.js","sources":["../../../src/data/diagnostics/FrameSourceWindow.tsx"],"sourcesContent":["// FrameSourceWindow renders a decompiled / resolved source window beneath a\n// stack frame: a gutter of absolute line numbers with the focal line (the one\n// the frame points at) highlighted. It is the plain (non-Shiki) renderer shared\n// by the JVM thread-dump frames and the exception stack-trace frames so both\n// surfaces show inline source the same way.\
|
|
1
|
+
{"version":3,"file":"FrameSourceWindow.js","sources":["../../../src/data/diagnostics/FrameSourceWindow.tsx"],"sourcesContent":["import type { FrameSource } from \"./FrameSourceWindow.utils\";\n\n// FrameSourceWindow renders a decompiled / resolved source window beneath a\n// stack frame: a gutter of absolute line numbers with the focal line (the one\n// the frame points at) highlighted. It is the plain (non-Shiki) renderer shared\n// by the JVM thread-dump frames and the exception stack-trace frames so both\n// surfaces show inline source the same way.\nexport function FrameSourceWindow({ frame }: { frame: FrameSource }) {\n const lines = frame.sourceLines ?? [];\n if (lines.length === 0) return null;\n const start = frame.sourceStartLine ?? 0;\n const numbers = frame.sourceLineNumbers;\n const focal = frame.line ?? -1;\n\n return (\n <div className=\"mx-3 mb-2 ml-12 overflow-x-auto rounded border border-border/60 bg-muted/30 py-1 font-mono text-[11px] leading-relaxed\">\n {lines.map((source, i) => {\n const lineNumber = numbers?.[i] ?? start + i;\n const isFocal = lineNumber === focal;\n return (\n <div\n key={`${lineNumber}-${i}`}\n className={[\n \"grid min-w-max grid-cols-[3.5rem_minmax(24rem,1fr)] gap-3 px-2\",\n isFocal\n ? \"bg-red-500/10 font-semibold text-red-800 dark:text-red-300\"\n : \"text-foreground\",\n ].join(\" \")}\n >\n <span className=\"select-none text-right text-muted-foreground\">\n {isFocal ? \">\" : \"\"}\n {lineNumber}\n </span>\n <code className=\"whitespace-pre\">{source || \" \"}</code>\n </div>\n );\n })}\n </div>\n );\n}\n"],"names":[],"mappings":";AAOO,SAAS,kBAAkB,EAAE,SAAiC;AACnE,QAAM,QAAQ,MAAM,eAAe,CAAA;AACnC,MAAI,MAAM,WAAW,EAAG,QAAO;AAC/B,QAAM,QAAQ,MAAM,mBAAmB;AACvC,QAAM,UAAU,MAAM;AACtB,QAAM,QAAQ,MAAM,QAAQ;AAE5B,SACE,oBAAC,SAAI,WAAU,0HACZ,gBAAM,IAAI,CAAC,QAAQ,MAAM;AACxB,UAAM,cAAa,mCAAU,OAAM,QAAQ;AAC3C,UAAM,UAAU,eAAe;AAC/B,WACE;AAAA,MAAC;AAAA,MAAA;AAAA,QAEC,WAAW;AAAA,UACT;AAAA,UACA,UACI,+DACA;AAAA,QAAA,EACJ,KAAK,GAAG;AAAA,QAEV,UAAA;AAAA,UAAA,qBAAC,QAAA,EAAK,WAAU,gDACb,UAAA;AAAA,YAAA,UAAU,MAAM;AAAA,YAChB;AAAA,UAAA,GACH;AAAA,UACA,oBAAC,QAAA,EAAK,WAAU,kBAAkB,oBAAU,IAAA,CAAI;AAAA,QAAA;AAAA,MAAA;AAAA,MAZ3C,GAAG,UAAU,IAAI,CAAC;AAAA,IAAA;AAAA,EAe7B,CAAC,EAAA,CACH;AAEJ;"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
function frameHasSource(frame) {
|
|
4
|
+
return !!frame.sourceLines && frame.sourceLines.length > 0;
|
|
5
|
+
}
|
|
6
|
+
exports.frameHasSource = frameHasSource;
|
|
7
|
+
//# sourceMappingURL=FrameSourceWindow.utils.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FrameSourceWindow.utils.cjs","sources":["../../../src/data/diagnostics/FrameSourceWindow.utils.ts"],"sourcesContent":["export interface FrameSource {\n /** Source lines around the focal line. */\n sourceLines?: string[];\n /** Absolute line number for each entry in sourceLines (preferred gutter). */\n sourceLineNumbers?: number[];\n /** Line number of sourceLines[0] when sourceLineNumbers is absent. */\n sourceStartLine?: number;\n /** The frame's focal line, highlighted when it falls inside the window. */\n line?: number;\n}\n\nexport function frameHasSource(frame: FrameSource): boolean {\n return !!frame.sourceLines && frame.sourceLines.length > 0;\n}\n"],"names":[],"mappings":";;AAWO,SAAS,eAAe,OAA6B;AAC1D,SAAO,CAAC,CAAC,MAAM,eAAe,MAAM,YAAY,SAAS;AAC3D;;"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface FrameSource {
|
|
2
|
+
/** Source lines around the focal line. */
|
|
3
|
+
sourceLines?: string[];
|
|
4
|
+
/** Absolute line number for each entry in sourceLines (preferred gutter). */
|
|
5
|
+
sourceLineNumbers?: number[];
|
|
6
|
+
/** Line number of sourceLines[0] when sourceLineNumbers is absent. */
|
|
7
|
+
sourceStartLine?: number;
|
|
8
|
+
/** The frame's focal line, highlighted when it falls inside the window. */
|
|
9
|
+
line?: number;
|
|
10
|
+
}
|
|
11
|
+
export declare function frameHasSource(frame: FrameSource): boolean;
|
|
12
|
+
//# sourceMappingURL=FrameSourceWindow.utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FrameSourceWindow.utils.d.ts","sourceRoot":"","sources":["../../../src/data/diagnostics/FrameSourceWindow.utils.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,0CAA0C;IAC1C,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,6EAA6E;IAC7E,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,sEAAsE;IACtE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,2EAA2E;IAC3E,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAE1D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FrameSourceWindow.utils.js","sources":["../../../src/data/diagnostics/FrameSourceWindow.utils.ts"],"sourcesContent":["export interface FrameSource {\n /** Source lines around the focal line. */\n sourceLines?: string[];\n /** Absolute line number for each entry in sourceLines (preferred gutter). */\n sourceLineNumbers?: number[];\n /** Line number of sourceLines[0] when sourceLineNumbers is absent. */\n sourceStartLine?: number;\n /** The frame's focal line, highlighted when it falls inside the window. */\n line?: number;\n}\n\nexport function frameHasSource(frame: FrameSource): boolean {\n return !!frame.sourceLines && frame.sourceLines.length > 0;\n}\n"],"names":[],"mappings":"AAWO,SAAS,eAAe,OAA6B;AAC1D,SAAO,CAAC,CAAC,MAAM,eAAe,MAAM,YAAY,SAAS;AAC3D;"}
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
|
3
3
|
const jsxRuntime = require("react/jsx-runtime");
|
|
4
4
|
const Icon = require("../Icon.cjs");
|
|
5
5
|
const FrameSourceWindow = require("./FrameSourceWindow.cjs");
|
|
6
|
+
const FrameSourceWindow_utils = require("./FrameSourceWindow.utils.cjs");
|
|
6
7
|
const UiLock = require("../../icons/components/UiLock.cjs");
|
|
7
8
|
const UiSync = require("../../icons/components/UiSync.cjs");
|
|
8
9
|
const UiWatch = require("../../icons/components/UiWatch.cjs");
|
|
@@ -37,7 +38,7 @@ function JvmStackFrameRow({ frame }) {
|
|
|
37
38
|
frame.location && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-2 text-[10px] font-normal opacity-80", children: frame.location })
|
|
38
39
|
] }) }) })
|
|
39
40
|
] }),
|
|
40
|
-
!isAnno &&
|
|
41
|
+
!isAnno && FrameSourceWindow_utils.frameHasSource(frame) && /* @__PURE__ */ jsxRuntime.jsx(FrameSourceWindow.FrameSourceWindow, { frame })
|
|
41
42
|
] });
|
|
42
43
|
}
|
|
43
44
|
exports.JvmStackFrameRow = JvmStackFrameRow;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JvmStackTrace.cjs","sources":["../../../src/data/diagnostics/JvmStackTrace.tsx"],"sourcesContent":["import { Icon } from \"../Icon\";\nimport { UiChip, UiDebugStepOver, UiLock, UiSync, UiMethod, UiWatch } from \"../../icons\";\nimport type { ParsedThreadFrame } from \"./jvm-stacktrace\";\nimport { FrameSourceWindow
|
|
1
|
+
{"version":3,"file":"JvmStackTrace.cjs","sources":["../../../src/data/diagnostics/JvmStackTrace.tsx"],"sourcesContent":["import { Icon } from \"../Icon\";\nimport { UiChip, UiDebugStepOver, UiLock, UiSync, UiMethod, UiWatch } from \"../../icons\";\nimport type { ParsedThreadFrame } from \"./jvm-stacktrace\";\nimport { FrameSourceWindow } from \"./FrameSourceWindow\";\nimport { frameHasSource } from \"./FrameSourceWindow.utils\";\n\n// JvmFrameSourceResolver returns a source window for a frame, or undefined when\n// no source is available (a missing class must never blank out the frame). Used\n// to augment the rendered thread dump with decompiled source in place.\nexport type JvmFrameSourceResolver = (frame: ParsedThreadFrame) =>\n | { sourceLines: string[]; sourceLineNumbers?: number[]; sourceStartLine?: number }\n | undefined;\n\nexport type JvmStackTraceProps = {\n frames: ParsedThreadFrame[];\n hideRuntimeOnly?: boolean;\n className?: string;\n /** Optional resolver that supplies inline source under each frame. */\n resolveSource?: JvmFrameSourceResolver;\n};\n\nexport function JvmStackTrace({\n frames,\n hideRuntimeOnly = false,\n className,\n resolveSource,\n}: JvmStackTraceProps) {\n const visibleFrames = hideRuntimeOnly\n ? frames.filter((frame) => frame.kind !== \"frame\" || !frame.runtime)\n : frames;\n\n if (visibleFrames.length === 0) return null;\n\n return (\n <div className={className}>\n {visibleFrames.map((frame, index) => {\n const resolved = resolveSource?.(frame);\n const withSource = resolved ? { ...frame, ...resolved } : frame;\n return (\n <JvmStackFrameRow key={`${frame.functionName}-${index}`} frame={withSource} />\n );\n })}\n </div>\n );\n}\n\nexport function JvmStackFrameRow({ frame }: { frame: ParsedThreadFrame }) {\n const isAnno = frame.kind !== \"frame\";\n const icon = isAnno\n ? frame.kind === \"locked\"\n ? UiLock\n : frame.kind === \"waiting_to_lock\"\n ? UiSync\n : UiWatch\n : frame.nativeMethod\n ? UiChip\n : frame.runtime\n ? UiDebugStepOver\n : UiMethod;\n\n return (\n <div className={frame.runtime ? \"text-muted-foreground\" : \"text-foreground\"}>\n <div className=\"flex items-start gap-1.5\">\n <Icon icon={icon} className=\"mt-0.5 shrink-0 text-[11px]\" />\n <div className=\"min-w-0\">\n <div className=\"break-all font-mono text-[11px] font-semibold leading-4\">\n {isAnno ? (\n <>\n <span className=\"opacity-70\">{frame.functionName}</span>\n {frame.annotationText && (\n <span className=\"ml-2 font-normal opacity-80\">{frame.annotationText}</span>\n )}\n </>\n ) : (\n <>\n {frame.displayName}\n {frame.location && (\n <span className=\"ml-2 text-[10px] font-normal opacity-80\">{frame.location}</span>\n )}\n </>\n )}\n </div>\n </div>\n </div>\n {!isAnno && frameHasSource(frame) && <FrameSourceWindow frame={frame} />}\n </div>\n );\n}\n"],"names":["jsx","UiLock","UiSync","UiWatch","UiChip","UiDebugStepOver","UiMethod","jsxs","Icon","Fragment","frameHasSource","FrameSourceWindow"],"mappings":";;;;;;;;;;;;AAqBO,SAAS,cAAc;AAAA,EAC5B;AAAA,EACA,kBAAkB;AAAA,EAClB;AAAA,EACA;AACF,GAAuB;AACrB,QAAM,gBAAgB,kBAClB,OAAO,OAAO,CAAC,UAAU,MAAM,SAAS,WAAW,CAAC,MAAM,OAAO,IACjE;AAEJ,MAAI,cAAc,WAAW,EAAG,QAAO;AAEvC,wCACG,OAAA,EAAI,WACF,wBAAc,IAAI,CAAC,OAAO,UAAU;AACnC,UAAM,WAAW,+CAAgB;AACjC,UAAM,aAAa,WAAW,EAAE,GAAG,OAAO,GAAG,aAAa;AAC1D,WACEA,+BAAC,oBAAwD,OAAO,WAAA,GAAzC,GAAG,MAAM,YAAY,IAAI,KAAK,EAAuB;AAAA,EAEhF,CAAC,EAAA,CACH;AAEJ;AAEO,SAAS,iBAAiB,EAAE,SAAuC;AACxE,QAAM,SAAS,MAAM,SAAS;AAC9B,QAAM,OAAO,SACT,MAAM,SAAS,WACbC,OAAAA,SACA,MAAM,SAAS,oBACbC,gBACAC,QAAAA,UACJ,MAAM,eACJC,OAAAA,SACA,MAAM,UACJC,gBAAAA,kBACAC,SAAAA;AAER,yCACG,OAAA,EAAI,WAAW,MAAM,UAAU,0BAA0B,mBACxD,UAAA;AAAA,IAAAC,2BAAAA,KAAC,OAAA,EAAI,WAAU,4BACb,UAAA;AAAA,MAAAP,2BAAAA,IAACQ,KAAAA,MAAA,EAAK,MAAY,WAAU,8BAAA,CAA8B;AAAA,MAC1DR,2BAAAA,IAAC,SAAI,WAAU,WACb,yCAAC,OAAA,EAAI,WAAU,2DACZ,UAAA,SACCO,2BAAAA,KAAAE,WAAAA,UAAA,EACE,UAAA;AAAA,QAAAT,2BAAAA,IAAC,QAAA,EAAK,WAAU,cAAc,UAAA,MAAM,cAAa;AAAA,QAChD,MAAM,kBACLA,2BAAAA,IAAC,UAAK,WAAU,+BAA+B,gBAAM,eAAA,CAAe;AAAA,MAAA,EAAA,CAExE,IAEAO,2BAAAA,KAAAE,WAAAA,UAAA,EACG,UAAA;AAAA,QAAA,MAAM;AAAA,QACN,MAAM,YACLT,2BAAAA,IAAC,UAAK,WAAU,2CAA2C,gBAAM,SAAA,CAAS;AAAA,MAAA,EAAA,CAE9E,GAEJ,EAAA,CACF;AAAA,IAAA,GACF;AAAA,IACC,CAAC,UAAUU,wBAAAA,eAAe,KAAK,KAAKV,2BAAAA,IAACW,kBAAAA,qBAAkB,MAAA,CAAc;AAAA,EAAA,GACxE;AAEJ;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JvmStackTrace.d.ts","sourceRoot":"","sources":["../../../src/data/diagnostics/JvmStackTrace.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"JvmStackTrace.d.ts","sourceRoot":"","sources":["../../../src/data/diagnostics/JvmStackTrace.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAO1D,MAAM,MAAM,sBAAsB,GAAG,CAAC,KAAK,EAAE,iBAAiB,KAC1D;IAAE,WAAW,EAAE,MAAM,EAAE,CAAC;IAAC,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAAE,GACjF,SAAS,CAAC;AAEd,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sEAAsE;IACtE,aAAa,CAAC,EAAE,sBAAsB,CAAC;CACxC,CAAC;AAEF,wBAAgB,aAAa,CAAC,EAC5B,MAAM,EACN,eAAuB,EACvB,SAAS,EACT,aAAa,GACd,EAAE,kBAAkB,kDAkBpB;AAED,wBAAgB,gBAAgB,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,iBAAiB,CAAA;CAAE,2CAyCvE"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { jsxs, jsx, Fragment } from "react/jsx-runtime";
|
|
2
2
|
import { Icon } from "../Icon.js";
|
|
3
|
-
import {
|
|
3
|
+
import { FrameSourceWindow } from "./FrameSourceWindow.js";
|
|
4
|
+
import { frameHasSource } from "./FrameSourceWindow.utils.js";
|
|
4
5
|
import { UiLock } from "../../icons/components/UiLock.js";
|
|
5
6
|
import { UiSync } from "../../icons/components/UiSync.js";
|
|
6
7
|
import { UiWatch } from "../../icons/components/UiWatch.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JvmStackTrace.js","sources":["../../../src/data/diagnostics/JvmStackTrace.tsx"],"sourcesContent":["import { Icon } from \"../Icon\";\nimport { UiChip, UiDebugStepOver, UiLock, UiSync, UiMethod, UiWatch } from \"../../icons\";\nimport type { ParsedThreadFrame } from \"./jvm-stacktrace\";\nimport { FrameSourceWindow
|
|
1
|
+
{"version":3,"file":"JvmStackTrace.js","sources":["../../../src/data/diagnostics/JvmStackTrace.tsx"],"sourcesContent":["import { Icon } from \"../Icon\";\nimport { UiChip, UiDebugStepOver, UiLock, UiSync, UiMethod, UiWatch } from \"../../icons\";\nimport type { ParsedThreadFrame } from \"./jvm-stacktrace\";\nimport { FrameSourceWindow } from \"./FrameSourceWindow\";\nimport { frameHasSource } from \"./FrameSourceWindow.utils\";\n\n// JvmFrameSourceResolver returns a source window for a frame, or undefined when\n// no source is available (a missing class must never blank out the frame). Used\n// to augment the rendered thread dump with decompiled source in place.\nexport type JvmFrameSourceResolver = (frame: ParsedThreadFrame) =>\n | { sourceLines: string[]; sourceLineNumbers?: number[]; sourceStartLine?: number }\n | undefined;\n\nexport type JvmStackTraceProps = {\n frames: ParsedThreadFrame[];\n hideRuntimeOnly?: boolean;\n className?: string;\n /** Optional resolver that supplies inline source under each frame. */\n resolveSource?: JvmFrameSourceResolver;\n};\n\nexport function JvmStackTrace({\n frames,\n hideRuntimeOnly = false,\n className,\n resolveSource,\n}: JvmStackTraceProps) {\n const visibleFrames = hideRuntimeOnly\n ? frames.filter((frame) => frame.kind !== \"frame\" || !frame.runtime)\n : frames;\n\n if (visibleFrames.length === 0) return null;\n\n return (\n <div className={className}>\n {visibleFrames.map((frame, index) => {\n const resolved = resolveSource?.(frame);\n const withSource = resolved ? { ...frame, ...resolved } : frame;\n return (\n <JvmStackFrameRow key={`${frame.functionName}-${index}`} frame={withSource} />\n );\n })}\n </div>\n );\n}\n\nexport function JvmStackFrameRow({ frame }: { frame: ParsedThreadFrame }) {\n const isAnno = frame.kind !== \"frame\";\n const icon = isAnno\n ? frame.kind === \"locked\"\n ? UiLock\n : frame.kind === \"waiting_to_lock\"\n ? UiSync\n : UiWatch\n : frame.nativeMethod\n ? UiChip\n : frame.runtime\n ? UiDebugStepOver\n : UiMethod;\n\n return (\n <div className={frame.runtime ? \"text-muted-foreground\" : \"text-foreground\"}>\n <div className=\"flex items-start gap-1.5\">\n <Icon icon={icon} className=\"mt-0.5 shrink-0 text-[11px]\" />\n <div className=\"min-w-0\">\n <div className=\"break-all font-mono text-[11px] font-semibold leading-4\">\n {isAnno ? (\n <>\n <span className=\"opacity-70\">{frame.functionName}</span>\n {frame.annotationText && (\n <span className=\"ml-2 font-normal opacity-80\">{frame.annotationText}</span>\n )}\n </>\n ) : (\n <>\n {frame.displayName}\n {frame.location && (\n <span className=\"ml-2 text-[10px] font-normal opacity-80\">{frame.location}</span>\n )}\n </>\n )}\n </div>\n </div>\n </div>\n {!isAnno && frameHasSource(frame) && <FrameSourceWindow frame={frame} />}\n </div>\n );\n}\n"],"names":[],"mappings":";;;;;;;;;;AAqBO,SAAS,cAAc;AAAA,EAC5B;AAAA,EACA,kBAAkB;AAAA,EAClB;AAAA,EACA;AACF,GAAuB;AACrB,QAAM,gBAAgB,kBAClB,OAAO,OAAO,CAAC,UAAU,MAAM,SAAS,WAAW,CAAC,MAAM,OAAO,IACjE;AAEJ,MAAI,cAAc,WAAW,EAAG,QAAO;AAEvC,6BACG,OAAA,EAAI,WACF,wBAAc,IAAI,CAAC,OAAO,UAAU;AACnC,UAAM,WAAW,+CAAgB;AACjC,UAAM,aAAa,WAAW,EAAE,GAAG,OAAO,GAAG,aAAa;AAC1D,WACE,oBAAC,oBAAwD,OAAO,WAAA,GAAzC,GAAG,MAAM,YAAY,IAAI,KAAK,EAAuB;AAAA,EAEhF,CAAC,EAAA,CACH;AAEJ;AAEO,SAAS,iBAAiB,EAAE,SAAuC;AACxE,QAAM,SAAS,MAAM,SAAS;AAC9B,QAAM,OAAO,SACT,MAAM,SAAS,WACb,SACA,MAAM,SAAS,oBACb,SACA,UACJ,MAAM,eACJ,SACA,MAAM,UACJ,kBACA;AAER,8BACG,OAAA,EAAI,WAAW,MAAM,UAAU,0BAA0B,mBACxD,UAAA;AAAA,IAAA,qBAAC,OAAA,EAAI,WAAU,4BACb,UAAA;AAAA,MAAA,oBAAC,MAAA,EAAK,MAAY,WAAU,8BAAA,CAA8B;AAAA,MAC1D,oBAAC,SAAI,WAAU,WACb,8BAAC,OAAA,EAAI,WAAU,2DACZ,UAAA,SACC,qBAAA,UAAA,EACE,UAAA;AAAA,QAAA,oBAAC,QAAA,EAAK,WAAU,cAAc,UAAA,MAAM,cAAa;AAAA,QAChD,MAAM,kBACL,oBAAC,UAAK,WAAU,+BAA+B,gBAAM,eAAA,CAAe;AAAA,MAAA,EAAA,CAExE,IAEA,qBAAA,UAAA,EACG,UAAA;AAAA,QAAA,MAAM;AAAA,QACN,MAAM,YACL,oBAAC,UAAK,WAAU,2CAA2C,gBAAM,SAAA,CAAS;AAAA,MAAA,EAAA,CAE9E,GAEJ,EAAA,CACF;AAAA,IAAA,GACF;AAAA,IACC,CAAC,UAAU,eAAe,KAAK,KAAK,oBAAC,qBAAkB,MAAA,CAAc;AAAA,EAAA,GACxE;AAEJ;"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
let fallbackIcon = null;
|
|
4
|
+
function setFallbackIconProvider(component) {
|
|
5
|
+
fallbackIcon = component;
|
|
6
|
+
}
|
|
7
|
+
function getFallbackIconProvider() {
|
|
8
|
+
return fallbackIcon;
|
|
9
|
+
}
|
|
10
|
+
exports.getFallbackIconProvider = getFallbackIconProvider;
|
|
11
|
+
exports.setFallbackIconProvider = setFallbackIconProvider;
|
|
12
|
+
//# sourceMappingURL=icon-fallback.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icon-fallback.cjs","sources":["../../src/data/icon-fallback.ts"],"sourcesContent":["import type { ComponentType } from \"react\";\n\nexport type FallbackIconProps = {\n /** Runtime icon name to resolve. */\n name?: string;\n /** Classes applied by Icon. */\n className?: string;\n /** Requested glyph size. */\n size?: string | number;\n /** Accessible label. */\n alt?: string;\n};\n\nexport type FallbackIconComponent = ComponentType<FallbackIconProps>;\n\nlet fallbackIcon: FallbackIconComponent | null = null;\n\n/**\n * Register a secondary glyph provider. Pass the flanksource Icon/ResourceIcon\n * (or any compatible component) to resolve user-supplied runtime names.\n */\nexport function setFallbackIconProvider(component: FallbackIconComponent | null): void {\n fallbackIcon = component;\n}\n\nexport function getFallbackIconProvider(): FallbackIconComponent | null {\n return fallbackIcon;\n}\n"],"names":[],"mappings":";;AAeA,IAAI,eAA6C;AAM1C,SAAS,wBAAwB,WAA+C;AACrF,iBAAe;AACjB;AAEO,SAAS,0BAAwD;AACtE,SAAO;AACT;;;"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ComponentType } from 'react';
|
|
2
|
+
export type FallbackIconProps = {
|
|
3
|
+
/** Runtime icon name to resolve. */
|
|
4
|
+
name?: string;
|
|
5
|
+
/** Classes applied by Icon. */
|
|
6
|
+
className?: string;
|
|
7
|
+
/** Requested glyph size. */
|
|
8
|
+
size?: string | number;
|
|
9
|
+
/** Accessible label. */
|
|
10
|
+
alt?: string;
|
|
11
|
+
};
|
|
12
|
+
export type FallbackIconComponent = ComponentType<FallbackIconProps>;
|
|
13
|
+
/**
|
|
14
|
+
* Register a secondary glyph provider. Pass the flanksource Icon/ResourceIcon
|
|
15
|
+
* (or any compatible component) to resolve user-supplied runtime names.
|
|
16
|
+
*/
|
|
17
|
+
export declare function setFallbackIconProvider(component: FallbackIconComponent | null): void;
|
|
18
|
+
export declare function getFallbackIconProvider(): FallbackIconComponent | null;
|
|
19
|
+
//# sourceMappingURL=icon-fallback.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icon-fallback.d.ts","sourceRoot":"","sources":["../../src/data/icon-fallback.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C,MAAM,MAAM,iBAAiB,GAAG;IAC9B,oCAAoC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,+BAA+B;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4BAA4B;IAC5B,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,wBAAwB;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,aAAa,CAAC,iBAAiB,CAAC,CAAC;AAIrE;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,qBAAqB,GAAG,IAAI,GAAG,IAAI,CAErF;AAED,wBAAgB,uBAAuB,IAAI,qBAAqB,GAAG,IAAI,CAEtE"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
let fallbackIcon = null;
|
|
2
|
+
function setFallbackIconProvider(component) {
|
|
3
|
+
fallbackIcon = component;
|
|
4
|
+
}
|
|
5
|
+
function getFallbackIconProvider() {
|
|
6
|
+
return fallbackIcon;
|
|
7
|
+
}
|
|
8
|
+
export {
|
|
9
|
+
getFallbackIconProvider,
|
|
10
|
+
setFallbackIconProvider
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=icon-fallback.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icon-fallback.js","sources":["../../src/data/icon-fallback.ts"],"sourcesContent":["import type { ComponentType } from \"react\";\n\nexport type FallbackIconProps = {\n /** Runtime icon name to resolve. */\n name?: string;\n /** Classes applied by Icon. */\n className?: string;\n /** Requested glyph size. */\n size?: string | number;\n /** Accessible label. */\n alt?: string;\n};\n\nexport type FallbackIconComponent = ComponentType<FallbackIconProps>;\n\nlet fallbackIcon: FallbackIconComponent | null = null;\n\n/**\n * Register a secondary glyph provider. Pass the flanksource Icon/ResourceIcon\n * (or any compatible component) to resolve user-supplied runtime names.\n */\nexport function setFallbackIconProvider(component: FallbackIconComponent | null): void {\n fallbackIcon = component;\n}\n\nexport function getFallbackIconProvider(): FallbackIconComponent | null {\n return fallbackIcon;\n}\n"],"names":[],"mappings":"AAeA,IAAI,eAA6C;AAM1C,SAAS,wBAAwB,WAA+C;AACrF,iBAAe;AACjB;AAEO,SAAS,0BAAwD;AACtE,SAAO;AACT;"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
function segment(key, label, count, className) {
|
|
4
|
+
return { key, label, count: Math.max(0, count || 0), className };
|
|
5
|
+
}
|
|
6
|
+
exports.segment = segment;
|
|
7
|
+
//# sourceMappingURL=status-breakdown-utils.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status-breakdown-utils.cjs","sources":["../../src/data/status-breakdown-utils.ts"],"sourcesContent":["import type { StatusSegment } from \"./StatusBreakdown\";\n\n/** Builds a StatusSegment, clamping the count to a non-negative integer. */\nexport function segment(key: string, label: string, count: number, className: string): StatusSegment {\n return { key, label, count: Math.max(0, count || 0), className };\n}\n"],"names":[],"mappings":";;AAGO,SAAS,QAAQ,KAAa,OAAe,OAAe,WAAkC;AACnG,SAAO,EAAE,KAAK,OAAO,OAAO,KAAK,IAAI,GAAG,SAAS,CAAC,GAAG,UAAA;AACvD;;"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { StatusSegment } from './StatusBreakdown';
|
|
2
|
+
/** Builds a StatusSegment, clamping the count to a non-negative integer. */
|
|
3
|
+
export declare function segment(key: string, label: string, count: number, className: string): StatusSegment;
|
|
4
|
+
//# sourceMappingURL=status-breakdown-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status-breakdown-utils.d.ts","sourceRoot":"","sources":["../../src/data/status-breakdown-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,4EAA4E;AAC5E,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,aAAa,CAEnG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status-breakdown-utils.js","sources":["../../src/data/status-breakdown-utils.ts"],"sourcesContent":["import type { StatusSegment } from \"./StatusBreakdown\";\n\n/** Builds a StatusSegment, clamping the count to a non-negative integer. */\nexport function segment(key: string, label: string, count: number, className: string): StatusSegment {\n return { key, label, count: Math.max(0, count || 0), className };\n}\n"],"names":[],"mappings":"AAGO,SAAS,QAAQ,KAAa,OAAe,OAAe,WAAkC;AACnG,SAAO,EAAE,KAAK,OAAO,OAAO,KAAK,IAAI,GAAG,SAAS,CAAC,GAAG,UAAA;AACvD;"}
|
|
@@ -28,6 +28,7 @@ function TestRunSummary({
|
|
|
28
28
|
done,
|
|
29
29
|
now,
|
|
30
30
|
runMeta,
|
|
31
|
+
compact = false,
|
|
31
32
|
className
|
|
32
33
|
}) {
|
|
33
34
|
const t = totals(tests);
|
|
@@ -50,6 +51,41 @@ function TestRunSummary({
|
|
|
50
51
|
{ n: t.running, label: "running", tone: "text-blue-600 dark:text-blue-400" },
|
|
51
52
|
{ n: t.pending, label: "queued", tone: "text-muted-foreground" }
|
|
52
53
|
];
|
|
54
|
+
if (compact) {
|
|
55
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
56
|
+
"div",
|
|
57
|
+
{
|
|
58
|
+
className: utils.cn(
|
|
59
|
+
"flex flex-wrap items-center gap-x-3 gap-y-0.5 text-sm text-muted-foreground",
|
|
60
|
+
className
|
|
61
|
+
),
|
|
62
|
+
children: [
|
|
63
|
+
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "font-medium text-foreground", children: [
|
|
64
|
+
t.total,
|
|
65
|
+
" tests",
|
|
66
|
+
(runMeta == null ? void 0 : runMeta.kind) === "rerun" ? ` · rerun #${runMeta.sequence}` : ""
|
|
67
|
+
] }),
|
|
68
|
+
chips.filter((c) => c.n > 0).map((c) => /* @__PURE__ */ jsxRuntime.jsxs("span", { className: c.tone, children: [
|
|
69
|
+
c.n,
|
|
70
|
+
" ",
|
|
71
|
+
c.label
|
|
72
|
+
] }, c.label)),
|
|
73
|
+
elapsed && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "inline-flex items-center gap-1", children: [
|
|
74
|
+
/* @__PURE__ */ jsxRuntime.jsx(Icon.Icon, { icon: UiClock.UiClock, className: "text-xs" }),
|
|
75
|
+
elapsed
|
|
76
|
+
] }),
|
|
77
|
+
t.total > 0 && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "inline-flex items-center gap-1.5", children: [
|
|
78
|
+
/* @__PURE__ */ jsxRuntime.jsx(ProgressBar.ProgressBar, { className: "w-24", segments, total: t.total, height: "h-1.5" }),
|
|
79
|
+
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-xs font-medium text-green-600 dark:text-green-400", children: [
|
|
80
|
+
pct(t.passed, t.total),
|
|
81
|
+
"%"
|
|
82
|
+
] })
|
|
83
|
+
] }),
|
|
84
|
+
done ? /* @__PURE__ */ jsxRuntime.jsx(Icon.Icon, { icon: UiCheck.UiCheck, className: "text-green-600 dark:text-green-400" }) : /* @__PURE__ */ jsxRuntime.jsx(Icon.Icon, { icon: UiLoader.UiLoader, className: "animate-spin text-blue-500" })
|
|
85
|
+
]
|
|
86
|
+
}
|
|
87
|
+
);
|
|
88
|
+
}
|
|
53
89
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: utils.cn("flex min-w-[18rem] flex-col items-end gap-1.5", className), children: [
|
|
54
90
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center justify-end gap-x-3 gap-y-0.5 text-sm text-muted-foreground", children: [
|
|
55
91
|
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "font-medium text-foreground", children: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TestRunSummary.cjs","sources":["../../../src/data/test-runner/TestRunSummary.tsx"],"sourcesContent":["import { Icon } from \"../Icon\";\nimport { ProgressBar, type ProgressSegment } from \"../ProgressBar\";\nimport { cn } from \"../../lib/utils\";\nimport { UiCheck, UiClock, UiLoader } from \"../../icons\";\nimport type { RunMeta, Test } from \"./types\";\nimport { sumNonTaskTests, type StatusCounts } from \"./status\";\n\nexport type TestRunSummaryProps = {\n tests: Test[];\n /** Run start, epoch ms (host-provided). */\n startTime?: number | null | undefined;\n /** Run end, epoch ms; falls back to `now` while running. */\n endTime?: number | null | undefined;\n done: boolean;\n /** Injected clock (epoch ms) so the component stays pure. */\n now?: number | undefined;\n runMeta?: RunMeta | undefined;\n className?: string | undefined;\n};\n\nfunction totals(tests: Test[]): StatusCounts {\n return tests.reduce(\n (acc, t) => {\n const s = sumNonTaskTests(t);\n (Object.keys(acc) as (keyof StatusCounts)[]).forEach((k) => (acc[k] += s[k]));\n return acc;\n },\n { total: 0, passed: 0, failed: 0, warned: 0, skipped: 0, pending: 0, running: 0, timedout: 0 },\n );\n}\n\nfunction pct(part: number, total: number): number {\n return total > 0 ? Math.round((part / total) * 100) : 0;\n}\n\n/**\n * Header summary: per-status counts, elapsed time, a stacked progress bar, and\n * pass/fail/pending gauge cards. Pure — elapsed time comes from injected `now`.\n */\nexport function TestRunSummary({\n tests,\n startTime,\n endTime,\n done,\n now,\n runMeta,\n className,\n}: TestRunSummaryProps) {\n const t = totals(tests);\n const clock = now ?? 0;\n const end = done && endTime ? endTime : clock;\n const elapsed = startTime && end >= startTime ? `${((end - startTime) / 1000).toFixed(1)}s` : \"\";\n\n const segments: ProgressSegment[] = [\n { count: t.passed, color: \"bg-green-500\", label: \"passed\" },\n { count: t.skipped, color: \"bg-yellow-400\", label: \"skipped\" },\n { count: t.failed, color: \"bg-red-500\", label: \"failed\" },\n { count: t.timedout, color: \"bg-amber-500\", label: \"timed out\" },\n { count: t.running, color: \"bg-blue-400\", label: \"running\" },\n { count: t.pending, color: \"bg-muted-foreground/40\", label: \"queued\" },\n ];\n\n // Each status appears once, as a coloured count chip — no separate gauge-card\n // row repeating the same numbers as percentages.\n const chips: { n: number; label: string; tone: string }[] = [\n { n: t.passed, label: \"passed\", tone: \"text-green-600 dark:text-green-400\" },\n { n: t.failed, label: \"failed\", tone: \"text-red-600 dark:text-red-400\" },\n { n: t.timedout, label: \"timed out\", tone: \"text-amber-600 dark:text-amber-400\" },\n { n: t.skipped, label: \"skipped\", tone: \"text-yellow-700 dark:text-yellow-500\" },\n { n: t.running, label: \"running\", tone: \"text-blue-600 dark:text-blue-400\" },\n { n: t.pending, label: \"queued\", tone: \"text-muted-foreground\" },\n ];\n\n return (\n <div className={cn(\"flex min-w-[18rem] flex-col items-end gap-1.5\", className)}>\n <div className=\"flex flex-wrap items-center justify-end gap-x-3 gap-y-0.5 text-sm text-muted-foreground\">\n <span className=\"font-medium text-foreground\">\n {t.total} tests\n {runMeta?.kind === \"rerun\" ? ` · rerun #${runMeta.sequence}` : \"\"}\n </span>\n {chips\n .filter((c) => c.n > 0)\n .map((c) => (\n <span key={c.label} className={c.tone}>\n {c.n} {c.label}\n </span>\n ))}\n {elapsed && (\n <span className=\"inline-flex items-center gap-1\">\n <Icon icon={UiClock} className=\"text-xs\" />\n {elapsed}\n </span>\n )}\n {done ? (\n <Icon icon={UiCheck} className=\"text-green-600 dark:text-green-400\" />\n ) : (\n <Icon icon={UiLoader} className=\"animate-spin text-blue-500\" />\n )}\n </div>\n\n {t.total > 0 && (\n <div className=\"flex w-72 items-center gap-2\">\n <ProgressBar className=\"flex-1\" segments={segments} total={t.total} height=\"h-2\" />\n <span className=\"shrink-0 text-xs font-medium text-green-600 dark:text-green-400\">\n {pct(t.passed, t.total)}%\n </span>\n </div>\n )}\n </div>\n );\n}\n"],"names":["sumNonTaskTests","
|
|
1
|
+
{"version":3,"file":"TestRunSummary.cjs","sources":["../../../src/data/test-runner/TestRunSummary.tsx"],"sourcesContent":["import { Icon } from \"../Icon\";\nimport { ProgressBar, type ProgressSegment } from \"../ProgressBar\";\nimport { cn } from \"../../lib/utils\";\nimport { UiCheck, UiClock, UiLoader } from \"../../icons\";\nimport type { RunMeta, Test } from \"./types\";\nimport { sumNonTaskTests, type StatusCounts } from \"./status\";\n\nexport type TestRunSummaryProps = {\n tests: Test[];\n /** Run start, epoch ms (host-provided). */\n startTime?: number | null | undefined;\n /** Run end, epoch ms; falls back to `now` while running. */\n endTime?: number | null | undefined;\n done: boolean;\n /** Injected clock (epoch ms) so the component stays pure. */\n now?: number | undefined;\n runMeta?: RunMeta | undefined;\n /**\n * Single-line layout for embedding in a host header (e.g. a dialog header):\n * counts + a short inline progress bar on one row, instead of the default\n * two-line right-aligned column.\n */\n compact?: boolean | undefined;\n className?: string | undefined;\n};\n\nfunction totals(tests: Test[]): StatusCounts {\n return tests.reduce(\n (acc, t) => {\n const s = sumNonTaskTests(t);\n (Object.keys(acc) as (keyof StatusCounts)[]).forEach((k) => (acc[k] += s[k]));\n return acc;\n },\n { total: 0, passed: 0, failed: 0, warned: 0, skipped: 0, pending: 0, running: 0, timedout: 0 },\n );\n}\n\nfunction pct(part: number, total: number): number {\n return total > 0 ? Math.round((part / total) * 100) : 0;\n}\n\n/**\n * Header summary: per-status counts, elapsed time, a stacked progress bar, and\n * pass/fail/pending gauge cards. Pure — elapsed time comes from injected `now`.\n */\nexport function TestRunSummary({\n tests,\n startTime,\n endTime,\n done,\n now,\n runMeta,\n compact = false,\n className,\n}: TestRunSummaryProps) {\n const t = totals(tests);\n const clock = now ?? 0;\n const end = done && endTime ? endTime : clock;\n const elapsed = startTime && end >= startTime ? `${((end - startTime) / 1000).toFixed(1)}s` : \"\";\n\n const segments: ProgressSegment[] = [\n { count: t.passed, color: \"bg-green-500\", label: \"passed\" },\n { count: t.skipped, color: \"bg-yellow-400\", label: \"skipped\" },\n { count: t.failed, color: \"bg-red-500\", label: \"failed\" },\n { count: t.timedout, color: \"bg-amber-500\", label: \"timed out\" },\n { count: t.running, color: \"bg-blue-400\", label: \"running\" },\n { count: t.pending, color: \"bg-muted-foreground/40\", label: \"queued\" },\n ];\n\n // Each status appears once, as a coloured count chip — no separate gauge-card\n // row repeating the same numbers as percentages.\n const chips: { n: number; label: string; tone: string }[] = [\n { n: t.passed, label: \"passed\", tone: \"text-green-600 dark:text-green-400\" },\n { n: t.failed, label: \"failed\", tone: \"text-red-600 dark:text-red-400\" },\n { n: t.timedout, label: \"timed out\", tone: \"text-amber-600 dark:text-amber-400\" },\n { n: t.skipped, label: \"skipped\", tone: \"text-yellow-700 dark:text-yellow-500\" },\n { n: t.running, label: \"running\", tone: \"text-blue-600 dark:text-blue-400\" },\n { n: t.pending, label: \"queued\", tone: \"text-muted-foreground\" },\n ];\n\n if (compact) {\n return (\n <div\n className={cn(\n \"flex flex-wrap items-center gap-x-3 gap-y-0.5 text-sm text-muted-foreground\",\n className,\n )}\n >\n <span className=\"font-medium text-foreground\">\n {t.total} tests\n {runMeta?.kind === \"rerun\" ? ` · rerun #${runMeta.sequence}` : \"\"}\n </span>\n {chips\n .filter((c) => c.n > 0)\n .map((c) => (\n <span key={c.label} className={c.tone}>\n {c.n} {c.label}\n </span>\n ))}\n {elapsed && (\n <span className=\"inline-flex items-center gap-1\">\n <Icon icon={UiClock} className=\"text-xs\" />\n {elapsed}\n </span>\n )}\n {t.total > 0 && (\n <span className=\"inline-flex items-center gap-1.5\">\n <ProgressBar className=\"w-24\" segments={segments} total={t.total} height=\"h-1.5\" />\n <span className=\"text-xs font-medium text-green-600 dark:text-green-400\">\n {pct(t.passed, t.total)}%\n </span>\n </span>\n )}\n {done ? (\n <Icon icon={UiCheck} className=\"text-green-600 dark:text-green-400\" />\n ) : (\n <Icon icon={UiLoader} className=\"animate-spin text-blue-500\" />\n )}\n </div>\n );\n }\n\n return (\n <div className={cn(\"flex min-w-[18rem] flex-col items-end gap-1.5\", className)}>\n <div className=\"flex flex-wrap items-center justify-end gap-x-3 gap-y-0.5 text-sm text-muted-foreground\">\n <span className=\"font-medium text-foreground\">\n {t.total} tests\n {runMeta?.kind === \"rerun\" ? ` · rerun #${runMeta.sequence}` : \"\"}\n </span>\n {chips\n .filter((c) => c.n > 0)\n .map((c) => (\n <span key={c.label} className={c.tone}>\n {c.n} {c.label}\n </span>\n ))}\n {elapsed && (\n <span className=\"inline-flex items-center gap-1\">\n <Icon icon={UiClock} className=\"text-xs\" />\n {elapsed}\n </span>\n )}\n {done ? (\n <Icon icon={UiCheck} className=\"text-green-600 dark:text-green-400\" />\n ) : (\n <Icon icon={UiLoader} className=\"animate-spin text-blue-500\" />\n )}\n </div>\n\n {t.total > 0 && (\n <div className=\"flex w-72 items-center gap-2\">\n <ProgressBar className=\"flex-1\" segments={segments} total={t.total} height=\"h-2\" />\n <span className=\"shrink-0 text-xs font-medium text-green-600 dark:text-green-400\">\n {pct(t.passed, t.total)}%\n </span>\n </div>\n )}\n </div>\n );\n}\n"],"names":["sumNonTaskTests","jsxs","cn","jsx","Icon","UiClock","ProgressBar","UiCheck","UiLoader"],"mappings":"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"}
|
|
@@ -9,11 +9,17 @@ export type TestRunSummaryProps = {
|
|
|
9
9
|
/** Injected clock (epoch ms) so the component stays pure. */
|
|
10
10
|
now?: number | undefined;
|
|
11
11
|
runMeta?: RunMeta | undefined;
|
|
12
|
+
/**
|
|
13
|
+
* Single-line layout for embedding in a host header (e.g. a dialog header):
|
|
14
|
+
* counts + a short inline progress bar on one row, instead of the default
|
|
15
|
+
* two-line right-aligned column.
|
|
16
|
+
*/
|
|
17
|
+
compact?: boolean | undefined;
|
|
12
18
|
className?: string | undefined;
|
|
13
19
|
};
|
|
14
20
|
/**
|
|
15
21
|
* Header summary: per-status counts, elapsed time, a stacked progress bar, and
|
|
16
22
|
* pass/fail/pending gauge cards. Pure — elapsed time comes from injected `now`.
|
|
17
23
|
*/
|
|
18
|
-
export declare function TestRunSummary({ tests, startTime, endTime, done, now, runMeta, className, }: TestRunSummaryProps): import("react/jsx-runtime").JSX.Element;
|
|
24
|
+
export declare function TestRunSummary({ tests, startTime, endTime, done, now, runMeta, compact, className, }: TestRunSummaryProps): import("react/jsx-runtime").JSX.Element;
|
|
19
25
|
//# sourceMappingURL=TestRunSummary.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TestRunSummary.d.ts","sourceRoot":"","sources":["../../../src/data/test-runner/TestRunSummary.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAG7C,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACtC,4DAA4D;IAC5D,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACpC,IAAI,EAAE,OAAO,CAAC;IACd,6DAA6D;IAC7D,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC,CAAC;AAiBF;;;GAGG;AACH,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,SAAS,EACT,OAAO,EACP,IAAI,EACJ,GAAG,EACH,OAAO,EACP,SAAS,GACV,EAAE,mBAAmB,
|
|
1
|
+
{"version":3,"file":"TestRunSummary.d.ts","sourceRoot":"","sources":["../../../src/data/test-runner/TestRunSummary.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAG7C,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACtC,4DAA4D;IAC5D,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACpC,IAAI,EAAE,OAAO,CAAC;IACd,6DAA6D;IAC7D,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC,CAAC;AAiBF;;;GAGG;AACH,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,SAAS,EACT,OAAO,EACP,IAAI,EACJ,GAAG,EACH,OAAO,EACP,OAAe,EACf,SAAS,GACV,EAAE,mBAAmB,2CAyGrB"}
|