@zendir/ui 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +19 -0
- package/LICENSE +21 -0
- package/README.md +589 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.js +421 -0
- package/dist/index.js.map +1 -0
- package/dist/react/3d/EarthViewer.d.ts +46 -0
- package/dist/react/3d/EarthViewer.js +836 -0
- package/dist/react/3d/EarthViewer.js.map +1 -0
- package/dist/react/3d/SolarSystemViewer.d.ts +43 -0
- package/dist/react/3d/SolarSystemViewer.js +372 -0
- package/dist/react/3d/SolarSystemViewer.js.map +1 -0
- package/dist/react/3d/ZenSpace3D.d.ts +16 -0
- package/dist/react/3d/ZenSpace3D.js +1253 -0
- package/dist/react/3d/ZenSpace3D.js.map +1 -0
- package/dist/react/3d/ZenSpace3DCesium.d.ts +9 -0
- package/dist/react/3d/ZenSpace3DCesium.js +186 -0
- package/dist/react/3d/ZenSpace3DCesium.js.map +1 -0
- package/dist/react/3d/ZenSpace3DShaders.d.ts +78 -0
- package/dist/react/3d/ZenSpace3DShaders.js +94 -0
- package/dist/react/3d/ZenSpace3DShaders.js.map +1 -0
- package/dist/react/3d/ZenSpace3DTypes.d.ts +614 -0
- package/dist/react/3d/ZenSpace3DUtils.d.ts +183 -0
- package/dist/react/3d/ZenSpace3DUtils.js +213 -0
- package/dist/react/3d/ZenSpace3DUtils.js.map +1 -0
- package/dist/react/3d/index.d.ts +23 -0
- package/dist/react/3d/threeLoader.d.ts +22 -0
- package/dist/react/3d/threeLoader.js +18 -0
- package/dist/react/3d/threeLoader.js.map +1 -0
- package/dist/react/astro/ClassificationBanner.d.ts +25 -0
- package/dist/react/astro/ClassificationBanner.js +83 -0
- package/dist/react/astro/ClassificationBanner.js.map +1 -0
- package/dist/react/astro/GlobalStatusBar.d.ts +42 -0
- package/dist/react/astro/GlobalStatusBar.js +165 -0
- package/dist/react/astro/GlobalStatusBar.js.map +1 -0
- package/dist/react/astro/MissionClock.d.ts +169 -0
- package/dist/react/astro/MissionClock.js +411 -0
- package/dist/react/astro/MissionClock.js.map +1 -0
- package/dist/react/astro/MonitoringIcon.d.ts +60 -0
- package/dist/react/astro/MonitoringIcon.js +369 -0
- package/dist/react/astro/MonitoringIcon.js.map +1 -0
- package/dist/react/astro/Notification.d.ts +42 -0
- package/dist/react/astro/Notification.js +156 -0
- package/dist/react/astro/Notification.js.map +1 -0
- package/dist/react/astro/Progress.d.ts +39 -0
- package/dist/react/astro/Progress.js +149 -0
- package/dist/react/astro/Progress.js.map +1 -0
- package/dist/react/astro/SimulationControls.d.ts +136 -0
- package/dist/react/astro/SimulationControls.js +668 -0
- package/dist/react/astro/SimulationControls.js.map +1 -0
- package/dist/react/astro/StatusIndicator.d.ts +34 -0
- package/dist/react/astro/StatusIndicator.js +189 -0
- package/dist/react/astro/StatusIndicator.js.map +1 -0
- package/dist/react/astro/UnifiedTimeline.d.ts +106 -0
- package/dist/react/astro/UnifiedTimeline.js +1768 -0
- package/dist/react/astro/UnifiedTimeline.js.map +1 -0
- package/dist/react/astro/index.d.ts +63 -0
- package/dist/react/cards/AccessCard.d.ts +37 -0
- package/dist/react/cards/AccessCard.js +410 -0
- package/dist/react/cards/AccessCard.js.map +1 -0
- package/dist/react/cards/OrbitCard.d.ts +31 -0
- package/dist/react/cards/OrbitCard.js +372 -0
- package/dist/react/cards/OrbitCard.js.map +1 -0
- package/dist/react/cards/SpacecraftCard.d.ts +54 -0
- package/dist/react/cards/SpacecraftCard.js +941 -0
- package/dist/react/cards/SpacecraftCard.js.map +1 -0
- package/dist/react/cards/TelemetryCard.d.ts +40 -0
- package/dist/react/cards/TelemetryCard.js +742 -0
- package/dist/react/cards/TelemetryCard.js.map +1 -0
- package/dist/react/cards/TelemetryStreamCard.d.ts +59 -0
- package/dist/react/cards/TelemetryStreamCard.js +309 -0
- package/dist/react/cards/TelemetryStreamCard.js.map +1 -0
- package/dist/react/cards/index.d.ts +13 -0
- package/dist/react/charts/GroundTrackMap.d.ts +112 -0
- package/dist/react/charts/GroundTrackMap.js +1123 -0
- package/dist/react/charts/GroundTrackMap.js.map +1 -0
- package/dist/react/charts/GroundTrackMapLeaflet.d.ts +26 -0
- package/dist/react/charts/GroundTrackMapLeaflet.js +571 -0
- package/dist/react/charts/GroundTrackMapLeaflet.js.map +1 -0
- package/dist/react/charts/groundTrackMapLeafletTiles.d.ts +22 -0
- package/dist/react/charts/groundTrackMapLeafletTiles.js +11 -0
- package/dist/react/charts/groundTrackMapLeafletTiles.js.map +1 -0
- package/dist/react/charts/groundTrackMapLeafletUtils.d.ts +24 -0
- package/dist/react/charts/groundTrackMapLeafletUtils.js +109 -0
- package/dist/react/charts/groundTrackMapLeafletUtils.js.map +1 -0
- package/dist/react/charts/index.d.ts +10 -0
- package/dist/react/charts/unified/AstroChart.d.ts +24 -0
- package/dist/react/charts/unified/AstroChart.js +1405 -0
- package/dist/react/charts/unified/AstroChart.js.map +1 -0
- package/dist/react/charts/unified/PowerOverviewChart.d.ts +73 -0
- package/dist/react/charts/unified/PowerOverviewChart.js +488 -0
- package/dist/react/charts/unified/PowerOverviewChart.js.map +1 -0
- package/dist/react/charts/unified/domain.d.ts +845 -0
- package/dist/react/charts/unified/domain.js +3168 -0
- package/dist/react/charts/unified/domain.js.map +1 -0
- package/dist/react/charts/unified/generators.d.ts +276 -0
- package/dist/react/charts/unified/generators.js +518 -0
- package/dist/react/charts/unified/generators.js.map +1 -0
- package/dist/react/charts/unified/index.d.ts +55 -0
- package/dist/react/charts/unified/presets.d.ts +290 -0
- package/dist/react/charts/unified/presets.js +999 -0
- package/dist/react/charts/unified/presets.js.map +1 -0
- package/dist/react/charts/unified/sync.d.ts +69 -0
- package/dist/react/charts/unified/sync.js +219 -0
- package/dist/react/charts/unified/sync.js.map +1 -0
- package/dist/react/charts/unified/theme.d.ts +447 -0
- package/dist/react/charts/unified/theme.js +562 -0
- package/dist/react/charts/unified/theme.js.map +1 -0
- package/dist/react/charts/unified/types.d.ts +826 -0
- package/dist/react/charts/unified/useChartStream.d.ts +58 -0
- package/dist/react/charts/unified/useChartStream.js +226 -0
- package/dist/react/charts/unified/useChartStream.js.map +1 -0
- package/dist/react/chatgpt/AppCard.d.ts +59 -0
- package/dist/react/chatgpt/AppCard.js +306 -0
- package/dist/react/chatgpt/AppCard.js.map +1 -0
- package/dist/react/chatgpt/ChatGPTCard.d.ts +6 -0
- package/dist/react/chatgpt/index.d.ts +167 -0
- package/dist/react/chatgpt/index.js +166 -0
- package/dist/react/chatgpt/index.js.map +1 -0
- package/dist/react/context/DisplaySettingsContext.d.ts +107 -0
- package/dist/react/context/DisplaySettingsContext.js +169 -0
- package/dist/react/context/DisplaySettingsContext.js.map +1 -0
- package/dist/react/context/index.d.ts +5 -0
- package/dist/react/core/ActivityPlanner.d.ts +45 -0
- package/dist/react/core/ActivityPlanner.js +532 -0
- package/dist/react/core/ActivityPlanner.js.map +1 -0
- package/dist/react/core/AppBar.d.ts +71 -0
- package/dist/react/core/AppBar.js +817 -0
- package/dist/react/core/AppBar.js.map +1 -0
- package/dist/react/core/AstroIcon.d.ts +84 -0
- package/dist/react/core/AstroIcon.js +1243 -0
- package/dist/react/core/AstroIcon.js.map +1 -0
- package/dist/react/core/Badge.d.ts +27 -0
- package/dist/react/core/Badge.js +134 -0
- package/dist/react/core/Badge.js.map +1 -0
- package/dist/react/core/Button.d.ts +26 -0
- package/dist/react/core/Button.js +306 -0
- package/dist/react/core/Button.js.map +1 -0
- package/dist/react/core/CardHeader.d.ts +34 -0
- package/dist/react/core/CardHeader.js +316 -0
- package/dist/react/core/CardHeader.js.map +1 -0
- package/dist/react/core/ChatPanel.d.ts +627 -0
- package/dist/react/core/ChatPanel.js +1144 -0
- package/dist/react/core/ChatPanel.js.map +1 -0
- package/dist/react/core/Checkbox.d.ts +26 -0
- package/dist/react/core/Checkbox.js +130 -0
- package/dist/react/core/Checkbox.js.map +1 -0
- package/dist/react/core/ColorPickerPanel.d.ts +25 -0
- package/dist/react/core/ColorPickerPanel.js +293 -0
- package/dist/react/core/ColorPickerPanel.js.map +1 -0
- package/dist/react/core/CommandBuilder.d.ts +74 -0
- package/dist/react/core/CommandBuilder.js +518 -0
- package/dist/react/core/CommandBuilder.js.map +1 -0
- package/dist/react/core/ConfirmDialog.d.ts +45 -0
- package/dist/react/core/ConfirmDialog.js +315 -0
- package/dist/react/core/ConfirmDialog.js.map +1 -0
- package/dist/react/core/ConnectionForm.d.ts +57 -0
- package/dist/react/core/ConnectionForm.js +496 -0
- package/dist/react/core/ConnectionForm.js.map +1 -0
- package/dist/react/core/Container.d.ts +51 -0
- package/dist/react/core/Container.js +670 -0
- package/dist/react/core/Container.js.map +1 -0
- package/dist/react/core/CopyButton.d.ts +39 -0
- package/dist/react/core/CopyButton.js +105 -0
- package/dist/react/core/CopyButton.js.map +1 -0
- package/dist/react/core/DataTable.d.ts +113 -0
- package/dist/react/core/DataTable.js +446 -0
- package/dist/react/core/DataTable.js.map +1 -0
- package/dist/react/core/DataValue.d.ts +64 -0
- package/dist/react/core/DataValue.js +545 -0
- package/dist/react/core/DataValue.js.map +1 -0
- package/dist/react/core/Dialog.d.ts +32 -0
- package/dist/react/core/Dialog.js +201 -0
- package/dist/react/core/Dialog.js.map +1 -0
- package/dist/react/core/FileExplorer.d.ts +65 -0
- package/dist/react/core/FileExplorer.js +520 -0
- package/dist/react/core/FileExplorer.js.map +1 -0
- package/dist/react/core/GlassCard.d.ts +129 -0
- package/dist/react/core/GlassCard.js +375 -0
- package/dist/react/core/GlassCard.js.map +1 -0
- package/dist/react/core/HeaderIconWithStatus.d.ts +39 -0
- package/dist/react/core/HeaderIconWithStatus.js +157 -0
- package/dist/react/core/HeaderIconWithStatus.js.map +1 -0
- package/dist/react/core/HexViewer.d.ts +143 -0
- package/dist/react/core/HexViewer.js +1106 -0
- package/dist/react/core/HexViewer.js.map +1 -0
- package/dist/react/core/Icon.d.ts +32 -0
- package/dist/react/core/Icon.js +142 -0
- package/dist/react/core/Icon.js.map +1 -0
- package/dist/react/core/ImageGallery.d.ts +41 -0
- package/dist/react/core/ImageGallery.js +320 -0
- package/dist/react/core/ImageGallery.js.map +1 -0
- package/dist/react/core/Input.d.ts +38 -0
- package/dist/react/core/Input.js +288 -0
- package/dist/react/core/Input.js.map +1 -0
- package/dist/react/core/LimitsBar.d.ts +51 -0
- package/dist/react/core/LimitsBar.js +200 -0
- package/dist/react/core/LimitsBar.js.map +1 -0
- package/dist/react/core/LogViewer.d.ts +61 -0
- package/dist/react/core/LogViewer.js +599 -0
- package/dist/react/core/LogViewer.js.map +1 -0
- package/dist/react/core/MessageStream.d.ts +58 -0
- package/dist/react/core/MessageStream.js +455 -0
- package/dist/react/core/MessageStream.js.map +1 -0
- package/dist/react/core/MissionCalendar.d.ts +81 -0
- package/dist/react/core/MissionCalendar.js +1049 -0
- package/dist/react/core/MissionCalendar.js.map +1 -0
- package/dist/react/core/NumberInput.d.ts +85 -0
- package/dist/react/core/NumberInput.js +507 -0
- package/dist/react/core/NumberInput.js.map +1 -0
- package/dist/react/core/PacketViewer.d.ts +73 -0
- package/dist/react/core/PacketViewer.js +431 -0
- package/dist/react/core/PacketViewer.js.map +1 -0
- package/dist/react/core/Pagination.d.ts +30 -0
- package/dist/react/core/Pagination.js +190 -0
- package/dist/react/core/Pagination.js.map +1 -0
- package/dist/react/core/PinInput.d.ts +41 -0
- package/dist/react/core/PinInput.js +210 -0
- package/dist/react/core/PinInput.js.map +1 -0
- package/dist/react/core/Popover.d.ts +55 -0
- package/dist/react/core/Popover.js +288 -0
- package/dist/react/core/Popover.js.map +1 -0
- package/dist/react/core/Select.d.ts +42 -0
- package/dist/react/core/Select.js +303 -0
- package/dist/react/core/Select.js.map +1 -0
- package/dist/react/core/SideNav.d.ts +103 -0
- package/dist/react/core/SideNav.js +551 -0
- package/dist/react/core/SideNav.js.map +1 -0
- package/dist/react/core/SidePanel.d.ts +33 -0
- package/dist/react/core/SidePanel.js +199 -0
- package/dist/react/core/SidePanel.js.map +1 -0
- package/dist/react/core/Tabs.d.ts +47 -0
- package/dist/react/core/Tabs.js +129 -0
- package/dist/react/core/Tabs.js.map +1 -0
- package/dist/react/core/Toast.d.ts +56 -0
- package/dist/react/core/Toast.js +229 -0
- package/dist/react/core/Toast.js.map +1 -0
- package/dist/react/core/Toggle.d.ts +22 -0
- package/dist/react/core/Toggle.js +151 -0
- package/dist/react/core/Toggle.js.map +1 -0
- package/dist/react/core/Tooltip.d.ts +19 -0
- package/dist/react/core/Tooltip.js +179 -0
- package/dist/react/core/Tooltip.js.map +1 -0
- package/dist/react/core/Typography.d.ts +127 -0
- package/dist/react/core/Typography.js +187 -0
- package/dist/react/core/Typography.js.map +1 -0
- package/dist/react/core/index.d.ts +108 -0
- package/dist/react/core/layout/Box.d.ts +77 -0
- package/dist/react/core/layout/Box.js +126 -0
- package/dist/react/core/layout/Box.js.map +1 -0
- package/dist/react/core/layout/Center.d.ts +20 -0
- package/dist/react/core/layout/Center.js +34 -0
- package/dist/react/core/layout/Center.js.map +1 -0
- package/dist/react/core/layout/Divider.d.ts +16 -0
- package/dist/react/core/layout/Divider.js +108 -0
- package/dist/react/core/layout/Divider.js.map +1 -0
- package/dist/react/core/layout/Flex.d.ts +30 -0
- package/dist/react/core/layout/Flex.js +128 -0
- package/dist/react/core/layout/Flex.js.map +1 -0
- package/dist/react/core/layout/Grid.d.ts +36 -0
- package/dist/react/core/layout/Grid.js +142 -0
- package/dist/react/core/layout/Grid.js.map +1 -0
- package/dist/react/core/layout/Spacer.d.ts +8 -0
- package/dist/react/core/layout/Spacer.js +31 -0
- package/dist/react/core/layout/Spacer.js.map +1 -0
- package/dist/react/core/layout/Stack.d.ts +54 -0
- package/dist/react/core/layout/Stack.js +74 -0
- package/dist/react/core/layout/Stack.js.map +1 -0
- package/dist/react/core/layout/index.d.ts +38 -0
- package/dist/react/core/layout/responsive.d.ts +23 -0
- package/dist/react/core/layout/responsive.js +26 -0
- package/dist/react/core/layout/responsive.js.map +1 -0
- package/dist/react/core/layout/useBreakpoint.d.ts +77 -0
- package/dist/react/core/layout/useBreakpoint.js +73 -0
- package/dist/react/core/layout/useBreakpoint.js.map +1 -0
- package/dist/react/core/propertyConfig.d.ts +443 -0
- package/dist/react/core/propertyConfig.js +399 -0
- package/dist/react/core/propertyConfig.js.map +1 -0
- package/dist/react/hooks/index.d.ts +21 -0
- package/dist/react/hooks/useAccessWindows.d.ts +66 -0
- package/dist/react/hooks/useCompactMode.d.ts +82 -0
- package/dist/react/hooks/useCompactMode.js +62 -0
- package/dist/react/hooks/useCompactMode.js.map +1 -0
- package/dist/react/hooks/useLiveSelection.d.ts +57 -0
- package/dist/react/hooks/useSimulationPlayback.d.ts +97 -0
- package/dist/react/hooks/useSimulationTime.d.ts +61 -0
- package/dist/react/hooks/useSpacecraftPosition.d.ts +50 -0
- package/dist/react/hooks/useSpacecraftPosition.js +89 -0
- package/dist/react/hooks/useSpacecraftPosition.js.map +1 -0
- package/dist/react/hooks/useTelemetry.d.ts +55 -0
- package/dist/react/hooks/useTelemetry.js +73 -0
- package/dist/react/hooks/useTelemetry.js.map +1 -0
- package/dist/react/hooks/useZendirSession.d.ts +109 -0
- package/dist/react/hooks/useZendirSession.js +148 -0
- package/dist/react/hooks/useZendirSession.js.map +1 -0
- package/dist/react/index.d.ts +74 -0
- package/dist/react/shared/ErrorBoundary.d.ts +63 -0
- package/dist/react/shared/ErrorBoundary.js +142 -0
- package/dist/react/shared/ErrorBoundary.js.map +1 -0
- package/dist/react/shared/Skeleton.d.ts +110 -0
- package/dist/react/shared/Skeleton.js +324 -0
- package/dist/react/shared/Skeleton.js.map +1 -0
- package/dist/react/shared/index.d.ts +12 -0
- package/dist/react/theme/ThemeProvider.d.ts +385 -0
- package/dist/react/theme/ThemeProvider.js +1096 -0
- package/dist/react/theme/ThemeProvider.js.map +1 -0
- package/dist/react/theme/astro-tokens.d.ts +153 -0
- package/dist/react/theme/cardAccent.d.ts +75 -0
- package/dist/react/theme/cardAccent.js +137 -0
- package/dist/react/theme/cardAccent.js.map +1 -0
- package/dist/react/theme/config.d.ts +39 -0
- package/dist/react/theme/index.d.ts +9 -0
- package/dist/react/types.d.ts +360 -0
- package/dist/react/types.js +58 -0
- package/dist/react/types.js.map +1 -0
- package/dist/react/utils/index.d.ts +247 -0
- package/dist/react/utils/index.js +423 -0
- package/dist/react/utils/index.js.map +1 -0
- package/dist/react/visualizations/EclipseTimerCard.d.ts +17 -0
- package/dist/react/visualizations/EclipseTimerCard.js +250 -0
- package/dist/react/visualizations/EclipseTimerCard.js.map +1 -0
- package/dist/react/visualizations/LinkBudgetCard.d.ts +50 -0
- package/dist/react/visualizations/LinkBudgetCard.js +444 -0
- package/dist/react/visualizations/LinkBudgetCard.js.map +1 -0
- package/dist/react/visualizations/NavBallCard.d.ts +17 -0
- package/dist/react/visualizations/NavBallCard.js +243 -0
- package/dist/react/visualizations/NavBallCard.js.map +1 -0
- package/dist/react/visualizations/PropulsionCard.d.ts +37 -0
- package/dist/react/visualizations/PropulsionCard.js +298 -0
- package/dist/react/visualizations/PropulsionCard.js.map +1 -0
- package/dist/react/visualizations/SensorFootprintCard.d.ts +33 -0
- package/dist/react/visualizations/SensorFootprintCard.js +326 -0
- package/dist/react/visualizations/SensorFootprintCard.js.map +1 -0
- package/dist/react/visualizations/ThermalHeatmapCard.d.ts +38 -0
- package/dist/react/visualizations/ThermalHeatmapCard.js +372 -0
- package/dist/react/visualizations/ThermalHeatmapCard.js.map +1 -0
- package/dist/react/visualizations/index.d.ts +17 -0
- package/dist/react.d.ts +1 -0
- package/dist/react.js +421 -0
- package/dist/react.js.map +1 -0
- package/dist/shaders/atmosphere.frag.js +5 -0
- package/dist/shaders/atmosphere.frag.js.map +1 -0
- package/dist/shaders/atmosphere.vert.js +5 -0
- package/dist/shaders/atmosphere.vert.js.map +1 -0
- package/dist/shaders/stars.frag.js +5 -0
- package/dist/shaders/stars.frag.js.map +1 -0
- package/dist/shaders/stars.vert.js +5 -0
- package/dist/shaders/stars.vert.js.map +1 -0
- package/dist/style.css +143 -0
- package/dist/tokens/index.d.ts +296 -0
- package/dist/tokens/index.js +263 -0
- package/dist/tokens/index.js.map +1 -0
- package/dist/tokens/tokens.css +155 -0
- package/dist/types/index.d.ts +23 -0
- package/dist/types.d.ts +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/package.json +220 -0
- package/sdk-stub.js +22 -0
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @zendir/ui - Core Components
|
|
3
|
+
*
|
|
4
|
+
* Foundational UI components following Astro UX Design System.
|
|
5
|
+
* These are the building blocks for creating space operations interfaces.
|
|
6
|
+
*/
|
|
7
|
+
export { Icon, getIconNames, isValidIconName } from './Icon';
|
|
8
|
+
export type { IconProps, IconName } from './Icon';
|
|
9
|
+
export { AstroIcon, isAstroIconsAvailable, preloadAstroIcons, getIconAliases, isIconAlias, getAstroIconNames, getAllIconNames, ASTRO_ICON_NAMES, } from './AstroIcon';
|
|
10
|
+
export type { AstroIconProps, AstroIconName, AstroIconSize } from './AstroIcon';
|
|
11
|
+
export { Button } from './Button';
|
|
12
|
+
export type { ButtonProps, ButtonVariant, ButtonSize } from './Button';
|
|
13
|
+
export { Input } from './Input';
|
|
14
|
+
export type { InputProps, InputSize, LabelPlacement } from './Input';
|
|
15
|
+
export { Select } from './Select';
|
|
16
|
+
export type { SelectProps, SelectOption } from './Select';
|
|
17
|
+
export { Toggle } from './Toggle';
|
|
18
|
+
export type { ToggleProps } from './Toggle';
|
|
19
|
+
export { Checkbox } from './Checkbox';
|
|
20
|
+
export type { CheckboxProps } from './Checkbox';
|
|
21
|
+
export { Tooltip } from './Tooltip';
|
|
22
|
+
export type { TooltipProps, TooltipPlacement } from './Tooltip';
|
|
23
|
+
export { Dialog } from './Dialog';
|
|
24
|
+
export type { DialogProps, DialogActionsProps, DialogSize } from './Dialog';
|
|
25
|
+
export { Badge } from './Badge';
|
|
26
|
+
export type { BadgeProps, BadgeVariant, BadgeSize } from './Badge';
|
|
27
|
+
export { Tabs } from './Tabs';
|
|
28
|
+
export type { TabsProps, TabsListProps, TabProps, TabsPanelProps } from './Tabs';
|
|
29
|
+
export { Container } from './Container';
|
|
30
|
+
export type { ContainerProps, ContainerVariant, ContainerPadding } from './Container';
|
|
31
|
+
export { GlassCard, GLASS_COLOR_OVERLAYS } from './GlassCard';
|
|
32
|
+
export type { GlassCardProps, GlassColorOverlay, GlassAccentPosition } from './GlassCard';
|
|
33
|
+
export { Pagination } from './Pagination';
|
|
34
|
+
export type { PaginationProps } from './Pagination';
|
|
35
|
+
export { DataValue, DataValueGroup } from './DataValue';
|
|
36
|
+
export type { DataValueProps, DataValueGroupProps, DataValueVariant, DataValueSize } from './DataValue';
|
|
37
|
+
export { HeaderIconWithStatus } from './HeaderIconWithStatus';
|
|
38
|
+
export type { HeaderIconWithStatusProps } from './HeaderIconWithStatus';
|
|
39
|
+
export { CardHeader } from './CardHeader';
|
|
40
|
+
export type { CardHeaderProps } from './CardHeader';
|
|
41
|
+
export { getPropertyConfig, formatPropertyLabel, deriveStatus, deriveBatteryStatus, formatPropertyValue, createPropertyConfig, getPropertiesByCategory, PROPERTY_PRESETS, CATEGORY_ICONS, CATEGORY_LABELS, } from './propertyConfig';
|
|
42
|
+
export type { PropertyConfig, PropertyKey, PropertyCategory, StatusThresholds, } from './propertyConfig';
|
|
43
|
+
export { MessageStream } from './MessageStream';
|
|
44
|
+
export type { MessageStreamProps, StreamMessage } from './MessageStream';
|
|
45
|
+
export { AppBar } from './AppBar';
|
|
46
|
+
export type { AppBarProps, AppBarBranding } from './AppBar';
|
|
47
|
+
export { ColorPickerPanel } from './ColorPickerPanel';
|
|
48
|
+
export type { ColorPickerPanelProps } from './ColorPickerPanel';
|
|
49
|
+
export { Typography, Display1, Display2, H1, H2, H3, H4, H5, H6, Body1, Body2, Body3, Compact, Micro, Mono, DataText, Label, FONT_FAMILY_PRIMARY, FONT_FAMILY_MONO, FONT_WEIGHTS, } from './Typography';
|
|
50
|
+
export type { TypographyProps, TypographyVariant, TypographyElement, TypographyColor, } from './Typography';
|
|
51
|
+
export { NumberInput } from './NumberInput';
|
|
52
|
+
export type { NumberInputProps, NumberInputSize, SliderStatus } from './NumberInput';
|
|
53
|
+
export { SideNav } from './SideNav';
|
|
54
|
+
export type { SideNavProps, SideNavHeaderProps, SideNavItemProps, SideNavSectionProps, SideNavFooterProps } from './SideNav';
|
|
55
|
+
export { ToastProvider, useToast, useToastManager } from './Toast';
|
|
56
|
+
export type { ToastOptions, ToastStatus, ToastPosition, ToastProviderProps } from './Toast';
|
|
57
|
+
export { Popover, Menu } from './Popover';
|
|
58
|
+
export type { PopoverProps, PopoverPlacement, MenuProps, MenuItemProps } from './Popover';
|
|
59
|
+
export { Box } from './layout/Box';
|
|
60
|
+
export type { BoxProps } from './layout/Box';
|
|
61
|
+
export { Flex } from './layout/Flex';
|
|
62
|
+
export type { FlexProps } from './layout/Flex';
|
|
63
|
+
export { Grid } from './layout/Grid';
|
|
64
|
+
export type { GridProps } from './layout/Grid';
|
|
65
|
+
export { Stack, HStack, VStack } from './layout/Stack';
|
|
66
|
+
export type { StackProps } from './layout/Stack';
|
|
67
|
+
export { Center } from './layout/Center';
|
|
68
|
+
export type { CenterProps } from './layout/Center';
|
|
69
|
+
export { Spacer } from './layout/Spacer';
|
|
70
|
+
export type { SpacerProps } from './layout/Spacer';
|
|
71
|
+
export { Divider } from './layout/Divider';
|
|
72
|
+
export type { DividerProps } from './layout/Divider';
|
|
73
|
+
export { useBreakpoint, BREAKPOINTS } from './layout/useBreakpoint';
|
|
74
|
+
export type { Breakpoint, ResponsiveValue } from './layout/useBreakpoint';
|
|
75
|
+
export { resolveResponsive, resolveSpacing } from './layout/responsive';
|
|
76
|
+
export type { SpacingToken } from './layout/responsive';
|
|
77
|
+
export { ConfirmDialog, ConfirmProvider, useConfirm } from './ConfirmDialog';
|
|
78
|
+
export type { ConfirmDialogProps, ConfirmOptions, ConfirmStatus } from './ConfirmDialog';
|
|
79
|
+
export { PinInput } from './PinInput';
|
|
80
|
+
export type { PinInputProps } from './PinInput';
|
|
81
|
+
export { CopyButton, useCopyToClipboard } from './CopyButton';
|
|
82
|
+
export type { CopyButtonProps, UseCopyToClipboardReturn } from './CopyButton';
|
|
83
|
+
export { DataTable, DataTableRowDetail } from './DataTable';
|
|
84
|
+
export type { DataTableProps, DataTableColumn, DataTableRowDetailProps, DataTableRowDetailField } from './DataTable';
|
|
85
|
+
export { ImageGallery } from './ImageGallery';
|
|
86
|
+
export type { ImageGalleryProps, GalleryImage } from './ImageGallery';
|
|
87
|
+
export { ChatPanel, parseChatResponse, createChatResponseParser, parseMcpToolResult, CHAT_RESPONSE_TOOL_SCHEMA, CHAT_RESPONSE_MCP_TOOL, CHAT_RESPONSE_JSON_PROMPT, CHAT_RESPONSE_YAML_PROMPT, CHAT_STATUS_RULES_PROMPT } from './ChatPanel';
|
|
88
|
+
export type { ChatPanelProps, ChatMessage, ChatBlock, ChatBlockEvent, ChatBlockAlert, ChatBlockTelemetry, ChatBlockProgress, ChatBlockTable, ChatBlockActions, ChatBlockChoice, ChatBlockConfirm, ChatBlockCommand, ChatBlockKV, ChatResponseFormat, ChatResponsePayload, ChatResponseParserOptions, McpToolContent, McpToolResult } from './ChatPanel';
|
|
89
|
+
export { ConnectionForm } from './ConnectionForm';
|
|
90
|
+
export type { ConnectionFormProps, ConnectionConfig } from './ConnectionForm';
|
|
91
|
+
export { SidePanel } from './SidePanel';
|
|
92
|
+
export type { SidePanelProps, SidePanelPosition } from './SidePanel';
|
|
93
|
+
export { HexViewer, REGION_COLORS, REGION_BORDER_COLORS } from './HexViewer';
|
|
94
|
+
export type { HexViewerProps, HexHighlight, HexRegion, DecodedField, PacketHeaderEntry, ByteGrouping, OffsetBase, Endianness } from './HexViewer';
|
|
95
|
+
export { LimitsBar } from './LimitsBar';
|
|
96
|
+
export type { LimitsBarProps, LimitsState } from './LimitsBar';
|
|
97
|
+
export { LogViewer } from './LogViewer';
|
|
98
|
+
export type { LogViewerProps, LogEntry, LogSeverity } from './LogViewer';
|
|
99
|
+
export { PacketViewer } from './PacketViewer';
|
|
100
|
+
export type { PacketViewerProps, PacketItem, PacketItemLimits, PacketItemLimitsState, PacketViewMode } from './PacketViewer';
|
|
101
|
+
export { CommandBuilder } from './CommandBuilder';
|
|
102
|
+
export type { CommandBuilderProps, CommandParameter, CommandParamType, CommandHistoryEntry } from './CommandBuilder';
|
|
103
|
+
export { FileExplorer } from './FileExplorer';
|
|
104
|
+
export type { FileExplorerProps, FileNode, FileViewMode, FileSortBy } from './FileExplorer';
|
|
105
|
+
export { MissionCalendar } from './MissionCalendar';
|
|
106
|
+
export type { MissionCalendarProps, CalendarEvent, CalendarTimeline, CalendarViewMode, ActivityStatus, ActivityType, } from './MissionCalendar';
|
|
107
|
+
export { ActivityPlanner } from './ActivityPlanner';
|
|
108
|
+
export type { ActivityPlannerProps, ActivityFormData, } from './ActivityPlanner';
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { ResponsiveValue } from './useBreakpoint';
|
|
3
|
+
import { SpacingToken } from './responsive';
|
|
4
|
+
|
|
5
|
+
type SpacingInput = SpacingToken | string | number;
|
|
6
|
+
export interface BoxProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
7
|
+
/** Element type to render */
|
|
8
|
+
as?: React.ElementType;
|
|
9
|
+
/** Padding (all sides) */
|
|
10
|
+
padding?: ResponsiveValue<SpacingInput>;
|
|
11
|
+
/** Shorthand alias for padding */
|
|
12
|
+
p?: ResponsiveValue<SpacingInput>;
|
|
13
|
+
/** Padding horizontal (left + right) */
|
|
14
|
+
px?: ResponsiveValue<SpacingInput>;
|
|
15
|
+
/** Padding vertical (top + bottom) */
|
|
16
|
+
py?: ResponsiveValue<SpacingInput>;
|
|
17
|
+
/** Padding top */
|
|
18
|
+
pt?: ResponsiveValue<SpacingInput>;
|
|
19
|
+
/** Padding right */
|
|
20
|
+
pr?: ResponsiveValue<SpacingInput>;
|
|
21
|
+
/** Padding bottom */
|
|
22
|
+
pb?: ResponsiveValue<SpacingInput>;
|
|
23
|
+
/** Padding left */
|
|
24
|
+
pl?: ResponsiveValue<SpacingInput>;
|
|
25
|
+
/** Margin (all sides) */
|
|
26
|
+
margin?: ResponsiveValue<SpacingInput>;
|
|
27
|
+
/** Shorthand alias for margin */
|
|
28
|
+
m?: ResponsiveValue<SpacingInput>;
|
|
29
|
+
/** Margin horizontal (left + right) */
|
|
30
|
+
mx?: ResponsiveValue<SpacingInput>;
|
|
31
|
+
/** Margin vertical (top + bottom) */
|
|
32
|
+
my?: ResponsiveValue<SpacingInput>;
|
|
33
|
+
/** Margin top */
|
|
34
|
+
mt?: ResponsiveValue<SpacingInput>;
|
|
35
|
+
/** Margin right */
|
|
36
|
+
mr?: ResponsiveValue<SpacingInput>;
|
|
37
|
+
/** Margin bottom */
|
|
38
|
+
mb?: ResponsiveValue<SpacingInput>;
|
|
39
|
+
/** Margin left */
|
|
40
|
+
ml?: ResponsiveValue<SpacingInput>;
|
|
41
|
+
/** Background color: 'base' | 'surface' | 'elevated' | 'overlay' | custom CSS color */
|
|
42
|
+
background?: string;
|
|
43
|
+
/** Border: true for default border, or custom CSS border */
|
|
44
|
+
border?: boolean | string;
|
|
45
|
+
/** Border radius token or CSS value */
|
|
46
|
+
borderRadius?: 'none' | 'sm' | 'md' | 'lg' | 'xl' | 'full' | string;
|
|
47
|
+
/** Box shadow token or CSS value */
|
|
48
|
+
shadow?: 'none' | 'sm' | 'md' | 'lg' | 'xl' | string;
|
|
49
|
+
/** CSS display property */
|
|
50
|
+
display?: ResponsiveValue<string>;
|
|
51
|
+
/** CSS width */
|
|
52
|
+
width?: ResponsiveValue<string | number>;
|
|
53
|
+
/** CSS height */
|
|
54
|
+
height?: ResponsiveValue<string | number>;
|
|
55
|
+
/** CSS min-width */
|
|
56
|
+
minWidth?: string | number;
|
|
57
|
+
/** CSS min-height */
|
|
58
|
+
minHeight?: string | number;
|
|
59
|
+
/** CSS max-width */
|
|
60
|
+
maxWidth?: string | number;
|
|
61
|
+
/** CSS max-height */
|
|
62
|
+
maxHeight?: string | number;
|
|
63
|
+
/** CSS overflow */
|
|
64
|
+
overflow?: string;
|
|
65
|
+
/** CSS position */
|
|
66
|
+
position?: 'static' | 'relative' | 'absolute' | 'fixed' | 'sticky';
|
|
67
|
+
/** CSS flex property */
|
|
68
|
+
flex?: string | number;
|
|
69
|
+
/** CSS flex-grow */
|
|
70
|
+
flexGrow?: number;
|
|
71
|
+
/** CSS flex-shrink */
|
|
72
|
+
flexShrink?: number;
|
|
73
|
+
/** Children */
|
|
74
|
+
children?: React.ReactNode;
|
|
75
|
+
}
|
|
76
|
+
export declare const Box: React.MemoExoticComponent<React.ForwardRefExoticComponent<BoxProps & React.RefAttributes<HTMLDivElement>>>;
|
|
77
|
+
export default Box;
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import { memo, forwardRef } from "react";
|
|
3
|
+
import { useBreakpoint } from "./useBreakpoint.js";
|
|
4
|
+
import { resolveResponsive, resolveResponsiveSpacing } from "./responsive.js";
|
|
5
|
+
import { useTheme } from "../../theme/ThemeProvider.js";
|
|
6
|
+
const Box = memo(forwardRef(function Box2({
|
|
7
|
+
as: Component = "div",
|
|
8
|
+
padding,
|
|
9
|
+
p,
|
|
10
|
+
px,
|
|
11
|
+
py,
|
|
12
|
+
pt,
|
|
13
|
+
pr,
|
|
14
|
+
pb,
|
|
15
|
+
pl,
|
|
16
|
+
margin,
|
|
17
|
+
m,
|
|
18
|
+
mx,
|
|
19
|
+
my,
|
|
20
|
+
mt,
|
|
21
|
+
mr,
|
|
22
|
+
mb,
|
|
23
|
+
ml,
|
|
24
|
+
background,
|
|
25
|
+
border,
|
|
26
|
+
borderRadius,
|
|
27
|
+
shadow,
|
|
28
|
+
display,
|
|
29
|
+
width,
|
|
30
|
+
height,
|
|
31
|
+
minWidth,
|
|
32
|
+
minHeight,
|
|
33
|
+
maxWidth,
|
|
34
|
+
maxHeight,
|
|
35
|
+
overflow,
|
|
36
|
+
position,
|
|
37
|
+
flex,
|
|
38
|
+
flexGrow,
|
|
39
|
+
flexShrink,
|
|
40
|
+
style,
|
|
41
|
+
children,
|
|
42
|
+
...rest
|
|
43
|
+
}, ref) {
|
|
44
|
+
const { tokens } = useTheme();
|
|
45
|
+
const { breakpoint } = useBreakpoint();
|
|
46
|
+
const resolve = (val) => resolveResponsiveSpacing(val, breakpoint, tokens);
|
|
47
|
+
const paddingAll = resolve(padding ?? p);
|
|
48
|
+
const paddingX = resolve(px);
|
|
49
|
+
const paddingY = resolve(py);
|
|
50
|
+
const marginAll = resolve(margin ?? m);
|
|
51
|
+
const marginX = resolve(mx);
|
|
52
|
+
const marginY = resolve(my);
|
|
53
|
+
const resolveBackground = (bg) => {
|
|
54
|
+
if (!bg) return void 0;
|
|
55
|
+
const bgMap = {
|
|
56
|
+
base: tokens.colors.background.base,
|
|
57
|
+
surface: tokens.colors.background.surface,
|
|
58
|
+
elevated: tokens.colors.background.elevated,
|
|
59
|
+
overlay: tokens.colors.background.overlay
|
|
60
|
+
};
|
|
61
|
+
return bgMap[bg] || bg;
|
|
62
|
+
};
|
|
63
|
+
const resolveBorder = (b) => {
|
|
64
|
+
if (!b) return void 0;
|
|
65
|
+
if (b === true) return `1px solid ${tokens.colors.border.default}`;
|
|
66
|
+
return b;
|
|
67
|
+
};
|
|
68
|
+
const resolveBorderRadius = (br) => {
|
|
69
|
+
if (!br) return void 0;
|
|
70
|
+
if (br in tokens.borderRadius) return tokens.borderRadius[br];
|
|
71
|
+
return br;
|
|
72
|
+
};
|
|
73
|
+
const resolveShadow = (s) => {
|
|
74
|
+
if (!s) return void 0;
|
|
75
|
+
if (s in tokens.shadows && s !== "glow") return tokens.shadows[s];
|
|
76
|
+
return s;
|
|
77
|
+
};
|
|
78
|
+
const resolveSize = (val) => {
|
|
79
|
+
if (val === void 0) return void 0;
|
|
80
|
+
if (typeof val === "number") return `${val}px`;
|
|
81
|
+
return val;
|
|
82
|
+
};
|
|
83
|
+
const computedStyle = {
|
|
84
|
+
// Padding
|
|
85
|
+
...paddingAll ? { padding: paddingAll } : {},
|
|
86
|
+
...paddingX ? { paddingLeft: paddingX, paddingRight: paddingX } : {},
|
|
87
|
+
...paddingY ? { paddingTop: paddingY, paddingBottom: paddingY } : {},
|
|
88
|
+
...resolve(pt) ? { paddingTop: resolve(pt) } : {},
|
|
89
|
+
...resolve(pr) ? { paddingRight: resolve(pr) } : {},
|
|
90
|
+
...resolve(pb) ? { paddingBottom: resolve(pb) } : {},
|
|
91
|
+
...resolve(pl) ? { paddingLeft: resolve(pl) } : {},
|
|
92
|
+
// Margin
|
|
93
|
+
...marginAll ? { margin: marginAll } : {},
|
|
94
|
+
...marginX ? { marginLeft: marginX, marginRight: marginX } : {},
|
|
95
|
+
...marginY ? { marginTop: marginY, marginBottom: marginY } : {},
|
|
96
|
+
...resolve(mt) ? { marginTop: resolve(mt) } : {},
|
|
97
|
+
...resolve(mr) ? { marginRight: resolve(mr) } : {},
|
|
98
|
+
...resolve(mb) ? { marginBottom: resolve(mb) } : {},
|
|
99
|
+
...resolve(ml) ? { marginLeft: resolve(ml) } : {},
|
|
100
|
+
// Visual
|
|
101
|
+
backgroundColor: resolveBackground(background),
|
|
102
|
+
border: resolveBorder(border),
|
|
103
|
+
borderRadius: resolveBorderRadius(borderRadius),
|
|
104
|
+
boxShadow: resolveShadow(shadow),
|
|
105
|
+
// Layout
|
|
106
|
+
display: resolveResponsive(display, breakpoint),
|
|
107
|
+
width: resolveSize(resolveResponsive(width, breakpoint)),
|
|
108
|
+
height: resolveSize(resolveResponsive(height, breakpoint)),
|
|
109
|
+
minWidth: resolveSize(minWidth),
|
|
110
|
+
minHeight: resolveSize(minHeight),
|
|
111
|
+
maxWidth: resolveSize(maxWidth),
|
|
112
|
+
maxHeight: resolveSize(maxHeight),
|
|
113
|
+
overflow,
|
|
114
|
+
position,
|
|
115
|
+
flex,
|
|
116
|
+
flexGrow,
|
|
117
|
+
flexShrink,
|
|
118
|
+
// User overrides
|
|
119
|
+
...style
|
|
120
|
+
};
|
|
121
|
+
return /* @__PURE__ */ jsx(Component, { ref, style: computedStyle, ...rest, children });
|
|
122
|
+
}));
|
|
123
|
+
export {
|
|
124
|
+
Box
|
|
125
|
+
};
|
|
126
|
+
//# sourceMappingURL=Box.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Box.js","sources":["../../../../src/react/core/layout/Box.tsx"],"sourcesContent":["/**\r\n * @zendir/ui - Box Layout Primitive\r\n * \r\n * The foundational layout building block. A themed <div> with shorthand props\r\n * for padding, margin, background, border, and display properties.\r\n * \r\n * Follows Astro UX spacing tokens (4px grid system).\r\n * All spacing props accept SpacingTokens ('xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl'),\r\n * numbers (px), or CSS strings.\r\n * \r\n * @example\r\n * ```tsx\r\n * <Box padding=\"md\" background=\"surface\">\r\n * <H3>Section Title</H3>\r\n * <Body1>Content here</Body1>\r\n * </Box>\r\n * \r\n * <Box padding={['sm', 'md', 'lg']} borderRadius=\"md\">\r\n * Responsive padding\r\n * </Box>\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\n\r\ntype SpacingInput = SpacingToken | string | number;\r\n\r\nexport interface BoxProps extends React.HTMLAttributes<HTMLDivElement> {\r\n /** Element type to render */\r\n as?: React.ElementType;\r\n \r\n // Spacing\r\n /** Padding (all sides) */\r\n padding?: ResponsiveValue<SpacingInput>;\r\n /** Shorthand alias for padding */\r\n p?: ResponsiveValue<SpacingInput>;\r\n /** Padding horizontal (left + right) */\r\n px?: ResponsiveValue<SpacingInput>;\r\n /** Padding vertical (top + bottom) */\r\n py?: ResponsiveValue<SpacingInput>;\r\n /** Padding top */\r\n pt?: ResponsiveValue<SpacingInput>;\r\n /** Padding right */\r\n pr?: ResponsiveValue<SpacingInput>;\r\n /** Padding bottom */\r\n pb?: ResponsiveValue<SpacingInput>;\r\n /** Padding left */\r\n pl?: ResponsiveValue<SpacingInput>;\r\n /** Margin (all sides) */\r\n margin?: ResponsiveValue<SpacingInput>;\r\n /** Shorthand alias for margin */\r\n m?: ResponsiveValue<SpacingInput>;\r\n /** Margin horizontal (left + right) */\r\n mx?: ResponsiveValue<SpacingInput>;\r\n /** Margin vertical (top + bottom) */\r\n my?: ResponsiveValue<SpacingInput>;\r\n /** Margin top */\r\n mt?: ResponsiveValue<SpacingInput>;\r\n /** Margin right */\r\n mr?: ResponsiveValue<SpacingInput>;\r\n /** Margin bottom */\r\n mb?: ResponsiveValue<SpacingInput>;\r\n /** Margin left */\r\n ml?: ResponsiveValue<SpacingInput>;\r\n \r\n // Visual\r\n /** Background color: 'base' | 'surface' | 'elevated' | 'overlay' | custom CSS color */\r\n background?: string;\r\n /** Border: true for default border, or custom CSS border */\r\n border?: boolean | string;\r\n /** Border radius token or CSS value */\r\n borderRadius?: 'none' | 'sm' | 'md' | 'lg' | 'xl' | 'full' | string;\r\n /** Box shadow token or CSS value */\r\n shadow?: 'none' | 'sm' | 'md' | 'lg' | 'xl' | string;\r\n \r\n // Layout\r\n /** CSS display property */\r\n display?: ResponsiveValue<string>;\r\n /** CSS width */\r\n width?: ResponsiveValue<string | number>;\r\n /** CSS height */\r\n height?: ResponsiveValue<string | number>;\r\n /** CSS min-width */\r\n minWidth?: string | number;\r\n /** CSS min-height */\r\n minHeight?: string | number;\r\n /** CSS max-width */\r\n maxWidth?: string | number;\r\n /** CSS max-height */\r\n maxHeight?: string | number;\r\n /** CSS overflow */\r\n overflow?: string;\r\n /** CSS position */\r\n position?: 'static' | 'relative' | 'absolute' | 'fixed' | 'sticky';\r\n /** CSS flex property */\r\n flex?: string | number;\r\n /** CSS flex-grow */\r\n flexGrow?: number;\r\n /** CSS flex-shrink */\r\n flexShrink?: number;\r\n \r\n /** Children */\r\n children?: React.ReactNode;\r\n}\r\n\r\nexport const Box = memo(forwardRef<HTMLDivElement, BoxProps>(function Box(\r\n {\r\n as: Component = 'div',\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,\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 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 resolve = (val: ResponsiveValue<SpacingInput> | undefined) =>\r\n resolveResponsiveSpacing(val, breakpoint, tokens);\r\n \r\n // Resolve padding (p is alias for padding)\r\n const paddingAll = resolve(padding ?? p);\r\n const paddingX = resolve(px);\r\n const paddingY = resolve(py);\r\n \r\n // Resolve margin (m is alias for margin)\r\n const marginAll = resolve(margin ?? m);\r\n const marginX = resolve(mx);\r\n const marginY = resolve(my);\r\n \r\n // Background color resolution\r\n const resolveBackground = (bg: string | undefined): string | undefined => {\r\n if (!bg) return undefined;\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 return bgMap[bg] || bg;\r\n };\r\n \r\n // Border resolution\r\n const resolveBorder = (b: boolean | string | undefined): string | undefined => {\r\n if (!b) return undefined;\r\n if (b === true) return `1px solid ${tokens.colors.border.default}`;\r\n return b;\r\n };\r\n \r\n // Border radius resolution\r\n const resolveBorderRadius = (br: string | undefined): string | undefined => {\r\n if (!br) return undefined;\r\n if (br in tokens.borderRadius) return tokens.borderRadius[br as keyof typeof tokens.borderRadius];\r\n return br;\r\n };\r\n \r\n // Shadow resolution\r\n const resolveShadow = (s: string | undefined): string | undefined => {\r\n if (!s) return undefined;\r\n if (s in tokens.shadows && s !== 'glow') return tokens.shadows[s as keyof Omit<typeof tokens.shadows, 'glow'>];\r\n return s;\r\n };\r\n \r\n // Size resolution (number → px)\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 computedStyle: React.CSSProperties = {\r\n // Padding\r\n ...(paddingAll ? { padding: paddingAll } : {}),\r\n ...(paddingX ? { paddingLeft: paddingX, paddingRight: paddingX } : {}),\r\n ...(paddingY ? { paddingTop: paddingY, paddingBottom: paddingY } : {}),\r\n ...(resolve(pt) ? { paddingTop: resolve(pt) } : {}),\r\n ...(resolve(pr) ? { paddingRight: resolve(pr) } : {}),\r\n ...(resolve(pb) ? { paddingBottom: resolve(pb) } : {}),\r\n ...(resolve(pl) ? { paddingLeft: resolve(pl) } : {}),\r\n \r\n // Margin\r\n ...(marginAll ? { margin: marginAll } : {}),\r\n ...(marginX ? { marginLeft: marginX, marginRight: marginX } : {}),\r\n ...(marginY ? { marginTop: marginY, marginBottom: marginY } : {}),\r\n ...(resolve(mt) ? { marginTop: resolve(mt) } : {}),\r\n ...(resolve(mr) ? { marginRight: resolve(mr) } : {}),\r\n ...(resolve(mb) ? { marginBottom: resolve(mb) } : {}),\r\n ...(resolve(ml) ? { marginLeft: resolve(ml) } : {}),\r\n \r\n // Visual\r\n backgroundColor: resolveBackground(background),\r\n border: resolveBorder(border),\r\n borderRadius: resolveBorderRadius(borderRadius),\r\n boxShadow: resolveShadow(shadow),\r\n \r\n // Layout\r\n display: resolveResponsive(display, breakpoint),\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 // User overrides\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 Box;\r\n"],"names":["Box"],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
|
|
3
|
+
export interface CenterProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
4
|
+
/** Element type to render */
|
|
5
|
+
as?: React.ElementType;
|
|
6
|
+
/** Width (CSS value or number for px) */
|
|
7
|
+
width?: string | number;
|
|
8
|
+
/** Height (CSS value or number for px) */
|
|
9
|
+
height?: string | number;
|
|
10
|
+
/** Max width constraint */
|
|
11
|
+
maxWidth?: string | number;
|
|
12
|
+
/** Also center text */
|
|
13
|
+
textAlign?: boolean;
|
|
14
|
+
/** Inline-flex instead of flex */
|
|
15
|
+
inline?: boolean;
|
|
16
|
+
/** Children */
|
|
17
|
+
children?: React.ReactNode;
|
|
18
|
+
}
|
|
19
|
+
export declare const Center: React.MemoExoticComponent<React.ForwardRefExoticComponent<CenterProps & React.RefAttributes<HTMLDivElement>>>;
|
|
20
|
+
export default Center;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import { memo, forwardRef } from "react";
|
|
3
|
+
const Center = memo(forwardRef(function Center2({
|
|
4
|
+
as: Component = "div",
|
|
5
|
+
width,
|
|
6
|
+
height,
|
|
7
|
+
maxWidth,
|
|
8
|
+
textAlign = false,
|
|
9
|
+
inline = false,
|
|
10
|
+
style,
|
|
11
|
+
children,
|
|
12
|
+
...rest
|
|
13
|
+
}, ref) {
|
|
14
|
+
const resolveSize = (val) => {
|
|
15
|
+
if (val === void 0) return void 0;
|
|
16
|
+
if (typeof val === "number") return `${val}px`;
|
|
17
|
+
return val;
|
|
18
|
+
};
|
|
19
|
+
const computedStyle = {
|
|
20
|
+
display: inline ? "inline-flex" : "flex",
|
|
21
|
+
alignItems: "center",
|
|
22
|
+
justifyContent: "center",
|
|
23
|
+
width: resolveSize(width),
|
|
24
|
+
height: resolveSize(height),
|
|
25
|
+
maxWidth: resolveSize(maxWidth),
|
|
26
|
+
textAlign: textAlign ? "center" : void 0,
|
|
27
|
+
...style
|
|
28
|
+
};
|
|
29
|
+
return /* @__PURE__ */ jsx(Component, { ref, style: computedStyle, ...rest, children });
|
|
30
|
+
}));
|
|
31
|
+
export {
|
|
32
|
+
Center
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=Center.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Center.js","sources":["../../../../src/react/core/layout/Center.tsx"],"sourcesContent":["/**\r\n * @zendir/ui - Center Layout Primitive\r\n * \r\n * Centers content horizontally and vertically using flexbox.\r\n * Common in operator dashboards for loading states, empty states, and hero sections.\r\n * \r\n * @example\r\n * ```tsx\r\n * <Center height=\"100vh\">\r\n * <VStack spacing=\"md\" align=\"center\">\r\n * <Icon name=\"satellite\" size={64} />\r\n * <H2>No Telemetry Data</H2>\r\n * <Body2>Connect to a spacecraft to begin monitoring.</Body2>\r\n * <Button>Connect</Button>\r\n * </VStack>\r\n * </Center>\r\n * ```\r\n */\r\n\r\nimport React, { memo, forwardRef } from 'react';\r\n\r\nexport interface CenterProps extends React.HTMLAttributes<HTMLDivElement> {\r\n /** Element type to render */\r\n as?: React.ElementType;\r\n /** Width (CSS value or number for px) */\r\n width?: string | number;\r\n /** Height (CSS value or number for px) */\r\n height?: string | number;\r\n /** Max width constraint */\r\n maxWidth?: string | number;\r\n /** Also center text */\r\n textAlign?: boolean;\r\n /** Inline-flex instead of flex */\r\n inline?: boolean;\r\n /** Children */\r\n children?: React.ReactNode;\r\n}\r\n\r\nexport const Center = memo(forwardRef<HTMLDivElement, CenterProps>(function Center(\r\n {\r\n as: Component = 'div',\r\n width,\r\n height,\r\n maxWidth,\r\n textAlign = false,\r\n inline = false,\r\n style,\r\n children,\r\n ...rest\r\n },\r\n ref\r\n): React.ReactElement {\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 computedStyle: React.CSSProperties = {\r\n display: inline ? 'inline-flex' : 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n width: resolveSize(width),\r\n height: resolveSize(height),\r\n maxWidth: resolveSize(maxWidth),\r\n textAlign: textAlign ? 'center' : undefined,\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 Center;\r\n"],"names":["Center"],"mappings":";;AAsCO,MAAM,SAAS,KAAK,WAAwC,SAASA,QAC1E;AAAA,EACE,IAAI,YAAY;AAAA,EAChB;AAAA,EACA;AAAA,EACA;AAAA,EACA,YAAY;AAAA,EACZ,SAAS;AAAA,EACT;AAAA,EACA;AAAA,EACA,GAAG;AACL,GACA,KACoB;AACpB,QAAM,cAAc,CAAC,QAAyD;AAC5E,QAAI,QAAQ,OAAW,QAAO;AAC9B,QAAI,OAAO,QAAQ,SAAU,QAAO,GAAG,GAAG;AAC1C,WAAO;AAAA,EACT;AAEA,QAAM,gBAAqC;AAAA,IACzC,SAAS,SAAS,gBAAgB;AAAA,IAClC,YAAY;AAAA,IACZ,gBAAgB;AAAA,IAChB,OAAO,YAAY,KAAK;AAAA,IACxB,QAAQ,YAAY,MAAM;AAAA,IAC1B,UAAU,YAAY,QAAQ;AAAA,IAC9B,WAAW,YAAY,WAAW;AAAA,IAClC,GAAG;AAAA,EAAA;AAGL,6BACG,WAAA,EAAU,KAAU,OAAO,eAAgB,GAAG,MAC5C,UACH;AAEJ,CAAC,CAAC;"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
|
|
3
|
+
export interface DividerProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
4
|
+
/** Divider orientation */
|
|
5
|
+
orientation?: 'horizontal' | 'vertical';
|
|
6
|
+
/** Optional centered label text */
|
|
7
|
+
label?: string;
|
|
8
|
+
/** Spacing around the divider (CSS value) */
|
|
9
|
+
spacing?: string;
|
|
10
|
+
/** Color override */
|
|
11
|
+
color?: string;
|
|
12
|
+
/** Dashed style */
|
|
13
|
+
dashed?: boolean;
|
|
14
|
+
}
|
|
15
|
+
export declare const Divider: React.NamedExoticComponent<DividerProps>;
|
|
16
|
+
export default Divider;
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { memo } from "react";
|
|
3
|
+
import { useTheme } from "../../theme/ThemeProvider.js";
|
|
4
|
+
const Divider = memo(function Divider2({
|
|
5
|
+
orientation = "horizontal",
|
|
6
|
+
label,
|
|
7
|
+
spacing,
|
|
8
|
+
color,
|
|
9
|
+
dashed = false,
|
|
10
|
+
style,
|
|
11
|
+
...rest
|
|
12
|
+
}) {
|
|
13
|
+
const { tokens } = useTheme();
|
|
14
|
+
const lineColor = color || tokens.colors.border.muted;
|
|
15
|
+
const borderStyle = dashed ? "dashed" : "solid";
|
|
16
|
+
if (orientation === "vertical") {
|
|
17
|
+
return /* @__PURE__ */ jsx(
|
|
18
|
+
"div",
|
|
19
|
+
{
|
|
20
|
+
role: "separator",
|
|
21
|
+
"aria-orientation": "vertical",
|
|
22
|
+
style: {
|
|
23
|
+
width: "1px",
|
|
24
|
+
alignSelf: "stretch",
|
|
25
|
+
backgroundColor: lineColor,
|
|
26
|
+
flexShrink: 0,
|
|
27
|
+
...spacing ? { margin: `0 ${spacing}` } : {},
|
|
28
|
+
...dashed ? {
|
|
29
|
+
backgroundColor: "transparent",
|
|
30
|
+
borderLeft: `1px ${borderStyle} ${lineColor}`
|
|
31
|
+
} : {},
|
|
32
|
+
...style
|
|
33
|
+
},
|
|
34
|
+
...rest
|
|
35
|
+
}
|
|
36
|
+
);
|
|
37
|
+
}
|
|
38
|
+
if (label) {
|
|
39
|
+
return /* @__PURE__ */ jsxs(
|
|
40
|
+
"div",
|
|
41
|
+
{
|
|
42
|
+
role: "separator",
|
|
43
|
+
style: {
|
|
44
|
+
display: "flex",
|
|
45
|
+
alignItems: "center",
|
|
46
|
+
gap: tokens.spacing.sm,
|
|
47
|
+
...spacing ? { margin: `${spacing} 0` } : {},
|
|
48
|
+
...style
|
|
49
|
+
},
|
|
50
|
+
...rest,
|
|
51
|
+
children: [
|
|
52
|
+
/* @__PURE__ */ jsx("div", { style: {
|
|
53
|
+
flex: 1,
|
|
54
|
+
height: "1px",
|
|
55
|
+
backgroundColor: lineColor,
|
|
56
|
+
...dashed ? {
|
|
57
|
+
backgroundColor: "transparent",
|
|
58
|
+
borderTop: `1px ${borderStyle} ${lineColor}`
|
|
59
|
+
} : {}
|
|
60
|
+
} }),
|
|
61
|
+
/* @__PURE__ */ jsx("span", { style: {
|
|
62
|
+
fontSize: tokens.typography.fontSize.xs,
|
|
63
|
+
fontWeight: tokens.typography.fontWeight.medium,
|
|
64
|
+
color: tokens.colors.text.tertiary,
|
|
65
|
+
fontFamily: tokens.typography.fontFamily.primary,
|
|
66
|
+
letterSpacing: tokens.typography.letterSpacing.wide,
|
|
67
|
+
textTransform: "uppercase",
|
|
68
|
+
flexShrink: 0,
|
|
69
|
+
padding: `0 ${tokens.spacing.xs}`
|
|
70
|
+
}, children: label }),
|
|
71
|
+
/* @__PURE__ */ jsx("div", { style: {
|
|
72
|
+
flex: 1,
|
|
73
|
+
height: "1px",
|
|
74
|
+
backgroundColor: lineColor,
|
|
75
|
+
...dashed ? {
|
|
76
|
+
backgroundColor: "transparent",
|
|
77
|
+
borderTop: `1px ${borderStyle} ${lineColor}`
|
|
78
|
+
} : {}
|
|
79
|
+
} })
|
|
80
|
+
]
|
|
81
|
+
}
|
|
82
|
+
);
|
|
83
|
+
}
|
|
84
|
+
return /* @__PURE__ */ jsx(
|
|
85
|
+
"div",
|
|
86
|
+
{
|
|
87
|
+
role: "separator",
|
|
88
|
+
"aria-orientation": "horizontal",
|
|
89
|
+
style: {
|
|
90
|
+
width: "100%",
|
|
91
|
+
height: "1px",
|
|
92
|
+
backgroundColor: lineColor,
|
|
93
|
+
flexShrink: 0,
|
|
94
|
+
...spacing ? { margin: `${spacing} 0` } : {},
|
|
95
|
+
...dashed ? {
|
|
96
|
+
backgroundColor: "transparent",
|
|
97
|
+
borderTop: `1px ${borderStyle} ${lineColor}`
|
|
98
|
+
} : {},
|
|
99
|
+
...style
|
|
100
|
+
},
|
|
101
|
+
...rest
|
|
102
|
+
}
|
|
103
|
+
);
|
|
104
|
+
});
|
|
105
|
+
export {
|
|
106
|
+
Divider
|
|
107
|
+
};
|
|
108
|
+
//# sourceMappingURL=Divider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Divider.js","sources":["../../../../src/react/core/layout/Divider.tsx"],"sourcesContent":["/**\r\n * @zendir/ui - Divider\r\n * \r\n * Visual separator line following Astro UX Design System.\r\n * Theme-aware with muted border colors. Supports horizontal and vertical orientation.\r\n * \r\n * @example\r\n * ```tsx\r\n * <VStack spacing=\"md\">\r\n * <Section1 />\r\n * <Divider />\r\n * <Section2 />\r\n * </VStack>\r\n * \r\n * <HStack spacing=\"md\">\r\n * <Panel1 />\r\n * <Divider orientation=\"vertical\" />\r\n * <Panel2 />\r\n * </HStack>\r\n * \r\n * <Divider label=\"OR\" />\r\n * ```\r\n */\r\n\r\nimport React, { memo } from 'react';\r\nimport { useTheme } from '../../theme';\r\n\r\nexport interface DividerProps extends React.HTMLAttributes<HTMLDivElement> {\r\n /** Divider orientation */\r\n orientation?: 'horizontal' | 'vertical';\r\n /** Optional centered label text */\r\n label?: string;\r\n /** Spacing around the divider (CSS value) */\r\n spacing?: string;\r\n /** Color override */\r\n color?: string;\r\n /** Dashed style */\r\n dashed?: boolean;\r\n}\r\n\r\nexport const Divider = memo(function Divider({\r\n orientation = 'horizontal',\r\n label,\r\n spacing,\r\n color,\r\n dashed = false,\r\n style,\r\n ...rest\r\n}: DividerProps): React.ReactElement {\r\n const { tokens } = useTheme();\r\n \r\n const lineColor = color || tokens.colors.border.muted;\r\n const borderStyle = dashed ? 'dashed' : 'solid';\r\n \r\n if (orientation === 'vertical') {\r\n return (\r\n <div\r\n role=\"separator\"\r\n aria-orientation=\"vertical\"\r\n style={{\r\n width: '1px',\r\n alignSelf: 'stretch',\r\n backgroundColor: lineColor,\r\n flexShrink: 0,\r\n ...(spacing ? { margin: `0 ${spacing}` } : {}),\r\n ...(dashed ? {\r\n backgroundColor: 'transparent',\r\n borderLeft: `1px ${borderStyle} ${lineColor}`,\r\n } : {}),\r\n ...style,\r\n }}\r\n {...rest}\r\n />\r\n );\r\n }\r\n \r\n // Horizontal with optional label\r\n if (label) {\r\n return (\r\n <div\r\n role=\"separator\"\r\n style={{\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: tokens.spacing.sm,\r\n ...(spacing ? { margin: `${spacing} 0` } : {}),\r\n ...style,\r\n }}\r\n {...rest}\r\n >\r\n <div style={{\r\n flex: 1,\r\n height: '1px',\r\n backgroundColor: lineColor,\r\n ...(dashed ? {\r\n backgroundColor: 'transparent',\r\n borderTop: `1px ${borderStyle} ${lineColor}`,\r\n } : {}),\r\n }} />\r\n <span style={{\r\n fontSize: tokens.typography.fontSize.xs,\r\n fontWeight: tokens.typography.fontWeight.medium,\r\n color: tokens.colors.text.tertiary,\r\n fontFamily: tokens.typography.fontFamily.primary,\r\n letterSpacing: tokens.typography.letterSpacing.wide,\r\n textTransform: 'uppercase',\r\n flexShrink: 0,\r\n padding: `0 ${tokens.spacing.xs}`,\r\n }}>\r\n {label}\r\n </span>\r\n <div style={{\r\n flex: 1,\r\n height: '1px',\r\n backgroundColor: lineColor,\r\n ...(dashed ? {\r\n backgroundColor: 'transparent',\r\n borderTop: `1px ${borderStyle} ${lineColor}`,\r\n } : {}),\r\n }} />\r\n </div>\r\n );\r\n }\r\n \r\n return (\r\n <div\r\n role=\"separator\"\r\n aria-orientation=\"horizontal\"\r\n style={{\r\n width: '100%',\r\n height: '1px',\r\n backgroundColor: lineColor,\r\n flexShrink: 0,\r\n ...(spacing ? { margin: `${spacing} 0` } : {}),\r\n ...(dashed ? {\r\n backgroundColor: 'transparent',\r\n borderTop: `1px ${borderStyle} ${lineColor}`,\r\n } : {}),\r\n ...style,\r\n }}\r\n {...rest}\r\n />\r\n );\r\n});\r\n\r\nexport default Divider;\r\n"],"names":["Divider"],"mappings":";;;AAwCO,MAAM,UAAU,KAAK,SAASA,SAAQ;AAAA,EAC3C,cAAc;AAAA,EACd;AAAA,EACA;AAAA,EACA;AAAA,EACA,SAAS;AAAA,EACT;AAAA,EACA,GAAG;AACL,GAAqC;AACnC,QAAM,EAAE,OAAA,IAAW,SAAA;AAEnB,QAAM,YAAY,SAAS,OAAO,OAAO,OAAO;AAChD,QAAM,cAAc,SAAS,WAAW;AAExC,MAAI,gBAAgB,YAAY;AAC9B,WACE;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,oBAAiB;AAAA,QACjB,OAAO;AAAA,UACL,OAAO;AAAA,UACP,WAAW;AAAA,UACX,iBAAiB;AAAA,UACjB,YAAY;AAAA,UACZ,GAAI,UAAU,EAAE,QAAQ,KAAK,OAAO,GAAA,IAAO,CAAA;AAAA,UAC3C,GAAI,SAAS;AAAA,YACX,iBAAiB;AAAA,YACjB,YAAY,OAAO,WAAW,IAAI,SAAS;AAAA,UAAA,IACzC,CAAA;AAAA,UACJ,GAAG;AAAA,QAAA;AAAA,QAEJ,GAAG;AAAA,MAAA;AAAA,IAAA;AAAA,EAGV;AAGA,MAAI,OAAO;AACT,WACE;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,OAAO;AAAA,UACL,SAAS;AAAA,UACT,YAAY;AAAA,UACZ,KAAK,OAAO,QAAQ;AAAA,UACpB,GAAI,UAAU,EAAE,QAAQ,GAAG,OAAO,KAAA,IAAS,CAAA;AAAA,UAC3C,GAAG;AAAA,QAAA;AAAA,QAEJ,GAAG;AAAA,QAEJ,UAAA;AAAA,UAAA,oBAAC,SAAI,OAAO;AAAA,YACV,MAAM;AAAA,YACN,QAAQ;AAAA,YACR,iBAAiB;AAAA,YACjB,GAAI,SAAS;AAAA,cACX,iBAAiB;AAAA,cACjB,WAAW,OAAO,WAAW,IAAI,SAAS;AAAA,YAAA,IACxC,CAAA;AAAA,UAAC,GACJ;AAAA,UACH,oBAAC,UAAK,OAAO;AAAA,YACX,UAAU,OAAO,WAAW,SAAS;AAAA,YACrC,YAAY,OAAO,WAAW,WAAW;AAAA,YACzC,OAAO,OAAO,OAAO,KAAK;AAAA,YAC1B,YAAY,OAAO,WAAW,WAAW;AAAA,YACzC,eAAe,OAAO,WAAW,cAAc;AAAA,YAC/C,eAAe;AAAA,YACf,YAAY;AAAA,YACZ,SAAS,KAAK,OAAO,QAAQ,EAAE;AAAA,UAAA,GAE9B,UAAA,OACH;AAAA,UACA,oBAAC,SAAI,OAAO;AAAA,YACV,MAAM;AAAA,YACN,QAAQ;AAAA,YACR,iBAAiB;AAAA,YACjB,GAAI,SAAS;AAAA,cACX,iBAAiB;AAAA,cACjB,WAAW,OAAO,WAAW,IAAI,SAAS;AAAA,YAAA,IACxC,CAAA;AAAA,UAAC,EACP,CAAG;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAGT;AAEA,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,oBAAiB;AAAA,MACjB,OAAO;AAAA,QACL,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,iBAAiB;AAAA,QACjB,YAAY;AAAA,QACZ,GAAI,UAAU,EAAE,QAAQ,GAAG,OAAO,KAAA,IAAS,CAAA;AAAA,QAC3C,GAAI,SAAS;AAAA,UACX,iBAAiB;AAAA,UACjB,WAAW,OAAO,WAAW,IAAI,SAAS;AAAA,QAAA,IACxC,CAAA;AAAA,QACJ,GAAG;AAAA,MAAA;AAAA,MAEJ,GAAG;AAAA,IAAA;AAAA,EAAA;AAGV,CAAC;"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { ResponsiveValue } from './useBreakpoint';
|
|
3
|
+
import { SpacingToken } from './responsive';
|
|
4
|
+
import { BoxProps } from './Box';
|
|
5
|
+
|
|
6
|
+
type SpacingInput = SpacingToken | string | number;
|
|
7
|
+
export interface FlexProps extends BoxProps {
|
|
8
|
+
/** Flex direction */
|
|
9
|
+
direction?: ResponsiveValue<'row' | 'column' | 'row-reverse' | 'column-reverse'>;
|
|
10
|
+
/** Flex wrap */
|
|
11
|
+
wrap?: ResponsiveValue<'nowrap' | 'wrap' | 'wrap-reverse'>;
|
|
12
|
+
/** Gap between children (spacing token, px number, or CSS string) */
|
|
13
|
+
gap?: ResponsiveValue<SpacingInput>;
|
|
14
|
+
/** Row gap (overrides gap for rows) */
|
|
15
|
+
rowGap?: ResponsiveValue<SpacingInput>;
|
|
16
|
+
/** Column gap (overrides gap for columns) */
|
|
17
|
+
columnGap?: ResponsiveValue<SpacingInput>;
|
|
18
|
+
/** Align items (cross-axis) */
|
|
19
|
+
align?: ResponsiveValue<'flex-start' | 'flex-end' | 'center' | 'baseline' | 'stretch'>;
|
|
20
|
+
/** Justify content (main-axis) */
|
|
21
|
+
justify?: ResponsiveValue<'flex-start' | 'flex-end' | 'center' | 'space-between' | 'space-around' | 'space-evenly'>;
|
|
22
|
+
/** Shorthand: set both direction="column" */
|
|
23
|
+
column?: boolean;
|
|
24
|
+
/** Shorthand: center both axes */
|
|
25
|
+
center?: boolean;
|
|
26
|
+
/** Make flex container inline */
|
|
27
|
+
inline?: boolean;
|
|
28
|
+
}
|
|
29
|
+
export declare const Flex: React.MemoExoticComponent<React.ForwardRefExoticComponent<FlexProps & React.RefAttributes<HTMLDivElement>>>;
|
|
30
|
+
export default Flex;
|