@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,288 +1,280 @@
1
- import { jsxs, Fragment, jsx } from "react/jsx-runtime";
2
- import { memo, forwardRef, useState, useId } from "react";
3
1
  import { useTheme } from "../../theme/ThemeProvider.js";
4
- import { safeAccentText, classNames } from "../../utils/index.js";
2
+ import { classNames, safeAccentText } from "../../utils/index.js";
5
3
  import { useBreakpoint } from "../layout/useBreakpoint.js";
6
- const Input = memo(forwardRef(function Input2({
7
- label,
8
- helperText,
9
- error,
10
- size = "medium",
11
- status,
12
- icon,
13
- iconEnd,
14
- fullWidth = false,
15
- required,
16
- optional,
17
- disabled,
18
- className = "",
19
- id: propId,
20
- style,
21
- onFocus,
22
- onBlur,
23
- labelPlacement = "outlined",
24
- type = "text",
25
- autoComplete,
26
- inputMode,
27
- onPaste: onPasteUser,
28
- ...rest
29
- }, ref) {
30
- const resolvedInputMode = inputMode ?? (type === "email" ? "email" : void 0);
31
- const { tokens, theme } = useTheme();
32
- const { isMobile } = useBreakpoint();
33
- const [focused, setFocused] = useState(false);
34
- const [hovered, setHovered] = useState(false);
35
- const generatedId = useId();
36
- const inputId = propId ?? generatedId;
37
- const shouldTrimOnPaste = type === "password" || type === "email" || autoComplete === "email" || autoComplete === "username";
38
- const handlePaste = (e) => {
39
- var _a;
40
- if (shouldTrimOnPaste) {
41
- const pasted = e.clipboardData.getData("text");
42
- const trimmed = pasted.trim();
43
- if (trimmed !== pasted) {
44
- e.preventDefault();
45
- const input = e.currentTarget;
46
- const start = input.selectionStart ?? 0;
47
- const end = input.selectionEnd ?? 0;
48
- const cur = rest.value ?? input.value ?? "";
49
- const newValue = cur.slice(0, start) + trimmed + cur.slice(end);
50
- (_a = rest.onChange) == null ? void 0 : _a.call(rest, { target: { ...input, value: newValue } });
51
- requestAnimationFrame(() => {
52
- input.setSelectionRange(start + trimmed.length, start + trimmed.length);
53
- });
54
- }
55
- }
56
- onPasteUser == null ? void 0 : onPasteUser(e);
57
- };
58
- const shouldTrimOnBlur = type === "email" || autoComplete === "email" || autoComplete === "username";
59
- const handleBlur = (e) => {
60
- if (shouldTrimOnBlur) {
61
- const input = e.currentTarget;
62
- const cur = input.value;
63
- const trimmed = cur.trim();
64
- if (trimmed !== cur && rest.onChange) {
65
- rest.onChange({ target: { ...input, value: trimmed } });
66
- }
67
- }
68
- setFocused(false);
69
- onBlur == null ? void 0 : onBlur(e);
70
- };
71
- const isTransparentTheme = theme === "transparent" || theme === "transparent-bold" || theme === "transparent-minimal";
72
- tokens.colors.interactive.transparentInputBg;
73
- const hasError = !!error;
74
- const isOutlined = labelPlacement === "outlined";
75
- const getBorder = () => {
76
- if (hasError) return tokens.borders.input.error;
77
- if (status) return `${tokens.borders.width.thin} solid ${tokens.colors.status[status]}`;
78
- if (focused) return tokens.borders.input.focus;
79
- if (hovered && !disabled) return tokens.borders.input.hover;
80
- return tokens.borders.input.default;
81
- };
82
- const sizeConfig = {
83
- small: {
84
- padding: `${tokens.spacing.xs} ${tokens.spacing.sm}`,
85
- fontSize: tokens.typography.fontSize.xs,
86
- height: tokens.elementSize.sm,
87
- iconSize: 14,
88
- labelSize: "0.6875rem",
89
- outlinedLabelSize: "0.625rem",
90
- inputPaddingLeft: 10
91
- },
92
- medium: {
93
- padding: `${tokens.spacing.sm} ${tokens.spacing.smd}`,
94
- fontSize: tokens.typography.fontSize.sm,
95
- height: tokens.elementSize.md,
96
- iconSize: 18,
97
- labelSize: "0.75rem",
98
- outlinedLabelSize: "0.6875rem",
99
- inputPaddingLeft: 12
100
- },
101
- large: {
102
- padding: `${tokens.spacing.smd} ${tokens.spacing.md}`,
103
- fontSize: tokens.typography.fontSize.base,
104
- height: tokens.elementSize.lg,
105
- iconSize: 20,
106
- labelSize: "0.875rem",
107
- outlinedLabelSize: "0.75rem",
108
- inputPaddingLeft: 16
109
- }
110
- };
111
- const config = sizeConfig[size];
112
- const controlHeight = isMobile ? "44px" : config.height;
113
- const focusGlow = focused && !hasError ? tokens.borders.focusRing.default : hasError && focused ? `0 0 0 3px ${tokens.colors.status.critical}20` : "none";
114
- const labelBg = isTransparentTheme ? tokens.colors.background.base : tokens.colors.background.surface;
115
- const labelContent = /* @__PURE__ */ jsxs(Fragment, { children: [
116
- label,
117
- required && /* @__PURE__ */ jsx("span", { style: { color: tokens.colors.status.critical, marginLeft: "2px" }, children: "*" }),
118
- optional && /* @__PURE__ */ jsxs("span", { style: {
119
- color: tokens.colors.text.tertiary,
120
- fontWeight: 400,
121
- fontStyle: "italic"
122
- }, children: [
123
- " ",
124
- "(optional)"
125
- ] })
126
- ] });
127
- return /* @__PURE__ */ jsxs(
128
- "div",
129
- {
130
- className: classNames("zendir-input-wrapper", className),
131
- style: {
132
- display: "flex",
133
- flexDirection: "column",
134
- gap: tokens.spacing.xs,
135
- width: fullWidth ? "100%" : "auto",
136
- minWidth: fullWidth ? void 0 : isMobile ? "100%" : "200px",
137
- ...style
138
- },
139
- children: [
140
- label && !isOutlined && /* @__PURE__ */ jsx(
141
- "label",
142
- {
143
- htmlFor: inputId,
144
- style: {
145
- display: "flex",
146
- alignItems: "center",
147
- gap: tokens.spacing.xs,
148
- fontSize: config.labelSize,
149
- fontWeight: 500,
150
- color: tokens.colors.text.secondary,
151
- letterSpacing: "0.01em"
152
- },
153
- children: labelContent
154
- }
155
- ),
156
- /* @__PURE__ */ jsxs(
157
- "div",
158
- {
159
- style: {
160
- position: "relative",
161
- display: "flex",
162
- alignItems: "center"
163
- },
164
- onMouseEnter: () => setHovered(true),
165
- onMouseLeave: () => setHovered(false),
166
- children: [
167
- label && isOutlined && /* @__PURE__ */ jsx(
168
- "label",
169
- {
170
- htmlFor: inputId,
171
- style: {
172
- position: "absolute",
173
- top: 0,
174
- left: icon ? "34px" : `${config.inputPaddingLeft - 6}px`,
175
- transform: "translateY(-50%)",
176
- backgroundColor: labelBg,
177
- padding: `0 ${tokens.spacing.xs}`,
178
- fontSize: config.outlinedLabelSize,
179
- fontWeight: 500,
180
- color: focused ? hasError ? tokens.colors.status.critical : tokens.colors.accent.primary : hasError ? tokens.colors.status.critical : tokens.colors.text.secondary,
181
- letterSpacing: "0.01em",
182
- zIndex: 1,
183
- pointerEvents: "none",
184
- transition: "color 200ms cubic-bezier(0.4, 0, 0.2, 1)",
185
- lineHeight: 1.2,
186
- whiteSpace: "nowrap"
187
- },
188
- children: labelContent
189
- }
190
- ),
191
- icon && /* @__PURE__ */ jsx(
192
- "span",
193
- {
194
- style: {
195
- position: "absolute",
196
- left: tokens.spacing.smd,
197
- display: "flex",
198
- alignItems: "center",
199
- color: focused ? safeAccentText(tokens.colors.accent.primary) : tokens.colors.text.tertiary,
200
- pointerEvents: "none",
201
- transition: tokens.animation.fast
202
- },
203
- children: icon
204
- }
205
- ),
206
- /* @__PURE__ */ jsx(
207
- "input",
208
- {
209
- ref,
210
- id: inputId,
211
- disabled,
212
- required,
213
- "aria-invalid": hasError,
214
- "aria-describedby": helperText || error ? `${inputId}-helper` : void 0,
215
- onFocus: (e) => {
216
- setFocused(true);
217
- onFocus == null ? void 0 : onFocus(e);
218
- },
219
- onBlur: handleBlur,
220
- onPaste: handlePaste,
221
- type,
222
- autoComplete,
223
- inputMode: resolvedInputMode,
224
- style: {
225
- width: "100%",
226
- height: controlHeight,
227
- padding: config.padding,
228
- paddingLeft: icon ? "40px" : config.padding,
229
- paddingRight: iconEnd ? "40px" : config.padding,
230
- fontSize: config.fontSize,
231
- fontFamily: tokens.typography.fontFamily.primary,
232
- color: tokens.colors.text.primary,
233
- backgroundColor: isTransparentTheme ? "rgba(10, 15, 25, 0.4)" : tokens.colors.background.surface,
234
- border: getBorder(),
235
- borderRadius: tokens.borderRadius.md,
236
- outline: "none",
237
- transition: "all 200ms cubic-bezier(0.4, 0, 0.2, 1)",
238
- cursor: disabled ? "not-allowed" : "text",
239
- opacity: disabled ? 0.5 : 1,
240
- boxShadow: focusGlow
241
- },
242
- ...rest
243
- }
244
- ),
245
- iconEnd && /* @__PURE__ */ jsx(
246
- "span",
247
- {
248
- style: {
249
- position: "absolute",
250
- right: tokens.spacing.smd,
251
- display: "flex",
252
- alignItems: "center",
253
- color: tokens.colors.text.tertiary,
254
- cursor: "pointer"
255
- },
256
- children: iconEnd
257
- }
258
- )
259
- ]
260
- }
261
- ),
262
- (helperText || error) && /* @__PURE__ */ jsxs(
263
- "span",
264
- {
265
- id: `${inputId}-helper`,
266
- role: hasError ? "alert" : void 0,
267
- style: {
268
- fontSize: "0.6875rem",
269
- fontWeight: hasError ? 500 : 400,
270
- color: hasError ? tokens.colors.status.critical : tokens.colors.text.tertiary,
271
- display: "flex",
272
- alignItems: "center",
273
- gap: tokens.spacing.xs
274
- },
275
- children: [
276
- hasError && /* @__PURE__ */ jsx("svg", { width: "12", height: "12", viewBox: "0 0 24 24", fill: tokens.colors.status.critical, "aria-hidden": "true", focusable: "false", children: /* @__PURE__ */ jsx("path", { d: "M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z" }) }),
277
- error || helperText
278
- ]
279
- }
280
- )
281
- ]
282
- }
283
- );
4
+ import { forwardRef, memo, useId, useState } from "react";
5
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
6
+ //#region src/react/core/inputs/Input.tsx
7
+ /**
8
+ * @zendir/ui - Input Component
9
+ *
10
+ * Text input field following Astro UX Design System with Zendir purple accents.
11
+ *
12
+ * Astro UX Compliance:
13
+ * - Stacked inputs left-justified
14
+ * - Consistent spacing
15
+ * - Help text for validation (not placeholder)
16
+ * - Required/optional indicators
17
+ * - States: default, hover, focus, invalid, disabled
18
+ *
19
+ * Zendir Enhancements:
20
+ * - Purple focus glow
21
+ * - Smooth transitions
22
+ * - Modern glassmorphism effects
23
+ *
24
+ * @example
25
+ * ```tsx
26
+ * <Input label="Spacecraft ID" placeholder="Enter ID..." />
27
+ * <Input label="Password" type="password" />
28
+ * <Input label="Search" icon={<Icon name="search" />} />
29
+ * <Input label="Email" error="Invalid email format" />
30
+ * ```
31
+ */
32
+ var Input = memo(forwardRef(function Input({ label, helperText, error, size = "medium", status, icon, iconEnd, fullWidth = false, required, optional, disabled, className = "", id: propId, style, onFocus, onBlur, labelPlacement = "outlined", type = "text", autoComplete, inputMode, onPaste: onPasteUser, ...rest }, ref) {
33
+ const resolvedInputMode = inputMode ?? (type === "email" ? "email" : void 0);
34
+ const { tokens, theme } = useTheme();
35
+ const { isMobile } = useBreakpoint();
36
+ const [focused, setFocused] = useState(false);
37
+ const [hovered, setHovered] = useState(false);
38
+ const generatedId = useId();
39
+ const inputId = propId ?? generatedId;
40
+ const shouldTrimOnPaste = type === "password" || type === "email" || autoComplete === "email" || autoComplete === "username";
41
+ const handlePaste = (e) => {
42
+ if (shouldTrimOnPaste) {
43
+ const pasted = e.clipboardData.getData("text");
44
+ const trimmed = pasted.trim();
45
+ if (trimmed !== pasted) {
46
+ e.preventDefault();
47
+ const input = e.currentTarget;
48
+ const start = input.selectionStart ?? 0;
49
+ const end = input.selectionEnd ?? 0;
50
+ const cur = rest.value ?? input.value ?? "";
51
+ const newValue = cur.slice(0, start) + trimmed + cur.slice(end);
52
+ rest.onChange?.({ target: {
53
+ ...input,
54
+ value: newValue
55
+ } });
56
+ requestAnimationFrame(() => {
57
+ input.setSelectionRange(start + trimmed.length, start + trimmed.length);
58
+ });
59
+ }
60
+ }
61
+ onPasteUser?.(e);
62
+ };
63
+ const shouldTrimOnBlur = type === "email" || autoComplete === "email" || autoComplete === "username";
64
+ const handleBlur = (e) => {
65
+ if (shouldTrimOnBlur) {
66
+ const input = e.currentTarget;
67
+ const cur = input.value;
68
+ const trimmed = cur.trim();
69
+ if (trimmed !== cur && rest.onChange) rest.onChange({ target: {
70
+ ...input,
71
+ value: trimmed
72
+ } });
73
+ }
74
+ setFocused(false);
75
+ onBlur?.(e);
76
+ };
77
+ const isTransparentTheme = theme === "transparent" || theme === "transparent-bold" || theme === "transparent-minimal";
78
+ tokens.colors.interactive.transparentInputBg;
79
+ const hasError = !!error;
80
+ const isOutlined = labelPlacement === "outlined";
81
+ const getBorder = () => {
82
+ if (hasError) return tokens.borders.input.error;
83
+ if (status) return `${tokens.borders.width.thin} solid ${tokens.colors.status[status]}`;
84
+ if (focused) return tokens.borders.input.focus;
85
+ if (hovered && !disabled) return tokens.borders.input.hover;
86
+ return tokens.borders.input.default;
87
+ };
88
+ const config = {
89
+ small: {
90
+ padding: `${tokens.spacing.xs} ${tokens.spacing.sm}`,
91
+ fontSize: tokens.typography.fontSize.xs,
92
+ height: tokens.elementSize.sm,
93
+ iconSize: 14,
94
+ labelSize: "0.6875rem",
95
+ outlinedLabelSize: "0.625rem",
96
+ inputPaddingLeft: 10
97
+ },
98
+ medium: {
99
+ padding: `${tokens.spacing.sm} ${tokens.spacing.smd}`,
100
+ fontSize: tokens.typography.fontSize.sm,
101
+ height: tokens.elementSize.md,
102
+ iconSize: 18,
103
+ labelSize: "0.75rem",
104
+ outlinedLabelSize: "0.6875rem",
105
+ inputPaddingLeft: 12
106
+ },
107
+ large: {
108
+ padding: `${tokens.spacing.smd} ${tokens.spacing.md}`,
109
+ fontSize: tokens.typography.fontSize.base,
110
+ height: tokens.elementSize.lg,
111
+ iconSize: 20,
112
+ labelSize: "0.875rem",
113
+ outlinedLabelSize: "0.75rem",
114
+ inputPaddingLeft: 16
115
+ }
116
+ }[size];
117
+ const controlHeight = isMobile ? "44px" : config.height;
118
+ const focusGlow = focused && !hasError ? tokens.borders.focusRing.default : hasError && focused ? `0 0 0 3px ${tokens.colors.status.critical}20` : "none";
119
+ const labelBg = isTransparentTheme ? tokens.colors.background.base : tokens.colors.background.surface;
120
+ const labelContent = /* @__PURE__ */ jsxs(Fragment, { children: [
121
+ label,
122
+ required && /* @__PURE__ */ jsx("span", {
123
+ style: {
124
+ color: tokens.colors.status.critical,
125
+ marginLeft: "2px"
126
+ },
127
+ children: "*"
128
+ }),
129
+ optional && /* @__PURE__ */ jsxs("span", {
130
+ style: {
131
+ color: tokens.colors.text.tertiary,
132
+ fontWeight: 400,
133
+ fontStyle: "italic"
134
+ },
135
+ children: [" ", "(optional)"]
136
+ })
137
+ ] });
138
+ return /* @__PURE__ */ jsxs("div", {
139
+ className: classNames("zendir-input-wrapper", className),
140
+ style: {
141
+ display: "flex",
142
+ flexDirection: "column",
143
+ gap: tokens.spacing.xs,
144
+ width: fullWidth ? "100%" : "auto",
145
+ minWidth: fullWidth ? void 0 : isMobile ? "100%" : "200px",
146
+ ...style
147
+ },
148
+ children: [
149
+ label && !isOutlined && /* @__PURE__ */ jsx("label", {
150
+ htmlFor: inputId,
151
+ style: {
152
+ display: "flex",
153
+ alignItems: "center",
154
+ gap: tokens.spacing.xs,
155
+ fontSize: config.labelSize,
156
+ fontWeight: 500,
157
+ color: tokens.colors.text.secondary,
158
+ letterSpacing: "0.01em"
159
+ },
160
+ children: labelContent
161
+ }),
162
+ /* @__PURE__ */ jsxs("div", {
163
+ style: {
164
+ position: "relative",
165
+ display: "flex",
166
+ alignItems: "center"
167
+ },
168
+ onMouseEnter: () => setHovered(true),
169
+ onMouseLeave: () => setHovered(false),
170
+ children: [
171
+ label && isOutlined && /* @__PURE__ */ jsx("label", {
172
+ htmlFor: inputId,
173
+ style: {
174
+ position: "absolute",
175
+ top: 0,
176
+ left: icon ? "34px" : `${config.inputPaddingLeft - 6}px`,
177
+ transform: "translateY(-50%)",
178
+ backgroundColor: labelBg,
179
+ padding: `0 ${tokens.spacing.xs}`,
180
+ fontSize: config.outlinedLabelSize,
181
+ fontWeight: 500,
182
+ color: focused ? hasError ? tokens.colors.status.critical : tokens.colors.accent.primary : hasError ? tokens.colors.status.critical : tokens.colors.text.secondary,
183
+ letterSpacing: "0.01em",
184
+ zIndex: 1,
185
+ pointerEvents: "none",
186
+ transition: "color 200ms cubic-bezier(0.4, 0, 0.2, 1)",
187
+ lineHeight: 1.2,
188
+ whiteSpace: "nowrap"
189
+ },
190
+ children: labelContent
191
+ }),
192
+ icon && /* @__PURE__ */ jsx("span", {
193
+ style: {
194
+ position: "absolute",
195
+ left: tokens.spacing.smd,
196
+ display: "flex",
197
+ alignItems: "center",
198
+ color: focused ? safeAccentText(tokens.colors.accent.primary) : tokens.colors.text.tertiary,
199
+ pointerEvents: "none",
200
+ transition: tokens.animation.fast
201
+ },
202
+ children: icon
203
+ }),
204
+ /* @__PURE__ */ jsx("input", {
205
+ ref,
206
+ id: inputId,
207
+ disabled,
208
+ required,
209
+ "aria-invalid": hasError,
210
+ "aria-describedby": helperText || error ? `${inputId}-helper` : void 0,
211
+ onFocus: (e) => {
212
+ setFocused(true);
213
+ onFocus?.(e);
214
+ },
215
+ onBlur: handleBlur,
216
+ onPaste: handlePaste,
217
+ type,
218
+ autoComplete,
219
+ inputMode: resolvedInputMode,
220
+ style: {
221
+ width: "100%",
222
+ height: controlHeight,
223
+ padding: config.padding,
224
+ paddingLeft: icon ? "40px" : config.padding,
225
+ paddingRight: iconEnd ? "40px" : config.padding,
226
+ fontSize: config.fontSize,
227
+ fontFamily: tokens.typography.fontFamily.primary,
228
+ color: tokens.colors.text.primary,
229
+ backgroundColor: isTransparentTheme ? "rgba(10, 15, 25, 0.4)" : tokens.colors.background.surface,
230
+ border: getBorder(),
231
+ borderRadius: tokens.borderRadius.md,
232
+ outline: "none",
233
+ transition: "all 200ms cubic-bezier(0.4, 0, 0.2, 1)",
234
+ cursor: disabled ? "not-allowed" : "text",
235
+ opacity: disabled ? .5 : 1,
236
+ boxShadow: focusGlow
237
+ },
238
+ ...rest
239
+ }),
240
+ iconEnd && /* @__PURE__ */ jsx("span", {
241
+ style: {
242
+ position: "absolute",
243
+ right: tokens.spacing.smd,
244
+ display: "flex",
245
+ alignItems: "center",
246
+ color: tokens.colors.text.tertiary,
247
+ cursor: "pointer"
248
+ },
249
+ children: iconEnd
250
+ })
251
+ ]
252
+ }),
253
+ (helperText || error) && /* @__PURE__ */ jsxs("span", {
254
+ id: `${inputId}-helper`,
255
+ role: hasError ? "alert" : void 0,
256
+ style: {
257
+ fontSize: "0.6875rem",
258
+ fontWeight: hasError ? 500 : 400,
259
+ color: hasError ? tokens.colors.status.critical : tokens.colors.text.tertiary,
260
+ display: "flex",
261
+ alignItems: "center",
262
+ gap: tokens.spacing.xs
263
+ },
264
+ children: [hasError && /* @__PURE__ */ jsx("svg", {
265
+ width: "12",
266
+ height: "12",
267
+ viewBox: "0 0 24 24",
268
+ fill: tokens.colors.status.critical,
269
+ "aria-hidden": "true",
270
+ focusable: "false",
271
+ children: /* @__PURE__ */ jsx("path", { d: "M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z" })
272
+ }), error || helperText]
273
+ })
274
+ ]
275
+ });
284
276
  }));
285
- export {
286
- Input
287
- };
288
- //# sourceMappingURL=Input.js.map
277
+ //#endregion
278
+ export { Input, Input as default };
279
+
280
+ //# sourceMappingURL=Input.js.map