@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,137 +1,207 @@
1
+ import { createContext, useContext, useMemo } from "react";
1
2
  import { jsx } from "react/jsx-runtime";
2
- import { useMemo, useContext, createContext } from "react";
3
- const CARD_ACCENT_COLORS = {
4
- cyan: { label: "Cyan", value: "#00c8ff" },
5
- electric: { label: "Electric", value: "#4d7cff" },
6
- purple: { label: "Purple", value: "#a855f7" },
7
- teal: { label: "Teal", value: "#14b8a6" },
8
- prussianBlue: { label: "Prussian Blue", value: "#1e3a5f" },
9
- green: { label: "Green", value: "#22c55e" },
10
- amber: { label: "Amber", value: "#f59e0b" },
11
- mix: { label: "Mix (Per System)", value: "mix" }
3
+ //#region src/react/theme/cardAccent.tsx
4
+ /**
5
+ * @zendir/ui - Card Accent System
6
+ *
7
+ * Provides accent color configuration for cards and containers in space operations UIs.
8
+ * Maps space system domains to appropriate accent colors for visual organization.
9
+ *
10
+ * Features:
11
+ * - Predefined accent colors for common use cases
12
+ * - Space system keyword color mapping for auto-coloring
13
+ * - Mix mode for automatic per-domain coloring
14
+ * - React context and hook for easy integration
15
+ *
16
+ * @example
17
+ * ```tsx
18
+ * import {
19
+ * CardAccentProvider,
20
+ * useCardAccent,
21
+ * getSystemAccentColor
22
+ * } from '@zendir/ui';
23
+ *
24
+ * // Wrap your app with the provider
25
+ * <CardAccentProvider accentMode="mix">
26
+ * <MyApp />
27
+ * </CardAccentProvider>
28
+ *
29
+ * // Use in components
30
+ * const { getAccentColor } = useCardAccent();
31
+ * <Container accentColor={getAccentColor('Power Systems')} />
32
+ * ```
33
+ */
34
+ /**
35
+ * Predefined card accent colors
36
+ * These are optimized for dark themes and space operations UIs
37
+ */
38
+ var CARD_ACCENT_COLORS = {
39
+ cyan: {
40
+ label: "Cyan",
41
+ value: "#00c8ff"
42
+ },
43
+ electric: {
44
+ label: "Electric",
45
+ value: "#4d7cff"
46
+ },
47
+ purple: {
48
+ label: "Purple",
49
+ value: "#a855f7"
50
+ },
51
+ teal: {
52
+ label: "Teal",
53
+ value: "#14b8a6"
54
+ },
55
+ prussianBlue: {
56
+ label: "Prussian Blue",
57
+ value: "#1e3a5f"
58
+ },
59
+ green: {
60
+ label: "Green",
61
+ value: "#22c55e"
62
+ },
63
+ amber: {
64
+ label: "Amber",
65
+ value: "#f59e0b"
66
+ },
67
+ mix: {
68
+ label: "Mix (Per System)",
69
+ value: "mix"
70
+ }
12
71
  };
13
- const SPACE_SYSTEM_COLORS = {
14
- // === Telemetry & Data ===
15
- "telemetry": "#00c8ff",
16
- "data": "#00c8ff",
17
- "preview": "#00c8ff",
18
- "stream": "#00c8ff",
19
- // === Power Systems ===
20
- "power": "#22c55e",
21
- "battery": "#22c55e",
22
- "solar": "#22c55e",
23
- "voltage": "#22c55e",
24
- "energy": "#22c55e",
25
- // === Thermal Systems ===
26
- "thermal": "#f59e0b",
27
- "temperature": "#f59e0b",
28
- "heatmap": "#f59e0b",
29
- "heater": "#f59e0b",
30
- // === Attitude & Control ===
31
- "attitude": "#a855f7",
32
- "control": "#a855f7",
33
- "orientation": "#a855f7",
34
- "pointing": "#a855f7",
35
- "gyro": "#a855f7",
36
- // === Communications ===
37
- "spectrum": "#4d7cff",
38
- "link": "#4d7cff",
39
- "rf": "#4d7cff",
40
- "downlink": "#4d7cff",
41
- "uplink": "#4d7cff",
42
- "packet": "#4d7cff",
43
- "antenna": "#4d7cff",
44
- "comm": "#4d7cff",
45
- // === Navigation & Orbit ===
46
- "orbit": "#14b8a6",
47
- "eclipse": "#14b8a6",
48
- "polar": "#14b8a6",
49
- "heliocentric": "#14b8a6",
50
- "maneuver": "#14b8a6",
51
- "contact": "#14b8a6",
52
- "ground": "#14b8a6",
53
- "pass": "#14b8a6",
54
- // === Sensors & Instruments ===
55
- "sensor": "#00c8ff",
56
- "star": "#00c8ff",
57
- "tracker": "#00c8ff",
58
- "scatter": "#00c8ff",
59
- "payload": "#00c8ff",
60
- // === Health & Status ===
61
- "health": "#22c55e",
62
- "gauge": "#22c55e",
63
- "subsystem": "#22c55e",
64
- "status": "#22c55e",
65
- // === Analytics & Visualization ===
66
- "sankey": "#a855f7",
67
- "treemap": "#4d7cff",
68
- "sunburst": "#14b8a6",
69
- "parallel": "#f59e0b",
70
- "radar": "#00c8ff",
71
- "graph": "#a855f7",
72
- "candlestick": "#f59e0b",
73
- "histogram": "#00c8ff",
74
- "pie": "#a855f7",
75
- "donut": "#a855f7",
76
- "bubble": "#14b8a6",
77
- "rose": "#f59e0b",
78
- // === 3D Visualizations ===
79
- "3d": "#4d7cff",
80
- "scatter3d": "#00c8ff",
81
- "bar3d": "#22c55e",
82
- "surface3d": "#f59e0b",
83
- "lines3d": "#a855f7",
84
- "debris": "#f59e0b",
85
- "constellation": "#4d7cff",
86
- "collision": "#f59e0b",
87
- "satellite": "#4d7cff",
88
- // === Default ===
89
- "default": "#00c8ff"
72
+ /**
73
+ * Space system keyword accent color mapping
74
+ * Used in 'mix' mode to automatically assign colors based on content
75
+ */
76
+ var SPACE_SYSTEM_COLORS = {
77
+ telemetry: "#00c8ff",
78
+ data: "#00c8ff",
79
+ preview: "#00c8ff",
80
+ stream: "#00c8ff",
81
+ power: "#22c55e",
82
+ battery: "#22c55e",
83
+ solar: "#22c55e",
84
+ voltage: "#22c55e",
85
+ energy: "#22c55e",
86
+ thermal: "#f59e0b",
87
+ temperature: "#f59e0b",
88
+ heatmap: "#f59e0b",
89
+ heater: "#f59e0b",
90
+ attitude: "#a855f7",
91
+ control: "#a855f7",
92
+ orientation: "#a855f7",
93
+ pointing: "#a855f7",
94
+ gyro: "#a855f7",
95
+ spectrum: "#4d7cff",
96
+ link: "#4d7cff",
97
+ rf: "#4d7cff",
98
+ downlink: "#4d7cff",
99
+ uplink: "#4d7cff",
100
+ packet: "#4d7cff",
101
+ antenna: "#4d7cff",
102
+ comm: "#4d7cff",
103
+ orbit: "#14b8a6",
104
+ eclipse: "#14b8a6",
105
+ polar: "#14b8a6",
106
+ heliocentric: "#14b8a6",
107
+ maneuver: "#14b8a6",
108
+ contact: "#14b8a6",
109
+ ground: "#14b8a6",
110
+ pass: "#14b8a6",
111
+ sensor: "#00c8ff",
112
+ star: "#00c8ff",
113
+ tracker: "#00c8ff",
114
+ scatter: "#00c8ff",
115
+ payload: "#00c8ff",
116
+ health: "#22c55e",
117
+ gauge: "#22c55e",
118
+ subsystem: "#22c55e",
119
+ status: "#22c55e",
120
+ sankey: "#a855f7",
121
+ treemap: "#4d7cff",
122
+ sunburst: "#14b8a6",
123
+ parallel: "#f59e0b",
124
+ radar: "#00c8ff",
125
+ graph: "#a855f7",
126
+ candlestick: "#f59e0b",
127
+ histogram: "#00c8ff",
128
+ pie: "#a855f7",
129
+ donut: "#a855f7",
130
+ bubble: "#14b8a6",
131
+ rose: "#f59e0b",
132
+ "3d": "#4d7cff",
133
+ scatter3d: "#00c8ff",
134
+ bar3d: "#22c55e",
135
+ surface3d: "#f59e0b",
136
+ lines3d: "#a855f7",
137
+ debris: "#f59e0b",
138
+ constellation: "#4d7cff",
139
+ collision: "#f59e0b",
140
+ satellite: "#4d7cff",
141
+ default: "#00c8ff"
90
142
  };
143
+ /**
144
+ * Get accent color based on title/content and accent mode
145
+ *
146
+ * @param title - Content title or description to analyze
147
+ * @param accentMode - Current accent mode (specific color or 'mix')
148
+ * @returns Hex color string or undefined
149
+ *
150
+ * @example
151
+ * ```tsx
152
+ * getSystemAccentColor('Power Systems Overview', 'mix') // '#22c55e'
153
+ * getSystemAccentColor('Power Systems', 'purple') // '#a855f7'
154
+ * ```
155
+ */
91
156
  function getSystemAccentColor(title, accentMode) {
92
- if (accentMode !== "mix") {
93
- return CARD_ACCENT_COLORS[accentMode].value;
94
- }
95
- const lowerTitle = title.toLowerCase();
96
- for (const [keyword, color] of Object.entries(SPACE_SYSTEM_COLORS)) {
97
- if (lowerTitle.includes(keyword)) {
98
- return color;
99
- }
100
- }
101
- return SPACE_SYSTEM_COLORS.default;
157
+ if (accentMode !== "mix") return CARD_ACCENT_COLORS[accentMode].value;
158
+ const lowerTitle = title.toLowerCase();
159
+ for (const [keyword, color] of Object.entries(SPACE_SYSTEM_COLORS)) if (lowerTitle.includes(keyword)) return color;
160
+ return SPACE_SYSTEM_COLORS.default;
102
161
  }
162
+ /**
163
+ * Get all accent color options for building UI selectors
164
+ */
103
165
  function getAccentColorOptions() {
104
- return Object.entries(CARD_ACCENT_COLORS).map(([key, config]) => ({
105
- key,
106
- label: config.label,
107
- value: config.value
108
- }));
166
+ return Object.entries(CARD_ACCENT_COLORS).map(([key, config]) => ({
167
+ key,
168
+ label: config.label,
169
+ value: config.value
170
+ }));
109
171
  }
110
- const CardAccentContext = createContext({
111
- accentMode: "mix",
112
- getAccentColor: () => void 0,
113
- accentOptions: getAccentColorOptions()
172
+ var CardAccentContext = createContext({
173
+ accentMode: "mix",
174
+ getAccentColor: () => void 0,
175
+ accentOptions: getAccentColorOptions()
114
176
  });
115
- function CardAccentProvider({
116
- accentMode = "mix",
117
- children
118
- }) {
119
- const value = useMemo(() => ({
120
- accentMode,
121
- getAccentColor: (title) => getSystemAccentColor(title, accentMode),
122
- accentOptions: getAccentColorOptions()
123
- }), [accentMode]);
124
- return /* @__PURE__ */ jsx(CardAccentContext.Provider, { value, children });
177
+ /**
178
+ * Provider for card accent context
179
+ * Wrap your app or section to provide consistent accent coloring
180
+ */
181
+ function CardAccentProvider({ accentMode = "mix", children }) {
182
+ const value = useMemo(() => ({
183
+ accentMode,
184
+ getAccentColor: (title) => getSystemAccentColor(title, accentMode),
185
+ accentOptions: getAccentColorOptions()
186
+ }), [accentMode]);
187
+ return /* @__PURE__ */ jsx(CardAccentContext.Provider, {
188
+ value,
189
+ children
190
+ });
125
191
  }
192
+ /**
193
+ * Hook to access card accent context
194
+ *
195
+ * @example
196
+ * ```tsx
197
+ * const { getAccentColor, accentMode } = useCardAccent();
198
+ * <Container accentColor={getAccentColor('Power Chart')} />
199
+ * ```
200
+ */
126
201
  function useCardAccent() {
127
- return useContext(CardAccentContext);
202
+ return useContext(CardAccentContext);
128
203
  }
129
- export {
130
- CARD_ACCENT_COLORS,
131
- CardAccentProvider,
132
- SPACE_SYSTEM_COLORS,
133
- getAccentColorOptions,
134
- getSystemAccentColor,
135
- useCardAccent
136
- };
137
- //# sourceMappingURL=cardAccent.js.map
204
+ //#endregion
205
+ export { CARD_ACCENT_COLORS, CardAccentProvider, CardAccentProvider as default, SPACE_SYSTEM_COLORS, getAccentColorOptions, getSystemAccentColor, useCardAccent };
206
+
207
+ //# sourceMappingURL=cardAccent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cardAccent.js","sources":["../../../src/react/theme/cardAccent.tsx"],"sourcesContent":["/**\r\n * @zendir/ui - Card Accent System\r\n * \r\n * Provides accent color configuration for cards and containers in space operations UIs.\r\n * Maps space system domains to appropriate accent colors for visual organization.\r\n * \r\n * Features:\r\n * - Predefined accent colors for common use cases\r\n * - Space system keyword → color mapping for auto-coloring\r\n * - Mix mode for automatic per-domain coloring\r\n * - React context and hook for easy integration\r\n * \r\n * @example\r\n * ```tsx\r\n * import { \r\n * CardAccentProvider, \r\n * useCardAccent, \r\n * getSystemAccentColor \r\n * } from '@zendir/ui';\r\n * \r\n * // Wrap your app with the provider\r\n * <CardAccentProvider accentMode=\"mix\">\r\n * <MyApp />\r\n * </CardAccentProvider>\r\n * \r\n * // Use in components\r\n * const { getAccentColor } = useCardAccent();\r\n * <Container accentColor={getAccentColor('Power Systems')} />\r\n * ```\r\n */\r\n\r\nimport React, { createContext, useContext, useMemo, type ReactNode } from 'react';\r\n\r\n// =============================================================================\r\n// Types\r\n// =============================================================================\r\n\r\nexport type CardAccentKey = \r\n | 'cyan'\r\n | 'electric' \r\n | 'purple'\r\n | 'teal'\r\n | 'prussianBlue'\r\n | 'green'\r\n | 'amber'\r\n | 'mix';\r\n\r\nexport interface CardAccentColor {\r\n /** Display label */\r\n label: string;\r\n /** Hex color value (or 'mix' for automatic) */\r\n value: string;\r\n}\r\n\r\n// =============================================================================\r\n// Accent Color Definitions\r\n// =============================================================================\r\n\r\n/**\r\n * Predefined card accent colors\r\n * These are optimized for dark themes and space operations UIs\r\n */\r\nexport const CARD_ACCENT_COLORS: Record<CardAccentKey, CardAccentColor> = {\r\n cyan: { label: 'Cyan', value: '#00c8ff' },\r\n electric: { label: 'Electric', value: '#4d7cff' },\r\n purple: { label: 'Purple', value: '#a855f7' },\r\n teal: { label: 'Teal', value: '#14b8a6' },\r\n prussianBlue: { label: 'Prussian Blue', value: '#1e3a5f' },\r\n green: { label: 'Green', value: '#22c55e' },\r\n amber: { label: 'Amber', value: '#f59e0b' },\r\n mix: { label: 'Mix (Per System)', value: 'mix' },\r\n} as const;\r\n\r\n/**\r\n * Space system keyword → accent color mapping\r\n * Used in 'mix' mode to automatically assign colors based on content\r\n */\r\nexport const SPACE_SYSTEM_COLORS: Record<string, string> = {\r\n // === Telemetry & Data ===\r\n 'telemetry': '#00c8ff',\r\n 'data': '#00c8ff',\r\n 'preview': '#00c8ff',\r\n 'stream': '#00c8ff',\r\n \r\n // === Power Systems ===\r\n 'power': '#22c55e',\r\n 'battery': '#22c55e',\r\n 'solar': '#22c55e',\r\n 'voltage': '#22c55e',\r\n 'energy': '#22c55e',\r\n \r\n // === Thermal Systems ===\r\n 'thermal': '#f59e0b',\r\n 'temperature': '#f59e0b',\r\n 'heatmap': '#f59e0b',\r\n 'heater': '#f59e0b',\r\n \r\n // === Attitude & Control ===\r\n 'attitude': '#a855f7',\r\n 'control': '#a855f7',\r\n 'orientation': '#a855f7',\r\n 'pointing': '#a855f7',\r\n 'gyro': '#a855f7',\r\n \r\n // === Communications ===\r\n 'spectrum': '#4d7cff',\r\n 'link': '#4d7cff',\r\n 'rf': '#4d7cff',\r\n 'downlink': '#4d7cff',\r\n 'uplink': '#4d7cff',\r\n 'packet': '#4d7cff',\r\n 'antenna': '#4d7cff',\r\n 'comm': '#4d7cff',\r\n \r\n // === Navigation & Orbit ===\r\n 'orbit': '#14b8a6',\r\n 'eclipse': '#14b8a6',\r\n 'polar': '#14b8a6',\r\n 'heliocentric': '#14b8a6',\r\n 'maneuver': '#14b8a6',\r\n 'contact': '#14b8a6',\r\n 'ground': '#14b8a6',\r\n 'pass': '#14b8a6',\r\n \r\n // === Sensors & Instruments ===\r\n 'sensor': '#00c8ff',\r\n 'star': '#00c8ff',\r\n 'tracker': '#00c8ff',\r\n 'scatter': '#00c8ff',\r\n 'payload': '#00c8ff',\r\n \r\n // === Health & Status ===\r\n 'health': '#22c55e',\r\n 'gauge': '#22c55e',\r\n 'subsystem': '#22c55e',\r\n 'status': '#22c55e',\r\n \r\n // === Analytics & Visualization ===\r\n 'sankey': '#a855f7',\r\n 'treemap': '#4d7cff',\r\n 'sunburst': '#14b8a6',\r\n 'parallel': '#f59e0b',\r\n 'radar': '#00c8ff',\r\n 'graph': '#a855f7',\r\n 'candlestick': '#f59e0b',\r\n 'histogram': '#00c8ff',\r\n 'pie': '#a855f7',\r\n 'donut': '#a855f7',\r\n 'bubble': '#14b8a6',\r\n 'rose': '#f59e0b',\r\n \r\n // === 3D Visualizations ===\r\n '3d': '#4d7cff',\r\n 'scatter3d': '#00c8ff',\r\n 'bar3d': '#22c55e',\r\n 'surface3d': '#f59e0b',\r\n 'lines3d': '#a855f7',\r\n 'debris': '#f59e0b',\r\n 'constellation': '#4d7cff',\r\n 'collision': '#f59e0b',\r\n 'satellite': '#4d7cff',\r\n \r\n // === Default ===\r\n 'default': '#00c8ff',\r\n} as const;\r\n\r\n// =============================================================================\r\n// Utility Functions\r\n// =============================================================================\r\n\r\n/**\r\n * Get accent color based on title/content and accent mode\r\n * \r\n * @param title - Content title or description to analyze\r\n * @param accentMode - Current accent mode (specific color or 'mix')\r\n * @returns Hex color string or undefined\r\n * \r\n * @example\r\n * ```tsx\r\n * getSystemAccentColor('Power Systems Overview', 'mix') // '#22c55e'\r\n * getSystemAccentColor('Power Systems', 'purple') // '#a855f7'\r\n * ```\r\n */\r\nexport function getSystemAccentColor(\r\n title: string, \r\n accentMode: CardAccentKey\r\n): string | undefined {\r\n if (accentMode !== 'mix') {\r\n return CARD_ACCENT_COLORS[accentMode].value;\r\n }\r\n \r\n const lowerTitle = title.toLowerCase();\r\n for (const [keyword, color] of Object.entries(SPACE_SYSTEM_COLORS)) {\r\n if (lowerTitle.includes(keyword)) {\r\n return color;\r\n }\r\n }\r\n return SPACE_SYSTEM_COLORS.default;\r\n}\r\n\r\n/**\r\n * Get all accent color options for building UI selectors\r\n */\r\nexport function getAccentColorOptions(): Array<{ key: CardAccentKey; label: string; value: string }> {\r\n return Object.entries(CARD_ACCENT_COLORS).map(([key, config]) => ({\r\n key: key as CardAccentKey,\r\n label: config.label,\r\n value: config.value,\r\n }));\r\n}\r\n\r\n// =============================================================================\r\n// React Context & Provider\r\n// =============================================================================\r\n\r\nexport interface CardAccentContextValue {\r\n /** Current accent mode */\r\n accentMode: CardAccentKey;\r\n /** Get accent color for a given title/content */\r\n getAccentColor: (title: string) => string | undefined;\r\n /** All available accent options */\r\n accentOptions: Array<{ key: CardAccentKey; label: string; value: string }>;\r\n}\r\n\r\nconst CardAccentContext = createContext<CardAccentContextValue>({\r\n accentMode: 'mix',\r\n getAccentColor: () => undefined,\r\n accentOptions: getAccentColorOptions(),\r\n});\r\n\r\nexport interface CardAccentProviderProps {\r\n /** Accent mode to use */\r\n accentMode?: CardAccentKey;\r\n /** Children */\r\n children: ReactNode;\r\n}\r\n\r\n/**\r\n * Provider for card accent context\r\n * Wrap your app or section to provide consistent accent coloring\r\n */\r\nexport function CardAccentProvider({\r\n accentMode = 'mix',\r\n children,\r\n}: CardAccentProviderProps): React.ReactElement {\r\n const value = useMemo((): CardAccentContextValue => ({\r\n accentMode,\r\n getAccentColor: (title: string) => getSystemAccentColor(title, accentMode),\r\n accentOptions: getAccentColorOptions(),\r\n }), [accentMode]);\r\n\r\n return (\r\n <CardAccentContext.Provider value={value}>\r\n {children}\r\n </CardAccentContext.Provider>\r\n );\r\n}\r\n\r\n/**\r\n * Hook to access card accent context\r\n * \r\n * @example\r\n * ```tsx\r\n * const { getAccentColor, accentMode } = useCardAccent();\r\n * <Container accentColor={getAccentColor('Power Chart')} />\r\n * ```\r\n */\r\nexport function useCardAccent(): CardAccentContextValue {\r\n return useContext(CardAccentContext);\r\n}\r\n\r\nexport default CardAccentProvider;\r\n"],"names":[],"mappings":";;AA8DO,MAAM,qBAA6D;AAAA,EACxE,MAAM,EAAE,OAAO,QAAQ,OAAO,UAAA;AAAA,EAC9B,UAAU,EAAE,OAAO,YAAY,OAAO,UAAA;AAAA,EACtC,QAAQ,EAAE,OAAO,UAAU,OAAO,UAAA;AAAA,EAClC,MAAM,EAAE,OAAO,QAAQ,OAAO,UAAA;AAAA,EAC9B,cAAc,EAAE,OAAO,iBAAiB,OAAO,UAAA;AAAA,EAC/C,OAAO,EAAE,OAAO,SAAS,OAAO,UAAA;AAAA,EAChC,OAAO,EAAE,OAAO,SAAS,OAAO,UAAA;AAAA,EAChC,KAAK,EAAE,OAAO,oBAAoB,OAAO,MAAA;AAC3C;AAMO,MAAM,sBAA8C;AAAA;AAAA,EAEzD,aAAa;AAAA,EACb,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,UAAU;AAAA;AAAA,EAGV,SAAS;AAAA,EACT,WAAW;AAAA,EACX,SAAS;AAAA,EACT,WAAW;AAAA,EACX,UAAU;AAAA;AAAA,EAGV,WAAW;AAAA,EACX,eAAe;AAAA,EACf,WAAW;AAAA,EACX,UAAU;AAAA;AAAA,EAGV,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,eAAe;AAAA,EACf,YAAY;AAAA,EACZ,QAAQ;AAAA;AAAA,EAGR,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,UAAU;AAAA,EACV,WAAW;AAAA,EACX,QAAQ;AAAA;AAAA,EAGR,SAAS;AAAA,EACT,WAAW;AAAA,EACX,SAAS;AAAA,EACT,gBAAgB;AAAA,EAChB,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,UAAU;AAAA,EACV,QAAQ;AAAA;AAAA,EAGR,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,WAAW;AAAA,EACX,WAAW;AAAA;AAAA,EAGX,UAAU;AAAA,EACV,SAAS;AAAA,EACT,aAAa;AAAA,EACb,UAAU;AAAA;AAAA,EAGV,UAAU;AAAA,EACV,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,SAAS;AAAA,EACT,eAAe;AAAA,EACf,aAAa;AAAA,EACb,OAAO;AAAA,EACP,SAAS;AAAA,EACT,UAAU;AAAA,EACV,QAAQ;AAAA;AAAA,EAGR,MAAM;AAAA,EACN,aAAa;AAAA,EACb,SAAS;AAAA,EACT,aAAa;AAAA,EACb,WAAW;AAAA,EACX,UAAU;AAAA,EACV,iBAAiB;AAAA,EACjB,aAAa;AAAA,EACb,aAAa;AAAA;AAAA,EAGb,WAAW;AACb;AAmBO,SAAS,qBACd,OACA,YACoB;AACpB,MAAI,eAAe,OAAO;AACxB,WAAO,mBAAmB,UAAU,EAAE;AAAA,EACxC;AAEA,QAAM,aAAa,MAAM,YAAA;AACzB,aAAW,CAAC,SAAS,KAAK,KAAK,OAAO,QAAQ,mBAAmB,GAAG;AAClE,QAAI,WAAW,SAAS,OAAO,GAAG;AAChC,aAAO;AAAA,IACT;AAAA,EACF;AACA,SAAO,oBAAoB;AAC7B;AAKO,SAAS,wBAAqF;AACnG,SAAO,OAAO,QAAQ,kBAAkB,EAAE,IAAI,CAAC,CAAC,KAAK,MAAM,OAAO;AAAA,IAChE;AAAA,IACA,OAAO,OAAO;AAAA,IACd,OAAO,OAAO;AAAA,EAAA,EACd;AACJ;AAeA,MAAM,oBAAoB,cAAsC;AAAA,EAC9D,YAAY;AAAA,EACZ,gBAAgB,MAAM;AAAA,EACtB,eAAe,sBAAA;AACjB,CAAC;AAaM,SAAS,mBAAmB;AAAA,EACjC,aAAa;AAAA,EACb;AACF,GAAgD;AAC9C,QAAM,QAAQ,QAAQ,OAA+B;AAAA,IACnD;AAAA,IACA,gBAAgB,CAAC,UAAkB,qBAAqB,OAAO,UAAU;AAAA,IACzE,eAAe,sBAAA;AAAA,EAAsB,IACnC,CAAC,UAAU,CAAC;AAEhB,SACE,oBAAC,kBAAkB,UAAlB,EAA2B,OACzB,SAAA,CACH;AAEJ;AAWO,SAAS,gBAAwC;AACtD,SAAO,WAAW,iBAAiB;AACrC;"}
1
+ {"version":3,"file":"cardAccent.js","names":[],"sources":["../../../src/react/theme/cardAccent.tsx"],"sourcesContent":["/**\r\n * @zendir/ui - Card Accent System\r\n *\r\n * Provides accent color configuration for cards and containers in space operations UIs.\r\n * Maps space system domains to appropriate accent colors for visual organization.\r\n *\r\n * Features:\r\n * - Predefined accent colors for common use cases\r\n * - Space system keyword → color mapping for auto-coloring\r\n * - Mix mode for automatic per-domain coloring\r\n * - React context and hook for easy integration\r\n *\r\n * @example\r\n * ```tsx\r\n * import {\r\n * CardAccentProvider,\r\n * useCardAccent,\r\n * getSystemAccentColor\r\n * } from '@zendir/ui';\r\n *\r\n * // Wrap your app with the provider\r\n * <CardAccentProvider accentMode=\"mix\">\r\n * <MyApp />\r\n * </CardAccentProvider>\r\n *\r\n * // Use in components\r\n * const { getAccentColor } = useCardAccent();\r\n * <Container accentColor={getAccentColor('Power Systems')} />\r\n * ```\r\n */\r\n\r\nimport React, {\r\n createContext,\r\n useContext,\r\n useMemo,\r\n type ReactNode,\r\n} from \"react\";\r\n\r\n// =============================================================================\r\n// Types\r\n// =============================================================================\r\n\r\nexport type CardAccentKey =\r\n | \"cyan\"\r\n | \"electric\"\r\n | \"purple\"\r\n | \"teal\"\r\n | \"prussianBlue\"\r\n | \"green\"\r\n | \"amber\"\r\n | \"mix\";\r\n\r\nexport interface CardAccentColor {\r\n /** Display label */\r\n label: string;\r\n /** Hex color value (or 'mix' for automatic) */\r\n value: string;\r\n}\r\n\r\n// =============================================================================\r\n// Accent Color Definitions\r\n// =============================================================================\r\n\r\n/**\r\n * Predefined card accent colors\r\n * These are optimized for dark themes and space operations UIs\r\n */\r\nexport const CARD_ACCENT_COLORS: Record<CardAccentKey, CardAccentColor> = {\r\n cyan: { label: \"Cyan\", value: \"#00c8ff\" },\r\n electric: { label: \"Electric\", value: \"#4d7cff\" },\r\n purple: { label: \"Purple\", value: \"#a855f7\" },\r\n teal: { label: \"Teal\", value: \"#14b8a6\" },\r\n prussianBlue: { label: \"Prussian Blue\", value: \"#1e3a5f\" },\r\n green: { label: \"Green\", value: \"#22c55e\" },\r\n amber: { label: \"Amber\", value: \"#f59e0b\" },\r\n mix: { label: \"Mix (Per System)\", value: \"mix\" },\r\n} as const;\r\n\r\n/**\r\n * Space system keyword → accent color mapping\r\n * Used in 'mix' mode to automatically assign colors based on content\r\n */\r\nexport const SPACE_SYSTEM_COLORS: Record<string, string> = {\r\n // === Telemetry & Data ===\r\n telemetry: \"#00c8ff\",\r\n data: \"#00c8ff\",\r\n preview: \"#00c8ff\",\r\n stream: \"#00c8ff\",\r\n\r\n // === Power Systems ===\r\n power: \"#22c55e\",\r\n battery: \"#22c55e\",\r\n solar: \"#22c55e\",\r\n voltage: \"#22c55e\",\r\n energy: \"#22c55e\",\r\n\r\n // === Thermal Systems ===\r\n thermal: \"#f59e0b\",\r\n temperature: \"#f59e0b\",\r\n heatmap: \"#f59e0b\",\r\n heater: \"#f59e0b\",\r\n\r\n // === Attitude & Control ===\r\n attitude: \"#a855f7\",\r\n control: \"#a855f7\",\r\n orientation: \"#a855f7\",\r\n pointing: \"#a855f7\",\r\n gyro: \"#a855f7\",\r\n\r\n // === Communications ===\r\n spectrum: \"#4d7cff\",\r\n link: \"#4d7cff\",\r\n rf: \"#4d7cff\",\r\n downlink: \"#4d7cff\",\r\n uplink: \"#4d7cff\",\r\n packet: \"#4d7cff\",\r\n antenna: \"#4d7cff\",\r\n comm: \"#4d7cff\",\r\n\r\n // === Navigation & Orbit ===\r\n orbit: \"#14b8a6\",\r\n eclipse: \"#14b8a6\",\r\n polar: \"#14b8a6\",\r\n heliocentric: \"#14b8a6\",\r\n maneuver: \"#14b8a6\",\r\n contact: \"#14b8a6\",\r\n ground: \"#14b8a6\",\r\n pass: \"#14b8a6\",\r\n\r\n // === Sensors & Instruments ===\r\n sensor: \"#00c8ff\",\r\n star: \"#00c8ff\",\r\n tracker: \"#00c8ff\",\r\n scatter: \"#00c8ff\",\r\n payload: \"#00c8ff\",\r\n\r\n // === Health & Status ===\r\n health: \"#22c55e\",\r\n gauge: \"#22c55e\",\r\n subsystem: \"#22c55e\",\r\n status: \"#22c55e\",\r\n\r\n // === Analytics & Visualization ===\r\n sankey: \"#a855f7\",\r\n treemap: \"#4d7cff\",\r\n sunburst: \"#14b8a6\",\r\n parallel: \"#f59e0b\",\r\n radar: \"#00c8ff\",\r\n graph: \"#a855f7\",\r\n candlestick: \"#f59e0b\",\r\n histogram: \"#00c8ff\",\r\n pie: \"#a855f7\",\r\n donut: \"#a855f7\",\r\n bubble: \"#14b8a6\",\r\n rose: \"#f59e0b\",\r\n\r\n // === 3D Visualizations ===\r\n \"3d\": \"#4d7cff\",\r\n scatter3d: \"#00c8ff\",\r\n bar3d: \"#22c55e\",\r\n surface3d: \"#f59e0b\",\r\n lines3d: \"#a855f7\",\r\n debris: \"#f59e0b\",\r\n constellation: \"#4d7cff\",\r\n collision: \"#f59e0b\",\r\n satellite: \"#4d7cff\",\r\n\r\n // === Default ===\r\n default: \"#00c8ff\",\r\n} as const;\r\n\r\n// =============================================================================\r\n// Utility Functions\r\n// =============================================================================\r\n\r\n/**\r\n * Get accent color based on title/content and accent mode\r\n *\r\n * @param title - Content title or description to analyze\r\n * @param accentMode - Current accent mode (specific color or 'mix')\r\n * @returns Hex color string or undefined\r\n *\r\n * @example\r\n * ```tsx\r\n * getSystemAccentColor('Power Systems Overview', 'mix') // '#22c55e'\r\n * getSystemAccentColor('Power Systems', 'purple') // '#a855f7'\r\n * ```\r\n */\r\nexport function getSystemAccentColor(\r\n title: string,\r\n accentMode: CardAccentKey,\r\n): string | undefined {\r\n if (accentMode !== \"mix\") {\r\n return CARD_ACCENT_COLORS[accentMode].value;\r\n }\r\n\r\n const lowerTitle = title.toLowerCase();\r\n for (const [keyword, color] of Object.entries(SPACE_SYSTEM_COLORS)) {\r\n if (lowerTitle.includes(keyword)) {\r\n return color;\r\n }\r\n }\r\n return SPACE_SYSTEM_COLORS.default;\r\n}\r\n\r\n/**\r\n * Get all accent color options for building UI selectors\r\n */\r\nexport function getAccentColorOptions(): Array<{\r\n key: CardAccentKey;\r\n label: string;\r\n value: string;\r\n}> {\r\n return Object.entries(CARD_ACCENT_COLORS).map(([key, config]) => ({\r\n key: key as CardAccentKey,\r\n label: config.label,\r\n value: config.value,\r\n }));\r\n}\r\n\r\n// =============================================================================\r\n// React Context & Provider\r\n// =============================================================================\r\n\r\nexport interface CardAccentContextValue {\r\n /** Current accent mode */\r\n accentMode: CardAccentKey;\r\n /** Get accent color for a given title/content */\r\n getAccentColor: (title: string) => string | undefined;\r\n /** All available accent options */\r\n accentOptions: Array<{ key: CardAccentKey; label: string; value: string }>;\r\n}\r\n\r\nconst CardAccentContext = createContext<CardAccentContextValue>({\r\n accentMode: \"mix\",\r\n getAccentColor: () => undefined,\r\n accentOptions: getAccentColorOptions(),\r\n});\r\n\r\nexport interface CardAccentProviderProps {\r\n /** Accent mode to use */\r\n accentMode?: CardAccentKey;\r\n /** Children */\r\n children: ReactNode;\r\n}\r\n\r\n/**\r\n * Provider for card accent context\r\n * Wrap your app or section to provide consistent accent coloring\r\n */\r\nexport function CardAccentProvider({\r\n accentMode = \"mix\",\r\n children,\r\n}: CardAccentProviderProps): React.ReactElement {\r\n const value = useMemo(\r\n (): CardAccentContextValue => ({\r\n accentMode,\r\n getAccentColor: (title: string) =>\r\n getSystemAccentColor(title, accentMode),\r\n accentOptions: getAccentColorOptions(),\r\n }),\r\n [accentMode],\r\n );\r\n\r\n return (\r\n <CardAccentContext.Provider value={value}>\r\n {children}\r\n </CardAccentContext.Provider>\r\n );\r\n}\r\n\r\n/**\r\n * Hook to access card accent context\r\n *\r\n * @example\r\n * ```tsx\r\n * const { getAccentColor, accentMode } = useCardAccent();\r\n * <Container accentColor={getAccentColor('Power Chart')} />\r\n * ```\r\n */\r\nexport function useCardAccent(): CardAccentContextValue {\r\n return useContext(CardAccentContext);\r\n}\r\n\r\nexport default CardAccentProvider;\r\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmEA,IAAa,qBAA6D;CACxE,MAAM;EAAE,OAAO;EAAQ,OAAO;CAAU;CACxC,UAAU;EAAE,OAAO;EAAY,OAAO;CAAU;CAChD,QAAQ;EAAE,OAAO;EAAU,OAAO;CAAU;CAC5C,MAAM;EAAE,OAAO;EAAQ,OAAO;CAAU;CACxC,cAAc;EAAE,OAAO;EAAiB,OAAO;CAAU;CACzD,OAAO;EAAE,OAAO;EAAS,OAAO;CAAU;CAC1C,OAAO;EAAE,OAAO;EAAS,OAAO;CAAU;CAC1C,KAAK;EAAE,OAAO;EAAoB,OAAO;CAAM;AACjD;;;;;AAMA,IAAa,sBAA8C;CAEzD,WAAW;CACX,MAAM;CACN,SAAS;CACT,QAAQ;CAGR,OAAO;CACP,SAAS;CACT,OAAO;CACP,SAAS;CACT,QAAQ;CAGR,SAAS;CACT,aAAa;CACb,SAAS;CACT,QAAQ;CAGR,UAAU;CACV,SAAS;CACT,aAAa;CACb,UAAU;CACV,MAAM;CAGN,UAAU;CACV,MAAM;CACN,IAAI;CACJ,UAAU;CACV,QAAQ;CACR,QAAQ;CACR,SAAS;CACT,MAAM;CAGN,OAAO;CACP,SAAS;CACT,OAAO;CACP,cAAc;CACd,UAAU;CACV,SAAS;CACT,QAAQ;CACR,MAAM;CAGN,QAAQ;CACR,MAAM;CACN,SAAS;CACT,SAAS;CACT,SAAS;CAGT,QAAQ;CACR,OAAO;CACP,WAAW;CACX,QAAQ;CAGR,QAAQ;CACR,SAAS;CACT,UAAU;CACV,UAAU;CACV,OAAO;CACP,OAAO;CACP,aAAa;CACb,WAAW;CACX,KAAK;CACL,OAAO;CACP,QAAQ;CACR,MAAM;CAGN,MAAM;CACN,WAAW;CACX,OAAO;CACP,WAAW;CACX,SAAS;CACT,QAAQ;CACR,eAAe;CACf,WAAW;CACX,WAAW;CAGX,SAAS;AACX;;;;;;;;;;;;;;AAmBA,SAAgB,qBACd,OACA,YACoB;CACpB,IAAI,eAAe,OACjB,OAAO,mBAAmB,WAAW,CAAC;CAGxC,MAAM,aAAa,MAAM,YAAY;CACrC,KAAK,MAAM,CAAC,SAAS,UAAU,OAAO,QAAQ,mBAAmB,GAC/D,IAAI,WAAW,SAAS,OAAO,GAC7B,OAAO;CAGX,OAAO,oBAAoB;AAC7B;;;;AAKA,SAAgB,wBAIb;CACD,OAAO,OAAO,QAAQ,kBAAkB,CAAC,CAAC,KAAK,CAAC,KAAK,aAAa;EAC3D;EACL,OAAO,OAAO;EACd,OAAO,OAAO;CAChB,EAAE;AACJ;AAeA,IAAM,oBAAoB,cAAsC;CAC9D,YAAY;CACZ,sBAAsB,KAAA;CACtB,eAAe,sBAAsB;AACvC,CAAC;;;;;AAaD,SAAgB,mBAAmB,EACjC,aAAa,OACb,YAC8C;CAC9C,MAAM,QAAQ,eACmB;EAC7B;EACA,iBAAiB,UACf,qBAAqB,OAAO,UAAU;EACxC,eAAe,sBAAsB;CACvC,IACA,CAAC,UAAU,CACb;CAEA,OACE,oBAAC,kBAAkB,UAAnB;EAAmC;EAChC;CACyB,CAAA;AAEhC;;;;;;;;;;AAWA,SAAgB,gBAAwC;CACtD,OAAO,WAAW,iBAAiB;AACrC"}
@@ -1,5 +1,4 @@
1
1
  import { ThemeVariant, ThemeMode } from './ThemeProvider';
2
-
3
2
  export interface ThemeConfig {
4
3
  /** Default theme variant */
5
4
  defaultTheme?: ThemeVariant;
@@ -1,30 +1,52 @@
1
- const DEFAULT_THEME_CONFIG = {
2
- defaultTheme: "hybrid",
3
- // Zen (Hybrid) is the default
4
- defaultMode: "dark",
5
- persist: true
1
+ //#region src/react/theme/config.ts
2
+ /**
3
+ * Default theme configuration
4
+ *
5
+ * Available themes:
6
+ * - 'hybrid' - Zen (Hybrid): default; Astro status colors with purple accents
7
+ * - 'astro' - Astro UX (U.S. Space Force) compliant theme
8
+ * - 'purple-hue' - Zen (Purple Hue) theme with modern aesthetics
9
+ * - 'transparent' / 'transparent-bold' / 'transparent-minimal' - Glassmorphic themes
10
+ */
11
+ var DEFAULT_THEME_CONFIG = {
12
+ defaultTheme: "hybrid",
13
+ defaultMode: "dark",
14
+ persist: true
6
15
  };
16
+ /**
17
+ * Get theme configuration from environment or use defaults
18
+ */
7
19
  function getThemeConfig() {
8
- if (typeof window !== "undefined") {
9
- const envTheme = window.__ZENDIR_UI_THEME__;
10
- if (envTheme === "astro" || envTheme === "purple-hue" || envTheme === "hybrid") {
11
- return {
12
- ...DEFAULT_THEME_CONFIG,
13
- defaultTheme: envTheme
14
- };
15
- }
16
- }
17
- return DEFAULT_THEME_CONFIG;
20
+ if (typeof window !== "undefined") {
21
+ const envTheme = window.__ZENDIR_UI_THEME__;
22
+ if (envTheme === "astro" || envTheme === "purple-hue" || envTheme === "hybrid" || envTheme === "nebula") return {
23
+ ...DEFAULT_THEME_CONFIG,
24
+ defaultTheme: envTheme
25
+ };
26
+ }
27
+ return DEFAULT_THEME_CONFIG;
18
28
  }
29
+ /**
30
+ * Set default theme at build/runtime
31
+ *
32
+ * @example
33
+ * ```tsx
34
+ * // In your app root
35
+ * import { setDefaultTheme } from '@zendir/ui/react/theme/config';
36
+ *
37
+ * // Zen (Hybrid) is the default; override if needed:
38
+ * setDefaultTheme('hybrid');
39
+ * setDefaultTheme('purple-hue');
40
+ * setDefaultTheme('astro');
41
+ * ```
42
+ */
19
43
  function setDefaultTheme(theme) {
20
- if (typeof window !== "undefined") {
21
- window.__ZENDIR_UI_THEME__ = theme;
22
- localStorage.setItem("zendir-ui-theme", theme);
23
- }
44
+ if (typeof window !== "undefined") {
45
+ window.__ZENDIR_UI_THEME__ = theme;
46
+ localStorage.setItem("zendir-ui-theme", theme);
47
+ }
24
48
  }
25
- export {
26
- DEFAULT_THEME_CONFIG,
27
- getThemeConfig,
28
- setDefaultTheme
29
- };
30
- //# sourceMappingURL=config.js.map
49
+ //#endregion
50
+ export { DEFAULT_THEME_CONFIG, getThemeConfig, setDefaultTheme };
51
+
52
+ //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sources":["../../../src/react/theme/config.ts"],"sourcesContent":["/**\n * @zendir/ui - Theme Configuration\n * \n * Easy configuration for default theme settings.\n * Import and use in your app root to set defaults.\n */\n\nimport type { ThemeVariant, ThemeMode } from './ThemeProvider';\n\nexport interface ThemeConfig {\n /** Default theme variant */\n defaultTheme?: ThemeVariant;\n /** Default theme mode */\n defaultMode?: ThemeMode;\n /** Persist theme selection to localStorage */\n persist?: boolean;\n}\n\n/**\n * Default theme configuration\n * \n * Available themes:\n * - 'hybrid' - Zen (Hybrid): default; Astro status colors with purple accents\n * - 'astro' - Astro UX (U.S. Space Force) compliant theme\n * - 'purple-hue' - Zen (Purple Hue) theme with modern aesthetics\n * - 'transparent' / 'transparent-bold' / 'transparent-minimal' - Glassmorphic themes\n */\nexport const DEFAULT_THEME_CONFIG: ThemeConfig = {\n defaultTheme: 'hybrid', // Zen (Hybrid) is the default\n defaultMode: 'dark',\n persist: true,\n};\n\n/**\n * Get theme configuration from environment or use defaults\n */\nexport function getThemeConfig(): ThemeConfig {\n // Allow override via environment variable or build-time config\n if (typeof window !== 'undefined') {\n const envTheme = (window as any).__ZENDIR_UI_THEME__;\n if (envTheme === 'astro' || envTheme === 'purple-hue' || envTheme === 'hybrid') {\n return {\n ...DEFAULT_THEME_CONFIG,\n defaultTheme: envTheme,\n };\n }\n }\n \n return DEFAULT_THEME_CONFIG;\n}\n\n/**\n * Set default theme at build/runtime\n * \n * @example\n * ```tsx\n * // In your app root\n * import { setDefaultTheme } from '@zendir/ui/react/theme/config';\n * \n * // Zen (Hybrid) is the default; override if needed:\n * setDefaultTheme('hybrid');\n * setDefaultTheme('purple-hue');\n * setDefaultTheme('astro');\n * ```\n */\nexport function setDefaultTheme(theme: ThemeVariant): void {\n if (typeof window !== 'undefined') {\n (window as any).__ZENDIR_UI_THEME__ = theme;\n // Also update localStorage if persist is enabled\n localStorage.setItem('zendir-ui-theme', theme);\n }\n}\n"],"names":[],"mappings":"AA2BO,MAAM,uBAAoC;AAAA,EAC/C,cAAc;AAAA;AAAA,EACd,aAAa;AAAA,EACb,SAAS;AACX;AAKO,SAAS,iBAA8B;AAE5C,MAAI,OAAO,WAAW,aAAa;AACjC,UAAM,WAAY,OAAe;AACjC,QAAI,aAAa,WAAW,aAAa,gBAAgB,aAAa,UAAU;AAC9E,aAAO;AAAA,QACL,GAAG;AAAA,QACH,cAAc;AAAA,MAAA;AAAA,IAElB;AAAA,EACF;AAEA,SAAO;AACT;AAgBO,SAAS,gBAAgB,OAA2B;AACzD,MAAI,OAAO,WAAW,aAAa;AAChC,WAAe,sBAAsB;AAEtC,iBAAa,QAAQ,mBAAmB,KAAK;AAAA,EAC/C;AACF;"}
1
+ {"version":3,"file":"config.js","names":[],"sources":["../../../src/react/theme/config.ts"],"sourcesContent":["/**\r\n * @zendir/ui - Theme Configuration\r\n *\r\n * Easy configuration for default theme settings.\r\n * Import and use in your app root to set defaults.\r\n */\r\n\r\nimport type { ThemeVariant, ThemeMode } from \"./ThemeProvider\";\r\n\r\nexport interface ThemeConfig {\r\n /** Default theme variant */\r\n defaultTheme?: ThemeVariant;\r\n /** Default theme mode */\r\n defaultMode?: ThemeMode;\r\n /** Persist theme selection to localStorage */\r\n persist?: boolean;\r\n}\r\n\r\n/**\r\n * Default theme configuration\r\n *\r\n * Available themes:\r\n * - 'hybrid' - Zen (Hybrid): default; Astro status colors with purple accents\r\n * - 'astro' - Astro UX (U.S. Space Force) compliant theme\r\n * - 'purple-hue' - Zen (Purple Hue) theme with modern aesthetics\r\n * - 'transparent' / 'transparent-bold' / 'transparent-minimal' - Glassmorphic themes\r\n */\r\nexport const DEFAULT_THEME_CONFIG: ThemeConfig = {\r\n defaultTheme: \"hybrid\", // Zen (Hybrid) is the default\r\n defaultMode: \"dark\",\r\n persist: true,\r\n};\r\n\r\n/**\r\n * Get theme configuration from environment or use defaults\r\n */\r\nexport function getThemeConfig(): ThemeConfig {\r\n // Allow override via environment variable or build-time config\r\n if (typeof window !== \"undefined\") {\r\n const envTheme = (window as any).__ZENDIR_UI_THEME__;\r\n if (\r\n envTheme === \"astro\" ||\r\n envTheme === \"purple-hue\" ||\r\n envTheme === \"hybrid\" ||\r\n envTheme === \"nebula\"\r\n ) {\r\n return {\r\n ...DEFAULT_THEME_CONFIG,\r\n defaultTheme: envTheme,\r\n };\r\n }\r\n }\r\n\r\n return DEFAULT_THEME_CONFIG;\r\n}\r\n\r\n/**\r\n * Set default theme at build/runtime\r\n *\r\n * @example\r\n * ```tsx\r\n * // In your app root\r\n * import { setDefaultTheme } from '@zendir/ui/react/theme/config';\r\n *\r\n * // Zen (Hybrid) is the default; override if needed:\r\n * setDefaultTheme('hybrid');\r\n * setDefaultTheme('purple-hue');\r\n * setDefaultTheme('astro');\r\n * ```\r\n */\r\nexport function setDefaultTheme(theme: ThemeVariant): void {\r\n if (typeof window !== \"undefined\") {\r\n (window as any).__ZENDIR_UI_THEME__ = theme;\r\n // Also update localStorage if persist is enabled\r\n localStorage.setItem(\"zendir-ui-theme\", theme);\r\n }\r\n}\r\n"],"mappings":";;;;;;;;;;AA2BA,IAAa,uBAAoC;CAC/C,cAAc;CACd,aAAa;CACb,SAAS;AACX;;;;AAKA,SAAgB,iBAA8B;CAE5C,IAAI,OAAO,WAAW,aAAa;EACjC,MAAM,WAAY,OAAe;EACjC,IACE,aAAa,WACb,aAAa,gBACb,aAAa,YACb,aAAa,UAEb,OAAO;GACL,GAAG;GACH,cAAc;EAChB;CAEJ;CAEA,OAAO;AACT;;;;;;;;;;;;;;;AAgBA,SAAgB,gBAAgB,OAA2B;CACzD,IAAI,OAAO,WAAW,aAAa;EACjC,OAAgB,sBAAsB;EAEtC,aAAa,QAAQ,mBAAmB,KAAK;CAC/C;AACF"}
@@ -1,9 +1,9 @@
1
1
  /**
2
2
  * @zendir/ui - Theme System
3
3
  */
4
- export { ThemeProvider, useTheme, useThemeTokens, useScrollbarStyles } from './ThemeProvider';
4
+ export { ThemeProvider, useTheme, useThemeTokens, useScrollbarStyles, } from './ThemeProvider';
5
5
  export type { ThemeVariant, ThemeMode, ThemeColors, ThemeTokens, ThemeContextValue, ThemeProviderProps, ThemeAnimation, ThemeFocus, LayoutTokens, BorderTokens, } from './ThemeProvider';
6
- export { DEFAULT_THEME_CONFIG, getThemeConfig, setDefaultTheme } from './config';
6
+ export { DEFAULT_THEME_CONFIG, getThemeConfig, setDefaultTheme, } from './config';
7
7
  export type { ThemeConfig } from './config';
8
8
  export { CardAccentProvider, useCardAccent, getSystemAccentColor, getAccentColorOptions, CARD_ACCENT_COLORS, SPACE_SYSTEM_COLORS, } from './cardAccent';
9
9
  export type { CardAccentKey, CardAccentColor, CardAccentContextValue, CardAccentProviderProps, } from './cardAccent';
@@ -1,19 +1,4 @@
1
1
  import { ThemeProvider, useScrollbarStyles, useTheme, useThemeTokens } from "./ThemeProvider.js";
2
2
  import { DEFAULT_THEME_CONFIG, getThemeConfig, setDefaultTheme } from "./config.js";
3
3
  import { CARD_ACCENT_COLORS, CardAccentProvider, SPACE_SYSTEM_COLORS, getAccentColorOptions, getSystemAccentColor, useCardAccent } from "./cardAccent.js";
4
- export {
5
- CARD_ACCENT_COLORS,
6
- CardAccentProvider,
7
- DEFAULT_THEME_CONFIG,
8
- SPACE_SYSTEM_COLORS,
9
- ThemeProvider,
10
- getAccentColorOptions,
11
- getSystemAccentColor,
12
- getThemeConfig,
13
- setDefaultTheme,
14
- useCardAccent,
15
- useScrollbarStyles,
16
- useTheme,
17
- useThemeTokens
18
- };
19
- //# sourceMappingURL=index.js.map
4
+ export { CARD_ACCENT_COLORS, CardAccentProvider, DEFAULT_THEME_CONFIG, SPACE_SYSTEM_COLORS, ThemeProvider, getAccentColorOptions, getSystemAccentColor, getThemeConfig, setDefaultTheme, useCardAccent, useScrollbarStyles, useTheme, useThemeTokens };