@zendir/ui 0.4.1 → 0.6.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 (391) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/README.md +640 -631
  3. package/dist/_virtual/_rolldown/runtime.js +13 -0
  4. package/dist/index.js +17 -221
  5. package/dist/react/3d/CesiumCaptureSource.d.ts +0 -1
  6. package/dist/react/3d/CesiumCaptureSource.js +364 -283
  7. package/dist/react/3d/CesiumCaptureSource.js.map +1 -1
  8. package/dist/react/3d/ZenSpace3D.d.ts +2 -3
  9. package/dist/react/3d/ZenSpace3D.js +1681 -1237
  10. package/dist/react/3d/ZenSpace3D.js.map +1 -1
  11. package/dist/react/3d/ZenSpace3DCesium.d.ts +0 -1
  12. package/dist/react/3d/ZenSpace3DCesium.js +513 -560
  13. package/dist/react/3d/ZenSpace3DCesium.js.map +1 -1
  14. package/dist/react/3d/ZenSpace3DShaders.js +61 -66
  15. package/dist/react/3d/ZenSpace3DShaders.js.map +1 -1
  16. package/dist/react/3d/ZenSpace3DTypes.d.ts +19 -20
  17. package/dist/react/3d/ZenSpace3DUtils.d.ts +0 -1
  18. package/dist/react/3d/ZenSpace3DUtils.js +37 -24
  19. package/dist/react/3d/ZenSpace3DUtils.js.map +1 -1
  20. package/dist/react/3d/capturePngAnalysis.js +42 -36
  21. package/dist/react/3d/capturePngAnalysis.js.map +1 -1
  22. package/dist/react/3d/index.d.ts +3 -3
  23. package/dist/react/3d/index.js +5 -53
  24. package/dist/react/3d/threeLoader.d.ts +1 -1
  25. package/dist/react/3d/threeLoader.js +23 -18
  26. package/dist/react/3d/threeLoader.js.map +1 -1
  27. package/dist/react/astro/ClassificationBanner.d.ts +2 -3
  28. package/dist/react/astro/ClassificationBanner.js +95 -79
  29. package/dist/react/astro/ClassificationBanner.js.map +1 -1
  30. package/dist/react/astro/GlobalStatusBar.d.ts +0 -1
  31. package/dist/react/astro/GlobalStatusBar.js +157 -163
  32. package/dist/react/astro/GlobalStatusBar.js.map +1 -1
  33. package/dist/react/astro/MissionClock.d.ts +7 -8
  34. package/dist/react/astro/MissionClock.js +377 -400
  35. package/dist/react/astro/MissionClock.js.map +1 -1
  36. package/dist/react/astro/MonitoringIcon.d.ts +1 -2
  37. package/dist/react/astro/MonitoringIcon.js +422 -358
  38. package/dist/react/astro/MonitoringIcon.js.map +1 -1
  39. package/dist/react/astro/Notification.d.ts +1 -2
  40. package/dist/react/astro/Notification.js +229 -126
  41. package/dist/react/astro/Notification.js.map +1 -1
  42. package/dist/react/astro/Progress.d.ts +0 -1
  43. package/dist/react/astro/Progress.js +199 -141
  44. package/dist/react/astro/Progress.js.map +1 -1
  45. package/dist/react/astro/SimulationControls.d.ts +3 -4
  46. package/dist/react/astro/SimulationControls.js +596 -650
  47. package/dist/react/astro/SimulationControls.js.map +1 -1
  48. package/dist/react/astro/StatusIndicator.d.ts +0 -1
  49. package/dist/react/astro/StatusIndicator.js +236 -170
  50. package/dist/react/astro/StatusIndicator.js.map +1 -1
  51. package/dist/react/astro/UnifiedTimeline.d.ts +9 -10
  52. package/dist/react/astro/UnifiedTimeline.js +2345 -2392
  53. package/dist/react/astro/UnifiedTimeline.js.map +1 -1
  54. package/dist/react/astro/index.d.ts +5 -5
  55. package/dist/react/astro/index.js +1 -25
  56. package/dist/react/cards/AccessCard.d.ts +0 -1
  57. package/dist/react/cards/AccessCard.js +471 -405
  58. package/dist/react/cards/AccessCard.js.map +1 -1
  59. package/dist/react/cards/OrbitCard.d.ts +0 -1
  60. package/dist/react/cards/OrbitCard.js +487 -364
  61. package/dist/react/cards/OrbitCard.js.map +1 -1
  62. package/dist/react/cards/SpacecraftCard.d.ts +0 -1
  63. package/dist/react/cards/SpacecraftCard.js +813 -925
  64. package/dist/react/cards/SpacecraftCard.js.map +1 -1
  65. package/dist/react/cards/TelemetryCard.d.ts +0 -1
  66. package/dist/react/cards/TelemetryCard.js +1055 -732
  67. package/dist/react/cards/TelemetryCard.js.map +1 -1
  68. package/dist/react/cards/TelemetryStreamCard.d.ts +0 -1
  69. package/dist/react/cards/TelemetryStreamCard.js +323 -297
  70. package/dist/react/cards/TelemetryStreamCard.js.map +1 -1
  71. package/dist/react/cards/index.d.ts +1 -1
  72. package/dist/react/cards/index.js +1 -8
  73. package/dist/react/charts/GroundTrackMap.d.ts +6 -7
  74. package/dist/react/charts/GroundTrackMap.js +1377 -1256
  75. package/dist/react/charts/GroundTrackMap.js.map +1 -1
  76. package/dist/react/charts/GroundTrackMapLeaflet.d.ts +1 -2
  77. package/dist/react/charts/GroundTrackMapLeaflet.js +1065 -987
  78. package/dist/react/charts/GroundTrackMapLeaflet.js.map +1 -1
  79. package/dist/react/charts/groundTrackMapLeafletTiles.js +34 -25
  80. package/dist/react/charts/groundTrackMapLeafletTiles.js.map +1 -1
  81. package/dist/react/charts/groundTrackMapLeafletUtils.js +70 -61
  82. package/dist/react/charts/groundTrackMapLeafletUtils.js.map +1 -1
  83. package/dist/react/charts/index.d.ts +1 -1
  84. package/dist/react/charts/index.js +7 -100
  85. package/dist/react/charts/unified/AstroChart.d.ts +1 -2
  86. package/dist/react/charts/unified/AstroChart.js +1331 -1411
  87. package/dist/react/charts/unified/AstroChart.js.map +1 -1
  88. package/dist/react/charts/unified/PowerOverviewChart.d.ts +3 -3
  89. package/dist/react/charts/unified/PowerOverviewChart.js +495 -478
  90. package/dist/react/charts/unified/PowerOverviewChart.js.map +1 -1
  91. package/dist/react/charts/unified/domain.d.ts +12 -13
  92. package/dist/react/charts/unified/domain.js +3999 -3145
  93. package/dist/react/charts/unified/domain.js.map +1 -1
  94. package/dist/react/charts/unified/generators.d.ts +3 -4
  95. package/dist/react/charts/unified/generators.js +561 -498
  96. package/dist/react/charts/unified/generators.js.map +1 -1
  97. package/dist/react/charts/unified/index.d.ts +1 -1
  98. package/dist/react/charts/unified/presets.d.ts +14 -15
  99. package/dist/react/charts/unified/presets.js +857 -994
  100. package/dist/react/charts/unified/presets.js.map +1 -1
  101. package/dist/react/charts/unified/sync.d.ts +2 -3
  102. package/dist/react/charts/unified/sync.js +229 -195
  103. package/dist/react/charts/unified/sync.js.map +1 -1
  104. package/dist/react/charts/unified/theme.d.ts +11 -12
  105. package/dist/react/charts/unified/theme.js +606 -642
  106. package/dist/react/charts/unified/theme.js.map +1 -1
  107. package/dist/react/charts/unified/types.d.ts +32 -33
  108. package/dist/react/charts/unified/useChartStream.d.ts +1 -2
  109. package/dist/react/charts/unified/useChartStream.js +203 -216
  110. package/dist/react/charts/unified/useChartStream.js.map +1 -1
  111. package/dist/react/chatgpt/AppCard.d.ts +1 -2
  112. package/dist/react/chatgpt/index.d.ts +7 -7
  113. package/dist/react/chatgpt/index.js +160 -139
  114. package/dist/react/chatgpt/index.js.map +1 -1
  115. package/dist/react/context/CategoryContext.d.ts +0 -1
  116. package/dist/react/context/CategoryContext.js +78 -29
  117. package/dist/react/context/CategoryContext.js.map +1 -1
  118. package/dist/react/context/DisplaySettingsContext.d.ts +1 -2
  119. package/dist/react/context/DisplaySettingsContext.js +205 -156
  120. package/dist/react/context/DisplaySettingsContext.js.map +1 -1
  121. package/dist/react/context/SpatialSelectionContext.d.ts +0 -1
  122. package/dist/react/context/SpatialSelectionContext.js +36 -7
  123. package/dist/react/context/SpatialSelectionContext.js.map +1 -1
  124. package/dist/react/core/data/DataTable.d.ts +3 -4
  125. package/dist/react/core/data/DataTable.js +473 -440
  126. package/dist/react/core/data/DataTable.js.map +1 -1
  127. package/dist/react/core/data/DataValue.d.ts +4 -5
  128. package/dist/react/core/data/DataValue.js +605 -538
  129. package/dist/react/core/data/DataValue.js.map +1 -1
  130. package/dist/react/core/data/propertyConfig.d.ts +1 -2
  131. package/dist/react/core/data/propertyConfig.js +446 -382
  132. package/dist/react/core/data/propertyConfig.js.map +1 -1
  133. package/dist/react/core/display/AstroIcon.d.ts +4 -5
  134. package/dist/react/core/display/AstroIcon.js +339 -429
  135. package/dist/react/core/display/AstroIcon.js.map +1 -1
  136. package/dist/react/core/display/Badge.d.ts +2 -3
  137. package/dist/react/core/display/Badge.js +131 -131
  138. package/dist/react/core/display/Badge.js.map +1 -1
  139. package/dist/react/core/display/CardHeader.d.ts +0 -1
  140. package/dist/react/core/display/CardHeader.js +398 -311
  141. package/dist/react/core/display/CardHeader.js.map +1 -1
  142. package/dist/react/core/display/Container.d.ts +2 -3
  143. package/dist/react/core/display/Container.js +640 -668
  144. package/dist/react/core/display/Container.js.map +1 -1
  145. package/dist/react/core/display/CopyButton.d.ts +1 -2
  146. package/dist/react/core/display/CopyButton.js +158 -101
  147. package/dist/react/core/display/CopyButton.js.map +1 -1
  148. package/dist/react/core/display/GlassCard.d.ts +3 -4
  149. package/dist/react/core/display/GlassCard.js +416 -369
  150. package/dist/react/core/display/GlassCard.js.map +1 -1
  151. package/dist/react/core/display/HeaderIconWithStatus.d.ts +0 -1
  152. package/dist/react/core/display/HeaderIconWithStatus.js +152 -152
  153. package/dist/react/core/display/HeaderIconWithStatus.js.map +1 -1
  154. package/dist/react/core/display/Icon.d.ts +2 -3
  155. package/dist/react/core/display/Icon.js +172 -143
  156. package/dist/react/core/display/Icon.js.map +1 -1
  157. package/dist/react/core/display/Typography.d.ts +24 -25
  158. package/dist/react/core/display/Typography.js +360 -178
  159. package/dist/react/core/display/Typography.js.map +1 -1
  160. package/dist/react/core/feedback/ConfirmDialog.d.ts +1 -2
  161. package/dist/react/core/feedback/ConfirmDialog.js +343 -304
  162. package/dist/react/core/feedback/ConfirmDialog.js.map +1 -1
  163. package/dist/react/core/feedback/Dialog.d.ts +2 -3
  164. package/dist/react/core/feedback/Dialog.js +189 -197
  165. package/dist/react/core/feedback/Dialog.js.map +1 -1
  166. package/dist/react/core/feedback/Toast.d.ts +2 -3
  167. package/dist/react/core/feedback/Toast.js +346 -207
  168. package/dist/react/core/feedback/Toast.js.map +1 -1
  169. package/dist/react/core/index.d.ts +26 -26
  170. package/dist/react/core/index.js +7 -119
  171. package/dist/react/core/inputs/Button.d.ts +2 -3
  172. package/dist/react/core/inputs/Button.js +281 -304
  173. package/dist/react/core/inputs/Button.js.map +1 -1
  174. package/dist/react/core/inputs/Checkbox.d.ts +2 -3
  175. package/dist/react/core/inputs/Checkbox.js +139 -127
  176. package/dist/react/core/inputs/Checkbox.js.map +1 -1
  177. package/dist/react/core/inputs/Input.d.ts +3 -4
  178. package/dist/react/core/inputs/Input.js +277 -285
  179. package/dist/react/core/inputs/Input.js.map +1 -1
  180. package/dist/react/core/inputs/LimitsBar.d.ts +1 -2
  181. package/dist/react/core/inputs/LimitsBar.js +271 -196
  182. package/dist/react/core/inputs/LimitsBar.js.map +1 -1
  183. package/dist/react/core/inputs/NumberInput.d.ts +2 -3
  184. package/dist/react/core/inputs/NumberInput.js +531 -503
  185. package/dist/react/core/inputs/NumberInput.js.map +1 -1
  186. package/dist/react/core/inputs/PinInput.d.ts +2 -3
  187. package/dist/react/core/inputs/PinInput.js +224 -207
  188. package/dist/react/core/inputs/PinInput.js.map +1 -1
  189. package/dist/react/core/inputs/Select.d.ts +1 -2
  190. package/dist/react/core/inputs/Select.js +298 -299
  191. package/dist/react/core/inputs/Select.js.map +1 -1
  192. package/dist/react/core/inputs/Toggle.d.ts +2 -3
  193. package/dist/react/core/inputs/Toggle.js +142 -148
  194. package/dist/react/core/inputs/Toggle.js.map +1 -1
  195. package/dist/react/core/layout/Box.d.ts +3 -4
  196. package/dist/react/core/layout/Box.js +118 -122
  197. package/dist/react/core/layout/Box.js.map +1 -1
  198. package/dist/react/core/layout/Center.d.ts +0 -1
  199. package/dist/react/core/layout/Center.js +45 -32
  200. package/dist/react/core/layout/Center.js.map +1 -1
  201. package/dist/react/core/layout/Divider.d.ts +1 -2
  202. package/dist/react/core/layout/Divider.js +112 -106
  203. package/dist/react/core/layout/Divider.js.map +1 -1
  204. package/dist/react/core/layout/Flex.d.ts +4 -5
  205. package/dist/react/core/layout/Flex.js +120 -124
  206. package/dist/react/core/layout/Flex.js.map +1 -1
  207. package/dist/react/core/layout/Grid.d.ts +5 -6
  208. package/dist/react/core/layout/Grid.js +131 -138
  209. package/dist/react/core/layout/Grid.js.map +1 -1
  210. package/dist/react/core/layout/Spacer.d.ts +0 -1
  211. package/dist/react/core/layout/Spacer.js +36 -29
  212. package/dist/react/core/layout/Spacer.js.map +1 -1
  213. package/dist/react/core/layout/Stack.d.ts +4 -5
  214. package/dist/react/core/layout/Stack.js +127 -70
  215. package/dist/react/core/layout/Stack.js.map +1 -1
  216. package/dist/react/core/layout/responsive.d.ts +1 -2
  217. package/dist/react/core/layout/responsive.js +25 -19
  218. package/dist/react/core/layout/responsive.js.map +1 -1
  219. package/dist/react/core/layout/useBreakpoint.d.ts +1 -1
  220. package/dist/react/core/layout/useBreakpoint.js +119 -66
  221. package/dist/react/core/layout/useBreakpoint.js.map +1 -1
  222. package/dist/react/core/navigation/AppBar.d.ts +1 -2
  223. package/dist/react/core/navigation/AppBar.js +827 -805
  224. package/dist/react/core/navigation/AppBar.js.map +1 -1
  225. package/dist/react/core/navigation/Pagination.d.ts +2 -3
  226. package/dist/react/core/navigation/Pagination.js +207 -187
  227. package/dist/react/core/navigation/Pagination.js.map +1 -1
  228. package/dist/react/core/navigation/SideNav.d.ts +11 -5
  229. package/dist/react/core/navigation/SideNav.js +857 -602
  230. package/dist/react/core/navigation/SideNav.js.map +1 -1
  231. package/dist/react/core/navigation/Tabs.d.ts +0 -1
  232. package/dist/react/core/navigation/Tabs.js +113 -119
  233. package/dist/react/core/navigation/Tabs.js.map +1 -1
  234. package/dist/react/core/overlays/Popover.d.ts +2 -3
  235. package/dist/react/core/overlays/Popover.js +303 -282
  236. package/dist/react/core/overlays/Popover.js.map +1 -1
  237. package/dist/react/core/overlays/SidePanel.d.ts +1 -2
  238. package/dist/react/core/overlays/SidePanel.js +217 -212
  239. package/dist/react/core/overlays/SidePanel.js.map +1 -1
  240. package/dist/react/core/overlays/Tooltip.d.ts +1 -2
  241. package/dist/react/core/overlays/Tooltip.js +170 -176
  242. package/dist/react/core/overlays/Tooltip.js.map +1 -1
  243. package/dist/react/core/widgets/ActivityPlanner.d.ts +0 -1
  244. package/dist/react/core/widgets/ActivityPlanner.js +855 -517
  245. package/dist/react/core/widgets/ActivityPlanner.js.map +1 -1
  246. package/dist/react/core/widgets/Capture.d.ts +2 -3
  247. package/dist/react/core/widgets/Capture.js +965 -779
  248. package/dist/react/core/widgets/Capture.js.map +1 -1
  249. package/dist/react/core/widgets/ChatPanel.d.ts +16 -17
  250. package/dist/react/core/widgets/ChatPanel.js +1734 -1034
  251. package/dist/react/core/widgets/ChatPanel.js.map +1 -1
  252. package/dist/react/core/widgets/ColorPickerPanel.d.ts +0 -1
  253. package/dist/react/core/widgets/ColorPickerPanel.js +298 -287
  254. package/dist/react/core/widgets/ColorPickerPanel.js.map +1 -1
  255. package/dist/react/core/widgets/CommandBuilder.d.ts +2 -3
  256. package/dist/react/core/widgets/CommandBuilder.js +624 -516
  257. package/dist/react/core/widgets/CommandBuilder.js.map +1 -1
  258. package/dist/react/core/widgets/ConnectionForm.d.ts +2 -3
  259. package/dist/react/core/widgets/ConnectionForm.js +528 -492
  260. package/dist/react/core/widgets/ConnectionForm.js.map +1 -1
  261. package/dist/react/core/widgets/FileExplorer.d.ts +3 -4
  262. package/dist/react/core/widgets/FileExplorer.js +617 -505
  263. package/dist/react/core/widgets/FileExplorer.js.map +1 -1
  264. package/dist/react/core/widgets/HexViewer.d.ts +2 -3
  265. package/dist/react/core/widgets/HexViewer.js +1353 -1091
  266. package/dist/react/core/widgets/HexViewer.js.map +1 -1
  267. package/dist/react/core/widgets/ImageFrame.d.ts +1 -2
  268. package/dist/react/core/widgets/ImageFrame.js +230 -193
  269. package/dist/react/core/widgets/ImageFrame.js.map +1 -1
  270. package/dist/react/core/widgets/ImageGallery.d.ts +2 -1
  271. package/dist/react/core/widgets/ImageGallery.js +380 -314
  272. package/dist/react/core/widgets/ImageGallery.js.map +1 -1
  273. package/dist/react/core/widgets/ImagePanel.d.ts +0 -1
  274. package/dist/react/core/widgets/ImagePanel.js +110 -101
  275. package/dist/react/core/widgets/ImagePanel.js.map +1 -1
  276. package/dist/react/core/widgets/LogViewer.d.ts +2 -3
  277. package/dist/react/core/widgets/LogViewer.js +711 -607
  278. package/dist/react/core/widgets/LogViewer.js.map +1 -1
  279. package/dist/react/core/widgets/MessageStream.d.ts +3 -4
  280. package/dist/react/core/widgets/MessageStream.js +514 -444
  281. package/dist/react/core/widgets/MessageStream.js.map +1 -1
  282. package/dist/react/core/widgets/MissionCalendar.d.ts +3 -4
  283. package/dist/react/core/widgets/MissionCalendar.js +1488 -1020
  284. package/dist/react/core/widgets/MissionCalendar.js.map +1 -1
  285. package/dist/react/core/widgets/PacketViewer.d.ts +2 -3
  286. package/dist/react/core/widgets/PacketViewer.js +550 -421
  287. package/dist/react/core/widgets/PacketViewer.js.map +1 -1
  288. package/dist/react/core/widgets/capture-placeholder.png.js +6 -5
  289. package/dist/react/core/widgets/capture-placeholder.png.js.map +1 -1
  290. package/dist/react/hooks/index.d.ts +5 -5
  291. package/dist/react/hooks/useAccessWindows.d.ts +0 -1
  292. package/dist/react/hooks/useCompactMode.d.ts +1 -1
  293. package/dist/react/hooks/useCompactMode.js +104 -58
  294. package/dist/react/hooks/useCompactMode.js.map +1 -1
  295. package/dist/react/hooks/useGroundTrackHistory.d.ts +0 -1
  296. package/dist/react/hooks/useSimulationScene.d.ts +1 -2
  297. package/dist/react/hooks/useSimulationScene.js +481 -374
  298. package/dist/react/hooks/useSimulationScene.js.map +1 -1
  299. package/dist/react/index.d.ts +3 -3
  300. package/dist/react/panels/LayerControlPanel.d.ts +1 -2
  301. package/dist/react/panels/LayerControlPanel.js +223 -180
  302. package/dist/react/panels/LayerControlPanel.js.map +1 -1
  303. package/dist/react/panels/ObjectInventoryPanel.d.ts +2 -3
  304. package/dist/react/panels/ObjectInventoryPanel.js +315 -250
  305. package/dist/react/panels/ObjectInventoryPanel.js.map +1 -1
  306. package/dist/react/panels/index.d.ts +1 -1
  307. package/dist/react/panels/index.js +1 -6
  308. package/dist/react/shared/ErrorBoundary.d.ts +1 -2
  309. package/dist/react/shared/ErrorBoundary.js +170 -139
  310. package/dist/react/shared/ErrorBoundary.js.map +1 -1
  311. package/dist/react/shared/Skeleton.d.ts +1 -2
  312. package/dist/react/shared/Skeleton.js +300 -301
  313. package/dist/react/shared/Skeleton.js.map +1 -1
  314. package/dist/react/theme/ThemeProvider.d.ts +2 -321
  315. package/dist/react/theme/ThemeProvider.js +312 -939
  316. package/dist/react/theme/ThemeProvider.js.map +1 -1
  317. package/dist/react/theme/cardAccent.d.ts +1 -2
  318. package/dist/react/theme/cardAccent.js +196 -126
  319. package/dist/react/theme/cardAccent.js.map +1 -1
  320. package/dist/react/theme/config.d.ts +0 -1
  321. package/dist/react/theme/config.js +47 -25
  322. package/dist/react/theme/config.js.map +1 -1
  323. package/dist/react/theme/index.d.ts +2 -2
  324. package/dist/react/theme/index.js +1 -16
  325. package/dist/react/theme/types.d.ts +332 -0
  326. package/dist/react/theme/types.js +39 -0
  327. package/dist/react/theme/types.js.map +1 -0
  328. package/dist/react/types.d.ts +8 -8
  329. package/dist/react/types.js +147 -47
  330. package/dist/react/types.js.map +1 -1
  331. package/dist/react/utils/categoryPalette.d.ts +0 -1
  332. package/dist/react/utils/categoryPalette.js +91 -102
  333. package/dist/react/utils/categoryPalette.js.map +1 -1
  334. package/dist/react/utils/index.d.ts +5 -5
  335. package/dist/react/utils/index.js +457 -371
  336. package/dist/react/utils/index.js.map +1 -1
  337. package/dist/react/visualizations/EclipseTimerCard.d.ts +0 -1
  338. package/dist/react/visualizations/LinkBudgetCard.d.ts +0 -1
  339. package/dist/react/visualizations/NavBallCard.d.ts +0 -1
  340. package/dist/react/visualizations/PropulsionCard.d.ts +1 -2
  341. package/dist/react/visualizations/SensorFootprintCard.d.ts +1 -2
  342. package/dist/react/visualizations/ThermalHeatmapCard.d.ts +0 -1
  343. package/dist/react/visualizations/index.d.ts +3 -3
  344. package/dist/react.d.ts +2 -1
  345. package/dist/react.js +17 -221
  346. package/dist/shaders/atmosphere.frag.js +6 -5
  347. package/dist/shaders/atmosphere.frag.js.map +1 -1
  348. package/dist/shaders/atmosphere.vert.js +6 -5
  349. package/dist/shaders/atmosphere.vert.js.map +1 -1
  350. package/dist/shaders/stars.frag.js +6 -5
  351. package/dist/shaders/stars.frag.js.map +1 -1
  352. package/dist/shaders/stars.vert.js +6 -5
  353. package/dist/shaders/stars.vert.js.map +1 -1
  354. package/dist/style.css +217 -194
  355. package/dist/tokens/core.d.ts +159 -0
  356. package/dist/tokens/core.js +144 -0
  357. package/dist/tokens/core.js.map +1 -0
  358. package/dist/tokens/css-vars.d.ts +213 -2
  359. package/dist/tokens/css-vars.js +590 -227
  360. package/dist/tokens/css-vars.js.map +1 -1
  361. package/dist/tokens/index.d.ts +31 -228
  362. package/dist/tokens/index.js +281 -366
  363. package/dist/tokens/index.js.map +1 -1
  364. package/dist/tokens/palettes/astro.d.ts +129 -0
  365. package/dist/tokens/palettes/astro.js +112 -0
  366. package/dist/tokens/palettes/astro.js.map +1 -0
  367. package/dist/tokens/palettes/index.d.ts +288 -0
  368. package/dist/tokens/palettes/index.js +35 -0
  369. package/dist/tokens/palettes/index.js.map +1 -0
  370. package/dist/tokens/palettes/tailwind.d.ts +324 -0
  371. package/dist/tokens/palettes/tailwind.js +201 -0
  372. package/dist/tokens/palettes/tailwind.js.map +1 -0
  373. package/dist/tokens/palettes/zendir.d.ts +126 -0
  374. package/dist/tokens/palettes/zendir.js +92 -0
  375. package/dist/tokens/palettes/zendir.js.map +1 -0
  376. package/dist/tokens/themes.d.ts +30 -0
  377. package/dist/tokens/themes.js +704 -0
  378. package/dist/tokens/themes.js.map +1 -0
  379. package/dist/tokens/tokens.css +419 -41
  380. package/dist/types/index.d.ts +2 -2
  381. package/package.json +310 -313
  382. package/dist/index.js.map +0 -1
  383. package/dist/react/3d/index.js.map +0 -1
  384. package/dist/react/astro/index.js.map +0 -1
  385. package/dist/react/cards/index.js.map +0 -1
  386. package/dist/react/charts/index.js.map +0 -1
  387. package/dist/react/core/index.js.map +0 -1
  388. package/dist/react/panels/index.js.map +0 -1
  389. package/dist/react/theme/astro-tokens.d.ts +0 -153
  390. package/dist/react/theme/index.js.map +0 -1
  391. package/dist/react.js.map +0 -1
@@ -2,9 +2,8 @@ import { default as React } from 'react';
2
2
  import { ResponsiveValue } from './useBreakpoint';
3
3
  import { SpacingToken } from './responsive';
4
4
  import { BoxProps } from './Box';
5
-
6
5
  type SpacingInput = SpacingToken | string | number;
7
- export interface GridProps extends Omit<BoxProps, 'display'> {
6
+ export interface GridProps extends Omit<BoxProps, "display"> {
8
7
  /** Number of equal columns (responsive) */
9
8
  columns?: ResponsiveValue<number>;
10
9
  /** Auto-fit: minimum column width in px. Creates `repeat(auto-fit, minmax(Npx, 1fr))` */
@@ -22,13 +21,13 @@ export interface GridProps extends Omit<BoxProps, 'display'> {
22
21
  /** Column gap (overrides gap for columns) */
23
22
  columnGap?: ResponsiveValue<SpacingInput>;
24
23
  /** Align items (cross-axis per cell) */
25
- align?: 'start' | 'end' | 'center' | 'stretch' | 'baseline';
24
+ align?: "start" | "end" | "center" | "stretch" | "baseline";
26
25
  /** Justify items (main-axis per cell) */
27
- justifyItems?: 'start' | 'end' | 'center' | 'stretch';
26
+ justifyItems?: "start" | "end" | "center" | "stretch";
28
27
  /** Align content (cross-axis for the grid as a whole) */
29
- alignContent?: 'start' | 'end' | 'center' | 'stretch' | 'space-between' | 'space-around' | 'space-evenly';
28
+ alignContent?: "start" | "end" | "center" | "stretch" | "space-between" | "space-around" | "space-evenly";
30
29
  /** Justify content (main-axis for the grid as a whole) */
31
- justifyContent?: 'start' | 'end' | 'center' | 'stretch' | 'space-between' | 'space-around' | 'space-evenly';
30
+ justifyContent?: "start" | "end" | "center" | "stretch" | "space-between" | "space-around" | "space-evenly";
32
31
  /** Make grid inline */
33
32
  inline?: boolean;
34
33
  }
@@ -1,142 +1,135 @@
1
- import { jsx } from "react/jsx-runtime";
2
- import { memo, forwardRef } from "react";
3
1
  import { useTheme } from "../../theme/ThemeProvider.js";
4
2
  import { useBreakpoint } from "./useBreakpoint.js";
5
3
  import { resolveResponsive, resolveResponsiveSpacing } from "./responsive.js";
6
- const Grid = memo(forwardRef(function Grid2({
7
- columns,
8
- autoFit,
9
- autoFill,
10
- template,
11
- rows,
12
- gap,
13
- rowGap,
14
- columnGap,
15
- align,
16
- justifyItems,
17
- alignContent,
18
- justifyContent,
19
- inline = false,
20
- // Box props
21
- padding,
22
- p,
23
- px,
24
- py,
25
- pt,
26
- pr,
27
- pb,
28
- pl,
29
- margin,
30
- m,
31
- mx,
32
- my,
33
- mt,
34
- mr,
35
- mb,
36
- ml,
37
- background,
38
- border,
39
- borderRadius,
40
- shadow,
41
- width,
42
- height,
43
- minWidth,
44
- minHeight,
45
- maxWidth,
46
- maxHeight,
47
- overflow,
48
- position,
49
- flex,
50
- flexGrow,
51
- flexShrink,
52
- as: Component = "div",
53
- style,
54
- children,
55
- ...rest
56
- }, ref) {
57
- const { tokens } = useTheme();
58
- const { breakpoint } = useBreakpoint();
59
- const resolveSpacing = (val) => resolveResponsiveSpacing(val, breakpoint, tokens);
60
- let gridTemplateColumns;
61
- if (autoFit) {
62
- gridTemplateColumns = `repeat(auto-fit, minmax(${autoFit}px, 1fr))`;
63
- } else if (autoFill) {
64
- gridTemplateColumns = `repeat(auto-fill, minmax(${autoFill}px, 1fr))`;
65
- } else if (template) {
66
- gridTemplateColumns = resolveResponsive(template, breakpoint);
67
- } else if (columns !== void 0) {
68
- const cols = resolveResponsive(columns, breakpoint);
69
- gridTemplateColumns = cols ? `repeat(${cols}, 1fr)` : void 0;
70
- }
71
- const bgMap = {
72
- base: tokens.colors.background.base,
73
- surface: tokens.colors.background.surface,
74
- elevated: tokens.colors.background.elevated,
75
- overlay: tokens.colors.background.overlay
76
- };
77
- const resolveSize = (val) => {
78
- if (val === void 0) return void 0;
79
- if (typeof val === "number") return `${val}px`;
80
- return val;
81
- };
82
- const paddingAll = resolveSpacing(padding ?? p);
83
- const paddingXVal = resolveSpacing(px);
84
- const paddingYVal = resolveSpacing(py);
85
- const marginAll = resolveSpacing(margin ?? m);
86
- const marginXVal = resolveSpacing(mx);
87
- const marginYVal = resolveSpacing(my);
88
- const resolvedGap = resolveSpacing(gap);
89
- const resolvedRowGap = resolveSpacing(rowGap);
90
- const resolvedColumnGap = resolveSpacing(columnGap);
91
- const computedStyle = {
92
- display: inline ? "inline-grid" : "grid",
93
- gridTemplateColumns,
94
- gridTemplateRows: rows,
95
- ...resolvedGap !== void 0 ? { gap: resolvedGap } : {},
96
- ...resolvedRowGap !== void 0 ? { rowGap: resolvedRowGap } : {},
97
- ...resolvedColumnGap !== void 0 ? { columnGap: resolvedColumnGap } : {},
98
- alignItems: align,
99
- justifyItems,
100
- alignContent,
101
- justifyContent,
102
- // Padding
103
- ...paddingAll ? { padding: paddingAll } : {},
104
- ...paddingXVal ? { paddingLeft: paddingXVal, paddingRight: paddingXVal } : {},
105
- ...paddingYVal ? { paddingTop: paddingYVal, paddingBottom: paddingYVal } : {},
106
- ...resolveSpacing(pt) ? { paddingTop: resolveSpacing(pt) } : {},
107
- ...resolveSpacing(pr) ? { paddingRight: resolveSpacing(pr) } : {},
108
- ...resolveSpacing(pb) ? { paddingBottom: resolveSpacing(pb) } : {},
109
- ...resolveSpacing(pl) ? { paddingLeft: resolveSpacing(pl) } : {},
110
- // Margin
111
- ...marginAll ? { margin: marginAll } : {},
112
- ...marginXVal ? { marginLeft: marginXVal, marginRight: marginXVal } : {},
113
- ...marginYVal ? { marginTop: marginYVal, marginBottom: marginYVal } : {},
114
- ...resolveSpacing(mt) ? { marginTop: resolveSpacing(mt) } : {},
115
- ...resolveSpacing(mr) ? { marginRight: resolveSpacing(mr) } : {},
116
- ...resolveSpacing(mb) ? { marginBottom: resolveSpacing(mb) } : {},
117
- ...resolveSpacing(ml) ? { marginLeft: resolveSpacing(ml) } : {},
118
- // Visual
119
- ...background ? { backgroundColor: bgMap[background] || background } : {},
120
- ...border ? { border: border === true ? `1px solid ${tokens.colors.border.default}` : border } : {},
121
- ...borderRadius ? { borderRadius: tokens.borderRadius[borderRadius] || borderRadius } : {},
122
- ...shadow && shadow !== "glow" ? { boxShadow: tokens.shadows[shadow] || shadow } : {},
123
- // Size
124
- width: resolveSize(resolveResponsive(width, breakpoint)),
125
- height: resolveSize(resolveResponsive(height, breakpoint)),
126
- minWidth: resolveSize(minWidth),
127
- minHeight: resolveSize(minHeight),
128
- maxWidth: resolveSize(maxWidth),
129
- maxHeight: resolveSize(maxHeight),
130
- overflow,
131
- position,
132
- flex,
133
- flexGrow,
134
- flexShrink,
135
- ...style
136
- };
137
- return /* @__PURE__ */ jsx(Component, { ref, style: computedStyle, ...rest, children });
4
+ import { forwardRef, memo } from "react";
5
+ import { jsx } from "react/jsx-runtime";
6
+ //#region src/react/core/layout/Grid.tsx
7
+ /**
8
+ * @zendir/ui - Grid Layout Primitive
9
+ *
10
+ * CSS Grid container with responsive columns and auto-fit support.
11
+ * Designed for operator dashboard layouts: telemetry grids, card layouts,
12
+ * multi-panel mission control views.
13
+ *
14
+ * Astro UX Compliance:
15
+ * - 4px grid spacing tokens
16
+ * - Responsive column count for mobile → 4K mission control
17
+ *
18
+ * @example
19
+ * ```tsx
20
+ * // Fixed responsive columns
21
+ * <Grid columns={[1, 2, 3]} gap="md">
22
+ * <TelemetryCard />
23
+ * <LinkBudgetCard />
24
+ * <SpacecraftCard />
25
+ * </Grid>
26
+ *
27
+ * // Auto-fit: as many 300px-min columns as fit
28
+ * <Grid autoFit={300} gap="md">
29
+ * {telemetryItems.map(item => <DataValue key={item.key} {...item} />)}
30
+ * </Grid>
31
+ *
32
+ * // Template-based for complex layouts
33
+ * <Grid template="1fr 2fr 1fr" rows="auto 1fr" gap="md">
34
+ * <SideNav />
35
+ * <MainContent />
36
+ * <DetailPanel />
37
+ * </Grid>
38
+ * ```
39
+ */
40
+ var Grid = memo(forwardRef(function Grid({ columns, autoFit, autoFill, template, rows, gap, rowGap, columnGap, align, justifyItems, alignContent, justifyContent, inline = false, padding, p, px, py, pt, pr, pb, pl, margin, m, mx, my, mt, mr, mb, ml, background, border, borderRadius, shadow, width, height, minWidth, minHeight, maxWidth, maxHeight, overflow, position, flex, flexGrow, flexShrink, as: Component = "div", style, children, ...rest }, ref) {
41
+ const { tokens } = useTheme();
42
+ const { breakpoint } = useBreakpoint();
43
+ const resolveSpacing = (val) => resolveResponsiveSpacing(val, breakpoint, tokens);
44
+ let gridTemplateColumns;
45
+ if (autoFit) gridTemplateColumns = `repeat(auto-fit, minmax(${autoFit}px, 1fr))`;
46
+ else if (autoFill) gridTemplateColumns = `repeat(auto-fill, minmax(${autoFill}px, 1fr))`;
47
+ else if (template) gridTemplateColumns = resolveResponsive(template, breakpoint);
48
+ else if (columns !== void 0) {
49
+ const cols = resolveResponsive(columns, breakpoint);
50
+ gridTemplateColumns = cols ? `repeat(${cols}, 1fr)` : void 0;
51
+ }
52
+ const bgMap = {
53
+ base: tokens.colors.background.base,
54
+ surface: tokens.colors.background.surface,
55
+ elevated: tokens.colors.background.elevated,
56
+ overlay: tokens.colors.background.overlay
57
+ };
58
+ const resolveSize = (val) => {
59
+ if (val === void 0) return void 0;
60
+ if (typeof val === "number") return `${val}px`;
61
+ return val;
62
+ };
63
+ const paddingAll = resolveSpacing(padding ?? p);
64
+ const paddingXVal = resolveSpacing(px);
65
+ const paddingYVal = resolveSpacing(py);
66
+ const marginAll = resolveSpacing(margin ?? m);
67
+ const marginXVal = resolveSpacing(mx);
68
+ const marginYVal = resolveSpacing(my);
69
+ const resolvedGap = resolveSpacing(gap);
70
+ const resolvedRowGap = resolveSpacing(rowGap);
71
+ const resolvedColumnGap = resolveSpacing(columnGap);
72
+ return /* @__PURE__ */ jsx(Component, {
73
+ ref,
74
+ style: {
75
+ display: inline ? "inline-grid" : "grid",
76
+ gridTemplateColumns,
77
+ gridTemplateRows: rows,
78
+ ...resolvedGap !== void 0 ? { gap: resolvedGap } : {},
79
+ ...resolvedRowGap !== void 0 ? { rowGap: resolvedRowGap } : {},
80
+ ...resolvedColumnGap !== void 0 ? { columnGap: resolvedColumnGap } : {},
81
+ alignItems: align,
82
+ justifyItems,
83
+ alignContent,
84
+ justifyContent,
85
+ ...paddingAll ? { padding: paddingAll } : {},
86
+ ...paddingXVal ? {
87
+ paddingLeft: paddingXVal,
88
+ paddingRight: paddingXVal
89
+ } : {},
90
+ ...paddingYVal ? {
91
+ paddingTop: paddingYVal,
92
+ paddingBottom: paddingYVal
93
+ } : {},
94
+ ...resolveSpacing(pt) ? { paddingTop: resolveSpacing(pt) } : {},
95
+ ...resolveSpacing(pr) ? { paddingRight: resolveSpacing(pr) } : {},
96
+ ...resolveSpacing(pb) ? { paddingBottom: resolveSpacing(pb) } : {},
97
+ ...resolveSpacing(pl) ? { paddingLeft: resolveSpacing(pl) } : {},
98
+ ...marginAll ? { margin: marginAll } : {},
99
+ ...marginXVal ? {
100
+ marginLeft: marginXVal,
101
+ marginRight: marginXVal
102
+ } : {},
103
+ ...marginYVal ? {
104
+ marginTop: marginYVal,
105
+ marginBottom: marginYVal
106
+ } : {},
107
+ ...resolveSpacing(mt) ? { marginTop: resolveSpacing(mt) } : {},
108
+ ...resolveSpacing(mr) ? { marginRight: resolveSpacing(mr) } : {},
109
+ ...resolveSpacing(mb) ? { marginBottom: resolveSpacing(mb) } : {},
110
+ ...resolveSpacing(ml) ? { marginLeft: resolveSpacing(ml) } : {},
111
+ ...background ? { backgroundColor: bgMap[background] || background } : {},
112
+ ...border ? { border: border === true ? `1px solid ${tokens.colors.border.default}` : border } : {},
113
+ ...borderRadius ? { borderRadius: tokens.borderRadius[borderRadius] || borderRadius } : {},
114
+ ...shadow && shadow !== "glow" ? { boxShadow: tokens.shadows[shadow] || shadow } : {},
115
+ width: resolveSize(resolveResponsive(width, breakpoint)),
116
+ height: resolveSize(resolveResponsive(height, breakpoint)),
117
+ minWidth: resolveSize(minWidth),
118
+ minHeight: resolveSize(minHeight),
119
+ maxWidth: resolveSize(maxWidth),
120
+ maxHeight: resolveSize(maxHeight),
121
+ overflow,
122
+ position,
123
+ flex,
124
+ flexGrow,
125
+ flexShrink,
126
+ ...style
127
+ },
128
+ ...rest,
129
+ children
130
+ });
138
131
  }));
139
- export {
140
- Grid
141
- };
142
- //# sourceMappingURL=Grid.js.map
132
+ //#endregion
133
+ export { Grid, Grid as default };
134
+
135
+ //# sourceMappingURL=Grid.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Grid.js","sources":["../../../../src/react/core/layout/Grid.tsx"],"sourcesContent":["/**\r\n * @zendir/ui - Grid Layout Primitive\r\n * \r\n * CSS Grid container with responsive columns and auto-fit support.\r\n * Designed for operator dashboard layouts: telemetry grids, card layouts,\r\n * multi-panel mission control views.\r\n * \r\n * Astro UX Compliance:\r\n * - 4px grid spacing tokens\r\n * - Responsive column count for mobile → 4K mission control\r\n * \r\n * @example\r\n * ```tsx\r\n * // Fixed responsive columns\r\n * <Grid columns={[1, 2, 3]} gap=\"md\">\r\n * <TelemetryCard />\r\n * <LinkBudgetCard />\r\n * <SpacecraftCard />\r\n * </Grid>\r\n * \r\n * // Auto-fit: as many 300px-min columns as fit\r\n * <Grid autoFit={300} gap=\"md\">\r\n * {telemetryItems.map(item => <DataValue key={item.key} {...item} />)}\r\n * </Grid>\r\n * \r\n * // Template-based for complex layouts\r\n * <Grid template=\"1fr 2fr 1fr\" rows=\"auto 1fr\" gap=\"md\">\r\n * <SideNav />\r\n * <MainContent />\r\n * <DetailPanel />\r\n * </Grid>\r\n * ```\r\n */\r\n\r\nimport React, { memo, forwardRef } from 'react';\r\nimport { useTheme } from '../../theme';\r\nimport { useBreakpoint } from './useBreakpoint';\r\nimport { resolveResponsiveSpacing, resolveResponsive } from './responsive';\r\nimport type { ResponsiveValue } from './useBreakpoint';\r\nimport type { SpacingToken } from './responsive';\r\nimport type { BoxProps } from './Box';\r\n\r\ntype SpacingInput = SpacingToken | string | number;\r\n\r\nexport interface GridProps extends Omit<BoxProps, 'display'> {\r\n /** Number of equal columns (responsive) */\r\n columns?: ResponsiveValue<number>;\r\n /** Auto-fit: minimum column width in px. Creates `repeat(auto-fit, minmax(Npx, 1fr))` */\r\n autoFit?: number;\r\n /** Auto-fill: minimum column width in px. Creates `repeat(auto-fill, minmax(Npx, 1fr))` */\r\n autoFill?: number;\r\n /** Explicit grid-template-columns CSS value */\r\n template?: ResponsiveValue<string>;\r\n /** Explicit grid-template-rows CSS value */\r\n rows?: string;\r\n /** Gap between grid items */\r\n gap?: ResponsiveValue<SpacingInput>;\r\n /** Row gap (overrides gap for rows) */\r\n rowGap?: ResponsiveValue<SpacingInput>;\r\n /** Column gap (overrides gap for columns) */\r\n columnGap?: ResponsiveValue<SpacingInput>;\r\n /** Align items (cross-axis per cell) */\r\n align?: 'start' | 'end' | 'center' | 'stretch' | 'baseline';\r\n /** Justify items (main-axis per cell) */\r\n justifyItems?: 'start' | 'end' | 'center' | 'stretch';\r\n /** Align content (cross-axis for the grid as a whole) */\r\n alignContent?: 'start' | 'end' | 'center' | 'stretch' | 'space-between' | 'space-around' | 'space-evenly';\r\n /** Justify content (main-axis for the grid as a whole) */\r\n justifyContent?: 'start' | 'end' | 'center' | 'stretch' | 'space-between' | 'space-around' | 'space-evenly';\r\n /** Make grid inline */\r\n inline?: boolean;\r\n}\r\n\r\nexport const Grid = memo(forwardRef<HTMLDivElement, GridProps>(function Grid(\r\n {\r\n columns,\r\n autoFit,\r\n autoFill,\r\n template,\r\n rows,\r\n gap,\r\n rowGap,\r\n columnGap,\r\n align,\r\n justifyItems,\r\n alignContent,\r\n justifyContent,\r\n inline = false,\r\n // Box props\r\n padding, p, px, py, pt, pr, pb, pl,\r\n margin, m, mx, my, mt, mr, mb, ml,\r\n background,\r\n border,\r\n borderRadius,\r\n shadow,\r\n width,\r\n height,\r\n minWidth,\r\n minHeight,\r\n maxWidth,\r\n maxHeight,\r\n overflow,\r\n position,\r\n flex,\r\n flexGrow,\r\n flexShrink,\r\n as: Component = 'div',\r\n style,\r\n children,\r\n ...rest\r\n },\r\n ref\r\n): React.ReactElement {\r\n const { tokens } = useTheme();\r\n const { breakpoint } = useBreakpoint();\r\n \r\n const resolveSpacing = (val: ResponsiveValue<SpacingInput> | undefined) =>\r\n resolveResponsiveSpacing(val, breakpoint, tokens);\r\n \r\n // Determine grid-template-columns\r\n let gridTemplateColumns: string | undefined;\r\n \r\n if (autoFit) {\r\n gridTemplateColumns = `repeat(auto-fit, minmax(${autoFit}px, 1fr))`;\r\n } else if (autoFill) {\r\n gridTemplateColumns = `repeat(auto-fill, minmax(${autoFill}px, 1fr))`;\r\n } else if (template) {\r\n gridTemplateColumns = resolveResponsive(template, breakpoint);\r\n } else if (columns !== undefined) {\r\n const cols = resolveResponsive(columns, breakpoint);\r\n gridTemplateColumns = cols ? `repeat(${cols}, 1fr)` : undefined;\r\n }\r\n \r\n // Background resolution\r\n const bgMap: Record<string, string> = {\r\n base: tokens.colors.background.base,\r\n surface: tokens.colors.background.surface,\r\n elevated: tokens.colors.background.elevated,\r\n overlay: tokens.colors.background.overlay,\r\n };\r\n \r\n const resolveSize = (val: string | number | undefined): string | undefined => {\r\n if (val === undefined) return undefined;\r\n if (typeof val === 'number') return `${val}px`;\r\n return val;\r\n };\r\n \r\n // Resolve padding\r\n const paddingAll = resolveSpacing(padding ?? p);\r\n const paddingXVal = resolveSpacing(px);\r\n const paddingYVal = resolveSpacing(py);\r\n \r\n // Resolve margin\r\n const marginAll = resolveSpacing(margin ?? m);\r\n const marginXVal = resolveSpacing(mx);\r\n const marginYVal = resolveSpacing(my);\r\n \r\n // Resolve gap values — use conditional spreads to avoid setting\r\n // rowGap/columnGap to undefined, which clears the gap shorthand\r\n // in browsers (setting `style.rowGap = ''` removes the value\r\n // that `style.gap` set for row-gap).\r\n const resolvedGap = resolveSpacing(gap);\r\n const resolvedRowGap = resolveSpacing(rowGap);\r\n const resolvedColumnGap = resolveSpacing(columnGap);\r\n\r\n const computedStyle: React.CSSProperties = {\r\n display: inline ? 'inline-grid' : 'grid',\r\n gridTemplateColumns,\r\n gridTemplateRows: rows,\r\n ...(resolvedGap !== undefined ? { gap: resolvedGap } : {}),\r\n ...(resolvedRowGap !== undefined ? { rowGap: resolvedRowGap } : {}),\r\n ...(resolvedColumnGap !== undefined ? { columnGap: resolvedColumnGap } : {}),\r\n alignItems: align,\r\n justifyItems,\r\n alignContent,\r\n justifyContent,\r\n \r\n // Padding\r\n ...(paddingAll ? { padding: paddingAll } : {}),\r\n ...(paddingXVal ? { paddingLeft: paddingXVal, paddingRight: paddingXVal } : {}),\r\n ...(paddingYVal ? { paddingTop: paddingYVal, paddingBottom: paddingYVal } : {}),\r\n ...(resolveSpacing(pt) ? { paddingTop: resolveSpacing(pt) } : {}),\r\n ...(resolveSpacing(pr) ? { paddingRight: resolveSpacing(pr) } : {}),\r\n ...(resolveSpacing(pb) ? { paddingBottom: resolveSpacing(pb) } : {}),\r\n ...(resolveSpacing(pl) ? { paddingLeft: resolveSpacing(pl) } : {}),\r\n \r\n // Margin\r\n ...(marginAll ? { margin: marginAll } : {}),\r\n ...(marginXVal ? { marginLeft: marginXVal, marginRight: marginXVal } : {}),\r\n ...(marginYVal ? { marginTop: marginYVal, marginBottom: marginYVal } : {}),\r\n ...(resolveSpacing(mt) ? { marginTop: resolveSpacing(mt) } : {}),\r\n ...(resolveSpacing(mr) ? { marginRight: resolveSpacing(mr) } : {}),\r\n ...(resolveSpacing(mb) ? { marginBottom: resolveSpacing(mb) } : {}),\r\n ...(resolveSpacing(ml) ? { marginLeft: resolveSpacing(ml) } : {}),\r\n \r\n // Visual\r\n ...(background ? { backgroundColor: bgMap[background] || background } : {}),\r\n ...(border ? { border: border === true ? `1px solid ${tokens.colors.border.default}` : border as string } : {}),\r\n ...(borderRadius ? { borderRadius: (tokens.borderRadius as Record<string, string>)[borderRadius as string] || borderRadius } : {}),\r\n ...(shadow && shadow !== 'glow' ? { boxShadow: (tokens.shadows as unknown as Record<string, string>)[shadow as string] || shadow } : {}),\r\n \r\n // Size\r\n width: resolveSize(resolveResponsive(width, breakpoint)),\r\n height: resolveSize(resolveResponsive(height, breakpoint)),\r\n minWidth: resolveSize(minWidth),\r\n minHeight: resolveSize(minHeight),\r\n maxWidth: resolveSize(maxWidth),\r\n maxHeight: resolveSize(maxHeight),\r\n overflow,\r\n position,\r\n flex,\r\n flexGrow,\r\n flexShrink,\r\n \r\n ...style,\r\n };\r\n \r\n return (\r\n <Component ref={ref} style={computedStyle} {...rest}>\r\n {children}\r\n </Component>\r\n );\r\n}));\r\n\r\nexport default Grid;\r\n"],"names":["Grid"],"mappings":"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"}
1
+ {"version":3,"file":"Grid.js","names":[],"sources":["../../../../src/react/core/layout/Grid.tsx"],"sourcesContent":["/**\n * @zendir/ui - Grid Layout Primitive\n *\n * CSS Grid container with responsive columns and auto-fit support.\n * Designed for operator dashboard layouts: telemetry grids, card layouts,\n * multi-panel mission control views.\n *\n * Astro UX Compliance:\n * - 4px grid spacing tokens\n * - Responsive column count for mobile → 4K mission control\n *\n * @example\n * ```tsx\n * // Fixed responsive columns\n * <Grid columns={[1, 2, 3]} gap=\"md\">\n * <TelemetryCard />\n * <LinkBudgetCard />\n * <SpacecraftCard />\n * </Grid>\n *\n * // Auto-fit: as many 300px-min columns as fit\n * <Grid autoFit={300} gap=\"md\">\n * {telemetryItems.map(item => <DataValue key={item.key} {...item} />)}\n * </Grid>\n *\n * // Template-based for complex layouts\n * <Grid template=\"1fr 2fr 1fr\" rows=\"auto 1fr\" gap=\"md\">\n * <SideNav />\n * <MainContent />\n * <DetailPanel />\n * </Grid>\n * ```\n */\n\nimport React, { memo, forwardRef } from \"react\";\nimport { useTheme } from \"../../theme\";\nimport { useBreakpoint } from \"./useBreakpoint\";\nimport { resolveResponsiveSpacing, resolveResponsive } from \"./responsive\";\nimport type { ResponsiveValue } from \"./useBreakpoint\";\nimport type { SpacingToken } from \"./responsive\";\nimport type { BoxProps } from \"./Box\";\n\ntype SpacingInput = SpacingToken | string | number;\n\nexport interface GridProps extends Omit<BoxProps, \"display\"> {\n /** Number of equal columns (responsive) */\n columns?: ResponsiveValue<number>;\n /** Auto-fit: minimum column width in px. Creates `repeat(auto-fit, minmax(Npx, 1fr))` */\n autoFit?: number;\n /** Auto-fill: minimum column width in px. Creates `repeat(auto-fill, minmax(Npx, 1fr))` */\n autoFill?: number;\n /** Explicit grid-template-columns CSS value */\n template?: ResponsiveValue<string>;\n /** Explicit grid-template-rows CSS value */\n rows?: string;\n /** Gap between grid items */\n gap?: ResponsiveValue<SpacingInput>;\n /** Row gap (overrides gap for rows) */\n rowGap?: ResponsiveValue<SpacingInput>;\n /** Column gap (overrides gap for columns) */\n columnGap?: ResponsiveValue<SpacingInput>;\n /** Align items (cross-axis per cell) */\n align?: \"start\" | \"end\" | \"center\" | \"stretch\" | \"baseline\";\n /** Justify items (main-axis per cell) */\n justifyItems?: \"start\" | \"end\" | \"center\" | \"stretch\";\n /** Align content (cross-axis for the grid as a whole) */\n alignContent?:\n | \"start\"\n | \"end\"\n | \"center\"\n | \"stretch\"\n | \"space-between\"\n | \"space-around\"\n | \"space-evenly\";\n /** Justify content (main-axis for the grid as a whole) */\n justifyContent?:\n | \"start\"\n | \"end\"\n | \"center\"\n | \"stretch\"\n | \"space-between\"\n | \"space-around\"\n | \"space-evenly\";\n /** Make grid inline */\n inline?: boolean;\n}\n\nexport const Grid = memo(\n forwardRef<HTMLDivElement, GridProps>(function Grid(\n {\n columns,\n autoFit,\n autoFill,\n template,\n rows,\n gap,\n rowGap,\n columnGap,\n align,\n justifyItems,\n alignContent,\n justifyContent,\n inline = false,\n // Box props\n padding,\n p,\n px,\n py,\n pt,\n pr,\n pb,\n pl,\n margin,\n m,\n mx,\n my,\n mt,\n mr,\n mb,\n ml,\n background,\n border,\n borderRadius,\n shadow,\n width,\n height,\n minWidth,\n minHeight,\n maxWidth,\n maxHeight,\n overflow,\n position,\n flex,\n flexGrow,\n flexShrink,\n as: Component = \"div\",\n style,\n children,\n ...rest\n },\n ref,\n ): React.ReactElement {\n const { tokens } = useTheme();\n const { breakpoint } = useBreakpoint();\n\n const resolveSpacing = (val: ResponsiveValue<SpacingInput> | undefined) =>\n resolveResponsiveSpacing(val, breakpoint, tokens);\n\n // Determine grid-template-columns\n let gridTemplateColumns: string | undefined;\n\n if (autoFit) {\n gridTemplateColumns = `repeat(auto-fit, minmax(${autoFit}px, 1fr))`;\n } else if (autoFill) {\n gridTemplateColumns = `repeat(auto-fill, minmax(${autoFill}px, 1fr))`;\n } else if (template) {\n gridTemplateColumns = resolveResponsive(template, breakpoint);\n } else if (columns !== undefined) {\n const cols = resolveResponsive(columns, breakpoint);\n gridTemplateColumns = cols ? `repeat(${cols}, 1fr)` : undefined;\n }\n\n // Background resolution\n const bgMap: Record<string, string> = {\n base: tokens.colors.background.base,\n surface: tokens.colors.background.surface,\n elevated: tokens.colors.background.elevated,\n overlay: tokens.colors.background.overlay,\n };\n\n const resolveSize = (\n val: string | number | undefined,\n ): string | undefined => {\n if (val === undefined) return undefined;\n if (typeof val === \"number\") return `${val}px`;\n return val;\n };\n\n // Resolve padding\n const paddingAll = resolveSpacing(padding ?? p);\n const paddingXVal = resolveSpacing(px);\n const paddingYVal = resolveSpacing(py);\n\n // Resolve margin\n const marginAll = resolveSpacing(margin ?? m);\n const marginXVal = resolveSpacing(mx);\n const marginYVal = resolveSpacing(my);\n\n // Resolve gap values — use conditional spreads to avoid setting\n // rowGap/columnGap to undefined, which clears the gap shorthand\n // in browsers (setting `style.rowGap = ''` removes the value\n // that `style.gap` set for row-gap).\n const resolvedGap = resolveSpacing(gap);\n const resolvedRowGap = resolveSpacing(rowGap);\n const resolvedColumnGap = resolveSpacing(columnGap);\n\n const computedStyle: React.CSSProperties = {\n display: inline ? \"inline-grid\" : \"grid\",\n gridTemplateColumns,\n gridTemplateRows: rows,\n ...(resolvedGap !== undefined ? { gap: resolvedGap } : {}),\n ...(resolvedRowGap !== undefined ? { rowGap: resolvedRowGap } : {}),\n ...(resolvedColumnGap !== undefined\n ? { columnGap: resolvedColumnGap }\n : {}),\n alignItems: align,\n justifyItems,\n alignContent,\n justifyContent,\n\n // Padding\n ...(paddingAll ? { padding: paddingAll } : {}),\n ...(paddingXVal\n ? { paddingLeft: paddingXVal, paddingRight: paddingXVal }\n : {}),\n ...(paddingYVal\n ? { paddingTop: paddingYVal, paddingBottom: paddingYVal }\n : {}),\n ...(resolveSpacing(pt) ? { paddingTop: resolveSpacing(pt) } : {}),\n ...(resolveSpacing(pr) ? { paddingRight: resolveSpacing(pr) } : {}),\n ...(resolveSpacing(pb) ? { paddingBottom: resolveSpacing(pb) } : {}),\n ...(resolveSpacing(pl) ? { paddingLeft: resolveSpacing(pl) } : {}),\n\n // Margin\n ...(marginAll ? { margin: marginAll } : {}),\n ...(marginXVal\n ? { marginLeft: marginXVal, marginRight: marginXVal }\n : {}),\n ...(marginYVal\n ? { marginTop: marginYVal, marginBottom: marginYVal }\n : {}),\n ...(resolveSpacing(mt) ? { marginTop: resolveSpacing(mt) } : {}),\n ...(resolveSpacing(mr) ? { marginRight: resolveSpacing(mr) } : {}),\n ...(resolveSpacing(mb) ? { marginBottom: resolveSpacing(mb) } : {}),\n ...(resolveSpacing(ml) ? { marginLeft: resolveSpacing(ml) } : {}),\n\n // Visual\n ...(background\n ? { backgroundColor: bgMap[background] || background }\n : {}),\n ...(border\n ? {\n border:\n border === true\n ? `1px solid ${tokens.colors.border.default}`\n : (border as string),\n }\n : {}),\n ...(borderRadius\n ? {\n borderRadius:\n (tokens.borderRadius as Record<string, string>)[\n borderRadius as string\n ] || borderRadius,\n }\n : {}),\n ...(shadow && shadow !== \"glow\"\n ? {\n boxShadow:\n (tokens.shadows as unknown as Record<string, string>)[\n shadow as string\n ] || shadow,\n }\n : {}),\n\n // Size\n width: resolveSize(resolveResponsive(width, breakpoint)),\n height: resolveSize(resolveResponsive(height, breakpoint)),\n minWidth: resolveSize(minWidth),\n minHeight: resolveSize(minHeight),\n maxWidth: resolveSize(maxWidth),\n maxHeight: resolveSize(maxHeight),\n overflow,\n position,\n flex,\n flexGrow,\n flexShrink,\n\n ...style,\n };\n\n return (\n <Component ref={ref} style={computedStyle} {...rest}>\n {children}\n </Component>\n );\n }),\n);\n\nexport default Grid;\n"],"mappings":"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"}
@@ -1,5 +1,4 @@
1
1
  import { default as React } from 'react';
2
-
3
2
  export interface SpacerProps {
4
3
  /** Fixed size instead of flexible (spacing token compatible, number → px) */
5
4
  size?: string | number;
@@ -1,31 +1,38 @@
1
- import { jsx } from "react/jsx-runtime";
2
1
  import { memo } from "react";
3
- const Spacer = memo(function Spacer2({ size }) {
4
- const resolvedSize = typeof size === "number" ? `${size}px` : size;
5
- if (resolvedSize) {
6
- return /* @__PURE__ */ jsx(
7
- "div",
8
- {
9
- "aria-hidden": "true",
10
- style: {
11
- flexShrink: 0,
12
- width: resolvedSize,
13
- height: resolvedSize
14
- }
15
- }
16
- );
17
- }
18
- return /* @__PURE__ */ jsx(
19
- "div",
20
- {
21
- "aria-hidden": "true",
22
- style: {
23
- flex: "1 1 0%"
24
- }
25
- }
26
- );
2
+ import { jsx } from "react/jsx-runtime";
3
+ //#region src/react/core/layout/Spacer.tsx
4
+ /**
5
+ * @zendir/ui - Spacer Layout Primitive
6
+ *
7
+ * Flexible space filler for Flex and Stack layouts.
8
+ * Expands to fill available space, pushing siblings apart.
9
+ *
10
+ * @example
11
+ * ```tsx
12
+ * <Flex align="center" gap="sm">
13
+ * <H3>Telemetry</H3>
14
+ * <Spacer />
15
+ * <Button variant="secondary" size="small">Refresh</Button>
16
+ * <Button size="small">Export</Button>
17
+ * </Flex>
18
+ * ```
19
+ */
20
+ var Spacer = memo(function Spacer({ size }) {
21
+ const resolvedSize = typeof size === "number" ? `${size}px` : size;
22
+ if (resolvedSize) return /* @__PURE__ */ jsx("div", {
23
+ "aria-hidden": "true",
24
+ style: {
25
+ flexShrink: 0,
26
+ width: resolvedSize,
27
+ height: resolvedSize
28
+ }
29
+ });
30
+ return /* @__PURE__ */ jsx("div", {
31
+ "aria-hidden": "true",
32
+ style: { flex: "1 1 0%" }
33
+ });
27
34
  });
28
- export {
29
- Spacer
30
- };
31
- //# sourceMappingURL=Spacer.js.map
35
+ //#endregion
36
+ export { Spacer, Spacer as default };
37
+
38
+ //# sourceMappingURL=Spacer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Spacer.js","sources":["../../../../src/react/core/layout/Spacer.tsx"],"sourcesContent":["/**\r\n * @zendir/ui - Spacer Layout Primitive\r\n * \r\n * Flexible space filler for Flex and Stack layouts.\r\n * Expands to fill available space, pushing siblings apart.\r\n * \r\n * @example\r\n * ```tsx\r\n * <Flex align=\"center\" gap=\"sm\">\r\n * <H3>Telemetry</H3>\r\n * <Spacer />\r\n * <Button variant=\"secondary\" size=\"small\">Refresh</Button>\r\n * <Button size=\"small\">Export</Button>\r\n * </Flex>\r\n * ```\r\n */\r\n\r\nimport React, { memo } from 'react';\r\n\r\nexport interface SpacerProps {\r\n /** Fixed size instead of flexible (spacing token compatible, number → px) */\r\n size?: string | number;\r\n}\r\n\r\nexport const Spacer = memo(function Spacer({ size }: SpacerProps): React.ReactElement {\r\n const resolvedSize = typeof size === 'number' ? `${size}px` : size;\r\n \r\n if (resolvedSize) {\r\n return (\r\n <div\r\n aria-hidden=\"true\"\r\n style={{\r\n flexShrink: 0,\r\n width: resolvedSize,\r\n height: resolvedSize,\r\n }}\r\n />\r\n );\r\n }\r\n \r\n return (\r\n <div\r\n aria-hidden=\"true\"\r\n style={{\r\n flex: '1 1 0%',\r\n }}\r\n />\r\n );\r\n});\r\n\r\nexport default Spacer;\r\n"],"names":["Spacer"],"mappings":";;AAwBO,MAAM,SAAS,KAAK,SAASA,QAAO,EAAE,QAAyC;AACpF,QAAM,eAAe,OAAO,SAAS,WAAW,GAAG,IAAI,OAAO;AAE9D,MAAI,cAAc;AAChB,WACE;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,eAAY;AAAA,QACZ,OAAO;AAAA,UACL,YAAY;AAAA,UACZ,OAAO;AAAA,UACP,QAAQ;AAAA,QAAA;AAAA,MACV;AAAA,IAAA;AAAA,EAGN;AAEA,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,eAAY;AAAA,MACZ,OAAO;AAAA,QACL,MAAM;AAAA,MAAA;AAAA,IACR;AAAA,EAAA;AAGN,CAAC;"}
1
+ {"version":3,"file":"Spacer.js","names":[],"sources":["../../../../src/react/core/layout/Spacer.tsx"],"sourcesContent":["/**\n * @zendir/ui - Spacer Layout Primitive\n *\n * Flexible space filler for Flex and Stack layouts.\n * Expands to fill available space, pushing siblings apart.\n *\n * @example\n * ```tsx\n * <Flex align=\"center\" gap=\"sm\">\n * <H3>Telemetry</H3>\n * <Spacer />\n * <Button variant=\"secondary\" size=\"small\">Refresh</Button>\n * <Button size=\"small\">Export</Button>\n * </Flex>\n * ```\n */\n\nimport React, { memo } from \"react\";\n\nexport interface SpacerProps {\n /** Fixed size instead of flexible (spacing token compatible, number → px) */\n size?: string | number;\n}\n\nexport const Spacer = memo(function Spacer({\n size,\n}: SpacerProps): React.ReactElement {\n const resolvedSize = typeof size === \"number\" ? `${size}px` : size;\n\n if (resolvedSize) {\n return (\n <div\n aria-hidden=\"true\"\n style={{\n flexShrink: 0,\n width: resolvedSize,\n height: resolvedSize,\n }}\n />\n );\n }\n\n return (\n <div\n aria-hidden=\"true\"\n style={{\n flex: \"1 1 0%\",\n }}\n />\n );\n});\n\nexport default Spacer;\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAwBA,IAAa,SAAS,KAAK,SAAS,OAAO,EACzC,QACkC;CAClC,MAAM,eAAe,OAAO,SAAS,WAAW,GAAG,KAAK,MAAM;CAE9D,IAAI,cACF,OACE,oBAAC,OAAD;EACE,eAAY;EACZ,OAAO;GACL,YAAY;GACZ,OAAO;GACP,QAAQ;EACV;CACD,CAAA;CAIL,OACE,oBAAC,OAAD;EACE,eAAY;EACZ,OAAO,EACL,MAAM,SACR;CACD,CAAA;AAEL,CAAC"}
@@ -1,21 +1,20 @@
1
1
  import { default as React } from 'react';
2
2
  import { ResponsiveValue } from './useBreakpoint';
3
3
  import { SpacingToken } from './responsive';
4
-
5
4
  type SpacingInput = SpacingToken | string | number;
6
5
  export interface StackProps extends React.HTMLAttributes<HTMLDivElement> {
7
6
  /** Element type to render */
8
7
  as?: React.ElementType;
9
8
  /** Stack direction */
10
- direction?: ResponsiveValue<'row' | 'column' | 'row-reverse' | 'column-reverse'>;
9
+ direction?: ResponsiveValue<"row" | "column" | "row-reverse" | "column-reverse">;
11
10
  /** Space between children (spacing token, px, or CSS string) */
12
11
  spacing?: ResponsiveValue<SpacingInput>;
13
12
  /** Align items (cross-axis) */
14
- align?: 'flex-start' | 'flex-end' | 'center' | 'baseline' | 'stretch';
13
+ align?: "flex-start" | "flex-end" | "center" | "baseline" | "stretch";
15
14
  /** Justify content (main-axis) */
16
- justify?: 'flex-start' | 'flex-end' | 'center' | 'space-between' | 'space-around' | 'space-evenly';
15
+ justify?: "flex-start" | "flex-end" | "center" | "space-between" | "space-around" | "space-evenly";
17
16
  /** Flex wrap */
18
- wrap?: 'nowrap' | 'wrap' | 'wrap-reverse';
17
+ wrap?: "nowrap" | "wrap" | "wrap-reverse";
19
18
  /** Full width */
20
19
  fullWidth?: boolean;
21
20
  /** Full height */