@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,8 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { cn } from "../lib/utils.js";
4
+ import { Sidebar, SidebarContent, SidebarFooter, SidebarHeader, SidebarInset, SidebarProvider, SidebarRail, SidebarTrigger, } from "./sidebar.js";
5
+ function DashboardShell({ sidebar, header, headerActions, inspector, children, sidebarHeader, sidebarFooter, sidebarSide = "left", sidebarVariant = "sidebar", sidebarCollapsible = "icon", mobileNavigationLabel = "Open navigation", contentLabel = "Dashboard content", inspectorLabel = "Inspector", className, headerClassName, contentClassName, inspectorClassName, ...props }) {
6
+ return (_jsxs(SidebarProvider, { "data-slot": "dashboard-shell", className: cn("min-h-svh bg-background", className), ...props, children: [_jsxs(Sidebar, { side: sidebarSide, variant: sidebarVariant, collapsible: sidebarCollapsible, children: [sidebarHeader && _jsx(SidebarHeader, { children: sidebarHeader }), _jsx(SidebarContent, { children: sidebar }), sidebarFooter && _jsx(SidebarFooter, { children: sidebarFooter }), _jsx(SidebarRail, {})] }), _jsxs(SidebarInset, { className: "min-w-0 overflow-hidden", children: [_jsxs("header", { "data-slot": "dashboard-shell-header", className: cn("flex h-14 shrink-0 items-center justify-between gap-3 border-b bg-background px-3 md:px-4", headerClassName), children: [_jsxs("div", { "data-slot": "dashboard-shell-header-content", className: "flex min-w-0 flex-1 items-center gap-2", children: [_jsx(SidebarTrigger, { "data-slot": "dashboard-shell-mobile-trigger", "aria-label": mobileNavigationLabel, className: "md:hidden" }), _jsx("div", { className: "min-w-0 flex-1", children: header })] }), headerActions && (_jsx("div", { "data-slot": "dashboard-shell-header-actions", className: "flex shrink-0 items-center gap-2", children: headerActions }))] }), _jsxs("div", { "data-slot": "dashboard-shell-body", className: "flex min-h-0 flex-1 flex-col lg:flex-row", children: [_jsx("main", { "data-slot": "dashboard-shell-content", "aria-label": contentLabel, className: cn("min-h-0 min-w-0 flex-1 overflow-auto p-4 md:p-6", contentClassName), children: children }), inspector && (_jsx("aside", { "data-slot": "dashboard-shell-inspector", "aria-label": inspectorLabel, className: cn("min-h-0 border-t bg-background lg:w-80 lg:border-t-0 lg:border-l", inspectorClassName), children: _jsx("div", { "data-slot": "dashboard-shell-inspector-content", className: "max-h-96 overflow-auto p-4 lg:h-full lg:max-h-none", children: inspector }) }))] })] })] }));
7
+ }
8
+ export { DashboardShell };
@@ -0,0 +1,26 @@
1
+ import * as React from "react";
2
+ type DemoAccent = "green" | "cyan" | "amber" | "red" | "blue";
3
+ type DemoSurfaceScript = {
4
+ domain: string;
5
+ role: string;
6
+ workflow: string;
7
+ accent: DemoAccent | string;
8
+ user: string;
9
+ agent: string;
10
+ traces: string[];
11
+ artifactKind: string;
12
+ artifactTitle: string;
13
+ artifactBody: string;
14
+ approvalTitle: string;
15
+ approvalCopy: string;
16
+ usage: string;
17
+ steps: string;
18
+ };
19
+ declare function DemoSurface({ script, title, className, children, autoplay, ...props }: React.ComponentProps<"div"> & {
20
+ script?: DemoSurfaceScript;
21
+ title?: string;
22
+ autoplay?: boolean;
23
+ }): React.JSX.Element;
24
+ export { DemoSurface };
25
+ export type { DemoSurfaceScript };
26
+ //# sourceMappingURL=demo-surface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"demo-surface.d.ts","sourceRoot":"","sources":["../../src/components/demo-surface.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAK9B,KAAK,UAAU,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,MAAM,CAAA;AAE7D,KAAK,iBAAiB,GAAG;IACvB,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,UAAU,GAAG,MAAM,CAAA;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,EAAE,MAAM,CAAA;IACrB,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,EAAE,MAAM,CAAA;IACrB,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAQD,iBAAS,WAAW,CAAC,EACnB,MAAM,EACN,KAAe,EACf,SAAS,EACT,QAAQ,EACR,QAAe,EACf,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG;IAC/B,MAAM,CAAC,EAAE,iBAAiB,CAAA;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,qBAgGA;AAED,OAAO,EAAE,WAAW,EAAE,CAAA;AACtB,YAAY,EAAE,iBAAiB,EAAE,CAAA"}
@@ -0,0 +1,14 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { cn } from "../lib/utils.js";
3
+ function delayStep(index) {
4
+ return {
5
+ "--nc-anim-delay": `calc(var(--nc-duration-stagger) * ${index})`,
6
+ };
7
+ }
8
+ function DemoSurface({ script, title = "Nadia", className, children, autoplay = true, ...props }) {
9
+ if (!script) {
10
+ return (_jsx("div", { "data-slot": "demo-surface", className: cn("grid min-h-0 bg-card", className), ...props, children: children }));
11
+ }
12
+ return (_jsxs("div", { "data-slot": "demo-surface", className: cn("nc-chat-thread h-[var(--nc-h-bento-mobile-main)] min-h-0 lg:h-full", className), "data-nc-autoplay": autoplay ? "" : undefined, "data-nc-autoplay-name": title, ...props, children: [_jsxs("div", { className: "nc-chat-thread-header", children: [_jsx("span", { className: "nc-agent-avatar", "data-accent": script.accent, "aria-hidden": "true", children: "NA" }), _jsxs("div", { className: "nc-chat-thread-identity", children: [_jsx("div", { className: "nc-chat-thread-domain", children: script.domain }), _jsxs("div", { className: "nc-chat-thread-name", children: [_jsx("span", { children: title }), _jsxs("span", { className: "nc-chat-thread-role", children: ["/ ", script.role] })] })] }), _jsx("span", { className: "nc-chat-thread-workflow", children: script.workflow })] }), _jsxs("div", { className: "nc-chat-thread-body", children: [_jsx("div", { className: "nc-chat-bubble-user nc-anim-msg-in", style: delayStep(0), children: script.user }), _jsx("div", { className: "nc-chat-bubble-agent nc-anim-msg-in", "data-accent": script.accent, style: delayStep(1), children: script.agent }), script.traces.map((trace, index) => (_jsx("div", { className: "nc-tool-call-trace nc-anim-msg-in", style: delayStep(index + 2), children: trace }, trace))), _jsxs("div", { className: "nc-artifact-preview nc-anim-msg-in", "data-kind": script.artifactKind, style: delayStep(5), children: [_jsxs("div", { className: "nc-artifact-preview-header", children: [_jsx("span", { className: "nc-artifact-preview-title", children: script.artifactTitle }), _jsx("span", { className: "nc-artifact-preview-kind", children: script.artifactKind })] }), _jsx("div", { className: "nc-artifact-preview-body", children: script.artifactBody })] }), _jsxs("div", { className: "nc-approval-gate nc-anim-msg-in", style: delayStep(6), children: [_jsx("span", { className: "nc-approval-gate-label", children: "Human approval" }), _jsx("span", { className: "nc-approval-gate-title", children: script.approvalTitle }), _jsx("span", { className: "nc-approval-gate-copy", children: script.approvalCopy }), _jsxs("span", { className: "nc-approval-gate-actions", children: [_jsx("button", { type: "button", children: "Approve" }), _jsx("button", { type: "button", "data-variant": "secondary", children: "Edit" })] })] })] }), _jsx("div", { className: "nc-chat-thread-footer", children: _jsxs("div", { className: "nc-usage-meter", children: [_jsxs("div", { className: "nc-usage-meter-meta", children: [_jsx("span", { children: script.role }), _jsx("span", { className: "nc-usage-meter-sep", children: "/" }), _jsx("span", { children: script.steps }), _jsx("span", { className: "nc-usage-meter-spacer" }), _jsx("span", { children: "live demo" })] }), _jsx("div", { className: "nc-usage-meter-track", children: _jsx("div", { className: "nc-usage-meter-fill", style: { "--nc-usage": script.usage } }) })] }) })] }));
13
+ }
14
+ export { DemoSurface };
@@ -0,0 +1,28 @@
1
+ import * as React from "react";
2
+ type DesktopAppShellProps = Omit<React.ComponentProps<"section">, "title"> & {
3
+ title?: React.ReactNode;
4
+ titlebar?: React.ReactNode;
5
+ titlebarActions?: React.ReactNode;
6
+ activityRail?: React.ReactNode;
7
+ inspectorRail?: React.ReactNode;
8
+ secondaryPane?: React.ReactNode;
9
+ statusbar?: React.ReactNode;
10
+ children: React.ReactNode;
11
+ activityRailLabel?: string;
12
+ primaryPaneLabel?: string;
13
+ secondaryPaneLabel?: string;
14
+ inspectorRailLabel?: string;
15
+ primaryPaneSize?: number;
16
+ secondaryPaneSize?: number;
17
+ inspectorPaneSize?: number;
18
+ titlebarClassName?: string;
19
+ bodyClassName?: string;
20
+ primaryPaneClassName?: string;
21
+ secondaryPaneClassName?: string;
22
+ inspectorRailClassName?: string;
23
+ statusbarClassName?: string;
24
+ };
25
+ declare function DesktopAppShell({ title, titlebar, titlebarActions, activityRail, inspectorRail, secondaryPane, statusbar, children, activityRailLabel, primaryPaneLabel, secondaryPaneLabel, inspectorRailLabel, primaryPaneSize, secondaryPaneSize, inspectorPaneSize, className, titlebarClassName, bodyClassName, primaryPaneClassName, secondaryPaneClassName, inspectorRailClassName, statusbarClassName, ...props }: DesktopAppShellProps): React.JSX.Element;
26
+ export { DesktopAppShell };
27
+ export type { DesktopAppShellProps };
28
+ //# sourceMappingURL=desktop-shell.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"desktop-shell.d.ts","sourceRoot":"","sources":["../../src/components/desktop-shell.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAS9B,KAAK,oBAAoB,GAAG,IAAI,CAC9B,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,EAC/B,OAAO,CACR,GAAG;IACF,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACvB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACjC,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC9B,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC/B,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC/B,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC3B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAC5B,CAAA;AAED,iBAAS,eAAe,CAAC,EACvB,KAAK,EACL,QAAQ,EACR,eAAe,EACf,YAAY,EACZ,aAAa,EACb,aAAa,EACb,SAAS,EACT,QAAQ,EACR,iBAA8B,EAC9B,gBAAsC,EACtC,kBAA0C,EAC1C,kBAAgC,EAChC,eAA2D,EAC3D,iBAA2C,EAC3C,iBAAsB,EACtB,SAAS,EACT,iBAAiB,EACjB,aAAa,EACb,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACtB,kBAAkB,EAClB,GAAG,KAAK,EACT,EAAE,oBAAoB,qBAwHtB;AAED,OAAO,EAAE,eAAe,EAAE,CAAA;AAC1B,YAAY,EAAE,oBAAoB,EAAE,CAAA"}
@@ -0,0 +1,8 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ import { cn } from "../lib/utils.js";
4
+ import { ResizableHandle, ResizablePanel, ResizablePanelGroup, } from "./resizable.js";
5
+ function DesktopAppShell({ title, titlebar, titlebarActions, activityRail, inspectorRail, secondaryPane, statusbar, children, activityRailLabel = "Activity", primaryPaneLabel = "Primary workspace", secondaryPaneLabel = "Secondary workspace", inspectorRailLabel = "Inspector", primaryPaneSize = secondaryPane || inspectorRail ? 58 : 100, secondaryPaneSize = inspectorRail ? 24 : 36, inspectorPaneSize = 18, className, titlebarClassName, bodyClassName, primaryPaneClassName, secondaryPaneClassName, inspectorRailClassName, statusbarClassName, ...props }) {
6
+ return (_jsxs("section", { "data-slot": "desktop-app-shell", className: cn("flex h-svh min-h-0 flex-col overflow-hidden border bg-background text-foreground", className), ...props, children: [_jsxs("header", { "data-slot": "desktop-app-titlebar", className: cn("flex h-11 shrink-0 items-center justify-between gap-3 border-b bg-background px-3", titlebarClassName), children: [titlebar ?? (_jsx("div", { "data-slot": "desktop-app-titlebar-content", className: "flex min-w-0 flex-1 items-center gap-2", children: title && (_jsx("h1", { className: "truncate text-sm font-medium", children: title })) })), titlebarActions && (_jsx("div", { "data-slot": "desktop-app-titlebar-actions", className: "flex shrink-0 items-center gap-2", children: titlebarActions }))] }), _jsxs("div", { "data-slot": "desktop-app-body", className: cn("flex min-h-0 flex-1", bodyClassName), children: [activityRail && (_jsx("nav", { "data-slot": "desktop-app-activity-rail", "aria-label": activityRailLabel, className: "flex w-14 shrink-0 flex-col items-center gap-2 border-r bg-sidebar p-2 text-sidebar-foreground", children: activityRail })), _jsx("div", { "data-slot": "desktop-app-panes", className: "min-w-0 flex-1", children: _jsxs(ResizablePanelGroup, { orientation: "horizontal", className: "min-w-0 flex-1", children: [_jsx(ResizablePanel, { defaultSize: primaryPaneSize, minSize: 30, children: _jsx("main", { "data-slot": "desktop-app-primary-pane", "aria-label": primaryPaneLabel, className: cn("h-full min-w-0 overflow-auto bg-background", primaryPaneClassName), children: children }) }), secondaryPane && (_jsxs(_Fragment, { children: [_jsx(ResizableHandle, { withHandle: true }), _jsx(ResizablePanel, { defaultSize: secondaryPaneSize, minSize: 18, children: _jsx("section", { "data-slot": "desktop-app-secondary-pane", "aria-label": secondaryPaneLabel, className: cn("h-full min-w-0 overflow-auto bg-background", secondaryPaneClassName), children: secondaryPane }) })] })), inspectorRail && (_jsxs(_Fragment, { children: [_jsx(ResizableHandle, { withHandle: true }), _jsx(ResizablePanel, { defaultSize: inspectorPaneSize, minSize: 16, maxSize: 36, children: _jsx("aside", { "data-slot": "desktop-app-inspector-rail", "aria-label": inspectorRailLabel, className: cn("h-full min-w-0 overflow-auto bg-background", inspectorRailClassName), children: inspectorRail }) })] }))] }) })] }), statusbar && (_jsx("footer", { "data-slot": "desktop-app-statusbar", className: cn("flex min-h-8 shrink-0 items-center justify-between gap-3 border-t bg-background px-3 text-xs text-muted-foreground", statusbarClassName), children: statusbar }))] }));
7
+ }
8
+ export { DesktopAppShell };
@@ -0,0 +1,18 @@
1
+ import * as React from "react";
2
+ import { Dialog as DialogPrimitive } from "radix-ui";
3
+ declare function Dialog({ ...props }: React.ComponentProps<typeof DialogPrimitive.Root>): React.JSX.Element;
4
+ declare function DialogTrigger({ ...props }: React.ComponentProps<typeof DialogPrimitive.Trigger>): React.JSX.Element;
5
+ declare function DialogPortal({ ...props }: React.ComponentProps<typeof DialogPrimitive.Portal>): React.JSX.Element;
6
+ declare function DialogClose({ ...props }: React.ComponentProps<typeof DialogPrimitive.Close>): React.JSX.Element;
7
+ declare function DialogOverlay({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Overlay>): React.JSX.Element;
8
+ declare function DialogContent({ className, children, showCloseButton, ...props }: React.ComponentProps<typeof DialogPrimitive.Content> & {
9
+ showCloseButton?: boolean;
10
+ }): React.JSX.Element;
11
+ declare function DialogHeader({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
12
+ declare function DialogFooter({ className, showCloseButton, children, ...props }: React.ComponentProps<"div"> & {
13
+ showCloseButton?: boolean;
14
+ }): React.JSX.Element;
15
+ declare function DialogTitle({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Title>): React.JSX.Element;
16
+ declare function DialogDescription({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Description>): React.JSX.Element;
17
+ export { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, };
18
+ //# sourceMappingURL=dialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialog.d.ts","sourceRoot":"","sources":["../../src/components/dialog.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAE,MAAM,IAAI,eAAe,EAAE,MAAM,UAAU,CAAA;AAKpD,iBAAS,MAAM,CAAC,EACd,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC,qBAEnD;AAED,iBAAS,aAAa,CAAC,EACrB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,OAAO,CAAC,qBAEtD;AAED,iBAAS,YAAY,CAAC,EACpB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,MAAM,CAAC,qBAErD;AAED,iBAAS,WAAW,CAAC,EACnB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,KAAK,CAAC,qBAEpD;AAED,iBAAS,aAAa,CAAC,EACrB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,OAAO,CAAC,qBAWtD;AAED,iBAAS,aAAa,CAAC,EACrB,SAAS,EACT,QAAQ,EACR,eAAsB,EACtB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,OAAO,CAAC,GAAG;IACxD,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B,qBAyBA;AAED,iBAAS,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAQzE;AAED,iBAAS,YAAY,CAAC,EACpB,SAAS,EACT,eAAuB,EACvB,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG;IAC/B,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B,qBAkBA;AAED,iBAAS,WAAW,CAAC,EACnB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,KAAK,CAAC,qBAQpD;AAED,iBAAS,iBAAiB,CAAC,EACzB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,WAAW,CAAC,qBAQ1D;AAED,OAAO,EACL,MAAM,EACN,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,WAAW,EACX,aAAa,GACd,CAAA"}
@@ -0,0 +1,37 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { XIcon } from "lucide-react";
4
+ import { Dialog as DialogPrimitive } from "radix-ui";
5
+ import { cn } from "../lib/utils.js";
6
+ import { Button } from "./button.js";
7
+ function Dialog({ ...props }) {
8
+ return _jsx(DialogPrimitive.Root, { "data-slot": "dialog", ...props });
9
+ }
10
+ function DialogTrigger({ ...props }) {
11
+ return _jsx(DialogPrimitive.Trigger, { "data-slot": "dialog-trigger", ...props });
12
+ }
13
+ function DialogPortal({ ...props }) {
14
+ return _jsx(DialogPrimitive.Portal, { "data-slot": "dialog-portal", ...props });
15
+ }
16
+ function DialogClose({ ...props }) {
17
+ return _jsx(DialogPrimitive.Close, { "data-slot": "dialog-close", ...props });
18
+ }
19
+ function DialogOverlay({ className, ...props }) {
20
+ return (_jsx(DialogPrimitive.Overlay, { "data-slot": "dialog-overlay", className: cn("fixed inset-0 z-50 bg-foreground/50 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:animate-in data-[state=open]:fade-in-0", className), ...props }));
21
+ }
22
+ function DialogContent({ className, children, showCloseButton = true, ...props }) {
23
+ return (_jsxs(DialogPortal, { "data-slot": "dialog-portal", children: [_jsx(DialogOverlay, {}), _jsxs(DialogPrimitive.Content, { "data-slot": "dialog-content", className: cn("fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border bg-background p-6 shadow-lg duration-200 outline-none data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 sm:max-w-lg", className), ...props, children: [children, showCloseButton && (_jsxs(DialogPrimitive.Close, { "data-slot": "dialog-close", className: "absolute top-4 right-4 rounded-xs opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", children: [_jsx(XIcon, {}), _jsx("span", { className: "sr-only", children: "Close" })] }))] })] }));
24
+ }
25
+ function DialogHeader({ className, ...props }) {
26
+ return (_jsx("div", { "data-slot": "dialog-header", className: cn("flex flex-col gap-2 text-center sm:text-left", className), ...props }));
27
+ }
28
+ function DialogFooter({ className, showCloseButton = false, children, ...props }) {
29
+ return (_jsxs("div", { "data-slot": "dialog-footer", className: cn("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end", className), ...props, children: [children, showCloseButton && (_jsx(DialogPrimitive.Close, { asChild: true, children: _jsx(Button, { variant: "outline", children: "Close" }) }))] }));
30
+ }
31
+ function DialogTitle({ className, ...props }) {
32
+ return (_jsx(DialogPrimitive.Title, { "data-slot": "dialog-title", className: cn("text-lg leading-none font-semibold", className), ...props }));
33
+ }
34
+ function DialogDescription({ className, ...props }) {
35
+ return (_jsx(DialogPrimitive.Description, { "data-slot": "dialog-description", className: cn("text-sm text-muted-foreground", className), ...props }));
36
+ }
37
+ export { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, };
@@ -0,0 +1,8 @@
1
+ import * as React from "react";
2
+ import { Direction } from "radix-ui";
3
+ declare function DirectionProvider({ dir, direction, children, }: React.ComponentProps<typeof Direction.DirectionProvider> & {
4
+ direction?: React.ComponentProps<typeof Direction.DirectionProvider>["dir"];
5
+ }): React.JSX.Element;
6
+ declare const useDirection: typeof Direction.useDirection;
7
+ export { DirectionProvider, useDirection };
8
+ //# sourceMappingURL=direction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"direction.d.ts","sourceRoot":"","sources":["../../src/components/direction.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAEpC,iBAAS,iBAAiB,CAAC,EACzB,GAAG,EACH,SAAS,EACT,QAAQ,GACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,SAAS,CAAC,iBAAiB,CAAC,GAAG;IAC5D,SAAS,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,SAAS,CAAC,iBAAiB,CAAC,CAAC,KAAK,CAAC,CAAA;CAC5E,qBAMA;AAED,QAAA,MAAM,YAAY,+BAAyB,CAAA;AAE3C,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,CAAA"}
@@ -0,0 +1,8 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { Direction } from "radix-ui";
4
+ function DirectionProvider({ dir, direction, children, }) {
5
+ return (_jsx(Direction.DirectionProvider, { dir: direction ?? dir, children: children }));
6
+ }
7
+ const useDirection = Direction.useDirection;
8
+ export { DirectionProvider, useDirection };
@@ -0,0 +1,14 @@
1
+ import * as React from "react";
2
+ import { Drawer as DrawerPrimitive } from "vaul";
3
+ declare function Drawer({ ...props }: React.ComponentProps<typeof DrawerPrimitive.Root>): React.JSX.Element;
4
+ declare function DrawerTrigger({ ...props }: React.ComponentProps<typeof DrawerPrimitive.Trigger>): React.JSX.Element;
5
+ declare function DrawerPortal({ ...props }: React.ComponentProps<typeof DrawerPrimitive.Portal>): React.JSX.Element;
6
+ declare function DrawerClose({ ...props }: React.ComponentProps<typeof DrawerPrimitive.Close>): React.JSX.Element;
7
+ declare function DrawerOverlay({ className, ...props }: React.ComponentProps<typeof DrawerPrimitive.Overlay>): React.JSX.Element;
8
+ declare function DrawerContent({ className, children, ...props }: React.ComponentProps<typeof DrawerPrimitive.Content>): React.JSX.Element;
9
+ declare function DrawerHeader({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
10
+ declare function DrawerFooter({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
11
+ declare function DrawerTitle({ className, ...props }: React.ComponentProps<typeof DrawerPrimitive.Title>): React.JSX.Element;
12
+ declare function DrawerDescription({ className, ...props }: React.ComponentProps<typeof DrawerPrimitive.Description>): React.JSX.Element;
13
+ export { Drawer, DrawerPortal, DrawerOverlay, DrawerTrigger, DrawerClose, DrawerContent, DrawerHeader, DrawerFooter, DrawerTitle, DrawerDescription, };
14
+ //# sourceMappingURL=drawer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drawer.d.ts","sourceRoot":"","sources":["../../src/components/drawer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,MAAM,IAAI,eAAe,EAAE,MAAM,MAAM,CAAA;AAIhD,iBAAS,MAAM,CAAC,EACd,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC,qBAEnD;AAED,iBAAS,aAAa,CAAC,EACrB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,OAAO,CAAC,qBAEtD;AAED,iBAAS,YAAY,CAAC,EACpB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,MAAM,CAAC,qBAErD;AAED,iBAAS,WAAW,CAAC,EACnB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,KAAK,CAAC,qBAEpD;AAED,iBAAS,aAAa,CAAC,EACrB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,OAAO,CAAC,qBAWtD;AAED,iBAAS,aAAa,CAAC,EACrB,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,OAAO,CAAC,qBAqBtD;AAED,iBAAS,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAWzE;AAED,iBAAS,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAQzE;AAED,iBAAS,WAAW,CAAC,EACnB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,KAAK,CAAC,qBAQpD;AAED,iBAAS,iBAAiB,CAAC,EACzB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,WAAW,CAAC,qBAQ1D;AAED,OAAO,EACL,MAAM,EACN,YAAY,EACZ,aAAa,EACb,aAAa,EACb,WAAW,EACX,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,iBAAiB,GAClB,CAAA"}
@@ -0,0 +1,34 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Drawer as DrawerPrimitive } from "vaul";
3
+ import { cn } from "../lib/utils.js";
4
+ function Drawer({ ...props }) {
5
+ return _jsx(DrawerPrimitive.Root, { "data-slot": "drawer", ...props });
6
+ }
7
+ function DrawerTrigger({ ...props }) {
8
+ return _jsx(DrawerPrimitive.Trigger, { "data-slot": "drawer-trigger", ...props });
9
+ }
10
+ function DrawerPortal({ ...props }) {
11
+ return _jsx(DrawerPrimitive.Portal, { "data-slot": "drawer-portal", ...props });
12
+ }
13
+ function DrawerClose({ ...props }) {
14
+ return _jsx(DrawerPrimitive.Close, { "data-slot": "drawer-close", ...props });
15
+ }
16
+ function DrawerOverlay({ className, ...props }) {
17
+ return (_jsx(DrawerPrimitive.Overlay, { "data-slot": "drawer-overlay", className: cn("fixed inset-0 z-50 bg-foreground/50 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:animate-in data-[state=open]:fade-in-0", className), ...props }));
18
+ }
19
+ function DrawerContent({ className, children, ...props }) {
20
+ return (_jsxs(DrawerPortal, { "data-slot": "drawer-portal", children: [_jsx(DrawerOverlay, {}), _jsxs(DrawerPrimitive.Content, { "data-slot": "drawer-content", className: cn("group/drawer-content fixed z-50 flex h-auto flex-col bg-background", "data-[vaul-drawer-direction=top]:inset-x-0 data-[vaul-drawer-direction=top]:top-0 data-[vaul-drawer-direction=top]:mb-24 data-[vaul-drawer-direction=top]:max-h-[80vh] data-[vaul-drawer-direction=top]:rounded-b-lg data-[vaul-drawer-direction=top]:border-b", "data-[vaul-drawer-direction=bottom]:inset-x-0 data-[vaul-drawer-direction=bottom]:bottom-0 data-[vaul-drawer-direction=bottom]:mt-24 data-[vaul-drawer-direction=bottom]:max-h-[80vh] data-[vaul-drawer-direction=bottom]:rounded-t-lg data-[vaul-drawer-direction=bottom]:border-t", "data-[vaul-drawer-direction=right]:inset-y-0 data-[vaul-drawer-direction=right]:right-0 data-[vaul-drawer-direction=right]:w-3/4 data-[vaul-drawer-direction=right]:border-l data-[vaul-drawer-direction=right]:sm:max-w-sm", "data-[vaul-drawer-direction=left]:inset-y-0 data-[vaul-drawer-direction=left]:left-0 data-[vaul-drawer-direction=left]:w-3/4 data-[vaul-drawer-direction=left]:border-r data-[vaul-drawer-direction=left]:sm:max-w-sm", className), ...props, children: [_jsx("div", { className: "mx-auto mt-4 hidden h-2 w-[100px] shrink-0 rounded-full bg-muted group-data-[vaul-drawer-direction=bottom]/drawer-content:block" }), children] })] }));
21
+ }
22
+ function DrawerHeader({ className, ...props }) {
23
+ return (_jsx("div", { "data-slot": "drawer-header", className: cn("flex flex-col gap-0.5 p-4 group-data-[vaul-drawer-direction=bottom]/drawer-content:text-center group-data-[vaul-drawer-direction=top]/drawer-content:text-center md:gap-1.5 md:text-left", className), ...props }));
24
+ }
25
+ function DrawerFooter({ className, ...props }) {
26
+ return (_jsx("div", { "data-slot": "drawer-footer", className: cn("mt-auto flex flex-col gap-2 p-4", className), ...props }));
27
+ }
28
+ function DrawerTitle({ className, ...props }) {
29
+ return (_jsx(DrawerPrimitive.Title, { "data-slot": "drawer-title", className: cn("font-semibold text-foreground", className), ...props }));
30
+ }
31
+ function DrawerDescription({ className, ...props }) {
32
+ return (_jsx(DrawerPrimitive.Description, { "data-slot": "drawer-description", className: cn("text-sm text-muted-foreground", className), ...props }));
33
+ }
34
+ export { Drawer, DrawerPortal, DrawerOverlay, DrawerTrigger, DrawerClose, DrawerContent, DrawerHeader, DrawerFooter, DrawerTitle, DrawerDescription, };
@@ -0,0 +1,26 @@
1
+ import * as React from "react";
2
+ import { DropdownMenu as DropdownMenuPrimitive } from "radix-ui";
3
+ declare function DropdownMenu({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Root>): React.JSX.Element;
4
+ declare function DropdownMenuPortal({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Portal>): React.JSX.Element;
5
+ declare function DropdownMenuTrigger({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Trigger>): React.JSX.Element;
6
+ declare function DropdownMenuContent({ className, sideOffset, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Content>): React.JSX.Element;
7
+ declare function DropdownMenuGroup({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Group>): React.JSX.Element;
8
+ declare function DropdownMenuItem({ className, inset, variant, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Item> & {
9
+ inset?: boolean;
10
+ variant?: "default" | "destructive";
11
+ }): React.JSX.Element;
12
+ declare function DropdownMenuCheckboxItem({ className, children, checked, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.CheckboxItem>): React.JSX.Element;
13
+ declare function DropdownMenuRadioGroup({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.RadioGroup>): React.JSX.Element;
14
+ declare function DropdownMenuRadioItem({ className, children, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.RadioItem>): React.JSX.Element;
15
+ declare function DropdownMenuLabel({ className, inset, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Label> & {
16
+ inset?: boolean;
17
+ }): React.JSX.Element;
18
+ declare function DropdownMenuSeparator({ className, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Separator>): React.JSX.Element;
19
+ declare function DropdownMenuShortcut({ className, ...props }: React.ComponentProps<"span">): React.JSX.Element;
20
+ declare function DropdownMenuSub({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Sub>): React.JSX.Element;
21
+ declare function DropdownMenuSubTrigger({ className, inset, children, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.SubTrigger> & {
22
+ inset?: boolean;
23
+ }): React.JSX.Element;
24
+ declare function DropdownMenuSubContent({ className, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.SubContent>): React.JSX.Element;
25
+ export { DropdownMenu, DropdownMenuPortal, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuGroup, DropdownMenuLabel, DropdownMenuItem, DropdownMenuCheckboxItem, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubTrigger, DropdownMenuSubContent, };
26
+ //# sourceMappingURL=dropdown-menu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dropdown-menu.d.ts","sourceRoot":"","sources":["../../src/components/dropdown-menu.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAE,YAAY,IAAI,qBAAqB,EAAE,MAAM,UAAU,CAAA;AAIhE,iBAAS,YAAY,CAAC,EACpB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,qBAAqB,CAAC,IAAI,CAAC,qBAEzD;AAED,iBAAS,kBAAkB,CAAC,EAC1B,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,qBAAqB,CAAC,MAAM,CAAC,qBAI3D;AAED,iBAAS,mBAAmB,CAAC,EAC3B,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,qBAAqB,CAAC,OAAO,CAAC,qBAO5D;AAED,iBAAS,mBAAmB,CAAC,EAC3B,SAAS,EACT,UAAc,EACd,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,qBAAqB,CAAC,OAAO,CAAC,qBAc5D;AAED,iBAAS,iBAAiB,CAAC,EACzB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,qBAAqB,CAAC,KAAK,CAAC,qBAI1D;AAED,iBAAS,gBAAgB,CAAC,EACxB,SAAS,EACT,KAAK,EACL,OAAmB,EACnB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,qBAAqB,CAAC,IAAI,CAAC,GAAG;IAC3D,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,OAAO,CAAC,EAAE,SAAS,GAAG,aAAa,CAAA;CACpC,qBAaA;AAED,iBAAS,wBAAwB,CAAC,EAChC,SAAS,EACT,QAAQ,EACR,OAAO,EACP,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,qBAAqB,CAAC,YAAY,CAAC,qBAmBjE;AAED,iBAAS,sBAAsB,CAAC,EAC9B,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,qBAAqB,CAAC,UAAU,CAAC,qBAO/D;AAED,iBAAS,qBAAqB,CAAC,EAC7B,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,qBAAqB,CAAC,SAAS,CAAC,qBAkB9D;AAED,iBAAS,iBAAiB,CAAC,EACzB,SAAS,EACT,KAAK,EACL,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,qBAAqB,CAAC,KAAK,CAAC,GAAG;IAC5D,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB,qBAYA;AAED,iBAAS,qBAAqB,CAAC,EAC7B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,qBAAqB,CAAC,SAAS,CAAC,qBAQ9D;AAED,iBAAS,oBAAoB,CAAC,EAC5B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,qBAW9B;AAED,iBAAS,eAAe,CAAC,EACvB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,qBAAqB,CAAC,GAAG,CAAC,qBAExD;AAED,iBAAS,sBAAsB,CAAC,EAC9B,SAAS,EACT,KAAK,EACL,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,qBAAqB,CAAC,UAAU,CAAC,GAAG;IACjE,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB,qBAeA;AAED,iBAAS,sBAAsB,CAAC,EAC9B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,qBAAqB,CAAC,UAAU,CAAC,qBAW/D;AAED,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,wBAAwB,EACxB,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,eAAe,EACf,sBAAsB,EACtB,sBAAsB,GACvB,CAAA"}
@@ -0,0 +1,51 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { CheckIcon, ChevronRightIcon, CircleIcon } from "lucide-react";
4
+ import { DropdownMenu as DropdownMenuPrimitive } from "radix-ui";
5
+ import { cn } from "../lib/utils.js";
6
+ function DropdownMenu({ ...props }) {
7
+ return _jsx(DropdownMenuPrimitive.Root, { "data-slot": "dropdown-menu", ...props });
8
+ }
9
+ function DropdownMenuPortal({ ...props }) {
10
+ return (_jsx(DropdownMenuPrimitive.Portal, { "data-slot": "dropdown-menu-portal", ...props }));
11
+ }
12
+ function DropdownMenuTrigger({ ...props }) {
13
+ return (_jsx(DropdownMenuPrimitive.Trigger, { "data-slot": "dropdown-menu-trigger", ...props }));
14
+ }
15
+ function DropdownMenuContent({ className, sideOffset = 4, ...props }) {
16
+ return (_jsx(DropdownMenuPrimitive.Portal, { children: _jsx(DropdownMenuPrimitive.Content, { "data-slot": "dropdown-menu-content", sideOffset: sideOffset, className: cn("z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95", className), ...props }) }));
17
+ }
18
+ function DropdownMenuGroup({ ...props }) {
19
+ return (_jsx(DropdownMenuPrimitive.Group, { "data-slot": "dropdown-menu-group", ...props }));
20
+ }
21
+ function DropdownMenuItem({ className, inset, variant = "default", ...props }) {
22
+ return (_jsx(DropdownMenuPrimitive.Item, { "data-slot": "dropdown-menu-item", "data-inset": inset, "data-variant": variant, className: cn("relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground data-[variant=destructive]:*:[svg]:text-destructive!", className), ...props }));
23
+ }
24
+ function DropdownMenuCheckboxItem({ className, children, checked, ...props }) {
25
+ return (_jsxs(DropdownMenuPrimitive.CheckboxItem, { "data-slot": "dropdown-menu-checkbox-item", className: cn("relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className), checked: checked, ...props, children: [_jsx("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: _jsx(DropdownMenuPrimitive.ItemIndicator, { children: _jsx(CheckIcon, { className: "size-4" }) }) }), children] }));
26
+ }
27
+ function DropdownMenuRadioGroup({ ...props }) {
28
+ return (_jsx(DropdownMenuPrimitive.RadioGroup, { "data-slot": "dropdown-menu-radio-group", ...props }));
29
+ }
30
+ function DropdownMenuRadioItem({ className, children, ...props }) {
31
+ return (_jsxs(DropdownMenuPrimitive.RadioItem, { "data-slot": "dropdown-menu-radio-item", className: cn("relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className), ...props, children: [_jsx("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: _jsx(DropdownMenuPrimitive.ItemIndicator, { children: _jsx(CircleIcon, { className: "size-2 fill-current" }) }) }), children] }));
32
+ }
33
+ function DropdownMenuLabel({ className, inset, ...props }) {
34
+ return (_jsx(DropdownMenuPrimitive.Label, { "data-slot": "dropdown-menu-label", "data-inset": inset, className: cn("px-2 py-1.5 text-sm font-medium data-[inset]:pl-8", className), ...props }));
35
+ }
36
+ function DropdownMenuSeparator({ className, ...props }) {
37
+ return (_jsx(DropdownMenuPrimitive.Separator, { "data-slot": "dropdown-menu-separator", className: cn("-mx-1 my-1 h-px bg-border", className), ...props }));
38
+ }
39
+ function DropdownMenuShortcut({ className, ...props }) {
40
+ return (_jsx("span", { "data-slot": "dropdown-menu-shortcut", className: cn("ml-auto text-xs tracking-widest text-muted-foreground", className), ...props }));
41
+ }
42
+ function DropdownMenuSub({ ...props }) {
43
+ return _jsx(DropdownMenuPrimitive.Sub, { "data-slot": "dropdown-menu-sub", ...props });
44
+ }
45
+ function DropdownMenuSubTrigger({ className, inset, children, ...props }) {
46
+ return (_jsxs(DropdownMenuPrimitive.SubTrigger, { "data-slot": "dropdown-menu-sub-trigger", "data-inset": inset, className: cn("flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[inset]:pl-8 data-[state=open]:bg-accent data-[state=open]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground", className), ...props, children: [children, _jsx(ChevronRightIcon, { className: "ml-auto size-4" })] }));
47
+ }
48
+ function DropdownMenuSubContent({ className, ...props }) {
49
+ return (_jsx(DropdownMenuPrimitive.SubContent, { "data-slot": "dropdown-menu-sub-content", className: cn("z-50 min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95", className), ...props }));
50
+ }
51
+ export { DropdownMenu, DropdownMenuPortal, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuGroup, DropdownMenuLabel, DropdownMenuItem, DropdownMenuCheckboxItem, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubTrigger, DropdownMenuSubContent, };
@@ -0,0 +1,12 @@
1
+ import { type VariantProps } from "class-variance-authority";
2
+ declare function Empty({ className, ...props }: React.ComponentProps<"div">): import("react").JSX.Element;
3
+ declare function EmptyHeader({ className, ...props }: React.ComponentProps<"div">): import("react").JSX.Element;
4
+ declare const emptyMediaVariants: (props?: ({
5
+ variant?: "default" | "icon" | null | undefined;
6
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
7
+ declare function EmptyMedia({ className, variant, ...props }: React.ComponentProps<"div"> & VariantProps<typeof emptyMediaVariants>): import("react").JSX.Element;
8
+ declare function EmptyTitle({ className, ...props }: React.ComponentProps<"div">): import("react").JSX.Element;
9
+ declare function EmptyDescription({ className, ...props }: React.ComponentProps<"p">): import("react").JSX.Element;
10
+ declare function EmptyContent({ className, ...props }: React.ComponentProps<"div">): import("react").JSX.Element;
11
+ export { Empty, EmptyHeader, EmptyTitle, EmptyDescription, EmptyContent, EmptyMedia, };
12
+ //# sourceMappingURL=empty.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"empty.d.ts","sourceRoot":"","sources":["../../src/components/empty.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAIjE,iBAAS,KAAK,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,+BAWlE;AAED,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,+BAWxE;AAED,QAAA,MAAM,kBAAkB;;8EAavB,CAAA;AAED,iBAAS,UAAU,CAAC,EAClB,SAAS,EACT,OAAmB,EACnB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC,OAAO,kBAAkB,CAAC,+BASvE;AAED,iBAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,+BAQvE;AAED,iBAAS,gBAAgB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,+BAW3E;AAED,iBAAS,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,+BAWzE;AAED,OAAO,EACL,KAAK,EACL,WAAW,EACX,UAAU,EACV,gBAAgB,EAChB,YAAY,EACZ,UAAU,GACX,CAAA"}
@@ -0,0 +1,33 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { cva } from "class-variance-authority";
3
+ import { cn } from "../lib/utils.js";
4
+ function Empty({ className, ...props }) {
5
+ return (_jsx("div", { "data-slot": "empty", className: cn("flex min-w-0 flex-1 flex-col items-center justify-center gap-6 rounded-lg border-dashed p-6 text-center text-balance md:p-12", className), ...props }));
6
+ }
7
+ function EmptyHeader({ className, ...props }) {
8
+ return (_jsx("div", { "data-slot": "empty-header", className: cn("flex max-w-sm flex-col items-center gap-2 text-center", className), ...props }));
9
+ }
10
+ const emptyMediaVariants = cva("mb-2 flex shrink-0 items-center justify-center [&_svg]:pointer-events-none [&_svg]:shrink-0", {
11
+ variants: {
12
+ variant: {
13
+ default: "bg-transparent",
14
+ icon: "flex size-10 shrink-0 items-center justify-center rounded-lg bg-muted text-foreground [&_svg:not([class*='size-'])]:size-6",
15
+ },
16
+ },
17
+ defaultVariants: {
18
+ variant: "default",
19
+ },
20
+ });
21
+ function EmptyMedia({ className, variant = "default", ...props }) {
22
+ return (_jsx("div", { "data-slot": "empty-icon", "data-variant": variant, className: cn(emptyMediaVariants({ variant, className })), ...props }));
23
+ }
24
+ function EmptyTitle({ className, ...props }) {
25
+ return (_jsx("div", { "data-slot": "empty-title", className: cn("text-lg font-medium tracking-tight", className), ...props }));
26
+ }
27
+ function EmptyDescription({ className, ...props }) {
28
+ return (_jsx("div", { "data-slot": "empty-description", className: cn("text-sm/relaxed text-muted-foreground [&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary", className), ...props }));
29
+ }
30
+ function EmptyContent({ className, ...props }) {
31
+ return (_jsx("div", { "data-slot": "empty-content", className: cn("flex w-full max-w-sm min-w-0 flex-col items-center gap-4 text-sm text-balance", className), ...props }));
32
+ }
33
+ export { Empty, EmptyHeader, EmptyTitle, EmptyDescription, EmptyContent, EmptyMedia, };
@@ -0,0 +1,21 @@
1
+ import * as React from "react";
2
+ /**
3
+ * fact-cell — mono-kicker + claim content fill (replaces the retired `.nc-fact-cell`).
4
+ *
5
+ * A seam-free fill: it drops into a seam-owning grid (which paints the hairline gaps
6
+ * between cells), so it draws NO border and is square-cornered. It carries the canvas
7
+ * surface, a mono label, and a claim. `surface="ink"` inverts onto the ink role;
8
+ * `size="sm"` is the compact 86px action-card rhythm.
9
+ *
10
+ * Server-renderable: the ink inversion + sm claim sizing are applied by the parent
11
+ * to its descendants via `data-slot` descendant selectors (the retired CSS-cascade
12
+ * model), so sub-components stay style-light. Token-only; no `dark:` styling.
13
+ */
14
+ declare function FactCell({ className, surface, size, ...props }: React.ComponentProps<"div"> & {
15
+ surface?: "canvas" | "ink";
16
+ size?: "default" | "sm";
17
+ }): React.JSX.Element;
18
+ declare function FactCellLabel({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
19
+ declare function FactCellClaim({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
20
+ export { FactCell, FactCellLabel, FactCellClaim };
21
+ //# sourceMappingURL=fact-cell.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fact-cell.d.ts","sourceRoot":"","sources":["../../src/components/fact-cell.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B;;;;;;;;;;;GAWG;AAEH,iBAAS,QAAQ,CAAC,EAChB,SAAS,EACT,OAAkB,EAClB,IAAgB,EAChB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG;IAC/B,OAAO,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAA;IAC1B,IAAI,CAAC,EAAE,SAAS,GAAG,IAAI,CAAA;CACxB,qBAsBA;AAED,iBAAS,aAAa,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAQ1E;AAED,iBAAS,aAAa,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAQ1E;AAED,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,aAAa,EAAE,CAAA"}
@@ -0,0 +1,29 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { cn } from "../lib/utils.js";
3
+ /**
4
+ * fact-cell — mono-kicker + claim content fill (replaces the retired `.nc-fact-cell`).
5
+ *
6
+ * A seam-free fill: it drops into a seam-owning grid (which paints the hairline gaps
7
+ * between cells), so it draws NO border and is square-cornered. It carries the canvas
8
+ * surface, a mono label, and a claim. `surface="ink"` inverts onto the ink role;
9
+ * `size="sm"` is the compact 86px action-card rhythm.
10
+ *
11
+ * Server-renderable: the ink inversion + sm claim sizing are applied by the parent
12
+ * to its descendants via `data-slot` descendant selectors (the retired CSS-cascade
13
+ * model), so sub-components stay style-light. Token-only; no `dark:` styling.
14
+ */
15
+ function FactCell({ className, surface = "canvas", size = "default", ...props }) {
16
+ return (_jsx("div", { "data-slot": "fact-cell", "data-surface": surface, "data-size": size, className: cn("grid content-center gap-1.5", size === "default" ? "min-h-24 p-[18px]" : "min-h-[86px] p-4", surface === "canvas" && "bg-card", surface === "ink" && [
17
+ "bg-primary",
18
+ "[&_[data-slot=fact-cell-label]]:text-primary-foreground",
19
+ "[&_[data-slot=fact-cell-claim]]:text-primary-foreground",
20
+ ], size === "sm" &&
21
+ "[&_[data-slot=fact-cell-claim]]:text-[15px] [&_[data-slot=fact-cell-claim]]:leading-5", className), ...props }));
22
+ }
23
+ function FactCellLabel({ className, ...props }) {
24
+ return (_jsx("div", { "data-slot": "fact-cell-label", className: cn("font-mono text-xs uppercase text-muted-foreground", className), ...props }));
25
+ }
26
+ function FactCellClaim({ className, ...props }) {
27
+ return (_jsx("div", { "data-slot": "fact-cell-claim", className: cn("text-lg leading-[1.2] text-foreground", className), ...props }));
28
+ }
29
+ export { FactCell, FactCellLabel, FactCellClaim };
@@ -0,0 +1,25 @@
1
+ import * as React from "react";
2
+ /**
3
+ * faq-item — native-<details> accordion entry (replaces the retired `.nc-faq-item`).
4
+ *
5
+ * Uses native `<details>`/`<summary>` semantics: exclusive-open is the browser's
6
+ * native `<details name="…">` group behaviour (no JS toggle), and the disclosure
7
+ * carries its own ARIA — `<summary>` exposes the expanded/collapsed state to AT, so
8
+ * an explicit `aria-expanded` is redundant (and we set it as well off the `open`
9
+ * prop for callers that inspect it). A11y: keyboard-operable by default (Enter /
10
+ * Space on the summary); a `--ring`-coloured focus outline on focus-visible.
11
+ *
12
+ * Seam ownership: the holding `Faq` grid owns the hairline BETWEEN items
13
+ * (gap-as-seam), so this draws no inter-item border. The only seam the item owns is
14
+ * the internal hairline between its summary and answer (the answer's `border-t`),
15
+ * bounded inside the item and revealed only when open. The native disclosure
16
+ * triangle is hidden; a `+`/`−` bar marker carries the affordance. Token-only;
17
+ * no `dark:` styling.
18
+ */
19
+ declare function FaqItem({ className, question, name, open, children, ...props }: Omit<React.ComponentProps<"details">, "name"> & {
20
+ question: React.ReactNode;
21
+ /** native exclusive-accordion group name; all items in one Faq share it */
22
+ name?: string;
23
+ }): React.JSX.Element;
24
+ export { FaqItem };
25
+ //# sourceMappingURL=faq-item.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"faq-item.d.ts","sourceRoot":"","sources":["../../src/components/faq-item.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B;;;;;;;;;;;;;;;;GAgBG;AAEH,iBAAS,OAAO,CAAC,EACf,SAAS,EACT,QAAQ,EACR,IAAI,EACJ,IAAI,EACJ,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,GAAG;IACjD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,2EAA2E;IAC3E,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,qBA8BA;AAED,OAAO,EAAE,OAAO,EAAE,CAAA"}
@@ -0,0 +1,25 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { cn } from "../lib/utils.js";
3
+ /**
4
+ * faq-item — native-<details> accordion entry (replaces the retired `.nc-faq-item`).
5
+ *
6
+ * Uses native `<details>`/`<summary>` semantics: exclusive-open is the browser's
7
+ * native `<details name="…">` group behaviour (no JS toggle), and the disclosure
8
+ * carries its own ARIA — `<summary>` exposes the expanded/collapsed state to AT, so
9
+ * an explicit `aria-expanded` is redundant (and we set it as well off the `open`
10
+ * prop for callers that inspect it). A11y: keyboard-operable by default (Enter /
11
+ * Space on the summary); a `--ring`-coloured focus outline on focus-visible.
12
+ *
13
+ * Seam ownership: the holding `Faq` grid owns the hairline BETWEEN items
14
+ * (gap-as-seam), so this draws no inter-item border. The only seam the item owns is
15
+ * the internal hairline between its summary and answer (the answer's `border-t`),
16
+ * bounded inside the item and revealed only when open. The native disclosure
17
+ * triangle is hidden; a `+`/`−` bar marker carries the affordance. Token-only;
18
+ * no `dark:` styling.
19
+ */
20
+ function FaqItem({ className, question, name, open, children, ...props }) {
21
+ return (_jsxs("details", { "data-slot": "faq-item", name: name, open: open, className: cn("group bg-card [&_summary::-webkit-details-marker]:hidden", className), ...props, children: [_jsx("summary", { className: cn("flex min-h-16 cursor-pointer list-none items-center justify-between gap-4 px-5 py-[18px]", "text-base font-medium text-foreground", "outline-none focus-visible:outline-2 focus-visible:[outline-color:var(--ring)] focus-visible:-outline-offset-2",
22
+ // +/- marker: two crossed bars; the vertical bar hides when open (+ -> -)
23
+ "after:size-3 after:flex-none after:bg-[length:12px_1px,1px_12px] after:bg-center after:bg-no-repeat", "after:[background-image:linear-gradient(var(--nc-body),var(--nc-body)),linear-gradient(var(--nc-body),var(--nc-body))]", "group-open:after:bg-[length:12px_1px] group-open:after:[background-image:linear-gradient(var(--nc-body),var(--nc-body))]"), children: question }), _jsx("div", { "data-slot": "faq-item-answer", className: "border-t border-border px-5 pt-4 pb-5 text-sm text-[var(--nc-body)]", children: children })] }));
24
+ }
25
+ export { FaqItem };
@@ -0,0 +1,16 @@
1
+ import * as React from "react";
2
+ /**
3
+ * faq — single-column question/answer accordion (replaces the retired
4
+ * `sections/faq.css` + its coupled `faq-item` rows).
5
+ *
6
+ * SINGLE-OWNER SEAM: a single-track gap-as-seam grid (`gap-px bg-border`) owns
7
+ * every divider BETWEEN items. Each `FaqItem` is a borderless fill that repairs no
8
+ * inter-item seam; the only hairline an item owns is its internal summary/answer
9
+ * rule (drawn by `FaqItem`, not here). A faq is one column at every breakpoint —
10
+ * no column count, no dark inversion (matching the retired section's variants:none).
11
+ *
12
+ * Token-only; no `dark:` styling.
13
+ */
14
+ declare function Faq({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
15
+ export { Faq };
16
+ //# sourceMappingURL=faq.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"faq.d.ts","sourceRoot":"","sources":["../../src/components/faq.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B;;;;;;;;;;;GAWG;AAEH,iBAAS,GAAG,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAQhE;AAED,OAAO,EAAE,GAAG,EAAE,CAAA"}
@@ -0,0 +1,18 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { cn } from "../lib/utils.js";
3
+ /**
4
+ * faq — single-column question/answer accordion (replaces the retired
5
+ * `sections/faq.css` + its coupled `faq-item` rows).
6
+ *
7
+ * SINGLE-OWNER SEAM: a single-track gap-as-seam grid (`gap-px bg-border`) owns
8
+ * every divider BETWEEN items. Each `FaqItem` is a borderless fill that repairs no
9
+ * inter-item seam; the only hairline an item owns is its internal summary/answer
10
+ * rule (drawn by `FaqItem`, not here). A faq is one column at every breakpoint —
11
+ * no column count, no dark inversion (matching the retired section's variants:none).
12
+ *
13
+ * Token-only; no `dark:` styling.
14
+ */
15
+ function Faq({ className, ...props }) {
16
+ return (_jsx("div", { "data-slot": "faq", className: cn("grid h-full grid-cols-1 gap-px bg-border", className), ...props }));
17
+ }
18
+ export { Faq };
@@ -0,0 +1,14 @@
1
+ import * as React from "react";
2
+ import { Empty } from "./empty";
3
+ export type FeedbackStateStatus = "empty" | "loading" | "saving" | "error" | "permission" | "offline" | "no-results" | "fatal";
4
+ declare function FeedbackState({ status, title, description, icon, actions, children, compact, className, ...props }: Omit<React.ComponentProps<typeof Empty>, "children" | "title"> & {
5
+ status: FeedbackStateStatus;
6
+ title?: React.ReactNode;
7
+ description?: React.ReactNode;
8
+ icon?: React.ReactNode;
9
+ actions?: React.ReactNode;
10
+ children?: React.ReactNode;
11
+ compact?: boolean;
12
+ }): React.JSX.Element;
13
+ export { FeedbackState };
14
+ //# sourceMappingURL=feedback-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feedback-state.d.ts","sourceRoot":"","sources":["../../src/components/feedback-state.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAY9B,OAAO,EACL,KAAK,EAMN,MAAM,oBAAoB,CAAA;AAE3B,MAAM,MAAM,mBAAmB,GAC3B,OAAO,GACP,SAAS,GACT,QAAQ,GACR,OAAO,GACP,YAAY,GACZ,SAAS,GACT,YAAY,GACZ,OAAO,CAAA;AAqEX,iBAAS,aAAa,CAAC,EACrB,MAAM,EACN,KAAK,EACL,WAAW,EACX,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,OAAe,EACf,SAAS,EACT,GAAG,KAAK,EACT,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,KAAK,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,GAAG;IAClE,MAAM,EAAE,mBAAmB,CAAA;IAC3B,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACvB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC7B,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtB,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,qBAkDA;AAED,OAAO,EAAE,aAAa,EAAE,CAAA"}