constellai 0.3.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 +54 -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 +346 -0
- package/.next/required-server-files.json +346 -0
- package/.next/routes-manifest.json +368 -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)/design/page.js +354 -0
- package/.next/server/app/(app)/design/page.js.nft.json +1 -0
- package/.next/server/app/(app)/design/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 +22 -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 +12 -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 +13 -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 +2 -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 +53 -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/health/route.js +1 -0
- package/.next/server/app/api/health/route.js.nft.json +1 -0
- package/.next/server/app/api/health/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 +133 -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 +54 -0
- package/.next/server/chunks/1249.js +910 -0
- package/.next/server/chunks/1388.js +1 -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/1845.js +462 -0
- package/.next/server/chunks/2341.js +1 -0
- package/.next/server/chunks/2517.js +1 -0
- package/.next/server/chunks/259.js +119 -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/288.js +1 -0
- package/.next/server/chunks/2939.js +12 -0
- package/.next/server/chunks/2960.js +14 -0
- package/.next/server/chunks/3050.js +18 -0
- package/.next/server/chunks/3056.js +1 -0
- package/.next/server/chunks/3131.js +1 -0
- package/.next/server/chunks/3234.js +869 -0
- package/.next/server/chunks/3243.js +67 -0
- package/.next/server/chunks/3266.js +15 -0
- package/.next/server/chunks/3440.js +1 -0
- package/.next/server/chunks/3550.js +1 -0
- package/.next/server/chunks/3609.js +2 -0
- package/.next/server/chunks/3882.js +417 -0
- package/.next/server/chunks/4302.js +26 -0
- package/.next/server/chunks/4616.js +479 -0
- package/.next/server/chunks/4619.js +1 -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/4979.js +67 -0
- package/.next/server/chunks/5060.js +1 -0
- package/.next/server/chunks/5181.js +1 -0
- package/.next/server/chunks/5278.js +1 -0
- package/.next/server/chunks/5614.js +1 -0
- package/.next/server/chunks/6431.js +1 -0
- package/.next/server/chunks/6479.js +1 -0
- package/.next/server/chunks/658.js +14 -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/683.js +1 -0
- package/.next/server/chunks/6873.js +1 -0
- package/.next/server/chunks/7037.js +1 -0
- package/.next/server/chunks/73.js +17 -0
- package/.next/server/chunks/7336.js +1 -0
- package/.next/server/chunks/7514.js +1 -0
- package/.next/server/chunks/7589.js +22 -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/7976.js +1 -0
- package/.next/server/chunks/7989.js +1 -0
- package/.next/server/chunks/834.js +4 -0
- package/.next/server/chunks/8497.js +1 -0
- package/.next/server/chunks/850.js +1 -0
- package/.next/server/chunks/8561.js +22 -0
- package/.next/server/chunks/8623.js +1 -0
- package/.next/server/chunks/8762.js +15 -0
- package/.next/server/chunks/8823.js +85 -0
- package/.next/server/chunks/9459.js +21 -0
- package/.next/server/chunks/9676.js +1 -0
- package/.next/server/chunks/9680.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/T0ETI55t9tc9pi5i_CGOe/_buildManifest.js +1 -0
- package/.next/static/T0ETI55t9tc9pi5i_CGOe/_ssgManifest.js +1 -0
- package/.next/static/chunks/2237-2a30470119df8616.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-9684aa1c634212de.js +1 -0
- package/.next/static/chunks/4263-adecb5b466380b6e.js +1 -0
- package/.next/static/chunks/5920.6451a68b63918988.js +1 -0
- package/.next/static/chunks/6834-4759af1ce7d95fb6.js +32 -0
- package/.next/static/chunks/7268-ac23e9901bf535af.js +4 -0
- package/.next/static/chunks/7509.721cd47a931c5518.js +1 -0
- package/.next/static/chunks/7555-d2209e697b0a798e.js +1 -0
- package/.next/static/chunks/8370-db3280cb1ba67bcd.js +12 -0
- package/.next/static/chunks/9219-4a39a98b5502d9d1.js +1 -0
- package/.next/static/chunks/9562-4b50b4e408bc0a42.js +1 -0
- package/.next/static/chunks/9690-53d5222618cbeddb.js +1 -0
- package/.next/static/chunks/9846-c853e71d4d8fbb80.js +1 -0
- package/.next/static/chunks/9950-703805abe4653068.js +1 -0
- package/.next/static/chunks/app/(app)/activity/page-f06add40c3785686.js +1 -0
- package/.next/static/chunks/app/(app)/agents/[handle]/page-2ddf1f9908c73eb1.js +1 -0
- package/.next/static/chunks/app/(app)/code/page-ef9dceeae728b9d1.js +1 -0
- package/.next/static/chunks/app/(app)/config/page-496e569efd86e75c.js +1 -0
- package/.next/static/chunks/app/(app)/costs/page-675f542fdd517bee.js +1 -0
- package/.next/static/chunks/app/(app)/cron/page-80a87a05492c0ffe.js +1 -0
- package/.next/static/chunks/app/(app)/dashboard/page-4bddca6808a3be40.js +1 -0
- package/.next/static/chunks/app/(app)/design/page-e0fd071fb7144c46.js +558 -0
- package/.next/static/chunks/app/(app)/docs/[id]/page-f05e389793127500.js +1 -0
- package/.next/static/chunks/app/(app)/docs/page-f6bbf5c6b9104cbe.js +1 -0
- package/.next/static/chunks/app/(app)/error-988cd28480809861.js +1 -0
- package/.next/static/chunks/app/(app)/github/page-5297c806ce6afa9b.js +1 -0
- package/.next/static/chunks/app/(app)/goals/page-3fa53e8541c8e9fc.js +1 -0
- package/.next/static/chunks/app/(app)/inbox/page-a2a74b5f6a6c326e.js +12 -0
- package/.next/static/chunks/app/(app)/knowledge/page-fb11b2bfa9ecd9a4.js +1 -0
- package/.next/static/chunks/app/(app)/layout-b74cd565406964d5.js +1 -0
- package/.next/static/chunks/app/(app)/models/page-c8acfc3d353fd9d0.js +1 -0
- package/.next/static/chunks/app/(app)/notifications/page-05a094d02d23f455.js +12 -0
- package/.next/static/chunks/app/(app)/org/page-883d6aa98b593c6b.js +12 -0
- package/.next/static/chunks/app/(app)/organizations/page-4595e8fa86ca3c01.js +1 -0
- package/.next/static/chunks/app/(app)/page-21d47e76fe9a6c63.js +1 -0
- package/.next/static/chunks/app/(app)/planner/page-1fc32005d05bbe69.js +1 -0
- package/.next/static/chunks/app/(app)/plugins/page-454613b9f5cb1d3d.js +1 -0
- package/.next/static/chunks/app/(app)/pm/page-8473da305f4c2880.js +1 -0
- package/.next/static/chunks/app/(app)/prepare-deploy/page-3ba948f5557dea38.js +1 -0
- package/.next/static/chunks/app/(app)/profile/page-05f25516fea20762.js +1 -0
- package/.next/static/chunks/app/(app)/pulse/page-540a80dbaf61453d.js +1 -0
- package/.next/static/chunks/app/(app)/reports/[id]/page-80a87a05492c0ffe.js +1 -0
- package/.next/static/chunks/app/(app)/reports/page-de1e69ca09d7cabb.js +1 -0
- package/.next/static/chunks/app/(app)/routines/page-83085c9ba3584ec9.js +1 -0
- package/.next/static/chunks/app/(app)/search/page-8769fd9075e21e36.js +1 -0
- package/.next/static/chunks/app/(app)/security/page-1baa88dc61c3fab8.js +1 -0
- package/.next/static/chunks/app/(app)/skills/page-fa75c290b456c629.js +1 -0
- package/.next/static/chunks/app/(app)/tasks/page-1eb62689244c8a79.js +1 -0
- package/.next/static/chunks/app/(app)/test-dev/page-c496b31087389906.js +1 -0
- package/.next/static/chunks/app/(app)/update/page-5a217e6479bc5289.js +1 -0
- package/.next/static/chunks/app/(auth)/login/page-ad50e3112f35f41c.js +1 -0
- package/.next/static/chunks/app/(auth)/onboarding/page-ab05f02e868c9eec.js +1 -0
- package/.next/static/chunks/app/_global-error/page-eacef2b697bd0982.js +1 -0
- package/.next/static/chunks/app/_not-found/page-dc38b02aebeab535.js +1 -0
- package/.next/static/chunks/app/api/auth/[...all]/route-eacef2b697bd0982.js +1 -0
- package/.next/static/chunks/app/api/cron/tick/route-eacef2b697bd0982.js +1 -0
- package/.next/static/chunks/app/api/health/route-eacef2b697bd0982.js +1 -0
- package/.next/static/chunks/app/api/locks/acquire/route-eacef2b697bd0982.js +1 -0
- package/.next/static/chunks/app/api/models/progress/route-eacef2b697bd0982.js +1 -0
- package/.next/static/chunks/app/api/passkey/authenticate/options/route-eacef2b697bd0982.js +1 -0
- package/.next/static/chunks/app/api/passkey/authenticate/verify/route-eacef2b697bd0982.js +1 -0
- package/.next/static/chunks/app/api/passkey/register/options/route-eacef2b697bd0982.js +1 -0
- package/.next/static/chunks/app/api/passkey/register/verify/route-eacef2b697bd0982.js +1 -0
- package/.next/static/chunks/app/api/stream/route-eacef2b697bd0982.js +1 -0
- package/.next/static/chunks/app/api/sync/file/route-eacef2b697bd0982.js +1 -0
- package/.next/static/chunks/app/api/telegram/poll/route-eacef2b697bd0982.js +1 -0
- package/.next/static/chunks/app/api/upload/route-eacef2b697bd0982.js +1 -0
- package/.next/static/chunks/app/api/v1/[[...path]]/route-eacef2b697bd0982.js +1 -0
- package/.next/static/chunks/app/error-09899a13c38b6e89.js +1 -0
- package/.next/static/chunks/app/global-error-c2ea8fef715f226d.js +1 -0
- package/.next/static/chunks/app/layout-e6008e66aea1a849.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-eacef2b697bd0982.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/forbidden-eacef2b697bd0982.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/not-found-eacef2b697bd0982.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-eacef2b697bd0982.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/e7b568809d5d9c72.css +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)/design/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/health/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 +211 -0
- package/.next/types/package.json +1 -0
- package/.next/types/routes.d.ts +121 -0
- package/.next/types/validator.ts +520 -0
- package/CHANGELOG.md +1084 -0
- package/LICENSE +21 -0
- package/README.md +477 -0
- package/README.pt-BR.md +487 -0
- package/bin/constella-update.mjs +131 -0
- package/bin/constella.mjs +455 -0
- package/bin/guard-hook.mjs +44 -0
- package/bin/lock-hook.mjs +49 -0
- package/bin/worker.mjs +142 -0
- package/docs/UPDATE.md +150 -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/assets/screens/ceo-planner-specs.png +0 -0
- package/docs/assets/screens/ceo-planner.png +0 -0
- package/docs/assets/screens/dashboard.png +0 -0
- package/docs/assets/screens/design.png +0 -0
- package/docs/assets/screens/home.png +0 -0
- package/docs/assets/screens/knowledge-blocks.png +0 -0
- package/docs/assets/screens/knowledge.png +0 -0
- package/docs/assets/screens/models.png +0 -0
- package/docs/assets/screens/skills.png +0 -0
- package/docs/assets/screens/telegram.png +0 -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/CHAT_COMMANDS.md +305 -0
- package/docs/en/CONFIGURATION.md +340 -0
- package/docs/en/DEPLOY.md +341 -0
- package/docs/en/DESIGN.md +214 -0
- package/docs/en/DM.md +297 -0
- package/docs/en/FAQ.md +259 -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 +374 -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/OPERATIONS.md +212 -0
- package/docs/en/PLUGINS.md +290 -0
- package/docs/en/PORTABLE_MODE.md +391 -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 +98 -0
- package/docs/en/RELEASE_SMOKE.md +92 -0
- package/docs/en/SECURITY.md +280 -0
- package/docs/en/SKILLS.md +349 -0
- package/docs/en/START_MODE.md +285 -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 +324 -0
- package/docs/en/TROUBLESHOOTING.md +294 -0
- package/docs/en/UPDATE.md +320 -0
- package/docs/en/VPS_MODE.md +405 -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/CHAT_COMMANDS.md +307 -0
- package/docs/pt/CONFIGURATION.md +340 -0
- package/docs/pt/DEPLOY.md +341 -0
- package/docs/pt/DESIGN.md +215 -0
- package/docs/pt/DM.md +297 -0
- package/docs/pt/FAQ.md +259 -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 +374 -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/OPERATIONS.md +211 -0
- package/docs/pt/PLUGINS.md +290 -0
- package/docs/pt/PORTABLE_MODE.md +391 -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 +98 -0
- package/docs/pt/RELEASE_SMOKE.md +94 -0
- package/docs/pt/SECURITY.md +280 -0
- package/docs/pt/SKILLS.md +349 -0
- package/docs/pt/START_MODE.md +284 -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 +324 -0
- package/docs/pt/TROUBLESHOOTING.md +294 -0
- package/docs/pt/UPDATE.md +320 -0
- package/docs/pt/VPS_MODE.md +405 -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/0002_flimsy_kree.sql +48 -0
- package/drizzle/meta/0000_snapshot.json +4650 -0
- package/drizzle/meta/0001_snapshot.json +5418 -0
- package/drizzle/meta/0002_snapshot.json +5753 -0
- package/drizzle/meta/_journal.json +27 -0
- package/drizzle.config.mjs +16 -0
- package/next.config.mjs +21 -0
- package/package.json +139 -0
- package/scripts/clean-repo.mjs +20 -0
- package/scripts/dev-all.mjs +46 -0
- package/scripts/i18n-parity.mjs +57 -0
- package/scripts/install.sh +97 -0
- package/scripts/mcp-server.mjs +100 -0
- package/scripts/postbuild.mjs +11 -0
- package/scripts/postinstall.mjs +14 -0
- package/scripts/publish-public.mjs +116 -0
- package/scripts/smoke-login.mjs +138 -0
- package/scripts/start-all.mjs +45 -0
- package/scripts/trim-next.mjs +23 -0
- package/scripts/vps-clean.sh +66 -0
- package/scripts/vps-install.sh +84 -0
- package/scripts/vps-update.sh +28 -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/agentic/DESIGN.md +55 -0
- package/skills/design/agentic/SKILL.md +89 -0
- package/skills/design/ai-audio-collection-playbook/SKILL.md +48 -0
- package/skills/design/algorithmic-art/LICENSE.txt +202 -0
- package/skills/design/algorithmic-art/SKILL.md +405 -0
- package/skills/design/algorithmic-art/templates/generator_template.js +223 -0
- package/skills/design/algorithmic-art/templates/viewer.html +599 -0
- package/skills/design/animation-motion/SKILL.md +60 -0
- package/skills/design/answers-surface-playbook/SKILL.md +102 -0
- package/skills/design/answers-surface-playbook/example.html +517 -0
- package/skills/design/ant/DESIGN.md +55 -0
- package/skills/design/ant/SKILL.md +89 -0
- package/skills/design/apple-interface-guidelines-playbook/SKILL.md +48 -0
- package/skills/design/application/DESIGN.md +55 -0
- package/skills/design/application/SKILL.md +84 -0
- package/skills/design/artistic/DESIGN.md +55 -0
- package/skills/design/artistic/SKILL.md +89 -0
- package/skills/design/bento/DESIGN.md +55 -0
- package/skills/design/bento/SKILL.md +83 -0
- package/skills/design/bold/DESIGN.md +55 -0
- package/skills/design/bold/SKILL.md +83 -0
- package/skills/design/brand-guidelines/LICENSE.txt +202 -0
- package/skills/design/brand-guidelines/SKILL.md +73 -0
- package/skills/design/brutalism/DESIGN.md +55 -0
- package/skills/design/brutalism/SKILL.md +97 -0
- package/skills/design/cafe/DESIGN.md +55 -0
- package/skills/design/cafe/SKILL.md +83 -0
- package/skills/design/campaign-concept-playbook/SKILL.md +48 -0
- package/skills/design/capture-playbook/SKILL.md +48 -0
- package/skills/design/captures-growth-playbook/SKILL.md +48 -0
- package/skills/design/claude/DESIGN.md +55 -0
- package/skills/design/claude/SKILL.md +81 -0
- package/skills/design/claymorphism/DESIGN.md +55 -0
- package/skills/design/claymorphism/SKILL.md +84 -0
- package/skills/design/clean/DESIGN.md +55 -0
- package/skills/design/clean/SKILL.md +84 -0
- package/skills/design/codex/DESIGN.md +55 -0
- package/skills/design/codex/SKILL.md +81 -0
- package/skills/design/color-and-typography/SKILL.md +60 -0
- package/skills/design/colorful/DESIGN.md +55 -0
- package/skills/design/colorful/SKILL.md +82 -0
- package/skills/design/commerce-visual-flow-playbook/SKILL.md +281 -0
- package/skills/design/commerce-visual-flow-playbook/example.html +504 -0
- package/skills/design/commerce-visual-flow-quality-gate/SKILL.md +78 -0
- package/skills/design/commerce-visual-flow-quality-gate/example.html +504 -0
- package/skills/design/composition-advisory-playbook/SKILL.md +48 -0
- package/skills/design/composition-audit-playbook/SKILL.md +48 -0
- package/skills/design/composition-markdown-playbook/SKILL.md +48 -0
- package/skills/design/composition-prompt-playbook/SKILL.md +234 -0
- package/skills/design/composition-taste-interface-playbook/LICENSE +21 -0
- package/skills/design/composition-taste-interface-playbook/SKILL.md +1222 -0
- package/skills/design/composition-taste-interface-v1-playbook/LICENSE +21 -0
- package/skills/design/composition-taste-interface-v1-playbook/SKILL.md +242 -0
- package/skills/design/concept-lead-playbook/SKILL.md +73 -0
- package/skills/design/constella-design/SKILL.md +97 -0
- package/skills/design/contemporary/DESIGN.md +55 -0
- package/skills/design/contemporary/SKILL.md +83 -0
- package/skills/design/corporate/DESIGN.md +55 -0
- package/skills/design/corporate/SKILL.md +89 -0
- package/skills/design/cosmic/DESIGN.md +55 -0
- package/skills/design/cosmic/SKILL.md +83 -0
- package/skills/design/creative/DESIGN.md +55 -0
- package/skills/design/creative/SKILL.md +83 -0
- package/skills/design/css-techniques/SKILL.md +58 -0
- package/skills/design/d3-visualization-playbook/SKILL.md +56 -0
- package/skills/design/dashboard/DESIGN.md +55 -0
- package/skills/design/dashboard/SKILL.md +89 -0
- package/skills/design/deliverables-assembler-playbook/SKILL.md +48 -0
- package/skills/design/delivery-save-diagnostics-playbook/SKILL.md +69 -0
- package/skills/design/design-systems/SKILL.md +60 -0
- package/skills/design/dithered/DESIGN.md +55 -0
- package/skills/design/dithered/SKILL.md +87 -0
- package/skills/design/document-paper-scroll-playbook/SKILL.md +54 -0
- package/skills/design/document-paper-scroll-playbook/example.html +84 -0
- package/skills/design/document-paper-scroll-sample-worked-sample/SKILL.md +45 -0
- package/skills/design/document-paper-scroll-sample-worked-sample/example.html +84 -0
- package/skills/design/document-playbook/SKILL.md +48 -0
- package/skills/design/doodle/DESIGN.md +55 -0
- package/skills/design/doodle/SKILL.md +97 -0
- package/skills/design/dramatic/DESIGN.md +55 -0
- package/skills/design/dramatic/SKILL.md +83 -0
- package/skills/design/editorial/DESIGN.md +55 -0
- package/skills/design/editorial/SKILL.md +86 -0
- package/skills/design/eight-bit-orbital-motion-blueprint/SKILL.md +58 -0
- package/skills/design/eight-bit-orbital-motion-blueprint/assets/template.html +506 -0
- package/skills/design/eight-bit-orbital-motion-blueprint/example.html +43 -0
- package/skills/design/eight-bit-orbital-motion-blueprint-quality-gate/SKILL.md +40 -0
- package/skills/design/eight-bit-orbital-motion-blueprint-quality-gate/assets/template.html +506 -0
- package/skills/design/eight-bit-orbital-motion-blueprint-quality-gate/example.html +43 -0
- package/skills/design/elegant/DESIGN.md +55 -0
- package/skills/design/elegant/SKILL.md +83 -0
- package/skills/design/energetic/DESIGN.md +51 -0
- package/skills/design/energetic/SKILL.md +86 -0
- package/skills/design/enterprise/DESIGN.md +55 -0
- package/skills/design/enterprise/SKILL.md +88 -0
- package/skills/design/expressive/DESIGN.md +55 -0
- package/skills/design/expressive/SKILL.md +83 -0
- package/skills/design/fal-3d-playbook/SKILL.md +48 -0
- package/skills/design/fal-compose-playbook/SKILL.md +48 -0
- package/skills/design/fal-enhance-playbook/SKILL.md +48 -0
- package/skills/design/fal-kling-o3-playbook/SKILL.md +48 -0
- package/skills/design/fal-lip-sync-playbook/SKILL.md +48 -0
- package/skills/design/fal-live-playbook/SKILL.md +48 -0
- package/skills/design/fal-motion-edit-playbook/SKILL.md +48 -0
- package/skills/design/fal-repair-playbook/SKILL.md +48 -0
- package/skills/design/fal-train-playbook/SKILL.md +48 -0
- package/skills/design/fal-tryon-playbook/SKILL.md +48 -0
- package/skills/design/fal-vision-playbook/SKILL.md +48 -0
- package/skills/design/fal-visual-edit-playbook/SKILL.md +48 -0
- package/skills/design/fantasy/DESIGN.md +55 -0
- package/skills/design/fantasy/SKILL.md +83 -0
- package/skills/design/fiction/DESIGN.md +55 -0
- package/skills/design/fiction/SKILL.md +81 -0
- package/skills/design/field-journal-magazine-blueprint/SKILL.md +61 -0
- package/skills/design/field-journal-magazine-blueprint/assets/template.html +287 -0
- package/skills/design/field-journal-magazine-blueprint/example.html +138 -0
- package/skills/design/field-journal-magazine-blueprint-quality-gate/SKILL.md +47 -0
- package/skills/design/field-journal-magazine-blueprint-quality-gate/assets/template.html +287 -0
- package/skills/design/field-journal-magazine-blueprint-quality-gate/example.html +138 -0
- package/skills/design/figma-author-composition-system-rules-playbook/SKILL.md +48 -0
- package/skills/design/figma-author-fresh-file-playbook/SKILL.md +48 -0
- package/skills/design/figma-build-composition-playbook/SKILL.md +48 -0
- package/skills/design/figma-code-bridge-parts-playbook/SKILL.md +48 -0
- package/skills/design/figma-compose-composition-playbook/SKILL.md +48 -0
- package/skills/design/figma-compose-library-playbook/SKILL.md +48 -0
- package/skills/design/figma-operator-playbook/SKILL.md +48 -0
- package/skills/design/flat/DESIGN.md +55 -0
- package/skills/design/flat/SKILL.md +101 -0
- package/skills/design/flutter-motion-apps-playbook/SKILL.md +48 -0
- package/skills/design/friendly/DESIGN.md +55 -0
- package/skills/design/friendly/SKILL.md +83 -0
- package/skills/design/full-delivery-enforcement-playbook/LICENSE +21 -0
- package/skills/design/full-delivery-enforcement-playbook/SKILL.md +65 -0
- package/skills/design/full-surface-capture-playbook/SKILL.md +48 -0
- package/skills/design/futuristic/DESIGN.md +55 -0
- package/skills/design/futuristic/SKILL.md +83 -0
- package/skills/design/generative-visuals-playbook/SKILL.md +48 -0
- package/skills/design/gif-sticker-maker-playbook/SKILL.md +48 -0
- package/skills/design/glassmorphism/DESIGN.md +55 -0
- package/skills/design/glassmorphism/SKILL.md +86 -0
- package/skills/design/gpt-taste-playbook/LICENSE +21 -0
- package/skills/design/gpt-taste-playbook/SKILL.md +91 -0
- package/skills/design/gradient/DESIGN.md +55 -0
- package/skills/design/gradient/SKILL.md +83 -0
- package/skills/design/gradients/SKILL.md +59 -0
- package/skills/design/graphic-design-basics/SKILL.md +55 -0
- package/skills/design/grid-concept-mode-blueprint/SKILL.md +62 -0
- package/skills/design/grid-concept-mode-blueprint/assets/template.html +375 -0
- package/skills/design/grid-concept-mode-blueprint/example.html +70 -0
- package/skills/design/grid-concept-mode-blueprint-quality-gate/SKILL.md +52 -0
- package/skills/design/grid-concept-mode-blueprint-quality-gate/assets/template.html +375 -0
- package/skills/design/grid-concept-mode-blueprint-quality-gate/example.html +70 -0
- package/skills/design/grid-user-research-motion-blueprint/SKILL.md +63 -0
- package/skills/design/grid-user-research-motion-blueprint/assets/template.html +265 -0
- package/skills/design/grid-user-research-motion-blueprint/example.html +265 -0
- package/skills/design/grid-user-research-motion-blueprint-quality-gate/SKILL.md +43 -0
- package/skills/design/grid-user-research-motion-blueprint-quality-gate/assets/template.html +265 -0
- package/skills/design/grid-user-research-motion-blueprint-quality-gate/example.html +265 -0
- package/skills/design/growth-psychology-playbook/SKILL.md +48 -0
- package/skills/design/gsap-core-playbook/SKILL.md +271 -0
- package/skills/design/gsap-frameworks-playbook/SKILL.md +254 -0
- package/skills/design/gsap-plugins-playbook/SKILL.md +450 -0
- package/skills/design/gsap-react-playbook/SKILL.md +153 -0
- package/skills/design/gsap-scrolltrigger-playbook/SKILL.md +314 -0
- package/skills/design/gsap-speed-playbook/SKILL.md +96 -0
- package/skills/design/gsap-timeline-playbook/SKILL.md +124 -0
- package/skills/design/gsap-utilities-playbook/SKILL.md +301 -0
- package/skills/design/hand-sketched-diagrams-playbook/SKILL.md +48 -0
- package/skills/design/high-end-visual-composition-playbook/LICENSE +21 -0
- package/skills/design/high-end-visual-composition-playbook/SKILL.md +114 -0
- package/skills/design/html-slides-retro-quarterly-audit-playbook/SKILL.md +65 -0
- package/skills/design/html-slides-retro-quarterly-audit-playbook/assets/template.html +164 -0
- package/skills/design/html-slides-retro-quarterly-audit-playbook/example.html +139 -0
- package/skills/design/html-slides-retro-quarterly-audit-quality-gate/SKILL.md +42 -0
- package/skills/design/html-slides-retro-quarterly-audit-quality-gate/assets/template.html +164 -0
- package/skills/design/html-slides-retro-quarterly-audit-quality-gate/example.html +139 -0
- package/skills/design/ideation-playbook/SKILL.md +48 -0
- package/skills/design/identity-capture-playbook/SKILL.md +222 -0
- package/skills/design/identity-capture-playbook/templates/brand-kit.html +757 -0
- package/skills/design/identity-kit-playbook/LICENSE +21 -0
- package/skills/design/identity-kit-playbook/SKILL.md +814 -0
- package/skills/design/identity-standards-playbook/SKILL.md +48 -0
- package/skills/design/imagecraft-interface-mobile-playbook/LICENSE +21 -0
- package/skills/design/imagecraft-interface-mobile-playbook/SKILL.md +1482 -0
- package/skills/design/imagecraft-interface-web-playbook/LICENSE +21 -0
- package/skills/design/imagecraft-interface-web-playbook/SKILL.md +1003 -0
- package/skills/design/imagecraft-playbook/SKILL.md +48 -0
- package/skills/design/imagen-playbook/SKILL.md +48 -0
- package/skills/design/immersive/DESIGN.md +55 -0
- package/skills/design/immersive/SKILL.md +81 -0
- package/skills/design/impeccable/DESIGN.md +55 -0
- package/skills/design/impeccable/SKILL.md +81 -0
- package/skills/design/improve-prompt-playbook/SKILL.md +48 -0
- package/skills/design/industrial-raw-ui-playbook/LICENSE +21 -0
- package/skills/design/industrial-raw-ui-playbook/SKILL.md +108 -0
- package/skills/design/interface-builder-playbook/SKILL.md +48 -0
- package/skills/design/interface-composition-playbook/LICENSE.txt +177 -0
- package/skills/design/interface-composition-playbook/SKILL.md +80 -0
- package/skills/design/interface-playbook/SKILL.md +48 -0
- package/skills/design/interface-slides-playbook/SKILL.md +48 -0
- package/skills/design/late-hours-magazine-blueprint/SKILL.md +62 -0
- package/skills/design/late-hours-magazine-blueprint/assets/template.html +173 -0
- package/skills/design/late-hours-magazine-blueprint/example.html +12 -0
- package/skills/design/late-hours-magazine-blueprint-quality-gate/SKILL.md +44 -0
- package/skills/design/late-hours-magazine-blueprint-quality-gate/assets/template.html +173 -0
- package/skills/design/late-hours-magazine-blueprint-quality-gate/example.html +12 -0
- package/skills/design/levels/DESIGN.md +55 -0
- package/skills/design/levels/SKILL.md +83 -0
- package/skills/design/lingo/DESIGN.md +55 -0
- package/skills/design/lingo/SKILL.md +87 -0
- package/skills/design/luxury/DESIGN.md +55 -0
- package/skills/design/luxury/SKILL.md +83 -0
- package/skills/design/magazine-wine-rules-blueprint/SKILL.md +59 -0
- package/skills/design/magazine-wine-rules-blueprint/assets/template.html +94 -0
- package/skills/design/magazine-wine-rules-blueprint/example.html +49 -0
- package/skills/design/magazine-wine-rules-blueprint-quality-gate/SKILL.md +41 -0
- package/skills/design/magazine-wine-rules-blueprint-quality-gate/assets/template.html +94 -0
- package/skills/design/magazine-wine-rules-blueprint-quality-gate/example.html +49 -0
- package/skills/design/market-campaigns-extractor-playbook/SKILL.md +48 -0
- package/skills/design/material/DESIGN.md +55 -0
- package/skills/design/material/SKILL.md +97 -0
- package/skills/design/matrix/DESIGN.md +55 -0
- package/skills/design/matrix/SKILL.md +82 -0
- package/skills/design/messagecraft-playbook/SKILL.md +48 -0
- package/skills/design/metrics-brief-playbook/SKILL.md +33 -0
- package/skills/design/metrics-brief-playbook/example.html +175 -0
- package/skills/design/metrics-brief-sample-worked-sample/SKILL.md +37 -0
- package/skills/design/metrics-brief-sample-worked-sample/example.html +175 -0
- package/skills/design/microinteractions/SKILL.md +58 -0
- package/skills/design/minimal/DESIGN.md +55 -0
- package/skills/design/minimal/SKILL.md +83 -0
- package/skills/design/minimal-ui-playbook/LICENSE +21 -0
- package/skills/design/minimal-ui-playbook/SKILL.md +101 -0
- package/skills/design/minimax-pdf-playbook/SKILL.md +48 -0
- package/skills/design/minimax-word-playbook/SKILL.md +48 -0
- package/skills/design/mockup-device-3d-playbook/SKILL.md +49 -0
- package/skills/design/mockup-device-3d-playbook/example.html +193 -0
- package/skills/design/mockup-device-3d-sample-worked-sample/SKILL.md +34 -0
- package/skills/design/mockup-device-3d-sample-worked-sample/example.html +193 -0
- package/skills/design/modern/DESIGN.md +55 -0
- package/skills/design/modern/SKILL.md +83 -0
- package/skills/design/mono/DESIGN.md +55 -0
- package/skills/design/mono/SKILL.md +88 -0
- package/skills/design/motion-craft-motion-playbook/SKILL.md +52 -0
- package/skills/design/motion-hyperframes-playbook/SKILL.md +32 -0
- package/skills/design/motion-hyperframes-playbook/example.html +140 -0
- package/skills/design/motion-hyperframes-sample-worked-sample/SKILL.md +44 -0
- package/skills/design/motion-hyperframes-sample-worked-sample/example.html +140 -0
- package/skills/design/motion-retriever-playbook/SKILL.md +48 -0
- package/skills/design/naming-name-brainstormer-playbook/SKILL.md +48 -0
- package/skills/design/nanobanana-slides-playbook/SKILL.md +48 -0
- package/skills/design/neobrutalism/DESIGN.md +55 -0
- package/skills/design/neobrutalism/SKILL.md +83 -0
- package/skills/design/neon-style/DESIGN.md +55 -0
- package/skills/design/neon-style/SKILL.md +83 -0
- package/skills/design/neumorphism/DESIGN.md +55 -0
- package/skills/design/neumorphism/SKILL.md +88 -0
- package/skills/design/numbers-finance-grid-blueprint/SKILL.md +56 -0
- package/skills/design/numbers-finance-grid-blueprint/assets/template.html +111 -0
- package/skills/design/numbers-finance-grid-blueprint/example.html +44 -0
- package/skills/design/numbers-finance-grid-blueprint-quality-gate/SKILL.md +42 -0
- package/skills/design/numbers-finance-grid-blueprint-quality-gate/assets/template.html +111 -0
- package/skills/design/numbers-finance-grid-blueprint-quality-gate/example.html +44 -0
- package/skills/design/operator-navigator-playbook/SKILL.md +227 -0
- package/skills/design/operators-operator-journal-playbook/SKILL.md +73 -0
- package/skills/design/orientation-guide/SKILL.md +44 -0
- package/skills/design/pacman/DESIGN.md +55 -0
- package/skills/design/pacman/SKILL.md +84 -0
- package/skills/design/palette-advisor-playbook/SKILL.md +48 -0
- package/skills/design/paper/DESIGN.md +55 -0
- package/skills/design/paper/SKILL.md +83 -0
- package/skills/design/paywall-upgrade-conversion-playbook/SKILL.md +48 -0
- package/skills/design/pdf-playbook/SKILL.md +48 -0
- package/skills/design/perspective/DESIGN.md +55 -0
- package/skills/design/perspective/SKILL.md +83 -0
- package/skills/design/pet-companion-animation-rows-reference-guide/LICENSE.txt +201 -0
- package/skills/design/pet-companion-animation-rows-reference-guide/SKILL.md +48 -0
- package/skills/design/pet-companion-animation-rows-reference-guide/agents/openai.yaml +4 -0
- package/skills/design/pet-companion-animation-rows-reference-guide/scripts/compose_atlas.py +150 -0
- package/skills/design/pet-companion-animation-rows-reference-guide/scripts/derive_running_left_from_running_right.py +143 -0
- package/skills/design/pet-companion-animation-rows-reference-guide/scripts/extract_strip_frames.py +323 -0
- package/skills/design/pet-companion-animation-rows-reference-guide/scripts/finalize_pet_run.py +382 -0
- package/skills/design/pet-companion-animation-rows-reference-guide/scripts/generate_pet_images.py +295 -0
- package/skills/design/pet-companion-animation-rows-reference-guide/scripts/inspect_frames.py +246 -0
- package/skills/design/pet-companion-animation-rows-reference-guide/scripts/make_contact_sheet.py +96 -0
- package/skills/design/pet-companion-animation-rows-reference-guide/scripts/package_custom_pet.py +108 -0
- package/skills/design/pet-companion-animation-rows-reference-guide/scripts/pet_job_status.py +117 -0
- package/skills/design/pet-companion-animation-rows-reference-guide/scripts/prepare_pet_run.py +674 -0
- package/skills/design/pet-companion-animation-rows-reference-guide/scripts/queue_pet_repairs.py +172 -0
- package/skills/design/pet-companion-animation-rows-reference-guide/scripts/record_imagegen_result.py +250 -0
- package/skills/design/pet-companion-animation-rows-reference-guide/scripts/render_animation_videos.py +134 -0
- package/skills/design/pet-companion-animation-rows-reference-guide/scripts/render_animation_videos.sh +5 -0
- package/skills/design/pet-companion-animation-rows-reference-guide/scripts/test_generate_pet_images.py +136 -0
- package/skills/design/pet-companion-animation-rows-reference-guide/scripts/validate_atlas.py +139 -0
- package/skills/design/pet-companion-codex-companion-contract-reference-guide/LICENSE.txt +201 -0
- package/skills/design/pet-companion-codex-companion-contract-reference-guide/SKILL.md +54 -0
- package/skills/design/pet-companion-codex-companion-contract-reference-guide/agents/openai.yaml +4 -0
- package/skills/design/pet-companion-codex-companion-contract-reference-guide/scripts/compose_atlas.py +150 -0
- package/skills/design/pet-companion-codex-companion-contract-reference-guide/scripts/derive_running_left_from_running_right.py +143 -0
- package/skills/design/pet-companion-codex-companion-contract-reference-guide/scripts/extract_strip_frames.py +323 -0
- package/skills/design/pet-companion-codex-companion-contract-reference-guide/scripts/finalize_pet_run.py +382 -0
- package/skills/design/pet-companion-codex-companion-contract-reference-guide/scripts/generate_pet_images.py +295 -0
- package/skills/design/pet-companion-codex-companion-contract-reference-guide/scripts/inspect_frames.py +246 -0
- package/skills/design/pet-companion-codex-companion-contract-reference-guide/scripts/make_contact_sheet.py +96 -0
- package/skills/design/pet-companion-codex-companion-contract-reference-guide/scripts/package_custom_pet.py +108 -0
- package/skills/design/pet-companion-codex-companion-contract-reference-guide/scripts/pet_job_status.py +117 -0
- package/skills/design/pet-companion-codex-companion-contract-reference-guide/scripts/prepare_pet_run.py +674 -0
- package/skills/design/pet-companion-codex-companion-contract-reference-guide/scripts/queue_pet_repairs.py +172 -0
- package/skills/design/pet-companion-codex-companion-contract-reference-guide/scripts/record_imagegen_result.py +250 -0
- package/skills/design/pet-companion-codex-companion-contract-reference-guide/scripts/render_animation_videos.py +134 -0
- package/skills/design/pet-companion-codex-companion-contract-reference-guide/scripts/render_animation_videos.sh +5 -0
- package/skills/design/pet-companion-codex-companion-contract-reference-guide/scripts/test_generate_pet_images.py +136 -0
- package/skills/design/pet-companion-codex-companion-contract-reference-guide/scripts/validate_atlas.py +139 -0
- package/skills/design/pet-companion-orientation-guide/LICENSE.txt +201 -0
- package/skills/design/pet-companion-orientation-guide/SKILL.md +75 -0
- package/skills/design/pet-companion-orientation-guide/agents/openai.yaml +4 -0
- package/skills/design/pet-companion-orientation-guide/scripts/compose_atlas.py +150 -0
- package/skills/design/pet-companion-orientation-guide/scripts/derive_running_left_from_running_right.py +143 -0
- package/skills/design/pet-companion-orientation-guide/scripts/extract_strip_frames.py +323 -0
- package/skills/design/pet-companion-orientation-guide/scripts/finalize_pet_run.py +382 -0
- package/skills/design/pet-companion-orientation-guide/scripts/generate_pet_images.py +295 -0
- package/skills/design/pet-companion-orientation-guide/scripts/inspect_frames.py +246 -0
- package/skills/design/pet-companion-orientation-guide/scripts/make_contact_sheet.py +96 -0
- package/skills/design/pet-companion-orientation-guide/scripts/package_custom_pet.py +108 -0
- package/skills/design/pet-companion-orientation-guide/scripts/pet_job_status.py +117 -0
- package/skills/design/pet-companion-orientation-guide/scripts/prepare_pet_run.py +674 -0
- package/skills/design/pet-companion-orientation-guide/scripts/queue_pet_repairs.py +172 -0
- package/skills/design/pet-companion-orientation-guide/scripts/record_imagegen_result.py +250 -0
- package/skills/design/pet-companion-orientation-guide/scripts/render_animation_videos.py +134 -0
- package/skills/design/pet-companion-orientation-guide/scripts/render_animation_videos.sh +5 -0
- package/skills/design/pet-companion-orientation-guide/scripts/test_generate_pet_images.py +136 -0
- package/skills/design/pet-companion-orientation-guide/scripts/validate_atlas.py +139 -0
- package/skills/design/pet-companion-playbook/LICENSE.txt +201 -0
- package/skills/design/pet-companion-playbook/SKILL.md +344 -0
- package/skills/design/pet-companion-playbook/agents/openai.yaml +4 -0
- package/skills/design/pet-companion-playbook/scripts/compose_atlas.py +150 -0
- package/skills/design/pet-companion-playbook/scripts/derive_running_left_from_running_right.py +143 -0
- package/skills/design/pet-companion-playbook/scripts/extract_strip_frames.py +323 -0
- package/skills/design/pet-companion-playbook/scripts/finalize_pet_run.py +382 -0
- package/skills/design/pet-companion-playbook/scripts/generate_pet_images.py +295 -0
- package/skills/design/pet-companion-playbook/scripts/inspect_frames.py +246 -0
- package/skills/design/pet-companion-playbook/scripts/make_contact_sheet.py +96 -0
- package/skills/design/pet-companion-playbook/scripts/package_custom_pet.py +108 -0
- package/skills/design/pet-companion-playbook/scripts/pet_job_status.py +117 -0
- package/skills/design/pet-companion-playbook/scripts/prepare_pet_run.py +674 -0
- package/skills/design/pet-companion-playbook/scripts/queue_pet_repairs.py +172 -0
- package/skills/design/pet-companion-playbook/scripts/record_imagegen_result.py +250 -0
- package/skills/design/pet-companion-playbook/scripts/render_animation_videos.py +134 -0
- package/skills/design/pet-companion-playbook/scripts/render_animation_videos.sh +5 -0
- package/skills/design/pet-companion-playbook/scripts/test_generate_pet_images.py +136 -0
- package/skills/design/pet-companion-playbook/scripts/validate_atlas.py +139 -0
- package/skills/design/pet-companion-qa-rubric-reference-guide/LICENSE.txt +201 -0
- package/skills/design/pet-companion-qa-rubric-reference-guide/SKILL.md +79 -0
- package/skills/design/pet-companion-qa-rubric-reference-guide/agents/openai.yaml +4 -0
- package/skills/design/pet-companion-qa-rubric-reference-guide/scripts/compose_atlas.py +150 -0
- package/skills/design/pet-companion-qa-rubric-reference-guide/scripts/derive_running_left_from_running_right.py +143 -0
- package/skills/design/pet-companion-qa-rubric-reference-guide/scripts/extract_strip_frames.py +323 -0
- package/skills/design/pet-companion-qa-rubric-reference-guide/scripts/finalize_pet_run.py +382 -0
- package/skills/design/pet-companion-qa-rubric-reference-guide/scripts/generate_pet_images.py +295 -0
- package/skills/design/pet-companion-qa-rubric-reference-guide/scripts/inspect_frames.py +246 -0
- package/skills/design/pet-companion-qa-rubric-reference-guide/scripts/make_contact_sheet.py +96 -0
- package/skills/design/pet-companion-qa-rubric-reference-guide/scripts/package_custom_pet.py +108 -0
- package/skills/design/pet-companion-qa-rubric-reference-guide/scripts/pet_job_status.py +117 -0
- package/skills/design/pet-companion-qa-rubric-reference-guide/scripts/prepare_pet_run.py +674 -0
- package/skills/design/pet-companion-qa-rubric-reference-guide/scripts/queue_pet_repairs.py +172 -0
- package/skills/design/pet-companion-qa-rubric-reference-guide/scripts/record_imagegen_result.py +250 -0
- package/skills/design/pet-companion-qa-rubric-reference-guide/scripts/render_animation_videos.py +134 -0
- package/skills/design/pet-companion-qa-rubric-reference-guide/scripts/render_animation_videos.sh +5 -0
- package/skills/design/pet-companion-qa-rubric-reference-guide/scripts/test_generate_pet_images.py +136 -0
- package/skills/design/pet-companion-qa-rubric-reference-guide/scripts/validate_atlas.py +139 -0
- package/skills/design/pixelbin-media-playbook/SKILL.md +48 -0
- package/skills/design/planning-composition-audit-playbook/SKILL.md +48 -0
- package/skills/design/platform-composition-playbook/SKILL.md +48 -0
- package/skills/design/polish-composition-finish-playbook/SKILL.md +54 -0
- package/skills/design/poster-hero-playbook/SKILL.md +31 -0
- package/skills/design/poster-hero-playbook/example.html +88 -0
- package/skills/design/poster-hero-sample-worked-sample/SKILL.md +32 -0
- package/skills/design/poster-hero-sample-worked-sample/example.html +88 -0
- package/skills/design/pr-feedback-quality-gate/SKILL.md +57 -0
- package/skills/design/premium/DESIGN.md +55 -0
- package/skills/design/premium/SKILL.md +83 -0
- package/skills/design/presentation-composer-playbook/SKILL.md +48 -0
- package/skills/design/presentation-html-fidelity-audit-font-discipline-aa2caa/SKILL.md +382 -0
- package/skills/design/presentation-html-fidelity-audit-font-discipline-aa2caa/scripts/extract_pptx.py +134 -0
- package/skills/design/presentation-html-fidelity-audit-font-discipline-aa2caa/scripts/verify_layout.py +144 -0
- package/skills/design/presentation-html-fidelity-audit-layout-discipline-d5a323/SKILL.md +390 -0
- package/skills/design/presentation-html-fidelity-audit-layout-discipline-d5a323/scripts/extract_pptx.py +134 -0
- package/skills/design/presentation-html-fidelity-audit-layout-discipline-d5a323/scripts/verify_layout.py +144 -0
- package/skills/design/presentation-html-fidelity-audit-playbook/SKILL.md +257 -0
- package/skills/design/presentation-html-fidelity-audit-playbook/scripts/extract_pptx.py +134 -0
- package/skills/design/presentation-html-fidelity-audit-playbook/scripts/verify_layout.py +144 -0
- package/skills/design/presentation-html-fidelity-audit-table-blueprint-1ad2ac/SKILL.md +77 -0
- package/skills/design/presentation-html-fidelity-audit-table-blueprint-1ad2ac/scripts/extract_pptx.py +134 -0
- package/skills/design/presentation-html-fidelity-audit-table-blueprint-1ad2ac/scripts/verify_layout.py +144 -0
- package/skills/design/presentation-playbook/SKILL.md +48 -0
- package/skills/design/professional/DESIGN.md +55 -0
- package/skills/design/professional/SKILL.md +83 -0
- package/skills/design/publication/DESIGN.md +55 -0
- package/skills/design/publication/SKILL.md +89 -0
- package/skills/design/reading-year-in-audit-motion-blueprint/SKILL.md +76 -0
- package/skills/design/reading-year-in-audit-motion-blueprint/assets/template.html +714 -0
- package/skills/design/reading-year-in-audit-motion-blueprint/example.html +63 -0
- package/skills/design/reading-year-in-audit-motion-blueprint-quality-gate/SKILL.md +45 -0
- package/skills/design/reading-year-in-audit-motion-blueprint-quality-gate/assets/template.html +714 -0
- package/skills/design/reading-year-in-audit-motion-blueprint-quality-gate/example.html +63 -0
- package/skills/design/reference-composition-contract-playbook/SKILL.md +97 -0
- package/skills/design/reference-composition-contract-playbook/example.html +236 -0
- package/skills/design/reference-composition-contract-quality-gate/SKILL.md +45 -0
- package/skills/design/reference-composition-contract-quality-gate/example.html +236 -0
- package/skills/design/refined/DESIGN.md +55 -0
- package/skills/design/refined/SKILL.md +83 -0
- package/skills/design/refresh-existing-projects-playbook/LICENSE +21 -0
- package/skills/design/refresh-existing-projects-playbook/SKILL.md +194 -0
- package/skills/design/release-journal-single-page-layouts-reference-guide/SKILL.md +318 -0
- package/skills/design/release-journal-single-page-layouts-reference-guide/assets/template.html +342 -0
- package/skills/design/release-journal-single-page-layouts-reference-guide/example.html +156 -0
- package/skills/design/release-journal-single-page-playbook/SKILL.md +100 -0
- package/skills/design/release-journal-single-page-playbook/assets/template.html +342 -0
- package/skills/design/release-journal-single-page-playbook/example.html +156 -0
- package/skills/design/release-journal-single-page-quality-gate/SKILL.md +60 -0
- package/skills/design/release-journal-single-page-quality-gate/assets/template.html +342 -0
- package/skills/design/release-journal-single-page-quality-gate/example.html +156 -0
- package/skills/design/remotion-playbook/SKILL.md +48 -0
- package/skills/design/replicate-playbook/SKILL.md +48 -0
- package/skills/design/research-decision-room-evidence-model-reference-guide/SKILL.md +96 -0
- package/skills/design/research-decision-room-evidence-model-reference-guide/example.html +890 -0
- package/skills/design/research-decision-room-playbook/SKILL.md +164 -0
- package/skills/design/research-decision-room-playbook/example.html +890 -0
- package/skills/design/research-decision-room-quality-gate/SKILL.md +66 -0
- package/skills/design/research-decision-room-quality-gate/example.html +890 -0
- package/skills/design/responsive-layout/SKILL.md +59 -0
- package/skills/design/resume-modern-playbook/SKILL.md +31 -0
- package/skills/design/resume-modern-playbook/example.html +122 -0
- package/skills/design/resume-modern-sample-worked-sample/SKILL.md +59 -0
- package/skills/design/resume-modern-sample-worked-sample/example.html +122 -0
- package/skills/design/retro/DESIGN.md +55 -0
- package/skills/design/retro/SKILL.md +83 -0
- package/skills/design/riso/DESIGN.md +55 -0
- package/skills/design/riso/SKILL.md +81 -0
- package/skills/design/scene-distortion-headline-playbook/SKILL.md +52 -0
- package/skills/design/scene-distortion-headline-playbook/example.html +99 -0
- package/skills/design/scene-distortion-headline-sample-worked-sample/SKILL.md +31 -0
- package/skills/design/scene-distortion-headline-sample-worked-sample/example.html +99 -0
- package/skills/design/scene-flow-notes/SKILL.md +51 -0
- package/skills/design/scene-flow-notes/example.html +137 -0
- package/skills/design/scene-flow-notes-sample-worked-sample/SKILL.md +32 -0
- package/skills/design/scene-flow-notes-sample-worked-sample/example.html +137 -0
- package/skills/design/scene-fluid-background-hero-playbook/SKILL.md +58 -0
- package/skills/design/scene-fluid-background-hero-playbook/example.html +64 -0
- package/skills/design/scene-fluid-background-hero-sample-worked-sample/SKILL.md +28 -0
- package/skills/design/scene-fluid-background-hero-sample-worked-sample/example.html +64 -0
- package/skills/design/scene-light-flare-cinema-playbook/SKILL.md +53 -0
- package/skills/design/scene-light-flare-cinema-playbook/example.html +81 -0
- package/skills/design/scene-light-flare-cinema-sample-worked-sample/SKILL.md +31 -0
- package/skills/design/scene-light-flare-cinema-sample-worked-sample/example.html +81 -0
- package/skills/design/scene-macos-alert-playbook/SKILL.md +57 -0
- package/skills/design/scene-macos-alert-playbook/example.html +60 -0
- package/skills/design/scene-macos-alert-sample-worked-sample/SKILL.md +29 -0
- package/skills/design/scene-macos-alert-sample-worked-sample/example.html +60 -0
- package/skills/design/scene-mark-ending-playbook/SKILL.md +49 -0
- package/skills/design/scene-mark-ending-playbook/example.html +80 -0
- package/skills/design/scene-mark-ending-sample-worked-sample/SKILL.md +31 -0
- package/skills/design/scene-mark-ending-sample-worked-sample/example.html +80 -0
- package/skills/design/scene-metrics-chart-nyt-playbook/SKILL.md +46 -0
- package/skills/design/scene-metrics-chart-nyt-playbook/example.html +101 -0
- package/skills/design/scene-metrics-chart-nyt-sample-worked-sample/SKILL.md +37 -0
- package/skills/design/scene-metrics-chart-nyt-sample-worked-sample/example.html +101 -0
- package/skills/design/sega/DESIGN.md +55 -0
- package/skills/design/sega/SKILL.md +81 -0
- package/skills/design/shadcn/DESIGN.md +55 -0
- package/skills/design/shadcn/SKILL.md +83 -0
- package/skills/design/shadcn-ui-playbook/SKILL.md +48 -0
- package/skills/design/shader-builder-playbook/SKILL.md +48 -0
- package/skills/design/signin-flow-playbook/SKILL.md +51 -0
- package/skills/design/signin-flow-playbook/example.html +362 -0
- package/skills/design/signin-flow-quality-gate/SKILL.md +38 -0
- package/skills/design/signin-flow-quality-gate/example.html +362 -0
- package/skills/design/simple/DESIGN.md +55 -0
- package/skills/design/simple/SKILL.md +83 -0
- package/skills/design/sketch/DESIGN.md +55 -0
- package/skills/design/sketch/SKILL.md +81 -0
- package/skills/design/skeumorphism/DESIGN.md +55 -0
- package/skills/design/skeumorphism/SKILL.md +97 -0
- package/skills/design/slack-gif-creator-playbook/SKILL.md +48 -0
- package/skills/design/sleek/DESIGN.md +55 -0
- package/skills/design/sleek/SKILL.md +83 -0
- package/skills/design/slides-grid-global-playbook/SKILL.md +65 -0
- package/skills/design/slides-grid-global-playbook/example.html +117 -0
- package/skills/design/slides-grid-global-sample-worked-sample/SKILL.md +34 -0
- package/skills/design/slides-grid-global-sample-worked-sample/example.html +117 -0
- package/skills/design/slides-guizang-magazine-playbook/SKILL.md +51 -0
- package/skills/design/slides-guizang-magazine-playbook/example.html +92 -0
- package/skills/design/slides-guizang-magazine-sample-worked-sample/SKILL.md +31 -0
- package/skills/design/slides-guizang-magazine-sample-worked-sample/example.html +92 -0
- package/skills/design/slides-keynote-playbook/SKILL.md +32 -0
- package/skills/design/slides-keynote-playbook/example.html +130 -0
- package/skills/design/slides-keynote-sample-worked-sample/SKILL.md +44 -0
- package/skills/design/slides-keynote-sample-worked-sample/example.html +130 -0
- package/skills/design/slides-live-canvas-workspace-playbook/SKILL.md +55 -0
- package/skills/design/slides-live-canvas-workspace-playbook/example.html +51 -0
- package/skills/design/slides-live-canvas-workspace-sample-worked-sample/SKILL.md +25 -0
- package/skills/design/slides-live-canvas-workspace-sample-worked-sample/example.html +51 -0
- package/skills/design/slides-playbook/SKILL.md +48 -0
- package/skills/design/social-reddit-tile-playbook/SKILL.md +54 -0
- package/skills/design/social-reddit-tile-playbook/example.html +56 -0
- package/skills/design/social-reddit-tile-sample-worked-sample/SKILL.md +27 -0
- package/skills/design/social-reddit-tile-sample-worked-sample/example.html +56 -0
- package/skills/design/social-spotify-tile-playbook/SKILL.md +53 -0
- package/skills/design/social-spotify-tile-playbook/example.html +70 -0
- package/skills/design/social-spotify-tile-sample-worked-sample/SKILL.md +29 -0
- package/skills/design/social-spotify-tile-sample-worked-sample/example.html +70 -0
- package/skills/design/social-x-post-tile-playbook/SKILL.md +51 -0
- package/skills/design/social-x-post-tile-playbook/example.html +53 -0
- package/skills/design/social-x-post-tile-sample-worked-sample/SKILL.md +30 -0
- package/skills/design/social-x-post-tile-sample-worked-sample/example.html +53 -0
- package/skills/design/sora-playbook/SKILL.md +48 -0
- package/skills/design/spacious/DESIGN.md +55 -0
- package/skills/design/spacious/SKILL.md +89 -0
- package/skills/design/speech-playbook/SKILL.md +48 -0
- package/skills/design/stitch-composition-taste-playbook/LICENSE +21 -0
- package/skills/design/stitch-composition-taste-playbook/SKILL.md +200 -0
- package/skills/design/stitch-loop-playbook/SKILL.md +48 -0
- package/skills/design/stitch-playbook-composition-journal/LICENSE +21 -0
- package/skills/design/stitch-playbook-composition-journal/SKILL.md +141 -0
- package/skills/design/story-publication-playbook/SKILL.md +32 -0
- package/skills/design/story-publication-playbook/example.html +81 -0
- package/skills/design/story-publication-sample-worked-sample/SKILL.md +57 -0
- package/skills/design/story-publication-sample-worked-sample/example.html +81 -0
- package/skills/design/storytelling/DESIGN.md +55 -0
- package/skills/design/storytelling/SKILL.md +83 -0
- package/skills/design/swiftui-composition-playbook/SKILL.md +48 -0
- package/skills/design/terracotta/DESIGN.md +55 -0
- package/skills/design/terracotta/SKILL.md +81 -0
- package/skills/design/tetris/DESIGN.md +55 -0
- package/skills/design/tetris/SKILL.md +83 -0
- package/skills/design/theme-factory/LICENSE.txt +202 -0
- package/skills/design/theme-factory/SKILL.md +59 -0
- package/skills/design/theme-factory/theme-showcase.pdf +0 -0
- package/skills/design/theme-factory/themes/arctic-frost.md +19 -0
- package/skills/design/theme-factory/themes/botanical-garden.md +19 -0
- package/skills/design/theme-factory/themes/desert-rose.md +19 -0
- package/skills/design/theme-factory/themes/forest-canopy.md +19 -0
- package/skills/design/theme-factory/themes/golden-hour.md +19 -0
- package/skills/design/theme-factory/themes/midnight-galaxy.md +19 -0
- package/skills/design/theme-factory/themes/modern-minimalist.md +19 -0
- package/skills/design/theme-factory/themes/ocean-depths.md +19 -0
- package/skills/design/theme-factory/themes/sunset-boulevard.md +19 -0
- package/skills/design/theme-factory/themes/tech-innovation.md +19 -0
- package/skills/design/theme-factory-playbook/SKILL.md +48 -0
- package/skills/design/threejs-playbook/SKILL.md +48 -0
- package/skills/design/tile-rednote-playbook/SKILL.md +31 -0
- package/skills/design/tile-rednote-playbook/example.html +98 -0
- package/skills/design/tile-rednote-sample-worked-sample/SKILL.md +46 -0
- package/skills/design/tile-rednote-sample-worked-sample/example.html +98 -0
- package/skills/design/tile-x-playbook/SKILL.md +31 -0
- package/skills/design/tile-x-playbook/example.html +58 -0
- package/skills/design/tile-x-sample-worked-sample/SKILL.md +24 -0
- package/skills/design/tile-x-sample-worked-sample/example.html +58 -0
- package/skills/design/ui-playbooks-playbook/SKILL.md +48 -0
- package/skills/design/ui-ux-principles/SKILL.md +58 -0
- package/skills/design/ui-ux-pro-max-playbook/SKILL.md +63 -0
- package/skills/design/uupm-banner-design/SKILL.md +196 -0
- package/skills/design/uupm-banner-design/references/banner-sizes-and-styles.md +118 -0
- package/skills/design/uupm-brand/SKILL.md +97 -0
- package/skills/design/uupm-brand/references/approval-checklist.md +169 -0
- package/skills/design/uupm-brand/references/asset-organization.md +157 -0
- package/skills/design/uupm-brand/references/brand-guideline-template.md +140 -0
- package/skills/design/uupm-brand/references/color-palette-management.md +186 -0
- package/skills/design/uupm-brand/references/consistency-checklist.md +94 -0
- package/skills/design/uupm-brand/references/logo-usage-rules.md +185 -0
- package/skills/design/uupm-brand/references/messaging-framework.md +85 -0
- package/skills/design/uupm-brand/references/typography-specifications.md +214 -0
- package/skills/design/uupm-brand/references/update.md +118 -0
- package/skills/design/uupm-brand/references/visual-identity.md +96 -0
- package/skills/design/uupm-brand/references/voice-framework.md +88 -0
- package/skills/design/uupm-brand/scripts/extract-colors.cjs +341 -0
- package/skills/design/uupm-brand/scripts/inject-brand-context.cjs +349 -0
- package/skills/design/uupm-brand/scripts/sync-brand-to-tokens.cjs +266 -0
- package/skills/design/uupm-brand/scripts/validate-asset.cjs +387 -0
- package/skills/design/uupm-brand/templates/brand-guidelines-starter.md +275 -0
- package/skills/design/uupm-design/SKILL.md +313 -0
- package/skills/design/uupm-design/data/cip/deliverables.csv +51 -0
- package/skills/design/uupm-design/data/cip/industries.csv +21 -0
- package/skills/design/uupm-design/data/cip/mockup-contexts.csv +21 -0
- package/skills/design/uupm-design/data/cip/styles.csv +21 -0
- package/skills/design/uupm-design/data/icon/styles.csv +16 -0
- package/skills/design/uupm-design/data/logo/colors.csv +56 -0
- package/skills/design/uupm-design/data/logo/industries.csv +56 -0
- package/skills/design/uupm-design/data/logo/styles.csv +56 -0
- package/skills/design/uupm-design/references/banner-sizes-and-styles.md +118 -0
- package/skills/design/uupm-design/references/cip-deliverable-guide.md +95 -0
- package/skills/design/uupm-design/references/cip-design.md +121 -0
- package/skills/design/uupm-design/references/cip-prompt-engineering.md +84 -0
- package/skills/design/uupm-design/references/cip-style-guide.md +68 -0
- package/skills/design/uupm-design/references/design-routing.md +207 -0
- package/skills/design/uupm-design/references/icon-design.md +122 -0
- package/skills/design/uupm-design/references/logo-color-psychology.md +101 -0
- package/skills/design/uupm-design/references/logo-design.md +92 -0
- package/skills/design/uupm-design/references/logo-prompt-engineering.md +158 -0
- package/skills/design/uupm-design/references/logo-style-guide.md +109 -0
- package/skills/design/uupm-design/references/slides-copywriting-formulas.md +84 -0
- package/skills/design/uupm-design/references/slides-create.md +4 -0
- package/skills/design/uupm-design/references/slides-html-template.md +295 -0
- package/skills/design/uupm-design/references/slides-layout-patterns.md +137 -0
- package/skills/design/uupm-design/references/slides-strategies.md +94 -0
- package/skills/design/uupm-design/references/slides.md +42 -0
- package/skills/design/uupm-design/references/social-photos-design.md +329 -0
- package/skills/design/uupm-design/scripts/cip/core.py +215 -0
- package/skills/design/uupm-design/scripts/cip/generate.py +484 -0
- package/skills/design/uupm-design/scripts/cip/render-html.py +424 -0
- package/skills/design/uupm-design/scripts/cip/search.py +127 -0
- package/skills/design/uupm-design/scripts/icon/generate.py +487 -0
- package/skills/design/uupm-design/scripts/logo/core.py +175 -0
- package/skills/design/uupm-design/scripts/logo/generate.py +362 -0
- package/skills/design/uupm-design/scripts/logo/search.py +114 -0
- package/skills/design/uupm-design-system/SKILL.md +244 -0
- package/skills/design/uupm-design-system/data/slide-backgrounds.csv +11 -0
- package/skills/design/uupm-design-system/data/slide-charts.csv +26 -0
- package/skills/design/uupm-design-system/data/slide-color-logic.csv +14 -0
- package/skills/design/uupm-design-system/data/slide-copy.csv +26 -0
- package/skills/design/uupm-design-system/data/slide-layout-logic.csv +16 -0
- package/skills/design/uupm-design-system/data/slide-layouts.csv +26 -0
- package/skills/design/uupm-design-system/data/slide-strategies.csv +16 -0
- package/skills/design/uupm-design-system/data/slide-typography.csv +15 -0
- package/skills/design/uupm-design-system/references/component-specs.md +236 -0
- package/skills/design/uupm-design-system/references/component-tokens.md +214 -0
- package/skills/design/uupm-design-system/references/primitive-tokens.md +203 -0
- package/skills/design/uupm-design-system/references/semantic-tokens.md +215 -0
- package/skills/design/uupm-design-system/references/states-and-variants.md +241 -0
- package/skills/design/uupm-design-system/references/tailwind-integration.md +251 -0
- package/skills/design/uupm-design-system/references/token-architecture.md +224 -0
- package/skills/design/uupm-design-system/scripts/embed-tokens.cjs +99 -0
- package/skills/design/uupm-design-system/scripts/fetch-background.py +317 -0
- package/skills/design/uupm-design-system/scripts/generate-slide.py +770 -0
- package/skills/design/uupm-design-system/scripts/generate-tokens.cjs +205 -0
- package/skills/design/uupm-design-system/scripts/html-token-validator.py +327 -0
- package/skills/design/uupm-design-system/scripts/search-slides.py +218 -0
- package/skills/design/uupm-design-system/scripts/slide-token-validator.py +35 -0
- package/skills/design/uupm-design-system/scripts/slide_search_core.py +453 -0
- package/skills/design/uupm-design-system/scripts/validate-tokens.cjs +251 -0
- package/skills/design/uupm-design-system/templates/design-tokens-starter.json +143 -0
- package/skills/design/uupm-slides/SKILL.md +40 -0
- package/skills/design/uupm-slides/references/copywriting-formulas.md +84 -0
- package/skills/design/uupm-slides/references/create.md +4 -0
- package/skills/design/uupm-slides/references/html-template.md +295 -0
- package/skills/design/uupm-slides/references/layout-patterns.md +137 -0
- package/skills/design/uupm-slides/references/slide-strategies.md +94 -0
- package/skills/design/uupm-ui-styling/LICENSE.txt +202 -0
- package/skills/design/uupm-ui-styling/SKILL.md +324 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/ArsenalSC-OFL.txt +93 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/BigShoulders-Bold.ttf +0 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/BigShoulders-OFL.txt +93 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/BigShoulders-Regular.ttf +0 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/Boldonse-OFL.txt +93 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/Boldonse-Regular.ttf +0 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/BricolageGrotesque-OFL.txt +93 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/CrimsonPro-OFL.txt +93 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/DMMono-OFL.txt +93 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/DMMono-Regular.ttf +0 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/EricaOne-OFL.txt +94 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/EricaOne-Regular.ttf +0 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/GeistMono-Bold.ttf +0 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/GeistMono-OFL.txt +93 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/GeistMono-Regular.ttf +0 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/Gloock-OFL.txt +93 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/Gloock-Regular.ttf +0 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/IBMPlexMono-OFL.txt +93 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/InstrumentSans-OFL.txt +93 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/Italiana-OFL.txt +93 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/Italiana-Regular.ttf +0 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/JetBrainsMono-OFL.txt +93 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/Jura-Light.ttf +0 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/Jura-Medium.ttf +0 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/Jura-OFL.txt +93 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/LibreBaskerville-OFL.txt +93 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/Lora-Bold.ttf +0 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/Lora-BoldItalic.ttf +0 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/Lora-Italic.ttf +0 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/Lora-OFL.txt +93 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/Lora-Regular.ttf +0 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/NationalPark-Bold.ttf +0 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/NationalPark-OFL.txt +93 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/NationalPark-Regular.ttf +0 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/NothingYouCouldDo-OFL.txt +93 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/Outfit-Bold.ttf +0 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/Outfit-OFL.txt +93 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/Outfit-Regular.ttf +0 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/PixelifySans-Medium.ttf +0 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/PixelifySans-OFL.txt +93 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/PoiretOne-OFL.txt +93 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/PoiretOne-Regular.ttf +0 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/RedHatMono-Bold.ttf +0 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/RedHatMono-OFL.txt +93 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/RedHatMono-Regular.ttf +0 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/Silkscreen-OFL.txt +93 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/Silkscreen-Regular.ttf +0 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/SmoochSans-Medium.ttf +0 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/SmoochSans-OFL.txt +93 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/Tektur-Medium.ttf +0 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/Tektur-OFL.txt +93 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/Tektur-Regular.ttf +0 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/WorkSans-Bold.ttf +0 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/WorkSans-Italic.ttf +0 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/WorkSans-OFL.txt +93 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/WorkSans-Regular.ttf +0 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/YoungSerif-OFL.txt +93 -0
- package/skills/design/uupm-ui-styling/canvas-fonts/YoungSerif-Regular.ttf +0 -0
- package/skills/design/uupm-ui-styling/references/canvas-design-system.md +320 -0
- package/skills/design/uupm-ui-styling/references/shadcn-accessibility.md +471 -0
- package/skills/design/uupm-ui-styling/references/shadcn-components.md +424 -0
- package/skills/design/uupm-ui-styling/references/shadcn-theming.md +373 -0
- package/skills/design/uupm-ui-styling/references/tailwind-customization.md +483 -0
- package/skills/design/uupm-ui-styling/references/tailwind-responsive.md +382 -0
- package/skills/design/uupm-ui-styling/references/tailwind-utilities.md +455 -0
- package/skills/design/uupm-ui-styling/scripts/.coverage +0 -0
- package/skills/design/uupm-ui-styling/scripts/requirements.txt +17 -0
- package/skills/design/uupm-ui-styling/scripts/shadcn_add.py +308 -0
- package/skills/design/uupm-ui-styling/scripts/tailwind_config_gen.py +473 -0
- package/skills/design/uupm-ui-styling/scripts/tests/coverage-ui.json +1 -0
- package/skills/design/uupm-ui-styling/scripts/tests/requirements.txt +3 -0
- package/skills/design/uupm-ui-styling/scripts/tests/test_shadcn_add.py +266 -0
- package/skills/design/uupm-ui-styling/scripts/tests/test_tailwind_config_gen.py +336 -0
- package/skills/design/uupm-ui-ux-pro-max/SKILL.md +661 -0
- package/skills/design/uupm-ui-ux-pro-max/data +1 -0
- package/skills/design/uupm-ui-ux-pro-max/scripts +1 -0
- package/skills/design/venice-audio-playbook/SKILL.md +48 -0
- package/skills/design/venice-audio-speech-playbook/SKILL.md +48 -0
- package/skills/design/venice-motion-playbook/SKILL.md +48 -0
- package/skills/design/venice-visual-compose-playbook/SKILL.md +48 -0
- package/skills/design/venice-visual-edit-playbook/SKILL.md +48 -0
- package/skills/design/vfx-text-cursor-playbook/SKILL.md +49 -0
- package/skills/design/vfx-text-cursor-playbook/example.html +65 -0
- package/skills/design/vfx-text-cursor-sample-worked-sample/SKILL.md +31 -0
- package/skills/design/vfx-text-cursor-sample-worked-sample/example.html +65 -0
- package/skills/design/vibrant/DESIGN.md +55 -0
- package/skills/design/vibrant/SKILL.md +83 -0
- package/skills/design/vintage/DESIGN.md +55 -0
- package/skills/design/vintage/SKILL.md +83 -0
- package/skills/design/visual-enhancer-playbook/SKILL.md +48 -0
- package/skills/design/visual-to-code-playbook/LICENSE +21 -0
- package/skills/design/visual-to-code-playbook/SKILL.md +1245 -0
- package/skills/design/web-composition-standards-playbook/SKILL.md +48 -0
- package/skills/design/web-deliverables-assembler-playbook/SKILL.md +48 -0
- package/skills/design/word-playbook/SKILL.md +48 -0
- package/skills/design/workspace-composition-playbook/SKILL.md +48 -0
- package/skills/design/wpds-playbook/SKILL.md +48 -0
- package/skills/design/youtube-clipper-playbook/SKILL.md +48 -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/front-end/canvas-design/LICENSE.txt +202 -0
- package/skills/front-end/canvas-design/SKILL.md +130 -0
- package/skills/front-end/canvas-design/canvas-fonts/ArsenalSC-OFL.txt +93 -0
- package/skills/front-end/canvas-design/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
- package/skills/front-end/canvas-design/canvas-fonts/BigShoulders-Bold.ttf +0 -0
- package/skills/front-end/canvas-design/canvas-fonts/BigShoulders-OFL.txt +93 -0
- package/skills/front-end/canvas-design/canvas-fonts/BigShoulders-Regular.ttf +0 -0
- package/skills/front-end/canvas-design/canvas-fonts/Boldonse-OFL.txt +93 -0
- package/skills/front-end/canvas-design/canvas-fonts/Boldonse-Regular.ttf +0 -0
- package/skills/front-end/canvas-design/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
- package/skills/front-end/canvas-design/canvas-fonts/BricolageGrotesque-OFL.txt +93 -0
- package/skills/front-end/canvas-design/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
- package/skills/front-end/canvas-design/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
- package/skills/front-end/canvas-design/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
- package/skills/front-end/canvas-design/canvas-fonts/CrimsonPro-OFL.txt +93 -0
- package/skills/front-end/canvas-design/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
- package/skills/front-end/canvas-design/canvas-fonts/DMMono-OFL.txt +93 -0
- package/skills/front-end/canvas-design/canvas-fonts/DMMono-Regular.ttf +0 -0
- package/skills/front-end/canvas-design/canvas-fonts/EricaOne-OFL.txt +94 -0
- package/skills/front-end/canvas-design/canvas-fonts/EricaOne-Regular.ttf +0 -0
- package/skills/front-end/canvas-design/canvas-fonts/GeistMono-Bold.ttf +0 -0
- package/skills/front-end/canvas-design/canvas-fonts/GeistMono-OFL.txt +93 -0
- package/skills/front-end/canvas-design/canvas-fonts/GeistMono-Regular.ttf +0 -0
- package/skills/front-end/canvas-design/canvas-fonts/Gloock-OFL.txt +93 -0
- package/skills/front-end/canvas-design/canvas-fonts/Gloock-Regular.ttf +0 -0
- package/skills/front-end/canvas-design/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
- package/skills/front-end/canvas-design/canvas-fonts/IBMPlexMono-OFL.txt +93 -0
- package/skills/front-end/canvas-design/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
- package/skills/front-end/canvas-design/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
- package/skills/front-end/canvas-design/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
- package/skills/front-end/canvas-design/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
- package/skills/front-end/canvas-design/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
- package/skills/front-end/canvas-design/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
- package/skills/front-end/canvas-design/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
- package/skills/front-end/canvas-design/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
- package/skills/front-end/canvas-design/canvas-fonts/InstrumentSans-OFL.txt +93 -0
- package/skills/front-end/canvas-design/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
- package/skills/front-end/canvas-design/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
- package/skills/front-end/canvas-design/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
- package/skills/front-end/canvas-design/canvas-fonts/Italiana-OFL.txt +93 -0
- package/skills/front-end/canvas-design/canvas-fonts/Italiana-Regular.ttf +0 -0
- package/skills/front-end/canvas-design/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
- package/skills/front-end/canvas-design/canvas-fonts/JetBrainsMono-OFL.txt +93 -0
- package/skills/front-end/canvas-design/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
- package/skills/front-end/canvas-design/canvas-fonts/Jura-Light.ttf +0 -0
- package/skills/front-end/canvas-design/canvas-fonts/Jura-Medium.ttf +0 -0
- package/skills/front-end/canvas-design/canvas-fonts/Jura-OFL.txt +93 -0
- package/skills/front-end/canvas-design/canvas-fonts/LibreBaskerville-OFL.txt +93 -0
- package/skills/front-end/canvas-design/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
- package/skills/front-end/canvas-design/canvas-fonts/Lora-Bold.ttf +0 -0
- package/skills/front-end/canvas-design/canvas-fonts/Lora-BoldItalic.ttf +0 -0
- package/skills/front-end/canvas-design/canvas-fonts/Lora-Italic.ttf +0 -0
- package/skills/front-end/canvas-design/canvas-fonts/Lora-OFL.txt +93 -0
- package/skills/front-end/canvas-design/canvas-fonts/Lora-Regular.ttf +0 -0
- package/skills/front-end/canvas-design/canvas-fonts/NationalPark-Bold.ttf +0 -0
- package/skills/front-end/canvas-design/canvas-fonts/NationalPark-OFL.txt +93 -0
- package/skills/front-end/canvas-design/canvas-fonts/NationalPark-Regular.ttf +0 -0
- package/skills/front-end/canvas-design/canvas-fonts/NothingYouCouldDo-OFL.txt +93 -0
- package/skills/front-end/canvas-design/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
- package/skills/front-end/canvas-design/canvas-fonts/Outfit-Bold.ttf +0 -0
- package/skills/front-end/canvas-design/canvas-fonts/Outfit-OFL.txt +93 -0
- package/skills/front-end/canvas-design/canvas-fonts/Outfit-Regular.ttf +0 -0
- package/skills/front-end/canvas-design/canvas-fonts/PixelifySans-Medium.ttf +0 -0
- package/skills/front-end/canvas-design/canvas-fonts/PixelifySans-OFL.txt +93 -0
- package/skills/front-end/canvas-design/canvas-fonts/PoiretOne-OFL.txt +93 -0
- package/skills/front-end/canvas-design/canvas-fonts/PoiretOne-Regular.ttf +0 -0
- package/skills/front-end/canvas-design/canvas-fonts/RedHatMono-Bold.ttf +0 -0
- package/skills/front-end/canvas-design/canvas-fonts/RedHatMono-OFL.txt +93 -0
- package/skills/front-end/canvas-design/canvas-fonts/RedHatMono-Regular.ttf +0 -0
- package/skills/front-end/canvas-design/canvas-fonts/Silkscreen-OFL.txt +93 -0
- package/skills/front-end/canvas-design/canvas-fonts/Silkscreen-Regular.ttf +0 -0
- package/skills/front-end/canvas-design/canvas-fonts/SmoochSans-Medium.ttf +0 -0
- package/skills/front-end/canvas-design/canvas-fonts/SmoochSans-OFL.txt +93 -0
- package/skills/front-end/canvas-design/canvas-fonts/Tektur-Medium.ttf +0 -0
- package/skills/front-end/canvas-design/canvas-fonts/Tektur-OFL.txt +93 -0
- package/skills/front-end/canvas-design/canvas-fonts/Tektur-Regular.ttf +0 -0
- package/skills/front-end/canvas-design/canvas-fonts/WorkSans-Bold.ttf +0 -0
- package/skills/front-end/canvas-design/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
- package/skills/front-end/canvas-design/canvas-fonts/WorkSans-Italic.ttf +0 -0
- package/skills/front-end/canvas-design/canvas-fonts/WorkSans-OFL.txt +93 -0
- package/skills/front-end/canvas-design/canvas-fonts/WorkSans-Regular.ttf +0 -0
- package/skills/front-end/canvas-design/canvas-fonts/YoungSerif-OFL.txt +93 -0
- package/skills/front-end/canvas-design/canvas-fonts/YoungSerif-Regular.ttf +0 -0
- package/skills/front-end/claude-api/LICENSE.txt +202 -0
- package/skills/front-end/claude-api/SKILL.md +356 -0
- package/skills/front-end/claude-api/csharp/claude-api.md +447 -0
- package/skills/front-end/claude-api/curl/examples.md +216 -0
- package/skills/front-end/claude-api/curl/managed-agents.md +338 -0
- package/skills/front-end/claude-api/go/claude-api.md +440 -0
- package/skills/front-end/claude-api/go/managed-agents/README.md +561 -0
- package/skills/front-end/claude-api/java/claude-api.md +461 -0
- package/skills/front-end/claude-api/java/managed-agents/README.md +442 -0
- package/skills/front-end/claude-api/php/claude-api.md +402 -0
- package/skills/front-end/claude-api/php/managed-agents/README.md +435 -0
- package/skills/front-end/claude-api/python/claude-api/README.md +536 -0
- package/skills/front-end/claude-api/python/claude-api/batches.md +198 -0
- package/skills/front-end/claude-api/python/claude-api/files-api.md +170 -0
- package/skills/front-end/claude-api/python/claude-api/streaming.md +179 -0
- package/skills/front-end/claude-api/python/claude-api/tool-use.md +590 -0
- package/skills/front-end/claude-api/python/managed-agents/README.md +334 -0
- package/skills/front-end/claude-api/ruby/claude-api.md +140 -0
- package/skills/front-end/claude-api/ruby/managed-agents/README.md +389 -0
- package/skills/front-end/claude-api/shared/agent-design.md +101 -0
- package/skills/front-end/claude-api/shared/anthropic-cli.md +246 -0
- package/skills/front-end/claude-api/shared/claude-platform-on-aws.md +59 -0
- package/skills/front-end/claude-api/shared/error-codes.md +233 -0
- package/skills/front-end/claude-api/shared/live-sources.md +143 -0
- package/skills/front-end/claude-api/shared/managed-agents-api-reference.md +422 -0
- package/skills/front-end/claude-api/shared/managed-agents-client-patterns.md +211 -0
- package/skills/front-end/claude-api/shared/managed-agents-core.md +252 -0
- package/skills/front-end/claude-api/shared/managed-agents-environments.md +219 -0
- package/skills/front-end/claude-api/shared/managed-agents-events.md +220 -0
- package/skills/front-end/claude-api/shared/managed-agents-memory.md +197 -0
- package/skills/front-end/claude-api/shared/managed-agents-multiagent.md +99 -0
- package/skills/front-end/claude-api/shared/managed-agents-onboarding.md +144 -0
- package/skills/front-end/claude-api/shared/managed-agents-outcomes.md +106 -0
- package/skills/front-end/claude-api/shared/managed-agents-overview.md +71 -0
- package/skills/front-end/claude-api/shared/managed-agents-scheduled-deployments.md +144 -0
- package/skills/front-end/claude-api/shared/managed-agents-self-hosted-sandboxes.md +174 -0
- package/skills/front-end/claude-api/shared/managed-agents-tools.md +358 -0
- package/skills/front-end/claude-api/shared/managed-agents-webhooks.md +110 -0
- package/skills/front-end/claude-api/shared/model-migration.md +1135 -0
- package/skills/front-end/claude-api/shared/models.md +132 -0
- package/skills/front-end/claude-api/shared/prompt-caching.md +223 -0
- package/skills/front-end/claude-api/shared/token-counting.md +56 -0
- package/skills/front-end/claude-api/shared/tool-use-concepts.md +347 -0
- package/skills/front-end/claude-api/typescript/claude-api/README.md +372 -0
- package/skills/front-end/claude-api/typescript/claude-api/batches.md +106 -0
- package/skills/front-end/claude-api/typescript/claude-api/files-api.md +98 -0
- package/skills/front-end/claude-api/typescript/claude-api/streaming.md +178 -0
- package/skills/front-end/claude-api/typescript/claude-api/tool-use.md +527 -0
- package/skills/front-end/claude-api/typescript/managed-agents/README.md +357 -0
- package/skills/front-end/doc-coauthoring/SKILL.md +375 -0
- package/skills/front-end/docx/LICENSE.txt +30 -0
- package/skills/front-end/docx/SKILL.md +590 -0
- package/skills/front-end/docx/scripts/__init__.py +1 -0
- package/skills/front-end/docx/scripts/accept_changes.py +135 -0
- package/skills/front-end/docx/scripts/comment.py +318 -0
- package/skills/front-end/docx/scripts/office/helpers/__init__.py +0 -0
- package/skills/front-end/docx/scripts/office/helpers/merge_runs.py +199 -0
- package/skills/front-end/docx/scripts/office/helpers/simplify_redlines.py +197 -0
- package/skills/front-end/docx/scripts/office/pack.py +159 -0
- package/skills/front-end/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
- package/skills/front-end/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
- package/skills/front-end/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
- package/skills/front-end/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
- package/skills/front-end/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
- package/skills/front-end/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
- package/skills/front-end/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
- package/skills/front-end/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
- package/skills/front-end/docx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
- package/skills/front-end/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
- package/skills/front-end/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
- package/skills/front-end/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
- package/skills/front-end/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
- package/skills/front-end/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
- package/skills/front-end/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
- package/skills/front-end/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
- package/skills/front-end/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
- package/skills/front-end/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
- package/skills/front-end/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
- package/skills/front-end/docx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
- package/skills/front-end/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
- package/skills/front-end/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
- package/skills/front-end/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
- package/skills/front-end/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
- package/skills/front-end/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
- package/skills/front-end/docx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
- package/skills/front-end/docx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
- package/skills/front-end/docx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
- package/skills/front-end/docx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
- package/skills/front-end/docx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
- package/skills/front-end/docx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
- package/skills/front-end/docx/scripts/office/schemas/mce/mc.xsd +75 -0
- package/skills/front-end/docx/scripts/office/schemas/microsoft/wml-2010.xsd +560 -0
- package/skills/front-end/docx/scripts/office/schemas/microsoft/wml-2012.xsd +67 -0
- package/skills/front-end/docx/scripts/office/schemas/microsoft/wml-2018.xsd +14 -0
- package/skills/front-end/docx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -0
- package/skills/front-end/docx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -0
- package/skills/front-end/docx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
- package/skills/front-end/docx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -0
- package/skills/front-end/docx/scripts/office/soffice.py +183 -0
- package/skills/front-end/docx/scripts/office/unpack.py +132 -0
- package/skills/front-end/docx/scripts/office/validate.py +111 -0
- package/skills/front-end/docx/scripts/office/validators/__init__.py +15 -0
- package/skills/front-end/docx/scripts/office/validators/base.py +847 -0
- package/skills/front-end/docx/scripts/office/validators/docx.py +446 -0
- package/skills/front-end/docx/scripts/office/validators/pptx.py +275 -0
- package/skills/front-end/docx/scripts/office/validators/redlining.py +247 -0
- package/skills/front-end/docx/scripts/templates/comments.xml +3 -0
- package/skills/front-end/docx/scripts/templates/commentsExtended.xml +3 -0
- package/skills/front-end/docx/scripts/templates/commentsExtensible.xml +3 -0
- package/skills/front-end/docx/scripts/templates/commentsIds.xml +3 -0
- package/skills/front-end/docx/scripts/templates/people.xml +3 -0
- package/skills/front-end/frontend-design/LICENSE.txt +177 -0
- package/skills/front-end/frontend-design/SKILL.md +55 -0
- package/skills/front-end/frontend-slides/SKILL.md +380 -0
- package/skills/front-end/frontend-slides/STYLE_PRESETS.md +346 -0
- package/skills/front-end/frontend-slides/animation-patterns.md +110 -0
- package/skills/front-end/frontend-slides/bold-template-pack/README.md +77 -0
- package/skills/front-end/frontend-slides/bold-template-pack/deck-stage.js +619 -0
- package/skills/front-end/frontend-slides/bold-template-pack/selection-index.json +858 -0
- package/skills/front-end/frontend-slides/bold-template-pack/templates/8-bit-orbit/design.md +573 -0
- package/skills/front-end/frontend-slides/bold-template-pack/templates/8-bit-orbit/preview.md +55 -0
- package/skills/front-end/frontend-slides/bold-template-pack/templates/biennale-yellow/design.md +579 -0
- package/skills/front-end/frontend-slides/bold-template-pack/templates/biennale-yellow/preview.md +55 -0
- package/skills/front-end/frontend-slides/bold-template-pack/templates/block-frame/design.md +609 -0
- package/skills/front-end/frontend-slides/bold-template-pack/templates/block-frame/preview.md +55 -0
- package/skills/front-end/frontend-slides/bold-template-pack/templates/blue-professional/design.md +712 -0
- package/skills/front-end/frontend-slides/bold-template-pack/templates/blue-professional/preview.md +55 -0
- package/skills/front-end/frontend-slides/bold-template-pack/templates/bold-poster/design.md +713 -0
- package/skills/front-end/frontend-slides/bold-template-pack/templates/bold-poster/preview.md +55 -0
- package/skills/front-end/frontend-slides/bold-template-pack/templates/broadside/design.md +504 -0
- package/skills/front-end/frontend-slides/bold-template-pack/templates/broadside/preview.md +55 -0
- package/skills/front-end/frontend-slides/bold-template-pack/templates/capsule/design.md +569 -0
- package/skills/front-end/frontend-slides/bold-template-pack/templates/capsule/preview.md +55 -0
- package/skills/front-end/frontend-slides/bold-template-pack/templates/cartesian/design.md +524 -0
- package/skills/front-end/frontend-slides/bold-template-pack/templates/cartesian/preview.md +55 -0
- package/skills/front-end/frontend-slides/bold-template-pack/templates/cobalt-grid/design.md +564 -0
- package/skills/front-end/frontend-slides/bold-template-pack/templates/cobalt-grid/preview.md +55 -0
- package/skills/front-end/frontend-slides/bold-template-pack/templates/coral/design.md +615 -0
- package/skills/front-end/frontend-slides/bold-template-pack/templates/coral/preview.md +55 -0
- package/skills/front-end/frontend-slides/bold-template-pack/templates/creative-mode/design.md +566 -0
- package/skills/front-end/frontend-slides/bold-template-pack/templates/creative-mode/preview.md +55 -0
- package/skills/front-end/frontend-slides/bold-template-pack/templates/daisy-days/design.md +510 -0
- package/skills/front-end/frontend-slides/bold-template-pack/templates/daisy-days/preview.md +55 -0
- package/skills/front-end/frontend-slides/bold-template-pack/templates/editorial-forest/design.md +508 -0
- package/skills/front-end/frontend-slides/bold-template-pack/templates/editorial-forest/preview.md +55 -0
- package/skills/front-end/frontend-slides/bold-template-pack/templates/editorial-tri-tone/design.md +601 -0
- package/skills/front-end/frontend-slides/bold-template-pack/templates/editorial-tri-tone/preview.md +55 -0
- package/skills/front-end/frontend-slides/bold-template-pack/templates/emerald-editorial/design.md +613 -0
- package/skills/front-end/frontend-slides/bold-template-pack/templates/emerald-editorial/preview.md +55 -0
- package/skills/front-end/frontend-slides/bold-template-pack/templates/grove/design.md +570 -0
- package/skills/front-end/frontend-slides/bold-template-pack/templates/grove/preview.md +55 -0
- package/skills/front-end/frontend-slides/bold-template-pack/templates/long-table/design.md +594 -0
- package/skills/front-end/frontend-slides/bold-template-pack/templates/long-table/preview.md +55 -0
- package/skills/front-end/frontend-slides/bold-template-pack/templates/mat/design.md +474 -0
- package/skills/front-end/frontend-slides/bold-template-pack/templates/mat/preview.md +55 -0
- package/skills/front-end/frontend-slides/bold-template-pack/templates/monochrome/design.md +493 -0
- package/skills/front-end/frontend-slides/bold-template-pack/templates/monochrome/preview.md +55 -0
- package/skills/front-end/frontend-slides/bold-template-pack/templates/neo-grid-bold/design.md +564 -0
- package/skills/front-end/frontend-slides/bold-template-pack/templates/neo-grid-bold/preview.md +55 -0
- package/skills/front-end/frontend-slides/bold-template-pack/templates/peoples-platform/design.md +701 -0
- package/skills/front-end/frontend-slides/bold-template-pack/templates/peoples-platform/preview.md +55 -0
- package/skills/front-end/frontend-slides/bold-template-pack/templates/pin-and-paper/design.md +641 -0
- package/skills/front-end/frontend-slides/bold-template-pack/templates/pin-and-paper/preview.md +55 -0
- package/skills/front-end/frontend-slides/bold-template-pack/templates/pink-script/design.md +673 -0
- package/skills/front-end/frontend-slides/bold-template-pack/templates/pink-script/preview.md +55 -0
- package/skills/front-end/frontend-slides/bold-template-pack/templates/playful/design.md +491 -0
- package/skills/front-end/frontend-slides/bold-template-pack/templates/playful/preview.md +55 -0
- package/skills/front-end/frontend-slides/bold-template-pack/templates/raw-grid/design.md +487 -0
- package/skills/front-end/frontend-slides/bold-template-pack/templates/raw-grid/preview.md +55 -0
- package/skills/front-end/frontend-slides/bold-template-pack/templates/retro-windows/design.md +578 -0
- package/skills/front-end/frontend-slides/bold-template-pack/templates/retro-windows/preview.md +55 -0
- package/skills/front-end/frontend-slides/bold-template-pack/templates/retro-zine/design.md +569 -0
- package/skills/front-end/frontend-slides/bold-template-pack/templates/retro-zine/preview.md +55 -0
- package/skills/front-end/frontend-slides/bold-template-pack/templates/sakura-chroma/design.md +627 -0
- package/skills/front-end/frontend-slides/bold-template-pack/templates/sakura-chroma/preview.md +55 -0
- package/skills/front-end/frontend-slides/bold-template-pack/templates/scatterbrain/design.md +575 -0
- package/skills/front-end/frontend-slides/bold-template-pack/templates/scatterbrain/preview.md +55 -0
- package/skills/front-end/frontend-slides/bold-template-pack/templates/signal/design.md +528 -0
- package/skills/front-end/frontend-slides/bold-template-pack/templates/signal/preview.md +55 -0
- package/skills/front-end/frontend-slides/bold-template-pack/templates/soft-editorial/design.md +626 -0
- package/skills/front-end/frontend-slides/bold-template-pack/templates/soft-editorial/preview.md +55 -0
- package/skills/front-end/frontend-slides/bold-template-pack/templates/stencil-tablet/design.md +678 -0
- package/skills/front-end/frontend-slides/bold-template-pack/templates/stencil-tablet/preview.md +55 -0
- package/skills/front-end/frontend-slides/bold-template-pack/templates/studio/design.md +497 -0
- package/skills/front-end/frontend-slides/bold-template-pack/templates/studio/preview.md +55 -0
- package/skills/front-end/frontend-slides/bold-template-pack/templates/vellum/design.md +547 -0
- package/skills/front-end/frontend-slides/bold-template-pack/templates/vellum/preview.md +55 -0
- package/skills/front-end/frontend-slides/html-template.md +350 -0
- package/skills/front-end/frontend-slides/scripts/deploy.sh +218 -0
- package/skills/front-end/frontend-slides/scripts/export-pdf.sh +418 -0
- package/skills/front-end/frontend-slides/scripts/extract-pptx.py +96 -0
- package/skills/front-end/frontend-slides/viewport-base.css +133 -0
- package/skills/front-end/internal-comms/LICENSE.txt +202 -0
- package/skills/front-end/internal-comms/SKILL.md +32 -0
- package/skills/front-end/internal-comms/examples/3p-updates.md +47 -0
- package/skills/front-end/internal-comms/examples/company-newsletter.md +65 -0
- package/skills/front-end/internal-comms/examples/faq-answers.md +30 -0
- package/skills/front-end/internal-comms/examples/general-comms.md +16 -0
- package/skills/front-end/mcp-builder/LICENSE.txt +202 -0
- package/skills/front-end/mcp-builder/SKILL.md +236 -0
- package/skills/front-end/mcp-builder/reference/evaluation.md +602 -0
- package/skills/front-end/mcp-builder/reference/mcp_best_practices.md +249 -0
- package/skills/front-end/mcp-builder/reference/node_mcp_server.md +970 -0
- package/skills/front-end/mcp-builder/reference/python_mcp_server.md +719 -0
- package/skills/front-end/mcp-builder/scripts/connections.py +151 -0
- package/skills/front-end/mcp-builder/scripts/evaluation.py +373 -0
- package/skills/front-end/mcp-builder/scripts/example_evaluation.xml +22 -0
- package/skills/front-end/mcp-builder/scripts/requirements.txt +2 -0
- package/skills/front-end/pdf/LICENSE.txt +30 -0
- package/skills/front-end/pdf/SKILL.md +314 -0
- package/skills/front-end/pdf/forms.md +294 -0
- package/skills/front-end/pdf/reference.md +612 -0
- package/skills/front-end/pdf/scripts/check_bounding_boxes.py +65 -0
- package/skills/front-end/pdf/scripts/check_fillable_fields.py +11 -0
- package/skills/front-end/pdf/scripts/convert_pdf_to_images.py +33 -0
- package/skills/front-end/pdf/scripts/create_validation_image.py +37 -0
- package/skills/front-end/pdf/scripts/extract_form_field_info.py +122 -0
- package/skills/front-end/pdf/scripts/extract_form_structure.py +115 -0
- package/skills/front-end/pdf/scripts/fill_fillable_fields.py +98 -0
- package/skills/front-end/pdf/scripts/fill_pdf_form_with_annotations.py +107 -0
- package/skills/front-end/pptx/LICENSE.txt +30 -0
- package/skills/front-end/pptx/SKILL.md +232 -0
- package/skills/front-end/pptx/editing.md +205 -0
- package/skills/front-end/pptx/pptxgenjs.md +420 -0
- package/skills/front-end/pptx/scripts/__init__.py +0 -0
- package/skills/front-end/pptx/scripts/add_slide.py +195 -0
- package/skills/front-end/pptx/scripts/clean.py +286 -0
- package/skills/front-end/pptx/scripts/office/helpers/__init__.py +0 -0
- package/skills/front-end/pptx/scripts/office/helpers/merge_runs.py +199 -0
- package/skills/front-end/pptx/scripts/office/helpers/simplify_redlines.py +197 -0
- package/skills/front-end/pptx/scripts/office/pack.py +159 -0
- package/skills/front-end/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
- package/skills/front-end/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
- package/skills/front-end/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
- package/skills/front-end/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
- package/skills/front-end/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
- package/skills/front-end/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
- package/skills/front-end/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
- package/skills/front-end/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
- package/skills/front-end/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
- package/skills/front-end/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
- package/skills/front-end/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
- package/skills/front-end/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
- package/skills/front-end/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
- package/skills/front-end/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
- package/skills/front-end/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
- package/skills/front-end/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
- package/skills/front-end/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
- package/skills/front-end/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
- package/skills/front-end/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
- package/skills/front-end/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
- package/skills/front-end/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
- package/skills/front-end/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
- package/skills/front-end/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
- package/skills/front-end/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
- package/skills/front-end/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
- package/skills/front-end/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
- package/skills/front-end/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
- package/skills/front-end/pptx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
- package/skills/front-end/pptx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
- package/skills/front-end/pptx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
- package/skills/front-end/pptx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
- package/skills/front-end/pptx/scripts/office/schemas/mce/mc.xsd +75 -0
- package/skills/front-end/pptx/scripts/office/schemas/microsoft/wml-2010.xsd +560 -0
- package/skills/front-end/pptx/scripts/office/schemas/microsoft/wml-2012.xsd +67 -0
- package/skills/front-end/pptx/scripts/office/schemas/microsoft/wml-2018.xsd +14 -0
- package/skills/front-end/pptx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -0
- package/skills/front-end/pptx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -0
- package/skills/front-end/pptx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
- package/skills/front-end/pptx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -0
- package/skills/front-end/pptx/scripts/office/soffice.py +183 -0
- package/skills/front-end/pptx/scripts/office/unpack.py +132 -0
- package/skills/front-end/pptx/scripts/office/validate.py +111 -0
- package/skills/front-end/pptx/scripts/office/validators/__init__.py +15 -0
- package/skills/front-end/pptx/scripts/office/validators/base.py +847 -0
- package/skills/front-end/pptx/scripts/office/validators/docx.py +446 -0
- package/skills/front-end/pptx/scripts/office/validators/pptx.py +275 -0
- package/skills/front-end/pptx/scripts/office/validators/redlining.py +247 -0
- package/skills/front-end/pptx/scripts/thumbnail.py +289 -0
- package/skills/front-end/skill-creator/LICENSE.txt +202 -0
- package/skills/front-end/skill-creator/SKILL.md +485 -0
- package/skills/front-end/skill-creator/agents/analyzer.md +274 -0
- package/skills/front-end/skill-creator/agents/comparator.md +202 -0
- package/skills/front-end/skill-creator/agents/grader.md +223 -0
- package/skills/front-end/skill-creator/assets/eval_review.html +146 -0
- package/skills/front-end/skill-creator/eval-viewer/generate_review.py +471 -0
- package/skills/front-end/skill-creator/eval-viewer/viewer.html +1325 -0
- package/skills/front-end/skill-creator/references/schemas.md +430 -0
- package/skills/front-end/skill-creator/scripts/__init__.py +0 -0
- package/skills/front-end/skill-creator/scripts/aggregate_benchmark.py +401 -0
- package/skills/front-end/skill-creator/scripts/generate_report.py +326 -0
- package/skills/front-end/skill-creator/scripts/improve_description.py +247 -0
- package/skills/front-end/skill-creator/scripts/package_skill.py +136 -0
- package/skills/front-end/skill-creator/scripts/quick_validate.py +103 -0
- package/skills/front-end/skill-creator/scripts/run_eval.py +310 -0
- package/skills/front-end/skill-creator/scripts/run_loop.py +328 -0
- package/skills/front-end/skill-creator/scripts/utils.py +47 -0
- package/skills/front-end/slack-gif-creator/LICENSE.txt +202 -0
- package/skills/front-end/slack-gif-creator/SKILL.md +254 -0
- package/skills/front-end/slack-gif-creator/core/easing.py +234 -0
- package/skills/front-end/slack-gif-creator/core/frame_composer.py +176 -0
- package/skills/front-end/slack-gif-creator/core/gif_builder.py +269 -0
- package/skills/front-end/slack-gif-creator/core/validators.py +136 -0
- package/skills/front-end/slack-gif-creator/requirements.txt +4 -0
- package/skills/front-end/web-artifacts-builder/LICENSE.txt +202 -0
- package/skills/front-end/web-artifacts-builder/SKILL.md +74 -0
- package/skills/front-end/web-artifacts-builder/scripts/bundle-artifact.sh +54 -0
- package/skills/front-end/web-artifacts-builder/scripts/init-artifact.sh +322 -0
- package/skills/front-end/web-artifacts-builder/scripts/shadcn-components.tar.gz +0 -0
- package/skills/front-end/webapp-testing/LICENSE.txt +202 -0
- package/skills/front-end/webapp-testing/SKILL.md +96 -0
- package/skills/front-end/webapp-testing/examples/console_logging.py +35 -0
- package/skills/front-end/webapp-testing/examples/element_discovery.py +40 -0
- package/skills/front-end/webapp-testing/examples/static_html_automation.py +33 -0
- package/skills/front-end/webapp-testing/scripts/with_server.py +106 -0
- package/skills/front-end/xlsx/LICENSE.txt +30 -0
- package/skills/front-end/xlsx/SKILL.md +292 -0
- package/skills/front-end/xlsx/scripts/office/helpers/__init__.py +0 -0
- package/skills/front-end/xlsx/scripts/office/helpers/merge_runs.py +199 -0
- package/skills/front-end/xlsx/scripts/office/helpers/simplify_redlines.py +197 -0
- package/skills/front-end/xlsx/scripts/office/pack.py +159 -0
- package/skills/front-end/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
- package/skills/front-end/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
- package/skills/front-end/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
- package/skills/front-end/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
- package/skills/front-end/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
- package/skills/front-end/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
- package/skills/front-end/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
- package/skills/front-end/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
- package/skills/front-end/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
- package/skills/front-end/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
- package/skills/front-end/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
- package/skills/front-end/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
- package/skills/front-end/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
- package/skills/front-end/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
- package/skills/front-end/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
- package/skills/front-end/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
- package/skills/front-end/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
- package/skills/front-end/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
- package/skills/front-end/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
- package/skills/front-end/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
- package/skills/front-end/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
- package/skills/front-end/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
- package/skills/front-end/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
- package/skills/front-end/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
- package/skills/front-end/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
- package/skills/front-end/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
- package/skills/front-end/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
- package/skills/front-end/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
- package/skills/front-end/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
- package/skills/front-end/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
- package/skills/front-end/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
- package/skills/front-end/xlsx/scripts/office/schemas/mce/mc.xsd +75 -0
- package/skills/front-end/xlsx/scripts/office/schemas/microsoft/wml-2010.xsd +560 -0
- package/skills/front-end/xlsx/scripts/office/schemas/microsoft/wml-2012.xsd +67 -0
- package/skills/front-end/xlsx/scripts/office/schemas/microsoft/wml-2018.xsd +14 -0
- package/skills/front-end/xlsx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -0
- package/skills/front-end/xlsx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -0
- package/skills/front-end/xlsx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
- package/skills/front-end/xlsx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -0
- package/skills/front-end/xlsx/scripts/office/soffice.py +183 -0
- package/skills/front-end/xlsx/scripts/office/unpack.py +132 -0
- package/skills/front-end/xlsx/scripts/office/validate.py +111 -0
- package/skills/front-end/xlsx/scripts/office/validators/__init__.py +15 -0
- package/skills/front-end/xlsx/scripts/office/validators/base.py +847 -0
- package/skills/front-end/xlsx/scripts/office/validators/docx.py +446 -0
- package/skills/front-end/xlsx/scripts/office/validators/pptx.py +275 -0
- package/skills/front-end/xlsx/scripts/office/validators/redlining.py +247 -0
- package/skills/front-end/xlsx/scripts/recalc.py +184 -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,354 @@
|
|
|
1
|
+
(()=>{var a={};a.id=338,a.ids=[338],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},1708:a=>{"use strict";a.exports=require("node:process")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},5006:a=>{"use strict";a.exports=import("@playwright/test")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},13239:(a,b,c)=>{"use strict";c.d(b,{I:()=>f});var d=c(80280);let e=!1;function f(){e||(e=!0,d.F.exec(`
|
|
2
|
+
CREATE TABLE IF NOT EXISTS design_session (
|
|
3
|
+
id TEXT PRIMARY KEY,
|
|
4
|
+
workspace_id TEXT NOT NULL REFERENCES workspace(id) ON DELETE CASCADE,
|
|
5
|
+
title TEXT NOT NULL DEFAULT 'Design session',
|
|
6
|
+
status TEXT NOT NULL DEFAULT 'building',
|
|
7
|
+
tokens TEXT NOT NULL DEFAULT '{}',
|
|
8
|
+
created_at INTEGER NOT NULL DEFAULT (unixepoch()),
|
|
9
|
+
updated_at INTEGER NOT NULL DEFAULT (unixepoch())
|
|
10
|
+
);
|
|
11
|
+
CREATE INDEX IF NOT EXISTS design_session_ws_idx ON design_session (workspace_id, created_at);
|
|
12
|
+
CREATE TABLE IF NOT EXISTS design_page (
|
|
13
|
+
id TEXT PRIMARY KEY,
|
|
14
|
+
session_id TEXT NOT NULL REFERENCES design_session(id) ON DELETE CASCADE,
|
|
15
|
+
key TEXT NOT NULL,
|
|
16
|
+
name TEXT NOT NULL,
|
|
17
|
+
tree TEXT
|
|
18
|
+
);
|
|
19
|
+
CREATE INDEX IF NOT EXISTS design_page_sess_idx ON design_page (session_id);
|
|
20
|
+
CREATE TABLE IF NOT EXISTS design_version (
|
|
21
|
+
id TEXT PRIMARY KEY,
|
|
22
|
+
session_id TEXT NOT NULL REFERENCES design_session(id) ON DELETE CASCADE,
|
|
23
|
+
label TEXT NOT NULL,
|
|
24
|
+
note TEXT NOT NULL DEFAULT '',
|
|
25
|
+
patch TEXT,
|
|
26
|
+
created_at INTEGER NOT NULL DEFAULT (unixepoch())
|
|
27
|
+
);
|
|
28
|
+
CREATE INDEX IF NOT EXISTS design_version_sess_idx ON design_version (session_id, created_at);
|
|
29
|
+
CREATE TABLE IF NOT EXISTS design_comment (
|
|
30
|
+
id TEXT PRIMARY KEY,
|
|
31
|
+
session_id TEXT NOT NULL REFERENCES design_session(id) ON DELETE CASCADE,
|
|
32
|
+
page_key TEXT NOT NULL,
|
|
33
|
+
xp REAL NOT NULL,
|
|
34
|
+
yp REAL NOT NULL,
|
|
35
|
+
body TEXT NOT NULL,
|
|
36
|
+
reply TEXT NOT NULL DEFAULT '',
|
|
37
|
+
selection TEXT,
|
|
38
|
+
created_at INTEGER NOT NULL DEFAULT (unixepoch())
|
|
39
|
+
);
|
|
40
|
+
CREATE INDEX IF NOT EXISTS design_comment_sess_idx ON design_comment (session_id);
|
|
41
|
+
`))}},17891:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/get-segment-param")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21308:(a,b,c)=>{"use strict";c.r(b),c.d(b,{__next_app__:()=>O,handler:()=>Q,routeModule:()=>P});var d=c(53488),e=c(69743),f=c(34185),g=c(65510),h=c(72584),i=c(75994),j=c(66273),k=c(50962),l=c(26936),m=c(14018),n=c(99048),o=c(45164),p=c(25026),q=c(47743),r=c(261),s=c(18619),t=c(61528),u=c(26713),v=c(26242),w=c(20599),x=c(23307),y=c(22204),z=c(6044),A=c(61840),B=c(7612),C=c(86439),D=c(77068),E=c(6944),F=c(66516),G=c(4984),H=c(60865),I=c(70722),J=c(77032),K=c(43954),L=c(17891),M={};for(let a in G)0>["default","__next_app__","routeModule","handler"].indexOf(a)&&(M[a]=()=>G[a]);c.d(b,M);let N={children:["",{children:["(app)",{children:["design",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,44616)),"C:\\Users\\Usuario\\Documents\\constella\\src\\app\\(app)\\design\\page.tsx"]}]},{"global-error":[()=>Promise.resolve().then(c.bind(c,24759)),"C:\\Users\\Usuario\\Documents\\constella\\src\\app\\global-error.tsx"]},[]]},{layout:[()=>Promise.resolve().then(c.bind(c,94496)),"C:\\Users\\Usuario\\Documents\\constella\\src\\app\\(app)\\layout.tsx"],error:[()=>Promise.resolve().then(c.bind(c,35266)),"C:\\Users\\Usuario\\Documents\\constella\\src\\app\\(app)\\error.tsx"],"global-error":[()=>Promise.resolve().then(c.bind(c,24759)),"C:\\Users\\Usuario\\Documents\\constella\\src\\app\\global-error.tsx"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,84946,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,22835,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,61238,23)),"next/dist/client/components/builtin/unauthorized.js"]},[]]},{layout:[()=>Promise.resolve().then(c.bind(c,91517)),"C:\\Users\\Usuario\\Documents\\constella\\src\\app\\layout.tsx"],error:[()=>Promise.resolve().then(c.bind(c,28173)),"C:\\Users\\Usuario\\Documents\\constella\\src\\app\\error.tsx"],"global-error":[()=>Promise.resolve().then(c.bind(c,24759)),"C:\\Users\\Usuario\\Documents\\constella\\src\\app\\global-error.tsx"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,84946,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,22835,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,61238,23)),"next/dist/client/components/builtin/unauthorized.js"]},[]]}.children,O={require:c,loadChunk:()=>Promise.resolve()},P=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/(app)/design/page",pathname:"/design",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:N},distDir:".next",relativeProjectDir:""});async function Q(a,b,d){var M,R,S,T,U;d.requestMeta&&(0,h.setRequestMeta)(a,d.requestMeta),P.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let V=!!(0,h.getRequestMeta)(a,"minimalMode"),W="/(app)/design/page";"/index"===W&&(W="/");let X=await P.prepare(a,b,{srcPage:W,multiZoneDraftMode:!1});if(!X)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:Y,query:Z,params:$,pageIsDynamic:_,buildManifest:aa,nextFontManifest:ab,reactLoadableManifest:ac,serverActionsManifest:ad,clientReferenceManifest:ae,subresourceIntegrityManifest:af,prerenderManifest:ag,isDraftMode:ah,resolvedPathname:ai,revalidateOnlyGenerated:aj,routerServerContext:ak,nextConfig:al,parsedUrl:am,interceptionRoutePatterns:an,deploymentId:ao,clientAssetToken:ap}=X,aq=(0,r.normalizeAppPath)(W),{isOnDemandRevalidate:ar}=X,as=al.experimental.ppr&&!al.cacheComponents&&(0,K.isInterceptionRouteAppPath)(ai)?null:P.match(ai,ag),at=(null==as?void 0:as.route)??null,au=!!ag.routes[ai],av=a.headers["user-agent"]||"",aw=(0,u.getBotType)(av),ax=(0,q.isHtmlBotRequest)(a),ay=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[t.NEXT_ROUTER_PREFETCH_HEADER],az=(0,h.getRequestMeta)(a,"isRSCRequest")??(0,n.f)(a.headers[t.RSC_HEADER]),aA=(0,s.getIsPossibleServerAction)(a),aB=(0,m.checkIsAppPPREnabled)(al.experimental.ppr),aC=a.headers[y.NEXT_RESUME_STATE_LENGTH_HEADER];if(!(0,h.getRequestMeta)(a,"postponed")&&V&&aB&&aA&&aC&&"string"==typeof aC){let e=parseInt(aC,10),{maxPostponedStateSize:f,maxPostponedStateSizeBytes:g}=(0,E.getMaxPostponedStateSize)(al.experimental.maxPostponedStateSize);if(!isNaN(e)&&e>0){if(e>g)return b.statusCode=413,b.end((0,E.getPostponedStateExceededErrorMessage)(f)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let i="1 MB",j=(null==(U=al.experimental.serverActions)?void 0:U.bodySizeLimit)??i,k=e+(j!==i?c(98649).parse(j):1048576),l=await (0,E.readBodyWithSizeLimit)(a,k);if(null===l)return b.statusCode=413,b.end("Request body exceeded limit. To configure the body size limit for Server Actions, see: https://nextjs.org/docs/app/api-reference/next-config-js/serverActions#bodysizelimit"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;if(l.length>=e){let b=l.subarray(0,e).toString("utf8");(0,h.addRequestMeta)(a,"postponed",b);let c=l.subarray(e);(0,h.addRequestMeta)(a,"actionBody",c)}else throw Object.defineProperty(Error(`invariant: expected ${e} bytes of postponed state but only received ${l.length} bytes`),"__NEXT_ERROR_CODE",{value:"E979",enumerable:!1,configurable:!0})}}if(!(0,h.getRequestMeta)(a,"postponed")&&aB&&"1"===a.headers[y.NEXT_RESUME_HEADER]&&"POST"===a.method){let{maxPostponedStateSize:c,maxPostponedStateSizeBytes:e}=(0,E.getMaxPostponedStateSize)(al.experimental.maxPostponedStateSize),f=await (0,E.readBodyWithSizeLimit)(a,e);if(null===f)return b.statusCode=413,b.end((0,E.getPostponedStateExceededErrorMessage)(c)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let g=f.toString("utf8");(0,h.addRequestMeta)(a,"postponed",g)}let aD=!0===P.isDev||!0===al.experimental.exposeTestingApiInProductionBuild,aE=aD&&("1"===a.headers[t.NEXT_INSTANT_PREFETCH_HEADER]||!(0,n.f)(a.headers[t.RSC_HEADER])&&"string"==typeof a.headers.cookie&&a.headers.cookie.includes(t.NEXT_INSTANT_TEST_COOKIE+"=")),aF=(aB||aE)&&((null==(M=ag.routes[aq]??ag.dynamicRoutes[aq])?void 0:M.renderingMode)==="PARTIALLY_STATIC"||aE&&(aD||(null==ak?void 0:ak.experimentalTestProxy)===!0)),aG=aE&&aF,aH=aG&&!0===P.isDev,aI=!1,aJ=aF?(0,h.getRequestMeta)(a,"postponed"):void 0,aK=null==(R=ag.routes[ai])?void 0:R.prefetchDataRoute,aL=aF&&az&&!ay&&!aK;V&&(aL=aL&&!!aJ);let aM=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),aN=(!aw||!aF)&&(!av||(0,q.shouldServeStreamingMetadata)(av,al.htmlLimitedBots)),aO=!!((at||au||ag.routes[aq])&&!(aw&&aF)),aP=aF&&!0===al.cacheComponents,aQ=!0===P.isDev||!aO||"string"==typeof aJ||(aP&&(0,h.getRequestMeta)(a,"onCacheEntryV2")?aL&&!V:aL),aR=!!aw&&aF,aS=(null==at?void 0:at.remainingPrerenderableParams)??[],aT=(null==at?void 0:at.fallback)===null&&((null==(S=at.fallbackRootParams)?void 0:S.length)??0)>0,aU=null;if(!ah&&aO&&!aQ&&!aA&&!aJ&&!aL){let a=as?"string"==typeof(null==at?void 0:at.fallback)?at.fallback:as.source:null;if(!0===al.experimental.partialFallbacks&&a&&(null==at?void 0:at.fallbackRouteParams)&&!aT){if(aS.length>0){let b,c=(b=new Map(aS.map(a=>[a.paramName,a])),a.split("/").map(a=>{let c=(0,L.getSegmentParam)(a);if(!c)return a;let d=b.get(c.paramName);if(!d)return a;let e=null==$?void 0:$[d.paramName];if(!e)return a;let f=Array.isArray(e)?e.map(a=>encodeURIComponent(a)).join("/"):encodeURIComponent(e);return a.replace((0,o.buildDynamicSegmentPlaceholder)(d),f)}).join("/")||"/");aU=c!==a?c:null}}else aU=ai}let aV=aU;!aV&&(P.isDev||aO&&_&&(null==at?void 0:at.fallbackRouteParams)&&!aA)&&(aV=ai),P.isDev||ah||!aO||!az||aL||(0,k.d)(a.headers);let aW={...G,tree:N,handler:Q,routeModule:P,__next_app__:O};ad&&ae&&(0,p.setManifestsSingleton)({page:W,clientReferenceManifest:ae,serverActionsManifest:ad});let aX=a.method||"GET",aY=(0,g.getTracer)(),aZ=aY.getActiveScopeSpan(),a$=!!(null==ak?void 0:ak.isWrappedByNextServer),a_=!0===al.experimental.partialFallbacks&&aS.length>0?(null==at||null==(T=at.fallbackRouteParams)?void 0:T.filter(a=>!aS.some(b=>b.paramName===a.paramName)))??[]:[],a0=async()=>((null==ak?void 0:ak.render404)?await ak.render404(a,b,am,!1):b.end("This page could not be found"),null);try{let k,m=P.getVaryHeader(ai,an);b.setHeader("Vary",m);let n=async(c,d)=>{let e=new l.NodeNextRequest(a),f=new l.NodeNextResponse(b);return P.render(e,f,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let a=aY.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let d=a.get("next.route");if(d){let a=`${aX} ${d}`;c.setAttributes({"next.route":d,"http.route":d,"next.span_name":a}),c.updateName(a),k&&k!==c&&(k.setAttribute("http.route",d),k.updateName(a))}else c.updateName(`${aX} ${W}`)})},p=(0,h.getRequestMeta)(a,"incrementalCache")||await P.getIncrementalCache(a,al,ag,V);null==p||p.resetRequestCache(),globalThis.__incrementalCache=p;let q=async({span:e,postponed:f,fallbackRouteParams:g,forceStaticRender:i})=>{let k={query:Z,params:$,page:aq,sharedContext:{buildId:Y,deploymentId:ao,clientAssetToken:ap},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aW,Component:(0,j.T)(aW),params:$,routeModule:P,page:W,postponed:f,shouldWaitOnAllReady:aR,serveStreamingMetadata:aN,supportsDynamicResponse:"string"==typeof f||aQ,buildManifest:aa,nextFontManifest:ab,reactLoadableManifest:ac,subresourceIntegrityManifest:af,setCacheStatus:null==ak?void 0:ak.setCacheStatus,setIsrStatus:null==ak?void 0:ak.setIsrStatus,setReactDebugChannel:null==ak?void 0:ak.setReactDebugChannel,sendErrorsToBrowser:null==ak?void 0:ak.sendErrorsToBrowser,dir:c(33873).join(process.cwd(),P.relativeProjectDir),isDraftMode:ah,botType:aw,isOnDemandRevalidate:ar,isPossibleServerAction:aA,assetPrefix:al.assetPrefix,nextConfigOutput:al.output,crossOrigin:al.crossOrigin,trailingSlash:al.trailingSlash,images:al.images,previewProps:ag.preview,enableTainting:al.experimental.taint,htmlLimitedBots:al.htmlLimitedBots,reactMaxHeadersLength:al.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:p,cacheLifeProfiles:al.cacheLife,basePath:al.basePath,serverActions:al.experimental.serverActions,logServerFunctions:"object"==typeof al.logging&&!!al.logging.serverFunctions,...aG||aH||aI?{isBuildTimePrerendering:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isDebugDynamicAccesses:aH}:{},cacheComponents:!!al.cacheComponents,experimental:{isRoutePPREnabled:aF,expireTime:al.expireTime,staleTimes:al.experimental.staleTimes,dynamicOnHover:!!al.experimental.dynamicOnHover,optimisticRouting:!!al.experimental.optimisticRouting,inlineCss:!!al.experimental.inlineCss,prefetchInlining:al.experimental.prefetchInlining??!1,authInterrupts:!!al.experimental.authInterrupts,cachedNavigations:!!al.experimental.cachedNavigations,clientTraceMetadata:al.experimental.clientTraceMetadata||[],clientParamParsingOrigins:al.experimental.clientParamParsingOrigins,maxPostponedStateSizeBytes:(0,D.parseMaxPostponedStateSize)(al.experimental.maxPostponedStateSize)},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d,e)=>P.onRequestError(a,b,d,e,ak),err:(0,h.getRequestMeta)(a,"invokeError")}};i&&(k.renderOpts.supportsDynamicResponse=!1);let l=await n(e,k),{metadata:m}=l,{cacheControl:o,headers:q={},fetchTags:r,fetchMetrics:s}=m;if(r&&(q[y.NEXT_CACHE_TAGS_HEADER]=r),a.fetchMetrics=s,aO&&(null==o?void 0:o.revalidate)===0&&!P.isDev&&!aF){let a=m.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${ai}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""}
|
|
42
|
+
see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:v.CachedRouteKind.APP_PAGE,html:l,headers:q,rscData:m.flightData,postponed:m.postponed,status:m.statusCode,segmentData:m.segmentData},cacheControl:o}},r=async({hasResolved:c,previousCacheEntry:g,isRevalidating:i,span:j,forceStaticRender:k=!1})=>{let l=!1===P.isDev,m=c||b.writableEnded;try{var n;let f;if(ar&&aj&&!g&&!V)return(null==ak?void 0:ak.render404)?await ak.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(at&&(f=(0,w.parseFallbackField)(at.fallback)),!0===al.experimental.partialFallbacks&&(null==at?void 0:at.fallback)===null&&!aT&&aS.length>0&&(f=w.FallbackMode.PRERENDER),f===w.FallbackMode.PRERENDER&&(0,u.isBot)(av)&&(!aF||ax)&&(f=w.FallbackMode.BLOCKING_STATIC_RENDER),(null==g?void 0:g.isStale)===-1&&(ar=!0),ar&&(f!==w.FallbackMode.NOT_FOUND||g)&&(f=w.FallbackMode.BLOCKING_STATIC_RENDER),!V&&f!==w.FallbackMode.BLOCKING_STATIC_RENDER&&aV&&!m&&!ah&&_&&(l||!au)){if((l||at)&&f===w.FallbackMode.NOT_FOUND){if(al.adapterPath)return await a0();throw new C.NoFallbackError}if(aF&&(al.cacheComponents?!aL:!az)){let b=l&&"string"==typeof(null==at?void 0:at.fallback)?at.fallback:aq,f=(l||aG)&&(null==at?void 0:at.fallbackRouteParams)?(0,o.createOpaqueFallbackRouteParams)(at.fallbackRouteParams):aI?(0,o.getFallbackRouteParams)(aq,P):null;aG&&f&&(0,h.addRequestMeta)(a,"fallbackParams",f);let g=await P.handleResponse({cacheKey:b,req:a,nextConfig:al,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:ag,isRoutePPREnabled:aF,responseGenerator:async()=>q({span:j,postponed:void 0,fallbackRouteParams:f,forceStaticRender:!0}),waitUntil:d.waitUntil,isMinimalMode:V});if(null===g)return null;if(g)return V||!aF||!(aS.length>0)||!0!==al.experimental.partialFallbacks||!aU||!p||ar||aI||aD||aE||ay||(0,J.scheduleOnNextTick)(async()=>{let b=P.getResponseCache(a);try{await b.revalidate(aU,p,aF,!1,a=>q({span:a.span,postponed:void 0,fallbackRouteParams:a_.length>0?(0,o.createOpaqueFallbackRouteParams)(a_):null,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}),delete g.cacheControl,g}}let s=ar||i||!aJ?void 0:aJ;if(aP&&!V&&p&&(aL||aA)&&!k){let b=await p.get(ai,{kind:v.IncrementalCacheKind.APP_PAGE,isRoutePPREnabled:!0,isFallback:!1});b&&b.value&&b.value.kind===v.CachedRouteKind.APP_PAGE&&(s=b.value.postponed,b&&(-1===b.isStale||!0===b.isStale)&&(0,J.scheduleOnNextTick)(async()=>{let b=P.getResponseCache(a);try{await b.revalidate(ai,p,aF,!1,a=>r({...a,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}))}if((aG||aH)&&void 0!==s)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:v.CachedRouteKind.PAGES,html:x.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let t=!P.isDev&&_&&(null==at?void 0:at.fallbackRouteParams)?(0,o.getPlaceholderFallbackRouteParams)($,at.fallbackRouteParams):null,y=t&&t.length>0?t:null==at?void 0:at.fallbackRouteParams,z=null!=t&&t.length>0,A=null;if(al.cacheComponents&&(null==at?void 0:at.fallbackRouteParams)){let b=(0,h.getRequestMeta)(a,"resolvedRouteParamKeys");b&&b.size>0&&(A=at.fallbackRouteParams.filter(a=>!b.has(a.paramName)))}let B=(l&&(0,h.getRequestMeta)(a,"renderFallbackShell")||z||aG&&!au)&&y?(0,o.createOpaqueFallbackRouteParams)(y):A&&A.length>0&&A.length<((null==at||null==(n=at.fallbackRouteParams)?void 0:n.length)??0)?(0,o.createOpaqueFallbackRouteParams)(A):aI?(0,o.getFallbackRouteParams)(aq,P):null;if((l||aG)&&al.cacheComponents&&!au&&(null==at?void 0:at.fallbackRouteParams)){let b=(0,o.createOpaqueFallbackRouteParams)(y??at.fallbackRouteParams);b&&(0,h.addRequestMeta)(a,"fallbackParams",b)}return q({span:j,postponed:s,fallbackRouteParams:B,forceStaticRender:k})}catch(b){throw(null==g?void 0:g.isStale)&&await P.onRequestError(a,b,{routerKind:"App Router",routePath:W,routeType:"render",revalidateReason:(0,f.c)({isStaticGeneration:aO,isOnDemandRevalidate:ar})},!1,ak),b}},s=async c=>{var f,g,i,j,k,l;let m,n=await P.handleResponse({cacheKey:aU,responseGenerator:a=>r({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ar,isRoutePPREnabled:aF,req:a,nextConfig:al,prerenderManifest:ag,waitUntil:d.waitUntil,isMinimalMode:V});if(ah&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),P.isDev&&b.setHeader("Cache-Control","no-cache, must-revalidate"),!n){if(aU)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=n.value)?void 0:f.kind)!==v.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=n.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let o="string"==typeof n.value.postponed;az&&!aA&&ao&&b.setHeader(y.NEXT_NAV_DEPLOYMENT_ID_HEADER,ao),aO&&!aL&&(!o||ay)&&(V||b.setHeader("x-nextjs-cache",ar?"REVALIDATED":n.isMiss?"MISS":n.isStale?"STALE":"HIT"),b.setHeader(t.NEXT_IS_PRERENDER_HEADER,"1"));let{value:p}=n;if(aJ)m={revalidate:0,expire:void 0};else if(aL)m={revalidate:0,expire:void 0};else if(!P.isDev)if(ah)m={revalidate:0,expire:void 0};else if(aO){if(n.cacheControl)if("number"==typeof n.cacheControl.revalidate){if(n.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${n.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});m={revalidate:n.cacheControl.revalidate,expire:(null==(j=n.cacheControl)?void 0:j.expire)??al.expireTime}}else m={revalidate:y.CACHE_ONE_YEAR_SECONDS,expire:void 0}}else b.getHeader("Cache-Control")||(m={revalidate:0,expire:void 0});if(n.cacheControl=m,"string"==typeof aM&&(null==p?void 0:p.kind)===v.CachedRouteKind.APP_PAGE&&p.segmentData){b.setHeader(t.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=p.headers)?void 0:k[y.NEXT_CACHE_TAGS_HEADER];V&&aO&&c&&"string"==typeof c&&b.setHeader(y.NEXT_CACHE_TAGS_HEADER,c);let d=p.segmentData.get(aM);return void 0!==d?(0,B.sendRenderResult)({req:a,res:b,generateEtags:al.generateEtags,poweredByHeader:al.poweredByHeader,result:x.default.fromStatic(d,t.RSC_CONTENT_TYPE_HEADER),cacheControl:n.cacheControl}):(b.statusCode=204,(0,B.sendRenderResult)({req:a,res:b,generateEtags:al.generateEtags,poweredByHeader:al.poweredByHeader,result:x.default.EMPTY,cacheControl:n.cacheControl}))}let s=aP?(0,h.getRequestMeta)(a,"onCacheEntryV2")??(0,h.getRequestMeta)(a,"onCacheEntry"):(0,h.getRequestMeta)(a,"onCacheEntry");if(s){let b=(0,h.getRequestMeta)(a,"initURL")??a.url,c=b?(null==(l=(0,F.parseUrl)(b))?void 0:l.pathname)??b:void 0;if(await s(n,{url:c}))return null}if(p.headers){let a={...p.headers};for(let[c,d]of(V&&aO||delete a[y.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let u=null==(g=p.headers)?void 0:g[y.NEXT_CACHE_TAGS_HEADER];if(V&&aO&&u&&"string"==typeof u&&b.setHeader(y.NEXT_CACHE_TAGS_HEADER,u),!p.status||az&&aF||(b.statusCode=p.status),!V&&p.status&&H.RedirectStatusCode[p.status]&&az&&(b.statusCode=200),o&&!aL&&b.setHeader(t.NEXT_DID_POSTPONE_HEADER,"1"),az&&!ah){if(void 0===p.rscData){if(p.html.contentType!==t.RSC_CONTENT_TYPE_HEADER)if(al.cacheComponents)return b.statusCode=404,(0,B.sendRenderResult)({req:a,res:b,generateEtags:al.generateEtags,poweredByHeader:al.poweredByHeader,result:x.default.EMPTY,cacheControl:n.cacheControl});else throw Object.defineProperty(new I.InvariantError(`Expected RSC response, got ${p.html.contentType}`),"__NEXT_ERROR_CODE",{value:"E789",enumerable:!1,configurable:!0});return(0,B.sendRenderResult)({req:a,res:b,generateEtags:al.generateEtags,poweredByHeader:al.poweredByHeader,result:p.html,cacheControl:n.cacheControl})}return(0,B.sendRenderResult)({req:a,res:b,generateEtags:al.generateEtags,poweredByHeader:al.poweredByHeader,result:x.default.fromStatic(p.rscData,t.RSC_CONTENT_TYPE_HEADER),cacheControl:n.cacheControl})}let w=p.html;if(aE&&aG){let c=!0===P.isDev?crypto.randomUUID():null;return w.pipeThrough(await (0,A.createInstantTestScriptInsertionTransformStream)(c)),(0,B.sendRenderResult)({req:a,res:b,generateEtags:al.generateEtags,poweredByHeader:al.poweredByHeader,result:w,cacheControl:{revalidate:0,expire:void 0}})}if(!o||V||az)return(0,B.sendRenderResult)({req:a,res:b,generateEtags:al.generateEtags,poweredByHeader:al.poweredByHeader,result:w,cacheControl:n.cacheControl});if(aG||aH)return w.push(new ReadableStream({start(a){a.enqueue(z.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,B.sendRenderResult)({req:a,res:b,generateEtags:al.generateEtags,poweredByHeader:al.poweredByHeader,result:w,cacheControl:{revalidate:0,expire:void 0}});let C=new TransformStream;return w.push(C.readable),q({span:c,postponed:p.postponed,fallbackRouteParams:null,forceStaticRender:!1}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==v.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(C.writable)}).catch(a=>{C.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,B.sendRenderResult)({req:a,res:b,generateEtags:al.generateEtags,poweredByHeader:al.poweredByHeader,result:w,cacheControl:{revalidate:0,expire:void 0}})};if(!a$||!aZ)return k=aY.getActiveScopeSpan(),await aY.withPropagatedContext(a.headers,()=>aY.trace(i.BaseServerSpan.handleRequest,{spanName:`${aX} ${W}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aX,"http.target":a.url}},s),void 0,!a$);await s(aZ)}catch(b){throw b instanceof C.NoFallbackError||await P.onRequestError(a,b,{routerKind:"App Router",routePath:W,routeType:"render",revalidateReason:(0,f.c)({isStaticGeneration:aO,isOnDemandRevalidate:ar})},!1,ak),b}}},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31421:a=>{"use strict";a.exports=require("node:child_process")},33873:a=>{"use strict";a.exports=require("path")},37067:a=>{"use strict";a.exports=require("node:http")},41012:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,63885,23)),Promise.resolve().then(c.bind(c,98705)),Promise.resolve().then(c.bind(c,46173)),Promise.resolve().then(c.bind(c,93209)),Promise.resolve().then(c.bind(c,55872)),Promise.resolve().then(c.bind(c,32847)),Promise.resolve().then(c.bind(c,68294)),Promise.resolve().then(c.bind(c,46694)),Promise.resolve().then(c.bind(c,51221))},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},43954:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/interception-routes")},44616:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>o});var d=c(61576),e=c(1782),f=c(7852),g=c(80280),h=c(25533),i=c(95896),j=c(5323),k=c(67949),l=c(88639),m=c(13239),n=c(45011);async function o(){let a=await (0,k.l)(),{org:b,workspace:c}=await (0,i.nP)();(0,m.I)();let o=(0,l.zw)(b.id,c),p=(0,l.Iz)(b.id),q=(0,l.hp)(b.id),r=await g.db.select().from(h.agent).where((0,e.eq)(h.agent.workspaceId,c.id)),s=r.find(a=>"grace"===a.handle)??r.find(a=>/front\s?end|\bui\b|\bux\b/i.test(a.role))??null,[t]=await g.db.select().from(h.designSession).where((0,e.eq)(h.designSession.workspaceId,c.id)).orderBy((0,f.i)(h.designSession.createdAt)).limit(1);return(0,d.jsx)(j._,{title:a("mod.design"),sub:"Prototype the UI with the frontend agent before the plan",flush:!0,children:(0,d.jsx)(n.DesignClient,{context:{mission:o.mission,objective:o.objective,stackList:o.stackList,brief:!!o.brief,mockCount:o.mockFiles.length,designMockFiles:o.designMockFiles,designSkillCount:o.designSkills.length,hasImported:o.hasImported,approved:!!o.approved,gatePending:!!p.requestedPlanAt&&!p.skip,gateScaffolded:!!p.scaffoldedAt,handoffPending:!!p.handoffAt,handoffDone:!!q.at},grace:s?{id:s.id,name:s.name,handle:s.handle,color:s.color,image:s.image??null}:null,status:t?.status??"building",tokens:t?.tokens??null})})}},45011:(a,b,c)=>{"use strict";c.d(b,{DesignClient:()=>d});let d=(0,c(62060).registerClientReference)(function(){throw Error("Attempted to call DesignClient() from the server but DesignClient is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"C:\\Users\\Usuario\\Documents\\constella\\src\\app\\(app)\\design\\design-client.tsx","DesignClient")},46466:a=>{"use strict";a.exports=require("node:stream/promises")},48161:a=>{"use strict";a.exports=require("node:os")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},55511:a=>{"use strict";a.exports=require("crypto")},57075:a=>{"use strict";a.exports=require("node:stream")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64980:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,4195,23)),Promise.resolve().then(c.bind(c,45011)),Promise.resolve().then(c.bind(c,32825)),Promise.resolve().then(c.bind(c,15783)),Promise.resolve().then(c.bind(c,67686)),Promise.resolve().then(c.bind(c,29876)),Promise.resolve().then(c.bind(c,16120)),Promise.resolve().then(c.bind(c,42328)),Promise.resolve().then(c.bind(c,4719))},70722:a=>{"use strict";a.exports=require("next/dist/shared/lib/invariant-error")},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},74075:a=>{"use strict";a.exports=require("zlib")},76760:a=>{"use strict";a.exports=require("node:path")},77030:a=>{"use strict";a.exports=require("node:net")},77068:a=>{"use strict";a.exports=require("next/dist/shared/lib/size-limit")},77598:a=>{"use strict";a.exports=require("node:crypto")},78474:a=>{"use strict";a.exports=require("node:events")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{"use strict";a.exports=require("better-sqlite3")},87606:(a,b,c)=>{"use strict";c.r(b),c.d(b,{"000092376504dffe42d6d7bbea8971004cfbf59aa1":()=>e.KO,"000a041d002c8ec4af941e0a6d667a3829b48260ce":()=>e.y_,"0012956bf2d3bbcb43f67d38b3aa8dfae55ac33977":()=>j.f,"0014d991f2d22e123e00d4c10ee8f9cda55424adfb":()=>n.Ni,"00188698481b69c79e5b3aa893fc26e4d0c1ad2c80":()=>n.I_,"002014c503129e70c12e060d2d82613f53e06ed951":()=>j.O,"002848aa56706bb4da36231d0469773010b5c65995":()=>h.Mp,"0034803147c448737f6a0164383dd37f8f93732bec":()=>d.bt,"003b0864cd6028ed215e860e8eab5e7c1ffff7c460":()=>k.io,"003de4055bdd508bb7e3a6a9715b3c76aa7c5bf19c":()=>k.eg,"00447576ecd8f610009a2c1071738c9934a1e9cd8f":()=>k.dj,"00469d0a33e26f3477a84aa01ef49f536b57179be4":()=>p.pM,"00489557c06166ea2ca69911c0a571a148ac5bf6f3":()=>o.j0,"0050116e1f2e9cd52a5bc7fd172d161f41f8803bc6":()=>o.Fy,"005378c98afb4c20e7152c9d11239ad09757831252":()=>e.PE,"0057467d49ea85739735767ccea6db330c76faeec8":()=>p.eU,"00582dbab5f37aed0f19eff37252e890c0a55f39d0":()=>e.GK,"005ea234d96275090327f7e2dcce8ca4432f5fe72c":()=>i.V,"005f3317d8b38b3db4c2f37199d1a5916eef4d4794":()=>o.zC,"0069fb8636b418f3a58772240c6bf50253c71b1f2c":()=>o.nx,"0077056643e96edd170af179462053352972b27b5d":()=>n.yL,"0081233510153f0339f73d725b2024d1229ff56c30":()=>n.e9,"0086f6c313e66383ec91413fd290e11f4488b81dee":()=>n.ME,"008771d0abb94f50766bb24974b9b085086e5a855c":()=>n.gn,"009513f8ddea5c0533a4b07002daa235220c6fcac6":()=>o.Rr,"00b1241dd421ffae4ebf008768be90ba5f35de7633":()=>d.xU,"00b8671f7cffcd5befee5520a52a5ec820587c104e":()=>n.wP,"00dac3ff0c42f059b0191a41b5ab5d1522e0c8db4f":()=>n.o3,"00e24c29c4b238e08be9728ea3975ef50ce267c56b":()=>n.Tu,"00e4e84e3295f14df7ae45000ba0c854a30927c6ac":()=>n.oS,"00ee83073d8c45c4fef5ff93c2d8698fc6367bea0e":()=>h.x7,"00ef40b521ba111ae5cd40d15fc2fbe1a31aec511b":()=>p.PG,"00f425d97f015d351ac953dc13fca079f8f98df80a":()=>n.PO,"40043b56e692c611ee1b3762d11ff2d59ad88f40e9":()=>g.p,"400afad86c243d920cb13488b8274bea36c18c21d3":()=>e.ey,"40211d14c88eb1be62ce200a5ef91e46df5e8444f8":()=>g.L,"40240213a9ee438876082ca59a072e1d2476d156c9":()=>e.jc,"4032d226a203b6346dafcb9cea575e462bb4a4b65d":()=>n.$_,"4034047e3cec56354eae1ec41f866469d06078fb04":()=>i.zS,"4034b958c5291072ebed84a5d32e5682c0472c7c27":()=>d.gg,"403ad35020d0178cad6c5c90cc869fc00fd1b6370c":()=>l.IL,"403c300530e143bf5ac45f084006cbf49445591b83":()=>l.q4,"40448c5c20fb04ace2af739622349aa2d52ade65fa":()=>i.F,"4050a8de593aa91a64bc534081570b5672455b599f":()=>h.lR,"4058c9447c6db1cfaceee0db2490f11726cf348d6a":()=>k.De,"40595242ae0f18bb3fd06f543cf9b0c6ae3aad2899":()=>d.Wu,"4061d2fff9149f3df3f6807779c546d43b8913db00":()=>e.r7,"406c88351d7da2900b007aeecb66633dd07a201621":()=>o.Xu,"40772803f1b35987781227336f23ecdbd55cf41fd1":()=>n.h_,"4077353cf164d10e348831f1282672c44d3bdf3683":()=>n.NM,"407efc0bd72272aed2f1d86ee92ec53b31e5797f6a":()=>e.S,"4086d172d8b634174e36e833f36bc02f7b18021ebf":()=>d.VL,"408e54a9df74874379d27e7c956b7b0de75c3665c1":()=>n.R6,"40903ff4e8850de2b9b0ec69f26d96d30e134dd37d":()=>e.RG,"409364c2aeb5b3848eb49929913f7b33024d052ade":()=>l.TX,"409d4cbe6ec07ab8ba3752b7baf907850f79f1584c":()=>o.KD,"40a4c8e3e773086f343e2bb6cf58c57b07351ab827":()=>n.a4,"40a6b07acdef8a3d7decbb3abd27a5e167f75ea818":()=>p.lP,"40bb21cbee60051771dac14e01d11aa866d00e3d27":()=>n.lj,"40bf3186ebd30c9abea9ad49c120b1f9b2c735c7ed":()=>d.H7,"40c17744973569bf9610916c2f6748f67f8ad28895":()=>d.GW,"40c2849ce4892a523c0f6826e0747a4a1bcb773954":()=>i.VJ,"40c8745e5d6d974d20084fff8a5273a8c2ca0f9c0e":()=>e.lJ,"40c976b278685e202b9a1713e53843aaf1c1f5d19f":()=>p.Kg,"40da0fa136729a64a58a5f45fc8b28376f4815c529":()=>i.E_,"40dee46f36e4a9bb45be083e921cbcb6d63d8b3413":()=>h.sE,"40ec36241c94b82fe0ccce5fc92b08e8c1267bda9b":()=>n.is,"40ec6c4022bb3dfafc90468d52e0b712636870219c":()=>d.rd,"40efca1b9d4ba273817cb7d8ccd73df095d8e8f922":()=>n.DX,"40fa257cf42313ca1a9fed2fb49ec7bf574cdbb57f":()=>n.fb,"40fea276f6a37289f66ea71a9be729e90d327aed30":()=>m.y,"600359c903bcdc4ad6575d966b7463b7f9e19aa7e5":()=>n.EQ,"6005fb86a682acf6b3948ce8d64f99a35da0711b34":()=>d.Fu,"602814b8498582495a69b0fb34cb400cc5ddea55ec":()=>n.Fo,"602efc219059d5ba747378f56cb838f0e2cedcdc44":()=>n.pG,"60300c3c1b471de37b1ad03e1bf78f8596b81af871":()=>n.qw,"6033cc0835248a7816d4e182773d13dcef21a80b1f":()=>n.NW,"604869f74335ae977b0d204b7a7725ea081c2e464b":()=>d.ME,"6061e793e98c6b7f50d458860e7c5d195c55c353b7":()=>o.TH,"6074da5a27c85308f0283832ba086dca01f11fd987":()=>n.ft,"60837f6c4d61a9e9bad7a4274f4d0e34a2ffeb3ac2":()=>d.n4,"60b2fea611b43792cdb4ef4bb5ea683665a4c11d10":()=>e.q$,"60b5011b57b25dd9d35c49e5581c26ff1450ffa84d":()=>e.AA,"60bd7f16418dc50dc8405ee52f569d6b76466e42c2":()=>f.k,"60d16690209bf12aea1d75ba6059b2f84df249820f":()=>l.bV,"60d1fe520970bf752f500c890281183070c12509ab":()=>d.rm,"60dc2159d814bcfe5bc8b5ca4c83c13d0fbc05d649":()=>f.I,"60de95de8a5060a0f9a0f91b59bf3c95b0e0ee6139":()=>n.RS,"60e054d3049e470186974cc7df6fc2dd249a75c60c":()=>l.bk,"60e981141c7241ed2a57000dff2d1ed708490a88d9":()=>e.LZ,"60ee693aca6ae1a7fcd00b81c6a6448ea3d1f0cf2c":()=>d.jw,"60fdda9dd1e684dbfc27b991588ef88964c62f95eb":()=>l.Jp,"7047cab3d785753e6eacfbdb8cb4bfa768b707c1fe":()=>d._z,"7089c528fa1527363d04960b5ebfedacd2614a4547":()=>n.Sy,"70ab3ef26c7e92e3e1c1e22461b0e2ef3159149053":()=>e.M8,"70dd1e0eac2da0e73b3af34ed3d5b754ea6cc7e20a":()=>n.sy,"70de59fd4b9e86e3f6429fa542c6f89009bb22ad9f":()=>n.a7,"70fcc40ff209eb152c7cf2b6e86ae61f923ffd0fee":()=>n.fM,"7cbcc33e46ce24b17bb67eeeab3fcf2664c489efe0":()=>n.Hg});var d=c(97140),e=c(15487),f=c(79505),g=c(51605),h=c(46363),i=c(46282),j=c(387),k=c(13604),l=c(7482),m=c(58169),n=c(90259),o=c(60686),p=c(52932)},88639:(a,b,c)=>{"use strict";c.d(b,{Bl:()=>y,DQ:()=>q,Er:()=>m,H5:()=>p,Iz:()=>o,Nt:()=>w,Oi:()=>g,e1:()=>t,hp:()=>s,iF:()=>u,uy:()=>i,zw:()=>h});var d=c(18612),e=c(85509),f=c(6873);let g="design-mock/APPROVED.md";function h(a,b){let c=(0,d.CS)(a),f=c.filter(a=>a.startsWith("mock/")&&"mock/README.md"!==a),h=c.filter(a=>a.startsWith("design-mock/")&&!/\/README\.md$/i.test(a)&&a!==g),i=c.filter(a=>a.startsWith("design-skills/")&&a.endsWith(".md")&&"design-skills/README.md"!==a),j=Object.entries(b.stack??{}).flatMap(([a,b])=>(0,e.jX)(b).filter(a=>"None"!==a).map(b=>`${a}: ${b}`)).join(", "),k=/^(\.claude\/|DOCS\/|PO\/|Reports\/|specs\/|issues\/|mock\/|design-mock\/|design-skills\/|README\.md$)/i,l=c.some(a=>!k.test(a));return{brief:(0,d.sL)(a,".claude/BRIEF.md")??"",mission:b.mission??"",objective:b.objective??"",stackList:j,mockFiles:f,designMockFiles:h,designSkills:i,approved:(0,d.sL)(a,g),hasImported:l}}function i(a){return[a.mission?`Mission: ${a.mission}`:"",a.objective?`Objective: ${a.objective}`:"",a.stackList?`Chosen stack: ${a.stackList}. Generate markup compatible with it — never generic.`:"",a.brief?`
|
|
43
|
+
Project brief:
|
|
44
|
+
${a.brief.slice(0,3e3)}`:"",a.mockFiles.length?`
|
|
45
|
+
Attached mock/prototype (${a.mockFiles.length} files): ${a.mockFiles.slice(0,14).join(", ")} — read them and match the product precisely.`:"",a.designMockFiles.length?`
|
|
46
|
+
Design module output so far (design-mock/): ${a.designMockFiles.slice(0,14).join(", ")}.`:"",a.designSkills.length?`
|
|
47
|
+
Design skills available (design-skills/): ${a.designSkills.map(a=>a.replace(/^design-skills\//,"")).slice(0,20).join(", ")} — consult the relevant ones.`:"",a.approved?`
|
|
48
|
+
An APPROVED design already exists (design-mock/APPROVED.md) — the official visual reference. Honor it; do not drift.`:"",a.hasImported?`
|
|
49
|
+
There is an existing imported/scaffolded project in this workspace — extend it, preserve its visual identity.`:""].filter(Boolean).join("\n")}let j={hotel:["hospitality","booking","reservation","rooms","travel","checkin","premium","gallery","amenities"],hospedagem:["hotel","booking","reservation","rooms","hospitality"],reserva:["booking","calendar","availability","checkout"],restaurant:["menu","food","reservation","hospitality","gallery"],restaurante:["menu","food","reservation","hospitality"],ecommerce:["product","cart","checkout","catalog","pricing","payment"],loja:["ecommerce","product","cart","checkout","catalog"],shop:["ecommerce","product","cart","checkout"],store:["ecommerce","product","cart","checkout"],dashboard:["charts","dataviz","tables","kpi","analytics","admin"],saas:["dashboard","pricing","onboarding","settings","billing"],fintech:["dashboard","charts","security","transactions","kpi"],banking:["fintech","transactions","security","cards","dashboard"],banco:["fintech","transactions","security","cards"],calculator:["mobile","grid","buttons","keypad","ios"],calculadora:["mobile","grid","buttons","keypad","ios"],apple:["ios","glassmorphism","minimal","typography","rounded","microinteractions"],ios:["apple","glassmorphism","mobile","rounded","microinteractions","minimal"],glassmorphism:["blur","translucent","frosted","depth","gradient"],neumorphism:["shadow","embossed","monochrome"],minimal:["whitespace","typography","restraint","grid"],minimalista:["whitespace","typography","grid"],brutalist:["bold","contrast","raw","monospace"],landing:["hero","cta","sections","features","testimonials","pricing","footer"],portfolio:["gallery","grid","casestudy","minimal","typography"],blog:["typography","reading","article","content"],social:["feed","cards","avatars","interactions","realtime"],chat:["messages","bubbles","realtime","input","avatars"],mobile:["responsive","touch","ios","android"],admin:["dashboard","tables","forms","crud","data"],dark:["theme","contrast"],premium:["luxury","typography","spacing","motion","elegant"],animation:["motion","transitions","keyframes","microinteractions"],motion:["animation","transitions","microinteractions"],accessibility:["a11y","contrast","focus","aria","wcag"]},k=new Set("the a an and or of to for with in on at is are be this that you your our it its build create make page screen app site website using use want need please can grace design quero uma para com que the and dos das uma novo nova".split(/\s+/));function l(a){return(a||"").toLowerCase().replace(/[^a-z0-9çãáéíóúâêôà\s-]/gi," ").split(/\s+/).filter(a=>a.length>=3&&!k.has(a))}function m(a,b){let c=function(a,b){let c=l([b||"",a.mission,a.objective,a.brief.slice(0,1500),a.stackList,a.mockFiles.map(a=>a.split("/").pop()||"").join(" ")].join(" ")),d={};for(let a of c)d[a]=(d[a]||0)+1;if(b)for(let a of l(b))d[a]=(d[a]||0)+3;let e=new Map;for(let a of Object.keys(d))e.set(a,(e.get(a)||0)+d[a]);for(let a of Object.keys(d))for(let[b,c]of Object.entries(j))if(a.includes(b)||b.includes(a))for(let a of c)e.set(a,(e.get(a)||0)+1);return Array.from(e.entries()).sort((a,b)=>b[1]-a[1]).map(([a])=>a).slice(0,24)}(a,b),d=function(a,b=8){let c=a.map(a=>a.toLowerCase());if(!c.length)return[];let d=[];for(let a of(0,f.Cg)().values()){let b=(a.tags||[]).map(a=>a.toLowerCase()),e=(a.name+" "+a.description+" "+a.domain+" "+a.category+" "+b.join(" ")).toLowerCase(),f=a.name.toLowerCase().split(/[^a-z0-9]+/).filter(Boolean),g=0;for(let a of c)f.includes(a)||b.includes(a)?g+=4:e.includes(a)&&(g+=1);("design"===a.domain||"design"===a.category)&&(g+=.5),g>0&&d.push({name:a.name,description:a.description,score:g})}return d.sort((a,b)=>b.score-a.score).slice(0,b).map(({name:a,description:b})=>({name:a,description:b}))}(c,8);return[c.length?`
|
|
50
|
+
DETECTED CONTEXT (domain + visual intent): ${c.slice(0,16).join(", ")}. Ground the palette, typography, layout, components and motion in THIS product's domain and style — never a generic AI look.`:"",d.length?`
|
|
51
|
+
MOST RELEVANT seeded skills for THIS request — READ the matching \`.claude/skills/<name>.md\` FIRST before building:
|
|
52
|
+
${d.map(a=>`- ${a.name}: ${a.description}`).join("\n")}`:""].filter(Boolean).join("\n")}let n=".claude/design-gate.json";function o(a){let b=(0,d.sL)(a,n);if(!b)return{};try{return JSON.parse(b)||{}}catch{return{}}}function p(a,b){try{(0,d.dx)(a,n,JSON.stringify(b,null,2))}catch{}}function q(a){p(a,{skip:!1})}let r=".claude/design-promoted.json";function s(a){let b=(0,d.sL)(a,r);if(!b)return{};try{return JSON.parse(b)||{}}catch{return{}}}function t(a,b){try{(0,d.dx)(a,r,JSON.stringify(b,null,2))}catch{}}function u(a){let b=a.designMockFiles.some(a=>/design-mock\/screens\/.+\.html?$/i.test(a));return!a.approved&&!b}let v=/\b(tela|telas|screen|screens|p[áa]gina|pagina|page|pages|web|webapp|web-?app|website|site|app|apps|aplicativo|aplica[çc][ãa]o|spa|single-?page|pwa|ui|ux|interface|frontend|front-?end|layout|component|componente|design|visual|dashboard|form|formul[áa]rio|formulario|bot[ãa]o|botao|button|modal|menu|nav|navbar|sidebar|card|landing|hero|gallery|galeria|theme|tema|palette|paleta|typography|tipografia|style|estilo|css|html|responsive|responsiv[oa]|mobile|desktop|tablet|anima[çc][ãa]o|animation|microintera[çc][õo]es|wizard|onboarding|checkout|perfil|profile|settings|configura[çc][õo]es|view|views|render)\b/i;function w(a){return!!a&&v.test(a)}let x=/\b(api|rest|restful|graphql|grpc|cli|command[\s-]?line|terminal|backend|back-?end|micro-?service|microservices|service|library|\bsdk\b|daemon|cron|scheduler|pipeline|etl|database|\bdb\b|infra|infrastructure|devops|webhook|message[\s-]?queue|\bqueue\b|worker|scraper|crawler|\bbot\b|middleware|server[\s-]?side|protocol|compiler|parser|scraping)\b/i;function y(a){return!!a&&x.test(a)&&!w(a)}},98705:(a,b,c)=>{"use strict";c.d(b,{DesignClient:()=>Z});var d=c(4374),e=c(74679),f=c(47104),g=c(31819),h=c(43526),i=c(14698),j=c(83403);c(82722),c(25978);var k=c(2910);let l=(0,k.createServerReference)("40efca1b9d4ba273817cb7d8ccd73df095d8e8f922",k.callServer,void 0,k.findSourceMapURL,"getDesignScreen");k.callServer,k.findSourceMapURL;let m=(0,k.createServerReference)("7089c528fa1527363d04960b5ebfedacd2614a4547",k.callServer,void 0,k.findSourceMapURL,"askDesign");k.callServer,k.findSourceMapURL,k.callServer,k.findSourceMapURL,k.callServer,k.findSourceMapURL;let n=(0,k.createServerReference)("40bb21cbee60051771dac14e01d11aa866d00e3d27",k.callServer,void 0,k.findSourceMapURL,"readDesignDoc"),o=(0,k.createServerReference)("00e24c29c4b238e08be9728ea3975ef50ce267c56b",k.callServer,void 0,k.findSourceMapURL,"scaffoldDesignFromBrief"),p=(0,k.createServerReference)("600359c903bcdc4ad6575d966b7463b7f9e19aa7e5",k.callServer,void 0,k.findSourceMapURL,"commitDesignScreen"),q=(0,k.createServerReference)("40a4c8e3e773086f343e2bb6cf58c57b07351ab827",k.callServer,void 0,k.findSourceMapURL,"saveDesignCheckpoint");k.callServer,k.findSourceMapURL;let r=(0,k.createServerReference)("40ec36241c94b82fe0ccce5fc92b08e8c1267bda9b",k.callServer,void 0,k.findSourceMapURL,"approveDesign"),s=(0,k.createServerReference)("00e4e84e3295f14df7ae45000ba0c854a30927c6ac",k.callServer,void 0,k.findSourceMapURL,"handoffToExecution"),t=(0,k.createServerReference)("00188698481b69c79e5b3aa893fc26e4d0c1ad2c80",k.callServer,void 0,k.findSourceMapURL,"resumeDesignHandoff"),u=(0,k.createServerReference)("0081233510153f0339f73d725b2024d1229ff56c30",k.callServer,void 0,k.findSourceMapURL,"buildDesignProduction"),v=(0,k.createServerReference)("70de59fd4b9e86e3f6429fa542c6f89009bb22ad9f",k.callServer,void 0,k.findSourceMapURL,"addDesignMarkup"),w=(0,k.createServerReference)("7cbcc33e46ce24b17bb67eeeab3fcf2664c489efe0",k.callServer,void 0,k.findSourceMapURL,"addDesignComment"),x=(0,k.createServerReference)("4077353cf164d10e348831f1282672c44d3bdf3683",k.callServer,void 0,k.findSourceMapURL,"deleteDesignComment"),y=(0,k.createServerReference)("40fa257cf42313ca1a9fed2fb49ec7bf574cdbb57f",k.callServer,void 0,k.findSourceMapURL,"restoreDesignCheckpoint"),z=(0,k.createServerReference)("602efc219059d5ba747378f56cb838f0e2cedcdc44",k.callServer,void 0,k.findSourceMapURL,"restoreDesignVersion");var A=c(89814),B=c(77954);let C=`(function(){
|
|
53
|
+
var MODE = "select";
|
|
54
|
+
var ZOOM = 1, ZOX = 0, ZOY = 0;
|
|
55
|
+
|
|
56
|
+
// ── Stable element identity ──────────────────────────────────────────────────────────────────────
|
|
57
|
+
// Every element the operator touches gets a persistent data-cstla-id ("c7") so the host can target live
|
|
58
|
+
// edits by id and ids survive a commit→reload round-trip. Seed the counter from any ids already in the
|
|
59
|
+
// (previously committed) body so we never reissue one.
|
|
60
|
+
var CIDN = 0;
|
|
61
|
+
(function(){ var a=document.querySelectorAll("[data-cstla-id]"); for(var i=0;i<a.length;i++){ var n=parseInt(((a[i].getAttribute("data-cstla-id")||"").replace(/^c/,"")),10); if(n>CIDN)CIDN=n; } })();
|
|
62
|
+
function cid(el){ var id=el.getAttribute&&el.getAttribute("data-cstla-id"); if(id)return id; CIDN++; id="c"+CIDN; el.setAttribute("data-cstla-id",id); return id; }
|
|
63
|
+
function byId(id){ try{ return document.querySelector('[data-cstla-id="'+id+'"]'); }catch(e){ return null; } }
|
|
64
|
+
function isInstrumentNode(n){ return n && n.nodeType===1 && n.getAttribute && n.getAttribute("data-cstla-instrument")!=null; }
|
|
65
|
+
function isZoomRoot(n){ return n && n.nodeType===1 && n.getAttribute && n.getAttribute("data-cstla-zoom-root")!=null; }
|
|
66
|
+
// Zoom is applied HOST-SIDE now (the host scales the iframe wrapper); inside the iframe everything stays 1:1, so
|
|
67
|
+
// coordinates/drag/resize are plain px and the body gets NO transform (a transform on <body> would re-anchor
|
|
68
|
+
// position:fixed children and break the screen). ZOOM stays 1 → logicalX/logicalY/unzoomRect below are kept as
|
|
69
|
+
// identity helpers (call sites unchanged) and applyZoom just re-reports content size + the layers tree.
|
|
70
|
+
function applyZoom(){ sz(); emitTree(); }
|
|
71
|
+
function logicalX(x){ return (x-ZOX)/ZOOM; }
|
|
72
|
+
function logicalY(y){ return (y-ZOY)/ZOOM; }
|
|
73
|
+
function unzoomRect(r){ var sx=window.scrollX||0, sy=window.scrollY||0; return { x:logicalX(r.left+sx), y:logicalY(r.top+sy), w:r.width/ZOOM, h:r.height/ZOOM }; }
|
|
74
|
+
|
|
75
|
+
// ── Persist backbone ─────────────────────────────────────────────────────────────────────────────
|
|
76
|
+
// After any direct-manipulation edit, debounce a "commit": serialize <body> (minus the instrument script
|
|
77
|
+
// + transient editing attrs) back to the host, which writes it into the screen file. "dirty" fires first
|
|
78
|
+
// so the host can suppress reload races + show a Saving indicator while the operator is editing.
|
|
79
|
+
var ctimer=null;
|
|
80
|
+
function touch(){ post("canvas:dirty", null); if(ctimer)clearTimeout(ctimer); ctimer=setTimeout(commitNow,450); }
|
|
81
|
+
// Serialize <body> minus the instrument script + transient editing attrs → the clean source we persist.
|
|
82
|
+
function serializeBody(){
|
|
83
|
+
var clone=document.body.cloneNode(true);
|
|
84
|
+
var mk=clone.querySelectorAll("[data-cstla-instrument]"); for(var i=0;i<mk.length;i++){ if(mk[i].parentNode)mk[i].parentNode.removeChild(mk[i]); }
|
|
85
|
+
var ce=clone.querySelectorAll("[contenteditable]"); for(var j=0;j<ce.length;j++){ ce[j].removeAttribute("contenteditable"); ce[j].style.outline=""; }
|
|
86
|
+
return clone.innerHTML;
|
|
87
|
+
}
|
|
88
|
+
function commitNow(){ ctimer=null; post("canvas:commit", { html: serializeBody() }); }
|
|
89
|
+
// History is HOST-owned (per screen, survives reload + screen-switch). The iframe only reports snapshots:
|
|
90
|
+
// - emitHistory(): one discrete undo state (after a finished gesture / structural cmd / field commit).
|
|
91
|
+
// - canvas:baseline (on ready): seeds the host's per-screen baseline.
|
|
92
|
+
// - setBody(html): the host sends a snapshot back for undo/redo; swap the body, preserving the instrument
|
|
93
|
+
// script + its document-level listeners (no history/commit emit — the host already persisted it).
|
|
94
|
+
function emitHistory(label){ post("canvas:history", { html: serializeBody(), label: label||"" }); emitTree(); }
|
|
95
|
+
function setBody(html){
|
|
96
|
+
var sc=document.querySelector("[data-cstla-instrument]"); if(sc&&sc.parentNode)sc.parentNode.removeChild(sc);
|
|
97
|
+
document.body.innerHTML=html; if(sc) document.body.appendChild(sc);
|
|
98
|
+
applyZoom(ZOOM); post("canvas:removed", { cstlaId:"" }); sz();
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
function lbl(el){
|
|
102
|
+
var ed = el.getAttribute && el.getAttribute("data-ed"); if(ed) return ed;
|
|
103
|
+
var aria = el.getAttribute && el.getAttribute("aria-label"); if(aria) return aria;
|
|
104
|
+
var tag = el.tagName.toLowerCase();
|
|
105
|
+
if(tag==="button"||tag==="a"){ var tx=(el.textContent||"").replace(/\\s+/g," ").trim().slice(0,24); return tx||tag; }
|
|
106
|
+
if(el.id) return tag+"#"+el.id;
|
|
107
|
+
if(typeof el.className==="string" && el.className.trim()){ var c=el.className.trim().split(/\\s+/)[0]; if(c) return tag+"."+c; }
|
|
108
|
+
return tag;
|
|
109
|
+
}
|
|
110
|
+
function docSize(){ var d=document.documentElement, b=document.body; return { w: Math.max(d.scrollWidth,b?b.scrollWidth:0,d.clientWidth), h: Math.max(d.scrollHeight,b?b.scrollHeight:0,d.clientHeight) }; }
|
|
111
|
+
function boxOf(el){ var b=unzoomRect(el.getBoundingClientRect()); return { x:b.x, y:b.y, w:b.w, h:b.h, label: lbl(el) }; }
|
|
112
|
+
function describe(el){
|
|
113
|
+
var r=el.getBoundingClientRect(), cs=getComputedStyle(el);
|
|
114
|
+
var b=unzoomRect(r);
|
|
115
|
+
var path=[], n=el, d=0;
|
|
116
|
+
while(n && n!==document.documentElement && d<6){ var p=n.tagName.toLowerCase(); var ed=n.getAttribute&&n.getAttribute("data-ed"); if(ed)p+="\\u00b7"+ed.split(" ")[0]; path.unshift(p); n=n.parentElement; d++; }
|
|
117
|
+
var sec = el.closest ? el.closest("[data-section]") : null;
|
|
118
|
+
return {
|
|
119
|
+
selectionId: "sel_"+Math.random().toString(36).slice(2,8),
|
|
120
|
+
cstlaId: cid(el),
|
|
121
|
+
elementType: el.tagName.toLowerCase(),
|
|
122
|
+
componentName: (el.getAttribute&&(el.getAttribute("data-comp")||el.getAttribute("data-ed")))||lbl(el),
|
|
123
|
+
domPath: path.join(" \\u203a "),
|
|
124
|
+
boundingBox: { x:b.x, y:b.y, w:b.w, h:b.h },
|
|
125
|
+
tx: txOf(el).x, ty: txOf(el).y, nodePath: pathOf(el),
|
|
126
|
+
computedStyles: {
|
|
127
|
+
display:cs.display, position:cs.position,
|
|
128
|
+
width:Math.round(b.w)+"px", height:Math.round(b.h)+"px",
|
|
129
|
+
margin:cs.margin, marginTop:cs.marginTop, marginRight:cs.marginRight, marginBottom:cs.marginBottom, marginLeft:cs.marginLeft,
|
|
130
|
+
padding:cs.padding, paddingTop:cs.paddingTop, paddingRight:cs.paddingRight, paddingBottom:cs.paddingBottom, paddingLeft:cs.paddingLeft,
|
|
131
|
+
gap:(cs.gap&&cs.gap!=="normal")?cs.gap:(cs.columnGap&&cs.columnGap!=="normal"?cs.columnGap:""),
|
|
132
|
+
color:cs.color, fontSize:cs.fontSize, fontWeight:cs.fontWeight, lineHeight:cs.lineHeight, letterSpacing:cs.letterSpacing, textAlign:cs.textAlign,
|
|
133
|
+
background:cs.backgroundColor, border:cs.borderTopWidth+" "+cs.borderTopStyle+" "+cs.borderTopColor, borderRadius:cs.borderTopLeftRadius,
|
|
134
|
+
boxShadow:cs.boxShadow, opacity:cs.opacity, zIndex:(cs.zIndex==="auto"?"":cs.zIndex)
|
|
135
|
+
},
|
|
136
|
+
textContent: (el.textContent||"").replace(/\\s+/g," ").trim().slice(0,120),
|
|
137
|
+
parentContainer: el.parentElement ? ((el.parentElement.getAttribute&&el.parentElement.getAttribute("data-ed"))||el.parentElement.tagName.toLowerCase()) : "\\u2014",
|
|
138
|
+
children: el.children.length,
|
|
139
|
+
pageId: "",
|
|
140
|
+
sectionId: (sec&&sec.getAttribute("data-section"))||"",
|
|
141
|
+
locked: el.getAttribute("data-cstla-lock")!=null,
|
|
142
|
+
isGroup: el.getAttribute("data-cstla-group")!=null
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
// Re-describe + re-emit the element after a live edit so the host's selection box + panel reflect the new box/styles.
|
|
146
|
+
function reselect(el){ if(valid(el)) post("canvas:reselect", describe(el)); }
|
|
147
|
+
function post(type, payload){ try{ parent.postMessage({ __cstla:1, type:type, payload:payload }, "*"); }catch(e){} }
|
|
148
|
+
function valid(el){ return el && el.nodeType===1 && el!==document.documentElement && el!==document.body && !isZoomRoot(el); }
|
|
149
|
+
|
|
150
|
+
// ── Pointer gestures (capture-based, leak-proof) ─────────────────────────────────────────────────
|
|
151
|
+
// EVERY canvas gesture uses Pointer Events + setPointerCapture so move/up always land here even when the
|
|
152
|
+
// pointer is released OUTSIDE the iframe or over a host overlay (handles/menu). A single finishGesture()/
|
|
153
|
+
// clearGesture() ends every gesture on pointerup / pointercancel / lostpointercapture / window blur → the
|
|
154
|
+
// "stuck button" can't happen. Move = transform:translate (non-destructive), 8px grid + alignment guides.
|
|
155
|
+
var drawing=null, suppressClick=false, gpid=null;
|
|
156
|
+
function txOf(el){ var t=el.getAttribute("data-cstla-tx"); if(!t)return{x:0,y:0}; var p=t.split(","); return{x:parseFloat(p[0])||0,y:parseFloat(p[1])||0}; }
|
|
157
|
+
function captureNow(pid){ gpid=pid; try{ document.documentElement.setPointerCapture(pid); }catch(e){} }
|
|
158
|
+
function releaseCap(){ if(gpid!=null){ try{ document.documentElement.releasePointerCapture(gpid); }catch(e){} gpid=null; } }
|
|
159
|
+
function noSelect(on){ var s=document.documentElement.style; s.userSelect=on?"none":""; s.webkitUserSelect=on?"none":""; }
|
|
160
|
+
function resetCursor(){ noSelect(false); document.documentElement.style.cursor = MODE==="preview"?"":(MODE==="comments"?"copy":"crosshair"); }
|
|
161
|
+
function draw(e){ if(!drawing)return; var d=docSize(), ex=logicalX(e.pageX), ey=logicalY(e.pageY); var x=Math.min(drawing.x,ex),y=Math.min(drawing.y,ey),w=Math.abs(ex-drawing.x),h=Math.abs(ey-drawing.y); post("canvas:markupDraw", { xPct:x/d.w*100, yPct:y/d.h*100, wPct:w/d.w*100, hPct:h/d.h*100 }); }
|
|
162
|
+
function finishGesture(e){
|
|
163
|
+
if(drawing){ var dd=docSize(), ex=logicalX(e.pageX), ey=logicalY(e.pageY); var x=Math.min(drawing.x,ex),y=Math.min(drawing.y,ey),w=Math.abs(ex-drawing.x),h=Math.abs(ey-drawing.y); drawing=null; releaseCap(); post("canvas:markupDraw", null); resetCursor(); if(w>6&&h>6) post("canvas:markup", { xPct:x/dd.w*100, yPct:y/dd.h*100, wPct:w/dd.w*100, hPct:h/dd.h*100 }); return; }
|
|
164
|
+
releaseCap(); resetCursor();
|
|
165
|
+
}
|
|
166
|
+
function clearGesture(){
|
|
167
|
+
if(drawing){ drawing=null; post("canvas:markupDraw", null); }
|
|
168
|
+
releaseCap(); resetCursor();
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
document.addEventListener("pointermove", function(e){
|
|
172
|
+
if(drawing){ draw(e); return; }
|
|
173
|
+
if(MODE==="preview"||MODE==="comments"||MODE==="markup") return;
|
|
174
|
+
if(!valid(e.target)){ post("canvas:hover", null); return; }
|
|
175
|
+
post("canvas:hover", boxOf(e.target));
|
|
176
|
+
}, true);
|
|
177
|
+
document.addEventListener("pointerleave", function(){ if(!drawing) post("canvas:hover", null); });
|
|
178
|
+
document.addEventListener("pointerdown", function(e){
|
|
179
|
+
if(e.button!==0) return; // left button only (middle/right → host pan)
|
|
180
|
+
if(MODE==="markup"){ e.preventDefault(); drawing={ x:logicalX(e.pageX), y:logicalY(e.pageY) }; captureNow(e.pointerId); return; }
|
|
181
|
+
if(MODE==="edit"){
|
|
182
|
+
// Edit mode is TEXT-ONLY (the design must stay faithful to the approved mock): click selects, double-click
|
|
183
|
+
// edits text inline. No move/resize/add/structural manipulation — those were intentionally removed.
|
|
184
|
+
if(e.target && e.target.isContentEditable) return; // editing text inline → leave native selection alone
|
|
185
|
+
if(!valid(e.target)) return;
|
|
186
|
+
e.preventDefault(); // suppress text-selection on the press; the click selects
|
|
187
|
+
return;
|
|
188
|
+
}
|
|
189
|
+
if(MODE==="select"){ if(valid(e.target)) e.preventDefault(); return; } // click still selects; just suppress text-selection on drag
|
|
190
|
+
}, true);
|
|
191
|
+
document.addEventListener("pointerup", function(e){ finishGesture(e); }, true);
|
|
192
|
+
document.addEventListener("pointercancel", function(){ clearGesture(); }, true);
|
|
193
|
+
document.documentElement.addEventListener("lostpointercapture", function(){ if(drawing) clearGesture(); });
|
|
194
|
+
window.addEventListener("blur", function(){ clearGesture(); });
|
|
195
|
+
|
|
196
|
+
document.addEventListener("click", function(e){
|
|
197
|
+
if(suppressClick){ suppressClick=false; e.preventDefault(); e.stopPropagation(); return; } // swallow the click that ends a gesture
|
|
198
|
+
// Anchor guard: this prototype lives in an opaque-origin srcdoc iframe whose relative/absolute hrefs resolve
|
|
199
|
+
// against the HOST page, so a real click would navigate the frame OUT to the app (e.g. the login). Intercept
|
|
200
|
+
// link clicks so they NEVER break out of the sandbox; in Preview, ask the host to switch prototype screens.
|
|
201
|
+
var lnk = e.target && e.target.closest ? e.target.closest("a[href]") : null;
|
|
202
|
+
if(lnk){ var href = lnk.getAttribute("href") || "";
|
|
203
|
+
if(href && href.charAt(0)!=="#"){ // in-page #anchors scroll natively; everything else is cross-doc
|
|
204
|
+
e.preventDefault(); // block the breakout in EVERY mode
|
|
205
|
+
if(MODE==="preview"){ e.stopPropagation(); post("canvas:nav", { href: href }); return; }
|
|
206
|
+
// select/edit/etc.: nav blocked; fall through so the click still SELECTS the link element
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
if(MODE==="preview") return;
|
|
210
|
+
if(MODE==="comments"){ e.preventDefault(); e.stopPropagation(); var d=docSize(); var ce=document.elementFromPoint(e.clientX,e.clientY); var cs=valid(ce)?describe(ce):null; post("canvas:comment", { xpPct:(logicalX(e.pageX)/d.w)*100, ypPct:(logicalY(e.pageY)/d.h)*100, selection:cs }); return; }
|
|
211
|
+
if(MODE==="markup") { e.preventDefault(); return; }
|
|
212
|
+
if(!valid(e.target)) return;
|
|
213
|
+
if(e.target.isContentEditable) return; // already editing this element → let the native caret/selection work
|
|
214
|
+
e.preventDefault(); e.stopPropagation();
|
|
215
|
+
if(e.shiftKey||e.metaKey||e.ctrlKey){ post("canvas:selectToggle", describe(e.target)); return; } // add/remove from the multi-set
|
|
216
|
+
post("canvas:select", describe(e.target)); // SELECT (select + edit modes)
|
|
217
|
+
if(MODE==="edit") edit(e.target, e.clientX, e.clientY); // text-only mode: a single click drops straight into inline text edit (caret at the click)
|
|
218
|
+
}, true);
|
|
219
|
+
// Edit mode: double-click also edits (with a word-select once inside an active edit).
|
|
220
|
+
document.addEventListener("dblclick", function(e){
|
|
221
|
+
if(MODE!=="edit") return;
|
|
222
|
+
if(e.target && e.target.isContentEditable) return; // double-click inside an active edit → native word-select
|
|
223
|
+
if(!valid(e.target)) return;
|
|
224
|
+
e.preventDefault(); e.stopPropagation();
|
|
225
|
+
edit(e.target, e.clientX, e.clientY);
|
|
226
|
+
}, true);
|
|
227
|
+
// A prototype is a mock — it never really submits. Block form submission so a <form action> can't navigate the
|
|
228
|
+
// sandbox frame out to the host app (same breakout class as the anchor guard above).
|
|
229
|
+
document.addEventListener("submit", function(e){ e.preventDefault(); }, true);
|
|
230
|
+
|
|
231
|
+
// Drop a visible caret at the click point (pointerdown preventDefault suppressed the native one), falling back
|
|
232
|
+
// to the end of the element's text when the point isn't inside it.
|
|
233
|
+
function placeCaret(el, cx, cy){ try{ var range=null;
|
|
234
|
+
if(cx!=null){ if(document.caretRangeFromPoint) range=document.caretRangeFromPoint(cx,cy);
|
|
235
|
+
else if(document.caretPositionFromPoint){ var cp=document.caretPositionFromPoint(cx,cy); if(cp){ range=document.createRange(); range.setStart(cp.offsetNode,cp.offset); range.collapse(true); } } }
|
|
236
|
+
if(!range || !el.contains(range.startContainer)){ range=document.createRange(); range.selectNodeContents(el); range.collapse(false); }
|
|
237
|
+
var s=window.getSelection(); if(s){ s.removeAllRanges(); s.addRange(range); }
|
|
238
|
+
}catch(e){} }
|
|
239
|
+
// Inline TEXT edit (the only edit in text-only mode): contentEditable + a caret at the click, "Saving…" live as
|
|
240
|
+
// the operator types (canvas:dirty), and on blur persist the change (→ "Saved") or clear the indicator if the
|
|
241
|
+
// text ended up unchanged (canvas:editEnd).
|
|
242
|
+
function edit(el, cx, cy){
|
|
243
|
+
if(!el || el.nodeType!==1) return;
|
|
244
|
+
if(el.children.length>0 && !(el.textContent||"").trim()) return; // a container with no own text isn't editable
|
|
245
|
+
if(el.getAttribute("contenteditable")==="true") return; // already editing this element
|
|
246
|
+
cid(el); var old=el.textContent, touched=false;
|
|
247
|
+
el.setAttribute("contenteditable","true"); el.style.outline="2px solid #6366f1"; el.style.cursor="text"; el.style.caretColor="#6366f1";
|
|
248
|
+
try{ el.focus(); }catch(e){}
|
|
249
|
+
placeCaret(el, cx, cy);
|
|
250
|
+
function onInput(){ touched=true; post("canvas:dirty", null); } // live "Saving…" while typing
|
|
251
|
+
function done(){ el.removeEventListener("blur",done); el.removeEventListener("input",onInput);
|
|
252
|
+
el.removeAttribute("contenteditable"); el.style.outline=""; el.style.cursor=""; el.style.caretColor="";
|
|
253
|
+
var nw=el.textContent;
|
|
254
|
+
if(nw!==old){ reselect(el); emitHistory("Edited text"); } // persist + "Saved"
|
|
255
|
+
else if(touched){ post("canvas:editEnd", null); } // typed then reverted → clear "Saving…"
|
|
256
|
+
}
|
|
257
|
+
el.addEventListener("input", onInput); el.addEventListener("blur", done);
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
// Live restyle from the Styles panel: write the operator's tokens onto :root CSS variables (several common
|
|
261
|
+
// aliases for hit-rate) + set [data-theme]. Screens built to the token contract re-skin instantly.
|
|
262
|
+
function applyTokens(t){
|
|
263
|
+
if(!t) return; var de=document.documentElement, st=de.style;
|
|
264
|
+
function setv(names,val){ for(var i=0;i<names.length;i++) st.setProperty(names[i],val); }
|
|
265
|
+
if(t.accent) setv(["--accent","--accent-color","--primary","--color-primary","--color-accent","--brand","--btn-accent"], t.accent);
|
|
266
|
+
if(t.accentFg) setv(["--accent-fg","--on-accent","--accent-contrast","--accent-foreground"], t.accentFg);
|
|
267
|
+
if(t.font){ setv(["--font","--font-family","--font-sans","--ff"], t.font); st.setProperty("font-family", t.font); }
|
|
268
|
+
if(t.radius!=null) setv(["--radius","--border-radius","--radius-card","--radius-btn","--rounded"], t.radius+"px");
|
|
269
|
+
if(t.space!=null) setv(["--space","--gap","--spacing","--space-unit"], t.space+"px");
|
|
270
|
+
if(t.fontScale!=null){ setv(["--font-scale","--text-scale"], String(t.fontScale)); st.setProperty("font-size", Math.round(16*t.fontScale)+"px"); }
|
|
271
|
+
if(t.theme){ de.setAttribute("data-theme", t.theme); st.setProperty("color-scheme", t.theme); }
|
|
272
|
+
// ── Expanded tokens (each restyles screens that adopt the var; Grace's builds follow the extended contract) ──
|
|
273
|
+
if(t.secondary) setv(["--secondary","--color-secondary","--accent-2","--accent-secondary"], t.secondary);
|
|
274
|
+
if(t.surface) setv(["--surface","--bg-surface","--card-bg","--surface-1","--panel"], t.surface);
|
|
275
|
+
if(t.success) setv(["--success","--color-success","--positive"], t.success);
|
|
276
|
+
if(t.warning) setv(["--warning","--color-warning"], t.warning);
|
|
277
|
+
if(t.danger) setv(["--danger","--color-danger","--error","--negative"], t.danger);
|
|
278
|
+
if(t.headingFont) setv(["--font-heading","--heading-font","--font-display","--font-title"], t.headingFont);
|
|
279
|
+
if(t.fontWeight!=null) setv(["--font-weight","--weight","--fw"], String(t.fontWeight));
|
|
280
|
+
if(t.lineHeight!=null) setv(["--line-height","--leading","--lh"], String(t.lineHeight));
|
|
281
|
+
if(t.letterSpacing!=null) setv(["--letter-spacing","--tracking","--ls"], t.letterSpacing+"px");
|
|
282
|
+
if(t.borderWidth!=null) setv(["--border-width","--bw","--hairline-w"], t.borderWidth+"px");
|
|
283
|
+
if(t.borderColor) setv(["--border-color","--hairline","--border-c","--stroke"], t.borderColor);
|
|
284
|
+
if(t.shadow){ var SH={none:"none",sm:"0 1px 2px rgba(0,0,0,.08)",md:"0 6px 18px -6px rgba(0,0,0,.18)",lg:"0 18px 48px -12px rgba(0,0,0,.30)"}; setv(["--shadow","--elevation","--box-shadow","--shadow-card"], SH[t.shadow]||SH.md); }
|
|
285
|
+
if(t.containerWidth!=null) setv(["--container","--max-width","--content-width","--wrap"], t.containerWidth+"px");
|
|
286
|
+
if(t.motionMs!=null) setv(["--transition","--duration","--motion","--speed"], t.motionMs+"ms");
|
|
287
|
+
if(t.ease) setv(["--ease","--easing","--ease-fn"], t.ease);
|
|
288
|
+
}
|
|
289
|
+
// ── Layers tree (select from a list instead of clicking the canvas) ──────────────────────────────
|
|
290
|
+
// Identify elements by a stable child-index PATH (e.g. "0/2/1") so the panel can select any node without
|
|
291
|
+
// stamping ids on the whole document just by opening the tab.
|
|
292
|
+
function pathOf(el){ var p=[], n=el; while(n && n.parentElement && n!==document.body){ p.unshift(Array.prototype.indexOf.call(n.parentElement.children, n)); n=n.parentElement; } return p.join("/"); }
|
|
293
|
+
function elByPath(path){ var idx=(path===""?[]:String(path).split("/").map(Number)), n=document.body; for(var i=0;i<idx.length;i++){ n=n.children[idx[i]]; if(!n)return null; } return n; }
|
|
294
|
+
function buildTree(){
|
|
295
|
+
var out=[], MAXN=600;
|
|
296
|
+
function walk(el, depth){
|
|
297
|
+
for(var i=0;i<el.children.length;i++){
|
|
298
|
+
if(out.length>=MAXN) return;
|
|
299
|
+
var c=el.children[i], tg=c.tagName;
|
|
300
|
+
if(tg==="SCRIPT"||tg==="STYLE") continue;
|
|
301
|
+
if(c.getAttribute && c.getAttribute("data-cstla-instrument")!=null) continue;
|
|
302
|
+
if(isZoomRoot(c)){ walk(c, depth); continue; }
|
|
303
|
+
out.push({ path:pathOf(c), tag:tg.toLowerCase(), label:lbl(c), depth:depth, kids:c.children.length });
|
|
304
|
+
if(depth<12) walk(c, depth+1);
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
walk(document.body, 0);
|
|
308
|
+
return out;
|
|
309
|
+
}
|
|
310
|
+
function emitTree(){ post("canvas:tree", { items: buildTree() }); }
|
|
311
|
+
function selectByPath(path){ var el=elByPath(path); if(valid(el)) post("canvas:select", describe(el)); }
|
|
312
|
+
|
|
313
|
+
// Host → iframe. The editor is text-only now: the canvas only takes mode, live token restyle, the layers tree
|
|
314
|
+
// queries and undo/redo body swaps. (Structural/style/insert/resize/align/image messages were removed with the
|
|
315
|
+
// direct-manipulation UI — the design is a faithful reference; structural changes go through Grace.)
|
|
316
|
+
window.addEventListener("message", function(e){ var m=e.data; if(!m||!m.__cstlaHost)return;
|
|
317
|
+
if(m.type==="canvas:setMode"){ MODE=m.mode; document.documentElement.style.cursor=(MODE==="preview"||MODE==="comments")?"":"crosshair"; if(MODE==="comments")document.documentElement.style.cursor="copy"; }
|
|
318
|
+
else if(m.type==="canvas:applyTokens"){ applyTokens(m.tokens); }
|
|
319
|
+
else if(m.type==="canvas:requestTree"){ emitTree(); }
|
|
320
|
+
else if(m.type==="canvas:selectByPath"){ selectByPath(m.path); }
|
|
321
|
+
else if(m.type==="canvas:setBody"){ setBody(m.html); }
|
|
322
|
+
});
|
|
323
|
+
|
|
324
|
+
function viewport(){
|
|
325
|
+
var d=docSize(), de=document.documentElement;
|
|
326
|
+
post("canvas:viewport", {
|
|
327
|
+
scrollX: window.scrollX||0,
|
|
328
|
+
scrollY: window.scrollY||0,
|
|
329
|
+
viewportW: window.innerWidth||de.clientWidth||1,
|
|
330
|
+
viewportH: window.innerHeight||de.clientHeight||1,
|
|
331
|
+
docW: d.w,
|
|
332
|
+
docH: d.h
|
|
333
|
+
});
|
|
334
|
+
}
|
|
335
|
+
function sz(){ var d=docSize(); post("canvas:size", { height: d.h }); viewport(); }
|
|
336
|
+
window.addEventListener("load", function(){ applyZoom(ZOOM); });
|
|
337
|
+
window.addEventListener("resize", function(){ applyZoom(ZOOM); });
|
|
338
|
+
window.addEventListener("scroll", viewport, true);
|
|
339
|
+
setTimeout(function(){ applyZoom(ZOOM); },60); setTimeout(function(){ applyZoom(ZOOM); },400); setTimeout(function(){ applyZoom(ZOOM); },1200);
|
|
340
|
+
document.documentElement.style.cursor="crosshair";
|
|
341
|
+
// INTERACTIVE = the screen ships its OWN <script> (it builds/changes its DOM at runtime). Serializing the
|
|
342
|
+
// post-execution DOM back to the file would bake generated nodes in AND the script re-runs on reload →
|
|
343
|
+
// duplication. So the host treats edits on interactive screens as preview-only (persist via Grace instead).
|
|
344
|
+
var INTERACTIVE=false; (function(){ var ss=document.getElementsByTagName("script"); for(var i=0;i<ss.length;i++){ if(!ss[i].hasAttribute("data-cstla-instrument")){ INTERACTIVE=true; break; } } })();
|
|
345
|
+
applyZoom(ZOOM);
|
|
346
|
+
// Themed scrollbar INSIDE the prototype iframe (the screen scrolls itself, so the host CSS can't reach
|
|
347
|
+
// it — this replaces the native Windows/browser bar). Injected into <head> so it's never serialized into
|
|
348
|
+
// the saved screen; also tagged data-cstla-instrument as a belt-and-braces strip. Neutral semi-transparent
|
|
349
|
+
// so it reads on any prototype background (dark hero, light page, etc.).
|
|
350
|
+
(function(){ try{ if(!document.getElementById("cstla-scrollbar")){ var st=document.createElement("style"); st.id="cstla-scrollbar"; st.setAttribute("data-cstla-instrument",""); st.textContent="::-webkit-scrollbar{width:11px;height:11px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:rgba(128,128,128,.45);border-radius:6px;border:3px solid transparent;background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background:rgba(128,128,128,.78);background-clip:padding-box}::-webkit-scrollbar-corner{background:transparent}"; (document.head||document.documentElement).appendChild(st); } }catch(e){} })();
|
|
351
|
+
post("canvas:ready", { interactive: INTERACTIVE });
|
|
352
|
+
if(!INTERACTIVE) post("canvas:baseline", { html: serializeBody() }); // history/persist only for static screens
|
|
353
|
+
setTimeout(emitTree, 80);
|
|
354
|
+
})();`;var D=c(1103),E=c(38929),F=c(26945);c(63795),c(52818);var G=c(55789);let H=(0,k.createServerReference)("005f3317d8b38b3db4c2f37199d1a5916eef4d4794",k.callServer,void 0,k.findSourceMapURL,"stopLiveInspectAction"),I=(0,k.createServerReference)("0069fb8636b418f3a58772240c6bf50253c71b1f2c",k.callServer,void 0,k.findSourceMapURL,"startLiveInspectAction"),J=[{id:"desktop",w:"100%",label:"Desktop"},{id:"tablet",w:"768px",label:"Tablet"},{id:"mobile",w:"390px",label:"Mobile"}];function K({onAskGrace:a,asking:b}){let[c,f]=(0,e.useState)({running:!1,status:"idle",logs:[]}),[g,i]=(0,e.useTransition)(),[j,k]=(0,e.useState)(""),[l,m]=(0,e.useState)(""),[n,o]=(0,e.useState)(0),[p,q]=(0,e.useState)("desktop"),[r,s]=(0,e.useState)(!0),[t,u]=(0,e.useState)(""),[v,w]=(0,e.useState)(!1),[x,y]=(0,e.useState)(""),[z,A]=(0,e.useTransition)(),[B,C]=(0,e.useState)(""),[D,E]=(0,e.useState)(null),F=(0,e.useRef)(null),L=c.url??"",M="running"===c.status&&!!L,N=J.find(a=>a.id===p)?.w??"100%",O=(v&&x?x:l)||L;return(0,d.jsxs)("div",{style:{position:"absolute",inset:0,zIndex:40,display:"flex",flexDirection:"column",background:"var(--bg-app)"},children:[(0,d.jsxs)("div",{className:"dz-live-bar",children:[(0,d.jsx)("span",{className:"dz-live-dot "+(M?"on":"error"===c.status?"err":"")}),(0,d.jsx)("button",{className:"dz-ico",title:"Reload",disabled:!M,onClick:()=>o(a=>a+1),children:(0,d.jsx)(h.I,{name:"refresh",size:14})}),(0,d.jsxs)("form",{className:"dz-live-addr",onSubmit:function(a){let b;a?.preventDefault();let c=(b=j.trim())?/^https?:\/\//i.test(b)?b:L.replace(/\/$/,"")+(b.startsWith("/")?b:"/"+b):L;m(c),k(c),o(a=>a+1)},children:[(0,d.jsx)(h.I,{name:M?"shield":"goto",size:12}),(0,d.jsx)("input",{value:j,placeholder:L||"the app isn't running yet",disabled:!M||v,onChange:a=>k(a.target.value),spellCheck:!1})]}),(0,d.jsx)("button",{className:"dz-ico"+(v?" on":""),title:v?"Inspecting — click an element to target it (click again to turn off)":"Inspect: click a real element to ask Grace to change it",disabled:!M||z,onClick:function(){if(C(""),v){w(!1),E(null),o(a=>a+1),H().catch(()=>{});return}A(async()=>{try{let a=await I();if(!a.ok||!a.url)return void C(a.error||"Couldn't start inspect.");y(a.url),w(!0),E(null),o(a=>a+1)}catch{C("Couldn't start inspect.")}})},children:(0,d.jsx)(h.I,{name:z?"refresh":"target",size:14,className:z?"sync-spin":""})}),(0,d.jsx)("div",{className:"dz-seg",children:J.map(a=>(0,d.jsx)("button",{className:p===a.id?"on":"",disabled:!M,onClick:()=>q(a.id),children:a.label},a.id))}),M&&(0,d.jsx)("a",{className:"dz-ico",title:"Open in a new tab",href:l,target:"_blank",rel:"noreferrer",children:(0,d.jsx)(h.I,{name:"goto",size:14})})]}),B&&(0,d.jsx)("div",{className:"dz-uperr",style:{margin:"0 10px"},children:B}),(0,d.jsx)("div",{className:"dz-live-stage",children:M&&!r?(0,d.jsxs)("div",{className:"dz-live-empty",children:[(0,d.jsx)(h.I,{name:"shield",size:26}),(0,d.jsx)("div",{className:"t",children:"The app blocks embedding"}),(0,d.jsx)("div",{className:"s",children:"It sends X-Frame-Options / CSP that prevents the preview frame."}),(0,d.jsxs)("a",{className:"btn-accent",style:{marginTop:10},href:l,target:"_blank",rel:"noreferrer",children:[(0,d.jsx)(h.I,{name:"goto",size:13})," Open in a new tab"]})]}):M?(0,d.jsx)("iframe",{ref:F,className:"dz-live-frame",src:O,style:{width:N,maxWidth:"100%"},title:"Live app preview",onLoad:()=>{try{F.current?.contentWindow?.postMessage({__cstlaLiveHost:1,type:"live:setMode",mode:v?"inspect":"off"},"*")}catch{}},sandbox:"allow-scripts allow-same-origin allow-forms allow-popups allow-modals allow-downloads"},O+":"+n):(0,d.jsxs)("div",{className:"dz-live-empty",children:[(0,d.jsx)("span",{className:g||"starting"===c.status?"sync-spin":"",children:(0,d.jsx)(h.I,{name:g||"starting"===c.status?"refresh":"play",size:26})}),(0,d.jsx)("div",{className:"t",children:"error"===c.status?"The dev server failed to start":g||"starting"===c.status?"Starting the dev server…":"Run the real app"}),(0,d.jsx)("div",{className:"s",children:"error"===c.status?"Check the project boots (Test Dev shows the logs).":"Boot the project's dev server to see the real running app here — any stack."}),"running"!==c.status&&"starting"!==c.status&&!g&&(0,d.jsxs)("button",{className:"btn-accent",style:{marginTop:10},onClick:function(){i(async()=>{try{let a=await (0,G.R)();f(a)}catch{}})},children:[(0,d.jsx)(h.I,{name:"play",size:13})," Start the app"]})]})}),D&&(0,d.jsxs)("div",{className:"dz-attach",style:{margin:"0 10px 6px"},children:[(0,d.jsx)("span",{className:"sw",style:{background:"#6366f1"}})," Editing ",(0,d.jsxs)("b",{style:{fontWeight:700},children:["<",D.tag,">",D.id?" #"+D.id:""]}),D.text?` \xb7 “${D.text.slice(0,40)}”`:"",(0,d.jsx)("span",{className:"x",onClick:()=>E(null),children:(0,d.jsx)(h.I,{name:"close",size:12})})]}),(0,d.jsxs)("form",{className:"dz-live-ask",onSubmit:function(c){c?.preventDefault();let d=t.trim();if(d&&!b){if(D){let b=[`<${D.tag}>`,D.id?`#${D.id}`:"",D.text?`text "${D.text}"`:"",D.landmark?`in "${D.landmark}"`:"",`selector \`${D.selector}\``,`on route ${D.path}`].filter(Boolean).join(" \xb7 ");a(`On the live app, change THIS element (${b}) — edit the real source, keep everything else intact: ${d}`)}else a(`On the live app: ${d}`);u(""),E(null)}},children:[(0,d.jsx)(h.I,{name:"skill",size:14}),(0,d.jsx)("input",{value:t,placeholder:D?"Describe the change to this element — Grace edits the real source…":"Ask Grace to change the live app — she edits the real source (HMR repaints it)…",onChange:a=>u(a.target.value),disabled:b}),(0,d.jsxs)("button",{className:"dz-mini-btn accent",disabled:b||!t.trim(),type:"submit",children:[(0,d.jsx)(h.I,{name:b?"refresh":"send",size:13,className:b?"sync-spin":""})," Ask Grace"]})]})]})}let L=[{name:"Indigo",c:"#6366f1"},{name:"Violet",c:"#8b5cf6"},{name:"Blue",c:"#3b82f6"},{name:"Sky",c:"#0ea5e9"},{name:"Cyan",c:"#06b6d4"},{name:"Teal",c:"#14b8a6"},{name:"Emerald",c:"#10b981"},{name:"Lime",c:"#84cc16"},{name:"Amber",c:"#f59e0b"},{name:"Orange",c:"#f97316"},{name:"Rose",c:"#f43f5e"},{name:"Pink",c:"#ec4899"}],M=[{n:"Inter",s:"'Inter',system-ui,sans-serif"},{n:"IBM Plex",s:"'IBM Plex Sans',sans-serif"},{n:"Geist",s:"'Geist','Inter',ui-sans-serif,sans-serif"},{n:"System",s:"system-ui,-apple-system,Segoe UI,sans-serif"},{n:"Serif",s:"Georgia,'Times New Roman',serif"},{n:"Mono",s:"ui-monospace,'SF Mono',Menlo,monospace"},{n:"Display",s:"'Poppins','Inter',system-ui,sans-serif"}],N=[{n:"Sharp",r:6},{n:"Soft",r:16},{n:"Round",r:26}],O=[{id:"select",ic:"target"},{id:"edit",ic:"newFile"},{id:"markup",ic:"skill"},{id:"comments",ic:"chat"},{id:"inspect",ic:"search"},{id:"preview",ic:"play"}];function P(a,b){let c=parseInt(a.replace("#",""),16);return`rgba(${c>>16&255},${c>>8&255},${255&c},${b})`}function Q(a){return(a.split("/").pop()||a).replace(/\.html?$/i,"")}let R=/\b(remov(i|ido|eu|idos)|adicion(ei|ado|ou|ados)|cri(ei|ado|ou|ados)|corrig(i|ido|iu)|ajust(ei|ado|ou)|atualiz(ei|ado|ou)|mud(ei|ado|ou)|delet(ei|ado|ou)|limp(ei|ado|ou)|troqu(ei)|troc(ado|ou)|inseri|inserido|fiz|feit[oa]s?|pront[oa]s?|conclu(i|í|ido|ída)|finaliz(ei|ado|ou)|implement(ei|ado|ou)|ger(ei|ado|ou)|salv(ei|o|ado)|apliqu(ei)|aplic(ado|ou)|added|removed|deleted|created|fixed|updated|changed|cleaned|adjusted|renamed|moved|made|done|ready|here'?s|i'?ve|i\s+have|i\s+just|i\s+made)\b/i,S=[["design.sugg.adjustPalette","Adjust the color palette"],["design.sugg.improveSpacing","Improve the spacing"],["design.sugg.mobileVersion","Create a mobile version"],["design.sugg.darkTheme","Try a dark theme"],["design.sugg.addSection","Add a section"],["design.sugg.newScreen","Create a new screen"],["design.sugg.visualDocs","Generate the visual docs"],["design.sugg.askReview","Ask Grace for a review"],["design.sugg.approve","Approve design"],["design.sugg.sendExec","Send to execution"]],T=[["design.sugg.firstScreen","Build the first screen"],["design.sugg.proposePalette","Propose a color palette"],["design.sugg.defineTypography","Define the typography"],["design.sugg.mainFlow","Design the main flow"],["design.sugg.heroSection","Add a hero section"],["design.sugg.mobileVersion","Create a mobile version"]],U={accent:"#6366f1",accentName:"Indigo",accentFg:"",secondary:"",surface:"",success:"",warning:"",danger:"",theme:"dark",font:M[0].s,fontName:"Inter",headingFont:M[0].s,headingFontName:"Inter",fontWeight:400,lineHeight:1.5,letterSpacing:0,fontScale:1,radius:16,borderWidth:1,borderColor:"",shadow:"md",density:12,containerWidth:1200,motionMs:200,ease:"ease"};function V(a){return!!(a.selection&&"object"==typeof a.selection&&"markup"===a.selection.kind)}function W(a){return a.selection.rect}function X(a){let b=a.x+a.w/2,c=a.y+a.h/2;return`${c<33?"top":c<66?"middle":"bottom"}-${b<33?"left":b<66?"center":"right"} area, roughly ${Math.round(a.w)}%\xd7${Math.round(a.h)}% of the page`}function Y({grace:a,context:b,status:c,tokens:k}){var G;let H,I,J,Z,$,_=(0,f.useRouter)(),aa=(0,g.k)(),[ab,ac]=(0,e.useState)("approved"===c||b.approved?"approved":"building"),[ad,ae]=(0,e.useState)(!1),[af,ag]=(0,e.useState)("screens"),[ah,ai]=(0,e.useState)(!0),[aj,ak]=(0,e.useState)(!0),[al,am]=(0,e.useState)("desktop"),[an,ao]=(0,e.useState)(null),[ap,aq]=(0,e.useState)(!1),[ar,as]=(0,e.useState)(100),[at,au]=(0,e.useState)("select"),[av,aw]=(0,e.useState)({...U,...k??{}}),[ax,ay]=(0,e.useState)(""),[az,aA]=(0,e.useState)(!1),[aB,aC]=(0,e.useState)(!1),[aD,aE]=(0,e.useState)(""),[aF,aG]=(0,e.useState)([]),[aH,aI]=(0,e.useState)(!1),[aJ,aK]=(0,e.useState)(!1),[aL,aM]=(0,e.useState)(""),aN=(0,e.useRef)(null);(0,e.useRef)(!0);let[aO,aP]=(0,e.useState)(""),[aQ,aR]=(0,e.useState)(null),[aS,aT]=(0,e.useState)(""),[aU,aV]=(0,e.useState)([]),[aW,aX]=(0,e.useState)([]),[aY,aZ]=(0,e.useState)(!0),[a$,a_]=(0,e.useState)(!1);(0,e.useRef)(0),(0,e.useRef)(0),(0,e.useRef)(null);let[a0,a1]=(0,e.useState)([]),[a2,a3]=(0,e.useState)(null),[a4,a5]=(0,e.useState)(null),[a6,a7]=(0,e.useState)({scrollX:0,scrollY:0,viewportW:980,viewportH:560,docW:980,docH:560}),[a8,a9]=(0,e.useState)({w:1200,h:700}),[ba,bb]=(0,e.useState)([]),[bc,bd]=(0,e.useState)(!1);(0,e.useRef)(!1);let[be,bf]=(0,e.useState)(null),[bg,bh]=(0,e.useState)([]);(0,e.useRef)([]);let[bi,bj]=(0,e.useState)(!1),[bk,bl]=(0,e.useState)(null),[bm,bn]=(0,e.useState)(null),[bo,bp]=(0,e.useState)(null),[bq,br]=(0,e.useState)(""),[bs,bt]=(0,e.useState)([]),[bu,bv]=(0,e.useState)([]),[bw,bx]=(0,e.useState)(null),[by,bz]=(0,e.useState)(null),[bA,bB]=(0,e.useState)(!1),[bC,bD]=(0,e.useState)([]),[bE,bF]=(0,e.useState)(null),[bG,bH]=(0,e.useState)(""),[bI,bJ]=(0,e.useState)(0),[bK,bL]=(0,e.useState)("idle"),bM=(0,e.useRef)(!1),bN=(0,e.useRef)(""),bO=(0,e.useRef)(null),bP=(0,e.useRef)(new Map),[bQ,bR]=(0,e.useState)(0),bS=(0,e.useRef)(null),bT=(0,e.useRef)(null);(0,e.useRef)("");let bU=(0,e.useRef)(at),bV=(0,e.useRef)(""),bW=(0,e.useRef)(av),bX=(0,e.useRef)([]);(0,e.useRef)(null);let bY=(0,e.useRef)(!1),bZ=(0,e.useRef)(!1),b$=Array.from(new Set([...b.designMockFiles.filter(a=>/\.html?$/i.test(a)),...a0]));bX.current=b$;let b_=b.designMockFiles.filter(a=>a.startsWith("design-mock/components/")),b0="approved"===ab,b1=aO&&b$.includes(aO)?aO:b$[0]??"";bV.current=b1,bY.current=b0,bZ.current=a$,bU.current=at,bW.current=av;let b2=b$.length>0&&null!=aQ&&!aS,b3=ar/100,b4=null!=an?{w:Math.max(320,Math.min(1920,an)),h:Math.max(560,Math.round(1.5*Math.max(320,Math.min(1920,an))))}:"tablet"===al?{w:768,h:1024}:"mobile"===al?{w:390,h:844}:null,b5=null!=b4,b6=b5?b4.w:Math.max(1,a8.w/b3),b7=b5?b4.h:Math.max(1,a8.h/b3),b8=Math.max(1,a6.docW||a6.viewportW||1),b9=Math.max(1,a6.docH||a6.viewportH||1),ca=a=>({left:a.x-a6.scrollX,top:a.y-a6.scrollY,width:a.w,height:a.h}),cb=a=>({left:a.x/100*b8-a6.scrollX,top:a.y/100*b9-a6.scrollY,width:a.w/100*b8,height:a.h/100*b9}),cc=(a,b)=>({left:a/100*b8-a6.scrollX,top:b/100*b9-a6.scrollY}),{canUndo:cd,canRedo:ce}=(0,e.useMemo)(()=>{let a=bP.current.get(b1);return{canUndo:!!a&&a.pos>0,canRedo:!!a&&a.pos<a.stack.length-1}},[bQ,b1]);(0,e.useEffect)(()=>{if(!b1)return void aR(null);if(bM.current&&b1===bN.current)return;bM.current&&(bM.current=!1,bN.current="",bL("idle")),a7(a=>({...a,scrollX:0,scrollY:0}));let a=!0;return aT(""),l(b1).then(b=>{a&&(b.ok&&null!=b.html?aR(b.html):(aR(null),aT(b.error||aa("design.toast.screenLoadFail"))))}),()=>{a=!1}},[b$.join("|"),b1]);let cf=async()=>{try{let a=await (0,D.p)("design");if(a.used>=a.max&&!bA){bB(!0);try{await (0,E.L)("design"),a=await (0,D.p)("design")}finally{bB(!1)}}bz(a)}catch{}};async function cg(){if(!bA){bB(!0);try{await (0,E.L)("design"),await cf()}finally{bB(!1)}}}(0,e.useRef)(!1);let ch=a=>aw(b=>({...b,...a}));function ci(a,b,c=""){let e=String(av[b]??"");return(0,d.jsxs)("div",{className:"dz-trow",children:[(0,d.jsx)("label",{children:a}),(0,d.jsxs)("div",{className:"dz-colorrow",children:[(0,d.jsx)("input",{type:"color",value:e||c||"#888888",onChange:a=>ch({[b]:a.target.value})}),(0,d.jsx)("input",{type:"text",value:e,placeholder:c||aa("design.styles.auto"),spellCheck:!1,onChange:a=>ch({[b]:a.target.value})})]})]},String(b))}function cj(a,b,c,e,f,g=""){let h=Number(av[b]??0);return(0,d.jsxs)("div",{className:"dz-trow",children:[(0,d.jsxs)("label",{children:[a,(0,d.jsxs)("span",{className:"v",children:[h,g]})]}),(0,d.jsx)("input",{type:"range",min:c,max:e,step:f,value:h,onChange:a=>ch({[b]:Number(a.target.value)})})]},String(b))}function ck(a,b){let c=b.stack[b.pos];bf(null),bj(!1),bM.current=!0,bN.current=a,bL("saving"),bO.current&&(clearTimeout(bO.current),bO.current=null);try{bS.current?.contentWindow?.postMessage({__cstlaHost:1,type:"canvas:setBody",html:c},"*")}catch{}p(a,c).then(()=>{bL("saved"),bJ(a=>a+1),bO.current&&clearTimeout(bO.current),bO.current=setTimeout(()=>{bM.current=!1,bN.current="",bL("idle"),bO.current=null},1400)}),bR(a=>a+1)}async function cl(){let a=bV.current;if(!a||!b2)return;aA(!0);let b=await q(a);aA(!1),b.ok?(cm(aa("design.toast.savedCheckpoint",{label:b.label??""})),bJ(a=>a+1)):cm(b.error||aa("design.toast.couldNotSaveCheckpoint"))}function cm(a){aE(a),setTimeout(()=>aE(b=>b===a?"":b),2400)}async function cn(a){if(!a)return;let b=Array.from(a).filter(a=>a instanceof File);if(!b.length)return;aM("");let c=b.slice(0,Math.max(0,6-aF.length));if(!c.length)return void aM(aa("design.toast.upTo6"));let d=new FormData;for(let a of c)d.append("files",a);aK(!0);try{let a=await fetch("/api/upload",{method:"POST",body:d}),b=await a.json();if(!a.ok||!b.ok)return void aM(b.error||aa("design.toast.uploadFailed"));aG(a=>[...a,...b.attachments].slice(0,6))}catch{aM(aa("design.toast.uploadFailed"))}finally{aK(!1),aN.current&&(aN.current.value="")}}function co(a){let b=(a??ax).trim();if(!b&&!aF.length&&!bk||a$)return;a_(!0);let c=aF.slice();ay(""),aG([]),aM(""),bl(null),m(b||(bk?"Adjust this element.":"Use the attached image(s) as the visual reference."),c,bk??void 0).then(a=>{a.ok||(cm(a.error||aa("design.toast.couldNotStart")),a_(!1))})}async function cp(){aA(!0);let a=await r();(aA(!1),a.ok)?(ac("approved"),cm(aa("design.toast.designApproved")),_.refresh()):cm(a.error||aa("design.toast.approveFailed"))}async function cq(){aA(!0);let a=await s();(aA(!1),a.ok)?(ac("approved"),ae(!1),a_(!0),ag("docs"),cm(aa("design.toast.sentToExec"))):cm(a.error||aa("design.toast.couldNotSendExec"))}async function cr(){aA(!0);let a=await t();(aA(!1),a.ok)?(a_(!0),ag("docs"),cm("Resuming handoff — Grace is finishing the documentation, then Ada plans it.")):cm(a.error||"Couldn't resume the handoff.")}async function cs(){aA(!0);let a=await u();if(aA(!1),!a.ok)return void cm(a.error||aa("design.toast.buildFailed"));let b=a.built.reduce((a,b)=>a+b.before,0),c=a.built.reduce((a,b)=>a+b.after,0),d=b?Math.round((1-c/b)*100):0,e=a.built.filter(a=>a.obfuscated).length;cm(aa("design.toast.built",{count:a.built.length,plural:1===a.built.length?"":"s",pct:d,obf:e?aa("design.toast.builtObf",{n:e}):""})),_.refresh()}async function ct(a=!1){if(!bo){bp(null),br(""),bn(null);return}if(bo.markup){let b=bq.trim(),c=bo.markup;if(await v(bV.current,c,b),bp(null),br(""),bn(null),bJ(a=>a+1),ag("comments"),a){a_(!0);let a=X(c);m(`On screen ${bV.current}, I marked a region for review (${a}).${b?` My note: "${b}"`:" Please review and refine it."} Update the screen accordingly.`)}return}if(!bq.trim()){bp(null),br("");return}let b=bo.selection??be,c=b?{...b,pageId:bV.current}:void 0;await w(bV.current,bo.xpPct,bo.ypPct,bq.trim(),c),bp(null),br(""),bJ(a=>a+1),ag("comments")}let cu=[...aU].sort((a,b)=>(a.createdAt?new Date(a.createdAt).getTime():0)-(b.createdAt?new Date(b.createdAt).getTime():0)).at(-1),cv=a$||0!==aU.length&&cu?.fromKind!=="agent"?[]:function(a,b,c){let d=[],e=a=>(a??"").replace(/\s+/g," ").replace(/^[-•*\s]+/,"").replace(/[.:;,!?]+$/,"").trim(),f=(a,b)=>{let c=e(a);c.length>=2&&c.length<=42&&!d.some(a=>a.label.toLowerCase()===c.toLowerCase())&&d.push({label:c?c.charAt(0).toUpperCase()+c.slice(1):c,prompt:b})},g=[...a].reverse().find(a=>"agent"===a.fromKind&&a.text);if(g?.text)for(let a of g.text.matchAll(/\*\*(.+?)\*\*/g)){let b=e(a[1]);if(b.length<2||b.length>42||R.test(b)||(b.match(/\s+/g)||[]).length>6||f(b,b),d.length>=4)break}for(let[a,e]of b.designMockFiles.some(a=>/\.html?$/i.test(a))?S:T)if(f(c(a),e),d.length>=4)break;return d.slice(0,4)}(aU,b,aa),cw=a?{id:a.id,handle:a.handle,name:a.name,role:"Frontend",color:a.color,image:a.image??null,adapter:"claude",status:"idle",health:null}:null,cx=cw?[cw]:[],cy={};for(let a of aW)(cy[a.runId]??=[]).push(a);let cz=new Set(aU.map(a=>a.id)),cA=Object.entries(cy).filter(([a])=>!cz.has(a)),cB=a$||cA.length>0,cC=bs.filter(a=>a.pageKey===b1&&!V(a)),cD=bs.filter(a=>a.pageKey===b1&&V(a)),cE=[];cE.push(["layers",aa("design.tab.layers")],["screens",aa("design.tab.screens")],["docs",aa("design.tab.docs")],["styles",aa("design.tab.styles")],["history",aa("design.tab.history")],["comments",`${aa("design.tab.comments")}${cC.length?" "+cC.length:""}`],["versions",`${aa("design.tab.versions")}${bu.length?" "+bu.length:""}`]);let cF=cE.some(([a])=>a===af)?af:"screens",cG=a2?ca(a2):null,cH=be?ca(be.boundingBox):null;return(0,d.jsxs)("div",{className:"dz-wrap",children:[ah?(0,d.jsxs)("div",{className:"dz-chat",children:[(0,d.jsxs)("div",{className:"dz-chat-head",children:[(0,d.jsx)(i.e,{name:a?.name||"Grace",color:a?.color||"#84aef5",image:a?.image,size:28}),(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{className:"dz-ch-t",children:[a?.name||"Grace"," \xb7 ",aa("design.chat.role")]}),(0,d.jsx)("div",{className:"dz-ch-s",children:aa("design.chat.subtitle")})]}),cB&&(0,d.jsxs)("span",{className:"dz-live",children:[(0,d.jsx)("span",{className:"dot"})," ",aa("design.chat.live")]}),(0,d.jsx)("button",{className:"dz-collapse-btn",title:aa("design.chat.collapse"),onClick:()=>ai(!1),children:(0,d.jsx)(h.I,{name:"chevronLeft",size:15})})]}),by&&(0,d.jsxs)("div",{className:"ctx-bar",children:[(0,d.jsx)(F.m,{stat:by,onCompact:cg,compacting:bA}),(0,d.jsx)("span",{})]}),(0,d.jsx)(j.H8,{msgs:aU,typing:a$&&cw?[cw.handle]:[],agents:cx,byRun:cy,liveRuns:cA,loading:aY,markdownAgent:!0,avatarSize:28,emptyHint:aa("design.chat.emptyHint")}),(0,d.jsxs)("div",{className:"dz-composer"+(aH?" drag":""),onDragOver:a=>{a.preventDefault(),aI(!0)},onDragLeave:a=>{a.preventDefault(),aI(!1)},onDrop:a=>{a.preventDefault(),aI(!1),cn(a.dataTransfer.files)},children:[!b0&&cv.length>0&&!bk&&(0,d.jsx)("div",{className:"dz-chips",children:cv.map(a=>(0,d.jsx)("span",{className:"dz-chip",onClick:()=>co(a.prompt),children:a.label},a.label))}),bk&&(0,d.jsxs)("div",{className:"dz-attach",children:[(0,d.jsx)("span",{className:"sw",style:{background:av.accent}})," ",aa("design.composer.elementLabel")," ",(0,d.jsx)("b",{style:{fontWeight:700},children:bk.componentName}),(0,d.jsx)("span",{className:"x",onClick:()=>bl(null),children:(0,d.jsx)(h.I,{name:"close",size:12})})]}),aL&&(0,d.jsx)("div",{className:"dz-uperr",children:aL}),aF.length>0&&(0,d.jsx)("div",{className:"dz-atts",children:aF.map((a,b)=>(0,d.jsxs)("span",{className:"dz-att",children:[a.type.startsWith("image/")&&(0,d.jsx)("img",{src:`/api/upload?path=${encodeURIComponent(a.path)}`,alt:""}),(0,d.jsx)("span",{className:"nm",children:a.name}),(0,d.jsx)("span",{className:"rm",title:aa("design.composer.remove"),onClick:()=>aG(a=>a.filter((a,c)=>c!==b)),children:(0,d.jsx)(h.I,{name:"close",size:11})})]},a.path))}),(0,d.jsxs)("div",{className:"dz-input",children:[(0,d.jsx)("button",{className:"dz-clip",disabled:a$||aJ,title:aa("design.composer.attach"),onClick:()=>aN.current?.click(),children:(0,d.jsx)(h.I,{name:aJ?"refresh":"add",size:15,className:aJ?"sync-spin":""})}),(0,d.jsx)("input",{placeholder:bk?aa("design.composer.changePlaceholder",{name:bk.componentName}):aa("design.composer.placeholder"),value:ax,disabled:a$,onChange:a=>ay(a.target.value),onKeyDown:a=>{"Enter"===a.key&&co()},onPaste:function(a){let b=Array.from(a.clipboardData?.items||[]).filter(a=>"file"===a.kind&&a.type.startsWith("image/")).map(a=>a.getAsFile()).filter(a=>!!a);b.length&&(a.preventDefault(),cn(b))}}),(0,d.jsx)("button",{className:"dz-send",disabled:a$||!ax.trim()&&!aF.length&&!bk,onClick:()=>co(),children:(0,d.jsx)(h.I,{name:a$?"refresh":"send",size:15,className:a$?"sync-spin":""})})]}),(0,d.jsx)("input",{ref:aN,type:"file",accept:"image/*,.pdf",multiple:!0,style:{display:"none"},onChange:a=>cn(a.target.files)})]})]}):(0,d.jsxs)("div",{className:"dz-strip left",onClick:()=>ai(!0),title:aa("design.chat.expand"),children:[(0,d.jsx)(h.I,{name:"chevronRight",size:16}),(0,d.jsx)(h.I,{name:"chat",size:16}),cB&&(0,d.jsx)("span",{style:{width:7,height:7,borderRadius:"50%",background:"var(--accent)"}})]}),(0,d.jsxs)("div",{className:"dz-center",children:[b.handoffPending&&(0,d.jsxs)("div",{className:"dz-approve-banner",style:{background:"linear-gradient(90deg,rgba(224,164,78,.20),rgba(224,164,78,.03))"},children:[(0,d.jsx)("div",{className:"dz-ab-ic",style:{background:"rgba(224,164,78,.22)",color:"var(--accent)"},children:(0,d.jsx)(h.I,{name:cB?"refresh":"warn",size:17,className:cB?"sync-spin":""})}),(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{className:"dz-ab-t",children:cB?aa("design.handoff.finishing"):aa("design.handoff.interrupted")}),(0,d.jsx)("div",{className:"dz-ab-s",children:cB?aa("design.handoff.finishingSub"):aa("design.handoff.interruptedSub")})]}),!cB&&(0,d.jsx)("div",{className:"dz-ab-actions",children:(0,d.jsxs)("button",{className:"dz-mini-btn accent",disabled:az,onClick:cr,children:[(0,d.jsx)(h.I,{name:az?"refresh":"sync",size:13,className:az?"sync-spin":""})," ",aa("design.handoff.resume")]})})]}),b.handoffDone&&!b.handoffPending&&(0,d.jsxs)("div",{className:"dz-approve-banner",style:{background:ad?"linear-gradient(90deg,rgba(224,164,78,.22),rgba(224,164,78,.03))":"linear-gradient(90deg,rgba(74,165,114,.20),rgba(74,165,114,.03))"},children:[(0,d.jsx)("div",{className:"dz-ab-ic",style:{background:ad?"rgba(224,164,78,.22)":"rgba(74,165,114,.22)",color:ad?"var(--accent)":"#3fa971"},children:(0,d.jsx)(h.I,{name:ad?"edit":"goto",size:17})}),(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{className:"dz-ab-t",children:ad?"Design updated \xb7 send it to Ada":"Handed off to execution \xb7 Ada is building"}),(0,d.jsx)("div",{className:"dz-ab-s",children:ad?"You edited the design after the last hand-off — send the update so Ada applies it on top (backend wiring preserved).":"This design is the real frontend. Keep refining it with Grace — re-send to push an update (engineers' backend wiring is preserved)."})]}),(0,d.jsx)("div",{className:"dz-ab-actions",children:(0,d.jsxs)("button",{className:"dz-mini-btn accent"+(ad?" dz-pulse":""),disabled:az,onClick:cq,children:[(0,d.jsx)(h.I,{name:az?"refresh":ad?"goto":"sync",size:13,className:az?"sync-spin":""})," ",ad?"Send update to execution":"Re-send update"]})})]}),b0&&!b.handoffPending&&!b.handoffDone&&(0,d.jsxs)("div",{className:"dz-approve-banner",children:[(0,d.jsx)("div",{className:"dz-ab-ic",children:(0,d.jsx)(h.I,{name:ad?"edit":"check",size:17})}),(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{className:"dz-ab-t",children:ad?"Design updated \xb7 ready to send":aa("design.banner.approvedTitle")}),(0,d.jsx)("div",{className:"dz-ab-s",children:ad?"You edited the approved design — send it to execution to push the update.":aa("design.banner.approvedSub")})]}),(0,d.jsx)("div",{className:"dz-ab-actions",children:(0,d.jsxs)("button",{className:"dz-mini-btn accent"+(ad?" dz-pulse":""),disabled:az,onClick:cq,children:[(0,d.jsx)(h.I,{name:az?"refresh":"goto",size:13,className:az?"sync-spin":""})," ",ad?"Send update to execution":aa("design.banner.sendToExecution")]})})]}),!b0&&b.gatePending&&(0,d.jsxs)("div",{className:"dz-approve-banner",style:{background:"linear-gradient(90deg,rgba(99,102,241,.16),rgba(99,102,241,.02))"},children:[(0,d.jsx)("div",{className:"dz-ab-ic",style:{background:"rgba(99,102,241,.18)",color:"#6366f1"},children:(0,d.jsx)(h.I,{name:"bot",size:17})}),(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{className:"dz-ab-t",children:aa("design.banner.adaWaitingTitle")}),(0,d.jsxs)("div",{className:"dz-ab-s",children:[aa("design.banner.adaWaitingPre")," ",(0,d.jsx)("b",{children:aa("design.banner.adaWaitingAction")})," ",aa("design.banner.adaWaitingPost")," ",cB?aa("design.banner.gridSettingUp"):aa("design.banner.gridStart")]})]}),(0,d.jsx)("div",{className:"dz-ab-actions",children:(0,d.jsxs)("button",{className:"dz-mini-btn",disabled:a$,onClick:()=>{a_(!0),o().then(a=>{a.ok||a_(!1)})},children:[(0,d.jsx)(h.I,{name:a$?"refresh":"skill",size:13,className:a$?"sync-spin":""})," ",aa("design.banner.setUpWithGrace")]})})]}),(0,d.jsxs)("div",{className:"dz-bar",children:[(0,d.jsx)("div",{className:"dz-modes",children:O.map(a=>(0,d.jsxs)("span",{className:"dz-mode "+(at===a.id?"on":""),onClick:()=>au(a.id),title:aa("design.mode."+a.id),children:[(0,d.jsx)(h.I,{name:a.ic,size:13})," ",aa("design.mode."+a.id)]},a.id))}),b$.length>0&&(0,d.jsxs)("div",{className:"dz-seg",children:[(0,d.jsx)("button",{onClick:function(){let a=bV.current,b=bP.current.get(a);b&&!(b.pos<=0)&&(b.pos--,ck(a,b))},disabled:!cd,title:aa("design.toolbar.undo"),children:(0,d.jsx)(h.I,{name:"chevronLeft",size:13})}),(0,d.jsx)("button",{onClick:function(){let a=bV.current,b=bP.current.get(a);b&&!(b.pos>=b.stack.length-1)&&(b.pos++,ck(a,b))},disabled:!ce,title:aa("design.toolbar.redo"),children:(0,d.jsx)(h.I,{name:"chevronRight",size:13})}),(0,d.jsxs)("button",{onClick:function(){let a=bV.current,b=bP.current.get(a);b&&!(b.pos<=0)&&(b.pos=0,ck(a,b),cm(aa("design.toast.reset")))},disabled:!cd,title:aa("design.toolbar.resetTitle"),children:[(0,d.jsx)(h.I,{name:"repeat",size:13})," ",aa("design.toolbar.reset")]}),(0,d.jsxs)("button",{onClick:cl,disabled:az||!b2,title:aa("design.toolbar.saveTitle"),children:[(0,d.jsx)(h.I,{name:"check",size:13})," ",aa("design.toolbar.save")]}),(0,d.jsxs)("button",{onClick:function(){let a=bV.current;a&&(a_(!0),m(`I manually edited the screen ${a} directly on the canvas — it now has inline-style overrides, transform:translate offsets and data-cstla-id/data-cstla-tx attributes added by the visual editor. Refactor it into CLEAN, token-driven, professional CSS per the CSS STANDARD: fold the inline styles into the <style> sheet under semantic BEM-ish classes, turn transform offsets into real layout (flex/grid/margins/gap), drop every data-cstla-* attribute, and keep the screen VISUALLY IDENTICAL. Then summarize what you cleaned up.`))},title:aa("design.toolbar.cleanUpTitle"),children:[(0,d.jsx)(h.I,{name:"skill",size:13})," ",aa("design.toolbar.cleanUp")]})]}),(0,d.jsx)("div",{className:"dz-spacer"}),(0,d.jsx)("div",{className:"dz-seg",children:[50,75,100].map(a=>(0,d.jsxs)("button",{className:ar===a?"on":"",onClick:()=>as(a),title:aa("design.toolbar.zoom",{pct:a}),children:[a,"%"]},a))}),(0,d.jsxs)("div",{className:"dz-seg",children:[(0,d.jsx)("button",{className:"desktop"===al&&null==an?"on":"",onClick:()=>{am("desktop"),ao(null)},title:aa("design.toolbar.desktop"),children:(0,d.jsx)(h.I,{name:"sidebarIcon",size:13})}),(0,d.jsx)("button",{className:"tablet"===al&&null==an?"on":"",onClick:()=>{am("tablet"),ao(null)},title:aa("design.toolbar.tabletTitle"),children:aa("design.toolbar.tablet")}),(0,d.jsx)("button",{className:"mobile"===al&&null==an?"on":"",onClick:()=>{am("mobile"),ao(null)},title:aa("design.toolbar.mobileTitle"),children:aa("design.toolbar.mobile")}),(0,d.jsx)("input",{className:"dz-bpw",type:"number",min:320,max:1920,placeholder:"px",value:an??"",title:aa("design.toolbar.customWidth"),onChange:a=>{let b=parseInt(a.target.value,10);ao(Number.isFinite(b)&&b>0?Math.max(320,Math.min(1920,b)):null)}})]}),(0,d.jsxs)("div",{className:"dz-seg",children:[(0,d.jsx)("button",{className:"dark"===av.theme?"on":"",onClick:()=>aw(a=>({...a,theme:"dark"})),title:aa("design.toolbar.dark"),children:(0,d.jsx)(h.I,{name:"moon",size:13})}),(0,d.jsx)("button",{className:"light"===av.theme?"on":"",onClick:()=>aw(a=>({...a,theme:"light"})),title:aa("design.toolbar.light"),children:(0,d.jsx)(h.I,{name:"sun",size:13})})]}),(0,d.jsxs)("div",{className:"dz-seg",title:aa("design.mode2.tip"),children:[(0,d.jsxs)("button",{className:ap?"":"on",onClick:()=>aq(!1),children:[(0,d.jsx)(h.I,{name:"grid",size:13})," ",aa("design.mode2.design")]}),(0,d.jsxs)("button",{className:ap?"on":"",onClick:()=>aq(!0),children:[(0,d.jsx)(h.I,{name:"play",size:13})," ",aa("design.mode2.live")]})]}),bc?(0,d.jsxs)("span",{className:"dz-save preview",title:aa("design.toolbar.previewOnlyTitle"),children:[(0,d.jsx)(h.I,{name:"play",size:12})," ",aa("design.toolbar.previewOnly")]}):"idle"!==bK&&(0,d.jsxs)("span",{className:"dz-save "+bK,title:"saving"===bK?aa("design.toolbar.savingTitle"):aa("design.toolbar.savedTitle"),children:[(0,d.jsx)(h.I,{name:"saving"===bK?"refresh":"check",size:12,className:"saving"===bK?"sync-spin":""})," ","saving"===bK?aa("design.toolbar.saving"):aa("design.toolbar.saved")]}),(0,d.jsxs)("button",{className:"dz-mini-btn",onClick:()=>aC(!0),children:[(0,d.jsx)(h.I,{name:"arrowDown",size:13})," ",aa("design.toolbar.export")]}),(0,d.jsxs)("button",{className:"dz-mini-btn accent",disabled:az,onClick:cp,title:b0?"Re-approve the current design as the official reference":void 0,children:[(0,d.jsx)(h.I,{name:"check",size:13})," ",b0?"Approve changes":aa("design.toolbar.approve")]})]}),b$.length>0&&(0,d.jsxs)("div",{className:"dz-pagestrip",children:[(0,d.jsx)("div",{className:"dz-ptabs",children:b$.slice(0,8).map(a=>(0,d.jsxs)("span",{className:"dz-ptab "+(b1===a?"active":""),onClick:()=>{aP(a),bf(null),bj(!1)},children:[(0,d.jsx)(h.I,{name:"grid",size:13})," ",Q(a)]},a))}),(0,d.jsxs)("span",{className:"dz-hint",children:[(0,d.jsx)(h.I,{name:O.find(a=>a.id===at).ic,size:12})," ","edit"===at?"Click to select \xb7 double-click to edit text (the design stays faithful to the mock — no move/resize/add)":"select"===at?"Click to select an element \xb7 switch to Edit to edit its text":aa("design.hint."+at)]})]}),(0,d.jsxs)("div",{className:"dz-canvas"+(b2?` has-screen ${b5?"framed":"desktop"}`:""),ref:bT,children:[ap&&(0,d.jsx)(K,{onAskGrace:a=>co(a),asking:a$}),b2?(0,d.jsxs)("div",{className:"dz-artwrap",style:{width:b6*b3,height:b7*b3},children:[(0,d.jsxs)("div",{className:"dz-art","data-viewport":al,style:{width:b6,height:b7,transform:`scale(${b3})`,transformOrigin:"top left"},children:[(0,d.jsx)("iframe",{ref:bS,title:aa("design.canvas.previewTitle"),sandbox:"allow-scripts",srcDoc:(G=aQ??"",H=`<script data-cstla-instrument>${C}</script>`,/<\/body>/i.test(G)?G.replace(/<\/body>/i,`${H}</body>`):G+H),onLoad:()=>{try{bS.current?.contentWindow?.postMessage({__cstlaHost:1,type:"canvas:setMode",mode:bU.current},"*")}catch{}let a=bW.current;try{let b,c;bS.current?.contentWindow?.postMessage({__cstlaHost:1,type:"canvas:applyTokens",tokens:{accent:a.accent,accentFg:a.accentFg||(b=a.accent.replace("#",""),c=parseInt(3===b.length?b.split("").map(a=>a+a).join(""):b,16),(.299*(c>>16&255)+.587*(c>>8&255)+.114*(255&c))/255>.6?"#15171c":"#ffffff"),secondary:a.secondary,surface:a.surface,success:a.success,warning:a.warning,danger:a.danger,font:a.font,headingFont:a.headingFont,fontWeight:a.fontWeight,lineHeight:a.lineHeight,letterSpacing:a.letterSpacing,radius:a.radius,borderWidth:a.borderWidth,borderColor:a.borderColor,shadow:a.shadow,space:a.density,containerWidth:a.containerWidth,motionMs:a.motionMs,ease:a.ease,fontScale:a.fontScale,theme:a.theme}},"*")}catch{}},style:{width:"100%",height:"100%",border:"none",background:"#fff",display:"block"}}),(0,d.jsxs)("div",{className:"dz-ovl",children:[a4&&"edit"===at&&(0,d.jsxs)(d.Fragment,{children:[a4.v.map((a,b)=>(0,d.jsx)("div",{className:"dz-guide v",style:{left:a-a6.scrollX}},"gv"+b)),a4.h.map((a,b)=>(0,d.jsx)("div",{className:"dz-guide h",style:{top:a-a6.scrollY}},"gh"+b))]}),a2&&cG&&!be&&"preview"!==at&&"markup"!==at&&"comments"!==at&&(0,d.jsx)("div",{className:"dz-hl",style:cG,children:(0,d.jsx)("span",{className:"tag",children:a2.label})}),"preview"!==at&&bg.map(a=>(0,d.jsx)("div",{className:"dz-selbox",style:ca(a.boundingBox)},a.cstlaId)),cD.map(a=>(0,d.jsx)("div",{className:"dz-mk",style:cb(W(a))},a.id)),bm&&(0,d.jsx)("div",{className:"dz-mk",style:cb({x:bm.xPct,y:bm.yPct,w:bm.wPct,h:bm.hPct})}),cC.map((a,b)=>(0,d.jsx)("div",{className:"dz-pin",style:cc(a.xp,a.yp),onClick:a=>{a.stopPropagation(),ag("comments")},children:b+1},a.id))]})]}),bi&&be&&cH&&"preview"!==at&&bg.length<=1&&(0,d.jsxs)("div",{className:"dz-ctx",style:{left:Math.max(6,cH.left*b3),top:Math.max(4,cH.top*b3-40)},onClick:a=>a.stopPropagation(),children:[(0,d.jsxs)("button",{className:"ask",onClick:()=>{bl(be),bj(!1),cm(aa("design.toast.elementAttached"))},children:[(0,d.jsx)(h.I,{name:"bot",size:13})," ",aa("design.ctx.askFront")]}),(0,d.jsx)("button",{onClick:()=>bj(!1),children:(0,d.jsx)(h.I,{name:"close",size:13})})]}),bo&&(0,d.jsxs)("div",{className:"dz-cpop",style:{left:Math.max(6,Math.min((I=cc(bo.xpPct,bo.ypPct)).left*b3,Math.max(6,b6*b3-226))),top:Math.max(6,Math.min(I.top*b3,Math.max(6,b7*b3-120)))},onClick:a=>a.stopPropagation(),children:[(0,d.jsx)("textarea",{rows:3,autoFocus:!0,placeholder:bo.markup?aa("design.cmt.markupPlaceholder"):aa("design.cmt.pointPlaceholder"),value:bq,onChange:a=>br(a.target.value),onKeyDown:a=>{"Enter"===a.key&&(a.metaKey||a.ctrlKey)&&(a.preventDefault(),ct())}}),bo.markup?(0,d.jsxs)("div",{className:"row",style:{flexDirection:"column",alignItems:"stretch"},children:[(0,d.jsxs)("button",{className:"dz-mini-btn accent",style:{justifyContent:"center"},onClick:()=>ct(!0),children:[(0,d.jsx)(h.I,{name:"bot",size:12})," ",aa("design.cmt.markAskGrace")]}),(0,d.jsx)("button",{className:"dz-mini-btn",style:{justifyContent:"center"},onClick:()=>ct(!1),children:aa("design.cmt.markRegion")}),(0,d.jsx)("button",{className:"dz-mini-btn",style:{justifyContent:"center"},onClick:()=>{bp(null),br(""),bn(null)},children:aa("design.cmt.cancel")})]}):(0,d.jsxs)("div",{className:"row",children:[(0,d.jsx)("button",{className:"dz-mini-btn",onClick:()=>{bp(null),br(""),bn(null)},children:aa("design.cmt.cancel")}),(0,d.jsx)("button",{className:"dz-mini-btn accent",onClick:()=>ct(),children:aa("design.cmt.comment")})]})]}),cB&&(0,d.jsxs)("div",{className:"dz-build-bar",children:[(0,d.jsx)(h.I,{name:"skill",size:13})," ",aa("design.canvas.working")," ",(0,d.jsx)("span",{className:"sh"})]})]}):(0,d.jsx)("div",{className:"dz-emptywrap",children:aS?(0,d.jsxs)("div",{className:"dz-empty",children:[(0,d.jsx)("div",{className:"ic",children:(0,d.jsx)(h.I,{name:"error",size:22})}),(0,d.jsx)("div",{className:"t",children:aa("design.empty.loadErrTitle")}),(0,d.jsx)("div",{className:"s",children:aS})]}):0===b$.length&&b_.length>0?(0,d.jsxs)("div",{className:"dz-empty",children:[(0,d.jsx)("div",{className:"ic",children:(0,d.jsx)(h.I,{name:"doc",size:22})}),(0,d.jsx)("div",{className:"t",children:aa("design.empty.componentsTitle",{count:b_.length,plural:b_.length>1?"s":""})}),(0,d.jsx)("div",{className:"s",children:aa("design.empty.componentsBody")})]}):(0,d.jsxs)("div",{className:"dz-empty",children:[(0,d.jsx)("div",{className:"ic",children:(0,d.jsx)(h.I,{name:"grid",size:22})}),(0,d.jsx)("div",{className:"t",children:aa("design.empty.noPrototypeTitle")}),(0,d.jsxs)("div",{className:"s",children:[aa("design.empty.noPrototypePre")," ",(0,d.jsx)("span",{className:"mono",children:"design-mock/"}),". ",aa("design.empty.noPrototypePost")]})]})})]})]}),aj?(0,d.jsxs)("div",{className:"dz-rail",children:[(0,d.jsxs)("div",{className:"dz-rail-tabs",children:[cE.map(([a,b])=>(0,d.jsx)("div",{className:"dz-rt "+(cF===a?"active":""),onClick:()=>ag(a),children:b},a)),(0,d.jsx)("button",{className:"dz-collapse-btn",title:aa("design.rail.collapse"),onClick:()=>ak(!1),children:(0,d.jsx)(h.I,{name:"chevronRight",size:15})})]}),(0,d.jsxs)("div",{className:"dz-rail-body",children:["layers"===cF&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{className:"dz-sec",children:aa("design.layers.title")}),b2?0===ba.length?(0,d.jsx)("div",{style:{fontSize:11.5,color:"var(--text-dim)",lineHeight:1.5},children:aa("design.layers.reading")}):ba.map(a=>(0,d.jsxs)("div",{className:"dz-layer"+(be?.nodePath===a.path?" active":""),style:{paddingLeft:8+11*a.depth},onClick:()=>(function(a){try{bS.current?.contentWindow?.postMessage({__cstlaHost:1,type:"canvas:selectByPath",path:a},"*")}catch{}})(a.path),title:`<${a.tag}>`,children:[(0,d.jsx)(h.I,{name:a.kids>0?"grid":"dot",size:10}),(0,d.jsx)("span",{className:"lt",children:a.label}),(0,d.jsxs)("span",{className:"lg",children:[a.tag,a.kids>0?` \xb7 ${a.kids}`:""]})]},a.path)):(0,d.jsx)("div",{style:{fontSize:11.5,color:"var(--text-dim)",lineHeight:1.5},children:aa("design.layers.openScreen")})]}),"screens"===cF&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{className:"dz-sec",children:aa("design.screens.title")}),0===b$.length?(0,d.jsx)("div",{style:{fontSize:11.5,color:"var(--text-dim)",lineHeight:1.5},children:aa("design.screens.empty")}):b$.map(a=>(0,d.jsxs)("div",{className:"dz-row "+(b1===a?"active":""),onClick:()=>{aP(a),bf(null),bj(!1)},children:[(0,d.jsx)("div",{className:"dz-r-ic",children:(0,d.jsx)(h.I,{name:"grid",size:14})}),(0,d.jsxs)("div",{style:{minWidth:0},children:[(0,d.jsx)("div",{className:"dz-r-t",children:Q(a)}),(0,d.jsx)("div",{className:"dz-r-s",children:a.replace(/^design-mock\//,"")})]}),b1===a&&(0,d.jsx)("span",{className:"dz-r-meta",children:aa("design.screens.active")})]},a)),(0,d.jsxs)("div",{className:"dz-addrow",onClick:()=>co("Build a new screen for the prototype."),children:[(0,d.jsx)(h.I,{name:"add",size:13})," ",aa("design.screens.newScreen")]}),b_.length>0&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{className:"dz-sec",style:{marginTop:16},children:aa("design.screens.components",{count:b_.length})}),(0,d.jsx)("div",{className:"dz-comp-grid",children:b_.slice(0,8).map((a,b)=>(0,d.jsxs)("div",{className:"dz-comp",children:[(0,d.jsx)("div",{style:{height:30,borderRadius:7,background:b%2?P(av.accent,.16):"var(--bg-app)",border:"1px solid var(--border)",display:"grid",placeItems:"center",color:"var(--accent)",fontSize:12},children:"◧"}),(0,d.jsx)("div",{className:"nm",children:(a.split("/").pop()||a).replace(/\.[a-z]+$/i,"")})]},a))})]})]}),"docs"===cF&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{className:"dz-sec",children:aa("design.docs.title")}),0===bC.length?(0,d.jsx)("div",{style:{fontSize:11.5,color:"var(--text-dim)",lineHeight:1.5},children:aa("design.docs.empty")}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{className:"dz-docnav",children:bC.map(a=>(0,d.jsxs)("div",{className:"dz-doctab "+(bE===a.path?"active":""),onClick:()=>{var b;bF(b=a.path),bH(""),n(b).then(a=>{a.ok&&null!=a.body?bH(a.body):bH(aa("design.docs.readErr"))})},title:a.label,children:[(0,d.jsx)(h.I,{name:/APPROVED/i.test(a.path)?"check":"doc",size:12}),(0,d.jsx)("span",{children:a.label})]},a.path))}),(0,d.jsx)("div",{className:"dz-docbody md",children:bG?(0,d.jsx)(A.oz,{remarkPlugins:[B.A],children:bG}):(0,d.jsx)("div",{style:{fontSize:11.5,color:"var(--text-dim)"},children:aa("design.docs.reading")})})]})]}),"styles"===cF&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{className:"dz-sec",children:aa("design.styles.palette")}),(0,d.jsx)("div",{className:"dz-swatches",children:L.map(a=>(0,d.jsx)("span",{title:a.name,className:"dz-sw "+(av.accent===a.c?"on":""),style:{background:a.c},onClick:()=>ch({accent:a.c,accentName:a.name})},a.name))}),ci(aa("design.styles.accentCustom"),"accent"),ci(aa("design.styles.secondary"),"secondary"),ci(aa("design.styles.surface"),"surface"),(0,d.jsxs)("details",{className:"dz-adv",children:[(0,d.jsx)("summary",{children:aa("design.styles.semanticColors")}),ci(aa("design.styles.success"),"success","#10b981"),ci(aa("design.styles.warning"),"warning","#f59e0b"),ci(aa("design.styles.danger"),"danger","#ef4444"),ci(aa("design.styles.accentText"),"accentFg")]}),(0,d.jsx)("div",{className:"dz-sec",style:{marginTop:18},children:aa("design.styles.typography")}),(0,d.jsx)("div",{className:"dz-sub",children:aa("design.styles.bodyFont")}),(0,d.jsx)("div",{className:"dz-opt",children:M.map(a=>(0,d.jsx)("span",{className:"dz-pill2 "+(av.fontName===a.n?"on":""),onClick:()=>ch({font:a.s,fontName:a.n}),children:a.n},a.n))}),(0,d.jsx)("div",{className:"dz-sub",children:aa("design.styles.headingFont")}),(0,d.jsx)("div",{className:"dz-opt",children:M.map(a=>(0,d.jsx)("span",{className:"dz-pill2 "+(av.headingFontName===a.n?"on":""),onClick:()=>ch({headingFont:a.s,headingFontName:a.n}),children:a.n},a.n))}),cj(aa("design.styles.weight"),"fontWeight",300,800,100),cj(aa("design.styles.lineHeight"),"lineHeight",1,2,.05),cj(aa("design.styles.letterSpacing"),"letterSpacing",-1,4,.1,"px"),(0,d.jsx)("div",{className:"dz-sub",children:aa("design.styles.textSize")}),(0,d.jsx)("div",{className:"dz-opt",children:[[aa("design.styles.sizeSmall"),.9],[aa("design.styles.sizeDefault"),1],[aa("design.styles.sizeLarge"),1.15]].map(([a,b])=>(0,d.jsx)("span",{className:"dz-pill2 "+(av.fontScale===b?"on":""),onClick:()=>ch({fontScale:b}),children:a},a))}),(0,d.jsx)("div",{className:"dz-sec",style:{marginTop:18},children:aa("design.styles.shapeDepth")}),(0,d.jsx)("div",{className:"dz-opt",children:N.map(a=>(0,d.jsx)("span",{className:"dz-pill2 "+(av.radius===a.r?"on":""),onClick:()=>ch({radius:a.r}),children:aa("design.styles.radius"+a.n)},a.n))}),cj(aa("design.styles.radius"),"radius",0,32,1,"px"),cj(aa("design.styles.borderWidth"),"borderWidth",0,4,1,"px"),ci(aa("design.styles.borderColor"),"borderColor"),(0,d.jsx)("div",{className:"dz-sub",children:aa("design.styles.shadow")}),(0,d.jsx)("div",{className:"dz-opt",children:["none","sm","md","lg"].map(a=>(0,d.jsx)("span",{className:"dz-pill2 "+(av.shadow===a?"on":""),onClick:()=>ch({shadow:a}),children:"none"===a?aa("design.styles.shadowNone"):a.toUpperCase()},a))}),(0,d.jsx)("div",{className:"dz-sec",style:{marginTop:18},children:aa("design.styles.theme")}),(0,d.jsxs)("div",{className:"dz-opt",children:[(0,d.jsx)("span",{className:"dz-pill2 "+("dark"===av.theme?"on":""),onClick:()=>ch({theme:"dark"}),children:aa("design.styles.dark")}),(0,d.jsx)("span",{className:"dz-pill2 "+("light"===av.theme?"on":""),onClick:()=>ch({theme:"light"}),children:aa("design.styles.light")})]}),(0,d.jsx)("div",{className:"dz-sec",style:{marginTop:18},children:aa("design.styles.spacingLayoutMotion")}),(0,d.jsx)("div",{className:"dz-opt",children:[[aa("design.styles.densityCompact"),8],[aa("design.styles.densityCozy"),12],[aa("design.styles.densityComfy"),16]].map(([a,b])=>(0,d.jsx)("span",{className:"dz-pill2 "+(av.density===b?"on":""),onClick:()=>ch({density:b}),children:a},a))}),cj(aa("design.styles.density"),"density",4,28,1,"px"),cj(aa("design.styles.containerWidth"),"containerWidth",880,1600,20,"px"),cj(aa("design.styles.motionSpeed"),"motionMs",0,600,20,"ms"),(0,d.jsx)("div",{className:"dz-sub",children:aa("design.styles.easing")}),(0,d.jsx)("div",{className:"dz-opt",children:[[aa("design.styles.easeEase"),"ease"],[aa("design.styles.easeInOut"),"ease-in-out"],[aa("design.styles.easeLinear"),"linear"],[aa("design.styles.easeSmooth"),"cubic-bezier(.4,0,.2,1)"]].map(([a,b])=>(0,d.jsx)("span",{className:"dz-pill2 "+(av.ease===b?"on":""),onClick:()=>ch({ease:b}),children:a},a))}),(0,d.jsx)("div",{className:"dz-sec",style:{marginTop:18},children:aa("design.styles.spacingScale")}),(0,d.jsx)("div",{style:{display:"flex",gap:5,alignItems:"flex-end"},children:[.5,1,1.5,2,3,4].map(a=>{let b=Math.round(av.density*a);return(0,d.jsxs)("div",{style:{textAlign:"center"},children:[(0,d.jsx)("div",{style:{width:20,height:Math.max(3,b),background:P(av.accent,.5),borderRadius:3}}),(0,d.jsx)("div",{style:{fontSize:9,color:"var(--text-faint)",marginTop:3},children:b})]},a)})}),(0,d.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginTop:16,gap:8},children:[(0,d.jsx)("span",{style:{fontSize:10.5,color:"var(--text-faint)"},children:aa("design.styles.restyleNote")}),(0,d.jsx)("button",{className:"dz-mini-btn",onClick:()=>ch(U),children:aa("design.styles.reset")})]})]}),"comments"===cF&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{className:"dz-sec",children:aa("design.comments.title")}),0===cC.length&&(0,d.jsxs)("div",{style:{fontSize:11.5,color:"var(--text-dim)",lineHeight:1.5},children:[aa("design.comments.emptyPre")," ",(0,d.jsx)("b",{children:aa("design.comments.emptyTool")})," ",aa("design.comments.emptyPost")]}),cC.map((a,b)=>(0,d.jsxs)("div",{className:"dz-cmt",children:[(0,d.jsxs)("div",{className:"h",children:[(0,d.jsx)("span",{className:"pin",children:b+1})," ",aa("design.comments.comment")," ",(0,d.jsx)("span",{className:"x",onClick:()=>{x(a.id).then(()=>bJ(a=>a+1))},children:(0,d.jsx)(h.I,{name:"trash",size:12})})]}),(0,d.jsx)("div",{className:"bd",children:a.body}),a.reply?(0,d.jsxs)("div",{className:"rep",children:[(0,d.jsx)(h.I,{name:"bot",size:12})," ",a.reply]}):(0,d.jsxs)("button",{className:"dz-mini-btn",onClick:()=>{a_(!0);let b=a.selection&&"object"==typeof a.selection&&a.selection.componentName?a.selection:void 0;m(`Apply this canvas comment on screen ${b1}${b?` (it is pinned on the ${b.componentName} element)`:""}: "${a.body}"`,void 0,b)},children:[(0,d.jsx)(h.I,{name:"bot",size:12})," ",aa("design.comments.askGrace")]})]},a.id)),cD.length>0&&(0,d.jsx)("div",{className:"dz-sec",style:{marginTop:14},children:aa("design.comments.markedRegions",{count:cD.length})}),cD.map((a,b)=>{let c=a.body&&"(region marked for review)"!==a.body?a.body:"";return(0,d.jsxs)("div",{className:"dz-cmt",children:[(0,d.jsxs)("div",{className:"h",children:[(0,d.jsxs)("span",{className:"pin",children:["M",b+1]})," ",aa("design.comments.region")," ",(0,d.jsx)("span",{className:"x",onClick:()=>{x(a.id).then(()=>bJ(a=>a+1))},children:(0,d.jsx)(h.I,{name:"trash",size:12})})]}),c&&(0,d.jsx)("div",{className:"bd",children:c}),a.reply?(0,d.jsxs)("div",{className:"rep",children:[(0,d.jsx)(h.I,{name:"bot",size:12})," ",a.reply]}):(0,d.jsxs)("button",{className:"dz-mini-btn",onClick:()=>{a_(!0);let b=X(W(a));m(`On screen ${b1}, I marked a region for review (${b}).${c?` My note: "${c}"`:" Please review and refine it."} Update the screen accordingly.`)},children:[(0,d.jsx)(h.I,{name:"bot",size:12})," ",aa("design.comments.askGrace")]})]},a.id)})]}),"history"===cF&&(J=bP.current.get(b1),Z=J?.pos??-1,$=J?J.labels.map((a,b)=>({lab:a,i:b})):[],(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{className:"dz-sec",children:J&&J.stack.length>1?aa("design.history.pos",{pos:Z+1,total:J.stack.length}):aa("design.history.title")}),b2?$.length<=1?(0,d.jsx)("div",{style:{fontSize:11.5,color:"var(--text-dim)",lineHeight:1.5},children:aa("design.history.noEdits")}):(0,d.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:2},children:$.slice().reverse().map(({lab:a,i:b})=>(0,d.jsxs)("div",{onClick:()=>{let a,c;return a=bV.current,void((c=bP.current.get(a))&&!(b<0)&&!(b>=c.stack.length)&&b!==c.pos&&(c.pos=b,ck(a,c)))},style:{display:"flex",alignItems:"center",gap:8,padding:"7px 9px",borderRadius:8,cursor:"pointer",fontSize:12,background:b===Z?"rgba(224,164,78,.12)":"transparent",color:b===Z?"var(--accent)":"var(--text-dim)",border:"1px solid "+(b===Z?"var(--accent)":"transparent")},children:[(0,d.jsx)("span",{style:{fontVariantNumeric:"tabular-nums",opacity:.6,minWidth:16,textAlign:"right"},children:0===b?"•":b}),(0,d.jsx)("span",{style:{flex:1,fontWeight:b===Z?700:500},children:a||aa("design.history.edited")}),b===Z&&(0,d.jsx)("span",{style:{fontSize:10,fontWeight:700},children:aa("design.history.current")})]},b))}):(0,d.jsx)("div",{style:{fontSize:11.5,color:"var(--text-dim)"},children:aa("design.history.openScreen")})]})),"versions"===cF&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{className:"dz-sec",children:aa("design.versions.title")}),0===bu.length?(0,d.jsx)("div",{style:{fontSize:11.5,color:"var(--text-dim)",lineHeight:1.5},children:aa("design.versions.empty")}):bu.map(a=>(0,d.jsxs)("div",{className:"dz-vnode"+(bw===a.id?" active":""),onClick:()=>bx(bw===a.id?null:a.id),title:aa("design.versions.revertHint"),children:[(0,d.jsxs)("div",{className:"vt",children:[a.label," ",(0,d.jsx)("span",{className:"dz-tag",children:aa("design.versions.files",{count:a.files.length,plural:1===a.files.length?"":"s"})})]}),(0,d.jsx)("div",{className:"vs",children:a.note}),(0,d.jsx)("div",{className:"vtime",children:function(a,b){let c=Math.max(0,Math.round((new Date().getTime()-a)/1e3));if(c<60)return b("design.time.justNow");let d=Math.round(c/60);if(d<60)return b("design.time.minAgo",{n:d});let e=Math.round(d/60);return e<24?b("design.time.hAgo",{n:e}):b("design.time.dAgo",{n:Math.round(e/24)})}(a.createdAt,aa)}),bw===a.id&&(0,d.jsxs)("div",{className:"dz-addrow",style:{marginTop:8,padding:"6px"},onClick:b=>{b.stopPropagation(),a.restorable?y(a.id).then(async b=>{if(!b.ok)return void cm(b.error||aa("design.toast.restoreFailed"));let c=bV.current;bM.current=!1,bN.current="",bP.current.delete(c),bR(a=>a+1);let d=await l(c);d.ok&&null!=d.html&&(aR(d.html),bf(null)),cm(aa("design.toast.restored",{label:a.label}))}):(a_(!0),z(a.label,a.note)),bx(null)},children:[(0,d.jsx)(h.I,{name:"refresh",size:12})," ",aa("design.versions.revertTo",{label:a.label})]})]},a.id))]})]})]}):(0,d.jsxs)("div",{className:"dz-strip right",onClick:()=>ak(!0),title:aa("design.rail.expand"),children:[(0,d.jsx)(h.I,{name:"chevronLeft",size:16}),(0,d.jsx)(h.I,{name:"sidebarIcon",size:16})]}),aB&&(0,d.jsx)("div",{className:"dz-modal-bg",onClick:()=>aC(!1),children:(0,d.jsxs)("div",{className:"dz-modal",onClick:a=>a.stopPropagation(),children:[(0,d.jsxs)("div",{className:"dz-modal-h",children:[(0,d.jsx)("div",{className:"ic",children:(0,d.jsx)(h.I,{name:"arrowDown",size:17})}),(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{className:"t",children:aa("design.export.title")}),(0,d.jsx)("div",{className:"s",children:aa("design.export.sub")})]}),(0,d.jsx)("div",{className:"x",onClick:()=>aC(!1),children:(0,d.jsx)(h.I,{name:"close",size:16})})]}),(0,d.jsx)("div",{className:"dz-modal-b",children:[[aa("design.export.row.screens"),String(b$.length)],[aa("design.export.row.comments"),String(bs.filter(a=>!V(a)).length)],[aa("design.export.row.versions"),String(bu.length)],[aa("design.export.row.tokens"),aa("design.export.row.tokensVal")],[aa("design.export.row.approvedMd"),""],[aa("design.export.row.kbRag"),""],[aa("design.export.row.adaNotified"),""],[aa("design.export.row.planner"),""]].map(a=>(0,d.jsxs)("div",{className:"dz-dl",children:[(0,d.jsx)("span",{className:"ck",children:(0,d.jsx)(h.I,{name:"check",size:11})}),a[0],a[1]&&(0,d.jsx)("span",{className:"n",children:a[1]})]},a[0]))}),(0,d.jsxs)("div",{className:"dz-modal-f",children:[(0,d.jsx)("span",{className:"note",children:aa("design.export.note")}),(0,d.jsx)("div",{className:"dz-spacer"}),(0,d.jsxs)("button",{className:"dz-mini-btn",disabled:az,onClick:cs,children:[(0,d.jsx)(h.I,{name:"cpu",size:13})," ",aa("design.export.buildProd")]}),(0,d.jsx)("button",{className:"dz-mini-btn",onClick:()=>aC(!1),children:aa("design.export.close")}),(0,d.jsxs)("button",{className:"dz-mini-btn accent",disabled:az||b0,onClick:()=>{aC(!1),cp()},children:[(0,d.jsx)(h.I,{name:"check",size:13})," ",aa("design.export.approveDesign")]})]})]})}),aD&&(0,d.jsx)("div",{className:"dz-flash",children:aD})]})}function Z(a){return(0,d.jsx)(Y,{grace:a.grace,context:a.context,status:a.status,tokens:a.tokens})}}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[3050,658,9676,1845,7971,8762,4616,6719,3266,4832,1572,3131,8623,5060,3234,3882,6873,259,3440],()=>b(b.s=21308));module.exports=c})();
|