@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
|
@@ -2,9 +2,8 @@ import { default as React } from 'react';
|
|
|
2
2
|
import { ResponsiveValue } from './useBreakpoint';
|
|
3
3
|
import { SpacingToken } from './responsive';
|
|
4
4
|
import { BoxProps } from './Box';
|
|
5
|
-
|
|
6
5
|
type SpacingInput = SpacingToken | string | number;
|
|
7
|
-
export interface GridProps extends Omit<BoxProps,
|
|
6
|
+
export interface GridProps extends Omit<BoxProps, "display"> {
|
|
8
7
|
/** Number of equal columns (responsive) */
|
|
9
8
|
columns?: ResponsiveValue<number>;
|
|
10
9
|
/** Auto-fit: minimum column width in px. Creates `repeat(auto-fit, minmax(Npx, 1fr))` */
|
|
@@ -22,13 +21,13 @@ export interface GridProps extends Omit<BoxProps, 'display'> {
|
|
|
22
21
|
/** Column gap (overrides gap for columns) */
|
|
23
22
|
columnGap?: ResponsiveValue<SpacingInput>;
|
|
24
23
|
/** Align items (cross-axis per cell) */
|
|
25
|
-
align?:
|
|
24
|
+
align?: "start" | "end" | "center" | "stretch" | "baseline";
|
|
26
25
|
/** Justify items (main-axis per cell) */
|
|
27
|
-
justifyItems?:
|
|
26
|
+
justifyItems?: "start" | "end" | "center" | "stretch";
|
|
28
27
|
/** Align content (cross-axis for the grid as a whole) */
|
|
29
|
-
alignContent?:
|
|
28
|
+
alignContent?: "start" | "end" | "center" | "stretch" | "space-between" | "space-around" | "space-evenly";
|
|
30
29
|
/** Justify content (main-axis for the grid as a whole) */
|
|
31
|
-
justifyContent?:
|
|
30
|
+
justifyContent?: "start" | "end" | "center" | "stretch" | "space-between" | "space-around" | "space-evenly";
|
|
32
31
|
/** Make grid inline */
|
|
33
32
|
inline?: boolean;
|
|
34
33
|
}
|
|
@@ -1,142 +1,135 @@
|
|
|
1
|
-
import { jsx } from "react/jsx-runtime";
|
|
2
|
-
import { memo, forwardRef } from "react";
|
|
3
1
|
import { useTheme } from "../../theme/ThemeProvider.js";
|
|
4
2
|
import { useBreakpoint } from "./useBreakpoint.js";
|
|
5
3
|
import { resolveResponsive, resolveResponsiveSpacing } from "./responsive.js";
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
flexGrow,
|
|
134
|
-
flexShrink,
|
|
135
|
-
...style
|
|
136
|
-
};
|
|
137
|
-
return /* @__PURE__ */ jsx(Component, { ref, style: computedStyle, ...rest, children });
|
|
4
|
+
import { forwardRef, memo } from "react";
|
|
5
|
+
import { jsx } from "react/jsx-runtime";
|
|
6
|
+
//#region src/react/core/layout/Grid.tsx
|
|
7
|
+
/**
|
|
8
|
+
* @zendir/ui - Grid Layout Primitive
|
|
9
|
+
*
|
|
10
|
+
* CSS Grid container with responsive columns and auto-fit support.
|
|
11
|
+
* Designed for operator dashboard layouts: telemetry grids, card layouts,
|
|
12
|
+
* multi-panel mission control views.
|
|
13
|
+
*
|
|
14
|
+
* Astro UX Compliance:
|
|
15
|
+
* - 4px grid spacing tokens
|
|
16
|
+
* - Responsive column count for mobile → 4K mission control
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```tsx
|
|
20
|
+
* // Fixed responsive columns
|
|
21
|
+
* <Grid columns={[1, 2, 3]} gap="md">
|
|
22
|
+
* <TelemetryCard />
|
|
23
|
+
* <LinkBudgetCard />
|
|
24
|
+
* <SpacecraftCard />
|
|
25
|
+
* </Grid>
|
|
26
|
+
*
|
|
27
|
+
* // Auto-fit: as many 300px-min columns as fit
|
|
28
|
+
* <Grid autoFit={300} gap="md">
|
|
29
|
+
* {telemetryItems.map(item => <DataValue key={item.key} {...item} />)}
|
|
30
|
+
* </Grid>
|
|
31
|
+
*
|
|
32
|
+
* // Template-based for complex layouts
|
|
33
|
+
* <Grid template="1fr 2fr 1fr" rows="auto 1fr" gap="md">
|
|
34
|
+
* <SideNav />
|
|
35
|
+
* <MainContent />
|
|
36
|
+
* <DetailPanel />
|
|
37
|
+
* </Grid>
|
|
38
|
+
* ```
|
|
39
|
+
*/
|
|
40
|
+
var Grid = memo(forwardRef(function Grid({ columns, autoFit, autoFill, template, rows, gap, rowGap, columnGap, align, justifyItems, alignContent, justifyContent, inline = false, padding, p, px, py, pt, pr, pb, pl, margin, m, mx, my, mt, mr, mb, ml, background, border, borderRadius, shadow, width, height, minWidth, minHeight, maxWidth, maxHeight, overflow, position, flex, flexGrow, flexShrink, as: Component = "div", style, children, ...rest }, ref) {
|
|
41
|
+
const { tokens } = useTheme();
|
|
42
|
+
const { breakpoint } = useBreakpoint();
|
|
43
|
+
const resolveSpacing = (val) => resolveResponsiveSpacing(val, breakpoint, tokens);
|
|
44
|
+
let gridTemplateColumns;
|
|
45
|
+
if (autoFit) gridTemplateColumns = `repeat(auto-fit, minmax(${autoFit}px, 1fr))`;
|
|
46
|
+
else if (autoFill) gridTemplateColumns = `repeat(auto-fill, minmax(${autoFill}px, 1fr))`;
|
|
47
|
+
else if (template) gridTemplateColumns = resolveResponsive(template, breakpoint);
|
|
48
|
+
else if (columns !== void 0) {
|
|
49
|
+
const cols = resolveResponsive(columns, breakpoint);
|
|
50
|
+
gridTemplateColumns = cols ? `repeat(${cols}, 1fr)` : void 0;
|
|
51
|
+
}
|
|
52
|
+
const bgMap = {
|
|
53
|
+
base: tokens.colors.background.base,
|
|
54
|
+
surface: tokens.colors.background.surface,
|
|
55
|
+
elevated: tokens.colors.background.elevated,
|
|
56
|
+
overlay: tokens.colors.background.overlay
|
|
57
|
+
};
|
|
58
|
+
const resolveSize = (val) => {
|
|
59
|
+
if (val === void 0) return void 0;
|
|
60
|
+
if (typeof val === "number") return `${val}px`;
|
|
61
|
+
return val;
|
|
62
|
+
};
|
|
63
|
+
const paddingAll = resolveSpacing(padding ?? p);
|
|
64
|
+
const paddingXVal = resolveSpacing(px);
|
|
65
|
+
const paddingYVal = resolveSpacing(py);
|
|
66
|
+
const marginAll = resolveSpacing(margin ?? m);
|
|
67
|
+
const marginXVal = resolveSpacing(mx);
|
|
68
|
+
const marginYVal = resolveSpacing(my);
|
|
69
|
+
const resolvedGap = resolveSpacing(gap);
|
|
70
|
+
const resolvedRowGap = resolveSpacing(rowGap);
|
|
71
|
+
const resolvedColumnGap = resolveSpacing(columnGap);
|
|
72
|
+
return /* @__PURE__ */ jsx(Component, {
|
|
73
|
+
ref,
|
|
74
|
+
style: {
|
|
75
|
+
display: inline ? "inline-grid" : "grid",
|
|
76
|
+
gridTemplateColumns,
|
|
77
|
+
gridTemplateRows: rows,
|
|
78
|
+
...resolvedGap !== void 0 ? { gap: resolvedGap } : {},
|
|
79
|
+
...resolvedRowGap !== void 0 ? { rowGap: resolvedRowGap } : {},
|
|
80
|
+
...resolvedColumnGap !== void 0 ? { columnGap: resolvedColumnGap } : {},
|
|
81
|
+
alignItems: align,
|
|
82
|
+
justifyItems,
|
|
83
|
+
alignContent,
|
|
84
|
+
justifyContent,
|
|
85
|
+
...paddingAll ? { padding: paddingAll } : {},
|
|
86
|
+
...paddingXVal ? {
|
|
87
|
+
paddingLeft: paddingXVal,
|
|
88
|
+
paddingRight: paddingXVal
|
|
89
|
+
} : {},
|
|
90
|
+
...paddingYVal ? {
|
|
91
|
+
paddingTop: paddingYVal,
|
|
92
|
+
paddingBottom: paddingYVal
|
|
93
|
+
} : {},
|
|
94
|
+
...resolveSpacing(pt) ? { paddingTop: resolveSpacing(pt) } : {},
|
|
95
|
+
...resolveSpacing(pr) ? { paddingRight: resolveSpacing(pr) } : {},
|
|
96
|
+
...resolveSpacing(pb) ? { paddingBottom: resolveSpacing(pb) } : {},
|
|
97
|
+
...resolveSpacing(pl) ? { paddingLeft: resolveSpacing(pl) } : {},
|
|
98
|
+
...marginAll ? { margin: marginAll } : {},
|
|
99
|
+
...marginXVal ? {
|
|
100
|
+
marginLeft: marginXVal,
|
|
101
|
+
marginRight: marginXVal
|
|
102
|
+
} : {},
|
|
103
|
+
...marginYVal ? {
|
|
104
|
+
marginTop: marginYVal,
|
|
105
|
+
marginBottom: marginYVal
|
|
106
|
+
} : {},
|
|
107
|
+
...resolveSpacing(mt) ? { marginTop: resolveSpacing(mt) } : {},
|
|
108
|
+
...resolveSpacing(mr) ? { marginRight: resolveSpacing(mr) } : {},
|
|
109
|
+
...resolveSpacing(mb) ? { marginBottom: resolveSpacing(mb) } : {},
|
|
110
|
+
...resolveSpacing(ml) ? { marginLeft: resolveSpacing(ml) } : {},
|
|
111
|
+
...background ? { backgroundColor: bgMap[background] || background } : {},
|
|
112
|
+
...border ? { border: border === true ? `1px solid ${tokens.colors.border.default}` : border } : {},
|
|
113
|
+
...borderRadius ? { borderRadius: tokens.borderRadius[borderRadius] || borderRadius } : {},
|
|
114
|
+
...shadow && shadow !== "glow" ? { boxShadow: tokens.shadows[shadow] || shadow } : {},
|
|
115
|
+
width: resolveSize(resolveResponsive(width, breakpoint)),
|
|
116
|
+
height: resolveSize(resolveResponsive(height, breakpoint)),
|
|
117
|
+
minWidth: resolveSize(minWidth),
|
|
118
|
+
minHeight: resolveSize(minHeight),
|
|
119
|
+
maxWidth: resolveSize(maxWidth),
|
|
120
|
+
maxHeight: resolveSize(maxHeight),
|
|
121
|
+
overflow,
|
|
122
|
+
position,
|
|
123
|
+
flex,
|
|
124
|
+
flexGrow,
|
|
125
|
+
flexShrink,
|
|
126
|
+
...style
|
|
127
|
+
},
|
|
128
|
+
...rest,
|
|
129
|
+
children
|
|
130
|
+
});
|
|
138
131
|
}));
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
//# sourceMappingURL=Grid.js.map
|
|
132
|
+
//#endregion
|
|
133
|
+
export { Grid, Grid as default };
|
|
134
|
+
|
|
135
|
+
//# sourceMappingURL=Grid.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Grid.js","sources":["../../../../src/react/core/layout/Grid.tsx"],"sourcesContent":["/**\r\n * @zendir/ui - Grid Layout Primitive\r\n * \r\n * CSS Grid container with responsive columns and auto-fit support.\r\n * Designed for operator dashboard layouts: telemetry grids, card layouts,\r\n * multi-panel mission control views.\r\n * \r\n * Astro UX Compliance:\r\n * - 4px grid spacing tokens\r\n * - Responsive column count for mobile → 4K mission control\r\n * \r\n * @example\r\n * ```tsx\r\n * // Fixed responsive columns\r\n * <Grid columns={[1, 2, 3]} gap=\"md\">\r\n * <TelemetryCard />\r\n * <LinkBudgetCard />\r\n * <SpacecraftCard />\r\n * </Grid>\r\n * \r\n * // Auto-fit: as many 300px-min columns as fit\r\n * <Grid autoFit={300} gap=\"md\">\r\n * {telemetryItems.map(item => <DataValue key={item.key} {...item} />)}\r\n * </Grid>\r\n * \r\n * // Template-based for complex layouts\r\n * <Grid template=\"1fr 2fr 1fr\" rows=\"auto 1fr\" gap=\"md\">\r\n * <SideNav />\r\n * <MainContent />\r\n * <DetailPanel />\r\n * </Grid>\r\n * ```\r\n */\r\n\r\nimport React, { memo, forwardRef } from 'react';\r\nimport { useTheme } from '../../theme';\r\nimport { useBreakpoint } from './useBreakpoint';\r\nimport { resolveResponsiveSpacing, resolveResponsive } from './responsive';\r\nimport type { ResponsiveValue } from './useBreakpoint';\r\nimport type { SpacingToken } from './responsive';\r\nimport type { BoxProps } from './Box';\r\n\r\ntype SpacingInput = SpacingToken | string | number;\r\n\r\nexport interface GridProps extends Omit<BoxProps, 'display'> {\r\n /** Number of equal columns (responsive) */\r\n columns?: ResponsiveValue<number>;\r\n /** Auto-fit: minimum column width in px. Creates `repeat(auto-fit, minmax(Npx, 1fr))` */\r\n autoFit?: number;\r\n /** Auto-fill: minimum column width in px. Creates `repeat(auto-fill, minmax(Npx, 1fr))` */\r\n autoFill?: number;\r\n /** Explicit grid-template-columns CSS value */\r\n template?: ResponsiveValue<string>;\r\n /** Explicit grid-template-rows CSS value */\r\n rows?: string;\r\n /** Gap between grid items */\r\n gap?: ResponsiveValue<SpacingInput>;\r\n /** Row gap (overrides gap for rows) */\r\n rowGap?: ResponsiveValue<SpacingInput>;\r\n /** Column gap (overrides gap for columns) */\r\n columnGap?: ResponsiveValue<SpacingInput>;\r\n /** Align items (cross-axis per cell) */\r\n align?: 'start' | 'end' | 'center' | 'stretch' | 'baseline';\r\n /** Justify items (main-axis per cell) */\r\n justifyItems?: 'start' | 'end' | 'center' | 'stretch';\r\n /** Align content (cross-axis for the grid as a whole) */\r\n alignContent?: 'start' | 'end' | 'center' | 'stretch' | 'space-between' | 'space-around' | 'space-evenly';\r\n /** Justify content (main-axis for the grid as a whole) */\r\n justifyContent?: 'start' | 'end' | 'center' | 'stretch' | 'space-between' | 'space-around' | 'space-evenly';\r\n /** Make grid inline */\r\n inline?: boolean;\r\n}\r\n\r\nexport const Grid = memo(forwardRef<HTMLDivElement, GridProps>(function Grid(\r\n {\r\n columns,\r\n autoFit,\r\n autoFill,\r\n template,\r\n rows,\r\n gap,\r\n rowGap,\r\n columnGap,\r\n align,\r\n justifyItems,\r\n alignContent,\r\n justifyContent,\r\n inline = false,\r\n // Box props\r\n padding, p, px, py, pt, pr, pb, pl,\r\n margin, m, mx, my, mt, mr, mb, ml,\r\n background,\r\n border,\r\n borderRadius,\r\n shadow,\r\n width,\r\n height,\r\n minWidth,\r\n minHeight,\r\n maxWidth,\r\n maxHeight,\r\n overflow,\r\n position,\r\n flex,\r\n flexGrow,\r\n flexShrink,\r\n as: Component = 'div',\r\n style,\r\n children,\r\n ...rest\r\n },\r\n ref\r\n): React.ReactElement {\r\n const { tokens } = useTheme();\r\n const { breakpoint } = useBreakpoint();\r\n \r\n const resolveSpacing = (val: ResponsiveValue<SpacingInput> | undefined) =>\r\n resolveResponsiveSpacing(val, breakpoint, tokens);\r\n \r\n // Determine grid-template-columns\r\n let gridTemplateColumns: string | undefined;\r\n \r\n if (autoFit) {\r\n gridTemplateColumns = `repeat(auto-fit, minmax(${autoFit}px, 1fr))`;\r\n } else if (autoFill) {\r\n gridTemplateColumns = `repeat(auto-fill, minmax(${autoFill}px, 1fr))`;\r\n } else if (template) {\r\n gridTemplateColumns = resolveResponsive(template, breakpoint);\r\n } else if (columns !== undefined) {\r\n const cols = resolveResponsive(columns, breakpoint);\r\n gridTemplateColumns = cols ? `repeat(${cols}, 1fr)` : undefined;\r\n }\r\n \r\n // Background resolution\r\n const bgMap: Record<string, string> = {\r\n base: tokens.colors.background.base,\r\n surface: tokens.colors.background.surface,\r\n elevated: tokens.colors.background.elevated,\r\n overlay: tokens.colors.background.overlay,\r\n };\r\n \r\n const resolveSize = (val: string | number | undefined): string | undefined => {\r\n if (val === undefined) return undefined;\r\n if (typeof val === 'number') return `${val}px`;\r\n return val;\r\n };\r\n \r\n // Resolve padding\r\n const paddingAll = resolveSpacing(padding ?? p);\r\n const paddingXVal = resolveSpacing(px);\r\n const paddingYVal = resolveSpacing(py);\r\n \r\n // Resolve margin\r\n const marginAll = resolveSpacing(margin ?? m);\r\n const marginXVal = resolveSpacing(mx);\r\n const marginYVal = resolveSpacing(my);\r\n \r\n // Resolve gap values — use conditional spreads to avoid setting\r\n // rowGap/columnGap to undefined, which clears the gap shorthand\r\n // in browsers (setting `style.rowGap = ''` removes the value\r\n // that `style.gap` set for row-gap).\r\n const resolvedGap = resolveSpacing(gap);\r\n const resolvedRowGap = resolveSpacing(rowGap);\r\n const resolvedColumnGap = resolveSpacing(columnGap);\r\n\r\n const computedStyle: React.CSSProperties = {\r\n display: inline ? 'inline-grid' : 'grid',\r\n gridTemplateColumns,\r\n gridTemplateRows: rows,\r\n ...(resolvedGap !== undefined ? { gap: resolvedGap } : {}),\r\n ...(resolvedRowGap !== undefined ? { rowGap: resolvedRowGap } : {}),\r\n ...(resolvedColumnGap !== undefined ? { columnGap: resolvedColumnGap } : {}),\r\n alignItems: align,\r\n justifyItems,\r\n alignContent,\r\n justifyContent,\r\n \r\n // Padding\r\n ...(paddingAll ? { padding: paddingAll } : {}),\r\n ...(paddingXVal ? { paddingLeft: paddingXVal, paddingRight: paddingXVal } : {}),\r\n ...(paddingYVal ? { paddingTop: paddingYVal, paddingBottom: paddingYVal } : {}),\r\n ...(resolveSpacing(pt) ? { paddingTop: resolveSpacing(pt) } : {}),\r\n ...(resolveSpacing(pr) ? { paddingRight: resolveSpacing(pr) } : {}),\r\n ...(resolveSpacing(pb) ? { paddingBottom: resolveSpacing(pb) } : {}),\r\n ...(resolveSpacing(pl) ? { paddingLeft: resolveSpacing(pl) } : {}),\r\n \r\n // Margin\r\n ...(marginAll ? { margin: marginAll } : {}),\r\n ...(marginXVal ? { marginLeft: marginXVal, marginRight: marginXVal } : {}),\r\n ...(marginYVal ? { marginTop: marginYVal, marginBottom: marginYVal } : {}),\r\n ...(resolveSpacing(mt) ? { marginTop: resolveSpacing(mt) } : {}),\r\n ...(resolveSpacing(mr) ? { marginRight: resolveSpacing(mr) } : {}),\r\n ...(resolveSpacing(mb) ? { marginBottom: resolveSpacing(mb) } : {}),\r\n ...(resolveSpacing(ml) ? { marginLeft: resolveSpacing(ml) } : {}),\r\n \r\n // Visual\r\n ...(background ? { backgroundColor: bgMap[background] || background } : {}),\r\n ...(border ? { border: border === true ? `1px solid ${tokens.colors.border.default}` : border as string } : {}),\r\n ...(borderRadius ? { borderRadius: (tokens.borderRadius as Record<string, string>)[borderRadius as string] || borderRadius } : {}),\r\n ...(shadow && shadow !== 'glow' ? { boxShadow: (tokens.shadows as unknown as Record<string, string>)[shadow as string] || shadow } : {}),\r\n \r\n // Size\r\n width: resolveSize(resolveResponsive(width, breakpoint)),\r\n height: resolveSize(resolveResponsive(height, breakpoint)),\r\n minWidth: resolveSize(minWidth),\r\n minHeight: resolveSize(minHeight),\r\n maxWidth: resolveSize(maxWidth),\r\n maxHeight: resolveSize(maxHeight),\r\n overflow,\r\n position,\r\n flex,\r\n flexGrow,\r\n flexShrink,\r\n \r\n ...style,\r\n };\r\n \r\n return (\r\n <Component ref={ref} style={computedStyle} {...rest}>\r\n {children}\r\n </Component>\r\n );\r\n}));\r\n\r\nexport default Grid;\r\n"],"names":["Grid"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Grid.js","names":[],"sources":["../../../../src/react/core/layout/Grid.tsx"],"sourcesContent":["/**\n * @zendir/ui - Grid Layout Primitive\n *\n * CSS Grid container with responsive columns and auto-fit support.\n * Designed for operator dashboard layouts: telemetry grids, card layouts,\n * multi-panel mission control views.\n *\n * Astro UX Compliance:\n * - 4px grid spacing tokens\n * - Responsive column count for mobile → 4K mission control\n *\n * @example\n * ```tsx\n * // Fixed responsive columns\n * <Grid columns={[1, 2, 3]} gap=\"md\">\n * <TelemetryCard />\n * <LinkBudgetCard />\n * <SpacecraftCard />\n * </Grid>\n *\n * // Auto-fit: as many 300px-min columns as fit\n * <Grid autoFit={300} gap=\"md\">\n * {telemetryItems.map(item => <DataValue key={item.key} {...item} />)}\n * </Grid>\n *\n * // Template-based for complex layouts\n * <Grid template=\"1fr 2fr 1fr\" rows=\"auto 1fr\" gap=\"md\">\n * <SideNav />\n * <MainContent />\n * <DetailPanel />\n * </Grid>\n * ```\n */\n\nimport React, { memo, forwardRef } from \"react\";\nimport { useTheme } from \"../../theme\";\nimport { useBreakpoint } from \"./useBreakpoint\";\nimport { resolveResponsiveSpacing, resolveResponsive } from \"./responsive\";\nimport type { ResponsiveValue } from \"./useBreakpoint\";\nimport type { SpacingToken } from \"./responsive\";\nimport type { BoxProps } from \"./Box\";\n\ntype SpacingInput = SpacingToken | string | number;\n\nexport interface GridProps extends Omit<BoxProps, \"display\"> {\n /** Number of equal columns (responsive) */\n columns?: ResponsiveValue<number>;\n /** Auto-fit: minimum column width in px. Creates `repeat(auto-fit, minmax(Npx, 1fr))` */\n autoFit?: number;\n /** Auto-fill: minimum column width in px. Creates `repeat(auto-fill, minmax(Npx, 1fr))` */\n autoFill?: number;\n /** Explicit grid-template-columns CSS value */\n template?: ResponsiveValue<string>;\n /** Explicit grid-template-rows CSS value */\n rows?: string;\n /** Gap between grid items */\n gap?: ResponsiveValue<SpacingInput>;\n /** Row gap (overrides gap for rows) */\n rowGap?: ResponsiveValue<SpacingInput>;\n /** Column gap (overrides gap for columns) */\n columnGap?: ResponsiveValue<SpacingInput>;\n /** Align items (cross-axis per cell) */\n align?: \"start\" | \"end\" | \"center\" | \"stretch\" | \"baseline\";\n /** Justify items (main-axis per cell) */\n justifyItems?: \"start\" | \"end\" | \"center\" | \"stretch\";\n /** Align content (cross-axis for the grid as a whole) */\n alignContent?:\n | \"start\"\n | \"end\"\n | \"center\"\n | \"stretch\"\n | \"space-between\"\n | \"space-around\"\n | \"space-evenly\";\n /** Justify content (main-axis for the grid as a whole) */\n justifyContent?:\n | \"start\"\n | \"end\"\n | \"center\"\n | \"stretch\"\n | \"space-between\"\n | \"space-around\"\n | \"space-evenly\";\n /** Make grid inline */\n inline?: boolean;\n}\n\nexport const Grid = memo(\n forwardRef<HTMLDivElement, GridProps>(function Grid(\n {\n columns,\n autoFit,\n autoFill,\n template,\n rows,\n gap,\n rowGap,\n columnGap,\n align,\n justifyItems,\n alignContent,\n justifyContent,\n inline = false,\n // Box props\n padding,\n p,\n px,\n py,\n pt,\n pr,\n pb,\n pl,\n margin,\n m,\n mx,\n my,\n mt,\n mr,\n mb,\n ml,\n background,\n border,\n borderRadius,\n shadow,\n width,\n height,\n minWidth,\n minHeight,\n maxWidth,\n maxHeight,\n overflow,\n position,\n flex,\n flexGrow,\n flexShrink,\n as: Component = \"div\",\n style,\n children,\n ...rest\n },\n ref,\n ): React.ReactElement {\n const { tokens } = useTheme();\n const { breakpoint } = useBreakpoint();\n\n const resolveSpacing = (val: ResponsiveValue<SpacingInput> | undefined) =>\n resolveResponsiveSpacing(val, breakpoint, tokens);\n\n // Determine grid-template-columns\n let gridTemplateColumns: string | undefined;\n\n if (autoFit) {\n gridTemplateColumns = `repeat(auto-fit, minmax(${autoFit}px, 1fr))`;\n } else if (autoFill) {\n gridTemplateColumns = `repeat(auto-fill, minmax(${autoFill}px, 1fr))`;\n } else if (template) {\n gridTemplateColumns = resolveResponsive(template, breakpoint);\n } else if (columns !== undefined) {\n const cols = resolveResponsive(columns, breakpoint);\n gridTemplateColumns = cols ? `repeat(${cols}, 1fr)` : undefined;\n }\n\n // Background resolution\n const bgMap: Record<string, string> = {\n base: tokens.colors.background.base,\n surface: tokens.colors.background.surface,\n elevated: tokens.colors.background.elevated,\n overlay: tokens.colors.background.overlay,\n };\n\n const resolveSize = (\n val: string | number | undefined,\n ): string | undefined => {\n if (val === undefined) return undefined;\n if (typeof val === \"number\") return `${val}px`;\n return val;\n };\n\n // Resolve padding\n const paddingAll = resolveSpacing(padding ?? p);\n const paddingXVal = resolveSpacing(px);\n const paddingYVal = resolveSpacing(py);\n\n // Resolve margin\n const marginAll = resolveSpacing(margin ?? m);\n const marginXVal = resolveSpacing(mx);\n const marginYVal = resolveSpacing(my);\n\n // Resolve gap values — use conditional spreads to avoid setting\n // rowGap/columnGap to undefined, which clears the gap shorthand\n // in browsers (setting `style.rowGap = ''` removes the value\n // that `style.gap` set for row-gap).\n const resolvedGap = resolveSpacing(gap);\n const resolvedRowGap = resolveSpacing(rowGap);\n const resolvedColumnGap = resolveSpacing(columnGap);\n\n const computedStyle: React.CSSProperties = {\n display: inline ? \"inline-grid\" : \"grid\",\n gridTemplateColumns,\n gridTemplateRows: rows,\n ...(resolvedGap !== undefined ? { gap: resolvedGap } : {}),\n ...(resolvedRowGap !== undefined ? { rowGap: resolvedRowGap } : {}),\n ...(resolvedColumnGap !== undefined\n ? { columnGap: resolvedColumnGap }\n : {}),\n alignItems: align,\n justifyItems,\n alignContent,\n justifyContent,\n\n // Padding\n ...(paddingAll ? { padding: paddingAll } : {}),\n ...(paddingXVal\n ? { paddingLeft: paddingXVal, paddingRight: paddingXVal }\n : {}),\n ...(paddingYVal\n ? { paddingTop: paddingYVal, paddingBottom: paddingYVal }\n : {}),\n ...(resolveSpacing(pt) ? { paddingTop: resolveSpacing(pt) } : {}),\n ...(resolveSpacing(pr) ? { paddingRight: resolveSpacing(pr) } : {}),\n ...(resolveSpacing(pb) ? { paddingBottom: resolveSpacing(pb) } : {}),\n ...(resolveSpacing(pl) ? { paddingLeft: resolveSpacing(pl) } : {}),\n\n // Margin\n ...(marginAll ? { margin: marginAll } : {}),\n ...(marginXVal\n ? { marginLeft: marginXVal, marginRight: marginXVal }\n : {}),\n ...(marginYVal\n ? { marginTop: marginYVal, marginBottom: marginYVal }\n : {}),\n ...(resolveSpacing(mt) ? { marginTop: resolveSpacing(mt) } : {}),\n ...(resolveSpacing(mr) ? { marginRight: resolveSpacing(mr) } : {}),\n ...(resolveSpacing(mb) ? { marginBottom: resolveSpacing(mb) } : {}),\n ...(resolveSpacing(ml) ? { marginLeft: resolveSpacing(ml) } : {}),\n\n // Visual\n ...(background\n ? { backgroundColor: bgMap[background] || background }\n : {}),\n ...(border\n ? {\n border:\n border === true\n ? `1px solid ${tokens.colors.border.default}`\n : (border as string),\n }\n : {}),\n ...(borderRadius\n ? {\n borderRadius:\n (tokens.borderRadius as Record<string, string>)[\n borderRadius as string\n ] || borderRadius,\n }\n : {}),\n ...(shadow && shadow !== \"glow\"\n ? {\n boxShadow:\n (tokens.shadows as unknown as Record<string, string>)[\n shadow as string\n ] || shadow,\n }\n : {}),\n\n // Size\n width: resolveSize(resolveResponsive(width, breakpoint)),\n height: resolveSize(resolveResponsive(height, breakpoint)),\n minWidth: resolveSize(minWidth),\n minHeight: resolveSize(minHeight),\n maxWidth: resolveSize(maxWidth),\n maxHeight: resolveSize(maxHeight),\n overflow,\n position,\n flex,\n flexGrow,\n flexShrink,\n\n ...style,\n };\n\n return (\n <Component ref={ref} style={computedStyle} {...rest}>\n {children}\n </Component>\n );\n }),\n);\n\nexport default Grid;\n"],"mappings":"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"}
|
|
@@ -1,31 +1,38 @@
|
|
|
1
|
-
import { jsx } from "react/jsx-runtime";
|
|
2
1
|
import { memo } from "react";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
//#region src/react/core/layout/Spacer.tsx
|
|
4
|
+
/**
|
|
5
|
+
* @zendir/ui - Spacer Layout Primitive
|
|
6
|
+
*
|
|
7
|
+
* Flexible space filler for Flex and Stack layouts.
|
|
8
|
+
* Expands to fill available space, pushing siblings apart.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```tsx
|
|
12
|
+
* <Flex align="center" gap="sm">
|
|
13
|
+
* <H3>Telemetry</H3>
|
|
14
|
+
* <Spacer />
|
|
15
|
+
* <Button variant="secondary" size="small">Refresh</Button>
|
|
16
|
+
* <Button size="small">Export</Button>
|
|
17
|
+
* </Flex>
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
var Spacer = memo(function Spacer({ size }) {
|
|
21
|
+
const resolvedSize = typeof size === "number" ? `${size}px` : size;
|
|
22
|
+
if (resolvedSize) return /* @__PURE__ */ jsx("div", {
|
|
23
|
+
"aria-hidden": "true",
|
|
24
|
+
style: {
|
|
25
|
+
flexShrink: 0,
|
|
26
|
+
width: resolvedSize,
|
|
27
|
+
height: resolvedSize
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
return /* @__PURE__ */ jsx("div", {
|
|
31
|
+
"aria-hidden": "true",
|
|
32
|
+
style: { flex: "1 1 0%" }
|
|
33
|
+
});
|
|
27
34
|
});
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
//# sourceMappingURL=Spacer.js.map
|
|
35
|
+
//#endregion
|
|
36
|
+
export { Spacer, Spacer as default };
|
|
37
|
+
|
|
38
|
+
//# sourceMappingURL=Spacer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Spacer.js","sources":["../../../../src/react/core/layout/Spacer.tsx"],"sourcesContent":["/**\
|
|
1
|
+
{"version":3,"file":"Spacer.js","names":[],"sources":["../../../../src/react/core/layout/Spacer.tsx"],"sourcesContent":["/**\n * @zendir/ui - Spacer Layout Primitive\n *\n * Flexible space filler for Flex and Stack layouts.\n * Expands to fill available space, pushing siblings apart.\n *\n * @example\n * ```tsx\n * <Flex align=\"center\" gap=\"sm\">\n * <H3>Telemetry</H3>\n * <Spacer />\n * <Button variant=\"secondary\" size=\"small\">Refresh</Button>\n * <Button size=\"small\">Export</Button>\n * </Flex>\n * ```\n */\n\nimport React, { memo } from \"react\";\n\nexport interface SpacerProps {\n /** Fixed size instead of flexible (spacing token compatible, number → px) */\n size?: string | number;\n}\n\nexport const Spacer = memo(function Spacer({\n size,\n}: SpacerProps): React.ReactElement {\n const resolvedSize = typeof size === \"number\" ? `${size}px` : size;\n\n if (resolvedSize) {\n return (\n <div\n aria-hidden=\"true\"\n style={{\n flexShrink: 0,\n width: resolvedSize,\n height: resolvedSize,\n }}\n />\n );\n }\n\n return (\n <div\n aria-hidden=\"true\"\n style={{\n flex: \"1 1 0%\",\n }}\n />\n );\n});\n\nexport default Spacer;\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAwBA,IAAa,SAAS,KAAK,SAAS,OAAO,EACzC,QACkC;CAClC,MAAM,eAAe,OAAO,SAAS,WAAW,GAAG,KAAK,MAAM;CAE9D,IAAI,cACF,OACE,oBAAC,OAAD;EACE,eAAY;EACZ,OAAO;GACL,YAAY;GACZ,OAAO;GACP,QAAQ;EACV;CACD,CAAA;CAIL,OACE,oBAAC,OAAD;EACE,eAAY;EACZ,OAAO,EACL,MAAM,SACR;CACD,CAAA;AAEL,CAAC"}
|
|
@@ -1,21 +1,20 @@
|
|
|
1
1
|
import { default as React } from 'react';
|
|
2
2
|
import { ResponsiveValue } from './useBreakpoint';
|
|
3
3
|
import { SpacingToken } from './responsive';
|
|
4
|
-
|
|
5
4
|
type SpacingInput = SpacingToken | string | number;
|
|
6
5
|
export interface StackProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
7
6
|
/** Element type to render */
|
|
8
7
|
as?: React.ElementType;
|
|
9
8
|
/** Stack direction */
|
|
10
|
-
direction?: ResponsiveValue<
|
|
9
|
+
direction?: ResponsiveValue<"row" | "column" | "row-reverse" | "column-reverse">;
|
|
11
10
|
/** Space between children (spacing token, px, or CSS string) */
|
|
12
11
|
spacing?: ResponsiveValue<SpacingInput>;
|
|
13
12
|
/** Align items (cross-axis) */
|
|
14
|
-
align?:
|
|
13
|
+
align?: "flex-start" | "flex-end" | "center" | "baseline" | "stretch";
|
|
15
14
|
/** Justify content (main-axis) */
|
|
16
|
-
justify?:
|
|
15
|
+
justify?: "flex-start" | "flex-end" | "center" | "space-between" | "space-around" | "space-evenly";
|
|
17
16
|
/** Flex wrap */
|
|
18
|
-
wrap?:
|
|
17
|
+
wrap?: "nowrap" | "wrap" | "wrap-reverse";
|
|
19
18
|
/** Full width */
|
|
20
19
|
fullWidth?: boolean;
|
|
21
20
|
/** Full height */
|