@zendir/ui 0.1.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 +19 -0
- package/LICENSE +21 -0
- package/README.md +589 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.js +421 -0
- package/dist/index.js.map +1 -0
- package/dist/react/3d/EarthViewer.d.ts +46 -0
- package/dist/react/3d/EarthViewer.js +836 -0
- package/dist/react/3d/EarthViewer.js.map +1 -0
- package/dist/react/3d/SolarSystemViewer.d.ts +43 -0
- package/dist/react/3d/SolarSystemViewer.js +372 -0
- package/dist/react/3d/SolarSystemViewer.js.map +1 -0
- package/dist/react/3d/ZenSpace3D.d.ts +16 -0
- package/dist/react/3d/ZenSpace3D.js +1253 -0
- package/dist/react/3d/ZenSpace3D.js.map +1 -0
- package/dist/react/3d/ZenSpace3DCesium.d.ts +9 -0
- package/dist/react/3d/ZenSpace3DCesium.js +186 -0
- package/dist/react/3d/ZenSpace3DCesium.js.map +1 -0
- package/dist/react/3d/ZenSpace3DShaders.d.ts +78 -0
- package/dist/react/3d/ZenSpace3DShaders.js +94 -0
- package/dist/react/3d/ZenSpace3DShaders.js.map +1 -0
- package/dist/react/3d/ZenSpace3DTypes.d.ts +614 -0
- package/dist/react/3d/ZenSpace3DUtils.d.ts +183 -0
- package/dist/react/3d/ZenSpace3DUtils.js +213 -0
- package/dist/react/3d/ZenSpace3DUtils.js.map +1 -0
- package/dist/react/3d/index.d.ts +23 -0
- package/dist/react/3d/threeLoader.d.ts +22 -0
- package/dist/react/3d/threeLoader.js +18 -0
- package/dist/react/3d/threeLoader.js.map +1 -0
- package/dist/react/astro/ClassificationBanner.d.ts +25 -0
- package/dist/react/astro/ClassificationBanner.js +83 -0
- package/dist/react/astro/ClassificationBanner.js.map +1 -0
- package/dist/react/astro/GlobalStatusBar.d.ts +42 -0
- package/dist/react/astro/GlobalStatusBar.js +165 -0
- package/dist/react/astro/GlobalStatusBar.js.map +1 -0
- package/dist/react/astro/MissionClock.d.ts +169 -0
- package/dist/react/astro/MissionClock.js +411 -0
- package/dist/react/astro/MissionClock.js.map +1 -0
- package/dist/react/astro/MonitoringIcon.d.ts +60 -0
- package/dist/react/astro/MonitoringIcon.js +369 -0
- package/dist/react/astro/MonitoringIcon.js.map +1 -0
- package/dist/react/astro/Notification.d.ts +42 -0
- package/dist/react/astro/Notification.js +156 -0
- package/dist/react/astro/Notification.js.map +1 -0
- package/dist/react/astro/Progress.d.ts +39 -0
- package/dist/react/astro/Progress.js +149 -0
- package/dist/react/astro/Progress.js.map +1 -0
- package/dist/react/astro/SimulationControls.d.ts +136 -0
- package/dist/react/astro/SimulationControls.js +668 -0
- package/dist/react/astro/SimulationControls.js.map +1 -0
- package/dist/react/astro/StatusIndicator.d.ts +34 -0
- package/dist/react/astro/StatusIndicator.js +189 -0
- package/dist/react/astro/StatusIndicator.js.map +1 -0
- package/dist/react/astro/UnifiedTimeline.d.ts +106 -0
- package/dist/react/astro/UnifiedTimeline.js +1768 -0
- package/dist/react/astro/UnifiedTimeline.js.map +1 -0
- package/dist/react/astro/index.d.ts +63 -0
- package/dist/react/cards/AccessCard.d.ts +37 -0
- package/dist/react/cards/AccessCard.js +410 -0
- package/dist/react/cards/AccessCard.js.map +1 -0
- package/dist/react/cards/OrbitCard.d.ts +31 -0
- package/dist/react/cards/OrbitCard.js +372 -0
- package/dist/react/cards/OrbitCard.js.map +1 -0
- package/dist/react/cards/SpacecraftCard.d.ts +54 -0
- package/dist/react/cards/SpacecraftCard.js +941 -0
- package/dist/react/cards/SpacecraftCard.js.map +1 -0
- package/dist/react/cards/TelemetryCard.d.ts +40 -0
- package/dist/react/cards/TelemetryCard.js +742 -0
- package/dist/react/cards/TelemetryCard.js.map +1 -0
- package/dist/react/cards/TelemetryStreamCard.d.ts +59 -0
- package/dist/react/cards/TelemetryStreamCard.js +309 -0
- package/dist/react/cards/TelemetryStreamCard.js.map +1 -0
- package/dist/react/cards/index.d.ts +13 -0
- package/dist/react/charts/GroundTrackMap.d.ts +112 -0
- package/dist/react/charts/GroundTrackMap.js +1123 -0
- package/dist/react/charts/GroundTrackMap.js.map +1 -0
- package/dist/react/charts/GroundTrackMapLeaflet.d.ts +26 -0
- package/dist/react/charts/GroundTrackMapLeaflet.js +571 -0
- package/dist/react/charts/GroundTrackMapLeaflet.js.map +1 -0
- package/dist/react/charts/groundTrackMapLeafletTiles.d.ts +22 -0
- package/dist/react/charts/groundTrackMapLeafletTiles.js +11 -0
- package/dist/react/charts/groundTrackMapLeafletTiles.js.map +1 -0
- package/dist/react/charts/groundTrackMapLeafletUtils.d.ts +24 -0
- package/dist/react/charts/groundTrackMapLeafletUtils.js +109 -0
- package/dist/react/charts/groundTrackMapLeafletUtils.js.map +1 -0
- package/dist/react/charts/index.d.ts +10 -0
- package/dist/react/charts/unified/AstroChart.d.ts +24 -0
- package/dist/react/charts/unified/AstroChart.js +1405 -0
- package/dist/react/charts/unified/AstroChart.js.map +1 -0
- package/dist/react/charts/unified/PowerOverviewChart.d.ts +73 -0
- package/dist/react/charts/unified/PowerOverviewChart.js +488 -0
- package/dist/react/charts/unified/PowerOverviewChart.js.map +1 -0
- package/dist/react/charts/unified/domain.d.ts +845 -0
- package/dist/react/charts/unified/domain.js +3168 -0
- package/dist/react/charts/unified/domain.js.map +1 -0
- package/dist/react/charts/unified/generators.d.ts +276 -0
- package/dist/react/charts/unified/generators.js +518 -0
- package/dist/react/charts/unified/generators.js.map +1 -0
- package/dist/react/charts/unified/index.d.ts +55 -0
- package/dist/react/charts/unified/presets.d.ts +290 -0
- package/dist/react/charts/unified/presets.js +999 -0
- package/dist/react/charts/unified/presets.js.map +1 -0
- package/dist/react/charts/unified/sync.d.ts +69 -0
- package/dist/react/charts/unified/sync.js +219 -0
- package/dist/react/charts/unified/sync.js.map +1 -0
- package/dist/react/charts/unified/theme.d.ts +447 -0
- package/dist/react/charts/unified/theme.js +562 -0
- package/dist/react/charts/unified/theme.js.map +1 -0
- package/dist/react/charts/unified/types.d.ts +826 -0
- package/dist/react/charts/unified/useChartStream.d.ts +58 -0
- package/dist/react/charts/unified/useChartStream.js +226 -0
- package/dist/react/charts/unified/useChartStream.js.map +1 -0
- package/dist/react/chatgpt/AppCard.d.ts +59 -0
- package/dist/react/chatgpt/AppCard.js +306 -0
- package/dist/react/chatgpt/AppCard.js.map +1 -0
- package/dist/react/chatgpt/ChatGPTCard.d.ts +6 -0
- package/dist/react/chatgpt/index.d.ts +167 -0
- package/dist/react/chatgpt/index.js +166 -0
- package/dist/react/chatgpt/index.js.map +1 -0
- package/dist/react/context/DisplaySettingsContext.d.ts +107 -0
- package/dist/react/context/DisplaySettingsContext.js +169 -0
- package/dist/react/context/DisplaySettingsContext.js.map +1 -0
- package/dist/react/context/index.d.ts +5 -0
- package/dist/react/core/ActivityPlanner.d.ts +45 -0
- package/dist/react/core/ActivityPlanner.js +532 -0
- package/dist/react/core/ActivityPlanner.js.map +1 -0
- package/dist/react/core/AppBar.d.ts +71 -0
- package/dist/react/core/AppBar.js +817 -0
- package/dist/react/core/AppBar.js.map +1 -0
- package/dist/react/core/AstroIcon.d.ts +84 -0
- package/dist/react/core/AstroIcon.js +1243 -0
- package/dist/react/core/AstroIcon.js.map +1 -0
- package/dist/react/core/Badge.d.ts +27 -0
- package/dist/react/core/Badge.js +134 -0
- package/dist/react/core/Badge.js.map +1 -0
- package/dist/react/core/Button.d.ts +26 -0
- package/dist/react/core/Button.js +306 -0
- package/dist/react/core/Button.js.map +1 -0
- package/dist/react/core/CardHeader.d.ts +34 -0
- package/dist/react/core/CardHeader.js +316 -0
- package/dist/react/core/CardHeader.js.map +1 -0
- package/dist/react/core/ChatPanel.d.ts +627 -0
- package/dist/react/core/ChatPanel.js +1144 -0
- package/dist/react/core/ChatPanel.js.map +1 -0
- package/dist/react/core/Checkbox.d.ts +26 -0
- package/dist/react/core/Checkbox.js +130 -0
- package/dist/react/core/Checkbox.js.map +1 -0
- package/dist/react/core/ColorPickerPanel.d.ts +25 -0
- package/dist/react/core/ColorPickerPanel.js +293 -0
- package/dist/react/core/ColorPickerPanel.js.map +1 -0
- package/dist/react/core/CommandBuilder.d.ts +74 -0
- package/dist/react/core/CommandBuilder.js +518 -0
- package/dist/react/core/CommandBuilder.js.map +1 -0
- package/dist/react/core/ConfirmDialog.d.ts +45 -0
- package/dist/react/core/ConfirmDialog.js +315 -0
- package/dist/react/core/ConfirmDialog.js.map +1 -0
- package/dist/react/core/ConnectionForm.d.ts +57 -0
- package/dist/react/core/ConnectionForm.js +496 -0
- package/dist/react/core/ConnectionForm.js.map +1 -0
- package/dist/react/core/Container.d.ts +51 -0
- package/dist/react/core/Container.js +670 -0
- package/dist/react/core/Container.js.map +1 -0
- package/dist/react/core/CopyButton.d.ts +39 -0
- package/dist/react/core/CopyButton.js +105 -0
- package/dist/react/core/CopyButton.js.map +1 -0
- package/dist/react/core/DataTable.d.ts +113 -0
- package/dist/react/core/DataTable.js +446 -0
- package/dist/react/core/DataTable.js.map +1 -0
- package/dist/react/core/DataValue.d.ts +64 -0
- package/dist/react/core/DataValue.js +545 -0
- package/dist/react/core/DataValue.js.map +1 -0
- package/dist/react/core/Dialog.d.ts +32 -0
- package/dist/react/core/Dialog.js +201 -0
- package/dist/react/core/Dialog.js.map +1 -0
- package/dist/react/core/FileExplorer.d.ts +65 -0
- package/dist/react/core/FileExplorer.js +520 -0
- package/dist/react/core/FileExplorer.js.map +1 -0
- package/dist/react/core/GlassCard.d.ts +129 -0
- package/dist/react/core/GlassCard.js +375 -0
- package/dist/react/core/GlassCard.js.map +1 -0
- package/dist/react/core/HeaderIconWithStatus.d.ts +39 -0
- package/dist/react/core/HeaderIconWithStatus.js +157 -0
- package/dist/react/core/HeaderIconWithStatus.js.map +1 -0
- package/dist/react/core/HexViewer.d.ts +143 -0
- package/dist/react/core/HexViewer.js +1106 -0
- package/dist/react/core/HexViewer.js.map +1 -0
- package/dist/react/core/Icon.d.ts +32 -0
- package/dist/react/core/Icon.js +142 -0
- package/dist/react/core/Icon.js.map +1 -0
- package/dist/react/core/ImageGallery.d.ts +41 -0
- package/dist/react/core/ImageGallery.js +320 -0
- package/dist/react/core/ImageGallery.js.map +1 -0
- package/dist/react/core/Input.d.ts +38 -0
- package/dist/react/core/Input.js +288 -0
- package/dist/react/core/Input.js.map +1 -0
- package/dist/react/core/LimitsBar.d.ts +51 -0
- package/dist/react/core/LimitsBar.js +200 -0
- package/dist/react/core/LimitsBar.js.map +1 -0
- package/dist/react/core/LogViewer.d.ts +61 -0
- package/dist/react/core/LogViewer.js +599 -0
- package/dist/react/core/LogViewer.js.map +1 -0
- package/dist/react/core/MessageStream.d.ts +58 -0
- package/dist/react/core/MessageStream.js +455 -0
- package/dist/react/core/MessageStream.js.map +1 -0
- package/dist/react/core/MissionCalendar.d.ts +81 -0
- package/dist/react/core/MissionCalendar.js +1049 -0
- package/dist/react/core/MissionCalendar.js.map +1 -0
- package/dist/react/core/NumberInput.d.ts +85 -0
- package/dist/react/core/NumberInput.js +507 -0
- package/dist/react/core/NumberInput.js.map +1 -0
- package/dist/react/core/PacketViewer.d.ts +73 -0
- package/dist/react/core/PacketViewer.js +431 -0
- package/dist/react/core/PacketViewer.js.map +1 -0
- package/dist/react/core/Pagination.d.ts +30 -0
- package/dist/react/core/Pagination.js +190 -0
- package/dist/react/core/Pagination.js.map +1 -0
- package/dist/react/core/PinInput.d.ts +41 -0
- package/dist/react/core/PinInput.js +210 -0
- package/dist/react/core/PinInput.js.map +1 -0
- package/dist/react/core/Popover.d.ts +55 -0
- package/dist/react/core/Popover.js +288 -0
- package/dist/react/core/Popover.js.map +1 -0
- package/dist/react/core/Select.d.ts +42 -0
- package/dist/react/core/Select.js +303 -0
- package/dist/react/core/Select.js.map +1 -0
- package/dist/react/core/SideNav.d.ts +103 -0
- package/dist/react/core/SideNav.js +551 -0
- package/dist/react/core/SideNav.js.map +1 -0
- package/dist/react/core/SidePanel.d.ts +33 -0
- package/dist/react/core/SidePanel.js +199 -0
- package/dist/react/core/SidePanel.js.map +1 -0
- package/dist/react/core/Tabs.d.ts +47 -0
- package/dist/react/core/Tabs.js +129 -0
- package/dist/react/core/Tabs.js.map +1 -0
- package/dist/react/core/Toast.d.ts +56 -0
- package/dist/react/core/Toast.js +229 -0
- package/dist/react/core/Toast.js.map +1 -0
- package/dist/react/core/Toggle.d.ts +22 -0
- package/dist/react/core/Toggle.js +151 -0
- package/dist/react/core/Toggle.js.map +1 -0
- package/dist/react/core/Tooltip.d.ts +19 -0
- package/dist/react/core/Tooltip.js +179 -0
- package/dist/react/core/Tooltip.js.map +1 -0
- package/dist/react/core/Typography.d.ts +127 -0
- package/dist/react/core/Typography.js +187 -0
- package/dist/react/core/Typography.js.map +1 -0
- package/dist/react/core/index.d.ts +108 -0
- package/dist/react/core/layout/Box.d.ts +77 -0
- package/dist/react/core/layout/Box.js +126 -0
- package/dist/react/core/layout/Box.js.map +1 -0
- package/dist/react/core/layout/Center.d.ts +20 -0
- package/dist/react/core/layout/Center.js +34 -0
- package/dist/react/core/layout/Center.js.map +1 -0
- package/dist/react/core/layout/Divider.d.ts +16 -0
- package/dist/react/core/layout/Divider.js +108 -0
- package/dist/react/core/layout/Divider.js.map +1 -0
- package/dist/react/core/layout/Flex.d.ts +30 -0
- package/dist/react/core/layout/Flex.js +128 -0
- package/dist/react/core/layout/Flex.js.map +1 -0
- package/dist/react/core/layout/Grid.d.ts +36 -0
- package/dist/react/core/layout/Grid.js +142 -0
- package/dist/react/core/layout/Grid.js.map +1 -0
- package/dist/react/core/layout/Spacer.d.ts +8 -0
- package/dist/react/core/layout/Spacer.js +31 -0
- package/dist/react/core/layout/Spacer.js.map +1 -0
- package/dist/react/core/layout/Stack.d.ts +54 -0
- package/dist/react/core/layout/Stack.js +74 -0
- package/dist/react/core/layout/Stack.js.map +1 -0
- package/dist/react/core/layout/index.d.ts +38 -0
- package/dist/react/core/layout/responsive.d.ts +23 -0
- package/dist/react/core/layout/responsive.js +26 -0
- package/dist/react/core/layout/responsive.js.map +1 -0
- package/dist/react/core/layout/useBreakpoint.d.ts +77 -0
- package/dist/react/core/layout/useBreakpoint.js +73 -0
- package/dist/react/core/layout/useBreakpoint.js.map +1 -0
- package/dist/react/core/propertyConfig.d.ts +443 -0
- package/dist/react/core/propertyConfig.js +399 -0
- package/dist/react/core/propertyConfig.js.map +1 -0
- package/dist/react/hooks/index.d.ts +21 -0
- package/dist/react/hooks/useAccessWindows.d.ts +66 -0
- package/dist/react/hooks/useCompactMode.d.ts +82 -0
- package/dist/react/hooks/useCompactMode.js +62 -0
- package/dist/react/hooks/useCompactMode.js.map +1 -0
- package/dist/react/hooks/useLiveSelection.d.ts +57 -0
- package/dist/react/hooks/useSimulationPlayback.d.ts +97 -0
- package/dist/react/hooks/useSimulationTime.d.ts +61 -0
- package/dist/react/hooks/useSpacecraftPosition.d.ts +50 -0
- package/dist/react/hooks/useSpacecraftPosition.js +89 -0
- package/dist/react/hooks/useSpacecraftPosition.js.map +1 -0
- package/dist/react/hooks/useTelemetry.d.ts +55 -0
- package/dist/react/hooks/useTelemetry.js +73 -0
- package/dist/react/hooks/useTelemetry.js.map +1 -0
- package/dist/react/hooks/useZendirSession.d.ts +109 -0
- package/dist/react/hooks/useZendirSession.js +148 -0
- package/dist/react/hooks/useZendirSession.js.map +1 -0
- package/dist/react/index.d.ts +74 -0
- package/dist/react/shared/ErrorBoundary.d.ts +63 -0
- package/dist/react/shared/ErrorBoundary.js +142 -0
- package/dist/react/shared/ErrorBoundary.js.map +1 -0
- package/dist/react/shared/Skeleton.d.ts +110 -0
- package/dist/react/shared/Skeleton.js +324 -0
- package/dist/react/shared/Skeleton.js.map +1 -0
- package/dist/react/shared/index.d.ts +12 -0
- package/dist/react/theme/ThemeProvider.d.ts +385 -0
- package/dist/react/theme/ThemeProvider.js +1096 -0
- package/dist/react/theme/ThemeProvider.js.map +1 -0
- package/dist/react/theme/astro-tokens.d.ts +153 -0
- package/dist/react/theme/cardAccent.d.ts +75 -0
- package/dist/react/theme/cardAccent.js +137 -0
- package/dist/react/theme/cardAccent.js.map +1 -0
- package/dist/react/theme/config.d.ts +39 -0
- package/dist/react/theme/index.d.ts +9 -0
- package/dist/react/types.d.ts +360 -0
- package/dist/react/types.js +58 -0
- package/dist/react/types.js.map +1 -0
- package/dist/react/utils/index.d.ts +247 -0
- package/dist/react/utils/index.js +423 -0
- package/dist/react/utils/index.js.map +1 -0
- package/dist/react/visualizations/EclipseTimerCard.d.ts +17 -0
- package/dist/react/visualizations/EclipseTimerCard.js +250 -0
- package/dist/react/visualizations/EclipseTimerCard.js.map +1 -0
- package/dist/react/visualizations/LinkBudgetCard.d.ts +50 -0
- package/dist/react/visualizations/LinkBudgetCard.js +444 -0
- package/dist/react/visualizations/LinkBudgetCard.js.map +1 -0
- package/dist/react/visualizations/NavBallCard.d.ts +17 -0
- package/dist/react/visualizations/NavBallCard.js +243 -0
- package/dist/react/visualizations/NavBallCard.js.map +1 -0
- package/dist/react/visualizations/PropulsionCard.d.ts +37 -0
- package/dist/react/visualizations/PropulsionCard.js +298 -0
- package/dist/react/visualizations/PropulsionCard.js.map +1 -0
- package/dist/react/visualizations/SensorFootprintCard.d.ts +33 -0
- package/dist/react/visualizations/SensorFootprintCard.js +326 -0
- package/dist/react/visualizations/SensorFootprintCard.js.map +1 -0
- package/dist/react/visualizations/ThermalHeatmapCard.d.ts +38 -0
- package/dist/react/visualizations/ThermalHeatmapCard.js +372 -0
- package/dist/react/visualizations/ThermalHeatmapCard.js.map +1 -0
- package/dist/react/visualizations/index.d.ts +17 -0
- package/dist/react.d.ts +1 -0
- package/dist/react.js +421 -0
- package/dist/react.js.map +1 -0
- package/dist/shaders/atmosphere.frag.js +5 -0
- package/dist/shaders/atmosphere.frag.js.map +1 -0
- package/dist/shaders/atmosphere.vert.js +5 -0
- package/dist/shaders/atmosphere.vert.js.map +1 -0
- package/dist/shaders/stars.frag.js +5 -0
- package/dist/shaders/stars.frag.js.map +1 -0
- package/dist/shaders/stars.vert.js +5 -0
- package/dist/shaders/stars.vert.js.map +1 -0
- package/dist/style.css +143 -0
- package/dist/tokens/index.d.ts +296 -0
- package/dist/tokens/index.js +263 -0
- package/dist/tokens/index.js.map +1 -0
- package/dist/tokens/tokens.css +155 -0
- package/dist/types/index.d.ts +23 -0
- package/dist/types.d.ts +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/package.json +220 -0
- package/sdk-stub.js +22 -0
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
|
+
import { memo } from "react";
|
|
3
|
+
import { AstroIcon } from "./AstroIcon.js";
|
|
4
|
+
import { useTheme } from "../theme/ThemeProvider.js";
|
|
5
|
+
const STATUS_BORDER_COLORS = {
|
|
6
|
+
off: "#3c3e42",
|
|
7
|
+
standby: "#285766",
|
|
8
|
+
normal: "#005a00",
|
|
9
|
+
caution: "#645600",
|
|
10
|
+
serious: "#664618",
|
|
11
|
+
critical: "#661102"
|
|
12
|
+
};
|
|
13
|
+
const StatusShape = ({ status, size, color, borderColor, glow = true }) => {
|
|
14
|
+
const hasBorder = !!borderColor;
|
|
15
|
+
const strokeWidth = hasBorder ? 1 : 0;
|
|
16
|
+
const glowFilter = glow && !hasBorder ? `drop-shadow(0 0 3px ${color})` : void 0;
|
|
17
|
+
const renderShape = () => {
|
|
18
|
+
switch (status) {
|
|
19
|
+
case "off":
|
|
20
|
+
return /* @__PURE__ */ jsx("circle", { cx: "6", cy: "6", r: hasBorder ? 2.5 : 3, fill: color, stroke: borderColor, strokeWidth });
|
|
21
|
+
case "standby":
|
|
22
|
+
return /* @__PURE__ */ jsx("circle", { cx: "6", cy: "6", r: "3.5", fill: "none", stroke: color, strokeWidth: "2" });
|
|
23
|
+
case "normal":
|
|
24
|
+
return /* @__PURE__ */ jsx(
|
|
25
|
+
"circle",
|
|
26
|
+
{
|
|
27
|
+
cx: "6",
|
|
28
|
+
cy: "6",
|
|
29
|
+
r: hasBorder ? 4.5 : 5,
|
|
30
|
+
fill: color,
|
|
31
|
+
stroke: borderColor,
|
|
32
|
+
strokeWidth
|
|
33
|
+
}
|
|
34
|
+
);
|
|
35
|
+
case "caution":
|
|
36
|
+
return /* @__PURE__ */ jsx(
|
|
37
|
+
"rect",
|
|
38
|
+
{
|
|
39
|
+
x: hasBorder ? 1.5 : 1,
|
|
40
|
+
y: hasBorder ? 1.5 : 1,
|
|
41
|
+
width: hasBorder ? 9 : 10,
|
|
42
|
+
height: hasBorder ? 9 : 10,
|
|
43
|
+
fill: color,
|
|
44
|
+
stroke: borderColor,
|
|
45
|
+
strokeWidth
|
|
46
|
+
}
|
|
47
|
+
);
|
|
48
|
+
case "serious":
|
|
49
|
+
return /* @__PURE__ */ jsx(
|
|
50
|
+
"polygon",
|
|
51
|
+
{
|
|
52
|
+
points: "6,1 11,6 6,11 1,6",
|
|
53
|
+
fill: color,
|
|
54
|
+
stroke: borderColor,
|
|
55
|
+
strokeWidth
|
|
56
|
+
}
|
|
57
|
+
);
|
|
58
|
+
case "critical":
|
|
59
|
+
return /* @__PURE__ */ jsx(
|
|
60
|
+
"polygon",
|
|
61
|
+
{
|
|
62
|
+
points: "6,11 1,2 11,2",
|
|
63
|
+
fill: color,
|
|
64
|
+
stroke: borderColor,
|
|
65
|
+
strokeWidth
|
|
66
|
+
}
|
|
67
|
+
);
|
|
68
|
+
default:
|
|
69
|
+
return null;
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
return /* @__PURE__ */ jsx(
|
|
73
|
+
"svg",
|
|
74
|
+
{
|
|
75
|
+
viewBox: "0 0 12 12",
|
|
76
|
+
width: size,
|
|
77
|
+
height: size,
|
|
78
|
+
style: { filter: glowFilter },
|
|
79
|
+
children: renderShape()
|
|
80
|
+
}
|
|
81
|
+
);
|
|
82
|
+
};
|
|
83
|
+
const HeaderIconWithStatus = memo(function HeaderIconWithStatus2({
|
|
84
|
+
icon,
|
|
85
|
+
size = 24,
|
|
86
|
+
status,
|
|
87
|
+
statusColor: statusColorProp,
|
|
88
|
+
isLightTheme: isLightThemeProp,
|
|
89
|
+
className,
|
|
90
|
+
style
|
|
91
|
+
}) {
|
|
92
|
+
const { tokens, mode } = useTheme();
|
|
93
|
+
const isLightTheme = isLightThemeProp ?? mode === "light";
|
|
94
|
+
const statusColor = statusColorProp ?? tokens.colors.status[status] ?? "#a4abb6";
|
|
95
|
+
const borderColor = isLightTheme ? STATUS_BORDER_COLORS[status] : void 0;
|
|
96
|
+
const badgeSize = Math.max(7, Math.min(12, Math.round(size * 0.38)));
|
|
97
|
+
const transformOffset = "translate(-35%, -35%)";
|
|
98
|
+
return /* @__PURE__ */ jsxs(
|
|
99
|
+
"div",
|
|
100
|
+
{
|
|
101
|
+
role: "img",
|
|
102
|
+
"aria-label": `${icon} — status: ${status}`,
|
|
103
|
+
className,
|
|
104
|
+
style: {
|
|
105
|
+
position: "relative",
|
|
106
|
+
display: "flex",
|
|
107
|
+
alignItems: "center",
|
|
108
|
+
justifyContent: "center",
|
|
109
|
+
width: size,
|
|
110
|
+
height: size,
|
|
111
|
+
flexShrink: 0,
|
|
112
|
+
color: statusColor,
|
|
113
|
+
...style
|
|
114
|
+
},
|
|
115
|
+
children: [
|
|
116
|
+
/* @__PURE__ */ jsx(
|
|
117
|
+
AstroIcon,
|
|
118
|
+
{
|
|
119
|
+
name: icon,
|
|
120
|
+
size,
|
|
121
|
+
color: statusColor,
|
|
122
|
+
"aria-hidden": "true"
|
|
123
|
+
}
|
|
124
|
+
),
|
|
125
|
+
/* @__PURE__ */ jsx(
|
|
126
|
+
"span",
|
|
127
|
+
{
|
|
128
|
+
"aria-hidden": "true",
|
|
129
|
+
style: {
|
|
130
|
+
position: "absolute",
|
|
131
|
+
top: 0,
|
|
132
|
+
left: 0,
|
|
133
|
+
transform: transformOffset,
|
|
134
|
+
display: "flex",
|
|
135
|
+
alignItems: "center",
|
|
136
|
+
justifyContent: "center"
|
|
137
|
+
},
|
|
138
|
+
children: /* @__PURE__ */ jsx(
|
|
139
|
+
StatusShape,
|
|
140
|
+
{
|
|
141
|
+
status,
|
|
142
|
+
size: badgeSize,
|
|
143
|
+
color: statusColor,
|
|
144
|
+
borderColor,
|
|
145
|
+
glow: !isLightTheme
|
|
146
|
+
}
|
|
147
|
+
)
|
|
148
|
+
}
|
|
149
|
+
)
|
|
150
|
+
]
|
|
151
|
+
}
|
|
152
|
+
);
|
|
153
|
+
});
|
|
154
|
+
export {
|
|
155
|
+
HeaderIconWithStatus
|
|
156
|
+
};
|
|
157
|
+
//# sourceMappingURL=HeaderIconWithStatus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HeaderIconWithStatus.js","sources":["../../../src/react/core/HeaderIconWithStatus.tsx"],"sourcesContent":["/**\n * @zendir/ui - HeaderIconWithStatus Component\n * \n * Shared component for card/chart header icons with status indicator.\n * Follows MonitoringIcon pattern for Astro UX compliance.\n * \n * Features:\n * - Status indicator positioned at top-left with transform offset\n * - Glow effect in dark mode for visibility\n * - Border in light mode for WCAG AA compliance\n * - Theme-aware colors\n * - Consistent sizing across all usages\n */\n\nimport React, { memo } from 'react';\nimport { useTheme } from '../theme';\nimport { type StatusLevel } from '../utils';\nimport { AstroIcon, type AstroIconName } from './AstroIcon';\n\n// =============================================================================\n// Astro UX Status Border Colors - Required for light theme WCAG compliance\n// https://www.astrouxds.com/patterns/status-system/\n// =============================================================================\n\nconst STATUS_BORDER_COLORS: Record<StatusLevel, string> = {\n off: '#3c3e42',\n standby: '#285766',\n normal: '#005a00',\n caution: '#645600',\n serious: '#664618',\n critical: '#661102',\n};\n\n// =============================================================================\n// Status Shape SVG - Matches MonitoringIcon exactly\n// =============================================================================\n\ninterface StatusShapeProps {\n status: StatusLevel;\n size: number;\n color: string;\n borderColor?: string;\n glow?: boolean;\n}\n\nconst StatusShape = ({ status, size, color, borderColor, glow = true }: StatusShapeProps) => {\n const hasBorder = !!borderColor;\n const strokeWidth = hasBorder ? 1 : 0;\n const glowFilter = glow && !hasBorder ? `drop-shadow(0 0 3px ${color})` : undefined;\n \n const renderShape = () => {\n switch (status) {\n case 'off':\n return <circle cx=\"6\" cy=\"6\" r={hasBorder ? 2.5 : 3} fill={color} stroke={borderColor} strokeWidth={strokeWidth} />;\n case 'standby':\n return <circle cx=\"6\" cy=\"6\" r=\"3.5\" fill=\"none\" stroke={color} strokeWidth=\"2\" />;\n case 'normal':\n return (\n <circle\n cx=\"6\"\n cy=\"6\"\n r={hasBorder ? 4.5 : 5}\n fill={color}\n stroke={borderColor}\n strokeWidth={strokeWidth}\n />\n );\n case 'caution':\n return (\n <rect\n x={hasBorder ? 1.5 : 1}\n y={hasBorder ? 1.5 : 1}\n width={hasBorder ? 9 : 10}\n height={hasBorder ? 9 : 10}\n fill={color}\n stroke={borderColor}\n strokeWidth={strokeWidth}\n />\n );\n case 'serious':\n return (\n <polygon\n points=\"6,1 11,6 6,11 1,6\"\n fill={color}\n stroke={borderColor}\n strokeWidth={strokeWidth}\n />\n );\n case 'critical':\n return (\n <polygon\n points=\"6,11 1,2 11,2\"\n fill={color}\n stroke={borderColor}\n strokeWidth={strokeWidth}\n />\n );\n default:\n return null;\n }\n };\n \n return (\n <svg \n viewBox=\"0 0 12 12\" \n width={size} \n height={size}\n style={{ filter: glowFilter }}\n >\n {renderShape()}\n </svg>\n );\n};\n\n// =============================================================================\n// HeaderIconWithStatus Component\n// =============================================================================\n\nexport interface HeaderIconWithStatusProps {\n /** Astro icon name */\n icon: AstroIconName | string;\n /** Icon size in pixels */\n size?: number;\n /** Status level */\n status: StatusLevel;\n /** Custom status color (optional - defaults to theme status color) */\n statusColor?: string;\n /** Override light theme detection */\n isLightTheme?: boolean;\n /** Additional CSS class */\n className?: string;\n /** Additional inline styles */\n style?: React.CSSProperties;\n}\n\n/**\n * HeaderIconWithStatus - Card/Chart header icon with status indicator\n * \n * Follows MonitoringIcon pattern exactly:\n * - Icon colored by status\n * - Status symbol at top-left with transform offset\n * - Glow in dark mode, border in light mode\n * \n * @example\n * ```tsx\n * <HeaderIconWithStatus\n * icon=\"satellite-transmit\"\n * status=\"normal\"\n * size={24}\n * />\n * ```\n */\nexport const HeaderIconWithStatus = memo(function HeaderIconWithStatus({\n icon,\n size = 24,\n status,\n statusColor: statusColorProp,\n isLightTheme: isLightThemeProp,\n className,\n style,\n}: HeaderIconWithStatusProps) {\n const { tokens, mode } = useTheme();\n \n // Theme detection\n const isLightTheme = isLightThemeProp ?? mode === 'light';\n \n // Status color from theme or prop\n const statusColor = statusColorProp ?? tokens.colors.status[status] ?? '#a4abb6';\n \n // Border color for light theme (WCAG compliance)\n const borderColor = isLightTheme ? STATUS_BORDER_COLORS[status] : undefined;\n \n // ═══════════════════════════════════════════════════════════════════════════\n // SIZING CONTROLS - Adjust these to match MonitoringIcon proportions\n // ═══════════════════════════════════════════════════════════════════════════\n // Badge size: ~35% of icon size (same ratio as MonitoringIcon's 9px badge on 24px icon)\n const badgeSize = Math.max(7, Math.min(12, Math.round(size * 0.38)));\n \n // Transform offset: translate(-35%, -35%) matches MonitoringIcon exactly\n const transformOffset = 'translate(-35%, -35%)';\n \n return (\n <div\n role=\"img\"\n aria-label={`${icon} — status: ${status}`}\n className={className}\n style={{\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: size,\n height: size,\n flexShrink: 0,\n color: statusColor,\n ...style,\n }}\n >\n {/* Icon - colored by status */}\n <AstroIcon \n name={icon as AstroIconName} \n size={size} \n color={statusColor}\n aria-hidden=\"true\"\n />\n \n {/* Status symbol - top-left corner with transform offset */}\n <span\n aria-hidden=\"true\"\n style={{\n position: 'absolute',\n top: 0,\n left: 0,\n transform: transformOffset,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n >\n <StatusShape \n status={status} \n size={badgeSize} \n color={statusColor} \n borderColor={borderColor}\n glow={!isLightTheme} \n />\n </span>\n </div>\n );\n});\n\nexport default HeaderIconWithStatus;\n"],"names":["HeaderIconWithStatus"],"mappings":"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"}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
|
|
3
|
+
export interface HexHighlight {
|
|
4
|
+
/** Start byte offset (inclusive) */
|
|
5
|
+
start: number;
|
|
6
|
+
/** End byte offset (inclusive) */
|
|
7
|
+
end: number;
|
|
8
|
+
/** Highlight color (CSS color) */
|
|
9
|
+
color: string;
|
|
10
|
+
/** Optional label for the highlight region */
|
|
11
|
+
label?: string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Named region for structural packet analysis (e.g., CCSDS Primary Header,
|
|
15
|
+
* Secondary Header, User Data). Regions provide persistent background color
|
|
16
|
+
* and a legend entry, unlike transient highlights.
|
|
17
|
+
*/
|
|
18
|
+
export interface HexRegion {
|
|
19
|
+
/** Start byte offset (inclusive) */
|
|
20
|
+
start: number;
|
|
21
|
+
/** End byte offset (exclusive) */
|
|
22
|
+
end: number;
|
|
23
|
+
/** Region display name (e.g., "Primary Header") */
|
|
24
|
+
label: string;
|
|
25
|
+
/** Background fill color (CSS rgba recommended) */
|
|
26
|
+
color: string;
|
|
27
|
+
/** Border/accent color for the region */
|
|
28
|
+
borderColor?: string;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* A decoded field within the packet payload for the fields table.
|
|
32
|
+
* Enables cross-highlighting: hover a field row → highlight its bytes,
|
|
33
|
+
* hover hex bytes → highlight the corresponding field row.
|
|
34
|
+
*/
|
|
35
|
+
export interface DecodedField {
|
|
36
|
+
/** Field name */
|
|
37
|
+
name: string;
|
|
38
|
+
/** Decoded value (displayed via toString) */
|
|
39
|
+
value: string | number | boolean | null;
|
|
40
|
+
/** Engineering units (e.g., "°C", "V", "rpm") */
|
|
41
|
+
unit?: string;
|
|
42
|
+
/** Byte offset within the packet where this field starts */
|
|
43
|
+
byteOffset?: number;
|
|
44
|
+
/** Size in bits */
|
|
45
|
+
sizeBits?: number;
|
|
46
|
+
/** Optional description / tooltip */
|
|
47
|
+
description?: string;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Packet header key-value pairs shown in a collapsible summary panel.
|
|
51
|
+
* Supports CCSDS-style primary + secondary header display.
|
|
52
|
+
*/
|
|
53
|
+
export interface PacketHeaderEntry {
|
|
54
|
+
/** Label (e.g., "APID", "Sequence Count", "Spacecraft ID") */
|
|
55
|
+
label: string;
|
|
56
|
+
/** Value */
|
|
57
|
+
value: string | number;
|
|
58
|
+
/** Render value in monospace font */
|
|
59
|
+
mono?: boolean;
|
|
60
|
+
}
|
|
61
|
+
/** Pre-defined region color palette for space packet headers */
|
|
62
|
+
export declare const REGION_COLORS: {
|
|
63
|
+
readonly primary: "rgba(96, 165, 250, 0.15)";
|
|
64
|
+
readonly secondary: "rgba(168, 85, 247, 0.15)";
|
|
65
|
+
readonly tertiary: "rgba(251, 191, 36, 0.15)";
|
|
66
|
+
readonly userData: "rgba(34, 197, 94, 0.15)";
|
|
67
|
+
readonly error: "rgba(255, 56, 56, 0.15)";
|
|
68
|
+
};
|
|
69
|
+
export declare const REGION_BORDER_COLORS: {
|
|
70
|
+
readonly primary: "rgba(96, 165, 250, 0.5)";
|
|
71
|
+
readonly secondary: "rgba(168, 85, 247, 0.5)";
|
|
72
|
+
readonly tertiary: "rgba(251, 191, 36, 0.5)";
|
|
73
|
+
readonly userData: "rgba(34, 197, 94, 0.5)";
|
|
74
|
+
readonly error: "rgba(255, 56, 56, 0.5)";
|
|
75
|
+
};
|
|
76
|
+
export type ByteGrouping = 1 | 2 | 4 | 8;
|
|
77
|
+
export type OffsetBase = 'hex' | 'decimal';
|
|
78
|
+
export type Endianness = 'big' | 'little';
|
|
79
|
+
export interface HexViewerProps {
|
|
80
|
+
/** Binary data to display */
|
|
81
|
+
data: Uint8Array | number[];
|
|
82
|
+
/** Bytes per row (default: 16) */
|
|
83
|
+
bytesPerRow?: 8 | 16 | 32;
|
|
84
|
+
/** Byte grouping for hex display (default: 1) */
|
|
85
|
+
byteGrouping?: ByteGrouping;
|
|
86
|
+
/** Offset display base (default: 'hex') */
|
|
87
|
+
offsetBase?: OffsetBase;
|
|
88
|
+
/** Highlighted byte regions (transient, e.g., search results or field hover) */
|
|
89
|
+
highlights?: HexHighlight[];
|
|
90
|
+
/** Named structural regions (persistent background, e.g., Primary/Secondary Header) */
|
|
91
|
+
regions?: HexRegion[];
|
|
92
|
+
/** Decoded fields for the fields table (cross-highlights with hex bytes) */
|
|
93
|
+
decodedFields?: DecodedField[];
|
|
94
|
+
/** Packet header entries for the summary panel */
|
|
95
|
+
packetHeaders?: PacketHeaderEntry[];
|
|
96
|
+
/** External hover highlight range (for cross-component linking) */
|
|
97
|
+
externalHighlight?: {
|
|
98
|
+
start: number;
|
|
99
|
+
end: number;
|
|
100
|
+
} | null;
|
|
101
|
+
/** Whether to show the ASCII column (default: true) */
|
|
102
|
+
showAscii?: boolean;
|
|
103
|
+
/** Whether to show the offset column (default: true) */
|
|
104
|
+
showOffset?: boolean;
|
|
105
|
+
/** Whether to show the status/info bar (default: true) */
|
|
106
|
+
showStatusBar?: boolean;
|
|
107
|
+
/** Whether to show the search bar (default: true) */
|
|
108
|
+
showSearch?: boolean;
|
|
109
|
+
/** Whether to show the toolbar (default: true) */
|
|
110
|
+
showToolbar?: boolean;
|
|
111
|
+
/** Whether to show the decoded fields table (default: true if decodedFields provided) */
|
|
112
|
+
showFieldsTable?: boolean;
|
|
113
|
+
/** Whether to show the packet header summary (default: true if packetHeaders provided) */
|
|
114
|
+
showHeaderSummary?: boolean;
|
|
115
|
+
/**
|
|
116
|
+
* Height of the viewer (default: 400).
|
|
117
|
+
* When constrained, HexViewer enables outer scroll fallback so expanded
|
|
118
|
+
* panels (headers/decoded fields) never trap lower sections.
|
|
119
|
+
*/
|
|
120
|
+
height?: number | string;
|
|
121
|
+
/** Title for the viewer */
|
|
122
|
+
title?: string;
|
|
123
|
+
/** Whether data is streaming (auto-scroll to bottom) */
|
|
124
|
+
streaming?: boolean;
|
|
125
|
+
/** Endianness for multi-byte interpretation (default: 'big') */
|
|
126
|
+
endianness?: Endianness;
|
|
127
|
+
/** Called when byte selection changes */
|
|
128
|
+
onSelectionChange?: (start: number, end: number) => void;
|
|
129
|
+
/** Called when a byte is clicked */
|
|
130
|
+
onByteClick?: (offset: number, value: number) => void;
|
|
131
|
+
/** Called when hovering a byte (for external cross-highlighting) */
|
|
132
|
+
onByteHover?: (byteIndex: number) => void;
|
|
133
|
+
/** Called when mouse leaves hex area */
|
|
134
|
+
onByteLeave?: () => void;
|
|
135
|
+
/** CSS class name */
|
|
136
|
+
className?: string;
|
|
137
|
+
/** Show outer container border (default: true). Set false when embedded inside a Container/card. */
|
|
138
|
+
bordered?: boolean;
|
|
139
|
+
/** Custom style overrides for the outer container */
|
|
140
|
+
style?: React.CSSProperties;
|
|
141
|
+
}
|
|
142
|
+
export declare function HexViewer({ data: rawData, bytesPerRow, byteGrouping, offsetBase, highlights, regions, decodedFields, packetHeaders, externalHighlight, showAscii, showOffset, showStatusBar, showSearch, showToolbar, showFieldsTable, showHeaderSummary, height, title, streaming, endianness, onSelectionChange, onByteClick, onByteHover, onByteLeave, className, bordered, style: styleProp, }: HexViewerProps): React.ReactElement;
|
|
143
|
+
export default HexViewer;
|