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,757 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
6
|
+
<title>Brand Kit</title>
|
|
7
|
+
<!--
|
|
8
|
+
Self-contained brand-kit page. The daemon's brand-kit renderer replaces the
|
|
9
|
+
payload token in the script tag below with a JSON blob { status, brand,
|
|
10
|
+
assets }. Everything renders from that single embedded object — no external
|
|
11
|
+
requests, so it works under the FileViewer's sandboxed URL-load iframe.
|
|
12
|
+
While status is "extracting" the page softly reloads itself so the user
|
|
13
|
+
watches the kit fill in as the agent writes brand.json and re-renders.
|
|
14
|
+
-->
|
|
15
|
+
<script id="od-brand-payload" type="application/json">__OD_BRAND_PAYLOAD__</script>
|
|
16
|
+
<!-- Self-hosted @font-face rules (replaced with the brand's fonts/ manifest, or
|
|
17
|
+
emptied when no webfonts were harvested) so specimens render for real. -->
|
|
18
|
+
<style data-brand-fonts>__OD_BRAND_FONTFACE__</style>
|
|
19
|
+
<style>
|
|
20
|
+
:root {
|
|
21
|
+
--paper: #faf9f5;
|
|
22
|
+
--surface: #ffffff;
|
|
23
|
+
--ink: #1a1a18;
|
|
24
|
+
--ink-mute: #57564f;
|
|
25
|
+
--ink-faint: #8a887f;
|
|
26
|
+
--line: #e7e5dc;
|
|
27
|
+
--line-soft: #efeee7;
|
|
28
|
+
--accent: #c96442;
|
|
29
|
+
--ok: #3d7a4f;
|
|
30
|
+
--err: #b4453a;
|
|
31
|
+
--radius: 14px;
|
|
32
|
+
--font-display: ui-serif, Georgia, 'Times New Roman', serif;
|
|
33
|
+
--font-body: ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
|
|
34
|
+
--font-mono: ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
|
|
35
|
+
}
|
|
36
|
+
* { box-sizing: border-box; }
|
|
37
|
+
html, body { margin: 0; }
|
|
38
|
+
body {
|
|
39
|
+
background: var(--paper);
|
|
40
|
+
color: var(--ink);
|
|
41
|
+
font-family: var(--font-body);
|
|
42
|
+
font-size: 15px;
|
|
43
|
+
line-height: 1.5;
|
|
44
|
+
-webkit-font-smoothing: antialiased;
|
|
45
|
+
}
|
|
46
|
+
.wrap { max-width: 1040px; margin: 0 auto; padding: 40px 28px 96px; }
|
|
47
|
+
a { color: inherit; }
|
|
48
|
+
|
|
49
|
+
header.kit-head { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 16px; }
|
|
50
|
+
.kit-title { font-family: var(--font-display); font-size: 40px; line-height: 1.05; font-weight: 600; letter-spacing: -0.02em; margin: 0; }
|
|
51
|
+
.kit-tagline { margin: 6px 0 0; font-size: 18px; color: var(--ink-mute); }
|
|
52
|
+
.kit-source { margin-top: 6px; display: inline-flex; align-items: center; gap: 5px; font-size: 12px; color: var(--ink-faint); text-decoration: none; }
|
|
53
|
+
.kit-source:hover { color: var(--accent); }
|
|
54
|
+
.head-actions { display: flex; align-items: center; gap: 8px; }
|
|
55
|
+
.btn { display: inline-flex; align-items: center; gap: 6px; border: 1px solid var(--line); background: var(--surface); color: var(--ink); border-radius: 10px; padding: 7px 12px; font-size: 13px; text-decoration: none; cursor: pointer; transition: border-color .14s ease; }
|
|
56
|
+
.btn:hover { border-color: var(--accent); }
|
|
57
|
+
|
|
58
|
+
.status-pill { display: inline-flex; align-items: center; gap: 7px; border-radius: 999px; padding: 4px 11px 4px 9px; font-size: 12px; font-weight: 500; border: 1px solid var(--line); background: var(--surface); color: var(--ink-mute); }
|
|
59
|
+
.status-pill .dot { width: 7px; height: 7px; border-radius: 50%; background: var(--accent); }
|
|
60
|
+
.status-pill.extracting .dot { animation: pulse 1.1s ease-in-out infinite; }
|
|
61
|
+
.status-pill.ready .dot { background: var(--ok); }
|
|
62
|
+
@keyframes pulse { 0%,100% { opacity: 1; transform: scale(1);} 50% { opacity: .35; transform: scale(.7);} }
|
|
63
|
+
|
|
64
|
+
.sec { margin-top: 40px; }
|
|
65
|
+
.sec-title { font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.14em; color: var(--ink-faint); margin: 0 0 12px; }
|
|
66
|
+
.grid-2 { display: grid; gap: 28px; grid-template-columns: 1fr; }
|
|
67
|
+
.grid-top { display: grid; gap: 28px; grid-template-columns: 1fr; }
|
|
68
|
+
@media (min-width: 860px) {
|
|
69
|
+
.grid-2 { grid-template-columns: 1fr 1fr; }
|
|
70
|
+
.grid-top { grid-template-columns: 1fr 2fr; }
|
|
71
|
+
}
|
|
72
|
+
.card { border: 1px solid var(--line-soft); background: var(--surface); border-radius: var(--radius); padding: 18px; box-shadow: 0 1px 2px rgba(0,0,0,.03); }
|
|
73
|
+
|
|
74
|
+
/* Logo */
|
|
75
|
+
.logo-stage { display: flex; min-height: 158px; align-items: center; justify-content: center; border: 1px solid var(--line-soft); border-radius: var(--radius); padding: 28px; }
|
|
76
|
+
.logo-stage img { max-height: 92px; max-width: 100%; object-fit: contain; }
|
|
77
|
+
.logo-empty { display: flex; min-height: 158px; flex-direction: column; align-items: center; justify-content: center; gap: 6px; border: 1px dashed var(--line); border-radius: var(--radius); color: var(--ink-faint); font-size: 14px; }
|
|
78
|
+
.logo-thumbs { margin-top: 10px; display: flex; gap: 8px; flex-wrap: wrap; }
|
|
79
|
+
.logo-thumb { width: 42px; height: 42px; display: flex; align-items: center; justify-content: center; border: 1px solid var(--line-soft); border-radius: 9px; padding: 6px; cursor: pointer; }
|
|
80
|
+
.logo-thumb.active { border-color: var(--accent); }
|
|
81
|
+
.logo-thumb img { max-width: 100%; max-height: 100%; object-fit: contain; }
|
|
82
|
+
.logo-notes { margin-top: 10px; font-size: 12px; color: var(--ink-faint); }
|
|
83
|
+
|
|
84
|
+
/* Type */
|
|
85
|
+
.type-row { border: 1px solid var(--line-soft); border-radius: 12px; background: var(--surface); padding: 16px 18px; }
|
|
86
|
+
.type-row + .type-row { margin-top: 12px; }
|
|
87
|
+
.type-meta { display: flex; align-items: baseline; justify-content: space-between; gap: 14px; }
|
|
88
|
+
.type-label { font-size: 11px; text-transform: uppercase; letter-spacing: .08em; color: var(--ink-faint); }
|
|
89
|
+
.type-font { font-size: 12px; color: var(--ink-mute); text-align: right; }
|
|
90
|
+
.type-font .dim { color: var(--ink-faint); }
|
|
91
|
+
.type-sample { margin: 8px 0 0; line-height: 1.1; }
|
|
92
|
+
|
|
93
|
+
/* Palette */
|
|
94
|
+
.palette { display: grid; gap: 12px; grid-template-columns: repeat(2, 1fr); }
|
|
95
|
+
@media (min-width: 560px) { .palette { grid-template-columns: repeat(4, 1fr); } }
|
|
96
|
+
@media (min-width: 920px) { .palette { grid-template-columns: repeat(7, 1fr); } }
|
|
97
|
+
.swatch { overflow: hidden; border: 1px solid var(--line-soft); border-radius: 12px; background: var(--surface); box-shadow: 0 1px 2px rgba(0,0,0,.03); }
|
|
98
|
+
.swatch-chip { height: 92px; display: flex; align-items: flex-end; padding: 8px; }
|
|
99
|
+
.swatch-chip .hex { font-family: var(--font-mono); font-size: 11px; }
|
|
100
|
+
.swatch-body { padding: 9px 10px 11px; }
|
|
101
|
+
.swatch-name { font-size: 13px; font-weight: 500; line-height: 1.2; }
|
|
102
|
+
.swatch-role { font-size: 11px; color: var(--ink-faint); margin-top: 1px; }
|
|
103
|
+
.swatch-usage { font-size: 11px; color: var(--ink-mute); margin-top: 5px; line-height: 1.35; }
|
|
104
|
+
|
|
105
|
+
/* Voice */
|
|
106
|
+
.chips { display: flex; flex-wrap: wrap; gap: 6px; }
|
|
107
|
+
.chip { border-radius: 999px; padding: 2px 10px; font-size: 12px; font-weight: 500; }
|
|
108
|
+
.voice-tone { margin: 12px 0 0; font-size: 14px; color: var(--ink-mute); line-height: 1.55; }
|
|
109
|
+
.pillars { margin: 12px 0 0; padding: 0; list-style: none; font-size: 14px; }
|
|
110
|
+
.pillars li { display: flex; gap: 8px; margin-top: 4px; }
|
|
111
|
+
.vocab { margin-top: 14px; display: grid; grid-template-columns: 1fr 1fr; gap: 16px; border-top: 1px solid var(--line-soft); padding-top: 12px; font-size: 12px; }
|
|
112
|
+
.vocab .k { font-weight: 600; }
|
|
113
|
+
.vocab .use .k { color: var(--ok); }
|
|
114
|
+
.vocab .avoid .k { color: var(--err); }
|
|
115
|
+
.vocab .v { margin-top: 4px; color: var(--ink-mute); }
|
|
116
|
+
|
|
117
|
+
/* Imagery */
|
|
118
|
+
.imagery p { margin: 0; font-size: 14px; }
|
|
119
|
+
.imagery p + p { margin-top: 6px; color: var(--ink-mute); }
|
|
120
|
+
.imagery .k { font-weight: 600; color: var(--ink); }
|
|
121
|
+
.posture { margin-top: 12px; border-top: 1px solid var(--line-soft); padding-top: 12px; }
|
|
122
|
+
.posture ul { margin: 6px 0 0; padding-left: 18px; font-size: 12px; color: var(--ink-mute); }
|
|
123
|
+
.posture ul li { margin-top: 2px; }
|
|
124
|
+
|
|
125
|
+
/* Design system */
|
|
126
|
+
.ds-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 10px; }
|
|
127
|
+
.ds-sub { margin: 2px 0 0; font-size: 13px; color: var(--ink-mute); }
|
|
128
|
+
.ds-frame-wrap { margin-top: 14px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); overflow: hidden; box-shadow: 0 1px 2px rgba(0,0,0,.03); }
|
|
129
|
+
.ds-bar { display: flex; align-items: center; justify-content: space-between; gap: 10px; border-bottom: 1px solid var(--line-soft); padding: 7px 10px; }
|
|
130
|
+
.ds-tabs { display: flex; gap: 4px; }
|
|
131
|
+
.ds-tab { border: 0; background: transparent; cursor: pointer; border-radius: 8px; padding: 4px 11px; font-size: 13px; color: var(--ink-mute); font-family: inherit; }
|
|
132
|
+
.ds-tab.active { background: var(--surface); color: var(--accent); font-weight: 600; box-shadow: inset 0 0 0 1px var(--line); }
|
|
133
|
+
.ds-cap { font-size: 11px; color: var(--ink-faint); }
|
|
134
|
+
.ds-frame { width: 100%; height: 520px; border: 0; display: block; background: #fff; }
|
|
135
|
+
.ds-tokens { margin-top: 12px; display: flex; flex-wrap: wrap; gap: 8px; }
|
|
136
|
+
.tok { display: flex; align-items: center; gap: 8px; border: 1px solid var(--line-soft); background: var(--surface); border-radius: 10px; padding: 5px 11px 5px 5px; box-shadow: 0 1px 2px rgba(0,0,0,.03); }
|
|
137
|
+
.tok .sw { width: 26px; height: 26px; border-radius: 7px; border: 1px solid rgba(0,0,0,.1); }
|
|
138
|
+
.tok .val { display: flex; min-width: 26px; height: 26px; align-items: center; justify-content: center; padding: 0 6px; border-radius: 7px; background: color-mix(in srgb, var(--accent) 14%, transparent); color: var(--accent); font-family: var(--font-mono); font-size: 11px; font-weight: 600; }
|
|
139
|
+
.tok .k { font-size: 11px; font-weight: 600; line-height: 1.1; }
|
|
140
|
+
.tok .h { font-family: var(--font-mono); font-size: 10px; color: var(--ink-faint); line-height: 1.1; }
|
|
141
|
+
|
|
142
|
+
/* Brand assets */
|
|
143
|
+
.assets { display: grid; gap: 16px; grid-template-columns: 1fr; }
|
|
144
|
+
@media (min-width: 620px) { .assets { grid-template-columns: 1fr 1fr; } }
|
|
145
|
+
@media (min-width: 920px) { .assets { grid-template-columns: 1fr 1fr 1fr; } }
|
|
146
|
+
.asset { border: 1px solid var(--line-soft); border-radius: 12px; background: var(--surface); overflow: hidden; text-decoration: none; color: inherit; display: flex; flex-direction: column; transition: border-color .14s ease, transform .14s ease; }
|
|
147
|
+
.asset:hover { border-color: var(--accent); transform: translateY(-1px); }
|
|
148
|
+
.asset.pending { opacity: .55; pointer-events: none; }
|
|
149
|
+
.asset-frame { aspect-ratio: 16 / 10; background: var(--line-soft); position: relative; overflow: hidden; }
|
|
150
|
+
.asset-frame iframe { position: absolute; top: 0; left: 0; width: 200%; height: 200%; border: 0; transform: scale(.5); transform-origin: top left; pointer-events: none; background: #fff; }
|
|
151
|
+
.asset-meta { padding: 11px 13px; }
|
|
152
|
+
.asset-name { font-size: 13px; font-weight: 600; display: flex; align-items: center; justify-content: space-between; gap: 8px; }
|
|
153
|
+
.asset-name .open { font-size: 11px; color: var(--accent); }
|
|
154
|
+
.asset-desc { font-size: 11px; color: var(--ink-faint); margin-top: 2px; }
|
|
155
|
+
|
|
156
|
+
/* Hero banner — surfaces the first harvested brand image for visual richness */
|
|
157
|
+
.kit-hero { margin-top: 22px; border: 1px solid var(--line-soft); border-radius: var(--radius); overflow: hidden; background: var(--line-soft); aspect-ratio: 16 / 5; box-shadow: 0 1px 2px rgba(0,0,0,.03); }
|
|
158
|
+
.kit-hero img { width: 100%; height: 100%; object-fit: cover; display: block; }
|
|
159
|
+
|
|
160
|
+
/* Font specimen tiles — a big "Ag" glyph per real family, in its own face */
|
|
161
|
+
.fonts { display: grid; gap: 12px; grid-template-columns: repeat(2, 1fr); margin-bottom: 14px; }
|
|
162
|
+
@media (min-width: 560px) { .fonts { grid-template-columns: repeat(3, 1fr); } }
|
|
163
|
+
.font-tile { border: 1px solid var(--line-soft); border-radius: 12px; background: var(--surface); overflow: hidden; box-shadow: 0 1px 2px rgba(0,0,0,.03); }
|
|
164
|
+
.font-tile .ag { display: flex; align-items: center; justify-content: center; height: 104px; font-size: 56px; line-height: 1; color: var(--ink); background: var(--line-soft); }
|
|
165
|
+
.font-tile .ft-meta { padding: 9px 11px 11px; }
|
|
166
|
+
.font-tile .ft-name { font-size: 13px; font-weight: 600; line-height: 1.2; }
|
|
167
|
+
.font-tile .ft-role { font-size: 11px; color: var(--ink-faint); margin-top: 1px; text-transform: uppercase; letter-spacing: .06em; }
|
|
168
|
+
|
|
169
|
+
/* Images gallery — a thumbnail grid of representative brand imagery */
|
|
170
|
+
.gallery { display: grid; gap: 12px; grid-template-columns: repeat(2, 1fr); }
|
|
171
|
+
@media (min-width: 560px) { .gallery { grid-template-columns: repeat(3, 1fr); } }
|
|
172
|
+
@media (min-width: 920px) { .gallery { grid-template-columns: repeat(4, 1fr); } }
|
|
173
|
+
.shot { border: 1px solid var(--line-soft); border-radius: 12px; background: var(--surface); overflow: hidden; box-shadow: 0 1px 2px rgba(0,0,0,.03); transition: border-color .14s ease, transform .14s ease; }
|
|
174
|
+
.shot:hover { border-color: var(--accent); transform: translateY(-1px); }
|
|
175
|
+
.shot-frame { aspect-ratio: 4 / 3; background: var(--line-soft); }
|
|
176
|
+
.shot-frame img { width: 100%; height: 100%; object-fit: cover; display: block; }
|
|
177
|
+
.shot-meta { padding: 8px 10px 10px; }
|
|
178
|
+
.shot-cap { font-size: 12px; font-weight: 500; line-height: 1.25; }
|
|
179
|
+
.shot-kind { font-size: 11px; color: var(--ink-faint); margin-top: 1px; }
|
|
180
|
+
.shot { cursor: pointer; }
|
|
181
|
+
.shot:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
|
|
182
|
+
.gallery-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
|
|
183
|
+
.view-all { border: 1px solid var(--line); background: var(--surface); color: var(--ink-mute); border-radius: 999px; padding: 4px 12px; font-size: 12px; font-weight: 500; cursor: pointer; font-family: inherit; transition: border-color .2s cubic-bezier(.23,1,.32,1), color .2s cubic-bezier(.23,1,.32,1); }
|
|
184
|
+
.view-all:hover { border-color: var(--accent); color: var(--accent); }
|
|
185
|
+
|
|
186
|
+
/* Brand-asset tiles are clickable (open an in-page preview modal). */
|
|
187
|
+
.asset[data-asset-href] { cursor: pointer; }
|
|
188
|
+
.asset:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
|
|
189
|
+
|
|
190
|
+
/* In-page preview overlays — the kit runs in a sandboxed iframe (no top
|
|
191
|
+
navigation), so image enlargement and asset previews happen as DOM
|
|
192
|
+
overlays. Ease-out cubic-bezier(.23,1,.32,1); enter ~200ms / exit ~140ms. */
|
|
193
|
+
.ov { position: fixed; inset: 0; z-index: 60; display: none; }
|
|
194
|
+
.ov.open { display: block; }
|
|
195
|
+
.ov-back { position: absolute; inset: 0; background: rgba(20,19,17,.74); opacity: 0; transition: opacity .14s cubic-bezier(.23,1,.32,1); }
|
|
196
|
+
.ov.in .ov-back { opacity: 1; transition-duration: .2s; }
|
|
197
|
+
.ov-panel { position: absolute; opacity: 0; transform: scale(.92); transition: opacity .14s cubic-bezier(.23,1,.32,1), transform .14s cubic-bezier(.23,1,.32,1); }
|
|
198
|
+
.ov.in .ov-panel { opacity: 1; transform: scale(1); transition-duration: .2s; }
|
|
199
|
+
.ov-close { position: absolute; top: 14px; right: 16px; z-index: 2; width: 36px; height: 36px; display: flex; align-items: center; justify-content: center; border: 0; border-radius: 999px; background: rgba(255,255,255,.92); color: #1a1a18; font-size: 22px; line-height: 1; cursor: pointer; box-shadow: 0 2px 10px rgba(0,0,0,.22); }
|
|
200
|
+
.ov-close:hover { background: #fff; }
|
|
201
|
+
.icon-x { border: 0; background: transparent; font-size: 22px; line-height: 1; cursor: pointer; color: var(--ink-mute); padding: 4px 9px; border-radius: 8px; }
|
|
202
|
+
.icon-x:hover { background: var(--line-soft); color: var(--ink); }
|
|
203
|
+
|
|
204
|
+
/* Lightbox */
|
|
205
|
+
#ov-light { z-index: 70; }
|
|
206
|
+
#ov-light .ov-panel { top: 50%; left: 50%; transform: translate(-50%,-50%) scale(.92); display: flex; flex-direction: column; align-items: center; }
|
|
207
|
+
#ov-light.in .ov-panel { transform: translate(-50%,-50%) scale(1); }
|
|
208
|
+
#ov-light img { max-width: 92vw; max-height: 82vh; object-fit: contain; border-radius: 12px; box-shadow: 0 12px 48px rgba(0,0,0,.5); background: #fff; }
|
|
209
|
+
.light-cap { margin-top: 12px; color: rgba(255,255,255,.92); font-size: 13px; text-align: center; max-width: 80vw; }
|
|
210
|
+
.light-nav { position: absolute; top: 50%; transform: translateY(-50%); width: 44px; height: 44px; border: 0; border-radius: 999px; background: rgba(255,255,255,.88); color: #1a1a18; font-size: 24px; cursor: pointer; display: flex; align-items: center; justify-content: center; box-shadow: 0 2px 12px rgba(0,0,0,.28); }
|
|
211
|
+
.light-nav:hover { background: #fff; }
|
|
212
|
+
.light-prev { left: 3vw; }
|
|
213
|
+
.light-next { right: 3vw; }
|
|
214
|
+
|
|
215
|
+
/* Masonry "view all" modal */
|
|
216
|
+
#ov-grid .ov-panel { top: 4vh; left: 50%; transform: translate(-50%,0) scale(.96); width: min(980px, 92vw); height: 92vh; background: var(--paper); border-radius: var(--radius); overflow: hidden; display: flex; flex-direction: column; box-shadow: 0 16px 60px rgba(0,0,0,.42); }
|
|
217
|
+
#ov-grid.in .ov-panel { transform: translate(-50%,0) scale(1); }
|
|
218
|
+
.grid-bar { display: flex; align-items: center; justify-content: space-between; padding: 14px 20px; border-bottom: 1px solid var(--line); }
|
|
219
|
+
.grid-bar h3 { margin: 0; font-family: var(--font-display); font-size: 18px; }
|
|
220
|
+
.grid-scroll { overflow-y: auto; padding: 16px 20px 28px; }
|
|
221
|
+
.masonry { columns: 2; column-gap: 12px; }
|
|
222
|
+
@media (min-width: 560px) { .masonry { columns: 3; } }
|
|
223
|
+
@media (min-width: 860px) { .masonry { columns: 4; } }
|
|
224
|
+
.masonry .m-item { break-inside: avoid; margin: 0 0 12px; border-radius: 10px; overflow: hidden; border: 1px solid var(--line-soft); background: var(--surface); cursor: pointer; transition: transform .2s cubic-bezier(.23,1,.32,1); }
|
|
225
|
+
.masonry .m-item:hover { transform: translateY(-2px); }
|
|
226
|
+
.masonry .m-item img { width: 100%; display: block; }
|
|
227
|
+
|
|
228
|
+
/* Asset preview modal */
|
|
229
|
+
#ov-asset .ov-panel { top: 4vh; left: 50%; transform: translate(-50%,0) scale(.96); width: min(1120px, 94vw); height: 92vh; background: #fff; border-radius: var(--radius); overflow: hidden; display: flex; flex-direction: column; box-shadow: 0 16px 60px rgba(0,0,0,.42); }
|
|
230
|
+
#ov-asset.in .ov-panel { transform: translate(-50%,0) scale(1); }
|
|
231
|
+
.asset-bar { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 12px 18px; border-bottom: 1px solid var(--line); background: var(--surface); }
|
|
232
|
+
.asset-bar .ab-title { font-size: 14px; font-weight: 600; }
|
|
233
|
+
.asset-bar .ab-sub { font-size: 12px; color: var(--ink-faint); margin-left: 8px; font-weight: 400; }
|
|
234
|
+
.asset-modal-frame { flex: 1; width: 100%; border: 0; display: block; background: #fff; }
|
|
235
|
+
|
|
236
|
+
/* skeleton */
|
|
237
|
+
.skel { background: linear-gradient(90deg, var(--line-soft) 25%, #f6f5ef 37%, var(--line-soft) 63%); background-size: 400% 100%; animation: shimmer 1.4s ease infinite; border-radius: 8px; }
|
|
238
|
+
@keyframes shimmer { 0% { background-position: 100% 0; } 100% { background-position: -100% 0; } }
|
|
239
|
+
.skel-line { height: 12px; margin-top: 8px; }
|
|
240
|
+
.muted { color: var(--ink-faint); font-size: 13px; }
|
|
241
|
+
</style>
|
|
242
|
+
</head>
|
|
243
|
+
<body>
|
|
244
|
+
<div class="wrap" id="root"></div>
|
|
245
|
+
<script>
|
|
246
|
+
(function () {
|
|
247
|
+
function payload() {
|
|
248
|
+
var el = document.getElementById('od-brand-payload');
|
|
249
|
+
try { return JSON.parse(el && el.textContent ? el.textContent : '{}'); }
|
|
250
|
+
catch (e) { return {}; }
|
|
251
|
+
}
|
|
252
|
+
function esc(s) {
|
|
253
|
+
return String(s == null ? '' : s).replace(/[&<>"']/g, function (c) {
|
|
254
|
+
return { '&':'&','<':'<','>':'>','"':'"',"'":''' }[c];
|
|
255
|
+
});
|
|
256
|
+
}
|
|
257
|
+
function arr(v) { return Array.isArray(v) ? v : []; }
|
|
258
|
+
function role(brand, r, fb) {
|
|
259
|
+
var c = arr(brand.colors).find(function (x) { return x && x.role === r; });
|
|
260
|
+
return c && c.hex ? c.hex : fb;
|
|
261
|
+
}
|
|
262
|
+
function isLight(hex) {
|
|
263
|
+
if (!/^#[0-9a-fA-F]{6}$/.test(hex || '')) return true;
|
|
264
|
+
var r = parseInt(hex.slice(1,3),16), g = parseInt(hex.slice(3,5),16), b = parseInt(hex.slice(5,7),16);
|
|
265
|
+
return (r*0.299 + g*0.587 + b*0.114) > 150;
|
|
266
|
+
}
|
|
267
|
+
function fontStack(spec) {
|
|
268
|
+
var fams = [spec && spec.family].concat(arr(spec && spec.fallbacks)).filter(Boolean);
|
|
269
|
+
if (!fams.length) fams = ['ui-sans-serif','system-ui','sans-serif'];
|
|
270
|
+
return fams.map(function (f) { return /\s/.test(f) ? '"' + f + '"' : f; }).join(', ');
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
var data = payload();
|
|
274
|
+
var brand = data.brand || {};
|
|
275
|
+
var status = data.status || 'extracting';
|
|
276
|
+
var assets = arr(data.assets);
|
|
277
|
+
var extracting = status === 'extracting';
|
|
278
|
+
|
|
279
|
+
var colors = arr(brand.colors);
|
|
280
|
+
var bg = role(brand, 'background', '#ffffff');
|
|
281
|
+
var fg = role(brand, 'foreground', '#1a1a18');
|
|
282
|
+
var muted = role(brand, 'muted', '#57564f');
|
|
283
|
+
var accent = role(brand, 'accent', '#c96442');
|
|
284
|
+
|
|
285
|
+
// Apply brand accent/ink to the page chrome so the kit feels on-brand.
|
|
286
|
+
document.documentElement.style.setProperty('--accent', accent);
|
|
287
|
+
|
|
288
|
+
var typo = brand.typography || {};
|
|
289
|
+
var googleLinks = [typo.display, typo.body, typo.mono]
|
|
290
|
+
.map(function (s) { return s && s.googleFontsUrl; })
|
|
291
|
+
.filter(function (u, i, a) { return u && a.indexOf(u) === i; });
|
|
292
|
+
googleLinks.forEach(function (u) {
|
|
293
|
+
var l = document.createElement('link'); l.rel = 'stylesheet'; l.href = u; document.head.appendChild(l);
|
|
294
|
+
});
|
|
295
|
+
|
|
296
|
+
function sectionTitle(t) { return '<h2 class="sec-title">' + esc(t) + '</h2>'; }
|
|
297
|
+
|
|
298
|
+
function logoHtml() {
|
|
299
|
+
// Resilient candidate list: primary first when present, otherwise fall back
|
|
300
|
+
// to the alternates so a populated `alternates` still renders a real mark.
|
|
301
|
+
// De-dupe so the primary doesn't double up as a thumbnail.
|
|
302
|
+
var primary = brand.logo && brand.logo.primary;
|
|
303
|
+
var cands = [primary].concat(arr(brand.logo && brand.logo.alternates))
|
|
304
|
+
.filter(Boolean)
|
|
305
|
+
.filter(function (c, i, a) { return a.indexOf(c) === i; });
|
|
306
|
+
if (!cands.length) {
|
|
307
|
+
return '<div class="logo-empty">' + (extracting
|
|
308
|
+
? '<div class="skel" style="width:60%;height:48px"></div><span class="muted">Looking for a logo…</span>'
|
|
309
|
+
: 'No logo found') + '</div>';
|
|
310
|
+
}
|
|
311
|
+
var thumbs = cands.length > 1 ? '<div class="logo-thumbs">' + cands.map(function (c, i) {
|
|
312
|
+
return '<button class="logo-thumb' + (i===0?' active':'') + '" data-src="' + esc(c) + '" style="background:' + esc(bg) + '"><img src="' + esc(c) + '" alt=""></button>';
|
|
313
|
+
}).join('') + '</div>' : '';
|
|
314
|
+
var notes = brand.logo && brand.logo.notes ? '<p class="logo-notes">' + esc(brand.logo.notes) + '</p>' : '';
|
|
315
|
+
return '<div class="logo-stage" id="logo-stage" style="background:' + esc(bg) + '">' +
|
|
316
|
+
'<img id="logo-img" src="' + esc(cands[0]) + '" alt="' + esc(brand.name || 'logo') + '"></div>' + thumbs + notes;
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
// Big "Ag" specimen tile per real family (display / body / mono), each set in
|
|
320
|
+
// its own face via the injected @font-face / googleFontsUrl — matches the
|
|
321
|
+
// Lovart 字体 tiles. Empty until at least one family is known.
|
|
322
|
+
function fontTilesHtml() {
|
|
323
|
+
var tiles = [
|
|
324
|
+
{ role: 'Display', spec: typo.display },
|
|
325
|
+
{ role: 'Body', spec: typo.body },
|
|
326
|
+
];
|
|
327
|
+
if (typo.mono) tiles.push({ role: 'Mono', spec: typo.mono });
|
|
328
|
+
tiles = tiles.filter(function (t) { return t.spec && t.spec.family; });
|
|
329
|
+
if (!tiles.length) return '';
|
|
330
|
+
return '<div class="fonts">' + tiles.map(function (t) {
|
|
331
|
+
return '<div class="font-tile">' +
|
|
332
|
+
'<div class="ag" style="font-family:' + fontStack(t.spec) + '">Ag</div>' +
|
|
333
|
+
'<div class="ft-meta"><div class="ft-name">' + esc(t.spec.family) + '</div>' +
|
|
334
|
+
'<div class="ft-role">' + esc(t.role) + '</div></div></div>';
|
|
335
|
+
}).join('') + '</div>';
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
function imagerySamples() {
|
|
339
|
+
return arr(brand.imagery && brand.imagery.samples).filter(function (s) { return s && s.file; });
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
// Thumbnail grid of representative imagery harvested from the site. Relative
|
|
343
|
+
// `imagery/<file>` paths resolve under the FileViewer raw URL. Every thumb is
|
|
344
|
+
// clickable to open the lightbox; a "View all" entry opens a masonry modal
|
|
345
|
+
// with the full set. Empty (so the text-only imagery card stays) when no
|
|
346
|
+
// samples were saved.
|
|
347
|
+
function galleryHtml() {
|
|
348
|
+
var samples = imagerySamples();
|
|
349
|
+
if (!samples.length) return '';
|
|
350
|
+
var viewAll = samples.length > 6
|
|
351
|
+
? '<button class="view-all" id="gallery-view-all" type="button">View all (' + samples.length + ') →</button>'
|
|
352
|
+
: '';
|
|
353
|
+
return '<section class="sec">' +
|
|
354
|
+
'<div class="gallery-head"><h2 class="sec-title" style="margin:0">Images</h2>' + viewAll + '</div>' +
|
|
355
|
+
'<div class="gallery">' + samples.map(function (s, i) {
|
|
356
|
+
var cap = s.caption || s.kind || '';
|
|
357
|
+
var sub = (s.caption && s.kind) ? s.kind : '';
|
|
358
|
+
var meta = cap ? '<div class="shot-meta"><div class="shot-cap">' + esc(cap) + '</div>' +
|
|
359
|
+
(sub ? '<div class="shot-kind">' + esc(sub) + '</div>' : '') + '</div>' : '';
|
|
360
|
+
return '<div class="shot" data-idx="' + i + '" tabindex="0" role="button" aria-label="' + esc(cap || 'Image') + '"><div class="shot-frame">' +
|
|
361
|
+
'<img src="' + esc(s.file) + '" alt="' + esc(cap || brand.name || '') + '" loading="lazy"></div>' + meta + '</div>';
|
|
362
|
+
}).join('') + '</div></section>';
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
// Optional hero band: surfaces the first harvested image for visual richness.
|
|
366
|
+
function heroHtml() {
|
|
367
|
+
var samples = imagerySamples();
|
|
368
|
+
if (!samples.length) return '';
|
|
369
|
+
return '<div class="kit-hero"><img src="' + esc(samples[0].file) + '" alt="' + esc(brand.name || '') + '" loading="lazy"></div>';
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
function typeHtml() {
|
|
373
|
+
var rows = [
|
|
374
|
+
{ label: 'Display', spec: typo.display, sample: brand.name || 'Aa', size: '40px', weight: 600, color: fg },
|
|
375
|
+
{ label: 'Body', spec: typo.body, sample: brand.tagline || brand.description || 'The quick brown fox jumps over the lazy dog.', size: '17px', weight: 400, color: muted },
|
|
376
|
+
];
|
|
377
|
+
if (typo.mono) rows.push({ label: 'Mono', spec: typo.mono, sample: 'const brand = await extract(url);', size: '14px', weight: 400, color: fg });
|
|
378
|
+
if (!typo.display && !typo.body) {
|
|
379
|
+
return '<div class="type-row"><div class="skel skel-line" style="width:50%"></div><div class="skel" style="height:34px;margin-top:10px;width:70%"></div></div>';
|
|
380
|
+
}
|
|
381
|
+
return rows.map(function (r) {
|
|
382
|
+
var spec = r.spec || {};
|
|
383
|
+
var note = spec.googleFontsUrl ? '' : ' <span class="dim">· proprietary, shown via fallback</span>';
|
|
384
|
+
var weights = arr(spec.weights).length ? ' · ' + arr(spec.weights).join('/') : '';
|
|
385
|
+
return '<div class="type-row"><div class="type-meta">' +
|
|
386
|
+
'<span class="type-label">' + esc(r.label) + '</span>' +
|
|
387
|
+
'<span class="type-font">' + esc(spec.family || '—') + esc(weights) + note + '</span></div>' +
|
|
388
|
+
'<p class="type-sample" style="font-family:' + fontStack(spec) + ';font-size:' + r.size + ';font-weight:' + r.weight + ';color:' + esc(r.color) + '">' + esc(r.sample) + '</p></div>';
|
|
389
|
+
}).join('');
|
|
390
|
+
}
|
|
391
|
+
|
|
392
|
+
function paletteHtml() {
|
|
393
|
+
if (!colors.length) {
|
|
394
|
+
var sk = '';
|
|
395
|
+
for (var i = 0; i < 7; i++) sk += '<div class="swatch"><div class="skel" style="height:92px"></div><div class="swatch-body"><div class="skel skel-line" style="width:70%"></div></div></div>';
|
|
396
|
+
return '<div class="palette">' + sk + '</div>';
|
|
397
|
+
}
|
|
398
|
+
return '<div class="palette">' + colors.map(function (c) {
|
|
399
|
+
var light = isLight(c.hex);
|
|
400
|
+
return '<div class="swatch"><div class="swatch-chip" style="background:' + esc(c.hex) + '">' +
|
|
401
|
+
'<span class="hex" style="color:' + (light ? 'rgba(0,0,0,.65)' : 'rgba(255,255,255,.9)') + '">' + esc(c.hex) + '</span></div>' +
|
|
402
|
+
'<div class="swatch-body"><div class="swatch-name">' + esc(c.name || c.role) + '</div>' +
|
|
403
|
+
'<div class="swatch-role">' + esc(c.role || '') + '</div>' +
|
|
404
|
+
(c.usage ? '<div class="swatch-usage">' + esc(c.usage) + '</div>' : '') + '</div></div>';
|
|
405
|
+
}).join('') + '</div>';
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
function voiceHtml() {
|
|
409
|
+
var v = brand.voice || {};
|
|
410
|
+
if (!arr(v.adjectives).length && !v.tone) {
|
|
411
|
+
return '<div class="card"><div class="skel skel-line" style="width:40%"></div><div class="skel skel-line" style="width:85%"></div><div class="skel skel-line" style="width:75%"></div></div>';
|
|
412
|
+
}
|
|
413
|
+
var chips = arr(v.adjectives).map(function (a) {
|
|
414
|
+
return '<span class="chip" style="background:' + esc(accent) + '1f;color:' + esc(accent) + '">' + esc(a) + '</span>';
|
|
415
|
+
}).join('');
|
|
416
|
+
var pillars = arr(v.messagingPillars).length ? '<ul class="pillars">' + arr(v.messagingPillars).map(function (p) {
|
|
417
|
+
return '<li><span style="color:' + esc(accent) + '">—</span><span>' + esc(p) + '</span></li>';
|
|
418
|
+
}).join('') + '</ul>' : '';
|
|
419
|
+
var vocab = (v.vocabulary && (arr(v.vocabulary.use).length || arr(v.vocabulary.avoid).length))
|
|
420
|
+
? '<div class="vocab"><div class="use"><div class="k">Use</div><div class="v">' + esc(arr(v.vocabulary.use).join(' · ')) + '</div></div>' +
|
|
421
|
+
'<div class="avoid"><div class="k">Avoid</div><div class="v">' + esc(arr(v.vocabulary.avoid).join(' · ')) + '</div></div></div>' : '';
|
|
422
|
+
return '<div class="card"><div class="chips">' + chips + '</div>' +
|
|
423
|
+
(v.tone ? '<p class="voice-tone">' + esc(v.tone) + '</p>' : '') + pillars + vocab + '</div>';
|
|
424
|
+
}
|
|
425
|
+
|
|
426
|
+
function imageryHtml() {
|
|
427
|
+
var im = brand.imagery || {};
|
|
428
|
+
var lay = brand.layout || {};
|
|
429
|
+
if (!im.style && !arr(lay.postureRules).length) {
|
|
430
|
+
return '<div class="card"><div class="skel skel-line" style="width:90%"></div><div class="skel skel-line" style="width:70%"></div></div>';
|
|
431
|
+
}
|
|
432
|
+
var posture = arr(lay.postureRules).length ? '<div class="posture"><div class="type-label">Layout posture</div><ul>' +
|
|
433
|
+
arr(lay.postureRules).map(function (r) { return '<li>' + esc(r) + '</li>'; }).join('') + '</ul></div>' : '';
|
|
434
|
+
return '<div class="card imagery">' +
|
|
435
|
+
(im.style ? '<p>' + esc(im.style) + '</p>' : '') +
|
|
436
|
+
(arr(im.subjects).length ? '<p><span class="k">Subjects:</span> ' + esc(arr(im.subjects).join(', ')) + '</p>' : '') +
|
|
437
|
+
(im.treatment ? '<p><span class="k">Treatment:</span> ' + esc(im.treatment) + '</p>' : '') +
|
|
438
|
+
(arr(im.avoid).length ? '<p><span class="k" style="color:var(--err)">Avoid:</span> ' + esc(arr(im.avoid).join(', ')) + '</p>' : '') +
|
|
439
|
+
posture + '</div>';
|
|
440
|
+
}
|
|
441
|
+
|
|
442
|
+
function tokenChip(label, hex) {
|
|
443
|
+
return '<div class="tok"><span class="sw" style="background:' + esc(hex) + '"></span>' +
|
|
444
|
+
'<span><span class="k">' + esc(label) + '</span><span class="h">' + esc(hex) + '</span></span></div>';
|
|
445
|
+
}
|
|
446
|
+
function valueChip(label, value) {
|
|
447
|
+
return '<div class="tok"><span class="val">' + esc(value) + '</span><span class="k">' + esc(label) + '</span></div>';
|
|
448
|
+
}
|
|
449
|
+
|
|
450
|
+
function designSystemHtml() {
|
|
451
|
+
var sys = data.system;
|
|
452
|
+
if (!sys || !sys.kitHref) return '';
|
|
453
|
+
var t = sys.tokens || {};
|
|
454
|
+
var tokens = '';
|
|
455
|
+
if (t.colorPrimary) {
|
|
456
|
+
tokens = '<div class="ds-tokens">' +
|
|
457
|
+
tokenChip('colorPrimary', t.colorPrimary) +
|
|
458
|
+
(t.colorPrimaryBg ? tokenChip('colorPrimaryBg', t.colorPrimaryBg) : '') +
|
|
459
|
+
(t.colorPrimaryHover ? tokenChip('colorPrimaryHover', t.colorPrimaryHover) : '') +
|
|
460
|
+
(t.colorPrimaryActive ? tokenChip('colorPrimaryActive', t.colorPrimaryActive) : '') +
|
|
461
|
+
(t.fontSize != null ? valueChip('fontSize', String(t.fontSize)) : '') +
|
|
462
|
+
(t.borderRadius != null ? valueChip('borderRadius', String(t.borderRadius)) : '') +
|
|
463
|
+
'</div>';
|
|
464
|
+
}
|
|
465
|
+
var themes = arr(sys.themes).length ? arr(sys.themes).join(' · ') : 'default · dark · compact';
|
|
466
|
+
var openLink = sys.indexHref ? '<a class="btn" href="' + esc(sys.indexHref) + '" target="_top">Open full system ↗</a>' : '';
|
|
467
|
+
return '<section class="sec"><div class="ds-head"><div>' +
|
|
468
|
+
'<h2 class="sec-title">Design system</h2>' +
|
|
469
|
+
'<p class="ds-sub">Deterministic light / dark / compact tokens and a component kit derived from this one brand seed.</p>' +
|
|
470
|
+
'</div>' + openLink + '</div>' +
|
|
471
|
+
'<div class="ds-frame-wrap"><div class="ds-bar">' +
|
|
472
|
+
'<div class="ds-tabs" id="ds-tabs">' +
|
|
473
|
+
'<button class="ds-tab active" data-kit="' + esc(sys.kitHref) + '">Light</button>' +
|
|
474
|
+
(sys.kitDarkHref ? '<button class="ds-tab" data-kit="' + esc(sys.kitDarkHref) + '">Dark</button>' : '') +
|
|
475
|
+
'</div>' +
|
|
476
|
+
'<span class="ds-cap">system/kit.html · themes: ' + esc(themes) + '</span>' +
|
|
477
|
+
'</div>' +
|
|
478
|
+
'<iframe id="ds-frame" class="ds-frame" src="' + esc(sys.kitHref) + '" loading="lazy" sandbox="" title="Component kit"></iframe></div>' +
|
|
479
|
+
tokens + '</section>';
|
|
480
|
+
}
|
|
481
|
+
|
|
482
|
+
function assetsHtml() {
|
|
483
|
+
if (!assets.length) return '';
|
|
484
|
+
return '<section class="sec">' + sectionTitle('Brand assets') +
|
|
485
|
+
'<p class="muted" style="margin:-6px 0 14px">' + (extracting
|
|
486
|
+
? 'Generated once extraction finishes — click any tile to preview the full page.'
|
|
487
|
+
: 'Click any tile to preview the full page; everything is colored from this one brand.') + '</p>' +
|
|
488
|
+
'<div class="assets">' + assets.map(function (a) {
|
|
489
|
+
var pending = !a.available;
|
|
490
|
+
var inner = pending
|
|
491
|
+
? '<div class="asset-frame"><div class="skel" style="position:absolute;inset:0"></div></div>'
|
|
492
|
+
: '<div class="asset-frame"><iframe src="' + esc(a.href) + '" loading="lazy" tabindex="-1" aria-hidden="true"></iframe></div>';
|
|
493
|
+
// Clicking a tile opens its full page in an in-page modal iframe — the
|
|
494
|
+
// kit is sandboxed with no top navigation, so a plain link cannot
|
|
495
|
+
// navigate. Data attributes carry what the modal needs.
|
|
496
|
+
var attrs = pending
|
|
497
|
+
? ''
|
|
498
|
+
: ' data-asset-href="' + esc(a.href) + '" data-asset-label="' + esc(a.label) +
|
|
499
|
+
'" data-asset-desc="' + esc(a.desc || '') + '" tabindex="0" role="button"';
|
|
500
|
+
return '<div class="asset' + (pending ? ' pending' : '') + '"' + attrs + '>' + inner +
|
|
501
|
+
'<div class="asset-meta"><div class="asset-name">' + esc(a.label) + (pending ? '' : '<span class="open">Preview →</span>') + '</div>' +
|
|
502
|
+
(a.desc ? '<div class="asset-desc">' + esc(a.desc) + '</div>' : '') + '</div></div>';
|
|
503
|
+
}).join('') + '</div></section>';
|
|
504
|
+
}
|
|
505
|
+
|
|
506
|
+
var systemHref = (data.system && data.system.indexHref) || null;
|
|
507
|
+
var brandMdHref = (data.brandMd && data.brandMd.href) || null;
|
|
508
|
+
|
|
509
|
+
var html = '' +
|
|
510
|
+
'<header class="kit-head"><div>' +
|
|
511
|
+
'<h1 class="kit-title" style="font-family:' + fontStack(typo.display || {}) + '">' + esc(brand.name || (data.host || 'Brand')) + '</h1>' +
|
|
512
|
+
(brand.tagline ? '<p class="kit-tagline">' + esc(brand.tagline) + '</p>' : '') +
|
|
513
|
+
(brand.sourceUrl ? '<a class="kit-source" href="' + esc(brand.sourceUrl) + '" target="_top">' + esc(brand.sourceUrl) + ' ↗</a>' : '') +
|
|
514
|
+
'</div><div class="head-actions">' +
|
|
515
|
+
'<span class="status-pill ' + (extracting ? 'extracting' : 'ready') + '"><span class="dot"></span>' + (extracting ? 'Extracting…' : 'Brand ready') + '</span>' +
|
|
516
|
+
(brandMdHref ? '<a class="btn" href="' + esc(brandMdHref) + '" target="_top">BRAND.md</a>' : '') +
|
|
517
|
+
(systemHref ? '<a class="btn" href="' + esc(systemHref) + '" target="_top">Design system ↗</a>' : '') +
|
|
518
|
+
'</div></header>' +
|
|
519
|
+
heroHtml() +
|
|
520
|
+
'<div class="sec grid-top"><section><h2 class="sec-title">Logo</h2>' + logoHtml() + '</section>' +
|
|
521
|
+
'<section><h2 class="sec-title">Typography</h2>' + fontTilesHtml() + typeHtml() + '</section></div>' +
|
|
522
|
+
'<section class="sec">' + sectionTitle('Palette') + paletteHtml() + '</section>' +
|
|
523
|
+
'<div class="sec grid-2"><section><h2 class="sec-title">Voice & tone</h2>' + voiceHtml() + '</section>' +
|
|
524
|
+
'<section><h2 class="sec-title">Imagery & layout</h2>' + imageryHtml() + '</section></div>' +
|
|
525
|
+
galleryHtml() +
|
|
526
|
+
designSystemHtml() +
|
|
527
|
+
assetsHtml();
|
|
528
|
+
|
|
529
|
+
document.getElementById('root').innerHTML = html;
|
|
530
|
+
|
|
531
|
+
// Logo thumbnail switcher.
|
|
532
|
+
var img = document.getElementById('logo-img');
|
|
533
|
+
Array.prototype.forEach.call(document.querySelectorAll('.logo-thumb'), function (b) {
|
|
534
|
+
b.addEventListener('click', function () {
|
|
535
|
+
if (img) img.src = b.getAttribute('data-src');
|
|
536
|
+
Array.prototype.forEach.call(document.querySelectorAll('.logo-thumb'), function (x) { x.classList.remove('active'); });
|
|
537
|
+
b.classList.add('active');
|
|
538
|
+
});
|
|
539
|
+
});
|
|
540
|
+
|
|
541
|
+
// Design-system Light/Dark kit toggle — swaps the iframe src in place.
|
|
542
|
+
var dsTabs = document.getElementById('ds-tabs');
|
|
543
|
+
var dsFrame = document.getElementById('ds-frame');
|
|
544
|
+
if (dsTabs && dsFrame) {
|
|
545
|
+
Array.prototype.forEach.call(dsTabs.querySelectorAll('.ds-tab'), function (b) {
|
|
546
|
+
b.addEventListener('click', function () {
|
|
547
|
+
dsFrame.src = b.getAttribute('data-kit');
|
|
548
|
+
Array.prototype.forEach.call(dsTabs.querySelectorAll('.ds-tab'), function (x) { x.classList.remove('active'); });
|
|
549
|
+
b.classList.add('active');
|
|
550
|
+
});
|
|
551
|
+
});
|
|
552
|
+
}
|
|
553
|
+
|
|
554
|
+
// ---- In-page preview overlays (lightbox / masonry / asset modal) ----
|
|
555
|
+
// The kit runs in a sandboxed iframe with no top-navigation, so enlarging an
|
|
556
|
+
// image and previewing a brand asset's full page must happen as in-page DOM
|
|
557
|
+
// overlays rather than real navigation.
|
|
558
|
+
var SAMPLES = imagerySamples();
|
|
559
|
+
var ovStack = [];
|
|
560
|
+
|
|
561
|
+
function mkOverlay(id) {
|
|
562
|
+
var ov = document.createElement('div');
|
|
563
|
+
ov.className = 'ov';
|
|
564
|
+
ov.id = id;
|
|
565
|
+
var back = document.createElement('div');
|
|
566
|
+
back.className = 'ov-back';
|
|
567
|
+
ov.appendChild(back);
|
|
568
|
+
back.addEventListener('click', function () { closeOverlay(ov); });
|
|
569
|
+
document.body.appendChild(ov);
|
|
570
|
+
return ov;
|
|
571
|
+
}
|
|
572
|
+
function openOverlay(ov) {
|
|
573
|
+
if (ovStack.indexOf(ov) === -1) ovStack.push(ov);
|
|
574
|
+
ov.classList.add('open');
|
|
575
|
+
// Two frames so the browser registers the pre-transition state first.
|
|
576
|
+
requestAnimationFrame(function () { requestAnimationFrame(function () { ov.classList.add('in'); }); });
|
|
577
|
+
}
|
|
578
|
+
function closeOverlay(ov) {
|
|
579
|
+
ov.classList.remove('in');
|
|
580
|
+
var i = ovStack.indexOf(ov);
|
|
581
|
+
if (i !== -1) ovStack.splice(i, 1);
|
|
582
|
+
setTimeout(function () { if (!ov.classList.contains('in')) ov.classList.remove('open'); }, 160);
|
|
583
|
+
}
|
|
584
|
+
document.addEventListener('keydown', function (e) {
|
|
585
|
+
if (e.key === 'Escape' && ovStack.length) closeOverlay(ovStack[ovStack.length - 1]);
|
|
586
|
+
});
|
|
587
|
+
|
|
588
|
+
// Lightbox: a single enlarged image with optional prev/next + caption.
|
|
589
|
+
var lightOv = null, lightImg = null, lightCap = null, lightIdx = 0;
|
|
590
|
+
function buildLight() {
|
|
591
|
+
if (lightOv) return;
|
|
592
|
+
lightOv = mkOverlay('ov-light');
|
|
593
|
+
var panel = document.createElement('div');
|
|
594
|
+
panel.className = 'ov-panel';
|
|
595
|
+
lightImg = document.createElement('img');
|
|
596
|
+
lightCap = document.createElement('div');
|
|
597
|
+
lightCap.className = 'light-cap';
|
|
598
|
+
panel.appendChild(lightImg);
|
|
599
|
+
panel.appendChild(lightCap);
|
|
600
|
+
lightOv.appendChild(panel);
|
|
601
|
+
var close = document.createElement('button');
|
|
602
|
+
close.className = 'ov-close';
|
|
603
|
+
close.type = 'button';
|
|
604
|
+
close.innerHTML = '×';
|
|
605
|
+
close.setAttribute('aria-label', 'Close');
|
|
606
|
+
close.addEventListener('click', function () { closeOverlay(lightOv); });
|
|
607
|
+
lightOv.appendChild(close);
|
|
608
|
+
if (SAMPLES.length > 1) {
|
|
609
|
+
var prev = document.createElement('button');
|
|
610
|
+
prev.className = 'light-nav light-prev';
|
|
611
|
+
prev.type = 'button';
|
|
612
|
+
prev.innerHTML = '\u2039';
|
|
613
|
+
prev.setAttribute('aria-label', 'Previous image');
|
|
614
|
+
prev.addEventListener('click', function (e) { e.stopPropagation(); showLight(lightIdx - 1); });
|
|
615
|
+
var next = document.createElement('button');
|
|
616
|
+
next.className = 'light-nav light-next';
|
|
617
|
+
next.type = 'button';
|
|
618
|
+
next.innerHTML = '\u203a';
|
|
619
|
+
next.setAttribute('aria-label', 'Next image');
|
|
620
|
+
next.addEventListener('click', function (e) { e.stopPropagation(); showLight(lightIdx + 1); });
|
|
621
|
+
lightOv.appendChild(prev);
|
|
622
|
+
lightOv.appendChild(next);
|
|
623
|
+
}
|
|
624
|
+
}
|
|
625
|
+
function showLight(idx) {
|
|
626
|
+
if (!SAMPLES.length) return;
|
|
627
|
+
buildLight();
|
|
628
|
+
lightIdx = (idx % SAMPLES.length + SAMPLES.length) % SAMPLES.length;
|
|
629
|
+
var s = SAMPLES[lightIdx];
|
|
630
|
+
lightImg.src = s.file;
|
|
631
|
+
lightImg.alt = s.caption || brand.name || '';
|
|
632
|
+
lightCap.textContent = s.caption || s.kind || '';
|
|
633
|
+
openOverlay(lightOv);
|
|
634
|
+
}
|
|
635
|
+
|
|
636
|
+
// Masonry "view all" modal: every image in a waterfall (column) layout.
|
|
637
|
+
var gridOv = null;
|
|
638
|
+
function buildGrid() {
|
|
639
|
+
if (gridOv) return;
|
|
640
|
+
gridOv = mkOverlay('ov-grid');
|
|
641
|
+
var panel = document.createElement('div');
|
|
642
|
+
panel.className = 'ov-panel';
|
|
643
|
+
var bar = document.createElement('div');
|
|
644
|
+
bar.className = 'grid-bar';
|
|
645
|
+
var h = document.createElement('h3');
|
|
646
|
+
h.textContent = 'All images · ' + SAMPLES.length;
|
|
647
|
+
var x = document.createElement('button');
|
|
648
|
+
x.className = 'icon-x';
|
|
649
|
+
x.type = 'button';
|
|
650
|
+
x.innerHTML = '×';
|
|
651
|
+
x.setAttribute('aria-label', 'Close');
|
|
652
|
+
x.addEventListener('click', function () { closeOverlay(gridOv); });
|
|
653
|
+
bar.appendChild(h);
|
|
654
|
+
bar.appendChild(x);
|
|
655
|
+
var scroll = document.createElement('div');
|
|
656
|
+
scroll.className = 'grid-scroll';
|
|
657
|
+
var mas = document.createElement('div');
|
|
658
|
+
mas.className = 'masonry';
|
|
659
|
+
SAMPLES.forEach(function (s, i) {
|
|
660
|
+
var item = document.createElement('div');
|
|
661
|
+
item.className = 'm-item';
|
|
662
|
+
var im = document.createElement('img');
|
|
663
|
+
im.src = s.file;
|
|
664
|
+
im.alt = s.caption || '';
|
|
665
|
+
im.loading = 'lazy';
|
|
666
|
+
item.appendChild(im);
|
|
667
|
+
item.addEventListener('click', function () { showLight(i); });
|
|
668
|
+
mas.appendChild(item);
|
|
669
|
+
});
|
|
670
|
+
scroll.appendChild(mas);
|
|
671
|
+
panel.appendChild(bar);
|
|
672
|
+
panel.appendChild(scroll);
|
|
673
|
+
gridOv.appendChild(panel);
|
|
674
|
+
}
|
|
675
|
+
function openGrid() { buildGrid(); openOverlay(gridOv); }
|
|
676
|
+
|
|
677
|
+
// Asset preview modal: the asset's full page in an iframe (relative src
|
|
678
|
+
// resolves under the kit's raw URL load).
|
|
679
|
+
var assetOv = null, assetFrame = null, assetTitle = null, assetSub = null;
|
|
680
|
+
function buildAsset() {
|
|
681
|
+
if (assetOv) return;
|
|
682
|
+
assetOv = mkOverlay('ov-asset');
|
|
683
|
+
var panel = document.createElement('div');
|
|
684
|
+
panel.className = 'ov-panel';
|
|
685
|
+
var bar = document.createElement('div');
|
|
686
|
+
bar.className = 'asset-bar';
|
|
687
|
+
var left = document.createElement('div');
|
|
688
|
+
assetTitle = document.createElement('span');
|
|
689
|
+
assetTitle.className = 'ab-title';
|
|
690
|
+
assetSub = document.createElement('span');
|
|
691
|
+
assetSub.className = 'ab-sub';
|
|
692
|
+
left.appendChild(assetTitle);
|
|
693
|
+
left.appendChild(assetSub);
|
|
694
|
+
var x = document.createElement('button');
|
|
695
|
+
x.className = 'icon-x';
|
|
696
|
+
x.type = 'button';
|
|
697
|
+
x.innerHTML = '×';
|
|
698
|
+
x.setAttribute('aria-label', 'Close');
|
|
699
|
+
x.addEventListener('click', function () { closeOverlay(assetOv); });
|
|
700
|
+
bar.appendChild(left);
|
|
701
|
+
bar.appendChild(x);
|
|
702
|
+
assetFrame = document.createElement('iframe');
|
|
703
|
+
assetFrame.className = 'asset-modal-frame';
|
|
704
|
+
assetFrame.title = 'Asset preview';
|
|
705
|
+
panel.appendChild(bar);
|
|
706
|
+
panel.appendChild(assetFrame);
|
|
707
|
+
assetOv.appendChild(panel);
|
|
708
|
+
}
|
|
709
|
+
function openAsset(href, label, desc) {
|
|
710
|
+
if (!href) return;
|
|
711
|
+
buildAsset();
|
|
712
|
+
assetTitle.textContent = label || 'Preview';
|
|
713
|
+
assetSub.textContent = desc || '';
|
|
714
|
+
assetFrame.src = href;
|
|
715
|
+
openOverlay(assetOv);
|
|
716
|
+
}
|
|
717
|
+
|
|
718
|
+
// Wire imagery thumbnails → lightbox (click + keyboard).
|
|
719
|
+
Array.prototype.forEach.call(document.querySelectorAll('.shot[data-idx]'), function (el) {
|
|
720
|
+
var idx = Number(el.getAttribute('data-idx')) || 0;
|
|
721
|
+
el.addEventListener('click', function () { showLight(idx); });
|
|
722
|
+
el.addEventListener('keydown', function (e) {
|
|
723
|
+
if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); showLight(idx); }
|
|
724
|
+
});
|
|
725
|
+
});
|
|
726
|
+
var viewAllBtn = document.getElementById('gallery-view-all');
|
|
727
|
+
if (viewAllBtn) viewAllBtn.addEventListener('click', openGrid);
|
|
728
|
+
|
|
729
|
+
// Wire brand-asset tiles → in-page full preview modal (click + keyboard).
|
|
730
|
+
Array.prototype.forEach.call(document.querySelectorAll('.asset[data-asset-href]'), function (el) {
|
|
731
|
+
var open = function () {
|
|
732
|
+
openAsset(el.getAttribute('data-asset-href'), el.getAttribute('data-asset-label'), el.getAttribute('data-asset-desc'));
|
|
733
|
+
};
|
|
734
|
+
el.addEventListener('click', open);
|
|
735
|
+
el.addEventListener('keydown', function (e) {
|
|
736
|
+
if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); open(); }
|
|
737
|
+
});
|
|
738
|
+
});
|
|
739
|
+
|
|
740
|
+
// While extraction is live, softly reload so the page fills in as the agent
|
|
741
|
+
// updates brand.json + re-runs `od brand preview`. Stops the moment the
|
|
742
|
+
// payload reports a ready brand. While a preview overlay is open the reload
|
|
743
|
+
// is deferred (re-armed) so it never yanks the lightbox / asset modal out
|
|
744
|
+
// from under the user mid-interaction.
|
|
745
|
+
if (extracting) {
|
|
746
|
+
var armReload = function () {
|
|
747
|
+
setTimeout(function () {
|
|
748
|
+
if (ovStack.length) { armReload(); return; }
|
|
749
|
+
try { location.reload(); } catch (e) {}
|
|
750
|
+
}, 3500);
|
|
751
|
+
};
|
|
752
|
+
armReload();
|
|
753
|
+
}
|
|
754
|
+
})();
|
|
755
|
+
</script>
|
|
756
|
+
</body>
|
|
757
|
+
</html>
|