create-inox-app 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 (510) hide show
  1. package/README.md +110 -0
  2. package/dist/cli.js +22196 -0
  3. package/dist/prompt-Bp8saGVV.js +852 -0
  4. package/dist/templates/base/.gitignore.hbs +9 -0
  5. package/dist/templates/base/package.json.hbs +29 -0
  6. package/dist/templates/base/packages/typescript-config/base.json +17 -0
  7. package/dist/templates/base/packages/typescript-config/nextjs.json +8 -0
  8. package/dist/templates/base/packages/typescript-config/package.json +10 -0
  9. package/dist/templates/base/packages/typescript-config/react-library.json +7 -0
  10. package/dist/templates/base/turbo.json.hbs +32 -0
  11. package/dist/templates/ci/.gitlab-ci.yml.hbs +70 -0
  12. package/dist/templates/ci/scripts/build.sh.hbs +94 -0
  13. package/dist/templates/ci/scripts/prebuild.sh.hbs +11 -0
  14. package/dist/templates/claude-config/app/.agents/skills/agent-browser/SKILL.md +325 -0
  15. package/dist/templates/claude-config/app/.agents/skills/agent-browser/references/authentication.md +202 -0
  16. package/dist/templates/claude-config/app/.agents/skills/agent-browser/references/commands.md +259 -0
  17. package/dist/templates/claude-config/app/.agents/skills/agent-browser/references/proxy-support.md +188 -0
  18. package/dist/templates/claude-config/app/.agents/skills/agent-browser/references/session-management.md +193 -0
  19. package/dist/templates/claude-config/app/.agents/skills/agent-browser/references/snapshot-refs.md +194 -0
  20. package/dist/templates/claude-config/app/.agents/skills/agent-browser/references/video-recording.md +173 -0
  21. package/dist/templates/claude-config/app/.agents/skills/agent-browser/templates/authenticated-session.sh +100 -0
  22. package/dist/templates/claude-config/app/.agents/skills/agent-browser/templates/capture-workflow.sh +69 -0
  23. package/dist/templates/claude-config/app/.agents/skills/agent-browser/templates/form-automation.sh +62 -0
  24. package/dist/templates/claude-config/app/.agents/skills/ai-elements/SKILL.md +150 -0
  25. package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/agent.md +131 -0
  26. package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/artifact.md +84 -0
  27. package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/attachments.md +190 -0
  28. package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/audio-player.md +134 -0
  29. package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/canvas.md +32 -0
  30. package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/chain-of-thought.md +81 -0
  31. package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/checkpoint.md +163 -0
  32. package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/code-block.md +170 -0
  33. package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/commit.md +177 -0
  34. package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/confirmation.md +252 -0
  35. package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/connection.md +32 -0
  36. package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/context.md +126 -0
  37. package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/controls.md +30 -0
  38. package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/conversation.md +210 -0
  39. package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/edge.md +50 -0
  40. package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/environment-variables.md +102 -0
  41. package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/file-tree.md +72 -0
  42. package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/image.md +143 -0
  43. package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/inline-citation.md +293 -0
  44. package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/jsx-preview.md +101 -0
  45. package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/message.md +256 -0
  46. package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/mic-selector.md +186 -0
  47. package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/model-selector.md +112 -0
  48. package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/node.md +71 -0
  49. package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/open-in-chat.md +67 -0
  50. package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/package-info.md +95 -0
  51. package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/panel.md +31 -0
  52. package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/persona.md +158 -0
  53. package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/plan.md +79 -0
  54. package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/prompt-input.md +555 -0
  55. package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/queue.md +172 -0
  56. package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/reasoning.md +219 -0
  57. package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/sandbox.md +126 -0
  58. package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/schema-display.md +102 -0
  59. package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/shimmer.md +48 -0
  60. package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/snippet.md +64 -0
  61. package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/sources.md +193 -0
  62. package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/speech-input.md +160 -0
  63. package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/stack-trace.md +218 -0
  64. package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/suggestion.md +121 -0
  65. package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/task.md +215 -0
  66. package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/terminal.md +103 -0
  67. package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/test-results.md +157 -0
  68. package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/tool.md +275 -0
  69. package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/toolbar.md +30 -0
  70. package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/transcription.md +120 -0
  71. package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/voice-selector.md +241 -0
  72. package/dist/templates/claude-config/app/.agents/skills/ai-elements/references/web-preview.md +197 -0
  73. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/agent.tsx +61 -0
  74. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/artifact.tsx +111 -0
  75. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/attachments-inline.tsx +117 -0
  76. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/attachments-list.tsx +88 -0
  77. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/attachments.tsx +78 -0
  78. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/audio-player-remote.tsx +35 -0
  79. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/audio-player.tsx +69 -0
  80. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/chain-of-thought.tsx +74 -0
  81. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/checkpoint.tsx +90 -0
  82. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/code-block-dark.tsx +46 -0
  83. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/code-block.tsx +115 -0
  84. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/commit.tsx +94 -0
  85. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/confirmation-accepted.tsx +35 -0
  86. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/confirmation-rejected.tsx +35 -0
  87. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/confirmation-request.tsx +54 -0
  88. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/confirmation.tsx +53 -0
  89. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/context.tsx +45 -0
  90. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/conversation.tsx +176 -0
  91. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/environment-variables.tsx +55 -0
  92. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/file-tree-basic.tsx +14 -0
  93. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/file-tree-expanded.tsx +17 -0
  94. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/file-tree-selection.tsx +20 -0
  95. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/file-tree.tsx +38 -0
  96. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/image.tsx +20 -0
  97. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/inline-citation.tsx +95 -0
  98. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/jsx-preview.tsx +99 -0
  99. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/message.tsx +324 -0
  100. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/mic-selector.tsx +46 -0
  101. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/model-selector.tsx +362 -0
  102. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/open-in-chat.tsx +33 -0
  103. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/package-info.tsx +46 -0
  104. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/persona-command.tsx +96 -0
  105. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/persona-glint.tsx +96 -0
  106. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/persona-halo.tsx +96 -0
  107. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/persona-mana.tsx +96 -0
  108. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/persona-obsidian.tsx +96 -0
  109. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/persona-opal.tsx +96 -0
  110. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/plan.tsx +63 -0
  111. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/prompt-input-cursor.tsx +459 -0
  112. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/prompt-input-tooltip.tsx +40 -0
  113. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/prompt-input.tsx +247 -0
  114. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/queue-prompt-input.tsx +367 -0
  115. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/queue.tsx +276 -0
  116. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/reasoning.tsx +67 -0
  117. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/sandbox.tsx +166 -0
  118. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/schema-display-basic.tsx +7 -0
  119. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/schema-display-body.tsx +20 -0
  120. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/schema-display-nested.tsx +23 -0
  121. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/schema-display-params.tsx +16 -0
  122. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/schema-display.tsx +110 -0
  123. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/shimmer-duration.tsx +29 -0
  124. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/shimmer-elements.tsx +39 -0
  125. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/shimmer.tsx +17 -0
  126. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/snippet-plain.tsx +19 -0
  127. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/snippet.tsx +25 -0
  128. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/sources-custom.tsx +34 -0
  129. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/sources.tsx +27 -0
  130. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/speech-input.tsx +79 -0
  131. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/stack-trace-collapsed.tsx +39 -0
  132. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/stack-trace-no-internal.tsx +41 -0
  133. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/stack-trace.tsx +54 -0
  134. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/suggestion-input.tsx +137 -0
  135. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/suggestion.tsx +28 -0
  136. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/task.tsx +60 -0
  137. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/terminal-basic.tsx +7 -0
  138. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/terminal-clear.tsx +19 -0
  139. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/terminal-streaming.tsx +38 -0
  140. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/terminal.tsx +77 -0
  141. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/test-results-basic.tsx +27 -0
  142. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/test-results-errors.tsx +51 -0
  143. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/test-results-suites.tsx +40 -0
  144. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/test-results.tsx +78 -0
  145. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/tool-input-available.tsx +31 -0
  146. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/tool-input-streaming.tsx +30 -0
  147. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/tool-output-available.tsx +76 -0
  148. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/tool-output-error.tsx +45 -0
  149. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/tool.tsx +205 -0
  150. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/transcription.tsx +284 -0
  151. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/voice-selector.tsx +228 -0
  152. package/dist/templates/claude-config/app/.agents/skills/ai-elements/scripts/web-preview.tsx +99 -0
  153. package/dist/templates/claude-config/app/.agents/skills/ai-sdk/SKILL.md +78 -0
  154. package/dist/templates/claude-config/app/.agents/skills/ai-sdk/references/ai-gateway.md +66 -0
  155. package/dist/templates/claude-config/app/.agents/skills/ai-sdk/references/common-errors.md +439 -0
  156. package/dist/templates/claude-config/app/.agents/skills/ai-sdk/references/devtools.md +52 -0
  157. package/dist/templates/claude-config/app/.agents/skills/ai-sdk/references/type-safe-agents.md +200 -0
  158. package/dist/templates/claude-config/app/.agents/skills/better-auth-best-practices/SKILL.md +166 -0
  159. package/dist/templates/claude-config/app/.agents/skills/building-components/SKILL.md +37 -0
  160. package/dist/templates/claude-config/app/.agents/skills/building-components/references/accessibility.mdx +819 -0
  161. package/dist/templates/claude-config/app/.agents/skills/building-components/references/as-child.mdx +324 -0
  162. package/dist/templates/claude-config/app/.agents/skills/building-components/references/composition.mdx +239 -0
  163. package/dist/templates/claude-config/app/.agents/skills/building-components/references/data-attributes.mdx +413 -0
  164. package/dist/templates/claude-config/app/.agents/skills/building-components/references/definitions.mdx +258 -0
  165. package/dist/templates/claude-config/app/.agents/skills/building-components/references/design-tokens.mdx +57 -0
  166. package/dist/templates/claude-config/app/.agents/skills/building-components/references/docs.mdx +155 -0
  167. package/dist/templates/claude-config/app/.agents/skills/building-components/references/marketplaces.mdx +144 -0
  168. package/dist/templates/claude-config/app/.agents/skills/building-components/references/npm.mdx +166 -0
  169. package/dist/templates/claude-config/app/.agents/skills/building-components/references/polymorphism.mdx +583 -0
  170. package/dist/templates/claude-config/app/.agents/skills/building-components/references/principles.mdx +61 -0
  171. package/dist/templates/claude-config/app/.agents/skills/building-components/references/registry.mdx +169 -0
  172. package/dist/templates/claude-config/app/.agents/skills/building-components/references/state.mdx +99 -0
  173. package/dist/templates/claude-config/app/.agents/skills/building-components/references/styling.mdx +286 -0
  174. package/dist/templates/claude-config/app/.agents/skills/building-components/references/types.mdx +191 -0
  175. package/dist/templates/claude-config/app/.agents/skills/docker-expert/SKILL.md +409 -0
  176. package/dist/templates/claude-config/app/.agents/skills/email-and-password-best-practices/SKILL.md +224 -0
  177. package/dist/templates/claude-config/app/.agents/skills/find-skills/SKILL.md +133 -0
  178. package/dist/templates/claude-config/app/.agents/skills/frontend-design/LICENSE.txt +177 -0
  179. package/dist/templates/claude-config/app/.agents/skills/frontend-design/SKILL.md +42 -0
  180. package/dist/templates/claude-config/app/.agents/skills/git-commit/SKILL.md +124 -0
  181. package/dist/templates/claude-config/app/.agents/skills/gitlab-ci-patterns/SKILL.md +271 -0
  182. package/dist/templates/claude-config/app/.agents/skills/hono/SKILL.md +90 -0
  183. package/dist/templates/claude-config/app/.agents/skills/langfuse-observability/SKILL.md +139 -0
  184. package/dist/templates/claude-config/app/.agents/skills/logging-best-practices/SKILL.md +127 -0
  185. package/dist/templates/claude-config/app/.agents/skills/logging-best-practices/rules/context.md +157 -0
  186. package/dist/templates/claude-config/app/.agents/skills/logging-best-practices/rules/pitfalls.md +118 -0
  187. package/dist/templates/claude-config/app/.agents/skills/logging-best-practices/rules/structure.md +193 -0
  188. package/dist/templates/claude-config/app/.agents/skills/logging-best-practices/rules/wide-events.md +113 -0
  189. package/dist/templates/claude-config/app/.agents/skills/next-best-practices/SKILL.md +153 -0
  190. package/dist/templates/claude-config/app/.agents/skills/next-best-practices/async-patterns.md +87 -0
  191. package/dist/templates/claude-config/app/.agents/skills/next-best-practices/bundling.md +180 -0
  192. package/dist/templates/claude-config/app/.agents/skills/next-best-practices/data-patterns.md +297 -0
  193. package/dist/templates/claude-config/app/.agents/skills/next-best-practices/debug-tricks.md +105 -0
  194. package/dist/templates/claude-config/app/.agents/skills/next-best-practices/directives.md +73 -0
  195. package/dist/templates/claude-config/app/.agents/skills/next-best-practices/error-handling.md +227 -0
  196. package/dist/templates/claude-config/app/.agents/skills/next-best-practices/file-conventions.md +140 -0
  197. package/dist/templates/claude-config/app/.agents/skills/next-best-practices/font.md +245 -0
  198. package/dist/templates/claude-config/app/.agents/skills/next-best-practices/functions.md +108 -0
  199. package/dist/templates/claude-config/app/.agents/skills/next-best-practices/hydration-error.md +91 -0
  200. package/dist/templates/claude-config/app/.agents/skills/next-best-practices/image.md +173 -0
  201. package/dist/templates/claude-config/app/.agents/skills/next-best-practices/metadata.md +301 -0
  202. package/dist/templates/claude-config/app/.agents/skills/next-best-practices/parallel-routes.md +287 -0
  203. package/dist/templates/claude-config/app/.agents/skills/next-best-practices/route-handlers.md +146 -0
  204. package/dist/templates/claude-config/app/.agents/skills/next-best-practices/rsc-boundaries.md +159 -0
  205. package/dist/templates/claude-config/app/.agents/skills/next-best-practices/runtime-selection.md +39 -0
  206. package/dist/templates/claude-config/app/.agents/skills/next-best-practices/scripts.md +141 -0
  207. package/dist/templates/claude-config/app/.agents/skills/next-best-practices/self-hosting.md +371 -0
  208. package/dist/templates/claude-config/app/.agents/skills/next-best-practices/suspense-boundaries.md +67 -0
  209. package/dist/templates/claude-config/app/.agents/skills/next-cache-components/SKILL.md +411 -0
  210. package/dist/templates/claude-config/app/.agents/skills/next-upgrade/SKILL.md +50 -0
  211. package/dist/templates/claude-config/app/.agents/skills/postgres-drizzle/SKILL.md +179 -0
  212. package/dist/templates/claude-config/app/.agents/skills/postgres-drizzle/references/CHEATSHEET.md +418 -0
  213. package/dist/templates/claude-config/app/.agents/skills/postgres-drizzle/references/MIGRATIONS.md +536 -0
  214. package/dist/templates/claude-config/app/.agents/skills/postgres-drizzle/references/PERFORMANCE.md +559 -0
  215. package/dist/templates/claude-config/app/.agents/skills/postgres-drizzle/references/POSTGRES.md +588 -0
  216. package/dist/templates/claude-config/app/.agents/skills/postgres-drizzle/references/QUERIES.md +764 -0
  217. package/dist/templates/claude-config/app/.agents/skills/postgres-drizzle/references/RELATIONS.md +624 -0
  218. package/dist/templates/claude-config/app/.agents/skills/postgres-drizzle/references/SCHEMA.md +554 -0
  219. package/dist/templates/claude-config/app/.agents/skills/skill-creator/LICENSE.txt +202 -0
  220. package/dist/templates/claude-config/app/.agents/skills/skill-creator/SKILL.md +356 -0
  221. package/dist/templates/claude-config/app/.agents/skills/skill-creator/references/output-patterns.md +82 -0
  222. package/dist/templates/claude-config/app/.agents/skills/skill-creator/references/workflows.md +28 -0
  223. package/dist/templates/claude-config/app/.agents/skills/skill-creator/scripts/init_skill.py +303 -0
  224. package/dist/templates/claude-config/app/.agents/skills/skill-creator/scripts/package_skill.py +113 -0
  225. package/dist/templates/claude-config/app/.agents/skills/skill-creator/scripts/quick_validate.py +95 -0
  226. package/dist/templates/claude-config/app/.agents/skills/streamdown/SKILL.md +164 -0
  227. package/dist/templates/claude-config/app/.agents/skills/streamdown/assets/examples/basic-streaming.tsx +34 -0
  228. package/dist/templates/claude-config/app/.agents/skills/streamdown/assets/examples/custom-security.tsx +38 -0
  229. package/dist/templates/claude-config/app/.agents/skills/streamdown/assets/examples/full-featured.tsx +60 -0
  230. package/dist/templates/claude-config/app/.agents/skills/streamdown/assets/examples/static-mode.tsx +17 -0
  231. package/dist/templates/claude-config/app/.agents/skills/streamdown/assets/examples/with-caret.tsx +39 -0
  232. package/dist/templates/claude-config/app/.agents/skills/streamdown/references/api.md +278 -0
  233. package/dist/templates/claude-config/app/.agents/skills/streamdown/references/features.md +201 -0
  234. package/dist/templates/claude-config/app/.agents/skills/streamdown/references/plugins.md +239 -0
  235. package/dist/templates/claude-config/app/.agents/skills/streamdown/references/security.md +192 -0
  236. package/dist/templates/claude-config/app/.agents/skills/streamdown/references/styling.md +166 -0
  237. package/dist/templates/claude-config/app/.agents/skills/tdd/SKILL.md +107 -0
  238. package/dist/templates/claude-config/app/.agents/skills/tdd/deep-modules.md +33 -0
  239. package/dist/templates/claude-config/app/.agents/skills/tdd/interface-design.md +31 -0
  240. package/dist/templates/claude-config/app/.agents/skills/tdd/mocking.md +60 -0
  241. package/dist/templates/claude-config/app/.agents/skills/tdd/refactoring.md +10 -0
  242. package/dist/templates/claude-config/app/.agents/skills/tdd/tests.md +61 -0
  243. package/dist/templates/claude-config/app/.agents/skills/turborepo/SKILL.md +914 -0
  244. package/dist/templates/claude-config/app/.agents/skills/turborepo/command/turborepo.md +70 -0
  245. package/dist/templates/claude-config/app/.agents/skills/turborepo/references/best-practices/RULE.md +241 -0
  246. package/dist/templates/claude-config/app/.agents/skills/turborepo/references/best-practices/dependencies.md +246 -0
  247. package/dist/templates/claude-config/app/.agents/skills/turborepo/references/best-practices/packages.md +335 -0
  248. package/dist/templates/claude-config/app/.agents/skills/turborepo/references/best-practices/structure.md +270 -0
  249. package/dist/templates/claude-config/app/.agents/skills/turborepo/references/boundaries/RULE.md +126 -0
  250. package/dist/templates/claude-config/app/.agents/skills/turborepo/references/caching/RULE.md +107 -0
  251. package/dist/templates/claude-config/app/.agents/skills/turborepo/references/caching/gotchas.md +169 -0
  252. package/dist/templates/claude-config/app/.agents/skills/turborepo/references/caching/remote-cache.md +127 -0
  253. package/dist/templates/claude-config/app/.agents/skills/turborepo/references/ci/RULE.md +79 -0
  254. package/dist/templates/claude-config/app/.agents/skills/turborepo/references/ci/github-actions.md +162 -0
  255. package/dist/templates/claude-config/app/.agents/skills/turborepo/references/ci/patterns.md +145 -0
  256. package/dist/templates/claude-config/app/.agents/skills/turborepo/references/ci/vercel.md +103 -0
  257. package/dist/templates/claude-config/app/.agents/skills/turborepo/references/cli/RULE.md +100 -0
  258. package/dist/templates/claude-config/app/.agents/skills/turborepo/references/cli/commands.md +297 -0
  259. package/dist/templates/claude-config/app/.agents/skills/turborepo/references/configuration/RULE.md +211 -0
  260. package/dist/templates/claude-config/app/.agents/skills/turborepo/references/configuration/global-options.md +191 -0
  261. package/dist/templates/claude-config/app/.agents/skills/turborepo/references/configuration/gotchas.md +348 -0
  262. package/dist/templates/claude-config/app/.agents/skills/turborepo/references/configuration/tasks.md +281 -0
  263. package/dist/templates/claude-config/app/.agents/skills/turborepo/references/environment/RULE.md +96 -0
  264. package/dist/templates/claude-config/app/.agents/skills/turborepo/references/environment/gotchas.md +141 -0
  265. package/dist/templates/claude-config/app/.agents/skills/turborepo/references/environment/modes.md +101 -0
  266. package/dist/templates/claude-config/app/.agents/skills/turborepo/references/filtering/RULE.md +148 -0
  267. package/dist/templates/claude-config/app/.agents/skills/turborepo/references/filtering/patterns.md +152 -0
  268. package/dist/templates/claude-config/app/.agents/skills/turborepo/references/watch/RULE.md +99 -0
  269. package/dist/templates/claude-config/app/.agents/skills/vercel-composition-patterns/AGENTS.md +917 -0
  270. package/dist/templates/claude-config/app/.agents/skills/vercel-composition-patterns/SKILL.md +88 -0
  271. package/dist/templates/claude-config/app/.agents/skills/vercel-composition-patterns/rules/architecture-avoid-boolean-props.md +94 -0
  272. package/dist/templates/claude-config/app/.agents/skills/vercel-composition-patterns/rules/architecture-compound-components.md +108 -0
  273. package/dist/templates/claude-config/app/.agents/skills/vercel-composition-patterns/rules/patterns-children-over-render-props.md +84 -0
  274. package/dist/templates/claude-config/app/.agents/skills/vercel-composition-patterns/rules/patterns-explicit-variants.md +94 -0
  275. package/dist/templates/claude-config/app/.agents/skills/vercel-composition-patterns/rules/react19-no-forwardref.md +42 -0
  276. package/dist/templates/claude-config/app/.agents/skills/vercel-composition-patterns/rules/state-context-interface.md +191 -0
  277. package/dist/templates/claude-config/app/.agents/skills/vercel-composition-patterns/rules/state-decouple-implementation.md +103 -0
  278. package/dist/templates/claude-config/app/.agents/skills/vercel-composition-patterns/rules/state-lift-state.md +125 -0
  279. package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/AGENTS.md +2883 -0
  280. package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/SKILL.md +138 -0
  281. package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md +55 -0
  282. package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/advanced-init-once.md +42 -0
  283. package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/advanced-use-latest.md +39 -0
  284. package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/async-api-routes.md +35 -0
  285. package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/async-defer-await.md +80 -0
  286. package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/async-dependencies.md +48 -0
  287. package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/async-parallel.md +24 -0
  288. package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/async-suspense-boundaries.md +99 -0
  289. package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md +59 -0
  290. package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/bundle-conditional.md +37 -0
  291. package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md +48 -0
  292. package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md +34 -0
  293. package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/bundle-preload.md +44 -0
  294. package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/client-event-listeners.md +78 -0
  295. package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/client-localstorage-schema.md +74 -0
  296. package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/client-passive-event-listeners.md +48 -0
  297. package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/client-swr-dedup.md +56 -0
  298. package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/js-batch-dom-css.md +110 -0
  299. package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/js-cache-function-results.md +80 -0
  300. package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/js-cache-property-access.md +28 -0
  301. package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/js-cache-storage.md +68 -0
  302. package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/js-combine-iterations.md +32 -0
  303. package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/js-early-exit.md +50 -0
  304. package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/js-hoist-regexp.md +45 -0
  305. package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/js-index-maps.md +37 -0
  306. package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/js-length-check-first.md +50 -0
  307. package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/js-min-max-loop.md +82 -0
  308. package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/js-set-map-lookups.md +24 -0
  309. package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/js-tosorted-immutable.md +57 -0
  310. package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/rendering-activity.md +26 -0
  311. package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +38 -0
  312. package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/rendering-conditional-render.md +32 -0
  313. package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/rendering-content-visibility.md +38 -0
  314. package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md +36 -0
  315. package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +72 -0
  316. package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +26 -0
  317. package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/rendering-svg-precision.md +28 -0
  318. package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md +75 -0
  319. package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/rerender-defer-reads.md +39 -0
  320. package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/rerender-dependencies.md +45 -0
  321. package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
  322. package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/rerender-derived-state.md +29 -0
  323. package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md +77 -0
  324. package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md +56 -0
  325. package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +36 -0
  326. package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/rerender-memo.md +44 -0
  327. package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
  328. package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
  329. package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/rerender-transitions.md +40 -0
  330. package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
  331. package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/server-after-nonblocking.md +73 -0
  332. package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/server-auth-actions.md +96 -0
  333. package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/server-cache-lru.md +41 -0
  334. package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/server-cache-react.md +76 -0
  335. package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/server-dedup-props.md +65 -0
  336. package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/server-parallel-fetching.md +83 -0
  337. package/dist/templates/claude-config/app/.agents/skills/vercel-react-best-practices/rules/server-serialization.md +38 -0
  338. package/dist/templates/claude-config/app/.agents/skills/web-design-guidelines/SKILL.md +40 -0
  339. package/dist/templates/claude-config/app/.agents/skills/workflow/SKILL.md +181 -0
  340. package/dist/templates/claude-config/app/.claude/commands/council.md +7 -0
  341. package/dist/templates/claude-config/app/.claude/commands/deslop.md +25 -0
  342. package/dist/templates/claude-config/app/.claude/commands/diagram.md +101 -0
  343. package/dist/templates/claude-config/app/.claude/commands/fix-merge.md +47 -0
  344. package/dist/templates/claude-config/app/.claude/commands/you-might-not-need-an-effect.md +10 -0
  345. package/dist/templates/claude-config/app/.claude/hooks/post-tool-use-tracker.sh +187 -0
  346. package/dist/templates/claude-config/app/.claude/hooks/skill-activation-prompt.sh +5 -0
  347. package/dist/templates/claude-config/app/.claude/hooks/skill-activation-prompt.ts +134 -0
  348. package/dist/templates/claude-config/app/.claude/rules/comments.md +12 -0
  349. package/dist/templates/claude-config/app/.claude/rules/typescript.md +31 -0
  350. package/dist/templates/claude-config/app/.claude/settings.json.hbs +74 -0
  351. package/dist/templates/claude-config/app/.claude/skills/skill-rules.json.hbs +309 -0
  352. package/dist/templates/claude-config/app/AGENTS.md.hbs +185 -0
  353. package/dist/templates/claude-config/app/CLAUDE.md.hbs +5 -0
  354. package/dist/templates/claude-config/kustomize/.agents/skills/git-commit/SKILL.md +124 -0
  355. package/dist/templates/claude-config/kustomize/.agents/skills/k8s-manifest-generator/SKILL.md +534 -0
  356. package/dist/templates/claude-config/kustomize/.agents/skills/k8s-manifest-generator/assets/configmap-template.yaml +296 -0
  357. package/dist/templates/claude-config/kustomize/.agents/skills/k8s-manifest-generator/assets/deployment-template.yaml +203 -0
  358. package/dist/templates/claude-config/kustomize/.agents/skills/k8s-manifest-generator/assets/service-template.yaml +171 -0
  359. package/dist/templates/claude-config/kustomize/.agents/skills/k8s-manifest-generator/references/deployment-spec.md +780 -0
  360. package/dist/templates/claude-config/kustomize/.agents/skills/k8s-manifest-generator/references/service-spec.md +748 -0
  361. package/dist/templates/claude-config/kustomize/.claude/settings.json +42 -0
  362. package/dist/templates/claude-config/kustomize/.claude/skills/git-commit/SKILL.md +124 -0
  363. package/dist/templates/claude-config/kustomize/.claude/skills/k8s-manifest-generator/SKILL.md +534 -0
  364. package/dist/templates/claude-config/kustomize/.claude/skills/k8s-manifest-generator/assets/configmap-template.yaml +296 -0
  365. package/dist/templates/claude-config/kustomize/.claude/skills/k8s-manifest-generator/assets/deployment-template.yaml +203 -0
  366. package/dist/templates/claude-config/kustomize/.claude/skills/k8s-manifest-generator/assets/service-template.yaml +171 -0
  367. package/dist/templates/claude-config/kustomize/.claude/skills/k8s-manifest-generator/references/deployment-spec.md +780 -0
  368. package/dist/templates/claude-config/kustomize/.claude/skills/k8s-manifest-generator/references/service-spec.md +748 -0
  369. package/dist/templates/docker/.dockerignore.hbs +8 -0
  370. package/dist/templates/docker/Dockerfile.hbs +81 -0
  371. package/dist/templates/docker/docker-compose.yml.hbs +55 -0
  372. package/dist/templates/kustomize/base/deployments/app.yaml.hbs +44 -0
  373. package/dist/templates/kustomize/base/ingress/app.yaml.hbs +20 -0
  374. package/dist/templates/kustomize/base/jobs/app-jobs.yaml.hbs +43 -0
  375. package/dist/templates/kustomize/base/kustomization.yaml.hbs +13 -0
  376. package/dist/templates/kustomize/base/secrets/regcred.yaml.hbs +7 -0
  377. package/dist/templates/kustomize/base/services/app.yaml.hbs +12 -0
  378. package/dist/templates/kustomize/overlays/{{env}}/configs/app.config.env.hbs +21 -0
  379. package/dist/templates/kustomize/overlays/{{env}}/configs/paradedb.config.env.hbs +3 -0
  380. package/dist/templates/kustomize/overlays/{{env}}/deployments/paradedb.yaml.hbs +28 -0
  381. package/dist/templates/kustomize/overlays/{{env}}/deployments/redis.yaml.hbs +18 -0
  382. package/dist/templates/kustomize/overlays/{{env}}/kustomization.yaml.hbs +36 -0
  383. package/dist/templates/kustomize/overlays/{{env}}/patch-operation/ingress-host.yaml.hbs +15 -0
  384. package/dist/templates/kustomize/overlays/{{env}}/services/paradedb.yaml.hbs +11 -0
  385. package/dist/templates/kustomize/overlays/{{env}}/services/redis.yaml.hbs +11 -0
  386. package/dist/templates/kustomize/overlays/{{env}}/storage/paradedb-pvc.yaml.hbs +10 -0
  387. package/dist/templates/presets/ai-chat-app/apps/web/.env.example +11 -0
  388. package/dist/templates/presets/ai-chat-app/apps/web/app/api/auth/[...all]/route.ts +5 -0
  389. package/dist/templates/presets/ai-chat-app/apps/web/app/api/chat/input-guardrail.ts +47 -0
  390. package/dist/templates/presets/ai-chat-app/apps/web/app/api/chat/route.ts +266 -0
  391. package/dist/templates/presets/ai-chat-app/apps/web/app/api/chat/sessions/[id]/messages/route.ts +38 -0
  392. package/dist/templates/presets/ai-chat-app/apps/web/app/api/chat/sessions/[id]/route.ts +59 -0
  393. package/dist/templates/presets/ai-chat-app/apps/web/app/api/chat/sessions/route.ts +24 -0
  394. package/dist/templates/presets/ai-chat-app/apps/web/app/api/health/route.ts +21 -0
  395. package/dist/templates/presets/ai-chat-app/apps/web/app/chat/[id]/page.tsx +54 -0
  396. package/dist/templates/presets/ai-chat-app/apps/web/app/chat/layout.tsx +23 -0
  397. package/dist/templates/presets/ai-chat-app/apps/web/app/chat/page.tsx +9 -0
  398. package/dist/templates/presets/ai-chat-app/apps/web/app/error.tsx +20 -0
  399. package/dist/templates/presets/ai-chat-app/apps/web/app/global-error.tsx +42 -0
  400. package/dist/templates/presets/ai-chat-app/apps/web/app/globals.css +187 -0
  401. package/dist/templates/presets/ai-chat-app/apps/web/app/layout.tsx.hbs +30 -0
  402. package/dist/templates/presets/ai-chat-app/apps/web/app/login/login-form.tsx +96 -0
  403. package/dist/templates/presets/ai-chat-app/apps/web/app/login/page.tsx +14 -0
  404. package/dist/templates/presets/ai-chat-app/apps/web/app/not-found.tsx +15 -0
  405. package/dist/templates/presets/ai-chat-app/apps/web/components/ai-elements/code-block.tsx +518 -0
  406. package/dist/templates/presets/ai-chat-app/apps/web/components/ai-elements/context.tsx +356 -0
  407. package/dist/templates/presets/ai-chat-app/apps/web/components/ai-elements/conversation.tsx +150 -0
  408. package/dist/templates/presets/ai-chat-app/apps/web/components/ai-elements/environment-variables.tsx +303 -0
  409. package/dist/templates/presets/ai-chat-app/apps/web/components/ai-elements/message.tsx +295 -0
  410. package/dist/templates/presets/ai-chat-app/apps/web/components/ai-elements/prompt-input.tsx +1179 -0
  411. package/dist/templates/presets/ai-chat-app/apps/web/components/ai-elements/sources.tsx +54 -0
  412. package/dist/templates/presets/ai-chat-app/apps/web/components/ai-elements/tool.tsx +157 -0
  413. package/dist/templates/presets/ai-chat-app/apps/web/components/app-sidebar.tsx +110 -0
  414. package/dist/templates/presets/ai-chat-app/apps/web/components/chat-sessions-provider.tsx +89 -0
  415. package/dist/templates/presets/ai-chat-app/apps/web/components/chat-sidebar-list.tsx +174 -0
  416. package/dist/templates/presets/ai-chat-app/apps/web/components/chat-view.tsx +156 -0
  417. package/dist/templates/presets/ai-chat-app/apps/web/components/ui/accordion.tsx +72 -0
  418. package/dist/templates/presets/ai-chat-app/apps/web/components/ui/alert-dialog.tsx +162 -0
  419. package/dist/templates/presets/ai-chat-app/apps/web/components/ui/alert.tsx +73 -0
  420. package/dist/templates/presets/ai-chat-app/apps/web/components/ui/aspect-ratio.tsx +22 -0
  421. package/dist/templates/presets/ai-chat-app/apps/web/components/ui/avatar.tsx +93 -0
  422. package/dist/templates/presets/ai-chat-app/apps/web/components/ui/badge.tsx +49 -0
  423. package/dist/templates/presets/ai-chat-app/apps/web/components/ui/breadcrumb.tsx +103 -0
  424. package/dist/templates/presets/ai-chat-app/apps/web/components/ui/button-group.tsx +78 -0
  425. package/dist/templates/presets/ai-chat-app/apps/web/components/ui/button.tsx +60 -0
  426. package/dist/templates/presets/ai-chat-app/apps/web/components/ui/calendar.tsx +185 -0
  427. package/dist/templates/presets/ai-chat-app/apps/web/components/ui/card.tsx +92 -0
  428. package/dist/templates/presets/ai-chat-app/apps/web/components/ui/carousel.tsx +231 -0
  429. package/dist/templates/presets/ai-chat-app/apps/web/components/ui/chart.tsx +325 -0
  430. package/dist/templates/presets/ai-chat-app/apps/web/components/ui/checkbox.tsx +28 -0
  431. package/dist/templates/presets/ai-chat-app/apps/web/components/ui/collapsible.tsx +17 -0
  432. package/dist/templates/presets/ai-chat-app/apps/web/components/ui/combobox.tsx +273 -0
  433. package/dist/templates/presets/ai-chat-app/apps/web/components/ui/command.tsx +181 -0
  434. package/dist/templates/presets/ai-chat-app/apps/web/components/ui/context-menu.tsx +245 -0
  435. package/dist/templates/presets/ai-chat-app/apps/web/components/ui/dialog.tsx +135 -0
  436. package/dist/templates/presets/ai-chat-app/apps/web/components/ui/direction.tsx +3 -0
  437. package/dist/templates/presets/ai-chat-app/apps/web/components/ui/drawer.tsx +120 -0
  438. package/dist/templates/presets/ai-chat-app/apps/web/components/ui/dropdown-menu.tsx +258 -0
  439. package/dist/templates/presets/ai-chat-app/apps/web/components/ui/empty.tsx +94 -0
  440. package/dist/templates/presets/ai-chat-app/apps/web/components/ui/field.tsx +224 -0
  441. package/dist/templates/presets/ai-chat-app/apps/web/components/ui/hover-card.tsx +46 -0
  442. package/dist/templates/presets/ai-chat-app/apps/web/components/ui/input-group.tsx +146 -0
  443. package/dist/templates/presets/ai-chat-app/apps/web/components/ui/input-otp.tsx +86 -0
  444. package/dist/templates/presets/ai-chat-app/apps/web/components/ui/input.tsx +20 -0
  445. package/dist/templates/presets/ai-chat-app/apps/web/components/ui/item.tsx +188 -0
  446. package/dist/templates/presets/ai-chat-app/apps/web/components/ui/kbd.tsx +26 -0
  447. package/dist/templates/presets/ai-chat-app/apps/web/components/ui/label.tsx +20 -0
  448. package/dist/templates/presets/ai-chat-app/apps/web/components/ui/menubar.tsx +270 -0
  449. package/dist/templates/presets/ai-chat-app/apps/web/components/ui/native-select.tsx +43 -0
  450. package/dist/templates/presets/ai-chat-app/apps/web/components/ui/navigation-menu.tsx +161 -0
  451. package/dist/templates/presets/ai-chat-app/apps/web/components/ui/pagination.tsx +118 -0
  452. package/dist/templates/presets/ai-chat-app/apps/web/components/ui/popover.tsx +77 -0
  453. package/dist/templates/presets/ai-chat-app/apps/web/components/ui/progress.tsx +66 -0
  454. package/dist/templates/presets/ai-chat-app/apps/web/components/ui/radio-group.tsx +39 -0
  455. package/dist/templates/presets/ai-chat-app/apps/web/components/ui/resizable.tsx +42 -0
  456. package/dist/templates/presets/ai-chat-app/apps/web/components/ui/scroll-area.tsx +51 -0
  457. package/dist/templates/presets/ai-chat-app/apps/web/components/ui/select.tsx +190 -0
  458. package/dist/templates/presets/ai-chat-app/apps/web/components/ui/separator.tsx +21 -0
  459. package/dist/templates/presets/ai-chat-app/apps/web/components/ui/sheet.tsx +125 -0
  460. package/dist/templates/presets/ai-chat-app/apps/web/components/ui/sidebar.tsx +689 -0
  461. package/dist/templates/presets/ai-chat-app/apps/web/components/ui/skeleton.tsx +13 -0
  462. package/dist/templates/presets/ai-chat-app/apps/web/components/ui/slider.tsx +54 -0
  463. package/dist/templates/presets/ai-chat-app/apps/web/components/ui/sonner.tsx +45 -0
  464. package/dist/templates/presets/ai-chat-app/apps/web/components/ui/spinner.tsx +15 -0
  465. package/dist/templates/presets/ai-chat-app/apps/web/components/ui/switch.tsx +32 -0
  466. package/dist/templates/presets/ai-chat-app/apps/web/components/ui/table.tsx +89 -0
  467. package/dist/templates/presets/ai-chat-app/apps/web/components/ui/tabs.tsx +75 -0
  468. package/dist/templates/presets/ai-chat-app/apps/web/components/ui/textarea.tsx +18 -0
  469. package/dist/templates/presets/ai-chat-app/apps/web/components/ui/toggle-group.tsx +87 -0
  470. package/dist/templates/presets/ai-chat-app/apps/web/components/ui/toggle.tsx +44 -0
  471. package/dist/templates/presets/ai-chat-app/apps/web/components/ui/tooltip.tsx +54 -0
  472. package/dist/templates/presets/ai-chat-app/apps/web/components.json +20 -0
  473. package/dist/templates/presets/ai-chat-app/apps/web/drizzle.config.ts +10 -0
  474. package/dist/templates/presets/ai-chat-app/apps/web/env.ts +30 -0
  475. package/dist/templates/presets/ai-chat-app/apps/web/hooks/use-mobile.ts +19 -0
  476. package/dist/templates/presets/ai-chat-app/apps/web/instrumentation.ts +21 -0
  477. package/dist/templates/presets/ai-chat-app/apps/web/lib/auth-client.ts +3 -0
  478. package/dist/templates/presets/ai-chat-app/apps/web/lib/auth-session.ts +9 -0
  479. package/dist/templates/presets/ai-chat-app/apps/web/lib/auth.ts +16 -0
  480. package/dist/templates/presets/ai-chat-app/apps/web/lib/db/index.ts +11 -0
  481. package/dist/templates/presets/ai-chat-app/apps/web/lib/db/migrate.ts +53 -0
  482. package/dist/templates/presets/ai-chat-app/apps/web/lib/db/schema.ts +94 -0
  483. package/dist/templates/presets/ai-chat-app/apps/web/lib/db/seed.ts +123 -0
  484. package/dist/templates/presets/ai-chat-app/apps/web/lib/group-by-date.ts +34 -0
  485. package/dist/templates/presets/ai-chat-app/apps/web/lib/logger.ts +21 -0
  486. package/dist/templates/presets/ai-chat-app/apps/web/lib/openrouter.ts +7 -0
  487. package/dist/templates/presets/ai-chat-app/apps/web/lib/schemas/auth.ts +8 -0
  488. package/dist/templates/presets/ai-chat-app/apps/web/lib/utils.ts +4 -0
  489. package/dist/templates/presets/ai-chat-app/apps/web/next-env.d.ts +6 -0
  490. package/dist/templates/presets/ai-chat-app/apps/web/next.config.ts +14 -0
  491. package/dist/templates/presets/ai-chat-app/apps/web/package.json +70 -0
  492. package/dist/templates/presets/ai-chat-app/apps/web/postcss.config.mjs +7 -0
  493. package/dist/templates/presets/ai-chat-app/apps/web/proxy.ts +13 -0
  494. package/dist/templates/presets/ai-chat-app/apps/web/tsconfig.json +14 -0
  495. package/dist/templates/presets/blank/apps/web/.env.example +1 -0
  496. package/dist/templates/presets/blank/apps/web/app/api/health/route.ts +11 -0
  497. package/dist/templates/presets/blank/apps/web/app/globals.css +49 -0
  498. package/dist/templates/presets/blank/apps/web/app/layout.tsx.hbs +30 -0
  499. package/dist/templates/presets/blank/apps/web/app/page.tsx.hbs +10 -0
  500. package/dist/templates/presets/blank/apps/web/env.ts +10 -0
  501. package/dist/templates/presets/blank/apps/web/next-env.d.ts +2 -0
  502. package/dist/templates/presets/blank/apps/web/next.config.ts +9 -0
  503. package/dist/templates/presets/blank/apps/web/package.json.hbs +27 -0
  504. package/dist/templates/presets/blank/apps/web/postcss.config.mjs +7 -0
  505. package/dist/templates/presets/blank/apps/web/tsconfig.json +14 -0
  506. package/dist/templates/tooling/.oxfmtrc.json +6 -0
  507. package/dist/templates/tooling/.oxlintrc.json +20 -0
  508. package/dist/templates/tooling/commitlint.config.ts.hbs +3 -0
  509. package/dist/templates/tooling/lefthook.yml.hbs +25 -0
  510. package/package.json +47 -0
@@ -0,0 +1,172 @@
1
+ # Queue
2
+
3
+ A comprehensive queue component system for displaying message lists, todos, and collapsible task sections in AI applications.
4
+
5
+ The `Queue` component provides a flexible system for displaying lists of messages, todos, attachments, and collapsible sections. Perfect for showing AI workflow progress, pending tasks, message history, or any structured list of items in your application.
6
+
7
+ See `scripts/queue.tsx` for this example.
8
+
9
+ ## Installation
10
+
11
+ ```bash
12
+ npx ai-elements@latest add queue
13
+ ```
14
+
15
+ ## Features
16
+
17
+ - Flexible component system with composable parts
18
+ - Collapsible sections with smooth animations
19
+ - Support for completed/pending state indicators
20
+ - Built-in scroll area for long lists
21
+ - Attachment display with images and file indicators
22
+ - Hover-revealed action buttons for queue items
23
+ - TypeScript support with comprehensive type definitions
24
+ - Customizable styling with Tailwind CSS
25
+ - Responsive design with mobile-friendly interactions
26
+ - Keyboard navigation and accessibility support
27
+ - Theme-aware with automatic dark mode support
28
+
29
+ ## Examples
30
+
31
+ ### With PromptInput
32
+
33
+ See `scripts/queue-prompt-input.tsx` for this example.
34
+
35
+ ## Props
36
+
37
+ ### `<Queue />`
38
+
39
+ | Prop | Type | Default | Description |
40
+ | ---------- | ----------------------- | ------- | ------------------------------------------- |
41
+ | `...props` | `React.ComponentProps<` | - | Any other props are spread to the root div. |
42
+
43
+ ### `<QueueSection />`
44
+
45
+ | Prop | Type | Default | Description |
46
+ | ------------- | ------------------------------------------ | ------- | -------------------------------------------------------- |
47
+ | `defaultOpen` | `boolean` | `true` | Whether the section is open by default. |
48
+ | `...props` | `React.ComponentProps<typeof Collapsible>` | - | Any other props are spread to the Collapsible component. |
49
+
50
+ ### `<QueueSectionTrigger />`
51
+
52
+ | Prop | Type | Default | Description |
53
+ | ---------- | ----------------------- | ------- | ------------------------------------------------- |
54
+ | `...props` | `React.ComponentProps<` | - | Any other props are spread to the button element. |
55
+
56
+ ### `<QueueSectionLabel />`
57
+
58
+ | Prop | Type | Default | Description |
59
+ | ---------- | ----------------------- | ------- | ----------------------------------------------- |
60
+ | `label` | `string` | - | The label text to display. |
61
+ | `count` | `number` | - | The count to display before the label. |
62
+ | `icon` | `React.ReactNode` | - | An optional icon to display before the count. |
63
+ | `...props` | `React.ComponentProps<` | - | Any other props are spread to the span element. |
64
+
65
+ ### `<QueueSectionContent />`
66
+
67
+ | Prop | Type | Default | Description |
68
+ | ---------- | ------------------------------------------------- | ------- | --------------------------------------------------------------- |
69
+ | `...props` | `React.ComponentProps<typeof CollapsibleContent>` | - | Any other props are spread to the CollapsibleContent component. |
70
+
71
+ ### `<QueueList />`
72
+
73
+ | Prop | Type | Default | Description |
74
+ | ---------- | ----------------------------------------- | ------- | ------------------------------------------------------- |
75
+ | `...props` | `React.ComponentProps<typeof ScrollArea>` | - | Any other props are spread to the ScrollArea component. |
76
+
77
+ ### `<QueueItem />`
78
+
79
+ | Prop | Type | Default | Description |
80
+ | ---------- | ----------------------- | ------- | --------------------------------------------- |
81
+ | `...props` | `React.ComponentProps<` | - | Any other props are spread to the li element. |
82
+
83
+ ### `<QueueItemIndicator />`
84
+
85
+ | Prop | Type | Default | Description |
86
+ | ----------- | ----------------------- | ------- | ------------------------------------------------------------- |
87
+ | `completed` | `boolean` | `false` | Whether the item is completed. Affects the indicator styling. |
88
+ | `...props` | `React.ComponentProps<` | - | Any other props are spread to the span element. |
89
+
90
+ ### `<QueueItemContent />`
91
+
92
+ | Prop | Type | Default | Description |
93
+ | ----------- | ----------------------- | ------- | ----------------------------------------------------------------------------------- |
94
+ | `completed` | `boolean` | `false` | Whether the item is completed. Affects text styling with strikethrough and opacity. |
95
+ | `...props` | `React.ComponentProps<` | - | Any other props are spread to the span element. |
96
+
97
+ ### `<QueueItemDescription />`
98
+
99
+ | Prop | Type | Default | Description |
100
+ | ----------- | ----------------------- | ------- | ---------------------------------------------------- |
101
+ | `completed` | `boolean` | `false` | Whether the item is completed. Affects text styling. |
102
+ | `...props` | `React.ComponentProps<` | - | Any other props are spread to the div element. |
103
+
104
+ ### `<QueueItemActions />`
105
+
106
+ | Prop | Type | Default | Description |
107
+ | ---------- | ----------------------- | ------- | ---------------------------------------------- |
108
+ | `...props` | `React.ComponentProps<` | - | Any other props are spread to the div element. |
109
+
110
+ ### `<QueueItemAction />`
111
+
112
+ | Prop | Type | Default | Description |
113
+ | ---------- | -------------------------------------------- | ------- | ----------------------------------------------------------------------------- |
114
+ | `...props` | `Omit<React.ComponentProps<typeof Button>, ` | - | Any other props (except variant and size) are spread to the Button component. |
115
+
116
+ ### `<QueueItemAttachment />`
117
+
118
+ | Prop | Type | Default | Description |
119
+ | ---------- | ----------------------- | ------- | ---------------------------------------------- |
120
+ | `...props` | `React.ComponentProps<` | - | Any other props are spread to the div element. |
121
+
122
+ ### `<QueueItemImage />`
123
+
124
+ | Prop | Type | Default | Description |
125
+ | ---------- | ----------------------- | ------- | ---------------------------------------------- |
126
+ | `...props` | `React.ComponentProps<` | - | Any other props are spread to the img element. |
127
+
128
+ ### `<QueueItemFile />`
129
+
130
+ | Prop | Type | Default | Description |
131
+ | ---------- | ----------------------- | ------- | ----------------------------------------------- |
132
+ | `...props` | `React.ComponentProps<` | - | Any other props are spread to the span element. |
133
+
134
+ ## Type Exports
135
+
136
+ ### `QueueMessagePart`
137
+
138
+ Interface for message parts within queue messages.
139
+
140
+ ```tsx
141
+ interface QueueMessagePart {
142
+ type: string;
143
+ text?: string;
144
+ url?: string;
145
+ filename?: string;
146
+ mediaType?: string;
147
+ }
148
+ ```
149
+
150
+ ### `QueueMessage`
151
+
152
+ Interface for queue message items.
153
+
154
+ ```tsx
155
+ interface QueueMessage {
156
+ id: string;
157
+ parts: QueueMessagePart[];
158
+ }
159
+ ```
160
+
161
+ ### `QueueTodo`
162
+
163
+ Interface for todo items in the queue.
164
+
165
+ ```tsx
166
+ interface QueueTodo {
167
+ id: string;
168
+ title: string;
169
+ description?: string;
170
+ status?: "pending" | "completed";
171
+ }
172
+ ```
@@ -0,0 +1,219 @@
1
+ # Reasoning
2
+
3
+ A collapsible component that displays AI reasoning content, automatically opening during streaming and closing when finished.
4
+
5
+ The `Reasoning` component displays AI reasoning content, automatically opening during streaming and closing when finished.
6
+
7
+ See `scripts/reasoning.tsx` for this example.
8
+
9
+ ## Installation
10
+
11
+ ```bash
12
+ npx ai-elements@latest add reasoning
13
+ ```
14
+
15
+ ## Usage with AI SDK
16
+
17
+ Build a chatbot with reasoning using Deepseek R1 or other reasoning models.
18
+
19
+ Some models (like GPT with high reasoning effort) return multiple reasoning parts instead of a single streaming block. The example below consolidates all reasoning parts into a single component to avoid displaying multiple "Thinking..." indicators.
20
+
21
+ Add the following component to your frontend:
22
+
23
+ ```tsx title="app/page.tsx"
24
+ "use client";
25
+
26
+ import { Reasoning, ReasoningContent, ReasoningTrigger } from "@/components/ai-elements/reasoning";
27
+ import {
28
+ Conversation,
29
+ ConversationContent,
30
+ ConversationScrollButton,
31
+ } from "@/components/ai-elements/conversation";
32
+ import {
33
+ PromptInput,
34
+ PromptInputTextarea,
35
+ PromptInputSubmit,
36
+ } from "@/components/ai-elements/prompt-input";
37
+ import { Spinner } from "@/components/ui/spinner";
38
+ import { Message, MessageContent, MessageResponse } from "@/components/ai-elements/message";
39
+ import { useState } from "react";
40
+ import { useChat } from "@ai-sdk/react";
41
+ import type { UIMessage } from "ai";
42
+
43
+ const MessageParts = ({
44
+ message,
45
+ isLastMessage,
46
+ isStreaming,
47
+ }: {
48
+ message: UIMessage;
49
+ isLastMessage: boolean;
50
+ isStreaming: boolean;
51
+ }) => {
52
+ // Consolidate all reasoning parts into one block
53
+ const reasoningParts = message.parts.filter((part) => part.type === "reasoning");
54
+ const reasoningText = reasoningParts.map((part) => part.text).join("\n\n");
55
+ const hasReasoning = reasoningParts.length > 0;
56
+
57
+ // Check if reasoning is still streaming (last part is reasoning on last message)
58
+ const lastPart = message.parts.at(-1);
59
+ const isReasoningStreaming = isLastMessage && isStreaming && lastPart?.type === "reasoning";
60
+
61
+ return (
62
+ <>
63
+ {hasReasoning && (
64
+ <Reasoning className="w-full" isStreaming={isReasoningStreaming}>
65
+ <ReasoningTrigger />
66
+ <ReasoningContent>{reasoningText}</ReasoningContent>
67
+ </Reasoning>
68
+ )}
69
+ {message.parts.map((part, i) => {
70
+ if (part.type === "text") {
71
+ return <MessageResponse key={`${message.id}-${i}`}>{part.text}</MessageResponse>;
72
+ }
73
+ return null;
74
+ })}
75
+ </>
76
+ );
77
+ };
78
+
79
+ const ReasoningDemo = () => {
80
+ const [input, setInput] = useState("");
81
+
82
+ const { messages, sendMessage, status } = useChat();
83
+
84
+ const handleSubmit = (e: React.FormEvent) => {
85
+ e.preventDefault();
86
+ sendMessage({ text: input });
87
+ setInput("");
88
+ };
89
+
90
+ const isStreaming = status === "streaming";
91
+
92
+ return (
93
+ <div className="max-w-4xl mx-auto p-6 relative size-full rounded-lg border h-[600px]">
94
+ <div className="flex flex-col h-full">
95
+ <Conversation>
96
+ <ConversationContent>
97
+ {messages.map((message, index) => (
98
+ <Message from={message.role} key={message.id}>
99
+ <MessageContent>
100
+ <MessageParts
101
+ message={message}
102
+ isLastMessage={index === messages.length - 1}
103
+ isStreaming={isStreaming}
104
+ />
105
+ </MessageContent>
106
+ </Message>
107
+ ))}
108
+ {status === "submitted" && <Spinner />}
109
+ </ConversationContent>
110
+ <ConversationScrollButton />
111
+ </Conversation>
112
+
113
+ <PromptInput onSubmit={handleSubmit} className="mt-4 w-full max-w-2xl mx-auto relative">
114
+ <PromptInputTextarea
115
+ value={input}
116
+ placeholder="Say something..."
117
+ onChange={(e) => setInput(e.currentTarget.value)}
118
+ className="pr-12"
119
+ />
120
+ <PromptInputSubmit
121
+ status={isStreaming ? "streaming" : "ready"}
122
+ disabled={!input.trim()}
123
+ className="absolute bottom-1 right-1"
124
+ />
125
+ </PromptInput>
126
+ </div>
127
+ </div>
128
+ );
129
+ };
130
+
131
+ export default ReasoningDemo;
132
+ ```
133
+
134
+ Add the following route to your backend:
135
+
136
+ ```ts title="app/api/chat/route.ts"
137
+ import { streamText, UIMessage, convertToModelMessages } from "ai";
138
+
139
+ // Allow streaming responses up to 30 seconds
140
+ export const maxDuration = 30;
141
+
142
+ export async function POST(req: Request) {
143
+ const { model, messages }: { messages: UIMessage[]; model: string } = await req.json();
144
+
145
+ const result = streamText({
146
+ model: "deepseek/deepseek-r1",
147
+ messages: await convertToModelMessages(messages),
148
+ });
149
+
150
+ return result.toUIMessageStreamResponse({
151
+ sendReasoning: true,
152
+ });
153
+ }
154
+ ```
155
+
156
+ ## Reasoning vs Chain of Thought
157
+
158
+ Use the `Reasoning` component when your model outputs thinking content as a single block or continuous stream (Deepseek R1, Claude with extended thinking, etc.).
159
+
160
+ If your model outputs discrete, labeled steps (search queries, tool calls, distinct thought stages), consider using the [Chain of Thought](/components/chain-of-thought) component instead for a more structured visual representation.
161
+
162
+ ## Features
163
+
164
+ - Automatically opens when streaming content and closes when finished
165
+ - Manual toggle control for user interaction
166
+ - Smooth animations and transitions powered by Radix UI
167
+ - Visual streaming indicator with pulsing animation
168
+ - Composable architecture with separate trigger and content components
169
+ - Built with accessibility in mind including keyboard navigation
170
+ - Responsive design that works across different screen sizes
171
+ - Seamlessly integrates with both light and dark themes
172
+ - Built on top of shadcn/ui Collapsible primitives
173
+ - TypeScript support with proper type definitions
174
+
175
+ ## Props
176
+
177
+ ### `<Reasoning />`
178
+
179
+ | Prop | Type | Default | Description |
180
+ | -------------- | ------------------------------------------ | ------- | ------------------------------------------------------------------------------- |
181
+ | `isStreaming` | `boolean` | `false` | Whether the reasoning is currently streaming (auto-opens and closes the panel). |
182
+ | `open` | `boolean` | - | Controlled open state. |
183
+ | `defaultOpen` | `boolean` | `true` | Default open state when uncontrolled. |
184
+ | `onOpenChange` | `(open: boolean) => void` | - | Callback when open state changes. |
185
+ | `duration` | `number` | - | Duration in seconds to display (can be controlled externally). |
186
+ | `...props` | `React.ComponentProps<typeof Collapsible>` | - | Any other props are spread to the underlying Collapsible component. |
187
+
188
+ ### `<ReasoningTrigger />`
189
+
190
+ | Prop | Type | Default | Description |
191
+ | -------------------- | -------------------------------------------------------- | ------- | -------------------------------------------------------------------------------------------------- |
192
+ | `getThinkingMessage` | `(isStreaming: boolean, duration?: number) => ReactNode` | - | Optional function to customize the thinking message. Receives isStreaming and duration parameters. |
193
+ | `...props` | `React.ComponentProps<typeof CollapsibleTrigger>` | - | Any other props are spread to the underlying CollapsibleTrigger component. |
194
+
195
+ ### `<ReasoningContent />`
196
+
197
+ | Prop | Type | Default | Description |
198
+ | ---------- | ------------------------------------------------- | -------- | -------------------------------------------------------------------------- |
199
+ | `children` | `string` | Required | The reasoning text to display (rendered via Streamdown). |
200
+ | `...props` | `React.ComponentProps<typeof CollapsibleContent>` | - | Any other props are spread to the underlying CollapsibleContent component. |
201
+
202
+ ## Hooks
203
+
204
+ ### `useReasoning`
205
+
206
+ Access the reasoning context from child components.
207
+
208
+ ```tsx
209
+ const { isStreaming, isOpen, setIsOpen, duration } = useReasoning();
210
+ ```
211
+
212
+ Returns:
213
+
214
+ | Prop | Type | Default | Description |
215
+ | ------------- | ------------------------- | ---------- | ----------------------------------------- | ------------------------------------------------ |
216
+ | `isStreaming` | `boolean` | - | Whether reasoning is currently streaming. |
217
+ | `isOpen` | `boolean` | - | Whether the reasoning panel is open. |
218
+ | `setIsOpen` | `(open: boolean) => void` | - | Function to set the open state. |
219
+ | `duration` | `number | undefined` | - | Duration in seconds (undefined while streaming). |
@@ -0,0 +1,126 @@
1
+ # Sandbox
2
+
3
+ A collapsible container for displaying AI-generated code and output in chat interfaces.
4
+
5
+ The `Sandbox` component provides a structured way to display AI-generated code alongside its execution output in chat conversations. It features a collapsible container with status indicators and tabbed navigation between code and output views. It's designed to be used with `CodeBlock` for displaying code and `StackTrace` for displaying errors.
6
+
7
+ See `scripts/sandbox.tsx` for this example.
8
+
9
+ ## Installation
10
+
11
+ ```bash
12
+ npx ai-elements@latest add sandbox
13
+ ```
14
+
15
+ ## Features
16
+
17
+ - Collapsible container with smooth animations
18
+ - Status badges showing execution state (Pending, Running, Completed, Error)
19
+ - Tabs for Code and Output views
20
+ - Syntax-highlighted code display
21
+ - Copy button for easy code sharing
22
+ - Works with AI SDK tool state patterns
23
+
24
+ ## Usage with AI SDK
25
+
26
+ The Sandbox component integrates with the AI SDK's tool state to show code generation progress:
27
+
28
+ ```tsx title="components/code-sandbox.tsx"
29
+ "use client";
30
+
31
+ import type { ToolUIPart } from "ai";
32
+ import {
33
+ Sandbox,
34
+ SandboxContent,
35
+ SandboxHeader,
36
+ SandboxTabContent,
37
+ SandboxTabs,
38
+ SandboxTabsBar,
39
+ SandboxTabsList,
40
+ SandboxTabsTrigger,
41
+ } from "@/components/ai-elements/sandbox";
42
+ import { CodeBlock } from "@/components/ai-elements/code-block";
43
+
44
+ type CodeSandboxProps = {
45
+ toolPart: ToolUIPart;
46
+ };
47
+
48
+ export const CodeSandbox = ({ toolPart }: CodeSandboxProps) => {
49
+ const code = toolPart.input?.code ?? "";
50
+ const output = toolPart.output?.logs ?? "";
51
+
52
+ return (
53
+ <Sandbox>
54
+ <SandboxHeader state={toolPart.state} title={toolPart.input?.filename ?? "code.tsx"} />
55
+ <SandboxContent>
56
+ <SandboxTabs defaultValue="code">
57
+ <SandboxTabsBar>
58
+ <SandboxTabsList>
59
+ <SandboxTabsTrigger value="code">Code</SandboxTabsTrigger>
60
+ <SandboxTabsTrigger value="output">Output</SandboxTabsTrigger>
61
+ </SandboxTabsList>
62
+ </SandboxTabsBar>
63
+ <SandboxTabContent value="code">
64
+ <CodeBlock code={code} language="tsx" />
65
+ </SandboxTabContent>
66
+ <SandboxTabContent value="output">
67
+ <CodeBlock code={output} language="log" />
68
+ </SandboxTabContent>
69
+ </SandboxTabs>
70
+ </SandboxContent>
71
+ </Sandbox>
72
+ );
73
+ };
74
+ ```
75
+
76
+ ## Props
77
+
78
+ ### `<Sandbox />`
79
+
80
+ | Prop | Type | Default | Description |
81
+ | ---------- | ------------------------------------------ | ------- | ------------------------------------------------------------------- |
82
+ | `...props` | `React.ComponentProps<typeof Collapsible>` | - | Any other props are spread to the underlying Collapsible component. |
83
+
84
+ ### `<SandboxHeader />`
85
+
86
+ | Prop | Type | Default | Description |
87
+ | ----------- | ------------- | ----------- | -------------------------------------------------------------------------- |
88
+ | `title` | `string` | `undefined` | The title displayed in the header (e.g., filename). |
89
+ | `state` | `ToolUIPart[` | Required | The current execution state, used to display the appropriate status badge. |
90
+ | `className` | `string` | - | Additional CSS classes for the header. |
91
+
92
+ ### `<SandboxContent />`
93
+
94
+ | Prop | Type | Default | Description |
95
+ | ---------- | ------------------------------------------------- | ------- | ----------------------------------------------------- |
96
+ | `...props` | `React.ComponentProps<typeof CollapsibleContent>` | - | Any other props are spread to the CollapsibleContent. |
97
+
98
+ ### `<SandboxTabs />`
99
+
100
+ | Prop | Type | Default | Description |
101
+ | ---------- | ----------------------------------- | ------- | ------------------------------------------------------------ |
102
+ | `...props` | `React.ComponentProps<typeof Tabs>` | - | Any other props are spread to the underlying Tabs component. |
103
+
104
+ ### `<SandboxTabsBar />`
105
+
106
+ | Prop | Type | Default | Description |
107
+ | ---------- | -------------------------------------- | ------- | ------------------------------------------------ |
108
+ | `...props` | `React.HTMLAttributes<HTMLDivElement>` | - | Any other props are spread to the container div. |
109
+
110
+ ### `<SandboxTabsList />`
111
+
112
+ | Prop | Type | Default | Description |
113
+ | ---------- | --------------------------------------- | ------- | ---------------------------------------------------------------- |
114
+ | `...props` | `React.ComponentProps<typeof TabsList>` | - | Any other props are spread to the underlying TabsList component. |
115
+
116
+ ### `<SandboxTabsTrigger />`
117
+
118
+ | Prop | Type | Default | Description |
119
+ | ---------- | ------------------------------------------ | ------- | ------------------------------------------------------------------- |
120
+ | `...props` | `React.ComponentProps<typeof TabsTrigger>` | - | Any other props are spread to the underlying TabsTrigger component. |
121
+
122
+ ### `<SandboxTabContent />`
123
+
124
+ | Prop | Type | Default | Description |
125
+ | ---------- | ------------------------------------------ | ------- | ------------------------------------------------------------------- |
126
+ | `...props` | `React.ComponentProps<typeof TabsContent>` | - | Any other props are spread to the underlying TabsContent component. |
@@ -0,0 +1,102 @@
1
+ # Schema Display
2
+
3
+ Display REST API endpoint documentation with parameters, request/response bodies.
4
+
5
+ The `SchemaDisplay` component visualizes REST API endpoints with HTTP methods, paths, parameters, and request/response schemas.
6
+
7
+ See `scripts/schema-display.tsx` for this example.
8
+
9
+ ## Installation
10
+
11
+ ```bash
12
+ npx ai-elements@latest add schema-display
13
+ ```
14
+
15
+ ## Features
16
+
17
+ - Color-coded HTTP methods
18
+ - Path parameter highlighting
19
+ - Collapsible parameters section
20
+ - Request/response body schemas
21
+ - Nested object property display
22
+ - Required field indicators
23
+
24
+ ## Method Colors
25
+
26
+ | Method | Color |
27
+ | -------- | ------ |
28
+ | `GET` | Green |
29
+ | `POST` | Blue |
30
+ | `PUT` | Orange |
31
+ | `PATCH` | Yellow |
32
+ | `DELETE` | Red |
33
+
34
+ ## Examples
35
+
36
+ ### Basic Usage
37
+
38
+ See `scripts/schema-display-basic.tsx` for this example.
39
+
40
+ ### With Parameters
41
+
42
+ See `scripts/schema-display-params.tsx` for this example.
43
+
44
+ ### With Request/Response Bodies
45
+
46
+ See `scripts/schema-display-body.tsx` for this example.
47
+
48
+ ### Nested Properties
49
+
50
+ See `scripts/schema-display-nested.tsx` for this example.
51
+
52
+ ## Props
53
+
54
+ ### `<SchemaDisplay />`
55
+
56
+ | Prop | Type | Default | Description |
57
+ | -------------- | ------------------- | ------- | ------------------------- |
58
+ | `method` | `unknown` | - | HTTP method. |
59
+ | `path` | `string` | - | API endpoint path. |
60
+ | `description` | `string` | - | Endpoint description. |
61
+ | `parameters` | `SchemaParameter[]` | - | URL/query parameters. |
62
+ | `requestBody` | `SchemaProperty[]` | - | Request body properties. |
63
+ | `responseBody` | `SchemaProperty[]` | - | Response body properties. |
64
+
65
+ ### `SchemaParameter`
66
+
67
+ ```tsx
68
+ interface SchemaParameter {
69
+ name: string;
70
+ type: string;
71
+ required?: boolean;
72
+ description?: string;
73
+ location?: "path" | "query" | "header";
74
+ }
75
+ ```
76
+
77
+ ### `SchemaProperty`
78
+
79
+ ```tsx
80
+ interface SchemaProperty {
81
+ name: string;
82
+ type: string;
83
+ required?: boolean;
84
+ description?: string;
85
+ properties?: SchemaProperty[]; // For objects
86
+ items?: SchemaProperty; // For arrays
87
+ }
88
+ ```
89
+
90
+ ### Subcomponents
91
+
92
+ - `SchemaDisplayHeader` - Header container
93
+ - `SchemaDisplayMethod` - Color-coded method badge
94
+ - `SchemaDisplayPath` - Path with highlighted parameters
95
+ - `SchemaDisplayDescription` - Description text
96
+ - `SchemaDisplayContent` - Content container
97
+ - `SchemaDisplayParameters` - Collapsible parameters section
98
+ - `SchemaDisplayParameter` - Individual parameter
99
+ - `SchemaDisplayRequest` - Collapsible request body
100
+ - `SchemaDisplayResponse` - Collapsible response body
101
+ - `SchemaDisplayProperty` - Schema property (recursive)
102
+ - `SchemaDisplayExample` - Code example block
@@ -0,0 +1,48 @@
1
+ # Shimmer
2
+
3
+ An animated text shimmer component for creating eye-catching loading states and progressive reveal effects.
4
+
5
+ The `Shimmer` component provides an animated shimmer effect that sweeps across text, perfect for indicating loading states, progressive reveals, or drawing attention to dynamic content in AI applications.
6
+
7
+ See `scripts/shimmer.tsx` for this example.
8
+
9
+ ## Installation
10
+
11
+ ```bash
12
+ npx ai-elements@latest add shimmer
13
+ ```
14
+
15
+ ## Features
16
+
17
+ - Smooth animated shimmer effect using CSS gradients and Framer Motion
18
+ - Customizable animation duration and spread
19
+ - Polymorphic component - render as any HTML element via the `as` prop
20
+ - Automatic spread calculation based on text length
21
+ - Theme-aware styling using CSS custom properties
22
+ - Infinite looping animation with linear easing
23
+ - TypeScript support with proper type definitions
24
+ - Memoized for optimal performance
25
+ - Responsive and accessible design
26
+ - Uses `text-transparent` with background-clip for crisp text rendering
27
+
28
+ ## Examples
29
+
30
+ ### Different Durations
31
+
32
+ See `scripts/shimmer-duration.tsx` for this example.
33
+
34
+ ### Custom Elements
35
+
36
+ See `scripts/shimmer-elements.tsx` for this example.
37
+
38
+ ## Props
39
+
40
+ ### `<Shimmer />`
41
+
42
+ | Prop | Type | Default | Description |
43
+ | ----------- | ------------- | ------- | -------------------------------------------------------------------------- |
44
+ | `children` | `string` | - | The text content to apply the shimmer effect to. |
45
+ | `as` | `ElementType` | - | The HTML element or React component to render. |
46
+ | `className` | `string` | - | Additional CSS classes to apply to the component. |
47
+ | `duration` | `number` | `2` | The duration of the shimmer animation in seconds. |
48
+ | `spread` | `number` | `2` | The spread multiplier for the shimmer gradient, multiplied by text length. |