@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.
Files changed (359) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/LICENSE +21 -0
  3. package/README.md +589 -0
  4. package/dist/index.d.ts +8 -0
  5. package/dist/index.js +421 -0
  6. package/dist/index.js.map +1 -0
  7. package/dist/react/3d/EarthViewer.d.ts +46 -0
  8. package/dist/react/3d/EarthViewer.js +836 -0
  9. package/dist/react/3d/EarthViewer.js.map +1 -0
  10. package/dist/react/3d/SolarSystemViewer.d.ts +43 -0
  11. package/dist/react/3d/SolarSystemViewer.js +372 -0
  12. package/dist/react/3d/SolarSystemViewer.js.map +1 -0
  13. package/dist/react/3d/ZenSpace3D.d.ts +16 -0
  14. package/dist/react/3d/ZenSpace3D.js +1253 -0
  15. package/dist/react/3d/ZenSpace3D.js.map +1 -0
  16. package/dist/react/3d/ZenSpace3DCesium.d.ts +9 -0
  17. package/dist/react/3d/ZenSpace3DCesium.js +186 -0
  18. package/dist/react/3d/ZenSpace3DCesium.js.map +1 -0
  19. package/dist/react/3d/ZenSpace3DShaders.d.ts +78 -0
  20. package/dist/react/3d/ZenSpace3DShaders.js +94 -0
  21. package/dist/react/3d/ZenSpace3DShaders.js.map +1 -0
  22. package/dist/react/3d/ZenSpace3DTypes.d.ts +614 -0
  23. package/dist/react/3d/ZenSpace3DUtils.d.ts +183 -0
  24. package/dist/react/3d/ZenSpace3DUtils.js +213 -0
  25. package/dist/react/3d/ZenSpace3DUtils.js.map +1 -0
  26. package/dist/react/3d/index.d.ts +23 -0
  27. package/dist/react/3d/threeLoader.d.ts +22 -0
  28. package/dist/react/3d/threeLoader.js +18 -0
  29. package/dist/react/3d/threeLoader.js.map +1 -0
  30. package/dist/react/astro/ClassificationBanner.d.ts +25 -0
  31. package/dist/react/astro/ClassificationBanner.js +83 -0
  32. package/dist/react/astro/ClassificationBanner.js.map +1 -0
  33. package/dist/react/astro/GlobalStatusBar.d.ts +42 -0
  34. package/dist/react/astro/GlobalStatusBar.js +165 -0
  35. package/dist/react/astro/GlobalStatusBar.js.map +1 -0
  36. package/dist/react/astro/MissionClock.d.ts +169 -0
  37. package/dist/react/astro/MissionClock.js +411 -0
  38. package/dist/react/astro/MissionClock.js.map +1 -0
  39. package/dist/react/astro/MonitoringIcon.d.ts +60 -0
  40. package/dist/react/astro/MonitoringIcon.js +369 -0
  41. package/dist/react/astro/MonitoringIcon.js.map +1 -0
  42. package/dist/react/astro/Notification.d.ts +42 -0
  43. package/dist/react/astro/Notification.js +156 -0
  44. package/dist/react/astro/Notification.js.map +1 -0
  45. package/dist/react/astro/Progress.d.ts +39 -0
  46. package/dist/react/astro/Progress.js +149 -0
  47. package/dist/react/astro/Progress.js.map +1 -0
  48. package/dist/react/astro/SimulationControls.d.ts +136 -0
  49. package/dist/react/astro/SimulationControls.js +668 -0
  50. package/dist/react/astro/SimulationControls.js.map +1 -0
  51. package/dist/react/astro/StatusIndicator.d.ts +34 -0
  52. package/dist/react/astro/StatusIndicator.js +189 -0
  53. package/dist/react/astro/StatusIndicator.js.map +1 -0
  54. package/dist/react/astro/UnifiedTimeline.d.ts +106 -0
  55. package/dist/react/astro/UnifiedTimeline.js +1768 -0
  56. package/dist/react/astro/UnifiedTimeline.js.map +1 -0
  57. package/dist/react/astro/index.d.ts +63 -0
  58. package/dist/react/cards/AccessCard.d.ts +37 -0
  59. package/dist/react/cards/AccessCard.js +410 -0
  60. package/dist/react/cards/AccessCard.js.map +1 -0
  61. package/dist/react/cards/OrbitCard.d.ts +31 -0
  62. package/dist/react/cards/OrbitCard.js +372 -0
  63. package/dist/react/cards/OrbitCard.js.map +1 -0
  64. package/dist/react/cards/SpacecraftCard.d.ts +54 -0
  65. package/dist/react/cards/SpacecraftCard.js +941 -0
  66. package/dist/react/cards/SpacecraftCard.js.map +1 -0
  67. package/dist/react/cards/TelemetryCard.d.ts +40 -0
  68. package/dist/react/cards/TelemetryCard.js +742 -0
  69. package/dist/react/cards/TelemetryCard.js.map +1 -0
  70. package/dist/react/cards/TelemetryStreamCard.d.ts +59 -0
  71. package/dist/react/cards/TelemetryStreamCard.js +309 -0
  72. package/dist/react/cards/TelemetryStreamCard.js.map +1 -0
  73. package/dist/react/cards/index.d.ts +13 -0
  74. package/dist/react/charts/GroundTrackMap.d.ts +112 -0
  75. package/dist/react/charts/GroundTrackMap.js +1123 -0
  76. package/dist/react/charts/GroundTrackMap.js.map +1 -0
  77. package/dist/react/charts/GroundTrackMapLeaflet.d.ts +26 -0
  78. package/dist/react/charts/GroundTrackMapLeaflet.js +571 -0
  79. package/dist/react/charts/GroundTrackMapLeaflet.js.map +1 -0
  80. package/dist/react/charts/groundTrackMapLeafletTiles.d.ts +22 -0
  81. package/dist/react/charts/groundTrackMapLeafletTiles.js +11 -0
  82. package/dist/react/charts/groundTrackMapLeafletTiles.js.map +1 -0
  83. package/dist/react/charts/groundTrackMapLeafletUtils.d.ts +24 -0
  84. package/dist/react/charts/groundTrackMapLeafletUtils.js +109 -0
  85. package/dist/react/charts/groundTrackMapLeafletUtils.js.map +1 -0
  86. package/dist/react/charts/index.d.ts +10 -0
  87. package/dist/react/charts/unified/AstroChart.d.ts +24 -0
  88. package/dist/react/charts/unified/AstroChart.js +1405 -0
  89. package/dist/react/charts/unified/AstroChart.js.map +1 -0
  90. package/dist/react/charts/unified/PowerOverviewChart.d.ts +73 -0
  91. package/dist/react/charts/unified/PowerOverviewChart.js +488 -0
  92. package/dist/react/charts/unified/PowerOverviewChart.js.map +1 -0
  93. package/dist/react/charts/unified/domain.d.ts +845 -0
  94. package/dist/react/charts/unified/domain.js +3168 -0
  95. package/dist/react/charts/unified/domain.js.map +1 -0
  96. package/dist/react/charts/unified/generators.d.ts +276 -0
  97. package/dist/react/charts/unified/generators.js +518 -0
  98. package/dist/react/charts/unified/generators.js.map +1 -0
  99. package/dist/react/charts/unified/index.d.ts +55 -0
  100. package/dist/react/charts/unified/presets.d.ts +290 -0
  101. package/dist/react/charts/unified/presets.js +999 -0
  102. package/dist/react/charts/unified/presets.js.map +1 -0
  103. package/dist/react/charts/unified/sync.d.ts +69 -0
  104. package/dist/react/charts/unified/sync.js +219 -0
  105. package/dist/react/charts/unified/sync.js.map +1 -0
  106. package/dist/react/charts/unified/theme.d.ts +447 -0
  107. package/dist/react/charts/unified/theme.js +562 -0
  108. package/dist/react/charts/unified/theme.js.map +1 -0
  109. package/dist/react/charts/unified/types.d.ts +826 -0
  110. package/dist/react/charts/unified/useChartStream.d.ts +58 -0
  111. package/dist/react/charts/unified/useChartStream.js +226 -0
  112. package/dist/react/charts/unified/useChartStream.js.map +1 -0
  113. package/dist/react/chatgpt/AppCard.d.ts +59 -0
  114. package/dist/react/chatgpt/AppCard.js +306 -0
  115. package/dist/react/chatgpt/AppCard.js.map +1 -0
  116. package/dist/react/chatgpt/ChatGPTCard.d.ts +6 -0
  117. package/dist/react/chatgpt/index.d.ts +167 -0
  118. package/dist/react/chatgpt/index.js +166 -0
  119. package/dist/react/chatgpt/index.js.map +1 -0
  120. package/dist/react/context/DisplaySettingsContext.d.ts +107 -0
  121. package/dist/react/context/DisplaySettingsContext.js +169 -0
  122. package/dist/react/context/DisplaySettingsContext.js.map +1 -0
  123. package/dist/react/context/index.d.ts +5 -0
  124. package/dist/react/core/ActivityPlanner.d.ts +45 -0
  125. package/dist/react/core/ActivityPlanner.js +532 -0
  126. package/dist/react/core/ActivityPlanner.js.map +1 -0
  127. package/dist/react/core/AppBar.d.ts +71 -0
  128. package/dist/react/core/AppBar.js +817 -0
  129. package/dist/react/core/AppBar.js.map +1 -0
  130. package/dist/react/core/AstroIcon.d.ts +84 -0
  131. package/dist/react/core/AstroIcon.js +1243 -0
  132. package/dist/react/core/AstroIcon.js.map +1 -0
  133. package/dist/react/core/Badge.d.ts +27 -0
  134. package/dist/react/core/Badge.js +134 -0
  135. package/dist/react/core/Badge.js.map +1 -0
  136. package/dist/react/core/Button.d.ts +26 -0
  137. package/dist/react/core/Button.js +306 -0
  138. package/dist/react/core/Button.js.map +1 -0
  139. package/dist/react/core/CardHeader.d.ts +34 -0
  140. package/dist/react/core/CardHeader.js +316 -0
  141. package/dist/react/core/CardHeader.js.map +1 -0
  142. package/dist/react/core/ChatPanel.d.ts +627 -0
  143. package/dist/react/core/ChatPanel.js +1144 -0
  144. package/dist/react/core/ChatPanel.js.map +1 -0
  145. package/dist/react/core/Checkbox.d.ts +26 -0
  146. package/dist/react/core/Checkbox.js +130 -0
  147. package/dist/react/core/Checkbox.js.map +1 -0
  148. package/dist/react/core/ColorPickerPanel.d.ts +25 -0
  149. package/dist/react/core/ColorPickerPanel.js +293 -0
  150. package/dist/react/core/ColorPickerPanel.js.map +1 -0
  151. package/dist/react/core/CommandBuilder.d.ts +74 -0
  152. package/dist/react/core/CommandBuilder.js +518 -0
  153. package/dist/react/core/CommandBuilder.js.map +1 -0
  154. package/dist/react/core/ConfirmDialog.d.ts +45 -0
  155. package/dist/react/core/ConfirmDialog.js +315 -0
  156. package/dist/react/core/ConfirmDialog.js.map +1 -0
  157. package/dist/react/core/ConnectionForm.d.ts +57 -0
  158. package/dist/react/core/ConnectionForm.js +496 -0
  159. package/dist/react/core/ConnectionForm.js.map +1 -0
  160. package/dist/react/core/Container.d.ts +51 -0
  161. package/dist/react/core/Container.js +670 -0
  162. package/dist/react/core/Container.js.map +1 -0
  163. package/dist/react/core/CopyButton.d.ts +39 -0
  164. package/dist/react/core/CopyButton.js +105 -0
  165. package/dist/react/core/CopyButton.js.map +1 -0
  166. package/dist/react/core/DataTable.d.ts +113 -0
  167. package/dist/react/core/DataTable.js +446 -0
  168. package/dist/react/core/DataTable.js.map +1 -0
  169. package/dist/react/core/DataValue.d.ts +64 -0
  170. package/dist/react/core/DataValue.js +545 -0
  171. package/dist/react/core/DataValue.js.map +1 -0
  172. package/dist/react/core/Dialog.d.ts +32 -0
  173. package/dist/react/core/Dialog.js +201 -0
  174. package/dist/react/core/Dialog.js.map +1 -0
  175. package/dist/react/core/FileExplorer.d.ts +65 -0
  176. package/dist/react/core/FileExplorer.js +520 -0
  177. package/dist/react/core/FileExplorer.js.map +1 -0
  178. package/dist/react/core/GlassCard.d.ts +129 -0
  179. package/dist/react/core/GlassCard.js +375 -0
  180. package/dist/react/core/GlassCard.js.map +1 -0
  181. package/dist/react/core/HeaderIconWithStatus.d.ts +39 -0
  182. package/dist/react/core/HeaderIconWithStatus.js +157 -0
  183. package/dist/react/core/HeaderIconWithStatus.js.map +1 -0
  184. package/dist/react/core/HexViewer.d.ts +143 -0
  185. package/dist/react/core/HexViewer.js +1106 -0
  186. package/dist/react/core/HexViewer.js.map +1 -0
  187. package/dist/react/core/Icon.d.ts +32 -0
  188. package/dist/react/core/Icon.js +142 -0
  189. package/dist/react/core/Icon.js.map +1 -0
  190. package/dist/react/core/ImageGallery.d.ts +41 -0
  191. package/dist/react/core/ImageGallery.js +320 -0
  192. package/dist/react/core/ImageGallery.js.map +1 -0
  193. package/dist/react/core/Input.d.ts +38 -0
  194. package/dist/react/core/Input.js +288 -0
  195. package/dist/react/core/Input.js.map +1 -0
  196. package/dist/react/core/LimitsBar.d.ts +51 -0
  197. package/dist/react/core/LimitsBar.js +200 -0
  198. package/dist/react/core/LimitsBar.js.map +1 -0
  199. package/dist/react/core/LogViewer.d.ts +61 -0
  200. package/dist/react/core/LogViewer.js +599 -0
  201. package/dist/react/core/LogViewer.js.map +1 -0
  202. package/dist/react/core/MessageStream.d.ts +58 -0
  203. package/dist/react/core/MessageStream.js +455 -0
  204. package/dist/react/core/MessageStream.js.map +1 -0
  205. package/dist/react/core/MissionCalendar.d.ts +81 -0
  206. package/dist/react/core/MissionCalendar.js +1049 -0
  207. package/dist/react/core/MissionCalendar.js.map +1 -0
  208. package/dist/react/core/NumberInput.d.ts +85 -0
  209. package/dist/react/core/NumberInput.js +507 -0
  210. package/dist/react/core/NumberInput.js.map +1 -0
  211. package/dist/react/core/PacketViewer.d.ts +73 -0
  212. package/dist/react/core/PacketViewer.js +431 -0
  213. package/dist/react/core/PacketViewer.js.map +1 -0
  214. package/dist/react/core/Pagination.d.ts +30 -0
  215. package/dist/react/core/Pagination.js +190 -0
  216. package/dist/react/core/Pagination.js.map +1 -0
  217. package/dist/react/core/PinInput.d.ts +41 -0
  218. package/dist/react/core/PinInput.js +210 -0
  219. package/dist/react/core/PinInput.js.map +1 -0
  220. package/dist/react/core/Popover.d.ts +55 -0
  221. package/dist/react/core/Popover.js +288 -0
  222. package/dist/react/core/Popover.js.map +1 -0
  223. package/dist/react/core/Select.d.ts +42 -0
  224. package/dist/react/core/Select.js +303 -0
  225. package/dist/react/core/Select.js.map +1 -0
  226. package/dist/react/core/SideNav.d.ts +103 -0
  227. package/dist/react/core/SideNav.js +551 -0
  228. package/dist/react/core/SideNav.js.map +1 -0
  229. package/dist/react/core/SidePanel.d.ts +33 -0
  230. package/dist/react/core/SidePanel.js +199 -0
  231. package/dist/react/core/SidePanel.js.map +1 -0
  232. package/dist/react/core/Tabs.d.ts +47 -0
  233. package/dist/react/core/Tabs.js +129 -0
  234. package/dist/react/core/Tabs.js.map +1 -0
  235. package/dist/react/core/Toast.d.ts +56 -0
  236. package/dist/react/core/Toast.js +229 -0
  237. package/dist/react/core/Toast.js.map +1 -0
  238. package/dist/react/core/Toggle.d.ts +22 -0
  239. package/dist/react/core/Toggle.js +151 -0
  240. package/dist/react/core/Toggle.js.map +1 -0
  241. package/dist/react/core/Tooltip.d.ts +19 -0
  242. package/dist/react/core/Tooltip.js +179 -0
  243. package/dist/react/core/Tooltip.js.map +1 -0
  244. package/dist/react/core/Typography.d.ts +127 -0
  245. package/dist/react/core/Typography.js +187 -0
  246. package/dist/react/core/Typography.js.map +1 -0
  247. package/dist/react/core/index.d.ts +108 -0
  248. package/dist/react/core/layout/Box.d.ts +77 -0
  249. package/dist/react/core/layout/Box.js +126 -0
  250. package/dist/react/core/layout/Box.js.map +1 -0
  251. package/dist/react/core/layout/Center.d.ts +20 -0
  252. package/dist/react/core/layout/Center.js +34 -0
  253. package/dist/react/core/layout/Center.js.map +1 -0
  254. package/dist/react/core/layout/Divider.d.ts +16 -0
  255. package/dist/react/core/layout/Divider.js +108 -0
  256. package/dist/react/core/layout/Divider.js.map +1 -0
  257. package/dist/react/core/layout/Flex.d.ts +30 -0
  258. package/dist/react/core/layout/Flex.js +128 -0
  259. package/dist/react/core/layout/Flex.js.map +1 -0
  260. package/dist/react/core/layout/Grid.d.ts +36 -0
  261. package/dist/react/core/layout/Grid.js +142 -0
  262. package/dist/react/core/layout/Grid.js.map +1 -0
  263. package/dist/react/core/layout/Spacer.d.ts +8 -0
  264. package/dist/react/core/layout/Spacer.js +31 -0
  265. package/dist/react/core/layout/Spacer.js.map +1 -0
  266. package/dist/react/core/layout/Stack.d.ts +54 -0
  267. package/dist/react/core/layout/Stack.js +74 -0
  268. package/dist/react/core/layout/Stack.js.map +1 -0
  269. package/dist/react/core/layout/index.d.ts +38 -0
  270. package/dist/react/core/layout/responsive.d.ts +23 -0
  271. package/dist/react/core/layout/responsive.js +26 -0
  272. package/dist/react/core/layout/responsive.js.map +1 -0
  273. package/dist/react/core/layout/useBreakpoint.d.ts +77 -0
  274. package/dist/react/core/layout/useBreakpoint.js +73 -0
  275. package/dist/react/core/layout/useBreakpoint.js.map +1 -0
  276. package/dist/react/core/propertyConfig.d.ts +443 -0
  277. package/dist/react/core/propertyConfig.js +399 -0
  278. package/dist/react/core/propertyConfig.js.map +1 -0
  279. package/dist/react/hooks/index.d.ts +21 -0
  280. package/dist/react/hooks/useAccessWindows.d.ts +66 -0
  281. package/dist/react/hooks/useCompactMode.d.ts +82 -0
  282. package/dist/react/hooks/useCompactMode.js +62 -0
  283. package/dist/react/hooks/useCompactMode.js.map +1 -0
  284. package/dist/react/hooks/useLiveSelection.d.ts +57 -0
  285. package/dist/react/hooks/useSimulationPlayback.d.ts +97 -0
  286. package/dist/react/hooks/useSimulationTime.d.ts +61 -0
  287. package/dist/react/hooks/useSpacecraftPosition.d.ts +50 -0
  288. package/dist/react/hooks/useSpacecraftPosition.js +89 -0
  289. package/dist/react/hooks/useSpacecraftPosition.js.map +1 -0
  290. package/dist/react/hooks/useTelemetry.d.ts +55 -0
  291. package/dist/react/hooks/useTelemetry.js +73 -0
  292. package/dist/react/hooks/useTelemetry.js.map +1 -0
  293. package/dist/react/hooks/useZendirSession.d.ts +109 -0
  294. package/dist/react/hooks/useZendirSession.js +148 -0
  295. package/dist/react/hooks/useZendirSession.js.map +1 -0
  296. package/dist/react/index.d.ts +74 -0
  297. package/dist/react/shared/ErrorBoundary.d.ts +63 -0
  298. package/dist/react/shared/ErrorBoundary.js +142 -0
  299. package/dist/react/shared/ErrorBoundary.js.map +1 -0
  300. package/dist/react/shared/Skeleton.d.ts +110 -0
  301. package/dist/react/shared/Skeleton.js +324 -0
  302. package/dist/react/shared/Skeleton.js.map +1 -0
  303. package/dist/react/shared/index.d.ts +12 -0
  304. package/dist/react/theme/ThemeProvider.d.ts +385 -0
  305. package/dist/react/theme/ThemeProvider.js +1096 -0
  306. package/dist/react/theme/ThemeProvider.js.map +1 -0
  307. package/dist/react/theme/astro-tokens.d.ts +153 -0
  308. package/dist/react/theme/cardAccent.d.ts +75 -0
  309. package/dist/react/theme/cardAccent.js +137 -0
  310. package/dist/react/theme/cardAccent.js.map +1 -0
  311. package/dist/react/theme/config.d.ts +39 -0
  312. package/dist/react/theme/index.d.ts +9 -0
  313. package/dist/react/types.d.ts +360 -0
  314. package/dist/react/types.js +58 -0
  315. package/dist/react/types.js.map +1 -0
  316. package/dist/react/utils/index.d.ts +247 -0
  317. package/dist/react/utils/index.js +423 -0
  318. package/dist/react/utils/index.js.map +1 -0
  319. package/dist/react/visualizations/EclipseTimerCard.d.ts +17 -0
  320. package/dist/react/visualizations/EclipseTimerCard.js +250 -0
  321. package/dist/react/visualizations/EclipseTimerCard.js.map +1 -0
  322. package/dist/react/visualizations/LinkBudgetCard.d.ts +50 -0
  323. package/dist/react/visualizations/LinkBudgetCard.js +444 -0
  324. package/dist/react/visualizations/LinkBudgetCard.js.map +1 -0
  325. package/dist/react/visualizations/NavBallCard.d.ts +17 -0
  326. package/dist/react/visualizations/NavBallCard.js +243 -0
  327. package/dist/react/visualizations/NavBallCard.js.map +1 -0
  328. package/dist/react/visualizations/PropulsionCard.d.ts +37 -0
  329. package/dist/react/visualizations/PropulsionCard.js +298 -0
  330. package/dist/react/visualizations/PropulsionCard.js.map +1 -0
  331. package/dist/react/visualizations/SensorFootprintCard.d.ts +33 -0
  332. package/dist/react/visualizations/SensorFootprintCard.js +326 -0
  333. package/dist/react/visualizations/SensorFootprintCard.js.map +1 -0
  334. package/dist/react/visualizations/ThermalHeatmapCard.d.ts +38 -0
  335. package/dist/react/visualizations/ThermalHeatmapCard.js +372 -0
  336. package/dist/react/visualizations/ThermalHeatmapCard.js.map +1 -0
  337. package/dist/react/visualizations/index.d.ts +17 -0
  338. package/dist/react.d.ts +1 -0
  339. package/dist/react.js +421 -0
  340. package/dist/react.js.map +1 -0
  341. package/dist/shaders/atmosphere.frag.js +5 -0
  342. package/dist/shaders/atmosphere.frag.js.map +1 -0
  343. package/dist/shaders/atmosphere.vert.js +5 -0
  344. package/dist/shaders/atmosphere.vert.js.map +1 -0
  345. package/dist/shaders/stars.frag.js +5 -0
  346. package/dist/shaders/stars.frag.js.map +1 -0
  347. package/dist/shaders/stars.vert.js +5 -0
  348. package/dist/shaders/stars.vert.js.map +1 -0
  349. package/dist/style.css +143 -0
  350. package/dist/tokens/index.d.ts +296 -0
  351. package/dist/tokens/index.js +263 -0
  352. package/dist/tokens/index.js.map +1 -0
  353. package/dist/tokens/tokens.css +155 -0
  354. package/dist/types/index.d.ts +23 -0
  355. package/dist/types.d.ts +1 -0
  356. package/dist/types.js +2 -0
  357. package/dist/types.js.map +1 -0
  358. package/package.json +220 -0
  359. 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;