@zendir/ui 0.5.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (391) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/README.md +640 -631
  3. package/dist/_virtual/_rolldown/runtime.js +13 -0
  4. package/dist/index.js +17 -221
  5. package/dist/react/3d/CesiumCaptureSource.d.ts +0 -1
  6. package/dist/react/3d/CesiumCaptureSource.js +364 -283
  7. package/dist/react/3d/CesiumCaptureSource.js.map +1 -1
  8. package/dist/react/3d/ZenSpace3D.d.ts +2 -3
  9. package/dist/react/3d/ZenSpace3D.js +1681 -1237
  10. package/dist/react/3d/ZenSpace3D.js.map +1 -1
  11. package/dist/react/3d/ZenSpace3DCesium.d.ts +0 -1
  12. package/dist/react/3d/ZenSpace3DCesium.js +513 -560
  13. package/dist/react/3d/ZenSpace3DCesium.js.map +1 -1
  14. package/dist/react/3d/ZenSpace3DShaders.js +61 -66
  15. package/dist/react/3d/ZenSpace3DShaders.js.map +1 -1
  16. package/dist/react/3d/ZenSpace3DTypes.d.ts +19 -20
  17. package/dist/react/3d/ZenSpace3DUtils.d.ts +0 -1
  18. package/dist/react/3d/ZenSpace3DUtils.js +37 -24
  19. package/dist/react/3d/ZenSpace3DUtils.js.map +1 -1
  20. package/dist/react/3d/capturePngAnalysis.js +42 -36
  21. package/dist/react/3d/capturePngAnalysis.js.map +1 -1
  22. package/dist/react/3d/index.d.ts +3 -3
  23. package/dist/react/3d/index.js +5 -53
  24. package/dist/react/3d/threeLoader.d.ts +1 -1
  25. package/dist/react/3d/threeLoader.js +23 -18
  26. package/dist/react/3d/threeLoader.js.map +1 -1
  27. package/dist/react/astro/ClassificationBanner.d.ts +2 -3
  28. package/dist/react/astro/ClassificationBanner.js +95 -79
  29. package/dist/react/astro/ClassificationBanner.js.map +1 -1
  30. package/dist/react/astro/GlobalStatusBar.d.ts +0 -1
  31. package/dist/react/astro/GlobalStatusBar.js +157 -163
  32. package/dist/react/astro/GlobalStatusBar.js.map +1 -1
  33. package/dist/react/astro/MissionClock.d.ts +7 -8
  34. package/dist/react/astro/MissionClock.js +377 -400
  35. package/dist/react/astro/MissionClock.js.map +1 -1
  36. package/dist/react/astro/MonitoringIcon.d.ts +1 -2
  37. package/dist/react/astro/MonitoringIcon.js +422 -358
  38. package/dist/react/astro/MonitoringIcon.js.map +1 -1
  39. package/dist/react/astro/Notification.d.ts +1 -2
  40. package/dist/react/astro/Notification.js +229 -126
  41. package/dist/react/astro/Notification.js.map +1 -1
  42. package/dist/react/astro/Progress.d.ts +0 -1
  43. package/dist/react/astro/Progress.js +199 -141
  44. package/dist/react/astro/Progress.js.map +1 -1
  45. package/dist/react/astro/SimulationControls.d.ts +3 -4
  46. package/dist/react/astro/SimulationControls.js +596 -650
  47. package/dist/react/astro/SimulationControls.js.map +1 -1
  48. package/dist/react/astro/StatusIndicator.d.ts +0 -1
  49. package/dist/react/astro/StatusIndicator.js +236 -170
  50. package/dist/react/astro/StatusIndicator.js.map +1 -1
  51. package/dist/react/astro/UnifiedTimeline.d.ts +9 -10
  52. package/dist/react/astro/UnifiedTimeline.js +2345 -2392
  53. package/dist/react/astro/UnifiedTimeline.js.map +1 -1
  54. package/dist/react/astro/index.d.ts +5 -5
  55. package/dist/react/astro/index.js +1 -25
  56. package/dist/react/cards/AccessCard.d.ts +0 -1
  57. package/dist/react/cards/AccessCard.js +471 -405
  58. package/dist/react/cards/AccessCard.js.map +1 -1
  59. package/dist/react/cards/OrbitCard.d.ts +0 -1
  60. package/dist/react/cards/OrbitCard.js +487 -364
  61. package/dist/react/cards/OrbitCard.js.map +1 -1
  62. package/dist/react/cards/SpacecraftCard.d.ts +0 -1
  63. package/dist/react/cards/SpacecraftCard.js +813 -925
  64. package/dist/react/cards/SpacecraftCard.js.map +1 -1
  65. package/dist/react/cards/TelemetryCard.d.ts +0 -1
  66. package/dist/react/cards/TelemetryCard.js +1055 -732
  67. package/dist/react/cards/TelemetryCard.js.map +1 -1
  68. package/dist/react/cards/TelemetryStreamCard.d.ts +0 -1
  69. package/dist/react/cards/TelemetryStreamCard.js +323 -297
  70. package/dist/react/cards/TelemetryStreamCard.js.map +1 -1
  71. package/dist/react/cards/index.d.ts +1 -1
  72. package/dist/react/cards/index.js +1 -8
  73. package/dist/react/charts/GroundTrackMap.d.ts +6 -7
  74. package/dist/react/charts/GroundTrackMap.js +1377 -1256
  75. package/dist/react/charts/GroundTrackMap.js.map +1 -1
  76. package/dist/react/charts/GroundTrackMapLeaflet.d.ts +1 -2
  77. package/dist/react/charts/GroundTrackMapLeaflet.js +1065 -987
  78. package/dist/react/charts/GroundTrackMapLeaflet.js.map +1 -1
  79. package/dist/react/charts/groundTrackMapLeafletTiles.js +34 -25
  80. package/dist/react/charts/groundTrackMapLeafletTiles.js.map +1 -1
  81. package/dist/react/charts/groundTrackMapLeafletUtils.js +70 -61
  82. package/dist/react/charts/groundTrackMapLeafletUtils.js.map +1 -1
  83. package/dist/react/charts/index.d.ts +1 -1
  84. package/dist/react/charts/index.js +7 -100
  85. package/dist/react/charts/unified/AstroChart.d.ts +1 -2
  86. package/dist/react/charts/unified/AstroChart.js +1331 -1411
  87. package/dist/react/charts/unified/AstroChart.js.map +1 -1
  88. package/dist/react/charts/unified/PowerOverviewChart.d.ts +3 -3
  89. package/dist/react/charts/unified/PowerOverviewChart.js +495 -478
  90. package/dist/react/charts/unified/PowerOverviewChart.js.map +1 -1
  91. package/dist/react/charts/unified/domain.d.ts +12 -13
  92. package/dist/react/charts/unified/domain.js +3999 -3145
  93. package/dist/react/charts/unified/domain.js.map +1 -1
  94. package/dist/react/charts/unified/generators.d.ts +3 -4
  95. package/dist/react/charts/unified/generators.js +561 -498
  96. package/dist/react/charts/unified/generators.js.map +1 -1
  97. package/dist/react/charts/unified/index.d.ts +1 -1
  98. package/dist/react/charts/unified/presets.d.ts +14 -15
  99. package/dist/react/charts/unified/presets.js +857 -994
  100. package/dist/react/charts/unified/presets.js.map +1 -1
  101. package/dist/react/charts/unified/sync.d.ts +2 -3
  102. package/dist/react/charts/unified/sync.js +229 -195
  103. package/dist/react/charts/unified/sync.js.map +1 -1
  104. package/dist/react/charts/unified/theme.d.ts +11 -12
  105. package/dist/react/charts/unified/theme.js +606 -642
  106. package/dist/react/charts/unified/theme.js.map +1 -1
  107. package/dist/react/charts/unified/types.d.ts +32 -33
  108. package/dist/react/charts/unified/useChartStream.d.ts +1 -2
  109. package/dist/react/charts/unified/useChartStream.js +203 -216
  110. package/dist/react/charts/unified/useChartStream.js.map +1 -1
  111. package/dist/react/chatgpt/AppCard.d.ts +1 -2
  112. package/dist/react/chatgpt/index.d.ts +7 -7
  113. package/dist/react/chatgpt/index.js +160 -139
  114. package/dist/react/chatgpt/index.js.map +1 -1
  115. package/dist/react/context/CategoryContext.d.ts +0 -1
  116. package/dist/react/context/CategoryContext.js +78 -29
  117. package/dist/react/context/CategoryContext.js.map +1 -1
  118. package/dist/react/context/DisplaySettingsContext.d.ts +1 -2
  119. package/dist/react/context/DisplaySettingsContext.js +205 -156
  120. package/dist/react/context/DisplaySettingsContext.js.map +1 -1
  121. package/dist/react/context/SpatialSelectionContext.d.ts +0 -1
  122. package/dist/react/context/SpatialSelectionContext.js +36 -7
  123. package/dist/react/context/SpatialSelectionContext.js.map +1 -1
  124. package/dist/react/core/data/DataTable.d.ts +3 -4
  125. package/dist/react/core/data/DataTable.js +473 -440
  126. package/dist/react/core/data/DataTable.js.map +1 -1
  127. package/dist/react/core/data/DataValue.d.ts +4 -5
  128. package/dist/react/core/data/DataValue.js +605 -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 +312 -939
  316. package/dist/react/theme/ThemeProvider.js.map +1 -1
  317. package/dist/react/theme/cardAccent.d.ts +1 -2
  318. package/dist/react/theme/cardAccent.js +196 -126
  319. package/dist/react/theme/cardAccent.js.map +1 -1
  320. package/dist/react/theme/config.d.ts +0 -1
  321. package/dist/react/theme/config.js +47 -25
  322. package/dist/react/theme/config.js.map +1 -1
  323. package/dist/react/theme/index.d.ts +2 -2
  324. package/dist/react/theme/index.js +1 -16
  325. package/dist/react/theme/types.d.ts +332 -0
  326. package/dist/react/theme/types.js +39 -0
  327. package/dist/react/theme/types.js.map +1 -0
  328. package/dist/react/types.d.ts +8 -8
  329. package/dist/react/types.js +147 -47
  330. package/dist/react/types.js.map +1 -1
  331. package/dist/react/utils/categoryPalette.d.ts +0 -1
  332. package/dist/react/utils/categoryPalette.js +91 -102
  333. package/dist/react/utils/categoryPalette.js.map +1 -1
  334. package/dist/react/utils/index.d.ts +5 -5
  335. package/dist/react/utils/index.js +457 -371
  336. package/dist/react/utils/index.js.map +1 -1
  337. package/dist/react/visualizations/EclipseTimerCard.d.ts +0 -1
  338. package/dist/react/visualizations/LinkBudgetCard.d.ts +0 -1
  339. package/dist/react/visualizations/NavBallCard.d.ts +0 -1
  340. package/dist/react/visualizations/PropulsionCard.d.ts +1 -2
  341. package/dist/react/visualizations/SensorFootprintCard.d.ts +1 -2
  342. package/dist/react/visualizations/ThermalHeatmapCard.d.ts +0 -1
  343. package/dist/react/visualizations/index.d.ts +3 -3
  344. package/dist/react.d.ts +2 -1
  345. package/dist/react.js +17 -221
  346. package/dist/shaders/atmosphere.frag.js +6 -5
  347. package/dist/shaders/atmosphere.frag.js.map +1 -1
  348. package/dist/shaders/atmosphere.vert.js +6 -5
  349. package/dist/shaders/atmosphere.vert.js.map +1 -1
  350. package/dist/shaders/stars.frag.js +6 -5
  351. package/dist/shaders/stars.frag.js.map +1 -1
  352. package/dist/shaders/stars.vert.js +6 -5
  353. package/dist/shaders/stars.vert.js.map +1 -1
  354. package/dist/style.css +217 -194
  355. package/dist/tokens/core.d.ts +159 -0
  356. package/dist/tokens/core.js +144 -0
  357. package/dist/tokens/core.js.map +1 -0
  358. package/dist/tokens/css-vars.d.ts +213 -2
  359. package/dist/tokens/css-vars.js +590 -227
  360. package/dist/tokens/css-vars.js.map +1 -1
  361. package/dist/tokens/index.d.ts +31 -228
  362. package/dist/tokens/index.js +281 -366
  363. package/dist/tokens/index.js.map +1 -1
  364. package/dist/tokens/palettes/astro.d.ts +129 -0
  365. package/dist/tokens/palettes/astro.js +112 -0
  366. package/dist/tokens/palettes/astro.js.map +1 -0
  367. package/dist/tokens/palettes/index.d.ts +288 -0
  368. package/dist/tokens/palettes/index.js +35 -0
  369. package/dist/tokens/palettes/index.js.map +1 -0
  370. package/dist/tokens/palettes/tailwind.d.ts +324 -0
  371. package/dist/tokens/palettes/tailwind.js +201 -0
  372. package/dist/tokens/palettes/tailwind.js.map +1 -0
  373. package/dist/tokens/palettes/zendir.d.ts +126 -0
  374. package/dist/tokens/palettes/zendir.js +92 -0
  375. package/dist/tokens/palettes/zendir.js.map +1 -0
  376. package/dist/tokens/themes.d.ts +30 -0
  377. package/dist/tokens/themes.js +704 -0
  378. package/dist/tokens/themes.js.map +1 -0
  379. package/dist/tokens/tokens.css +419 -41
  380. package/dist/types/index.d.ts +2 -2
  381. package/package.json +310 -313
  382. package/dist/index.js.map +0 -1
  383. package/dist/react/3d/index.js.map +0 -1
  384. package/dist/react/astro/index.js.map +0 -1
  385. package/dist/react/cards/index.js.map +0 -1
  386. package/dist/react/charts/index.js.map +0 -1
  387. package/dist/react/core/index.js.map +0 -1
  388. package/dist/react/panels/index.js.map +0 -1
  389. package/dist/react/theme/astro-tokens.d.ts +0 -153
  390. package/dist/react/theme/index.js.map +0 -1
  391. package/dist/react.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Typography.js","sources":["../../../../src/react/core/display/Typography.tsx"],"sourcesContent":["/**\n * @zendir/ui - Typography Component\n * \n * AstroUXDS-compliant typography component providing consistent text styling\n * across the design system. All sizing uses rem units per Astro specifications.\n * \n * Typography Scale (Astro UX Design System):\n * - Display: Large hero text (display1, display2)\n * - Heading: Section headers (h1-h6)\n * - Body: Content text (body1, body2, body3)\n * - Control: UI element labels\n * - Mono: Tabular/code data\n * \n * @see https://www.astrouxds.com/foundations/typography/\n */\n\nimport React from 'react';\nimport { useTheme } from '../../theme/ThemeProvider';\n\n// ============================================================================\n// Typography Variants (AstroUXDS Compliant)\n// ============================================================================\n\n/**\n * Typography variant following Astro UX Design System\n * Maps directly to official Astro typography tokens\n */\nexport type TypographyVariant =\n // Display - Large hero text\n | 'display1'\n | 'display2'\n // Headings\n | 'h1'\n | 'h1Bold'\n | 'h2'\n | 'h3'\n | 'h4'\n | 'h5'\n | 'h6'\n // Body text\n | 'body1'\n | 'body1Bold'\n | 'body2'\n | 'body2Bold'\n | 'body3'\n | 'body3Bold'\n // Control (UI labels)\n | 'control1'\n | 'control1Bold'\n // Compact variants for dense UIs (cards, badges)\n | 'compact' // 10px - for tight spaces\n | 'compactBold'\n | 'micro' // 9px - for very tight spaces\n | 'microBold'\n // Monospace for data/code\n | 'mono'\n | 'monoSmall'\n | 'monoCompact';\n\n/**\n * Semantic element to render\n */\nexport type TypographyElement =\n | 'h1'\n | 'h2'\n | 'h3'\n | 'h4'\n | 'h5'\n | 'h6'\n | 'p'\n | 'span'\n | 'div'\n | 'label'\n | 'code'\n | 'pre';\n\n/**\n * Text color variants\n */\nexport type TypographyColor =\n | 'primary'\n | 'secondary'\n | 'tertiary'\n | 'muted'\n | 'inverse'\n | 'inherit'\n // Status colors\n | 'normal'\n | 'standby'\n | 'caution'\n | 'serious'\n | 'critical'\n | 'off';\n\nexport interface TypographyProps {\n /** Typography variant (required) */\n variant: TypographyVariant;\n /** HTML element to render */\n as?: TypographyElement;\n /** Text color */\n color?: TypographyColor;\n /** Enable tabular figures for numeric alignment */\n tabular?: boolean;\n /** Truncate with ellipsis */\n truncate?: boolean;\n /** Text alignment */\n align?: 'left' | 'center' | 'right';\n /** Disable text wrapping */\n noWrap?: boolean;\n /** Transform text case */\n transform?: 'none' | 'uppercase' | 'lowercase' | 'capitalize';\n /** Additional CSS styles */\n style?: React.CSSProperties;\n /** Additional CSS class */\n className?: string;\n /** Children */\n children?: React.ReactNode;\n /** Test ID */\n 'data-testid'?: string;\n}\n\n// ============================================================================\n// Font stacks\n// ============================================================================\n\n/**\n * Primary body font stack used by all components.\n *\n * Public Sans is the lead face for body text; Roboto is the fallback that\n * activates when web fonts fail to load (Public Sans is not installed\n * locally on most machines, but Roboto is on Android by default — and\n * AstroUXDS specifies Roboto as the canonical engineering-grade fallback).\n * Below that, the OS-native system fonts complete the chain so the UI\n * never falls through to Times.\n *\n * Read by `var(--font-family-primary)` so consumers can override at the\n * `:root` level (set by `<ThemeProvider>` from `tokens.typography.fontFamily.primary`).\n */\nexport const FONT_FAMILY_PRIMARY = 'var(--font-family-primary, \"Public Sans\", \"Roboto\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Helvetica Neue\", Arial, sans-serif)';\n\n/**\n * Monospace stack for tabular data, code, and numeric readouts.\n * Roboto Mono leads (AstroUXDS canonical), then OS-native mono fonts.\n */\nexport const FONT_FAMILY_MONO = '\"Roboto Mono\", \"SF Mono\", \"Consolas\", \"Liberation Mono\", monospace';\n\n// ============================================================================\n// AstroUXDS Font Weights\n// Official weights: 300 (Light), 400 (Regular), 500 (Medium), 700 (Bold)\n// Note: Astro does NOT use 600 (semibold) - use 500 or 700 instead\n// ============================================================================\n\nexport const FONT_WEIGHTS = {\n light: 300,\n regular: 400,\n medium: 500,\n bold: 700,\n} as const;\n\n// ============================================================================\n// Typography Style Definitions\n// ============================================================================\n\ninterface TypographyStyleDef {\n fontSize: string;\n fontWeight: number;\n lineHeight: string;\n letterSpacing: string;\n fontFamily?: string;\n}\n\n/**\n * Get typography styles for a variant\n * All sizes in rem for Astro compliance\n */\nfunction getTypographyStyles(variant: TypographyVariant): TypographyStyleDef {\n const styles: Record<TypographyVariant, TypographyStyleDef> = {\n // Display variants\n display1: { fontSize: '3.75rem', fontWeight: 300, lineHeight: '4.375rem', letterSpacing: '-0.5px', fontFamily: 'var(--font-family-heading, \"Sora\", \"Roboto\", sans-serif)' },\n display2: { fontSize: '3rem', fontWeight: 400, lineHeight: '3.5rem', letterSpacing: '0', fontFamily: 'var(--font-family-heading, \"Sora\", \"Roboto\", sans-serif)' },\n \n // Heading variants\n h1: { fontSize: '2.125rem', fontWeight: 400, lineHeight: '2.5rem', letterSpacing: '0.25px', fontFamily: 'var(--font-family-heading, \"Sora\", \"Roboto\", sans-serif)' },\n h1Bold: { fontSize: '2.125rem', fontWeight: 700, lineHeight: '2.5rem', letterSpacing: '0.25px', fontFamily: 'var(--font-family-heading, \"Sora\", \"Roboto\", sans-serif)' },\n h2: { fontSize: '1.5rem', fontWeight: 400, lineHeight: '1.75rem', letterSpacing: '0', fontFamily: 'var(--font-family-heading, \"Sora\", \"Roboto\", sans-serif)' },\n h3: { fontSize: '1.25rem', fontWeight: 500, lineHeight: '1.5rem', letterSpacing: '0.15px', fontFamily: 'var(--font-family-heading, \"Sora\", \"Roboto\", sans-serif)' },\n h4: { fontSize: '1.25rem', fontWeight: 300, lineHeight: '1.5rem', letterSpacing: '0.15px', fontFamily: 'var(--font-family-heading, \"Sora\", \"Roboto\", sans-serif)' },\n h5: { fontSize: '1.125rem', fontWeight: 400, lineHeight: '1.5rem', letterSpacing: '0', fontFamily: 'var(--font-family-heading, \"Sora\", \"Roboto\", sans-serif)' },\n h6: { fontSize: '1.125rem', fontWeight: 300, lineHeight: '1.5rem', letterSpacing: '0', fontFamily: 'var(--font-family-heading, \"Sora\", \"Roboto\", sans-serif)' },\n \n // Body variants\n body1: { fontSize: '1rem', fontWeight: 400, lineHeight: '1.5rem', letterSpacing: '0.5px' },\n body1Bold: { fontSize: '1rem', fontWeight: 700, lineHeight: '1.5rem', letterSpacing: '0.5px' },\n body2: { fontSize: '0.875rem', fontWeight: 400, lineHeight: '1.25rem', letterSpacing: '0.5px' },\n body2Bold: { fontSize: '0.875rem', fontWeight: 700, lineHeight: '1.25rem', letterSpacing: '0.5px' },\n body3: { fontSize: '0.75rem', fontWeight: 400, lineHeight: '1rem', letterSpacing: '0' },\n body3Bold: { fontSize: '0.75rem', fontWeight: 700, lineHeight: '1rem', letterSpacing: '0' },\n \n // Control variants (UI labels)\n control1: { fontSize: '1rem', fontWeight: 400, lineHeight: '1.25rem', letterSpacing: '0.5px' },\n control1Bold: { fontSize: '1rem', fontWeight: 700, lineHeight: '1.25rem', letterSpacing: '0.5px' },\n \n // Compact variants for dense UIs (cards, badges, data labels)\n compact: { fontSize: '0.625rem', fontWeight: 400, lineHeight: '0.875rem', letterSpacing: '0' }, // 10px\n compactBold: { fontSize: '0.625rem', fontWeight: 500, lineHeight: '0.875rem', letterSpacing: '0' },\n micro: { fontSize: '0.5625rem', fontWeight: 400, lineHeight: '0.75rem', letterSpacing: '0' }, // 9px\n microBold: { fontSize: '0.5625rem', fontWeight: 500, lineHeight: '0.75rem', letterSpacing: '0' },\n \n // Monospace variants for data/code\n mono: { fontSize: '0.875rem', fontWeight: 400, lineHeight: '1.25rem', letterSpacing: '0', fontFamily: FONT_FAMILY_MONO },\n monoSmall: { fontSize: '0.75rem', fontWeight: 400, lineHeight: '1rem', letterSpacing: '0', fontFamily: FONT_FAMILY_MONO },\n monoCompact: { fontSize: '0.625rem', fontWeight: 400, lineHeight: '0.875rem', letterSpacing: '0', fontFamily: FONT_FAMILY_MONO },\n };\n \n return styles[variant];\n}\n\n/**\n * Get default HTML element for variant\n */\nfunction getDefaultElement(variant: TypographyVariant): TypographyElement {\n if (variant.startsWith('display')) return 'h1';\n if (variant.startsWith('h1')) return 'h1';\n if (variant.startsWith('h2')) return 'h2';\n if (variant.startsWith('h3')) return 'h3';\n if (variant.startsWith('h4')) return 'h4';\n if (variant.startsWith('h5')) return 'h5';\n if (variant.startsWith('h6')) return 'h6';\n if (variant.startsWith('mono')) return 'code';\n if (variant.startsWith('control')) return 'label';\n return 'span';\n}\n\n// ============================================================================\n// Typography Component\n// ============================================================================\n\n/**\n * Typography component providing AstroUXDS-compliant text styling.\n * \n * @example\n * ```tsx\n * // Heading\n * <Typography variant=\"h3\">Section Title</Typography>\n * \n * // Body text\n * <Typography variant=\"body1\" color=\"secondary\">Description text</Typography>\n * \n * // Monospace data with tabular figures\n * <Typography variant=\"mono\" tabular>123.456</Typography>\n * \n * // Compact label for cards\n * <Typography variant=\"compact\" color=\"tertiary\">LABEL</Typography>\n * ```\n */\nexport const Typography: React.FC<TypographyProps> = ({\n variant,\n as,\n color = 'primary',\n tabular = false,\n truncate = false,\n align,\n noWrap = false,\n transform,\n style,\n className,\n children,\n 'data-testid': testId,\n}) => {\n const { tokens } = useTheme();\n \n const typographyStyles = getTypographyStyles(variant);\n const Element = as || getDefaultElement(variant);\n \n // Resolve color\n const getColor = (): string | undefined => {\n if (color === 'inherit') return 'inherit';\n if (color === 'primary') return tokens.colors.text.primary;\n if (color === 'secondary') return tokens.colors.text.secondary;\n if (color === 'tertiary') return tokens.colors.text.tertiary;\n if (color === 'muted') return tokens.colors.text.muted || tokens.colors.text.tertiary;\n if (color === 'inverse') return tokens.colors.text.inverse;\n // Status colors\n if (color === 'normal') return tokens.colors.status.normal;\n if (color === 'standby') return tokens.colors.status.standby;\n if (color === 'caution') return tokens.colors.status.caution;\n if (color === 'serious') return tokens.colors.status.serious;\n if (color === 'critical') return tokens.colors.status.critical;\n if (color === 'off') return tokens.colors.status.off;\n return undefined;\n };\n \n const combinedStyle: React.CSSProperties = {\n fontFamily: typographyStyles.fontFamily || FONT_FAMILY_PRIMARY,\n fontSize: typographyStyles.fontSize,\n fontWeight: typographyStyles.fontWeight,\n lineHeight: typographyStyles.lineHeight,\n letterSpacing: typographyStyles.letterSpacing,\n color: getColor(),\n margin: 0,\n padding: 0,\n // Tabular figures for numeric alignment\n ...(tabular && {\n fontVariantNumeric: 'tabular-nums',\n fontFeatureSettings: '\"tnum\"',\n }),\n // Truncation\n ...(truncate && {\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n }),\n // No wrap\n ...(noWrap && !truncate && {\n whiteSpace: 'nowrap',\n }),\n // Text alignment\n ...(align && { textAlign: align }),\n // Text transform\n ...(transform && { textTransform: transform }),\n // Custom styles (can override defaults)\n ...style,\n };\n \n return (\n <Element\n className={className}\n style={combinedStyle}\n data-testid={testId}\n >\n {children}\n </Element>\n );\n};\n\n// ============================================================================\n// Convenience Components\n// ============================================================================\n\n/** Display 1 - Largest display text */\nexport const Display1: React.FC<Omit<TypographyProps, 'variant'>> = (props) => (\n <Typography variant=\"display1\" {...props} />\n);\n\n/** Display 2 - Large display text */\nexport const Display2: React.FC<Omit<TypographyProps, 'variant'>> = (props) => (\n <Typography variant=\"display2\" {...props} />\n);\n\n/** Heading 1 */\nexport const H1: React.FC<Omit<TypographyProps, 'variant'> & { bold?: boolean }> = ({ bold, ...props }) => (\n <Typography variant={bold ? 'h1Bold' : 'h1'} {...props} />\n);\n\n/** Heading 2 */\nexport const H2: React.FC<Omit<TypographyProps, 'variant'>> = (props) => (\n <Typography variant=\"h2\" {...props} />\n);\n\n/** Heading 3 */\nexport const H3: React.FC<Omit<TypographyProps, 'variant'>> = (props) => (\n <Typography variant=\"h3\" {...props} />\n);\n\n/** Heading 4 */\nexport const H4: React.FC<Omit<TypographyProps, 'variant'>> = (props) => (\n <Typography variant=\"h4\" {...props} />\n);\n\n/** Heading 5 */\nexport const H5: React.FC<Omit<TypographyProps, 'variant'>> = (props) => (\n <Typography variant=\"h5\" {...props} />\n);\n\n/** Heading 6 */\nexport const H6: React.FC<Omit<TypographyProps, 'variant'>> = (props) => (\n <Typography variant=\"h6\" {...props} />\n);\n\n/** Body text level 1 (16px) */\nexport const Body1: React.FC<Omit<TypographyProps, 'variant'> & { bold?: boolean }> = ({ bold, ...props }) => (\n <Typography variant={bold ? 'body1Bold' : 'body1'} {...props} />\n);\n\n/** Body text level 2 (14px) */\nexport const Body2: React.FC<Omit<TypographyProps, 'variant'> & { bold?: boolean }> = ({ bold, ...props }) => (\n <Typography variant={bold ? 'body2Bold' : 'body2'} {...props} />\n);\n\n/** Body text level 3 (12px) */\nexport const Body3: React.FC<Omit<TypographyProps, 'variant'> & { bold?: boolean }> = ({ bold, ...props }) => (\n <Typography variant={bold ? 'body3Bold' : 'body3'} {...props} />\n);\n\n/** Compact text for dense UIs (10px) */\nexport const Compact: React.FC<Omit<TypographyProps, 'variant'> & { bold?: boolean }> = ({ bold, ...props }) => (\n <Typography variant={bold ? 'compactBold' : 'compact'} {...props} />\n);\n\n/** Micro text for very tight spaces (9px) */\nexport const Micro: React.FC<Omit<TypographyProps, 'variant'> & { bold?: boolean }> = ({ bold, ...props }) => (\n <Typography variant={bold ? 'microBold' : 'micro'} {...props} />\n);\n\n/** Monospace text for data/code */\nexport const Mono: React.FC<Omit<TypographyProps, 'variant'> & { size?: 'normal' | 'small' | 'compact' }> = ({ \n size = 'normal', \n tabular = true, // Default to tabular for mono\n ...props \n}) => {\n const variant = size === 'compact' ? 'monoCompact' : size === 'small' ? 'monoSmall' : 'mono';\n return <Typography variant={variant} tabular={tabular} {...props} />;\n};\n\n/** Data value text - monospace with tabular figures (for numeric displays) */\nexport const DataText: React.FC<Omit<TypographyProps, 'variant' | 'tabular'> & { \n size?: 'large' | 'normal' | 'small' | 'compact';\n}> = ({ size = 'normal', ...props }) => {\n const variantMap: Record<string, TypographyVariant> = {\n large: 'mono',\n normal: 'mono',\n small: 'monoSmall',\n compact: 'monoCompact',\n };\n return <Typography variant={variantMap[size]} tabular {...props} />;\n};\n\n/** Label text for form controls and card headers */\nexport const Label: React.FC<Omit<TypographyProps, 'variant'> & { bold?: boolean }> = ({ bold, ...props }) => (\n <Typography variant={bold ? 'control1Bold' : 'control1'} as=\"label\" {...props} />\n);\n\nexport default Typography;\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Typography.js","names":[],"sources":["../../../../src/react/core/display/Typography.tsx"],"sourcesContent":["/**\n * @zendir/ui - Typography Component\n *\n * AstroUXDS-compliant typography component providing consistent text styling\n * across the design system. All sizing uses rem units per Astro specifications.\n *\n * Typography Scale (Astro UX Design System):\n * - Display: Large hero text (display1, display2)\n * - Heading: Section headers (h1-h6)\n * - Body: Content text (body1, body2, body3)\n * - Control: UI element labels\n * - Mono: Tabular/code data\n *\n * @see https://www.astrouxds.com/foundations/typography/\n */\n\nimport React from \"react\";\nimport { useTheme } from \"../../theme/ThemeProvider\";\n\n// ============================================================================\n// Typography Variants (AstroUXDS Compliant)\n// ============================================================================\n\n/**\n * Typography variant following Astro UX Design System\n * Maps directly to official Astro typography tokens\n */\nexport type TypographyVariant =\n // Display - Large hero text\n | \"display1\"\n | \"display2\"\n // Headings\n | \"h1\"\n | \"h1Bold\"\n | \"h2\"\n | \"h3\"\n | \"h4\"\n | \"h5\"\n | \"h6\"\n // Body text\n | \"body1\"\n | \"body1Bold\"\n | \"body2\"\n | \"body2Bold\"\n | \"body3\"\n | \"body3Bold\"\n // Control (UI labels)\n | \"control1\"\n | \"control1Bold\"\n // Compact variants for dense UIs (cards, badges)\n | \"compact\" // 10px - for tight spaces\n | \"compactBold\"\n | \"micro\" // 9px - for very tight spaces\n | \"microBold\"\n // Monospace for data/code\n | \"mono\"\n | \"monoSmall\"\n | \"monoCompact\";\n\n/**\n * Semantic element to render\n */\nexport type TypographyElement =\n | \"h1\"\n | \"h2\"\n | \"h3\"\n | \"h4\"\n | \"h5\"\n | \"h6\"\n | \"p\"\n | \"span\"\n | \"div\"\n | \"label\"\n | \"code\"\n | \"pre\";\n\n/**\n * Text color variants\n */\nexport type TypographyColor =\n | \"primary\"\n | \"secondary\"\n | \"tertiary\"\n | \"muted\"\n | \"inverse\"\n | \"inherit\"\n // Status colors\n | \"normal\"\n | \"standby\"\n | \"caution\"\n | \"serious\"\n | \"critical\"\n | \"off\";\n\nexport interface TypographyProps {\n /** Typography variant (required) */\n variant: TypographyVariant;\n /** HTML element to render */\n as?: TypographyElement;\n /** Text color */\n color?: TypographyColor;\n /** Enable tabular figures for numeric alignment */\n tabular?: boolean;\n /** Truncate with ellipsis */\n truncate?: boolean;\n /** Text alignment */\n align?: \"left\" | \"center\" | \"right\";\n /** Disable text wrapping */\n noWrap?: boolean;\n /** Transform text case */\n transform?: \"none\" | \"uppercase\" | \"lowercase\" | \"capitalize\";\n /** Additional CSS styles */\n style?: React.CSSProperties;\n /** Additional CSS class */\n className?: string;\n /** Children */\n children?: React.ReactNode;\n /** Test ID */\n \"data-testid\"?: string;\n}\n\n// ============================================================================\n// Font stacks\n// ============================================================================\n\n/**\n * Primary body font stack used by all components.\n *\n * Public Sans is the lead face for body text; Roboto is the fallback that\n * activates when web fonts fail to load (Public Sans is not installed\n * locally on most machines, but Roboto is on Android by default — and\n * AstroUXDS specifies Roboto as the canonical engineering-grade fallback).\n * Below that, the OS-native system fonts complete the chain so the UI\n * never falls through to Times.\n *\n * Read by `var(--font-family-primary)` so consumers can override at the\n * `:root` level (set by `<ThemeProvider>` from `tokens.typography.fontFamily.primary`).\n */\nexport const FONT_FAMILY_PRIMARY =\n 'var(--font-family-primary, \"Public Sans\", \"Roboto\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Helvetica Neue\", Arial, sans-serif)';\n\n/**\n * Monospace stack for tabular data, code, and numeric readouts.\n * Roboto Mono leads (AstroUXDS canonical), then OS-native mono fonts.\n */\nexport const FONT_FAMILY_MONO =\n '\"Roboto Mono\", \"SF Mono\", \"Consolas\", \"Liberation Mono\", monospace';\n\n// ============================================================================\n// AstroUXDS Font Weights\n// Official weights: 300 (Light), 400 (Regular), 500 (Medium), 700 (Bold)\n// Note: Astro does NOT use 600 (semibold) - use 500 or 700 instead\n// ============================================================================\n\nexport const FONT_WEIGHTS = {\n light: 300,\n regular: 400,\n medium: 500,\n bold: 700,\n} as const;\n\n// ============================================================================\n// Typography Style Definitions\n// ============================================================================\n\ninterface TypographyStyleDef {\n fontSize: string;\n fontWeight: number;\n lineHeight: string;\n letterSpacing: string;\n fontFamily?: string;\n}\n\n/**\n * Get typography styles for a variant\n * All sizes in rem for Astro compliance\n */\nfunction getTypographyStyles(variant: TypographyVariant): TypographyStyleDef {\n const styles: Record<TypographyVariant, TypographyStyleDef> = {\n // Display variants\n display1: {\n fontSize: \"3.75rem\",\n fontWeight: 300,\n lineHeight: \"4.375rem\",\n letterSpacing: \"-0.5px\",\n fontFamily: 'var(--font-family-heading, \"Sora\", \"Roboto\", sans-serif)',\n },\n display2: {\n fontSize: \"3rem\",\n fontWeight: 400,\n lineHeight: \"3.5rem\",\n letterSpacing: \"0\",\n fontFamily: 'var(--font-family-heading, \"Sora\", \"Roboto\", sans-serif)',\n },\n\n // Heading variants\n h1: {\n fontSize: \"2.125rem\",\n fontWeight: 400,\n lineHeight: \"2.5rem\",\n letterSpacing: \"0.25px\",\n fontFamily: 'var(--font-family-heading, \"Sora\", \"Roboto\", sans-serif)',\n },\n h1Bold: {\n fontSize: \"2.125rem\",\n fontWeight: 700,\n lineHeight: \"2.5rem\",\n letterSpacing: \"0.25px\",\n fontFamily: 'var(--font-family-heading, \"Sora\", \"Roboto\", sans-serif)',\n },\n h2: {\n fontSize: \"1.5rem\",\n fontWeight: 400,\n lineHeight: \"1.75rem\",\n letterSpacing: \"0\",\n fontFamily: 'var(--font-family-heading, \"Sora\", \"Roboto\", sans-serif)',\n },\n h3: {\n fontSize: \"1.25rem\",\n fontWeight: 500,\n lineHeight: \"1.5rem\",\n letterSpacing: \"0.15px\",\n fontFamily: 'var(--font-family-heading, \"Sora\", \"Roboto\", sans-serif)',\n },\n h4: {\n fontSize: \"1.25rem\",\n fontWeight: 300,\n lineHeight: \"1.5rem\",\n letterSpacing: \"0.15px\",\n fontFamily: 'var(--font-family-heading, \"Sora\", \"Roboto\", sans-serif)',\n },\n h5: {\n fontSize: \"1.125rem\",\n fontWeight: 400,\n lineHeight: \"1.5rem\",\n letterSpacing: \"0\",\n fontFamily: 'var(--font-family-heading, \"Sora\", \"Roboto\", sans-serif)',\n },\n h6: {\n fontSize: \"1.125rem\",\n fontWeight: 300,\n lineHeight: \"1.5rem\",\n letterSpacing: \"0\",\n fontFamily: 'var(--font-family-heading, \"Sora\", \"Roboto\", sans-serif)',\n },\n\n // Body variants\n body1: {\n fontSize: \"1rem\",\n fontWeight: 400,\n lineHeight: \"1.5rem\",\n letterSpacing: \"0.5px\",\n },\n body1Bold: {\n fontSize: \"1rem\",\n fontWeight: 700,\n lineHeight: \"1.5rem\",\n letterSpacing: \"0.5px\",\n },\n body2: {\n fontSize: \"0.875rem\",\n fontWeight: 400,\n lineHeight: \"1.25rem\",\n letterSpacing: \"0.5px\",\n },\n body2Bold: {\n fontSize: \"0.875rem\",\n fontWeight: 700,\n lineHeight: \"1.25rem\",\n letterSpacing: \"0.5px\",\n },\n body3: {\n fontSize: \"0.75rem\",\n fontWeight: 400,\n lineHeight: \"1rem\",\n letterSpacing: \"0\",\n },\n body3Bold: {\n fontSize: \"0.75rem\",\n fontWeight: 700,\n lineHeight: \"1rem\",\n letterSpacing: \"0\",\n },\n\n // Control variants (UI labels)\n control1: {\n fontSize: \"1rem\",\n fontWeight: 400,\n lineHeight: \"1.25rem\",\n letterSpacing: \"0.5px\",\n },\n control1Bold: {\n fontSize: \"1rem\",\n fontWeight: 700,\n lineHeight: \"1.25rem\",\n letterSpacing: \"0.5px\",\n },\n\n // Compact variants for dense UIs (cards, badges, data labels)\n compact: {\n fontSize: \"0.625rem\",\n fontWeight: 400,\n lineHeight: \"0.875rem\",\n letterSpacing: \"0\",\n }, // 10px\n compactBold: {\n fontSize: \"0.625rem\",\n fontWeight: 500,\n lineHeight: \"0.875rem\",\n letterSpacing: \"0\",\n },\n micro: {\n fontSize: \"0.5625rem\",\n fontWeight: 400,\n lineHeight: \"0.75rem\",\n letterSpacing: \"0\",\n }, // 9px\n microBold: {\n fontSize: \"0.5625rem\",\n fontWeight: 500,\n lineHeight: \"0.75rem\",\n letterSpacing: \"0\",\n },\n\n // Monospace variants for data/code\n mono: {\n fontSize: \"0.875rem\",\n fontWeight: 400,\n lineHeight: \"1.25rem\",\n letterSpacing: \"0\",\n fontFamily: FONT_FAMILY_MONO,\n },\n monoSmall: {\n fontSize: \"0.75rem\",\n fontWeight: 400,\n lineHeight: \"1rem\",\n letterSpacing: \"0\",\n fontFamily: FONT_FAMILY_MONO,\n },\n monoCompact: {\n fontSize: \"0.625rem\",\n fontWeight: 400,\n lineHeight: \"0.875rem\",\n letterSpacing: \"0\",\n fontFamily: FONT_FAMILY_MONO,\n },\n };\n\n return styles[variant];\n}\n\n/**\n * Get default HTML element for variant\n */\nfunction getDefaultElement(variant: TypographyVariant): TypographyElement {\n if (variant.startsWith(\"display\")) return \"h1\";\n if (variant.startsWith(\"h1\")) return \"h1\";\n if (variant.startsWith(\"h2\")) return \"h2\";\n if (variant.startsWith(\"h3\")) return \"h3\";\n if (variant.startsWith(\"h4\")) return \"h4\";\n if (variant.startsWith(\"h5\")) return \"h5\";\n if (variant.startsWith(\"h6\")) return \"h6\";\n if (variant.startsWith(\"mono\")) return \"code\";\n if (variant.startsWith(\"control\")) return \"label\";\n return \"span\";\n}\n\n// ============================================================================\n// Typography Component\n// ============================================================================\n\n/**\n * Typography component providing AstroUXDS-compliant text styling.\n *\n * @example\n * ```tsx\n * // Heading\n * <Typography variant=\"h3\">Section Title</Typography>\n *\n * // Body text\n * <Typography variant=\"body1\" color=\"secondary\">Description text</Typography>\n *\n * // Monospace data with tabular figures\n * <Typography variant=\"mono\" tabular>123.456</Typography>\n *\n * // Compact label for cards\n * <Typography variant=\"compact\" color=\"tertiary\">LABEL</Typography>\n * ```\n */\nexport const Typography: React.FC<TypographyProps> = ({\n variant,\n as,\n color = \"primary\",\n tabular = false,\n truncate = false,\n align,\n noWrap = false,\n transform,\n style,\n className,\n children,\n \"data-testid\": testId,\n}) => {\n const { tokens } = useTheme();\n\n const typographyStyles = getTypographyStyles(variant);\n const Element = as || getDefaultElement(variant);\n\n // Resolve color\n const getColor = (): string | undefined => {\n if (color === \"inherit\") return \"inherit\";\n if (color === \"primary\") return tokens.colors.text.primary;\n if (color === \"secondary\") return tokens.colors.text.secondary;\n if (color === \"tertiary\") return tokens.colors.text.tertiary;\n if (color === \"muted\")\n return tokens.colors.text.muted || tokens.colors.text.tertiary;\n if (color === \"inverse\") return tokens.colors.text.inverse;\n // Status colors\n if (color === \"normal\") return tokens.colors.status.normal;\n if (color === \"standby\") return tokens.colors.status.standby;\n if (color === \"caution\") return tokens.colors.status.caution;\n if (color === \"serious\") return tokens.colors.status.serious;\n if (color === \"critical\") return tokens.colors.status.critical;\n if (color === \"off\") return tokens.colors.status.off;\n return undefined;\n };\n\n const combinedStyle: React.CSSProperties = {\n fontFamily: typographyStyles.fontFamily || FONT_FAMILY_PRIMARY,\n fontSize: typographyStyles.fontSize,\n fontWeight: typographyStyles.fontWeight,\n lineHeight: typographyStyles.lineHeight,\n letterSpacing: typographyStyles.letterSpacing,\n color: getColor(),\n margin: 0,\n padding: 0,\n // Tabular figures for numeric alignment\n ...(tabular && {\n fontVariantNumeric: \"tabular-nums\",\n fontFeatureSettings: '\"tnum\"',\n }),\n // Truncation\n ...(truncate && {\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n }),\n // No wrap\n ...(noWrap &&\n !truncate && {\n whiteSpace: \"nowrap\",\n }),\n // Text alignment\n ...(align && { textAlign: align }),\n // Text transform\n ...(transform && { textTransform: transform }),\n // Custom styles (can override defaults)\n ...style,\n };\n\n return (\n <Element className={className} style={combinedStyle} data-testid={testId}>\n {children}\n </Element>\n );\n};\n\n// ============================================================================\n// Convenience Components\n// ============================================================================\n\n/** Display 1 - Largest display text */\nexport const Display1: React.FC<Omit<TypographyProps, \"variant\">> = (props) => (\n <Typography variant=\"display1\" {...props} />\n);\n\n/** Display 2 - Large display text */\nexport const Display2: React.FC<Omit<TypographyProps, \"variant\">> = (props) => (\n <Typography variant=\"display2\" {...props} />\n);\n\n/** Heading 1 */\nexport const H1: React.FC<\n Omit<TypographyProps, \"variant\"> & { bold?: boolean }\n> = ({ bold, ...props }) => (\n <Typography variant={bold ? \"h1Bold\" : \"h1\"} {...props} />\n);\n\n/** Heading 2 */\nexport const H2: React.FC<Omit<TypographyProps, \"variant\">> = (props) => (\n <Typography variant=\"h2\" {...props} />\n);\n\n/** Heading 3 */\nexport const H3: React.FC<Omit<TypographyProps, \"variant\">> = (props) => (\n <Typography variant=\"h3\" {...props} />\n);\n\n/** Heading 4 */\nexport const H4: React.FC<Omit<TypographyProps, \"variant\">> = (props) => (\n <Typography variant=\"h4\" {...props} />\n);\n\n/** Heading 5 */\nexport const H5: React.FC<Omit<TypographyProps, \"variant\">> = (props) => (\n <Typography variant=\"h5\" {...props} />\n);\n\n/** Heading 6 */\nexport const H6: React.FC<Omit<TypographyProps, \"variant\">> = (props) => (\n <Typography variant=\"h6\" {...props} />\n);\n\n/** Body text level 1 (16px) */\nexport const Body1: React.FC<\n Omit<TypographyProps, \"variant\"> & { bold?: boolean }\n> = ({ bold, ...props }) => (\n <Typography variant={bold ? \"body1Bold\" : \"body1\"} {...props} />\n);\n\n/** Body text level 2 (14px) */\nexport const Body2: React.FC<\n Omit<TypographyProps, \"variant\"> & { bold?: boolean }\n> = ({ bold, ...props }) => (\n <Typography variant={bold ? \"body2Bold\" : \"body2\"} {...props} />\n);\n\n/** Body text level 3 (12px) */\nexport const Body3: React.FC<\n Omit<TypographyProps, \"variant\"> & { bold?: boolean }\n> = ({ bold, ...props }) => (\n <Typography variant={bold ? \"body3Bold\" : \"body3\"} {...props} />\n);\n\n/** Compact text for dense UIs (10px) */\nexport const Compact: React.FC<\n Omit<TypographyProps, \"variant\"> & { bold?: boolean }\n> = ({ bold, ...props }) => (\n <Typography variant={bold ? \"compactBold\" : \"compact\"} {...props} />\n);\n\n/** Micro text for very tight spaces (9px) */\nexport const Micro: React.FC<\n Omit<TypographyProps, \"variant\"> & { bold?: boolean }\n> = ({ bold, ...props }) => (\n <Typography variant={bold ? \"microBold\" : \"micro\"} {...props} />\n);\n\n/** Monospace text for data/code */\nexport const Mono: React.FC<\n Omit<TypographyProps, \"variant\"> & { size?: \"normal\" | \"small\" | \"compact\" }\n> = ({\n size = \"normal\",\n tabular = true, // Default to tabular for mono\n ...props\n}) => {\n const variant =\n size === \"compact\"\n ? \"monoCompact\"\n : size === \"small\"\n ? \"monoSmall\"\n : \"mono\";\n return <Typography variant={variant} tabular={tabular} {...props} />;\n};\n\n/** Data value text - monospace with tabular figures (for numeric displays) */\nexport const DataText: React.FC<\n Omit<TypographyProps, \"variant\" | \"tabular\"> & {\n size?: \"large\" | \"normal\" | \"small\" | \"compact\";\n }\n> = ({ size = \"normal\", ...props }) => {\n const variantMap: Record<string, TypographyVariant> = {\n large: \"mono\",\n normal: \"mono\",\n small: \"monoSmall\",\n compact: \"monoCompact\",\n };\n return <Typography variant={variantMap[size]} tabular {...props} />;\n};\n\n/** Label text for form controls and card headers */\nexport const Label: React.FC<\n Omit<TypographyProps, \"variant\"> & { bold?: boolean }\n> = ({ bold, ...props }) => (\n <Typography\n variant={bold ? \"control1Bold\" : \"control1\"}\n as=\"label\"\n {...props}\n />\n);\n\nexport default Typography;\n"],"mappings":"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"}
@@ -1,6 +1,5 @@
1
1
  import { default as React } from 'react';
2
-
3
- export type ConfirmStatus = 'normal' | 'caution' | 'serious' | 'critical';
2
+ export type ConfirmStatus = "normal" | "caution" | "serious" | "critical";
4
3
  export interface ConfirmOptions {
5
4
  /** Dialog title */
6
5
  title: string;