@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,42 @@
1
+ import { default as React, ReactNode } from 'react';
2
+
3
+ export interface GlobalStatusBarProps {
4
+ /** Application name */
5
+ appName?: string;
6
+ /** Application domain (organization/mission) */
7
+ appDomain?: string;
8
+ /** Application version */
9
+ appVersion?: string;
10
+ /** Username to display */
11
+ username?: string;
12
+ /** Left slot content (app switcher, etc.) */
13
+ leftSlot?: ReactNode;
14
+ /** Center slot content (typically clock) */
15
+ centerSlot?: ReactNode;
16
+ /** Right slot content (monitoring icons, controls) */
17
+ rightSlot?: ReactNode;
18
+ /** Additional children */
19
+ children?: ReactNode;
20
+ /** Custom className */
21
+ className?: string;
22
+ }
23
+ /**
24
+ * GlobalStatusBar - Pure React global status bar
25
+ *
26
+ * Primary header component for space applications. Includes slots for:
27
+ * - App switcher (left)
28
+ * - Global clock (center)
29
+ * - Monitoring icons (right)
30
+ *
31
+ * @example
32
+ * ```tsx
33
+ * <GlobalStatusBar
34
+ * appName="Mission Control"
35
+ * appDomain="Zendir"
36
+ * username="Demo User"
37
+ * centerSlot={<MissionClock />}
38
+ * rightSlot={<MonitoringIcons />}
39
+ * />
40
+ * ```
41
+ */
42
+ export declare const GlobalStatusBar: React.NamedExoticComponent<GlobalStatusBarProps>;
@@ -0,0 +1,165 @@
1
+ import { jsxs, jsx } from "react/jsx-runtime";
2
+ import { memo } from "react";
3
+ import { safeAccentText, classNames } from "../utils/index.js";
4
+ import { useTheme } from "../theme/ThemeProvider.js";
5
+ const GlobalStatusBar = memo(function GlobalStatusBar2({
6
+ appName = "Zendir",
7
+ appDomain,
8
+ appVersion,
9
+ username,
10
+ leftSlot,
11
+ centerSlot,
12
+ rightSlot,
13
+ children,
14
+ className = ""
15
+ }) {
16
+ const { tokens, theme } = useTheme();
17
+ const isTransparentTheme = theme === "transparent" || theme === "transparent-bold" || theme === "transparent-minimal";
18
+ return /* @__PURE__ */ jsxs(
19
+ "header",
20
+ {
21
+ className: classNames("zendir-global-status-bar", className),
22
+ role: "banner",
23
+ style: {
24
+ display: "flex",
25
+ alignItems: "center",
26
+ justifyContent: "space-between",
27
+ height: 56,
28
+ padding: `0 ${tokens.spacing.lg}`,
29
+ backgroundColor: isTransparentTheme ? "transparent" : tokens.colors.background.surface,
30
+ ...isTransparentTheme && { backdropFilter: "blur(12px)", WebkitBackdropFilter: "blur(12px)" },
31
+ borderBottom: `1px solid ${tokens.colors.border.muted}`,
32
+ color: tokens.colors.text.primary,
33
+ fontFamily: tokens.typography.fontFamily.primary
34
+ },
35
+ children: [
36
+ /* @__PURE__ */ jsxs(
37
+ "div",
38
+ {
39
+ style: {
40
+ display: "flex",
41
+ alignItems: "center",
42
+ gap: tokens.spacing.lg,
43
+ flex: "1 1 0"
44
+ },
45
+ children: [
46
+ leftSlot,
47
+ /* @__PURE__ */ jsxs("div", { style: { display: "flex", alignItems: "baseline", gap: tokens.spacing.sm }, children: [
48
+ appDomain && /* @__PURE__ */ jsx(
49
+ "span",
50
+ {
51
+ style: {
52
+ fontSize: tokens.typography.fontSize.sm,
53
+ fontWeight: tokens.typography.fontWeight.normal,
54
+ color: tokens.colors.text.tertiary,
55
+ textTransform: "uppercase",
56
+ letterSpacing: tokens.typography.letterSpacing.wide
57
+ },
58
+ children: appDomain
59
+ }
60
+ ),
61
+ /* @__PURE__ */ jsx(
62
+ "span",
63
+ {
64
+ style: {
65
+ fontSize: tokens.typography.fontSize.xl,
66
+ fontWeight: tokens.typography.fontWeight.semibold,
67
+ letterSpacing: tokens.typography.letterSpacing.tight,
68
+ color: tokens.colors.text.primary
69
+ },
70
+ children: appName
71
+ }
72
+ ),
73
+ appVersion && /* @__PURE__ */ jsxs(
74
+ "span",
75
+ {
76
+ style: {
77
+ fontSize: tokens.typography.fontSize.xs,
78
+ fontWeight: tokens.typography.fontWeight.normal,
79
+ color: tokens.colors.text.tertiary
80
+ },
81
+ children: [
82
+ "v",
83
+ appVersion
84
+ ]
85
+ }
86
+ )
87
+ ] })
88
+ ]
89
+ }
90
+ ),
91
+ /* @__PURE__ */ jsxs(
92
+ "div",
93
+ {
94
+ style: {
95
+ display: "flex",
96
+ alignItems: "center",
97
+ justifyContent: "center",
98
+ flex: "0 0 auto"
99
+ },
100
+ children: [
101
+ centerSlot,
102
+ children
103
+ ]
104
+ }
105
+ ),
106
+ /* @__PURE__ */ jsxs(
107
+ "div",
108
+ {
109
+ style: {
110
+ display: "flex",
111
+ alignItems: "center",
112
+ justifyContent: "flex-end",
113
+ gap: tokens.spacing.lg,
114
+ flex: "1 1 0"
115
+ },
116
+ children: [
117
+ rightSlot,
118
+ username && /* @__PURE__ */ jsxs(
119
+ "div",
120
+ {
121
+ style: {
122
+ display: "flex",
123
+ alignItems: "center",
124
+ gap: tokens.spacing.sm,
125
+ paddingLeft: tokens.spacing.lg,
126
+ borderLeft: `1px solid ${tokens.colors.border.muted}`
127
+ },
128
+ children: [
129
+ /* @__PURE__ */ jsx(
130
+ "div",
131
+ {
132
+ style: {
133
+ width: 28,
134
+ height: 28,
135
+ borderRadius: tokens.borderRadius.full,
136
+ backgroundColor: `${tokens.colors.accent.primary}20`,
137
+ display: "flex",
138
+ alignItems: "center",
139
+ justifyContent: "center",
140
+ fontSize: tokens.typography.fontSize.sm,
141
+ fontWeight: tokens.typography.fontWeight.semibold,
142
+ color: safeAccentText(tokens.colors.accent.primary)
143
+ },
144
+ children: username.charAt(0).toUpperCase()
145
+ }
146
+ ),
147
+ /* @__PURE__ */ jsx("span", { style: {
148
+ fontSize: tokens.typography.fontSize.sm,
149
+ fontWeight: tokens.typography.fontWeight.medium,
150
+ color: tokens.colors.text.primary
151
+ }, children: username })
152
+ ]
153
+ }
154
+ )
155
+ ]
156
+ }
157
+ )
158
+ ]
159
+ }
160
+ );
161
+ });
162
+ export {
163
+ GlobalStatusBar
164
+ };
165
+ //# sourceMappingURL=GlobalStatusBar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GlobalStatusBar.js","sources":["../../../src/react/astro/GlobalStatusBar.tsx"],"sourcesContent":["/**\n * @zendir/ui - GlobalStatusBar Component (Pure React)\n * \n * Primary header component for space applications following Astro UX patterns.\n * \n * Features:\n * - Theme-integrated via useTheme()\n * - App identity (name, domain, version)\n * - Clock slot\n * - Monitoring icons slot\n * - Username display\n * - Responsive design\n */\n\nimport React, { memo, ReactNode } from 'react';\nimport { useTheme } from '../theme';\nimport { classNames, safeAccentText } from '../utils';\n\nexport interface GlobalStatusBarProps {\n /** Application name */\n appName?: string;\n /** Application domain (organization/mission) */\n appDomain?: string;\n /** Application version */\n appVersion?: string;\n /** Username to display */\n username?: string;\n /** Left slot content (app switcher, etc.) */\n leftSlot?: ReactNode;\n /** Center slot content (typically clock) */\n centerSlot?: ReactNode;\n /** Right slot content (monitoring icons, controls) */\n rightSlot?: ReactNode;\n /** Additional children */\n children?: ReactNode;\n /** Custom className */\n className?: string;\n}\n\n/**\n * GlobalStatusBar - Pure React global status bar\n * \n * Primary header component for space applications. Includes slots for:\n * - App switcher (left)\n * - Global clock (center)\n * - Monitoring icons (right)\n * \n * @example\n * ```tsx\n * <GlobalStatusBar\n * appName=\"Mission Control\"\n * appDomain=\"Zendir\"\n * username=\"Demo User\"\n * centerSlot={<MissionClock />}\n * rightSlot={<MonitoringIcons />}\n * />\n * ```\n */\nexport const GlobalStatusBar = memo(function GlobalStatusBar({\n appName = 'Zendir',\n appDomain,\n appVersion,\n username,\n leftSlot,\n centerSlot,\n rightSlot,\n children,\n className = '',\n}: GlobalStatusBarProps): React.ReactElement {\n const { tokens, theme } = useTheme();\n const isTransparentTheme = theme === 'transparent' || theme === 'transparent-bold' || theme === 'transparent-minimal';\n return (\n <header\n className={classNames('zendir-global-status-bar', className)}\n role=\"banner\"\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n height: 56,\n padding: `0 ${tokens.spacing.lg}`,\n backgroundColor: isTransparentTheme ? 'transparent' : tokens.colors.background.surface,\n ...(isTransparentTheme && { backdropFilter: 'blur(12px)', WebkitBackdropFilter: 'blur(12px)' as const }),\n borderBottom: `1px solid ${tokens.colors.border.muted}`,\n color: tokens.colors.text.primary,\n fontFamily: tokens.typography.fontFamily.primary,\n }}\n >\n {/* Left section: App identity */}\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n gap: tokens.spacing.lg,\n flex: '1 1 0',\n }}\n >\n {leftSlot}\n \n <div style={{ display: 'flex', alignItems: 'baseline', gap: tokens.spacing.sm }}>\n {appDomain && (\n <span\n style={{\n fontSize: tokens.typography.fontSize.sm,\n fontWeight: tokens.typography.fontWeight.normal,\n color: tokens.colors.text.tertiary,\n textTransform: 'uppercase',\n letterSpacing: tokens.typography.letterSpacing.wide,\n }}\n >\n {appDomain}\n </span>\n )}\n <span\n style={{\n fontSize: tokens.typography.fontSize.xl,\n fontWeight: tokens.typography.fontWeight.semibold,\n letterSpacing: tokens.typography.letterSpacing.tight,\n color: tokens.colors.text.primary,\n }}\n >\n {appName}\n </span>\n {appVersion && (\n <span\n style={{\n fontSize: tokens.typography.fontSize.xs,\n fontWeight: tokens.typography.fontWeight.normal,\n color: tokens.colors.text.tertiary,\n }}\n >\n v{appVersion}\n </span>\n )}\n </div>\n </div>\n\n {/* Center section: Clock */}\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flex: '0 0 auto',\n }}\n >\n {centerSlot}\n {children}\n </div>\n\n {/* Right section: Monitoring + User */}\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-end',\n gap: tokens.spacing.lg,\n flex: '1 1 0',\n }}\n >\n {rightSlot}\n \n {username && (\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n gap: tokens.spacing.sm,\n paddingLeft: tokens.spacing.lg,\n borderLeft: `1px solid ${tokens.colors.border.muted}`,\n }}\n >\n {/* User avatar */}\n <div\n style={{\n width: 28,\n height: 28,\n borderRadius: tokens.borderRadius.full,\n backgroundColor: `${tokens.colors.accent.primary}20`,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n fontSize: tokens.typography.fontSize.sm,\n fontWeight: tokens.typography.fontWeight.semibold,\n color: safeAccentText(tokens.colors.accent.primary),\n }}\n >\n {username.charAt(0).toUpperCase()}\n </div>\n <span style={{ \n fontSize: tokens.typography.fontSize.sm, \n fontWeight: tokens.typography.fontWeight.medium,\n color: tokens.colors.text.primary,\n }}>\n {username}\n </span>\n </div>\n )}\n </div>\n </header>\n );\n});\n"],"names":["GlobalStatusBar"],"mappings":";;;;AA0DO,MAAM,kBAAkB,KAAK,SAASA,iBAAgB;AAAA,EAC3D,UAAU;AAAA,EACV;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,YAAY;AACd,GAA6C;AAC3C,QAAM,EAAE,QAAQ,MAAA,IAAU,SAAA;AAC1B,QAAM,qBAAqB,UAAU,iBAAiB,UAAU,sBAAsB,UAAU;AAChG,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW,WAAW,4BAA4B,SAAS;AAAA,MAC3D,MAAK;AAAA,MACL,OAAO;AAAA,QACL,SAAS;AAAA,QACT,YAAY;AAAA,QACZ,gBAAgB;AAAA,QAChB,QAAQ;AAAA,QACR,SAAS,KAAK,OAAO,QAAQ,EAAE;AAAA,QAC/B,iBAAiB,qBAAqB,gBAAgB,OAAO,OAAO,WAAW;AAAA,QAC/E,GAAI,sBAAsB,EAAE,gBAAgB,cAAc,sBAAsB,aAAA;AAAA,QAChF,cAAc,aAAa,OAAO,OAAO,OAAO,KAAK;AAAA,QACrD,OAAO,OAAO,OAAO,KAAK;AAAA,QAC1B,YAAY,OAAO,WAAW,WAAW;AAAA,MAAA;AAAA,MAI3C,UAAA;AAAA,QAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,OAAO;AAAA,cACL,SAAS;AAAA,cACT,YAAY;AAAA,cACZ,KAAK,OAAO,QAAQ;AAAA,cACpB,MAAM;AAAA,YAAA;AAAA,YAGP,UAAA;AAAA,cAAA;AAAA,cAED,qBAAC,OAAA,EAAI,OAAO,EAAE,SAAS,QAAQ,YAAY,YAAY,KAAK,OAAO,QAAQ,GAAA,GACxE,UAAA;AAAA,gBAAA,aACC;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACC,OAAO;AAAA,sBACL,UAAU,OAAO,WAAW,SAAS;AAAA,sBACrC,YAAY,OAAO,WAAW,WAAW;AAAA,sBACzC,OAAO,OAAO,OAAO,KAAK;AAAA,sBAC1B,eAAe;AAAA,sBACf,eAAe,OAAO,WAAW,cAAc;AAAA,oBAAA;AAAA,oBAGhD,UAAA;AAAA,kBAAA;AAAA,gBAAA;AAAA,gBAGL;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACC,OAAO;AAAA,sBACL,UAAU,OAAO,WAAW,SAAS;AAAA,sBACrC,YAAY,OAAO,WAAW,WAAW;AAAA,sBACzC,eAAe,OAAO,WAAW,cAAc;AAAA,sBAC/C,OAAO,OAAO,OAAO,KAAK;AAAA,oBAAA;AAAA,oBAG3B,UAAA;AAAA,kBAAA;AAAA,gBAAA;AAAA,gBAEF,cACC;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACC,OAAO;AAAA,sBACL,UAAU,OAAO,WAAW,SAAS;AAAA,sBACrC,YAAY,OAAO,WAAW,WAAW;AAAA,sBACzC,OAAO,OAAO,OAAO,KAAK;AAAA,oBAAA;AAAA,oBAE7B,UAAA;AAAA,sBAAA;AAAA,sBACG;AAAA,oBAAA;AAAA,kBAAA;AAAA,gBAAA;AAAA,cACJ,EAAA,CAEJ;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,QAIF;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,OAAO;AAAA,cACL,SAAS;AAAA,cACT,YAAY;AAAA,cACZ,gBAAgB;AAAA,cAChB,MAAM;AAAA,YAAA;AAAA,YAGP,UAAA;AAAA,cAAA;AAAA,cACA;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,QAIH;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,OAAO;AAAA,cACL,SAAS;AAAA,cACT,YAAY;AAAA,cACZ,gBAAgB;AAAA,cAChB,KAAK,OAAO,QAAQ;AAAA,cACpB,MAAM;AAAA,YAAA;AAAA,YAGP,UAAA;AAAA,cAAA;AAAA,cAEA,YACC;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,OAAO;AAAA,oBACL,SAAS;AAAA,oBACT,YAAY;AAAA,oBACZ,KAAK,OAAO,QAAQ;AAAA,oBACpB,aAAa,OAAO,QAAQ;AAAA,oBAC5B,YAAY,aAAa,OAAO,OAAO,OAAO,KAAK;AAAA,kBAAA;AAAA,kBAIrD,UAAA;AAAA,oBAAA;AAAA,sBAAC;AAAA,sBAAA;AAAA,wBACC,OAAO;AAAA,0BACL,OAAO;AAAA,0BACP,QAAQ;AAAA,0BACR,cAAc,OAAO,aAAa;AAAA,0BAClC,iBAAiB,GAAG,OAAO,OAAO,OAAO,OAAO;AAAA,0BAChD,SAAS;AAAA,0BACT,YAAY;AAAA,0BACZ,gBAAgB;AAAA,0BAChB,UAAU,OAAO,WAAW,SAAS;AAAA,0BACrC,YAAY,OAAO,WAAW,WAAW;AAAA,0BACzC,OAAO,eAAe,OAAO,OAAO,OAAO,OAAO;AAAA,wBAAA;AAAA,wBAGnD,UAAA,SAAS,OAAO,CAAC,EAAE,YAAA;AAAA,sBAAY;AAAA,oBAAA;AAAA,oBAElC,oBAAC,UAAK,OAAO;AAAA,sBACX,UAAU,OAAO,WAAW,SAAS;AAAA,sBACrC,YAAY,OAAO,WAAW,WAAW;AAAA,sBACzC,OAAO,OAAO,OAAO,KAAK;AAAA,oBAAA,GAEzB,UAAA,SAAA,CACH;AAAA,kBAAA;AAAA,gBAAA;AAAA,cAAA;AAAA,YACF;AAAA,UAAA;AAAA,QAAA;AAAA,MAEJ;AAAA,IAAA;AAAA,EAAA;AAGN,CAAC;"}
@@ -0,0 +1,169 @@
1
+ import { default as React } from 'react';
2
+
3
+ export type ClockFormat = '12h' | '24h' | 'iso' | 'met';
4
+ export type DateFormat = 'iso' | 'julian' | 'gregorian' | 'none';
5
+ export type TimeSource = 'realtime' | 'simulation' | 'custom';
6
+ /**
7
+ * Timer configuration for AOS/LOS countdown/up timers
8
+ */
9
+ export interface TimerConfig {
10
+ /** Timer label (e.g., "AOS", "LOS", "MET") */
11
+ label: string;
12
+ /** Target timestamp (for countdown) or start timestamp (for countup) */
13
+ timestamp: Date;
14
+ /** Timer direction: 'countdown' counts to target, 'countup' counts from start */
15
+ direction: 'countdown' | 'countup';
16
+ /** Optional status color */
17
+ status?: 'normal' | 'caution' | 'critical' | 'standby';
18
+ /** Show days in timer format */
19
+ showDays?: boolean;
20
+ }
21
+ /**
22
+ * Simulation time configuration
23
+ */
24
+ export interface SimulationTimeConfig {
25
+ /** Simulation epoch (t=0) as Date or ISO string */
26
+ epoch: Date | string;
27
+ /** Current simulation time offset in seconds from epoch */
28
+ elapsedSeconds?: number;
29
+ /** Time scale factor (1 = realtime, 2 = 2x speed, etc.) */
30
+ timeScale?: number;
31
+ /** Whether simulation is running */
32
+ isRunning?: boolean;
33
+ /** Callback to get current simulation time */
34
+ getCurrentTime?: () => Date;
35
+ }
36
+ export interface MissionClockProps {
37
+ /** Clock format */
38
+ format?: ClockFormat;
39
+ /** Timezone label to display */
40
+ timezone?: string;
41
+ /** Hide seconds */
42
+ hideSeconds?: boolean;
43
+ /** Small size variant */
44
+ small?: boolean;
45
+ /** Show date */
46
+ showDate?: boolean;
47
+ /** Date format (iso, julian, gregorian) */
48
+ dateFormat?: DateFormat;
49
+ /** Custom className */
50
+ className?: string;
51
+ /** Click handler */
52
+ onClick?: () => void;
53
+ /** AOS timer - countdown/up to Acquisition of Signal */
54
+ aosTimer?: TimerConfig | Date;
55
+ /** LOS timer - countdown/up to Loss of Signal */
56
+ losTimer?: TimerConfig | Date;
57
+ /** Additional custom timers */
58
+ customTimers?: TimerConfig[];
59
+ /** Time source: realtime, simulation, or custom */
60
+ timeSource?: TimeSource;
61
+ /** Simulation time configuration (for timeSource='simulation') */
62
+ simulationConfig?: SimulationTimeConfig;
63
+ /** Custom time provider (for timeSource='custom') */
64
+ customTime?: Date | (() => Date);
65
+ /** Mission start time for MET display */
66
+ missionStart?: Date | string;
67
+ /** Show MET (Mission Elapsed Time) instead of wall clock */
68
+ showMET?: boolean;
69
+ /** Update interval in milliseconds (default: 1000) */
70
+ updateInterval?: number;
71
+ /** Compact mode - single line display */
72
+ compact?: boolean;
73
+ /** Show milliseconds */
74
+ showMilliseconds?: boolean;
75
+ }
76
+ /**
77
+ * MissionClock - Advanced mission time display for space operations
78
+ *
79
+ * Supports real-time clock, simulation time, MET (Mission Elapsed Time),
80
+ * and AOS/LOS timers following Astro UX Design System patterns.
81
+ *
82
+ * @example
83
+ * ```tsx
84
+ * // Basic clock
85
+ * <MissionClock format="24h" timezone="UTC" />
86
+ *
87
+ * // With AOS/LOS timers
88
+ * <MissionClock
89
+ * format="24h"
90
+ * aosTimer={{ label: 'AOS', timestamp: new Date('2024-03-15T10:30:00Z'), direction: 'countdown' }}
91
+ * losTimer={{ label: 'LOS', timestamp: new Date('2024-03-15T10:45:00Z'), direction: 'countdown' }}
92
+ * />
93
+ *
94
+ * // Simulation time
95
+ * <MissionClock
96
+ * timeSource="simulation"
97
+ * simulationConfig={{
98
+ * epoch: new Date('2026-01-01T00:00:00Z'),
99
+ * elapsedSeconds: 3600,
100
+ * timeScale: 1,
101
+ * }}
102
+ * />
103
+ *
104
+ * // Mission Elapsed Time
105
+ * <MissionClock
106
+ * showMET
107
+ * missionStart={new Date('2026-01-01T00:00:00Z')}
108
+ * />
109
+ *
110
+ * // Julian day format
111
+ * <MissionClock showDate dateFormat="julian" />
112
+ * ```
113
+ */
114
+ export declare const MissionClock: React.NamedExoticComponent<MissionClockProps>;
115
+ /**
116
+ * SimpleTimer - Standalone countdown/up timer
117
+ */
118
+ export interface SimpleTimerProps {
119
+ /** Timer label */
120
+ label: string;
121
+ /** Target/start timestamp */
122
+ timestamp: Date;
123
+ /** Timer direction */
124
+ direction?: 'countdown' | 'countup';
125
+ /** Status color */
126
+ status?: 'normal' | 'caution' | 'critical' | 'standby';
127
+ /** Show days */
128
+ showDays?: boolean;
129
+ /** Custom className */
130
+ className?: string;
131
+ }
132
+ export declare const SimpleTimer: React.NamedExoticComponent<SimpleTimerProps>;
133
+ /**
134
+ * MissionElapsedTime - Dedicated MET display
135
+ */
136
+ export interface MissionElapsedTimeProps {
137
+ /** Mission launch/start time */
138
+ launchTime: Date | string;
139
+ /** Show milliseconds */
140
+ showMilliseconds?: boolean;
141
+ /** Custom className */
142
+ className?: string;
143
+ /** Small variant */
144
+ small?: boolean;
145
+ }
146
+ export declare const MissionElapsedTime: React.NamedExoticComponent<MissionElapsedTimeProps>;
147
+ /**
148
+ * SimulationClock - Clock driven by simulation time
149
+ */
150
+ export interface SimulationClockProps {
151
+ /** Simulation epoch */
152
+ epoch: Date | string;
153
+ /** Elapsed seconds from epoch */
154
+ elapsedSeconds?: number;
155
+ /** Time scale factor */
156
+ timeScale?: number;
157
+ /** Whether simulation is running */
158
+ isRunning?: boolean;
159
+ /** Show date */
160
+ showDate?: boolean;
161
+ /** Date format */
162
+ dateFormat?: DateFormat;
163
+ /** Custom className */
164
+ className?: string;
165
+ /** Small variant */
166
+ small?: boolean;
167
+ }
168
+ export declare const SimulationClock: React.NamedExoticComponent<SimulationClockProps>;
169
+ export default MissionClock;