@zendir/ui 0.4.1 → 0.6.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 +34 -0
- package/README.md +640 -631
- package/dist/_virtual/_rolldown/runtime.js +13 -0
- package/dist/index.js +17 -221
- package/dist/react/3d/CesiumCaptureSource.d.ts +0 -1
- package/dist/react/3d/CesiumCaptureSource.js +364 -283
- package/dist/react/3d/CesiumCaptureSource.js.map +1 -1
- package/dist/react/3d/ZenSpace3D.d.ts +2 -3
- package/dist/react/3d/ZenSpace3D.js +1681 -1237
- package/dist/react/3d/ZenSpace3D.js.map +1 -1
- package/dist/react/3d/ZenSpace3DCesium.d.ts +0 -1
- package/dist/react/3d/ZenSpace3DCesium.js +513 -560
- package/dist/react/3d/ZenSpace3DCesium.js.map +1 -1
- package/dist/react/3d/ZenSpace3DShaders.js +61 -66
- package/dist/react/3d/ZenSpace3DShaders.js.map +1 -1
- package/dist/react/3d/ZenSpace3DTypes.d.ts +19 -20
- package/dist/react/3d/ZenSpace3DUtils.d.ts +0 -1
- package/dist/react/3d/ZenSpace3DUtils.js +37 -24
- package/dist/react/3d/ZenSpace3DUtils.js.map +1 -1
- package/dist/react/3d/capturePngAnalysis.js +42 -36
- package/dist/react/3d/capturePngAnalysis.js.map +1 -1
- package/dist/react/3d/index.d.ts +3 -3
- package/dist/react/3d/index.js +5 -53
- package/dist/react/3d/threeLoader.d.ts +1 -1
- package/dist/react/3d/threeLoader.js +23 -18
- package/dist/react/3d/threeLoader.js.map +1 -1
- package/dist/react/astro/ClassificationBanner.d.ts +2 -3
- package/dist/react/astro/ClassificationBanner.js +95 -79
- package/dist/react/astro/ClassificationBanner.js.map +1 -1
- package/dist/react/astro/GlobalStatusBar.d.ts +0 -1
- package/dist/react/astro/GlobalStatusBar.js +157 -163
- package/dist/react/astro/GlobalStatusBar.js.map +1 -1
- package/dist/react/astro/MissionClock.d.ts +7 -8
- package/dist/react/astro/MissionClock.js +377 -400
- package/dist/react/astro/MissionClock.js.map +1 -1
- package/dist/react/astro/MonitoringIcon.d.ts +1 -2
- package/dist/react/astro/MonitoringIcon.js +422 -358
- package/dist/react/astro/MonitoringIcon.js.map +1 -1
- package/dist/react/astro/Notification.d.ts +1 -2
- package/dist/react/astro/Notification.js +229 -126
- package/dist/react/astro/Notification.js.map +1 -1
- package/dist/react/astro/Progress.d.ts +0 -1
- package/dist/react/astro/Progress.js +199 -141
- package/dist/react/astro/Progress.js.map +1 -1
- package/dist/react/astro/SimulationControls.d.ts +3 -4
- package/dist/react/astro/SimulationControls.js +596 -650
- package/dist/react/astro/SimulationControls.js.map +1 -1
- package/dist/react/astro/StatusIndicator.d.ts +0 -1
- package/dist/react/astro/StatusIndicator.js +236 -170
- package/dist/react/astro/StatusIndicator.js.map +1 -1
- package/dist/react/astro/UnifiedTimeline.d.ts +9 -10
- package/dist/react/astro/UnifiedTimeline.js +2345 -2392
- package/dist/react/astro/UnifiedTimeline.js.map +1 -1
- package/dist/react/astro/index.d.ts +5 -5
- package/dist/react/astro/index.js +1 -25
- package/dist/react/cards/AccessCard.d.ts +0 -1
- package/dist/react/cards/AccessCard.js +471 -405
- package/dist/react/cards/AccessCard.js.map +1 -1
- package/dist/react/cards/OrbitCard.d.ts +0 -1
- package/dist/react/cards/OrbitCard.js +487 -364
- package/dist/react/cards/OrbitCard.js.map +1 -1
- package/dist/react/cards/SpacecraftCard.d.ts +0 -1
- package/dist/react/cards/SpacecraftCard.js +813 -925
- package/dist/react/cards/SpacecraftCard.js.map +1 -1
- package/dist/react/cards/TelemetryCard.d.ts +0 -1
- package/dist/react/cards/TelemetryCard.js +1055 -732
- package/dist/react/cards/TelemetryCard.js.map +1 -1
- package/dist/react/cards/TelemetryStreamCard.d.ts +0 -1
- package/dist/react/cards/TelemetryStreamCard.js +323 -297
- package/dist/react/cards/TelemetryStreamCard.js.map +1 -1
- package/dist/react/cards/index.d.ts +1 -1
- package/dist/react/cards/index.js +1 -8
- package/dist/react/charts/GroundTrackMap.d.ts +6 -7
- package/dist/react/charts/GroundTrackMap.js +1377 -1256
- package/dist/react/charts/GroundTrackMap.js.map +1 -1
- package/dist/react/charts/GroundTrackMapLeaflet.d.ts +1 -2
- package/dist/react/charts/GroundTrackMapLeaflet.js +1065 -987
- package/dist/react/charts/GroundTrackMapLeaflet.js.map +1 -1
- package/dist/react/charts/groundTrackMapLeafletTiles.js +34 -25
- package/dist/react/charts/groundTrackMapLeafletTiles.js.map +1 -1
- package/dist/react/charts/groundTrackMapLeafletUtils.js +70 -61
- package/dist/react/charts/groundTrackMapLeafletUtils.js.map +1 -1
- package/dist/react/charts/index.d.ts +1 -1
- package/dist/react/charts/index.js +7 -100
- package/dist/react/charts/unified/AstroChart.d.ts +1 -2
- package/dist/react/charts/unified/AstroChart.js +1331 -1411
- package/dist/react/charts/unified/AstroChart.js.map +1 -1
- package/dist/react/charts/unified/PowerOverviewChart.d.ts +3 -3
- package/dist/react/charts/unified/PowerOverviewChart.js +495 -478
- package/dist/react/charts/unified/PowerOverviewChart.js.map +1 -1
- package/dist/react/charts/unified/domain.d.ts +12 -13
- package/dist/react/charts/unified/domain.js +3999 -3145
- package/dist/react/charts/unified/domain.js.map +1 -1
- package/dist/react/charts/unified/generators.d.ts +3 -4
- package/dist/react/charts/unified/generators.js +561 -498
- package/dist/react/charts/unified/generators.js.map +1 -1
- package/dist/react/charts/unified/index.d.ts +1 -1
- package/dist/react/charts/unified/presets.d.ts +14 -15
- package/dist/react/charts/unified/presets.js +857 -994
- package/dist/react/charts/unified/presets.js.map +1 -1
- package/dist/react/charts/unified/sync.d.ts +2 -3
- package/dist/react/charts/unified/sync.js +229 -195
- package/dist/react/charts/unified/sync.js.map +1 -1
- package/dist/react/charts/unified/theme.d.ts +11 -12
- package/dist/react/charts/unified/theme.js +606 -642
- package/dist/react/charts/unified/theme.js.map +1 -1
- package/dist/react/charts/unified/types.d.ts +32 -33
- package/dist/react/charts/unified/useChartStream.d.ts +1 -2
- package/dist/react/charts/unified/useChartStream.js +203 -216
- package/dist/react/charts/unified/useChartStream.js.map +1 -1
- package/dist/react/chatgpt/AppCard.d.ts +1 -2
- package/dist/react/chatgpt/index.d.ts +7 -7
- package/dist/react/chatgpt/index.js +160 -139
- package/dist/react/chatgpt/index.js.map +1 -1
- package/dist/react/context/CategoryContext.d.ts +0 -1
- package/dist/react/context/CategoryContext.js +78 -29
- package/dist/react/context/CategoryContext.js.map +1 -1
- package/dist/react/context/DisplaySettingsContext.d.ts +1 -2
- package/dist/react/context/DisplaySettingsContext.js +205 -156
- package/dist/react/context/DisplaySettingsContext.js.map +1 -1
- package/dist/react/context/SpatialSelectionContext.d.ts +0 -1
- package/dist/react/context/SpatialSelectionContext.js +36 -7
- package/dist/react/context/SpatialSelectionContext.js.map +1 -1
- package/dist/react/core/data/DataTable.d.ts +3 -4
- package/dist/react/core/data/DataTable.js +473 -440
- package/dist/react/core/data/DataTable.js.map +1 -1
- package/dist/react/core/data/DataValue.d.ts +4 -5
- package/dist/react/core/data/DataValue.js +605 -538
- package/dist/react/core/data/DataValue.js.map +1 -1
- package/dist/react/core/data/propertyConfig.d.ts +1 -2
- package/dist/react/core/data/propertyConfig.js +446 -382
- package/dist/react/core/data/propertyConfig.js.map +1 -1
- package/dist/react/core/display/AstroIcon.d.ts +4 -5
- package/dist/react/core/display/AstroIcon.js +339 -429
- package/dist/react/core/display/AstroIcon.js.map +1 -1
- package/dist/react/core/display/Badge.d.ts +2 -3
- package/dist/react/core/display/Badge.js +131 -131
- package/dist/react/core/display/Badge.js.map +1 -1
- package/dist/react/core/display/CardHeader.d.ts +0 -1
- package/dist/react/core/display/CardHeader.js +398 -311
- package/dist/react/core/display/CardHeader.js.map +1 -1
- package/dist/react/core/display/Container.d.ts +2 -3
- package/dist/react/core/display/Container.js +640 -668
- package/dist/react/core/display/Container.js.map +1 -1
- package/dist/react/core/display/CopyButton.d.ts +1 -2
- package/dist/react/core/display/CopyButton.js +158 -101
- package/dist/react/core/display/CopyButton.js.map +1 -1
- package/dist/react/core/display/GlassCard.d.ts +3 -4
- package/dist/react/core/display/GlassCard.js +416 -369
- package/dist/react/core/display/GlassCard.js.map +1 -1
- package/dist/react/core/display/HeaderIconWithStatus.d.ts +0 -1
- package/dist/react/core/display/HeaderIconWithStatus.js +152 -152
- package/dist/react/core/display/HeaderIconWithStatus.js.map +1 -1
- package/dist/react/core/display/Icon.d.ts +2 -3
- package/dist/react/core/display/Icon.js +172 -143
- package/dist/react/core/display/Icon.js.map +1 -1
- package/dist/react/core/display/Typography.d.ts +24 -25
- package/dist/react/core/display/Typography.js +360 -178
- package/dist/react/core/display/Typography.js.map +1 -1
- package/dist/react/core/feedback/ConfirmDialog.d.ts +1 -2
- package/dist/react/core/feedback/ConfirmDialog.js +343 -304
- package/dist/react/core/feedback/ConfirmDialog.js.map +1 -1
- package/dist/react/core/feedback/Dialog.d.ts +2 -3
- package/dist/react/core/feedback/Dialog.js +189 -197
- package/dist/react/core/feedback/Dialog.js.map +1 -1
- package/dist/react/core/feedback/Toast.d.ts +2 -3
- package/dist/react/core/feedback/Toast.js +346 -207
- package/dist/react/core/feedback/Toast.js.map +1 -1
- package/dist/react/core/index.d.ts +26 -26
- package/dist/react/core/index.js +7 -119
- package/dist/react/core/inputs/Button.d.ts +2 -3
- package/dist/react/core/inputs/Button.js +281 -304
- package/dist/react/core/inputs/Button.js.map +1 -1
- package/dist/react/core/inputs/Checkbox.d.ts +2 -3
- package/dist/react/core/inputs/Checkbox.js +139 -127
- package/dist/react/core/inputs/Checkbox.js.map +1 -1
- package/dist/react/core/inputs/Input.d.ts +3 -4
- package/dist/react/core/inputs/Input.js +277 -285
- package/dist/react/core/inputs/Input.js.map +1 -1
- package/dist/react/core/inputs/LimitsBar.d.ts +1 -2
- package/dist/react/core/inputs/LimitsBar.js +271 -196
- package/dist/react/core/inputs/LimitsBar.js.map +1 -1
- package/dist/react/core/inputs/NumberInput.d.ts +2 -3
- package/dist/react/core/inputs/NumberInput.js +531 -503
- package/dist/react/core/inputs/NumberInput.js.map +1 -1
- package/dist/react/core/inputs/PinInput.d.ts +2 -3
- package/dist/react/core/inputs/PinInput.js +224 -207
- package/dist/react/core/inputs/PinInput.js.map +1 -1
- package/dist/react/core/inputs/Select.d.ts +1 -2
- package/dist/react/core/inputs/Select.js +298 -299
- package/dist/react/core/inputs/Select.js.map +1 -1
- package/dist/react/core/inputs/Toggle.d.ts +2 -3
- package/dist/react/core/inputs/Toggle.js +142 -148
- package/dist/react/core/inputs/Toggle.js.map +1 -1
- package/dist/react/core/layout/Box.d.ts +3 -4
- package/dist/react/core/layout/Box.js +118 -122
- package/dist/react/core/layout/Box.js.map +1 -1
- package/dist/react/core/layout/Center.d.ts +0 -1
- package/dist/react/core/layout/Center.js +45 -32
- package/dist/react/core/layout/Center.js.map +1 -1
- package/dist/react/core/layout/Divider.d.ts +1 -2
- package/dist/react/core/layout/Divider.js +112 -106
- package/dist/react/core/layout/Divider.js.map +1 -1
- package/dist/react/core/layout/Flex.d.ts +4 -5
- package/dist/react/core/layout/Flex.js +120 -124
- package/dist/react/core/layout/Flex.js.map +1 -1
- package/dist/react/core/layout/Grid.d.ts +5 -6
- package/dist/react/core/layout/Grid.js +131 -138
- package/dist/react/core/layout/Grid.js.map +1 -1
- package/dist/react/core/layout/Spacer.d.ts +0 -1
- package/dist/react/core/layout/Spacer.js +36 -29
- package/dist/react/core/layout/Spacer.js.map +1 -1
- package/dist/react/core/layout/Stack.d.ts +4 -5
- package/dist/react/core/layout/Stack.js +127 -70
- package/dist/react/core/layout/Stack.js.map +1 -1
- package/dist/react/core/layout/responsive.d.ts +1 -2
- package/dist/react/core/layout/responsive.js +25 -19
- package/dist/react/core/layout/responsive.js.map +1 -1
- package/dist/react/core/layout/useBreakpoint.d.ts +1 -1
- package/dist/react/core/layout/useBreakpoint.js +119 -66
- package/dist/react/core/layout/useBreakpoint.js.map +1 -1
- package/dist/react/core/navigation/AppBar.d.ts +1 -2
- package/dist/react/core/navigation/AppBar.js +827 -805
- package/dist/react/core/navigation/AppBar.js.map +1 -1
- package/dist/react/core/navigation/Pagination.d.ts +2 -3
- package/dist/react/core/navigation/Pagination.js +207 -187
- package/dist/react/core/navigation/Pagination.js.map +1 -1
- package/dist/react/core/navigation/SideNav.d.ts +11 -5
- package/dist/react/core/navigation/SideNav.js +857 -602
- package/dist/react/core/navigation/SideNav.js.map +1 -1
- package/dist/react/core/navigation/Tabs.d.ts +0 -1
- package/dist/react/core/navigation/Tabs.js +113 -119
- package/dist/react/core/navigation/Tabs.js.map +1 -1
- package/dist/react/core/overlays/Popover.d.ts +2 -3
- package/dist/react/core/overlays/Popover.js +303 -282
- package/dist/react/core/overlays/Popover.js.map +1 -1
- package/dist/react/core/overlays/SidePanel.d.ts +1 -2
- package/dist/react/core/overlays/SidePanel.js +217 -212
- package/dist/react/core/overlays/SidePanel.js.map +1 -1
- package/dist/react/core/overlays/Tooltip.d.ts +1 -2
- package/dist/react/core/overlays/Tooltip.js +170 -176
- package/dist/react/core/overlays/Tooltip.js.map +1 -1
- package/dist/react/core/widgets/ActivityPlanner.d.ts +0 -1
- package/dist/react/core/widgets/ActivityPlanner.js +855 -517
- package/dist/react/core/widgets/ActivityPlanner.js.map +1 -1
- package/dist/react/core/widgets/Capture.d.ts +2 -3
- package/dist/react/core/widgets/Capture.js +965 -779
- package/dist/react/core/widgets/Capture.js.map +1 -1
- package/dist/react/core/widgets/ChatPanel.d.ts +16 -17
- package/dist/react/core/widgets/ChatPanel.js +1734 -1034
- package/dist/react/core/widgets/ChatPanel.js.map +1 -1
- package/dist/react/core/widgets/ColorPickerPanel.d.ts +0 -1
- package/dist/react/core/widgets/ColorPickerPanel.js +298 -287
- package/dist/react/core/widgets/ColorPickerPanel.js.map +1 -1
- package/dist/react/core/widgets/CommandBuilder.d.ts +2 -3
- package/dist/react/core/widgets/CommandBuilder.js +624 -516
- package/dist/react/core/widgets/CommandBuilder.js.map +1 -1
- package/dist/react/core/widgets/ConnectionForm.d.ts +2 -3
- package/dist/react/core/widgets/ConnectionForm.js +528 -492
- package/dist/react/core/widgets/ConnectionForm.js.map +1 -1
- package/dist/react/core/widgets/FileExplorer.d.ts +3 -4
- package/dist/react/core/widgets/FileExplorer.js +617 -505
- package/dist/react/core/widgets/FileExplorer.js.map +1 -1
- package/dist/react/core/widgets/HexViewer.d.ts +2 -3
- package/dist/react/core/widgets/HexViewer.js +1353 -1091
- package/dist/react/core/widgets/HexViewer.js.map +1 -1
- package/dist/react/core/widgets/ImageFrame.d.ts +1 -2
- package/dist/react/core/widgets/ImageFrame.js +230 -193
- package/dist/react/core/widgets/ImageFrame.js.map +1 -1
- package/dist/react/core/widgets/ImageGallery.d.ts +2 -1
- package/dist/react/core/widgets/ImageGallery.js +380 -314
- package/dist/react/core/widgets/ImageGallery.js.map +1 -1
- package/dist/react/core/widgets/ImagePanel.d.ts +0 -1
- package/dist/react/core/widgets/ImagePanel.js +110 -101
- package/dist/react/core/widgets/ImagePanel.js.map +1 -1
- package/dist/react/core/widgets/LogViewer.d.ts +2 -3
- package/dist/react/core/widgets/LogViewer.js +711 -607
- package/dist/react/core/widgets/LogViewer.js.map +1 -1
- package/dist/react/core/widgets/MessageStream.d.ts +3 -4
- package/dist/react/core/widgets/MessageStream.js +514 -444
- package/dist/react/core/widgets/MessageStream.js.map +1 -1
- package/dist/react/core/widgets/MissionCalendar.d.ts +3 -4
- package/dist/react/core/widgets/MissionCalendar.js +1488 -1020
- package/dist/react/core/widgets/MissionCalendar.js.map +1 -1
- package/dist/react/core/widgets/PacketViewer.d.ts +2 -3
- package/dist/react/core/widgets/PacketViewer.js +550 -421
- package/dist/react/core/widgets/PacketViewer.js.map +1 -1
- package/dist/react/core/widgets/capture-placeholder.png.js +6 -5
- package/dist/react/core/widgets/capture-placeholder.png.js.map +1 -1
- package/dist/react/hooks/index.d.ts +5 -5
- package/dist/react/hooks/useAccessWindows.d.ts +0 -1
- package/dist/react/hooks/useCompactMode.d.ts +1 -1
- package/dist/react/hooks/useCompactMode.js +104 -58
- package/dist/react/hooks/useCompactMode.js.map +1 -1
- package/dist/react/hooks/useGroundTrackHistory.d.ts +0 -1
- package/dist/react/hooks/useSimulationScene.d.ts +1 -2
- package/dist/react/hooks/useSimulationScene.js +481 -374
- package/dist/react/hooks/useSimulationScene.js.map +1 -1
- package/dist/react/index.d.ts +3 -3
- package/dist/react/panels/LayerControlPanel.d.ts +1 -2
- package/dist/react/panels/LayerControlPanel.js +223 -180
- package/dist/react/panels/LayerControlPanel.js.map +1 -1
- package/dist/react/panels/ObjectInventoryPanel.d.ts +2 -3
- package/dist/react/panels/ObjectInventoryPanel.js +315 -250
- package/dist/react/panels/ObjectInventoryPanel.js.map +1 -1
- package/dist/react/panels/index.d.ts +1 -1
- package/dist/react/panels/index.js +1 -6
- package/dist/react/shared/ErrorBoundary.d.ts +1 -2
- package/dist/react/shared/ErrorBoundary.js +170 -139
- package/dist/react/shared/ErrorBoundary.js.map +1 -1
- package/dist/react/shared/Skeleton.d.ts +1 -2
- package/dist/react/shared/Skeleton.js +300 -301
- package/dist/react/shared/Skeleton.js.map +1 -1
- package/dist/react/theme/ThemeProvider.d.ts +2 -321
- package/dist/react/theme/ThemeProvider.js +312 -939
- package/dist/react/theme/ThemeProvider.js.map +1 -1
- package/dist/react/theme/cardAccent.d.ts +1 -2
- package/dist/react/theme/cardAccent.js +196 -126
- package/dist/react/theme/cardAccent.js.map +1 -1
- package/dist/react/theme/config.d.ts +0 -1
- package/dist/react/theme/config.js +47 -25
- package/dist/react/theme/config.js.map +1 -1
- package/dist/react/theme/index.d.ts +2 -2
- package/dist/react/theme/index.js +1 -16
- package/dist/react/theme/types.d.ts +332 -0
- package/dist/react/theme/types.js +39 -0
- package/dist/react/theme/types.js.map +1 -0
- package/dist/react/types.d.ts +8 -8
- package/dist/react/types.js +147 -47
- package/dist/react/types.js.map +1 -1
- package/dist/react/utils/categoryPalette.d.ts +0 -1
- package/dist/react/utils/categoryPalette.js +91 -102
- package/dist/react/utils/categoryPalette.js.map +1 -1
- package/dist/react/utils/index.d.ts +5 -5
- package/dist/react/utils/index.js +457 -371
- package/dist/react/utils/index.js.map +1 -1
- package/dist/react/visualizations/EclipseTimerCard.d.ts +0 -1
- package/dist/react/visualizations/LinkBudgetCard.d.ts +0 -1
- package/dist/react/visualizations/NavBallCard.d.ts +0 -1
- package/dist/react/visualizations/PropulsionCard.d.ts +1 -2
- package/dist/react/visualizations/SensorFootprintCard.d.ts +1 -2
- package/dist/react/visualizations/ThermalHeatmapCard.d.ts +0 -1
- package/dist/react/visualizations/index.d.ts +3 -3
- package/dist/react.d.ts +2 -1
- package/dist/react.js +17 -221
- package/dist/shaders/atmosphere.frag.js +6 -5
- package/dist/shaders/atmosphere.frag.js.map +1 -1
- package/dist/shaders/atmosphere.vert.js +6 -5
- package/dist/shaders/atmosphere.vert.js.map +1 -1
- package/dist/shaders/stars.frag.js +6 -5
- package/dist/shaders/stars.frag.js.map +1 -1
- package/dist/shaders/stars.vert.js +6 -5
- package/dist/shaders/stars.vert.js.map +1 -1
- package/dist/style.css +217 -194
- package/dist/tokens/core.d.ts +159 -0
- package/dist/tokens/core.js +144 -0
- package/dist/tokens/core.js.map +1 -0
- package/dist/tokens/css-vars.d.ts +213 -2
- package/dist/tokens/css-vars.js +590 -227
- package/dist/tokens/css-vars.js.map +1 -1
- package/dist/tokens/index.d.ts +31 -228
- package/dist/tokens/index.js +281 -366
- package/dist/tokens/index.js.map +1 -1
- package/dist/tokens/palettes/astro.d.ts +129 -0
- package/dist/tokens/palettes/astro.js +112 -0
- package/dist/tokens/palettes/astro.js.map +1 -0
- package/dist/tokens/palettes/index.d.ts +288 -0
- package/dist/tokens/palettes/index.js +35 -0
- package/dist/tokens/palettes/index.js.map +1 -0
- package/dist/tokens/palettes/tailwind.d.ts +324 -0
- package/dist/tokens/palettes/tailwind.js +201 -0
- package/dist/tokens/palettes/tailwind.js.map +1 -0
- package/dist/tokens/palettes/zendir.d.ts +126 -0
- package/dist/tokens/palettes/zendir.js +92 -0
- package/dist/tokens/palettes/zendir.js.map +1 -0
- package/dist/tokens/themes.d.ts +30 -0
- package/dist/tokens/themes.js +704 -0
- package/dist/tokens/themes.js.map +1 -0
- package/dist/tokens/tokens.css +419 -41
- package/dist/types/index.d.ts +2 -2
- package/package.json +310 -313
- package/dist/index.js.map +0 -1
- package/dist/react/3d/index.js.map +0 -1
- package/dist/react/astro/index.js.map +0 -1
- package/dist/react/cards/index.js.map +0 -1
- package/dist/react/charts/index.js.map +0 -1
- package/dist/react/core/index.js.map +0 -1
- package/dist/react/panels/index.js.map +0 -1
- package/dist/react/theme/astro-tokens.d.ts +0 -153
- package/dist/react/theme/index.js.map +0 -1
- package/dist/react.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"propertyConfig.js","sources":["../../../../src/react/core/data/propertyConfig.ts"],"sourcesContent":["/**\n * @zendir/ui - Property Configuration System\n * \n * Enterprise-grade property-to-icon/status/unit mapping system.\n * Provides automatic icon, status, and formatting for common telemetry properties.\n * \n * AstroUXDS Compliance:\n * - Uses official Astro icon names\n * - Status colors per AstroUXDS status system\n * - Dual-coding (color + shape) for accessibility\n * \n * Features:\n * - Auto-derive status from value + thresholds\n * - Contextual icons for space operations properties\n * - Unit formatting with SI prefixes\n * - Extensible configuration\n * \n * @example\n * ```tsx\n * import { getPropertyConfig, deriveStatus, PROPERTY_PRESETS } from '@zendir/ui';\n * \n * // Get config for a known property\n * const tempConfig = getPropertyConfig('temperature');\n * // { icon: 'thermal', unit: '°C', thresholds: { caution: 60, critical: 80 }, ... }\n * \n * // Derive status from value\n * const status = deriveStatus(75, tempConfig.thresholds);\n * // 'caution'\n * ```\n */\n\nimport type { StatusLevel } from '../../utils';\nimport type { AstroIconName } from '../display/AstroIcon';\n\n// =============================================================================\n// Types\n// =============================================================================\n\n/**\n * Threshold configuration for automatic status derivation\n * Values are compared: value >= threshold triggers that status (high thresholds)\n * or value <= threshold triggers that status (low thresholds)\n */\nexport interface StatusThresholds {\n /** Value at or above which status becomes 'critical' (high is bad) */\n critical?: number;\n /** Value at or above which status becomes 'serious' (high is bad) */\n serious?: number;\n /** Value at or above which status becomes 'caution' (high is bad) */\n caution?: number;\n /** Value at or below which status becomes 'caution' (low is bad) */\n cautionLow?: number;\n /** Value at or below which status becomes 'serious' (low is bad) */\n seriousLow?: number;\n /** Value at or below which status becomes 'critical' (low is bad) */\n criticalLow?: number;\n}\n\n/**\n * Complete property configuration\n */\nexport interface PropertyConfig {\n /** Display name (sentence case per AstroUXDS) */\n label: string;\n /** Astro icon name */\n icon: AstroIconName;\n /** Unit of measurement */\n unit?: string;\n /** Precision for number formatting */\n precision?: number;\n /** Status thresholds for auto-derivation */\n thresholds?: StatusThresholds;\n /** Category for grouping */\n category?: PropertyCategory;\n /** Description for tooltips */\n description?: string;\n /** Format function override */\n format?: (value: number) => string;\n}\n\n/**\n * Property categories for organization\n */\nexport type PropertyCategory = \n | 'power'\n | 'thermal'\n | 'attitude'\n | 'communications'\n | 'propulsion'\n | 'navigation'\n | 'payload'\n | 'health'\n | 'orbital'\n | 'general';\n\n/**\n * Property key - either a preset name or custom string\n */\nexport type PropertyKey = keyof typeof PROPERTY_PRESETS | (string & {});\n\n// =============================================================================\n// Property Presets\n// =============================================================================\n\n/**\n * Predefined property configurations for common space operations telemetry\n * \n * These provide sensible defaults that can be overridden per-use.\n */\nexport const PROPERTY_PRESETS = {\n // === Power System ===\n battery: {\n label: 'Battery',\n icon: 'battery-full' as AstroIconName,\n unit: '%',\n precision: 1,\n category: 'power' as PropertyCategory,\n // Low values are bad for battery (use *Low thresholds)\n thresholds: { criticalLow: 10, seriousLow: 20, cautionLow: 30 },\n description: 'Battery state of charge',\n },\n voltage: {\n label: 'Voltage',\n icon: 'propulsion-power' as AstroIconName,\n unit: 'V',\n precision: 2,\n category: 'power' as PropertyCategory,\n thresholds: { criticalLow: 24, cautionLow: 26 },\n description: 'Bus voltage',\n },\n current: {\n label: 'Current',\n icon: 'propulsion-power' as AstroIconName,\n unit: 'A',\n precision: 2,\n category: 'power' as PropertyCategory,\n description: 'Current draw',\n },\n power: {\n label: 'Power',\n icon: 'propulsion-power' as AstroIconName,\n unit: 'W',\n precision: 1,\n category: 'power' as PropertyCategory,\n description: 'Power consumption or generation',\n },\n solarPower: {\n label: 'Solar',\n icon: 'solar' as AstroIconName,\n unit: 'W',\n precision: 1,\n category: 'power' as PropertyCategory,\n description: 'Solar array output',\n },\n load: {\n label: 'Load',\n icon: 'propulsion-power' as AstroIconName,\n unit: 'W',\n precision: 1,\n category: 'power' as PropertyCategory,\n description: 'Power load',\n },\n\n // === Thermal ===\n temperature: {\n label: 'Temperature',\n icon: 'thermal' as AstroIconName,\n unit: '°C',\n precision: 1,\n category: 'thermal' as PropertyCategory,\n thresholds: { critical: 80, serious: 70, caution: 60, cautionLow: -20, criticalLow: -40 },\n description: 'Component temperature',\n },\n heater: {\n label: 'Heater',\n icon: 'thermal' as AstroIconName,\n unit: '',\n category: 'thermal' as PropertyCategory,\n description: 'Heater status',\n },\n\n // === Attitude ===\n roll: {\n label: 'Roll',\n icon: 'explore' as AstroIconName,\n unit: '°',\n precision: 2,\n category: 'attitude' as PropertyCategory,\n thresholds: { critical: 45, caution: 30 },\n description: 'Roll angle',\n },\n pitch: {\n label: 'Pitch',\n icon: 'explore' as AstroIconName,\n unit: '°',\n precision: 2,\n category: 'attitude' as PropertyCategory,\n thresholds: { critical: 45, caution: 30 },\n description: 'Pitch angle',\n },\n yaw: {\n label: 'Yaw',\n icon: 'explore' as AstroIconName,\n unit: '°',\n precision: 2,\n category: 'attitude' as PropertyCategory,\n thresholds: { critical: 45, caution: 30 },\n description: 'Yaw angle',\n },\n pointingError: {\n label: 'Pointing error',\n icon: 'explore' as AstroIconName,\n unit: '°',\n precision: 3,\n category: 'attitude' as PropertyCategory,\n thresholds: { critical: 1.0, serious: 0.5, caution: 0.1 },\n description: 'Attitude pointing error',\n },\n angularVelocity: {\n label: 'Angular velocity',\n icon: 'explore' as AstroIconName,\n unit: '°/s',\n precision: 3,\n category: 'attitude' as PropertyCategory,\n thresholds: { critical: 5.0, caution: 2.0 },\n description: 'Rotation rate',\n },\n\n // === Communications ===\n signalStrength: {\n label: 'Signal',\n icon: 'antenna-receive' as AstroIconName,\n unit: 'dBm',\n precision: 1,\n category: 'communications' as PropertyCategory,\n thresholds: { criticalLow: -100, cautionLow: -85 },\n description: 'Received signal strength',\n },\n dataRate: {\n label: 'Data rate',\n icon: 'antenna-transmit' as AstroIconName,\n unit: 'Mbps',\n precision: 2,\n category: 'communications' as PropertyCategory,\n description: 'Communication data rate',\n },\n packetLoss: {\n label: 'Packet loss',\n icon: 'netcom' as AstroIconName,\n unit: '%',\n precision: 2,\n category: 'communications' as PropertyCategory,\n thresholds: { critical: 10, serious: 5, caution: 1 },\n description: 'Communication packet loss rate',\n },\n snr: {\n label: 'SNR',\n icon: 'antenna' as AstroIconName,\n unit: 'dB',\n precision: 1,\n category: 'communications' as PropertyCategory,\n thresholds: { criticalLow: 5, cautionLow: 10 },\n description: 'Signal-to-noise ratio',\n },\n queue: {\n label: 'Queue',\n icon: 'netcom' as AstroIconName,\n unit: 'pkts',\n precision: 0,\n category: 'communications' as PropertyCategory,\n thresholds: { critical: 1000, caution: 500 },\n description: 'Packet queue depth',\n },\n\n // === Propulsion ===\n fuelLevel: {\n label: 'Fuel',\n icon: 'propulsion-power' as AstroIconName,\n unit: '%',\n precision: 1,\n category: 'propulsion' as PropertyCategory,\n thresholds: { critical: 5, serious: 10, caution: 20 },\n description: 'Propellant remaining',\n },\n deltaV: {\n label: 'Delta-V',\n icon: 'propulsion-power' as AstroIconName,\n unit: 'm/s',\n precision: 1,\n category: 'propulsion' as PropertyCategory,\n description: 'Available delta-V budget',\n },\n thrustLevel: {\n label: 'Thrust',\n icon: 'propulsion-power' as AstroIconName,\n unit: 'N',\n precision: 2,\n category: 'propulsion' as PropertyCategory,\n description: 'Current thrust output',\n },\n\n // === Navigation ===\n altitude: {\n label: 'Altitude',\n icon: 'altitude' as AstroIconName,\n unit: 'km',\n precision: 1,\n category: 'orbital' as PropertyCategory,\n thresholds: { criticalLow: 200, cautionLow: 250 },\n description: 'Orbital altitude',\n },\n velocity: {\n label: 'Velocity',\n icon: 'altitude' as AstroIconName,\n unit: 'km/s',\n precision: 3,\n category: 'orbital' as PropertyCategory,\n description: 'Orbital velocity',\n },\n inclination: {\n label: 'Inclination',\n icon: 'altitude' as AstroIconName,\n unit: '°',\n precision: 2,\n category: 'orbital' as PropertyCategory,\n description: 'Orbital inclination',\n },\n eccentricity: {\n label: 'Eccentricity',\n icon: 'altitude' as AstroIconName,\n unit: '',\n precision: 6,\n category: 'orbital' as PropertyCategory,\n description: 'Orbital eccentricity',\n },\n\n // === Payload ===\n payloadStatus: {\n label: 'Payload',\n icon: 'payload' as AstroIconName,\n unit: '',\n category: 'payload' as PropertyCategory,\n description: 'Payload operational status',\n },\n storageUsed: {\n label: 'Storage',\n icon: 'hardware' as AstroIconName,\n unit: '%',\n precision: 1,\n category: 'payload' as PropertyCategory,\n thresholds: { critical: 95, serious: 90, caution: 80 },\n description: 'Onboard storage usage',\n },\n\n // === Health ===\n cpuUsage: {\n label: 'CPU',\n icon: 'processor' as AstroIconName,\n unit: '%',\n precision: 1,\n category: 'health' as PropertyCategory,\n thresholds: { critical: 95, serious: 85, caution: 75 },\n description: 'Processor utilization',\n },\n memoryUsage: {\n label: 'Memory',\n icon: 'processor' as AstroIconName,\n unit: '%',\n precision: 1,\n category: 'health' as PropertyCategory,\n thresholds: { critical: 95, serious: 85, caution: 75 },\n description: 'Memory utilization',\n },\n uptime: {\n label: 'Uptime',\n icon: 'mission' as AstroIconName,\n unit: 's',\n precision: 0,\n category: 'health' as PropertyCategory,\n description: 'System uptime',\n },\n\n // === General ===\n count: {\n label: 'Count',\n icon: 'list' as AstroIconName,\n unit: '',\n precision: 0,\n category: 'general' as PropertyCategory,\n description: 'Item count',\n },\n percentage: {\n label: 'Percentage',\n icon: 'info' as AstroIconName,\n unit: '%',\n precision: 1,\n category: 'general' as PropertyCategory,\n description: 'Percentage value',\n },\n duration: {\n label: 'Duration',\n icon: 'schedule' as AstroIconName,\n unit: 's',\n precision: 0,\n category: 'general' as PropertyCategory,\n description: 'Time duration',\n },\n} as const satisfies Record<string, PropertyConfig>;\n\n// =============================================================================\n// Category Icons (for section headers)\n// =============================================================================\n\nexport const CATEGORY_ICONS: Record<PropertyCategory, AstroIconName> = {\n power: 'propulsion-power',\n thermal: 'thermal',\n attitude: 'explore',\n communications: 'antenna',\n propulsion: 'propulsion-power',\n navigation: 'gps-fixed',\n payload: 'payload',\n health: 'favorite',\n orbital: 'altitude',\n general: 'info',\n};\n\nexport const CATEGORY_LABELS: Record<PropertyCategory, string> = {\n power: 'Power',\n thermal: 'Thermal',\n attitude: 'Attitude',\n communications: 'Communications',\n propulsion: 'Propulsion',\n navigation: 'Navigation',\n payload: 'Payload',\n health: 'Health',\n orbital: 'Orbital',\n general: 'General',\n};\n\n// =============================================================================\n// Utility Functions\n// =============================================================================\n\n/**\n * Get property configuration by key\n * Returns preset config or a default config for unknown properties\n */\nexport function getPropertyConfig(key: PropertyKey): PropertyConfig {\n const preset = PROPERTY_PRESETS[key as keyof typeof PROPERTY_PRESETS];\n if (preset) {\n return preset;\n }\n\n // Return default config for unknown properties\n return {\n label: formatPropertyLabel(key),\n icon: 'info',\n unit: '',\n precision: 2,\n category: 'general',\n description: key,\n };\n}\n\n/**\n * Format a property key into a display label (sentence case)\n */\nexport function formatPropertyLabel(key: string): string {\n // Handle camelCase → Sentence case\n const words = key\n .replace(/([A-Z])/g, ' $1')\n .replace(/[_-]/g, ' ')\n .trim()\n .toLowerCase();\n return words.charAt(0).toUpperCase() + words.slice(1);\n}\n\n/**\n * Derive status level from a value and thresholds\n * \n * @param value - Current value\n * @param thresholds - Status thresholds\n * @returns StatusLevel\n * \n * @example\n * ```tsx\n * deriveStatus(75, { caution: 60, critical: 80 }) // 'caution'\n * deriveStatus(25, { criticalLow: 10, cautionLow: 30 }) // 'caution'\n * deriveStatus(50, { caution: 60, critical: 80 }) // 'normal'\n * ```\n */\nexport function deriveStatus(\n value: number | undefined | null,\n thresholds?: StatusThresholds\n): StatusLevel {\n if (value === undefined || value === null || !Number.isFinite(value)) {\n return 'off';\n }\n\n if (!thresholds) {\n return 'normal';\n }\n\n // Check high thresholds (value >= threshold is bad)\n if (thresholds.critical !== undefined && value >= thresholds.critical) {\n return 'critical';\n }\n if (thresholds.serious !== undefined && value >= thresholds.serious) {\n return 'serious';\n }\n if (thresholds.caution !== undefined && value >= thresholds.caution) {\n return 'caution';\n }\n\n // Check low thresholds (value <= threshold is bad)\n if (thresholds.criticalLow !== undefined && value <= thresholds.criticalLow) {\n return 'critical';\n }\n if (thresholds.seriousLow !== undefined && value <= thresholds.seriousLow) {\n return 'serious';\n }\n if (thresholds.cautionLow !== undefined && value <= thresholds.cautionLow) {\n return 'caution';\n }\n\n return 'normal';\n}\n\n/**\n * Derive status for battery specifically (low is bad)\n */\nexport function deriveBatteryStatus(level: number | undefined): StatusLevel {\n if (level === undefined || level === null) return 'off';\n if (level <= 10) return 'critical';\n if (level <= 20) return 'serious';\n if (level <= 30) return 'caution';\n return 'normal';\n}\n\n/**\n * Format a value with its property config\n */\nexport function formatPropertyValue(\n value: number | undefined | null,\n config: PropertyConfig\n): string {\n if (value === undefined || value === null || !Number.isFinite(value)) {\n return '--';\n }\n\n if (config.format) {\n return config.format(value);\n }\n\n const precision = config.precision ?? 2;\n const formatted = value.toFixed(precision);\n const unit = config.unit ?? '';\n \n return unit ? `${formatted}${unit.startsWith('°') || unit.startsWith('%') ? '' : ' '}${unit}` : formatted;\n}\n\n/**\n * Create a custom property config by merging with a preset\n */\nexport function createPropertyConfig(\n baseKey: PropertyKey,\n overrides: Partial<PropertyConfig>\n): PropertyConfig {\n const base = getPropertyConfig(baseKey);\n return { ...base, ...overrides };\n}\n\n/**\n * Get all properties in a category\n */\nexport function getPropertiesByCategory(category: PropertyCategory): Array<{ key: string; config: PropertyConfig }> {\n return Object.entries(PROPERTY_PRESETS)\n .filter(([_, config]) => config.category === category)\n .map(([key, config]) => ({ key, config }));\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"propertyConfig.js","names":[],"sources":["../../../../src/react/core/data/propertyConfig.ts"],"sourcesContent":["/**\n * @zendir/ui - Property Configuration System\n *\n * Enterprise-grade property-to-icon/status/unit mapping system.\n * Provides automatic icon, status, and formatting for common telemetry properties.\n *\n * AstroUXDS Compliance:\n * - Uses official Astro icon names\n * - Status colors per AstroUXDS status system\n * - Dual-coding (color + shape) for accessibility\n *\n * Features:\n * - Auto-derive status from value + thresholds\n * - Contextual icons for space operations properties\n * - Unit formatting with SI prefixes\n * - Extensible configuration\n *\n * @example\n * ```tsx\n * import { getPropertyConfig, deriveStatus, PROPERTY_PRESETS } from '@zendir/ui';\n *\n * // Get config for a known property\n * const tempConfig = getPropertyConfig('temperature');\n * // { icon: 'thermal', unit: '°C', thresholds: { caution: 60, critical: 80 }, ... }\n *\n * // Derive status from value\n * const status = deriveStatus(75, tempConfig.thresholds);\n * // 'caution'\n * ```\n */\n\nimport type { StatusLevel } from \"../../utils\";\nimport type { AstroIconName } from \"../display/AstroIcon\";\n\n// =============================================================================\n// Types\n// =============================================================================\n\n/**\n * Threshold configuration for automatic status derivation\n * Values are compared: value >= threshold triggers that status (high thresholds)\n * or value <= threshold triggers that status (low thresholds)\n */\nexport interface StatusThresholds {\n /** Value at or above which status becomes 'critical' (high is bad) */\n critical?: number;\n /** Value at or above which status becomes 'serious' (high is bad) */\n serious?: number;\n /** Value at or above which status becomes 'caution' (high is bad) */\n caution?: number;\n /** Value at or below which status becomes 'caution' (low is bad) */\n cautionLow?: number;\n /** Value at or below which status becomes 'serious' (low is bad) */\n seriousLow?: number;\n /** Value at or below which status becomes 'critical' (low is bad) */\n criticalLow?: number;\n}\n\n/**\n * Complete property configuration\n */\nexport interface PropertyConfig {\n /** Display name (sentence case per AstroUXDS) */\n label: string;\n /** Astro icon name */\n icon: AstroIconName;\n /** Unit of measurement */\n unit?: string;\n /** Precision for number formatting */\n precision?: number;\n /** Status thresholds for auto-derivation */\n thresholds?: StatusThresholds;\n /** Category for grouping */\n category?: PropertyCategory;\n /** Description for tooltips */\n description?: string;\n /** Format function override */\n format?: (value: number) => string;\n}\n\n/**\n * Property categories for organization\n */\nexport type PropertyCategory =\n | \"power\"\n | \"thermal\"\n | \"attitude\"\n | \"communications\"\n | \"propulsion\"\n | \"navigation\"\n | \"payload\"\n | \"health\"\n | \"orbital\"\n | \"general\";\n\n/**\n * Property key - either a preset name or custom string\n */\nexport type PropertyKey = keyof typeof PROPERTY_PRESETS | (string & {});\n\n// =============================================================================\n// Property Presets\n// =============================================================================\n\n/**\n * Predefined property configurations for common space operations telemetry\n *\n * These provide sensible defaults that can be overridden per-use.\n */\nexport const PROPERTY_PRESETS = {\n // === Power System ===\n battery: {\n label: \"Battery\",\n icon: \"battery-full\" as AstroIconName,\n unit: \"%\",\n precision: 1,\n category: \"power\" as PropertyCategory,\n // Low values are bad for battery (use *Low thresholds)\n thresholds: { criticalLow: 10, seriousLow: 20, cautionLow: 30 },\n description: \"Battery state of charge\",\n },\n voltage: {\n label: \"Voltage\",\n icon: \"propulsion-power\" as AstroIconName,\n unit: \"V\",\n precision: 2,\n category: \"power\" as PropertyCategory,\n thresholds: { criticalLow: 24, cautionLow: 26 },\n description: \"Bus voltage\",\n },\n current: {\n label: \"Current\",\n icon: \"propulsion-power\" as AstroIconName,\n unit: \"A\",\n precision: 2,\n category: \"power\" as PropertyCategory,\n description: \"Current draw\",\n },\n power: {\n label: \"Power\",\n icon: \"propulsion-power\" as AstroIconName,\n unit: \"W\",\n precision: 1,\n category: \"power\" as PropertyCategory,\n description: \"Power consumption or generation\",\n },\n solarPower: {\n label: \"Solar\",\n icon: \"solar\" as AstroIconName,\n unit: \"W\",\n precision: 1,\n category: \"power\" as PropertyCategory,\n description: \"Solar array output\",\n },\n load: {\n label: \"Load\",\n icon: \"propulsion-power\" as AstroIconName,\n unit: \"W\",\n precision: 1,\n category: \"power\" as PropertyCategory,\n description: \"Power load\",\n },\n\n // === Thermal ===\n temperature: {\n label: \"Temperature\",\n icon: \"thermal\" as AstroIconName,\n unit: \"°C\",\n precision: 1,\n category: \"thermal\" as PropertyCategory,\n thresholds: {\n critical: 80,\n serious: 70,\n caution: 60,\n cautionLow: -20,\n criticalLow: -40,\n },\n description: \"Component temperature\",\n },\n heater: {\n label: \"Heater\",\n icon: \"thermal\" as AstroIconName,\n unit: \"\",\n category: \"thermal\" as PropertyCategory,\n description: \"Heater status\",\n },\n\n // === Attitude ===\n roll: {\n label: \"Roll\",\n icon: \"explore\" as AstroIconName,\n unit: \"°\",\n precision: 2,\n category: \"attitude\" as PropertyCategory,\n thresholds: { critical: 45, caution: 30 },\n description: \"Roll angle\",\n },\n pitch: {\n label: \"Pitch\",\n icon: \"explore\" as AstroIconName,\n unit: \"°\",\n precision: 2,\n category: \"attitude\" as PropertyCategory,\n thresholds: { critical: 45, caution: 30 },\n description: \"Pitch angle\",\n },\n yaw: {\n label: \"Yaw\",\n icon: \"explore\" as AstroIconName,\n unit: \"°\",\n precision: 2,\n category: \"attitude\" as PropertyCategory,\n thresholds: { critical: 45, caution: 30 },\n description: \"Yaw angle\",\n },\n pointingError: {\n label: \"Pointing error\",\n icon: \"explore\" as AstroIconName,\n unit: \"°\",\n precision: 3,\n category: \"attitude\" as PropertyCategory,\n thresholds: { critical: 1.0, serious: 0.5, caution: 0.1 },\n description: \"Attitude pointing error\",\n },\n angularVelocity: {\n label: \"Angular velocity\",\n icon: \"explore\" as AstroIconName,\n unit: \"°/s\",\n precision: 3,\n category: \"attitude\" as PropertyCategory,\n thresholds: { critical: 5.0, caution: 2.0 },\n description: \"Rotation rate\",\n },\n\n // === Communications ===\n signalStrength: {\n label: \"Signal\",\n icon: \"antenna-receive\" as AstroIconName,\n unit: \"dBm\",\n precision: 1,\n category: \"communications\" as PropertyCategory,\n thresholds: { criticalLow: -100, cautionLow: -85 },\n description: \"Received signal strength\",\n },\n dataRate: {\n label: \"Data rate\",\n icon: \"antenna-transmit\" as AstroIconName,\n unit: \"Mbps\",\n precision: 2,\n category: \"communications\" as PropertyCategory,\n description: \"Communication data rate\",\n },\n packetLoss: {\n label: \"Packet loss\",\n icon: \"netcom\" as AstroIconName,\n unit: \"%\",\n precision: 2,\n category: \"communications\" as PropertyCategory,\n thresholds: { critical: 10, serious: 5, caution: 1 },\n description: \"Communication packet loss rate\",\n },\n snr: {\n label: \"SNR\",\n icon: \"antenna\" as AstroIconName,\n unit: \"dB\",\n precision: 1,\n category: \"communications\" as PropertyCategory,\n thresholds: { criticalLow: 5, cautionLow: 10 },\n description: \"Signal-to-noise ratio\",\n },\n queue: {\n label: \"Queue\",\n icon: \"netcom\" as AstroIconName,\n unit: \"pkts\",\n precision: 0,\n category: \"communications\" as PropertyCategory,\n thresholds: { critical: 1000, caution: 500 },\n description: \"Packet queue depth\",\n },\n\n // === Propulsion ===\n fuelLevel: {\n label: \"Fuel\",\n icon: \"propulsion-power\" as AstroIconName,\n unit: \"%\",\n precision: 1,\n category: \"propulsion\" as PropertyCategory,\n thresholds: { critical: 5, serious: 10, caution: 20 },\n description: \"Propellant remaining\",\n },\n deltaV: {\n label: \"Delta-V\",\n icon: \"propulsion-power\" as AstroIconName,\n unit: \"m/s\",\n precision: 1,\n category: \"propulsion\" as PropertyCategory,\n description: \"Available delta-V budget\",\n },\n thrustLevel: {\n label: \"Thrust\",\n icon: \"propulsion-power\" as AstroIconName,\n unit: \"N\",\n precision: 2,\n category: \"propulsion\" as PropertyCategory,\n description: \"Current thrust output\",\n },\n\n // === Navigation ===\n altitude: {\n label: \"Altitude\",\n icon: \"altitude\" as AstroIconName,\n unit: \"km\",\n precision: 1,\n category: \"orbital\" as PropertyCategory,\n thresholds: { criticalLow: 200, cautionLow: 250 },\n description: \"Orbital altitude\",\n },\n velocity: {\n label: \"Velocity\",\n icon: \"altitude\" as AstroIconName,\n unit: \"km/s\",\n precision: 3,\n category: \"orbital\" as PropertyCategory,\n description: \"Orbital velocity\",\n },\n inclination: {\n label: \"Inclination\",\n icon: \"altitude\" as AstroIconName,\n unit: \"°\",\n precision: 2,\n category: \"orbital\" as PropertyCategory,\n description: \"Orbital inclination\",\n },\n eccentricity: {\n label: \"Eccentricity\",\n icon: \"altitude\" as AstroIconName,\n unit: \"\",\n precision: 6,\n category: \"orbital\" as PropertyCategory,\n description: \"Orbital eccentricity\",\n },\n\n // === Payload ===\n payloadStatus: {\n label: \"Payload\",\n icon: \"payload\" as AstroIconName,\n unit: \"\",\n category: \"payload\" as PropertyCategory,\n description: \"Payload operational status\",\n },\n storageUsed: {\n label: \"Storage\",\n icon: \"hardware\" as AstroIconName,\n unit: \"%\",\n precision: 1,\n category: \"payload\" as PropertyCategory,\n thresholds: { critical: 95, serious: 90, caution: 80 },\n description: \"Onboard storage usage\",\n },\n\n // === Health ===\n cpuUsage: {\n label: \"CPU\",\n icon: \"processor\" as AstroIconName,\n unit: \"%\",\n precision: 1,\n category: \"health\" as PropertyCategory,\n thresholds: { critical: 95, serious: 85, caution: 75 },\n description: \"Processor utilization\",\n },\n memoryUsage: {\n label: \"Memory\",\n icon: \"processor\" as AstroIconName,\n unit: \"%\",\n precision: 1,\n category: \"health\" as PropertyCategory,\n thresholds: { critical: 95, serious: 85, caution: 75 },\n description: \"Memory utilization\",\n },\n uptime: {\n label: \"Uptime\",\n icon: \"mission\" as AstroIconName,\n unit: \"s\",\n precision: 0,\n category: \"health\" as PropertyCategory,\n description: \"System uptime\",\n },\n\n // === General ===\n count: {\n label: \"Count\",\n icon: \"list\" as AstroIconName,\n unit: \"\",\n precision: 0,\n category: \"general\" as PropertyCategory,\n description: \"Item count\",\n },\n percentage: {\n label: \"Percentage\",\n icon: \"info\" as AstroIconName,\n unit: \"%\",\n precision: 1,\n category: \"general\" as PropertyCategory,\n description: \"Percentage value\",\n },\n duration: {\n label: \"Duration\",\n icon: \"schedule\" as AstroIconName,\n unit: \"s\",\n precision: 0,\n category: \"general\" as PropertyCategory,\n description: \"Time duration\",\n },\n} as const satisfies Record<string, PropertyConfig>;\n\n// =============================================================================\n// Category Icons (for section headers)\n// =============================================================================\n\nexport const CATEGORY_ICONS: Record<PropertyCategory, AstroIconName> = {\n power: \"propulsion-power\",\n thermal: \"thermal\",\n attitude: \"explore\",\n communications: \"antenna\",\n propulsion: \"propulsion-power\",\n navigation: \"gps-fixed\",\n payload: \"payload\",\n health: \"favorite\",\n orbital: \"altitude\",\n general: \"info\",\n};\n\nexport const CATEGORY_LABELS: Record<PropertyCategory, string> = {\n power: \"Power\",\n thermal: \"Thermal\",\n attitude: \"Attitude\",\n communications: \"Communications\",\n propulsion: \"Propulsion\",\n navigation: \"Navigation\",\n payload: \"Payload\",\n health: \"Health\",\n orbital: \"Orbital\",\n general: \"General\",\n};\n\n// =============================================================================\n// Utility Functions\n// =============================================================================\n\n/**\n * Get property configuration by key\n * Returns preset config or a default config for unknown properties\n */\nexport function getPropertyConfig(key: PropertyKey): PropertyConfig {\n const preset = PROPERTY_PRESETS[key as keyof typeof PROPERTY_PRESETS];\n if (preset) {\n return preset;\n }\n\n // Return default config for unknown properties\n return {\n label: formatPropertyLabel(key),\n icon: \"info\",\n unit: \"\",\n precision: 2,\n category: \"general\",\n description: key,\n };\n}\n\n/**\n * Format a property key into a display label (sentence case)\n */\nexport function formatPropertyLabel(key: string): string {\n // Handle camelCase → Sentence case\n const words = key\n .replace(/([A-Z])/g, \" $1\")\n .replace(/[_-]/g, \" \")\n .trim()\n .toLowerCase();\n return words.charAt(0).toUpperCase() + words.slice(1);\n}\n\n/**\n * Derive status level from a value and thresholds\n *\n * @param value - Current value\n * @param thresholds - Status thresholds\n * @returns StatusLevel\n *\n * @example\n * ```tsx\n * deriveStatus(75, { caution: 60, critical: 80 }) // 'caution'\n * deriveStatus(25, { criticalLow: 10, cautionLow: 30 }) // 'caution'\n * deriveStatus(50, { caution: 60, critical: 80 }) // 'normal'\n * ```\n */\nexport function deriveStatus(\n value: number | undefined | null,\n thresholds?: StatusThresholds,\n): StatusLevel {\n if (value === undefined || value === null || !Number.isFinite(value)) {\n return \"off\";\n }\n\n if (!thresholds) {\n return \"normal\";\n }\n\n // Check high thresholds (value >= threshold is bad)\n if (thresholds.critical !== undefined && value >= thresholds.critical) {\n return \"critical\";\n }\n if (thresholds.serious !== undefined && value >= thresholds.serious) {\n return \"serious\";\n }\n if (thresholds.caution !== undefined && value >= thresholds.caution) {\n return \"caution\";\n }\n\n // Check low thresholds (value <= threshold is bad)\n if (thresholds.criticalLow !== undefined && value <= thresholds.criticalLow) {\n return \"critical\";\n }\n if (thresholds.seriousLow !== undefined && value <= thresholds.seriousLow) {\n return \"serious\";\n }\n if (thresholds.cautionLow !== undefined && value <= thresholds.cautionLow) {\n return \"caution\";\n }\n\n return \"normal\";\n}\n\n/**\n * Derive status for battery specifically (low is bad)\n */\nexport function deriveBatteryStatus(level: number | undefined): StatusLevel {\n if (level === undefined || level === null) return \"off\";\n if (level <= 10) return \"critical\";\n if (level <= 20) return \"serious\";\n if (level <= 30) return \"caution\";\n return \"normal\";\n}\n\n/**\n * Format a value with its property config\n */\nexport function formatPropertyValue(\n value: number | undefined | null,\n config: PropertyConfig,\n): string {\n if (value === undefined || value === null || !Number.isFinite(value)) {\n return \"--\";\n }\n\n if (config.format) {\n return config.format(value);\n }\n\n const precision = config.precision ?? 2;\n const formatted = value.toFixed(precision);\n const unit = config.unit ?? \"\";\n\n return unit\n ? `${formatted}${unit.startsWith(\"°\") || unit.startsWith(\"%\") ? \"\" : \" \"}${unit}`\n : formatted;\n}\n\n/**\n * Create a custom property config by merging with a preset\n */\nexport function createPropertyConfig(\n baseKey: PropertyKey,\n overrides: Partial<PropertyConfig>,\n): PropertyConfig {\n const base = getPropertyConfig(baseKey);\n return { ...base, ...overrides };\n}\n\n/**\n * Get all properties in a category\n */\nexport function getPropertiesByCategory(\n category: PropertyCategory,\n): Array<{ key: string; config: PropertyConfig }> {\n return Object.entries(PROPERTY_PRESETS)\n .filter(([_, config]) => config.category === category)\n .map(([key, config]) => ({ key, config }));\n}\n"],"mappings":"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"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { default as React } from 'react';
|
|
2
|
-
|
|
3
2
|
/**
|
|
4
3
|
* All official Astro UXD icon names
|
|
5
4
|
* @see https://www.astrouxds.com/components/icon-library/
|
|
6
5
|
*/
|
|
7
|
-
export type AstroIconName = 'altitude' | 'antenna' | 'antenna-off' | 'antenna-receive' | 'antenna-transmit' | 'equipment' | 'hardware' | 'mission' | 'netcom' | 'payload' | 'processor' | 'processor-alt' | 'propulsion-power' | 'satellite-off' | 'satellite-receive' | 'satellite-transmit' | 'solar' | 'thermal' | 'settings' | 'search' | 'home' | 'info' | 'help' | 'delete' | 'edit' | 'lock' | 'lock-open' | 'visibility' | 'visibility-off' | 'refresh' | 'sync' | 'download' | 'upload' | 'fullscreen' | 'fullscreen-exit' | 'zoom-in' | 'zoom-out' | 'schedule' | 'timeline' | 'today' | 'event' | 'bookmark' | 'favorite' | 'star' | 'check-circle' | 'done' | 'done-all' | 'print' | 'open-in-new' | 'launch' | 'power-settings-new' | 'history' | 'cached' | 'build' | 'code' | 'dns' | 'language' | 'input' | 'label' | 'list' | 'track-changes' | 'verified-user' | 'work' | 'add-alert' | 'error' | 'error-outline' | 'notification-important' | 'warning' | 'play-arrow' | 'pause' | 'stop' | 'skip-next' | 'skip-previous' | 'fast-forward' | 'fast-rewind' | 'replay' | 'loop' | 'shuffle' | 'volume-up' | 'volume-down' | 'volume-off' | 'volume-mute' | 'mic' | 'mic-off' | 'videocam' | 'videocam-off' | 'movie' | 'music-note' | 'equalizer' | 'library-music' | 'queue-music' | 'subscriptions' | 'fiber-new' | 'fiber-manual-record' | 'fiber-smart-record' | 'call' | 'call-end' | 'call-made' | 'call-received' | 'call-missed' | 'call-split' | 'chat' | 'chat-bubble' | 'comment' | 'contacts' | 'dialer-sip' | 'email' | 'forum' | 'import-export' | 'live-help' | 'location-off' | 'location-on' | 'message' | 'phone' | 'phonelink-erase' | 'phonelink-lock' | 'phonelink-ring' | 'portable-wifi-off' | 'present-to-all' | 'ring-volume' | 'screen-share' | 'speaker-phone' | 'stay-primary-landscape' | 'stay-primary-portrait' | 'stop-screen-share' | 'swap-calls' | 'textsms' | 'voicemail' | 'vpn-key' | 'add' | 'add-box' | 'add-circle' | 'add-circle-outline' | 'archive' | 'backspace' | 'block' | 'clear' | 'content-copy' | 'content-cut' | 'content-paste' | 'create' | 'drafts' | 'filter-list' | 'flag' | 'forward' | 'gesture' | 'inbox' | 'link' | 'link-off' | 'low-priority' | 'mail' | 'markunread' | 'move-to-inbox' | 'next-week' | 'redo' | 'remove' | 'remove-circle' | 'remove-circle-outline' | 'reply' | 'reply-all' | 'report' | 'save' | 'select-all' | 'send' | 'sort' | 'text-format' | 'unarchive' | 'undo' | 'weekend' | 'access-alarm' | 'access-alarms' | 'access-time' | 'add-alarm' | 'airplanemode-active' | 'airplanemode-inactive' | 'battery-20' | 'battery-30' | 'battery-50' | 'battery-60' | 'battery-80' | 'battery-90' | 'battery-alert' | 'battery-charging-20' | 'battery-charging-30' | 'battery-charging-50' | 'battery-charging-60' | 'battery-charging-80' | 'battery-charging-90' | 'battery-charging-full' | 'battery-full' | 'battery-std' | 'battery-unknown' | 'bluetooth' | 'bluetooth-connected' | 'bluetooth-disabled' | 'bluetooth-searching' | 'brightness-auto' | 'brightness-high' | 'brightness-low' | 'brightness-medium' | 'data-usage' | 'developer-mode' | 'devices' | 'dvr' | 'gps-fixed' | 'gps-not-fixed' | 'gps-off' | 'graphic-eq' | 'location-disabled' | 'location-searching' | 'network-cell' | 'network-wifi' | 'nfc' | 'screen-lock-landscape' | 'screen-lock-portrait' | 'screen-lock-rotation' | 'screen-rotation' | 'sd-storage' | 'settings-system-daydream' | 'signal-cellular-0-bar' | 'signal-cellular-1-bar' | 'signal-cellular-2-bar' | 'signal-cellular-3-bar' | 'signal-cellular-4-bar' | 'signal-cellular-connected-no-internet-0-bar' | 'signal-cellular-connected-no-internet-1-bar' | 'signal-cellular-connected-no-internet-2-bar' | 'signal-cellular-connected-no-internet-3-bar' | 'signal-cellular-connected-no-internet-4-bar' | 'signal-cellular-no-sim' | 'signal-cellular-null' | 'signal-cellular-off' | 'signal-wifi-0-bar' | 'signal-wifi-1-bar' | 'signal-wifi-1-bar-lock' | 'signal-wifi-2-bar' | 'signal-wifi-2-bar-lock' | 'signal-wifi-3-bar' | 'signal-wifi-3-bar-lock' | 'signal-wifi-4-bar' | 'signal-wifi-4-bar-lock' | 'signal-wifi-off' | 'storage' | 'usb' | 'wallpaper' | 'widgets' | 'wifi-lock' | 'wifi-tethering' | 'attach-file' | 'attach-money' | 'border-all' | 'border-bottom' | 'border-clear' | 'border-color' | 'border-horizontal' | 'border-inner' | 'border-left' | 'border-outer' | 'border-right' | 'border-style' | 'border-top' | 'border-vertical' | 'bubble-chart' | 'drag-handle' | 'format-align-center' | 'format-align-justify' | 'format-align-left' | 'format-align-right' | 'format-bold' | 'format-clear' | 'format-color-fill' | 'format-color-reset' | 'format-color-text' | 'format-indent-decrease' | 'format-indent-increase' | 'format-italic' | 'format-line-spacing' | 'format-list-bulleted' | 'format-list-numbered' | 'format-paint' | 'format-quote' | 'format-shapes' | 'format-size' | 'format-strikethrough' | 'format-textdirection-l-to-r' | 'format-textdirection-r-to-l' | 'format-underlined' | 'functions' | 'highlight' | 'insert-chart' | 'insert-comment' | 'insert-drive-file' | 'insert-emoticon' | 'insert-invitation' | 'insert-link' | 'insert-photo' | 'linear-scale' | 'merge-type' | 'mode-comment' | 'mode-edit' | 'monetization-on' | 'money-off' | 'multiline-chart' | 'pie-chart' | 'pie-chart-outlined' | 'publish' | 'short-text' | 'show-chart' | 'space-bar' | 'strikethrough-s' | 'table-chart' | 'text-fields' | 'title' | 'vertical-align-bottom' | 'vertical-align-center' | 'vertical-align-top' | 'wrap-text' | 'attachment' | 'cloud' | 'cloud-circle' | 'cloud-done' | 'cloud-download' | 'cloud-off' | 'cloud-queue' | 'cloud-upload' | 'create-new-folder' | 'file-download' | 'file-upload' | 'folder' | 'folder-open' | 'folder-shared' | 'cast' | 'cast-connected' | 'computer' | 'desktop-mac' | 'desktop-windows' | 'developer-board' | 'device-hub' | 'devices-other' | 'dock' | 'gamepad' | 'headset' | 'headset-mic' | 'keyboard' | 'keyboard-arrow-down' | 'keyboard-arrow-left' | 'keyboard-arrow-right' | 'keyboard-arrow-up' | 'keyboard-backspace' | 'keyboard-capslock' | 'keyboard-hide' | 'keyboard-return' | 'keyboard-tab' | 'keyboard-voice' | 'laptop' | 'laptop-chromebook' | 'laptop-mac' | 'laptop-windows' | 'memory' | 'mouse' | 'phone-android' | 'phone-iphone' | 'phonelink' | 'phonelink-off' | 'power-input' | 'router' | 'scanner' | 'security' | 'sim-card' | 'smartphone' | 'speaker' | 'speaker-group' | 'tablet' | 'tablet-android' | 'tablet-mac' | 'toys' | 'tv' | 'videogame-asset' | 'watch' | 'add-a-photo' | 'add-to-photos' | 'adjust' | 'assistant' | 'assistant-photo' | 'audiotrack' | 'blur-circular' | 'blur-linear' | 'blur-off' | 'blur-on' | 'brightness-1' | 'brightness-2' | 'brightness-3' | 'brightness-4' | 'brightness-5' | 'brightness-6' | 'brightness-7' | 'broken-image' | 'brush' | 'burst-mode' | 'camera' | 'camera-alt' | 'camera-front' | 'camera-rear' | 'camera-roll' | 'center-focus-strong' | 'center-focus-weak' | 'collections' | 'collections-bookmark' | 'color-lens' | 'colorize' | 'compare' | 'control-point' | 'control-point-duplicate' | 'crop' | 'crop-16-9' | 'crop-3-2' | 'crop-5-4' | 'crop-7-5' | 'crop-din' | 'crop-free' | 'crop-landscape' | 'crop-original' | 'crop-portrait' | 'crop-rotate' | 'crop-square' | 'dehaze' | 'details' | 'edit' | 'exposure' | 'exposure-neg-1' | 'exposure-neg-2' | 'exposure-plus-1' | 'exposure-plus-2' | 'exposure-zero' | 'filter' | 'filter-1' | 'filter-2' | 'filter-3' | 'filter-4' | 'filter-5' | 'filter-6' | 'filter-7' | 'filter-8' | 'filter-9' | 'filter-9-plus' | 'filter-b-and-w' | 'filter-center-focus' | 'filter-drama' | 'filter-frames' | 'filter-hdr' | 'filter-none' | 'filter-tilt-shift' | 'filter-vintage' | 'flare' | 'flash-auto' | 'flash-off' | 'flash-on' | 'flip' | 'gradient' | 'grain' | 'grid-off' | 'grid-on' | 'hdr-off' | 'hdr-on' | 'hdr-strong' | 'hdr-weak' | 'healing' | 'image' | 'image-aspect-ratio' | 'iso' | 'landscape' | 'leak-add' | 'leak-remove' | 'lens' | 'linked-camera' | 'looks' | 'looks-3' | 'looks-4' | 'looks-5' | 'looks-6' | 'looks-one' | 'looks-two' | 'loupe' | 'monochrome-photos' | 'movie-creation' | 'movie-filter' | 'music-note' | 'nature' | 'nature-people' | 'navigate-before' | 'navigate-next' | 'palette' | 'panorama' | 'panorama-fish-eye' | 'panorama-horizontal' | 'panorama-vertical' | 'panorama-wide-angle' | 'photo' | 'photo-album' | 'photo-camera' | 'photo-filter' | 'photo-library' | 'photo-size-select-actual' | 'photo-size-select-large' | 'photo-size-select-small' | 'picture-as-pdf' | 'portrait' | 'remove-red-eye' | 'rotate-90-degrees-ccw' | 'rotate-left' | 'rotate-right' | 'slideshow' | 'straighten' | 'style' | 'switch-camera' | 'switch-video' | 'tag-faces' | 'texture' | 'timelapse' | 'timer' | 'timer-10' | 'timer-3' | 'timer-off' | 'tonality' | 'transform' | 'tune' | 'view-comfy' | 'view-compact' | 'vignette' | 'wb-auto' | 'wb-cloudy' | 'wb-incandescent' | 'wb-iridescent' | 'wb-sunny' | 'add-location' | 'beenhere' | 'directions' | 'directions-bike' | 'directions-boat' | 'directions-bus' | 'directions-car' | 'directions-railway' | 'directions-run' | 'directions-subway' | 'directions-transit' | 'directions-walk' | 'edit-location' | 'ev-station' | 'explore' | 'flight' | 'hotel' | 'layers' | 'layers-clear' | 'local-activity' | 'local-airport' | 'local-atm' | 'local-bar' | 'local-cafe' | 'local-car-wash' | 'local-convenience-store' | 'local-dining' | 'local-drink' | 'local-florist' | 'local-gas-station' | 'local-grocery-store' | 'local-hospital' | 'local-hotel' | 'local-laundry-service' | 'local-library' | 'local-mall' | 'local-movies' | 'local-offer' | 'local-parking' | 'local-pharmacy' | 'local-phone' | 'local-pizza' | 'local-play' | 'local-post-office' | 'local-printshop' | 'local-see' | 'local-shipping' | 'local-taxi' | 'map' | 'my-location' | 'navigation' | 'near-me' | 'person-pin' | 'person-pin-circle' | 'pin-drop' | 'place' | 'rate-review' | 'restaurant' | 'restaurant-menu' | 'satellite' | 'store-mall-directory' | 'streetview' | 'subway' | 'terrain' | 'traffic' | 'train' | 'tram' | 'transfer-within-a-station' | 'zoom-out-map' | 'apps' | 'arrow-back' | 'arrow-downward' | 'arrow-drop-down' | 'arrow-drop-down-circle' | 'arrow-drop-up' | 'arrow-forward' | 'arrow-upward' | 'cancel' | 'check' | 'chevron-left' | 'chevron-right' | 'close' | 'expand-less' | 'expand-more' | 'first-page' | 'fullscreen' | 'fullscreen-exit' | 'last-page' | 'menu' | 'more-horiz' | 'more-vert' | 'refresh' | 'subdirectory-arrow-left' | 'subdirectory-arrow-right' | 'unfold-less' | 'unfold-more' | 'adb' | 'airline-seat-flat' | 'airline-seat-flat-angled' | 'airline-seat-individual-suite' | 'airline-seat-legroom-extra' | 'airline-seat-legroom-normal' | 'airline-seat-legroom-reduced' | 'airline-seat-recline-extra' | 'airline-seat-recline-normal' | 'bluetooth-audio' | 'confirmation-number' | 'disc-full' | 'do-not-disturb' | 'do-not-disturb-alt' | 'do-not-disturb-off' | 'do-not-disturb-on' | 'drive-eta' | 'enhanced-encryption' | 'event-available' | 'event-busy' | 'event-note' | 'folder-special' | 'live-tv' | 'mms' | 'more' | 'network-check' | 'network-locked' | 'no-encryption' | 'ondemand-video' | 'personal-video' | 'phone-bluetooth-speaker' | 'phone-forwarded' | 'phone-in-talk' | 'phone-locked' | 'phone-missed' | 'phone-paused' | 'power' | 'power-off' | 'priority-high' | 'sd-card' | 'sim-card-alert' | 'sms' | 'sms-failed' | 'sync' | 'sync-disabled' | 'sync-problem' | 'system-update' | 'tap-and-play' | 'time-to-leave' | 'vibration' | 'voice-chat' | 'vpn-lock' | 'wc' | 'wifi' | 'wifi-off' | 'ac-unit' | 'airport-shuttle' | 'all-inclusive' | 'beach-access' | 'business-center' | 'casino' | 'child-care' | 'child-friendly' | 'fitness-center' | 'free-breakfast' | 'golf-course' | 'hot-tub' | 'kitchen' | 'pool' | 'room-service' | 'rv-hookup' | 'smoke-free' | 'smoking-rooms' | 'spa' | 'cake' | 'domain' | 'group' | 'group-add' | 'location-city' | 'mood' | 'mood-bad' | 'notifications' | 'notifications-active' | 'notifications-none' | 'notifications-off' | 'notifications-paused' | 'pages' | 'party-mode' | 'people' | 'people-outline' | 'person' | 'person-add' | 'person-outline' | 'plus-one' | 'poll' | 'public' | 'school' | 'sentiment-dissatisfied' | 'sentiment-neutral' | 'sentiment-satisfied' | 'sentiment-very-dissatisfied' | 'sentiment-very-satisfied' | 'share' | 'whatshot' | 'check-box' | 'check-box-outline-blank' | 'indeterminate-check-box' | 'radio-button-checked' | 'radio-button-unchecked' | 'star' | 'star-border' | 'star-half' | 'orbit' | 'trajectory' | 'orbital' | 'ground-station' | 'ground-control' | 'dish' | 'tracking-station' | 'uplink' | 'downlink' | 'command' | 'telemetry' | 'comms' | 'rf' | 'link' | 'signal' | 'data-link' | 'satellite' | 'spacecraft' | 'vehicle' | 'sat' | 'sc' | 'power' | 'battery' | 'energy' | 'solar-array' | 'solar-panel' | 'photovoltaic' | 'thruster' | 'engine' | 'burn' | 'maneuver' | 'delta-v' | 'rcs' | 'temperature' | 'heat' | 'cooling' | 'heater' | 'attitude' | 'pointing' | 'orientation' | 'adcs' | 'gyro' | 'gyroscope' | 'gps' | 'gnss' | 'position' | 'location' | 'ephemeris' | 'health' | 'status' | 'nominal' | 'anomaly' | 'fault' | 'safe-mode' | 'emergency' | 'critical' | 'caution' | 'pass' | 'contact' | 'access' | 'window' | 'aos' | 'los' | 'eclipse' | 'sunlight' | 'shadow' | 'subsystem' | 'computer' | 'obc' | 'cdh' | 'flight-computer' | 'sensor' | 'instrument' | 'launch' | 'rocket' | 'liftoff' | 'deployment' | 'deploy' | 'separation' | 'ops' | 'operations' | 'control' | 'automation' | 'sequence' | 'procedure' | 'storage' | 'memory' | 'recorder' | 'playback' | 'record' | 'monitor' | 'dashboard' | 'console' | 'display' | 'astronaut' | 'crew' | 'eva' | (string & {});
|
|
8
|
-
export type AstroIconSize =
|
|
6
|
+
export type AstroIconName = "altitude" | "antenna" | "antenna-off" | "antenna-receive" | "antenna-transmit" | "equipment" | "hardware" | "mission" | "netcom" | "payload" | "processor" | "processor-alt" | "propulsion-power" | "satellite-off" | "satellite-receive" | "satellite-transmit" | "solar" | "thermal" | "settings" | "search" | "home" | "info" | "help" | "delete" | "edit" | "lock" | "lock-open" | "visibility" | "visibility-off" | "refresh" | "sync" | "download" | "upload" | "fullscreen" | "fullscreen-exit" | "zoom-in" | "zoom-out" | "schedule" | "timeline" | "today" | "event" | "bookmark" | "favorite" | "star" | "check-circle" | "done" | "done-all" | "print" | "open-in-new" | "launch" | "power-settings-new" | "history" | "cached" | "build" | "code" | "dns" | "language" | "input" | "label" | "list" | "track-changes" | "verified-user" | "work" | "add-alert" | "error" | "error-outline" | "notification-important" | "warning" | "play-arrow" | "pause" | "stop" | "skip-next" | "skip-previous" | "fast-forward" | "fast-rewind" | "replay" | "loop" | "shuffle" | "volume-up" | "volume-down" | "volume-off" | "volume-mute" | "mic" | "mic-off" | "videocam" | "videocam-off" | "movie" | "music-note" | "equalizer" | "library-music" | "queue-music" | "subscriptions" | "fiber-new" | "fiber-manual-record" | "fiber-smart-record" | "call" | "call-end" | "call-made" | "call-received" | "call-missed" | "call-split" | "chat" | "chat-bubble" | "comment" | "contacts" | "dialer-sip" | "email" | "forum" | "import-export" | "live-help" | "location-off" | "location-on" | "message" | "phone" | "phonelink-erase" | "phonelink-lock" | "phonelink-ring" | "portable-wifi-off" | "present-to-all" | "ring-volume" | "screen-share" | "speaker-phone" | "stay-primary-landscape" | "stay-primary-portrait" | "stop-screen-share" | "swap-calls" | "textsms" | "voicemail" | "vpn-key" | "add" | "add-box" | "add-circle" | "add-circle-outline" | "archive" | "backspace" | "block" | "clear" | "content-copy" | "content-cut" | "content-paste" | "create" | "drafts" | "filter-list" | "flag" | "forward" | "gesture" | "inbox" | "link" | "link-off" | "low-priority" | "mail" | "markunread" | "move-to-inbox" | "next-week" | "redo" | "remove" | "remove-circle" | "remove-circle-outline" | "reply" | "reply-all" | "report" | "save" | "select-all" | "send" | "sort" | "text-format" | "unarchive" | "undo" | "weekend" | "access-alarm" | "access-alarms" | "access-time" | "add-alarm" | "airplanemode-active" | "airplanemode-inactive" | "battery-20" | "battery-30" | "battery-50" | "battery-60" | "battery-80" | "battery-90" | "battery-alert" | "battery-charging-20" | "battery-charging-30" | "battery-charging-50" | "battery-charging-60" | "battery-charging-80" | "battery-charging-90" | "battery-charging-full" | "battery-full" | "battery-std" | "battery-unknown" | "bluetooth" | "bluetooth-connected" | "bluetooth-disabled" | "bluetooth-searching" | "brightness-auto" | "brightness-high" | "brightness-low" | "brightness-medium" | "data-usage" | "developer-mode" | "devices" | "dvr" | "gps-fixed" | "gps-not-fixed" | "gps-off" | "graphic-eq" | "location-disabled" | "location-searching" | "network-cell" | "network-wifi" | "nfc" | "screen-lock-landscape" | "screen-lock-portrait" | "screen-lock-rotation" | "screen-rotation" | "sd-storage" | "settings-system-daydream" | "signal-cellular-0-bar" | "signal-cellular-1-bar" | "signal-cellular-2-bar" | "signal-cellular-3-bar" | "signal-cellular-4-bar" | "signal-cellular-connected-no-internet-0-bar" | "signal-cellular-connected-no-internet-1-bar" | "signal-cellular-connected-no-internet-2-bar" | "signal-cellular-connected-no-internet-3-bar" | "signal-cellular-connected-no-internet-4-bar" | "signal-cellular-no-sim" | "signal-cellular-null" | "signal-cellular-off" | "signal-wifi-0-bar" | "signal-wifi-1-bar" | "signal-wifi-1-bar-lock" | "signal-wifi-2-bar" | "signal-wifi-2-bar-lock" | "signal-wifi-3-bar" | "signal-wifi-3-bar-lock" | "signal-wifi-4-bar" | "signal-wifi-4-bar-lock" | "signal-wifi-off" | "storage" | "usb" | "wallpaper" | "widgets" | "wifi-lock" | "wifi-tethering" | "attach-file" | "attach-money" | "border-all" | "border-bottom" | "border-clear" | "border-color" | "border-horizontal" | "border-inner" | "border-left" | "border-outer" | "border-right" | "border-style" | "border-top" | "border-vertical" | "bubble-chart" | "drag-handle" | "format-align-center" | "format-align-justify" | "format-align-left" | "format-align-right" | "format-bold" | "format-clear" | "format-color-fill" | "format-color-reset" | "format-color-text" | "format-indent-decrease" | "format-indent-increase" | "format-italic" | "format-line-spacing" | "format-list-bulleted" | "format-list-numbered" | "format-paint" | "format-quote" | "format-shapes" | "format-size" | "format-strikethrough" | "format-textdirection-l-to-r" | "format-textdirection-r-to-l" | "format-underlined" | "functions" | "highlight" | "insert-chart" | "insert-comment" | "insert-drive-file" | "insert-emoticon" | "insert-invitation" | "insert-link" | "insert-photo" | "linear-scale" | "merge-type" | "mode-comment" | "mode-edit" | "monetization-on" | "money-off" | "multiline-chart" | "pie-chart" | "pie-chart-outlined" | "publish" | "short-text" | "show-chart" | "space-bar" | "strikethrough-s" | "table-chart" | "text-fields" | "title" | "vertical-align-bottom" | "vertical-align-center" | "vertical-align-top" | "wrap-text" | "attachment" | "cloud" | "cloud-circle" | "cloud-done" | "cloud-download" | "cloud-off" | "cloud-queue" | "cloud-upload" | "create-new-folder" | "file-download" | "file-upload" | "folder" | "folder-open" | "folder-shared" | "cast" | "cast-connected" | "computer" | "desktop-mac" | "desktop-windows" | "developer-board" | "device-hub" | "devices-other" | "dock" | "gamepad" | "headset" | "headset-mic" | "keyboard" | "keyboard-arrow-down" | "keyboard-arrow-left" | "keyboard-arrow-right" | "keyboard-arrow-up" | "keyboard-backspace" | "keyboard-capslock" | "keyboard-hide" | "keyboard-return" | "keyboard-tab" | "keyboard-voice" | "laptop" | "laptop-chromebook" | "laptop-mac" | "laptop-windows" | "memory" | "mouse" | "phone-android" | "phone-iphone" | "phonelink" | "phonelink-off" | "power-input" | "router" | "scanner" | "security" | "sim-card" | "smartphone" | "speaker" | "speaker-group" | "tablet" | "tablet-android" | "tablet-mac" | "toys" | "tv" | "videogame-asset" | "watch" | "add-a-photo" | "add-to-photos" | "adjust" | "assistant" | "assistant-photo" | "audiotrack" | "blur-circular" | "blur-linear" | "blur-off" | "blur-on" | "brightness-1" | "brightness-2" | "brightness-3" | "brightness-4" | "brightness-5" | "brightness-6" | "brightness-7" | "broken-image" | "brush" | "burst-mode" | "camera" | "camera-alt" | "camera-front" | "camera-rear" | "camera-roll" | "center-focus-strong" | "center-focus-weak" | "collections" | "collections-bookmark" | "color-lens" | "colorize" | "compare" | "control-point" | "control-point-duplicate" | "crop" | "crop-16-9" | "crop-3-2" | "crop-5-4" | "crop-7-5" | "crop-din" | "crop-free" | "crop-landscape" | "crop-original" | "crop-portrait" | "crop-rotate" | "crop-square" | "dehaze" | "details" | "edit" | "exposure" | "exposure-neg-1" | "exposure-neg-2" | "exposure-plus-1" | "exposure-plus-2" | "exposure-zero" | "filter" | "filter-1" | "filter-2" | "filter-3" | "filter-4" | "filter-5" | "filter-6" | "filter-7" | "filter-8" | "filter-9" | "filter-9-plus" | "filter-b-and-w" | "filter-center-focus" | "filter-drama" | "filter-frames" | "filter-hdr" | "filter-none" | "filter-tilt-shift" | "filter-vintage" | "flare" | "flash-auto" | "flash-off" | "flash-on" | "flip" | "gradient" | "grain" | "grid-off" | "grid-on" | "hdr-off" | "hdr-on" | "hdr-strong" | "hdr-weak" | "healing" | "image" | "image-aspect-ratio" | "iso" | "landscape" | "leak-add" | "leak-remove" | "lens" | "linked-camera" | "looks" | "looks-3" | "looks-4" | "looks-5" | "looks-6" | "looks-one" | "looks-two" | "loupe" | "monochrome-photos" | "movie-creation" | "movie-filter" | "music-note" | "nature" | "nature-people" | "navigate-before" | "navigate-next" | "palette" | "panorama" | "panorama-fish-eye" | "panorama-horizontal" | "panorama-vertical" | "panorama-wide-angle" | "photo" | "photo-album" | "photo-camera" | "photo-filter" | "photo-library" | "photo-size-select-actual" | "photo-size-select-large" | "photo-size-select-small" | "picture-as-pdf" | "portrait" | "remove-red-eye" | "rotate-90-degrees-ccw" | "rotate-left" | "rotate-right" | "slideshow" | "straighten" | "style" | "switch-camera" | "switch-video" | "tag-faces" | "texture" | "timelapse" | "timer" | "timer-10" | "timer-3" | "timer-off" | "tonality" | "transform" | "tune" | "view-comfy" | "view-compact" | "vignette" | "wb-auto" | "wb-cloudy" | "wb-incandescent" | "wb-iridescent" | "wb-sunny" | "add-location" | "beenhere" | "directions" | "directions-bike" | "directions-boat" | "directions-bus" | "directions-car" | "directions-railway" | "directions-run" | "directions-subway" | "directions-transit" | "directions-walk" | "edit-location" | "ev-station" | "explore" | "flight" | "hotel" | "layers" | "layers-clear" | "local-activity" | "local-airport" | "local-atm" | "local-bar" | "local-cafe" | "local-car-wash" | "local-convenience-store" | "local-dining" | "local-drink" | "local-florist" | "local-gas-station" | "local-grocery-store" | "local-hospital" | "local-hotel" | "local-laundry-service" | "local-library" | "local-mall" | "local-movies" | "local-offer" | "local-parking" | "local-pharmacy" | "local-phone" | "local-pizza" | "local-play" | "local-post-office" | "local-printshop" | "local-see" | "local-shipping" | "local-taxi" | "map" | "my-location" | "navigation" | "near-me" | "person-pin" | "person-pin-circle" | "pin-drop" | "place" | "rate-review" | "restaurant" | "restaurant-menu" | "satellite" | "store-mall-directory" | "streetview" | "subway" | "terrain" | "traffic" | "train" | "tram" | "transfer-within-a-station" | "zoom-out-map" | "apps" | "arrow-back" | "arrow-downward" | "arrow-drop-down" | "arrow-drop-down-circle" | "arrow-drop-up" | "arrow-forward" | "arrow-upward" | "cancel" | "check" | "chevron-left" | "chevron-right" | "close" | "expand-less" | "expand-more" | "first-page" | "fullscreen" | "fullscreen-exit" | "last-page" | "menu" | "more-horiz" | "more-vert" | "refresh" | "subdirectory-arrow-left" | "subdirectory-arrow-right" | "unfold-less" | "unfold-more" | "adb" | "airline-seat-flat" | "airline-seat-flat-angled" | "airline-seat-individual-suite" | "airline-seat-legroom-extra" | "airline-seat-legroom-normal" | "airline-seat-legroom-reduced" | "airline-seat-recline-extra" | "airline-seat-recline-normal" | "bluetooth-audio" | "confirmation-number" | "disc-full" | "do-not-disturb" | "do-not-disturb-alt" | "do-not-disturb-off" | "do-not-disturb-on" | "drive-eta" | "enhanced-encryption" | "event-available" | "event-busy" | "event-note" | "folder-special" | "live-tv" | "mms" | "more" | "network-check" | "network-locked" | "no-encryption" | "ondemand-video" | "personal-video" | "phone-bluetooth-speaker" | "phone-forwarded" | "phone-in-talk" | "phone-locked" | "phone-missed" | "phone-paused" | "power" | "power-off" | "priority-high" | "sd-card" | "sim-card-alert" | "sms" | "sms-failed" | "sync" | "sync-disabled" | "sync-problem" | "system-update" | "tap-and-play" | "time-to-leave" | "vibration" | "voice-chat" | "vpn-lock" | "wc" | "wifi" | "wifi-off" | "ac-unit" | "airport-shuttle" | "all-inclusive" | "beach-access" | "business-center" | "casino" | "child-care" | "child-friendly" | "fitness-center" | "free-breakfast" | "golf-course" | "hot-tub" | "kitchen" | "pool" | "room-service" | "rv-hookup" | "smoke-free" | "smoking-rooms" | "spa" | "cake" | "domain" | "group" | "group-add" | "location-city" | "mood" | "mood-bad" | "notifications" | "notifications-active" | "notifications-none" | "notifications-off" | "notifications-paused" | "pages" | "party-mode" | "people" | "people-outline" | "person" | "person-add" | "person-outline" | "plus-one" | "poll" | "public" | "school" | "sentiment-dissatisfied" | "sentiment-neutral" | "sentiment-satisfied" | "sentiment-very-dissatisfied" | "sentiment-very-satisfied" | "share" | "whatshot" | "check-box" | "check-box-outline-blank" | "indeterminate-check-box" | "radio-button-checked" | "radio-button-unchecked" | "star" | "star-border" | "star-half" | "orbit" | "trajectory" | "orbital" | "ground-station" | "ground-control" | "dish" | "tracking-station" | "uplink" | "downlink" | "command" | "telemetry" | "comms" | "rf" | "link" | "signal" | "data-link" | "satellite" | "spacecraft" | "vehicle" | "sat" | "sc" | "power" | "battery" | "energy" | "solar-array" | "solar-panel" | "photovoltaic" | "thruster" | "engine" | "burn" | "maneuver" | "delta-v" | "rcs" | "temperature" | "heat" | "cooling" | "heater" | "attitude" | "pointing" | "orientation" | "adcs" | "gyro" | "gyroscope" | "gps" | "gnss" | "position" | "location" | "ephemeris" | "health" | "status" | "nominal" | "anomaly" | "fault" | "safe-mode" | "emergency" | "critical" | "caution" | "pass" | "contact" | "access" | "window" | "aos" | "los" | "eclipse" | "sunlight" | "shadow" | "subsystem" | "computer" | "obc" | "cdh" | "flight-computer" | "sensor" | "instrument" | "launch" | "rocket" | "liftoff" | "deployment" | "deploy" | "separation" | "ops" | "operations" | "control" | "automation" | "sequence" | "procedure" | "storage" | "memory" | "recorder" | "playback" | "record" | "monitor" | "dashboard" | "console" | "display" | "astronaut" | "crew" | "eva" | (string & {});
|
|
7
|
+
export type AstroIconSize = "extra-small" | "small" | "normal" | "large";
|
|
9
8
|
export interface AstroIconProps {
|
|
10
9
|
/** Icon name from Astro UXD library */
|
|
11
10
|
name: AstroIconName;
|
|
@@ -22,7 +21,7 @@ export interface AstroIconProps {
|
|
|
22
21
|
/** Click handler */
|
|
23
22
|
onClick?: () => void;
|
|
24
23
|
/** Test ID for testing */
|
|
25
|
-
|
|
24
|
+
"data-testid"?: string;
|
|
26
25
|
}
|
|
27
26
|
/**
|
|
28
27
|
* Get all available icon aliases
|
|
@@ -64,7 +63,7 @@ export declare function getAllIconNames(): {
|
|
|
64
63
|
* <AstroIcon name="thermal" size={48} />
|
|
65
64
|
*
|
|
66
65
|
* // With color
|
|
67
|
-
* <AstroIcon name="warning" color="var(--
|
|
66
|
+
* <AstroIcon name="warning" color="var(--zendir-status-caution)" />
|
|
68
67
|
*
|
|
69
68
|
* // With click handler
|
|
70
69
|
* <AstroIcon name="settings" onClick={() => openSettings()} />
|