constella 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.
- package/.next/BUILD_ID +1 -0
- package/.next/app-path-routes-manifest.json +53 -0
- package/.next/build-manifest.json +20 -0
- package/.next/diagnostics/build-diagnostics.json +6 -0
- package/.next/diagnostics/framework.json +1 -0
- package/.next/export-marker.json +6 -0
- package/.next/images-manifest.json +68 -0
- package/.next/next-minimal-server.js.nft.json +1 -0
- package/.next/next-server.js.nft.json +1 -0
- package/.next/package.json +1 -0
- package/.next/prerender-manifest.json +36 -0
- package/.next/react-loadable-manifest.json +14 -0
- package/.next/required-server-files.js +343 -0
- package/.next/required-server-files.json +343 -0
- package/.next/routes-manifest.json +362 -0
- package/.next/server/app/(app)/activity/page.js +2 -0
- package/.next/server/app/(app)/activity/page.js.nft.json +1 -0
- package/.next/server/app/(app)/activity/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/agents/[handle]/page.js +18 -0
- package/.next/server/app/(app)/agents/[handle]/page.js.nft.json +1 -0
- package/.next/server/app/(app)/agents/[handle]/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/code/page.js +2 -0
- package/.next/server/app/(app)/code/page.js.nft.json +1 -0
- package/.next/server/app/(app)/code/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/config/page.js +2 -0
- package/.next/server/app/(app)/config/page.js.nft.json +1 -0
- package/.next/server/app/(app)/config/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/costs/page.js +2 -0
- package/.next/server/app/(app)/costs/page.js.nft.json +1 -0
- package/.next/server/app/(app)/costs/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/cron/page.js +2 -0
- package/.next/server/app/(app)/cron/page.js.nft.json +1 -0
- package/.next/server/app/(app)/cron/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/dashboard/page.js +2 -0
- package/.next/server/app/(app)/dashboard/page.js.nft.json +1 -0
- package/.next/server/app/(app)/dashboard/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/docs/[id]/page.js +2 -0
- package/.next/server/app/(app)/docs/[id]/page.js.nft.json +1 -0
- package/.next/server/app/(app)/docs/[id]/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/docs/page.js +2 -0
- package/.next/server/app/(app)/docs/page.js.nft.json +1 -0
- package/.next/server/app/(app)/docs/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/github/page.js +2 -0
- package/.next/server/app/(app)/github/page.js.nft.json +1 -0
- package/.next/server/app/(app)/github/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/goals/page.js +2 -0
- package/.next/server/app/(app)/goals/page.js.nft.json +1 -0
- package/.next/server/app/(app)/goals/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/inbox/page.js +2 -0
- package/.next/server/app/(app)/inbox/page.js.nft.json +1 -0
- package/.next/server/app/(app)/inbox/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/knowledge/page.js +3 -0
- package/.next/server/app/(app)/knowledge/page.js.nft.json +1 -0
- package/.next/server/app/(app)/knowledge/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/models/page.js +2 -0
- package/.next/server/app/(app)/models/page.js.nft.json +1 -0
- package/.next/server/app/(app)/models/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/notifications/page.js +2 -0
- package/.next/server/app/(app)/notifications/page.js.nft.json +1 -0
- package/.next/server/app/(app)/notifications/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/org/page.js +2 -0
- package/.next/server/app/(app)/org/page.js.nft.json +1 -0
- package/.next/server/app/(app)/org/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/organizations/page.js +2 -0
- package/.next/server/app/(app)/organizations/page.js.nft.json +1 -0
- package/.next/server/app/(app)/organizations/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/page.js +3 -0
- package/.next/server/app/(app)/page.js.nft.json +1 -0
- package/.next/server/app/(app)/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/planner/page.js +2 -0
- package/.next/server/app/(app)/planner/page.js.nft.json +1 -0
- package/.next/server/app/(app)/planner/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/plugins/page.js +2 -0
- package/.next/server/app/(app)/plugins/page.js.nft.json +1 -0
- package/.next/server/app/(app)/plugins/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/pm/page.js +2 -0
- package/.next/server/app/(app)/pm/page.js.nft.json +1 -0
- package/.next/server/app/(app)/pm/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/prepare-deploy/page.js +19 -0
- package/.next/server/app/(app)/prepare-deploy/page.js.nft.json +1 -0
- package/.next/server/app/(app)/prepare-deploy/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/profile/page.js +2 -0
- package/.next/server/app/(app)/profile/page.js.nft.json +1 -0
- package/.next/server/app/(app)/profile/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/pulse/page.js +2 -0
- package/.next/server/app/(app)/pulse/page.js.nft.json +1 -0
- package/.next/server/app/(app)/pulse/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/reports/[id]/page.js +3 -0
- package/.next/server/app/(app)/reports/[id]/page.js.nft.json +1 -0
- package/.next/server/app/(app)/reports/[id]/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/reports/page.js +5 -0
- package/.next/server/app/(app)/reports/page.js.nft.json +1 -0
- package/.next/server/app/(app)/reports/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/routines/page.js +2 -0
- package/.next/server/app/(app)/routines/page.js.nft.json +1 -0
- package/.next/server/app/(app)/routines/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/search/page.js +2 -0
- package/.next/server/app/(app)/search/page.js.nft.json +1 -0
- package/.next/server/app/(app)/search/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/security/page.js +2 -0
- package/.next/server/app/(app)/security/page.js.nft.json +1 -0
- package/.next/server/app/(app)/security/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/skills/page.js +18 -0
- package/.next/server/app/(app)/skills/page.js.nft.json +1 -0
- package/.next/server/app/(app)/skills/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/tasks/page.js +2 -0
- package/.next/server/app/(app)/tasks/page.js.nft.json +1 -0
- package/.next/server/app/(app)/tasks/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/test-dev/page.js +2 -0
- package/.next/server/app/(app)/test-dev/page.js.nft.json +1 -0
- package/.next/server/app/(app)/test-dev/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/update/page.js +2 -0
- package/.next/server/app/(app)/update/page.js.nft.json +1 -0
- package/.next/server/app/(app)/update/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(auth)/login/page.js +2 -0
- package/.next/server/app/(auth)/login/page.js.nft.json +1 -0
- package/.next/server/app/(auth)/login/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(auth)/onboarding/page.js +18 -0
- package/.next/server/app/(auth)/onboarding/page.js.nft.json +1 -0
- package/.next/server/app/(auth)/onboarding/page_client-reference-manifest.js +1 -0
- package/.next/server/app/_global-error/page.js +32 -0
- package/.next/server/app/_global-error/page.js.nft.json +1 -0
- package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -0
- package/.next/server/app/_global-error.html +1 -0
- package/.next/server/app/_global-error.meta +16 -0
- package/.next/server/app/_global-error.rsc +15 -0
- package/.next/server/app/_global-error.segments/_full.segment.rsc +15 -0
- package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +5 -0
- package/.next/server/app/_global-error.segments/_global-error.segment.rsc +5 -0
- package/.next/server/app/_global-error.segments/_head.segment.rsc +5 -0
- package/.next/server/app/_global-error.segments/_index.segment.rsc +6 -0
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -0
- package/.next/server/app/_not-found/page.js +2 -0
- package/.next/server/app/_not-found/page.js.nft.json +1 -0
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -0
- package/.next/server/app/api/auth/[...all]/route.js +1 -0
- package/.next/server/app/api/auth/[...all]/route.js.nft.json +1 -0
- package/.next/server/app/api/auth/[...all]/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/cron/tick/route.js +52 -0
- package/.next/server/app/api/cron/tick/route.js.nft.json +1 -0
- package/.next/server/app/api/cron/tick/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/dev-login/route.js +1 -0
- package/.next/server/app/api/dev-login/route.js.nft.json +1 -0
- package/.next/server/app/api/dev-login/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/locks/acquire/route.js +1 -0
- package/.next/server/app/api/locks/acquire/route.js.nft.json +1 -0
- package/.next/server/app/api/locks/acquire/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/models/progress/route.js +1 -0
- package/.next/server/app/api/models/progress/route.js.nft.json +1 -0
- package/.next/server/app/api/models/progress/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/passkey/authenticate/options/route.js +1 -0
- package/.next/server/app/api/passkey/authenticate/options/route.js.nft.json +1 -0
- package/.next/server/app/api/passkey/authenticate/options/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/passkey/authenticate/verify/route.js +1 -0
- package/.next/server/app/api/passkey/authenticate/verify/route.js.nft.json +1 -0
- package/.next/server/app/api/passkey/authenticate/verify/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/passkey/register/options/route.js +1 -0
- package/.next/server/app/api/passkey/register/options/route.js.nft.json +1 -0
- package/.next/server/app/api/passkey/register/options/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/passkey/register/verify/route.js +1 -0
- package/.next/server/app/api/passkey/register/verify/route.js.nft.json +1 -0
- package/.next/server/app/api/passkey/register/verify/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/stream/route.js +4 -0
- package/.next/server/app/api/stream/route.js.nft.json +1 -0
- package/.next/server/app/api/stream/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/sync/file/route.js +2 -0
- package/.next/server/app/api/sync/file/route.js.nft.json +1 -0
- package/.next/server/app/api/sync/file/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/telegram/poll/route.js +15 -0
- package/.next/server/app/api/telegram/poll/route.js.nft.json +1 -0
- package/.next/server/app/api/telegram/poll/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/upload/route.js +1 -0
- package/.next/server/app/api/upload/route.js.nft.json +1 -0
- package/.next/server/app/api/upload/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/v1/[[...path]]/route.js +1 -0
- package/.next/server/app/api/v1/[[...path]]/route.js.nft.json +1 -0
- package/.next/server/app/api/v1/[[...path]]/route_client-reference-manifest.js +1 -0
- package/.next/server/app-paths-manifest.json +53 -0
- package/.next/server/chunks/1003.js +1 -0
- package/.next/server/chunks/127.js +26 -0
- package/.next/server/chunks/1388.js +1 -0
- package/.next/server/chunks/1408.js +21 -0
- package/.next/server/chunks/1572.js +1 -0
- package/.next/server/chunks/1591.js +24 -0
- package/.next/server/chunks/1619.js +188 -0
- package/.next/server/chunks/162.js +1 -0
- package/.next/server/chunks/1881.js +1 -0
- package/.next/server/chunks/1968.js +1 -0
- package/.next/server/chunks/2297.js +348 -0
- package/.next/server/chunks/2341.js +1 -0
- package/.next/server/chunks/2517.js +1 -0
- package/.next/server/chunks/2549.js +1 -0
- package/.next/server/chunks/259.js +14 -0
- package/.next/server/chunks/2599.js +1 -0
- package/.next/server/chunks/260.js +1 -0
- package/.next/server/chunks/2867.js +147 -0
- package/.next/server/chunks/3018.js +1 -0
- package/.next/server/chunks/3050.js +18 -0
- package/.next/server/chunks/3085.js +12 -0
- package/.next/server/chunks/3131.js +1 -0
- package/.next/server/chunks/3242.js +1 -0
- package/.next/server/chunks/3266.js +15 -0
- package/.next/server/chunks/3524.js +1 -0
- package/.next/server/chunks/3527.js +479 -0
- package/.next/server/chunks/3533.js +869 -0
- package/.next/server/chunks/3550.js +1 -0
- package/.next/server/chunks/3609.js +2 -0
- package/.next/server/chunks/3667.js +462 -0
- package/.next/server/chunks/3760.js +4 -0
- package/.next/server/chunks/4679.js +1 -0
- package/.next/server/chunks/4804.js +1 -0
- package/.next/server/chunks/4832.js +2 -0
- package/.next/server/chunks/4853.js +1 -0
- package/.next/server/chunks/4979.js +67 -0
- package/.next/server/chunks/5060.js +1 -0
- package/.next/server/chunks/5278.js +1 -0
- package/.next/server/chunks/5614.js +1 -0
- package/.next/server/chunks/5818.js +1 -0
- package/.next/server/chunks/6479.js +1 -0
- package/.next/server/chunks/6658.js +1 -0
- package/.next/server/chunks/6706.js +1 -0
- package/.next/server/chunks/6719.js +1 -0
- package/.next/server/chunks/678.js +1 -0
- package/.next/server/chunks/683.js +1 -0
- package/.next/server/chunks/6862.js +1 -0
- package/.next/server/chunks/6882.js +1 -0
- package/.next/server/chunks/7037.js +1 -0
- package/.next/server/chunks/7107.js +741 -0
- package/.next/server/chunks/73.js +17 -0
- package/.next/server/chunks/7327.js +1 -0
- package/.next/server/chunks/7514.js +1 -0
- package/.next/server/chunks/7622.js +1 -0
- package/.next/server/chunks/7778.js +1 -0
- package/.next/server/chunks/7912.js +1 -0
- package/.next/server/chunks/7949.js +1 -0
- package/.next/server/chunks/7971.js +1 -0
- package/.next/server/chunks/7989.js +1 -0
- package/.next/server/chunks/842.js +22 -0
- package/.next/server/chunks/8762.js +15 -0
- package/.next/server/chunks/8823.js +77 -0
- package/.next/server/chunks/9146.js +4 -0
- package/.next/server/chunks/9676.js +1 -0
- package/.next/server/chunks/9783.js +22 -0
- package/.next/server/chunks/9969.js +3 -0
- package/.next/server/functions-config-manifest.json +18 -0
- package/.next/server/instrumentation.js +1 -0
- package/.next/server/instrumentation.js.nft.json +1 -0
- package/.next/server/interception-route-rewrite-manifest.js +1 -0
- package/.next/server/middleware-build-manifest.js +1 -0
- package/.next/server/middleware-manifest.json +6 -0
- package/.next/server/middleware-react-loadable-manifest.js +1 -0
- package/.next/server/middleware.js +18 -0
- package/.next/server/middleware.js.nft.json +1 -0
- package/.next/server/next-font-manifest.js +1 -0
- package/.next/server/next-font-manifest.json +1 -0
- package/.next/server/pages/500.html +1 -0
- package/.next/server/pages-manifest.json +3 -0
- package/.next/server/prefetch-hints.json +1 -0
- package/.next/server/server-reference-manifest.js +1 -0
- package/.next/server/server-reference-manifest.json +1 -0
- package/.next/server/webpack-runtime.js +1 -0
- package/.next/static/chunks/1858-339516f78a4b00da.js +1 -0
- package/.next/static/chunks/2320-fc8b39380e69d465.js +2 -0
- package/.next/static/chunks/23550918-ff694f70f4b0648c.js +1 -0
- package/.next/static/chunks/3219-ebb3c23be38c838d.js +1 -0
- package/.next/static/chunks/4263-adecb5b466380b6e.js +1 -0
- package/.next/static/chunks/5479-0cceab68cd0ca9c7.js +1 -0
- package/.next/static/chunks/5701-665b927b06158b76.js +1 -0
- package/.next/static/chunks/5920.6451a68b63918988.js +1 -0
- package/.next/static/chunks/6575-5c9139720bb0f5bf.js +4 -0
- package/.next/static/chunks/6834-4759af1ce7d95fb6.js +32 -0
- package/.next/static/chunks/7509.721cd47a931c5518.js +1 -0
- package/.next/static/chunks/8264-1ca011989ee2b231.js +1 -0
- package/.next/static/chunks/9219-4a39a98b5502d9d1.js +1 -0
- package/.next/static/chunks/9690-53d5222618cbeddb.js +1 -0
- package/.next/static/chunks/app/(app)/activity/page-3973534281ecea81.js +1 -0
- package/.next/static/chunks/app/(app)/agents/[handle]/page-83662a175c098282.js +1 -0
- package/.next/static/chunks/app/(app)/code/page-33979545192cd137.js +1 -0
- package/.next/static/chunks/app/(app)/config/page-9933aed1ca8a85c1.js +1 -0
- package/.next/static/chunks/app/(app)/costs/page-131c4dc580efcc19.js +1 -0
- package/.next/static/chunks/app/(app)/cron/page-53ea1aff998a87ca.js +1 -0
- package/.next/static/chunks/app/(app)/dashboard/page-deed83aaa9d0d447.js +1 -0
- package/.next/static/chunks/app/(app)/docs/[id]/page-38c993d73c0eab4f.js +1 -0
- package/.next/static/chunks/app/(app)/docs/page-bf463b55d0554e86.js +1 -0
- package/.next/static/chunks/app/(app)/error-988cd28480809861.js +1 -0
- package/.next/static/chunks/app/(app)/github/page-62678b4e82dfecb6.js +1 -0
- package/.next/static/chunks/app/(app)/goals/page-4adb426fe1c96106.js +1 -0
- package/.next/static/chunks/app/(app)/inbox/page-e347dc55ab467310.js +1 -0
- package/.next/static/chunks/app/(app)/knowledge/page-65393a045b4349be.js +1 -0
- package/.next/static/chunks/app/(app)/layout-7f65675705b011d8.js +1 -0
- package/.next/static/chunks/app/(app)/models/page-e01f1dd7e49a2951.js +1 -0
- package/.next/static/chunks/app/(app)/notifications/page-56548ac87aef00da.js +1 -0
- package/.next/static/chunks/app/(app)/org/page-699e6a6dc0db7d81.js +1 -0
- package/.next/static/chunks/app/(app)/organizations/page-36051a380a7e8eb7.js +1 -0
- package/.next/static/chunks/app/(app)/page-7d1011a566f81520.js +1 -0
- package/.next/static/chunks/app/(app)/planner/page-dab7ced94083373a.js +1 -0
- package/.next/static/chunks/app/(app)/plugins/page-5b5a1f53389be42e.js +1 -0
- package/.next/static/chunks/app/(app)/pm/page-0de5c08c0b227bb0.js +1 -0
- package/.next/static/chunks/app/(app)/prepare-deploy/page-e426038552df8d41.js +1 -0
- package/.next/static/chunks/app/(app)/profile/page-608dfcaf8aae0a69.js +1 -0
- package/.next/static/chunks/app/(app)/pulse/page-309ccaca91de1faa.js +1 -0
- package/.next/static/chunks/app/(app)/reports/[id]/page-53ea1aff998a87ca.js +1 -0
- package/.next/static/chunks/app/(app)/reports/page-68cdc6dcfa472d86.js +1 -0
- package/.next/static/chunks/app/(app)/routines/page-bcc55550b197a9fa.js +1 -0
- package/.next/static/chunks/app/(app)/search/page-5c5f67558d0dbf0d.js +1 -0
- package/.next/static/chunks/app/(app)/security/page-a7d41e36aa366b45.js +1 -0
- package/.next/static/chunks/app/(app)/skills/page-c5b21e89593b8336.js +1 -0
- package/.next/static/chunks/app/(app)/tasks/page-08ae079e3e54d2ce.js +1 -0
- package/.next/static/chunks/app/(app)/test-dev/page-633f82dfd9c3ce23.js +1 -0
- package/.next/static/chunks/app/(app)/update/page-4be019054351bfac.js +1 -0
- package/.next/static/chunks/app/(auth)/login/page-6e85d3377062acae.js +1 -0
- package/.next/static/chunks/app/(auth)/onboarding/page-ebb10c175abf3b85.js +1 -0
- package/.next/static/chunks/app/_global-error/page-23fe50a6bf589c97.js +1 -0
- package/.next/static/chunks/app/_not-found/page-dc38b02aebeab535.js +1 -0
- package/.next/static/chunks/app/api/auth/[...all]/route-23fe50a6bf589c97.js +1 -0
- package/.next/static/chunks/app/api/cron/tick/route-23fe50a6bf589c97.js +1 -0
- package/.next/static/chunks/app/api/dev-login/route-23fe50a6bf589c97.js +1 -0
- package/.next/static/chunks/app/api/locks/acquire/route-23fe50a6bf589c97.js +1 -0
- package/.next/static/chunks/app/api/models/progress/route-23fe50a6bf589c97.js +1 -0
- package/.next/static/chunks/app/api/passkey/authenticate/options/route-23fe50a6bf589c97.js +1 -0
- package/.next/static/chunks/app/api/passkey/authenticate/verify/route-23fe50a6bf589c97.js +1 -0
- package/.next/static/chunks/app/api/passkey/register/options/route-23fe50a6bf589c97.js +1 -0
- package/.next/static/chunks/app/api/passkey/register/verify/route-23fe50a6bf589c97.js +1 -0
- package/.next/static/chunks/app/api/stream/route-23fe50a6bf589c97.js +1 -0
- package/.next/static/chunks/app/api/sync/file/route-23fe50a6bf589c97.js +1 -0
- package/.next/static/chunks/app/api/telegram/poll/route-23fe50a6bf589c97.js +1 -0
- package/.next/static/chunks/app/api/upload/route-23fe50a6bf589c97.js +1 -0
- package/.next/static/chunks/app/api/v1/[[...path]]/route-23fe50a6bf589c97.js +1 -0
- package/.next/static/chunks/app/error-09899a13c38b6e89.js +1 -0
- package/.next/static/chunks/app/global-error-b8050d4d886f448c.js +1 -0
- package/.next/static/chunks/app/layout-ab9deed1e7e2e9df.js +1 -0
- package/.next/static/chunks/framework-4b2c6b6043dd203f.js +1 -0
- package/.next/static/chunks/main-722e16032e7764d1.js +5 -0
- package/.next/static/chunks/main-app-761880af2b6f1962.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/app-error-23fe50a6bf589c97.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/forbidden-23fe50a6bf589c97.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/not-found-23fe50a6bf589c97.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-23fe50a6bf589c97.js +1 -0
- package/.next/static/chunks/polyfills-42372ed130431b0a.js +1 -0
- package/.next/static/chunks/webpack-222e3894b78c67db.js +1 -0
- package/.next/static/css/0a9b5805594444e3.css +1 -0
- package/.next/static/yztMvBwyrWWkSqP6jfXoa/_buildManifest.js +1 -0
- package/.next/static/yztMvBwyrWWkSqP6jfXoa/_ssgManifest.js +1 -0
- package/.next/trace-build +1 -0
- package/.next/types/app/(app)/activity/page.ts +87 -0
- package/.next/types/app/(app)/agents/[handle]/page.ts +87 -0
- package/.next/types/app/(app)/code/page.ts +87 -0
- package/.next/types/app/(app)/config/page.ts +87 -0
- package/.next/types/app/(app)/costs/page.ts +87 -0
- package/.next/types/app/(app)/cron/page.ts +87 -0
- package/.next/types/app/(app)/dashboard/page.ts +87 -0
- package/.next/types/app/(app)/docs/[id]/page.ts +87 -0
- package/.next/types/app/(app)/docs/page.ts +87 -0
- package/.next/types/app/(app)/github/page.ts +87 -0
- package/.next/types/app/(app)/goals/page.ts +87 -0
- package/.next/types/app/(app)/inbox/page.ts +87 -0
- package/.next/types/app/(app)/knowledge/page.ts +87 -0
- package/.next/types/app/(app)/models/page.ts +87 -0
- package/.next/types/app/(app)/notifications/page.ts +87 -0
- package/.next/types/app/(app)/org/page.ts +87 -0
- package/.next/types/app/(app)/organizations/page.ts +87 -0
- package/.next/types/app/(app)/page.ts +87 -0
- package/.next/types/app/(app)/planner/page.ts +87 -0
- package/.next/types/app/(app)/plugins/page.ts +87 -0
- package/.next/types/app/(app)/pm/page.ts +87 -0
- package/.next/types/app/(app)/prepare-deploy/page.ts +87 -0
- package/.next/types/app/(app)/profile/page.ts +87 -0
- package/.next/types/app/(app)/pulse/page.ts +87 -0
- package/.next/types/app/(app)/reports/[id]/page.ts +87 -0
- package/.next/types/app/(app)/reports/page.ts +87 -0
- package/.next/types/app/(app)/routines/page.ts +87 -0
- package/.next/types/app/(app)/search/page.ts +87 -0
- package/.next/types/app/(app)/security/page.ts +87 -0
- package/.next/types/app/(app)/skills/page.ts +87 -0
- package/.next/types/app/(app)/tasks/page.ts +87 -0
- package/.next/types/app/(app)/test-dev/page.ts +87 -0
- package/.next/types/app/(app)/update/page.ts +87 -0
- package/.next/types/app/(auth)/login/page.ts +87 -0
- package/.next/types/app/(auth)/onboarding/page.ts +87 -0
- package/.next/types/app/api/auth/[...all]/route.ts +351 -0
- package/.next/types/app/api/cron/tick/route.ts +351 -0
- package/.next/types/app/api/dev-login/route.ts +351 -0
- package/.next/types/app/api/locks/acquire/route.ts +351 -0
- package/.next/types/app/api/models/progress/route.ts +351 -0
- package/.next/types/app/api/passkey/authenticate/options/route.ts +351 -0
- package/.next/types/app/api/passkey/authenticate/verify/route.ts +351 -0
- package/.next/types/app/api/passkey/register/options/route.ts +351 -0
- package/.next/types/app/api/passkey/register/verify/route.ts +351 -0
- package/.next/types/app/api/stream/route.ts +351 -0
- package/.next/types/app/api/sync/file/route.ts +351 -0
- package/.next/types/app/api/telegram/poll/route.ts +351 -0
- package/.next/types/app/api/upload/route.ts +351 -0
- package/.next/types/app/api/v1/[[...path]]/route.ts +351 -0
- package/.next/types/cache-life.d.ts +145 -0
- package/.next/types/link.d.ts +210 -0
- package/.next/types/package.json +1 -0
- package/.next/types/routes.d.ts +120 -0
- package/.next/types/validator.ts +511 -0
- package/CHANGELOG.md +312 -0
- package/LICENSE +21 -0
- package/README.md +382 -0
- package/README.pt-BR.md +391 -0
- package/bin/constella.mjs +329 -0
- package/bin/guard-hook.mjs +44 -0
- package/bin/lock-hook.mjs +49 -0
- package/bin/worker.mjs +142 -0
- package/docs/assets/arch-orbit.svg +56 -0
- package/docs/assets/blackhole.svg +37 -0
- package/docs/assets/divider-orbit.svg +23 -0
- package/docs/assets/hero-constella.svg +72 -0
- package/docs/en/AGENTS.md +279 -0
- package/docs/en/AI_ARCHITECTURE.md +373 -0
- package/docs/en/ARCHITECTURE.md +334 -0
- package/docs/en/AUTH_MODE.md +247 -0
- package/docs/en/CHAT_COMMANDS.md +305 -0
- package/docs/en/CONFIGURATION.md +340 -0
- package/docs/en/DEPLOY.md +331 -0
- package/docs/en/DM.md +297 -0
- package/docs/en/FAQ.md +258 -0
- package/docs/en/GITHUB.md +341 -0
- package/docs/en/GOALS_SPECS_ISSUES.md +303 -0
- package/docs/en/INBOX.md +340 -0
- package/docs/en/INSTALLATION.md +329 -0
- package/docs/en/KB_AGENT.md +305 -0
- package/docs/en/KB_RAG.md +356 -0
- package/docs/en/MCP.md +313 -0
- package/docs/en/MEMORY_RAG.md +289 -0
- package/docs/en/MODELS.md +341 -0
- package/docs/en/ONBOARDING.md +327 -0
- package/docs/en/PLUGINS.md +290 -0
- package/docs/en/PORTABLE_MODE.md +387 -0
- package/docs/en/PO_AGENT.md +379 -0
- package/docs/en/PREPARE_DEPLOY.md +308 -0
- package/docs/en/PROJECT_STACKS.md +258 -0
- package/docs/en/PUBLIC_API.md +315 -0
- package/docs/en/PUBLISHING.md +343 -0
- package/docs/en/README.md +95 -0
- package/docs/en/SECURITY.md +280 -0
- package/docs/en/SKILLS.md +349 -0
- package/docs/en/START_MODE.md +340 -0
- package/docs/en/SYNCED_BLOCKS.md +320 -0
- package/docs/en/TEAM_ROOM.md +285 -0
- package/docs/en/TELEGRAM.md +294 -0
- package/docs/en/TEST_DEV.md +321 -0
- package/docs/en/TROUBLESHOOTING.md +294 -0
- package/docs/en/UPDATE.md +301 -0
- package/docs/en/VPS_MODE.md +334 -0
- package/docs/en/WORKFLOW.md +321 -0
- package/docs/pt/AGENTS.md +279 -0
- package/docs/pt/AI_ARCHITECTURE.md +373 -0
- package/docs/pt/ARCHITECTURE.md +334 -0
- package/docs/pt/AUTH_MODE.md +247 -0
- package/docs/pt/CHAT_COMMANDS.md +307 -0
- package/docs/pt/CONFIGURATION.md +340 -0
- package/docs/pt/DEPLOY.md +331 -0
- package/docs/pt/DM.md +297 -0
- package/docs/pt/FAQ.md +258 -0
- package/docs/pt/GITHUB.md +341 -0
- package/docs/pt/GOALS_SPECS_ISSUES.md +303 -0
- package/docs/pt/INBOX.md +340 -0
- package/docs/pt/INSTALLATION.md +329 -0
- package/docs/pt/KB_AGENT.md +305 -0
- package/docs/pt/KB_RAG.md +356 -0
- package/docs/pt/MCP.md +313 -0
- package/docs/pt/MEMORY_RAG.md +289 -0
- package/docs/pt/MODELS.md +341 -0
- package/docs/pt/ONBOARDING.md +327 -0
- package/docs/pt/PLUGINS.md +290 -0
- package/docs/pt/PORTABLE_MODE.md +387 -0
- package/docs/pt/PO_AGENT.md +379 -0
- package/docs/pt/PREPARE_DEPLOY.md +308 -0
- package/docs/pt/PROJECT_STACKS.md +258 -0
- package/docs/pt/PUBLIC_API.md +315 -0
- package/docs/pt/PUBLISHING.md +343 -0
- package/docs/pt/README.md +95 -0
- package/docs/pt/SECURITY.md +280 -0
- package/docs/pt/SKILLS.md +349 -0
- package/docs/pt/START_MODE.md +340 -0
- package/docs/pt/SYNCED_BLOCKS.md +320 -0
- package/docs/pt/TEAM_ROOM.md +285 -0
- package/docs/pt/TELEGRAM.md +294 -0
- package/docs/pt/TEST_DEV.md +321 -0
- package/docs/pt/TROUBLESHOOTING.md +294 -0
- package/docs/pt/UPDATE.md +301 -0
- package/docs/pt/VPS_MODE.md +334 -0
- package/docs/pt/WORKFLOW.md +321 -0
- package/drizzle/0000_regular_nightshade.sql +644 -0
- package/drizzle/0001_mixed_zombie.sql +106 -0
- package/drizzle/meta/0000_snapshot.json +4650 -0
- package/drizzle/meta/0001_snapshot.json +5418 -0
- package/drizzle/meta/_journal.json +20 -0
- package/drizzle.config.mjs +16 -0
- package/next.config.mjs +18 -0
- package/package.json +130 -0
- package/scripts/clean-repo.mjs +20 -0
- package/scripts/dev-all.mjs +46 -0
- package/scripts/i18n-parity.mjs +57 -0
- package/scripts/mcp-server.mjs +100 -0
- package/scripts/postbuild.mjs +11 -0
- package/scripts/publish-public.mjs +116 -0
- package/scripts/start-all.mjs +45 -0
- package/scripts/trim-next.mjs +23 -0
- package/scripts/vps-install.sh +39 -0
- package/skills/CONTRIBUTING.md +122 -0
- package/skills/COVERAGE.md +129 -0
- package/skills/INDEX.json +3443 -0
- package/skills/README.md +57 -0
- package/skills/design/animation-motion/SKILL.md +60 -0
- package/skills/design/color-and-typography/SKILL.md +60 -0
- package/skills/design/css-techniques/SKILL.md +58 -0
- package/skills/design/design-systems/SKILL.md +60 -0
- package/skills/design/gradients/SKILL.md +59 -0
- package/skills/design/graphic-design-basics/SKILL.md +55 -0
- package/skills/design/microinteractions/SKILL.md +58 -0
- package/skills/design/responsive-layout/SKILL.md +59 -0
- package/skills/design/ui-ux-principles/SKILL.md +58 -0
- package/skills/engineering/architecture/api-design-rest-graphql/SKILL.md +67 -0
- package/skills/engineering/architecture/caching-strategies/SKILL.md +59 -0
- package/skills/engineering/architecture/data-modeling/SKILL.md +64 -0
- package/skills/engineering/architecture/message-queues-async/SKILL.md +58 -0
- package/skills/engineering/architecture/scalability-reliability/SKILL.md +62 -0
- package/skills/engineering/architecture/software-architecture-patterns/SKILL.md +56 -0
- package/skills/engineering/architecture/system-design-fundamentals/SKILL.md +56 -0
- package/skills/engineering/backend/auth-and-authorization/SKILL.md +62 -0
- package/skills/engineering/backend/backend-fundamentals/SKILL.md +65 -0
- package/skills/engineering/backend/observability-logging/SKILL.md +60 -0
- package/skills/engineering/frontend/accessibility-wcag/SKILL.md +57 -0
- package/skills/engineering/frontend/frontend-architecture/SKILL.md +65 -0
- package/skills/engineering/frontend/rendering-strategies-ssr-csr/SKILL.md +60 -0
- package/skills/engineering/frontend/state-management/SKILL.md +69 -0
- package/skills/engineering/performance/backend-performance/SKILL.md +69 -0
- package/skills/engineering/performance/database-query-optimization/SKILL.md +64 -0
- package/skills/engineering/performance/profiling-and-benchmarking/SKILL.md +60 -0
- package/skills/engineering/performance/web-performance-core-vitals/SKILL.md +72 -0
- package/skills/engineering/practices/clean-code/SKILL.md +61 -0
- package/skills/engineering/practices/code-optimization/SKILL.md +60 -0
- package/skills/engineering/practices/code-review-practices/SKILL.md +58 -0
- package/skills/engineering/practices/git-workflow/SKILL.md +62 -0
- package/skills/engineering/practices/refactoring/SKILL.md +58 -0
- package/skills/engineering/security/appsec-fundamentals/SKILL.md +70 -0
- package/skills/engineering/security/dependency-supply-chain/SKILL.md +77 -0
- package/skills/engineering/security/owasp-asvs/SKILL.md +54 -0
- package/skills/engineering/security/owasp-top-10/SKILL.md +63 -0
- package/skills/engineering/security/secrets-management/SKILL.md +58 -0
- package/skills/engineering/security/secure-auth-sessions/SKILL.md +56 -0
- package/skills/engineering/testing/tdd-and-coverage/SKILL.md +62 -0
- package/skills/engineering/testing/testing-strategy-pyramid/SKILL.md +56 -0
- package/skills/engineering/testing/unit-integration-e2e/SKILL.md +75 -0
- package/skills/languages/c/SKILL.md +74 -0
- package/skills/languages/clojure/SKILL.md +73 -0
- package/skills/languages/cpp/SKILL.md +75 -0
- package/skills/languages/csharp/SKILL.md +75 -0
- package/skills/languages/dart/SKILL.md +82 -0
- package/skills/languages/elixir/SKILL.md +74 -0
- package/skills/languages/erlang/SKILL.md +76 -0
- package/skills/languages/go/SKILL.md +83 -0
- package/skills/languages/haskell/SKILL.md +70 -0
- package/skills/languages/java/SKILL.md +71 -0
- package/skills/languages/javascript/SKILL.md +62 -0
- package/skills/languages/kotlin/SKILL.md +68 -0
- package/skills/languages/lua/SKILL.md +79 -0
- package/skills/languages/objectivec/SKILL.md +83 -0
- package/skills/languages/php/SKILL.md +74 -0
- package/skills/languages/python/SKILL.md +68 -0
- package/skills/languages/r/SKILL.md +70 -0
- package/skills/languages/ruby/SKILL.md +67 -0
- package/skills/languages/rust/SKILL.md +72 -0
- package/skills/languages/scala/SKILL.md +73 -0
- package/skills/languages/swift/SKILL.md +73 -0
- package/skills/languages/typescript/SKILL.md +69 -0
- package/skills/meta/authoring-agent-skills/SKILL.md +73 -0
- package/skills/meta/progressive-disclosure/SKILL.md +65 -0
- package/skills/meta/skill-frontmatter-spec/SKILL.md +65 -0
- package/skills/process/adr-technical-decisions/SKILL.md +59 -0
- package/skills/process/app-planning/SKILL.md +63 -0
- package/skills/process/architecture-before-code/SKILL.md +52 -0
- package/skills/process/breaking-work-into-sprints/SKILL.md +53 -0
- package/skills/process/idea-to-product/SKILL.md +50 -0
- package/skills/process/mocks-and-screen-flows/SKILL.md +52 -0
- package/skills/process/prioritization-moscow-rice/SKILL.md +64 -0
- package/skills/process/problem-framing/SKILL.md +51 -0
- package/skills/process/product-discovery/SKILL.md +53 -0
- package/skills/process/readme-generation/SKILL.md +90 -0
- package/skills/process/requirements-to-specs/SKILL.md +53 -0
- package/skills/process/research-official-docs/SKILL.md +58 -0
- package/skills/process/review-code-perf-security/SKILL.md +65 -0
- package/skills/process/security-by-design/SKILL.md +68 -0
- package/skills/process/specs-to-issues/SKILL.md +53 -0
- package/skills/process/testing-before-done/SKILL.md +61 -0
- package/skills/process/validating-ux-navigation/SKILL.md +63 -0
- package/skills/references/ai-attachments-ui/SKILL.md +66 -0
- package/skills/references/ai-in-browser-webllm/SKILL.md +74 -0
- package/skills/references/ai-tool-ui-patterns/SKILL.md +63 -0
- package/skills/references/component-patterns-gallery/SKILL.md +62 -0
- package/skills/references/gradient-resources/SKILL.md +66 -0
- package/skills/references/react-component-libraries/SKILL.md +61 -0
- package/skills/references/saas-landing-patterns/SKILL.md +67 -0
- package/skills/references/shadcn-tailwind-theming/SKILL.md +74 -0
- package/skills/references/vercel-ai-sdk-elements/SKILL.md +66 -0
- package/skills/references/web-animation-codrops/SKILL.md +68 -0
- package/skills/stacks/aiml/jupyter/SKILL.md +68 -0
- package/skills/stacks/aiml/keras/SKILL.md +77 -0
- package/skills/stacks/aiml/numpy/SKILL.md +69 -0
- package/skills/stacks/aiml/pandas/SKILL.md +72 -0
- package/skills/stacks/aiml/pytorch/SKILL.md +77 -0
- package/skills/stacks/aiml/scikit-learn/SKILL.md +74 -0
- package/skills/stacks/aiml/tensorflow/SKILL.md +79 -0
- package/skills/stacks/auth/auth0/SKILL.md +63 -0
- package/skills/stacks/auth/authjs/SKILL.md +69 -0
- package/skills/stacks/auth/clerk/SKILL.md +72 -0
- package/skills/stacks/auth/keycloak/SKILL.md +63 -0
- package/skills/stacks/auth/lucia/SKILL.md +56 -0
- package/skills/stacks/auth/passport/SKILL.md +70 -0
- package/skills/stacks/auth/supabase-auth/SKILL.md +66 -0
- package/skills/stacks/baas/amplify/SKILL.md +71 -0
- package/skills/stacks/baas/appwrite/SKILL.md +79 -0
- package/skills/stacks/baas/firebase/SKILL.md +73 -0
- package/skills/stacks/baas/heroku/SKILL.md +71 -0
- package/skills/stacks/backend/actix/SKILL.md +77 -0
- package/skills/stacks/backend/adonisjs/SKILL.md +65 -0
- package/skills/stacks/backend/aspnet-core/SKILL.md +75 -0
- package/skills/stacks/backend/codeigniter/SKILL.md +76 -0
- package/skills/stacks/backend/django/SKILL.md +62 -0
- package/skills/stacks/backend/express/SKILL.md +65 -0
- package/skills/stacks/backend/fastapi/SKILL.md +64 -0
- package/skills/stacks/backend/fastify/SKILL.md +64 -0
- package/skills/stacks/backend/fiber/SKILL.md +68 -0
- package/skills/stacks/backend/flask/SKILL.md +71 -0
- package/skills/stacks/backend/gin/SKILL.md +68 -0
- package/skills/stacks/backend/graphql/SKILL.md +70 -0
- package/skills/stacks/backend/hono/SKILL.md +64 -0
- package/skills/stacks/backend/koa/SKILL.md +63 -0
- package/skills/stacks/backend/laravel/SKILL.md +73 -0
- package/skills/stacks/backend/nestjs/SKILL.md +70 -0
- package/skills/stacks/backend/nginx/SKILL.md +77 -0
- package/skills/stacks/backend/phoenix/SKILL.md +68 -0
- package/skills/stacks/backend/rails/SKILL.md +67 -0
- package/skills/stacks/backend/spring/SKILL.md +70 -0
- package/skills/stacks/backend/spring-boot/SKILL.md +70 -0
- package/skills/stacks/backend/symfony/SKILL.md +77 -0
- package/skills/stacks/container/containerd/SKILL.md +75 -0
- package/skills/stacks/container/docker/SKILL.md +90 -0
- package/skills/stacks/container/podman/SKILL.md +93 -0
- package/skills/stacks/database/cassandra/SKILL.md +74 -0
- package/skills/stacks/database/cockroachdb/SKILL.md +69 -0
- package/skills/stacks/database/dynamodb/SKILL.md +62 -0
- package/skills/stacks/database/mariadb/SKILL.md +71 -0
- package/skills/stacks/database/mongodb/SKILL.md +71 -0
- package/skills/stacks/database/mysql/SKILL.md +72 -0
- package/skills/stacks/database/neon/SKILL.md +68 -0
- package/skills/stacks/database/planetscale/SKILL.md +70 -0
- package/skills/stacks/database/postgresql/SKILL.md +81 -0
- package/skills/stacks/database/redis/SKILL.md +78 -0
- package/skills/stacks/database/sqlite/SKILL.md +70 -0
- package/skills/stacks/database/supabase/SKILL.md +79 -0
- package/skills/stacks/dataviz/chart-js/SKILL.md +72 -0
- package/skills/stacks/dataviz/d3/SKILL.md +77 -0
- package/skills/stacks/dataviz/grafana/SKILL.md +69 -0
- package/skills/stacks/dataviz/plotly/SKILL.md +71 -0
- package/skills/stacks/frontend/alpine/SKILL.md +75 -0
- package/skills/stacks/frontend/angular/SKILL.md +75 -0
- package/skills/stacks/frontend/backbone/SKILL.md +82 -0
- package/skills/stacks/frontend/ember/SKILL.md +85 -0
- package/skills/stacks/frontend/htmx/SKILL.md +73 -0
- package/skills/stacks/frontend/lit/SKILL.md +76 -0
- package/skills/stacks/frontend/preact/SKILL.md +74 -0
- package/skills/stacks/frontend/qwik/SKILL.md +65 -0
- package/skills/stacks/frontend/react/SKILL.md +77 -0
- package/skills/stacks/frontend/solidjs/SKILL.md +75 -0
- package/skills/stacks/frontend/svelte/SKILL.md +70 -0
- package/skills/stacks/frontend/vue/SKILL.md +69 -0
- package/skills/stacks/infra/ansible/SKILL.md +76 -0
- package/skills/stacks/infra/aws/SKILL.md +66 -0
- package/skills/stacks/infra/azure/SKILL.md +72 -0
- package/skills/stacks/infra/circleci/SKILL.md +78 -0
- package/skills/stacks/infra/cloudflare/SKILL.md +65 -0
- package/skills/stacks/infra/fly-io/SKILL.md +63 -0
- package/skills/stacks/infra/gcp/SKILL.md +66 -0
- package/skills/stacks/infra/jenkins/SKILL.md +73 -0
- package/skills/stacks/infra/kubernetes/SKILL.md +64 -0
- package/skills/stacks/infra/netlify/SKILL.md +60 -0
- package/skills/stacks/infra/railway/SKILL.md +63 -0
- package/skills/stacks/infra/tailscale/SKILL.md +65 -0
- package/skills/stacks/infra/terraform/SKILL.md +75 -0
- package/skills/stacks/infra/vagrant/SKILL.md +70 -0
- package/skills/stacks/infra/vercel/SKILL.md +60 -0
- package/skills/stacks/meta/astro/SKILL.md +64 -0
- package/skills/stacks/meta/docusaurus/SKILL.md +71 -0
- package/skills/stacks/meta/eleventy/SKILL.md +69 -0
- package/skills/stacks/meta/gatsby/SKILL.md +63 -0
- package/skills/stacks/meta/hugo/SKILL.md +73 -0
- package/skills/stacks/meta/jekyll/SKILL.md +70 -0
- package/skills/stacks/meta/nextjs/SKILL.md +62 -0
- package/skills/stacks/meta/nuxt/SKILL.md +66 -0
- package/skills/stacks/meta/remix/SKILL.md +67 -0
- package/skills/stacks/meta/sveltekit/SKILL.md +70 -0
- package/skills/stacks/meta/vite/SKILL.md +63 -0
- package/skills/stacks/mobile/android/SKILL.md +77 -0
- package/skills/stacks/mobile/flutter/SKILL.md +77 -0
- package/skills/stacks/mobile/ionic/SKILL.md +72 -0
- package/skills/stacks/mobile/nativescript/SKILL.md +71 -0
- package/skills/stacks/mobile/react-native/SKILL.md +75 -0
- package/skills/stacks/mobile/xamarin/SKILL.md +73 -0
- package/skills/stacks/orm/diesel/SKILL.md +72 -0
- package/skills/stacks/orm/django-orm/SKILL.md +58 -0
- package/skills/stacks/orm/drizzle/SKILL.md +67 -0
- package/skills/stacks/orm/gorm/SKILL.md +73 -0
- package/skills/stacks/orm/knex/SKILL.md +64 -0
- package/skills/stacks/orm/mongoose/SKILL.md +64 -0
- package/skills/stacks/orm/prisma/SKILL.md +64 -0
- package/skills/stacks/orm/sequelize/SKILL.md +65 -0
- package/skills/stacks/orm/sqlalchemy/SKILL.md +71 -0
- package/skills/stacks/orm/typeorm/SKILL.md +70 -0
- package/skills/stacks/queue/bullmq/SKILL.md +69 -0
- package/skills/stacks/queue/celery/SKILL.md +68 -0
- package/skills/stacks/queue/kafka/SKILL.md +66 -0
- package/skills/stacks/queue/nats/SKILL.md +66 -0
- package/skills/stacks/queue/rabbitmq/SKILL.md +64 -0
- package/skills/stacks/queue/redis/SKILL.md +66 -0
- package/skills/stacks/runtime/beam/SKILL.md +72 -0
- package/skills/stacks/runtime/bun/SKILL.md +80 -0
- package/skills/stacks/runtime/deno/SKILL.md +74 -0
- package/skills/stacks/runtime/dotnet/SKILL.md +64 -0
- package/skills/stacks/runtime/jvm/SKILL.md +66 -0
- package/skills/stacks/runtime/node/SKILL.md +70 -0
- package/skills/stacks/runtime/pypy/SKILL.md +69 -0
- package/skills/stacks/runtime/python3/SKILL.md +70 -0
- package/skills/stacks/styling/bootstrap/SKILL.md +74 -0
- package/skills/stacks/styling/bulma/SKILL.md +80 -0
- package/skills/stacks/styling/chakra-ui/SKILL.md +61 -0
- package/skills/stacks/styling/css-modules/SKILL.md +54 -0
- package/skills/stacks/styling/mui/SKILL.md +60 -0
- package/skills/stacks/styling/sass/SKILL.md +63 -0
- package/skills/stacks/styling/shadcn-ui/SKILL.md +58 -0
- package/skills/stacks/styling/styled-components/SKILL.md +62 -0
- package/skills/stacks/styling/tailwind/SKILL.md +59 -0
- package/skills/stacks/styling/unocss/SKILL.md +64 -0
- package/skills/stacks/styling/vanilla-extract/SKILL.md +64 -0
- package/skills/stacks/styling/vuetify/SKILL.md +89 -0
- package/skills/stacks/testing/cypress/SKILL.md +68 -0
- package/skills/stacks/testing/jasmine/SKILL.md +67 -0
- package/skills/stacks/testing/jest/SKILL.md +67 -0
- package/skills/stacks/testing/mocha/SKILL.md +71 -0
- package/skills/stacks/testing/playwright/SKILL.md +68 -0
- package/skills/stacks/testing/puppeteer/SKILL.md +70 -0
- package/skills/stacks/testing/selenium/SKILL.md +70 -0
- package/skills/stacks/testing/vitest/SKILL.md +68 -0
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ai-attachments-ui
|
|
3
|
+
description: Attachment UI patterns for AI chat using AI Elements' Attachments component; consult when showing files/sources in prompts and messages.
|
|
4
|
+
domain: reference
|
|
5
|
+
category: reference
|
|
6
|
+
tags: [ai-elements, attachments, file-upload, ai-ui, shadcn, react]
|
|
7
|
+
official_sources:
|
|
8
|
+
- https://elements.ai-sdk.dev/components/attachments
|
|
9
|
+
- https://github.com/vercel/ai-elements
|
|
10
|
+
verified: 2026-06-16
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# AI Attachments UI
|
|
14
|
+
|
|
15
|
+
## Overview
|
|
16
|
+
The Attachments component from Vercel's AI Elements provides a unified way to display file attachments and source documents in AI chat UIs, with grid, inline, and list layout variants. It is a set of composable sub-components that render previews, file info, and a remove control, and it accepts AI SDK `FileUIPart` / `SourceDocumentUIPart` data. Read this when building file-upload affordances in a prompt input or showing attached/source files inside messages.
|
|
17
|
+
|
|
18
|
+
## Official sources
|
|
19
|
+
- Docs: https://elements.ai-sdk.dev/components/attachments
|
|
20
|
+
- Repo: https://github.com/vercel/ai-elements
|
|
21
|
+
- Setup: https://elements.ai-sdk.dev/docs/setup
|
|
22
|
+
|
|
23
|
+
## Install / setup
|
|
24
|
+
```bash
|
|
25
|
+
npx ai-elements@latest add attachments
|
|
26
|
+
```
|
|
27
|
+
Requires shadcn/ui initialized and Tailwind CSS Variables mode (per AI Elements setup).
|
|
28
|
+
|
|
29
|
+
## Core concepts
|
|
30
|
+
- `<Attachments />` is the container and takes a `variant` of `"grid" | "inline" | "list"` to control layout.
|
|
31
|
+
- `<Attachment />` wraps a single item and accepts `data` (a `FileUIPart` or `SourceDocumentUIPart` with an id) plus an `onRemove` callback.
|
|
32
|
+
- Composable sub-parts: `<AttachmentPreview />` (image/video/icon), `<AttachmentInfo />` (filename + media type), `<AttachmentRemove />` (remove button), `<AttachmentHoverCard />` (hover preview), `<AttachmentEmpty />` (empty state).
|
|
33
|
+
- `AttachmentInfo` exposes `showMediaType`, and `AttachmentRemove` accepts a custom `label` for accessibility.
|
|
34
|
+
- Designed to map directly over AI SDK file/source-document parts, so it pairs naturally with Prompt Input and Message.
|
|
35
|
+
|
|
36
|
+
## Best practices
|
|
37
|
+
- Choose the layout `variant` to match context: `grid` for galleries, `inline` for compact prompt-bar chips, `list` for detailed/source views.
|
|
38
|
+
- Provide an accessible `label` on `AttachmentRemove` so screen-reader users understand the remove action.
|
|
39
|
+
- Render attachments by mapping AI SDK `FileUIPart` data rather than inventing a parallel attachment shape.
|
|
40
|
+
- Use `AttachmentEmpty` to communicate the empty state instead of rendering nothing.
|
|
41
|
+
|
|
42
|
+
## Common pitfalls
|
|
43
|
+
- Passing data without a stable `id` → each attachment's `data` should carry an id so list rendering and removal stay correct.
|
|
44
|
+
- Building custom remove buttons → use `AttachmentRemove` with `onRemove` so behavior and a11y are handled.
|
|
45
|
+
- Forgetting media-type cues → enable `showMediaType` / previews so users can tell files apart at a glance.
|
|
46
|
+
|
|
47
|
+
## Examples
|
|
48
|
+
```tsx
|
|
49
|
+
<Attachments variant="grid">
|
|
50
|
+
{files.map((file) => (
|
|
51
|
+
<Attachment key={file.id} data={file} onRemove={() => remove(file.id)}>
|
|
52
|
+
<AttachmentPreview />
|
|
53
|
+
<AttachmentInfo showMediaType />
|
|
54
|
+
<AttachmentRemove label="Remove attachment" />
|
|
55
|
+
</Attachment>
|
|
56
|
+
))}
|
|
57
|
+
</Attachments>
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## Further reading
|
|
61
|
+
- Prompt Input component: https://elements.ai-sdk.dev/
|
|
62
|
+
- AI SDK docs: https://ai-sdk.dev/
|
|
63
|
+
|
|
64
|
+
## Related skills
|
|
65
|
+
- ../vercel-ai-sdk-elements — the parent AI Elements library
|
|
66
|
+
- ../ai-tool-ui-patterns — rendering tool results in chat
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ai-in-browser-webllm
|
|
3
|
+
description: Run LLMs fully in-browser/locally with WebLLM via WebGPU; consult for client-side inference, offline AI, and OpenAI-style chat without a server.
|
|
4
|
+
domain: reference
|
|
5
|
+
category: reference
|
|
6
|
+
tags: [webllm, llm, webgpu, in-browser, mlc, local-inference]
|
|
7
|
+
official_sources:
|
|
8
|
+
- https://webllm.mlc.ai/docs/
|
|
9
|
+
- https://github.com/mlc-ai/web-llm
|
|
10
|
+
verified: 2026-06-16
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# WebLLM — In-Browser LLM Inference
|
|
14
|
+
|
|
15
|
+
## Overview
|
|
16
|
+
WebLLM is a high-performance, in-browser LLM inference engine from the MLC project. It runs open models (Llama 3, Phi 3, Gemma, Mistral, Qwen, and more) entirely on the client using WebGPU for hardware acceleration, with no server-side processing. It exposes an OpenAI-compatible API (streaming, JSON mode), making it useful for privacy-preserving, offline-capable, or zero-backend AI features. Read this when you need client-side inference in a web app.
|
|
17
|
+
|
|
18
|
+
## Official sources
|
|
19
|
+
- Docs: https://webllm.mlc.ai/docs/
|
|
20
|
+
- Repo: https://github.com/mlc-ai/web-llm
|
|
21
|
+
- Getting started: https://webllm.mlc.ai/docs/user/get_started.html
|
|
22
|
+
|
|
23
|
+
## Install / setup
|
|
24
|
+
```bash
|
|
25
|
+
npm install @mlc-ai/web-llm
|
|
26
|
+
```
|
|
27
|
+
yarn and pnpm equivalents are documented:
|
|
28
|
+
```bash
|
|
29
|
+
yarn add @mlc-ai/web-llm
|
|
30
|
+
pnpm install @mlc-ai/web-llm
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Core concepts
|
|
34
|
+
- `MLCEngine` is the core interface for model loading, chat completions, and embeddings; create it with the `CreateMLCEngine` factory or `new MLCEngine()` then `engine.reload(model)`.
|
|
35
|
+
- Models load asynchronously; pass an `initProgressCallback` to surface download/compile progress to users (first load can be large).
|
|
36
|
+
- WebGPU is the acceleration backend — runs entirely in-browser with no server support required.
|
|
37
|
+
- OpenAI-compatible chat completion API, including streaming and structured JSON-mode output.
|
|
38
|
+
- Built-in model registry plus support for custom MLC-format models compiled via MLC LLM.
|
|
39
|
+
- Cache backends for model weights: Cache API, IndexedDB, OPFS, and Cross-Origin Storage; optional SRI integrity verification.
|
|
40
|
+
|
|
41
|
+
## Best practices
|
|
42
|
+
- Offload generation to a Web Worker or Service Worker so heavy compute does not block the main UI thread (documented in Advanced Use Cases).
|
|
43
|
+
- Reuse a single loaded engine instance and persist weights in a cache backend to avoid re-downloading on every visit.
|
|
44
|
+
- Always wire `initProgressCallback` so users see progress during the first (potentially large) model download.
|
|
45
|
+
- Pick the smallest model that meets quality needs; in-browser memory and download size are real constraints.
|
|
46
|
+
|
|
47
|
+
## Common pitfalls
|
|
48
|
+
- Assuming it works everywhere → WebGPU support is required; gate the feature and provide a fallback when the browser/device lacks it.
|
|
49
|
+
- Loading the model on the main thread → use a Web Worker / Service Worker to keep the UI responsive.
|
|
50
|
+
- Treating first load as instant → weights must download and compile; cache them and show progress.
|
|
51
|
+
|
|
52
|
+
## Examples
|
|
53
|
+
```javascript
|
|
54
|
+
import { CreateMLCEngine } from "@mlc-ai/web-llm";
|
|
55
|
+
|
|
56
|
+
const engine = await CreateMLCEngine(
|
|
57
|
+
"Llama-3.1-8B-Instruct-q4f32_1-MLC",
|
|
58
|
+
{ initProgressCallback: (p) => console.log(p) }
|
|
59
|
+
);
|
|
60
|
+
|
|
61
|
+
const reply = await engine.chat.completions.create({
|
|
62
|
+
messages: [{ role: "user", content: "Hello!" }],
|
|
63
|
+
});
|
|
64
|
+
console.log(reply.choices[0].message.content);
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Further reading
|
|
68
|
+
- Basic Usage: https://webllm.mlc.ai/docs/user/basic_usage.html
|
|
69
|
+
- API Reference: https://webllm.mlc.ai/docs/user/api_reference.html
|
|
70
|
+
- Advanced Use Cases (Web Worker): https://webllm.mlc.ai/docs/user/advanced_usage.html
|
|
71
|
+
|
|
72
|
+
## Related skills
|
|
73
|
+
- ../vercel-ai-sdk-elements — UI components for AI-native apps
|
|
74
|
+
- ../ai-tool-ui-patterns — rendering tool-call results in chat UIs
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ai-tool-ui-patterns
|
|
3
|
+
description: UI patterns for AI tool-calls and results — turn tool JSON into typed, validated components; consult when rendering tool outputs in chat.
|
|
4
|
+
domain: reference
|
|
5
|
+
category: reference
|
|
6
|
+
tags: [tool-ui, ai-ui, tool-calling, zod, shadcn, assistant-ui]
|
|
7
|
+
official_sources:
|
|
8
|
+
- https://www.tool-ui.com/docs/overview
|
|
9
|
+
- https://github.com/assistant-ui/tool-ui
|
|
10
|
+
verified: 2026-06-16
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# AI Tool UI Patterns
|
|
14
|
+
|
|
15
|
+
## Overview
|
|
16
|
+
When a model calls a tool, most apps dump raw JSON into the conversation. Tool UI (by the assistant-ui project) is an open-source component library where each component turns a specific kind of tool output — a card, table, option list, chart, approval, form, or media card — into real, interactive UI so users can understand and act without leaving the chat. It is JSON-native, typed (Zod schemas), accessible, and built on Tailwind, Radix, and shadcn/ui. Read this when designing how tool-call results render and how users approve or respond to them.
|
|
17
|
+
|
|
18
|
+
## Official sources
|
|
19
|
+
- Docs: https://www.tool-ui.com/docs/overview
|
|
20
|
+
- Repo: https://github.com/assistant-ui/tool-ui
|
|
21
|
+
- Quick start: https://www.tool-ui.com/docs/quick-start
|
|
22
|
+
|
|
23
|
+
## Install / setup
|
|
24
|
+
```bash
|
|
25
|
+
npx shadcn@latest add @tool-ui/link-preview
|
|
26
|
+
```
|
|
27
|
+
Components use the shadcn copy/paste model — they live in your codebase with no dependency lock-in; swap `link-preview` for any component name.
|
|
28
|
+
|
|
29
|
+
## Core concepts
|
|
30
|
+
- Each component maps one kind of tool output to UI (table, chart, option list, approval, form, media card), instead of showing raw JSON.
|
|
31
|
+
- Copy/paste model (like shadcn/ui): components live in your repo, so there is no dependency lock-in.
|
|
32
|
+
- Every component ships a colocated `schema.ts` Zod schema; tool output is validated, rendered when valid, and fails safely when not.
|
|
33
|
+
- A three-part flow: backend tool defines input/output via AI SDK + Zod, the schema validates on server and client, and a frontend `toolkit` maps tool names to components.
|
|
34
|
+
- Built on Tailwind, Radix, and shadcn/ui, so it inherits accessible primitives and your theme.
|
|
35
|
+
|
|
36
|
+
## Best practices
|
|
37
|
+
- Validate tool output against the component's Zod schema on both server and client before rendering.
|
|
38
|
+
- Maintain a `toolkit` mapping of backend tool names to frontend components so the runtime can pick the right renderer.
|
|
39
|
+
- Prefer interactive surfaces (approvals, forms) over read-only JSON dumps for actions the user must take.
|
|
40
|
+
- Since components are copied into your repo, version and customize them deliberately rather than expecting upstream updates.
|
|
41
|
+
|
|
42
|
+
## Common pitfalls
|
|
43
|
+
- Rendering unvalidated tool JSON → parse against the Zod schema and fail safely when it does not match.
|
|
44
|
+
- Hard-coding which component renders a tool → use the `toolkit` name→component map so new tools are easy to wire.
|
|
45
|
+
- Treating it like an installed npm package → it is copy/paste; you own the code and its updates.
|
|
46
|
+
|
|
47
|
+
## Examples
|
|
48
|
+
```ts
|
|
49
|
+
// Register tools -> components so the runtime knows what to render.
|
|
50
|
+
const toolkit = {
|
|
51
|
+
getMetrics: MetricsTable,
|
|
52
|
+
deployPlan: ApprovalCard,
|
|
53
|
+
linkPreview: LinkPreview,
|
|
54
|
+
};
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## Further reading
|
|
58
|
+
- Quick start: https://www.tool-ui.com/docs/quick-start
|
|
59
|
+
- assistant-ui project: https://github.com/assistant-ui
|
|
60
|
+
|
|
61
|
+
## Related skills
|
|
62
|
+
- ../vercel-ai-sdk-elements — AI Elements (includes a Tool component)
|
|
63
|
+
- ../ai-attachments-ui — attachment UI patterns
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: component-patterns-gallery
|
|
3
|
+
description: Canonical UI component anatomy, naming, and patterns; consult to name, structure, and document components consistently with real design systems.
|
|
4
|
+
domain: reference
|
|
5
|
+
category: reference
|
|
6
|
+
tags: [components, design-system, ui-patterns, anatomy, accessibility]
|
|
7
|
+
official_sources:
|
|
8
|
+
- https://component.gallery/
|
|
9
|
+
- https://alignui.com/
|
|
10
|
+
verified: 2026-06-16
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Component Patterns & Anatomy Gallery
|
|
14
|
+
|
|
15
|
+
## Overview
|
|
16
|
+
When you build a UI component you face two recurring questions: what is this thing actually called, and what parts does it have. The Component Gallery (component.gallery) answers the first by cataloging interface components from real-world design systems — each entry lists the component, its alternate names, a description, and links to how many systems implement it. AlignUI (alignui.com) answers the second as a production design system with React + Tailwind components and a synced Figma kit. Consult this skill before naming or structuring a component so your vocabulary and anatomy match established conventions instead of ad-hoc invention.
|
|
17
|
+
|
|
18
|
+
## Official sources
|
|
19
|
+
- The Component Gallery: https://component.gallery/
|
|
20
|
+
- Components index: https://component.gallery/components/
|
|
21
|
+
- Design systems index: https://component.gallery/design-systems/
|
|
22
|
+
- AlignUI: https://alignui.com/
|
|
23
|
+
|
|
24
|
+
## Core concepts
|
|
25
|
+
- **Component anatomy.** Most components decompose into named parts (e.g. a card has container, media, header, body, actions; a dialog has overlay, container, title, description, close, footer). Naming the parts is the foundation of an API and of accessible markup.
|
|
26
|
+
- **Canonical naming and aliases.** The same pattern goes by different names across systems (Accordion vs. Disclosure vs. Expander; Snackbar vs. Toast; Combobox vs. Autocomplete). The Component Gallery surfaces these aliases so you pick a recognizable name.
|
|
27
|
+
- **Compare-across-systems.** For any component you can see how multiple mature design systems solved the same interaction/layout problem, which exposes the variants, props, and states worth supporting.
|
|
28
|
+
- **States and variants.** Components are defined as much by their states (default, hover, focus, active, disabled, loading, error, selected) and variants (size, emphasis, intent) as by their static look.
|
|
29
|
+
- **Design-to-code parity.** Systems like AlignUI keep a Figma kit and a coded library in sync; treat the design tokens and component contracts as a single source of truth across both.
|
|
30
|
+
|
|
31
|
+
## Best practices
|
|
32
|
+
- Use the canonical component name (and document its aliases) so designers, engineers, and future agents share one vocabulary — look it up in The Component Gallery rather than coining a new term.
|
|
33
|
+
- Model the component's full state matrix (hover/focus/active/disabled/loading/error) up front; missing states are where UIs feel unfinished.
|
|
34
|
+
- Build interactive components on accessible primitives (correct roles, keyboard support, focus management) — study how reference systems handle ARIA for the pattern before rolling your own.
|
|
35
|
+
- Expose variation through a small, named prop API (size, variant/intent, emphasis) rather than many one-off boolean flags.
|
|
36
|
+
- Keep design tokens (color, spacing, radius, typography) as the shared layer so Figma and code stay in parity.
|
|
37
|
+
|
|
38
|
+
## Common pitfalls
|
|
39
|
+
- Inventing a bespoke name for a well-known pattern → confuses collaborators and search; reuse the established name and list aliases.
|
|
40
|
+
- Shipping only the happy-path visual and forgetting focus/disabled/loading/error states → incomplete, inaccessible component.
|
|
41
|
+
- Cloning a screenshot's pixels but skipping keyboard and ARIA semantics → looks right, fails real use; reference how design systems implement the role and interactions.
|
|
42
|
+
|
|
43
|
+
## Examples
|
|
44
|
+
```text
|
|
45
|
+
Dialog (aliases: Modal)
|
|
46
|
+
- Overlay (scrim, click-to-dismiss optional)
|
|
47
|
+
- Container (focus-trapped, role="dialog", aria-modal="true")
|
|
48
|
+
- Title (aria-labelledby target)
|
|
49
|
+
- Description (aria-describedby target)
|
|
50
|
+
- Content
|
|
51
|
+
- Footer (primary + secondary actions)
|
|
52
|
+
- Close button (aria-label)
|
|
53
|
+
States: open / closed; initial focus + focus return on close
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## Further reading
|
|
57
|
+
- component.gallery component pages for per-pattern anatomy, aliases, and cross-system examples.
|
|
58
|
+
- AlignUI docs for a concrete React + Tailwind implementation of these patterns.
|
|
59
|
+
|
|
60
|
+
## Related skills
|
|
61
|
+
- ../shadcn-tailwind-theming — implement these patterns as themeable shadcn/Tailwind components.
|
|
62
|
+
- ../react-component-libraries — prebuilt implementations of common components.
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gradient-resources
|
|
3
|
+
description: CSS gradient functions plus generators for static and animated/shader gradients; consult when crafting backgrounds, accents, or hero visuals.
|
|
4
|
+
domain: reference
|
|
5
|
+
category: reference
|
|
6
|
+
tags: [gradient, css, background, webgl, color, design]
|
|
7
|
+
official_sources:
|
|
8
|
+
- https://developer.mozilla.org/en-US/docs/Web/CSS/gradient
|
|
9
|
+
- https://craft-gradients.artcreativecode.com/
|
|
10
|
+
verified: 2026-06-16
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Gradient Resources & CSS Techniques
|
|
14
|
+
|
|
15
|
+
## Overview
|
|
16
|
+
Gradients are the workhorse of modern backgrounds, buttons, and hero visuals. The MDN `<gradient>` reference (developer.mozilla.org) is the canonical, standards-aligned source for the CSS gradient functions and their syntax, color stops, and color-space interpolation. For richer or animated looks, Craft Gradients (craft-gradients.artcreativecode.com) is an interactive WebGL/shader gradient generator with presets you can record, embed, and export. Read this skill when you need correct CSS gradient syntax or a generator for static and animated gradient visuals.
|
|
17
|
+
|
|
18
|
+
## Official sources
|
|
19
|
+
- MDN CSS `<gradient>`: https://developer.mozilla.org/en-US/docs/Web/CSS/gradient
|
|
20
|
+
- MDN `linear-gradient()`: https://developer.mozilla.org/en-US/docs/Web/CSS/gradient/linear-gradient
|
|
21
|
+
- Craft Gradients (WebGL generator): https://craft-gradients.artcreativecode.com/
|
|
22
|
+
|
|
23
|
+
## Core concepts
|
|
24
|
+
- **`<gradient>` is an `<image>`.** Per MDN, a gradient is a CSS `<image>` with no intrinsic size; it scales to its container and is used wherever an image is valid (e.g. `background-image`).
|
|
25
|
+
- **Three base functions + repeating variants.** `linear-gradient()` (along a line/angle), `radial-gradient()` (from a center outward), and `conic-gradient()` (around a center) — each with a `repeating-` counterpart for banded/striped patterns.
|
|
26
|
+
- **Color stops and positions.** Stops define where colors sit (`red 0%, blue 100%`); hard stops (two stops at the same position) create crisp bands; hints control the midpoint of a transition.
|
|
27
|
+
- **Color-space interpolation.** Gradients interpolate in a chosen color space (sRGB, oklab, lch, display-p3, etc.) and use alpha-premultiplied math to avoid muddy grays when fading to transparent — choosing `in oklch`/`in oklab` often yields more even, vivid transitions than sRGB.
|
|
28
|
+
- **Static CSS vs. animated WebGL.** CSS gradients are static (animatable only indirectly, e.g. moving `background-position`); shader/WebGL generators like Craft Gradients produce genuinely animated, organic gradients exported as embeds or recordings.
|
|
29
|
+
|
|
30
|
+
## Best practices
|
|
31
|
+
- Layer multiple gradients in one `background` (comma-separated) to build depth — e.g. a radial highlight over a linear base — instead of stacking extra DOM elements.
|
|
32
|
+
- Choose a perceptual color space (`in oklch` / `in oklab`) for smoother, more uniform transitions, and use alpha-aware fades to avoid the gray-band artifact when fading to transparent. (See MDN interpolation notes.)
|
|
33
|
+
- For "animated" CSS gradients, animate `background-position` on an oversized `background-size` rather than re-rendering colors, keeping it compositor-friendly.
|
|
34
|
+
- Use hard color stops to create flat color blocks, stripes, or geometric backgrounds from a single gradient declaration.
|
|
35
|
+
- Reach for a WebGL generator (Craft Gradients) only when you need living, organic motion; export and lazy-load it, and provide a static CSS fallback.
|
|
36
|
+
|
|
37
|
+
## Common pitfalls
|
|
38
|
+
- Fading a color to fully transparent and getting an unexpected gray band → the default sRGB transparent is `rgb(0 0 0 / 0)`; fade to the same color at 0 alpha (e.g. `rgba(255,0,0,0)`) or rely on the alpha-premultiplied/oklab interpolation MDN describes.
|
|
39
|
+
- Expecting CSS gradients to animate their colors directly → CSS can't tween gradient color stops; animate `background-position` or use a shader/JS approach.
|
|
40
|
+
- Heavy full-screen WebGL gradient on every page load → costs performance and battery; prefer CSS where it suffices and lazy-load shader backgrounds.
|
|
41
|
+
|
|
42
|
+
## Examples
|
|
43
|
+
```css
|
|
44
|
+
/* Layered static gradient with a perceptual color space */
|
|
45
|
+
.hero {
|
|
46
|
+
background:
|
|
47
|
+
radial-gradient(60% 60% at 50% 0%, rgba(99,102,241,.35), transparent 70%),
|
|
48
|
+
linear-gradient(in oklch to bottom, #0f172a, #1e293b);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/* "Animated" gradient via background-position (compositor-friendly) */
|
|
52
|
+
.animated {
|
|
53
|
+
background: linear-gradient(120deg, #6366f1, #ec4899, #6366f1);
|
|
54
|
+
background-size: 200% 200%;
|
|
55
|
+
animation: pan 8s ease-in-out infinite;
|
|
56
|
+
}
|
|
57
|
+
@keyframes pan { 0%,100% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } }
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## Further reading
|
|
61
|
+
- MDN pages for `radial-gradient()` and `conic-gradient()` for their full parameter syntax.
|
|
62
|
+
- Craft Gradients to design, record, and embed animated shader gradients.
|
|
63
|
+
|
|
64
|
+
## Related skills
|
|
65
|
+
- ../shadcn-tailwind-theming — apply gradients as themed backgrounds/accents via CSS variables.
|
|
66
|
+
- ../web-animation-codrops — combine gradients with motion for hero effects.
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: react-component-libraries
|
|
3
|
+
description: Curated React component sources for modern animated UI; consult to find prebuilt components, blocks, and effects instead of building from scratch.
|
|
4
|
+
domain: reference
|
|
5
|
+
category: reference
|
|
6
|
+
tags: [react, components, tailwind, animation, framer-motion, shadcn]
|
|
7
|
+
official_sources:
|
|
8
|
+
- https://magicui.design/
|
|
9
|
+
- https://reactbits.dev/
|
|
10
|
+
- https://21st.dev/
|
|
11
|
+
verified: 2026-06-16
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# React Component Libraries (Modern UI)
|
|
15
|
+
|
|
16
|
+
## Overview
|
|
17
|
+
For modern React UIs you rarely need to hand-build hero sections, animated text, marquees, or backgrounds — several curated sources provide them ready to drop in. Magic UI (magicui.design) offers 150+ free, open-source animated components built with React, TypeScript, Tailwind, and Motion, positioned as a companion to shadcn/ui. React Bits (reactbits.dev) is an open collection of 100+ animated, interactive components (text, backgrounds, effects) available in JS/TS and CSS/Tailwind variants. 21st.dev is a community registry of shadcn/Tailwind components and marketing blocks, with an AI "Magic" MCP that generates them inside IDEs. Read this skill to pick the right source for animated or prebuilt UI.
|
|
18
|
+
|
|
19
|
+
## Official sources
|
|
20
|
+
- Magic UI: https://magicui.design/
|
|
21
|
+
- React Bits: https://reactbits.dev/
|
|
22
|
+
- 21st.dev: https://21st.dev/
|
|
23
|
+
- 21st Magic MCP (repo): https://github.com/21st-dev/magic-mcp
|
|
24
|
+
|
|
25
|
+
## Core concepts
|
|
26
|
+
- **Distribution by copy-paste, not just npm.** These sources favor copying component source into your project (often via a CLI like shadcn or jsrepo) so you own and can edit the code, mirroring the shadcn model.
|
|
27
|
+
- **Animated/effect components.** Magic UI and React Bits specialize in motion: animated text, shimmer/marquee/border effects, particle and gradient backgrounds, built on Motion/Framer Motion or plain CSS.
|
|
28
|
+
- **Variant flavors.** React Bits ships each component in JS or TS and CSS or Tailwind, so you match your stack without rewrites.
|
|
29
|
+
- **Blocks vs. components.** 21st.dev separates page-level blocks (heroes, pricing, testimonials, CTAs) from atomic UI components (buttons, inputs, modals) — blocks accelerate landing pages, components fill gaps in a design system.
|
|
30
|
+
- **AI generation via MCP.** 21st.dev's Magic MCP server lets IDE agents (Cursor, Windsurf, VS Code/Cline, Claude) generate and write components from natural-language prompts, drawing on the 21st.dev library.
|
|
31
|
+
|
|
32
|
+
## Best practices
|
|
33
|
+
- Prefer these as a companion to shadcn/ui (Magic UI explicitly positions itself this way): use shadcn for primitives and these libraries for animated flourishes and marketing blocks.
|
|
34
|
+
- Install via the official CLI/registry path (shadcn or jsrepo where offered) so dependencies and file placement are handled correctly, then customize the copied source.
|
|
35
|
+
- Match the component flavor to your stack (TS + Tailwind vs. JS + CSS) at copy time to avoid post-hoc conversion — React Bits offers all four combinations.
|
|
36
|
+
- Treat copied components as your code: review, prune unused props, and align them to your theme tokens rather than leaving them as opaque imports.
|
|
37
|
+
- Gate heavy animated backgrounds/effects behind `prefers-reduced-motion` and lazy-loading to protect performance and accessibility.
|
|
38
|
+
|
|
39
|
+
## Common pitfalls
|
|
40
|
+
- Assuming everything is an npm package → many components are copy-paste/CLI-installed source you own; check the source's install method.
|
|
41
|
+
- Layering many simultaneous animated effects (particles + marquee + gradient + parallax) → visual noise and jank; use motion sparingly and purposefully.
|
|
42
|
+
- Pasting components without theming them → they clash with your design tokens; remap colors/spacing to your variables.
|
|
43
|
+
- Pulling a component without checking its license/attribution requirements → verify the source's license before shipping.
|
|
44
|
+
|
|
45
|
+
## Examples
|
|
46
|
+
```bash
|
|
47
|
+
# Typical install paths (verify the exact command on each source's docs):
|
|
48
|
+
# Magic UI / 21st.dev components often add via the shadcn CLI registry:
|
|
49
|
+
npx shadcn@latest add "<registry-component-url>"
|
|
50
|
+
|
|
51
|
+
# React Bits supports CLI install via shadcn or jsrepo, or plain copy-paste of the JSX.
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Further reading
|
|
55
|
+
- magicui.design and reactbits.dev component galleries for the full catalogs.
|
|
56
|
+
- 21st.dev Magic MCP repo (github.com/21st-dev/magic-mcp) for AI-in-IDE component generation.
|
|
57
|
+
|
|
58
|
+
## Related skills
|
|
59
|
+
- ../shadcn-tailwind-theming — theme these components consistently via CSS variables.
|
|
60
|
+
- ../web-animation-codrops — understand the motion techniques these components implement.
|
|
61
|
+
- ../saas-landing-patterns — assemble blocks into a converting landing page.
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: saas-landing-patterns
|
|
3
|
+
description: Proven SaaS landing-page structure, sections, copy and conversion patterns; consult when building or critiquing a marketing/landing page.
|
|
4
|
+
domain: reference
|
|
5
|
+
category: reference
|
|
6
|
+
tags: [landing-page, saas, conversion, marketing, ux]
|
|
7
|
+
official_sources:
|
|
8
|
+
- https://saaslandingpage.com/
|
|
9
|
+
- https://saaslandingpage.com/templates/
|
|
10
|
+
verified: 2026-06-16
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# SaaS Landing-Page Patterns
|
|
14
|
+
|
|
15
|
+
## Overview
|
|
16
|
+
A SaaS landing page exists to convert a visitor into a signup, trial, or demo. There is a well-worn, repeatable section order that high-performing SaaS sites converge on. SaaS Landing Page (saaslandingpage.com) is a curated gallery of hundreds of real, shipped landing pages from SaaS companies and startups, organized by section, technology, and template, that lets you study what real teams actually do. Read this skill when you need to scaffold, populate, or audit a landing page rather than inventing structure from scratch.
|
|
17
|
+
|
|
18
|
+
## Official sources
|
|
19
|
+
- Gallery: https://saaslandingpage.com/
|
|
20
|
+
- Features-page examples: https://saaslandingpage.com/features/
|
|
21
|
+
- Templates: https://saaslandingpage.com/templates/
|
|
22
|
+
|
|
23
|
+
## Core concepts
|
|
24
|
+
- **Canonical section order.** The dominant pattern is: hero (headline + subhead + primary CTA + product visual) → social proof (logo wall) → problem/value proposition → features/benefits → how-it-works → deeper social proof (testimonials, case studies, metrics) → pricing → FAQ → final CTA → footer. Order may flex, but the hero and a final CTA are non-negotiable bookends.
|
|
25
|
+
- **Hero clarity over cleverness.** The headline must state what the product does and for whom within seconds. A subhead expands the value; one unmistakable primary CTA dominates; a product screenshot, demo loop, or illustration anchors the visual.
|
|
26
|
+
- **Benefits vs. features.** Features are what the product has; benefits are the outcome the user gets. Effective pages lead each feature block with the benefit, then back it with the mechanism.
|
|
27
|
+
- **Social proof as trust currency.** Logo walls, named testimonials, star ratings, customer counts, and quantified results ("saved 8 hrs/week") de-risk the decision and are placed near CTAs and the hero.
|
|
28
|
+
- **One conversion goal per page.** A landing page funnels toward a single primary action (start trial / book demo / sign up). Competing CTAs dilute conversion.
|
|
29
|
+
|
|
30
|
+
## Best practices
|
|
31
|
+
- Repeat the primary CTA at natural decision points (after hero, after features, after pricing, in the footer) so the visitor never has to scroll back up to act. (Pattern observed across the saaslandingpage.com gallery.)
|
|
32
|
+
- Place a logo wall or short testimonial immediately below the hero — early social proof lifts perceived credibility before the user reads features.
|
|
33
|
+
- Make pricing legible: name tiers, show what each includes, highlight the recommended plan, and answer billing objections inline (cancel anytime, no card required).
|
|
34
|
+
- Design mobile-first; a large share of SaaS traffic is mobile, so the hero, CTA, and pricing must work in a single column before desktop refinements.
|
|
35
|
+
- Pair every feature claim with a concrete visual (screenshot, GIF, or annotated UI) rather than abstract iconography alone.
|
|
36
|
+
|
|
37
|
+
## Common pitfalls
|
|
38
|
+
- Vague hero copy ("Reimagine your workflow") that never says what the product is → state the job-to-be-done plainly in the first line.
|
|
39
|
+
- Burying or omitting pricing → a missing or hidden pricing section forces visitors to bounce to find it; show it or explain why ("contact sales") explicitly.
|
|
40
|
+
- Multiple competing CTAs of equal weight (signup + demo + docs + newsletter) → pick one primary action and demote the rest to secondary styling.
|
|
41
|
+
- Wall-of-text feature lists with no visuals or hierarchy → chunk into benefit-led blocks with supporting imagery.
|
|
42
|
+
|
|
43
|
+
## Examples
|
|
44
|
+
```text
|
|
45
|
+
Hero
|
|
46
|
+
H1: <verb-led outcome — what it does, for whom>
|
|
47
|
+
Sub: <one sentence expanding the value>
|
|
48
|
+
[ Start free trial ] (primary) [ Book a demo ] (secondary)
|
|
49
|
+
<product screenshot / looping demo>
|
|
50
|
+
Logo wall: "Trusted by <brands>"
|
|
51
|
+
Value prop / problem→solution
|
|
52
|
+
Features (benefit-led, each with a visual)
|
|
53
|
+
How it works (3 steps)
|
|
54
|
+
Testimonials + metrics
|
|
55
|
+
Pricing (tiers, recommended plan highlighted)
|
|
56
|
+
FAQ
|
|
57
|
+
Final CTA (repeat primary action)
|
|
58
|
+
Footer
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Further reading
|
|
62
|
+
- Section-specific galleries on saaslandingpage.com (features pages, pricing pages) for live structural references.
|
|
63
|
+
- ../web-animation-codrops — motion and scroll interactions that elevate landing-page hero and section transitions.
|
|
64
|
+
|
|
65
|
+
## Related skills
|
|
66
|
+
- ../component-patterns-gallery — anatomy of the buttons, cards, pricing tables, and nav used on landing pages.
|
|
67
|
+
- ../react-component-libraries — prebuilt hero/pricing/CTA blocks to assemble pages quickly.
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: shadcn-tailwind-theming
|
|
3
|
+
description: Theme and generate shadcn/ui + Tailwind components via CSS variables and theme editors; consult when styling or scaffolding a shadcn-based UI.
|
|
4
|
+
domain: reference
|
|
5
|
+
category: reference
|
|
6
|
+
tags: [shadcn, tailwind, theming, css-variables, design-tokens]
|
|
7
|
+
official_sources:
|
|
8
|
+
- https://ui.shadcn.com/
|
|
9
|
+
- https://ui.shadcn.com/docs/theming
|
|
10
|
+
- https://tweakcn.com/
|
|
11
|
+
verified: 2026-06-16
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# shadcn/ui + Tailwind Theming
|
|
15
|
+
|
|
16
|
+
## Overview
|
|
17
|
+
shadcn/ui (ui.shadcn.com) is not a dependency you install and import — it is a set of accessible, Radix-based components styled with Tailwind that you copy into your codebase via a CLI and then own and customize. Theming runs entirely through CSS custom properties mapped to Tailwind, so one set of variables restyles every component and powers light/dark modes. Tools like tweakcn (tweakcn.com) and Magic UI Pro (pro.magicui.design) let you generate those variables visually or buy prebuilt blocks. Read this skill when you need to scaffold, theme, or recolor a shadcn-based interface.
|
|
18
|
+
|
|
19
|
+
## Official sources
|
|
20
|
+
- Docs: https://ui.shadcn.com/
|
|
21
|
+
- Theming guide: https://ui.shadcn.com/docs/theming
|
|
22
|
+
- CLI: https://ui.shadcn.com/docs/cli
|
|
23
|
+
- Theme editor (tweakcn): https://tweakcn.com/
|
|
24
|
+
- Premium blocks/templates (Magic UI Pro): https://pro.magicui.design/
|
|
25
|
+
|
|
26
|
+
## Core concepts
|
|
27
|
+
- **Copy-in, you-own-it model.** The CLI writes component source into your project (e.g. `components/ui/`). You edit the files directly; there is no black-box package to fight, and updates are deliberate copy-ins, not version bumps.
|
|
28
|
+
- **CSS-variable theming.** Colors are defined as CSS custom properties (background, foreground, primary, secondary, muted, accent, destructive, border, ring, etc.) and consumed by Tailwind. Restyling means changing the variables, not editing each component.
|
|
29
|
+
- **Light/dark via variable swap.** Dark mode is a second block of the same variables under a `.dark` selector (or media query); components don't change, only the values do.
|
|
30
|
+
- **Registry / "Build Your Own".** Components and blocks are distributed through a registry the CLI can pull from, which extends to community registries and prebuilt block collections.
|
|
31
|
+
- **Visual theme generation.** tweakcn provides a GUI to tune the palette, radius, and typography and export the exact CSS-variable block to paste into your stylesheet — faster and less error-prone than hand-tuning HSL values.
|
|
32
|
+
|
|
33
|
+
## Best practices
|
|
34
|
+
- Initialize with the official CLI and let it configure paths, Tailwind, and the base color, rather than copying files manually. (See the CLI docs.)
|
|
35
|
+
- Theme by editing the CSS-variable layer (and its `.dark` counterpart), not by hardcoding colors inside components — this keeps every component consistent and re-themeable.
|
|
36
|
+
- Keep semantic token names (primary, muted, destructive) and map brand colors onto them, so swapping brands is a one-place change.
|
|
37
|
+
- Use a generator like tweakcn to produce a coherent, accessible palette and copy its exported variables verbatim, then commit them as your theme source of truth.
|
|
38
|
+
- Define both light and dark variable sets together so contrast is verified in both modes before shipping.
|
|
39
|
+
|
|
40
|
+
## Common pitfalls
|
|
41
|
+
- Treating shadcn/ui like an npm component library and trying to `npm install` the components → it is a copy-in CLI distribution; run the CLI to add components.
|
|
42
|
+
- Hardcoding hex/HSL colors inside individual components → breaks theming and dark mode; reference the CSS variables instead.
|
|
43
|
+
- Forgetting the `.dark` variable block, so dark mode inherits light values → define both sets.
|
|
44
|
+
- Pasting a generated palette without checking contrast on text/background pairs → run a contrast check before committing.
|
|
45
|
+
|
|
46
|
+
## Examples
|
|
47
|
+
```css
|
|
48
|
+
/* app globals.css — semantic theme tokens consumed by Tailwind */
|
|
49
|
+
:root {
|
|
50
|
+
--background: 0 0% 100%;
|
|
51
|
+
--foreground: 240 10% 3.9%;
|
|
52
|
+
--primary: 240 5.9% 10%;
|
|
53
|
+
--primary-foreground: 0 0% 98%;
|
|
54
|
+
--border: 240 5.9% 90%;
|
|
55
|
+
--ring: 240 5.9% 10%;
|
|
56
|
+
}
|
|
57
|
+
.dark {
|
|
58
|
+
--background: 240 10% 3.9%;
|
|
59
|
+
--foreground: 0 0% 98%;
|
|
60
|
+
--primary: 0 0% 98%;
|
|
61
|
+
--primary-foreground: 240 5.9% 10%;
|
|
62
|
+
--border: 240 3.7% 15.9%;
|
|
63
|
+
--ring: 240 4.9% 83.9%;
|
|
64
|
+
}
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Further reading
|
|
68
|
+
- ui.shadcn.com/docs/theming for the full variable list and conventions.
|
|
69
|
+
- tweakcn.com to generate and export a custom theme's variable block.
|
|
70
|
+
|
|
71
|
+
## Related skills
|
|
72
|
+
- ../component-patterns-gallery — anatomy and naming for the components you theme.
|
|
73
|
+
- ../react-component-libraries — Magic UI and others that compose with shadcn.
|
|
74
|
+
- ../gradient-resources — gradient backgrounds and accents to layer onto themed UIs.
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: vercel-ai-sdk-elements
|
|
3
|
+
description: AI Elements — composable shadcn/ui components for AI-native apps (chat, reasoning, tools); consult when building AI SDK chat/agent UIs.
|
|
4
|
+
domain: reference
|
|
5
|
+
category: reference
|
|
6
|
+
tags: [ai-sdk, ai-elements, vercel, shadcn, react, ai-ui]
|
|
7
|
+
official_sources:
|
|
8
|
+
- https://elements.ai-sdk.dev/
|
|
9
|
+
- https://github.com/vercel/ai-elements
|
|
10
|
+
verified: 2026-06-16
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Vercel AI SDK — AI Elements
|
|
14
|
+
|
|
15
|
+
## Overview
|
|
16
|
+
AI Elements is Vercel's component library and custom registry built on top of shadcn/ui to help you build AI-native applications faster. It ships composable, focused pieces (Conversation, Message, Prompt Input, Reasoning, Sources, Tool, Attachments, and more) with deep AI SDK integration — streaming, status states, and type safety built in. Because it follows shadcn/ui conventions, your existing theme applies automatically. Read this when building chat, agent, or generative UIs on the AI SDK.
|
|
17
|
+
|
|
18
|
+
## Official sources
|
|
19
|
+
- Docs: https://elements.ai-sdk.dev/
|
|
20
|
+
- Repo: https://github.com/vercel/ai-elements
|
|
21
|
+
- Setup: https://elements.ai-sdk.dev/docs/setup
|
|
22
|
+
- AI SDK: https://ai-sdk.dev/
|
|
23
|
+
|
|
24
|
+
## Install / setup
|
|
25
|
+
```bash
|
|
26
|
+
npx ai-elements@latest
|
|
27
|
+
```
|
|
28
|
+
Add individual components:
|
|
29
|
+
```bash
|
|
30
|
+
npx ai-elements@latest add message
|
|
31
|
+
```
|
|
32
|
+
pnpm/bun equivalents are documented (`pnpm dlx ai-elements@latest`, `bunx --bun ai-elements@latest`); the AI Elements CLI auto-initializes shadcn/ui if it is not already present.
|
|
33
|
+
|
|
34
|
+
## Core concepts
|
|
35
|
+
- Built on shadcn/ui as a custom registry — components are added into your codebase (copy/own model), not hidden behind a dependency.
|
|
36
|
+
- Deep AI SDK integration: streaming, status states, and type safety are built into the components.
|
|
37
|
+
- Fully composable: small, focused primitives combine into custom chat/agent UIs rather than one monolithic widget.
|
|
38
|
+
- Component families span Chatbot (Conversation, Message, Prompt Input, Reasoning, Sources, Tool, Attachments), Code, Voice, and Workflow.
|
|
39
|
+
- CSS Variables mode only — relies on shadcn/ui's CSS-variable theming, so your tokens style the components.
|
|
40
|
+
|
|
41
|
+
## Best practices
|
|
42
|
+
- Initialize shadcn/ui and configure Tailwind CSS Variables mode before adding Elements (the CLI can set up shadcn/ui automatically).
|
|
43
|
+
- Run the CLI with your project's package runner (npx/pnpm dlx/bunx) so dependencies match your package manager.
|
|
44
|
+
- Compose primitives (Message + Reasoning + Sources + Tool) instead of building bespoke chat markup, so streaming and status handling come for free.
|
|
45
|
+
- Theme through shadcn/ui CSS variables so Elements inherit your brand automatically.
|
|
46
|
+
|
|
47
|
+
## Common pitfalls
|
|
48
|
+
- Expecting it to work without shadcn/ui or Tailwind → AI Elements requires shadcn/ui initialized and Tailwind configured (CSS Variables mode).
|
|
49
|
+
- Treating it as an npm UI dependency → components are added into your repo via the registry; you own and customize the code.
|
|
50
|
+
- Skipping the AI SDK wiring → Elements expect AI SDK message/streaming shapes; pair them with the SDK's hooks.
|
|
51
|
+
|
|
52
|
+
## Examples
|
|
53
|
+
```bash
|
|
54
|
+
# Add a chat conversation surface and prompt input
|
|
55
|
+
npx ai-elements@latest add conversation
|
|
56
|
+
npx ai-elements@latest add prompt-input
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## Further reading
|
|
60
|
+
- Components index: https://elements.ai-sdk.dev/
|
|
61
|
+
- AI SDK UI docs: https://ai-sdk.dev/
|
|
62
|
+
|
|
63
|
+
## Related skills
|
|
64
|
+
- ../ai-attachments-ui — attachment UI patterns in AI Elements
|
|
65
|
+
- ../ai-tool-ui-patterns — rendering tool-call results
|
|
66
|
+
- ../shadcn-tailwind-theming — theming the underlying shadcn/ui layer
|