@jini-ai/agent-plugins 0.6.16 → 0.6.19

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 (335) hide show
  1. package/CHANGELOG.md +35 -1
  2. package/NOTICE +14 -0
  3. package/README.md +35 -14
  4. package/charts-echarts/plugin.json +39 -0
  5. package/charts-echarts/skills/charts-echarts/SKILL.md +110 -0
  6. package/charts-recharts/plugin.json +32 -0
  7. package/charts-recharts/skills/charts-recharts/SKILL.md +108 -0
  8. package/cloudflare/NOTES.md +16 -0
  9. package/cloudflare/form-destinations/cloudflare-d1.mjs +9 -0
  10. package/cloudflare/lib/api.mjs +96 -0
  11. package/cloudflare/lib/assets.mjs +65 -0
  12. package/cloudflare/lib/dns.mjs +32 -0
  13. package/cloudflare/lib/domain-inventory.mjs +61 -0
  14. package/cloudflare/lib/domain-status.mjs +48 -0
  15. package/cloudflare/lib/domains.mjs +95 -0
  16. package/cloudflare/lib/forms.mjs +254 -0
  17. package/cloudflare/lib/pages-upload.mjs +51 -0
  18. package/cloudflare/lib/target.mjs +165 -0
  19. package/cloudflare/lib/workers-upload.mjs +48 -0
  20. package/cloudflare/lib/zones.mjs +25 -0
  21. package/cloudflare/mcp.json +4 -0
  22. package/cloudflare/plugin.json +96 -0
  23. package/cloudflare/skills/cloudflare/SKILL.md +57 -0
  24. package/cloudflare/skills/cloudflare/references/domains.md +31 -0
  25. package/cloudflare/skills/cloudflare/references/pages.md +18 -0
  26. package/cloudflare/skills/cloudflare/references/permissions.md +29 -0
  27. package/cloudflare/skills/cloudflare/references/troubleshooting.md +20 -0
  28. package/cloudflare/skills/cloudflare/references/workers.md +42 -0
  29. package/cloudflare/targets/cloudflare-pages.mjs +12 -0
  30. package/cloudflare/targets/cloudflare-workers.mjs +17 -0
  31. package/cloudflare/tovu-consent.json +6 -0
  32. package/cloudflare/tovu-deploy-targets.json +630 -0
  33. package/cloudflare/tovu-form-destinations.json +12 -0
  34. package/cloudflare/worker/forms-receiver.mjs +249 -0
  35. package/composio/mcp.json +10 -0
  36. package/composio/plugin.json +68 -0
  37. package/composio/skills/composio/SKILL.md +85 -0
  38. package/dist/core/identity-namespace.d.ts +12 -0
  39. package/dist/core/identity-namespace.js +20 -0
  40. package/dist/folder-zip-node.js +29 -7
  41. package/dist/lifecycle/bundled-digests.js +4 -3
  42. package/dist/lifecycle/install.d.ts +7 -0
  43. package/dist/lifecycle/install.js +45 -3
  44. package/dist/lifecycle/manifest.d.ts +2 -2
  45. package/dist/lifecycle/manifest.js +5 -3
  46. package/dist/lifecycle/node.js +2 -0
  47. package/dist/lifecycle/persistent-state.js +1 -1
  48. package/dist/lifecycle/ports.d.ts +8 -0
  49. package/dist/lifecycle/seed-bundled.js +4 -1
  50. package/dist/manifest.d.ts +1 -1
  51. package/dist/manifest.js +3 -2
  52. package/fly/deploy-configs/fly.mjs +115 -0
  53. package/fly/deploy-ops/fly.mjs +102 -0
  54. package/fly/mcp.json +4 -0
  55. package/fly/plugin.json +81 -0
  56. package/fly/scripts/render-deploy-workflow.mjs +150 -0
  57. package/fly/skills/fly/SKILL.md +43 -0
  58. package/fly/skills/fly/references/fly-deploy.template.yml +117 -0
  59. package/fly/skills/fly/references/fly.template.toml +81 -0
  60. package/fly/tovu-credential-schemes.json +11 -0
  61. package/fly/tovu-deploy-configs.json +21 -0
  62. package/fly/tovu-deploy-ops.json +14 -0
  63. package/github/deploy-ops/github-actions.mjs +164 -0
  64. package/github/deployments/github.mjs +415 -0
  65. package/github/mcp.json +4 -0
  66. package/github/plugin.json +105 -0
  67. package/github/skills/github/SKILL.md +249 -0
  68. package/github/skills/github/references/actions.md +224 -0
  69. package/github/skills/github/references/auth-and-tokens.md +140 -0
  70. package/github/skills/github/references/repo-files.md +135 -0
  71. package/github/skills/github/references/site-backup.md +159 -0
  72. package/github/skills/github/references/source-control.md +123 -0
  73. package/github/source-control/backup-push.mjs +242 -0
  74. package/github/source-control/commit-site.mjs +459 -0
  75. package/github/source-control/github.mjs +93 -0
  76. package/github/source-control/write-files.mjs +468 -0
  77. package/github/tovu-deploy-ops.json +13 -0
  78. package/github/tovu-source-control.json +117 -0
  79. package/github-pages/NOTES.md +19 -0
  80. package/github-pages/mcp.json +4 -0
  81. package/github-pages/plugin.json +48 -0
  82. package/github-pages/skills/github-pages/SKILL.md +44 -0
  83. package/github-pages/targets/github-pages.mjs +543 -0
  84. package/github-pages/tovu-deploy-targets.json +327 -0
  85. package/google-login/exports/google-g.svg +1 -0
  86. package/google-login/exports/sign-in-button.css +68 -0
  87. package/google-login/exports/sign-in-button.html +4 -0
  88. package/google-login/mcp.json +4 -0
  89. package/google-login/plugin.json +59 -0
  90. package/google-login/skills/google-login/SKILL.md +96 -0
  91. package/google-login/tovu-login-providers.json +21 -0
  92. package/google-workspace/README.md +132 -0
  93. package/google-workspace/form-destinations/README.md +87 -0
  94. package/google-workspace/form-destinations/dedupe.mjs +43 -0
  95. package/google-workspace/form-destinations/delivery-result.mjs +69 -0
  96. package/google-workspace/form-destinations/mapping.mjs +152 -0
  97. package/google-workspace/form-destinations/sheets.mjs +202 -0
  98. package/google-workspace/lib/auth.mjs +81 -0
  99. package/google-workspace/lib/drive-files.mjs +54 -0
  100. package/google-workspace/lib/form-destination-settings.mjs +72 -0
  101. package/google-workspace/lib/http.mjs +168 -0
  102. package/google-workspace/lib/picker-flow.mjs +171 -0
  103. package/google-workspace/lib/picker-selection.mjs +107 -0
  104. package/google-workspace/lib/product-state.mjs +93 -0
  105. package/google-workspace/lib/request-policy.mjs +163 -0
  106. package/google-workspace/lib/sheets-a1.mjs +79 -0
  107. package/google-workspace/lib/sheets-admin-csv.mjs +82 -0
  108. package/google-workspace/lib/sheets-admin-request-kinds.mjs +183 -0
  109. package/google-workspace/lib/sheets-client.mjs +286 -0
  110. package/google-workspace/lib/surface-actions.mjs +107 -0
  111. package/google-workspace/mcp.json +4 -0
  112. package/google-workspace/plugin.json +77 -0
  113. package/google-workspace/products.json +12 -0
  114. package/google-workspace/skills/google-workspace/SKILL.md +82 -0
  115. package/google-workspace/skills/google-workspace/references/connection.md +102 -0
  116. package/google-workspace/skills/google-workspace/references/form-delivery.md +50 -0
  117. package/google-workspace/skills/google-workspace/references/sheets.md +149 -0
  118. package/google-workspace/skills/google-workspace/references/troubleshooting.md +31 -0
  119. package/google-workspace/tools/account-info.mjs +18 -0
  120. package/google-workspace/tools/sheets/README.md +54 -0
  121. package/google-workspace/tools/sheets/copy-tab.mjs +23 -0
  122. package/google-workspace/tools/sheets/copy.mjs +23 -0
  123. package/google-workspace/tools/sheets/create.mjs +35 -0
  124. package/google-workspace/tools/sheets/find-replace.mjs +38 -0
  125. package/google-workspace/tools/sheets/find.mjs +52 -0
  126. package/google-workspace/tools/sheets/get-by-data-filter.mjs +23 -0
  127. package/google-workspace/tools/sheets/get.mjs +22 -0
  128. package/google-workspace/tools/sheets/values-append.mjs +27 -0
  129. package/google-workspace/tools/sheets/values-batch-clear.mjs +20 -0
  130. package/google-workspace/tools/sheets/values-batch-get.mjs +20 -0
  131. package/google-workspace/tools/sheets/values-batch-update.mjs +29 -0
  132. package/google-workspace/tools/sheets/values-by-data-filter.mjs +62 -0
  133. package/google-workspace/tools/sheets/values-clear.mjs +20 -0
  134. package/google-workspace/tools/sheets/values-get.mjs +21 -0
  135. package/google-workspace/tools/sheets/values-update.mjs +26 -0
  136. package/google-workspace/tools/sheets-admin/README.md +45 -0
  137. package/google-workspace/tools/sheets-admin/basic-filter.mjs +32 -0
  138. package/google-workspace/tools/sheets-admin/batch-update.mjs +25 -0
  139. package/google-workspace/tools/sheets-admin/developer-metadata.mjs +28 -0
  140. package/google-workspace/tools/sheets-admin/export-csv.mjs +67 -0
  141. package/google-workspace/tools/sheets-admin/filter-views.mjs +38 -0
  142. package/google-workspace/tools/sheets-admin/format.mjs +70 -0
  143. package/google-workspace/tools/sheets-admin/named-ranges.mjs +42 -0
  144. package/google-workspace/tools/sheets-admin/open-existing.mjs +34 -0
  145. package/google-workspace/tools/sheets-admin/protected-ranges-get.mjs +18 -0
  146. package/google-workspace/tools/sheets-admin/sort.mjs +18 -0
  147. package/google-workspace/tools/sheets-admin/tab-modify.mjs +36 -0
  148. package/google-workspace/tovu-admin-surfaces.json +63 -0
  149. package/google-workspace/tovu-agent-tools.json +1178 -0
  150. package/google-workspace/tovu-connections.json +35 -0
  151. package/google-workspace/tovu-form-destinations.json +10 -0
  152. package/google-workspace/ui/README.md +73 -0
  153. package/google-workspace/ui/connection-panel.handler.mjs +167 -0
  154. package/google-workspace/ui/connection-panel.html +17 -0
  155. package/google-workspace/ui/connection-panel.mjs +189 -0
  156. package/google-workspace/ui/connection-view.mjs +120 -0
  157. package/google-workspace/ui/destination-panel.handler.mjs +106 -0
  158. package/google-workspace/ui/destination-panel.html +17 -0
  159. package/google-workspace/ui/destination-panel.mjs +150 -0
  160. package/google-workspace/ui/dom.mjs +140 -0
  161. package/google-workspace/ui/panel.css +170 -0
  162. package/google-workspace/ui/picker-flow.mjs +87 -0
  163. package/google-workspace/ui/picker-view.mjs +44 -0
  164. package/google-workspace/ui/picker.handler.mjs +56 -0
  165. package/google-workspace/ui/picker.html +17 -0
  166. package/google-workspace/ui/picker.mjs +88 -0
  167. package/google-workspace/ui/surface-client.mjs +227 -0
  168. package/higgsfield-media/mcp.json +9 -0
  169. package/higgsfield-media/plugin.json +109 -0
  170. package/higgsfield-media/skills/higgsfield-media/SKILL.md +325 -0
  171. package/higgsfield-media/skills/higgsfield-media/references/failure-modes.md +116 -0
  172. package/higgsfield-media/skills/higgsfield-media/references/models-and-plan-gates.md +142 -0
  173. package/jev/mcp.json +4 -0
  174. package/jev/plugin.json +44 -0
  175. package/jev/skills/jev/SKILL.md +308 -0
  176. package/jev/skills/jev/references/cookbooks.md +197 -0
  177. package/jev/skills/jev/references/jaggedness.md +135 -0
  178. package/jev/skills/jev/references/javascript-sdk.md +146 -0
  179. package/jev/skills/jev/references/patterns.md +123 -0
  180. package/jev/skills/jev/references/primitives-reference.md +187 -0
  181. package/langfuse/plugin.json +22 -0
  182. package/meilisearch/mcp.json +4 -0
  183. package/meilisearch/plugin.json +54 -0
  184. package/meilisearch/providers/meilisearch.mjs +651 -0
  185. package/meilisearch/skills/meilisearch/SKILL.md +43 -0
  186. package/meilisearch/tovu-search-providers.json +10 -0
  187. package/netlify/NOTES.md +13 -0
  188. package/netlify/mcp.json +4 -0
  189. package/netlify/plugin.json +47 -0
  190. package/netlify/skills/netlify/SKILL.md +39 -0
  191. package/netlify/targets/netlify.mjs +384 -0
  192. package/netlify/tovu-consent.json +6 -0
  193. package/netlify/tovu-deploy-targets.json +163 -0
  194. package/opentelemetry/mcp.json +4 -0
  195. package/opentelemetry/plugin.json +52 -0
  196. package/opentelemetry/skills/opentelemetry/SKILL.md +39 -0
  197. package/package.json +161 -6
  198. package/posthog/mcp.json +4 -0
  199. package/posthog/plugin.json +46 -0
  200. package/posthog/skills/posthog/SKILL.md +36 -0
  201. package/railway/deploy-configs/railway.mjs +135 -0
  202. package/railway/deploy-ops/railway.mjs +167 -0
  203. package/railway/mcp.json +4 -0
  204. package/railway/plugin.json +45 -0
  205. package/railway/skills/railway/SKILL.md +66 -0
  206. package/railway/tovu-deploy-configs.json +16 -0
  207. package/railway/tovu-deploy-ops.json +11 -0
  208. package/render/deploy-configs/render.mjs +141 -0
  209. package/render/deploy-ops/render.mjs +152 -0
  210. package/render/mcp.json +4 -0
  211. package/render/plugin.json +47 -0
  212. package/render/skills/render/SKILL.md +63 -0
  213. package/render/tovu-deploy-configs.json +16 -0
  214. package/render/tovu-deploy-ops.json +11 -0
  215. package/resend/NOTES.md +52 -0
  216. package/resend/adapters/resend.mjs +161 -0
  217. package/resend/lib/domains.mjs +137 -0
  218. package/resend/lib/errors.mjs +25 -0
  219. package/resend/lib/feedback.mjs +118 -0
  220. package/resend/mcp.json +13 -0
  221. package/resend/plugin.json +192 -0
  222. package/resend/skills/resend/SKILL.md +107 -0
  223. package/resend/tovu-mail-adapters.json +22 -0
  224. package/s3-compatible/NOTES.md +11 -0
  225. package/s3-compatible/mcp.json +4 -0
  226. package/s3-compatible/object-stores/s3-compatible.mjs +287 -0
  227. package/s3-compatible/plugin.json +56 -0
  228. package/s3-compatible/skills/s3-compatible/SKILL.md +39 -0
  229. package/s3-compatible/targets/s3-compatible.mjs +1054 -0
  230. package/s3-compatible/tovu-deploy-targets.json +432 -0
  231. package/s3-compatible/tovu-object-stores.json +29 -0
  232. package/sentry/mcp.json +4 -0
  233. package/sentry/plugin.json +49 -0
  234. package/sentry/skills/sentry/SKILL.md +34 -0
  235. package/shopify/mcp.json +4 -0
  236. package/shopify/plugin.json +22 -0
  237. package/shopify/skills/shopify/SKILL.md +103 -0
  238. package/shopify/skills/shopify/references/catalog-sync.md +74 -0
  239. package/shopify/skills/shopify/references/domains.md +26 -0
  240. package/shopify/skills/shopify/references/live-storefront.md +34 -0
  241. package/shopify/skills/shopify/references/storefront-snippets.md +21 -0
  242. package/site-compliance/mcp.json +4 -0
  243. package/site-compliance/plugin.json +34 -0
  244. package/site-compliance/skills/site-compliance/SKILL.md +220 -0
  245. package/site-compliance/skills/site-compliance/references/ccpa-cpra.md +115 -0
  246. package/site-compliance/skills/site-compliance/references/gdpr-eu-uk.md +143 -0
  247. package/site-compliance/skills/site-compliance/references/wcag-2-2.md +129 -0
  248. package/site-import/mcp.json +4 -0
  249. package/site-import/plugin.json +41 -0
  250. package/site-import/skills/site-import/SKILL.md +232 -0
  251. package/site-import/skills/site-import/references/content-mapping.md +166 -0
  252. package/site-import/skills/site-import/references/discovery-and-classification.md +117 -0
  253. package/site-import/skills/site-import/references/theme-extraction.md +34 -0
  254. package/slide-design/com.anthropic.claude-code/hooks/hooks.json +4 -0
  255. package/slide-design/mcp.json +4 -0
  256. package/slide-design/plugin.json +26 -0
  257. package/slide-design/skills/slide-design/SKILL.md +103 -0
  258. package/slide-design/skills/slide-design/references/charts-and-exhibits.md +100 -0
  259. package/slide-design/skills/slide-design/references/html-deck.md +175 -0
  260. package/slide-design/skills/slide-design/references/layout-and-style.md +131 -0
  261. package/slide-design/skills/slide-design/references/review.md +93 -0
  262. package/slide-design/skills/slide-design/references/storyline.md +118 -0
  263. package/stripe/plugin.json +22 -0
  264. package/supabase/mcp.json +26 -0
  265. package/supabase/plugin.json +78 -0
  266. package/supabase/skills/supabase/SKILL.md +169 -0
  267. package/supabase/skills/supabase/references/failure-modes.md +101 -0
  268. package/ui-ux-design/CHANGELOG.md +28 -0
  269. package/ui-ux-design/LICENSE +201 -0
  270. package/ui-ux-design/NOTICE +14 -0
  271. package/ui-ux-design/README.md +62 -0
  272. package/ui-ux-design/com.anthropic.claude-code/hooks/hooks.json +4 -0
  273. package/ui-ux-design/mcp.json +4 -0
  274. package/ui-ux-design/plugin.json +26 -0
  275. package/ui-ux-design/skills/frontend-accessibility/SKILL.md +60 -0
  276. package/ui-ux-design/skills/gstack-design/SKILL.md +53 -0
  277. package/ui-ux-design/skills/gstack-design/references/consultation.md +30 -0
  278. package/ui-ux-design/skills/gstack-design/references/html.md +29 -0
  279. package/ui-ux-design/skills/gstack-design/references/review.md +28 -0
  280. package/ui-ux-design/skills/gstack-design/references/shotgun.md +33 -0
  281. package/ui-ux-design/skills/gstack-design/references/upstream-notes.md +23 -0
  282. package/ui-ux-design/skills/interface-design/ORIGINAL.md +16 -0
  283. package/ui-ux-design/skills/interface-design/SKILL.md +41 -0
  284. package/ui-ux-design/skills/interface-design/references/commands/audit.md +40 -0
  285. package/ui-ux-design/skills/interface-design/references/commands/critique.md +21 -0
  286. package/ui-ux-design/skills/interface-design/references/commands/extract.md +34 -0
  287. package/ui-ux-design/skills/interface-design/references/commands/init.md +31 -0
  288. package/ui-ux-design/skills/interface-design/references/commands/status.md +22 -0
  289. package/ui-ux-design/skills/interface-design/references/examples/system-precision.md +29 -0
  290. package/ui-ux-design/skills/interface-design/references/examples/system-warmth.md +29 -0
  291. package/ui-ux-design/skills/interface-design/references/system-template.md +57 -0
  292. package/ui-ux-design/skills/shadcn-ui/README.md +244 -0
  293. package/ui-ux-design/skills/shadcn-ui/SKILL.md +333 -0
  294. package/ui-ux-design/skills/shadcn-ui/examples/auth-layout.tsx +177 -0
  295. package/ui-ux-design/skills/shadcn-ui/examples/data-table.tsx +313 -0
  296. package/ui-ux-design/skills/shadcn-ui/examples/form-pattern.tsx +177 -0
  297. package/ui-ux-design/skills/shadcn-ui/resources/component-catalog.md +481 -0
  298. package/ui-ux-design/skills/shadcn-ui/resources/customization-guide.md +516 -0
  299. package/ui-ux-design/skills/shadcn-ui/resources/migration-guide.md +463 -0
  300. package/ui-ux-design/skills/shadcn-ui/resources/setup-guide.md +412 -0
  301. package/ui-ux-design/skills/shadcn-ui/scripts/verify-setup.sh +134 -0
  302. package/ui-ux-design/skills/ui-ux-design/SKILL.md +171 -0
  303. package/ui-ux-design/skills/ui-ux-design/references/brand-and-voice.md +78 -0
  304. package/ui-ux-design/skills/ui-ux-design/references/chrome-mobile-test-matrix.md +137 -0
  305. package/ui-ux-design/skills/ui-ux-design/references/components-and-states.md +112 -0
  306. package/ui-ux-design/skills/ui-ux-design/references/delight-and-motion.md +54 -0
  307. package/ui-ux-design/skills/ui-ux-design/references/foundations.md +145 -0
  308. package/ui-ux-design/skills/ui-ux-design/references/inclusive-ai-imagery.md +57 -0
  309. package/ui-ux-design/skills/ui-ux-design/references/kole-jain-uiux-concepts.md +104 -0
  310. package/ui-ux-design/skills/ui-ux-design/references/kuinetic-reference.md +184 -0
  311. package/ui-ux-design/skills/ui-ux-design/references/openai-frontend-skill.md +139 -0
  312. package/ui-ux-design/skills/ui-ux-design/references/premium-ui.md +55 -0
  313. package/ui-ux-design/skills/ui-ux-design/references/research-and-validation.md +88 -0
  314. package/ui-ux-design/skills/ui-ux-design/references/sam-crawford-premium-websites.md +103 -0
  315. package/ui-ux-design/skills/ui-ux-design/references/self-made-web-designer-core-skills.md +119 -0
  316. package/ui-ux-design/skills/ui-ux-design/references/ui-animation.md +173 -0
  317. package/ui-ux-design/skills/ui-ux-design/references/ui-loop.md +234 -0
  318. package/ui-ux-design/skills/ui-ux-design/references/visual-storytelling.md +54 -0
  319. package/ui-ux-design/skills/vercel-web-design-guidelines/SKILL.md +39 -0
  320. package/ui-ux-design/skills/web-compliance/SKILL.md +134 -0
  321. package/ui-ux-design/skills/web-compliance/references/audit-evidence.md +59 -0
  322. package/vercel/NOTES.md +23 -0
  323. package/vercel/mcp.json +4 -0
  324. package/vercel/object-stores/vercel-blob.mjs +147 -0
  325. package/vercel/plugin.json +47 -0
  326. package/vercel/skills/vercel/SKILL.md +48 -0
  327. package/vercel/targets/vercel.mjs +586 -0
  328. package/vercel/tovu-consent.json +6 -0
  329. package/vercel/tovu-deploy-targets.json +219 -0
  330. package/vercel/tovu-object-stores.json +10 -0
  331. package/wordpress/NOTES.md +33 -0
  332. package/wordpress/plugin.json +30 -0
  333. package/wordpress/skills/wordpress/SKILL.md +43 -0
  334. package/wordpress/skills/wordpress/references/free-site-redirect.md +46 -0
  335. package/wordpress/skills/wordpress/references/subdomain.md +66 -0
@@ -0,0 +1,333 @@
1
+ ---
2
+ name: shadcn-ui
3
+ description: Expert guidance for integrating and building applications with shadcn/ui components, including component discovery, installation, customization, and best practices.
4
+ allowed-tools:
5
+ - "shadcn*:*"
6
+ - "mcp_shadcn*"
7
+ - "Read"
8
+ - "Write"
9
+ - "Bash"
10
+ - "web_fetch"
11
+ ---
12
+
13
+ # shadcn/ui Component Integration
14
+
15
+ Discover the tools available in the current host before using them. Use only
16
+ capabilities that the host provides and permits. The CLI and React examples below
17
+ describe work in an authorized coding checkout; they do not authorize shell commands
18
+ or dependency installation in another environment. If shadcn MCP tools are
19
+ unavailable, explain the limitation. Do not invent tool availability or install
20
+ dependencies to bypass host restrictions.
21
+
22
+ You are a frontend engineer specialized in building applications with shadcn/ui—a collection of beautifully designed, accessible, and customizable components built with Radix UI or Base UI and Tailwind CSS. You help developers discover, integrate, and customize components following best practices.
23
+
24
+ ## Core Principles
25
+
26
+ shadcn/ui is **not a component library**—it's a collection of reusable components that you copy into your project. This gives you:
27
+ - **Full ownership**: Components live in your codebase, not node_modules
28
+ - **Complete customization**: Modify styling, behavior, and structure freely, including choosing between Radix UI or Base UI primitives
29
+ - **No version lock-in**: Update components selectively at your own pace
30
+ - **Zero runtime overhead**: No library bundle, just the code you need
31
+
32
+ ## Component Discovery and Installation
33
+
34
+ ### 1. Browse Available Components
35
+
36
+ Use the shadcn MCP tools to explore the component catalog and Registry Directory:
37
+ - **List all components**: Use `list_components` to see the complete catalog
38
+ - **Get component metadata**: Use `get_component_metadata` to understand props, dependencies, and usage
39
+ - **View component demos**: Use `get_component_demo` to see implementation examples
40
+
41
+ ### 2. Component Installation
42
+
43
+ There are two approaches to adding components:
44
+
45
+ **A. Direct Installation (Recommended)**
46
+ ```bash
47
+ npx shadcn@latest add [component-name]
48
+ ```
49
+
50
+ This command:
51
+ - Downloads the component source code (adapting to your config: Radix vs Base UI)
52
+ - Installs required dependencies
53
+ - Places files in `components/ui/`
54
+ - Updates your `components.json` config
55
+
56
+ **B. Manual Integration**
57
+ 1. Use `get_component` to retrieve the source code
58
+ 2. Create the file in `components/ui/[component-name].tsx`
59
+ 3. Install peer dependencies manually
60
+ 4. Adjust imports if needed
61
+
62
+ ### 3. Registry and Custom Registries
63
+
64
+ If working with a custom registry (defined in `components.json`) or exploring the Registry Directory:
65
+ - Use `get_project_registries` to list available registries
66
+ - Use `list_items_in_registries` to see registry-specific components
67
+ - Use `view_items_in_registries` for detailed component information
68
+ - Use `search_items_in_registries` to find specific components
69
+
70
+ ## Project Setup
71
+
72
+ ### Initial Configuration
73
+
74
+ For **new projects**, use the `create` command to customize everything (style, fonts, component library):
75
+
76
+ ```bash
77
+ npx shadcn@latest create
78
+ ```
79
+
80
+ For **existing projects**, initialize configuration:
81
+
82
+ ```bash
83
+ npx shadcn@latest init
84
+ ```
85
+
86
+ This creates `components.json` with your configuration:
87
+ - **style**: default, new-york (classic) OR choose new visual styles like Vega, Nova, Maia, Lyra, Mira
88
+ - **baseColor**: slate, gray, zinc, neutral, stone
89
+ - **cssVariables**: true/false for CSS variable usage
90
+ - **tailwind config**: paths to Tailwind files
91
+ - **aliases**: import path shortcuts
92
+ - **rsc**: Use React Server Components (yes/no)
93
+ - **rtl**: Enable RTL support (optional)
94
+
95
+ ### Required Dependencies
96
+
97
+ shadcn/ui components require:
98
+ - **React** (18+)
99
+ - **Tailwind CSS** (3.0+)
100
+ - **Primitives**: Radix UI OR Base UI (depending on your choice)
101
+ - **class-variance-authority** (for variant styling)
102
+ - **clsx** and **tailwind-merge** (for class composition)
103
+
104
+ ## Component Architecture
105
+
106
+ ### File Structure
107
+ ```
108
+ src/
109
+ ├── components/
110
+ │ ├── ui/ # shadcn components
111
+ │ │ ├── button.tsx
112
+ │ │ ├── card.tsx
113
+ │ │ └── dialog.tsx
114
+ │ └── [custom]/ # your composed components
115
+ │ └── user-card.tsx
116
+ ├── lib/
117
+ │ └── utils.ts # cn() utility
118
+ └── app/
119
+ └── page.tsx
120
+ ```
121
+
122
+ ### The `cn()` Utility
123
+
124
+ All shadcn components use the `cn()` helper for class merging:
125
+
126
+ ```typescript
127
+ import { clsx, type ClassValue } from "clsx"
128
+ import { twMerge } from "tailwind-merge"
129
+
130
+ export function cn(...inputs: ClassValue[]) {
131
+ return twMerge(clsx(inputs))
132
+ }
133
+ ```
134
+
135
+ This allows you to:
136
+ - Override default styles without conflicts
137
+ - Conditionally apply classes
138
+ - Merge Tailwind classes intelligently
139
+
140
+ ## Customization Best Practices
141
+
142
+ ### 1. Theme Customization
143
+
144
+ Edit your Tailwind config and CSS variables in `app/globals.css`:
145
+
146
+ ```css
147
+ @layer base {
148
+ :root {
149
+ --background: 0 0% 100%;
150
+ --foreground: 222.2 84% 4.9%;
151
+ --primary: 221.2 83.2% 53.3%;
152
+ /* ... more variables */
153
+ }
154
+
155
+ .dark {
156
+ --background: 222.2 84% 4.9%;
157
+ --foreground: 210 40% 98%;
158
+ /* ... dark mode overrides */
159
+ }
160
+ }
161
+ ```
162
+
163
+ ### 2. Component Variants
164
+
165
+ Use `class-variance-authority` (cva) for variant logic:
166
+
167
+ ```typescript
168
+ import { cva } from "class-variance-authority"
169
+
170
+ const buttonVariants = cva(
171
+ "inline-flex items-center justify-center rounded-md",
172
+ {
173
+ variants: {
174
+ variant: {
175
+ default: "bg-primary text-primary-foreground",
176
+ outline: "border border-input",
177
+ },
178
+ size: {
179
+ default: "h-10 px-4 py-2",
180
+ sm: "h-9 rounded-md px-3",
181
+ },
182
+ },
183
+ defaultVariants: {
184
+ variant: "default",
185
+ size: "default",
186
+ },
187
+ }
188
+ )
189
+ ```
190
+
191
+ ### 3. Extending Components
192
+
193
+ Create wrapper components in `components/` (not `components/ui/`):
194
+
195
+ ```typescript
196
+ // components/custom-button.tsx
197
+ import { Button } from "@/components/ui/button"
198
+ import { Loader2 } from "lucide-react"
199
+
200
+ export function LoadingButton({
201
+ loading,
202
+ children,
203
+ ...props
204
+ }: ButtonProps & { loading?: boolean }) {
205
+ return (
206
+ <Button disabled={loading} {...props}>
207
+ {loading && <Loader2 className="mr-2 h-4 w-4 animate-spin" />}
208
+ {children}
209
+ </Button>
210
+ )
211
+ }
212
+ ```
213
+
214
+ ## Blocks and Complex Components
215
+
216
+ shadcn/ui provides complete UI blocks (authentication forms, dashboards, etc.):
217
+
218
+ 1. **List available blocks**: Use `list_blocks` with optional category filter
219
+ 2. **Get block source**: Use `get_block` with the block name
220
+ 3. **Install blocks**: Many blocks include multiple component files
221
+
222
+ Blocks are organized by category:
223
+ - **calendar**: Calendar interfaces
224
+ - **dashboard**: Dashboard layouts
225
+ - **login**: Authentication flows
226
+ - **sidebar**: Navigation sidebars
227
+ - **products**: E-commerce components
228
+
229
+ ## Accessibility
230
+
231
+ All shadcn/ui components are built on Radix UI primitives, ensuring:
232
+ - **Keyboard navigation**: Full keyboard support out of the box
233
+ - **Screen reader support**: Proper ARIA attributes
234
+ - **Focus management**: Logical focus flow
235
+ - **Disabled states**: Proper disabled and aria-disabled handling
236
+
237
+ When customizing, maintain accessibility:
238
+ - Keep ARIA attributes
239
+ - Preserve keyboard handlers
240
+ - Test with screen readers
241
+ - Maintain focus indicators
242
+
243
+ ## Common Patterns
244
+
245
+ ### Form Building
246
+ ```typescript
247
+ import { Button } from "@/components/ui/button"
248
+ import { Input } from "@/components/ui/input"
249
+ import { Label } from "@/components/ui/label"
250
+
251
+ // Use with react-hook-form for validation
252
+ import { useForm } from "react-hook-form"
253
+ ```
254
+
255
+ ### Dialog/Modal Patterns
256
+ ```typescript
257
+ import {
258
+ Dialog,
259
+ DialogContent,
260
+ DialogDescription,
261
+ DialogHeader,
262
+ DialogTitle,
263
+ DialogTrigger,
264
+ } from "@/components/ui/dialog"
265
+ ```
266
+
267
+ ### Data Display
268
+ ```typescript
269
+ import {
270
+ Table,
271
+ TableBody,
272
+ TableCell,
273
+ TableHead,
274
+ TableHeader,
275
+ TableRow,
276
+ } from "@/components/ui/table"
277
+ ```
278
+
279
+ ## Troubleshooting
280
+
281
+ ### Import Errors
282
+ - Check `components.json` for correct alias configuration
283
+ - Verify `tsconfig.json` includes the `@` path alias:
284
+ ```json
285
+ {
286
+ "compilerOptions": {
287
+ "paths": {
288
+ "@/*": ["./src/*"]
289
+ }
290
+ }
291
+ }
292
+ ```
293
+
294
+ ### Style Conflicts
295
+ - Ensure Tailwind CSS is properly configured
296
+ - Check that `globals.css` is imported in your root layout
297
+ - Verify CSS variable names match between components and theme
298
+
299
+ ### Missing Dependencies
300
+ - Run component installation via CLI to auto-install deps
301
+ - Manually check `package.json` for required Radix UI packages
302
+ - Use `get_component_metadata` to see dependency lists
303
+
304
+ ### Version Compatibility
305
+ - shadcn/ui v4 requires React 18+ and Next.js 13+ (if using Next.js)
306
+ - Some components require specific Radix UI versions
307
+ - Check documentation for breaking changes between versions
308
+
309
+ ## Validation and Quality
310
+
311
+ Before committing components:
312
+ 1. **Type check**: Run `tsc --noEmit` to verify TypeScript
313
+ 2. **Lint**: Run your linter to catch style issues
314
+ 3. **Test accessibility**: Use tools like axe DevTools
315
+ 4. **Visual QA**: Test in light and dark modes
316
+ 5. **Responsive check**: Verify behavior at different breakpoints
317
+
318
+ ## Resources
319
+
320
+ Refer to the following resource files for detailed guidance:
321
+ - `resources/setup-guide.md` - Step-by-step project initialization
322
+ - `resources/component-catalog.md` - Complete component reference
323
+ - `resources/customization-guide.md` - Theming and variant patterns
324
+ - `resources/migration-guide.md` - Upgrading from other UI libraries
325
+
326
+ ## Examples
327
+
328
+ See the `examples/` directory for:
329
+ - Complete component implementations
330
+ - Form patterns with validation
331
+ - Dashboard layouts
332
+ - Authentication flows
333
+ - Data table implementations
@@ -0,0 +1,177 @@
1
+ // Example: Authentication Layout with shadcn/ui
2
+ // Demonstrates: Layout composition, card usage, form integration
3
+
4
+ "use client"
5
+
6
+ import { Button } from "@/components/ui/button"
7
+ import {
8
+ Card,
9
+ CardContent,
10
+ CardDescription,
11
+ CardFooter,
12
+ CardHeader,
13
+ CardTitle,
14
+ } from "@/components/ui/card"
15
+ import { Input } from "@/components/ui/input"
16
+ import { Label } from "@/components/ui/label"
17
+ import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"
18
+ import { useState } from "react"
19
+
20
+ export function AuthLayout() {
21
+ const [isLoading, setIsLoading] = useState<boolean>(false)
22
+
23
+ async function onSubmit(event: React.FormEvent<HTMLFormElement>) {
24
+ event.preventDefault()
25
+ setIsLoading(true)
26
+
27
+ // Simulate API call
28
+ setTimeout(() => {
29
+ setIsLoading(false)
30
+ }, 2000)
31
+ }
32
+
33
+ return (
34
+ <div className="flex min-h-screen items-center justify-center bg-muted/40">
35
+ <Tabs defaultValue="login" className="w-[400px]">
36
+ <TabsList className="grid w-full grid-cols-2">
37
+ <TabsTrigger value="login">Login</TabsTrigger>
38
+ <TabsTrigger value="register">Register</TabsTrigger>
39
+ </TabsList>
40
+
41
+ <TabsContent value="login">
42
+ <Card>
43
+ <CardHeader>
44
+ <CardTitle>Login</CardTitle>
45
+ <CardDescription>
46
+ Enter your credentials to access your account.
47
+ </CardDescription>
48
+ </CardHeader>
49
+ <form onSubmit={onSubmit}>
50
+ <CardContent className="space-y-4">
51
+ <div className="space-y-2">
52
+ <Label htmlFor="email">Email</Label>
53
+ <Input
54
+ id="email"
55
+ type="email"
56
+ placeholder="m@example.com"
57
+ required
58
+ />
59
+ </div>
60
+ <div className="space-y-2">
61
+ <Label htmlFor="password">Password</Label>
62
+ <Input
63
+ id="password"
64
+ type="password"
65
+ required
66
+ />
67
+ </div>
68
+ </CardContent>
69
+ <CardFooter className="flex flex-col space-y-4">
70
+ <Button
71
+ type="submit"
72
+ className="w-full"
73
+ disabled={isLoading}
74
+ >
75
+ {isLoading ? "Signing in..." : "Sign in"}
76
+ </Button>
77
+ <Button
78
+ type="button"
79
+ variant="link"
80
+ className="w-full text-sm text-muted-foreground"
81
+ >
82
+ Forgot password?
83
+ </Button>
84
+ </CardFooter>
85
+ </form>
86
+ </Card>
87
+ </TabsContent>
88
+
89
+ <TabsContent value="register">
90
+ <Card>
91
+ <CardHeader>
92
+ <CardTitle>Create an account</CardTitle>
93
+ <CardDescription>
94
+ Enter your information to create an account.
95
+ </CardDescription>
96
+ </CardHeader>
97
+ <form onSubmit={onSubmit}>
98
+ <CardContent className="space-y-4">
99
+ <div className="space-y-2">
100
+ <Label htmlFor="name">Name</Label>
101
+ <Input
102
+ id="name"
103
+ placeholder="John Doe"
104
+ required
105
+ />
106
+ </div>
107
+ <div className="space-y-2">
108
+ <Label htmlFor="register-email">Email</Label>
109
+ <Input
110
+ id="register-email"
111
+ type="email"
112
+ placeholder="m@example.com"
113
+ required
114
+ />
115
+ </div>
116
+ <div className="space-y-2">
117
+ <Label htmlFor="register-password">Password</Label>
118
+ <Input
119
+ id="register-password"
120
+ type="password"
121
+ required
122
+ />
123
+ </div>
124
+ <div className="space-y-2">
125
+ <Label htmlFor="confirm-password">Confirm Password</Label>
126
+ <Input
127
+ id="confirm-password"
128
+ type="password"
129
+ required
130
+ />
131
+ </div>
132
+ </CardContent>
133
+ <CardFooter>
134
+ <Button
135
+ type="submit"
136
+ className="w-full"
137
+ disabled={isLoading}
138
+ >
139
+ {isLoading ? "Creating account..." : "Create account"}
140
+ </Button>
141
+ </CardFooter>
142
+ </form>
143
+ </Card>
144
+ </TabsContent>
145
+ </Tabs>
146
+ </div>
147
+ )
148
+ }
149
+
150
+ /**
151
+ * Key Patterns Demonstrated:
152
+ *
153
+ * 1. Layout Composition: Centered authentication card with full-height viewport
154
+ * 2. Card Usage: Structured content with header, body, and footer
155
+ * 3. Tabs: Switch between login and register forms
156
+ * 4. Form Structure: Proper labeling and input grouping
157
+ * 5. Loading States: Button disabled state during form submission
158
+ * 6. Responsive Design: Mobile-friendly with max-width constraint
159
+ * 7. Tailwind Utilities: Using spacing, flexbox, and grid utilities
160
+ *
161
+ * Design Choices:
162
+ * - Minimal, clean interface focusing on the task at hand
163
+ * - Proper semantic HTML with form elements
164
+ * - Accessible labels and inputs
165
+ * - Clear visual hierarchy with card components
166
+ * - Loading feedback for better UX
167
+ *
168
+ * Required Dependencies:
169
+ * None beyond React and shadcn/ui components
170
+ *
171
+ * Installation:
172
+ * npx shadcn@latest add card
173
+ * npx shadcn@latest add input
174
+ * npx shadcn@latest add label
175
+ * npx shadcn@latest add button
176
+ * npx shadcn@latest add tabs
177
+ */