@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,670 @@
1
+ import { jsxs, jsx } from "react/jsx-runtime";
2
+ import React, { memo, useCallback } from "react";
3
+ import { addAlpha, classNames } from "../utils/index.js";
4
+ import { AstroIcon } from "./AstroIcon.js";
5
+ import { HeaderIconWithStatus } from "./HeaderIconWithStatus.js";
6
+ import { CardHeader } from "./CardHeader.js";
7
+ import { useBreakpoint } from "./layout/useBreakpoint.js";
8
+ import { useTheme } from "../theme/ThemeProvider.js";
9
+ const STATUS_COLORS = {
10
+ off: "#a4abb6",
11
+ standby: "#2dccff",
12
+ normal: "#56f000",
13
+ caution: "#fce83a",
14
+ serious: "#ffb302",
15
+ critical: "#ff3838"
16
+ };
17
+ const STATUS_DESCRIPTIONS = {
18
+ off: "Off, unavailable, disabled",
19
+ standby: "Standby, available, enabled",
20
+ normal: "Normal, ok, satisfactory",
21
+ caution: "Caution, warning, unstable",
22
+ serious: "Serious, error, needs attention",
23
+ critical: "Critical, emergency, urgent"
24
+ };
25
+ function IconWithStatusTooltip({
26
+ icon,
27
+ iconColor,
28
+ iconStatus,
29
+ statusMessage,
30
+ iconSize = 20
31
+ }) {
32
+ const [isHovered, setIsHovered] = React.useState(false);
33
+ const color = iconStatus ? STATUS_COLORS[iconStatus] : iconColor;
34
+ const defaultMessage = iconStatus ? STATUS_DESCRIPTIONS[iconStatus] : "";
35
+ const tooltipText = statusMessage || defaultMessage;
36
+ const statusLabel = iconStatus ? iconStatus.charAt(0).toUpperCase() + iconStatus.slice(1) : "";
37
+ return /* @__PURE__ */ jsxs(
38
+ "div",
39
+ {
40
+ style: {
41
+ position: "relative",
42
+ display: "inline-flex",
43
+ alignItems: "center",
44
+ justifyContent: "center",
45
+ flexShrink: 0,
46
+ cursor: iconStatus ? "help" : "default"
47
+ },
48
+ onMouseEnter: () => iconStatus && setIsHovered(true),
49
+ onMouseLeave: () => setIsHovered(false),
50
+ children: [
51
+ iconStatus ? /* @__PURE__ */ jsx(
52
+ HeaderIconWithStatus,
53
+ {
54
+ icon,
55
+ status: iconStatus,
56
+ size: iconSize,
57
+ statusColor: iconColor
58
+ }
59
+ ) : /* @__PURE__ */ jsx(
60
+ AstroIcon,
61
+ {
62
+ name: icon,
63
+ size: iconSize,
64
+ color: iconColor
65
+ }
66
+ ),
67
+ iconStatus && isHovered && /* @__PURE__ */ jsxs(
68
+ "div",
69
+ {
70
+ style: {
71
+ position: "absolute",
72
+ bottom: "calc(100% + 12px)",
73
+ left: "50%",
74
+ transform: "translateX(-50%)",
75
+ padding: "8px 12px",
76
+ backgroundColor: "rgba(10, 15, 25, 0.95)",
77
+ border: `1px solid ${color}`,
78
+ borderRadius: "4px",
79
+ boxShadow: `0 0 12px ${color}40, 0 4px 12px rgba(0,0,0,0.4)`,
80
+ zIndex: 1e3,
81
+ whiteSpace: "nowrap",
82
+ pointerEvents: "none",
83
+ minWidth: "150px"
84
+ },
85
+ children: [
86
+ /* @__PURE__ */ jsx("div", { style: {
87
+ fontSize: "0.6875rem",
88
+ // 11px in rem
89
+ fontWeight: 500,
90
+ // AstroUXDS medium for labels
91
+ color,
92
+ marginBottom: "4px",
93
+ textTransform: "uppercase",
94
+ letterSpacing: "0.5px"
95
+ }, children: statusLabel }),
96
+ /* @__PURE__ */ jsx("div", { style: {
97
+ fontSize: "0.75rem",
98
+ // 12px in rem
99
+ color: "rgba(255,255,255,0.9)",
100
+ lineHeight: 1.4
101
+ }, children: tooltipText }),
102
+ /* @__PURE__ */ jsx("div", { style: {
103
+ position: "absolute",
104
+ bottom: "-6px",
105
+ left: "50%",
106
+ transform: "translateX(-50%) rotate(45deg)",
107
+ width: "10px",
108
+ height: "10px",
109
+ backgroundColor: "rgba(10, 15, 25, 0.95)",
110
+ borderRight: `1px solid ${color}`,
111
+ borderBottom: `1px solid ${color}`
112
+ } })
113
+ ]
114
+ }
115
+ )
116
+ ]
117
+ }
118
+ );
119
+ }
120
+ function StatusSymbol({
121
+ status,
122
+ size = 8,
123
+ message,
124
+ showTooltip = false
125
+ }) {
126
+ const [isHovered, setIsHovered] = React.useState(false);
127
+ const color = STATUS_COLORS[status];
128
+ const defaultMessage = STATUS_DESCRIPTIONS[status];
129
+ const tooltipText = message || defaultMessage;
130
+ const statusLabel = status.charAt(0).toUpperCase() + status.slice(1);
131
+ const renderShape = () => {
132
+ const h = size / 2;
133
+ const glow = `drop-shadow(0 0 3px ${color})`;
134
+ switch (status) {
135
+ case "critical":
136
+ return /* @__PURE__ */ jsx("svg", { width: size, height: size, viewBox: `0 0 ${size} ${size}`, style: { filter: glow }, children: /* @__PURE__ */ jsx("polygon", { points: `${h},${size} 0,0 ${size},0`, fill: color }) });
137
+ case "serious":
138
+ return /* @__PURE__ */ jsx("svg", { width: size, height: size, viewBox: `0 0 ${size} ${size}`, style: { filter: glow }, children: /* @__PURE__ */ jsx("polygon", { points: `${h},0 ${size},${h} ${h},${size} 0,${h}`, fill: color }) });
139
+ case "caution":
140
+ return /* @__PURE__ */ jsx("svg", { width: size, height: size, viewBox: `0 0 ${size} ${size}`, style: { filter: glow }, children: /* @__PURE__ */ jsx("rect", { width: size, height: size, fill: color }) });
141
+ case "normal":
142
+ return /* @__PURE__ */ jsx("svg", { width: size, height: size, viewBox: `0 0 ${size} ${size}`, style: { filter: glow }, children: /* @__PURE__ */ jsx("circle", { cx: h, cy: h, r: h, fill: color }) });
143
+ case "standby":
144
+ return /* @__PURE__ */ jsx("svg", { width: size, height: size, viewBox: "0 0 12 12", style: { filter: glow }, children: /* @__PURE__ */ jsx("circle", { cx: "6", cy: "6", r: "3.5", fill: "none", stroke: color, strokeWidth: "2" }) });
145
+ case "off":
146
+ default:
147
+ return /* @__PURE__ */ jsx("svg", { width: size, height: size, viewBox: "0 0 12 12", style: { filter: glow }, children: /* @__PURE__ */ jsx("circle", { cx: "6", cy: "6", r: "3", fill: color }) });
148
+ }
149
+ };
150
+ return /* @__PURE__ */ jsxs(
151
+ "div",
152
+ {
153
+ style: {
154
+ position: "relative",
155
+ display: "inline-flex",
156
+ alignItems: "center",
157
+ justifyContent: "center",
158
+ cursor: showTooltip ? "help" : "default"
159
+ },
160
+ onMouseEnter: () => showTooltip && setIsHovered(true),
161
+ onMouseLeave: () => setIsHovered(false),
162
+ children: [
163
+ renderShape(),
164
+ showTooltip && isHovered && /* @__PURE__ */ jsxs(
165
+ "div",
166
+ {
167
+ style: {
168
+ position: "absolute",
169
+ bottom: "calc(100% + 8px)",
170
+ left: "50%",
171
+ transform: "translateX(-50%)",
172
+ padding: "8px 12px",
173
+ backgroundColor: "rgba(10, 15, 25, 0.95)",
174
+ border: `1px solid ${color}`,
175
+ borderRadius: "4px",
176
+ boxShadow: `0 0 12px ${color}40, 0 4px 12px rgba(0,0,0,0.4)`,
177
+ zIndex: 1e3,
178
+ whiteSpace: "nowrap",
179
+ pointerEvents: "none",
180
+ minWidth: "150px"
181
+ },
182
+ children: [
183
+ /* @__PURE__ */ jsx("div", { style: {
184
+ fontSize: "0.6875rem",
185
+ // 11px in rem
186
+ fontWeight: 500,
187
+ // AstroUXDS medium for labels
188
+ color,
189
+ marginBottom: "4px",
190
+ textTransform: "uppercase",
191
+ letterSpacing: "0.5px"
192
+ }, children: statusLabel }),
193
+ /* @__PURE__ */ jsx("div", { style: {
194
+ fontSize: "0.75rem",
195
+ // 12px in rem
196
+ color: "rgba(255,255,255,0.9)",
197
+ lineHeight: 1.4
198
+ }, children: tooltipText }),
199
+ /* @__PURE__ */ jsx("div", { style: {
200
+ position: "absolute",
201
+ bottom: "-6px",
202
+ left: "50%",
203
+ transform: "translateX(-50%) rotate(45deg)",
204
+ width: "10px",
205
+ height: "10px",
206
+ backgroundColor: "rgba(10, 15, 25, 0.95)",
207
+ borderRight: `1px solid ${color}`,
208
+ borderBottom: `1px solid ${color}`
209
+ } })
210
+ ]
211
+ }
212
+ )
213
+ ]
214
+ }
215
+ );
216
+ }
217
+ function StatusBadge({
218
+ status,
219
+ tokens: _tokens,
220
+ size = "bold"
221
+ }) {
222
+ const color = STATUS_COLORS[status];
223
+ const label = status.charAt(0).toUpperCase() + status.slice(1);
224
+ const isBold = size === "bold";
225
+ return /* @__PURE__ */ jsxs("span", { style: {
226
+ display: "inline-flex",
227
+ alignItems: "center",
228
+ gap: isBold ? "6px" : "4px",
229
+ padding: isBold ? "3px 10px" : "2px 8px",
230
+ borderRadius: "12px",
231
+ fontSize: isBold ? "11px" : "10px",
232
+ fontWeight: 500,
233
+ backgroundColor: `${color}20`,
234
+ color,
235
+ flexShrink: 0,
236
+ textTransform: "uppercase",
237
+ letterSpacing: "0.3px"
238
+ }, children: [
239
+ /* @__PURE__ */ jsx(StatusSymbol, { status, size: isBold ? 6 : 5 }),
240
+ label
241
+ ] });
242
+ }
243
+ const Container = memo(function Container2({
244
+ variant = "default",
245
+ padding = "md",
246
+ title,
247
+ subtitle,
248
+ status,
249
+ actions,
250
+ fullHeight = false,
251
+ clipContent = true,
252
+ loading = false,
253
+ children,
254
+ className = "",
255
+ style,
256
+ onClick,
257
+ disableAutoGlass = false,
258
+ icon,
259
+ iconStatus,
260
+ statusMessage,
261
+ iconColor,
262
+ accentColor
263
+ }) {
264
+ var _a, _b;
265
+ const { tokens, theme } = useTheme();
266
+ const { isMobile } = useBreakpoint();
267
+ const isBoldVariant = theme === "transparent-bold";
268
+ const isMinimalVariant = theme === "transparent-minimal";
269
+ const useGlassMode = (isBoldVariant || isMinimalVariant) && !disableAutoGlass && !variant.startsWith("glass");
270
+ const useSimpleGlass = theme === "transparent" && !disableAutoGlass && !variant.startsWith("glass");
271
+ const defaultAccentColor = tokens.colors.accent.primary;
272
+ const glassAccentColor = accentColor || defaultAccentColor;
273
+ const glassAccentMuted = `${glassAccentColor}66`;
274
+ const glassGradient = `linear-gradient(135deg, ${glassAccentColor}10 0%, ${glassAccentColor}03 100%)`;
275
+ const resolvedIconColor = iconColor || (iconStatus ? STATUS_COLORS[iconStatus] : glassAccentColor);
276
+ const paddingConfig = {
277
+ none: "0",
278
+ sm: isMobile ? tokens.spacing.xs : tokens.spacing.sm,
279
+ md: isMobile ? tokens.spacing.sm : tokens.spacing.md,
280
+ lg: isMobile ? tokens.spacing.md : tokens.spacing.lg
281
+ };
282
+ const headingConfig = ((_b = (_a = tokens.layout) == null ? void 0 : _a.card) == null ? void 0 : _b.heading) ?? {
283
+ iconSize: 20,
284
+ iconSizeCompact: 16,
285
+ titleFontSize: "1.125rem",
286
+ titleFontWeight: 500,
287
+ gap: 8
288
+ };
289
+ const variantStyles = {
290
+ default: {
291
+ backgroundColor: tokens.colors.background.surface,
292
+ border: `1px solid ${tokens.colors.border.muted}`,
293
+ boxShadow: "none"
294
+ },
295
+ elevated: {
296
+ backgroundColor: tokens.colors.background.surface,
297
+ border: "none",
298
+ boxShadow: tokens.shadows.md
299
+ },
300
+ outlined: {
301
+ backgroundColor: "transparent",
302
+ border: `1px solid ${tokens.colors.border.muted}`,
303
+ boxShadow: "none"
304
+ },
305
+ ghost: {
306
+ backgroundColor: "transparent",
307
+ border: "none",
308
+ boxShadow: "none"
309
+ },
310
+ // Glass variants - transparent with blur
311
+ glass: {
312
+ backgroundColor: "rgba(15, 20, 35, 0.85)",
313
+ backdropFilter: "blur(12px)",
314
+ WebkitBackdropFilter: "blur(12px)",
315
+ border: "1px solid rgba(0, 212, 255, 0.25)",
316
+ boxShadow: "none"
317
+ },
318
+ "glass-dark": {
319
+ backgroundColor: "rgba(0, 0, 0, 0.7)",
320
+ backdropFilter: "blur(16px)",
321
+ WebkitBackdropFilter: "blur(16px)",
322
+ border: "1px solid rgba(100, 130, 160, 0.2)",
323
+ boxShadow: "none"
324
+ },
325
+ "glass-light": {
326
+ backgroundColor: "rgba(255, 255, 255, 0.15)",
327
+ backdropFilter: "blur(12px)",
328
+ WebkitBackdropFilter: "blur(12px)",
329
+ border: "1px solid rgba(255, 255, 255, 0.25)",
330
+ boxShadow: "none"
331
+ }
332
+ };
333
+ const glowColor = accentColor ? `${accentColor}66` : "rgba(0, 212, 255, 0.4)";
334
+ const glassOverrides = useGlassMode ? {
335
+ backgroundColor: "rgba(10, 15, 25, 0.35)",
336
+ backdropFilter: "blur(12px)",
337
+ WebkitBackdropFilter: "blur(12px)",
338
+ border: `1px solid ${glassAccentMuted}`,
339
+ borderTop: isBoldVariant ? `2px solid ${glassAccentColor}` : `1px solid ${glassAccentColor}`,
340
+ transition: "all 0.3s ease-out, box-shadow 0.3s ease-out"
341
+ } : {};
342
+ const simpleGlassOverrides = useSimpleGlass ? {
343
+ backgroundColor: "transparent",
344
+ backdropFilter: "blur(12px)",
345
+ WebkitBackdropFilter: "blur(12px)",
346
+ border: `1px solid ${tokens.colors.border.muted}`,
347
+ transition: "all 0.3s ease-out"
348
+ } : {};
349
+ const handleMouseEnter = useCallback((e) => {
350
+ if (useGlassMode) {
351
+ e.currentTarget.style.boxShadow = `0 0 30px ${glowColor}, 0 4px 20px rgba(0,0,0,0.3)`;
352
+ }
353
+ }, [useGlassMode, glowColor]);
354
+ const handleMouseLeave = useCallback((e) => {
355
+ if (useGlassMode) {
356
+ e.currentTarget.style.boxShadow = "none";
357
+ }
358
+ }, [useGlassMode]);
359
+ const statusColor = status ? tokens.colors.status[status] : void 0;
360
+ const isInteractive = !!onClick;
361
+ return /* @__PURE__ */ jsxs(
362
+ "div",
363
+ {
364
+ className: classNames(
365
+ "zendir-container",
366
+ `zendir-container--${variant}`,
367
+ useGlassMode && "zendir-container--auto-glass",
368
+ className
369
+ ),
370
+ onClick,
371
+ role: isInteractive ? "button" : void 0,
372
+ tabIndex: isInteractive ? 0 : void 0,
373
+ onKeyDown: onClick ? (e) => {
374
+ if (e.key === "Enter" || e.key === " ") {
375
+ e.preventDefault();
376
+ onClick();
377
+ }
378
+ } : void 0,
379
+ onMouseEnter: handleMouseEnter,
380
+ onMouseLeave: handleMouseLeave,
381
+ style: {
382
+ borderRadius: tokens.borderRadius.lg,
383
+ overflow: "hidden",
384
+ position: "relative",
385
+ height: fullHeight ? "100%" : "auto",
386
+ display: "flex",
387
+ flexDirection: "column",
388
+ cursor: isInteractive ? "pointer" : "default",
389
+ transition: "all 0.3s ease-out",
390
+ borderLeft: statusColor ? `4px solid ${statusColor}` : void 0,
391
+ ...variantStyles[variant],
392
+ ...simpleGlassOverrides,
393
+ // Normal Glass theme
394
+ ...glassOverrides,
395
+ // Bold/Minimal themes (overrides simpleGlass if both)
396
+ ...style
397
+ },
398
+ children: [
399
+ useGlassMode && /* @__PURE__ */ jsx(
400
+ "div",
401
+ {
402
+ style: {
403
+ position: "absolute",
404
+ inset: 0,
405
+ background: glassGradient,
406
+ pointerEvents: "none",
407
+ zIndex: 0
408
+ }
409
+ }
410
+ ),
411
+ loading && /* @__PURE__ */ jsxs(
412
+ "div",
413
+ {
414
+ style: {
415
+ position: "absolute",
416
+ inset: 0,
417
+ backgroundColor: addAlpha(tokens.colors.background.surface, 0.5),
418
+ display: "flex",
419
+ alignItems: "center",
420
+ justifyContent: "center",
421
+ zIndex: 10
422
+ },
423
+ children: [
424
+ /* @__PURE__ */ jsx(
425
+ "svg",
426
+ {
427
+ width: "32",
428
+ height: "32",
429
+ viewBox: "0 0 24 24",
430
+ fill: "none",
431
+ style: { animation: "spin 1s linear infinite" },
432
+ children: /* @__PURE__ */ jsx(
433
+ "circle",
434
+ {
435
+ cx: "12",
436
+ cy: "12",
437
+ r: "10",
438
+ stroke: tokens.colors.accent.primary,
439
+ strokeWidth: "3",
440
+ strokeDasharray: "31.4 31.4",
441
+ strokeDashoffset: "10"
442
+ }
443
+ )
444
+ }
445
+ ),
446
+ /* @__PURE__ */ jsx("style", { children: `@keyframes spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }` })
447
+ ]
448
+ }
449
+ ),
450
+ (title || actions) && useGlassMode && isBoldVariant && /* @__PURE__ */ jsxs(
451
+ "div",
452
+ {
453
+ style: {
454
+ position: "relative",
455
+ zIndex: 1
456
+ },
457
+ children: [
458
+ /* @__PURE__ */ jsxs(
459
+ "div",
460
+ {
461
+ style: {
462
+ display: "flex",
463
+ alignItems: "center",
464
+ justifyContent: "space-between",
465
+ padding: `16px ${paddingConfig[padding]} 0`
466
+ },
467
+ children: [
468
+ /* @__PURE__ */ jsxs("div", { style: { display: "flex", alignItems: "center", gap: headingConfig.gap }, children: [
469
+ icon && /* @__PURE__ */ jsx(
470
+ IconWithStatusTooltip,
471
+ {
472
+ icon,
473
+ iconColor: resolvedIconColor,
474
+ iconStatus,
475
+ statusMessage,
476
+ iconSize: headingConfig.iconSize
477
+ }
478
+ ),
479
+ /* @__PURE__ */ jsx(
480
+ "h3",
481
+ {
482
+ style: {
483
+ margin: 0,
484
+ fontSize: headingConfig.titleFontSize,
485
+ fontWeight: headingConfig.titleFontWeight,
486
+ color: glassAccentColor,
487
+ letterSpacing: "0.5px",
488
+ textShadow: `0 0 20px ${glassAccentMuted}`
489
+ },
490
+ children: title
491
+ }
492
+ )
493
+ ] }),
494
+ actions && /* @__PURE__ */ jsx("div", { style: { display: "flex", gap: tokens.spacing.xs }, children: actions })
495
+ ]
496
+ }
497
+ ),
498
+ subtitle && /* @__PURE__ */ jsx(
499
+ "p",
500
+ {
501
+ style: {
502
+ margin: 0,
503
+ padding: `${tokens.spacing.xs} ${paddingConfig[padding]} 0`,
504
+ fontSize: tokens.typography.fontSize.sm,
505
+ color: tokens.colors.text.secondary
506
+ },
507
+ children: subtitle
508
+ }
509
+ ),
510
+ /* @__PURE__ */ jsxs(
511
+ "div",
512
+ {
513
+ style: {
514
+ display: "flex",
515
+ alignItems: "center",
516
+ gap: tokens.spacing.sm,
517
+ padding: `12px ${paddingConfig[padding]} 0`,
518
+ marginBottom: tokens.spacing.sm
519
+ },
520
+ children: [
521
+ /* @__PURE__ */ jsx(
522
+ "div",
523
+ {
524
+ style: {
525
+ flex: 1,
526
+ height: "2px",
527
+ background: `linear-gradient(90deg, ${glassAccentColor} 0%, ${glassAccentMuted} 70%, ${glassAccentMuted}20 100%)`,
528
+ boxShadow: `0 0 8px ${glassAccentMuted}`
529
+ }
530
+ }
531
+ ),
532
+ iconStatus && iconStatus !== "off" && /* @__PURE__ */ jsx(StatusBadge, { status: iconStatus, tokens, size: "bold" })
533
+ ]
534
+ }
535
+ )
536
+ ]
537
+ }
538
+ ),
539
+ (title || actions) && useGlassMode && !isBoldVariant && /* @__PURE__ */ jsxs(
540
+ "div",
541
+ {
542
+ style: {
543
+ display: "flex",
544
+ alignItems: "center",
545
+ padding: `${tokens.spacing.sm} ${paddingConfig[padding]} 0`,
546
+ marginBottom: tokens.spacing.sm,
547
+ position: "relative",
548
+ zIndex: 1
549
+ },
550
+ children: [
551
+ icon && /* @__PURE__ */ jsx("div", { style: { display: "flex", alignItems: "center", marginRight: tokens.spacing.sm }, children: /* @__PURE__ */ jsx(
552
+ IconWithStatusTooltip,
553
+ {
554
+ icon,
555
+ iconColor: resolvedIconColor,
556
+ iconStatus,
557
+ statusMessage,
558
+ iconSize: headingConfig.iconSizeCompact
559
+ }
560
+ ) }),
561
+ title && /* @__PURE__ */ jsx(
562
+ "h3",
563
+ {
564
+ style: {
565
+ margin: 0,
566
+ fontSize: headingConfig.titleFontSize,
567
+ fontWeight: headingConfig.titleFontWeight,
568
+ color: glassAccentColor,
569
+ textShadow: `0 0 16px ${glassAccentMuted}`,
570
+ letterSpacing: "0.02em",
571
+ whiteSpace: "nowrap",
572
+ marginRight: "12px"
573
+ },
574
+ children: title
575
+ }
576
+ ),
577
+ /* @__PURE__ */ jsxs(
578
+ "div",
579
+ {
580
+ style: {
581
+ flex: 1,
582
+ display: "flex",
583
+ alignItems: "center",
584
+ gap: tokens.spacing.sm,
585
+ minWidth: 40
586
+ },
587
+ children: [
588
+ /* @__PURE__ */ jsx(
589
+ "div",
590
+ {
591
+ style: {
592
+ flex: 1,
593
+ height: "1px",
594
+ background: `linear-gradient(90deg, ${glassAccentColor} 0%, ${glassAccentMuted} 70%, ${glassAccentMuted}20 100%)`
595
+ }
596
+ }
597
+ ),
598
+ iconStatus && iconStatus !== "off" && /* @__PURE__ */ jsx(StatusBadge, { status: iconStatus, tokens, size: "minimal" })
599
+ ]
600
+ }
601
+ ),
602
+ actions && /* @__PURE__ */ jsx("div", { style: { display: "flex", gap: tokens.spacing.xs, flexShrink: 0, marginLeft: "12px" }, children: actions })
603
+ ]
604
+ }
605
+ ),
606
+ subtitle && useGlassMode && !isBoldVariant && /* @__PURE__ */ jsx(
607
+ "p",
608
+ {
609
+ style: {
610
+ margin: 0,
611
+ padding: `0 ${paddingConfig[padding]}`,
612
+ marginBottom: tokens.spacing.sm,
613
+ fontSize: tokens.typography.fontSize.sm,
614
+ color: tokens.colors.text.secondary,
615
+ position: "relative",
616
+ zIndex: 1
617
+ },
618
+ children: subtitle
619
+ }
620
+ ),
621
+ (title || actions) && !useGlassMode && /* @__PURE__ */ jsx(
622
+ "div",
623
+ {
624
+ style: {
625
+ padding: `${paddingConfig[padding]} ${paddingConfig[padding]} 0`,
626
+ position: "relative",
627
+ zIndex: 1
628
+ },
629
+ children: /* @__PURE__ */ jsx(
630
+ CardHeader,
631
+ {
632
+ icon: icon || (iconStatus ? "mission" : ""),
633
+ title: typeof title === "string" ? title : String(title || ""),
634
+ subtitle: typeof subtitle === "string" ? subtitle : subtitle ? String(subtitle) : void 0,
635
+ status: iconStatus || status,
636
+ iconColor,
637
+ iconSize: headingConfig.iconSize,
638
+ hideStatusIndicator: !icon && !iconStatus && !status,
639
+ rightSlot: actions,
640
+ style: { marginBottom: tokens.spacing.sm }
641
+ }
642
+ )
643
+ }
644
+ ),
645
+ /* @__PURE__ */ jsx(
646
+ "div",
647
+ {
648
+ style: {
649
+ flex: 1,
650
+ minHeight: fullHeight ? 0 : void 0,
651
+ overflow: fullHeight && clipContent ? "hidden" : void 0,
652
+ // When fullHeight, become a flex column so any child using flex:1 or height:100%
653
+ // gets a properly bounded height and scroll containers can work.
654
+ display: fullHeight ? "flex" : void 0,
655
+ flexDirection: fullHeight ? "column" : void 0,
656
+ padding: fullHeight ? `${tokens.spacing.xs} 0 0 0` : title ? `${tokens.spacing.xs} ${paddingConfig[padding]} ${paddingConfig[padding]}` : paddingConfig[padding],
657
+ position: "relative",
658
+ zIndex: 1
659
+ },
660
+ children
661
+ }
662
+ )
663
+ ]
664
+ }
665
+ );
666
+ });
667
+ export {
668
+ Container
669
+ };
670
+ //# sourceMappingURL=Container.js.map