@vadimcomanescu/nadicode-design-system 2.0.6 → 2.0.8

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 (339) hide show
  1. package/.agents/skills/seed/SKILL.md +17 -8
  2. package/.agents/skills/seed/contract.md +5 -4
  3. package/.agents/skills/seed/intent-map.md +3 -3
  4. package/.agents/skills/seed/recipes/agents-chat.md +44 -20
  5. package/.agents/skills/seed/recipes/marketing-shell.md +10 -19
  6. package/.agents/skills/seed/recipes/navigation-shell.md +5 -5
  7. package/.agents/skills/seed/recipes/service-detail.md +1 -1
  8. package/.agents/skills/seed/references/blocks.md +30 -26
  9. package/.agents/skills/seed/references/brand-override.md +3 -1
  10. package/.agents/skills/seed/references/components.md +22 -2
  11. package/.agents/skills/seed/references/dashboard-patterns.md +12 -12
  12. package/.agents/skills/seed/references/nextjs.md +20 -80
  13. package/.agents/skills/seed/references/tokens.md +57 -248
  14. package/README.md +43 -215
  15. package/contracts/block-props-schemas.json +2186 -0
  16. package/contracts/component-props-schemas.json +8322 -0
  17. package/contracts/consumer-contract.json +178 -0
  18. package/contracts/consumer-intent-map.json +707 -0
  19. package/contracts/message-catalog-contract.json +820 -0
  20. package/contracts/page-kit-props-schemas.json +1894 -0
  21. package/contracts/public-surface-registry.json +6162 -0
  22. package/contracts/public-surface-registry.schema.json +227 -0
  23. package/contracts/release-governance-baseline.json +850 -0
  24. package/contracts/spec-manifest.json +46 -0
  25. package/css/tokens.css +300 -122
  26. package/dist/catalog.json +2166 -162
  27. package/dist/chunk-2BADJLMV.js +117 -0
  28. package/dist/chunk-35EX5FP5.js +106 -0
  29. package/dist/chunk-4IGBBIYW.js +47 -0
  30. package/dist/chunk-4WPZ6T7V.js +186 -0
  31. package/dist/chunk-5PZ4VR2D.js +142 -0
  32. package/dist/chunk-5UESKK6S.js +76 -0
  33. package/dist/chunk-7A2RXKGH.js +205 -0
  34. package/dist/{chunk-DF47R6LN.js → chunk-AWIG4QN6.js} +9 -9
  35. package/dist/chunk-AYWL4IYM.js +67 -0
  36. package/dist/chunk-C7WHMSF3.js +114 -0
  37. package/dist/{chunk-SV3KZ6CB.js → chunk-DSMGCFMJ.js} +7 -2
  38. package/dist/{chunk-4K3PATUT.js → chunk-EEL4RAPC.js} +13 -1
  39. package/dist/{chunk-ILIHQ2KZ.js → chunk-EK43W2Y6.js} +16 -10
  40. package/dist/chunk-FV2G6SAF.js +134 -0
  41. package/dist/chunk-FX23F33E.js +57 -0
  42. package/dist/chunk-GJPTPLCQ.js +52 -0
  43. package/dist/chunk-HJ3A2YNO.js +163 -0
  44. package/dist/chunk-HJZRSPWB.js +38 -0
  45. package/dist/chunk-HWHJ6IRQ.js +78 -0
  46. package/dist/chunk-HZERHGBT.js +77 -0
  47. package/dist/{chunk-AUSYEAIJ.js → chunk-I66XWYSS.js} +32 -8
  48. package/dist/chunk-IXQGKJU4.js +183 -0
  49. package/dist/chunk-JDJY4ABS.js +60 -0
  50. package/dist/chunk-K7NQ6ZAW.js +84 -0
  51. package/dist/chunk-KWILREVQ.js +147 -0
  52. package/dist/chunk-LCKLZ4XK.js +60 -0
  53. package/dist/{chunk-WI37ZYIF.js → chunk-M4XKO45H.js} +13 -1
  54. package/dist/chunk-NEHCPO53.js +44 -0
  55. package/dist/chunk-OJ7OO3QB.js +269 -0
  56. package/dist/{chunk-ZHTQF2KI.js → chunk-OSNTB6RY.js} +29 -22
  57. package/dist/{chunk-GMMPLZLC.js → chunk-PDSQC6VE.js} +1 -1
  58. package/dist/chunk-QIHA7S3A.js +36 -0
  59. package/dist/chunk-QQOWC53X.js +98 -0
  60. package/dist/chunk-RKQPU75I.js +126 -0
  61. package/dist/chunk-U4GYSYGN.js +120 -0
  62. package/dist/chunk-UGV45DH3.js +18 -0
  63. package/dist/chunk-VBZQ4DBE.js +52 -0
  64. package/dist/{chunk-LQLFA2EL.js → chunk-VDONTZZX.js} +2 -2
  65. package/dist/chunk-VEO56RH4.js +105 -0
  66. package/dist/chunk-VJ5VD4UT.js +91 -0
  67. package/dist/{chunk-RWNJ54CI.js → chunk-VN475YZS.js} +1 -1
  68. package/dist/chunk-VNNAL4A6.js +110 -0
  69. package/dist/chunk-VZCB4APK.js +94 -0
  70. package/dist/chunk-W7FXDRQJ.js +94 -0
  71. package/dist/{chunk-5I3FWRC5.js → chunk-WOYBVPXK.js} +10 -10
  72. package/dist/chunk-WST5NLLC.js +73 -0
  73. package/dist/chunk-X6VXWEDO.js +125 -0
  74. package/dist/chunk-XTASI4IY.js +60 -0
  75. package/dist/chunk-Z233ZQZE.js +33 -0
  76. package/dist/chunk-ZKLB5N3Q.js +110 -0
  77. package/dist/chunk-ZM2NODUK.js +39 -0
  78. package/dist/components/blocks/AccountLockedBlock.js +7 -57
  79. package/dist/components/blocks/ActivityFeedBlock.js +6 -39
  80. package/dist/components/blocks/AgentConversationBlock.d.ts +6 -1
  81. package/dist/components/blocks/AgentConversationBlock.js +45 -71
  82. package/dist/components/blocks/AgentRunOverviewBlock.js +1 -1
  83. package/dist/components/blocks/AgentWorkbenchBlock.d.ts +5 -1
  84. package/dist/components/blocks/AgentWorkbenchBlock.js +47 -46
  85. package/dist/components/blocks/AudioVisualizerBlock.d.ts +1 -1
  86. package/dist/components/blocks/AudioVisualizerBlock.js +2 -2
  87. package/dist/components/blocks/AuthLayout.js +2 -2
  88. package/dist/components/blocks/AuthSuccessBlock.js +5 -60
  89. package/dist/components/blocks/BannerBlock.js +38 -38
  90. package/dist/components/blocks/BarChartBlock.d.ts +1 -1
  91. package/dist/components/blocks/BarChartBlock.js +2 -2
  92. package/dist/components/blocks/CallToActionBlock.d.ts +1 -1
  93. package/dist/components/blocks/CallToActionBlock.js +7 -53
  94. package/dist/components/blocks/ChangelogBlock.js +45 -142
  95. package/dist/components/blocks/ChartBlock.js +38 -38
  96. package/dist/components/blocks/ChartCollectionBlock.js +3 -3
  97. package/dist/components/blocks/ChatLayout.d.ts +4 -1
  98. package/dist/components/blocks/ChatLayout.js +39 -39
  99. package/dist/components/blocks/CodeBlock.js +7 -60
  100. package/dist/components/blocks/ComparisonBlock.js +9 -94
  101. package/dist/components/blocks/ContactBlock.js +11 -120
  102. package/dist/components/blocks/CreateBlock.js +39 -39
  103. package/dist/components/blocks/DataGridBlock.js +40 -40
  104. package/dist/components/blocks/DirectoryBlock.js +43 -43
  105. package/dist/components/blocks/FAQBlock.js +44 -82
  106. package/dist/components/blocks/FeatureBlock.d.ts +10 -14
  107. package/dist/components/blocks/FeatureBlock.js +54 -196
  108. package/dist/components/blocks/FeatureGridBlock.d.ts +1 -1
  109. package/dist/components/blocks/FeatureGridBlock.js +2 -2
  110. package/dist/components/blocks/FooterBlock.d.ts +2 -2
  111. package/dist/components/blocks/FooterBlock.js +11 -67
  112. package/dist/components/blocks/GalleryBlock.js +38 -38
  113. package/dist/components/blocks/HeaderBlock.d.ts +2 -2
  114. package/dist/components/blocks/HeaderBlock.js +39 -39
  115. package/dist/components/blocks/HeatmapChartBlock.d.ts +1 -1
  116. package/dist/components/blocks/HeatmapChartBlock.js +1 -1
  117. package/dist/components/blocks/HeroBlock.d.ts +6 -3
  118. package/dist/components/blocks/HeroBlock.js +53 -236
  119. package/dist/components/blocks/HeroSectionBlock.d.ts +1 -1
  120. package/dist/components/blocks/HeroSectionBlock.js +59 -63
  121. package/dist/components/blocks/IntegrationsBlock.d.ts +1 -1
  122. package/dist/components/blocks/IntegrationsBlock.js +42 -42
  123. package/dist/components/blocks/InteractiveAreaChartBlock.d.ts +1 -1
  124. package/dist/components/blocks/InteractiveAreaChartBlock.js +40 -40
  125. package/dist/components/blocks/KanbanDemoBlock.js +3 -3
  126. package/dist/components/blocks/LoginBlock.js +2 -2
  127. package/dist/components/blocks/LogoCloud.js +2 -13
  128. package/dist/components/blocks/NavUser.js +42 -42
  129. package/dist/components/blocks/NewsletterBlock.js +11 -84
  130. package/dist/components/blocks/NotFoundBlock.js +41 -41
  131. package/dist/components/blocks/OnboardingBlock.js +38 -38
  132. package/dist/components/blocks/PasswordRecoveryBlock.js +14 -142
  133. package/dist/components/blocks/PricingBlock.d.ts +1 -1
  134. package/dist/components/blocks/PricingBlock.js +13 -112
  135. package/dist/components/blocks/ProcessFlowBlock.js +10 -77
  136. package/dist/components/blocks/ResetPasswordBlock.js +11 -125
  137. package/dist/components/blocks/SettingsLayout.js +42 -42
  138. package/dist/components/blocks/SignUpBlock.d.ts +1 -1
  139. package/dist/components/blocks/SignUpBlock.js +3 -3
  140. package/dist/components/blocks/SocialProofBlock.d.ts +7 -11
  141. package/dist/components/blocks/SocialProofBlock.js +10 -108
  142. package/dist/components/blocks/StatsBlock.d.ts +1 -1
  143. package/dist/components/blocks/StatsBlock.js +40 -40
  144. package/dist/components/blocks/StatsMarketingBlock.d.ts +1 -1
  145. package/dist/components/blocks/StatsMarketingBlock.js +7 -38
  146. package/dist/components/blocks/TeamBlock.d.ts +1 -1
  147. package/dist/components/blocks/TeamBlock.js +4 -52
  148. package/dist/components/blocks/TestimonialsBlock.d.ts +1 -1
  149. package/dist/components/blocks/TestimonialsBlock.js +5 -133
  150. package/dist/components/blocks/TwoFactorChallengeBlock.js +46 -131
  151. package/dist/components/blocks/TwoFactorSetupBlock.js +53 -220
  152. package/dist/components/blocks/UsageDonutBlock.d.ts +1 -1
  153. package/dist/components/blocks/UsageDonutBlock.js +2 -2
  154. package/dist/components/blocks/VoiceAgentCard.d.ts +3 -1
  155. package/dist/components/blocks/VoiceAgentCard.js +7 -76
  156. package/dist/components/blocks/WizardBlock.js +39 -39
  157. package/dist/components/blocks/user/InviteUserModal.js +38 -38
  158. package/dist/components/logos/index.js +2 -2
  159. package/dist/components/page-kits/AccountLockedPageKit.d.ts +10 -0
  160. package/dist/components/page-kits/AccountLockedPageKit.js +48 -0
  161. package/dist/components/page-kits/AgentsChatPageKit.d.ts +46 -0
  162. package/dist/components/page-kits/AgentsChatPageKit.js +290 -0
  163. package/dist/components/page-kits/AnalyticsPageKit.d.ts +49 -0
  164. package/dist/components/page-kits/AnalyticsPageKit.js +277 -0
  165. package/dist/components/page-kits/BlogContentPageKit.d.ts +64 -0
  166. package/dist/components/page-kits/BlogContentPageKit.js +296 -0
  167. package/dist/components/page-kits/CheckoutPageKit.d.ts +36 -0
  168. package/dist/components/page-kits/CheckoutPageKit.js +209 -0
  169. package/dist/components/page-kits/CompanySuitePageKit.d.ts +25 -0
  170. package/dist/components/page-kits/CompanySuitePageKit.js +240 -0
  171. package/dist/components/page-kits/CrudFormPageKit.d.ts +54 -0
  172. package/dist/components/page-kits/CrudFormPageKit.js +138 -0
  173. package/dist/components/page-kits/CrudListDetailPageKit.d.ts +70 -0
  174. package/dist/components/page-kits/CrudListDetailPageKit.js +138 -0
  175. package/dist/components/page-kits/DashboardPageKit.d.ts +39 -0
  176. package/dist/components/page-kits/DashboardPageKit.js +284 -0
  177. package/dist/components/page-kits/ErrorPageKit.d.ts +22 -0
  178. package/dist/components/page-kits/ErrorPageKit.js +55 -0
  179. package/dist/components/page-kits/KanbanBoardPageKit.d.ts +31 -0
  180. package/dist/components/page-kits/KanbanBoardPageKit.js +305 -0
  181. package/dist/components/page-kits/LandingPageKit.d.ts +29 -0
  182. package/dist/components/page-kits/LandingPageKit.js +222 -0
  183. package/dist/components/page-kits/LoginPageKit.d.ts +16 -0
  184. package/dist/components/page-kits/LoginPageKit.js +43 -0
  185. package/dist/components/page-kits/MarketingShellPageKit.d.ts +21 -0
  186. package/dist/components/page-kits/MarketingShellPageKit.js +131 -0
  187. package/dist/components/page-kits/NavigationShellPageKit.d.ts +41 -0
  188. package/dist/components/page-kits/NavigationShellPageKit.js +132 -0
  189. package/dist/components/page-kits/OnboardingPageKit.d.ts +26 -0
  190. package/dist/components/page-kits/OnboardingPageKit.js +248 -0
  191. package/dist/components/page-kits/PricingPageKit.d.ts +41 -0
  192. package/dist/components/page-kits/PricingPageKit.js +279 -0
  193. package/dist/components/page-kits/ProfileSettingsPageKit.d.ts +50 -0
  194. package/dist/components/page-kits/ProfileSettingsPageKit.js +171 -0
  195. package/dist/components/page-kits/RecoveryPageKit.d.ts +17 -0
  196. package/dist/components/page-kits/RecoveryPageKit.js +58 -0
  197. package/dist/components/page-kits/ResetPageKit.d.ts +14 -0
  198. package/dist/components/page-kits/ResetPageKit.js +52 -0
  199. package/dist/components/page-kits/ServiceSuitePageKit.d.ts +25 -0
  200. package/dist/components/page-kits/ServiceSuitePageKit.js +321 -0
  201. package/dist/components/page-kits/SettingsPageKit.d.ts +27 -0
  202. package/dist/components/page-kits/SettingsPageKit.js +11 -0
  203. package/dist/components/page-kits/SignupPageKit.d.ts +15 -0
  204. package/dist/components/page-kits/SignupPageKit.js +41 -0
  205. package/dist/components/page-kits/SuccessPageKit.d.ts +15 -0
  206. package/dist/components/page-kits/SuccessPageKit.js +146 -0
  207. package/dist/components/page-kits/TeamSettingsPageKit.d.ts +50 -0
  208. package/dist/components/page-kits/TeamSettingsPageKit.js +297 -0
  209. package/dist/components/page-kits/TwoFactorPageKit.d.ts +16 -0
  210. package/dist/components/page-kits/TwoFactorPageKit.js +156 -0
  211. package/dist/components/page-kits/VerifyEmailPageKit.d.ts +15 -0
  212. package/dist/components/page-kits/VerifyEmailPageKit.js +146 -0
  213. package/dist/components/page-kits/VoiceAgentsPageKit.d.ts +35 -0
  214. package/dist/components/page-kits/VoiceAgentsPageKit.js +250 -0
  215. package/dist/components/ui/Accordion.js +38 -38
  216. package/dist/components/ui/AgentMessageBubble.d.ts +20 -4
  217. package/dist/components/ui/AgentMessageBubble.js +39 -39
  218. package/dist/components/ui/AgentStatus.d.ts +1 -1
  219. package/dist/components/ui/AgentStatus.js +5 -10
  220. package/dist/components/ui/AgentTerminal.d.ts +4 -1
  221. package/dist/components/ui/AgentTerminal.js +3 -1
  222. package/dist/components/ui/AgentTimeline.d.ts +2 -2
  223. package/dist/components/ui/AgentTimeline.js +15 -6
  224. package/dist/components/ui/AnimatedDialog.js +38 -38
  225. package/dist/components/ui/AnimatedSheet.js +38 -38
  226. package/dist/components/ui/ApprovalCard.js +1 -1
  227. package/dist/components/ui/AudioWaveform.js +2 -76
  228. package/dist/components/ui/AvatarUpload.js +1 -1
  229. package/dist/components/ui/Breadcrumb.js +41 -143
  230. package/dist/components/ui/Calendar.js +38 -38
  231. package/dist/components/ui/Carousel.js +38 -38
  232. package/dist/components/ui/ChartCard.js +5 -38
  233. package/dist/components/ui/ChatActions.d.ts +14 -0
  234. package/dist/components/ui/ChatActions.js +52 -0
  235. package/dist/components/ui/ChatBranch.d.ts +18 -0
  236. package/dist/components/ui/ChatBranch.js +84 -0
  237. package/dist/components/ui/ChatChainOfThought.d.ts +25 -0
  238. package/dist/components/ui/ChatChainOfThought.js +99 -0
  239. package/dist/components/ui/ChatConfirmation.d.ts +37 -0
  240. package/dist/components/ui/ChatConfirmation.js +115 -0
  241. package/dist/components/ui/ChatGreeting.d.ts +18 -0
  242. package/dist/components/ui/ChatGreeting.js +80 -0
  243. package/dist/components/ui/ChatMessage.d.ts +40 -0
  244. package/dist/components/ui/ChatMessage.js +96 -0
  245. package/dist/components/ui/ChatPlan.d.ts +29 -0
  246. package/dist/components/ui/ChatPlan.js +86 -0
  247. package/dist/components/ui/ChatPromptInput.d.ts +32 -0
  248. package/dist/components/ui/ChatPromptInput.js +193 -0
  249. package/dist/components/ui/ChatPromptInputAttachments.d.ts +9 -0
  250. package/dist/components/ui/ChatPromptInputAttachments.js +145 -0
  251. package/dist/components/ui/ChatQueue.d.ts +32 -0
  252. package/dist/components/ui/ChatQueue.js +93 -0
  253. package/dist/components/ui/ChatReasoning.d.ts +20 -0
  254. package/dist/components/ui/ChatReasoning.js +91 -0
  255. package/dist/components/ui/ChatResponse.d.ts +14 -0
  256. package/dist/components/ui/ChatResponse.js +25 -0
  257. package/dist/components/ui/ChatShimmer.d.ts +23 -0
  258. package/dist/components/ui/ChatShimmer.js +6 -0
  259. package/dist/components/ui/ChatSources.d.ts +30 -0
  260. package/dist/components/ui/ChatSources.js +113 -0
  261. package/dist/components/ui/ChatSuggestion.d.ts +13 -0
  262. package/dist/components/ui/ChatSuggestion.js +41 -0
  263. package/dist/components/ui/ChatThinkingMessage.d.ts +12 -0
  264. package/dist/components/ui/ChatThinkingMessage.js +55 -0
  265. package/dist/components/ui/ChatToolCall.d.ts +41 -0
  266. package/dist/components/ui/ChatToolCall.js +192 -0
  267. package/dist/components/ui/CheckStatus.d.ts +1 -1
  268. package/dist/components/ui/Checkbox.js +38 -38
  269. package/dist/components/ui/CheckoutForm.js +38 -38
  270. package/dist/components/ui/CheckoutFormDemo.js +43 -44
  271. package/dist/components/ui/Combobox.js +38 -38
  272. package/dist/components/ui/Command.js +38 -38
  273. package/dist/components/ui/ContextMenu.js +38 -38
  274. package/dist/components/ui/Conversation.d.ts +21 -0
  275. package/dist/components/ui/Conversation.js +196 -0
  276. package/dist/components/ui/ConversationThread.d.ts +8 -2
  277. package/dist/components/ui/ConversationThread.js +34 -16
  278. package/dist/components/ui/DataFreshness.js +2 -73
  279. package/dist/components/ui/DataTable.js +40 -40
  280. package/dist/components/ui/DatePicker.js +38 -38
  281. package/dist/components/ui/DateRangePicker.js +38 -38
  282. package/dist/components/ui/Dialog.js +38 -38
  283. package/dist/components/ui/DropdownMenu.js +39 -39
  284. package/dist/components/ui/FileUpload.js +38 -38
  285. package/dist/components/ui/InputOTP.js +38 -38
  286. package/dist/components/ui/KanbanBoard.js +2 -2
  287. package/dist/components/ui/LanguageSwitcher.js +38 -38
  288. package/dist/components/ui/Menubar.js +38 -38
  289. package/dist/components/ui/MouseEffect.js +1 -1
  290. package/dist/components/ui/NativeSelect.js +2 -18
  291. package/dist/components/ui/NavigationMenu.js +38 -38
  292. package/dist/components/ui/NotificationCenter.js +38 -38
  293. package/dist/components/ui/Pagination.js +42 -153
  294. package/dist/components/ui/RadioGroup.js +38 -38
  295. package/dist/components/ui/Resizable.js +38 -38
  296. package/dist/components/ui/SearchCommand.js +38 -38
  297. package/dist/components/ui/Select.js +38 -38
  298. package/dist/components/ui/SettingsModal.js +38 -38
  299. package/dist/components/ui/ShaderBackground.js +2 -2
  300. package/dist/components/ui/Sheet.js +38 -38
  301. package/dist/components/ui/Sidebar.js +41 -41
  302. package/dist/components/ui/StyleToggle.js +1 -1
  303. package/dist/components/ui/TagInput.js +38 -38
  304. package/dist/components/ui/ThemeToggle.js +39 -39
  305. package/dist/components/ui/ThinkingIndicator.d.ts +3 -1
  306. package/dist/components/ui/ThinkingIndicator.js +2 -1
  307. package/dist/components/ui/Toast.js +38 -38
  308. package/dist/components/ui/Toaster.js +38 -38
  309. package/dist/components/ui/ToolCallCard.d.ts +1 -1
  310. package/dist/components/ui/ToolCallCard.js +5 -1
  311. package/dist/components/ui/TreeView.js +38 -38
  312. package/dist/components/ui/charts/index.js +1 -1
  313. package/dist/components/ui/icons/index.js +38 -38
  314. package/dist/components/ui/text-effects/index.js +2 -2
  315. package/dist/hooks/use-scroll-to-bottom.d.ts +13 -0
  316. package/dist/hooks/use-scroll-to-bottom.js +2 -0
  317. package/dist/hooks/use-shader-preset.js +2 -2
  318. package/dist/index.js +43 -43
  319. package/dist/internal/local-image-assets.d.ts +12 -0
  320. package/dist/lib/shader-presets.js +1 -1
  321. package/dist/lib/tokens.config.d.ts +19 -0
  322. package/dist/messages/en.js +1 -1
  323. package/dist/messages/it.js +1 -1
  324. package/dist/test/PublicSeedTestProvider.js +2 -2
  325. package/dist/test/simulate-ime-composition.d.ts +54 -0
  326. package/dist/test/simulate-ime-composition.js +55 -0
  327. package/eslint-rules/nadicode/config.js +2 -0
  328. package/eslint-rules/nadicode/index.js +4 -0
  329. package/eslint-rules/nadicode/rules/no-deprecated-ds-import.js +77 -0
  330. package/eslint-rules/nadicode/rules/no-forbidden-page-kit-import.js +99 -0
  331. package/eslint-rules/nadicode/rules/no-unregistered-glass.js +2 -0
  332. package/package.json +895 -686
  333. package/scripts/ds-check.mjs +102 -73
  334. package/src/lib/tokens.config.js +63 -41
  335. package/dist/chunk-MLUSJTS2.js +0 -107
  336. package/dist/{chunk-5DKCZWC6.js → chunk-CQEUNASC.js} +1 -1
  337. package/dist/{chunk-4HRVRW2X.js → chunk-J2DCQDXO.js} +2 -2
  338. package/dist/{chunk-6MFAZU4B.js → chunk-RGE5OQMZ.js} +1 -1
  339. package/dist/{chunk-PJNHVPHF.js → chunk-TYP2MR3Q.js} +1 -1
@@ -0,0 +1,91 @@
1
+ 'use client';
2
+ import { ChatShimmer } from '../../chunk-JDJY4ABS.js';
3
+ import { Collapsible, CollapsibleTrigger, CollapsibleContent } from '../../chunk-VJIL7W55.js';
4
+ import '../../chunk-PD2YEH3H.js';
5
+ import '../../chunk-CRY67BIF.js';
6
+ import '../../chunk-HJC6U46F.js';
7
+ import { ChevronDownIcon } from '../../chunk-HJBXUXTD.js';
8
+ import '../../chunk-ASKFAYYR.js';
9
+ import { cn } from '../../chunk-QYZT24TS.js';
10
+ import { createContext, useState, useRef, useEffect, useContext } from 'react';
11
+ import { jsx, jsxs } from 'react/jsx-runtime';
12
+
13
+ var ChatReasoningContext = createContext({
14
+ isStreaming: false
15
+ });
16
+ function ChatReasoning({
17
+ isStreaming,
18
+ autoCloseDelay = 1e3,
19
+ duration,
20
+ defaultOpen = false,
21
+ children,
22
+ className,
23
+ ref
24
+ }) {
25
+ const [open, setOpen] = useState(defaultOpen);
26
+ const timerRef = useRef(void 0);
27
+ const wasStreamingRef = useRef(isStreaming);
28
+ useEffect(() => {
29
+ if (wasStreamingRef.current && !isStreaming) {
30
+ timerRef.current = setTimeout(() => {
31
+ setOpen(false);
32
+ }, autoCloseDelay);
33
+ }
34
+ wasStreamingRef.current = isStreaming;
35
+ return () => {
36
+ if (timerRef.current) clearTimeout(timerRef.current);
37
+ };
38
+ }, [isStreaming, autoCloseDelay]);
39
+ return /* @__PURE__ */ jsx(ChatReasoningContext.Provider, { value: { isStreaming, duration }, children: /* @__PURE__ */ jsx(
40
+ Collapsible,
41
+ {
42
+ ref,
43
+ open,
44
+ onOpenChange: setOpen,
45
+ className: cn("rounded-lg border border-border/60", className),
46
+ children
47
+ }
48
+ ) });
49
+ }
50
+ function ChatReasoningTrigger({ className }) {
51
+ const { isStreaming, duration } = useContext(ChatReasoningContext);
52
+ const durationText = duration != null ? `${(duration / 1e3).toFixed(1)}s` : null;
53
+ return /* @__PURE__ */ jsxs(
54
+ CollapsibleTrigger,
55
+ {
56
+ className: cn(
57
+ "flex w-full items-center gap-2 px-3 py-2 text-xs transition-colors hover:bg-surface/60 rounded-lg",
58
+ className
59
+ ),
60
+ children: [
61
+ /* @__PURE__ */ jsx(
62
+ ChevronDownIcon,
63
+ {
64
+ size: 14,
65
+ "aria-hidden": "true",
66
+ className: "text-text-tertiary transition-transform [[data-state=open]>&]:rotate-180"
67
+ }
68
+ ),
69
+ isStreaming ? /* @__PURE__ */ jsx(ChatShimmer, { className: "text-text-secondary", children: "Thinking..." }) : /* @__PURE__ */ jsx("span", { className: "text-text-secondary", children: "Reasoning" }),
70
+ !!durationText && !isStreaming && /* @__PURE__ */ jsx("span", { className: "ml-auto text-text-tertiary", children: durationText })
71
+ ]
72
+ }
73
+ );
74
+ }
75
+ function ChatReasoningContent({
76
+ children,
77
+ className
78
+ }) {
79
+ return /* @__PURE__ */ jsx(
80
+ CollapsibleContent,
81
+ {
82
+ className: cn(
83
+ "border-t border-border/40 px-3 py-2 text-xs text-text-secondary",
84
+ className
85
+ ),
86
+ children
87
+ }
88
+ );
89
+ }
90
+
91
+ export { ChatReasoning, ChatReasoningContent, ChatReasoningTrigger };
@@ -0,0 +1,14 @@
1
+ import { type Ref } from 'react';
2
+ import { Streamdown } from 'streamdown';
3
+ import type { ComponentProps } from 'react';
4
+ export interface ChatResponseProps extends Omit<ComponentProps<typeof Streamdown>, 'mode' | 'isAnimating' | 'ref'> {
5
+ /** True while the response is still streaming. */
6
+ isStreaming?: boolean;
7
+ ref?: Ref<HTMLDivElement>;
8
+ }
9
+ /**
10
+ * Streaming-safe markdown rendering via `streamdown`.
11
+ * Handles unterminated code fences, partial syntax, and streaming content
12
+ * growth without layout breaks.
13
+ */
14
+ export declare function ChatResponse({ children, isStreaming, className, ref, ...props }: ChatResponseProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,25 @@
1
+ 'use client';
2
+ import { cn } from '../../chunk-QYZT24TS.js';
3
+ import { Streamdown } from 'streamdown';
4
+ import { jsx } from 'react/jsx-runtime';
5
+
6
+ function ChatResponse({
7
+ children,
8
+ isStreaming = false,
9
+ className,
10
+ ref,
11
+ ...props
12
+ }) {
13
+ return /* @__PURE__ */ jsx("div", { ref, className: cn("prose prose-sm dark:prose-invert max-w-none [&>*:first-child]:mt-0 [&>*:last-child]:mb-0", className), children: /* @__PURE__ */ jsx(
14
+ Streamdown,
15
+ {
16
+ mode: isStreaming ? "streaming" : "static",
17
+ isAnimating: isStreaming,
18
+ parseIncompleteMarkdown: isStreaming,
19
+ ...props,
20
+ children
21
+ }
22
+ ) });
23
+ }
24
+
25
+ export { ChatResponse };
@@ -0,0 +1,23 @@
1
+ import { type Ref } from 'react';
2
+ export interface ChatShimmerProps {
3
+ /** Text content to shimmer. */
4
+ children: string;
5
+ /** HTML element type to render (default: "span"). */
6
+ as?: 'span' | 'p' | 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'div';
7
+ className?: string;
8
+ /** Animation cycle duration in seconds. */
9
+ duration?: number;
10
+ /** Pixel spread per character for the highlight sweep. */
11
+ spread?: number;
12
+ ref?: Ref<HTMLElement>;
13
+ }
14
+ /**
15
+ * ChatShimmer - CSS background-clip sliding highlight sweep on text.
16
+ *
17
+ * Used by ChatReasoning trigger ("Thinking" label) and ChatPlan title
18
+ * to indicate active streaming. Falls back to static text when
19
+ * prefers-reduced-motion is active.
20
+ */
21
+ declare function ChatShimmerInner({ children, as: Component, className, duration, spread, ref, }: ChatShimmerProps): import("react/jsx-runtime").JSX.Element;
22
+ export declare const ChatShimmer: import("react").MemoExoticComponent<typeof ChatShimmerInner>;
23
+ export {};
@@ -0,0 +1,6 @@
1
+ 'use client';
2
+ export { ChatShimmer } from '../../chunk-JDJY4ABS.js';
3
+ import '../../chunk-PD2YEH3H.js';
4
+ import '../../chunk-CRY67BIF.js';
5
+ import '../../chunk-HJC6U46F.js';
6
+ import '../../chunk-QYZT24TS.js';
@@ -0,0 +1,30 @@
1
+ import { type ReactNode } from 'react';
2
+ export interface ChatSourcesProps {
3
+ children: ReactNode;
4
+ className?: string;
5
+ defaultOpen?: boolean;
6
+ }
7
+ export declare function ChatSources({ children, className, defaultOpen, }: ChatSourcesProps): import("react/jsx-runtime").JSX.Element;
8
+ export interface ChatSourcesTriggerProps {
9
+ count: number;
10
+ className?: string;
11
+ }
12
+ export declare function ChatSourcesTrigger({ count, className }: ChatSourcesTriggerProps): import("react/jsx-runtime").JSX.Element;
13
+ export declare function ChatSourcesContent({ children, className, }: {
14
+ children: ReactNode;
15
+ className?: string;
16
+ }): import("react/jsx-runtime").JSX.Element;
17
+ export interface ChatSourceProps {
18
+ title: string;
19
+ url: string;
20
+ description?: string;
21
+ className?: string;
22
+ }
23
+ export declare function ChatSource({ title, url, description, className }: ChatSourceProps): import("react/jsx-runtime").JSX.Element;
24
+ export interface ChatInlineCitationProps {
25
+ index: number;
26
+ href?: string;
27
+ onClick?: () => void;
28
+ className?: string;
29
+ }
30
+ export declare function ChatInlineCitation({ index, href, onClick, className, }: ChatInlineCitationProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,113 @@
1
+ 'use client';
2
+ import { Collapsible, CollapsibleTrigger, CollapsibleContent } from '../../chunk-VJIL7W55.js';
3
+ import { LinkIcon } from '../../chunk-TBKJ34BB.js';
4
+ import { ChevronDownIcon } from '../../chunk-HJBXUXTD.js';
5
+ import '../../chunk-ASKFAYYR.js';
6
+ import { cn } from '../../chunk-QYZT24TS.js';
7
+ import { jsx, jsxs } from 'react/jsx-runtime';
8
+
9
+ function ChatSources({
10
+ children,
11
+ className,
12
+ defaultOpen = false
13
+ }) {
14
+ return /* @__PURE__ */ jsx(Collapsible, { defaultOpen, className: cn("space-y-1", className), children });
15
+ }
16
+ function ChatSourcesTrigger({ count, className }) {
17
+ const label = `Used ${count} source${count === 1 ? "" : "s"}`;
18
+ return /* @__PURE__ */ jsxs(
19
+ CollapsibleTrigger,
20
+ {
21
+ "aria-label": label,
22
+ className: cn(
23
+ "inline-flex min-h-10 min-w-10 items-center gap-1.5 rounded-lg px-2 py-1",
24
+ "text-xs text-text-secondary",
25
+ "hover:bg-surface/80 hover:text-text-primary transition-colors",
26
+ "focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-accent",
27
+ className
28
+ ),
29
+ children: [
30
+ /* @__PURE__ */ jsx(LinkIcon, { size: 14, "aria-hidden": "true" }),
31
+ /* @__PURE__ */ jsx("span", { children: label }),
32
+ /* @__PURE__ */ jsx(
33
+ ChevronDownIcon,
34
+ {
35
+ size: 14,
36
+ "aria-hidden": "true",
37
+ className: "transition-transform [[data-state=open]>&]:rotate-180"
38
+ }
39
+ )
40
+ ]
41
+ }
42
+ );
43
+ }
44
+ function ChatSourcesContent({
45
+ children,
46
+ className
47
+ }) {
48
+ return /* @__PURE__ */ jsx(CollapsibleContent, { children: /* @__PURE__ */ jsx(
49
+ "div",
50
+ {
51
+ role: "list",
52
+ className: cn("space-y-1 rounded-lg border border-border p-2", className),
53
+ children
54
+ }
55
+ ) });
56
+ }
57
+ function ChatSource({ title, url, description, className }) {
58
+ let hostname = "";
59
+ try {
60
+ hostname = new URL(url).hostname.replace(/^www\./, "");
61
+ } catch {
62
+ hostname = url;
63
+ }
64
+ return /* @__PURE__ */ jsxs("div", { role: "listitem", className: cn("rounded-md px-2 py-1.5", className), children: [
65
+ /* @__PURE__ */ jsx(
66
+ "a",
67
+ {
68
+ href: url,
69
+ target: "_blank",
70
+ rel: "noopener noreferrer",
71
+ className: cn(
72
+ "text-sm font-medium text-text-primary hover:underline",
73
+ "focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-accent rounded"
74
+ ),
75
+ children: title
76
+ }
77
+ ),
78
+ /* @__PURE__ */ jsx("p", { className: "text-xs text-text-tertiary", children: hostname }),
79
+ !!description && /* @__PURE__ */ jsx("p", { className: "mt-0.5 text-xs text-text-secondary", children: description })
80
+ ] });
81
+ }
82
+ function ChatInlineCitation({
83
+ index,
84
+ href,
85
+ onClick,
86
+ className
87
+ }) {
88
+ const baseClass = cn(
89
+ "inline-flex h-4 min-w-4 items-center justify-center rounded-sm",
90
+ "bg-accent/10 px-0.5 text-[10px] font-medium leading-none text-accent",
91
+ "hover:bg-accent/20 transition-colors",
92
+ "focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-accent",
93
+ className
94
+ );
95
+ if (href) {
96
+ return /* @__PURE__ */ jsx("sup", { children: /* @__PURE__ */ jsx("a", { href, "aria-label": `Source ${index}`, className: baseClass, children: index }) });
97
+ }
98
+ if (onClick) {
99
+ return /* @__PURE__ */ jsx("sup", { children: /* @__PURE__ */ jsx(
100
+ "button",
101
+ {
102
+ type: "button",
103
+ onClick,
104
+ "aria-label": `Source ${index}`,
105
+ className: baseClass,
106
+ children: index
107
+ }
108
+ ) });
109
+ }
110
+ return /* @__PURE__ */ jsx("sup", { children: /* @__PURE__ */ jsx("span", { "aria-label": `Source ${index}`, className: baseClass, children: index }) });
111
+ }
112
+
113
+ export { ChatInlineCitation, ChatSource, ChatSources, ChatSourcesContent, ChatSourcesTrigger };
@@ -0,0 +1,13 @@
1
+ import { type ReactNode } from 'react';
2
+ export interface ChatSuggestionsProps {
3
+ children: ReactNode;
4
+ className?: string;
5
+ }
6
+ export declare function ChatSuggestions({ children, className }: ChatSuggestionsProps): import("react/jsx-runtime").JSX.Element;
7
+ export interface ChatSuggestionProps {
8
+ value: string;
9
+ onSelect: (value: string) => void;
10
+ children: ReactNode;
11
+ className?: string;
12
+ }
13
+ export declare function ChatSuggestion({ value, onSelect, children, className, }: ChatSuggestionProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,41 @@
1
+ 'use client';
2
+ import { cn } from '../../chunk-QYZT24TS.js';
3
+ import { jsx } from 'react/jsx-runtime';
4
+
5
+ function ChatSuggestions({ children, className }) {
6
+ return /* @__PURE__ */ jsx(
7
+ "div",
8
+ {
9
+ role: "group",
10
+ "aria-label": "Suggested prompts",
11
+ className: cn(
12
+ "flex gap-2 overflow-x-auto scrollbar-none pb-1",
13
+ className
14
+ ),
15
+ children
16
+ }
17
+ );
18
+ }
19
+ function ChatSuggestion({
20
+ value,
21
+ onSelect,
22
+ children,
23
+ className
24
+ }) {
25
+ return /* @__PURE__ */ jsx(
26
+ "button",
27
+ {
28
+ type: "button",
29
+ onClick: () => onSelect(value),
30
+ className: cn(
31
+ "shrink-0 rounded-full border border-border px-3 py-1.5 text-xs text-text-secondary",
32
+ "hover:bg-surface/80 hover:text-text-primary",
33
+ "transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-accent",
34
+ className
35
+ ),
36
+ children
37
+ }
38
+ );
39
+ }
40
+
41
+ export { ChatSuggestion, ChatSuggestions };
@@ -0,0 +1,12 @@
1
+ import { type Ref } from 'react';
2
+ export interface ChatThinkingMessageProps extends React.HTMLAttributes<HTMLDivElement> {
3
+ ref?: Ref<HTMLDivElement>;
4
+ }
5
+ /**
6
+ * ChatThinkingMessage - animated "thinking" dots for pre-first-token wait.
7
+ *
8
+ * Renders 3 dots with staggered opacity pulse (0s, 0.2s, 0.4s delay).
9
+ * Respects prefers-reduced-motion by rendering static dots.
10
+ * Includes role="status" and aria-live="polite" for screen readers.
11
+ */
12
+ export declare function ChatThinkingMessage({ className, ref, ...props }: ChatThinkingMessageProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,55 @@
1
+ 'use client';
2
+ import { m } from '../../chunk-PD2YEH3H.js';
3
+ import { bezier } from '../../chunk-CRY67BIF.js';
4
+ import '../../chunk-HJC6U46F.js';
5
+ import { cn } from '../../chunk-QYZT24TS.js';
6
+ import { useReducedMotion } from 'motion/react';
7
+ import { jsx } from 'react/jsx-runtime';
8
+
9
+ var DOT_COUNT = 3;
10
+ var DOT_DELAY_S = 0.2;
11
+ var PULSE_TRANSITION = {
12
+ duration: 1.2,
13
+ repeat: Infinity,
14
+ ease: bezier["ease-in-out"]
15
+ };
16
+ function ChatThinkingMessage({
17
+ className,
18
+ ref,
19
+ ...props
20
+ }) {
21
+ const prefersReduced = useReducedMotion();
22
+ return /* @__PURE__ */ jsx(
23
+ "div",
24
+ {
25
+ ref,
26
+ role: "status",
27
+ "aria-live": "polite",
28
+ "aria-label": "Thinking",
29
+ className: cn("flex items-center gap-1", className),
30
+ ...props,
31
+ children: Array.from(
32
+ { length: DOT_COUNT },
33
+ (_, i) => prefersReduced ? /* @__PURE__ */ jsx(
34
+ "span",
35
+ {
36
+ "data-dot": i,
37
+ className: "h-1.5 w-1.5 rounded-full bg-text-secondary"
38
+ },
39
+ i
40
+ ) : /* @__PURE__ */ jsx(
41
+ m.span,
42
+ {
43
+ "data-dot": i,
44
+ className: "h-1.5 w-1.5 rounded-full bg-accent",
45
+ animate: { opacity: [0.3, 1, 0.3] },
46
+ transition: { ...PULSE_TRANSITION, delay: i * DOT_DELAY_S }
47
+ },
48
+ i
49
+ )
50
+ )
51
+ }
52
+ );
53
+ }
54
+
55
+ export { ChatThinkingMessage };
@@ -0,0 +1,41 @@
1
+ import { type ReactNode, type Ref } from 'react';
2
+ export type ChatToolCallState = 'input-streaming' | 'input-available' | 'approval-requested' | 'approval-responded' | 'output-available' | 'output-error' | 'output-denied';
3
+ declare const chatToolCallVariants: (props?: ({
4
+ state?: "input-streaming" | "input-available" | "approval-requested" | "approval-responded" | "output-available" | "output-error" | "output-denied" | null | undefined;
5
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
6
+ export interface ChatToolCallProps {
7
+ state: ChatToolCallState;
8
+ defaultOpen?: boolean;
9
+ open?: boolean;
10
+ onOpenChange?: (open: boolean) => void;
11
+ children: ReactNode;
12
+ className?: string;
13
+ ref?: Ref<HTMLDivElement>;
14
+ }
15
+ export declare const ChatToolCall: import("react").NamedExoticComponent<ChatToolCallProps>;
16
+ export interface ChatToolCallHeaderProps {
17
+ name?: string;
18
+ summary?: string | null;
19
+ children?: ReactNode;
20
+ className?: string;
21
+ }
22
+ export declare const ChatToolCallHeader: import("react").NamedExoticComponent<ChatToolCallHeaderProps>;
23
+ export interface ChatToolCallContentProps {
24
+ children: ReactNode;
25
+ className?: string;
26
+ }
27
+ export declare const ChatToolCallContent: import("react").NamedExoticComponent<ChatToolCallContentProps>;
28
+ export interface ChatToolCallInputProps {
29
+ children: string;
30
+ className?: string;
31
+ }
32
+ export declare function ChatToolCallInput({ children, className }: ChatToolCallInputProps): import("react/jsx-runtime").JSX.Element;
33
+ export interface ChatToolCallOutputProps {
34
+ children: string;
35
+ className?: string;
36
+ }
37
+ export declare function ChatToolCallOutput({ children, className }: ChatToolCallOutputProps): import("react/jsx-runtime").JSX.Element;
38
+ export declare function ChatToolCallStatus({ className }: {
39
+ className?: string;
40
+ }): import("react/jsx-runtime").JSX.Element;
41
+ export { chatToolCallVariants };
@@ -0,0 +1,192 @@
1
+ 'use client';
2
+ import { Collapsible, CollapsibleTrigger, CollapsibleContent } from '../../chunk-VJIL7W55.js';
3
+ import { LoaderCircleIcon } from '../../chunk-BRP6D56U.js';
4
+ import { ClockIcon } from '../../chunk-6G3RRWJT.js';
5
+ import { CheckIcon } from '../../chunk-CXACRCZ4.js';
6
+ import { ShieldCheckIcon } from '../../chunk-BFLN54VR.js';
7
+ import { XIcon } from '../../chunk-UIUMTURU.js';
8
+ import { Badge } from '../../chunk-S4JAHKOP.js';
9
+ import { ChevronDownIcon } from '../../chunk-HJBXUXTD.js';
10
+ import '../../chunk-ASKFAYYR.js';
11
+ import { cn } from '../../chunk-QYZT24TS.js';
12
+ import { createContext, memo, useContext } from 'react';
13
+ import { cva } from 'class-variance-authority';
14
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
15
+
16
+ var ChatToolCallContext = createContext(void 0);
17
+ function useChatToolCallState() {
18
+ return useContext(ChatToolCallContext);
19
+ }
20
+ var chatToolCallVariants = cva(
21
+ "rounded-xl border glass-panel transition-colors",
22
+ {
23
+ variants: {
24
+ state: {
25
+ "input-streaming": "border-accent/40",
26
+ "input-available": "border-accent/40",
27
+ "approval-requested": "border-warning/40",
28
+ "approval-responded": "border-accent/40",
29
+ "output-available": "border-success/40",
30
+ "output-error": "border-destructive/40",
31
+ "output-denied": "border-destructive/40"
32
+ }
33
+ },
34
+ defaultVariants: {
35
+ state: "input-streaming"
36
+ }
37
+ }
38
+ );
39
+ function getStatusMeta(state) {
40
+ switch (state) {
41
+ case "input-streaming":
42
+ return {
43
+ label: "Streaming",
44
+ icon: /* @__PURE__ */ jsx(LoaderCircleIcon, { size: 12, className: "animate-spin text-text-tertiary" }),
45
+ badgeVariant: "secondary"
46
+ };
47
+ case "input-available":
48
+ return {
49
+ label: "Running",
50
+ icon: /* @__PURE__ */ jsx(LoaderCircleIcon, { size: 12, className: "animate-spin text-accent" }),
51
+ badgeVariant: "accent"
52
+ };
53
+ case "approval-requested":
54
+ return {
55
+ label: "Approval needed",
56
+ icon: /* @__PURE__ */ jsx(ClockIcon, { size: 12, className: "text-warning" }),
57
+ badgeVariant: "outline"
58
+ };
59
+ case "approval-responded":
60
+ return {
61
+ label: "Approved",
62
+ icon: /* @__PURE__ */ jsx(ShieldCheckIcon, { size: 12, className: "text-accent" }),
63
+ badgeVariant: "accent"
64
+ };
65
+ case "output-available":
66
+ return {
67
+ label: "Completed",
68
+ icon: /* @__PURE__ */ jsx(CheckIcon, { size: 12, className: "text-success" }),
69
+ badgeVariant: "secondary"
70
+ };
71
+ case "output-error":
72
+ return {
73
+ label: "Error",
74
+ icon: /* @__PURE__ */ jsx(XIcon, { size: 12, className: "text-destructive" }),
75
+ badgeVariant: "destructive"
76
+ };
77
+ case "output-denied":
78
+ return {
79
+ label: "Denied",
80
+ icon: /* @__PURE__ */ jsx(XIcon, { size: 12, className: "text-warning" }),
81
+ badgeVariant: "destructive"
82
+ };
83
+ default:
84
+ return {
85
+ label: "Pending",
86
+ icon: /* @__PURE__ */ jsx(LoaderCircleIcon, { size: 12, className: "animate-spin text-text-tertiary" }),
87
+ badgeVariant: "secondary"
88
+ };
89
+ }
90
+ }
91
+ var ChatToolCall = memo(function ChatToolCall2({
92
+ state,
93
+ defaultOpen = false,
94
+ open,
95
+ onOpenChange,
96
+ children,
97
+ className,
98
+ ref
99
+ }) {
100
+ return /* @__PURE__ */ jsx(ChatToolCallContext.Provider, { value: state, children: /* @__PURE__ */ jsx(
101
+ Collapsible,
102
+ {
103
+ ref,
104
+ defaultOpen,
105
+ open,
106
+ onOpenChange,
107
+ className: cn(chatToolCallVariants({ state }), className),
108
+ children
109
+ }
110
+ ) });
111
+ });
112
+ var ChatToolCallHeader = memo(function ChatToolCallHeader2({
113
+ name,
114
+ summary,
115
+ children,
116
+ className
117
+ }) {
118
+ const state = useChatToolCallState();
119
+ const { label, icon, badgeVariant } = getStatusMeta(state);
120
+ return /* @__PURE__ */ jsx(
121
+ CollapsibleTrigger,
122
+ {
123
+ className: cn(
124
+ "flex w-full items-center gap-2 px-3 py-2 text-xs transition-colors hover:bg-surface/60 rounded-xl",
125
+ className
126
+ ),
127
+ children: children ?? /* @__PURE__ */ jsxs(Fragment, { children: [
128
+ icon,
129
+ /* @__PURE__ */ jsx("code", { className: "font-medium text-text-primary", children: name ?? "Tool" }),
130
+ Boolean(summary) && /* @__PURE__ */ jsx("span", { className: "truncate text-[11px] text-text-tertiary", children: summary }),
131
+ /* @__PURE__ */ jsx(
132
+ Badge,
133
+ {
134
+ variant: badgeVariant,
135
+ "data-testid": "chat-tool-call-badge",
136
+ className: "ml-auto rounded-full px-2 py-0 text-[10px]",
137
+ children: label
138
+ }
139
+ ),
140
+ /* @__PURE__ */ jsx(
141
+ ChevronDownIcon,
142
+ {
143
+ size: 12,
144
+ className: "text-text-tertiary transition-transform [[data-state=open]>&]:rotate-180"
145
+ }
146
+ )
147
+ ] })
148
+ }
149
+ );
150
+ });
151
+ var ChatToolCallContent = memo(function ChatToolCallContent2({
152
+ children,
153
+ className
154
+ }) {
155
+ return /* @__PURE__ */ jsx(
156
+ CollapsibleContent,
157
+ {
158
+ className: cn("border-t border-border/40 px-3 py-2", className),
159
+ children
160
+ }
161
+ );
162
+ });
163
+ function ChatToolCallInput({ children, className }) {
164
+ return /* @__PURE__ */ jsxs("div", { className: cn("text-xs", className), children: [
165
+ /* @__PURE__ */ jsx("p", { className: "mb-1 font-medium text-text-secondary", children: "Input" }),
166
+ /* @__PURE__ */ jsx("pre", { className: "overflow-x-auto rounded-lg bg-surface/60 p-2 text-[11px] text-text-secondary", children })
167
+ ] });
168
+ }
169
+ function ChatToolCallOutput({ children, className }) {
170
+ const state = useChatToolCallState();
171
+ const isError = state === "output-error" || state === "output-denied";
172
+ return /* @__PURE__ */ jsxs("div", { className: cn("text-xs", className), children: [
173
+ /* @__PURE__ */ jsx("p", { className: "mb-1 font-medium text-text-secondary", children: "Output" }),
174
+ /* @__PURE__ */ jsx(
175
+ "pre",
176
+ {
177
+ className: cn(
178
+ "overflow-x-auto rounded-lg p-2 text-[11px]",
179
+ isError ? "bg-destructive/10 text-destructive" : "bg-surface/60 text-text-secondary"
180
+ ),
181
+ children
182
+ }
183
+ )
184
+ ] });
185
+ }
186
+ function ChatToolCallStatus({ className }) {
187
+ const state = useChatToolCallState();
188
+ const { icon } = getStatusMeta(state);
189
+ return /* @__PURE__ */ jsx("span", { "data-testid": "chat-tool-call-status", className, children: icon });
190
+ }
191
+
192
+ export { ChatToolCall, ChatToolCallContent, ChatToolCallHeader, ChatToolCallInput, ChatToolCallOutput, ChatToolCallStatus, chatToolCallVariants };
@@ -1,6 +1,6 @@
1
1
  import { type VariantProps } from 'class-variance-authority';
2
2
  declare const checkStatusVariants: (props?: ({
3
- status?: "passing" | "failing" | "pending" | "neutral" | null | undefined;
3
+ status?: "pending" | "passing" | "failing" | "neutral" | null | undefined;
4
4
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
5
5
  export interface CheckStatusProps extends React.HTMLAttributes<HTMLSpanElement>, VariantProps<typeof checkStatusVariants> {
6
6
  count?: number;