@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,1243 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { memo, useState, useRef, useEffect } from "react";
3
+ import { useTheme } from "../theme/ThemeProvider.js";
4
+ const SIZE_MAP = {
5
+ "extra-small": 16,
6
+ "small": 24,
7
+ "normal": 32,
8
+ "large": 48
9
+ };
10
+ const ICON_ALIASES = {
11
+ // === Orbit & Trajectory ===
12
+ "orbit": "360",
13
+ // Orbital path
14
+ "trajectory": "360",
15
+ // Flight path
16
+ "orbital": "360",
17
+ // Orbital mechanics
18
+ // === Ground Operations ===
19
+ "ground-station": "antenna",
20
+ // Ground station
21
+ "ground-control": "antenna",
22
+ // Mission control
23
+ "dish": "antenna",
24
+ // Antenna dish
25
+ "tracking-station": "antenna",
26
+ // Tracking facility
27
+ // === Communication ===
28
+ "uplink": "antenna-transmit",
29
+ // Command upload
30
+ "downlink": "antenna-receive",
31
+ // Data download
32
+ "command": "antenna-transmit",
33
+ // Send command
34
+ "telemetry": "antenna-receive",
35
+ // Receive telemetry
36
+ "comms": "netcom",
37
+ // Communications
38
+ "rf": "antenna",
39
+ // Radio frequency
40
+ "link": "netcom",
41
+ // Communication link
42
+ "signal": "antenna-transmit",
43
+ // Signal transmission
44
+ "data-link": "netcom",
45
+ // Data link
46
+ // === Satellite States ===
47
+ "satellite": "satellite-transmit",
48
+ // Default satellite (active)
49
+ "spacecraft": "satellite-transmit",
50
+ // Spacecraft
51
+ "vehicle": "satellite-transmit",
52
+ // Space vehicle
53
+ "sat": "satellite-transmit",
54
+ // Abbreviation
55
+ "sc": "satellite-transmit",
56
+ // Spacecraft abbreviation
57
+ // === Power Systems ===
58
+ "power": "propulsion-power",
59
+ // Power system
60
+ "battery": "battery-full",
61
+ // Battery status
62
+ "energy": "propulsion-power",
63
+ // Energy management
64
+ "solar-array": "solar",
65
+ // Solar arrays
66
+ "solar-panel": "solar",
67
+ // Solar panels
68
+ "photovoltaic": "solar",
69
+ // PV system
70
+ // === Propulsion ===
71
+ "thruster": "propulsion-power",
72
+ // Thruster
73
+ "engine": "propulsion-power",
74
+ // Engine
75
+ "burn": "propulsion-power",
76
+ // Burn/maneuver
77
+ "maneuver": "propulsion-power",
78
+ // Orbital maneuver
79
+ "delta-v": "propulsion-power",
80
+ // Delta-V
81
+ "rcs": "propulsion-power",
82
+ // Reaction control system
83
+ // === Thermal ===
84
+ "temperature": "thermal",
85
+ // Temperature
86
+ "heat": "thermal",
87
+ // Heat management
88
+ "cooling": "thermal",
89
+ // Cooling system
90
+ "heater": "thermal",
91
+ // Heater
92
+ // === Attitude & Control ===
93
+ "attitude": "explore",
94
+ // Attitude control
95
+ "pointing": "explore",
96
+ // Pointing direction
97
+ "orientation": "explore",
98
+ // Spacecraft orientation
99
+ "adcs": "explore",
100
+ // Attitude determination & control
101
+ "gyro": "explore",
102
+ // Gyroscope
103
+ "gyroscope": "explore",
104
+ // Gyroscope
105
+ // === Navigation ===
106
+ "gps": "gps-fixed",
107
+ // GPS/GNSS
108
+ "gnss": "gps-fixed",
109
+ // Global navigation
110
+ "position": "gps-fixed",
111
+ // Position
112
+ "location": "place",
113
+ // Location
114
+ "ephemeris": "timeline",
115
+ // Ephemeris data
116
+ // === Status & Health ===
117
+ "health": "favorite",
118
+ // System health
119
+ "status": "info",
120
+ // Status indicator
121
+ "nominal": "check-circle",
122
+ // Nominal/OK
123
+ "anomaly": "error",
124
+ // Anomaly detected
125
+ "fault": "error",
126
+ // Fault condition
127
+ "safe-mode": "warning",
128
+ // Safe mode
129
+ "emergency": "warning",
130
+ // Emergency
131
+ "critical": "error",
132
+ // Critical status
133
+ "caution": "warning",
134
+ // Caution
135
+ // === Time & Scheduling ===
136
+ "pass": "schedule",
137
+ // Satellite pass
138
+ "contact": "schedule",
139
+ // Ground contact
140
+ "access": "schedule",
141
+ // Access window
142
+ "window": "schedule",
143
+ // Time window
144
+ "aos": "schedule",
145
+ // Acquisition of signal
146
+ "los": "schedule",
147
+ // Loss of signal
148
+ "eclipse": "brightness-3",
149
+ // Eclipse period
150
+ "sunlight": "wb-sunny",
151
+ // In sunlight
152
+ "shadow": "brightness-3",
153
+ // In shadow
154
+ // === Subsystems ===
155
+ "subsystem": "developer-board",
156
+ // Generic subsystem
157
+ "computer": "memory",
158
+ // Onboard computer
159
+ "obc": "memory",
160
+ // Onboard computer
161
+ "cdh": "memory",
162
+ // Command & data handling
163
+ "flight-computer": "memory",
164
+ // Flight computer
165
+ "sensor": "settings-input-component",
166
+ // Sensor
167
+ "instrument": "settings-input-component",
168
+ // Instrument
169
+ // === Launch & Deployment ===
170
+ "launch": "flight-takeoff",
171
+ // Launch
172
+ "rocket": "flight-takeoff",
173
+ // Rocket
174
+ "liftoff": "flight-takeoff",
175
+ // Liftoff
176
+ "deployment": "open-in-new",
177
+ // Deployment
178
+ "deploy": "open-in-new",
179
+ // Deploy
180
+ "separation": "call-split",
181
+ // Stage separation
182
+ // === Operations ===
183
+ "ops": "build",
184
+ // Operations
185
+ "operations": "build",
186
+ // Operations
187
+ "control": "tune",
188
+ // Control
189
+ "automation": "autorenew",
190
+ // Automation
191
+ "sequence": "playlist-play",
192
+ // Command sequence
193
+ "procedure": "list",
194
+ // Procedure
195
+ // === Data & Storage ===
196
+ "storage": "sd-storage",
197
+ // Data storage
198
+ "memory": "memory",
199
+ // Memory
200
+ "recorder": "fiber-dvr",
201
+ // Data recorder
202
+ "playback": "play-arrow",
203
+ // Playback
204
+ "record": "fiber-manual-record",
205
+ // Recording
206
+ // === Monitoring ===
207
+ "monitor": "desktop-mac",
208
+ // Monitoring
209
+ "dashboard": "dashboard",
210
+ // Dashboard
211
+ "console": "desktop-windows",
212
+ // Console
213
+ "display": "tv",
214
+ // Display
215
+ // === Crew (if applicable) ===
216
+ "astronaut": "person",
217
+ // Astronaut
218
+ "crew": "group",
219
+ // Crew
220
+ "eva": "directions-walk"
221
+ // Extra-vehicular activity
222
+ };
223
+ function resolveIconAlias(name) {
224
+ return ICON_ALIASES[name] || name;
225
+ }
226
+ function getIconAliases() {
227
+ return { ...ICON_ALIASES };
228
+ }
229
+ function isIconAlias(name) {
230
+ return name in ICON_ALIASES;
231
+ }
232
+ const ASTRO_ICON_NAMES = [
233
+ // === Astro Space/Mission Icons (Custom by Rocket Communications) ===
234
+ "altitude",
235
+ "antenna",
236
+ "antenna-off",
237
+ "antenna-receive",
238
+ "antenna-transmit",
239
+ "equipment",
240
+ "hardware",
241
+ "mission",
242
+ "netcom",
243
+ "payload",
244
+ "processor",
245
+ "processor-alt",
246
+ "propulsion-power",
247
+ "satellite-off",
248
+ "satellite-receive",
249
+ "satellite-transmit",
250
+ "solar",
251
+ "thermal",
252
+ // === Actions ===
253
+ "settings",
254
+ "search",
255
+ "home",
256
+ "info",
257
+ "help",
258
+ "delete",
259
+ "edit",
260
+ "lock",
261
+ "lock-open",
262
+ "visibility",
263
+ "visibility-off",
264
+ "refresh",
265
+ "sync",
266
+ "download",
267
+ "upload",
268
+ "fullscreen",
269
+ "fullscreen-exit",
270
+ "zoom-in",
271
+ "zoom-out",
272
+ "schedule",
273
+ "timeline",
274
+ "today",
275
+ "event",
276
+ "bookmark",
277
+ "favorite",
278
+ "star",
279
+ "check-circle",
280
+ "done",
281
+ "done-all",
282
+ "print",
283
+ "open-in-new",
284
+ "launch",
285
+ "power-settings-new",
286
+ "history",
287
+ "cached",
288
+ "build",
289
+ "code",
290
+ "dns",
291
+ "language",
292
+ "input",
293
+ "label",
294
+ "list",
295
+ "track-changes",
296
+ "verified-user",
297
+ "work",
298
+ // === Alerts ===
299
+ "add-alert",
300
+ "error",
301
+ "error-outline",
302
+ "notification-important",
303
+ "warning",
304
+ // === AV ===
305
+ "play-arrow",
306
+ "pause",
307
+ "stop",
308
+ "skip-next",
309
+ "skip-previous",
310
+ "fast-forward",
311
+ "fast-rewind",
312
+ "replay",
313
+ "loop",
314
+ "shuffle",
315
+ "volume-up",
316
+ "volume-down",
317
+ "volume-off",
318
+ "volume-mute",
319
+ "mic",
320
+ "mic-off",
321
+ "videocam",
322
+ "videocam-off",
323
+ "movie",
324
+ "music-note",
325
+ "equalizer",
326
+ "library-music",
327
+ "queue-music",
328
+ // === Communication ===
329
+ "call",
330
+ "call-end",
331
+ "chat",
332
+ "chat-bubble",
333
+ "chat-bubble-outline",
334
+ "comment",
335
+ "contacts",
336
+ "email",
337
+ "mail-outline",
338
+ "message",
339
+ "phone",
340
+ "voicemail",
341
+ "vpn-key",
342
+ "forum",
343
+ "live-help",
344
+ "location-on",
345
+ "location-off",
346
+ "business",
347
+ "import-contacts",
348
+ // === Content ===
349
+ "add",
350
+ "remove",
351
+ "add-circle",
352
+ "add-circle-outline",
353
+ "remove-circle",
354
+ "remove-circle-outline",
355
+ "clear",
356
+ "content-copy",
357
+ "content-cut",
358
+ "content-paste",
359
+ "create",
360
+ "flag",
361
+ "forward",
362
+ "reply",
363
+ "reply-all",
364
+ "save",
365
+ "save-alt",
366
+ "select-all",
367
+ "send",
368
+ "undo",
369
+ "redo",
370
+ "filter-list",
371
+ "sort",
372
+ "drafts",
373
+ "link",
374
+ "link-off",
375
+ // === Device ===
376
+ "battery-full",
377
+ "battery-charging-full",
378
+ "battery-alert",
379
+ "battery-unknown",
380
+ "bluetooth",
381
+ "bluetooth-disabled",
382
+ "bluetooth-connected",
383
+ "bluetooth-searching",
384
+ "brightness-1",
385
+ "brightness-2",
386
+ "brightness-3",
387
+ "brightness-4",
388
+ "brightness-5",
389
+ "brightness-6",
390
+ "brightness-7",
391
+ "brightness-auto",
392
+ "brightness-high",
393
+ "brightness-low",
394
+ "brightness-medium",
395
+ "gps-fixed",
396
+ "gps-not-fixed",
397
+ "gps-off",
398
+ "graphic-eq",
399
+ "network-cell",
400
+ "network-wifi",
401
+ "nfc",
402
+ "screen-rotation",
403
+ "sd-storage",
404
+ "settings-system-daydream",
405
+ "signal-cellular-4-bar",
406
+ "signal-cellular-connected-no-internet-4-bar",
407
+ "signal-cellular-no-sim",
408
+ "signal-cellular-null",
409
+ "signal-cellular-off",
410
+ "signal-wifi-4-bar",
411
+ "signal-wifi-4-bar-lock",
412
+ "signal-wifi-off",
413
+ "storage",
414
+ "usb",
415
+ "wifi",
416
+ "wifi-lock",
417
+ "wifi-off",
418
+ "wifi-tethering",
419
+ // === Editor ===
420
+ "attach-file",
421
+ "attach-money",
422
+ "border-all",
423
+ "border-bottom",
424
+ "border-clear",
425
+ "border-color",
426
+ "border-horizontal",
427
+ "border-inner",
428
+ "border-left",
429
+ "border-outer",
430
+ "border-right",
431
+ "border-style",
432
+ "border-top",
433
+ "border-vertical",
434
+ "format-align-center",
435
+ "format-align-justify",
436
+ "format-align-left",
437
+ "format-align-right",
438
+ "format-bold",
439
+ "format-clear",
440
+ "format-color-fill",
441
+ "format-color-reset",
442
+ "format-color-text",
443
+ "format-indent-decrease",
444
+ "format-indent-increase",
445
+ "format-italic",
446
+ "format-line-spacing",
447
+ "format-list-bulleted",
448
+ "format-list-numbered",
449
+ "format-paint",
450
+ "format-quote",
451
+ "format-size",
452
+ "format-strikethrough",
453
+ "format-textdirection-l-to-r",
454
+ "format-textdirection-r-to-l",
455
+ "format-underlined",
456
+ "functions",
457
+ "insert-chart",
458
+ "insert-comment",
459
+ "insert-drive-file",
460
+ "insert-emoticon",
461
+ "insert-invitation",
462
+ "insert-link",
463
+ "insert-photo",
464
+ "merge-type",
465
+ "mode-comment",
466
+ "mode-edit",
467
+ "publish",
468
+ "short-text",
469
+ "space-bar",
470
+ "strikethrough-s",
471
+ "text-fields",
472
+ "title",
473
+ "vertical-align-bottom",
474
+ "vertical-align-center",
475
+ "vertical-align-top",
476
+ "wrap-text",
477
+ // === File ===
478
+ "attachment",
479
+ "cloud",
480
+ "cloud-circle",
481
+ "cloud-done",
482
+ "cloud-download",
483
+ "cloud-off",
484
+ "cloud-queue",
485
+ "cloud-upload",
486
+ "create-new-folder",
487
+ "file-download",
488
+ "file-upload",
489
+ "folder",
490
+ "folder-open",
491
+ "folder-shared",
492
+ // === Hardware ===
493
+ "cast",
494
+ "cast-connected",
495
+ "computer",
496
+ "desktop-mac",
497
+ "desktop-windows",
498
+ "developer-board",
499
+ "device-hub",
500
+ "devices-other",
501
+ "dock",
502
+ "gamepad",
503
+ "headset",
504
+ "headset-mic",
505
+ "keyboard",
506
+ "keyboard-arrow-down",
507
+ "keyboard-arrow-left",
508
+ "keyboard-arrow-right",
509
+ "keyboard-arrow-up",
510
+ "keyboard-backspace",
511
+ "keyboard-capslock",
512
+ "keyboard-hide",
513
+ "keyboard-return",
514
+ "keyboard-tab",
515
+ "keyboard-voice",
516
+ "laptop",
517
+ "laptop-chromebook",
518
+ "laptop-mac",
519
+ "laptop-windows",
520
+ "memory",
521
+ "mouse",
522
+ "phone-android",
523
+ "phone-iphone",
524
+ "phonelink",
525
+ "phonelink-off",
526
+ "power-input",
527
+ "router",
528
+ "scanner",
529
+ "security",
530
+ "sim-card",
531
+ "smartphone",
532
+ "speaker",
533
+ "speaker-group",
534
+ "tablet",
535
+ "tablet-android",
536
+ "tablet-mac",
537
+ "toys",
538
+ "tv",
539
+ "watch",
540
+ // === Image ===
541
+ "add-a-photo",
542
+ "add-photo-alternate",
543
+ "add-to-photos",
544
+ "adjust",
545
+ "brightness-1",
546
+ "broken-image",
547
+ "brush",
548
+ "burst-mode",
549
+ "camera",
550
+ "camera-alt",
551
+ "camera-front",
552
+ "camera-rear",
553
+ "camera-roll",
554
+ "center-focus-strong",
555
+ "center-focus-weak",
556
+ "collections",
557
+ "collections-bookmark",
558
+ "color-lens",
559
+ "colorize",
560
+ "compare",
561
+ "control-point",
562
+ "control-point-duplicate",
563
+ "crop",
564
+ "crop-16-9",
565
+ "crop-3-2",
566
+ "crop-5-4",
567
+ "crop-7-5",
568
+ "crop-din",
569
+ "crop-free",
570
+ "crop-landscape",
571
+ "crop-original",
572
+ "crop-portrait",
573
+ "crop-rotate",
574
+ "crop-square",
575
+ "dehaze",
576
+ "details",
577
+ "edit",
578
+ "exposure",
579
+ "exposure-neg-1",
580
+ "exposure-neg-2",
581
+ "exposure-plus-1",
582
+ "exposure-plus-2",
583
+ "exposure-zero",
584
+ "filter",
585
+ "filter-1",
586
+ "filter-2",
587
+ "filter-3",
588
+ "filter-4",
589
+ "filter-5",
590
+ "filter-6",
591
+ "filter-7",
592
+ "filter-8",
593
+ "filter-9",
594
+ "filter-9-plus",
595
+ "filter-b-and-w",
596
+ "filter-center-focus",
597
+ "filter-drama",
598
+ "filter-frames",
599
+ "filter-hdr",
600
+ "filter-none",
601
+ "filter-tilt-shift",
602
+ "filter-vintage",
603
+ "flare",
604
+ "flash-auto",
605
+ "flash-off",
606
+ "flash-on",
607
+ "flip",
608
+ "gradient",
609
+ "grain",
610
+ "grid-off",
611
+ "grid-on",
612
+ "hdr-off",
613
+ "hdr-on",
614
+ "hdr-strong",
615
+ "hdr-weak",
616
+ "healing",
617
+ "image",
618
+ "image-aspect-ratio",
619
+ "image-search",
620
+ "iso",
621
+ "landscape",
622
+ "leak-add",
623
+ "leak-remove",
624
+ "lens",
625
+ "linked-camera",
626
+ "looks",
627
+ "looks-3",
628
+ "looks-4",
629
+ "looks-5",
630
+ "looks-6",
631
+ "looks-one",
632
+ "looks-two",
633
+ "loupe",
634
+ "monochrome-photos",
635
+ "movie-creation",
636
+ "movie-filter",
637
+ "music-off",
638
+ "music-on",
639
+ "navigate-before",
640
+ "navigate-next",
641
+ "nature",
642
+ "nature-people",
643
+ "palette",
644
+ "panorama",
645
+ "panorama-fish-eye",
646
+ "panorama-horizontal",
647
+ "panorama-vertical",
648
+ "panorama-wide-angle",
649
+ "photo",
650
+ "photo-album",
651
+ "photo-camera",
652
+ "photo-filter",
653
+ "photo-library",
654
+ "photo-size-select-actual",
655
+ "photo-size-select-large",
656
+ "photo-size-select-small",
657
+ "picture-as-pdf",
658
+ "portrait",
659
+ "remove-red-eye",
660
+ "rotate-90-degrees-ccw",
661
+ "rotate-left",
662
+ "rotate-right",
663
+ "slideshow",
664
+ "straighten",
665
+ "style",
666
+ "switch-camera",
667
+ "switch-video",
668
+ "tag-faces",
669
+ "texture",
670
+ "timelapse",
671
+ "timer",
672
+ "timer-10",
673
+ "timer-3",
674
+ "timer-off",
675
+ "tonality",
676
+ "transform",
677
+ "tune",
678
+ "view-comfy",
679
+ "view-compact",
680
+ "vignette",
681
+ "wb-auto",
682
+ "wb-cloudy",
683
+ "wb-incandescent",
684
+ "wb-iridescent",
685
+ "wb-sunny",
686
+ // === Maps ===
687
+ "add-location",
688
+ "beenhere",
689
+ "directions",
690
+ "directions-bike",
691
+ "directions-boat",
692
+ "directions-bus",
693
+ "directions-car",
694
+ "directions-railway",
695
+ "directions-run",
696
+ "directions-subway",
697
+ "directions-transit",
698
+ "directions-walk",
699
+ "edit-location",
700
+ "ev-station",
701
+ "flight",
702
+ "hotel",
703
+ "layers",
704
+ "layers-clear",
705
+ "local-activity",
706
+ "local-airport",
707
+ "local-atm",
708
+ "local-bar",
709
+ "local-cafe",
710
+ "local-car-wash",
711
+ "local-convenience-store",
712
+ "local-dining",
713
+ "local-drink",
714
+ "local-florist",
715
+ "local-gas-station",
716
+ "local-grocery-store",
717
+ "local-hospital",
718
+ "local-hotel",
719
+ "local-laundry-service",
720
+ "local-library",
721
+ "local-mall",
722
+ "local-movies",
723
+ "local-offer",
724
+ "local-parking",
725
+ "local-pharmacy",
726
+ "local-phone",
727
+ "local-pizza",
728
+ "local-play",
729
+ "local-post-office",
730
+ "local-printshop",
731
+ "local-see",
732
+ "local-shipping",
733
+ "local-taxi",
734
+ "map",
735
+ "my-location",
736
+ "navigation",
737
+ "near-me",
738
+ "person-pin",
739
+ "person-pin-circle",
740
+ "pin-drop",
741
+ "place",
742
+ "rate-review",
743
+ "restaurant",
744
+ "restaurant-menu",
745
+ "satellite",
746
+ "store-mall-directory",
747
+ "streetview",
748
+ "subway",
749
+ "terrain",
750
+ "traffic",
751
+ "train",
752
+ "tram",
753
+ "transfer-within-a-station",
754
+ "zoom-out-map",
755
+ // === Navigation ===
756
+ "apps",
757
+ "arrow-back",
758
+ "arrow-downward",
759
+ "arrow-drop-down",
760
+ "arrow-drop-down-circle",
761
+ "arrow-drop-up",
762
+ "arrow-forward",
763
+ "arrow-upward",
764
+ "cancel",
765
+ "check",
766
+ "chevron-left",
767
+ "chevron-right",
768
+ "close",
769
+ "expand-less",
770
+ "expand-more",
771
+ "first-page",
772
+ "last-page",
773
+ "menu",
774
+ "more-horiz",
775
+ "more-vert",
776
+ "subdirectory-arrow-left",
777
+ "subdirectory-arrow-right",
778
+ "unfold-less",
779
+ "unfold-more",
780
+ // === Notification ===
781
+ "adb",
782
+ "airline-seat-flat",
783
+ "airline-seat-flat-angled",
784
+ "airline-seat-individual-suite",
785
+ "airline-seat-legroom-extra",
786
+ "airline-seat-legroom-normal",
787
+ "airline-seat-legroom-reduced",
788
+ "airline-seat-recline-extra",
789
+ "airline-seat-recline-normal",
790
+ "bluetooth-audio",
791
+ "confirmation-number",
792
+ "disc-full",
793
+ "do-not-disturb",
794
+ "do-not-disturb-alt",
795
+ "do-not-disturb-off",
796
+ "do-not-disturb-on",
797
+ "drive-eta",
798
+ "enhanced-encryption",
799
+ "event-available",
800
+ "event-busy",
801
+ "event-note",
802
+ "folder-special",
803
+ "live-tv",
804
+ "mms",
805
+ "more",
806
+ "network-check",
807
+ "network-locked",
808
+ "no-encryption",
809
+ "ondemand-video",
810
+ "personal-video",
811
+ "phone-bluetooth-speaker",
812
+ "phone-callback",
813
+ "phone-forwarded",
814
+ "phone-in-talk",
815
+ "phone-locked",
816
+ "phone-missed",
817
+ "phone-paused",
818
+ "power",
819
+ "power-off",
820
+ "priority-high",
821
+ "sd-card",
822
+ "sim-card-alert",
823
+ "sms",
824
+ "sms-failed",
825
+ "sync-disabled",
826
+ "sync-problem",
827
+ "system-update",
828
+ "tap-and-play",
829
+ "time-to-leave",
830
+ "vibration",
831
+ "voice-chat",
832
+ "vpn-lock",
833
+ "wc",
834
+ "wifi",
835
+ "notifications",
836
+ "notifications-active",
837
+ "notifications-none",
838
+ "notifications-off",
839
+ "notifications-paused",
840
+ // === Places ===
841
+ "ac-unit",
842
+ "airport-shuttle",
843
+ "all-inclusive",
844
+ "beach-access",
845
+ "business-center",
846
+ "casino",
847
+ "child-care",
848
+ "child-friendly",
849
+ "fitness-center",
850
+ "free-breakfast",
851
+ "golf-course",
852
+ "hot-tub",
853
+ "kitchen",
854
+ "meeting-room",
855
+ "no-meeting-room",
856
+ "pool",
857
+ "room-service",
858
+ "rv-hookup",
859
+ "smoke-free",
860
+ "smoking-rooms",
861
+ "spa",
862
+ // === Social ===
863
+ "cake",
864
+ "domain",
865
+ "group",
866
+ "group-add",
867
+ "location-city",
868
+ "mood",
869
+ "mood-bad",
870
+ "notifications",
871
+ "pages",
872
+ "party-mode",
873
+ "people",
874
+ "people-outline",
875
+ "person",
876
+ "person-add",
877
+ "person-outline",
878
+ "plus-one",
879
+ "poll",
880
+ "public",
881
+ "school",
882
+ "sentiment-dissatisfied",
883
+ "sentiment-neutral",
884
+ "sentiment-satisfied",
885
+ "sentiment-very-dissatisfied",
886
+ "sentiment-very-satisfied",
887
+ "share",
888
+ "thumb-down",
889
+ "thumb-up",
890
+ "whatshot",
891
+ // === Toggle ===
892
+ "check-box",
893
+ "check-box-outline-blank",
894
+ "indeterminate-check-box",
895
+ "radio-button-checked",
896
+ "radio-button-unchecked",
897
+ "star",
898
+ "star-border",
899
+ "star-half",
900
+ // === Additional common icons ===
901
+ "360",
902
+ "autorenew",
903
+ "call-split",
904
+ "explore",
905
+ "extension",
906
+ "face",
907
+ "feedback",
908
+ "fiber-dvr",
909
+ "fiber-manual-record",
910
+ "fiber-new",
911
+ "fiber-pin",
912
+ "fiber-smart-record",
913
+ "get-app",
914
+ "grade",
915
+ "highlight-off",
916
+ "http",
917
+ "https",
918
+ "important-devices",
919
+ "lightbulb",
920
+ "lightbulb-outline",
921
+ "perm-camera-mic",
922
+ "perm-contact-calendar",
923
+ "perm-data-setting",
924
+ "perm-device-information",
925
+ "perm-identity",
926
+ "perm-media",
927
+ "perm-phone-msg",
928
+ "perm-scan-wifi",
929
+ "pets",
930
+ "playlist-add",
931
+ "playlist-add-check",
932
+ "playlist-play",
933
+ "pregnant-woman",
934
+ "query-builder",
935
+ "question-answer",
936
+ "receipt",
937
+ "record-voice-over",
938
+ "redeem",
939
+ "report-problem",
940
+ "restore",
941
+ "restore-page",
942
+ "room",
943
+ "rounded-corner",
944
+ "rowing",
945
+ "settings-applications",
946
+ "settings-backup-restore",
947
+ "settings-bluetooth",
948
+ "settings-brightness",
949
+ "settings-cell",
950
+ "settings-ethernet",
951
+ "settings-input-antenna",
952
+ "settings-input-component",
953
+ "settings-input-composite",
954
+ "settings-input-hdmi",
955
+ "settings-input-svideo",
956
+ "settings-overscan",
957
+ "settings-phone",
958
+ "settings-power",
959
+ "settings-remote",
960
+ "settings-voice",
961
+ "shop",
962
+ "shop-two",
963
+ "shopping-basket",
964
+ "shopping-cart",
965
+ "speaker-notes",
966
+ "speaker-notes-off",
967
+ "spellcheck",
968
+ "stars",
969
+ "subject",
970
+ "supervisor-account",
971
+ "swap-horiz",
972
+ "swap-vert",
973
+ "swap-vertical-circle",
974
+ "system-update-alt",
975
+ "tab",
976
+ "tab-unselected",
977
+ "theaters",
978
+ "thumb-down",
979
+ "thumb-up",
980
+ "thumbs-up-down",
981
+ "toc",
982
+ "toll",
983
+ "touch-app",
984
+ "translate",
985
+ "trending-down",
986
+ "trending-flat",
987
+ "trending-up",
988
+ "turned-in",
989
+ "turned-in-not",
990
+ "update",
991
+ "view-agenda",
992
+ "view-array",
993
+ "view-carousel",
994
+ "view-column",
995
+ "view-day",
996
+ "view-headline",
997
+ "view-list",
998
+ "view-module",
999
+ "view-quilt",
1000
+ "view-stream",
1001
+ "view-week",
1002
+ "visibility",
1003
+ "visibility-off",
1004
+ "watch-later",
1005
+ "youtube-searched-for",
1006
+ "aspect-ratio",
1007
+ "assignment",
1008
+ "assignment-ind",
1009
+ "assignment-late",
1010
+ "assignment-return",
1011
+ "assignment-returned",
1012
+ "assignment-turned-in",
1013
+ "backup",
1014
+ "book",
1015
+ "flight-takeoff",
1016
+ "flight-land"
1017
+ ];
1018
+ function getAstroIconNames() {
1019
+ return ASTRO_ICON_NAMES;
1020
+ }
1021
+ function getAllIconNames() {
1022
+ return {
1023
+ icons: ASTRO_ICON_NAMES,
1024
+ aliases: ICON_ALIASES
1025
+ };
1026
+ }
1027
+ let loadState = "pending";
1028
+ let RuxIconComponent = null;
1029
+ const subscribers = /* @__PURE__ */ new Set();
1030
+ function subscribe(callback) {
1031
+ subscribers.add(callback);
1032
+ return () => subscribers.delete(callback);
1033
+ }
1034
+ function notifySubscribers() {
1035
+ subscribers.forEach((cb) => cb());
1036
+ }
1037
+ async function loadRuxIcon() {
1038
+ if (loadState === "loaded") {
1039
+ return RuxIconComponent;
1040
+ }
1041
+ if (loadState === "failed") {
1042
+ return null;
1043
+ }
1044
+ if (loadState === "loading") {
1045
+ return new Promise((resolve) => {
1046
+ const unsub = subscribe(() => {
1047
+ unsub();
1048
+ resolve(RuxIconComponent);
1049
+ });
1050
+ });
1051
+ }
1052
+ loadState = "loading";
1053
+ try {
1054
+ const astroModule = await import("@astrouxds/react");
1055
+ RuxIconComponent = astroModule.RuxIcon;
1056
+ loadState = "loaded";
1057
+ notifySubscribers();
1058
+ return RuxIconComponent;
1059
+ } catch (err) {
1060
+ loadState = "failed";
1061
+ notifySubscribers();
1062
+ return null;
1063
+ }
1064
+ }
1065
+ function FallbackIcon({
1066
+ name,
1067
+ size,
1068
+ color,
1069
+ label,
1070
+ className,
1071
+ style,
1072
+ onClick,
1073
+ "data-testid": testId
1074
+ }) {
1075
+ const { tokens } = useTheme();
1076
+ const actualSize = typeof size === "number" ? size : SIZE_MAP[size || "normal"];
1077
+ return /* @__PURE__ */ jsx(
1078
+ "span",
1079
+ {
1080
+ role: "img",
1081
+ "aria-label": label || name,
1082
+ className,
1083
+ "data-testid": testId,
1084
+ onClick,
1085
+ tabIndex: onClick ? 0 : void 0,
1086
+ onKeyDown: onClick ? (e) => e.key === "Enter" && onClick() : void 0,
1087
+ style: {
1088
+ display: "inline-flex",
1089
+ alignItems: "center",
1090
+ justifyContent: "center",
1091
+ width: actualSize,
1092
+ height: actualSize,
1093
+ fontSize: actualSize * 0.4,
1094
+ fontFamily: tokens.typography.fontFamily.mono,
1095
+ fontWeight: 700,
1096
+ // AstroUXDS bold for data values
1097
+ color: color || tokens.colors.status.off,
1098
+ backgroundColor: tokens.colors.background.surface,
1099
+ border: `1px solid ${tokens.colors.border.default}`,
1100
+ borderRadius: 4,
1101
+ cursor: onClick ? "pointer" : "default",
1102
+ userSelect: "none",
1103
+ ...style
1104
+ },
1105
+ title: `Icon: ${name}${!RuxIconComponent ? " (install @astrouxds/react for official icons)" : ""}`,
1106
+ children: /* @__PURE__ */ jsxs(
1107
+ "svg",
1108
+ {
1109
+ width: actualSize * 0.6,
1110
+ height: actualSize * 0.6,
1111
+ viewBox: "0 0 24 24",
1112
+ fill: "currentColor",
1113
+ children: [
1114
+ /* @__PURE__ */ jsx("rect", { x: "3", y: "3", width: "18", height: "18", rx: "2", fill: "none", stroke: "currentColor", strokeWidth: "1.5" }),
1115
+ /* @__PURE__ */ jsx("circle", { cx: "12", cy: "12", r: "2", fill: "currentColor" })
1116
+ ]
1117
+ }
1118
+ )
1119
+ }
1120
+ );
1121
+ }
1122
+ const AstroIcon = memo(function AstroIcon2(props) {
1123
+ const {
1124
+ name,
1125
+ size = "normal",
1126
+ color,
1127
+ label,
1128
+ className,
1129
+ style,
1130
+ onClick,
1131
+ "data-testid": testId
1132
+ } = props;
1133
+ const [, forceUpdate] = useState(0);
1134
+ const [currentState, setCurrentState] = useState(loadState);
1135
+ const mountedRef = useRef(true);
1136
+ useEffect(() => {
1137
+ mountedRef.current = true;
1138
+ const unsubscribe = subscribe(() => {
1139
+ if (mountedRef.current) {
1140
+ setCurrentState(loadState);
1141
+ forceUpdate((n) => n + 1);
1142
+ }
1143
+ });
1144
+ if (loadState === "pending") {
1145
+ loadRuxIcon();
1146
+ }
1147
+ return () => {
1148
+ mountedRef.current = false;
1149
+ unsubscribe();
1150
+ };
1151
+ }, []);
1152
+ if (currentState === "pending" || currentState === "loading") {
1153
+ const actualSize = typeof size === "number" ? size : SIZE_MAP[size];
1154
+ return /* @__PURE__ */ jsx(
1155
+ "span",
1156
+ {
1157
+ style: {
1158
+ display: "inline-block",
1159
+ width: actualSize,
1160
+ height: actualSize,
1161
+ ...style
1162
+ },
1163
+ className,
1164
+ "aria-hidden": "true"
1165
+ }
1166
+ );
1167
+ }
1168
+ const resolvedName = resolveIconAlias(name);
1169
+ if (RuxIconComponent) {
1170
+ const RuxIcon = RuxIconComponent;
1171
+ const pixelSize = typeof size === "number" ? size : SIZE_MAP[size];
1172
+ const getClosestAstroSize = (px) => {
1173
+ if (px <= 18) return "extra-small";
1174
+ if (px <= 28) return "small";
1175
+ if (px <= 40) return "normal";
1176
+ return "large";
1177
+ };
1178
+ const astroSize = typeof size === "number" ? getClosestAstroSize(size) : size;
1179
+ const iconColor = color || "var(--color-status-off, #a4abb6)";
1180
+ return /* @__PURE__ */ jsx(
1181
+ "span",
1182
+ {
1183
+ role: "img",
1184
+ "aria-label": label || name,
1185
+ style: {
1186
+ display: "inline-flex",
1187
+ alignItems: "center",
1188
+ justifyContent: "center",
1189
+ width: pixelSize,
1190
+ height: pixelSize,
1191
+ minWidth: pixelSize,
1192
+ minHeight: pixelSize,
1193
+ flexShrink: 0,
1194
+ // Don't use overflow:hidden - it clips the icon SVG
1195
+ ...style
1196
+ },
1197
+ className,
1198
+ children: /* @__PURE__ */ jsx(
1199
+ RuxIcon,
1200
+ {
1201
+ icon: resolvedName,
1202
+ size: astroSize,
1203
+ label: label || name,
1204
+ "data-testid": testId,
1205
+ onClick,
1206
+ style: {
1207
+ // Force the RuxIcon to respect our exact pixel size
1208
+ "--iconDefaultSize": `${pixelSize}px`,
1209
+ "--iconSize": `${pixelSize}px`,
1210
+ "--size": `${pixelSize}px`,
1211
+ color: iconColor,
1212
+ width: `${pixelSize}px`,
1213
+ height: `${pixelSize}px`,
1214
+ display: "flex",
1215
+ alignItems: "center",
1216
+ justifyContent: "center",
1217
+ ...onClick && { cursor: "pointer" }
1218
+ }
1219
+ }
1220
+ )
1221
+ }
1222
+ );
1223
+ }
1224
+ return /* @__PURE__ */ jsx(FallbackIcon, { ...props, name: resolvedName });
1225
+ });
1226
+ function isAstroIconsAvailable() {
1227
+ return loadState === "loaded" && RuxIconComponent !== null;
1228
+ }
1229
+ async function preloadAstroIcons() {
1230
+ const component = await loadRuxIcon();
1231
+ return component !== null;
1232
+ }
1233
+ export {
1234
+ ASTRO_ICON_NAMES,
1235
+ AstroIcon,
1236
+ getAllIconNames,
1237
+ getAstroIconNames,
1238
+ getIconAliases,
1239
+ isAstroIconsAvailable,
1240
+ isIconAlias,
1241
+ preloadAstroIcons
1242
+ };
1243
+ //# sourceMappingURL=AstroIcon.js.map