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,54 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: css-modules
|
|
3
|
+
description: CSS files whose class and animation names are scoped locally by default; consult when isolating component styles without naming collisions.
|
|
4
|
+
domain: stack
|
|
5
|
+
category: styling
|
|
6
|
+
tags: [css-modules, css, scoping, components, build]
|
|
7
|
+
official_sources:
|
|
8
|
+
- https://github.com/css-modules/css-modules
|
|
9
|
+
verified: 2026-06-16
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# CSS Modules
|
|
13
|
+
|
|
14
|
+
## Overview
|
|
15
|
+
A CSS Module is a CSS file in which all class names and animation names are scoped locally by default. When imported into JavaScript, it exports a mapping from the local names you wrote to the unique, globally-safe names the build generated. This prevents styles in one file from leaking and affecting the rest of the project. Read this when you want component-scoped CSS without adopting a CSS-in-JS runtime.
|
|
16
|
+
|
|
17
|
+
## Official sources
|
|
18
|
+
- Docs: https://github.com/css-modules/css-modules
|
|
19
|
+
- Repo: https://github.com/css-modules/css-modules
|
|
20
|
+
|
|
21
|
+
## Core concepts
|
|
22
|
+
- **Local scope by default**: every class/animation name is rewritten to a unique identifier, so names are isolated per file and cannot collide globally.
|
|
23
|
+
- **JS import mapping**: importing a `.module.css` file yields an object mapping your written class names to the generated names you apply in markup.
|
|
24
|
+
- **Composition**: a class can `composes:` from another class (same file or imported) to reuse and combine styles without duplicating declarations.
|
|
25
|
+
- **Explicit global escape hatch**: `:global(...)` opts specific selectors out of local scoping when you genuinely need a global rule.
|
|
26
|
+
- **Build-tool feature**: CSS Modules is a transformation applied by your bundler/loader, not a runtime library.
|
|
27
|
+
|
|
28
|
+
## Best practices
|
|
29
|
+
- Keep one module per component so local names map cleanly to that component's markup.
|
|
30
|
+
- Use `composes` to share base styles instead of repeating declarations across modules.
|
|
31
|
+
- Reserve `:global` for the rare cases that truly require global selectors; default to local scope.
|
|
32
|
+
- Reference classes through the imported object (`styles.button`) rather than hardcoding the generated names.
|
|
33
|
+
|
|
34
|
+
## Common pitfalls
|
|
35
|
+
- Writing plain global selectors expecting them to be scoped → only locally-scoped class/animation names are rewritten; element and `:global` selectors stay global.
|
|
36
|
+
- Hardcoding generated class names in HTML → names are build-generated and may change; always go through the imported mapping object.
|
|
37
|
+
|
|
38
|
+
## Examples
|
|
39
|
+
```css
|
|
40
|
+
/* submit-button.module.css */
|
|
41
|
+
.normal { background: white; }
|
|
42
|
+
.error { composes: normal; color: red; }
|
|
43
|
+
```
|
|
44
|
+
```js
|
|
45
|
+
import styles from "./submit-button.module.css";
|
|
46
|
+
element.innerHTML = `<button class="${styles.error}">Submit</button>`;
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## Further reading
|
|
50
|
+
- https://github.com/css-modules/css-modules — local scope, composition, naming, theming docs
|
|
51
|
+
|
|
52
|
+
## Related skills
|
|
53
|
+
- ../vanilla-extract — locally-scoped styles authored in TypeScript
|
|
54
|
+
- ../sass — preprocessor that pairs well with CSS Modules
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: mui
|
|
3
|
+
description: Material UI — comprehensive React component library implementing Google's Material Design with theming and Emotion styling; consult for prebuilt MUI components.
|
|
4
|
+
domain: stack
|
|
5
|
+
category: styling
|
|
6
|
+
tags: [mui, material-ui, react, components, emotion]
|
|
7
|
+
official_sources:
|
|
8
|
+
- https://mui.com/material-ui/
|
|
9
|
+
- https://github.com/mui/material-ui
|
|
10
|
+
verified: 2026-06-16
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Material UI (MUI)
|
|
14
|
+
|
|
15
|
+
## Overview
|
|
16
|
+
Material UI is a comprehensive React component library that implements Google's Material Design. It provides a large set of accessible, themeable components and ships with Emotion as the default styling engine. Read this when building a React UI on a complete, batteries-included component system with a centralized theme.
|
|
17
|
+
|
|
18
|
+
## Official sources
|
|
19
|
+
- Docs: https://mui.com/material-ui/
|
|
20
|
+
- Repo: https://github.com/mui/material-ui
|
|
21
|
+
- Install / download: https://mui.com/material-ui/getting-started/installation/
|
|
22
|
+
|
|
23
|
+
## Install / setup
|
|
24
|
+
```bash
|
|
25
|
+
npm install @mui/material @emotion/react @emotion/styled
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Core concepts
|
|
29
|
+
- **Component library**: a broad catalog of ready-made React components (buttons, inputs, layout, navigation, data display).
|
|
30
|
+
- **Theming**: a central theme object configures palette, typography, spacing, and breakpoints across all components.
|
|
31
|
+
- **`sx` prop**: apply one-off, theme-aware style overrides inline on any MUI component.
|
|
32
|
+
- **Default Emotion engine**: styles are powered by Emotion (`@emotion/react`/`@emotion/styled`) by default.
|
|
33
|
+
- **`styled()` utility**: create custom styled components that read from the MUI theme.
|
|
34
|
+
|
|
35
|
+
## Best practices
|
|
36
|
+
- Centralize design decisions in a theme and wrap the app in a theme provider so components stay consistent.
|
|
37
|
+
- Use the `sx` prop for small local overrides and `styled()` for reusable custom components.
|
|
38
|
+
- Reference theme tokens (palette, spacing) rather than hardcoding colors and pixel values.
|
|
39
|
+
- Pick the documented styling engine setup (Emotion by default) and stay consistent across the codebase.
|
|
40
|
+
|
|
41
|
+
## Common pitfalls
|
|
42
|
+
- Forgetting the Emotion peer packages → the default install requires `@emotion/react` and `@emotion/styled`; omitting them breaks styling.
|
|
43
|
+
- Overriding styles with high-specificity custom CSS instead of the theme/`sx` → fights the system and creates inconsistency; prefer theme tokens and `sx`.
|
|
44
|
+
|
|
45
|
+
## Examples
|
|
46
|
+
```jsx
|
|
47
|
+
import Button from '@mui/material/Button';
|
|
48
|
+
|
|
49
|
+
export default function App() {
|
|
50
|
+
return <Button variant="contained">Hello world</Button>;
|
|
51
|
+
}
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Further reading
|
|
55
|
+
- https://mui.com/material-ui/getting-started/ — getting started and usage
|
|
56
|
+
- https://mui.com/material-ui/customization/theming/ — theming guide
|
|
57
|
+
|
|
58
|
+
## Related skills
|
|
59
|
+
- ../chakra-ui — alternative accessible React component library
|
|
60
|
+
- ../shadcn-ui — copy-in component approach on Tailwind + Radix
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: sass
|
|
3
|
+
description: CSS preprocessor adding variables, nesting, partials, mixins, and functions that compile to plain CSS; consult when authoring maintainable stylesheets.
|
|
4
|
+
domain: stack
|
|
5
|
+
category: styling
|
|
6
|
+
tags: [sass, scss, css, preprocessor, dart-sass]
|
|
7
|
+
official_sources:
|
|
8
|
+
- https://sass-lang.com/documentation/
|
|
9
|
+
- https://github.com/sass/dart-sass
|
|
10
|
+
verified: 2026-06-16
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Sass
|
|
14
|
+
|
|
15
|
+
## Overview
|
|
16
|
+
Sass is a CSS preprocessor that extends CSS with variables, nesting, partials, mixins, inheritance, and functions, then compiles down to standard CSS. Dart Sass is the canonical, primary implementation of the language. Read this when you want structured, reusable stylesheets that still ship as plain CSS.
|
|
17
|
+
|
|
18
|
+
## Official sources
|
|
19
|
+
- Docs: https://sass-lang.com/documentation/
|
|
20
|
+
- Repo: https://github.com/sass/dart-sass
|
|
21
|
+
- Install / download: https://sass-lang.com/install/
|
|
22
|
+
|
|
23
|
+
## Install / setup
|
|
24
|
+
```bash
|
|
25
|
+
npm install -g sass
|
|
26
|
+
```
|
|
27
|
+
The npm package is the pure-JavaScript build (slower than the native options); Homebrew (`brew install sass/sass/sass`) and Chocolatey (`choco install sass`) are also documented on the install page.
|
|
28
|
+
|
|
29
|
+
## Core concepts
|
|
30
|
+
- **Variables**: store reusable values (colors, fonts, sizes) and reference them throughout stylesheets.
|
|
31
|
+
- **Nesting**: nest selectors to mirror HTML structure, reducing repetition (use sparingly to avoid over-specific selectors).
|
|
32
|
+
- **Partials & `@use`/`@forward`**: split styles into underscore-prefixed partial files and load them as modules with namespacing.
|
|
33
|
+
- **Mixins**: reusable groups of declarations invoked with `@include`, optionally parameterized.
|
|
34
|
+
- **Functions & operators**: built-in and custom functions plus math operators compute values at compile time.
|
|
35
|
+
- **Two syntaxes**: `.scss` (CSS-superset, most common) and the indented `.sass` syntax.
|
|
36
|
+
|
|
37
|
+
## Best practices
|
|
38
|
+
- Prefer the module system (`@use` / `@forward`) over the deprecated `@import` for predictable namespacing and scoping.
|
|
39
|
+
- Keep nesting shallow to avoid generating overly specific, hard-to-override selectors.
|
|
40
|
+
- Organize code into small partials and compose them, rather than one large stylesheet.
|
|
41
|
+
- Use the native/embedded Sass binary for speed in builds where compile time matters; the npm pure-JS build is slower.
|
|
42
|
+
|
|
43
|
+
## Common pitfalls
|
|
44
|
+
- Relying on `@import` → it is deprecated in Dart Sass; migrate to `@use`/`@forward` for module-scoped variables and mixins.
|
|
45
|
+
- Deeply nesting selectors → produces high-specificity CSS that is brittle and difficult to override.
|
|
46
|
+
|
|
47
|
+
## Examples
|
|
48
|
+
```scss
|
|
49
|
+
$primary: #3366ff;
|
|
50
|
+
|
|
51
|
+
.button {
|
|
52
|
+
background: $primary;
|
|
53
|
+
&:hover { background: darken($primary, 10%); }
|
|
54
|
+
}
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## Further reading
|
|
58
|
+
- https://sass-lang.com/documentation/ — full language reference
|
|
59
|
+
- https://sass-lang.com/documentation/at-rules/use/ — the module system
|
|
60
|
+
|
|
61
|
+
## Related skills
|
|
62
|
+
- ../css-modules — locally-scoped CSS that pairs with Sass
|
|
63
|
+
- ../tailwind — utility-first alternative styling approach
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: shadcn-ui
|
|
3
|
+
description: Accessible React components you copy into your project (built on Tailwind + Radix) via a CLI rather than installing as a dependency; consult for owned UI code.
|
|
4
|
+
domain: stack
|
|
5
|
+
category: styling
|
|
6
|
+
tags: [shadcn-ui, react, tailwind, radix, components]
|
|
7
|
+
official_sources:
|
|
8
|
+
- https://ui.shadcn.com/docs
|
|
9
|
+
- https://github.com/shadcn-ui/ui
|
|
10
|
+
verified: 2026-06-16
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# shadcn/ui
|
|
14
|
+
|
|
15
|
+
## Overview
|
|
16
|
+
shadcn/ui is a set of beautifully-designed, accessible React components and a code-distribution platform. Rather than installing a component package, you use a CLI to copy component source directly into your project, so you own and can freely modify the code. Components are built on Tailwind CSS and Radix primitives. Read this when you want full ownership of your UI component code.
|
|
17
|
+
|
|
18
|
+
## Official sources
|
|
19
|
+
- Docs: https://ui.shadcn.com/docs
|
|
20
|
+
- Repo: https://github.com/shadcn-ui/ui
|
|
21
|
+
- Install / download: https://ui.shadcn.com/docs/installation
|
|
22
|
+
|
|
23
|
+
## Install / setup
|
|
24
|
+
```bash
|
|
25
|
+
pnpm dlx shadcn@latest init
|
|
26
|
+
```
|
|
27
|
+
The init command scaffolds configuration (npm, yarn, and bun equivalents are documented). Add individual components afterward with `shadcn@latest add <component>`.
|
|
28
|
+
|
|
29
|
+
## Core concepts
|
|
30
|
+
- **Copy-in, not a dependency**: the CLI writes component source into your repo; you maintain it yourself instead of upgrading a package.
|
|
31
|
+
- **Tailwind + Radix foundation**: styling uses Tailwind utilities and behavior/accessibility comes from Radix primitives.
|
|
32
|
+
- **CLI workflow**: `init` sets up the project, `add` brings in specific components on demand.
|
|
33
|
+
- **Full ownership / open code**: because the code lives in your project, you can edit any component to fit your needs.
|
|
34
|
+
- **Framework support**: works with frameworks such as Next.js, Vite, React Router, Astro, and TanStack Start.
|
|
35
|
+
|
|
36
|
+
## Best practices
|
|
37
|
+
- Run `init` once to establish config and conventions before adding components.
|
|
38
|
+
- Add only the components you need with the `add` command rather than pulling in everything.
|
|
39
|
+
- Treat copied components as your own source — review and adapt them instead of expecting external updates.
|
|
40
|
+
- Keep Tailwind tokens/theme aligned so copied components match the rest of your design system.
|
|
41
|
+
|
|
42
|
+
## Common pitfalls
|
|
43
|
+
- Expecting automatic upstream upgrades like an npm package → components are copied into your project; you own maintenance and must re-pull manually for updates.
|
|
44
|
+
- Skipping `init` and adding components first → the project lacks the required config/conventions the components rely on.
|
|
45
|
+
|
|
46
|
+
## Examples
|
|
47
|
+
```bash
|
|
48
|
+
pnpm dlx shadcn@latest init
|
|
49
|
+
pnpm dlx shadcn@latest add button
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## Further reading
|
|
53
|
+
- https://ui.shadcn.com/docs/installation — framework-specific setup
|
|
54
|
+
- https://ui.shadcn.com/docs/components — component catalog
|
|
55
|
+
|
|
56
|
+
## Related skills
|
|
57
|
+
- ../tailwind — the utility framework shadcn/ui styles with
|
|
58
|
+
- ../mui — alternative prebuilt React component library
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: styled-components
|
|
3
|
+
description: CSS-in-JS for React using tagged template literals to attach scoped styles to components; consult when styling React with co-located CSS.
|
|
4
|
+
domain: stack
|
|
5
|
+
category: styling
|
|
6
|
+
tags: [styled-components, css-in-js, react, theming, ssr]
|
|
7
|
+
official_sources:
|
|
8
|
+
- https://styled-components.com/docs
|
|
9
|
+
- https://github.com/styled-components/styled-components
|
|
10
|
+
verified: 2026-06-16
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# styled-components
|
|
14
|
+
|
|
15
|
+
## Overview
|
|
16
|
+
styled-components is a CSS-in-JS library for React that lets you write actual CSS in tagged template literals, producing React components with their styles attached. It removes the mapping between components and styles and scopes CSS automatically. Read this when styling React (including Server Components, client components, and SSR) with co-located styles.
|
|
17
|
+
|
|
18
|
+
## Official sources
|
|
19
|
+
- Docs: https://styled-components.com/docs
|
|
20
|
+
- Repo: https://github.com/styled-components/styled-components
|
|
21
|
+
- Install / download: https://styled-components.com/docs/basics#installation
|
|
22
|
+
|
|
23
|
+
## Install / setup
|
|
24
|
+
```bash
|
|
25
|
+
npm install styled-components
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Core concepts
|
|
29
|
+
- **Tagged template literals**: `styled.button\`...\`` creates a React component whose CSS lives in the template string, automatically generating unique class names.
|
|
30
|
+
- **Adapting based on props**: interpolated functions receive the component's props (e.g. `$primary`) so styles can change dynamically per render.
|
|
31
|
+
- **Extending styles**: `styled(Existing)\`...\`` builds a new component that inherits another's styles and overrides specific declarations.
|
|
32
|
+
- **`.attrs`**: attach static or computed props/attributes to a styled component before it renders.
|
|
33
|
+
- **`keyframes`**: generates scoped animation names to avoid collisions; pair with the `css` helper for code-splitting compatibility.
|
|
34
|
+
|
|
35
|
+
## Best practices
|
|
36
|
+
- Prefix transient props (`$primary`) so they drive styling without being forwarded to the DOM.
|
|
37
|
+
- Reuse styles by extending existing styled components rather than duplicating declarations.
|
|
38
|
+
- Define `keyframes` once and reference it, keeping animations scoped and collision-free.
|
|
39
|
+
- Provide theme values through a theme provider so colors and spacing stay consistent across components.
|
|
40
|
+
|
|
41
|
+
## Common pitfalls
|
|
42
|
+
- Defining `styled(...)` components inside a render function → a new component identity each render hurts performance and can break state; define them at module scope.
|
|
43
|
+
- Forwarding non-standard props to DOM elements → use transient `$` props or `.attrs` so invalid attributes don't leak into the HTML.
|
|
44
|
+
|
|
45
|
+
## Examples
|
|
46
|
+
```jsx
|
|
47
|
+
import styled from 'styled-components';
|
|
48
|
+
|
|
49
|
+
const Button = styled.button`
|
|
50
|
+
background: ${props => props.$primary ? 'palevioletred' : 'white'};
|
|
51
|
+
color: ${props => props.$primary ? 'white' : 'palevioletred'};
|
|
52
|
+
padding: 0.5em 1em;
|
|
53
|
+
`;
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## Further reading
|
|
57
|
+
- https://styled-components.com/docs/basics — core usage guide
|
|
58
|
+
- https://styled-components.com/docs/advanced — theming, SSR, and refs
|
|
59
|
+
|
|
60
|
+
## Related skills
|
|
61
|
+
- ../vanilla-extract — zero-runtime alternative authored in TypeScript
|
|
62
|
+
- ../tailwind — utility-first alternative to CSS-in-JS
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: tailwind
|
|
3
|
+
description: Utility-first CSS framework that styles UI from small composable classes in markup; consult when building or theming with Tailwind.
|
|
4
|
+
domain: stack
|
|
5
|
+
category: styling
|
|
6
|
+
tags: [tailwind, css, utility-first, vite, design-system]
|
|
7
|
+
official_sources:
|
|
8
|
+
- https://tailwindcss.com/docs
|
|
9
|
+
- https://github.com/tailwindlabs/tailwindcss
|
|
10
|
+
verified: 2026-06-16
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Tailwind CSS
|
|
14
|
+
|
|
15
|
+
## Overview
|
|
16
|
+
Tailwind CSS is a utility-first CSS framework: instead of writing custom stylesheets, you compose UI from small single-purpose classes (`flex`, `pt-4`, `text-3xl`) applied directly in markup. It is designed for rapid UI development and produces only the CSS your project actually uses. Read this when scaffolding styling, theming, or migrating an app to Tailwind.
|
|
17
|
+
|
|
18
|
+
## Official sources
|
|
19
|
+
- Docs: https://tailwindcss.com/docs
|
|
20
|
+
- Repo: https://github.com/tailwindlabs/tailwindcss
|
|
21
|
+
- Install / download: https://tailwindcss.com/docs/installation
|
|
22
|
+
|
|
23
|
+
## Install / setup
|
|
24
|
+
```bash
|
|
25
|
+
npm install tailwindcss @tailwindcss/vite
|
|
26
|
+
```
|
|
27
|
+
Then register the Vite plugin in `vite.config.ts` and add `@import "tailwindcss";` to your main CSS file (per the official installation guide).
|
|
28
|
+
|
|
29
|
+
## Core concepts
|
|
30
|
+
- **Utility-first**: build designs by combining many small classes in markup rather than authoring bespoke CSS rules.
|
|
31
|
+
- **On-demand generation**: the engine scans your source files and emits only the utilities you actually use, keeping output small.
|
|
32
|
+
- **Responsive & state variants**: prefixes like `md:`, `hover:`, `focus:`, and `dark:` apply utilities conditionally at breakpoints or interaction states.
|
|
33
|
+
- **Theme tokens**: spacing, colors, typography, and breakpoints come from a configurable design-token scale you can extend.
|
|
34
|
+
- **First-party plugin integration**: the `@tailwindcss/vite` plugin (and equivalents) wires Tailwind into your bundler's build process.
|
|
35
|
+
|
|
36
|
+
## Best practices
|
|
37
|
+
- Let the build scan real source files so unused utilities are purged automatically; avoid hand-maintaining a list of safe classes unless dynamic class names require it.
|
|
38
|
+
- Extract repeated class clusters into components (or `@apply` in a CSS layer) rather than copying long class strings everywhere.
|
|
39
|
+
- Customize via the theme/tokens so spacing and color stay consistent across the app instead of using arbitrary one-off values.
|
|
40
|
+
- Use the documented responsive and state variants instead of writing custom media queries by hand.
|
|
41
|
+
|
|
42
|
+
## Common pitfalls
|
|
43
|
+
- Constructing class names from string concatenation at runtime → the scanner can't see them, so they get purged; use complete static class strings or a safelist.
|
|
44
|
+
- Treating Tailwind as inline styles → it is design-token-constrained utilities; reaching for arbitrary values everywhere defeats the system's consistency.
|
|
45
|
+
|
|
46
|
+
## Examples
|
|
47
|
+
```html
|
|
48
|
+
<h1 class="text-3xl font-bold underline">
|
|
49
|
+
Hello world!
|
|
50
|
+
</h1>
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## Further reading
|
|
54
|
+
- https://tailwindcss.com/docs/installation — framework-specific setup guides
|
|
55
|
+
- https://tailwindcss.com/docs/styling-with-utility-classes — core utility-first workflow
|
|
56
|
+
|
|
57
|
+
## Related skills
|
|
58
|
+
- ../shadcn-ui — component collection built on Tailwind + Radix
|
|
59
|
+
- ../unocss — alternative on-demand atomic CSS engine
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: unocss
|
|
3
|
+
description: Instant on-demand atomic CSS engine with no core utilities, fully customizable via presets and rules; consult when building atomic CSS fast and small.
|
|
4
|
+
domain: stack
|
|
5
|
+
category: styling
|
|
6
|
+
tags: [unocss, atomic-css, presets, vite, utility]
|
|
7
|
+
official_sources:
|
|
8
|
+
- https://unocss.dev/
|
|
9
|
+
- https://github.com/unocss/unocss
|
|
10
|
+
verified: 2026-06-16
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# UnoCSS
|
|
14
|
+
|
|
15
|
+
## Overview
|
|
16
|
+
UnoCSS is an instant, on-demand atomic CSS engine. Unlike opinionated frameworks, its core ships no utilities; you define behavior through presets and rules, and it generates only the CSS your code uses. It is built for speed and a tiny footprint. Read this when you want a customizable atomic-CSS workflow or to bring your own design-system presets.
|
|
17
|
+
|
|
18
|
+
## Official sources
|
|
19
|
+
- Docs: https://unocss.dev/
|
|
20
|
+
- Repo: https://github.com/unocss/unocss
|
|
21
|
+
- Install / download: https://unocss.dev/integrations/vite
|
|
22
|
+
|
|
23
|
+
## Install / setup
|
|
24
|
+
```bash
|
|
25
|
+
npm install -D unocss
|
|
26
|
+
```
|
|
27
|
+
The Vite plugin ships in the main `unocss` package and is imported from `unocss/vite` (per the Vite integration docs).
|
|
28
|
+
|
|
29
|
+
## Core concepts
|
|
30
|
+
- **On-demand atomic CSS**: utilities are generated only when used in your source, keeping output minimal.
|
|
31
|
+
- **Rules**: define utilities as static entries (`m-1`) or dynamic RegExp matchers that accept arbitrary values.
|
|
32
|
+
- **Presets**: bundled collections of rules, variants, and shortcuts that can be shared across projects or teams.
|
|
33
|
+
- **Shortcuts**: combine multiple utilities into a single reusable class name.
|
|
34
|
+
- **Variants**: transform or conditionally apply utilities (states, breakpoints, custom logic).
|
|
35
|
+
- **Unopinionated core**: no built-in utilities by default — behavior comes entirely from your configured presets/rules.
|
|
36
|
+
|
|
37
|
+
## Best practices
|
|
38
|
+
- Compose your styling from presets (official or your own) rather than re-implementing common utilities by hand.
|
|
39
|
+
- Use shortcuts to name and reuse recurring utility combinations instead of repeating long class strings.
|
|
40
|
+
- Encapsulate a design system as a custom preset so it is shareable and versionable across projects.
|
|
41
|
+
- Define dynamic rules with RegExp matchers to support arbitrary values without exploding your config.
|
|
42
|
+
|
|
43
|
+
## Common pitfalls
|
|
44
|
+
- Expecting utilities out of the box → the core is intentionally empty; add a preset (or define rules) or nothing is generated.
|
|
45
|
+
- Building class names dynamically the engine can't scan → unused or unseen classes won't be generated; keep classes statically discoverable.
|
|
46
|
+
|
|
47
|
+
## Examples
|
|
48
|
+
```ts
|
|
49
|
+
// uno.config.ts
|
|
50
|
+
import { defineConfig, presetUno } from 'unocss';
|
|
51
|
+
|
|
52
|
+
export default defineConfig({
|
|
53
|
+
presets: [presetUno()],
|
|
54
|
+
shortcuts: { btn: 'px-4 py-1 rounded inline-block' },
|
|
55
|
+
});
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## Further reading
|
|
59
|
+
- https://unocss.dev/guide/ — concepts and configuration
|
|
60
|
+
- https://unocss.dev/presets/ — official presets
|
|
61
|
+
|
|
62
|
+
## Related skills
|
|
63
|
+
- ../tailwind — utility-first framework that inspired UnoCSS
|
|
64
|
+
- ../css-modules — alternative scoping-based styling approach
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: vanilla-extract
|
|
3
|
+
description: Zero-runtime stylesheets authored in TypeScript that compile to static CSS with locally-scoped, type-safe styles; consult for type-safe CSS in builds.
|
|
4
|
+
domain: stack
|
|
5
|
+
category: styling
|
|
6
|
+
tags: [vanilla-extract, css-in-js, typescript, zero-runtime, scoped]
|
|
7
|
+
official_sources:
|
|
8
|
+
- https://vanilla-extract.style/documentation/getting-started/
|
|
9
|
+
- https://github.com/vanilla-extract-css/vanilla-extract
|
|
10
|
+
verified: 2026-06-16
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# vanilla-extract
|
|
14
|
+
|
|
15
|
+
## Overview
|
|
16
|
+
vanilla-extract lets you write styles in TypeScript (or JavaScript) using `.css.ts` files, generating static CSS at build time with zero runtime cost. Class names are locally scoped (like CSS Modules) and the whole API is type-safe. Read this when you want CSS-in-TS authoring without shipping a styling runtime.
|
|
17
|
+
|
|
18
|
+
## Official sources
|
|
19
|
+
- Docs: https://vanilla-extract.style/documentation/getting-started/
|
|
20
|
+
- Repo: https://github.com/vanilla-extract-css/vanilla-extract
|
|
21
|
+
- Install / download: https://vanilla-extract.style/documentation/getting-started/
|
|
22
|
+
|
|
23
|
+
## Install / setup
|
|
24
|
+
```bash
|
|
25
|
+
npm install @vanilla-extract/css
|
|
26
|
+
```
|
|
27
|
+
Then add a bundler integration (Vite, esbuild, webpack, Next.js, Parcel, Rollup, or Gatsby) per the getting-started guide.
|
|
28
|
+
|
|
29
|
+
## Core concepts
|
|
30
|
+
- **Styles as `.css.ts` files**: author styles in TypeScript; the bundler extracts them into static CSS during build.
|
|
31
|
+
- **Locally-scoped class names**: the `style` function returns a unique class name, isolating styles per file like CSS Modules.
|
|
32
|
+
- **Zero runtime**: no styling library is shipped to the browser; output is plain CSS.
|
|
33
|
+
- **Scoped CSS variables**: `createVar`/theme APIs produce scoped custom properties for theming.
|
|
34
|
+
- **Type safety**: styles are typed via CSSType, so invalid properties and values are caught at compile time.
|
|
35
|
+
- **Bundler integration required**: a build plugin transforms `.css.ts` files into emitted CSS.
|
|
36
|
+
|
|
37
|
+
## Best practices
|
|
38
|
+
- Reference the value returned by `style` as your class name rather than hardcoding generated names.
|
|
39
|
+
- Use the theming/CSS-variable APIs (`createTheme`, `createVar`) to centralize design tokens type-safely.
|
|
40
|
+
- Keep style definitions in `.css.ts` files so the bundler can statically extract them at build time.
|
|
41
|
+
- Lean on the type checker to validate property names and values instead of relying on runtime checks.
|
|
42
|
+
|
|
43
|
+
## Common pitfalls
|
|
44
|
+
- Skipping the bundler integration → `.css.ts` files won't be transformed into CSS; install the matching plugin for your build tool.
|
|
45
|
+
- Expecting runtime dynamic styling like traditional CSS-in-JS → styles are extracted at build time, so prefer variables/variants for dynamic values.
|
|
46
|
+
|
|
47
|
+
## Examples
|
|
48
|
+
```ts
|
|
49
|
+
// styles.css.ts
|
|
50
|
+
import { style } from '@vanilla-extract/css';
|
|
51
|
+
|
|
52
|
+
export const container = style({
|
|
53
|
+
padding: 10,
|
|
54
|
+
display: 'flex',
|
|
55
|
+
});
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## Further reading
|
|
59
|
+
- https://vanilla-extract.style/documentation/getting-started/ — setup and bundler guides
|
|
60
|
+
- https://vanilla-extract.style/documentation/styling/ — styling API reference
|
|
61
|
+
|
|
62
|
+
## Related skills
|
|
63
|
+
- ../css-modules — the locally-scoped CSS model vanilla-extract builds on
|
|
64
|
+
- ../styled-components — runtime CSS-in-JS alternative
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: vuetify
|
|
3
|
+
description: Vuetify is a Vue component framework implementing Material Design with 80+ prebuilt components, a responsive grid, and a theming system; consult when scaffolding a Vue+Vuetify app, registering it with createVuetify, using v-* components like v-btn/v-data-table, configuring themes, or enabling tree-shaking via vite-plugin-vuetify.
|
|
4
|
+
domain: stack
|
|
5
|
+
category: styling
|
|
6
|
+
tags: [vuetify, vue, material-design, components, frontend, sass, typescript]
|
|
7
|
+
official_sources:
|
|
8
|
+
- https://vuetifyjs.com/en/getting-started/installation/
|
|
9
|
+
- https://github.com/vuetifyjs/vuetify
|
|
10
|
+
- https://www.npmjs.com/package/create-vuetify
|
|
11
|
+
verified: 2026-06-17
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Vuetify
|
|
15
|
+
|
|
16
|
+
## Overview
|
|
17
|
+
Vuetify is an open-source Vue 3 component framework that implements Google's Material Design spec. It provides 80+ ready-made `v-*` components, a 12-column responsive grid, a configurable theme/color system, and SASS variables for customization. Read this when scaffolding a new Vue + Vuetify project, registering the plugin with `createVuetify`, composing UIs from Vuetify components, theming, or setting up auto-import/tree-shaking with the Vite plugin.
|
|
18
|
+
|
|
19
|
+
## Official sources
|
|
20
|
+
- Docs: https://vuetifyjs.com/en/getting-started/installation/
|
|
21
|
+
- Repo: https://github.com/vuetifyjs/vuetify
|
|
22
|
+
- Install: https://www.npmjs.com/package/create-vuetify
|
|
23
|
+
|
|
24
|
+
## Install / setup
|
|
25
|
+
```bash
|
|
26
|
+
npm create vuetify@latest
|
|
27
|
+
```
|
|
28
|
+
Scaffolding command from the official installation guide (https://vuetifyjs.com/en/getting-started/installation/). To add to an existing app: `npm i vuetify`.
|
|
29
|
+
|
|
30
|
+
## Core concepts
|
|
31
|
+
- **createVuetify plugin** — instantiate with `createVuetify({ components, directives })` and register via `app.use(vuetify)`.
|
|
32
|
+
- **Components** — 80+ `v-*` components (`v-btn`, `v-card`, `v-text-field`, `v-data-table`, `v-app-bar`) following Material Design.
|
|
33
|
+
- **v-app / layout** — `<v-app>` is the required root; layout components (`v-app-bar`, `v-navigation-drawer`, `v-main`) compose the shell.
|
|
34
|
+
- **Grid system** — `v-container` > `v-row` > `v-col` with breakpoint props (`cols`, `sm`, `md`, `lg`, `xl`).
|
|
35
|
+
- **Theming** — light/dark themes and named color palettes configured in `createVuetify({ theme: {...} })`.
|
|
36
|
+
- **Display/breakpoints** — `useDisplay()` composable and responsive props react to xs–xxl breakpoints.
|
|
37
|
+
- **Directives** — opt-in directives (`v-ripple`, `v-intersect`) registered alongside components.
|
|
38
|
+
- **Tree-shaking** — `vite-plugin-vuetify` auto-imports only used components and SASS for smaller bundles.
|
|
39
|
+
|
|
40
|
+
## Best practices
|
|
41
|
+
- Use `npm create vuetify@latest` to scaffold; it wires Vite, the plugin, and tree-shaking for you (https://vuetifyjs.com/en/getting-started/installation/).
|
|
42
|
+
- Enable automatic component import + on-demand styles with `vite-plugin-vuetify` rather than importing everything (https://vuetifyjs.com/en/features/treeshaking/).
|
|
43
|
+
- Define themes and brand colors centrally in `createVuetify({ theme })`, not per-component overrides (https://vuetifyjs.com/en/features/theme/).
|
|
44
|
+
- Wrap the app in a single `<v-app>` and use `v-main` for routed content so layout components position correctly (https://vuetifyjs.com/en/features/application-layout/).
|
|
45
|
+
|
|
46
|
+
## Common pitfalls
|
|
47
|
+
- Components render unstyled / overlays mis-position → app not wrapped in `<v-app>`, or `vuetify/styles` not imported.
|
|
48
|
+
- Bundle is huge → globally registering all components; switch to `vite-plugin-vuetify` auto-import.
|
|
49
|
+
- Theme colors not applying → set them in `createVuetify({ theme })` config, not ad-hoc CSS, and reference via `color="primary"`.
|
|
50
|
+
|
|
51
|
+
## Examples
|
|
52
|
+
```js
|
|
53
|
+
// main.js
|
|
54
|
+
import { createApp } from 'vue'
|
|
55
|
+
import App from './App.vue'
|
|
56
|
+
import 'vuetify/styles'
|
|
57
|
+
import { createVuetify } from 'vuetify'
|
|
58
|
+
import * as components from 'vuetify/components'
|
|
59
|
+
import * as directives from 'vuetify/directives'
|
|
60
|
+
|
|
61
|
+
const vuetify = createVuetify({
|
|
62
|
+
components,
|
|
63
|
+
directives,
|
|
64
|
+
theme: { defaultTheme: 'dark' },
|
|
65
|
+
})
|
|
66
|
+
|
|
67
|
+
createApp(App).use(vuetify).mount('#app')
|
|
68
|
+
```
|
|
69
|
+
```vue
|
|
70
|
+
<!-- App.vue -->
|
|
71
|
+
<template>
|
|
72
|
+
<v-app>
|
|
73
|
+
<v-main>
|
|
74
|
+
<v-container>
|
|
75
|
+
<v-btn color="primary">Click me</v-btn>
|
|
76
|
+
</v-container>
|
|
77
|
+
</v-main>
|
|
78
|
+
</v-app>
|
|
79
|
+
</template>
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
## Further reading
|
|
83
|
+
- https://vuetifyjs.com/en/components/all/ — full component API reference
|
|
84
|
+
- https://vuetifyjs.com/en/features/theme/ — theme and color configuration
|
|
85
|
+
- https://vuetifyjs.com/en/features/treeshaking/ — auto-import and bundle optimization
|
|
86
|
+
|
|
87
|
+
## Related skills
|
|
88
|
+
- ../bootstrap — non-Vue component framework alternative
|
|
89
|
+
- ../tailwind — utility-first CSS often paired with Vue
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: cypress
|
|
3
|
+
description: Cypress is a JavaScript end-to-end and component testing tool that runs in a real browser with a time-travel debugger, automatic waiting, and network stubbing; consult when writing E2E or component tests, using cy commands and fixtures, intercepting network requests, or configuring cypress.config.
|
|
4
|
+
domain: stack
|
|
5
|
+
category: testing
|
|
6
|
+
tags: [cypress, e2e, javascript, browser-testing, component-testing, automation, web]
|
|
7
|
+
official_sources:
|
|
8
|
+
- https://docs.cypress.io/app/get-started/why-cypress
|
|
9
|
+
- https://github.com/cypress-io/cypress
|
|
10
|
+
- https://www.npmjs.com/package/cypress
|
|
11
|
+
verified: 2026-06-17
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Cypress
|
|
15
|
+
|
|
16
|
+
## Overview
|
|
17
|
+
Cypress is an open-source, JavaScript-based testing tool that runs end-to-end, component, and integration tests directly inside the browser alongside your app. It executes in the same run loop as the page, giving automatic waiting, time-travel snapshots, and direct DOM/network control. Read this when writing E2E or component tests, stubbing network calls, debugging flaky selectors, or configuring the Cypress runner.
|
|
18
|
+
|
|
19
|
+
## Official sources
|
|
20
|
+
- Docs: https://docs.cypress.io/app/get-started/why-cypress
|
|
21
|
+
- Repo: https://github.com/cypress-io/cypress
|
|
22
|
+
- Install: https://www.npmjs.com/package/cypress
|
|
23
|
+
|
|
24
|
+
## Install / setup
|
|
25
|
+
```bash
|
|
26
|
+
npm install cypress --save-dev
|
|
27
|
+
```
|
|
28
|
+
Source: https://docs.cypress.io/app/get-started/install-cypress (open the runner with `npx cypress open`; requires Node.js 20.x, 22.x, or >=24.x).
|
|
29
|
+
|
|
30
|
+
## Core concepts
|
|
31
|
+
- **`cy` commands** — chained, retriable async actions like `cy.visit()`, `cy.get()`, `cy.click()`.
|
|
32
|
+
- **Automatic retry/waiting** — queries retry until assertions pass, removing most manual waits.
|
|
33
|
+
- **Selectors** — prefer `data-*` attributes via `cy.get('[data-cy=...]')` for stable targeting.
|
|
34
|
+
- **Fixtures** — load static JSON test data with `cy.fixture()`.
|
|
35
|
+
- **Network control** — `cy.intercept()` stubs, spies on, and asserts HTTP requests/responses.
|
|
36
|
+
- **Component testing** — mount framework components in isolation (React, Vue, Angular, Svelte).
|
|
37
|
+
- **Time-travel** — the runner snapshots each command for step-by-step DOM inspection.
|
|
38
|
+
- **Config** — `cypress.config.js` defines `baseUrl`, specs, viewport, and env per testing type.
|
|
39
|
+
|
|
40
|
+
## Best practices
|
|
41
|
+
- Target elements with dedicated `data-*` attributes, not CSS/text (https://docs.cypress.io/app/core-concepts/best-practices).
|
|
42
|
+
- Do not assign command return values to vars; chain or use aliases (https://docs.cypress.io/app/core-concepts/variables-and-aliases).
|
|
43
|
+
- Set state via API/`cy.request` or tasks rather than UI for speed (https://docs.cypress.io/app/core-concepts/best-practices).
|
|
44
|
+
- Avoid arbitrary `cy.wait(ms)`; wait on aliased routes instead (https://docs.cypress.io/api/commands/wait).
|
|
45
|
+
|
|
46
|
+
## Common pitfalls
|
|
47
|
+
- Mixing async/await with `cy` chains → use Cypress's command queue and `.then()`, not promises.
|
|
48
|
+
- Tests depend on prior test state → make each spec independent and reset between tests.
|
|
49
|
+
- Flaky `cy.wait(5000)` sleeps → `cy.intercept` a route, alias it, and `cy.wait('@alias')`.
|
|
50
|
+
|
|
51
|
+
## Examples
|
|
52
|
+
```js
|
|
53
|
+
describe('home page', () => {
|
|
54
|
+
it('loads and shows the heading', () => {
|
|
55
|
+
cy.visit('/');
|
|
56
|
+
cy.get('[data-cy=heading]').should('contain', 'Welcome');
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Further reading
|
|
62
|
+
- https://docs.cypress.io/api/table-of-contents — full command and assertion API
|
|
63
|
+
- https://docs.cypress.io/app/core-concepts/best-practices — official best-practices guide
|
|
64
|
+
|
|
65
|
+
## Related skills
|
|
66
|
+
- ../playwright — alternative cross-browser E2E framework with multi-context support
|
|
67
|
+
- ../selenium — WebDriver-based browser automation across languages
|
|
68
|
+
- ../puppeteer — lower-level Chrome/Firefox automation library
|