@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,42 @@
|
|
|
1
|
+
import { default as React, ReactNode } from 'react';
|
|
2
|
+
|
|
3
|
+
export interface GlobalStatusBarProps {
|
|
4
|
+
/** Application name */
|
|
5
|
+
appName?: string;
|
|
6
|
+
/** Application domain (organization/mission) */
|
|
7
|
+
appDomain?: string;
|
|
8
|
+
/** Application version */
|
|
9
|
+
appVersion?: string;
|
|
10
|
+
/** Username to display */
|
|
11
|
+
username?: string;
|
|
12
|
+
/** Left slot content (app switcher, etc.) */
|
|
13
|
+
leftSlot?: ReactNode;
|
|
14
|
+
/** Center slot content (typically clock) */
|
|
15
|
+
centerSlot?: ReactNode;
|
|
16
|
+
/** Right slot content (monitoring icons, controls) */
|
|
17
|
+
rightSlot?: ReactNode;
|
|
18
|
+
/** Additional children */
|
|
19
|
+
children?: ReactNode;
|
|
20
|
+
/** Custom className */
|
|
21
|
+
className?: string;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* GlobalStatusBar - Pure React global status bar
|
|
25
|
+
*
|
|
26
|
+
* Primary header component for space applications. Includes slots for:
|
|
27
|
+
* - App switcher (left)
|
|
28
|
+
* - Global clock (center)
|
|
29
|
+
* - Monitoring icons (right)
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* ```tsx
|
|
33
|
+
* <GlobalStatusBar
|
|
34
|
+
* appName="Mission Control"
|
|
35
|
+
* appDomain="Zendir"
|
|
36
|
+
* username="Demo User"
|
|
37
|
+
* centerSlot={<MissionClock />}
|
|
38
|
+
* rightSlot={<MonitoringIcons />}
|
|
39
|
+
* />
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
42
|
+
export declare const GlobalStatusBar: React.NamedExoticComponent<GlobalStatusBarProps>;
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
|
+
import { memo } from "react";
|
|
3
|
+
import { safeAccentText, classNames } from "../utils/index.js";
|
|
4
|
+
import { useTheme } from "../theme/ThemeProvider.js";
|
|
5
|
+
const GlobalStatusBar = memo(function GlobalStatusBar2({
|
|
6
|
+
appName = "Zendir",
|
|
7
|
+
appDomain,
|
|
8
|
+
appVersion,
|
|
9
|
+
username,
|
|
10
|
+
leftSlot,
|
|
11
|
+
centerSlot,
|
|
12
|
+
rightSlot,
|
|
13
|
+
children,
|
|
14
|
+
className = ""
|
|
15
|
+
}) {
|
|
16
|
+
const { tokens, theme } = useTheme();
|
|
17
|
+
const isTransparentTheme = theme === "transparent" || theme === "transparent-bold" || theme === "transparent-minimal";
|
|
18
|
+
return /* @__PURE__ */ jsxs(
|
|
19
|
+
"header",
|
|
20
|
+
{
|
|
21
|
+
className: classNames("zendir-global-status-bar", className),
|
|
22
|
+
role: "banner",
|
|
23
|
+
style: {
|
|
24
|
+
display: "flex",
|
|
25
|
+
alignItems: "center",
|
|
26
|
+
justifyContent: "space-between",
|
|
27
|
+
height: 56,
|
|
28
|
+
padding: `0 ${tokens.spacing.lg}`,
|
|
29
|
+
backgroundColor: isTransparentTheme ? "transparent" : tokens.colors.background.surface,
|
|
30
|
+
...isTransparentTheme && { backdropFilter: "blur(12px)", WebkitBackdropFilter: "blur(12px)" },
|
|
31
|
+
borderBottom: `1px solid ${tokens.colors.border.muted}`,
|
|
32
|
+
color: tokens.colors.text.primary,
|
|
33
|
+
fontFamily: tokens.typography.fontFamily.primary
|
|
34
|
+
},
|
|
35
|
+
children: [
|
|
36
|
+
/* @__PURE__ */ jsxs(
|
|
37
|
+
"div",
|
|
38
|
+
{
|
|
39
|
+
style: {
|
|
40
|
+
display: "flex",
|
|
41
|
+
alignItems: "center",
|
|
42
|
+
gap: tokens.spacing.lg,
|
|
43
|
+
flex: "1 1 0"
|
|
44
|
+
},
|
|
45
|
+
children: [
|
|
46
|
+
leftSlot,
|
|
47
|
+
/* @__PURE__ */ jsxs("div", { style: { display: "flex", alignItems: "baseline", gap: tokens.spacing.sm }, children: [
|
|
48
|
+
appDomain && /* @__PURE__ */ jsx(
|
|
49
|
+
"span",
|
|
50
|
+
{
|
|
51
|
+
style: {
|
|
52
|
+
fontSize: tokens.typography.fontSize.sm,
|
|
53
|
+
fontWeight: tokens.typography.fontWeight.normal,
|
|
54
|
+
color: tokens.colors.text.tertiary,
|
|
55
|
+
textTransform: "uppercase",
|
|
56
|
+
letterSpacing: tokens.typography.letterSpacing.wide
|
|
57
|
+
},
|
|
58
|
+
children: appDomain
|
|
59
|
+
}
|
|
60
|
+
),
|
|
61
|
+
/* @__PURE__ */ jsx(
|
|
62
|
+
"span",
|
|
63
|
+
{
|
|
64
|
+
style: {
|
|
65
|
+
fontSize: tokens.typography.fontSize.xl,
|
|
66
|
+
fontWeight: tokens.typography.fontWeight.semibold,
|
|
67
|
+
letterSpacing: tokens.typography.letterSpacing.tight,
|
|
68
|
+
color: tokens.colors.text.primary
|
|
69
|
+
},
|
|
70
|
+
children: appName
|
|
71
|
+
}
|
|
72
|
+
),
|
|
73
|
+
appVersion && /* @__PURE__ */ jsxs(
|
|
74
|
+
"span",
|
|
75
|
+
{
|
|
76
|
+
style: {
|
|
77
|
+
fontSize: tokens.typography.fontSize.xs,
|
|
78
|
+
fontWeight: tokens.typography.fontWeight.normal,
|
|
79
|
+
color: tokens.colors.text.tertiary
|
|
80
|
+
},
|
|
81
|
+
children: [
|
|
82
|
+
"v",
|
|
83
|
+
appVersion
|
|
84
|
+
]
|
|
85
|
+
}
|
|
86
|
+
)
|
|
87
|
+
] })
|
|
88
|
+
]
|
|
89
|
+
}
|
|
90
|
+
),
|
|
91
|
+
/* @__PURE__ */ jsxs(
|
|
92
|
+
"div",
|
|
93
|
+
{
|
|
94
|
+
style: {
|
|
95
|
+
display: "flex",
|
|
96
|
+
alignItems: "center",
|
|
97
|
+
justifyContent: "center",
|
|
98
|
+
flex: "0 0 auto"
|
|
99
|
+
},
|
|
100
|
+
children: [
|
|
101
|
+
centerSlot,
|
|
102
|
+
children
|
|
103
|
+
]
|
|
104
|
+
}
|
|
105
|
+
),
|
|
106
|
+
/* @__PURE__ */ jsxs(
|
|
107
|
+
"div",
|
|
108
|
+
{
|
|
109
|
+
style: {
|
|
110
|
+
display: "flex",
|
|
111
|
+
alignItems: "center",
|
|
112
|
+
justifyContent: "flex-end",
|
|
113
|
+
gap: tokens.spacing.lg,
|
|
114
|
+
flex: "1 1 0"
|
|
115
|
+
},
|
|
116
|
+
children: [
|
|
117
|
+
rightSlot,
|
|
118
|
+
username && /* @__PURE__ */ jsxs(
|
|
119
|
+
"div",
|
|
120
|
+
{
|
|
121
|
+
style: {
|
|
122
|
+
display: "flex",
|
|
123
|
+
alignItems: "center",
|
|
124
|
+
gap: tokens.spacing.sm,
|
|
125
|
+
paddingLeft: tokens.spacing.lg,
|
|
126
|
+
borderLeft: `1px solid ${tokens.colors.border.muted}`
|
|
127
|
+
},
|
|
128
|
+
children: [
|
|
129
|
+
/* @__PURE__ */ jsx(
|
|
130
|
+
"div",
|
|
131
|
+
{
|
|
132
|
+
style: {
|
|
133
|
+
width: 28,
|
|
134
|
+
height: 28,
|
|
135
|
+
borderRadius: tokens.borderRadius.full,
|
|
136
|
+
backgroundColor: `${tokens.colors.accent.primary}20`,
|
|
137
|
+
display: "flex",
|
|
138
|
+
alignItems: "center",
|
|
139
|
+
justifyContent: "center",
|
|
140
|
+
fontSize: tokens.typography.fontSize.sm,
|
|
141
|
+
fontWeight: tokens.typography.fontWeight.semibold,
|
|
142
|
+
color: safeAccentText(tokens.colors.accent.primary)
|
|
143
|
+
},
|
|
144
|
+
children: username.charAt(0).toUpperCase()
|
|
145
|
+
}
|
|
146
|
+
),
|
|
147
|
+
/* @__PURE__ */ jsx("span", { style: {
|
|
148
|
+
fontSize: tokens.typography.fontSize.sm,
|
|
149
|
+
fontWeight: tokens.typography.fontWeight.medium,
|
|
150
|
+
color: tokens.colors.text.primary
|
|
151
|
+
}, children: username })
|
|
152
|
+
]
|
|
153
|
+
}
|
|
154
|
+
)
|
|
155
|
+
]
|
|
156
|
+
}
|
|
157
|
+
)
|
|
158
|
+
]
|
|
159
|
+
}
|
|
160
|
+
);
|
|
161
|
+
});
|
|
162
|
+
export {
|
|
163
|
+
GlobalStatusBar
|
|
164
|
+
};
|
|
165
|
+
//# sourceMappingURL=GlobalStatusBar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GlobalStatusBar.js","sources":["../../../src/react/astro/GlobalStatusBar.tsx"],"sourcesContent":["/**\n * @zendir/ui - GlobalStatusBar Component (Pure React)\n * \n * Primary header component for space applications following Astro UX patterns.\n * \n * Features:\n * - Theme-integrated via useTheme()\n * - App identity (name, domain, version)\n * - Clock slot\n * - Monitoring icons slot\n * - Username display\n * - Responsive design\n */\n\nimport React, { memo, ReactNode } from 'react';\nimport { useTheme } from '../theme';\nimport { classNames, safeAccentText } from '../utils';\n\nexport interface GlobalStatusBarProps {\n /** Application name */\n appName?: string;\n /** Application domain (organization/mission) */\n appDomain?: string;\n /** Application version */\n appVersion?: string;\n /** Username to display */\n username?: string;\n /** Left slot content (app switcher, etc.) */\n leftSlot?: ReactNode;\n /** Center slot content (typically clock) */\n centerSlot?: ReactNode;\n /** Right slot content (monitoring icons, controls) */\n rightSlot?: ReactNode;\n /** Additional children */\n children?: ReactNode;\n /** Custom className */\n className?: string;\n}\n\n/**\n * GlobalStatusBar - Pure React global status bar\n * \n * Primary header component for space applications. Includes slots for:\n * - App switcher (left)\n * - Global clock (center)\n * - Monitoring icons (right)\n * \n * @example\n * ```tsx\n * <GlobalStatusBar\n * appName=\"Mission Control\"\n * appDomain=\"Zendir\"\n * username=\"Demo User\"\n * centerSlot={<MissionClock />}\n * rightSlot={<MonitoringIcons />}\n * />\n * ```\n */\nexport const GlobalStatusBar = memo(function GlobalStatusBar({\n appName = 'Zendir',\n appDomain,\n appVersion,\n username,\n leftSlot,\n centerSlot,\n rightSlot,\n children,\n className = '',\n}: GlobalStatusBarProps): React.ReactElement {\n const { tokens, theme } = useTheme();\n const isTransparentTheme = theme === 'transparent' || theme === 'transparent-bold' || theme === 'transparent-minimal';\n return (\n <header\n className={classNames('zendir-global-status-bar', className)}\n role=\"banner\"\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n height: 56,\n padding: `0 ${tokens.spacing.lg}`,\n backgroundColor: isTransparentTheme ? 'transparent' : tokens.colors.background.surface,\n ...(isTransparentTheme && { backdropFilter: 'blur(12px)', WebkitBackdropFilter: 'blur(12px)' as const }),\n borderBottom: `1px solid ${tokens.colors.border.muted}`,\n color: tokens.colors.text.primary,\n fontFamily: tokens.typography.fontFamily.primary,\n }}\n >\n {/* Left section: App identity */}\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n gap: tokens.spacing.lg,\n flex: '1 1 0',\n }}\n >\n {leftSlot}\n \n <div style={{ display: 'flex', alignItems: 'baseline', gap: tokens.spacing.sm }}>\n {appDomain && (\n <span\n style={{\n fontSize: tokens.typography.fontSize.sm,\n fontWeight: tokens.typography.fontWeight.normal,\n color: tokens.colors.text.tertiary,\n textTransform: 'uppercase',\n letterSpacing: tokens.typography.letterSpacing.wide,\n }}\n >\n {appDomain}\n </span>\n )}\n <span\n style={{\n fontSize: tokens.typography.fontSize.xl,\n fontWeight: tokens.typography.fontWeight.semibold,\n letterSpacing: tokens.typography.letterSpacing.tight,\n color: tokens.colors.text.primary,\n }}\n >\n {appName}\n </span>\n {appVersion && (\n <span\n style={{\n fontSize: tokens.typography.fontSize.xs,\n fontWeight: tokens.typography.fontWeight.normal,\n color: tokens.colors.text.tertiary,\n }}\n >\n v{appVersion}\n </span>\n )}\n </div>\n </div>\n\n {/* Center section: Clock */}\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flex: '0 0 auto',\n }}\n >\n {centerSlot}\n {children}\n </div>\n\n {/* Right section: Monitoring + User */}\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-end',\n gap: tokens.spacing.lg,\n flex: '1 1 0',\n }}\n >\n {rightSlot}\n \n {username && (\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n gap: tokens.spacing.sm,\n paddingLeft: tokens.spacing.lg,\n borderLeft: `1px solid ${tokens.colors.border.muted}`,\n }}\n >\n {/* User avatar */}\n <div\n style={{\n width: 28,\n height: 28,\n borderRadius: tokens.borderRadius.full,\n backgroundColor: `${tokens.colors.accent.primary}20`,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n fontSize: tokens.typography.fontSize.sm,\n fontWeight: tokens.typography.fontWeight.semibold,\n color: safeAccentText(tokens.colors.accent.primary),\n }}\n >\n {username.charAt(0).toUpperCase()}\n </div>\n <span style={{ \n fontSize: tokens.typography.fontSize.sm, \n fontWeight: tokens.typography.fontWeight.medium,\n color: tokens.colors.text.primary,\n }}>\n {username}\n </span>\n </div>\n )}\n </div>\n </header>\n );\n});\n"],"names":["GlobalStatusBar"],"mappings":"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"}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
|
|
3
|
+
export type ClockFormat = '12h' | '24h' | 'iso' | 'met';
|
|
4
|
+
export type DateFormat = 'iso' | 'julian' | 'gregorian' | 'none';
|
|
5
|
+
export type TimeSource = 'realtime' | 'simulation' | 'custom';
|
|
6
|
+
/**
|
|
7
|
+
* Timer configuration for AOS/LOS countdown/up timers
|
|
8
|
+
*/
|
|
9
|
+
export interface TimerConfig {
|
|
10
|
+
/** Timer label (e.g., "AOS", "LOS", "MET") */
|
|
11
|
+
label: string;
|
|
12
|
+
/** Target timestamp (for countdown) or start timestamp (for countup) */
|
|
13
|
+
timestamp: Date;
|
|
14
|
+
/** Timer direction: 'countdown' counts to target, 'countup' counts from start */
|
|
15
|
+
direction: 'countdown' | 'countup';
|
|
16
|
+
/** Optional status color */
|
|
17
|
+
status?: 'normal' | 'caution' | 'critical' | 'standby';
|
|
18
|
+
/** Show days in timer format */
|
|
19
|
+
showDays?: boolean;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Simulation time configuration
|
|
23
|
+
*/
|
|
24
|
+
export interface SimulationTimeConfig {
|
|
25
|
+
/** Simulation epoch (t=0) as Date or ISO string */
|
|
26
|
+
epoch: Date | string;
|
|
27
|
+
/** Current simulation time offset in seconds from epoch */
|
|
28
|
+
elapsedSeconds?: number;
|
|
29
|
+
/** Time scale factor (1 = realtime, 2 = 2x speed, etc.) */
|
|
30
|
+
timeScale?: number;
|
|
31
|
+
/** Whether simulation is running */
|
|
32
|
+
isRunning?: boolean;
|
|
33
|
+
/** Callback to get current simulation time */
|
|
34
|
+
getCurrentTime?: () => Date;
|
|
35
|
+
}
|
|
36
|
+
export interface MissionClockProps {
|
|
37
|
+
/** Clock format */
|
|
38
|
+
format?: ClockFormat;
|
|
39
|
+
/** Timezone label to display */
|
|
40
|
+
timezone?: string;
|
|
41
|
+
/** Hide seconds */
|
|
42
|
+
hideSeconds?: boolean;
|
|
43
|
+
/** Small size variant */
|
|
44
|
+
small?: boolean;
|
|
45
|
+
/** Show date */
|
|
46
|
+
showDate?: boolean;
|
|
47
|
+
/** Date format (iso, julian, gregorian) */
|
|
48
|
+
dateFormat?: DateFormat;
|
|
49
|
+
/** Custom className */
|
|
50
|
+
className?: string;
|
|
51
|
+
/** Click handler */
|
|
52
|
+
onClick?: () => void;
|
|
53
|
+
/** AOS timer - countdown/up to Acquisition of Signal */
|
|
54
|
+
aosTimer?: TimerConfig | Date;
|
|
55
|
+
/** LOS timer - countdown/up to Loss of Signal */
|
|
56
|
+
losTimer?: TimerConfig | Date;
|
|
57
|
+
/** Additional custom timers */
|
|
58
|
+
customTimers?: TimerConfig[];
|
|
59
|
+
/** Time source: realtime, simulation, or custom */
|
|
60
|
+
timeSource?: TimeSource;
|
|
61
|
+
/** Simulation time configuration (for timeSource='simulation') */
|
|
62
|
+
simulationConfig?: SimulationTimeConfig;
|
|
63
|
+
/** Custom time provider (for timeSource='custom') */
|
|
64
|
+
customTime?: Date | (() => Date);
|
|
65
|
+
/** Mission start time for MET display */
|
|
66
|
+
missionStart?: Date | string;
|
|
67
|
+
/** Show MET (Mission Elapsed Time) instead of wall clock */
|
|
68
|
+
showMET?: boolean;
|
|
69
|
+
/** Update interval in milliseconds (default: 1000) */
|
|
70
|
+
updateInterval?: number;
|
|
71
|
+
/** Compact mode - single line display */
|
|
72
|
+
compact?: boolean;
|
|
73
|
+
/** Show milliseconds */
|
|
74
|
+
showMilliseconds?: boolean;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* MissionClock - Advanced mission time display for space operations
|
|
78
|
+
*
|
|
79
|
+
* Supports real-time clock, simulation time, MET (Mission Elapsed Time),
|
|
80
|
+
* and AOS/LOS timers following Astro UX Design System patterns.
|
|
81
|
+
*
|
|
82
|
+
* @example
|
|
83
|
+
* ```tsx
|
|
84
|
+
* // Basic clock
|
|
85
|
+
* <MissionClock format="24h" timezone="UTC" />
|
|
86
|
+
*
|
|
87
|
+
* // With AOS/LOS timers
|
|
88
|
+
* <MissionClock
|
|
89
|
+
* format="24h"
|
|
90
|
+
* aosTimer={{ label: 'AOS', timestamp: new Date('2024-03-15T10:30:00Z'), direction: 'countdown' }}
|
|
91
|
+
* losTimer={{ label: 'LOS', timestamp: new Date('2024-03-15T10:45:00Z'), direction: 'countdown' }}
|
|
92
|
+
* />
|
|
93
|
+
*
|
|
94
|
+
* // Simulation time
|
|
95
|
+
* <MissionClock
|
|
96
|
+
* timeSource="simulation"
|
|
97
|
+
* simulationConfig={{
|
|
98
|
+
* epoch: new Date('2026-01-01T00:00:00Z'),
|
|
99
|
+
* elapsedSeconds: 3600,
|
|
100
|
+
* timeScale: 1,
|
|
101
|
+
* }}
|
|
102
|
+
* />
|
|
103
|
+
*
|
|
104
|
+
* // Mission Elapsed Time
|
|
105
|
+
* <MissionClock
|
|
106
|
+
* showMET
|
|
107
|
+
* missionStart={new Date('2026-01-01T00:00:00Z')}
|
|
108
|
+
* />
|
|
109
|
+
*
|
|
110
|
+
* // Julian day format
|
|
111
|
+
* <MissionClock showDate dateFormat="julian" />
|
|
112
|
+
* ```
|
|
113
|
+
*/
|
|
114
|
+
export declare const MissionClock: React.NamedExoticComponent<MissionClockProps>;
|
|
115
|
+
/**
|
|
116
|
+
* SimpleTimer - Standalone countdown/up timer
|
|
117
|
+
*/
|
|
118
|
+
export interface SimpleTimerProps {
|
|
119
|
+
/** Timer label */
|
|
120
|
+
label: string;
|
|
121
|
+
/** Target/start timestamp */
|
|
122
|
+
timestamp: Date;
|
|
123
|
+
/** Timer direction */
|
|
124
|
+
direction?: 'countdown' | 'countup';
|
|
125
|
+
/** Status color */
|
|
126
|
+
status?: 'normal' | 'caution' | 'critical' | 'standby';
|
|
127
|
+
/** Show days */
|
|
128
|
+
showDays?: boolean;
|
|
129
|
+
/** Custom className */
|
|
130
|
+
className?: string;
|
|
131
|
+
}
|
|
132
|
+
export declare const SimpleTimer: React.NamedExoticComponent<SimpleTimerProps>;
|
|
133
|
+
/**
|
|
134
|
+
* MissionElapsedTime - Dedicated MET display
|
|
135
|
+
*/
|
|
136
|
+
export interface MissionElapsedTimeProps {
|
|
137
|
+
/** Mission launch/start time */
|
|
138
|
+
launchTime: Date | string;
|
|
139
|
+
/** Show milliseconds */
|
|
140
|
+
showMilliseconds?: boolean;
|
|
141
|
+
/** Custom className */
|
|
142
|
+
className?: string;
|
|
143
|
+
/** Small variant */
|
|
144
|
+
small?: boolean;
|
|
145
|
+
}
|
|
146
|
+
export declare const MissionElapsedTime: React.NamedExoticComponent<MissionElapsedTimeProps>;
|
|
147
|
+
/**
|
|
148
|
+
* SimulationClock - Clock driven by simulation time
|
|
149
|
+
*/
|
|
150
|
+
export interface SimulationClockProps {
|
|
151
|
+
/** Simulation epoch */
|
|
152
|
+
epoch: Date | string;
|
|
153
|
+
/** Elapsed seconds from epoch */
|
|
154
|
+
elapsedSeconds?: number;
|
|
155
|
+
/** Time scale factor */
|
|
156
|
+
timeScale?: number;
|
|
157
|
+
/** Whether simulation is running */
|
|
158
|
+
isRunning?: boolean;
|
|
159
|
+
/** Show date */
|
|
160
|
+
showDate?: boolean;
|
|
161
|
+
/** Date format */
|
|
162
|
+
dateFormat?: DateFormat;
|
|
163
|
+
/** Custom className */
|
|
164
|
+
className?: string;
|
|
165
|
+
/** Small variant */
|
|
166
|
+
small?: boolean;
|
|
167
|
+
}
|
|
168
|
+
export declare const SimulationClock: React.NamedExoticComponent<SimulationClockProps>;
|
|
169
|
+
export default MissionClock;
|