@osdk/react-devtools 0.5.0
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/CHANGELOG.md +79 -0
- package/build/esm/DevToolsContext.js +19 -0
- package/build/esm/DevToolsContext.js.map +1 -0
- package/build/esm/components/ActionMetrics.js +89 -0
- package/build/esm/components/ActionMetrics.js.map +1 -0
- package/build/esm/components/BubbleChart.js +175 -0
- package/build/esm/components/BubbleChart.js.map +1 -0
- package/build/esm/components/BubbleChart.module.scss.js +6 -0
- package/build/esm/components/CacheInspectorTab.js +291 -0
- package/build/esm/components/CacheInspectorTab.js.map +1 -0
- package/build/esm/components/CacheInspectorTab.module.scss.js +39 -0
- package/build/esm/components/CacheMetrics.js +55 -0
- package/build/esm/components/CacheMetrics.js.map +1 -0
- package/build/esm/components/ComponentCard.js +124 -0
- package/build/esm/components/ComponentCard.js.map +1 -0
- package/build/esm/components/ComponentCard.module.scss.js +31 -0
- package/build/esm/components/ComputeTab.js +175 -0
- package/build/esm/components/ComputeTab.js.map +1 -0
- package/build/esm/components/CopyableCodeBlock.js +49 -0
- package/build/esm/components/CopyableCodeBlock.js.map +1 -0
- package/build/esm/components/CopyableCodeBlock.module.scss.js +10 -0
- package/build/esm/components/DebuggingTab.js +342 -0
- package/build/esm/components/DebuggingTab.js.map +1 -0
- package/build/esm/components/DebuggingTab.module.scss.js +18 -0
- package/build/esm/components/HookRow.js +180 -0
- package/build/esm/components/HookRow.js.map +1 -0
- package/build/esm/components/HookRow.module.scss.js +16 -0
- package/build/esm/components/ImprovementsTab.js +138 -0
- package/build/esm/components/ImprovementsTab.js.map +1 -0
- package/build/esm/components/ImprovementsTab.module.scss.js +30 -0
- package/build/esm/components/InspectorSelectionHeader.js +65 -0
- package/build/esm/components/InspectorSelectionHeader.js.map +1 -0
- package/build/esm/components/InterceptTab.js +862 -0
- package/build/esm/components/InterceptTab.js.map +1 -0
- package/build/esm/components/InterceptTab.module.scss.js +49 -0
- package/build/esm/components/IssueCard.js +115 -0
- package/build/esm/components/IssueCard.js.map +1 -0
- package/build/esm/components/IssueCard.module.scss.js +24 -0
- package/build/esm/components/LogEntryCard.js +94 -0
- package/build/esm/components/LogEntryCard.js.map +1 -0
- package/build/esm/components/LogEntryCard.module.scss.js +19 -0
- package/build/esm/components/MockEditor.js +316 -0
- package/build/esm/components/MockEditor.js.map +1 -0
- package/build/esm/components/MonitorErrorBoundary.js +64 -0
- package/build/esm/components/MonitorErrorBoundary.js.map +1 -0
- package/build/esm/components/MonitorErrorBoundary.module.scss.js +9 -0
- package/build/esm/components/MonitoringPanel.js +434 -0
- package/build/esm/components/MonitoringPanel.js.map +1 -0
- package/build/esm/components/MonitoringPanel.module.scss.js +81 -0
- package/build/esm/components/ObjectLoadingMetrics.js +60 -0
- package/build/esm/components/ObjectLoadingMetrics.js.map +1 -0
- package/build/esm/components/OsdkAppErrorBoundary.js +68 -0
- package/build/esm/components/OsdkAppErrorBoundary.js.map +1 -0
- package/build/esm/components/OsdkDevTools.js +40 -0
- package/build/esm/components/OsdkDevTools.js.map +1 -0
- package/build/esm/components/OverrideEditor.js +197 -0
- package/build/esm/components/OverrideEditor.js.map +1 -0
- package/build/esm/components/PerformanceTab.js +297 -0
- package/build/esm/components/PerformanceTab.js.map +1 -0
- package/build/esm/components/PrimitiveSelectionPanel.js +220 -0
- package/build/esm/components/PrimitiveSelectionPanel.js.map +1 -0
- package/build/esm/components/PrimitiveSelectionPanel.module.scss.js +26 -0
- package/build/esm/components/issueTypes.js +2 -0
- package/build/esm/components/issueTypes.js.map +1 -0
- package/build/esm/components/resolveComponentName.js +57 -0
- package/build/esm/components/resolveComponentName.js.map +1 -0
- package/build/esm/components/testHelpers.js +312 -0
- package/build/esm/components/testHelpers.js.map +1 -0
- package/build/esm/css.d.ts +20 -0
- package/build/esm/fiber/DegradationNotice.js +193 -0
- package/build/esm/fiber/DegradationNotice.js.map +1 -0
- package/build/esm/fiber/DevtoolsHook.js +252 -0
- package/build/esm/fiber/DevtoolsHook.js.map +1 -0
- package/build/esm/fiber/FiberAccess.js +65 -0
- package/build/esm/fiber/FiberAccess.js.map +1 -0
- package/build/esm/fiber/FiberInspection.js +140 -0
- package/build/esm/fiber/FiberInspection.js.map +1 -0
- package/build/esm/fiber/FiberTags.js +52 -0
- package/build/esm/fiber/FiberTags.js.map +1 -0
- package/build/esm/fiber/HookStateInspector.js +254 -0
- package/build/esm/fiber/HookStateInspector.js.map +1 -0
- package/build/esm/fiber/SafeFiberOperation.js +35 -0
- package/build/esm/fiber/SafeFiberOperation.js.map +1 -0
- package/build/esm/fiber/capabilities.js +180 -0
- package/build/esm/fiber/capabilities.js.map +1 -0
- package/build/esm/fiber/traverseFiber.js +129 -0
- package/build/esm/fiber/traverseFiber.js.map +1 -0
- package/build/esm/fiber/types.js +2 -0
- package/build/esm/fiber/types.js.map +1 -0
- package/build/esm/fiber/validation.js +155 -0
- package/build/esm/fiber/validation.js.map +1 -0
- package/build/esm/hooks/createPollingStore.js +81 -0
- package/build/esm/hooks/createPollingStore.js.map +1 -0
- package/build/esm/hooks/useActiveComponents.js +27 -0
- package/build/esm/hooks/useActiveComponents.js.map +1 -0
- package/build/esm/hooks/useComponentRegistry.js +25 -0
- package/build/esm/hooks/useComponentRegistry.js.map +1 -0
- package/build/esm/hooks/useComputeSelectors.js +43 -0
- package/build/esm/hooks/useComputeSelectors.js.map +1 -0
- package/build/esm/hooks/useConsoleLogs.js +46 -0
- package/build/esm/hooks/useConsoleLogs.js.map +1 -0
- package/build/esm/hooks/useInspectorSelection.js +93 -0
- package/build/esm/hooks/useInspectorSelection.js.map +1 -0
- package/build/esm/hooks/useMetrics.js +23 -0
- package/build/esm/hooks/useMetrics.js.map +1 -0
- package/build/esm/hooks/usePersistedState.js +89 -0
- package/build/esm/hooks/usePersistedState.js.map +1 -0
- package/build/esm/hooks/useRecommendations.js +123 -0
- package/build/esm/hooks/useRecommendations.js.map +1 -0
- package/build/esm/hooks/useSharedTick.js +49 -0
- package/build/esm/hooks/useSharedTick.js.map +1 -0
- package/build/esm/hooks/useTimeElapsed.js +51 -0
- package/build/esm/hooks/useTimeElapsed.js.map +1 -0
- package/build/esm/hooks/useTrackerSubscription.js +97 -0
- package/build/esm/hooks/useTrackerSubscription.js.map +1 -0
- package/build/esm/hooks/useUnusedFieldAnalysis.js +99 -0
- package/build/esm/hooks/useUnusedFieldAnalysis.js.map +1 -0
- package/build/esm/index.js +31 -0
- package/build/esm/index.js.map +1 -0
- package/build/esm/inspector/ClickToInspectSystem.js +228 -0
- package/build/esm/inspector/ClickToInspectSystem.js.map +1 -0
- package/build/esm/inspector/components/ComponentLabel.js +175 -0
- package/build/esm/inspector/components/ComponentLabel.js.map +1 -0
- package/build/esm/inspector/components/ComponentLabel.module.scss.js +12 -0
- package/build/esm/inspector/components/InspectorBanner.js +79 -0
- package/build/esm/inspector/components/InspectorBanner.js.map +1 -0
- package/build/esm/inspector/components/InspectorOverlay.js +149 -0
- package/build/esm/inspector/components/InspectorOverlay.js.map +1 -0
- package/build/esm/inspector/components/SelectionHighlight.js +74 -0
- package/build/esm/inspector/components/SelectionHighlight.js.map +1 -0
- package/build/esm/inspector/createClickToInspect.js +21 -0
- package/build/esm/inspector/createClickToInspect.js.map +1 -0
- package/build/esm/inspector/hooks/useAnimatedBounds.js +167 -0
- package/build/esm/inspector/hooks/useAnimatedBounds.js.map +1 -0
- package/build/esm/inspector/index.js +40 -0
- package/build/esm/inspector/index.js.map +1 -0
- package/build/esm/inspector/inspectorController.js +328 -0
- package/build/esm/inspector/inspectorController.js.map +1 -0
- package/build/esm/inspector/types.js +2 -0
- package/build/esm/inspector/types.js.map +1 -0
- package/build/esm/inspector/utils/elementBounds.js +72 -0
- package/build/esm/inspector/utils/elementBounds.js.map +1 -0
- package/build/esm/inspector/utils/interpolation.js +26 -0
- package/build/esm/inspector/utils/interpolation.js.map +1 -0
- package/build/esm/inspector/utils/labelPositioning.js +62 -0
- package/build/esm/inspector/utils/labelPositioning.js.map +1 -0
- package/build/esm/mocking/MockCacheKeyGenerator.js +109 -0
- package/build/esm/mocking/MockCacheKeyGenerator.js.map +1 -0
- package/build/esm/mocking/MockManager.js +281 -0
- package/build/esm/mocking/MockManager.js.map +1 -0
- package/build/esm/prototyping/PrototypeOverrideStore.js +66 -0
- package/build/esm/prototyping/PrototypeOverrideStore.js.map +1 -0
- package/build/esm/prototyping/index.js +18 -0
- package/build/esm/prototyping/index.js.map +1 -0
- package/build/esm/public/vite.js +19 -0
- package/build/esm/public/vite.js.map +1 -0
- package/build/esm/register.js +41 -0
- package/build/esm/register.js.map +1 -0
- package/build/esm/scss.d.ts +20 -0
- package/build/esm/store/ComputeStore.js +269 -0
- package/build/esm/store/ComputeStore.js.map +1 -0
- package/build/esm/store/ConsoleLogStore.js +289 -0
- package/build/esm/store/ConsoleLogStore.js.map +1 -0
- package/build/esm/store/MetricsStore.js +428 -0
- package/build/esm/store/MetricsStore.js.map +1 -0
- package/build/esm/store/MonitorStore.js +288 -0
- package/build/esm/store/MonitorStore.js.map +1 -0
- package/build/esm/store/SubscribableStore.js +38 -0
- package/build/esm/store/SubscribableStore.js.map +1 -0
- package/build/esm/store/WindowErrorStore.js +195 -0
- package/build/esm/store/WindowErrorStore.js.map +1 -0
- package/build/esm/styles.css +19441 -0
- package/build/esm/styles.js +31 -0
- package/build/esm/styles.js.map +1 -0
- package/build/esm/types/compute.js +2 -0
- package/build/esm/types/compute.js.map +1 -0
- package/build/esm/types/emissions.js +2 -0
- package/build/esm/types/emissions.js.map +1 -0
- package/build/esm/types/index.js +23 -0
- package/build/esm/types/index.js.map +1 -0
- package/build/esm/utils/ActionLifecycleTracker.js +178 -0
- package/build/esm/utils/ActionLifecycleTracker.js.map +1 -0
- package/build/esm/utils/CacheEfficiencyAnalyzer.js +198 -0
- package/build/esm/utils/CacheEfficiencyAnalyzer.js.map +1 -0
- package/build/esm/utils/CircularBuffer.js +96 -0
- package/build/esm/utils/CircularBuffer.js.map +1 -0
- package/build/esm/utils/ComponentContextCapture.js +215 -0
- package/build/esm/utils/ComponentContextCapture.js.map +1 -0
- package/build/esm/utils/ComponentPrimitiveDiscovery.js +173 -0
- package/build/esm/utils/ComponentPrimitiveDiscovery.js.map +1 -0
- package/build/esm/utils/ComponentQueryRegistry.js +340 -0
- package/build/esm/utils/ComponentQueryRegistry.js.map +1 -0
- package/build/esm/utils/ComputeMonitor.js +199 -0
- package/build/esm/utils/ComputeMonitor.js.map +1 -0
- package/build/esm/utils/EventTimeline.js +130 -0
- package/build/esm/utils/EventTimeline.js.map +1 -0
- package/build/esm/utils/LinkTraversalTracker.js +116 -0
- package/build/esm/utils/LinkTraversalTracker.js.map +1 -0
- package/build/esm/utils/MockDataGenerator.js +473 -0
- package/build/esm/utils/MockDataGenerator.js.map +1 -0
- package/build/esm/utils/ObservableClientMonitor.js +768 -0
- package/build/esm/utils/ObservableClientMonitor.js.map +1 -0
- package/build/esm/utils/PerformanceRecommendationEngine.js +185 -0
- package/build/esm/utils/PerformanceRecommendationEngine.js.map +1 -0
- package/build/esm/utils/PropertyAccessTracker.js +238 -0
- package/build/esm/utils/PropertyAccessTracker.js.map +1 -0
- package/build/esm/utils/RecommendationMatcher.js +53 -0
- package/build/esm/utils/RecommendationMatcher.js.map +1 -0
- package/build/esm/utils/SubscriptionTracker.js +132 -0
- package/build/esm/utils/SubscriptionTracker.js.map +1 -0
- package/build/esm/utils/UnusedFieldAnalyzer.js +186 -0
- package/build/esm/utils/UnusedFieldAnalyzer.js.map +1 -0
- package/build/esm/utils/WaterfallDetector.js +200 -0
- package/build/esm/utils/WaterfallDetector.js.map +1 -0
- package/build/esm/utils/computePayload.js +37 -0
- package/build/esm/utils/computePayload.js.map +1 -0
- package/build/esm/utils/computeRequest.js +29 -0
- package/build/esm/utils/computeRequest.js.map +1 -0
- package/build/esm/utils/format.js +69 -0
- package/build/esm/utils/format.js.map +1 -0
- package/build/esm/utils/logger.js +31 -0
- package/build/esm/utils/logger.js.map +1 -0
- package/build/esm/vite/constants.js +18 -0
- package/build/esm/vite/constants.js.map +1 -0
- package/build/esm/vite/hookInstaller.js +99 -0
- package/build/esm/vite/hookInstaller.js.map +1 -0
- package/build/esm/vite/index.js +77 -0
- package/build/esm/vite/index.js.map +1 -0
- package/build/types/DevToolsContext.d.ts +3 -0
- package/build/types/DevToolsContext.d.ts.map +1 -0
- package/build/types/components/ActionMetrics.d.ts +6 -0
- package/build/types/components/ActionMetrics.d.ts.map +1 -0
- package/build/types/components/BubbleChart.d.ts +10 -0
- package/build/types/components/BubbleChart.d.ts.map +1 -0
- package/build/types/components/CacheInspectorTab.d.ts +6 -0
- package/build/types/components/CacheInspectorTab.d.ts.map +1 -0
- package/build/types/components/CacheMetrics.d.ts +6 -0
- package/build/types/components/CacheMetrics.d.ts.map +1 -0
- package/build/types/components/ComponentCard.d.ts +13 -0
- package/build/types/components/ComponentCard.d.ts.map +1 -0
- package/build/types/components/ComputeTab.d.ts +6 -0
- package/build/types/components/ComputeTab.d.ts.map +1 -0
- package/build/types/components/CopyableCodeBlock.d.ts +7 -0
- package/build/types/components/CopyableCodeBlock.d.ts.map +1 -0
- package/build/types/components/DebuggingTab.d.ts +6 -0
- package/build/types/components/DebuggingTab.d.ts.map +1 -0
- package/build/types/components/HookRow.d.ts +9 -0
- package/build/types/components/HookRow.d.ts.map +1 -0
- package/build/types/components/ImprovementsTab.d.ts +7 -0
- package/build/types/components/ImprovementsTab.d.ts.map +1 -0
- package/build/types/components/InspectorSelectionHeader.d.ts +12 -0
- package/build/types/components/InspectorSelectionHeader.d.ts.map +1 -0
- package/build/types/components/InterceptTab.d.ts +126 -0
- package/build/types/components/InterceptTab.d.ts.map +1 -0
- package/build/types/components/IssueCard.d.ts +8 -0
- package/build/types/components/IssueCard.d.ts.map +1 -0
- package/build/types/components/LogEntryCard.d.ts +7 -0
- package/build/types/components/LogEntryCard.d.ts.map +1 -0
- package/build/types/components/MockEditor.d.ts +58 -0
- package/build/types/components/MockEditor.d.ts.map +1 -0
- package/build/types/components/MonitorErrorBoundary.d.ts +16 -0
- package/build/types/components/MonitorErrorBoundary.d.ts.map +1 -0
- package/build/types/components/MonitoringPanel.d.ts +8 -0
- package/build/types/components/MonitoringPanel.d.ts.map +1 -0
- package/build/types/components/ObjectLoadingMetrics.d.ts +7 -0
- package/build/types/components/ObjectLoadingMetrics.d.ts.map +1 -0
- package/build/types/components/OsdkAppErrorBoundary.d.ts +18 -0
- package/build/types/components/OsdkAppErrorBoundary.d.ts.map +1 -0
- package/build/types/components/OsdkDevTools.d.ts +2 -0
- package/build/types/components/OsdkDevTools.d.ts.map +1 -0
- package/build/types/components/OverrideEditor.d.ts +26 -0
- package/build/types/components/OverrideEditor.d.ts.map +1 -0
- package/build/types/components/PerformanceTab.d.ts +8 -0
- package/build/types/components/PerformanceTab.d.ts.map +1 -0
- package/build/types/components/PrimitiveSelectionPanel.d.ts +28 -0
- package/build/types/components/PrimitiveSelectionPanel.d.ts.map +1 -0
- package/build/types/components/issueTypes.d.ts +16 -0
- package/build/types/components/issueTypes.d.ts.map +1 -0
- package/build/types/components/resolveComponentName.d.ts +3 -0
- package/build/types/components/resolveComponentName.d.ts.map +1 -0
- package/build/types/components/testHelpers.d.ts +2 -0
- package/build/types/components/testHelpers.d.ts.map +1 -0
- package/build/types/css.d.d.ts +4 -0
- package/build/types/css.d.d.ts.map +1 -0
- package/build/types/fiber/DegradationNotice.d.ts +8 -0
- package/build/types/fiber/DegradationNotice.d.ts.map +1 -0
- package/build/types/fiber/DevtoolsHook.d.ts +7 -0
- package/build/types/fiber/DevtoolsHook.d.ts.map +1 -0
- package/build/types/fiber/FiberAccess.d.ts +2 -0
- package/build/types/fiber/FiberAccess.d.ts.map +1 -0
- package/build/types/fiber/FiberInspection.d.ts +6 -0
- package/build/types/fiber/FiberInspection.d.ts.map +1 -0
- package/build/types/fiber/FiberTags.d.ts +33 -0
- package/build/types/fiber/FiberTags.d.ts.map +1 -0
- package/build/types/fiber/HookStateInspector.d.ts +45 -0
- package/build/types/fiber/HookStateInspector.d.ts.map +1 -0
- package/build/types/fiber/SafeFiberOperation.d.ts +7 -0
- package/build/types/fiber/SafeFiberOperation.d.ts.map +1 -0
- package/build/types/fiber/capabilities.d.ts +38 -0
- package/build/types/fiber/capabilities.d.ts.map +1 -0
- package/build/types/fiber/traverseFiber.d.ts +5 -0
- package/build/types/fiber/traverseFiber.d.ts.map +1 -0
- package/build/types/fiber/types.d.ts +87 -0
- package/build/types/fiber/types.d.ts.map +1 -0
- package/build/types/fiber/validation.d.ts +10 -0
- package/build/types/fiber/validation.d.ts.map +1 -0
- package/build/types/hooks/createPollingStore.d.ts +5 -0
- package/build/types/hooks/createPollingStore.d.ts.map +1 -0
- package/build/types/hooks/useActiveComponents.d.ts +3 -0
- package/build/types/hooks/useActiveComponents.d.ts.map +1 -0
- package/build/types/hooks/useComponentRegistry.d.ts +3 -0
- package/build/types/hooks/useComponentRegistry.d.ts.map +1 -0
- package/build/types/hooks/useComputeSelectors.d.ts +7 -0
- package/build/types/hooks/useComputeSelectors.d.ts.map +1 -0
- package/build/types/hooks/useConsoleLogs.d.ts +7 -0
- package/build/types/hooks/useConsoleLogs.d.ts.map +1 -0
- package/build/types/hooks/useInspectorSelection.d.ts +9 -0
- package/build/types/hooks/useInspectorSelection.d.ts.map +1 -0
- package/build/types/hooks/useMetrics.d.ts +3 -0
- package/build/types/hooks/useMetrics.d.ts.map +1 -0
- package/build/types/hooks/usePersistedState.d.ts +1 -0
- package/build/types/hooks/usePersistedState.d.ts.map +1 -0
- package/build/types/hooks/useRecommendations.d.ts +10 -0
- package/build/types/hooks/useRecommendations.d.ts.map +1 -0
- package/build/types/hooks/useSharedTick.d.ts +1 -0
- package/build/types/hooks/useSharedTick.d.ts.map +1 -0
- package/build/types/hooks/useTimeElapsed.d.ts +1 -0
- package/build/types/hooks/useTimeElapsed.d.ts.map +1 -0
- package/build/types/hooks/useTrackerSubscription.d.ts +16 -0
- package/build/types/hooks/useTrackerSubscription.d.ts.map +1 -0
- package/build/types/hooks/useUnusedFieldAnalysis.d.ts +8 -0
- package/build/types/hooks/useUnusedFieldAnalysis.d.ts.map +1 -0
- package/build/types/index.d.ts +21 -0
- package/build/types/index.d.ts.map +1 -0
- package/build/types/inspector/ClickToInspectSystem.d.ts +40 -0
- package/build/types/inspector/ClickToInspectSystem.d.ts.map +1 -0
- package/build/types/inspector/components/ComponentLabel.d.ts +3 -0
- package/build/types/inspector/components/ComponentLabel.d.ts.map +1 -0
- package/build/types/inspector/components/InspectorBanner.d.ts +5 -0
- package/build/types/inspector/components/InspectorBanner.d.ts.map +1 -0
- package/build/types/inspector/components/InspectorOverlay.d.ts +3 -0
- package/build/types/inspector/components/InspectorOverlay.d.ts.map +1 -0
- package/build/types/inspector/components/SelectionHighlight.d.ts +3 -0
- package/build/types/inspector/components/SelectionHighlight.d.ts.map +1 -0
- package/build/types/inspector/createClickToInspect.d.ts +3 -0
- package/build/types/inspector/createClickToInspect.d.ts.map +1 -0
- package/build/types/inspector/hooks/useAnimatedBounds.d.ts +2 -0
- package/build/types/inspector/hooks/useAnimatedBounds.d.ts.map +1 -0
- package/build/types/inspector/index.d.ts +13 -0
- package/build/types/inspector/index.d.ts.map +1 -0
- package/build/types/inspector/inspectorController.d.ts +2 -0
- package/build/types/inspector/inspectorController.d.ts.map +1 -0
- package/build/types/inspector/types.d.ts +94 -0
- package/build/types/inspector/types.d.ts.map +1 -0
- package/build/types/inspector/utils/elementBounds.d.ts +3 -0
- package/build/types/inspector/utils/elementBounds.d.ts.map +1 -0
- package/build/types/inspector/utils/interpolation.d.ts +7 -0
- package/build/types/inspector/utils/interpolation.d.ts.map +1 -0
- package/build/types/inspector/utils/labelPositioning.d.ts +3 -0
- package/build/types/inspector/utils/labelPositioning.d.ts.map +1 -0
- package/build/types/mocking/MockCacheKeyGenerator.d.ts +41 -0
- package/build/types/mocking/MockCacheKeyGenerator.d.ts.map +1 -0
- package/build/types/mocking/MockManager.d.ts +103 -0
- package/build/types/mocking/MockManager.d.ts.map +1 -0
- package/build/types/prototyping/PrototypeOverrideStore.d.ts +33 -0
- package/build/types/prototyping/PrototypeOverrideStore.d.ts.map +1 -0
- package/build/types/prototyping/index.d.ts +1 -0
- package/build/types/prototyping/index.d.ts.map +1 -0
- package/build/types/public/vite.d.ts +2 -0
- package/build/types/public/vite.d.ts.map +1 -0
- package/build/types/register.d.ts +1 -0
- package/build/types/register.d.ts.map +1 -0
- package/build/types/scss.d.d.ts +6 -0
- package/build/types/scss.d.d.ts.map +1 -0
- package/build/types/store/ComputeStore.d.ts +47 -0
- package/build/types/store/ComputeStore.d.ts.map +1 -0
- package/build/types/store/ConsoleLogStore.d.ts +29 -0
- package/build/types/store/ConsoleLogStore.d.ts.map +1 -0
- package/build/types/store/MetricsStore.d.ts +42 -0
- package/build/types/store/MetricsStore.d.ts.map +1 -0
- package/build/types/store/MonitorStore.d.ts +86 -0
- package/build/types/store/MonitorStore.d.ts.map +1 -0
- package/build/types/store/SubscribableStore.d.ts +6 -0
- package/build/types/store/SubscribableStore.d.ts.map +1 -0
- package/build/types/store/WindowErrorStore.d.ts +32 -0
- package/build/types/store/WindowErrorStore.d.ts.map +1 -0
- package/build/types/styles.d.ts +1 -0
- package/build/types/styles.d.ts.map +1 -0
- package/build/types/types/compute.d.ts +73 -0
- package/build/types/types/compute.d.ts.map +1 -0
- package/build/types/types/emissions.d.ts +24 -0
- package/build/types/types/emissions.d.ts.map +1 -0
- package/build/types/types/index.d.ts +143 -0
- package/build/types/types/index.d.ts.map +1 -0
- package/build/types/utils/ActionLifecycleTracker.d.ts +39 -0
- package/build/types/utils/ActionLifecycleTracker.d.ts.map +1 -0
- package/build/types/utils/CacheEfficiencyAnalyzer.d.ts +45 -0
- package/build/types/utils/CacheEfficiencyAnalyzer.d.ts.map +1 -0
- package/build/types/utils/CircularBuffer.d.ts +18 -0
- package/build/types/utils/CircularBuffer.d.ts.map +1 -0
- package/build/types/utils/ComponentContextCapture.d.ts +29 -0
- package/build/types/utils/ComponentContextCapture.d.ts.map +1 -0
- package/build/types/utils/ComponentPrimitiveDiscovery.d.ts +62 -0
- package/build/types/utils/ComponentPrimitiveDiscovery.d.ts.map +1 -0
- package/build/types/utils/ComponentQueryRegistry.d.ts +91 -0
- package/build/types/utils/ComponentQueryRegistry.d.ts.map +1 -0
- package/build/types/utils/ComputeMonitor.d.ts +14 -0
- package/build/types/utils/ComputeMonitor.d.ts.map +1 -0
- package/build/types/utils/EventTimeline.d.ts +102 -0
- package/build/types/utils/EventTimeline.d.ts.map +1 -0
- package/build/types/utils/LinkTraversalTracker.d.ts +43 -0
- package/build/types/utils/LinkTraversalTracker.d.ts.map +1 -0
- package/build/types/utils/MockDataGenerator.d.ts +23 -0
- package/build/types/utils/MockDataGenerator.d.ts.map +1 -0
- package/build/types/utils/ObservableClientMonitor.d.ts +62 -0
- package/build/types/utils/ObservableClientMonitor.d.ts.map +1 -0
- package/build/types/utils/PerformanceRecommendationEngine.d.ts +67 -0
- package/build/types/utils/PerformanceRecommendationEngine.d.ts.map +1 -0
- package/build/types/utils/PropertyAccessTracker.d.ts +50 -0
- package/build/types/utils/PropertyAccessTracker.d.ts.map +1 -0
- package/build/types/utils/RecommendationMatcher.d.ts +5 -0
- package/build/types/utils/RecommendationMatcher.d.ts.map +1 -0
- package/build/types/utils/SubscriptionTracker.d.ts +17 -0
- package/build/types/utils/SubscriptionTracker.d.ts.map +1 -0
- package/build/types/utils/UnusedFieldAnalyzer.d.ts +46 -0
- package/build/types/utils/UnusedFieldAnalyzer.d.ts.map +1 -0
- package/build/types/utils/WaterfallDetector.d.ts +28 -0
- package/build/types/utils/WaterfallDetector.d.ts.map +1 -0
- package/build/types/utils/computePayload.d.ts +3 -0
- package/build/types/utils/computePayload.d.ts.map +1 -0
- package/build/types/utils/computeRequest.d.ts +20 -0
- package/build/types/utils/computeRequest.d.ts.map +1 -0
- package/build/types/utils/format.d.ts +5 -0
- package/build/types/utils/format.d.ts.map +1 -0
- package/build/types/utils/logger.d.ts +2 -0
- package/build/types/utils/logger.d.ts.map +1 -0
- package/build/types/vite/constants.d.ts +1 -0
- package/build/types/vite/constants.d.ts.map +1 -0
- package/build/types/vite/hookInstaller.d.ts +1 -0
- package/build/types/vite/hookInstaller.d.ts.map +1 -0
- package/build/types/vite/index.d.ts +20 -0
- package/build/types/vite/index.d.ts.map +1 -0
- package/package.json +114 -0
|
@@ -0,0 +1,434 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2025 Palantir Technologies, Inc. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
import { Button, Classes, Tooltip } from "@blueprintjs/core";
|
|
18
|
+
import classNames from "classnames";
|
|
19
|
+
import React, { useCallback, useMemo, useRef, useState } from "react";
|
|
20
|
+
import { createPortal } from "react-dom";
|
|
21
|
+
import { DegradationNotice, useFiberCapabilities } from "../fiber/DegradationNotice.js";
|
|
22
|
+
import { validateFiberAccess } from "../fiber/validation.js";
|
|
23
|
+
import { usePersistedState } from "../hooks/usePersistedState.js";
|
|
24
|
+
import { ComputeTab } from "./ComputeTab.js";
|
|
25
|
+
import { DebuggingTab } from "./DebuggingTab.js";
|
|
26
|
+
import { InterceptTab } from "./InterceptTab.js";
|
|
27
|
+
import { MonitorErrorBoundary } from "./MonitorErrorBoundary.js";
|
|
28
|
+
import styles from "./MonitoringPanel.module.scss.js";
|
|
29
|
+
import { PerformanceTab } from "./PerformanceTab.js";
|
|
30
|
+
const darkModeMql = typeof window !== "undefined" ? window.matchMedia("(prefers-color-scheme: dark)") : undefined;
|
|
31
|
+
function subscribeDarkMode(callback) {
|
|
32
|
+
if (darkModeMql) {
|
|
33
|
+
darkModeMql.addEventListener("change", callback);
|
|
34
|
+
return () => darkModeMql.removeEventListener("change", callback);
|
|
35
|
+
}
|
|
36
|
+
return () => {};
|
|
37
|
+
}
|
|
38
|
+
function getDarkModeSnapshot() {
|
|
39
|
+
return darkModeMql ? darkModeMql.matches : true;
|
|
40
|
+
}
|
|
41
|
+
function subscribeWindowSize(callback) {
|
|
42
|
+
window.addEventListener("resize", callback);
|
|
43
|
+
return () => window.removeEventListener("resize", callback);
|
|
44
|
+
}
|
|
45
|
+
let windowSizeSnapshot = typeof window !== "undefined" ? {
|
|
46
|
+
width: window.innerWidth,
|
|
47
|
+
height: window.innerHeight
|
|
48
|
+
} : {
|
|
49
|
+
width: 0,
|
|
50
|
+
height: 0
|
|
51
|
+
};
|
|
52
|
+
function getWindowSizeSnapshot() {
|
|
53
|
+
const current = {
|
|
54
|
+
width: window.innerWidth,
|
|
55
|
+
height: window.innerHeight
|
|
56
|
+
};
|
|
57
|
+
if (current.width !== windowSizeSnapshot.width || current.height !== windowSizeSnapshot.height) {
|
|
58
|
+
windowSizeSnapshot = current;
|
|
59
|
+
}
|
|
60
|
+
return windowSizeSnapshot;
|
|
61
|
+
}
|
|
62
|
+
const UI_CONSTANTS = {
|
|
63
|
+
DEFAULT_PANEL_WIDTH: 400,
|
|
64
|
+
DEFAULT_PANEL_HEIGHT: 600,
|
|
65
|
+
DEFAULT_PANEL_RIGHT_OFFSET: 420,
|
|
66
|
+
DEFAULT_PANEL_TOP_OFFSET: 20,
|
|
67
|
+
MIN_PANEL_WIDTH: 320,
|
|
68
|
+
MIN_PANEL_HEIGHT: 200,
|
|
69
|
+
TOOLTIP_HOVER_DELAY: 500,
|
|
70
|
+
DOCKED_BOTTOM_HEIGHT: 400,
|
|
71
|
+
DOCKED_RIGHT_WIDTH: 500,
|
|
72
|
+
MIN_DOCKED_BOTTOM_HEIGHT: 200,
|
|
73
|
+
MIN_DOCKED_RIGHT_WIDTH: 320,
|
|
74
|
+
MAX_DOCKED_BOTTOM_HEIGHT: 800,
|
|
75
|
+
MAX_DOCKED_RIGHT_WIDTH: 800
|
|
76
|
+
};
|
|
77
|
+
export const MonitoringPanel = ({
|
|
78
|
+
monitorStore
|
|
79
|
+
}) => {
|
|
80
|
+
const metricsStore = monitorStore.getMetricsStore();
|
|
81
|
+
const computeStore = monitorStore.getComputeStore();
|
|
82
|
+
const fiberCapabilities = useFiberCapabilities();
|
|
83
|
+
const [activeTab, setActiveTab] = useState("performance");
|
|
84
|
+
const [position, setPosition] = usePersistedState("osdk-monitor-position", {
|
|
85
|
+
x: window.innerWidth - UI_CONSTANTS.DEFAULT_PANEL_RIGHT_OFFSET,
|
|
86
|
+
y: UI_CONSTANTS.DEFAULT_PANEL_TOP_OFFSET,
|
|
87
|
+
width: UI_CONSTANTS.DEFAULT_PANEL_WIDTH,
|
|
88
|
+
height: UI_CONSTANTS.DEFAULT_PANEL_HEIGHT,
|
|
89
|
+
collapsed: false,
|
|
90
|
+
dockMode: "floating"
|
|
91
|
+
});
|
|
92
|
+
const [themePreference, setThemePreference] = usePersistedState("osdk-devtools-theme", "dark");
|
|
93
|
+
const systemPrefersDark = React.useSyncExternalStore(subscribeDarkMode, getDarkModeSnapshot);
|
|
94
|
+
const resolvedTheme = useMemo(() => themePreference === "auto" ? systemPrefersDark ? "dark" : "light" : themePreference, [themePreference, systemPrefersDark]);
|
|
95
|
+
const panelRef = useRef(null);
|
|
96
|
+
const isDragging = useRef(false);
|
|
97
|
+
const isResizing = useRef(null);
|
|
98
|
+
const dragStart = useRef({
|
|
99
|
+
x: 0,
|
|
100
|
+
y: 0,
|
|
101
|
+
elemX: 0,
|
|
102
|
+
elemY: 0
|
|
103
|
+
});
|
|
104
|
+
const resizeStart = useRef({
|
|
105
|
+
x: 0,
|
|
106
|
+
y: 0,
|
|
107
|
+
width: 0,
|
|
108
|
+
height: 0,
|
|
109
|
+
elemX: 0,
|
|
110
|
+
elemY: 0
|
|
111
|
+
});
|
|
112
|
+
const setPositionRef = useRef(setPosition);
|
|
113
|
+
setPositionRef.current = setPosition;
|
|
114
|
+
const dragAbortRef = useRef(null);
|
|
115
|
+
const attachDragListeners = useCallback(() => {
|
|
116
|
+
dragAbortRef.current?.abort();
|
|
117
|
+
const controller = new AbortController();
|
|
118
|
+
dragAbortRef.current = controller;
|
|
119
|
+
const {
|
|
120
|
+
signal
|
|
121
|
+
} = controller;
|
|
122
|
+
document.addEventListener("mousemove", e => {
|
|
123
|
+
if (isDragging.current) {
|
|
124
|
+
const deltaX = e.clientX - dragStart.current.x;
|
|
125
|
+
const deltaY = e.clientY - dragStart.current.y;
|
|
126
|
+
setPositionRef.current(prev => ({
|
|
127
|
+
...prev,
|
|
128
|
+
x: Math.max(0, Math.min(window.innerWidth - prev.width, dragStart.current.elemX + deltaX)),
|
|
129
|
+
y: Math.max(0, Math.min(window.innerHeight - prev.height, dragStart.current.elemY + deltaY))
|
|
130
|
+
}));
|
|
131
|
+
} else if (isResizing.current) {
|
|
132
|
+
const deltaX = e.clientX - resizeStart.current.x;
|
|
133
|
+
const deltaY = e.clientY - resizeStart.current.y;
|
|
134
|
+
const handle = isResizing.current;
|
|
135
|
+
setPositionRef.current(prev => {
|
|
136
|
+
if (prev.dockMode === "docked-bottom") {
|
|
137
|
+
const newHeight = Math.max(UI_CONSTANTS.MIN_DOCKED_BOTTOM_HEIGHT, Math.min(UI_CONSTANTS.MAX_DOCKED_BOTTOM_HEIGHT, resizeStart.current.height - deltaY));
|
|
138
|
+
return {
|
|
139
|
+
...prev,
|
|
140
|
+
height: newHeight,
|
|
141
|
+
y: window.innerHeight - newHeight
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
if (prev.dockMode === "docked-right") {
|
|
145
|
+
const newWidth = Math.max(UI_CONSTANTS.MIN_DOCKED_RIGHT_WIDTH, Math.min(UI_CONSTANTS.MAX_DOCKED_RIGHT_WIDTH, resizeStart.current.width - deltaX));
|
|
146
|
+
return {
|
|
147
|
+
...prev,
|
|
148
|
+
width: newWidth,
|
|
149
|
+
x: window.innerWidth - newWidth
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
let newX = prev.x;
|
|
153
|
+
let newY = prev.y;
|
|
154
|
+
let newWidth = prev.width;
|
|
155
|
+
let newHeight = prev.height;
|
|
156
|
+
if (handle.includes("right")) {
|
|
157
|
+
newWidth = Math.max(UI_CONSTANTS.MIN_PANEL_WIDTH, resizeStart.current.width + deltaX);
|
|
158
|
+
}
|
|
159
|
+
if (handle.includes("left")) {
|
|
160
|
+
newWidth = Math.max(UI_CONSTANTS.MIN_PANEL_WIDTH, resizeStart.current.width - deltaX);
|
|
161
|
+
newX = resizeStart.current.elemX + deltaX;
|
|
162
|
+
if (newWidth === UI_CONSTANTS.MIN_PANEL_WIDTH) {
|
|
163
|
+
newX = resizeStart.current.elemX + resizeStart.current.width - UI_CONSTANTS.MIN_PANEL_WIDTH;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
if (handle.includes("bottom")) {
|
|
167
|
+
newHeight = Math.max(UI_CONSTANTS.MIN_PANEL_HEIGHT, resizeStart.current.height + deltaY);
|
|
168
|
+
}
|
|
169
|
+
if (handle.includes("top")) {
|
|
170
|
+
newHeight = Math.max(UI_CONSTANTS.MIN_PANEL_HEIGHT, resizeStart.current.height - deltaY);
|
|
171
|
+
newY = resizeStart.current.elemY + deltaY;
|
|
172
|
+
if (newHeight === UI_CONSTANTS.MIN_PANEL_HEIGHT) {
|
|
173
|
+
newY = resizeStart.current.elemY + resizeStart.current.height - UI_CONSTANTS.MIN_PANEL_HEIGHT;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
return {
|
|
177
|
+
...prev,
|
|
178
|
+
x: newX,
|
|
179
|
+
y: newY,
|
|
180
|
+
width: newWidth,
|
|
181
|
+
height: newHeight
|
|
182
|
+
};
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
}, {
|
|
186
|
+
signal
|
|
187
|
+
});
|
|
188
|
+
document.addEventListener("mouseup", () => {
|
|
189
|
+
isDragging.current = false;
|
|
190
|
+
isResizing.current = null;
|
|
191
|
+
controller.abort();
|
|
192
|
+
dragAbortRef.current = null;
|
|
193
|
+
}, {
|
|
194
|
+
signal
|
|
195
|
+
});
|
|
196
|
+
}, []);
|
|
197
|
+
const handleMouseDown = useCallback(e => {
|
|
198
|
+
if (e.target.closest(`.${styles.controls}`)) {
|
|
199
|
+
return;
|
|
200
|
+
}
|
|
201
|
+
if (position.dockMode !== "floating") {
|
|
202
|
+
return;
|
|
203
|
+
}
|
|
204
|
+
isDragging.current = true;
|
|
205
|
+
dragStart.current = {
|
|
206
|
+
x: e.clientX,
|
|
207
|
+
y: e.clientY,
|
|
208
|
+
elemX: position.x,
|
|
209
|
+
elemY: position.y
|
|
210
|
+
};
|
|
211
|
+
e.preventDefault();
|
|
212
|
+
attachDragListeners();
|
|
213
|
+
}, [position, attachDragListeners]);
|
|
214
|
+
const handleResizeMouseDown = useCallback((e, handle) => {
|
|
215
|
+
isResizing.current = handle;
|
|
216
|
+
resizeStart.current = {
|
|
217
|
+
x: e.clientX,
|
|
218
|
+
y: e.clientY,
|
|
219
|
+
width: position.width,
|
|
220
|
+
height: position.height,
|
|
221
|
+
elemX: position.x,
|
|
222
|
+
elemY: position.y
|
|
223
|
+
};
|
|
224
|
+
e.preventDefault();
|
|
225
|
+
e.stopPropagation();
|
|
226
|
+
attachDragListeners();
|
|
227
|
+
}, [position, attachDragListeners]);
|
|
228
|
+
const handleDockToggle = useCallback(() => {
|
|
229
|
+
setPosition(prev => {
|
|
230
|
+
const nextMode = prev.dockMode === "floating" ? "docked-bottom" : prev.dockMode === "docked-bottom" ? "docked-right" : "floating";
|
|
231
|
+
if (nextMode === "docked-bottom") {
|
|
232
|
+
return {
|
|
233
|
+
x: 0,
|
|
234
|
+
y: window.innerHeight - UI_CONSTANTS.DOCKED_BOTTOM_HEIGHT,
|
|
235
|
+
width: window.innerWidth,
|
|
236
|
+
height: UI_CONSTANTS.DOCKED_BOTTOM_HEIGHT,
|
|
237
|
+
collapsed: false,
|
|
238
|
+
dockMode: nextMode
|
|
239
|
+
};
|
|
240
|
+
} else if (nextMode === "docked-right") {
|
|
241
|
+
return {
|
|
242
|
+
x: window.innerWidth - UI_CONSTANTS.DOCKED_RIGHT_WIDTH,
|
|
243
|
+
y: 0,
|
|
244
|
+
width: UI_CONSTANTS.DOCKED_RIGHT_WIDTH,
|
|
245
|
+
height: window.innerHeight,
|
|
246
|
+
collapsed: false,
|
|
247
|
+
dockMode: nextMode
|
|
248
|
+
};
|
|
249
|
+
} else {
|
|
250
|
+
return {
|
|
251
|
+
x: window.innerWidth - UI_CONSTANTS.DEFAULT_PANEL_RIGHT_OFFSET,
|
|
252
|
+
y: UI_CONSTANTS.DEFAULT_PANEL_TOP_OFFSET,
|
|
253
|
+
width: UI_CONSTANTS.DEFAULT_PANEL_WIDTH,
|
|
254
|
+
height: UI_CONSTANTS.DEFAULT_PANEL_HEIGHT,
|
|
255
|
+
collapsed: false,
|
|
256
|
+
dockMode: nextMode
|
|
257
|
+
};
|
|
258
|
+
}
|
|
259
|
+
});
|
|
260
|
+
}, [setPosition]);
|
|
261
|
+
const windowSize = React.useSyncExternalStore(subscribeWindowSize, getWindowSizeSnapshot);
|
|
262
|
+
const effectivePosition = useMemo(() => {
|
|
263
|
+
if (position.dockMode === "floating") {
|
|
264
|
+
const maxX = windowSize.width - position.width;
|
|
265
|
+
const maxY = windowSize.height - position.height;
|
|
266
|
+
return {
|
|
267
|
+
...position,
|
|
268
|
+
x: Math.max(0, Math.min(position.x, maxX)),
|
|
269
|
+
y: Math.max(0, Math.min(position.y, maxY))
|
|
270
|
+
};
|
|
271
|
+
}
|
|
272
|
+
if (position.dockMode === "docked-bottom") {
|
|
273
|
+
return {
|
|
274
|
+
...position,
|
|
275
|
+
width: windowSize.width,
|
|
276
|
+
y: windowSize.height - position.height
|
|
277
|
+
};
|
|
278
|
+
}
|
|
279
|
+
if (position.dockMode === "docked-right") {
|
|
280
|
+
return {
|
|
281
|
+
...position,
|
|
282
|
+
height: windowSize.height,
|
|
283
|
+
x: windowSize.width - position.width
|
|
284
|
+
};
|
|
285
|
+
}
|
|
286
|
+
return position;
|
|
287
|
+
}, [position, windowSize]);
|
|
288
|
+
if (position.collapsed) {
|
|
289
|
+
return /*#__PURE__*/createPortal(/*#__PURE__*/React.createElement(Tooltip, {
|
|
290
|
+
content: "View OSDK Devtools",
|
|
291
|
+
placement: "left",
|
|
292
|
+
hoverOpenDelay: UI_CONSTANTS.TOOLTIP_HOVER_DELAY
|
|
293
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
294
|
+
className: styles.minimized,
|
|
295
|
+
"data-dt-theme": resolvedTheme,
|
|
296
|
+
onClick: () => setPosition(prev => ({
|
|
297
|
+
...prev,
|
|
298
|
+
collapsed: false
|
|
299
|
+
}))
|
|
300
|
+
}, /*#__PURE__*/React.createElement("span", {
|
|
301
|
+
className: styles.minimizedIcon
|
|
302
|
+
}, "</>"))), document.body);
|
|
303
|
+
}
|
|
304
|
+
const panelClassName = classNames(styles.panel, resolvedTheme === "dark" ? Classes.DARK : undefined, {
|
|
305
|
+
[styles.floating]: position.dockMode === "floating",
|
|
306
|
+
[styles.dockedBottom]: position.dockMode === "docked-bottom",
|
|
307
|
+
[styles.dockedRight]: position.dockMode === "docked-right"
|
|
308
|
+
});
|
|
309
|
+
return /*#__PURE__*/createPortal(/*#__PURE__*/React.createElement("div", {
|
|
310
|
+
ref: panelRef,
|
|
311
|
+
className: panelClassName,
|
|
312
|
+
"data-dt-theme": resolvedTheme,
|
|
313
|
+
style: {
|
|
314
|
+
left: effectivePosition.dockMode === "docked-bottom" ? 0 : effectivePosition.x,
|
|
315
|
+
top: effectivePosition.dockMode === "docked-right" ? 0 : effectivePosition.y,
|
|
316
|
+
width: effectivePosition.width,
|
|
317
|
+
height: effectivePosition.height,
|
|
318
|
+
right: effectivePosition.dockMode === "docked-right" ? 0 : undefined,
|
|
319
|
+
bottom: effectivePosition.dockMode === "docked-bottom" ? 0 : undefined
|
|
320
|
+
}
|
|
321
|
+
}, (position.dockMode === "floating" ? [{
|
|
322
|
+
cls: [styles.horizontal, styles.top],
|
|
323
|
+
handle: "top"
|
|
324
|
+
}, {
|
|
325
|
+
cls: [styles.horizontal, styles.bottom],
|
|
326
|
+
handle: "bottom"
|
|
327
|
+
}, {
|
|
328
|
+
cls: [styles.vertical, styles.left],
|
|
329
|
+
handle: "left"
|
|
330
|
+
}, {
|
|
331
|
+
cls: [styles.vertical, styles.right],
|
|
332
|
+
handle: "right"
|
|
333
|
+
}, {
|
|
334
|
+
cls: [styles.corner, styles.topLeft],
|
|
335
|
+
handle: "topLeft"
|
|
336
|
+
}, {
|
|
337
|
+
cls: [styles.corner, styles.topRight],
|
|
338
|
+
handle: "topRight"
|
|
339
|
+
}, {
|
|
340
|
+
cls: [styles.corner, styles.bottomLeft],
|
|
341
|
+
handle: "bottomLeft"
|
|
342
|
+
}, {
|
|
343
|
+
cls: [styles.corner, styles.bottomRight],
|
|
344
|
+
handle: "bottomRight"
|
|
345
|
+
}] : position.dockMode === "docked-bottom" ? [{
|
|
346
|
+
cls: [styles.horizontal, styles.top],
|
|
347
|
+
handle: "top"
|
|
348
|
+
}] : position.dockMode === "docked-right" ? [{
|
|
349
|
+
cls: [styles.vertical, styles.left],
|
|
350
|
+
handle: "left"
|
|
351
|
+
}] : []).map(({
|
|
352
|
+
cls,
|
|
353
|
+
handle
|
|
354
|
+
}) => /*#__PURE__*/React.createElement("div", {
|
|
355
|
+
key: handle,
|
|
356
|
+
className: classNames(styles.resizeHandle, ...cls),
|
|
357
|
+
onMouseDown: e => handleResizeMouseDown(e, handle)
|
|
358
|
+
})), /*#__PURE__*/React.createElement("div", {
|
|
359
|
+
className: styles.header,
|
|
360
|
+
onMouseDown: handleMouseDown
|
|
361
|
+
}, /*#__PURE__*/React.createElement("h3", {
|
|
362
|
+
className: styles.title
|
|
363
|
+
}, "OSDK Devtools", /*#__PURE__*/React.createElement("span", {
|
|
364
|
+
className: styles.badge
|
|
365
|
+
}, "Beta")), /*#__PURE__*/React.createElement("div", {
|
|
366
|
+
className: styles.controls
|
|
367
|
+
}, /*#__PURE__*/React.createElement(Button, {
|
|
368
|
+
variant: "minimal",
|
|
369
|
+
size: "small",
|
|
370
|
+
icon: themePreference === "dark" ? "moon" : themePreference === "light" ? "flash" : "automatic-updates",
|
|
371
|
+
onClick: () => setThemePreference(themePreference === "dark" ? "light" : themePreference === "light" ? "auto" : "dark"),
|
|
372
|
+
title: `Theme: ${themePreference} (click to cycle)`,
|
|
373
|
+
"aria-label": `Theme: ${themePreference}. Click to cycle.`
|
|
374
|
+
}), /*#__PURE__*/React.createElement(Button, {
|
|
375
|
+
variant: "minimal",
|
|
376
|
+
size: "small",
|
|
377
|
+
icon: position.dockMode === "floating" ? "widget" : position.dockMode === "docked-bottom" ? "layout-sorted-clusters" : "layout-hierarchy",
|
|
378
|
+
onClick: handleDockToggle,
|
|
379
|
+
title: `Dock mode: ${position.dockMode} (click to cycle)`,
|
|
380
|
+
"aria-label": `Dock mode: ${position.dockMode}. Click to cycle.`
|
|
381
|
+
}), /*#__PURE__*/React.createElement(Button, {
|
|
382
|
+
variant: "minimal",
|
|
383
|
+
size: "small",
|
|
384
|
+
icon: "reset",
|
|
385
|
+
onClick: () => metricsStore.reset(),
|
|
386
|
+
title: "Reset metrics",
|
|
387
|
+
"aria-label": "Reset metrics"
|
|
388
|
+
}), /*#__PURE__*/React.createElement(Button, {
|
|
389
|
+
variant: "minimal",
|
|
390
|
+
size: "small",
|
|
391
|
+
icon: "minimize",
|
|
392
|
+
onClick: () => setPosition(prev => ({
|
|
393
|
+
...prev,
|
|
394
|
+
collapsed: true
|
|
395
|
+
})),
|
|
396
|
+
title: "Minimize",
|
|
397
|
+
"aria-label": "Minimize devtools panel"
|
|
398
|
+
}))), /*#__PURE__*/React.createElement("div", {
|
|
399
|
+
className: styles.tabs,
|
|
400
|
+
role: "tablist",
|
|
401
|
+
"aria-label": "Devtools tabs"
|
|
402
|
+
}, ["performance", "compute", "intercept", "debugging"].map(tab => /*#__PURE__*/React.createElement("button", {
|
|
403
|
+
key: tab,
|
|
404
|
+
type: "button",
|
|
405
|
+
role: "tab",
|
|
406
|
+
"aria-selected": activeTab === tab,
|
|
407
|
+
className: classNames(styles.tabButton, activeTab === tab && styles.tabButtonActive),
|
|
408
|
+
onClick: () => setActiveTab(tab)
|
|
409
|
+
}, tab.charAt(0).toUpperCase() + tab.slice(1)))), /*#__PURE__*/React.createElement("div", {
|
|
410
|
+
className: styles.content
|
|
411
|
+
}, (!fiberCapabilities.hookInstalled || !fiberCapabilities.fiberAccessWorking) && /*#__PURE__*/React.createElement(DegradationNotice, {
|
|
412
|
+
onRetry: () => validateFiberAccess()
|
|
413
|
+
}), /*#__PURE__*/React.createElement("div", {
|
|
414
|
+
className: activeTab === "performance" ? styles.tabContentVisible : styles.tabContentHidden
|
|
415
|
+
}, /*#__PURE__*/React.createElement(PerformanceTab, {
|
|
416
|
+
metricsStore: metricsStore,
|
|
417
|
+
monitorStore: monitorStore
|
|
418
|
+
})), /*#__PURE__*/React.createElement("div", {
|
|
419
|
+
className: activeTab === "compute" ? styles.tabContentVisible : styles.tabContentHidden
|
|
420
|
+
}, /*#__PURE__*/React.createElement(ComputeTab, {
|
|
421
|
+
computeStore: computeStore
|
|
422
|
+
})), /*#__PURE__*/React.createElement("div", {
|
|
423
|
+
className: activeTab === "intercept" ? styles.tabContentVisible : styles.tabContentHidden
|
|
424
|
+
}, /*#__PURE__*/React.createElement(InterceptTab, {
|
|
425
|
+
monitorStore: monitorStore,
|
|
426
|
+
theme: resolvedTheme
|
|
427
|
+
})), /*#__PURE__*/React.createElement("div", {
|
|
428
|
+
className: activeTab === "debugging" ? styles.tabContentVisible : styles.tabContentHidden
|
|
429
|
+
}, /*#__PURE__*/React.createElement(DebuggingTab, {
|
|
430
|
+
monitorStore: monitorStore
|
|
431
|
+
})))), document.body);
|
|
432
|
+
};
|
|
433
|
+
export const SafeMonitoringPanel = props => /*#__PURE__*/React.createElement(MonitorErrorBoundary, null, /*#__PURE__*/React.createElement(MonitoringPanel, props));
|
|
434
|
+
//# sourceMappingURL=MonitoringPanel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MonitoringPanel.js","names":["Button","Classes","Tooltip","classNames","React","useCallback","useMemo","useRef","useState","createPortal","DegradationNotice","useFiberCapabilities","validateFiberAccess","usePersistedState","ComputeTab","DebuggingTab","InterceptTab","MonitorErrorBoundary","styles","PerformanceTab","darkModeMql","window","matchMedia","undefined","subscribeDarkMode","callback","addEventListener","removeEventListener","getDarkModeSnapshot","matches","subscribeWindowSize","windowSizeSnapshot","width","innerWidth","height","innerHeight","getWindowSizeSnapshot","current","UI_CONSTANTS","DEFAULT_PANEL_WIDTH","DEFAULT_PANEL_HEIGHT","DEFAULT_PANEL_RIGHT_OFFSET","DEFAULT_PANEL_TOP_OFFSET","MIN_PANEL_WIDTH","MIN_PANEL_HEIGHT","TOOLTIP_HOVER_DELAY","DOCKED_BOTTOM_HEIGHT","DOCKED_RIGHT_WIDTH","MIN_DOCKED_BOTTOM_HEIGHT","MIN_DOCKED_RIGHT_WIDTH","MAX_DOCKED_BOTTOM_HEIGHT","MAX_DOCKED_RIGHT_WIDTH","MonitoringPanel","monitorStore","metricsStore","getMetricsStore","computeStore","getComputeStore","fiberCapabilities","activeTab","setActiveTab","position","setPosition","x","y","collapsed","dockMode","themePreference","setThemePreference","systemPrefersDark","useSyncExternalStore","resolvedTheme","panelRef","isDragging","isResizing","dragStart","elemX","elemY","resizeStart","setPositionRef","dragAbortRef","attachDragListeners","abort","controller","AbortController","signal","document","e","deltaX","clientX","deltaY","clientY","prev","Math","max","min","handle","newHeight","newWidth","newX","newY","includes","handleMouseDown","target","closest","controls","preventDefault","handleResizeMouseDown","stopPropagation","handleDockToggle","nextMode","windowSize","effectivePosition","maxX","maxY","createElement","content","placement","hoverOpenDelay","className","minimized","onClick","minimizedIcon","body","panelClassName","panel","DARK","floating","dockedBottom","dockedRight","ref","style","left","top","right","bottom","cls","horizontal","vertical","corner","topLeft","topRight","bottomLeft","bottomRight","map","key","resizeHandle","onMouseDown","header","title","badge","variant","size","icon","reset","tabs","role","tab","type","tabButton","tabButtonActive","charAt","toUpperCase","slice","hookInstalled","fiberAccessWorking","onRetry","tabContentVisible","tabContentHidden","theme","SafeMonitoringPanel","props"],"sources":["MonitoringPanel.tsx"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Button, Classes, Tooltip } from \"@blueprintjs/core\";\nimport classNames from \"classnames\";\nimport React, { useCallback, useMemo, useRef, useState } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport {\n DegradationNotice,\n useFiberCapabilities,\n} from \"../fiber/DegradationNotice.js\";\nimport { validateFiberAccess } from \"../fiber/validation.js\";\nimport { usePersistedState } from \"../hooks/usePersistedState.js\";\nimport type { MonitorStore } from \"../store/MonitorStore.js\";\nimport type { PanelPosition } from \"../types/index.js\";\nimport { ComputeTab } from \"./ComputeTab.js\";\nimport { DebuggingTab } from \"./DebuggingTab.js\";\nimport { InterceptTab } from \"./InterceptTab.js\";\nimport { MonitorErrorBoundary } from \"./MonitorErrorBoundary.js\";\nimport styles from \"./MonitoringPanel.module.scss\";\nimport { PerformanceTab } from \"./PerformanceTab.js\";\n\nconst darkModeMql = typeof window !== \"undefined\"\n ? window.matchMedia(\"(prefers-color-scheme: dark)\")\n : undefined;\n\nfunction subscribeDarkMode(callback: () => void): () => void {\n if (darkModeMql) {\n darkModeMql.addEventListener(\"change\", callback);\n return () => darkModeMql.removeEventListener(\"change\", callback);\n }\n return () => {};\n}\n\nfunction getDarkModeSnapshot(): boolean {\n return darkModeMql ? darkModeMql.matches : true;\n}\n\nfunction subscribeWindowSize(callback: () => void): () => void {\n window.addEventListener(\"resize\", callback);\n return () => window.removeEventListener(\"resize\", callback);\n}\n\nlet windowSizeSnapshot = typeof window !== \"undefined\"\n ? { width: window.innerWidth, height: window.innerHeight }\n : { width: 0, height: 0 };\n\nfunction getWindowSizeSnapshot(): { width: number; height: number } {\n const current = { width: window.innerWidth, height: window.innerHeight };\n if (\n current.width !== windowSizeSnapshot.width\n || current.height !== windowSizeSnapshot.height\n ) {\n windowSizeSnapshot = current;\n }\n return windowSizeSnapshot;\n}\n\nconst UI_CONSTANTS = {\n DEFAULT_PANEL_WIDTH: 400,\n DEFAULT_PANEL_HEIGHT: 600,\n DEFAULT_PANEL_RIGHT_OFFSET: 420,\n DEFAULT_PANEL_TOP_OFFSET: 20,\n MIN_PANEL_WIDTH: 320,\n MIN_PANEL_HEIGHT: 200,\n TOOLTIP_HOVER_DELAY: 500,\n DOCKED_BOTTOM_HEIGHT: 400,\n DOCKED_RIGHT_WIDTH: 500,\n MIN_DOCKED_BOTTOM_HEIGHT: 200,\n MIN_DOCKED_RIGHT_WIDTH: 320,\n MAX_DOCKED_BOTTOM_HEIGHT: 800,\n MAX_DOCKED_RIGHT_WIDTH: 800,\n};\n\nexport interface MonitoringPanelProps {\n /** The MonitorStore instance that provides all metrics, compute, and component tracking data. */\n monitorStore: MonitorStore;\n}\n\nexport const MonitoringPanel: React.FC<MonitoringPanelProps> = ({\n monitorStore,\n}) => {\n const metricsStore = monitorStore.getMetricsStore();\n const computeStore = monitorStore.getComputeStore();\n const fiberCapabilities = useFiberCapabilities();\n const [activeTab, setActiveTab] = useState<\n | \"performance\"\n | \"compute\"\n | \"intercept\"\n | \"debugging\"\n >(\"performance\");\n const [position, setPosition] = usePersistedState<PanelPosition>(\n \"osdk-monitor-position\",\n {\n x: window.innerWidth - UI_CONSTANTS.DEFAULT_PANEL_RIGHT_OFFSET,\n y: UI_CONSTANTS.DEFAULT_PANEL_TOP_OFFSET,\n width: UI_CONSTANTS.DEFAULT_PANEL_WIDTH,\n height: UI_CONSTANTS.DEFAULT_PANEL_HEIGHT,\n collapsed: false,\n dockMode: \"floating\",\n },\n );\n\n const [themePreference, setThemePreference] = usePersistedState<\n \"light\" | \"dark\" | \"auto\"\n >(\"osdk-devtools-theme\", \"dark\");\n\n const systemPrefersDark = React.useSyncExternalStore(\n subscribeDarkMode,\n getDarkModeSnapshot,\n );\n\n const resolvedTheme = useMemo(\n () =>\n themePreference === \"auto\"\n ? (systemPrefersDark ? \"dark\" : \"light\")\n : themePreference,\n [themePreference, systemPrefersDark],\n );\n\n const panelRef = useRef<HTMLDivElement>(null);\n const isDragging = useRef(false);\n const isResizing = useRef<string | null>(null);\n const dragStart = useRef({ x: 0, y: 0, elemX: 0, elemY: 0 });\n const resizeStart = useRef({\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n elemX: 0,\n elemY: 0,\n });\n\n const setPositionRef = useRef(setPosition);\n setPositionRef.current = setPosition;\n\n const dragAbortRef = useRef<AbortController | null>(null);\n\n const attachDragListeners = useCallback(() => {\n dragAbortRef.current?.abort();\n const controller = new AbortController();\n dragAbortRef.current = controller;\n const { signal } = controller;\n\n const handleMouseMove = (e: MouseEvent) => {\n if (isDragging.current) {\n const deltaX = e.clientX - dragStart.current.x;\n const deltaY = e.clientY - dragStart.current.y;\n setPositionRef.current((prev) => ({\n ...prev,\n x: Math.max(\n 0,\n Math.min(\n window.innerWidth - prev.width,\n dragStart.current.elemX + deltaX,\n ),\n ),\n y: Math.max(\n 0,\n Math.min(\n window.innerHeight - prev.height,\n dragStart.current.elemY + deltaY,\n ),\n ),\n }));\n } else if (isResizing.current) {\n const deltaX = e.clientX - resizeStart.current.x;\n const deltaY = e.clientY - resizeStart.current.y;\n const handle = isResizing.current;\n\n setPositionRef.current((prev) => {\n if (prev.dockMode === \"docked-bottom\") {\n const newHeight = Math.max(\n UI_CONSTANTS.MIN_DOCKED_BOTTOM_HEIGHT,\n Math.min(\n UI_CONSTANTS.MAX_DOCKED_BOTTOM_HEIGHT,\n resizeStart.current.height - deltaY,\n ),\n );\n return {\n ...prev,\n height: newHeight,\n y: window.innerHeight - newHeight,\n };\n }\n\n if (prev.dockMode === \"docked-right\") {\n const newWidth = Math.max(\n UI_CONSTANTS.MIN_DOCKED_RIGHT_WIDTH,\n Math.min(\n UI_CONSTANTS.MAX_DOCKED_RIGHT_WIDTH,\n resizeStart.current.width - deltaX,\n ),\n );\n return {\n ...prev,\n width: newWidth,\n x: window.innerWidth - newWidth,\n };\n }\n\n let newX = prev.x;\n let newY = prev.y;\n let newWidth = prev.width;\n let newHeight = prev.height;\n\n if (handle.includes(\"right\")) {\n newWidth = Math.max(\n UI_CONSTANTS.MIN_PANEL_WIDTH,\n resizeStart.current.width + deltaX,\n );\n }\n if (handle.includes(\"left\")) {\n newWidth = Math.max(\n UI_CONSTANTS.MIN_PANEL_WIDTH,\n resizeStart.current.width - deltaX,\n );\n newX = resizeStart.current.elemX + deltaX;\n if (newWidth === UI_CONSTANTS.MIN_PANEL_WIDTH) {\n newX = resizeStart.current.elemX + resizeStart.current.width\n - UI_CONSTANTS.MIN_PANEL_WIDTH;\n }\n }\n if (handle.includes(\"bottom\")) {\n newHeight = Math.max(\n UI_CONSTANTS.MIN_PANEL_HEIGHT,\n resizeStart.current.height + deltaY,\n );\n }\n if (handle.includes(\"top\")) {\n newHeight = Math.max(\n UI_CONSTANTS.MIN_PANEL_HEIGHT,\n resizeStart.current.height - deltaY,\n );\n newY = resizeStart.current.elemY + deltaY;\n if (newHeight === UI_CONSTANTS.MIN_PANEL_HEIGHT) {\n newY = resizeStart.current.elemY + resizeStart.current.height\n - UI_CONSTANTS.MIN_PANEL_HEIGHT;\n }\n }\n\n return {\n ...prev,\n x: newX,\n y: newY,\n width: newWidth,\n height: newHeight,\n };\n });\n }\n };\n\n const handleMouseUp = () => {\n isDragging.current = false;\n isResizing.current = null;\n controller.abort();\n dragAbortRef.current = null;\n };\n\n document.addEventListener(\"mousemove\", handleMouseMove, { signal });\n document.addEventListener(\"mouseup\", handleMouseUp, { signal });\n }, []);\n\n const handleMouseDown = useCallback(\n (e: React.MouseEvent) => {\n if ((e.target as HTMLElement).closest(`.${styles.controls}`)) {\n return;\n }\n if (position.dockMode !== \"floating\") {\n return;\n }\n isDragging.current = true;\n dragStart.current = {\n x: e.clientX,\n y: e.clientY,\n elemX: position.x,\n elemY: position.y,\n };\n e.preventDefault();\n attachDragListeners();\n },\n [position, attachDragListeners],\n );\n\n const handleResizeMouseDown = useCallback(\n (e: React.MouseEvent, handle: string) => {\n isResizing.current = handle;\n resizeStart.current = {\n x: e.clientX,\n y: e.clientY,\n width: position.width,\n height: position.height,\n elemX: position.x,\n elemY: position.y,\n };\n e.preventDefault();\n e.stopPropagation();\n attachDragListeners();\n },\n [position, attachDragListeners],\n );\n\n const handleDockToggle = useCallback(() => {\n setPosition((prev) => {\n const nextMode = prev.dockMode === \"floating\"\n ? \"docked-bottom\"\n : prev.dockMode === \"docked-bottom\"\n ? \"docked-right\"\n : \"floating\";\n\n if (nextMode === \"docked-bottom\") {\n return {\n x: 0,\n y: window.innerHeight - UI_CONSTANTS.DOCKED_BOTTOM_HEIGHT,\n width: window.innerWidth,\n height: UI_CONSTANTS.DOCKED_BOTTOM_HEIGHT,\n collapsed: false,\n dockMode: nextMode,\n };\n } else if (nextMode === \"docked-right\") {\n return {\n x: window.innerWidth - UI_CONSTANTS.DOCKED_RIGHT_WIDTH,\n y: 0,\n width: UI_CONSTANTS.DOCKED_RIGHT_WIDTH,\n height: window.innerHeight,\n collapsed: false,\n dockMode: nextMode,\n };\n } else {\n return {\n x: window.innerWidth - UI_CONSTANTS.DEFAULT_PANEL_RIGHT_OFFSET,\n y: UI_CONSTANTS.DEFAULT_PANEL_TOP_OFFSET,\n width: UI_CONSTANTS.DEFAULT_PANEL_WIDTH,\n height: UI_CONSTANTS.DEFAULT_PANEL_HEIGHT,\n collapsed: false,\n dockMode: nextMode,\n };\n }\n });\n }, [setPosition]);\n\n const windowSize = React.useSyncExternalStore(\n subscribeWindowSize,\n getWindowSizeSnapshot,\n );\n\n const effectivePosition = useMemo(() => {\n if (position.dockMode === \"floating\") {\n const maxX = windowSize.width - position.width;\n const maxY = windowSize.height - position.height;\n return {\n ...position,\n x: Math.max(0, Math.min(position.x, maxX)),\n y: Math.max(0, Math.min(position.y, maxY)),\n };\n }\n if (position.dockMode === \"docked-bottom\") {\n return {\n ...position,\n width: windowSize.width,\n y: windowSize.height - position.height,\n };\n }\n if (position.dockMode === \"docked-right\") {\n return {\n ...position,\n height: windowSize.height,\n x: windowSize.width - position.width,\n };\n }\n return position;\n }, [position, windowSize]);\n\n if (position.collapsed) {\n return createPortal(\n <Tooltip\n content=\"View OSDK Devtools\"\n placement=\"left\"\n hoverOpenDelay={UI_CONSTANTS.TOOLTIP_HOVER_DELAY}\n >\n <div\n className={styles.minimized}\n data-dt-theme={resolvedTheme}\n onClick={() => setPosition((prev) => ({ ...prev, collapsed: false }))}\n >\n <span className={styles.minimizedIcon}></></span>\n </div>\n </Tooltip>,\n document.body,\n );\n }\n\n const panelClassName = classNames(\n styles.panel,\n resolvedTheme === \"dark\" ? Classes.DARK : undefined,\n {\n [styles.floating]: position.dockMode === \"floating\",\n [styles.dockedBottom]: position.dockMode === \"docked-bottom\",\n [styles.dockedRight]: position.dockMode === \"docked-right\",\n },\n );\n return createPortal(\n <div\n ref={panelRef}\n className={panelClassName}\n data-dt-theme={resolvedTheme}\n style={{\n left: effectivePosition.dockMode === \"docked-bottom\"\n ? 0\n : effectivePosition.x,\n top: effectivePosition.dockMode === \"docked-right\"\n ? 0\n : effectivePosition.y,\n width: effectivePosition.width,\n height: effectivePosition.height,\n right: effectivePosition.dockMode === \"docked-right\" ? 0 : undefined,\n bottom: effectivePosition.dockMode === \"docked-bottom\" ? 0 : undefined,\n }}\n >\n {(position.dockMode === \"floating\"\n ? [\n { cls: [styles.horizontal, styles.top], handle: \"top\" },\n { cls: [styles.horizontal, styles.bottom], handle: \"bottom\" },\n { cls: [styles.vertical, styles.left], handle: \"left\" },\n { cls: [styles.vertical, styles.right], handle: \"right\" },\n { cls: [styles.corner, styles.topLeft], handle: \"topLeft\" },\n { cls: [styles.corner, styles.topRight], handle: \"topRight\" },\n { cls: [styles.corner, styles.bottomLeft], handle: \"bottomLeft\" },\n { cls: [styles.corner, styles.bottomRight], handle: \"bottomRight\" },\n ]\n : position.dockMode === \"docked-bottom\"\n ? [{ cls: [styles.horizontal, styles.top], handle: \"top\" }]\n : position.dockMode === \"docked-right\"\n ? [{ cls: [styles.vertical, styles.left], handle: \"left\" }]\n : []).map(({ cls, handle }) => (\n <div\n key={handle}\n className={classNames(styles.resizeHandle, ...cls)}\n onMouseDown={(e) => handleResizeMouseDown(e, handle)}\n />\n ))}\n\n <div className={styles.header} onMouseDown={handleMouseDown}>\n <h3 className={styles.title}>\n OSDK Devtools\n <span className={styles.badge}>Beta</span>\n </h3>\n <div className={styles.controls}>\n <Button\n variant=\"minimal\"\n size=\"small\"\n icon={themePreference === \"dark\"\n ? \"moon\"\n : themePreference === \"light\"\n ? \"flash\"\n : \"automatic-updates\"}\n onClick={() =>\n setThemePreference(\n themePreference === \"dark\"\n ? \"light\"\n : themePreference === \"light\"\n ? \"auto\"\n : \"dark\",\n )}\n title={`Theme: ${themePreference} (click to cycle)`}\n aria-label={`Theme: ${themePreference}. Click to cycle.`}\n />\n <Button\n variant=\"minimal\"\n size=\"small\"\n icon={position.dockMode === \"floating\"\n ? \"widget\"\n : position.dockMode === \"docked-bottom\"\n ? \"layout-sorted-clusters\"\n : \"layout-hierarchy\"}\n onClick={handleDockToggle}\n title={`Dock mode: ${position.dockMode} (click to cycle)`}\n aria-label={`Dock mode: ${position.dockMode}. Click to cycle.`}\n />\n <Button\n variant=\"minimal\"\n size=\"small\"\n icon=\"reset\"\n onClick={() => metricsStore.reset()}\n title=\"Reset metrics\"\n aria-label=\"Reset metrics\"\n />\n <Button\n variant=\"minimal\"\n size=\"small\"\n icon=\"minimize\"\n onClick={() =>\n setPosition((prev) => ({ ...prev, collapsed: true }))}\n title=\"Minimize\"\n aria-label=\"Minimize devtools panel\"\n />\n </div>\n </div>\n\n <div className={styles.tabs} role=\"tablist\" aria-label=\"Devtools tabs\">\n {(\n [\"performance\", \"compute\", \"intercept\", \"debugging\"] as const\n ).map((tab) => (\n <button\n key={tab}\n type=\"button\"\n role=\"tab\"\n aria-selected={activeTab === tab}\n className={classNames(\n styles.tabButton,\n activeTab === tab && styles.tabButtonActive,\n )}\n onClick={() => setActiveTab(tab)}\n >\n {tab.charAt(0).toUpperCase() + tab.slice(1)}\n </button>\n ))}\n </div>\n\n <div className={styles.content}>\n {(!fiberCapabilities.hookInstalled\n || !fiberCapabilities.fiberAccessWorking) && (\n <DegradationNotice onRetry={() => validateFiberAccess()} />\n )}\n\n <div\n className={activeTab === \"performance\"\n ? styles.tabContentVisible\n : styles.tabContentHidden}\n >\n <PerformanceTab\n metricsStore={metricsStore}\n monitorStore={monitorStore}\n />\n </div>\n <div\n className={activeTab === \"compute\"\n ? styles.tabContentVisible\n : styles.tabContentHidden}\n >\n <ComputeTab computeStore={computeStore} />\n </div>\n <div\n className={activeTab === \"intercept\"\n ? styles.tabContentVisible\n : styles.tabContentHidden}\n >\n <InterceptTab monitorStore={monitorStore} theme={resolvedTheme} />\n </div>\n <div\n className={activeTab === \"debugging\"\n ? styles.tabContentVisible\n : styles.tabContentHidden}\n >\n <DebuggingTab monitorStore={monitorStore} />\n </div>\n </div>\n </div>,\n document.body,\n );\n};\n\nexport const SafeMonitoringPanel: React.FC<MonitoringPanelProps> = (props) => (\n <MonitorErrorBoundary>\n <MonitoringPanel {...props} />\n </MonitorErrorBoundary>\n);\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
// AUTO-GENERATED by scripts/build-css.mjs. Do not edit by hand.
|
|
2
|
+
const styles = {
|
|
3
|
+
"panel": "MonitoringPanel-module__panel___nLfigSXQ",
|
|
4
|
+
"collapsed": "MonitoringPanel-module__collapsed___pQFGiC3Y",
|
|
5
|
+
"floating": "MonitoringPanel-module__floating___FJSPBbhW",
|
|
6
|
+
"dockedBottom": "MonitoringPanel-module__dockedBottom___Lk-LOHZ5",
|
|
7
|
+
"dockedRight": "MonitoringPanel-module__dockedRight___clBz4I88",
|
|
8
|
+
"resizeHandle": "MonitoringPanel-module__resizeHandle___9x0yh5lU",
|
|
9
|
+
"horizontal": "MonitoringPanel-module__horizontal___PGCdBOUh",
|
|
10
|
+
"top": "MonitoringPanel-module__top___LzSQg8NP",
|
|
11
|
+
"bottom": "MonitoringPanel-module__bottom___KS-5RnxQ",
|
|
12
|
+
"vertical": "MonitoringPanel-module__vertical___1oMz2aXw",
|
|
13
|
+
"left": "MonitoringPanel-module__left___-ndE4pdQ",
|
|
14
|
+
"right": "MonitoringPanel-module__right___xWS34a7v",
|
|
15
|
+
"corner": "MonitoringPanel-module__corner___Y3E9-Ngt",
|
|
16
|
+
"topLeft": "MonitoringPanel-module__topLeft___egiC6jiI",
|
|
17
|
+
"topRight": "MonitoringPanel-module__topRight___1iBhTC4R",
|
|
18
|
+
"bottomLeft": "MonitoringPanel-module__bottomLeft___RhDHxAdJ",
|
|
19
|
+
"bottomRight": "MonitoringPanel-module__bottomRight___-kD0dpnE",
|
|
20
|
+
"header": "MonitoringPanel-module__header___QiCDZ5w4",
|
|
21
|
+
"title": "MonitoringPanel-module__title___nyXKziOu",
|
|
22
|
+
"badge": "MonitoringPanel-module__badge___EVCARt18",
|
|
23
|
+
"controls": "MonitoringPanel-module__controls___0x-Xb00n",
|
|
24
|
+
"iconButton": "MonitoringPanel-module__iconButton___Ofs4kVaT",
|
|
25
|
+
"content": "MonitoringPanel-module__content___ZVPMCH4O",
|
|
26
|
+
"tabs": "MonitoringPanel-module__tabs___bqn6HDbz",
|
|
27
|
+
"tabButton": "MonitoringPanel-module__tabButton___cjPGg0FS",
|
|
28
|
+
"tabButtonActive": "MonitoringPanel-module__tabButtonActive___gEhlfE4y",
|
|
29
|
+
"tabContentVisible": "MonitoringPanel-module__tabContentVisible___llXLpVeb",
|
|
30
|
+
"tabContentHidden": "MonitoringPanel-module__tabContentHidden___Hm4ckAQm",
|
|
31
|
+
"metricsGrid": "MonitoringPanel-module__metricsGrid___Ui5kYWKE",
|
|
32
|
+
"computeMetricsGrid": "MonitoringPanel-module__computeMetricsGrid___7yTv8eKM",
|
|
33
|
+
"metricCell": "MonitoringPanel-module__metricCell___5zQ-5e-x",
|
|
34
|
+
"metricGroup": "MonitoringPanel-module__metricGroup___Fp6hUY6B",
|
|
35
|
+
"metricGroupTitle": "MonitoringPanel-module__metricGroupTitle___AAAJ0bwx",
|
|
36
|
+
"metricGroupContent": "MonitoringPanel-module__metricGroupContent___adfvrz7S",
|
|
37
|
+
"filterControls": "MonitoringPanel-module__filterControls___wDE5Chtb",
|
|
38
|
+
"metric": "MonitoringPanel-module__metric___DH779Z6S",
|
|
39
|
+
"metricLabel": "MonitoringPanel-module__metricLabel___vLuqCOAL",
|
|
40
|
+
"metricValue": "MonitoringPanel-module__metricValue___czLLjZXS",
|
|
41
|
+
"success": "MonitoringPanel-module__success___G0JJEQwh",
|
|
42
|
+
"warning": "MonitoringPanel-module__warning___5YufTRI-",
|
|
43
|
+
"danger": "MonitoringPanel-module__danger___YL15n2gC",
|
|
44
|
+
"metricSubtext": "MonitoringPanel-module__metricSubtext___GBakeTNA",
|
|
45
|
+
"operationsList": "MonitoringPanel-module__operationsList___hsBFBVLc",
|
|
46
|
+
"operationItem": "MonitoringPanel-module__operationItem___kq8nTthj",
|
|
47
|
+
"selectedItem": "MonitoringPanel-module__selectedItem___ZImakpn-",
|
|
48
|
+
"operationType": "MonitoringPanel-module__operationType___Uh0vHvOa",
|
|
49
|
+
"cacheHit": "MonitoringPanel-module__cacheHit___L7hFFyH9",
|
|
50
|
+
"cacheMiss": "MonitoringPanel-module__cacheMiss___K4S4ylBH",
|
|
51
|
+
"deduplication": "MonitoringPanel-module__deduplication___zwTcbDVv",
|
|
52
|
+
"optimistic": "MonitoringPanel-module__optimistic___6uuChUrU",
|
|
53
|
+
"action": "MonitoringPanel-module__action___GWwyF452",
|
|
54
|
+
"revalidation": "MonitoringPanel-module__revalidation___wjb0pZIG",
|
|
55
|
+
"validation": "MonitoringPanel-module__validation___fdnbTdj8",
|
|
56
|
+
"operationDetails": "MonitoringPanel-module__operationDetails___qtP8IccP",
|
|
57
|
+
"operationSignature": "MonitoringPanel-module__operationSignature___neFY6h6Q",
|
|
58
|
+
"actionCauseBadge": "MonitoringPanel-module__actionCauseBadge___MCsU7F1O",
|
|
59
|
+
"operationTime": "MonitoringPanel-module__operationTime___54SdGSfF",
|
|
60
|
+
"operationMetric": "MonitoringPanel-module__operationMetric___OmQ6PFH-",
|
|
61
|
+
"saved": "MonitoringPanel-module__saved___lnYxmslL",
|
|
62
|
+
"operationMetrics": "MonitoringPanel-module__operationMetrics___RsIpcXjl",
|
|
63
|
+
"rollback": "MonitoringPanel-module__rollback___9XS7UXok",
|
|
64
|
+
"emptyState": "MonitoringPanel-module__emptyState___0-9OEEoK",
|
|
65
|
+
"minimized": "MonitoringPanel-module__minimized___FKTZeeJi",
|
|
66
|
+
"minimizedIcon": "MonitoringPanel-module__minimizedIcon___1mK64ane",
|
|
67
|
+
"bubbleChartContainer": "MonitoringPanel-module__bubbleChartContainer___QY96L6Y0",
|
|
68
|
+
"computeControls": "MonitoringPanel-module__computeControls___443I5RMM",
|
|
69
|
+
"computeFulfilled": "MonitoringPanel-module__computeFulfilled___KDkGUSj6",
|
|
70
|
+
"computeFulfilledWithoutUsage": "MonitoringPanel-module__computeFulfilledWithoutUsage___MwbFYzav",
|
|
71
|
+
"computeFailed": "MonitoringPanel-module__computeFailed___tY8qLNXd",
|
|
72
|
+
"computePending": "MonitoringPanel-module__computePending___7l8ZBcf5",
|
|
73
|
+
"timelineContainer": "MonitoringPanel-module__timelineContainer___NbpXl298",
|
|
74
|
+
"inlineIndicator": "MonitoringPanel-module__inlineIndicator___oADVDeoM",
|
|
75
|
+
"inlineTip": "MonitoringPanel-module__inlineTip___99PpKMlx",
|
|
76
|
+
"emptyIcon": "MonitoringPanel-module__emptyIcon___X4HxVKa6",
|
|
77
|
+
"emptySubtext": "MonitoringPanel-module__emptySubtext___4G-5gbFh",
|
|
78
|
+
"dt-shimmer": "MonitoringPanel-module__dt-shimmer___JebnPw7-",
|
|
79
|
+
"dt-fade-up": "MonitoringPanel-module__dt-fade-up___WQOMI910"
|
|
80
|
+
};
|
|
81
|
+
export default styles;
|