@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,108 +1,114 @@
|
|
|
1
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { memo } from "react";
|
|
3
1
|
import { useTheme } from "../../theme/ThemeProvider.js";
|
|
4
|
-
|
|
5
|
-
|
|
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
|
-
|
|
2
|
+
import { memo } from "react";
|
|
3
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
4
|
+
//#region src/react/core/layout/Divider.tsx
|
|
5
|
+
/**
|
|
6
|
+
* @zendir/ui - Divider
|
|
7
|
+
*
|
|
8
|
+
* Visual separator line following Astro UX Design System.
|
|
9
|
+
* Theme-aware with muted border colors. Supports horizontal and vertical orientation.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```tsx
|
|
13
|
+
* <VStack spacing="md">
|
|
14
|
+
* <Section1 />
|
|
15
|
+
* <Divider />
|
|
16
|
+
* <Section2 />
|
|
17
|
+
* </VStack>
|
|
18
|
+
*
|
|
19
|
+
* <HStack spacing="md">
|
|
20
|
+
* <Panel1 />
|
|
21
|
+
* <Divider orientation="vertical" />
|
|
22
|
+
* <Panel2 />
|
|
23
|
+
* </HStack>
|
|
24
|
+
*
|
|
25
|
+
* <Divider label="OR" />
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
var Divider = memo(function Divider({ orientation = "horizontal", label, spacing, color, dashed = false, style, ...rest }) {
|
|
29
|
+
const { tokens } = useTheme();
|
|
30
|
+
const lineColor = color || tokens.colors.border.muted;
|
|
31
|
+
const borderStyle = dashed ? "dashed" : "solid";
|
|
32
|
+
if (orientation === "vertical") return /* @__PURE__ */ jsx("div", {
|
|
33
|
+
role: "separator",
|
|
34
|
+
"aria-orientation": "vertical",
|
|
35
|
+
style: {
|
|
36
|
+
width: "1px",
|
|
37
|
+
alignSelf: "stretch",
|
|
38
|
+
backgroundColor: lineColor,
|
|
39
|
+
flexShrink: 0,
|
|
40
|
+
...spacing ? { margin: `0 ${spacing}` } : {},
|
|
41
|
+
...dashed ? {
|
|
42
|
+
backgroundColor: "transparent",
|
|
43
|
+
borderLeft: `1px ${borderStyle} ${lineColor}`
|
|
44
|
+
} : {},
|
|
45
|
+
...style
|
|
46
|
+
},
|
|
47
|
+
...rest
|
|
48
|
+
});
|
|
49
|
+
if (label) return /* @__PURE__ */ jsxs("div", {
|
|
50
|
+
role: "separator",
|
|
51
|
+
style: {
|
|
52
|
+
display: "flex",
|
|
53
|
+
alignItems: "center",
|
|
54
|
+
gap: tokens.spacing.sm,
|
|
55
|
+
...spacing ? { margin: `${spacing} 0` } : {},
|
|
56
|
+
...style
|
|
57
|
+
},
|
|
58
|
+
...rest,
|
|
59
|
+
children: [
|
|
60
|
+
/* @__PURE__ */ jsx("div", { style: {
|
|
61
|
+
flex: 1,
|
|
62
|
+
height: "1px",
|
|
63
|
+
backgroundColor: lineColor,
|
|
64
|
+
...dashed ? {
|
|
65
|
+
backgroundColor: "transparent",
|
|
66
|
+
borderTop: `1px ${borderStyle} ${lineColor}`
|
|
67
|
+
} : {}
|
|
68
|
+
} }),
|
|
69
|
+
/* @__PURE__ */ jsx("span", {
|
|
70
|
+
style: {
|
|
71
|
+
fontSize: tokens.typography.fontSize.xs,
|
|
72
|
+
fontWeight: tokens.typography.fontWeight.medium,
|
|
73
|
+
color: tokens.colors.text.tertiary,
|
|
74
|
+
fontFamily: tokens.typography.fontFamily.primary,
|
|
75
|
+
letterSpacing: tokens.typography.letterSpacing.wide,
|
|
76
|
+
textTransform: "uppercase",
|
|
77
|
+
flexShrink: 0,
|
|
78
|
+
padding: `0 ${tokens.spacing.xs}`
|
|
79
|
+
},
|
|
80
|
+
children: label
|
|
81
|
+
}),
|
|
82
|
+
/* @__PURE__ */ jsx("div", { style: {
|
|
83
|
+
flex: 1,
|
|
84
|
+
height: "1px",
|
|
85
|
+
backgroundColor: lineColor,
|
|
86
|
+
...dashed ? {
|
|
87
|
+
backgroundColor: "transparent",
|
|
88
|
+
borderTop: `1px ${borderStyle} ${lineColor}`
|
|
89
|
+
} : {}
|
|
90
|
+
} })
|
|
91
|
+
]
|
|
92
|
+
});
|
|
93
|
+
return /* @__PURE__ */ jsx("div", {
|
|
94
|
+
role: "separator",
|
|
95
|
+
"aria-orientation": "horizontal",
|
|
96
|
+
style: {
|
|
97
|
+
width: "100%",
|
|
98
|
+
height: "1px",
|
|
99
|
+
backgroundColor: lineColor,
|
|
100
|
+
flexShrink: 0,
|
|
101
|
+
...spacing ? { margin: `${spacing} 0` } : {},
|
|
102
|
+
...dashed ? {
|
|
103
|
+
backgroundColor: "transparent",
|
|
104
|
+
borderTop: `1px ${borderStyle} ${lineColor}`
|
|
105
|
+
} : {},
|
|
106
|
+
...style
|
|
107
|
+
},
|
|
108
|
+
...rest
|
|
109
|
+
});
|
|
104
110
|
});
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
//# sourceMappingURL=Divider.js.map
|
|
111
|
+
//#endregion
|
|
112
|
+
export { Divider, Divider as default };
|
|
113
|
+
|
|
114
|
+
//# sourceMappingURL=Divider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Divider.js","sources":["../../../../src/react/core/layout/Divider.tsx"],"sourcesContent":["/**\
|
|
1
|
+
{"version":3,"file":"Divider.js","names":[],"sources":["../../../../src/react/core/layout/Divider.tsx"],"sourcesContent":["/**\n * @zendir/ui - Divider\n *\n * Visual separator line following Astro UX Design System.\n * Theme-aware with muted border colors. Supports horizontal and vertical orientation.\n *\n * @example\n * ```tsx\n * <VStack spacing=\"md\">\n * <Section1 />\n * <Divider />\n * <Section2 />\n * </VStack>\n *\n * <HStack spacing=\"md\">\n * <Panel1 />\n * <Divider orientation=\"vertical\" />\n * <Panel2 />\n * </HStack>\n *\n * <Divider label=\"OR\" />\n * ```\n */\n\nimport React, { memo } from \"react\";\nimport { useTheme } from \"../../theme\";\n\nexport interface DividerProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Divider orientation */\n orientation?: \"horizontal\" | \"vertical\";\n /** Optional centered label text */\n label?: string;\n /** Spacing around the divider (CSS value) */\n spacing?: string;\n /** Color override */\n color?: string;\n /** Dashed style */\n dashed?: boolean;\n}\n\nexport const Divider = memo(function Divider({\n orientation = \"horizontal\",\n label,\n spacing,\n color,\n dashed = false,\n style,\n ...rest\n}: DividerProps): React.ReactElement {\n const { tokens } = useTheme();\n\n const lineColor = color || tokens.colors.border.muted;\n const borderStyle = dashed ? \"dashed\" : \"solid\";\n\n if (orientation === \"vertical\") {\n return (\n <div\n role=\"separator\"\n aria-orientation=\"vertical\"\n style={{\n width: \"1px\",\n alignSelf: \"stretch\",\n backgroundColor: lineColor,\n flexShrink: 0,\n ...(spacing ? { margin: `0 ${spacing}` } : {}),\n ...(dashed\n ? {\n backgroundColor: \"transparent\",\n borderLeft: `1px ${borderStyle} ${lineColor}`,\n }\n : {}),\n ...style,\n }}\n {...rest}\n />\n );\n }\n\n // Horizontal with optional label\n if (label) {\n return (\n <div\n role=\"separator\"\n style={{\n display: \"flex\",\n alignItems: \"center\",\n gap: tokens.spacing.sm,\n ...(spacing ? { margin: `${spacing} 0` } : {}),\n ...style,\n }}\n {...rest}\n >\n <div\n style={{\n flex: 1,\n height: \"1px\",\n backgroundColor: lineColor,\n ...(dashed\n ? {\n backgroundColor: \"transparent\",\n borderTop: `1px ${borderStyle} ${lineColor}`,\n }\n : {}),\n }}\n />\n <span\n style={{\n fontSize: tokens.typography.fontSize.xs,\n fontWeight: tokens.typography.fontWeight.medium,\n color: tokens.colors.text.tertiary,\n fontFamily: tokens.typography.fontFamily.primary,\n letterSpacing: tokens.typography.letterSpacing.wide,\n textTransform: \"uppercase\",\n flexShrink: 0,\n padding: `0 ${tokens.spacing.xs}`,\n }}\n >\n {label}\n </span>\n <div\n style={{\n flex: 1,\n height: \"1px\",\n backgroundColor: lineColor,\n ...(dashed\n ? {\n backgroundColor: \"transparent\",\n borderTop: `1px ${borderStyle} ${lineColor}`,\n }\n : {}),\n }}\n />\n </div>\n );\n }\n\n return (\n <div\n role=\"separator\"\n aria-orientation=\"horizontal\"\n style={{\n width: \"100%\",\n height: \"1px\",\n backgroundColor: lineColor,\n flexShrink: 0,\n ...(spacing ? { margin: `${spacing} 0` } : {}),\n ...(dashed\n ? {\n backgroundColor: \"transparent\",\n borderTop: `1px ${borderStyle} ${lineColor}`,\n }\n : {}),\n ...style,\n }}\n {...rest}\n />\n );\n});\n\nexport default Divider;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAwCA,IAAa,UAAU,KAAK,SAAS,QAAQ,EAC3C,cAAc,cACd,OACA,SACA,OACA,SAAS,OACT,OACA,GAAG,QACgC;CACnC,MAAM,EAAE,WAAW,SAAS;CAE5B,MAAM,YAAY,SAAS,OAAO,OAAO,OAAO;CAChD,MAAM,cAAc,SAAS,WAAW;CAExC,IAAI,gBAAgB,YAClB,OACE,oBAAC,OAAD;EACE,MAAK;EACL,oBAAiB;EACjB,OAAO;GACL,OAAO;GACP,WAAW;GACX,iBAAiB;GACjB,YAAY;GACZ,GAAI,UAAU,EAAE,QAAQ,KAAK,UAAU,IAAI,CAAC;GAC5C,GAAI,SACA;IACE,iBAAiB;IACjB,YAAY,OAAO,YAAY,GAAG;GACpC,IACA,CAAC;GACL,GAAG;EACL;EACA,GAAI;CACL,CAAA;CAKL,IAAI,OACF,OACE,qBAAC,OAAD;EACE,MAAK;EACL,OAAO;GACL,SAAS;GACT,YAAY;GACZ,KAAK,OAAO,QAAQ;GACpB,GAAI,UAAU,EAAE,QAAQ,GAAG,QAAQ,IAAI,IAAI,CAAC;GAC5C,GAAG;EACL;EACA,GAAI;YATN;GAWE,oBAAC,OAAD,EACE,OAAO;IACL,MAAM;IACN,QAAQ;IACR,iBAAiB;IACjB,GAAI,SACA;KACE,iBAAiB;KACjB,WAAW,OAAO,YAAY,GAAG;IACnC,IACA,CAAC;GACP,EACD,CAAA;GACD,oBAAC,QAAD;IACE,OAAO;KACL,UAAU,OAAO,WAAW,SAAS;KACrC,YAAY,OAAO,WAAW,WAAW;KACzC,OAAO,OAAO,OAAO,KAAK;KAC1B,YAAY,OAAO,WAAW,WAAW;KACzC,eAAe,OAAO,WAAW,cAAc;KAC/C,eAAe;KACf,YAAY;KACZ,SAAS,KAAK,OAAO,QAAQ;IAC/B;cAEC;GACG,CAAA;GACN,oBAAC,OAAD,EACE,OAAO;IACL,MAAM;IACN,QAAQ;IACR,iBAAiB;IACjB,GAAI,SACA;KACE,iBAAiB;KACjB,WAAW,OAAO,YAAY,GAAG;IACnC,IACA,CAAC;GACP,EACD,CAAA;EACE;;CAIT,OACE,oBAAC,OAAD;EACE,MAAK;EACL,oBAAiB;EACjB,OAAO;GACL,OAAO;GACP,QAAQ;GACR,iBAAiB;GACjB,YAAY;GACZ,GAAI,UAAU,EAAE,QAAQ,GAAG,QAAQ,IAAI,IAAI,CAAC;GAC5C,GAAI,SACA;IACE,iBAAiB;IACjB,WAAW,OAAO,YAAY,GAAG;GACnC,IACA,CAAC;GACL,GAAG;EACL;EACA,GAAI;CACL,CAAA;AAEL,CAAC"}
|
|
@@ -2,13 +2,12 @@ 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
6
|
export interface FlexProps extends BoxProps {
|
|
8
7
|
/** Flex direction */
|
|
9
|
-
direction?: ResponsiveValue<
|
|
8
|
+
direction?: ResponsiveValue<"row" | "column" | "row-reverse" | "column-reverse">;
|
|
10
9
|
/** Flex wrap */
|
|
11
|
-
wrap?: ResponsiveValue<
|
|
10
|
+
wrap?: ResponsiveValue<"nowrap" | "wrap" | "wrap-reverse">;
|
|
12
11
|
/** Gap between children (spacing token, px number, or CSS string) */
|
|
13
12
|
gap?: ResponsiveValue<SpacingInput>;
|
|
14
13
|
/** Row gap (overrides gap for rows) */
|
|
@@ -16,9 +15,9 @@ export interface FlexProps extends BoxProps {
|
|
|
16
15
|
/** Column gap (overrides gap for columns) */
|
|
17
16
|
columnGap?: ResponsiveValue<SpacingInput>;
|
|
18
17
|
/** Align items (cross-axis) */
|
|
19
|
-
align?: ResponsiveValue<
|
|
18
|
+
align?: ResponsiveValue<"flex-start" | "flex-end" | "center" | "baseline" | "stretch">;
|
|
20
19
|
/** Justify content (main-axis) */
|
|
21
|
-
justify?: ResponsiveValue<
|
|
20
|
+
justify?: ResponsiveValue<"flex-start" | "flex-end" | "center" | "space-between" | "space-around" | "space-evenly">;
|
|
22
21
|
/** Shorthand: set both direction="column" */
|
|
23
22
|
column?: boolean;
|
|
24
23
|
/** Shorthand: center both axes */
|
|
@@ -1,128 +1,124 @@
|
|
|
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
|
-
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/Flex.tsx
|
|
7
|
+
/**
|
|
8
|
+
* @zendir/ui - Flex Layout Primitive
|
|
9
|
+
*
|
|
10
|
+
* Flexbox container with theme-aware spacing and responsive direction/alignment.
|
|
11
|
+
* The workhorse layout component for horizontal and vertical arrangements.
|
|
12
|
+
*
|
|
13
|
+
* Astro UX Compliance:
|
|
14
|
+
* - 4px grid spacing tokens
|
|
15
|
+
* - Responsive gap for mobile → mission control
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```tsx
|
|
19
|
+
* // Horizontal row with centered items
|
|
20
|
+
* <Flex gap="md" align="center">
|
|
21
|
+
* <StatusIndicator status="normal" />
|
|
22
|
+
* <Body1>All Systems Nominal</Body1>
|
|
23
|
+
* </Flex>
|
|
24
|
+
*
|
|
25
|
+
* // Vertical column, responsive gap
|
|
26
|
+
* <Flex direction="column" gap={['sm', 'md', 'lg']}>
|
|
27
|
+
* <TelemetryCard />
|
|
28
|
+
* <LinkBudgetCard />
|
|
29
|
+
* </Flex>
|
|
30
|
+
*
|
|
31
|
+
* // Space between items
|
|
32
|
+
* <Flex justify="space-between" align="center">
|
|
33
|
+
* <H3>Telemetry</H3>
|
|
34
|
+
* <Button variant="secondary">Refresh</Button>
|
|
35
|
+
* </Flex>
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
38
|
+
var Flex = memo(forwardRef(function Flex({ direction, wrap, gap, rowGap, columnGap, align, justify, column = false, center = false, inline = false, style, children, padding, p, px, py, pt, pr, pb, pl, margin, m, mx, my, mt, mr, mb, ml, background, border, borderRadius, shadow, display: _display, width, height, minWidth, minHeight, maxWidth, maxHeight, overflow, position, flex: flexProp, flexGrow, flexShrink, as: Component = "div", ...rest }, ref) {
|
|
39
|
+
const { tokens } = useTheme();
|
|
40
|
+
const { breakpoint } = useBreakpoint();
|
|
41
|
+
const resolveSpacing = (val) => resolveResponsiveSpacing(val, breakpoint, tokens);
|
|
42
|
+
const paddingAll = resolveSpacing(padding ?? p);
|
|
43
|
+
const paddingXVal = resolveSpacing(px);
|
|
44
|
+
const paddingYVal = resolveSpacing(py);
|
|
45
|
+
const marginAll = resolveSpacing(margin ?? m);
|
|
46
|
+
const marginXVal = resolveSpacing(mx);
|
|
47
|
+
const marginYVal = resolveSpacing(my);
|
|
48
|
+
const bgMap = {
|
|
49
|
+
base: tokens.colors.background.base,
|
|
50
|
+
surface: tokens.colors.background.surface,
|
|
51
|
+
elevated: tokens.colors.background.elevated,
|
|
52
|
+
overlay: tokens.colors.background.overlay
|
|
53
|
+
};
|
|
54
|
+
const resolveSize = (val) => {
|
|
55
|
+
if (val === void 0) return void 0;
|
|
56
|
+
if (typeof val === "number") return `${val}px`;
|
|
57
|
+
return val;
|
|
58
|
+
};
|
|
59
|
+
const resolvedDirection = column ? "column" : resolveResponsive(direction, breakpoint) ?? "row";
|
|
60
|
+
const resolvedGap = resolveSpacing(gap);
|
|
61
|
+
const resolvedRowGap = resolveSpacing(rowGap);
|
|
62
|
+
const resolvedColumnGap = resolveSpacing(columnGap);
|
|
63
|
+
return /* @__PURE__ */ jsx(Component, {
|
|
64
|
+
ref,
|
|
65
|
+
style: {
|
|
66
|
+
display: inline ? "inline-flex" : "flex",
|
|
67
|
+
flexDirection: resolvedDirection,
|
|
68
|
+
flexWrap: resolveResponsive(wrap, breakpoint),
|
|
69
|
+
...resolvedGap !== void 0 ? { gap: resolvedGap } : {},
|
|
70
|
+
...resolvedRowGap !== void 0 ? { rowGap: resolvedRowGap } : {},
|
|
71
|
+
...resolvedColumnGap !== void 0 ? { columnGap: resolvedColumnGap } : {},
|
|
72
|
+
alignItems: center ? "center" : resolveResponsive(align, breakpoint),
|
|
73
|
+
justifyContent: center ? "center" : resolveResponsive(justify, breakpoint),
|
|
74
|
+
...paddingAll ? { padding: paddingAll } : {},
|
|
75
|
+
...paddingXVal ? {
|
|
76
|
+
paddingLeft: paddingXVal,
|
|
77
|
+
paddingRight: paddingXVal
|
|
78
|
+
} : {},
|
|
79
|
+
...paddingYVal ? {
|
|
80
|
+
paddingTop: paddingYVal,
|
|
81
|
+
paddingBottom: paddingYVal
|
|
82
|
+
} : {},
|
|
83
|
+
...resolveSpacing(pt) ? { paddingTop: resolveSpacing(pt) } : {},
|
|
84
|
+
...resolveSpacing(pr) ? { paddingRight: resolveSpacing(pr) } : {},
|
|
85
|
+
...resolveSpacing(pb) ? { paddingBottom: resolveSpacing(pb) } : {},
|
|
86
|
+
...resolveSpacing(pl) ? { paddingLeft: resolveSpacing(pl) } : {},
|
|
87
|
+
...marginAll ? { margin: marginAll } : {},
|
|
88
|
+
...marginXVal ? {
|
|
89
|
+
marginLeft: marginXVal,
|
|
90
|
+
marginRight: marginXVal
|
|
91
|
+
} : {},
|
|
92
|
+
...marginYVal ? {
|
|
93
|
+
marginTop: marginYVal,
|
|
94
|
+
marginBottom: marginYVal
|
|
95
|
+
} : {},
|
|
96
|
+
...resolveSpacing(mt) ? { marginTop: resolveSpacing(mt) } : {},
|
|
97
|
+
...resolveSpacing(mr) ? { marginRight: resolveSpacing(mr) } : {},
|
|
98
|
+
...resolveSpacing(mb) ? { marginBottom: resolveSpacing(mb) } : {},
|
|
99
|
+
...resolveSpacing(ml) ? { marginLeft: resolveSpacing(ml) } : {},
|
|
100
|
+
...background ? { backgroundColor: bgMap[background] || background } : {},
|
|
101
|
+
...border ? { border: border === true ? `1px solid ${tokens.colors.border.default}` : border } : {},
|
|
102
|
+
...borderRadius ? { borderRadius: tokens.borderRadius[borderRadius] || borderRadius } : {},
|
|
103
|
+
...shadow && shadow !== "glow" ? { boxShadow: tokens.shadows[shadow] || shadow } : {},
|
|
104
|
+
width: resolveSize(resolveResponsive(width, breakpoint)),
|
|
105
|
+
height: resolveSize(resolveResponsive(height, breakpoint)),
|
|
106
|
+
minWidth: resolveSize(minWidth),
|
|
107
|
+
minHeight: resolveSize(minHeight),
|
|
108
|
+
maxWidth: resolveSize(maxWidth),
|
|
109
|
+
maxHeight: resolveSize(maxHeight),
|
|
110
|
+
overflow,
|
|
111
|
+
position,
|
|
112
|
+
flex: flexProp,
|
|
113
|
+
flexGrow,
|
|
114
|
+
flexShrink,
|
|
115
|
+
...style
|
|
116
|
+
},
|
|
117
|
+
...rest,
|
|
118
|
+
children
|
|
119
|
+
});
|
|
124
120
|
}));
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
//# sourceMappingURL=Flex.js.map
|
|
121
|
+
//#endregion
|
|
122
|
+
export { Flex, Flex as default };
|
|
123
|
+
|
|
124
|
+
//# sourceMappingURL=Flex.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Flex.js","sources":["../../../../src/react/core/layout/Flex.tsx"],"sourcesContent":["/**\r\n * @zendir/ui - Flex Layout Primitive\r\n * \r\n * Flexbox container with theme-aware spacing and responsive direction/alignment.\r\n * The workhorse layout component for horizontal and vertical arrangements.\r\n * \r\n * Astro UX Compliance:\r\n * - 4px grid spacing tokens\r\n * - Responsive gap for mobile → mission control\r\n * \r\n * @example\r\n * ```tsx\r\n * // Horizontal row with centered items\r\n * <Flex gap=\"md\" align=\"center\">\r\n * <StatusIndicator status=\"normal\" />\r\n * <Body1>All Systems Nominal</Body1>\r\n * </Flex>\r\n * \r\n * // Vertical column, responsive gap\r\n * <Flex direction=\"column\" gap={['sm', 'md', 'lg']}>\r\n * <TelemetryCard />\r\n * <LinkBudgetCard />\r\n * </Flex>\r\n * \r\n * // Space between items\r\n * <Flex justify=\"space-between\" align=\"center\">\r\n * <H3>Telemetry</H3>\r\n * <Button variant=\"secondary\">Refresh</Button>\r\n * </Flex>\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 FlexProps extends BoxProps {\r\n /** Flex direction */\r\n direction?: ResponsiveValue<'row' | 'column' | 'row-reverse' | 'column-reverse'>;\r\n /** Flex wrap */\r\n wrap?: ResponsiveValue<'nowrap' | 'wrap' | 'wrap-reverse'>;\r\n /** Gap between children (spacing token, px number, or CSS string) */\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) */\r\n align?: ResponsiveValue<'flex-start' | 'flex-end' | 'center' | 'baseline' | 'stretch'>;\r\n /** Justify content (main-axis) */\r\n justify?: ResponsiveValue<'flex-start' | 'flex-end' | 'center' | 'space-between' | 'space-around' | 'space-evenly'>;\r\n /** Shorthand: set both direction=\"column\" */\r\n column?: boolean;\r\n /** Shorthand: center both axes */\r\n center?: boolean;\r\n /** Make flex container inline */\r\n inline?: boolean;\r\n}\r\n\r\nexport const Flex = memo(forwardRef<HTMLDivElement, FlexProps>(function Flex(\r\n {\r\n direction,\r\n wrap,\r\n gap,\r\n rowGap,\r\n columnGap,\r\n align,\r\n justify,\r\n column = false,\r\n center = false,\r\n inline = false,\r\n style,\r\n children,\r\n // Extract BoxProps we handle ourselves\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 display: _display,\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: flexProp,\r\n flexGrow,\r\n flexShrink,\r\n as: Component = 'div',\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 // 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 // Background color 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 const resolvedDirection = column\r\n ? 'column'\r\n : resolveResponsive(direction, breakpoint) ?? 'row';\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-flex' : 'flex',\r\n flexDirection: resolvedDirection,\r\n flexWrap: resolveResponsive(wrap, breakpoint),\r\n ...(resolvedGap !== undefined ? { gap: resolvedGap } : {}),\r\n ...(resolvedRowGap !== undefined ? { rowGap: resolvedRowGap } : {}),\r\n ...(resolvedColumnGap !== undefined ? { columnGap: resolvedColumnGap } : {}),\r\n alignItems: center\r\n ? 'center'\r\n : resolveResponsive(align, breakpoint),\r\n justifyContent: center\r\n ? 'center'\r\n : resolveResponsive(justify, breakpoint),\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: flexProp,\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 Flex;\r\n"],"names":["Flex"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Flex.js","names":[],"sources":["../../../../src/react/core/layout/Flex.tsx"],"sourcesContent":["/**\n * @zendir/ui - Flex Layout Primitive\n *\n * Flexbox container with theme-aware spacing and responsive direction/alignment.\n * The workhorse layout component for horizontal and vertical arrangements.\n *\n * Astro UX Compliance:\n * - 4px grid spacing tokens\n * - Responsive gap for mobile → mission control\n *\n * @example\n * ```tsx\n * // Horizontal row with centered items\n * <Flex gap=\"md\" align=\"center\">\n * <StatusIndicator status=\"normal\" />\n * <Body1>All Systems Nominal</Body1>\n * </Flex>\n *\n * // Vertical column, responsive gap\n * <Flex direction=\"column\" gap={['sm', 'md', 'lg']}>\n * <TelemetryCard />\n * <LinkBudgetCard />\n * </Flex>\n *\n * // Space between items\n * <Flex justify=\"space-between\" align=\"center\">\n * <H3>Telemetry</H3>\n * <Button variant=\"secondary\">Refresh</Button>\n * </Flex>\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 FlexProps extends BoxProps {\n /** Flex direction */\n direction?: ResponsiveValue<\n \"row\" | \"column\" | \"row-reverse\" | \"column-reverse\"\n >;\n /** Flex wrap */\n wrap?: ResponsiveValue<\"nowrap\" | \"wrap\" | \"wrap-reverse\">;\n /** Gap between children (spacing token, px number, or CSS string) */\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) */\n align?: ResponsiveValue<\n \"flex-start\" | \"flex-end\" | \"center\" | \"baseline\" | \"stretch\"\n >;\n /** Justify content (main-axis) */\n justify?: ResponsiveValue<\n | \"flex-start\"\n | \"flex-end\"\n | \"center\"\n | \"space-between\"\n | \"space-around\"\n | \"space-evenly\"\n >;\n /** Shorthand: set both direction=\"column\" */\n column?: boolean;\n /** Shorthand: center both axes */\n center?: boolean;\n /** Make flex container inline */\n inline?: boolean;\n}\n\nexport const Flex = memo(\n forwardRef<HTMLDivElement, FlexProps>(function Flex(\n {\n direction,\n wrap,\n gap,\n rowGap,\n columnGap,\n align,\n justify,\n column = false,\n center = false,\n inline = false,\n style,\n children,\n // Extract BoxProps we handle ourselves\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 display: _display,\n width,\n height,\n minWidth,\n minHeight,\n maxWidth,\n maxHeight,\n overflow,\n position,\n flex: flexProp,\n flexGrow,\n flexShrink,\n as: Component = \"div\",\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 // 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 // Background color 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 const resolvedDirection = column\n ? \"column\"\n : (resolveResponsive(direction, breakpoint) ?? \"row\");\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-flex\" : \"flex\",\n flexDirection: resolvedDirection,\n flexWrap: resolveResponsive(wrap, breakpoint),\n ...(resolvedGap !== undefined ? { gap: resolvedGap } : {}),\n ...(resolvedRowGap !== undefined ? { rowGap: resolvedRowGap } : {}),\n ...(resolvedColumnGap !== undefined\n ? { columnGap: resolvedColumnGap }\n : {}),\n alignItems: center ? \"center\" : resolveResponsive(align, breakpoint),\n justifyContent: center\n ? \"center\"\n : resolveResponsive(justify, breakpoint),\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: flexProp,\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 Flex;\n"],"mappings":"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"}
|