@nadicodeai/ui 0.1.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 (472) hide show
  1. package/AGENTS.md +114 -0
  2. package/README.md +211 -0
  3. package/dist/ai-elements.d.ts +49 -0
  4. package/dist/ai-elements.d.ts.map +1 -0
  5. package/dist/ai-elements.js +48 -0
  6. package/dist/components/accordion.d.ts +8 -0
  7. package/dist/components/accordion.d.ts.map +1 -0
  8. package/dist/components/accordion.js +18 -0
  9. package/dist/components/action-band.d.ts +10 -0
  10. package/dist/components/action-band.d.ts.map +1 -0
  11. package/dist/components/action-band.js +33 -0
  12. package/dist/components/agent-chat.d.ts +20 -0
  13. package/dist/components/agent-chat.d.ts.map +1 -0
  14. package/dist/components/agent-chat.js +10 -0
  15. package/dist/components/agent-composer.d.ts +56 -0
  16. package/dist/components/agent-composer.d.ts.map +1 -0
  17. package/dist/components/agent-composer.js +60 -0
  18. package/dist/components/agent-message.d.ts +116 -0
  19. package/dist/components/agent-message.d.ts.map +1 -0
  20. package/dist/components/agent-message.js +110 -0
  21. package/dist/components/agent-thread.d.ts +26 -0
  22. package/dist/components/agent-thread.d.ts.map +1 -0
  23. package/dist/components/agent-thread.js +72 -0
  24. package/dist/components/agent-tool-approval.d.ts +32 -0
  25. package/dist/components/agent-tool-approval.d.ts.map +1 -0
  26. package/dist/components/agent-tool-approval.js +61 -0
  27. package/dist/components/ai-elements/agent.d.ts +27 -0
  28. package/dist/components/ai-elements/agent.d.ts.map +1 -0
  29. package/dist/components/ai-elements/agent.js +27 -0
  30. package/dist/components/ai-elements/artifact.d.ts +24 -0
  31. package/dist/components/ai-elements/artifact.d.ts.map +1 -0
  32. package/dist/components/ai-elements/artifact.js +20 -0
  33. package/dist/components/ai-elements/attachments.d.ts +55 -0
  34. package/dist/components/ai-elements/attachments.d.ts.map +1 -0
  35. package/dist/components/ai-elements/attachments.js +125 -0
  36. package/dist/components/ai-elements/audio-player.d.ts +30 -0
  37. package/dist/components/ai-elements/audio-player.d.ts.map +1 -0
  38. package/dist/components/ai-elements/audio-player.js +43 -0
  39. package/dist/components/ai-elements/canvas.d.ts +8 -0
  40. package/dist/components/ai-elements/canvas.d.ts.map +1 -0
  41. package/dist/components/ai-elements/canvas.js +5 -0
  42. package/dist/components/ai-elements/chain-of-thought.d.ts +30 -0
  43. package/dist/components/ai-elements/chain-of-thought.d.ts.map +1 -0
  44. package/dist/components/ai-elements/chain-of-thought.js +49 -0
  45. package/dist/components/ai-elements/checkpoint.d.ts +12 -0
  46. package/dist/components/ai-elements/checkpoint.d.ts.map +1 -0
  47. package/dist/components/ai-elements/checkpoint.js +10 -0
  48. package/dist/components/ai-elements/code-block.d.ts +46 -0
  49. package/dist/components/ai-elements/code-block.d.ts.map +1 -0
  50. package/dist/components/ai-elements/code-block.js +207 -0
  51. package/dist/components/ai-elements/commit.d.ts +65 -0
  52. package/dist/components/ai-elements/commit.d.ts.map +1 -0
  53. package/dist/components/ai-elements/commit.js +95 -0
  54. package/dist/components/ai-elements/confirmation.d.ts +50 -0
  55. package/dist/components/ai-elements/confirmation.d.ts.map +1 -0
  56. package/dist/components/ai-elements/confirmation.js +61 -0
  57. package/dist/components/ai-elements/connection.d.ts +6 -0
  58. package/dist/components/ai-elements/connection.d.ts.map +1 -0
  59. package/dist/components/ai-elements/connection.js +10 -0
  60. package/dist/components/ai-elements/context.d.ts +33 -0
  61. package/dist/components/ai-elements/context.d.ts.map +1 -0
  62. package/dist/components/ai-elements/context.js +164 -0
  63. package/dist/components/ai-elements/controls.d.ts +5 -0
  64. package/dist/components/ai-elements/controls.d.ts.map +1 -0
  65. package/dist/components/ai-elements/controls.js +5 -0
  66. package/dist/components/ai-elements/conversation.d.ts +24 -0
  67. package/dist/components/ai-elements/conversation.d.ts.map +1 -0
  68. package/dist/components/ai-elements/conversation.js +41 -0
  69. package/dist/components/ai-elements/edge.d.ts +6 -0
  70. package/dist/components/ai-elements/edge.d.ts.map +1 -0
  71. package/dist/components/ai-elements/edge.js +88 -0
  72. package/dist/components/ai-elements/environment-variables.d.ts +39 -0
  73. package/dist/components/ai-elements/environment-variables.d.ts.map +1 -0
  74. package/dist/components/ai-elements/environment-variables.js +87 -0
  75. package/dist/components/ai-elements/file-tree.d.ts +27 -0
  76. package/dist/components/ai-elements/file-tree.d.ts.map +1 -0
  77. package/dist/components/ai-elements/file-tree.js +71 -0
  78. package/dist/components/ai-elements/image.d.ts +7 -0
  79. package/dist/components/ai-elements/image.d.ts.map +1 -0
  80. package/dist/components/ai-elements/image.js +3 -0
  81. package/dist/components/ai-elements/inline-citation.d.ts +39 -0
  82. package/dist/components/ai-elements/inline-citation.d.ts.map +1 -0
  83. package/dist/components/ai-elements/inline-citation.js +86 -0
  84. package/dist/components/ai-elements/jsx-preview.d.ts +30 -0
  85. package/dist/components/ai-elements/jsx-preview.d.ts.map +1 -0
  86. package/dist/components/ai-elements/jsx-preview.js +168 -0
  87. package/dist/components/ai-elements/message.d.ts +38 -0
  88. package/dist/components/ai-elements/message.d.ts.map +1 -0
  89. package/dist/components/ai-elements/message.js +92 -0
  90. package/dist/components/ai-elements/mic-selector.d.ts +46 -0
  91. package/dist/components/ai-elements/mic-selector.d.ts.map +1 -0
  92. package/dist/components/ai-elements/mic-selector.js +184 -0
  93. package/dist/components/ai-elements/model-selector.d.ts +36 -0
  94. package/dist/components/ai-elements/model-selector.d.ts.map +1 -0
  95. package/dist/components/ai-elements/model-selector.js +18 -0
  96. package/dist/components/ai-elements/node.d.ts +22 -0
  97. package/dist/components/ai-elements/node.d.ts.map +1 -0
  98. package/dist/components/ai-elements/node.js +12 -0
  99. package/dist/components/ai-elements/open-in-chat.d.ts +29 -0
  100. package/dist/components/ai-elements/open-in-chat.d.ts.map +1 -0
  101. package/dist/components/ai-elements/open-in-chat.js +100 -0
  102. package/dist/components/ai-elements/package-info.d.ts +30 -0
  103. package/dist/components/ai-elements/package-info.d.ts.map +1 -0
  104. package/dist/components/ai-elements/package-info.js +50 -0
  105. package/dist/components/ai-elements/panel.d.ts +6 -0
  106. package/dist/components/ai-elements/panel.d.ts.map +1 -0
  107. package/dist/components/ai-elements/panel.js +5 -0
  108. package/dist/components/ai-elements/persona.d.ts +49 -0
  109. package/dist/components/ai-elements/persona.d.ts.map +1 -0
  110. package/dist/components/ai-elements/persona.js +176 -0
  111. package/dist/components/ai-elements/plan.d.ts +26 -0
  112. package/dist/components/ai-elements/plan.d.ts.map +1 -0
  113. package/dist/components/ai-elements/plan.js +34 -0
  114. package/dist/components/ai-elements/prompt-input.d.ts +149 -0
  115. package/dist/components/ai-elements/prompt-input.d.ts.map +1 -0
  116. package/dist/components/ai-elements/prompt-input.js +715 -0
  117. package/dist/components/ai-elements/queue.d.ts +62 -0
  118. package/dist/components/ai-elements/queue.d.ts.map +1 -0
  119. package/dist/components/ai-elements/queue.js +28 -0
  120. package/dist/components/ai-elements/reasoning.d.ts +27 -0
  121. package/dist/components/ai-elements/reasoning.d.ts.map +1 -0
  122. package/dist/components/ai-elements/reasoning.js +95 -0
  123. package/dist/components/ai-elements/sandbox.d.ts +25 -0
  124. package/dist/components/ai-elements/sandbox.d.ts.map +1 -0
  125. package/dist/components/ai-elements/sandbox.js +15 -0
  126. package/dist/components/ai-elements/schema-display.d.ts +56 -0
  127. package/dist/components/ai-elements/schema-display.d.ts.map +1 -0
  128. package/dist/components/ai-elements/schema-display.js +90 -0
  129. package/dist/components/ai-elements/shimmer.d.ts +10 -0
  130. package/dist/components/ai-elements/shimmer.d.ts.map +1 -0
  131. package/dist/components/ai-elements/shimmer.js +28 -0
  132. package/dist/components/ai-elements/snippet.d.ts +19 -0
  133. package/dist/components/ai-elements/snippet.d.ts.map +1 -0
  134. package/dist/components/ai-elements/snippet.js +46 -0
  135. package/dist/components/ai-elements/sources.d.ts +13 -0
  136. package/dist/components/ai-elements/sources.d.ts.map +1 -0
  137. package/dist/components/ai-elements/sources.js +9 -0
  138. package/dist/components/ai-elements/speech-input.d.ts +55 -0
  139. package/dist/components/ai-elements/speech-input.d.ts.map +1 -0
  140. package/dist/components/ai-elements/speech-input.js +187 -0
  141. package/dist/components/ai-elements/stack-trace.d.ts +38 -0
  142. package/dist/components/ai-elements/stack-trace.d.ts.map +1 -0
  143. package/dist/components/ai-elements/stack-trace.js +194 -0
  144. package/dist/components/ai-elements/suggestion.d.ts +11 -0
  145. package/dist/components/ai-elements/suggestion.d.ts.map +1 -0
  146. package/dist/components/ai-elements/suggestion.js +13 -0
  147. package/dist/components/ai-elements/task.d.ts +15 -0
  148. package/dist/components/ai-elements/task.d.ts.map +1 -0
  149. package/dist/components/ai-elements/task.js +10 -0
  150. package/dist/components/ai-elements/terminal.d.ts +28 -0
  151. package/dist/components/ai-elements/terminal.d.ts.map +1 -0
  152. package/dist/components/ai-elements/terminal.js +68 -0
  153. package/dist/components/ai-elements/test-results.d.ts +59 -0
  154. package/dist/components/ai-elements/test-results.d.ts.map +1 -0
  155. package/dist/components/ai-elements/test-results.js +98 -0
  156. package/dist/components/ai-elements/tool.d.ts +32 -0
  157. package/dist/components/ai-elements/tool.d.ts.map +1 -0
  158. package/dist/components/ai-elements/tool.js +49 -0
  159. package/dist/components/ai-elements/toolbar.d.ts +6 -0
  160. package/dist/components/ai-elements/toolbar.d.ts.map +1 -0
  161. package/dist/components/ai-elements/toolbar.js +5 -0
  162. package/dist/components/ai-elements/transcription.d.ts +17 -0
  163. package/dist/components/ai-elements/transcription.d.ts.map +1 -0
  164. package/dist/components/ai-elements/transcription.js +36 -0
  165. package/dist/components/ai-elements/voice-selector.d.ts +64 -0
  166. package/dist/components/ai-elements/voice-selector.d.ts.map +1 -0
  167. package/dist/components/ai-elements/voice-selector.js +224 -0
  168. package/dist/components/ai-elements/web-preview.d.ts +35 -0
  169. package/dist/components/ai-elements/web-preview.d.ts.map +1 -0
  170. package/dist/components/ai-elements/web-preview.js +66 -0
  171. package/dist/components/alert-dialog.d.ts +19 -0
  172. package/dist/components/alert-dialog.d.ts.map +1 -0
  173. package/dist/components/alert-dialog.js +42 -0
  174. package/dist/components/alert.d.ts +10 -0
  175. package/dist/components/alert.d.ts.map +1 -0
  176. package/dist/components/alert.js +24 -0
  177. package/dist/components/artifact-panel.d.ts +131 -0
  178. package/dist/components/artifact-panel.d.ts.map +1 -0
  179. package/dist/components/artifact-panel.js +189 -0
  180. package/dist/components/aspect-ratio.d.ts +4 -0
  181. package/dist/components/aspect-ratio.d.ts.map +1 -0
  182. package/dist/components/aspect-ratio.js +7 -0
  183. package/dist/components/automation-section.d.ts +76 -0
  184. package/dist/components/automation-section.d.ts.map +1 -0
  185. package/dist/components/automation-section.js +80 -0
  186. package/dist/components/avatar.d.ts +12 -0
  187. package/dist/components/avatar.d.ts.map +1 -0
  188. package/dist/components/avatar.js +23 -0
  189. package/dist/components/badge.d.ts +10 -0
  190. package/dist/components/badge.d.ts.map +1 -0
  191. package/dist/components/badge.js +25 -0
  192. package/dist/components/benefits-bento.d.ts +15 -0
  193. package/dist/components/benefits-bento.d.ts.map +1 -0
  194. package/dist/components/benefits-bento.js +6 -0
  195. package/dist/components/bento.d.ts +28 -0
  196. package/dist/components/bento.d.ts.map +1 -0
  197. package/dist/components/bento.js +48 -0
  198. package/dist/components/brand.d.ts +9 -0
  199. package/dist/components/brand.d.ts.map +1 -0
  200. package/dist/components/brand.js +16 -0
  201. package/dist/components/breadcrumb.d.ts +12 -0
  202. package/dist/components/breadcrumb.d.ts.map +1 -0
  203. package/dist/components/breadcrumb.js +28 -0
  204. package/dist/components/button-group.d.ts +12 -0
  205. package/dist/components/button-group.d.ts.map +1 -0
  206. package/dist/components/button-group.js +28 -0
  207. package/dist/components/button.d.ts +11 -0
  208. package/dist/components/button.d.ts.map +1 -0
  209. package/dist/components/button.js +36 -0
  210. package/dist/components/calendar.d.ts +9 -0
  211. package/dist/components/calendar.d.ts.map +1 -0
  212. package/dist/components/calendar.js +76 -0
  213. package/dist/components/card-marketing.d.ts +30 -0
  214. package/dist/components/card-marketing.d.ts.map +1 -0
  215. package/dist/components/card-marketing.js +48 -0
  216. package/dist/components/card.d.ts +10 -0
  217. package/dist/components/card.d.ts.map +1 -0
  218. package/dist/components/card.js +24 -0
  219. package/dist/components/carousel.d.ts +20 -0
  220. package/dist/components/carousel.d.ts.map +1 -0
  221. package/dist/components/carousel.js +91 -0
  222. package/dist/components/chart.d.ts +44 -0
  223. package/dist/components/chart.d.ts.map +1 -0
  224. package/dist/components/chart.js +132 -0
  225. package/dist/components/checkbox.d.ts +5 -0
  226. package/dist/components/checkbox.d.ts.map +1 -0
  227. package/dist/components/checkbox.js +9 -0
  228. package/dist/components/code-editor-mockup.d.ts +25 -0
  229. package/dist/components/code-editor-mockup.d.ts.map +1 -0
  230. package/dist/components/code-editor-mockup.js +47 -0
  231. package/dist/components/collapsible.d.ts +6 -0
  232. package/dist/components/collapsible.d.ts.map +1 -0
  233. package/dist/components/collapsible.js +13 -0
  234. package/dist/components/combobox.d.ts +25 -0
  235. package/dist/components/combobox.d.ts.map +1 -0
  236. package/dist/components/combobox.js +58 -0
  237. package/dist/components/command.d.ts +19 -0
  238. package/dist/components/command.d.ts.map +1 -0
  239. package/dist/components/command.js +34 -0
  240. package/dist/components/contact.d.ts +20 -0
  241. package/dist/components/contact.d.ts.map +1 -0
  242. package/dist/components/contact.js +24 -0
  243. package/dist/components/context-menu.d.ts +26 -0
  244. package/dist/components/context-menu.d.ts.map +1 -0
  245. package/dist/components/context-menu.js +51 -0
  246. package/dist/components/dashboard-shell.d.ts +24 -0
  247. package/dist/components/dashboard-shell.d.ts.map +1 -0
  248. package/dist/components/dashboard-shell.js +8 -0
  249. package/dist/components/demo-surface.d.ts +26 -0
  250. package/dist/components/demo-surface.d.ts.map +1 -0
  251. package/dist/components/demo-surface.js +14 -0
  252. package/dist/components/desktop-shell.d.ts +28 -0
  253. package/dist/components/desktop-shell.d.ts.map +1 -0
  254. package/dist/components/desktop-shell.js +8 -0
  255. package/dist/components/dialog.d.ts +18 -0
  256. package/dist/components/dialog.d.ts.map +1 -0
  257. package/dist/components/dialog.js +37 -0
  258. package/dist/components/direction.d.ts +8 -0
  259. package/dist/components/direction.d.ts.map +1 -0
  260. package/dist/components/direction.js +8 -0
  261. package/dist/components/drawer.d.ts +14 -0
  262. package/dist/components/drawer.d.ts.map +1 -0
  263. package/dist/components/drawer.js +34 -0
  264. package/dist/components/dropdown-menu.d.ts +26 -0
  265. package/dist/components/dropdown-menu.d.ts.map +1 -0
  266. package/dist/components/dropdown-menu.js +51 -0
  267. package/dist/components/empty.d.ts +12 -0
  268. package/dist/components/empty.d.ts.map +1 -0
  269. package/dist/components/empty.js +33 -0
  270. package/dist/components/fact-cell.d.ts +21 -0
  271. package/dist/components/fact-cell.d.ts.map +1 -0
  272. package/dist/components/fact-cell.js +29 -0
  273. package/dist/components/faq-item.d.ts +25 -0
  274. package/dist/components/faq-item.d.ts.map +1 -0
  275. package/dist/components/faq-item.js +25 -0
  276. package/dist/components/faq.d.ts +16 -0
  277. package/dist/components/faq.d.ts.map +1 -0
  278. package/dist/components/faq.js +18 -0
  279. package/dist/components/feedback-state.d.ts +14 -0
  280. package/dist/components/feedback-state.d.ts.map +1 -0
  281. package/dist/components/feedback-state.js +70 -0
  282. package/dist/components/field.d.ts +25 -0
  283. package/dist/components/field.d.ts.map +1 -0
  284. package/dist/components/field.js +76 -0
  285. package/dist/components/files-preview.d.ts +36 -0
  286. package/dist/components/files-preview.d.ts.map +1 -0
  287. package/dist/components/files-preview.js +96 -0
  288. package/dist/components/footer.d.ts +32 -0
  289. package/dist/components/footer.d.ts.map +1 -0
  290. package/dist/components/footer.js +53 -0
  291. package/dist/components/form.d.ts +25 -0
  292. package/dist/components/form.d.ts.map +1 -0
  293. package/dist/components/form.js +59 -0
  294. package/dist/components/hero-split.d.ts +23 -0
  295. package/dist/components/hero-split.d.ts.map +1 -0
  296. package/dist/components/hero-split.js +34 -0
  297. package/dist/components/hover-card.d.ts +7 -0
  298. package/dist/components/hover-card.d.ts.map +1 -0
  299. package/dist/components/hover-card.js +14 -0
  300. package/dist/components/input-group.d.ts +17 -0
  301. package/dist/components/input-group.d.ts.map +1 -0
  302. package/dist/components/input-group.js +63 -0
  303. package/dist/components/input-otp.d.ts +12 -0
  304. package/dist/components/input-otp.d.ts.map +1 -0
  305. package/dist/components/input-otp.js +21 -0
  306. package/dist/components/input.d.ts +4 -0
  307. package/dist/components/input.d.ts.map +1 -0
  308. package/dist/components/input.js +6 -0
  309. package/dist/components/installer-shell.d.ts +25 -0
  310. package/dist/components/installer-shell.d.ts.map +1 -0
  311. package/dist/components/installer-shell.js +36 -0
  312. package/dist/components/item.d.ts +24 -0
  313. package/dist/components/item.d.ts.map +1 -0
  314. package/dist/components/item.js +67 -0
  315. package/dist/components/kbd.d.ts +4 -0
  316. package/dist/components/kbd.d.ts.map +1 -0
  317. package/dist/components/kbd.js +9 -0
  318. package/dist/components/label.d.ts +5 -0
  319. package/dist/components/label.d.ts.map +1 -0
  320. package/dist/components/label.js +8 -0
  321. package/dist/components/logo-band.d.ts +23 -0
  322. package/dist/components/logo-band.d.ts.map +1 -0
  323. package/dist/components/logo-band.js +35 -0
  324. package/dist/components/logo-tile.d.ts +21 -0
  325. package/dist/components/logo-tile.d.ts.map +1 -0
  326. package/dist/components/logo-tile.js +27 -0
  327. package/dist/components/media-mount.d.ts +13 -0
  328. package/dist/components/media-mount.d.ts.map +1 -0
  329. package/dist/components/media-mount.js +17 -0
  330. package/dist/components/menubar.d.ts +27 -0
  331. package/dist/components/menubar.d.ts.map +1 -0
  332. package/dist/components/menubar.js +54 -0
  333. package/dist/components/native-select.d.ts +8 -0
  334. package/dist/components/native-select.d.ts.map +1 -0
  335. package/dist/components/native-select.js +13 -0
  336. package/dist/components/nav-bar.d.ts +20 -0
  337. package/dist/components/nav-bar.d.ts.map +1 -0
  338. package/dist/components/nav-bar.js +30 -0
  339. package/dist/components/navigation-menu.d.ts +15 -0
  340. package/dist/components/navigation-menu.d.ts.map +1 -0
  341. package/dist/components/navigation-menu.js +32 -0
  342. package/dist/components/newsletter.d.ts +24 -0
  343. package/dist/components/newsletter.d.ts.map +1 -0
  344. package/dist/components/newsletter.js +31 -0
  345. package/dist/components/page-frame.d.ts +30 -0
  346. package/dist/components/page-frame.d.ts.map +1 -0
  347. package/dist/components/page-frame.js +30 -0
  348. package/dist/components/pagination.d.ts +14 -0
  349. package/dist/components/pagination.d.ts.map +1 -0
  350. package/dist/components/pagination.js +29 -0
  351. package/dist/components/plugin-slot-boundary.d.ts +27 -0
  352. package/dist/components/plugin-slot-boundary.d.ts.map +1 -0
  353. package/dist/components/plugin-slot-boundary.js +24 -0
  354. package/dist/components/popover.d.ts +11 -0
  355. package/dist/components/popover.d.ts.map +1 -0
  356. package/dist/components/popover.js +26 -0
  357. package/dist/components/pricing-card.d.ts +35 -0
  358. package/dist/components/pricing-card.d.ts.map +1 -0
  359. package/dist/components/pricing-card.js +55 -0
  360. package/dist/components/pricing.d.ts +28 -0
  361. package/dist/components/pricing.d.ts.map +1 -0
  362. package/dist/components/pricing.js +22 -0
  363. package/dist/components/progress.d.ts +5 -0
  364. package/dist/components/progress.d.ts.map +1 -0
  365. package/dist/components/progress.js +8 -0
  366. package/dist/components/proof-slot.d.ts +8 -0
  367. package/dist/components/proof-slot.d.ts.map +1 -0
  368. package/dist/components/proof-slot.js +8 -0
  369. package/dist/components/quote-card.d.ts +23 -0
  370. package/dist/components/quote-card.d.ts.map +1 -0
  371. package/dist/components/quote-card.js +36 -0
  372. package/dist/components/radio-group.d.ts +6 -0
  373. package/dist/components/radio-group.d.ts.map +1 -0
  374. package/dist/components/radio-group.js +12 -0
  375. package/dist/components/resizable.d.ts +8 -0
  376. package/dist/components/resizable.d.ts.map +1 -0
  377. package/dist/components/resizable.js +14 -0
  378. package/dist/components/scroll-area.d.ts +6 -0
  379. package/dist/components/scroll-area.d.ts.map +1 -0
  380. package/dist/components/scroll-area.js +13 -0
  381. package/dist/components/section-intro.d.ts +18 -0
  382. package/dist/components/section-intro.d.ts.map +1 -0
  383. package/dist/components/section-intro.js +22 -0
  384. package/dist/components/select.d.ts +16 -0
  385. package/dist/components/select.d.ts.map +1 -0
  386. package/dist/components/select.js +38 -0
  387. package/dist/components/separator.d.ts +5 -0
  388. package/dist/components/separator.d.ts.map +1 -0
  389. package/dist/components/separator.js +8 -0
  390. package/dist/components/settings-section.d.ts +31 -0
  391. package/dist/components/settings-section.d.ts.map +1 -0
  392. package/dist/components/settings-section.js +37 -0
  393. package/dist/components/sheet.d.ts +15 -0
  394. package/dist/components/sheet.d.ts.map +1 -0
  395. package/dist/components/sheet.js +40 -0
  396. package/dist/components/shift-band.d.ts +14 -0
  397. package/dist/components/shift-band.d.ts.map +1 -0
  398. package/dist/components/shift-band.js +10 -0
  399. package/dist/components/sidebar.d.ts +70 -0
  400. package/dist/components/sidebar.d.ts.map +1 -0
  401. package/dist/components/sidebar.js +212 -0
  402. package/dist/components/skeleton.d.ts +3 -0
  403. package/dist/components/skeleton.d.ts.map +1 -0
  404. package/dist/components/skeleton.js +6 -0
  405. package/dist/components/slider.d.ts +5 -0
  406. package/dist/components/slider.d.ts.map +1 -0
  407. package/dist/components/slider.js +14 -0
  408. package/dist/components/sonner.d.ts +4 -0
  409. package/dist/components/sonner.d.ts.map +1 -0
  410. package/dist/components/sonner.js +19 -0
  411. package/dist/components/spinner.d.ts +3 -0
  412. package/dist/components/spinner.d.ts.map +1 -0
  413. package/dist/components/spinner.js +7 -0
  414. package/dist/components/stat-block.d.ts +20 -0
  415. package/dist/components/stat-block.d.ts.map +1 -0
  416. package/dist/components/stat-block.js +20 -0
  417. package/dist/components/stats-band.d.ts +18 -0
  418. package/dist/components/stats-band.d.ts.map +1 -0
  419. package/dist/components/stats-band.js +28 -0
  420. package/dist/components/switch.d.ts +7 -0
  421. package/dist/components/switch.d.ts.map +1 -0
  422. package/dist/components/switch.js +8 -0
  423. package/dist/components/table.d.ts +11 -0
  424. package/dist/components/table.d.ts.map +1 -0
  425. package/dist/components/table.js +28 -0
  426. package/dist/components/tabs.d.ts +12 -0
  427. package/dist/components/tabs.d.ts.map +1 -0
  428. package/dist/components/tabs.js +29 -0
  429. package/dist/components/testimonials.d.ts +21 -0
  430. package/dist/components/testimonials.d.ts.map +1 -0
  431. package/dist/components/testimonials.js +28 -0
  432. package/dist/components/textarea.d.ts +4 -0
  433. package/dist/components/textarea.d.ts.map +1 -0
  434. package/dist/components/textarea.js +6 -0
  435. package/dist/components/toggle-group.d.ts +10 -0
  436. package/dist/components/toggle-group.d.ts.map +1 -0
  437. package/dist/components/toggle-group.js +22 -0
  438. package/dist/components/toggle.d.ts +10 -0
  439. package/dist/components/toggle.d.ts.map +1 -0
  440. package/dist/components/toggle.js +26 -0
  441. package/dist/components/tooltip.d.ts +8 -0
  442. package/dist/components/tooltip.d.ts.map +1 -0
  443. package/dist/components/tooltip.js +17 -0
  444. package/dist/components/use-case-bento.d.ts +13 -0
  445. package/dist/components/use-case-bento.d.ts.map +1 -0
  446. package/dist/components/use-case-bento.js +9 -0
  447. package/dist/components/watch-it-work-band.d.ts +11 -0
  448. package/dist/components/watch-it-work-band.d.ts.map +1 -0
  449. package/dist/components/watch-it-work-band.js +8 -0
  450. package/dist/hooks/use-mobile.d.ts +2 -0
  451. package/dist/hooks/use-mobile.d.ts.map +1 -0
  452. package/dist/hooks/use-mobile.js +16 -0
  453. package/dist/index.d.ts +101 -0
  454. package/dist/index.d.ts.map +1 -0
  455. package/dist/index.js +100 -0
  456. package/dist/lib/agent-attachment.d.ts +11 -0
  457. package/dist/lib/agent-attachment.d.ts.map +1 -0
  458. package/dist/lib/agent-attachment.js +19 -0
  459. package/dist/lib/utils.d.ts +3 -0
  460. package/dist/lib/utils.d.ts.map +1 -0
  461. package/dist/lib/utils.js +5 -0
  462. package/dist/styles/globals.css +362 -0
  463. package/docs/agent-work-surfaces.md +98 -0
  464. package/docs/agents/nadicodeai-ui.md +229 -0
  465. package/docs/component-classification.md +44 -0
  466. package/docs/migration/nadia-consumer-readiness.md +85 -0
  467. package/docs/product-compositions.md +77 -0
  468. package/docs/product-sections.md +200 -0
  469. package/docs/terminal-tui-semantics.md +211 -0
  470. package/llms.txt +75 -0
  471. package/package.json +95 -0
  472. package/skills/nadicodeai-ui/SKILL.md +80 -0
@@ -0,0 +1,362 @@
1
+ /*
2
+ * @nadicodeai/ui — Tailwind v4 + shadcn entry stylesheet.
3
+ *
4
+ * Import order is load-bearing: Tailwind first, then the design-system token
5
+ * bridge (the brand @theme + the :root shadcn role map, generated from
6
+ * DESIGN.md by Style Dictionary — ADR 0006). The @theme inline block below
7
+ * lifts semantic role vars into Tailwind's --color-* utility namespace so
8
+ * shadcn utilities (bg-background, text-foreground, border-border, …) resolve
9
+ * to brand tokens.
10
+ *
11
+ * Dark readiness is selector remapping only: :root and .dark assign shadcn
12
+ * roles and package-local product aliases from generated --nc-* tokens or from
13
+ * semantic roles. Product aliases intentionally live here, not in DESIGN.md:
14
+ * their --nc-* names are package-local declarations, while source tokens remain
15
+ * the generated --nc-* declarations imported above. Components consume those
16
+ * roles/aliases and do not carry raw palette utilities or dark: utility classes.
17
+ * DESIGN.md remains the only source of literal values.
18
+ */
19
+ @import "tailwindcss";
20
+ @import "@nadicodeai/design-system/tailwind/theme.css";
21
+ @import "@nadicodeai/design-system/css/tokens.generated.css";
22
+ @import "@xyflow/react/dist/style.css";
23
+
24
+ /*
25
+ * Tailwind v4's dark: variant defaults to an OS media query. Keep it class
26
+ * gated so a consuming app must opt in with a .dark ancestor. Shared components
27
+ * still do not ship dark: utilities; the semantic remap below carries dark mode.
28
+ */
29
+ @custom-variant dark (&:where(.dark, .dark *));
30
+
31
+ @theme inline {
32
+ --color-background: var(--background);
33
+ --color-foreground: var(--foreground);
34
+
35
+ --color-card: var(--card);
36
+ --color-card-foreground: var(--card-foreground);
37
+
38
+ --color-popover: var(--popover);
39
+ --color-popover-foreground: var(--popover-foreground);
40
+
41
+ --color-primary: var(--primary);
42
+ --color-primary-foreground: var(--primary-foreground);
43
+
44
+ --color-secondary: var(--secondary);
45
+ --color-secondary-foreground: var(--secondary-foreground);
46
+
47
+ --color-muted: var(--muted);
48
+ --color-muted-foreground: var(--muted-foreground);
49
+
50
+ --color-accent: var(--accent);
51
+ --color-accent-foreground: var(--accent-foreground);
52
+
53
+ --color-destructive: var(--destructive);
54
+ --color-destructive-foreground: var(--destructive-foreground);
55
+
56
+ --color-border: var(--border);
57
+ --color-input: var(--input);
58
+ --color-ring: var(--ring);
59
+
60
+ --color-chart-1: var(--chart-1);
61
+ --color-chart-2: var(--chart-2);
62
+ --color-chart-3: var(--chart-3);
63
+ --color-chart-4: var(--chart-4);
64
+ --color-chart-5: var(--chart-5);
65
+
66
+ --color-sidebar: var(--sidebar);
67
+ --color-sidebar-foreground: var(--sidebar-foreground);
68
+ --color-sidebar-primary: var(--sidebar-primary);
69
+ --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
70
+ --color-sidebar-accent: var(--sidebar-accent);
71
+ --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
72
+ --color-sidebar-border: var(--sidebar-border);
73
+ --color-sidebar-ring: var(--sidebar-ring);
74
+ }
75
+
76
+ :root {
77
+ --radius: var(--nc-rounded-md);
78
+ --background: var(--nc-canvas);
79
+ --foreground: var(--nc-ink);
80
+ --card: var(--nc-canvas);
81
+ --card-foreground: var(--nc-ink);
82
+ --popover: var(--nc-canvas);
83
+ --popover-foreground: var(--nc-ink);
84
+ --primary: var(--nc-primary);
85
+ --primary-foreground: var(--nc-on-primary);
86
+ --secondary: var(--nc-canvas-soft);
87
+ --secondary-foreground: var(--nc-ink);
88
+ --muted: var(--nc-canvas-soft);
89
+ --muted-foreground: var(--nc-muted);
90
+ --accent: var(--nc-canvas-soft-2);
91
+ --accent-foreground: var(--nc-ink);
92
+ --destructive: var(--nc-error);
93
+ --destructive-foreground: var(--nc-on-primary);
94
+ --border: var(--nc-line);
95
+ --input: var(--nc-line);
96
+ --ring: var(--nc-link);
97
+ --chart-1: var(--nc-link);
98
+ --chart-2: var(--nc-cyan);
99
+ --chart-3: var(--nc-flag-red);
100
+ --chart-4: var(--nc-gradient-ship-end);
101
+ --chart-5: var(--nc-error);
102
+ --sidebar: var(--nc-canvas-soft);
103
+ --sidebar-foreground: var(--nc-ink);
104
+ --sidebar-primary: var(--nc-primary);
105
+ --sidebar-primary-foreground: var(--nc-on-primary);
106
+ --sidebar-accent: var(--nc-canvas-soft-2);
107
+ --sidebar-accent-foreground: var(--nc-ink);
108
+ --sidebar-border: var(--nc-line);
109
+ --sidebar-ring: var(--nc-link);
110
+
111
+ --nc-app-surface: var(--background);
112
+ --nc-app-surface-chrome: var(--sidebar);
113
+ --nc-app-surface-sidebar: var(--sidebar);
114
+ --nc-app-surface-panel: var(--card);
115
+ --nc-app-surface-panel-hover: var(--accent);
116
+ --nc-app-surface-panel-active: var(--primary);
117
+ --nc-app-surface-elevated: var(--popover);
118
+ --nc-app-surface-overlay: var(--popover);
119
+ --nc-app-border: var(--border);
120
+ --nc-app-border-subtle: var(--nc-seam);
121
+ --nc-app-ring: var(--ring);
122
+ --nc-app-text-primary: var(--foreground);
123
+ --nc-app-text-secondary: var(--nc-body);
124
+ --nc-app-text-tertiary: var(--muted-foreground);
125
+ --nc-app-text-inverse: var(--primary-foreground);
126
+ --nc-app-text-link: var(--nc-link-deep);
127
+ --nc-app-text-code: var(--nc-ink);
128
+ --nc-app-text-placeholder: var(--nc-muted);
129
+ --nc-app-text-disabled: var(--nc-cross);
130
+
131
+ --nc-chat-surface: var(--background);
132
+ --nc-chat-user-surface: var(--primary);
133
+ --nc-chat-assistant-surface: var(--card);
134
+ --nc-chat-system-surface: var(--muted);
135
+ --nc-chat-tool-surface: var(--secondary);
136
+ --nc-chat-reasoning-surface: var(--accent);
137
+ --nc-chat-artifact-surface: var(--popover);
138
+ --nc-chat-inline-ref-surface: var(--nc-link-bg-soft);
139
+ --nc-chat-directive-command: var(--nc-link);
140
+ --nc-chat-directive-skill: var(--nc-cyan-deep);
141
+ --nc-chat-directive-theme: var(--nc-flag-red);
142
+ --nc-composer-surface: var(--popover);
143
+ --nc-composer-foreground: var(--popover-foreground);
144
+ --nc-composer-border: var(--input);
145
+ --nc-composer-ring: var(--ring);
146
+
147
+ --nc-tool-pending: var(--nc-warning-deep);
148
+ --nc-tool-running: var(--nc-state-running);
149
+ --nc-tool-success: var(--nc-success);
150
+ --nc-tool-warning: var(--nc-warning-deep);
151
+ --nc-tool-error: var(--nc-error);
152
+ --nc-tool-muted: var(--nc-muted);
153
+ --nc-tool-approval-run: var(--nc-state-running);
154
+ --nc-tool-approval-deny: var(--nc-error);
155
+ --nc-tool-approval-session: var(--nc-link);
156
+ --nc-tool-approval-always: var(--nc-success);
157
+
158
+ --nc-status-info: var(--nc-link);
159
+ --nc-status-success: var(--nc-success);
160
+ --nc-status-warning: var(--nc-warning-deep);
161
+ --nc-status-error: var(--nc-error);
162
+ --nc-status-paused: var(--nc-muted);
163
+ --nc-status-running: var(--nc-state-running);
164
+ --nc-status-blocked: var(--nc-state-blocked);
165
+ --nc-status-complete: var(--nc-state-complete);
166
+ --nc-status-offline: var(--nc-muted);
167
+ --nc-status-online: var(--nc-success);
168
+
169
+ --nc-diff-added-line: var(--nc-link-bg-soft);
170
+ --nc-diff-added-word: var(--nc-link);
171
+ --nc-diff-removed-line: var(--nc-error-soft);
172
+ --nc-diff-removed-word: var(--nc-error);
173
+ --nc-diff-hunk: var(--accent);
174
+ --nc-diff-file-header: var(--muted-foreground);
175
+ --nc-code-surface: var(--nc-ink);
176
+ --nc-code-border: var(--nc-body);
177
+ --nc-code-token-keyword: var(--nc-cyan);
178
+ --nc-code-token-string: var(--nc-success);
179
+ --nc-code-token-comment: var(--nc-cross);
180
+ --nc-code-token-function: var(--nc-cyan-deep);
181
+
182
+ --nc-terminal-bg: var(--nc-ink);
183
+ --nc-terminal-fg: var(--nc-on-primary);
184
+ --nc-terminal-muted: var(--nc-cross);
185
+ --nc-terminal-cursor: var(--nc-cyan);
186
+ --nc-terminal-selection-bg: var(--nc-link-deep);
187
+ --nc-terminal-ansi-black: var(--nc-ink);
188
+ --nc-terminal-ansi-red: var(--nc-error);
189
+ --nc-terminal-ansi-green: var(--nc-success);
190
+ --nc-terminal-ansi-yellow: var(--nc-warning);
191
+ --nc-terminal-ansi-blue: var(--nc-link);
192
+ --nc-terminal-ansi-magenta: var(--nc-flag-red);
193
+ --nc-terminal-ansi-cyan: var(--nc-cyan);
194
+ --nc-terminal-ansi-white: var(--nc-on-primary);
195
+ --nc-terminal-ansi-bright-black: var(--nc-body);
196
+ --nc-terminal-ansi-bright-red: var(--nc-error-soft);
197
+ --nc-terminal-ansi-bright-green: var(--nc-cyan-soft);
198
+ --nc-terminal-ansi-bright-yellow: var(--nc-warning-soft);
199
+ --nc-terminal-ansi-bright-blue: var(--nc-cyan);
200
+ --nc-terminal-ansi-bright-magenta: var(--nc-flag-red);
201
+ --nc-terminal-ansi-bright-cyan: var(--nc-cyan-soft);
202
+ --nc-terminal-ansi-bright-white: var(--nc-on-primary);
203
+
204
+ --nc-model-provider-surface: var(--muted);
205
+ --nc-model-capability-surface: var(--accent);
206
+ --nc-model-capability-border: var(--nc-link);
207
+ --nc-model-context-meter: var(--nc-warning);
208
+ --nc-model-cost-warning: var(--nc-warning-deep);
209
+ --nc-model-rate-limit: var(--nc-error);
210
+
211
+ --nc-plugin-permission-safe: var(--nc-success);
212
+ --nc-plugin-permission-review: var(--nc-warning-deep);
213
+ --nc-plugin-permission-risk: var(--nc-flag-red);
214
+ --nc-plugin-permission-denied: var(--nc-error);
215
+ --nc-plugin-permission-surface: var(--muted);
216
+ --nc-plugin-permission-foreground: var(--foreground);
217
+ }
218
+
219
+ .dark {
220
+ --radius: var(--nc-rounded-md);
221
+ --background: var(--nc-ink);
222
+ --foreground: var(--nc-on-primary);
223
+ --card: var(--nc-primary);
224
+ --card-foreground: var(--nc-on-primary);
225
+ --popover: var(--nc-primary);
226
+ --popover-foreground: var(--nc-on-primary);
227
+ --primary: var(--nc-on-primary);
228
+ --primary-foreground: var(--nc-ink);
229
+ --secondary: var(--nc-body);
230
+ --secondary-foreground: var(--nc-on-primary);
231
+ --muted: var(--nc-body);
232
+ --muted-foreground: var(--nc-cross);
233
+ --accent: var(--nc-body);
234
+ --accent-foreground: var(--nc-on-primary);
235
+ --destructive: var(--nc-error);
236
+ --destructive-foreground: var(--nc-on-primary);
237
+ --border: var(--nc-body);
238
+ --input: var(--nc-body);
239
+ --ring: var(--nc-cyan);
240
+ --chart-1: var(--nc-cyan);
241
+ --chart-2: var(--nc-link-bg-soft);
242
+ --chart-3: var(--nc-warning);
243
+ --chart-4: var(--nc-flag-red);
244
+ --chart-5: var(--nc-link);
245
+ --sidebar: var(--nc-primary);
246
+ --sidebar-foreground: var(--nc-on-primary);
247
+ --sidebar-primary: var(--nc-cyan);
248
+ --sidebar-primary-foreground: var(--nc-ink);
249
+ --sidebar-accent: var(--nc-body);
250
+ --sidebar-accent-foreground: var(--nc-on-primary);
251
+ --sidebar-border: var(--nc-body);
252
+ --sidebar-ring: var(--nc-cyan);
253
+
254
+ --nc-app-surface: var(--background);
255
+ --nc-app-surface-chrome: var(--sidebar);
256
+ --nc-app-surface-sidebar: var(--sidebar);
257
+ --nc-app-surface-panel: var(--card);
258
+ --nc-app-surface-panel-hover: var(--accent);
259
+ --nc-app-surface-panel-active: var(--primary);
260
+ --nc-app-surface-elevated: var(--popover);
261
+ --nc-app-surface-overlay: var(--popover);
262
+ --nc-app-border: var(--border);
263
+ --nc-app-border-subtle: var(--nc-body);
264
+ --nc-app-ring: var(--ring);
265
+ --nc-app-text-primary: var(--foreground);
266
+ --nc-app-text-secondary: var(--nc-cross);
267
+ --nc-app-text-tertiary: var(--muted-foreground);
268
+ --nc-app-text-inverse: var(--primary-foreground);
269
+ --nc-app-text-link: var(--nc-cyan-soft);
270
+ --nc-app-text-code: var(--nc-on-primary);
271
+ --nc-app-text-placeholder: var(--nc-cross);
272
+ --nc-app-text-disabled: var(--nc-body);
273
+
274
+ --nc-chat-surface: var(--background);
275
+ --nc-chat-user-surface: var(--primary);
276
+ --nc-chat-assistant-surface: var(--card);
277
+ --nc-chat-system-surface: var(--muted);
278
+ --nc-chat-tool-surface: var(--secondary);
279
+ --nc-chat-reasoning-surface: var(--accent);
280
+ --nc-chat-artifact-surface: var(--popover);
281
+ --nc-chat-inline-ref-surface: var(--nc-link-deep);
282
+ --nc-chat-directive-command: var(--nc-cyan);
283
+ --nc-chat-directive-skill: var(--nc-cyan-soft);
284
+ --nc-chat-directive-theme: var(--nc-warning);
285
+ --nc-composer-surface: var(--popover);
286
+ --nc-composer-foreground: var(--popover-foreground);
287
+ --nc-composer-border: var(--input);
288
+ --nc-composer-ring: var(--ring);
289
+
290
+ --nc-tool-pending: var(--nc-warning);
291
+ --nc-tool-running: var(--nc-cyan);
292
+ --nc-tool-success: var(--nc-cyan-soft);
293
+ --nc-tool-warning: var(--nc-warning);
294
+ --nc-tool-error: var(--nc-error-soft);
295
+ --nc-tool-muted: var(--nc-cross);
296
+ --nc-tool-approval-run: var(--nc-cyan-deep);
297
+ --nc-tool-approval-deny: var(--nc-error-soft);
298
+ --nc-tool-approval-session: var(--nc-cyan);
299
+ --nc-tool-approval-always: var(--nc-cyan-soft);
300
+
301
+ --nc-status-info: var(--nc-cyan);
302
+ --nc-status-success: var(--nc-cyan-soft);
303
+ --nc-status-warning: var(--nc-warning);
304
+ --nc-status-error: var(--nc-error-soft);
305
+ --nc-status-paused: var(--nc-cross);
306
+ --nc-status-running: var(--nc-cyan);
307
+ --nc-status-blocked: var(--nc-error-soft);
308
+ --nc-status-complete: var(--nc-cyan-soft);
309
+ --nc-status-offline: var(--nc-cross);
310
+ --nc-status-online: var(--nc-cyan-soft);
311
+
312
+ --nc-diff-added-line: var(--nc-link-deep);
313
+ --nc-diff-added-word: var(--nc-cyan-soft);
314
+ --nc-diff-removed-line: var(--nc-error-deep);
315
+ --nc-diff-removed-word: var(--nc-error-soft);
316
+ --nc-diff-hunk: var(--muted);
317
+ --nc-diff-file-header: var(--muted-foreground);
318
+ --nc-code-surface: var(--nc-primary);
319
+ --nc-code-border: var(--nc-body);
320
+ --nc-code-token-keyword: var(--nc-cyan);
321
+ --nc-code-token-string: var(--nc-cyan-soft);
322
+ --nc-code-token-comment: var(--nc-cross);
323
+ --nc-code-token-function: var(--nc-cyan-soft);
324
+
325
+ --nc-terminal-bg: var(--nc-primary);
326
+ --nc-terminal-fg: var(--nc-on-primary);
327
+ --nc-terminal-muted: var(--nc-cross);
328
+ --nc-terminal-cursor: var(--nc-cyan);
329
+ --nc-terminal-selection-bg: var(--nc-link-deep);
330
+ --nc-terminal-ansi-black: var(--nc-body);
331
+ --nc-terminal-ansi-red: var(--nc-error-soft);
332
+ --nc-terminal-ansi-green: var(--nc-cyan-soft);
333
+ --nc-terminal-ansi-yellow: var(--nc-warning);
334
+ --nc-terminal-ansi-blue: var(--nc-cyan);
335
+ --nc-terminal-ansi-magenta: var(--nc-flag-red);
336
+ --nc-terminal-ansi-cyan: var(--nc-cyan-soft);
337
+ --nc-terminal-ansi-white: var(--nc-on-primary);
338
+ --nc-terminal-ansi-bright-black: var(--nc-cross);
339
+ --nc-terminal-ansi-bright-red: var(--nc-error-soft);
340
+ --nc-terminal-ansi-bright-green: var(--nc-cyan-soft);
341
+ --nc-terminal-ansi-bright-yellow: var(--nc-warning-soft);
342
+ --nc-terminal-ansi-bright-blue: var(--nc-cyan);
343
+ --nc-terminal-ansi-bright-magenta: var(--nc-flag-red);
344
+ --nc-terminal-ansi-bright-cyan: var(--nc-cyan-soft);
345
+ --nc-terminal-ansi-bright-white: var(--nc-on-primary);
346
+
347
+ --nc-model-provider-surface: var(--muted);
348
+ --nc-model-capability-surface: var(--accent);
349
+ --nc-model-capability-border: var(--nc-cyan);
350
+ --nc-model-context-meter: var(--nc-warning);
351
+ --nc-model-cost-warning: var(--nc-warning);
352
+ --nc-model-rate-limit: var(--nc-error-soft);
353
+
354
+ --nc-plugin-permission-safe: var(--nc-cyan-soft);
355
+ --nc-plugin-permission-review: var(--nc-warning);
356
+ --nc-plugin-permission-risk: var(--nc-flag-red);
357
+ --nc-plugin-permission-denied: var(--nc-error-soft);
358
+ --nc-plugin-permission-surface: var(--muted);
359
+ --nc-plugin-permission-foreground: var(--foreground);
360
+ }
361
+
362
+ @source "../components";
@@ -0,0 +1,98 @@
1
+ # Agent Work Surfaces
2
+
3
+ U6 adds presentational agent surfaces for Nadia-flavored chat, composer, approval,
4
+ artifact, file, preview, diff, and terminal summary UI. These components render
5
+ serializable state models and leave runtime behavior to the consuming app.
6
+
7
+ ## Components
8
+
9
+ - `AgentChat` combines an `AgentThread` with an optional `AgentComposer`.
10
+ - `AgentThread` renders message lists plus empty, queued, streaming, interrupted,
11
+ retryable, permission-denied, and fatal state banners.
12
+ - `AgentMessage` renders user, assistant, and system messages with text,
13
+ reasoning summaries, tool calls, source references, artifacts, attachments,
14
+ and state notices.
15
+ - `AgentComposer` renders a controlled or uncontrolled input surface with
16
+ attachments, queue panel, submit or stop control, and slash or mention slots.
17
+ - `AgentToolApproval` renders the approval choices `run`, `deny`, `session`,
18
+ and `always` with stable semantic aliases.
19
+ - `ArtifactPanel` renders text, code, diff, terminal summary, preview,
20
+ stack-trace, and test-result artifacts.
21
+ - `FilesPreview` and `ProjectFileTree` render a serializable project tree and
22
+ file preview without desktop IPC.
23
+
24
+ ## State Models
25
+
26
+ The public models are plain JSON-shaped data. React nodes are accepted only as
27
+ explicit slots such as `composer`, `slashMenu`, `mentionMenu`, `toolActions`,
28
+ `retryAction`, `previewActions`, or `actions`.
29
+
30
+ ```tsx
31
+ import { AgentChat } from "@nadicodeai/ui/components/agent-chat"
32
+
33
+ const messages = [
34
+ {
35
+ id: "assistant-1",
36
+ role: "assistant",
37
+ metadata: {
38
+ kind: "agent",
39
+ label: "Nadia",
40
+ model: "synthetic-model",
41
+ },
42
+ parts: [
43
+ {
44
+ type: "text",
45
+ text: "I reviewed the synthetic fixture.",
46
+ },
47
+ {
48
+ type: "reasoning",
49
+ reasoning: {
50
+ id: "reasoning-1",
51
+ status: "available",
52
+ summary: "Package primitives cover the requested surface.",
53
+ },
54
+ },
55
+ ],
56
+ },
57
+ ] as const
58
+
59
+ export function FixtureChat() {
60
+ return <AgentChat messages={[...messages]} state="idle" />
61
+ }
62
+ ```
63
+
64
+ ## Redaction
65
+
66
+ Use `AgentRedactionRule` whenever a payload cannot be shown. Redaction labels
67
+ exist for secrets, environment values, terminal transcripts, user memory, and
68
+ private reasoning. The component should receive the redaction object instead of
69
+ the protected value.
70
+
71
+ ```tsx
72
+ const redactedTool = {
73
+ id: "tool-1",
74
+ name: "fixture_check",
75
+ status: "error",
76
+ redaction: {
77
+ redacted: true,
78
+ category: "secret",
79
+ },
80
+ } as const
81
+ ```
82
+
83
+ ## Approval Aliases
84
+
85
+ `AgentToolApproval` emits both the user-facing choice and a semantic alias:
86
+
87
+ - `run` -> `approve-once`
88
+ - `deny` -> `reject`
89
+ - `session` -> `approve-session`
90
+ - `always` -> `approve-always`
91
+
92
+ Consumers own the approval action handler and persistence.
93
+
94
+ ## Runtime Boundary
95
+
96
+ These components do not open files, execute commands, persist messages, call
97
+ models, stream tokens, retry tools, or talk to a desktop process. Pass callbacks
98
+ or slots for those behaviors from the consuming app.
@@ -0,0 +1,229 @@
1
+ # NadicodeAI UI Agent Guide
2
+
3
+ This file is shipped with `@nadicodeai/ui` so coding agents can use the package correctly after installation.
4
+
5
+ ## What This Package Provides
6
+
7
+ `@nadicodeai/ui` is the shared NadicodeAI React UI surface:
8
+
9
+ - shadcn source components compiled into package exports
10
+ - Vercel AI Elements source components compiled into package exports
11
+ - React adapters over the design-system grammar and assets
12
+ - reusable NadicodeAI marketing/section compositions
13
+ - presentational Nadia product components for settings, dashboard shells,
14
+ installer states, plugin boundaries, agent chat, artifacts,
15
+ files, diffs, and redacted terminal summaries
16
+ - Tailwind v4 global CSS that bridges shadcn roles to NadicodeAI design tokens
17
+ - package-local agent instructions in `AGENTS.md`, `llms.txt`,
18
+ `docs/migration/nadia-consumer-readiness.md`, and
19
+ `skills/nadicodeai-ui/SKILL.md`
20
+
21
+ The package surface is source-backed. `src/components/` is flat shadcn-style
22
+ source; do not infer or create folders or package namespaces that do not exist.
23
+ Do not add top-level exports for recipes, blocks, agent, or terminal groupings
24
+ until a concrete package API decision adds source, built files, docs, and tests
25
+ together. Product components ship only when the source, public subpath export,
26
+ tests, and docs exist together.
27
+
28
+ Consuming apps own routes, persistence, auth behavior, server state, runtime
29
+ adapters, app-specific copy, and app-owned product features/use cases. Names
30
+ such as `operator-login`, portal activation, and customer credential control are
31
+ consumer-owned product flows, not package component names. Reusable UI structure
32
+ belongs in this package only after a second concrete consumer, a plan-approved
33
+ shared component, or a named validation slice proves the package boundary.
34
+
35
+ ## Required App Setup
36
+
37
+ Import the package CSS once at the app root:
38
+
39
+ ```tsx
40
+ import "@nadicodeai/ui/globals.css";
41
+ import "@nadicodeai/design-system/css";
42
+ ```
43
+
44
+ For Next.js App Router apps, put those imports in the root layout.
45
+
46
+ The consuming app still owns Tailwind/PostCSS configuration. This package does not install a PostCSS config.
47
+
48
+ ## Imports
49
+
50
+ Prefer explicit component subpaths in app code:
51
+
52
+ ```tsx
53
+ import { Button } from "@nadicodeai/ui/components/button";
54
+ import { PageFrame } from "@nadicodeai/ui/components/page-frame";
55
+ import { Message } from "@nadicodeai/ui/components/ai-elements/message";
56
+ ```
57
+
58
+ Use barrels when they are more ergonomic:
59
+
60
+ ```tsx
61
+ import { Button, PageFrame } from "@nadicodeai/ui";
62
+ import { Message, PromptInput } from "@nadicodeai/ui/ai-elements";
63
+ ```
64
+
65
+ Product UI uses the same public component subpaths:
66
+
67
+ ```tsx
68
+ import { SettingsSection } from "@nadicodeai/ui/components/settings-section";
69
+ import { DashboardShell } from "@nadicodeai/ui/components/dashboard-shell";
70
+ import { AgentChat } from "@nadicodeai/ui/components/agent-chat";
71
+ ```
72
+
73
+ Current shipped product subpaths:
74
+
75
+ - `@nadicodeai/ui/components/agent-chat`
76
+ - `@nadicodeai/ui/components/agent-composer`
77
+ - `@nadicodeai/ui/components/agent-message`
78
+ - `@nadicodeai/ui/components/agent-thread`
79
+ - `@nadicodeai/ui/components/agent-tool-approval`
80
+ - `@nadicodeai/ui/components/artifact-panel`
81
+ - `@nadicodeai/ui/components/automation-section`
82
+ - `@nadicodeai/ui/components/dashboard-shell`
83
+ - `@nadicodeai/ui/components/desktop-shell`
84
+ - `@nadicodeai/ui/components/feedback-state`
85
+ - `@nadicodeai/ui/components/files-preview`
86
+ - `@nadicodeai/ui/components/installer-shell`
87
+ - `@nadicodeai/ui/components/plugin-slot-boundary`
88
+ - `@nadicodeai/ui/components/settings-section`
89
+
90
+ ## Product Components And Migration
91
+
92
+ Product components are presentational. Use them for shared settings, shell,
93
+ installer, plugin-boundary, agent chat, artifact, file, diff, and redacted
94
+ terminal summary UI. Keep route state, server state, auth,
95
+ persistence, runtime adapters, permission decisions, analytics, and
96
+ product-specific copy in the consuming app.
97
+
98
+ Generic data tables, command palettes, and chart cards are app-owned shadcn
99
+ registry adaptations. Start from `@shadcn/data-table-demo`,
100
+ `@shadcn/command-dialog`, `@shadcn/chart`, or the relevant `@shadcn/chart-*`
101
+ block/example instead of importing a NadicodeAI product abstraction.
102
+
103
+ Recommended migration order:
104
+
105
+ 1. Web admin or portal validation slice.
106
+ 2. Installer and bootstrap flows.
107
+ 3. Desktop shell and plugin boundary surfaces.
108
+ 4. Desktop chat and runtime work surfaces.
109
+ 5. TUI consumers through `docs/terminal-tui-semantics.md`.
110
+
111
+ Read `docs/migration/nadia-consumer-readiness.md` before migrating a consumer.
112
+ It lists the CSS imports, public subpaths, fixture redaction rules, and readiness
113
+ gates.
114
+
115
+ ## Forms
116
+
117
+ Use the package's shadcn form stack as one model:
118
+
119
+ - Controls: `Input`, `Textarea`, `Select`, `Checkbox`, and similar primitives.
120
+ - Layout and accessible field structure: `FieldGroup`, `Field`, `FieldLabel`,
121
+ `FieldDescription`, and `FieldError`.
122
+ - React Hook Form integration: `Form`, `FormField`, `FormItem`, `FormControl`,
123
+ `FormLabel`, `FormDescription`, and `FormMessage`.
124
+
125
+ Do not introduce `FormInput`, `FormTextarea`, or other parallel form-control
126
+ families. Extend the canonical control or field primitive when a new size or
127
+ behavior is truly needed.
128
+
129
+ ## Styling Rules
130
+
131
+ This package is token-only and dark-ready through semantic globals. The package
132
+ CSS owns `:root` and `.dark` remaps for shadcn roles plus UI-local product
133
+ aliases such as `--nc-app-surface`, `--nc-chat-tool-surface`, and
134
+ `--nc-terminal-bg`. Components consume those roles/aliases; they do not add
135
+ one-off dark styling locally.
136
+
137
+ Use semantic utilities:
138
+
139
+ ```tsx
140
+ className="border border-border bg-background text-foreground"
141
+ ```
142
+
143
+ Use UI-local aliases when a product role is needed:
144
+
145
+ ```tsx
146
+ className="bg-[var(--nc-app-surface)] text-[var(--nc-app-text-primary)]"
147
+ ```
148
+
149
+ Use brand tokens through Tailwind arbitrary values only when a semantic role or
150
+ UI alias is not precise enough:
151
+
152
+ ```tsx
153
+ className="text-[var(--nc-link-deep)]"
154
+ ```
155
+
156
+ Do not add:
157
+
158
+ - Tailwind `dark:` utilities
159
+ - `.dark` blocks outside package globals/theme files
160
+ - OS dark-mode branching
161
+ - raw `#hex`, `rgb()`, or `hsl()` values
162
+ - raw palette utilities like `text-blue-600`, `bg-zinc-950`, `text-white`, or `bg-black/50`
163
+
164
+ ## shadcn And AI Elements
165
+
166
+ The package consumes shadcn and AI Elements as source components in this
167
+ repository, then publishes built JavaScript/declarations. Consumers should
168
+ normally install `@nadicodeai/ui` and import package exports.
169
+
170
+ Use shadcn MCP or the CLI for live discovery and install guidance during
171
+ maintenance. Do not maintain committed upstream registry inventories, generated
172
+ registry snapshots, or inventory update scripts in this package. The committed
173
+ truth is the source that has been reviewed, exported, documented, and tested.
174
+
175
+ For Codex-capable local runtimes, initialize shadcn MCP from `@nadicodeai/ui`
176
+ when MCP is available:
177
+
178
+ ```bash
179
+ npx shadcn@latest mcp init --client codex
180
+ ```
181
+
182
+ Use CLI fallbacks when MCP is unavailable or when you need copyable command
183
+ output:
184
+
185
+ ```bash
186
+ npx shadcn@latest info --json
187
+ npx shadcn@latest search @shadcn -q "select" --json
188
+ npx shadcn@latest search @ai-elements -q "message" --json
189
+ npx shadcn@latest docs button select dialog --json
190
+ npx shadcn@latest view @shadcn/button
191
+ npx shadcn@latest add @shadcn/button --dry-run
192
+ npx shadcn@latest add @shadcn/button --diff src/components/button.tsx
193
+ npx shadcn@latest add @ai-elements/message --dry-run
194
+ ```
195
+
196
+ `info --json` is the project-aware source for `tailwindVersion`, `base`,
197
+ `iconLibrary`, aliases, `resolvedPaths`, and configured registries. Current
198
+ package context should report Tailwind v4, radix base primitives, lucide icons,
199
+ source paths under `src/*`, and configured `@shadcn`/`@ai-elements` registry
200
+ access. Use `search` to find current registry items, `docs` to fetch component
201
+ documentation and example/API links, `view` to inspect item contents, and
202
+ `add --dry-run` or `add --diff` to preview source changes before editing.
203
+
204
+ When maintaining installed source:
205
+
206
+ ```bash
207
+ npx shadcn@latest info --json
208
+ npx shadcn@latest add <component> --dry-run
209
+ npx shadcn@latest add @ai-elements/all --dry-run
210
+ ```
211
+
212
+ The package `components.json` must resolve aliases to `src/*`, not `dist/*`. Build output rewrites `@/` aliases to relative package imports.
213
+
214
+ Do not run shadcn `--overwrite` unless the maintainer explicitly asks for an upstream primitive refresh and the diff is reviewed.
215
+
216
+ ## Verification
217
+
218
+ Before considering package work complete:
219
+
220
+ ```bash
221
+ npm run build -w @nadicodeai/ui
222
+ npm run test -w @nadicodeai/ui
223
+ ```
224
+
225
+ For repo completion, run the root gate:
226
+
227
+ ```bash
228
+ npm run lint:design && npm run build && npm run test
229
+ ```