@zendir/ui 0.5.0 → 0.6.1

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 +419 -386
  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 -571
  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 +5 -6
  229. package/dist/react/core/navigation/SideNav.js +855 -629
  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 +313 -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 +26 -3
  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 +533 -155
  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
@@ -1,126 +1,122 @@
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 Box = memo(forwardRef(function Box2({
7
- as: Component = "div",
8
- padding,
9
- p,
10
- px,
11
- py,
12
- pt,
13
- pr,
14
- pb,
15
- pl,
16
- margin,
17
- m,
18
- mx,
19
- my,
20
- mt,
21
- mr,
22
- mb,
23
- ml,
24
- background,
25
- border,
26
- borderRadius,
27
- shadow,
28
- display,
29
- width,
30
- height,
31
- minWidth,
32
- minHeight,
33
- maxWidth,
34
- maxHeight,
35
- overflow,
36
- position,
37
- flex,
38
- flexGrow,
39
- flexShrink,
40
- style,
41
- children,
42
- ...rest
43
- }, ref) {
44
- const { tokens } = useTheme();
45
- const { breakpoint } = useBreakpoint();
46
- const resolve = (val) => resolveResponsiveSpacing(val, breakpoint, tokens);
47
- const paddingAll = resolve(padding ?? p);
48
- const paddingX = resolve(px);
49
- const paddingY = resolve(py);
50
- const marginAll = resolve(margin ?? m);
51
- const marginX = resolve(mx);
52
- const marginY = resolve(my);
53
- const resolveBackground = (bg) => {
54
- if (!bg) return void 0;
55
- const bgMap = {
56
- base: tokens.colors.background.base,
57
- surface: tokens.colors.background.surface,
58
- elevated: tokens.colors.background.elevated,
59
- overlay: tokens.colors.background.overlay
60
- };
61
- return bgMap[bg] || bg;
62
- };
63
- const resolveBorder = (b) => {
64
- if (!b) return void 0;
65
- if (b === true) return `1px solid ${tokens.colors.border.default}`;
66
- return b;
67
- };
68
- const resolveBorderRadius = (br) => {
69
- if (!br) return void 0;
70
- if (br in tokens.borderRadius) return tokens.borderRadius[br];
71
- return br;
72
- };
73
- const resolveShadow = (s) => {
74
- if (!s) return void 0;
75
- if (s in tokens.shadows && s !== "glow") return tokens.shadows[s];
76
- return s;
77
- };
78
- const resolveSize = (val) => {
79
- if (val === void 0) return void 0;
80
- if (typeof val === "number") return `${val}px`;
81
- return val;
82
- };
83
- const computedStyle = {
84
- // Padding
85
- ...paddingAll ? { padding: paddingAll } : {},
86
- ...paddingX ? { paddingLeft: paddingX, paddingRight: paddingX } : {},
87
- ...paddingY ? { paddingTop: paddingY, paddingBottom: paddingY } : {},
88
- ...resolve(pt) ? { paddingTop: resolve(pt) } : {},
89
- ...resolve(pr) ? { paddingRight: resolve(pr) } : {},
90
- ...resolve(pb) ? { paddingBottom: resolve(pb) } : {},
91
- ...resolve(pl) ? { paddingLeft: resolve(pl) } : {},
92
- // Margin
93
- ...marginAll ? { margin: marginAll } : {},
94
- ...marginX ? { marginLeft: marginX, marginRight: marginX } : {},
95
- ...marginY ? { marginTop: marginY, marginBottom: marginY } : {},
96
- ...resolve(mt) ? { marginTop: resolve(mt) } : {},
97
- ...resolve(mr) ? { marginRight: resolve(mr) } : {},
98
- ...resolve(mb) ? { marginBottom: resolve(mb) } : {},
99
- ...resolve(ml) ? { marginLeft: resolve(ml) } : {},
100
- // Visual
101
- backgroundColor: resolveBackground(background),
102
- border: resolveBorder(border),
103
- borderRadius: resolveBorderRadius(borderRadius),
104
- boxShadow: resolveShadow(shadow),
105
- // Layout
106
- display: resolveResponsive(display, breakpoint),
107
- width: resolveSize(resolveResponsive(width, breakpoint)),
108
- height: resolveSize(resolveResponsive(height, breakpoint)),
109
- minWidth: resolveSize(minWidth),
110
- minHeight: resolveSize(minHeight),
111
- maxWidth: resolveSize(maxWidth),
112
- maxHeight: resolveSize(maxHeight),
113
- overflow,
114
- position,
115
- flex,
116
- flexGrow,
117
- flexShrink,
118
- // User overrides
119
- ...style
120
- };
121
- return /* @__PURE__ */ jsx(Component, { ref, style: computedStyle, ...rest, children });
4
+ import { forwardRef, memo } from "react";
5
+ import { jsx } from "react/jsx-runtime";
6
+ //#region src/react/core/layout/Box.tsx
7
+ /**
8
+ * @zendir/ui - Box Layout Primitive
9
+ *
10
+ * The foundational layout building block. A themed <div> with shorthand props
11
+ * for padding, margin, background, border, and display properties.
12
+ *
13
+ * Follows Astro UX spacing tokens (4px grid system).
14
+ * All spacing props accept SpacingTokens ('xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl'),
15
+ * numbers (px), or CSS strings.
16
+ *
17
+ * @example
18
+ * ```tsx
19
+ * <Box padding="md" background="surface">
20
+ * <H3>Section Title</H3>
21
+ * <Body1>Content here</Body1>
22
+ * </Box>
23
+ *
24
+ * <Box padding={['sm', 'md', 'lg']} borderRadius="md">
25
+ * Responsive padding
26
+ * </Box>
27
+ * ```
28
+ */
29
+ var Box = memo(forwardRef(function Box({ as: Component = "div", padding, p, px, py, pt, pr, pb, pl, margin, m, mx, my, mt, mr, mb, ml, background, border, borderRadius, shadow, display, width, height, minWidth, minHeight, maxWidth, maxHeight, overflow, position, flex, flexGrow, flexShrink, style, children, ...rest }, ref) {
30
+ const { tokens } = useTheme();
31
+ const { breakpoint } = useBreakpoint();
32
+ const resolve = (val) => resolveResponsiveSpacing(val, breakpoint, tokens);
33
+ const paddingAll = resolve(padding ?? p);
34
+ const paddingX = resolve(px);
35
+ const paddingY = resolve(py);
36
+ const marginAll = resolve(margin ?? m);
37
+ const marginX = resolve(mx);
38
+ const marginY = resolve(my);
39
+ const resolveBackground = (bg) => {
40
+ if (!bg) return void 0;
41
+ return {
42
+ base: tokens.colors.background.base,
43
+ surface: tokens.colors.background.surface,
44
+ elevated: tokens.colors.background.elevated,
45
+ overlay: tokens.colors.background.overlay
46
+ }[bg] || bg;
47
+ };
48
+ const resolveBorder = (b) => {
49
+ if (!b) return void 0;
50
+ if (b === true) return `1px solid ${tokens.colors.border.default}`;
51
+ return b;
52
+ };
53
+ const resolveBorderRadius = (br) => {
54
+ if (!br) return void 0;
55
+ if (br in tokens.borderRadius) return tokens.borderRadius[br];
56
+ return br;
57
+ };
58
+ const resolveShadow = (s) => {
59
+ if (!s) return void 0;
60
+ if (s in tokens.shadows && s !== "glow") return tokens.shadows[s];
61
+ return s;
62
+ };
63
+ const resolveSize = (val) => {
64
+ if (val === void 0) return void 0;
65
+ if (typeof val === "number") return `${val}px`;
66
+ return val;
67
+ };
68
+ return /* @__PURE__ */ jsx(Component, {
69
+ ref,
70
+ style: {
71
+ ...paddingAll ? { padding: paddingAll } : {},
72
+ ...paddingX ? {
73
+ paddingLeft: paddingX,
74
+ paddingRight: paddingX
75
+ } : {},
76
+ ...paddingY ? {
77
+ paddingTop: paddingY,
78
+ paddingBottom: paddingY
79
+ } : {},
80
+ ...resolve(pt) ? { paddingTop: resolve(pt) } : {},
81
+ ...resolve(pr) ? { paddingRight: resolve(pr) } : {},
82
+ ...resolve(pb) ? { paddingBottom: resolve(pb) } : {},
83
+ ...resolve(pl) ? { paddingLeft: resolve(pl) } : {},
84
+ ...marginAll ? { margin: marginAll } : {},
85
+ ...marginX ? {
86
+ marginLeft: marginX,
87
+ marginRight: marginX
88
+ } : {},
89
+ ...marginY ? {
90
+ marginTop: marginY,
91
+ marginBottom: marginY
92
+ } : {},
93
+ ...resolve(mt) ? { marginTop: resolve(mt) } : {},
94
+ ...resolve(mr) ? { marginRight: resolve(mr) } : {},
95
+ ...resolve(mb) ? { marginBottom: resolve(mb) } : {},
96
+ ...resolve(ml) ? { marginLeft: resolve(ml) } : {},
97
+ backgroundColor: resolveBackground(background),
98
+ border: resolveBorder(border),
99
+ borderRadius: resolveBorderRadius(borderRadius),
100
+ boxShadow: resolveShadow(shadow),
101
+ display: resolveResponsive(display, breakpoint),
102
+ width: resolveSize(resolveResponsive(width, breakpoint)),
103
+ height: resolveSize(resolveResponsive(height, breakpoint)),
104
+ minWidth: resolveSize(minWidth),
105
+ minHeight: resolveSize(minHeight),
106
+ maxWidth: resolveSize(maxWidth),
107
+ maxHeight: resolveSize(maxHeight),
108
+ overflow,
109
+ position,
110
+ flex,
111
+ flexGrow,
112
+ flexShrink,
113
+ ...style
114
+ },
115
+ ...rest,
116
+ children
117
+ });
122
118
  }));
123
- export {
124
- Box
125
- };
126
- //# sourceMappingURL=Box.js.map
119
+ //#endregion
120
+ export { Box, Box as default };
121
+
122
+ //# sourceMappingURL=Box.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Box.js","sources":["../../../../src/react/core/layout/Box.tsx"],"sourcesContent":["/**\r\n * @zendir/ui - Box Layout Primitive\r\n * \r\n * The foundational layout building block. A themed <div> with shorthand props\r\n * for padding, margin, background, border, and display properties.\r\n * \r\n * Follows Astro UX spacing tokens (4px grid system).\r\n * All spacing props accept SpacingTokens ('xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl'),\r\n * numbers (px), or CSS strings.\r\n * \r\n * @example\r\n * ```tsx\r\n * <Box padding=\"md\" background=\"surface\">\r\n * <H3>Section Title</H3>\r\n * <Body1>Content here</Body1>\r\n * </Box>\r\n * \r\n * <Box padding={['sm', 'md', 'lg']} borderRadius=\"md\">\r\n * Responsive padding\r\n * </Box>\r\n * ```\r\n */\r\n\r\nimport React, { memo, forwardRef } from 'react';\r\nimport { useTheme } from '../../theme';\r\nimport { useBreakpoint } from './useBreakpoint';\r\nimport { resolveResponsiveSpacing, resolveResponsive } from './responsive';\r\nimport type { ResponsiveValue } from './useBreakpoint';\r\nimport type { SpacingToken } from './responsive';\r\n\r\ntype SpacingInput = SpacingToken | string | number;\r\n\r\nexport interface BoxProps extends React.HTMLAttributes<HTMLDivElement> {\r\n /** Element type to render */\r\n as?: React.ElementType;\r\n \r\n // Spacing\r\n /** Padding (all sides) */\r\n padding?: ResponsiveValue<SpacingInput>;\r\n /** Shorthand alias for padding */\r\n p?: ResponsiveValue<SpacingInput>;\r\n /** Padding horizontal (left + right) */\r\n px?: ResponsiveValue<SpacingInput>;\r\n /** Padding vertical (top + bottom) */\r\n py?: ResponsiveValue<SpacingInput>;\r\n /** Padding top */\r\n pt?: ResponsiveValue<SpacingInput>;\r\n /** Padding right */\r\n pr?: ResponsiveValue<SpacingInput>;\r\n /** Padding bottom */\r\n pb?: ResponsiveValue<SpacingInput>;\r\n /** Padding left */\r\n pl?: ResponsiveValue<SpacingInput>;\r\n /** Margin (all sides) */\r\n margin?: ResponsiveValue<SpacingInput>;\r\n /** Shorthand alias for margin */\r\n m?: ResponsiveValue<SpacingInput>;\r\n /** Margin horizontal (left + right) */\r\n mx?: ResponsiveValue<SpacingInput>;\r\n /** Margin vertical (top + bottom) */\r\n my?: ResponsiveValue<SpacingInput>;\r\n /** Margin top */\r\n mt?: ResponsiveValue<SpacingInput>;\r\n /** Margin right */\r\n mr?: ResponsiveValue<SpacingInput>;\r\n /** Margin bottom */\r\n mb?: ResponsiveValue<SpacingInput>;\r\n /** Margin left */\r\n ml?: ResponsiveValue<SpacingInput>;\r\n \r\n // Visual\r\n /** Background color: 'base' | 'surface' | 'elevated' | 'overlay' | custom CSS color */\r\n background?: string;\r\n /** Border: true for default border, or custom CSS border */\r\n border?: boolean | string;\r\n /** Border radius token or CSS value */\r\n borderRadius?: 'none' | 'sm' | 'md' | 'lg' | 'xl' | 'full' | string;\r\n /** Box shadow token or CSS value */\r\n shadow?: 'none' | 'sm' | 'md' | 'lg' | 'xl' | string;\r\n \r\n // Layout\r\n /** CSS display property */\r\n display?: ResponsiveValue<string>;\r\n /** CSS width */\r\n width?: ResponsiveValue<string | number>;\r\n /** CSS height */\r\n height?: ResponsiveValue<string | number>;\r\n /** CSS min-width */\r\n minWidth?: string | number;\r\n /** CSS min-height */\r\n minHeight?: string | number;\r\n /** CSS max-width */\r\n maxWidth?: string | number;\r\n /** CSS max-height */\r\n maxHeight?: string | number;\r\n /** CSS overflow */\r\n overflow?: string;\r\n /** CSS position */\r\n position?: 'static' | 'relative' | 'absolute' | 'fixed' | 'sticky';\r\n /** CSS flex property */\r\n flex?: string | number;\r\n /** CSS flex-grow */\r\n flexGrow?: number;\r\n /** CSS flex-shrink */\r\n flexShrink?: number;\r\n \r\n /** Children */\r\n children?: React.ReactNode;\r\n}\r\n\r\nexport const Box = memo(forwardRef<HTMLDivElement, BoxProps>(function Box(\r\n {\r\n as: Component = 'div',\r\n padding, p, px, py, pt, pr, pb, pl,\r\n margin, m, mx, my, mt, mr, mb, ml,\r\n background,\r\n border,\r\n borderRadius,\r\n shadow,\r\n display,\r\n width,\r\n height,\r\n minWidth,\r\n minHeight,\r\n maxWidth,\r\n maxHeight,\r\n overflow,\r\n position,\r\n flex,\r\n flexGrow,\r\n flexShrink,\r\n style,\r\n children,\r\n ...rest\r\n },\r\n ref\r\n): React.ReactElement {\r\n const { tokens } = useTheme();\r\n const { breakpoint } = useBreakpoint();\r\n \r\n const resolve = (val: ResponsiveValue<SpacingInput> | undefined) =>\r\n resolveResponsiveSpacing(val, breakpoint, tokens);\r\n \r\n // Resolve padding (p is alias for padding)\r\n const paddingAll = resolve(padding ?? p);\r\n const paddingX = resolve(px);\r\n const paddingY = resolve(py);\r\n \r\n // Resolve margin (m is alias for margin)\r\n const marginAll = resolve(margin ?? m);\r\n const marginX = resolve(mx);\r\n const marginY = resolve(my);\r\n \r\n // Background color resolution\r\n const resolveBackground = (bg: string | undefined): string | undefined => {\r\n if (!bg) return undefined;\r\n const bgMap: Record<string, string> = {\r\n base: tokens.colors.background.base,\r\n surface: tokens.colors.background.surface,\r\n elevated: tokens.colors.background.elevated,\r\n overlay: tokens.colors.background.overlay,\r\n };\r\n return bgMap[bg] || bg;\r\n };\r\n \r\n // Border resolution\r\n const resolveBorder = (b: boolean | string | undefined): string | undefined => {\r\n if (!b) return undefined;\r\n if (b === true) return `1px solid ${tokens.colors.border.default}`;\r\n return b;\r\n };\r\n \r\n // Border radius resolution\r\n const resolveBorderRadius = (br: string | undefined): string | undefined => {\r\n if (!br) return undefined;\r\n if (br in tokens.borderRadius) return tokens.borderRadius[br as keyof typeof tokens.borderRadius];\r\n return br;\r\n };\r\n \r\n // Shadow resolution\r\n const resolveShadow = (s: string | undefined): string | undefined => {\r\n if (!s) return undefined;\r\n if (s in tokens.shadows && s !== 'glow') return tokens.shadows[s as keyof Omit<typeof tokens.shadows, 'glow'>];\r\n return s;\r\n };\r\n \r\n // Size resolution (number → px)\r\n const resolveSize = (val: string | number | undefined): string | undefined => {\r\n if (val === undefined) return undefined;\r\n if (typeof val === 'number') return `${val}px`;\r\n return val;\r\n };\r\n \r\n const computedStyle: React.CSSProperties = {\r\n // Padding\r\n ...(paddingAll ? { padding: paddingAll } : {}),\r\n ...(paddingX ? { paddingLeft: paddingX, paddingRight: paddingX } : {}),\r\n ...(paddingY ? { paddingTop: paddingY, paddingBottom: paddingY } : {}),\r\n ...(resolve(pt) ? { paddingTop: resolve(pt) } : {}),\r\n ...(resolve(pr) ? { paddingRight: resolve(pr) } : {}),\r\n ...(resolve(pb) ? { paddingBottom: resolve(pb) } : {}),\r\n ...(resolve(pl) ? { paddingLeft: resolve(pl) } : {}),\r\n \r\n // Margin\r\n ...(marginAll ? { margin: marginAll } : {}),\r\n ...(marginX ? { marginLeft: marginX, marginRight: marginX } : {}),\r\n ...(marginY ? { marginTop: marginY, marginBottom: marginY } : {}),\r\n ...(resolve(mt) ? { marginTop: resolve(mt) } : {}),\r\n ...(resolve(mr) ? { marginRight: resolve(mr) } : {}),\r\n ...(resolve(mb) ? { marginBottom: resolve(mb) } : {}),\r\n ...(resolve(ml) ? { marginLeft: resolve(ml) } : {}),\r\n \r\n // Visual\r\n backgroundColor: resolveBackground(background),\r\n border: resolveBorder(border),\r\n borderRadius: resolveBorderRadius(borderRadius),\r\n boxShadow: resolveShadow(shadow),\r\n \r\n // Layout\r\n display: resolveResponsive(display, breakpoint),\r\n width: resolveSize(resolveResponsive(width, breakpoint)),\r\n height: resolveSize(resolveResponsive(height, breakpoint)),\r\n minWidth: resolveSize(minWidth),\r\n minHeight: resolveSize(minHeight),\r\n maxWidth: resolveSize(maxWidth),\r\n maxHeight: resolveSize(maxHeight),\r\n overflow,\r\n position,\r\n flex,\r\n flexGrow,\r\n flexShrink,\r\n \r\n // User overrides\r\n ...style,\r\n };\r\n \r\n return (\r\n <Component ref={ref} style={computedStyle} {...rest}>\r\n {children}\r\n </Component>\r\n );\r\n}));\r\n\r\nexport default Box;\r\n"],"names":["Box"],"mappings":"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"}
1
+ {"version":3,"file":"Box.js","names":[],"sources":["../../../../src/react/core/layout/Box.tsx"],"sourcesContent":["/**\r\n * @zendir/ui - Box Layout Primitive\r\n *\r\n * The foundational layout building block. A themed <div> with shorthand props\r\n * for padding, margin, background, border, and display properties.\r\n *\r\n * Follows Astro UX spacing tokens (4px grid system).\r\n * All spacing props accept SpacingTokens ('xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl'),\r\n * numbers (px), or CSS strings.\r\n *\r\n * @example\r\n * ```tsx\r\n * <Box padding=\"md\" background=\"surface\">\r\n * <H3>Section Title</H3>\r\n * <Body1>Content here</Body1>\r\n * </Box>\r\n *\r\n * <Box padding={['sm', 'md', 'lg']} borderRadius=\"md\">\r\n * Responsive padding\r\n * </Box>\r\n * ```\r\n */\r\n\r\nimport React, { memo, forwardRef } from \"react\";\r\nimport { useTheme } from \"../../theme\";\r\nimport { useBreakpoint } from \"./useBreakpoint\";\r\nimport { resolveResponsiveSpacing, resolveResponsive } from \"./responsive\";\r\nimport type { ResponsiveValue } from \"./useBreakpoint\";\r\nimport type { SpacingToken } from \"./responsive\";\r\n\r\ntype SpacingInput = SpacingToken | string | number;\r\n\r\nexport interface BoxProps extends React.HTMLAttributes<HTMLDivElement> {\r\n /** Element type to render */\r\n as?: React.ElementType;\r\n\r\n // Spacing\r\n /** Padding (all sides) */\r\n padding?: ResponsiveValue<SpacingInput>;\r\n /** Shorthand alias for padding */\r\n p?: ResponsiveValue<SpacingInput>;\r\n /** Padding horizontal (left + right) */\r\n px?: ResponsiveValue<SpacingInput>;\r\n /** Padding vertical (top + bottom) */\r\n py?: ResponsiveValue<SpacingInput>;\r\n /** Padding top */\r\n pt?: ResponsiveValue<SpacingInput>;\r\n /** Padding right */\r\n pr?: ResponsiveValue<SpacingInput>;\r\n /** Padding bottom */\r\n pb?: ResponsiveValue<SpacingInput>;\r\n /** Padding left */\r\n pl?: ResponsiveValue<SpacingInput>;\r\n /** Margin (all sides) */\r\n margin?: ResponsiveValue<SpacingInput>;\r\n /** Shorthand alias for margin */\r\n m?: ResponsiveValue<SpacingInput>;\r\n /** Margin horizontal (left + right) */\r\n mx?: ResponsiveValue<SpacingInput>;\r\n /** Margin vertical (top + bottom) */\r\n my?: ResponsiveValue<SpacingInput>;\r\n /** Margin top */\r\n mt?: ResponsiveValue<SpacingInput>;\r\n /** Margin right */\r\n mr?: ResponsiveValue<SpacingInput>;\r\n /** Margin bottom */\r\n mb?: ResponsiveValue<SpacingInput>;\r\n /** Margin left */\r\n ml?: ResponsiveValue<SpacingInput>;\r\n\r\n // Visual\r\n /** Background color: 'base' | 'surface' | 'elevated' | 'overlay' | custom CSS color */\r\n background?: string;\r\n /** Border: true for default border, or custom CSS border */\r\n border?: boolean | string;\r\n /** Border radius token or CSS value */\r\n borderRadius?: \"none\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"full\" | string;\r\n /** Box shadow token or CSS value */\r\n shadow?: \"none\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | string;\r\n\r\n // Layout\r\n /** CSS display property */\r\n display?: ResponsiveValue<string>;\r\n /** CSS width */\r\n width?: ResponsiveValue<string | number>;\r\n /** CSS height */\r\n height?: ResponsiveValue<string | number>;\r\n /** CSS min-width */\r\n minWidth?: string | number;\r\n /** CSS min-height */\r\n minHeight?: string | number;\r\n /** CSS max-width */\r\n maxWidth?: string | number;\r\n /** CSS max-height */\r\n maxHeight?: string | number;\r\n /** CSS overflow */\r\n overflow?: string;\r\n /** CSS position */\r\n position?: \"static\" | \"relative\" | \"absolute\" | \"fixed\" | \"sticky\";\r\n /** CSS flex property */\r\n flex?: string | number;\r\n /** CSS flex-grow */\r\n flexGrow?: number;\r\n /** CSS flex-shrink */\r\n flexShrink?: number;\r\n\r\n /** Children */\r\n children?: React.ReactNode;\r\n}\r\n\r\nexport const Box = memo(\r\n forwardRef<HTMLDivElement, BoxProps>(function Box(\r\n {\r\n as: Component = \"div\",\r\n padding,\r\n p,\r\n px,\r\n py,\r\n pt,\r\n pr,\r\n pb,\r\n pl,\r\n margin,\r\n m,\r\n mx,\r\n my,\r\n mt,\r\n mr,\r\n mb,\r\n ml,\r\n background,\r\n border,\r\n borderRadius,\r\n shadow,\r\n display,\r\n width,\r\n height,\r\n minWidth,\r\n minHeight,\r\n maxWidth,\r\n maxHeight,\r\n overflow,\r\n position,\r\n flex,\r\n flexGrow,\r\n flexShrink,\r\n style,\r\n children,\r\n ...rest\r\n },\r\n ref,\r\n ): React.ReactElement {\r\n const { tokens } = useTheme();\r\n const { breakpoint } = useBreakpoint();\r\n\r\n const resolve = (val: ResponsiveValue<SpacingInput> | undefined) =>\r\n resolveResponsiveSpacing(val, breakpoint, tokens);\r\n\r\n // Resolve padding (p is alias for padding)\r\n const paddingAll = resolve(padding ?? p);\r\n const paddingX = resolve(px);\r\n const paddingY = resolve(py);\r\n\r\n // Resolve margin (m is alias for margin)\r\n const marginAll = resolve(margin ?? m);\r\n const marginX = resolve(mx);\r\n const marginY = resolve(my);\r\n\r\n // Background color resolution\r\n const resolveBackground = (bg: string | undefined): string | undefined => {\r\n if (!bg) return undefined;\r\n const bgMap: Record<string, string> = {\r\n base: tokens.colors.background.base,\r\n surface: tokens.colors.background.surface,\r\n elevated: tokens.colors.background.elevated,\r\n overlay: tokens.colors.background.overlay,\r\n };\r\n return bgMap[bg] || bg;\r\n };\r\n\r\n // Border resolution\r\n const resolveBorder = (\r\n b: boolean | string | undefined,\r\n ): string | undefined => {\r\n if (!b) return undefined;\r\n if (b === true) return `1px solid ${tokens.colors.border.default}`;\r\n return b;\r\n };\r\n\r\n // Border radius resolution\r\n const resolveBorderRadius = (\r\n br: string | undefined,\r\n ): string | undefined => {\r\n if (!br) return undefined;\r\n if (br in tokens.borderRadius)\r\n return tokens.borderRadius[br as keyof typeof tokens.borderRadius];\r\n return br;\r\n };\r\n\r\n // Shadow resolution\r\n const resolveShadow = (s: string | undefined): string | undefined => {\r\n if (!s) return undefined;\r\n if (s in tokens.shadows && s !== \"glow\")\r\n return tokens.shadows[s as keyof Omit<typeof tokens.shadows, \"glow\">];\r\n return s;\r\n };\r\n\r\n // Size resolution (number → px)\r\n const resolveSize = (\r\n val: string | number | undefined,\r\n ): string | undefined => {\r\n if (val === undefined) return undefined;\r\n if (typeof val === \"number\") return `${val}px`;\r\n return val;\r\n };\r\n\r\n const computedStyle: React.CSSProperties = {\r\n // Padding\r\n ...(paddingAll ? { padding: paddingAll } : {}),\r\n ...(paddingX ? { paddingLeft: paddingX, paddingRight: paddingX } : {}),\r\n ...(paddingY ? { paddingTop: paddingY, paddingBottom: paddingY } : {}),\r\n ...(resolve(pt) ? { paddingTop: resolve(pt) } : {}),\r\n ...(resolve(pr) ? { paddingRight: resolve(pr) } : {}),\r\n ...(resolve(pb) ? { paddingBottom: resolve(pb) } : {}),\r\n ...(resolve(pl) ? { paddingLeft: resolve(pl) } : {}),\r\n\r\n // Margin\r\n ...(marginAll ? { margin: marginAll } : {}),\r\n ...(marginX ? { marginLeft: marginX, marginRight: marginX } : {}),\r\n ...(marginY ? { marginTop: marginY, marginBottom: marginY } : {}),\r\n ...(resolve(mt) ? { marginTop: resolve(mt) } : {}),\r\n ...(resolve(mr) ? { marginRight: resolve(mr) } : {}),\r\n ...(resolve(mb) ? { marginBottom: resolve(mb) } : {}),\r\n ...(resolve(ml) ? { marginLeft: resolve(ml) } : {}),\r\n\r\n // Visual\r\n backgroundColor: resolveBackground(background),\r\n border: resolveBorder(border),\r\n borderRadius: resolveBorderRadius(borderRadius),\r\n boxShadow: resolveShadow(shadow),\r\n\r\n // Layout\r\n display: resolveResponsive(display, breakpoint),\r\n width: resolveSize(resolveResponsive(width, breakpoint)),\r\n height: resolveSize(resolveResponsive(height, breakpoint)),\r\n minWidth: resolveSize(minWidth),\r\n minHeight: resolveSize(minHeight),\r\n maxWidth: resolveSize(maxWidth),\r\n maxHeight: resolveSize(maxHeight),\r\n overflow,\r\n position,\r\n flex,\r\n flexGrow,\r\n flexShrink,\r\n\r\n // User overrides\r\n ...style,\r\n };\r\n\r\n return (\r\n <Component ref={ref} style={computedStyle} {...rest}>\r\n {children}\r\n </Component>\r\n );\r\n }),\r\n);\r\n\r\nexport default Box;\r\n"],"mappings":"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"}
@@ -1,5 +1,4 @@
1
1
  import { default as React } from 'react';
2
-
3
2
  export interface CenterProps extends React.HTMLAttributes<HTMLDivElement> {
4
3
  /** Element type to render */
5
4
  as?: React.ElementType;
@@ -1,34 +1,47 @@
1
+ import { forwardRef, memo } from "react";
1
2
  import { jsx } from "react/jsx-runtime";
2
- import { memo, forwardRef } from "react";
3
- const Center = memo(forwardRef(function Center2({
4
- as: Component = "div",
5
- width,
6
- height,
7
- maxWidth,
8
- textAlign = false,
9
- inline = false,
10
- style,
11
- children,
12
- ...rest
13
- }, ref) {
14
- const resolveSize = (val) => {
15
- if (val === void 0) return void 0;
16
- if (typeof val === "number") return `${val}px`;
17
- return val;
18
- };
19
- const computedStyle = {
20
- display: inline ? "inline-flex" : "flex",
21
- alignItems: "center",
22
- justifyContent: "center",
23
- width: resolveSize(width),
24
- height: resolveSize(height),
25
- maxWidth: resolveSize(maxWidth),
26
- textAlign: textAlign ? "center" : void 0,
27
- ...style
28
- };
29
- return /* @__PURE__ */ jsx(Component, { ref, style: computedStyle, ...rest, children });
3
+ //#region src/react/core/layout/Center.tsx
4
+ /**
5
+ * @zendir/ui - Center Layout Primitive
6
+ *
7
+ * Centers content horizontally and vertically using flexbox.
8
+ * Common in operator dashboards for loading states, empty states, and hero sections.
9
+ *
10
+ * @example
11
+ * ```tsx
12
+ * <Center height="100vh">
13
+ * <VStack spacing="md" align="center">
14
+ * <Icon name="satellite" size={64} />
15
+ * <H2>No Telemetry Data</H2>
16
+ * <Body2>Connect to a spacecraft to begin monitoring.</Body2>
17
+ * <Button>Connect</Button>
18
+ * </VStack>
19
+ * </Center>
20
+ * ```
21
+ */
22
+ var Center = memo(forwardRef(function Center({ as: Component = "div", width, height, maxWidth, textAlign = false, inline = false, style, children, ...rest }, ref) {
23
+ const resolveSize = (val) => {
24
+ if (val === void 0) return void 0;
25
+ if (typeof val === "number") return `${val}px`;
26
+ return val;
27
+ };
28
+ return /* @__PURE__ */ jsx(Component, {
29
+ ref,
30
+ style: {
31
+ display: inline ? "inline-flex" : "flex",
32
+ alignItems: "center",
33
+ justifyContent: "center",
34
+ width: resolveSize(width),
35
+ height: resolveSize(height),
36
+ maxWidth: resolveSize(maxWidth),
37
+ textAlign: textAlign ? "center" : void 0,
38
+ ...style
39
+ },
40
+ ...rest,
41
+ children
42
+ });
30
43
  }));
31
- export {
32
- Center
33
- };
34
- //# sourceMappingURL=Center.js.map
44
+ //#endregion
45
+ export { Center, Center as default };
46
+
47
+ //# sourceMappingURL=Center.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Center.js","sources":["../../../../src/react/core/layout/Center.tsx"],"sourcesContent":["/**\r\n * @zendir/ui - Center Layout Primitive\r\n * \r\n * Centers content horizontally and vertically using flexbox.\r\n * Common in operator dashboards for loading states, empty states, and hero sections.\r\n * \r\n * @example\r\n * ```tsx\r\n * <Center height=\"100vh\">\r\n * <VStack spacing=\"md\" align=\"center\">\r\n * <Icon name=\"satellite\" size={64} />\r\n * <H2>No Telemetry Data</H2>\r\n * <Body2>Connect to a spacecraft to begin monitoring.</Body2>\r\n * <Button>Connect</Button>\r\n * </VStack>\r\n * </Center>\r\n * ```\r\n */\r\n\r\nimport React, { memo, forwardRef } from 'react';\r\n\r\nexport interface CenterProps extends React.HTMLAttributes<HTMLDivElement> {\r\n /** Element type to render */\r\n as?: React.ElementType;\r\n /** Width (CSS value or number for px) */\r\n width?: string | number;\r\n /** Height (CSS value or number for px) */\r\n height?: string | number;\r\n /** Max width constraint */\r\n maxWidth?: string | number;\r\n /** Also center text */\r\n textAlign?: boolean;\r\n /** Inline-flex instead of flex */\r\n inline?: boolean;\r\n /** Children */\r\n children?: React.ReactNode;\r\n}\r\n\r\nexport const Center = memo(forwardRef<HTMLDivElement, CenterProps>(function Center(\r\n {\r\n as: Component = 'div',\r\n width,\r\n height,\r\n maxWidth,\r\n textAlign = false,\r\n inline = false,\r\n style,\r\n children,\r\n ...rest\r\n },\r\n ref\r\n): React.ReactElement {\r\n const resolveSize = (val: string | number | undefined): string | undefined => {\r\n if (val === undefined) return undefined;\r\n if (typeof val === 'number') return `${val}px`;\r\n return val;\r\n };\r\n\r\n const computedStyle: React.CSSProperties = {\r\n display: inline ? 'inline-flex' : 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n width: resolveSize(width),\r\n height: resolveSize(height),\r\n maxWidth: resolveSize(maxWidth),\r\n textAlign: textAlign ? 'center' : undefined,\r\n ...style,\r\n };\r\n\r\n return (\r\n <Component ref={ref} style={computedStyle} {...rest}>\r\n {children}\r\n </Component>\r\n );\r\n}));\r\n\r\nexport default Center;\r\n"],"names":["Center"],"mappings":";;AAsCO,MAAM,SAAS,KAAK,WAAwC,SAASA,QAC1E;AAAA,EACE,IAAI,YAAY;AAAA,EAChB;AAAA,EACA;AAAA,EACA;AAAA,EACA,YAAY;AAAA,EACZ,SAAS;AAAA,EACT;AAAA,EACA;AAAA,EACA,GAAG;AACL,GACA,KACoB;AACpB,QAAM,cAAc,CAAC,QAAyD;AAC5E,QAAI,QAAQ,OAAW,QAAO;AAC9B,QAAI,OAAO,QAAQ,SAAU,QAAO,GAAG,GAAG;AAC1C,WAAO;AAAA,EACT;AAEA,QAAM,gBAAqC;AAAA,IACzC,SAAS,SAAS,gBAAgB;AAAA,IAClC,YAAY;AAAA,IACZ,gBAAgB;AAAA,IAChB,OAAO,YAAY,KAAK;AAAA,IACxB,QAAQ,YAAY,MAAM;AAAA,IAC1B,UAAU,YAAY,QAAQ;AAAA,IAC9B,WAAW,YAAY,WAAW;AAAA,IAClC,GAAG;AAAA,EAAA;AAGL,6BACG,WAAA,EAAU,KAAU,OAAO,eAAgB,GAAG,MAC5C,UACH;AAEJ,CAAC,CAAC;"}
1
+ {"version":3,"file":"Center.js","names":[],"sources":["../../../../src/react/core/layout/Center.tsx"],"sourcesContent":["/**\r\n * @zendir/ui - Center Layout Primitive\r\n *\r\n * Centers content horizontally and vertically using flexbox.\r\n * Common in operator dashboards for loading states, empty states, and hero sections.\r\n *\r\n * @example\r\n * ```tsx\r\n * <Center height=\"100vh\">\r\n * <VStack spacing=\"md\" align=\"center\">\r\n * <Icon name=\"satellite\" size={64} />\r\n * <H2>No Telemetry Data</H2>\r\n * <Body2>Connect to a spacecraft to begin monitoring.</Body2>\r\n * <Button>Connect</Button>\r\n * </VStack>\r\n * </Center>\r\n * ```\r\n */\r\n\r\nimport React, { memo, forwardRef } from \"react\";\r\n\r\nexport interface CenterProps extends React.HTMLAttributes<HTMLDivElement> {\r\n /** Element type to render */\r\n as?: React.ElementType;\r\n /** Width (CSS value or number for px) */\r\n width?: string | number;\r\n /** Height (CSS value or number for px) */\r\n height?: string | number;\r\n /** Max width constraint */\r\n maxWidth?: string | number;\r\n /** Also center text */\r\n textAlign?: boolean;\r\n /** Inline-flex instead of flex */\r\n inline?: boolean;\r\n /** Children */\r\n children?: React.ReactNode;\r\n}\r\n\r\nexport const Center = memo(\r\n forwardRef<HTMLDivElement, CenterProps>(function Center(\r\n {\r\n as: Component = \"div\",\r\n width,\r\n height,\r\n maxWidth,\r\n textAlign = false,\r\n inline = false,\r\n style,\r\n children,\r\n ...rest\r\n },\r\n ref,\r\n ): React.ReactElement {\r\n const resolveSize = (\r\n val: string | number | undefined,\r\n ): string | undefined => {\r\n if (val === undefined) return undefined;\r\n if (typeof val === \"number\") return `${val}px`;\r\n return val;\r\n };\r\n\r\n const computedStyle: React.CSSProperties = {\r\n display: inline ? \"inline-flex\" : \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n width: resolveSize(width),\r\n height: resolveSize(height),\r\n maxWidth: resolveSize(maxWidth),\r\n textAlign: textAlign ? \"center\" : undefined,\r\n ...style,\r\n };\r\n\r\n return (\r\n <Component ref={ref} style={computedStyle} {...rest}>\r\n {children}\r\n </Component>\r\n );\r\n }),\r\n);\r\n\r\nexport default Center;\r\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAsCA,IAAa,SAAS,KACpB,WAAwC,SAAS,OAC/C,EACE,IAAI,YAAY,OAChB,OACA,QACA,UACA,YAAY,OACZ,SAAS,OACT,OACA,UACA,GAAG,QAEL,KACoB;CACpB,MAAM,eACJ,QACuB;EACvB,IAAI,QAAQ,KAAA,GAAW,OAAO,KAAA;EAC9B,IAAI,OAAO,QAAQ,UAAU,OAAO,GAAG,IAAI;EAC3C,OAAO;CACT;CAaA,OACE,oBAAC,WAAD;EAAgB;EAAK,OAAO;GAX5B,SAAS,SAAS,gBAAgB;GAClC,YAAY;GACZ,gBAAgB;GAChB,OAAO,YAAY,KAAK;GACxB,QAAQ,YAAY,MAAM;GAC1B,UAAU,YAAY,QAAQ;GAC9B,WAAW,YAAY,WAAW,KAAA;GAClC,GAAG;EAIyB;EAAe,GAAI;EAC5C;CACQ,CAAA;AAEf,CAAC,CACH"}
@@ -1,8 +1,7 @@
1
1
  import { default as React } from 'react';
2
-
3
2
  export interface DividerProps extends React.HTMLAttributes<HTMLDivElement> {
4
3
  /** Divider orientation */
5
- orientation?: 'horizontal' | 'vertical';
4
+ orientation?: "horizontal" | "vertical";
6
5
  /** Optional centered label text */
7
6
  label?: string;
8
7
  /** Spacing around the divider (CSS value) */