constellai 0.3.2 → 0.3.4
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 -1
- package/.next/build-manifest.json +3 -3
- package/.next/prerender-manifest.json +3 -3
- package/.next/react-loadable-manifest.json +2 -2
- package/.next/server/app/(app)/activity/page.js +2 -2
- package/.next/server/app/(app)/activity/page.js.nft.json +1 -1
- package/.next/server/app/(app)/activity/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/agents/[handle]/page.js +2 -2
- package/.next/server/app/(app)/agents/[handle]/page.js.nft.json +1 -1
- package/.next/server/app/(app)/agents/[handle]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/code/page.js +2 -2
- package/.next/server/app/(app)/code/page.js.nft.json +1 -1
- package/.next/server/app/(app)/code/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/config/page.js +2 -2
- package/.next/server/app/(app)/config/page.js.nft.json +1 -1
- package/.next/server/app/(app)/config/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/costs/page.js +2 -2
- package/.next/server/app/(app)/costs/page.js.nft.json +1 -1
- package/.next/server/app/(app)/costs/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/cron/page.js +2 -2
- package/.next/server/app/(app)/cron/page.js.nft.json +1 -1
- package/.next/server/app/(app)/cron/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/dashboard/page.js +2 -2
- package/.next/server/app/(app)/dashboard/page.js.nft.json +1 -1
- package/.next/server/app/(app)/dashboard/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/design/page.js +13 -13
- package/.next/server/app/(app)/design/page.js.nft.json +1 -1
- package/.next/server/app/(app)/design/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/docs/[id]/page.js +2 -2
- package/.next/server/app/(app)/docs/[id]/page.js.nft.json +1 -1
- package/.next/server/app/(app)/docs/[id]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/docs/page.js +2 -2
- package/.next/server/app/(app)/docs/page.js.nft.json +1 -1
- package/.next/server/app/(app)/docs/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/github/page.js +1 -1
- package/.next/server/app/(app)/github/page.js.nft.json +1 -1
- package/.next/server/app/(app)/github/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/goals/page.js +2 -2
- package/.next/server/app/(app)/goals/page.js.nft.json +1 -1
- package/.next/server/app/(app)/goals/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/inbox/page.js +2 -2
- package/.next/server/app/(app)/inbox/page.js.nft.json +1 -1
- package/.next/server/app/(app)/inbox/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/knowledge/page.js +3 -3
- package/.next/server/app/(app)/knowledge/page.js.nft.json +1 -1
- package/.next/server/app/(app)/knowledge/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/models/page.js +2 -2
- package/.next/server/app/(app)/models/page.js.nft.json +1 -1
- package/.next/server/app/(app)/models/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/notifications/page.js +2 -2
- package/.next/server/app/(app)/notifications/page.js.nft.json +1 -1
- package/.next/server/app/(app)/notifications/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/org/page.js +4 -4
- package/.next/server/app/(app)/org/page.js.nft.json +1 -1
- package/.next/server/app/(app)/org/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/organizations/page.js +2 -2
- package/.next/server/app/(app)/organizations/page.js.nft.json +1 -1
- package/.next/server/app/(app)/organizations/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/page.js +3 -3
- package/.next/server/app/(app)/page.js.nft.json +1 -1
- package/.next/server/app/(app)/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/planner/page.js +2 -2
- package/.next/server/app/(app)/planner/page.js.nft.json +1 -1
- package/.next/server/app/(app)/planner/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/plugins/page.js +2 -2
- package/.next/server/app/(app)/plugins/page.js.nft.json +1 -1
- package/.next/server/app/(app)/plugins/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/pm/page.js +2 -2
- package/.next/server/app/(app)/pm/page.js.nft.json +1 -1
- package/.next/server/app/(app)/pm/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/prepare-deploy/page.js +2 -2
- package/.next/server/app/(app)/prepare-deploy/page.js.nft.json +1 -1
- package/.next/server/app/(app)/prepare-deploy/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/profile/page.js +2 -2
- package/.next/server/app/(app)/profile/page.js.nft.json +1 -1
- package/.next/server/app/(app)/profile/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/pulse/page.js +2 -2
- package/.next/server/app/(app)/pulse/page.js.nft.json +1 -1
- package/.next/server/app/(app)/pulse/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/reports/[id]/page.js +2 -2
- package/.next/server/app/(app)/reports/[id]/page.js.nft.json +1 -1
- package/.next/server/app/(app)/reports/[id]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/reports/page.js +3 -3
- package/.next/server/app/(app)/reports/page.js.nft.json +1 -1
- package/.next/server/app/(app)/reports/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/routines/page.js +2 -2
- package/.next/server/app/(app)/routines/page.js.nft.json +1 -1
- package/.next/server/app/(app)/routines/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/search/page.js +2 -2
- package/.next/server/app/(app)/search/page.js.nft.json +1 -1
- package/.next/server/app/(app)/search/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/security/page.js +2 -2
- package/.next/server/app/(app)/security/page.js.nft.json +1 -1
- package/.next/server/app/(app)/security/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/skills/page.js +2 -2
- package/.next/server/app/(app)/skills/page.js.nft.json +1 -1
- package/.next/server/app/(app)/skills/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/tasks/page.js +2 -2
- package/.next/server/app/(app)/tasks/page.js.nft.json +1 -1
- package/.next/server/app/(app)/tasks/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/test-dev/page.js +2 -2
- package/.next/server/app/(app)/test-dev/page.js.nft.json +1 -1
- package/.next/server/app/(app)/test-dev/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/update/page.js +3 -3
- package/.next/server/app/(app)/update/page.js.nft.json +1 -1
- package/.next/server/app/(app)/update/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(auth)/login/page.js +2 -2
- package/.next/server/app/(auth)/login/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(auth)/onboarding/page.js +1 -1
- package/.next/server/app/(auth)/onboarding/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/api/cron/tick/route.js +2 -2
- package/.next/server/app/api/sync/file/route.js +1 -1
- package/.next/server/app/api/telegram/poll/route.js +3 -3
- package/.next/server/app/api/v1/[[...path]]/route.js +1 -1
- package/.next/server/chunks/1249.js +5 -5
- package/.next/server/chunks/259.js +1 -1
- package/.next/server/chunks/2867.js +1 -1
- package/.next/server/chunks/2960.js +1 -1
- package/.next/server/chunks/319.js +1 -0
- package/.next/server/chunks/3234.js +1 -1
- package/.next/server/chunks/4828.js +1 -0
- package/.next/server/chunks/4979.js +2 -2
- package/.next/server/chunks/5697.js +1 -0
- package/.next/server/chunks/6151.js +12 -0
- package/.next/server/chunks/6431.js +1 -1
- package/.next/server/chunks/6798.js +21 -0
- package/.next/server/chunks/{3078.js → 6903.js} +15 -15
- package/.next/server/chunks/7589.js +1 -1
- package/.next/server/chunks/7989.js +1 -1
- package/.next/server/chunks/8486.js +4 -0
- package/.next/server/chunks/8561.js +1 -1
- package/.next/server/chunks/8823.js +1 -1
- package/.next/server/chunks/9783.js +1 -1
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.js +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/chunks/4353-12629098ed83e468.js +1 -0
- package/.next/static/chunks/4398-e798770ae782576f.js +1 -0
- package/.next/static/chunks/4428-09f7d473d9e33d59.js +1 -0
- package/.next/static/chunks/7457-c37382c6f4e115f8.js +4 -0
- package/.next/static/chunks/{7509.8d3cbebb5fbe6247.js → 7509.721cd47a931c5518.js} +1 -1
- package/.next/static/chunks/{8370-4a29b1affcb7dc68.js → 8370-6da6aa10d687b8ae.js} +2 -2
- package/.next/static/chunks/9690-00ad96a74abac075.js +1 -0
- package/.next/static/chunks/app/(app)/activity/{page-02fbf7cf46282feb.js → page-09bc1c776962737c.js} +1 -1
- package/.next/static/chunks/app/(app)/agents/[handle]/page-b11e5f8f25fb2f88.js +1 -0
- package/.next/static/chunks/app/(app)/code/{page-8f8ae22136752631.js → page-ff6925db6e10e3cc.js} +1 -1
- package/.next/static/chunks/app/(app)/config/page-4df2facd9c81adb5.js +1 -0
- package/.next/static/chunks/app/(app)/costs/{page-aadb60fb329974f3.js → page-c0a07c0283731a8c.js} +1 -1
- package/.next/static/chunks/app/(app)/cron/{page-0219c7a0530ad628.js → page-662e6e1a25b14025.js} +1 -1
- package/.next/static/chunks/app/(app)/dashboard/page-e6f62eaecc0f9926.js +1 -0
- package/.next/static/chunks/app/(app)/design/{page-f889489d70e0e839.js → page-d457cdfa525acb85.js} +3 -3
- package/.next/static/chunks/app/(app)/docs/[id]/{page-f2e1f3d72634fb4b.js → page-4a1be0c9bd6ca402.js} +1 -1
- package/.next/static/chunks/app/(app)/docs/page-e6db758a14f57ec8.js +1 -0
- package/.next/static/chunks/app/(app)/github/{page-0e47c2c1c9c927e4.js → page-57bb812627d083a1.js} +1 -1
- package/.next/static/chunks/app/(app)/goals/page-81e1af515f78e13b.js +1 -0
- package/.next/static/chunks/app/(app)/inbox/page-0baef1b01009c832.js +12 -0
- package/.next/static/chunks/app/(app)/knowledge/page-eb1317bf385e31ed.js +1 -0
- package/.next/static/chunks/app/(app)/layout-dcd4f30b53cb140f.js +1 -0
- package/.next/static/chunks/app/(app)/models/page-d73965ae6ca317e8.js +1 -0
- package/.next/static/chunks/app/(app)/notifications/page-b3ff14483cb6694e.js +12 -0
- package/.next/static/chunks/app/(app)/org/{page-30bb71b216cc152e.js → page-3075b218dbc681ce.js} +2 -2
- package/.next/static/chunks/app/(app)/organizations/page-a6d35dbb21a61b7c.js +1 -0
- package/.next/static/chunks/app/(app)/page-c9e4fc0616a0083e.js +1 -0
- package/.next/static/chunks/app/(app)/planner/{page-5177b5fd72d529f4.js → page-809dd3edda4ada93.js} +1 -1
- package/.next/static/chunks/app/(app)/plugins/page-7e2aad1b702b5c88.js +1 -0
- package/.next/static/chunks/app/(app)/pm/page-709f9ac68ac98693.js +1 -0
- package/.next/static/chunks/app/(app)/prepare-deploy/page-f9609626153c2483.js +1 -0
- package/.next/static/chunks/app/(app)/profile/page-6d22c7bd0adb7a52.js +1 -0
- package/.next/static/chunks/app/(app)/pulse/{page-a0895a89c74c1d4c.js → page-f529917828ff4884.js} +1 -1
- package/.next/static/chunks/app/(app)/reports/[id]/{page-0219c7a0530ad628.js → page-662e6e1a25b14025.js} +1 -1
- package/.next/static/chunks/app/(app)/reports/page-5248735b18767054.js +1 -0
- package/.next/static/chunks/app/(app)/routines/{page-eaba9756a33d98a6.js → page-cf4e597389865ae8.js} +1 -1
- package/.next/static/chunks/app/(app)/search/{page-d975712d07eed70d.js → page-4d1e07c4c43a7489.js} +1 -1
- package/.next/static/chunks/app/(app)/security/{page-4b126307f9963c2a.js → page-db7b8840d9cc6b72.js} +1 -1
- package/.next/static/chunks/app/(app)/skills/page-a98da9e415efc310.js +1 -0
- package/.next/static/chunks/app/(app)/tasks/page-ab33402626a50c88.js +1 -0
- package/.next/static/chunks/app/(app)/test-dev/page-34612a4b47ec9aa2.js +1 -0
- package/.next/static/chunks/app/(app)/update/page-99d63495bfdd56a9.js +1 -0
- package/.next/static/chunks/app/(auth)/login/{page-3df648bab2319a0b.js → page-c7b372a5053512f0.js} +1 -1
- package/.next/static/chunks/app/(auth)/onboarding/{page-ee09eb3fd38f3365.js → page-450bfc87fb942f9b.js} +1 -1
- package/.next/static/chunks/{main-2e2f6e1d0f3b78b1.js → main-722e16032e7764d1.js} +1 -1
- package/.next/static/chunks/webpack-222e3894b78c67db.js +1 -0
- package/.next/trace-build +1 -1
- package/CHANGELOG.md +32 -0
- package/README.md +1 -1
- package/README.pt-BR.md +1 -1
- package/bin/constella-update.mjs +44 -0
- package/docs/UPDATE.md +51 -6
- package/package.json +1 -1
- package/scripts/vps-install.sh +22 -0
- package/scripts/vps-update.sh +22 -0
- package/.next/server/chunks/104.js +0 -1
- package/.next/server/chunks/1082.js +0 -1
- package/.next/server/chunks/2359.js +0 -1
- package/.next/server/chunks/7970.js +0 -21
- package/.next/server/chunks/8071.js +0 -4
- package/.next/server/chunks/8102.js +0 -12
- package/.next/static/chunks/1068-50497be19315ccfb.js +0 -1
- package/.next/static/chunks/4991-0306ad0e6cd8cb8a.js +0 -1
- package/.next/static/chunks/6061-f3ad54a48323cba0.js +0 -1
- package/.next/static/chunks/6121-37930472292e5a6c.js +0 -4
- package/.next/static/chunks/9690-53d5222618cbeddb.js +0 -1
- package/.next/static/chunks/app/(app)/agents/[handle]/page-e3eda42a3f20e3e5.js +0 -1
- package/.next/static/chunks/app/(app)/config/page-84216e49b0b08248.js +0 -1
- package/.next/static/chunks/app/(app)/dashboard/page-1e7ecb2bdefcdc19.js +0 -1
- package/.next/static/chunks/app/(app)/docs/page-ab10f655b932f175.js +0 -1
- package/.next/static/chunks/app/(app)/goals/page-9a68e61bbc392281.js +0 -1
- package/.next/static/chunks/app/(app)/inbox/page-6ee42cdd99664d11.js +0 -12
- package/.next/static/chunks/app/(app)/knowledge/page-c02936180f61550f.js +0 -1
- package/.next/static/chunks/app/(app)/layout-7d2d377b224620c8.js +0 -1
- package/.next/static/chunks/app/(app)/models/page-8635495017d696c1.js +0 -1
- package/.next/static/chunks/app/(app)/notifications/page-72f15bd4b6289bf1.js +0 -12
- package/.next/static/chunks/app/(app)/organizations/page-50c64b60a6850870.js +0 -1
- package/.next/static/chunks/app/(app)/page-638517264806ba7e.js +0 -1
- package/.next/static/chunks/app/(app)/plugins/page-66921b5b398f2c05.js +0 -1
- package/.next/static/chunks/app/(app)/pm/page-a1f93d19d3c28627.js +0 -1
- package/.next/static/chunks/app/(app)/prepare-deploy/page-de7dc9413e3dbf82.js +0 -1
- package/.next/static/chunks/app/(app)/profile/page-e73d191fce633cd7.js +0 -1
- package/.next/static/chunks/app/(app)/reports/page-fd0b0d0fa742819e.js +0 -1
- package/.next/static/chunks/app/(app)/skills/page-f1fc99f1d15e26a4.js +0 -1
- package/.next/static/chunks/app/(app)/tasks/page-a4b78a8d76fd9432.js +0 -1
- package/.next/static/chunks/app/(app)/test-dev/page-55cef74633b3cf4c.js +0 -1
- package/.next/static/chunks/app/(app)/update/page-92764fc98b253709.js +0 -1
- package/.next/static/chunks/webpack-94c9726ec79ee4b4.js +0 -1
- /package/.next/static/{N4KMSOY3i-qyXrbfm97sO → mOVW9EdxrQ1xPT7vDdRdK}/_buildManifest.js +0 -0
- /package/.next/static/{N4KMSOY3i-qyXrbfm97sO → mOVW9EdxrQ1xPT7vDdRdK}/_ssgManifest.js +0 -0
package/.next/static/chunks/app/(app)/design/{page-f889489d70e0e839.js → page-d457cdfa525acb85.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[338],{
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[338],{502:(e,t,a)=>{"use strict";a.d(t,{j:()=>n});var r=a(7814);let n=(0,r.createServerReference)("001f7b38a3f729f9228f00bee7e2a5304a041ae35b",r.callServer,void 0,r.findSourceMapURL,"devServerStatusAction")},1319:(e,t,a)=>{"use strict";a.d(t,{DesignClient:()=>ed});var r=a(5076),n=a(8488),s=a(9860),i=a(5629),o=a(8576),d=a(4552),l=a(8894),c=a(7799),p=a(4327),u=a(7814);let g=(0,u.createServerReference)("40ef9327df3c76aeec61e899723f3a4fce0f04e0f4",u.callServer,void 0,u.findSourceMapURL,"getDesignScreen"),m=(0,u.createServerReference)("4017a2e91aac0e44c71e7dc8bdc64b91c86af6966e",u.callServer,void 0,u.findSourceMapURL,"setTokens"),h=(0,u.createServerReference)("702318f1552859b902907168b6bbd6d46cbb1cd8bd",u.callServer,void 0,u.findSourceMapURL,"askDesign"),x=(0,u.createServerReference)("4042d732975c30e998b1b417f244d02bc240771b42",u.callServer,void 0,u.findSourceMapURL,"listDesignComments"),f=(0,u.createServerReference)("00f53bdd7c80bb26d6c234682ff09d42c9fa8d285c",u.callServer,void 0,u.findSourceMapURL,"listDesignVersions"),b=(0,u.createServerReference)("002dfc0678550fd7b554d7d8b3301ed4c835ae2a9f",u.callServer,void 0,u.findSourceMapURL,"listDesignDocs"),v=(0,u.createServerReference)("406e30e8c1f70608478aa34a2cfc9f472c06c1ade1",u.callServer,void 0,u.findSourceMapURL,"readDesignDoc"),y=(0,u.createServerReference)("009e146b7742c650ca216beeed8e617243a4a5c103",u.callServer,void 0,u.findSourceMapURL,"scaffoldDesignFromBrief"),z=(0,u.createServerReference)("60dbb220db735685b4802d9264fe095d42ffd507fa",u.callServer,void 0,u.findSourceMapURL,"commitDesignScreen"),w=(0,u.createServerReference)("400105d268e50cf405554ad50d07b6cf74ab3dfdfb",u.callServer,void 0,u.findSourceMapURL,"saveDesignCheckpoint"),k=(0,u.createServerReference)("70de449374fe32fcef6ed2f670f9dd29539a04eff1",u.callServer,void 0,u.findSourceMapURL,"applyDesignTextEdit"),j=(0,u.createServerReference)("40a2ed61c41d82e88df9f715926555d4751d7925b2",u.callServer,void 0,u.findSourceMapURL,"approveDesign"),N=(0,u.createServerReference)("00c6849ba47e6e7fea083ff67d4e2a602a90900e03",u.callServer,void 0,u.findSourceMapURL,"handoffToExecution"),S=(0,u.createServerReference)("00041d8182167f36657652fa5117a86f04ad9fdac4",u.callServer,void 0,u.findSourceMapURL,"resumeDesignHandoff"),C=(0,u.createServerReference)("0053a9e20f5c5328aa2a2502d518180bfd6eed8f2f",u.callServer,void 0,u.findSourceMapURL,"buildDesignProduction"),I=(0,u.createServerReference)("7084c40999976496a9f63bf8a44a4c05630a91605b",u.callServer,void 0,u.findSourceMapURL,"addDesignMarkup"),E=(0,u.createServerReference)("7ca088c8458079633b65380437dffa61b3a503e9d8",u.callServer,void 0,u.findSourceMapURL,"addDesignComment"),M=(0,u.createServerReference)("40205db6b6772e5190d6280f495fecc4c49bb1880c",u.callServer,void 0,u.findSourceMapURL,"deleteDesignComment"),T=(0,u.createServerReference)("4036941845402c95b0a364055242692180e15d59a1",u.callServer,void 0,u.findSourceMapURL,"restoreDesignCheckpoint"),R=(0,u.createServerReference)("602c949d6b4f90259a9dd0bf28582677f4f84cdc82",u.callServer,void 0,u.findSourceMapURL,"restoreDesignVersion");var D=a(4302),P=a(5393);let A=`(function(){
|
|
2
2
|
var MODE = "select";
|
|
3
3
|
var ZOOM = 1, ZOX = 0, ZOY = 0;
|
|
4
4
|
|
|
@@ -300,7 +300,7 @@
|
|
|
300
300
|
post("canvas:ready", { interactive: INTERACTIVE });
|
|
301
301
|
if(!INTERACTIVE) post("canvas:baseline", { html: serializeBody() }); // history/persist only for static screens
|
|
302
302
|
setTimeout(emitTree, 80);
|
|
303
|
-
})();`;var L=a(
|
|
303
|
+
})();`;var L=a(3368),O=a(7063),W=a(8163),$=a(502),H=a(2814),F=a(6974);let U=(0,u.createServerReference)("006d073b0c6542ef6eb5bdce823ce839aa00eb00ce",u.callServer,void 0,u.findSourceMapURL,"stopLiveInspectAction"),B=(0,u.createServerReference)("000b3acc60b4d2b8a70e8d2d829b9aacc71ab61f76",u.callServer,void 0,u.findSourceMapURL,"startLiveInspectAction"),X=[{id:"desktop",w:"100%",label:"Desktop"},{id:"tablet",w:"768px",label:"Tablet"},{id:"mobile",w:"390px",label:"Mobile"}];function Y({onAskGrace:e,asking:t}){let[a,s]=(0,n.useState)({running:!1,status:"idle",logs:[]}),[i,d]=(0,n.useTransition)(),[l,c]=(0,n.useState)(""),[p,u]=(0,n.useState)(""),[g,m]=(0,n.useState)(0),[h,x]=(0,n.useState)("desktop"),[f,b]=(0,n.useState)(!0),[v,y]=(0,n.useState)(""),[z,w]=(0,n.useState)(!1),[k,j]=(0,n.useState)(""),[N,S]=(0,n.useTransition)(),[C,I]=(0,n.useState)(""),[E,M]=(0,n.useState)(null),T=(0,n.useRef)(null),R=a.url??"",D="running"===a.status&&!!R,P=X.find(e=>e.id===h)?.w??"100%",A=(z&&k?k:p)||R;return(0,n.useEffect)(()=>{let e=!0;(0,$.j)().then(t=>{e&&s(t)}).catch(()=>{});let t=setInterval(()=>{"running"!==a.status&&"error"!==a.status&&(0,$.j)().then(t=>{e&&s(t)}).catch(()=>{})},3e3);return()=>{e=!1,clearInterval(t)}},[a.status]),(0,n.useEffect)(()=>{R?(c(e=>e||R),u(e=>e||R)):(c(""),u(""))},[R]),(0,n.useEffect)(()=>{if(!D||!p)return void b(!0);let e=!0;return(0,H.K)(p).then(t=>{e&&b(t.frameable)}).catch(()=>{}),()=>{e=!1}},[D,p,g]),(0,n.useEffect)(()=>{function e(e){let t=e.data;if(t&&t.__cstlaLive)if("live:ready"===t.type)try{T.current?.contentWindow?.postMessage({__cstlaLiveHost:1,type:"live:setMode",mode:z?"inspect":"off"},"*")}catch{}else"live:select"===t.type&&t.payload&&M(t.payload)}return window.addEventListener("message",e),()=>window.removeEventListener("message",e)},[z]),(0,r.jsxs)("div",{style:{position:"absolute",inset:0,zIndex:40,display:"flex",flexDirection:"column",background:"var(--bg-app)"},children:[(0,r.jsxs)("div",{className:"dz-live-bar",children:[(0,r.jsx)("span",{className:"dz-live-dot "+(D?"on":"error"===a.status?"err":"")}),(0,r.jsx)("button",{className:"dz-ico",title:"Reload",disabled:!D,onClick:()=>m(e=>e+1),children:(0,r.jsx)(o.I,{name:"refresh",size:14})}),(0,r.jsxs)("form",{className:"dz-live-addr",onSubmit:function(e){let t;e?.preventDefault();let a=(t=l.trim())?/^https?:\/\//i.test(t)?t:R.replace(/\/$/,"")+(t.startsWith("/")?t:"/"+t):R;u(a),c(a),m(e=>e+1)},children:[(0,r.jsx)(o.I,{name:D?"shield":"goto",size:12}),(0,r.jsx)("input",{value:l,placeholder:R||"the app isn't running yet",disabled:!D||z,onChange:e=>c(e.target.value),spellCheck:!1})]}),(0,r.jsx)("button",{className:"dz-ico"+(z?" on":""),title:z?"Inspecting — click an element to target it (click again to turn off)":"Inspect: click a real element to ask Grace to change it",disabled:!D||N,onClick:function(){if(I(""),z){w(!1),M(null),m(e=>e+1),U().catch(()=>{});return}S(async()=>{try{let e=await B();if(!e.ok||!e.url)return void I(e.error||"Couldn't start inspect.");j(e.url),w(!0),M(null),m(e=>e+1)}catch{I("Couldn't start inspect.")}})},children:(0,r.jsx)(o.I,{name:N?"refresh":"target",size:14,className:N?"sync-spin":""})}),(0,r.jsx)("div",{className:"dz-seg",children:X.map(e=>(0,r.jsx)("button",{className:h===e.id?"on":"",disabled:!D,onClick:()=>x(e.id),children:e.label},e.id))}),D&&(0,r.jsx)("a",{className:"dz-ico",title:"Open in a new tab",href:p,target:"_blank",rel:"noreferrer",children:(0,r.jsx)(o.I,{name:"goto",size:14})})]}),C&&(0,r.jsx)("div",{className:"dz-uperr",style:{margin:"0 10px"},children:C}),(0,r.jsx)("div",{className:"dz-live-stage",children:D&&!f?(0,r.jsxs)("div",{className:"dz-live-empty",children:[(0,r.jsx)(o.I,{name:"shield",size:26}),(0,r.jsx)("div",{className:"t",children:"The app blocks embedding"}),(0,r.jsx)("div",{className:"s",children:"It sends X-Frame-Options / CSP that prevents the preview frame."}),(0,r.jsxs)("a",{className:"btn-accent",style:{marginTop:10},href:p,target:"_blank",rel:"noreferrer",children:[(0,r.jsx)(o.I,{name:"goto",size:13})," Open in a new tab"]})]}):D?(0,r.jsx)("iframe",{ref:T,className:"dz-live-frame",src:A,style:{width:P,maxWidth:"100%"},title:"Live app preview",onLoad:()=>{try{T.current?.contentWindow?.postMessage({__cstlaLiveHost:1,type:"live:setMode",mode:z?"inspect":"off"},"*")}catch{}},sandbox:"allow-scripts allow-same-origin allow-forms allow-popups allow-modals allow-downloads"},A+":"+g):(0,r.jsxs)("div",{className:"dz-live-empty",children:[(0,r.jsx)("span",{className:i||"starting"===a.status?"sync-spin":"",children:(0,r.jsx)(o.I,{name:i||"starting"===a.status?"refresh":"play",size:26})}),(0,r.jsx)("div",{className:"t",children:"error"===a.status?"The dev server failed to start":i||"starting"===a.status?"Starting the dev server…":"Run the real app"}),(0,r.jsx)("div",{className:"s",children:"error"===a.status?"Check the project boots (Test Dev shows the logs).":"Boot the project's dev server to see the real running app here — any stack."}),"running"!==a.status&&"starting"!==a.status&&!i&&(0,r.jsxs)("button",{className:"btn-accent",style:{marginTop:10},onClick:function(){d(async()=>{try{let e=await (0,F.R)();s(e)}catch{}})},children:[(0,r.jsx)(o.I,{name:"play",size:13})," Start the app"]})]})}),E&&(0,r.jsxs)("div",{className:"dz-attach",style:{margin:"0 10px 6px"},children:[(0,r.jsx)("span",{className:"sw",style:{background:"#6366f1"}})," Editing ",(0,r.jsxs)("b",{style:{fontWeight:700},children:["<",E.tag,">",E.id?" #"+E.id:""]}),E.text?` \xb7 “${E.text.slice(0,40)}”`:"",(0,r.jsx)("span",{className:"x",onClick:()=>M(null),children:(0,r.jsx)(o.I,{name:"close",size:12})})]}),(0,r.jsxs)("form",{className:"dz-live-ask",onSubmit:function(a){a?.preventDefault();let r=v.trim();if(r&&!t){if(E){let t=[`<${E.tag}>`,E.id?`#${E.id}`:"",E.text?`text "${E.text}"`:"",E.landmark?`in "${E.landmark}"`:"",`selector \`${E.selector}\``,`on route ${E.path}`].filter(Boolean).join(" \xb7 ");e(`On the live app, change THIS element (${t}) — edit the real source, keep everything else intact: ${r}`)}else e(`On the live app: ${r}`);y(""),M(null)}},children:[(0,r.jsx)(o.I,{name:"skill",size:14}),(0,r.jsx)("input",{value:v,placeholder:E?"Describe the change to this element — Grace edits the real source…":"Ask Grace to change the live app — she edits the real source (HMR repaints it)…",onChange:e=>y(e.target.value),disabled:t}),(0,r.jsxs)("button",{className:"dz-mini-btn accent",disabled:t||!v.trim(),type:"submit",children:[(0,r.jsx)(o.I,{name:t?"refresh":"send",size:13,className:t?"sync-spin":""})," Ask Grace"]})]})]})}let G=`
|
|
304
304
|
.dz-wrap{flex:1;min-height:480px;display:flex;background:var(--bg-app);position:relative;height:100%;}
|
|
305
305
|
.dz-chat{width:312px;flex:0 0 312px;display:flex;flex-direction:column;min-height:0;border-right:1px solid var(--border-subtle);background:var(--bg-panel);}
|
|
306
306
|
.dz-chat-head{flex:0 0 auto;display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--border-subtle);}
|
|
@@ -555,4 +555,4 @@
|
|
|
555
555
|
.dz-seg-mini{display:flex;background:var(--bg-app);border:1px solid var(--border);border-radius:7px;padding:2px;gap:1px;}
|
|
556
556
|
.dz-seg-mini button{flex:1;border:none;background:none;color:var(--text-dim);font-size:10.5px;font-weight:600;padding:4px 5px;border-radius:5px;cursor:pointer;display:grid;place-items:center;}
|
|
557
557
|
.dz-seg-mini button.on{background:var(--accent);color:var(--accent-fg,#1a1205);}
|
|
558
|
-
`,Z=[{name:"Indigo",c:"#6366f1"},{name:"Violet",c:"#8b5cf6"},{name:"Blue",c:"#3b82f6"},{name:"Sky",c:"#0ea5e9"},{name:"Cyan",c:"#06b6d4"},{name:"Teal",c:"#14b8a6"},{name:"Emerald",c:"#10b981"},{name:"Lime",c:"#84cc16"},{name:"Amber",c:"#f59e0b"},{name:"Orange",c:"#f97316"},{name:"Rose",c:"#f43f5e"},{name:"Pink",c:"#ec4899"}],_=[{n:"Inter",s:"'Inter',system-ui,sans-serif"},{n:"IBM Plex",s:"'IBM Plex Sans',sans-serif"},{n:"Geist",s:"'Geist','Inter',ui-sans-serif,sans-serif"},{n:"System",s:"system-ui,-apple-system,Segoe UI,sans-serif"},{n:"Serif",s:"Georgia,'Times New Roman',serif"},{n:"Mono",s:"ui-monospace,'SF Mono',Menlo,monospace"},{n:"Display",s:"'Poppins','Inter',system-ui,sans-serif"}],K=[{n:"Sharp",r:6},{n:"Soft",r:16},{n:"Round",r:26}],V=[{id:"select",ic:"target"},{id:"edit",ic:"newFile"},{id:"markup",ic:"skill"},{id:"comments",ic:"chat"},{id:"inspect",ic:"search"},{id:"preview",ic:"play"}];function q(e,t){let a=parseInt(e.replace("#",""),16);return`rgba(${a>>16&255},${a>>8&255},${255&a},${t})`}function J(e){return(e.split("/").pop()||e).replace(/\.html?$/i,"")}function Q(e){let t=(e||"").replace(/\\/g,"/"),a=t.toLowerCase().lastIndexOf("design-mock/");return a>=0?t.slice(a):null}let ee=/\b(remov(i|ido|eu|idos)|adicion(ei|ado|ou|ados)|cri(ei|ado|ou|ados)|corrig(i|ido|iu)|ajust(ei|ado|ou)|atualiz(ei|ado|ou)|mud(ei|ado|ou)|delet(ei|ado|ou)|limp(ei|ado|ou)|troqu(ei)|troc(ado|ou)|inseri|inserido|fiz|feit[oa]s?|pront[oa]s?|conclu(i|í|ido|ída)|finaliz(ei|ado|ou)|implement(ei|ado|ou)|ger(ei|ado|ou)|salv(ei|o|ado)|apliqu(ei)|aplic(ado|ou)|added|removed|deleted|created|fixed|updated|changed|cleaned|adjusted|renamed|moved|made|done|ready|here'?s|i'?ve|i\s+have|i\s+just|i\s+made)\b/i,et=[["design.sugg.adjustPalette","Adjust the color palette"],["design.sugg.improveSpacing","Improve the spacing"],["design.sugg.mobileVersion","Create a mobile version"],["design.sugg.darkTheme","Try a dark theme"],["design.sugg.addSection","Add a section"],["design.sugg.newScreen","Create a new screen"],["design.sugg.visualDocs","Generate the visual docs"],["design.sugg.askReview","Ask Grace for a review"],["design.sugg.approve","Approve design"],["design.sugg.sendExec","Send to execution"]],ea=[["design.sugg.firstScreen","Build the first screen"],["design.sugg.proposePalette","Propose a color palette"],["design.sugg.defineTypography","Define the typography"],["design.sugg.mainFlow","Design the main flow"],["design.sugg.heroSection","Add a hero section"],["design.sugg.mobileVersion","Create a mobile version"]],er={accent:"#6366f1",accentName:"Indigo",accentFg:"",secondary:"",surface:"",success:"",warning:"",danger:"",theme:"dark",font:_[0].s,fontName:"Inter",headingFont:_[0].s,headingFontName:"Inter",fontWeight:400,lineHeight:1.5,letterSpacing:0,fontScale:1,radius:16,borderWidth:1,borderColor:"",shadow:"md",density:12,containerWidth:1200,motionMs:200,ease:"ease"};function en(e){return!!(e.selection&&"object"==typeof e.selection&&"markup"===e.selection.kind)}function es(e){return e.selection.rect}function ei(e){let t=e.x+e.w/2,a=e.y+e.h/2;return`${a<33?"top":a<66?"middle":"bottom"}-${t<33?"left":t<66?"center":"right"} area, roughly ${Math.round(e.w)}%\xd7${Math.round(e.h)}% of the page`}function eo({grace:e,context:t,status:a,tokens:u}){var $;let H,F,U,B,X,ed=(0,s.useRouter)(),el=(0,i.k)(),[ec,ep]=(0,n.useState)("approved"===a||t.approved?"approved":"building"),[eu,eg]=(0,n.useState)(!1),[em,eh]=(0,n.useState)("screens"),[ex,eb]=(0,n.useState)(!0),[ef,ev]=(0,n.useState)(!0),[ey,ez]=(0,n.useState)("desktop"),[ew,ek]=(0,n.useState)(null),[ej,eN]=(0,n.useState)(!1),[eS,eC]=(0,n.useState)(100),[eI,eE]=(0,n.useState)("select"),[eM,eT]=(0,n.useState)({...er,...u??{}}),[eR,eD]=(0,n.useState)(""),[eP,eA]=(0,n.useState)(!1),[eL,eO]=(0,n.useState)(!1),[eW,e$]=(0,n.useState)(""),[eH,eF]=(0,n.useState)([]),[eU,eB]=(0,n.useState)(!1),[eX,eY]=(0,n.useState)(!1),[eG,eZ]=(0,n.useState)(""),e_=(0,n.useRef)(null),eK=(0,n.useRef)(!0),[eV,eq]=(0,n.useState)(""),[eJ,eQ]=(0,n.useState)(null),[e0,e1]=(0,n.useState)(""),[e2,e5]=(0,n.useState)([]),[e6,e4]=(0,n.useState)([]),[e8,e3]=(0,n.useState)(!0),[e7,e9]=(0,n.useState)(!1),te=(0,n.useRef)(0),tt=(0,n.useRef)(0),ta=(0,n.useRef)(null),[tr,tn]=(0,n.useState)([]),[ts,ti]=(0,n.useState)(null),[to,td]=(0,n.useState)(null),[tl,tc]=(0,n.useState)({scrollX:0,scrollY:0,viewportW:980,viewportH:560,docW:980,docH:560}),[tp,tu]=(0,n.useState)({w:1200,h:700}),[tg,tm]=(0,n.useState)([]),[th,tx]=(0,n.useState)(!1),tb=(0,n.useRef)(!1),[tf,tv]=(0,n.useState)(null),[ty,tz]=(0,n.useState)([]),tw=(0,n.useRef)([]),[tk,tj]=(0,n.useState)(!1),[tN,tS]=(0,n.useState)(null),[tC,tI]=(0,n.useState)(null),[tE,tM]=(0,n.useState)(null),[tT,tR]=(0,n.useState)(""),[tD,tP]=(0,n.useState)([]),[tA,tL]=(0,n.useState)([]),[tO,tW]=(0,n.useState)(null),[t$,tH]=(0,n.useState)(null),[tF,tU]=(0,n.useState)(!1),[tB,tX]=(0,n.useState)([]),[tY,tG]=(0,n.useState)(null),[tZ,t_]=(0,n.useState)(""),[tK,tV]=(0,n.useState)(0),[tq,tJ]=(0,n.useState)("idle"),tQ=(0,n.useRef)(!1),t0=(0,n.useRef)(""),t1=(0,n.useRef)(null),t2=(0,n.useRef)(new Map),[t5,t6]=(0,n.useState)(0),t4=(0,n.useRef)(null),t8=(0,n.useRef)(null),t3=(0,n.useRef)(""),t7=(0,n.useRef)(eI),t9=(0,n.useRef)(""),ae=(0,n.useRef)(eM),at=(0,n.useRef)([]),aa=(0,n.useRef)(null),ar=(0,n.useRef)(!1),an=(0,n.useRef)(!1),as=Array.from(new Set([...t.designMockFiles.filter(e=>/\.html?$/i.test(e)),...tr]));at.current=as;let ai=t.designMockFiles.filter(e=>e.startsWith("design-mock/components/")),ao="approved"===ec,ad=eV&&as.includes(eV)?eV:as[0]??"";t9.current=ad,ar.current=ao,an.current=e7,t7.current=eI,ae.current=eM;let al=as.length>0&&null!=eJ&&!e0,ac=eS/100,ap=null!=ew?{w:Math.max(320,Math.min(1920,ew)),h:Math.max(560,Math.round(1.5*Math.max(320,Math.min(1920,ew))))}:"tablet"===ey?{w:768,h:1024}:"mobile"===ey?{w:390,h:844}:null,au=null!=ap,ag=au?ap.w:Math.max(1,tp.w/ac),am=au?ap.h:Math.max(1,tp.h/ac),ah=Math.max(1,tl.docW||tl.viewportW||1),ax=Math.max(1,tl.docH||tl.viewportH||1),ab=e=>({left:e.x-tl.scrollX,top:e.y-tl.scrollY,width:e.w,height:e.h}),af=e=>({left:e.x/100*ah-tl.scrollX,top:e.y/100*ax-tl.scrollY,width:e.w/100*ah,height:e.h/100*ax}),av=(e,t)=>({left:e/100*ah-tl.scrollX,top:t/100*ax-tl.scrollY}),{canUndo:ay,canRedo:az}=(0,n.useMemo)(()=>{let e=t2.current.get(ad);return{canUndo:!!e&&e.pos>0,canRedo:!!e&&e.pos<e.stack.length-1}},[t5,ad]);(0,n.useEffect)(()=>{if(document.getElementById("dz-style"))return;let e=document.createElement("style");e.id="dz-style",e.textContent=G,document.head.appendChild(e)},[]),(0,n.useEffect)(()=>{try{"0"===localStorage.getItem("bx.dzChat")&&eb(!1),"0"===localStorage.getItem("bx.dzRail")&&ev(!1)}catch{}},[]),(0,n.useEffect)(()=>{try{localStorage.setItem("bx.dzChat",ex?"1":"0")}catch{}},[ex]),(0,n.useEffect)(()=>{try{localStorage.setItem("bx.dzRail",ef?"1":"0")}catch{}},[ef]),(0,n.useEffect)(()=>{let e=!1,t=e=>e.length>250?e.slice(-250):e;function a(){if(e||document.hidden||ta.current)return;let a=new EventSource(`/api/stream?channel=design&evCursor=${te.current}&msgCursor=${tt.current}`);ta.current=a,a.addEventListener("ev",e=>{let a=JSON.parse(e.data);a.seq>te.current&&(te.current=a.seq),e4(e=>e.some(e=>e.id===a.id)?e:t([...e,a]))}),a.addEventListener("msg",e=>{let a=JSON.parse(e.data),r=a.createdAt?new Date(a.createdAt).getTime():0;if(r>tt.current&&(tt.current=r),e5(e=>e.some(e=>e.id===a.id)?e:t([...e,a])),e4(e=>e.filter(e=>e.runId!==a.id||"text"!==e.kind)),"agent"===a.fromKind){e9(!1),tV(e=>e+1),ed.refresh();let e=t9.current;e&&setTimeout(()=>{tQ.current||(t2.current.delete(e),t6(e=>e+1),g(e).then(e=>{e.ok&&null!=e.html&&(eQ(e.html),e1(""))}))},300)}})}function r(){ta.current&&(ta.current.close(),ta.current=null)}(async function(){let[t,a]=await Promise.all([(0,c.V)("design"),(0,p.k)("design",0)]);e||(e5(t),e4(a),te.current=a.reduce((e,t)=>Math.max(e,t.seq),0),tt.current=t.reduce((e,t)=>Math.max(e,t.createdAt?new Date(t.createdAt).getTime():0),0))})().catch(()=>{}).finally(()=>{!e&&(e3(!1),document.hidden||a())});let n=()=>{document.hidden?r():a()};return document.addEventListener("visibilitychange",n),()=>{e=!0,document.removeEventListener("visibilitychange",n),r()}},[]),(0,n.useEffect)(()=>{if(aM(),eK.current){eK.current=!1;return}let e=setTimeout(()=>{m(eM)},500);return eg(!0),ao&&(aa.current&&clearTimeout(aa.current),aa.current=setTimeout(()=>{aa.current=null,function(){if(!ar.current||an.current)return;let e=ae.current;e9(!0),h(`I changed the design directly on the canvas via the Styles panel — the canvas is the source of truth now. RECONCILE the source to match it; do NOT ask, just do it: write the current tokens into design-mock/styles/global.css (:root) — accent ${e.accent}, secondary ${e.secondary}, surface ${e.surface}, body font ${e.font}, heading font ${e.headingFont}, radius ${e.radius}px, theme ${e.theme} — and update design-mock/design-system.md (palette / typography / tokens) plus any affected component docs to reflect it, keeping every screen VISUALLY IDENTICAL. Then briefly summarize what you synced.`).then(e=>{e.ok||e9(!1)}),aW("Grace is syncing your change into the source CSS + docs…")}()},9e3)),()=>clearTimeout(e)},[eM]),(0,n.useEffect)(()=>{if(!ad)return void eQ(null);if(tQ.current&&ad===t0.current)return;tQ.current&&(tQ.current=!1,t0.current="",tJ("idle")),tc(e=>({...e,scrollX:0,scrollY:0}));let e=!0;return e1(""),g(ad).then(t=>{e&&(t.ok&&null!=t.html?eQ(t.html):(eQ(null),e1(t.error||el("design.toast.screenLoadFail"))))}),()=>{e=!1}},[as.join("|"),ad]),(0,n.useEffect)(()=>{if(tQ.current)return;let e=new Set(e2.map(e=>e.id)),t=e6.filter(t=>{if("create"!==t.kind&&"edit"!==t.kind||e.has(t.runId))return!1;let a=Q(t.target||"");return null!=a&&/^design-mock\/screens\/[^/]+\.html?$/i.test(a)});if(!t.length)return;let a=t[t.length-1];if(a.id===t3.current)return;t3.current=a.id;let r=Q(a.target||"");tn(e=>e.includes(r)?e:[...e,r]),eq(r),t2.current.delete(r),t6(e=>e+1),setTimeout(()=>{g(r).then(e=>{e.ok&&null!=e.html&&(eQ(e.html),e1(""))})},550)},[e6,e2]),(0,n.useEffect)(()=>{let e=new Set(e2.map(e=>e.id));e6.some(t=>!e.has(t.runId))&&e9(!1)},[e6,e2]),(0,n.useEffect)(()=>{let e=!0;return Promise.all([x().catch(()=>({comments:[]})),b().catch(()=>({versions:[]})),f().catch(()=>({docs:[]}))]).then(([t,a,r])=>{e&&(tP(t.comments||[]),tL(a.versions||[]),tX(r.docs||[]))}),()=>{e=!1}},[tK]);let aw=async()=>{try{let e=await (0,L.p)("design");if(e.used>=e.max&&!tF){tU(!0);try{await (0,O.L)("design"),e=await (0,L.p)("design")}finally{tU(!1)}}tH(e)}catch{}};async function ak(){if(!tF){tU(!0);try{await (0,O.L)("design"),await aw()}finally{tU(!1)}}}function aj(e){tG(e),t_(""),v(e).then(e=>{e.ok&&null!=e.body?t_(e.body):t_(el("design.docs.readErr"))})}(0,n.useEffect)(()=>{ex&&aw()},[ex,e2.length]),(0,n.useEffect)(()=>{"docs"===em&&tB.length&&(tY&&tB.some(e=>e.path===tY)||aj(tB[0].path))},[em,tB]);let aN=(0,n.useRef)(!1);(0,n.useEffect)(()=>{!t.gatePending||t.gateScaffolded||aN.current||e7||(aN.current=!0,e9(!0),y().then(e=>{e.ok||(e9(!1),aN.current=!1)}))},[t.gatePending,t.gateScaffolded]),(0,n.useEffect)(()=>{function e(e){var t,a,r;let n=e.data;if(n&&n.__cstla&&(!t4.current||e.source===t4.current.contentWindow))if("canvas:viewport"===n.type){let e=n.payload;tc({scrollX:Math.max(0,e.scrollX||0),scrollY:Math.max(0,e.scrollY||0),viewportW:Math.max(1,e.viewportW||1),viewportH:Math.max(1,e.viewportH||1),docW:Math.max(1,e.docW||e.viewportW||1),docH:Math.max(1,e.docH||e.viewportH||1)})}else if("canvas:ready"===n.type){aE(),aM();let e=!!n.payload?.interactive;tb.current=e,tx(e)}else if("canvas:hover"===n.type)ti(n.payload);else if("canvas:guides"===n.type)td(n.payload);else if("canvas:tree"===n.type)tm(n.payload.items);else if("canvas:nav"===n.type){let e,r,s,i=(t=String(n.payload?.href||""),a=at.current,r=((e=t.split("#")[0].split("?")[0].replace(/\/+$/,"")).split("/").pop()||e).replace(/\.html?$/i,"").toLowerCase(),(s=a.find(e=>(e.split("/").pop()||e).replace(/\.html?$/i,"").toLowerCase()===r))||""!==r&&"index"!==r&&"home"!==r||(s=a.find(e=>/(^|\/)(index|home)\.html?$/i.test(e))||a[0]),s||null);i&&(eq(i),tv(null),tz([]),tj(!1))}else if("canvas:select"===n.type){let e={...n.payload,pageId:t9.current};tv(e),tz([e]),tj("select"===t7.current||"edit"===t7.current)}else if("canvas:selectToggle"===n.type){let e={...n.payload,pageId:t9.current},t=tw.current,a=t.findIndex(t=>t.cstlaId===e.cstlaId),r=a>=0?t.filter((e,t)=>t!==a):[...t,e];tz(r),tv(r.length?r[r.length-1]:null),tj(!1)}else if("canvas:reselect"===n.type){let e={...n.payload,pageId:t9.current};tv(e),tz(t=>t.length?t.map(t=>t.cstlaId===e.cstlaId?e:t):[e])}else if("canvas:reselectMany"===n.type){let e=(n.payload||[]).map(e=>({...e,pageId:t9.current}));tz(e),tv(e.length?e[e.length-1]:null)}else if("canvas:removed"===n.type)tv(null),tz([]),tj(!1);else if("canvas:dirty"===n.type)tQ.current=!0,t0.current=t9.current,tJ("saving"),t1.current&&(clearTimeout(t1.current),t1.current=null);else if("canvas:editEnd"===n.type)tQ.current=!1,tJ("idle");else if("canvas:commit"===n.type)tb.current||aR(n.payload.html);else if("canvas:history"===n.type)tb.current?(tJ("idle"),aT()):(function(e,t){let a=t0.current||t9.current;if(!a)return;let r=t2.current.get(a);r||(r={stack:[],labels:[],pos:-1},t2.current.set(a,r)),r.pos>=0&&r.stack[r.pos]===e||(r.stack=r.stack.slice(0,r.pos+1),r.labels=r.labels.slice(0,r.pos+1),r.stack.push(e),r.labels.push(t||el("design.history.edited")),r.stack.length>60&&(r.stack.shift(),r.labels.shift()),r.pos=r.stack.length-1,t6(e=>e+1))}(n.payload.html,n.payload.label),aR(n.payload.html),eg(!0));else if("canvas:baseline"===n.type){let e;tb.current||(r=n.payload.html,!(e=t9.current)||t2.current.has(e)||(t2.current.set(e,{stack:[r],labels:[el("design.history.original")],pos:0}),t6(e=>e+1)))}else if("canvas:comment"===n.type)tM(n.payload);else if("canvas:markupDraw"===n.type)tI(n.payload);else if("canvas:markup"===n.type){let e=n.payload;tI(e),tM({xpPct:e.xPct,ypPct:e.yPct,markup:{x:e.xPct,y:e.yPct,w:e.wPct,h:e.hPct}})}else"canvas:edit"===n.type&&aO(n.payload.oldText,n.payload.newText)}return window.addEventListener("message",e),()=>window.removeEventListener("message",e)},[]),(0,n.useEffect)(()=>{aE(),td(null),"preview"===eI&&(ti(null),tj(!1))},[eI,ad]),(0,n.useEffect)(()=>{ti(null),td(null)},[eS,ad]),(0,n.useEffect)(()=>{let e=t8.current;if(!e)return;let t=()=>tu({w:Math.max(1,e.clientWidth),h:Math.max(1,e.clientHeight)});t();let a=new ResizeObserver(t);return a.observe(e),()=>a.disconnect()},[al]),(0,n.useEffect)(()=>{"layers"===em&&function(){try{t4.current?.contentWindow?.postMessage({__cstlaHost:1,type:"canvas:requestTree"},"*")}catch{}}()},[em,ad,tK]),(0,n.useEffect)(()=>{let e=e=>{let t=document.activeElement;t&&("INPUT"===t.tagName||"TEXTAREA"===t.tagName||t.isContentEditable)||((e.ctrlKey||e.metaKey)&&("z"===e.key||"Z"===e.key)?(e.preventDefault(),e.shiftKey?aA():aP()):(e.ctrlKey||e.metaKey)&&("y"===e.key||"Y"===e.key)?(e.preventDefault(),aA()):"Escape"===e.key&&(tz([]),tv(null),tj(!1)))};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[]),(0,n.useEffect)(()=>{tw.current=ty},[ty]);let aS=e=>eT(t=>({...t,...e}));function aC(e,t,a=""){let n=String(eM[t]??"");return(0,r.jsxs)("div",{className:"dz-trow",children:[(0,r.jsx)("label",{children:e}),(0,r.jsxs)("div",{className:"dz-colorrow",children:[(0,r.jsx)("input",{type:"color",value:n||a||"#888888",onChange:e=>aS({[t]:e.target.value})}),(0,r.jsx)("input",{type:"text",value:n,placeholder:a||el("design.styles.auto"),spellCheck:!1,onChange:e=>aS({[t]:e.target.value})})]})]},String(t))}function aI(e,t,a,n,s,i=""){let o=Number(eM[t]??0);return(0,r.jsxs)("div",{className:"dz-trow",children:[(0,r.jsxs)("label",{children:[e,(0,r.jsxs)("span",{className:"v",children:[o,i]})]}),(0,r.jsx)("input",{type:"range",min:a,max:n,step:s,value:o,onChange:e=>aS({[t]:Number(e.target.value)})})]},String(t))}function aE(){try{t4.current?.contentWindow?.postMessage({__cstlaHost:1,type:"canvas:setMode",mode:t7.current},"*")}catch{}}function aM(){let e=ae.current;try{let t,a;t4.current?.contentWindow?.postMessage({__cstlaHost:1,type:"canvas:applyTokens",tokens:{accent:e.accent,accentFg:e.accentFg||(t=e.accent.replace("#",""),a=parseInt(3===t.length?t.split("").map(e=>e+e).join(""):t,16),(.299*(a>>16&255)+.587*(a>>8&255)+.114*(255&a))/255>.6?"#15171c":"#ffffff"),secondary:e.secondary,surface:e.surface,success:e.success,warning:e.warning,danger:e.danger,font:e.font,headingFont:e.headingFont,fontWeight:e.fontWeight,lineHeight:e.lineHeight,letterSpacing:e.letterSpacing,radius:e.radius,borderWidth:e.borderWidth,borderColor:e.borderColor,shadow:e.shadow,space:e.density,containerWidth:e.containerWidth,motionMs:e.motionMs,ease:e.ease,fontScale:e.fontScale,theme:e.theme}},"*")}catch{}}function aT(){t1.current&&clearTimeout(t1.current),t1.current=setTimeout(()=>{tQ.current=!1,t0.current="",tJ("idle"),t1.current=null},1400)}function aR(e){let t=t0.current||t9.current;t&&z(t,e).then(e=>{e.ok?(tJ("saved"),tV(e=>e+1)):(tJ("idle"),aW(e.error||el("design.toast.couldNotSaveEdit"))),aT()})}function aD(e,t){let a=t.stack[t.pos];tv(null),tj(!1),tQ.current=!0,t0.current=e,tJ("saving"),t1.current&&(clearTimeout(t1.current),t1.current=null);try{t4.current?.contentWindow?.postMessage({__cstlaHost:1,type:"canvas:setBody",html:a},"*")}catch{}z(e,a).then(()=>{tJ("saved"),tV(e=>e+1),aT()}),t6(e=>e+1)}function aP(){let e=t9.current,t=t2.current.get(e);t&&!(t.pos<=0)&&(t.pos--,aD(e,t))}function aA(){let e=t9.current,t=t2.current.get(e);t&&!(t.pos>=t.stack.length-1)&&(t.pos++,aD(e,t))}async function aL(){let e=t9.current;if(!e||!al)return;eA(!0);let t=await w(e);eA(!1),t.ok?(aW(el("design.toast.savedCheckpoint",{label:t.label??""})),tV(e=>e+1)):aW(t.error||el("design.toast.couldNotSaveCheckpoint"))}async function aO(e,t){let a=t9.current;if(a&&e!==t)if((await k(a,e,t)).ok){let e=await g(a);e.ok&&null!=e.html&&eQ(e.html),aW(el("design.toast.editApplied"))}else aW(el("design.toast.sendingEdit")),e9(!0),h(`On screen ${a}, change the text "${e}" to "${t}".`)}function aW(e){e$(e),setTimeout(()=>e$(t=>t===e?"":t),2400)}async function a$(e){if(!e)return;let t=Array.from(e).filter(e=>e instanceof File);if(!t.length)return;eZ("");let a=t.slice(0,Math.max(0,6-eH.length));if(!a.length)return void eZ(el("design.toast.upTo6"));let r=new FormData;for(let e of a)r.append("files",e);eY(!0);try{let e=await fetch("/api/upload",{method:"POST",body:r}),t=await e.json();if(!e.ok||!t.ok)return void eZ(t.error||el("design.toast.uploadFailed"));eF(e=>[...e,...t.attachments].slice(0,6))}catch{eZ(el("design.toast.uploadFailed"))}finally{eY(!1),e_.current&&(e_.current.value="")}}function aH(e){let t=(e??eR).trim();if(!t&&!eH.length&&!tN||e7)return;e9(!0);let a=eH.slice();eD(""),eF([]),eZ(""),tS(null),h(t||(tN?"Adjust this element.":"Use the attached image(s) as the visual reference."),a,tN??void 0).then(e=>{e.ok||(aW(e.error||el("design.toast.couldNotStart")),e9(!1))})}async function aF(){eA(!0);let e=await j();(eA(!1),e.ok)?(ep("approved"),aW(el("design.toast.designApproved")),ed.refresh()):aW(e.error||el("design.toast.approveFailed"))}async function aU(){eA(!0);let e=await N();(eA(!1),e.ok)?(ep("approved"),eg(!1),e9(!0),eh("docs"),aW(el("design.toast.sentToExec"))):aW(e.error||el("design.toast.couldNotSendExec"))}async function aB(){eA(!0);let e=await S();(eA(!1),e.ok)?(e9(!0),eh("docs"),aW("Resuming handoff — Grace is finishing the documentation, then Ada plans it.")):aW(e.error||"Couldn't resume the handoff.")}async function aX(){eA(!0);let e=await C();if(eA(!1),!e.ok)return void aW(e.error||el("design.toast.buildFailed"));let t=e.built.reduce((e,t)=>e+t.before,0),a=e.built.reduce((e,t)=>e+t.after,0),r=t?Math.round((1-a/t)*100):0,n=e.built.filter(e=>e.obfuscated).length;aW(el("design.toast.built",{count:e.built.length,plural:1===e.built.length?"":"s",pct:r,obf:n?el("design.toast.builtObf",{n:n}):""})),ed.refresh()}async function aY(e=!1){if(!tE){tM(null),tR(""),tI(null);return}if(tE.markup){let t=tT.trim(),a=tE.markup;if(await I(t9.current,a,t),tM(null),tR(""),tI(null),tV(e=>e+1),eh("comments"),e){e9(!0);let e=ei(a);h(`On screen ${t9.current}, I marked a region for review (${e}).${t?` My note: "${t}"`:" Please review and refine it."} Update the screen accordingly.`)}return}if(!tT.trim()){tM(null),tR("");return}let t=tE.selection??tf,a=t?{...t,pageId:t9.current}:void 0;await E(t9.current,tE.xpPct,tE.ypPct,tT.trim(),a),tM(null),tR(""),tV(e=>e+1),eh("comments")}let aG=[...e2].sort((e,t)=>(e.createdAt?new Date(e.createdAt).getTime():0)-(t.createdAt?new Date(t.createdAt).getTime():0)).at(-1),aZ=e7||0!==e2.length&&aG?.fromKind!=="agent"?[]:function(e,t,a){let r=[],n=e=>(e??"").replace(/\s+/g," ").replace(/^[-•*\s]+/,"").replace(/[.:;,!?]+$/,"").trim(),s=(e,t)=>{let a=n(e);a.length>=2&&a.length<=42&&!r.some(e=>e.label.toLowerCase()===a.toLowerCase())&&r.push({label:a?a.charAt(0).toUpperCase()+a.slice(1):a,prompt:t})},i=[...e].reverse().find(e=>"agent"===e.fromKind&&e.text);if(i?.text)for(let e of i.text.matchAll(/\*\*(.+?)\*\*/g)){let t=n(e[1]);if(t.length<2||t.length>42||ee.test(t)||(t.match(/\s+/g)||[]).length>6||s(t,t),r.length>=4)break}for(let[e,n]of t.designMockFiles.some(e=>/\.html?$/i.test(e))?et:ea)if(s(a(e),n),r.length>=4)break;return r.slice(0,4)}(e2,t,el),a_=e?{id:e.id,handle:e.handle,name:e.name,role:"Frontend",color:e.color,image:e.image??null,adapter:"claude",status:"idle",health:null}:null,aK=a_?[a_]:[],aV={};for(let e of e6)(aV[e.runId]??=[]).push(e);let aq=new Set(e2.map(e=>e.id)),aJ=Object.entries(aV).filter(([e])=>!aq.has(e)),aQ=e7||aJ.length>0,a0=tD.filter(e=>e.pageKey===ad&&!en(e)),a1=tD.filter(e=>e.pageKey===ad&&en(e)),a2=[];a2.push(["layers",el("design.tab.layers")],["screens",el("design.tab.screens")],["docs",el("design.tab.docs")],["styles",el("design.tab.styles")],["history",el("design.tab.history")],["comments",`${el("design.tab.comments")}${a0.length?" "+a0.length:""}`],["versions",`${el("design.tab.versions")}${tA.length?" "+tA.length:""}`]);let a5=a2.some(([e])=>e===em)?em:"screens",a6=ts?ab(ts):null,a4=tf?ab(tf.boundingBox):null;return(0,r.jsxs)("div",{className:"dz-wrap",children:[ex?(0,r.jsxs)("div",{className:"dz-chat",children:[(0,r.jsxs)("div",{className:"dz-chat-head",children:[(0,r.jsx)(d.e,{name:e?.name||"Grace",color:e?.color||"#84aef5",image:e?.image,size:28}),(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{className:"dz-ch-t",children:[e?.name||"Grace"," \xb7 ",el("design.chat.role")]}),(0,r.jsx)("div",{className:"dz-ch-s",children:el("design.chat.subtitle")})]}),aQ&&(0,r.jsxs)("span",{className:"dz-live",children:[(0,r.jsx)("span",{className:"dot"})," ",el("design.chat.live")]}),(0,r.jsx)("button",{className:"dz-collapse-btn",title:el("design.chat.collapse"),onClick:()=>eb(!1),children:(0,r.jsx)(o.I,{name:"chevronLeft",size:15})})]}),t$&&(0,r.jsxs)("div",{className:"ctx-bar",children:[(0,r.jsx)(W.m,{stat:t$,onCompact:ak,compacting:tF}),(0,r.jsx)("span",{})]}),(0,r.jsx)(l.H8,{msgs:e2,typing:e7&&a_?[a_.handle]:[],agents:aK,byRun:aV,liveRuns:aJ,loading:e8,markdownAgent:!0,avatarSize:28,emptyHint:el("design.chat.emptyHint")}),(0,r.jsxs)("div",{className:"dz-composer"+(eU?" drag":""),onDragOver:e=>{e.preventDefault(),eB(!0)},onDragLeave:e=>{e.preventDefault(),eB(!1)},onDrop:e=>{e.preventDefault(),eB(!1),a$(e.dataTransfer.files)},children:[!ao&&aZ.length>0&&!tN&&(0,r.jsx)("div",{className:"dz-chips",children:aZ.map(e=>(0,r.jsx)("span",{className:"dz-chip",onClick:()=>aH(e.prompt),children:e.label},e.label))}),tN&&(0,r.jsxs)("div",{className:"dz-attach",children:[(0,r.jsx)("span",{className:"sw",style:{background:eM.accent}})," ",el("design.composer.elementLabel")," ",(0,r.jsx)("b",{style:{fontWeight:700},children:tN.componentName}),(0,r.jsx)("span",{className:"x",onClick:()=>tS(null),children:(0,r.jsx)(o.I,{name:"close",size:12})})]}),eG&&(0,r.jsx)("div",{className:"dz-uperr",children:eG}),eH.length>0&&(0,r.jsx)("div",{className:"dz-atts",children:eH.map((e,t)=>(0,r.jsxs)("span",{className:"dz-att",children:[e.type.startsWith("image/")&&(0,r.jsx)("img",{src:`/api/upload?path=${encodeURIComponent(e.path)}`,alt:""}),(0,r.jsx)("span",{className:"nm",children:e.name}),(0,r.jsx)("span",{className:"rm",title:el("design.composer.remove"),onClick:()=>eF(e=>e.filter((e,a)=>a!==t)),children:(0,r.jsx)(o.I,{name:"close",size:11})})]},e.path))}),(0,r.jsxs)("div",{className:"dz-input",children:[(0,r.jsx)("button",{className:"dz-clip",disabled:e7||eX,title:el("design.composer.attach"),onClick:()=>e_.current?.click(),children:(0,r.jsx)(o.I,{name:eX?"refresh":"add",size:15,className:eX?"sync-spin":""})}),(0,r.jsx)("input",{placeholder:tN?el("design.composer.changePlaceholder",{name:tN.componentName}):el("design.composer.placeholder"),value:eR,disabled:e7,onChange:e=>eD(e.target.value),onKeyDown:e=>{"Enter"===e.key&&aH()},onPaste:function(e){let t=Array.from(e.clipboardData?.items||[]).filter(e=>"file"===e.kind&&e.type.startsWith("image/")).map(e=>e.getAsFile()).filter(e=>!!e);t.length&&(e.preventDefault(),a$(t))}}),(0,r.jsx)("button",{className:"dz-send",disabled:e7||!eR.trim()&&!eH.length&&!tN,onClick:()=>aH(),children:(0,r.jsx)(o.I,{name:e7?"refresh":"send",size:15,className:e7?"sync-spin":""})})]}),(0,r.jsx)("input",{ref:e_,type:"file",accept:"image/*,.pdf",multiple:!0,style:{display:"none"},onChange:e=>a$(e.target.files)})]})]}):(0,r.jsxs)("div",{className:"dz-strip left",onClick:()=>eb(!0),title:el("design.chat.expand"),children:[(0,r.jsx)(o.I,{name:"chevronRight",size:16}),(0,r.jsx)(o.I,{name:"chat",size:16}),aQ&&(0,r.jsx)("span",{style:{width:7,height:7,borderRadius:"50%",background:"var(--accent)"}})]}),(0,r.jsxs)("div",{className:"dz-center",children:[t.handoffPending&&(0,r.jsxs)("div",{className:"dz-approve-banner",style:{background:"linear-gradient(90deg,rgba(224,164,78,.20),rgba(224,164,78,.03))"},children:[(0,r.jsx)("div",{className:"dz-ab-ic",style:{background:"rgba(224,164,78,.22)",color:"var(--accent)"},children:(0,r.jsx)(o.I,{name:aQ?"refresh":"warn",size:17,className:aQ?"sync-spin":""})}),(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"dz-ab-t",children:aQ?el("design.handoff.finishing"):el("design.handoff.interrupted")}),(0,r.jsx)("div",{className:"dz-ab-s",children:aQ?el("design.handoff.finishingSub"):el("design.handoff.interruptedSub")})]}),!aQ&&(0,r.jsx)("div",{className:"dz-ab-actions",children:(0,r.jsxs)("button",{className:"dz-mini-btn accent",disabled:eP,onClick:aB,children:[(0,r.jsx)(o.I,{name:eP?"refresh":"sync",size:13,className:eP?"sync-spin":""})," ",el("design.handoff.resume")]})})]}),t.handoffDone&&!t.handoffPending&&(0,r.jsxs)("div",{className:"dz-approve-banner",style:{background:eu?"linear-gradient(90deg,rgba(224,164,78,.22),rgba(224,164,78,.03))":"linear-gradient(90deg,rgba(74,165,114,.20),rgba(74,165,114,.03))"},children:[(0,r.jsx)("div",{className:"dz-ab-ic",style:{background:eu?"rgba(224,164,78,.22)":"rgba(74,165,114,.22)",color:eu?"var(--accent)":"#3fa971"},children:(0,r.jsx)(o.I,{name:eu?"edit":"goto",size:17})}),(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"dz-ab-t",children:eu?"Design updated \xb7 send it to Ada":"Handed off to execution \xb7 Ada is building"}),(0,r.jsx)("div",{className:"dz-ab-s",children:eu?"You edited the design after the last hand-off — send the update so Ada applies it on top (backend wiring preserved).":"This design is the real frontend. Keep refining it with Grace — re-send to push an update (engineers' backend wiring is preserved)."})]}),(0,r.jsx)("div",{className:"dz-ab-actions",children:(0,r.jsxs)("button",{className:"dz-mini-btn accent"+(eu?" dz-pulse":""),disabled:eP,onClick:aU,children:[(0,r.jsx)(o.I,{name:eP?"refresh":eu?"goto":"sync",size:13,className:eP?"sync-spin":""})," ",eu?"Send update to execution":"Re-send update"]})})]}),ao&&!t.handoffPending&&!t.handoffDone&&(0,r.jsxs)("div",{className:"dz-approve-banner",children:[(0,r.jsx)("div",{className:"dz-ab-ic",children:(0,r.jsx)(o.I,{name:eu?"edit":"check",size:17})}),(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"dz-ab-t",children:eu?"Design updated \xb7 ready to send":el("design.banner.approvedTitle")}),(0,r.jsx)("div",{className:"dz-ab-s",children:eu?"You edited the approved design — send it to execution to push the update.":el("design.banner.approvedSub")})]}),(0,r.jsx)("div",{className:"dz-ab-actions",children:(0,r.jsxs)("button",{className:"dz-mini-btn accent"+(eu?" dz-pulse":""),disabled:eP,onClick:aU,children:[(0,r.jsx)(o.I,{name:eP?"refresh":"goto",size:13,className:eP?"sync-spin":""})," ",eu?"Send update to execution":el("design.banner.sendToExecution")]})})]}),!ao&&t.gatePending&&(0,r.jsxs)("div",{className:"dz-approve-banner",style:{background:"linear-gradient(90deg,rgba(99,102,241,.16),rgba(99,102,241,.02))"},children:[(0,r.jsx)("div",{className:"dz-ab-ic",style:{background:"rgba(99,102,241,.18)",color:"#6366f1"},children:(0,r.jsx)(o.I,{name:"bot",size:17})}),(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"dz-ab-t",children:el("design.banner.adaWaitingTitle")}),(0,r.jsxs)("div",{className:"dz-ab-s",children:[el("design.banner.adaWaitingPre")," ",(0,r.jsx)("b",{children:el("design.banner.adaWaitingAction")})," ",el("design.banner.adaWaitingPost")," ",aQ?el("design.banner.gridSettingUp"):el("design.banner.gridStart")]})]}),(0,r.jsx)("div",{className:"dz-ab-actions",children:(0,r.jsxs)("button",{className:"dz-mini-btn",disabled:e7,onClick:()=>{e9(!0),y().then(e=>{e.ok||e9(!1)})},children:[(0,r.jsx)(o.I,{name:e7?"refresh":"skill",size:13,className:e7?"sync-spin":""})," ",el("design.banner.setUpWithGrace")]})})]}),(0,r.jsxs)("div",{className:"dz-bar",children:[(0,r.jsx)("div",{className:"dz-modes",children:V.map(e=>(0,r.jsxs)("span",{className:"dz-mode "+(eI===e.id?"on":""),onClick:()=>eE(e.id),title:el("design.mode."+e.id),children:[(0,r.jsx)(o.I,{name:e.ic,size:13})," ",el("design.mode."+e.id)]},e.id))}),as.length>0&&(0,r.jsxs)("div",{className:"dz-seg",children:[(0,r.jsx)("button",{onClick:aP,disabled:!ay,title:el("design.toolbar.undo"),children:(0,r.jsx)(o.I,{name:"chevronLeft",size:13})}),(0,r.jsx)("button",{onClick:aA,disabled:!az,title:el("design.toolbar.redo"),children:(0,r.jsx)(o.I,{name:"chevronRight",size:13})}),(0,r.jsxs)("button",{onClick:function(){let e=t9.current,t=t2.current.get(e);t&&!(t.pos<=0)&&(t.pos=0,aD(e,t),aW(el("design.toast.reset")))},disabled:!ay,title:el("design.toolbar.resetTitle"),children:[(0,r.jsx)(o.I,{name:"repeat",size:13})," ",el("design.toolbar.reset")]}),(0,r.jsxs)("button",{onClick:aL,disabled:eP||!al,title:el("design.toolbar.saveTitle"),children:[(0,r.jsx)(o.I,{name:"check",size:13})," ",el("design.toolbar.save")]}),(0,r.jsxs)("button",{onClick:function(){let e=t9.current;e&&(e9(!0),h(`I manually edited the screen ${e} directly on the canvas — it now has inline-style overrides, transform:translate offsets and data-cstla-id/data-cstla-tx attributes added by the visual editor. Refactor it into CLEAN, token-driven, professional CSS per the CSS STANDARD: fold the inline styles into the <style> sheet under semantic BEM-ish classes, turn transform offsets into real layout (flex/grid/margins/gap), drop every data-cstla-* attribute, and keep the screen VISUALLY IDENTICAL. Then summarize what you cleaned up.`))},title:el("design.toolbar.cleanUpTitle"),children:[(0,r.jsx)(o.I,{name:"skill",size:13})," ",el("design.toolbar.cleanUp")]})]}),(0,r.jsx)("div",{className:"dz-spacer"}),(0,r.jsx)("div",{className:"dz-seg",children:[50,75,100].map(e=>(0,r.jsxs)("button",{className:eS===e?"on":"",onClick:()=>eC(e),title:el("design.toolbar.zoom",{pct:e}),children:[e,"%"]},e))}),(0,r.jsxs)("div",{className:"dz-seg",children:[(0,r.jsx)("button",{className:"desktop"===ey&&null==ew?"on":"",onClick:()=>{ez("desktop"),ek(null)},title:el("design.toolbar.desktop"),children:(0,r.jsx)(o.I,{name:"sidebarIcon",size:13})}),(0,r.jsx)("button",{className:"tablet"===ey&&null==ew?"on":"",onClick:()=>{ez("tablet"),ek(null)},title:el("design.toolbar.tabletTitle"),children:el("design.toolbar.tablet")}),(0,r.jsx)("button",{className:"mobile"===ey&&null==ew?"on":"",onClick:()=>{ez("mobile"),ek(null)},title:el("design.toolbar.mobileTitle"),children:el("design.toolbar.mobile")}),(0,r.jsx)("input",{className:"dz-bpw",type:"number",min:320,max:1920,placeholder:"px",value:ew??"",title:el("design.toolbar.customWidth"),onChange:e=>{let t=parseInt(e.target.value,10);ek(Number.isFinite(t)&&t>0?Math.max(320,Math.min(1920,t)):null)}})]}),(0,r.jsxs)("div",{className:"dz-seg",children:[(0,r.jsx)("button",{className:"dark"===eM.theme?"on":"",onClick:()=>eT(e=>({...e,theme:"dark"})),title:el("design.toolbar.dark"),children:(0,r.jsx)(o.I,{name:"moon",size:13})}),(0,r.jsx)("button",{className:"light"===eM.theme?"on":"",onClick:()=>eT(e=>({...e,theme:"light"})),title:el("design.toolbar.light"),children:(0,r.jsx)(o.I,{name:"sun",size:13})})]}),(0,r.jsxs)("div",{className:"dz-seg",title:el("design.mode2.tip"),children:[(0,r.jsxs)("button",{className:ej?"":"on",onClick:()=>eN(!1),children:[(0,r.jsx)(o.I,{name:"grid",size:13})," ",el("design.mode2.design")]}),(0,r.jsxs)("button",{className:ej?"on":"",onClick:()=>eN(!0),children:[(0,r.jsx)(o.I,{name:"play",size:13})," ",el("design.mode2.live")]})]}),th?(0,r.jsxs)("span",{className:"dz-save preview",title:el("design.toolbar.previewOnlyTitle"),children:[(0,r.jsx)(o.I,{name:"play",size:12})," ",el("design.toolbar.previewOnly")]}):"idle"!==tq&&(0,r.jsxs)("span",{className:"dz-save "+tq,title:"saving"===tq?el("design.toolbar.savingTitle"):el("design.toolbar.savedTitle"),children:[(0,r.jsx)(o.I,{name:"saving"===tq?"refresh":"check",size:12,className:"saving"===tq?"sync-spin":""})," ","saving"===tq?el("design.toolbar.saving"):el("design.toolbar.saved")]}),(0,r.jsxs)("button",{className:"dz-mini-btn",onClick:()=>eO(!0),children:[(0,r.jsx)(o.I,{name:"arrowDown",size:13})," ",el("design.toolbar.export")]}),(0,r.jsxs)("button",{className:"dz-mini-btn accent",disabled:eP,onClick:aF,title:ao?"Re-approve the current design as the official reference":void 0,children:[(0,r.jsx)(o.I,{name:"check",size:13})," ",ao?"Approve changes":el("design.toolbar.approve")]})]}),as.length>0&&(0,r.jsxs)("div",{className:"dz-pagestrip",children:[(0,r.jsx)("div",{className:"dz-ptabs",children:as.slice(0,8).map(e=>(0,r.jsxs)("span",{className:"dz-ptab "+(ad===e?"active":""),onClick:()=>{eq(e),tv(null),tj(!1)},children:[(0,r.jsx)(o.I,{name:"grid",size:13})," ",J(e)]},e))}),(0,r.jsxs)("span",{className:"dz-hint",children:[(0,r.jsx)(o.I,{name:V.find(e=>e.id===eI).ic,size:12})," ","edit"===eI?"Click to select \xb7 double-click to edit text (the design stays faithful to the mock — no move/resize/add)":"select"===eI?"Click to select an element \xb7 switch to Edit to edit its text":el("design.hint."+eI)]})]}),(0,r.jsxs)("div",{className:"dz-canvas"+(al?` has-screen ${au?"framed":"desktop"}`:""),ref:t8,children:[ej&&(0,r.jsx)(Y,{onAskGrace:e=>aH(e),asking:e7}),al?(0,r.jsxs)("div",{className:"dz-artwrap",style:{width:ag*ac,height:am*ac},children:[(0,r.jsxs)("div",{className:"dz-art","data-viewport":ey,style:{width:ag,height:am,transform:`scale(${ac})`,transformOrigin:"top left"},children:[(0,r.jsx)("iframe",{ref:t4,title:el("design.canvas.previewTitle"),sandbox:"allow-scripts",srcDoc:($=eJ??"",H=`<script data-cstla-instrument>${A}</script>`,/<\/body>/i.test($)?$.replace(/<\/body>/i,`${H}</body>`):$+H),onLoad:()=>{aE(),aM()},style:{width:"100%",height:"100%",border:"none",background:"#fff",display:"block"}}),(0,r.jsxs)("div",{className:"dz-ovl",children:[to&&"edit"===eI&&(0,r.jsxs)(r.Fragment,{children:[to.v.map((e,t)=>(0,r.jsx)("div",{className:"dz-guide v",style:{left:e-tl.scrollX}},"gv"+t)),to.h.map((e,t)=>(0,r.jsx)("div",{className:"dz-guide h",style:{top:e-tl.scrollY}},"gh"+t))]}),ts&&a6&&!tf&&"preview"!==eI&&"markup"!==eI&&"comments"!==eI&&(0,r.jsx)("div",{className:"dz-hl",style:a6,children:(0,r.jsx)("span",{className:"tag",children:ts.label})}),"preview"!==eI&&ty.map(e=>(0,r.jsx)("div",{className:"dz-selbox",style:ab(e.boundingBox)},e.cstlaId)),a1.map(e=>(0,r.jsx)("div",{className:"dz-mk",style:af(es(e))},e.id)),tC&&(0,r.jsx)("div",{className:"dz-mk",style:af({x:tC.xPct,y:tC.yPct,w:tC.wPct,h:tC.hPct})}),a0.map((e,t)=>(0,r.jsx)("div",{className:"dz-pin",style:av(e.xp,e.yp),onClick:e=>{e.stopPropagation(),eh("comments")},children:t+1},e.id))]})]}),tk&&tf&&a4&&"preview"!==eI&&ty.length<=1&&(0,r.jsxs)("div",{className:"dz-ctx",style:{left:Math.max(6,a4.left*ac),top:Math.max(4,a4.top*ac-40)},onClick:e=>e.stopPropagation(),children:[(0,r.jsxs)("button",{className:"ask",onClick:()=>{tS(tf),tj(!1),aW(el("design.toast.elementAttached"))},children:[(0,r.jsx)(o.I,{name:"bot",size:13})," ",el("design.ctx.askFront")]}),(0,r.jsx)("button",{onClick:()=>tj(!1),children:(0,r.jsx)(o.I,{name:"close",size:13})})]}),tE&&(0,r.jsxs)("div",{className:"dz-cpop",style:{left:Math.max(6,Math.min((F=av(tE.xpPct,tE.ypPct)).left*ac,Math.max(6,ag*ac-226))),top:Math.max(6,Math.min(F.top*ac,Math.max(6,am*ac-120)))},onClick:e=>e.stopPropagation(),children:[(0,r.jsx)("textarea",{rows:3,autoFocus:!0,placeholder:tE.markup?el("design.cmt.markupPlaceholder"):el("design.cmt.pointPlaceholder"),value:tT,onChange:e=>tR(e.target.value),onKeyDown:e=>{"Enter"===e.key&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),aY())}}),tE.markup?(0,r.jsxs)("div",{className:"row",style:{flexDirection:"column",alignItems:"stretch"},children:[(0,r.jsxs)("button",{className:"dz-mini-btn accent",style:{justifyContent:"center"},onClick:()=>aY(!0),children:[(0,r.jsx)(o.I,{name:"bot",size:12})," ",el("design.cmt.markAskGrace")]}),(0,r.jsx)("button",{className:"dz-mini-btn",style:{justifyContent:"center"},onClick:()=>aY(!1),children:el("design.cmt.markRegion")}),(0,r.jsx)("button",{className:"dz-mini-btn",style:{justifyContent:"center"},onClick:()=>{tM(null),tR(""),tI(null)},children:el("design.cmt.cancel")})]}):(0,r.jsxs)("div",{className:"row",children:[(0,r.jsx)("button",{className:"dz-mini-btn",onClick:()=>{tM(null),tR(""),tI(null)},children:el("design.cmt.cancel")}),(0,r.jsx)("button",{className:"dz-mini-btn accent",onClick:()=>aY(),children:el("design.cmt.comment")})]})]}),aQ&&(0,r.jsxs)("div",{className:"dz-build-bar",children:[(0,r.jsx)(o.I,{name:"skill",size:13})," ",el("design.canvas.working")," ",(0,r.jsx)("span",{className:"sh"})]})]}):(0,r.jsx)("div",{className:"dz-emptywrap",children:e0?(0,r.jsxs)("div",{className:"dz-empty",children:[(0,r.jsx)("div",{className:"ic",children:(0,r.jsx)(o.I,{name:"error",size:22})}),(0,r.jsx)("div",{className:"t",children:el("design.empty.loadErrTitle")}),(0,r.jsx)("div",{className:"s",children:e0})]}):0===as.length&&ai.length>0?(0,r.jsxs)("div",{className:"dz-empty",children:[(0,r.jsx)("div",{className:"ic",children:(0,r.jsx)(o.I,{name:"doc",size:22})}),(0,r.jsx)("div",{className:"t",children:el("design.empty.componentsTitle",{count:ai.length,plural:ai.length>1?"s":""})}),(0,r.jsx)("div",{className:"s",children:el("design.empty.componentsBody")})]}):(0,r.jsxs)("div",{className:"dz-empty",children:[(0,r.jsx)("div",{className:"ic",children:(0,r.jsx)(o.I,{name:"grid",size:22})}),(0,r.jsx)("div",{className:"t",children:el("design.empty.noPrototypeTitle")}),(0,r.jsxs)("div",{className:"s",children:[el("design.empty.noPrototypePre")," ",(0,r.jsx)("span",{className:"mono",children:"design-mock/"}),". ",el("design.empty.noPrototypePost")]})]})})]})]}),ef?(0,r.jsxs)("div",{className:"dz-rail",children:[(0,r.jsxs)("div",{className:"dz-rail-tabs",children:[a2.map(([e,t])=>(0,r.jsx)("div",{className:"dz-rt "+(a5===e?"active":""),onClick:()=>eh(e),children:t},e)),(0,r.jsx)("button",{className:"dz-collapse-btn",title:el("design.rail.collapse"),onClick:()=>ev(!1),children:(0,r.jsx)(o.I,{name:"chevronRight",size:15})})]}),(0,r.jsxs)("div",{className:"dz-rail-body",children:["layers"===a5&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"dz-sec",children:el("design.layers.title")}),al?0===tg.length?(0,r.jsx)("div",{style:{fontSize:11.5,color:"var(--text-dim)",lineHeight:1.5},children:el("design.layers.reading")}):tg.map(e=>(0,r.jsxs)("div",{className:"dz-layer"+(tf?.nodePath===e.path?" active":""),style:{paddingLeft:8+11*e.depth},onClick:()=>(function(e){try{t4.current?.contentWindow?.postMessage({__cstlaHost:1,type:"canvas:selectByPath",path:e},"*")}catch{}})(e.path),title:`<${e.tag}>`,children:[(0,r.jsx)(o.I,{name:e.kids>0?"grid":"dot",size:10}),(0,r.jsx)("span",{className:"lt",children:e.label}),(0,r.jsxs)("span",{className:"lg",children:[e.tag,e.kids>0?` \xb7 ${e.kids}`:""]})]},e.path)):(0,r.jsx)("div",{style:{fontSize:11.5,color:"var(--text-dim)",lineHeight:1.5},children:el("design.layers.openScreen")})]}),"screens"===a5&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"dz-sec",children:el("design.screens.title")}),0===as.length?(0,r.jsx)("div",{style:{fontSize:11.5,color:"var(--text-dim)",lineHeight:1.5},children:el("design.screens.empty")}):as.map(e=>(0,r.jsxs)("div",{className:"dz-row "+(ad===e?"active":""),onClick:()=>{eq(e),tv(null),tj(!1)},children:[(0,r.jsx)("div",{className:"dz-r-ic",children:(0,r.jsx)(o.I,{name:"grid",size:14})}),(0,r.jsxs)("div",{style:{minWidth:0},children:[(0,r.jsx)("div",{className:"dz-r-t",children:J(e)}),(0,r.jsx)("div",{className:"dz-r-s",children:e.replace(/^design-mock\//,"")})]}),ad===e&&(0,r.jsx)("span",{className:"dz-r-meta",children:el("design.screens.active")})]},e)),(0,r.jsxs)("div",{className:"dz-addrow",onClick:()=>aH("Build a new screen for the prototype."),children:[(0,r.jsx)(o.I,{name:"add",size:13})," ",el("design.screens.newScreen")]}),ai.length>0&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"dz-sec",style:{marginTop:16},children:el("design.screens.components",{count:ai.length})}),(0,r.jsx)("div",{className:"dz-comp-grid",children:ai.slice(0,8).map((e,t)=>(0,r.jsxs)("div",{className:"dz-comp",children:[(0,r.jsx)("div",{style:{height:30,borderRadius:7,background:t%2?q(eM.accent,.16):"var(--bg-app)",border:"1px solid var(--border)",display:"grid",placeItems:"center",color:"var(--accent)",fontSize:12},children:"◧"}),(0,r.jsx)("div",{className:"nm",children:(e.split("/").pop()||e).replace(/\.[a-z]+$/i,"")})]},e))})]})]}),"docs"===a5&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"dz-sec",children:el("design.docs.title")}),0===tB.length?(0,r.jsx)("div",{style:{fontSize:11.5,color:"var(--text-dim)",lineHeight:1.5},children:el("design.docs.empty")}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"dz-docnav",children:tB.map(e=>(0,r.jsxs)("div",{className:"dz-doctab "+(tY===e.path?"active":""),onClick:()=>aj(e.path),title:e.label,children:[(0,r.jsx)(o.I,{name:/APPROVED/i.test(e.path)?"check":"doc",size:12}),(0,r.jsx)("span",{children:e.label})]},e.path))}),(0,r.jsx)("div",{className:"dz-docbody md",children:tZ?(0,r.jsx)(D.oz,{remarkPlugins:[P.A],children:tZ}):(0,r.jsx)("div",{style:{fontSize:11.5,color:"var(--text-dim)"},children:el("design.docs.reading")})})]})]}),"styles"===a5&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"dz-sec",children:el("design.styles.palette")}),(0,r.jsx)("div",{className:"dz-swatches",children:Z.map(e=>(0,r.jsx)("span",{title:e.name,className:"dz-sw "+(eM.accent===e.c?"on":""),style:{background:e.c},onClick:()=>aS({accent:e.c,accentName:e.name})},e.name))}),aC(el("design.styles.accentCustom"),"accent"),aC(el("design.styles.secondary"),"secondary"),aC(el("design.styles.surface"),"surface"),(0,r.jsxs)("details",{className:"dz-adv",children:[(0,r.jsx)("summary",{children:el("design.styles.semanticColors")}),aC(el("design.styles.success"),"success","#10b981"),aC(el("design.styles.warning"),"warning","#f59e0b"),aC(el("design.styles.danger"),"danger","#ef4444"),aC(el("design.styles.accentText"),"accentFg")]}),(0,r.jsx)("div",{className:"dz-sec",style:{marginTop:18},children:el("design.styles.typography")}),(0,r.jsx)("div",{className:"dz-sub",children:el("design.styles.bodyFont")}),(0,r.jsx)("div",{className:"dz-opt",children:_.map(e=>(0,r.jsx)("span",{className:"dz-pill2 "+(eM.fontName===e.n?"on":""),onClick:()=>aS({font:e.s,fontName:e.n}),children:e.n},e.n))}),(0,r.jsx)("div",{className:"dz-sub",children:el("design.styles.headingFont")}),(0,r.jsx)("div",{className:"dz-opt",children:_.map(e=>(0,r.jsx)("span",{className:"dz-pill2 "+(eM.headingFontName===e.n?"on":""),onClick:()=>aS({headingFont:e.s,headingFontName:e.n}),children:e.n},e.n))}),aI(el("design.styles.weight"),"fontWeight",300,800,100),aI(el("design.styles.lineHeight"),"lineHeight",1,2,.05),aI(el("design.styles.letterSpacing"),"letterSpacing",-1,4,.1,"px"),(0,r.jsx)("div",{className:"dz-sub",children:el("design.styles.textSize")}),(0,r.jsx)("div",{className:"dz-opt",children:[[el("design.styles.sizeSmall"),.9],[el("design.styles.sizeDefault"),1],[el("design.styles.sizeLarge"),1.15]].map(([e,t])=>(0,r.jsx)("span",{className:"dz-pill2 "+(eM.fontScale===t?"on":""),onClick:()=>aS({fontScale:t}),children:e},e))}),(0,r.jsx)("div",{className:"dz-sec",style:{marginTop:18},children:el("design.styles.shapeDepth")}),(0,r.jsx)("div",{className:"dz-opt",children:K.map(e=>(0,r.jsx)("span",{className:"dz-pill2 "+(eM.radius===e.r?"on":""),onClick:()=>aS({radius:e.r}),children:el("design.styles.radius"+e.n)},e.n))}),aI(el("design.styles.radius"),"radius",0,32,1,"px"),aI(el("design.styles.borderWidth"),"borderWidth",0,4,1,"px"),aC(el("design.styles.borderColor"),"borderColor"),(0,r.jsx)("div",{className:"dz-sub",children:el("design.styles.shadow")}),(0,r.jsx)("div",{className:"dz-opt",children:["none","sm","md","lg"].map(e=>(0,r.jsx)("span",{className:"dz-pill2 "+(eM.shadow===e?"on":""),onClick:()=>aS({shadow:e}),children:"none"===e?el("design.styles.shadowNone"):e.toUpperCase()},e))}),(0,r.jsx)("div",{className:"dz-sec",style:{marginTop:18},children:el("design.styles.theme")}),(0,r.jsxs)("div",{className:"dz-opt",children:[(0,r.jsx)("span",{className:"dz-pill2 "+("dark"===eM.theme?"on":""),onClick:()=>aS({theme:"dark"}),children:el("design.styles.dark")}),(0,r.jsx)("span",{className:"dz-pill2 "+("light"===eM.theme?"on":""),onClick:()=>aS({theme:"light"}),children:el("design.styles.light")})]}),(0,r.jsx)("div",{className:"dz-sec",style:{marginTop:18},children:el("design.styles.spacingLayoutMotion")}),(0,r.jsx)("div",{className:"dz-opt",children:[[el("design.styles.densityCompact"),8],[el("design.styles.densityCozy"),12],[el("design.styles.densityComfy"),16]].map(([e,t])=>(0,r.jsx)("span",{className:"dz-pill2 "+(eM.density===t?"on":""),onClick:()=>aS({density:t}),children:e},e))}),aI(el("design.styles.density"),"density",4,28,1,"px"),aI(el("design.styles.containerWidth"),"containerWidth",880,1600,20,"px"),aI(el("design.styles.motionSpeed"),"motionMs",0,600,20,"ms"),(0,r.jsx)("div",{className:"dz-sub",children:el("design.styles.easing")}),(0,r.jsx)("div",{className:"dz-opt",children:[[el("design.styles.easeEase"),"ease"],[el("design.styles.easeInOut"),"ease-in-out"],[el("design.styles.easeLinear"),"linear"],[el("design.styles.easeSmooth"),"cubic-bezier(.4,0,.2,1)"]].map(([e,t])=>(0,r.jsx)("span",{className:"dz-pill2 "+(eM.ease===t?"on":""),onClick:()=>aS({ease:t}),children:e},e))}),(0,r.jsx)("div",{className:"dz-sec",style:{marginTop:18},children:el("design.styles.spacingScale")}),(0,r.jsx)("div",{style:{display:"flex",gap:5,alignItems:"flex-end"},children:[.5,1,1.5,2,3,4].map(e=>{let t=Math.round(eM.density*e);return(0,r.jsxs)("div",{style:{textAlign:"center"},children:[(0,r.jsx)("div",{style:{width:20,height:Math.max(3,t),background:q(eM.accent,.5),borderRadius:3}}),(0,r.jsx)("div",{style:{fontSize:9,color:"var(--text-faint)",marginTop:3},children:t})]},e)})}),(0,r.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginTop:16,gap:8},children:[(0,r.jsx)("span",{style:{fontSize:10.5,color:"var(--text-faint)"},children:el("design.styles.restyleNote")}),(0,r.jsx)("button",{className:"dz-mini-btn",onClick:()=>aS(er),children:el("design.styles.reset")})]})]}),"comments"===a5&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"dz-sec",children:el("design.comments.title")}),0===a0.length&&(0,r.jsxs)("div",{style:{fontSize:11.5,color:"var(--text-dim)",lineHeight:1.5},children:[el("design.comments.emptyPre")," ",(0,r.jsx)("b",{children:el("design.comments.emptyTool")})," ",el("design.comments.emptyPost")]}),a0.map((e,t)=>(0,r.jsxs)("div",{className:"dz-cmt",children:[(0,r.jsxs)("div",{className:"h",children:[(0,r.jsx)("span",{className:"pin",children:t+1})," ",el("design.comments.comment")," ",(0,r.jsx)("span",{className:"x",onClick:()=>{M(e.id).then(()=>tV(e=>e+1))},children:(0,r.jsx)(o.I,{name:"trash",size:12})})]}),(0,r.jsx)("div",{className:"bd",children:e.body}),e.reply?(0,r.jsxs)("div",{className:"rep",children:[(0,r.jsx)(o.I,{name:"bot",size:12})," ",e.reply]}):(0,r.jsxs)("button",{className:"dz-mini-btn",onClick:()=>{e9(!0);let t=e.selection&&"object"==typeof e.selection&&e.selection.componentName?e.selection:void 0;h(`Apply this canvas comment on screen ${ad}${t?` (it is pinned on the ${t.componentName} element)`:""}: "${e.body}"`,void 0,t)},children:[(0,r.jsx)(o.I,{name:"bot",size:12})," ",el("design.comments.askGrace")]})]},e.id)),a1.length>0&&(0,r.jsx)("div",{className:"dz-sec",style:{marginTop:14},children:el("design.comments.markedRegions",{count:a1.length})}),a1.map((e,t)=>{let a=e.body&&"(region marked for review)"!==e.body?e.body:"";return(0,r.jsxs)("div",{className:"dz-cmt",children:[(0,r.jsxs)("div",{className:"h",children:[(0,r.jsxs)("span",{className:"pin",children:["M",t+1]})," ",el("design.comments.region")," ",(0,r.jsx)("span",{className:"x",onClick:()=>{M(e.id).then(()=>tV(e=>e+1))},children:(0,r.jsx)(o.I,{name:"trash",size:12})})]}),a&&(0,r.jsx)("div",{className:"bd",children:a}),e.reply?(0,r.jsxs)("div",{className:"rep",children:[(0,r.jsx)(o.I,{name:"bot",size:12})," ",e.reply]}):(0,r.jsxs)("button",{className:"dz-mini-btn",onClick:()=>{e9(!0);let t=ei(es(e));h(`On screen ${ad}, I marked a region for review (${t}).${a?` My note: "${a}"`:" Please review and refine it."} Update the screen accordingly.`)},children:[(0,r.jsx)(o.I,{name:"bot",size:12})," ",el("design.comments.askGrace")]})]},e.id)})]}),"history"===a5&&(U=t2.current.get(ad),B=U?.pos??-1,X=U?U.labels.map((e,t)=>({lab:e,i:t})):[],(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"dz-sec",children:U&&U.stack.length>1?el("design.history.pos",{pos:B+1,total:U.stack.length}):el("design.history.title")}),al?X.length<=1?(0,r.jsx)("div",{style:{fontSize:11.5,color:"var(--text-dim)",lineHeight:1.5},children:el("design.history.noEdits")}):(0,r.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:2},children:X.slice().reverse().map(({lab:e,i:t})=>(0,r.jsxs)("div",{onClick:()=>{let e,a;return e=t9.current,void((a=t2.current.get(e))&&!(t<0)&&!(t>=a.stack.length)&&t!==a.pos&&(a.pos=t,aD(e,a)))},style:{display:"flex",alignItems:"center",gap:8,padding:"7px 9px",borderRadius:8,cursor:"pointer",fontSize:12,background:t===B?"rgba(224,164,78,.12)":"transparent",color:t===B?"var(--accent)":"var(--text-dim)",border:"1px solid "+(t===B?"var(--accent)":"transparent")},children:[(0,r.jsx)("span",{style:{fontVariantNumeric:"tabular-nums",opacity:.6,minWidth:16,textAlign:"right"},children:0===t?"•":t}),(0,r.jsx)("span",{style:{flex:1,fontWeight:t===B?700:500},children:e||el("design.history.edited")}),t===B&&(0,r.jsx)("span",{style:{fontSize:10,fontWeight:700},children:el("design.history.current")})]},t))}):(0,r.jsx)("div",{style:{fontSize:11.5,color:"var(--text-dim)"},children:el("design.history.openScreen")})]})),"versions"===a5&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"dz-sec",children:el("design.versions.title")}),0===tA.length?(0,r.jsx)("div",{style:{fontSize:11.5,color:"var(--text-dim)",lineHeight:1.5},children:el("design.versions.empty")}):tA.map(e=>(0,r.jsxs)("div",{className:"dz-vnode"+(tO===e.id?" active":""),onClick:()=>tW(tO===e.id?null:e.id),title:el("design.versions.revertHint"),children:[(0,r.jsxs)("div",{className:"vt",children:[e.label," ",(0,r.jsx)("span",{className:"dz-tag",children:el("design.versions.files",{count:e.files.length,plural:1===e.files.length?"":"s"})})]}),(0,r.jsx)("div",{className:"vs",children:e.note}),(0,r.jsx)("div",{className:"vtime",children:function(e,t){let a=Math.max(0,Math.round((new Date().getTime()-e)/1e3));if(a<60)return t("design.time.justNow");let r=Math.round(a/60);if(r<60)return t("design.time.minAgo",{n:r});let n=Math.round(r/60);return n<24?t("design.time.hAgo",{n:n}):t("design.time.dAgo",{n:Math.round(n/24)})}(e.createdAt,el)}),tO===e.id&&(0,r.jsxs)("div",{className:"dz-addrow",style:{marginTop:8,padding:"6px"},onClick:t=>{t.stopPropagation(),e.restorable?T(e.id).then(async t=>{if(!t.ok)return void aW(t.error||el("design.toast.restoreFailed"));let a=t9.current;tQ.current=!1,t0.current="",t2.current.delete(a),t6(e=>e+1);let r=await g(a);r.ok&&null!=r.html&&(eQ(r.html),tv(null)),aW(el("design.toast.restored",{label:e.label}))}):(e9(!0),R(e.label,e.note)),tW(null)},children:[(0,r.jsx)(o.I,{name:"refresh",size:12})," ",el("design.versions.revertTo",{label:e.label})]})]},e.id))]})]})]}):(0,r.jsxs)("div",{className:"dz-strip right",onClick:()=>ev(!0),title:el("design.rail.expand"),children:[(0,r.jsx)(o.I,{name:"chevronLeft",size:16}),(0,r.jsx)(o.I,{name:"sidebarIcon",size:16})]}),eL&&(0,r.jsx)("div",{className:"dz-modal-bg",onClick:()=>eO(!1),children:(0,r.jsxs)("div",{className:"dz-modal",onClick:e=>e.stopPropagation(),children:[(0,r.jsxs)("div",{className:"dz-modal-h",children:[(0,r.jsx)("div",{className:"ic",children:(0,r.jsx)(o.I,{name:"arrowDown",size:17})}),(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"t",children:el("design.export.title")}),(0,r.jsx)("div",{className:"s",children:el("design.export.sub")})]}),(0,r.jsx)("div",{className:"x",onClick:()=>eO(!1),children:(0,r.jsx)(o.I,{name:"close",size:16})})]}),(0,r.jsx)("div",{className:"dz-modal-b",children:[[el("design.export.row.screens"),String(as.length)],[el("design.export.row.comments"),String(tD.filter(e=>!en(e)).length)],[el("design.export.row.versions"),String(tA.length)],[el("design.export.row.tokens"),el("design.export.row.tokensVal")],[el("design.export.row.approvedMd"),""],[el("design.export.row.kbRag"),""],[el("design.export.row.adaNotified"),""],[el("design.export.row.planner"),""]].map(e=>(0,r.jsxs)("div",{className:"dz-dl",children:[(0,r.jsx)("span",{className:"ck",children:(0,r.jsx)(o.I,{name:"check",size:11})}),e[0],e[1]&&(0,r.jsx)("span",{className:"n",children:e[1]})]},e[0]))}),(0,r.jsxs)("div",{className:"dz-modal-f",children:[(0,r.jsx)("span",{className:"note",children:el("design.export.note")}),(0,r.jsx)("div",{className:"dz-spacer"}),(0,r.jsxs)("button",{className:"dz-mini-btn",disabled:eP,onClick:aX,children:[(0,r.jsx)(o.I,{name:"cpu",size:13})," ",el("design.export.buildProd")]}),(0,r.jsx)("button",{className:"dz-mini-btn",onClick:()=>eO(!1),children:el("design.export.close")}),(0,r.jsxs)("button",{className:"dz-mini-btn accent",disabled:eP||ao,onClick:()=>{eO(!1),aF()},children:[(0,r.jsx)(o.I,{name:"check",size:13})," ",el("design.export.approveDesign")]})]})]})}),eW&&(0,r.jsx)("div",{className:"dz-flash",children:eW})]})}function ed(e){return(0,r.jsx)(eo,{grace:e.grace,context:e.context,status:e.status,tokens:e.tokens})}},5052:(e,t,a)=>{Promise.resolve().then(a.t.bind(a,3283,23)),Promise.resolve().then(a.bind(a,5048)),Promise.resolve().then(a.bind(a,3014)),Promise.resolve().then(a.bind(a,6588)),Promise.resolve().then(a.bind(a,4414)),Promise.resolve().then(a.bind(a,8718)),Promise.resolve().then(a.bind(a,4942)),Promise.resolve().then(a.bind(a,2444)),Promise.resolve().then(a.bind(a,5787))},6881:(e,t,a)=>{"use strict";a.d(t,{K:()=>n});var r=a(7814);let n=(0,r.createServerReference)("405a2f4d5897167f5bd29ff4e7282eb422acfea757",r.callServer,void 0,r.findSourceMapURL,"previewFrameableAction")},7154:(e,t,a)=>{"use strict";a.d(t,{j:()=>n});var r=a(7814);let n=(0,r.createServerReference)("003f7bfd00bce6e4642889640da92a0031cf3f1506",r.callServer,void 0,r.findSourceMapURL,"devServerStatusAction")}},e=>{e.O(0,[9219,9690,3219,4991,8370,6121,6646,6834,7358],()=>e(e.s=5052)),_N_E=e.O()}]);
|
|
558
|
+
`,Z=[{name:"Indigo",c:"#6366f1"},{name:"Violet",c:"#8b5cf6"},{name:"Blue",c:"#3b82f6"},{name:"Sky",c:"#0ea5e9"},{name:"Cyan",c:"#06b6d4"},{name:"Teal",c:"#14b8a6"},{name:"Emerald",c:"#10b981"},{name:"Lime",c:"#84cc16"},{name:"Amber",c:"#f59e0b"},{name:"Orange",c:"#f97316"},{name:"Rose",c:"#f43f5e"},{name:"Pink",c:"#ec4899"}],_=[{n:"Inter",s:"'Inter',system-ui,sans-serif"},{n:"IBM Plex",s:"'IBM Plex Sans',sans-serif"},{n:"Geist",s:"'Geist','Inter',ui-sans-serif,sans-serif"},{n:"System",s:"system-ui,-apple-system,Segoe UI,sans-serif"},{n:"Serif",s:"Georgia,'Times New Roman',serif"},{n:"Mono",s:"ui-monospace,'SF Mono',Menlo,monospace"},{n:"Display",s:"'Poppins','Inter',system-ui,sans-serif"}],K=[{n:"Sharp",r:6},{n:"Soft",r:16},{n:"Round",r:26}],V=[{id:"select",ic:"target"},{id:"edit",ic:"newFile"},{id:"markup",ic:"skill"},{id:"comments",ic:"chat"},{id:"inspect",ic:"search"},{id:"preview",ic:"play"}];function q(e,t){let a=parseInt(e.replace("#",""),16);return`rgba(${a>>16&255},${a>>8&255},${255&a},${t})`}function J(e){return(e.split("/").pop()||e).replace(/\.html?$/i,"")}function Q(e){let t=(e||"").replace(/\\/g,"/"),a=t.toLowerCase().lastIndexOf("design-mock/");return a>=0?t.slice(a):null}let ee=/\b(remov(i|ido|eu|idos)|adicion(ei|ado|ou|ados)|cri(ei|ado|ou|ados)|corrig(i|ido|iu)|ajust(ei|ado|ou)|atualiz(ei|ado|ou)|mud(ei|ado|ou)|delet(ei|ado|ou)|limp(ei|ado|ou)|troqu(ei)|troc(ado|ou)|inseri|inserido|fiz|feit[oa]s?|pront[oa]s?|conclu(i|í|ido|ída)|finaliz(ei|ado|ou)|implement(ei|ado|ou)|ger(ei|ado|ou)|salv(ei|o|ado)|apliqu(ei)|aplic(ado|ou)|added|removed|deleted|created|fixed|updated|changed|cleaned|adjusted|renamed|moved|made|done|ready|here'?s|i'?ve|i\s+have|i\s+just|i\s+made)\b/i,et=[["design.sugg.adjustPalette","Adjust the color palette"],["design.sugg.improveSpacing","Improve the spacing"],["design.sugg.mobileVersion","Create a mobile version"],["design.sugg.darkTheme","Try a dark theme"],["design.sugg.addSection","Add a section"],["design.sugg.newScreen","Create a new screen"],["design.sugg.visualDocs","Generate the visual docs"],["design.sugg.askReview","Ask Grace for a review"],["design.sugg.approve","Approve design"],["design.sugg.sendExec","Send to execution"]],ea=[["design.sugg.firstScreen","Build the first screen"],["design.sugg.proposePalette","Propose a color palette"],["design.sugg.defineTypography","Define the typography"],["design.sugg.mainFlow","Design the main flow"],["design.sugg.heroSection","Add a hero section"],["design.sugg.mobileVersion","Create a mobile version"]],er={accent:"#6366f1",accentName:"Indigo",accentFg:"",secondary:"",surface:"",success:"",warning:"",danger:"",theme:"dark",font:_[0].s,fontName:"Inter",headingFont:_[0].s,headingFontName:"Inter",fontWeight:400,lineHeight:1.5,letterSpacing:0,fontScale:1,radius:16,borderWidth:1,borderColor:"",shadow:"md",density:12,containerWidth:1200,motionMs:200,ease:"ease"};function en(e){return!!(e.selection&&"object"==typeof e.selection&&"markup"===e.selection.kind)}function es(e){return e.selection.rect}function ei(e){let t=e.x+e.w/2,a=e.y+e.h/2;return`${a<33?"top":a<66?"middle":"bottom"}-${t<33?"left":t<66?"center":"right"} area, roughly ${Math.round(e.w)}%\xd7${Math.round(e.h)}% of the page`}function eo({grace:e,context:t,status:a,tokens:u}){var $;let H,F,U,B,X,ed=(0,s.useRouter)(),el=(0,i.k)(),[ec,ep]=(0,n.useState)("approved"===a||t.approved?"approved":"building"),[eu,eg]=(0,n.useState)(!1),[em,eh]=(0,n.useState)("screens"),[ex,ef]=(0,n.useState)(!0),[eb,ev]=(0,n.useState)(!0),[ey,ez]=(0,n.useState)("desktop"),[ew,ek]=(0,n.useState)(null),[ej,eN]=(0,n.useState)(!1),[eS,eC]=(0,n.useState)(100),[eI,eE]=(0,n.useState)("select"),[eM,eT]=(0,n.useState)({...er,...u??{}}),[eR,eD]=(0,n.useState)(""),[eP,eA]=(0,n.useState)(!1),[eL,eO]=(0,n.useState)(!1),[eW,e$]=(0,n.useState)(""),[eH,eF]=(0,n.useState)([]),[eU,eB]=(0,n.useState)(!1),[eX,eY]=(0,n.useState)(!1),[eG,eZ]=(0,n.useState)(""),e_=(0,n.useRef)(null),eK=(0,n.useRef)(!0),[eV,eq]=(0,n.useState)(""),[eJ,eQ]=(0,n.useState)(null),[e0,e1]=(0,n.useState)(""),[e2,e5]=(0,n.useState)([]),[e6,e4]=(0,n.useState)([]),[e8,e3]=(0,n.useState)(!0),[e7,e9]=(0,n.useState)(!1),te=(0,n.useRef)(0),tt=(0,n.useRef)(0),ta=(0,n.useRef)(null),[tr,tn]=(0,n.useState)([]),[ts,ti]=(0,n.useState)(null),[to,td]=(0,n.useState)(null),[tl,tc]=(0,n.useState)({scrollX:0,scrollY:0,viewportW:980,viewportH:560,docW:980,docH:560}),[tp,tu]=(0,n.useState)({w:1200,h:700}),[tg,tm]=(0,n.useState)([]),[th,tx]=(0,n.useState)(!1),tf=(0,n.useRef)(!1),[tb,tv]=(0,n.useState)(null),[ty,tz]=(0,n.useState)([]),tw=(0,n.useRef)([]),[tk,tj]=(0,n.useState)(!1),[tN,tS]=(0,n.useState)(null),[tC,tI]=(0,n.useState)(null),[tE,tM]=(0,n.useState)(null),[tT,tR]=(0,n.useState)(""),[tD,tP]=(0,n.useState)([]),[tA,tL]=(0,n.useState)([]),[tO,tW]=(0,n.useState)(null),[t$,tH]=(0,n.useState)(null),[tF,tU]=(0,n.useState)(!1),[tB,tX]=(0,n.useState)([]),[tY,tG]=(0,n.useState)(null),[tZ,t_]=(0,n.useState)(""),[tK,tV]=(0,n.useState)(0),[tq,tJ]=(0,n.useState)("idle"),tQ=(0,n.useRef)(!1),t0=(0,n.useRef)(""),t1=(0,n.useRef)(null),t2=(0,n.useRef)(new Map),[t5,t6]=(0,n.useState)(0),t4=(0,n.useRef)(null),t8=(0,n.useRef)(null),t3=(0,n.useRef)(""),t7=(0,n.useRef)(eI),t9=(0,n.useRef)(""),ae=(0,n.useRef)(eM),at=(0,n.useRef)([]),aa=(0,n.useRef)(null),ar=(0,n.useRef)(!1),an=(0,n.useRef)(!1),as=Array.from(new Set([...t.designMockFiles.filter(e=>/\.html?$/i.test(e)),...tr]));at.current=as;let ai=t.designMockFiles.filter(e=>e.startsWith("design-mock/components/")),ao="approved"===ec,ad=eV&&as.includes(eV)?eV:as[0]??"";t9.current=ad,ar.current=ao,an.current=e7,t7.current=eI,ae.current=eM;let al=as.length>0&&null!=eJ&&!e0,ac=eS/100,ap=null!=ew?{w:Math.max(320,Math.min(1920,ew)),h:Math.max(560,Math.round(1.5*Math.max(320,Math.min(1920,ew))))}:"tablet"===ey?{w:768,h:1024}:"mobile"===ey?{w:390,h:844}:null,au=null!=ap,ag=au?ap.w:Math.max(1,tp.w/ac),am=au?ap.h:Math.max(1,tp.h/ac),ah=Math.max(1,tl.docW||tl.viewportW||1),ax=Math.max(1,tl.docH||tl.viewportH||1),af=e=>({left:e.x-tl.scrollX,top:e.y-tl.scrollY,width:e.w,height:e.h}),ab=e=>({left:e.x/100*ah-tl.scrollX,top:e.y/100*ax-tl.scrollY,width:e.w/100*ah,height:e.h/100*ax}),av=(e,t)=>({left:e/100*ah-tl.scrollX,top:t/100*ax-tl.scrollY}),{canUndo:ay,canRedo:az}=(0,n.useMemo)(()=>{let e=t2.current.get(ad);return{canUndo:!!e&&e.pos>0,canRedo:!!e&&e.pos<e.stack.length-1}},[t5,ad]);(0,n.useEffect)(()=>{if(document.getElementById("dz-style"))return;let e=document.createElement("style");e.id="dz-style",e.textContent=G,document.head.appendChild(e)},[]),(0,n.useEffect)(()=>{try{"0"===localStorage.getItem("bx.dzChat")&&ef(!1),"0"===localStorage.getItem("bx.dzRail")&&ev(!1)}catch{}},[]),(0,n.useEffect)(()=>{try{localStorage.setItem("bx.dzChat",ex?"1":"0")}catch{}},[ex]),(0,n.useEffect)(()=>{try{localStorage.setItem("bx.dzRail",eb?"1":"0")}catch{}},[eb]),(0,n.useEffect)(()=>{let e=!1,t=e=>e.length>250?e.slice(-250):e;function a(){if(e||document.hidden||ta.current)return;let a=new EventSource(`/api/stream?channel=design&evCursor=${te.current}&msgCursor=${tt.current}`);ta.current=a,a.addEventListener("ev",e=>{let a=JSON.parse(e.data);a.seq>te.current&&(te.current=a.seq),e4(e=>e.some(e=>e.id===a.id)?e:t([...e,a]))}),a.addEventListener("msg",e=>{let a=JSON.parse(e.data),r=a.createdAt?new Date(a.createdAt).getTime():0;if(r>tt.current&&(tt.current=r),e5(e=>e.some(e=>e.id===a.id)?e:t([...e,a])),e4(e=>e.filter(e=>e.runId!==a.id||"text"!==e.kind)),"agent"===a.fromKind){e9(!1),tV(e=>e+1),ed.refresh();let e=t9.current;e&&setTimeout(()=>{tQ.current||(t2.current.delete(e),t6(e=>e+1),g(e).then(e=>{e.ok&&null!=e.html&&(eQ(e.html),e1(""))}))},300)}})}function r(){ta.current&&(ta.current.close(),ta.current=null)}(async function(){let[t,a]=await Promise.all([(0,c.V)("design"),(0,p.k)("design",0)]);e||(e5(t),e4(a),te.current=a.reduce((e,t)=>Math.max(e,t.seq),0),tt.current=t.reduce((e,t)=>Math.max(e,t.createdAt?new Date(t.createdAt).getTime():0),0))})().catch(()=>{}).finally(()=>{!e&&(e3(!1),document.hidden||a())});let n=()=>{document.hidden?r():a()};return document.addEventListener("visibilitychange",n),()=>{e=!0,document.removeEventListener("visibilitychange",n),r()}},[]),(0,n.useEffect)(()=>{if(aM(),eK.current){eK.current=!1;return}let e=setTimeout(()=>{m(eM)},500);return eg(!0),ao&&(aa.current&&clearTimeout(aa.current),aa.current=setTimeout(()=>{aa.current=null,function(){if(!ar.current||an.current)return;let e=ae.current;e9(!0),h(`I changed the design directly on the canvas via the Styles panel — the canvas is the source of truth now. RECONCILE the source to match it; do NOT ask, just do it: write the current tokens into design-mock/styles/global.css (:root) — accent ${e.accent}, secondary ${e.secondary}, surface ${e.surface}, body font ${e.font}, heading font ${e.headingFont}, radius ${e.radius}px, theme ${e.theme} — and update design-mock/design-system.md (palette / typography / tokens) plus any affected component docs to reflect it, keeping every screen VISUALLY IDENTICAL. Then briefly summarize what you synced.`).then(e=>{e.ok||e9(!1)}),aW("Grace is syncing your change into the source CSS + docs…")}()},9e3)),()=>clearTimeout(e)},[eM]),(0,n.useEffect)(()=>{if(!ad)return void eQ(null);if(tQ.current&&ad===t0.current)return;tQ.current&&(tQ.current=!1,t0.current="",tJ("idle")),tc(e=>({...e,scrollX:0,scrollY:0}));let e=!0;return e1(""),g(ad).then(t=>{e&&(t.ok&&null!=t.html?eQ(t.html):(eQ(null),e1(t.error||el("design.toast.screenLoadFail"))))}),()=>{e=!1}},[as.join("|"),ad]),(0,n.useEffect)(()=>{if(tQ.current)return;let e=new Set(e2.map(e=>e.id)),t=e6.filter(t=>{if("create"!==t.kind&&"edit"!==t.kind||e.has(t.runId))return!1;let a=Q(t.target||"");return null!=a&&/^design-mock\/screens\/[^/]+\.html?$/i.test(a)});if(!t.length)return;let a=t[t.length-1];if(a.id===t3.current)return;t3.current=a.id;let r=Q(a.target||"");tn(e=>e.includes(r)?e:[...e,r]),eq(r),t2.current.delete(r),t6(e=>e+1),setTimeout(()=>{g(r).then(e=>{e.ok&&null!=e.html&&(eQ(e.html),e1(""))})},550)},[e6,e2]),(0,n.useEffect)(()=>{let e=new Set(e2.map(e=>e.id));e6.some(t=>!e.has(t.runId))&&e9(!1)},[e6,e2]),(0,n.useEffect)(()=>{let e=!0;return Promise.all([x().catch(()=>({comments:[]})),f().catch(()=>({versions:[]})),b().catch(()=>({docs:[]}))]).then(([t,a,r])=>{e&&(tP(t.comments||[]),tL(a.versions||[]),tX(r.docs||[]))}),()=>{e=!1}},[tK]);let aw=async()=>{try{let e=await (0,L.p)("design");if(e.used>=e.max&&!tF){tU(!0);try{await (0,O.L)("design"),e=await (0,L.p)("design")}finally{tU(!1)}}tH(e)}catch{}};async function ak(){if(!tF){tU(!0);try{await (0,O.L)("design"),await aw()}finally{tU(!1)}}}function aj(e){tG(e),t_(""),v(e).then(e=>{e.ok&&null!=e.body?t_(e.body):t_(el("design.docs.readErr"))})}(0,n.useEffect)(()=>{ex&&aw()},[ex,e2.length]),(0,n.useEffect)(()=>{"docs"===em&&tB.length&&(tY&&tB.some(e=>e.path===tY)||aj(tB[0].path))},[em,tB]);let aN=(0,n.useRef)(!1);(0,n.useEffect)(()=>{!t.gatePending||t.gateScaffolded||aN.current||e7||(aN.current=!0,e9(!0),y().then(e=>{e.ok||(e9(!1),aN.current=!1)}))},[t.gatePending,t.gateScaffolded]),(0,n.useEffect)(()=>{function e(e){var t,a,r;let n=e.data;if(n&&n.__cstla&&(!t4.current||e.source===t4.current.contentWindow))if("canvas:viewport"===n.type){let e=n.payload;tc({scrollX:Math.max(0,e.scrollX||0),scrollY:Math.max(0,e.scrollY||0),viewportW:Math.max(1,e.viewportW||1),viewportH:Math.max(1,e.viewportH||1),docW:Math.max(1,e.docW||e.viewportW||1),docH:Math.max(1,e.docH||e.viewportH||1)})}else if("canvas:ready"===n.type){aE(),aM();let e=!!n.payload?.interactive;tf.current=e,tx(e)}else if("canvas:hover"===n.type)ti(n.payload);else if("canvas:guides"===n.type)td(n.payload);else if("canvas:tree"===n.type)tm(n.payload.items);else if("canvas:nav"===n.type){let e,r,s,i=(t=String(n.payload?.href||""),a=at.current,r=((e=t.split("#")[0].split("?")[0].replace(/\/+$/,"")).split("/").pop()||e).replace(/\.html?$/i,"").toLowerCase(),(s=a.find(e=>(e.split("/").pop()||e).replace(/\.html?$/i,"").toLowerCase()===r))||""!==r&&"index"!==r&&"home"!==r||(s=a.find(e=>/(^|\/)(index|home)\.html?$/i.test(e))||a[0]),s||null);i&&(eq(i),tv(null),tz([]),tj(!1))}else if("canvas:select"===n.type){let e={...n.payload,pageId:t9.current};tv(e),tz([e]),tj("select"===t7.current||"edit"===t7.current)}else if("canvas:selectToggle"===n.type){let e={...n.payload,pageId:t9.current},t=tw.current,a=t.findIndex(t=>t.cstlaId===e.cstlaId),r=a>=0?t.filter((e,t)=>t!==a):[...t,e];tz(r),tv(r.length?r[r.length-1]:null),tj(!1)}else if("canvas:reselect"===n.type){let e={...n.payload,pageId:t9.current};tv(e),tz(t=>t.length?t.map(t=>t.cstlaId===e.cstlaId?e:t):[e])}else if("canvas:reselectMany"===n.type){let e=(n.payload||[]).map(e=>({...e,pageId:t9.current}));tz(e),tv(e.length?e[e.length-1]:null)}else if("canvas:removed"===n.type)tv(null),tz([]),tj(!1);else if("canvas:dirty"===n.type)tQ.current=!0,t0.current=t9.current,tJ("saving"),t1.current&&(clearTimeout(t1.current),t1.current=null);else if("canvas:editEnd"===n.type)tQ.current=!1,tJ("idle");else if("canvas:commit"===n.type)tf.current||aR(n.payload.html);else if("canvas:history"===n.type)tf.current?(tJ("idle"),aT()):(function(e,t){let a=t0.current||t9.current;if(!a)return;let r=t2.current.get(a);r||(r={stack:[],labels:[],pos:-1},t2.current.set(a,r)),r.pos>=0&&r.stack[r.pos]===e||(r.stack=r.stack.slice(0,r.pos+1),r.labels=r.labels.slice(0,r.pos+1),r.stack.push(e),r.labels.push(t||el("design.history.edited")),r.stack.length>60&&(r.stack.shift(),r.labels.shift()),r.pos=r.stack.length-1,t6(e=>e+1))}(n.payload.html,n.payload.label),aR(n.payload.html),eg(!0));else if("canvas:baseline"===n.type){let e;tf.current||(r=n.payload.html,!(e=t9.current)||t2.current.has(e)||(t2.current.set(e,{stack:[r],labels:[el("design.history.original")],pos:0}),t6(e=>e+1)))}else if("canvas:comment"===n.type)tM(n.payload);else if("canvas:markupDraw"===n.type)tI(n.payload);else if("canvas:markup"===n.type){let e=n.payload;tI(e),tM({xpPct:e.xPct,ypPct:e.yPct,markup:{x:e.xPct,y:e.yPct,w:e.wPct,h:e.hPct}})}else"canvas:edit"===n.type&&aO(n.payload.oldText,n.payload.newText)}return window.addEventListener("message",e),()=>window.removeEventListener("message",e)},[]),(0,n.useEffect)(()=>{aE(),td(null),"preview"===eI&&(ti(null),tj(!1))},[eI,ad]),(0,n.useEffect)(()=>{ti(null),td(null)},[eS,ad]),(0,n.useEffect)(()=>{let e=t8.current;if(!e)return;let t=()=>tu({w:Math.max(1,e.clientWidth),h:Math.max(1,e.clientHeight)});t();let a=new ResizeObserver(t);return a.observe(e),()=>a.disconnect()},[al]),(0,n.useEffect)(()=>{"layers"===em&&function(){try{t4.current?.contentWindow?.postMessage({__cstlaHost:1,type:"canvas:requestTree"},"*")}catch{}}()},[em,ad,tK]),(0,n.useEffect)(()=>{let e=e=>{let t=document.activeElement;t&&("INPUT"===t.tagName||"TEXTAREA"===t.tagName||t.isContentEditable)||((e.ctrlKey||e.metaKey)&&("z"===e.key||"Z"===e.key)?(e.preventDefault(),e.shiftKey?aA():aP()):(e.ctrlKey||e.metaKey)&&("y"===e.key||"Y"===e.key)?(e.preventDefault(),aA()):"Escape"===e.key&&(tz([]),tv(null),tj(!1)))};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[]),(0,n.useEffect)(()=>{tw.current=ty},[ty]);let aS=e=>eT(t=>({...t,...e}));function aC(e,t,a=""){let n=String(eM[t]??"");return(0,r.jsxs)("div",{className:"dz-trow",children:[(0,r.jsx)("label",{children:e}),(0,r.jsxs)("div",{className:"dz-colorrow",children:[(0,r.jsx)("input",{type:"color",value:n||a||"#888888",onChange:e=>aS({[t]:e.target.value})}),(0,r.jsx)("input",{type:"text",value:n,placeholder:a||el("design.styles.auto"),spellCheck:!1,onChange:e=>aS({[t]:e.target.value})})]})]},String(t))}function aI(e,t,a,n,s,i=""){let o=Number(eM[t]??0);return(0,r.jsxs)("div",{className:"dz-trow",children:[(0,r.jsxs)("label",{children:[e,(0,r.jsxs)("span",{className:"v",children:[o,i]})]}),(0,r.jsx)("input",{type:"range",min:a,max:n,step:s,value:o,onChange:e=>aS({[t]:Number(e.target.value)})})]},String(t))}function aE(){try{t4.current?.contentWindow?.postMessage({__cstlaHost:1,type:"canvas:setMode",mode:t7.current},"*")}catch{}}function aM(){let e=ae.current;try{let t,a;t4.current?.contentWindow?.postMessage({__cstlaHost:1,type:"canvas:applyTokens",tokens:{accent:e.accent,accentFg:e.accentFg||(t=e.accent.replace("#",""),a=parseInt(3===t.length?t.split("").map(e=>e+e).join(""):t,16),(.299*(a>>16&255)+.587*(a>>8&255)+.114*(255&a))/255>.6?"#15171c":"#ffffff"),secondary:e.secondary,surface:e.surface,success:e.success,warning:e.warning,danger:e.danger,font:e.font,headingFont:e.headingFont,fontWeight:e.fontWeight,lineHeight:e.lineHeight,letterSpacing:e.letterSpacing,radius:e.radius,borderWidth:e.borderWidth,borderColor:e.borderColor,shadow:e.shadow,space:e.density,containerWidth:e.containerWidth,motionMs:e.motionMs,ease:e.ease,fontScale:e.fontScale,theme:e.theme}},"*")}catch{}}function aT(){t1.current&&clearTimeout(t1.current),t1.current=setTimeout(()=>{tQ.current=!1,t0.current="",tJ("idle"),t1.current=null},1400)}function aR(e){let t=t0.current||t9.current;t&&z(t,e).then(e=>{e.ok?(tJ("saved"),tV(e=>e+1)):(tJ("idle"),aW(e.error||el("design.toast.couldNotSaveEdit"))),aT()})}function aD(e,t){let a=t.stack[t.pos];tv(null),tj(!1),tQ.current=!0,t0.current=e,tJ("saving"),t1.current&&(clearTimeout(t1.current),t1.current=null);try{t4.current?.contentWindow?.postMessage({__cstlaHost:1,type:"canvas:setBody",html:a},"*")}catch{}z(e,a).then(()=>{tJ("saved"),tV(e=>e+1),aT()}),t6(e=>e+1)}function aP(){let e=t9.current,t=t2.current.get(e);t&&!(t.pos<=0)&&(t.pos--,aD(e,t))}function aA(){let e=t9.current,t=t2.current.get(e);t&&!(t.pos>=t.stack.length-1)&&(t.pos++,aD(e,t))}async function aL(){let e=t9.current;if(!e||!al)return;eA(!0);let t=await w(e);eA(!1),t.ok?(aW(el("design.toast.savedCheckpoint",{label:t.label??""})),tV(e=>e+1)):aW(t.error||el("design.toast.couldNotSaveCheckpoint"))}async function aO(e,t){let a=t9.current;if(a&&e!==t)if((await k(a,e,t)).ok){let e=await g(a);e.ok&&null!=e.html&&eQ(e.html),aW(el("design.toast.editApplied"))}else aW(el("design.toast.sendingEdit")),e9(!0),h(`On screen ${a}, change the text "${e}" to "${t}".`)}function aW(e){e$(e),setTimeout(()=>e$(t=>t===e?"":t),2400)}async function a$(e){if(!e)return;let t=Array.from(e).filter(e=>e instanceof File);if(!t.length)return;eZ("");let a=t.slice(0,Math.max(0,6-eH.length));if(!a.length)return void eZ(el("design.toast.upTo6"));let r=new FormData;for(let e of a)r.append("files",e);eY(!0);try{let e=await fetch("/api/upload",{method:"POST",body:r}),t=await e.json();if(!e.ok||!t.ok)return void eZ(t.error||el("design.toast.uploadFailed"));eF(e=>[...e,...t.attachments].slice(0,6))}catch{eZ(el("design.toast.uploadFailed"))}finally{eY(!1),e_.current&&(e_.current.value="")}}function aH(e){let t=(e??eR).trim();if(!t&&!eH.length&&!tN||e7)return;e9(!0);let a=eH.slice();eD(""),eF([]),eZ(""),tS(null),h(t||(tN?"Adjust this element.":"Use the attached image(s) as the visual reference."),a,tN??void 0).then(e=>{e.ok||(aW(e.error||el("design.toast.couldNotStart")),e9(!1))})}async function aF(){eA(!0);let e=await j();(eA(!1),e.ok)?(ep("approved"),aW(el("design.toast.designApproved")),ed.refresh()):aW(e.error||el("design.toast.approveFailed"))}async function aU(){eA(!0);let e=await N();(eA(!1),e.ok)?(ep("approved"),eg(!1),e9(!0),eh("docs"),aW(el("design.toast.sentToExec"))):aW(e.error||el("design.toast.couldNotSendExec"))}async function aB(){eA(!0);let e=await S();(eA(!1),e.ok)?(e9(!0),eh("docs"),aW("Resuming handoff — Grace is finishing the documentation, then Ada plans it.")):aW(e.error||"Couldn't resume the handoff.")}async function aX(){eA(!0);let e=await C();if(eA(!1),!e.ok)return void aW(e.error||el("design.toast.buildFailed"));let t=e.built.reduce((e,t)=>e+t.before,0),a=e.built.reduce((e,t)=>e+t.after,0),r=t?Math.round((1-a/t)*100):0,n=e.built.filter(e=>e.obfuscated).length;aW(el("design.toast.built",{count:e.built.length,plural:1===e.built.length?"":"s",pct:r,obf:n?el("design.toast.builtObf",{n:n}):""})),ed.refresh()}async function aY(e=!1){if(!tE){tM(null),tR(""),tI(null);return}if(tE.markup){let t=tT.trim(),a=tE.markup;if(await I(t9.current,a,t),tM(null),tR(""),tI(null),tV(e=>e+1),eh("comments"),e){e9(!0);let e=ei(a);h(`On screen ${t9.current}, I marked a region for review (${e}).${t?` My note: "${t}"`:" Please review and refine it."} Update the screen accordingly.`)}return}if(!tT.trim()){tM(null),tR("");return}let t=tE.selection??tb,a=t?{...t,pageId:t9.current}:void 0;await E(t9.current,tE.xpPct,tE.ypPct,tT.trim(),a),tM(null),tR(""),tV(e=>e+1),eh("comments")}let aG=[...e2].sort((e,t)=>(e.createdAt?new Date(e.createdAt).getTime():0)-(t.createdAt?new Date(t.createdAt).getTime():0)).at(-1),aZ=e7||0!==e2.length&&aG?.fromKind!=="agent"?[]:function(e,t,a){let r=[],n=e=>(e??"").replace(/\s+/g," ").replace(/^[-•*\s]+/,"").replace(/[.:;,!?]+$/,"").trim(),s=(e,t)=>{let a=n(e);a.length>=2&&a.length<=42&&!r.some(e=>e.label.toLowerCase()===a.toLowerCase())&&r.push({label:a?a.charAt(0).toUpperCase()+a.slice(1):a,prompt:t})},i=[...e].reverse().find(e=>"agent"===e.fromKind&&e.text);if(i?.text)for(let e of i.text.matchAll(/\*\*(.+?)\*\*/g)){let t=n(e[1]);if(t.length<2||t.length>42||ee.test(t)||(t.match(/\s+/g)||[]).length>6||s(t,t),r.length>=4)break}for(let[e,n]of t.designMockFiles.some(e=>/\.html?$/i.test(e))?et:ea)if(s(a(e),n),r.length>=4)break;return r.slice(0,4)}(e2,t,el),a_=e?{id:e.id,handle:e.handle,name:e.name,role:"Frontend",color:e.color,image:e.image??null,adapter:"claude",status:"idle",health:null}:null,aK=a_?[a_]:[],aV={};for(let e of e6)(aV[e.runId]??=[]).push(e);let aq=new Set(e2.map(e=>e.id)),aJ=Object.entries(aV).filter(([e])=>!aq.has(e)),aQ=e7||aJ.length>0,a0=tD.filter(e=>e.pageKey===ad&&!en(e)),a1=tD.filter(e=>e.pageKey===ad&&en(e)),a2=[];a2.push(["layers",el("design.tab.layers")],["screens",el("design.tab.screens")],["docs",el("design.tab.docs")],["styles",el("design.tab.styles")],["history",el("design.tab.history")],["comments",`${el("design.tab.comments")}${a0.length?" "+a0.length:""}`],["versions",`${el("design.tab.versions")}${tA.length?" "+tA.length:""}`]);let a5=a2.some(([e])=>e===em)?em:"screens",a6=ts?af(ts):null,a4=tb?af(tb.boundingBox):null;return(0,r.jsxs)("div",{className:"dz-wrap",children:[ex?(0,r.jsxs)("div",{className:"dz-chat",children:[(0,r.jsxs)("div",{className:"dz-chat-head",children:[(0,r.jsx)(d.e,{name:e?.name||"Grace",color:e?.color||"#84aef5",image:e?.image,size:28}),(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{className:"dz-ch-t",children:[e?.name||"Grace"," \xb7 ",el("design.chat.role")]}),(0,r.jsx)("div",{className:"dz-ch-s",children:el("design.chat.subtitle")})]}),aQ&&(0,r.jsxs)("span",{className:"dz-live",children:[(0,r.jsx)("span",{className:"dot"})," ",el("design.chat.live")]}),(0,r.jsx)("button",{className:"dz-collapse-btn",title:el("design.chat.collapse"),onClick:()=>ef(!1),children:(0,r.jsx)(o.I,{name:"chevronLeft",size:15})})]}),t$&&(0,r.jsxs)("div",{className:"ctx-bar",children:[(0,r.jsx)(W.m,{stat:t$,onCompact:ak,compacting:tF}),(0,r.jsx)("span",{})]}),(0,r.jsx)(l.H8,{msgs:e2,typing:e7&&a_?[a_.handle]:[],agents:aK,byRun:aV,liveRuns:aJ,loading:e8,markdownAgent:!0,avatarSize:28,emptyHint:el("design.chat.emptyHint")}),(0,r.jsxs)("div",{className:"dz-composer"+(eU?" drag":""),onDragOver:e=>{e.preventDefault(),eB(!0)},onDragLeave:e=>{e.preventDefault(),eB(!1)},onDrop:e=>{e.preventDefault(),eB(!1),a$(e.dataTransfer.files)},children:[!ao&&aZ.length>0&&!tN&&(0,r.jsx)("div",{className:"dz-chips",children:aZ.map(e=>(0,r.jsx)("span",{className:"dz-chip",onClick:()=>aH(e.prompt),children:e.label},e.label))}),tN&&(0,r.jsxs)("div",{className:"dz-attach",children:[(0,r.jsx)("span",{className:"sw",style:{background:eM.accent}})," ",el("design.composer.elementLabel")," ",(0,r.jsx)("b",{style:{fontWeight:700},children:tN.componentName}),(0,r.jsx)("span",{className:"x",onClick:()=>tS(null),children:(0,r.jsx)(o.I,{name:"close",size:12})})]}),eG&&(0,r.jsx)("div",{className:"dz-uperr",children:eG}),eH.length>0&&(0,r.jsx)("div",{className:"dz-atts",children:eH.map((e,t)=>(0,r.jsxs)("span",{className:"dz-att",children:[e.type.startsWith("image/")&&(0,r.jsx)("img",{src:`/api/upload?path=${encodeURIComponent(e.path)}`,alt:""}),(0,r.jsx)("span",{className:"nm",children:e.name}),(0,r.jsx)("span",{className:"rm",title:el("design.composer.remove"),onClick:()=>eF(e=>e.filter((e,a)=>a!==t)),children:(0,r.jsx)(o.I,{name:"close",size:11})})]},e.path))}),(0,r.jsxs)("div",{className:"dz-input",children:[(0,r.jsx)("button",{className:"dz-clip",disabled:e7||eX,title:el("design.composer.attach"),onClick:()=>e_.current?.click(),children:(0,r.jsx)(o.I,{name:eX?"refresh":"add",size:15,className:eX?"sync-spin":""})}),(0,r.jsx)("input",{placeholder:tN?el("design.composer.changePlaceholder",{name:tN.componentName}):el("design.composer.placeholder"),value:eR,disabled:e7,onChange:e=>eD(e.target.value),onKeyDown:e=>{"Enter"===e.key&&aH()},onPaste:function(e){let t=Array.from(e.clipboardData?.items||[]).filter(e=>"file"===e.kind&&e.type.startsWith("image/")).map(e=>e.getAsFile()).filter(e=>!!e);t.length&&(e.preventDefault(),a$(t))}}),(0,r.jsx)("button",{className:"dz-send",disabled:e7||!eR.trim()&&!eH.length&&!tN,onClick:()=>aH(),children:(0,r.jsx)(o.I,{name:e7?"refresh":"send",size:15,className:e7?"sync-spin":""})})]}),(0,r.jsx)("input",{ref:e_,type:"file",accept:"image/*,.pdf",multiple:!0,style:{display:"none"},onChange:e=>a$(e.target.files)})]})]}):(0,r.jsxs)("div",{className:"dz-strip left",onClick:()=>ef(!0),title:el("design.chat.expand"),children:[(0,r.jsx)(o.I,{name:"chevronRight",size:16}),(0,r.jsx)(o.I,{name:"chat",size:16}),aQ&&(0,r.jsx)("span",{style:{width:7,height:7,borderRadius:"50%",background:"var(--accent)"}})]}),(0,r.jsxs)("div",{className:"dz-center",children:[t.handoffPending&&(0,r.jsxs)("div",{className:"dz-approve-banner",style:{background:"linear-gradient(90deg,rgba(224,164,78,.20),rgba(224,164,78,.03))"},children:[(0,r.jsx)("div",{className:"dz-ab-ic",style:{background:"rgba(224,164,78,.22)",color:"var(--accent)"},children:(0,r.jsx)(o.I,{name:aQ?"refresh":"warn",size:17,className:aQ?"sync-spin":""})}),(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"dz-ab-t",children:aQ?el("design.handoff.finishing"):el("design.handoff.interrupted")}),(0,r.jsx)("div",{className:"dz-ab-s",children:aQ?el("design.handoff.finishingSub"):el("design.handoff.interruptedSub")})]}),!aQ&&(0,r.jsx)("div",{className:"dz-ab-actions",children:(0,r.jsxs)("button",{className:"dz-mini-btn accent",disabled:eP,onClick:aB,children:[(0,r.jsx)(o.I,{name:eP?"refresh":"sync",size:13,className:eP?"sync-spin":""})," ",el("design.handoff.resume")]})})]}),t.handoffDone&&!t.handoffPending&&(0,r.jsxs)("div",{className:"dz-approve-banner",style:{background:eu?"linear-gradient(90deg,rgba(224,164,78,.22),rgba(224,164,78,.03))":"linear-gradient(90deg,rgba(74,165,114,.20),rgba(74,165,114,.03))"},children:[(0,r.jsx)("div",{className:"dz-ab-ic",style:{background:eu?"rgba(224,164,78,.22)":"rgba(74,165,114,.22)",color:eu?"var(--accent)":"#3fa971"},children:(0,r.jsx)(o.I,{name:eu?"edit":"goto",size:17})}),(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"dz-ab-t",children:eu?"Design updated \xb7 send it to Ada":"Handed off to execution \xb7 Ada is building"}),(0,r.jsx)("div",{className:"dz-ab-s",children:eu?"You edited the design after the last hand-off — send the update so Ada applies it on top (backend wiring preserved).":"This design is the real frontend. Keep refining it with Grace — re-send to push an update (engineers' backend wiring is preserved)."})]}),(0,r.jsx)("div",{className:"dz-ab-actions",children:(0,r.jsxs)("button",{className:"dz-mini-btn accent"+(eu?" dz-pulse":""),disabled:eP,onClick:aU,children:[(0,r.jsx)(o.I,{name:eP?"refresh":eu?"goto":"sync",size:13,className:eP?"sync-spin":""})," ",eu?"Send update to execution":"Re-send update"]})})]}),ao&&!t.handoffPending&&!t.handoffDone&&(0,r.jsxs)("div",{className:"dz-approve-banner",children:[(0,r.jsx)("div",{className:"dz-ab-ic",children:(0,r.jsx)(o.I,{name:eu?"edit":"check",size:17})}),(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"dz-ab-t",children:eu?"Design updated \xb7 ready to send":el("design.banner.approvedTitle")}),(0,r.jsx)("div",{className:"dz-ab-s",children:eu?"You edited the approved design — send it to execution to push the update.":el("design.banner.approvedSub")})]}),(0,r.jsx)("div",{className:"dz-ab-actions",children:(0,r.jsxs)("button",{className:"dz-mini-btn accent"+(eu?" dz-pulse":""),disabled:eP,onClick:aU,children:[(0,r.jsx)(o.I,{name:eP?"refresh":"goto",size:13,className:eP?"sync-spin":""})," ",eu?"Send update to execution":el("design.banner.sendToExecution")]})})]}),!ao&&t.gatePending&&(0,r.jsxs)("div",{className:"dz-approve-banner",style:{background:"linear-gradient(90deg,rgba(99,102,241,.16),rgba(99,102,241,.02))"},children:[(0,r.jsx)("div",{className:"dz-ab-ic",style:{background:"rgba(99,102,241,.18)",color:"#6366f1"},children:(0,r.jsx)(o.I,{name:"bot",size:17})}),(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"dz-ab-t",children:el("design.banner.adaWaitingTitle")}),(0,r.jsxs)("div",{className:"dz-ab-s",children:[el("design.banner.adaWaitingPre")," ",(0,r.jsx)("b",{children:el("design.banner.adaWaitingAction")})," ",el("design.banner.adaWaitingPost")," ",aQ?el("design.banner.gridSettingUp"):el("design.banner.gridStart")]})]}),(0,r.jsx)("div",{className:"dz-ab-actions",children:(0,r.jsxs)("button",{className:"dz-mini-btn",disabled:e7,onClick:()=>{e9(!0),y().then(e=>{e.ok||e9(!1)})},children:[(0,r.jsx)(o.I,{name:e7?"refresh":"skill",size:13,className:e7?"sync-spin":""})," ",el("design.banner.setUpWithGrace")]})})]}),(0,r.jsxs)("div",{className:"dz-bar",children:[(0,r.jsx)("div",{className:"dz-modes",children:V.map(e=>(0,r.jsxs)("span",{className:"dz-mode "+(eI===e.id?"on":""),onClick:()=>eE(e.id),title:el("design.mode."+e.id),children:[(0,r.jsx)(o.I,{name:e.ic,size:13})," ",el("design.mode."+e.id)]},e.id))}),as.length>0&&(0,r.jsxs)("div",{className:"dz-seg",children:[(0,r.jsx)("button",{onClick:aP,disabled:!ay,title:el("design.toolbar.undo"),children:(0,r.jsx)(o.I,{name:"chevronLeft",size:13})}),(0,r.jsx)("button",{onClick:aA,disabled:!az,title:el("design.toolbar.redo"),children:(0,r.jsx)(o.I,{name:"chevronRight",size:13})}),(0,r.jsxs)("button",{onClick:function(){let e=t9.current,t=t2.current.get(e);t&&!(t.pos<=0)&&(t.pos=0,aD(e,t),aW(el("design.toast.reset")))},disabled:!ay,title:el("design.toolbar.resetTitle"),children:[(0,r.jsx)(o.I,{name:"repeat",size:13})," ",el("design.toolbar.reset")]}),(0,r.jsxs)("button",{onClick:aL,disabled:eP||!al,title:el("design.toolbar.saveTitle"),children:[(0,r.jsx)(o.I,{name:"check",size:13})," ",el("design.toolbar.save")]}),(0,r.jsxs)("button",{onClick:function(){let e=t9.current;e&&(e9(!0),h(`I manually edited the screen ${e} directly on the canvas — it now has inline-style overrides, transform:translate offsets and data-cstla-id/data-cstla-tx attributes added by the visual editor. Refactor it into CLEAN, token-driven, professional CSS per the CSS STANDARD: fold the inline styles into the <style> sheet under semantic BEM-ish classes, turn transform offsets into real layout (flex/grid/margins/gap), drop every data-cstla-* attribute, and keep the screen VISUALLY IDENTICAL. Then summarize what you cleaned up.`))},title:el("design.toolbar.cleanUpTitle"),children:[(0,r.jsx)(o.I,{name:"skill",size:13})," ",el("design.toolbar.cleanUp")]})]}),(0,r.jsx)("div",{className:"dz-spacer"}),(0,r.jsx)("div",{className:"dz-seg",children:[50,75,100].map(e=>(0,r.jsxs)("button",{className:eS===e?"on":"",onClick:()=>eC(e),title:el("design.toolbar.zoom",{pct:e}),children:[e,"%"]},e))}),(0,r.jsxs)("div",{className:"dz-seg",children:[(0,r.jsx)("button",{className:"desktop"===ey&&null==ew?"on":"",onClick:()=>{ez("desktop"),ek(null)},title:el("design.toolbar.desktop"),children:(0,r.jsx)(o.I,{name:"sidebarIcon",size:13})}),(0,r.jsx)("button",{className:"tablet"===ey&&null==ew?"on":"",onClick:()=>{ez("tablet"),ek(null)},title:el("design.toolbar.tabletTitle"),children:el("design.toolbar.tablet")}),(0,r.jsx)("button",{className:"mobile"===ey&&null==ew?"on":"",onClick:()=>{ez("mobile"),ek(null)},title:el("design.toolbar.mobileTitle"),children:el("design.toolbar.mobile")}),(0,r.jsx)("input",{className:"dz-bpw",type:"number",min:320,max:1920,placeholder:"px",value:ew??"",title:el("design.toolbar.customWidth"),onChange:e=>{let t=parseInt(e.target.value,10);ek(Number.isFinite(t)&&t>0?Math.max(320,Math.min(1920,t)):null)}})]}),(0,r.jsxs)("div",{className:"dz-seg",children:[(0,r.jsx)("button",{className:"dark"===eM.theme?"on":"",onClick:()=>eT(e=>({...e,theme:"dark"})),title:el("design.toolbar.dark"),children:(0,r.jsx)(o.I,{name:"moon",size:13})}),(0,r.jsx)("button",{className:"light"===eM.theme?"on":"",onClick:()=>eT(e=>({...e,theme:"light"})),title:el("design.toolbar.light"),children:(0,r.jsx)(o.I,{name:"sun",size:13})})]}),(0,r.jsxs)("div",{className:"dz-seg",title:el("design.mode2.tip"),children:[(0,r.jsxs)("button",{className:ej?"":"on",onClick:()=>eN(!1),children:[(0,r.jsx)(o.I,{name:"grid",size:13})," ",el("design.mode2.design")]}),(0,r.jsxs)("button",{className:ej?"on":"",onClick:()=>eN(!0),children:[(0,r.jsx)(o.I,{name:"play",size:13})," ",el("design.mode2.live")]})]}),th?(0,r.jsxs)("span",{className:"dz-save preview",title:el("design.toolbar.previewOnlyTitle"),children:[(0,r.jsx)(o.I,{name:"play",size:12})," ",el("design.toolbar.previewOnly")]}):"idle"!==tq&&(0,r.jsxs)("span",{className:"dz-save "+tq,title:"saving"===tq?el("design.toolbar.savingTitle"):el("design.toolbar.savedTitle"),children:[(0,r.jsx)(o.I,{name:"saving"===tq?"refresh":"check",size:12,className:"saving"===tq?"sync-spin":""})," ","saving"===tq?el("design.toolbar.saving"):el("design.toolbar.saved")]}),(0,r.jsxs)("button",{className:"dz-mini-btn",onClick:()=>eO(!0),children:[(0,r.jsx)(o.I,{name:"arrowDown",size:13})," ",el("design.toolbar.export")]}),(0,r.jsxs)("button",{className:"dz-mini-btn accent",disabled:eP,onClick:aF,title:ao?"Re-approve the current design as the official reference":void 0,children:[(0,r.jsx)(o.I,{name:"check",size:13})," ",ao?"Approve changes":el("design.toolbar.approve")]})]}),as.length>0&&(0,r.jsxs)("div",{className:"dz-pagestrip",children:[(0,r.jsx)("div",{className:"dz-ptabs",children:as.slice(0,8).map(e=>(0,r.jsxs)("span",{className:"dz-ptab "+(ad===e?"active":""),onClick:()=>{eq(e),tv(null),tj(!1)},children:[(0,r.jsx)(o.I,{name:"grid",size:13})," ",J(e)]},e))}),(0,r.jsxs)("span",{className:"dz-hint",children:[(0,r.jsx)(o.I,{name:V.find(e=>e.id===eI).ic,size:12})," ","edit"===eI?"Click to select \xb7 double-click to edit text (the design stays faithful to the mock — no move/resize/add)":"select"===eI?"Click to select an element \xb7 switch to Edit to edit its text":el("design.hint."+eI)]})]}),(0,r.jsxs)("div",{className:"dz-canvas"+(al?` has-screen ${au?"framed":"desktop"}`:""),ref:t8,children:[ej&&(0,r.jsx)(Y,{onAskGrace:e=>aH(e),asking:e7}),al?(0,r.jsxs)("div",{className:"dz-artwrap",style:{width:ag*ac,height:am*ac},children:[(0,r.jsxs)("div",{className:"dz-art","data-viewport":ey,style:{width:ag,height:am,transform:`scale(${ac})`,transformOrigin:"top left"},children:[(0,r.jsx)("iframe",{ref:t4,title:el("design.canvas.previewTitle"),sandbox:"allow-scripts",srcDoc:($=eJ??"",H=`<script data-cstla-instrument>${A}</script>`,/<\/body>/i.test($)?$.replace(/<\/body>/i,`${H}</body>`):$+H),onLoad:()=>{aE(),aM()},style:{width:"100%",height:"100%",border:"none",background:"#fff",display:"block"}}),(0,r.jsxs)("div",{className:"dz-ovl",children:[to&&"edit"===eI&&(0,r.jsxs)(r.Fragment,{children:[to.v.map((e,t)=>(0,r.jsx)("div",{className:"dz-guide v",style:{left:e-tl.scrollX}},"gv"+t)),to.h.map((e,t)=>(0,r.jsx)("div",{className:"dz-guide h",style:{top:e-tl.scrollY}},"gh"+t))]}),ts&&a6&&!tb&&"preview"!==eI&&"markup"!==eI&&"comments"!==eI&&(0,r.jsx)("div",{className:"dz-hl",style:a6,children:(0,r.jsx)("span",{className:"tag",children:ts.label})}),"preview"!==eI&&ty.map(e=>(0,r.jsx)("div",{className:"dz-selbox",style:af(e.boundingBox)},e.cstlaId)),a1.map(e=>(0,r.jsx)("div",{className:"dz-mk",style:ab(es(e))},e.id)),tC&&(0,r.jsx)("div",{className:"dz-mk",style:ab({x:tC.xPct,y:tC.yPct,w:tC.wPct,h:tC.hPct})}),a0.map((e,t)=>(0,r.jsx)("div",{className:"dz-pin",style:av(e.xp,e.yp),onClick:e=>{e.stopPropagation(),eh("comments")},children:t+1},e.id))]})]}),tk&&tb&&a4&&"preview"!==eI&&ty.length<=1&&(0,r.jsxs)("div",{className:"dz-ctx",style:{left:Math.max(6,a4.left*ac),top:Math.max(4,a4.top*ac-40)},onClick:e=>e.stopPropagation(),children:[(0,r.jsxs)("button",{className:"ask",onClick:()=>{tS(tb),tj(!1),aW(el("design.toast.elementAttached"))},children:[(0,r.jsx)(o.I,{name:"bot",size:13})," ",el("design.ctx.askFront")]}),(0,r.jsx)("button",{onClick:()=>tj(!1),children:(0,r.jsx)(o.I,{name:"close",size:13})})]}),tE&&(0,r.jsxs)("div",{className:"dz-cpop",style:{left:Math.max(6,Math.min((F=av(tE.xpPct,tE.ypPct)).left*ac,Math.max(6,ag*ac-226))),top:Math.max(6,Math.min(F.top*ac,Math.max(6,am*ac-120)))},onClick:e=>e.stopPropagation(),children:[(0,r.jsx)("textarea",{rows:3,autoFocus:!0,placeholder:tE.markup?el("design.cmt.markupPlaceholder"):el("design.cmt.pointPlaceholder"),value:tT,onChange:e=>tR(e.target.value),onKeyDown:e=>{"Enter"===e.key&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),aY())}}),tE.markup?(0,r.jsxs)("div",{className:"row",style:{flexDirection:"column",alignItems:"stretch"},children:[(0,r.jsxs)("button",{className:"dz-mini-btn accent",style:{justifyContent:"center"},onClick:()=>aY(!0),children:[(0,r.jsx)(o.I,{name:"bot",size:12})," ",el("design.cmt.markAskGrace")]}),(0,r.jsx)("button",{className:"dz-mini-btn",style:{justifyContent:"center"},onClick:()=>aY(!1),children:el("design.cmt.markRegion")}),(0,r.jsx)("button",{className:"dz-mini-btn",style:{justifyContent:"center"},onClick:()=>{tM(null),tR(""),tI(null)},children:el("design.cmt.cancel")})]}):(0,r.jsxs)("div",{className:"row",children:[(0,r.jsx)("button",{className:"dz-mini-btn",onClick:()=>{tM(null),tR(""),tI(null)},children:el("design.cmt.cancel")}),(0,r.jsx)("button",{className:"dz-mini-btn accent",onClick:()=>aY(),children:el("design.cmt.comment")})]})]}),aQ&&(0,r.jsxs)("div",{className:"dz-build-bar",children:[(0,r.jsx)(o.I,{name:"skill",size:13})," ",el("design.canvas.working")," ",(0,r.jsx)("span",{className:"sh"})]})]}):(0,r.jsx)("div",{className:"dz-emptywrap",children:e0?(0,r.jsxs)("div",{className:"dz-empty",children:[(0,r.jsx)("div",{className:"ic",children:(0,r.jsx)(o.I,{name:"error",size:22})}),(0,r.jsx)("div",{className:"t",children:el("design.empty.loadErrTitle")}),(0,r.jsx)("div",{className:"s",children:e0})]}):0===as.length&&ai.length>0?(0,r.jsxs)("div",{className:"dz-empty",children:[(0,r.jsx)("div",{className:"ic",children:(0,r.jsx)(o.I,{name:"doc",size:22})}),(0,r.jsx)("div",{className:"t",children:el("design.empty.componentsTitle",{count:ai.length,plural:ai.length>1?"s":""})}),(0,r.jsx)("div",{className:"s",children:el("design.empty.componentsBody")})]}):(0,r.jsxs)("div",{className:"dz-empty",children:[(0,r.jsx)("div",{className:"ic",children:(0,r.jsx)(o.I,{name:"grid",size:22})}),(0,r.jsx)("div",{className:"t",children:el("design.empty.noPrototypeTitle")}),(0,r.jsxs)("div",{className:"s",children:[el("design.empty.noPrototypePre")," ",(0,r.jsx)("span",{className:"mono",children:"design-mock/"}),". ",el("design.empty.noPrototypePost")]})]})})]})]}),eb?(0,r.jsxs)("div",{className:"dz-rail",children:[(0,r.jsxs)("div",{className:"dz-rail-tabs",children:[a2.map(([e,t])=>(0,r.jsx)("div",{className:"dz-rt "+(a5===e?"active":""),onClick:()=>eh(e),children:t},e)),(0,r.jsx)("button",{className:"dz-collapse-btn",title:el("design.rail.collapse"),onClick:()=>ev(!1),children:(0,r.jsx)(o.I,{name:"chevronRight",size:15})})]}),(0,r.jsxs)("div",{className:"dz-rail-body",children:["layers"===a5&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"dz-sec",children:el("design.layers.title")}),al?0===tg.length?(0,r.jsx)("div",{style:{fontSize:11.5,color:"var(--text-dim)",lineHeight:1.5},children:el("design.layers.reading")}):tg.map(e=>(0,r.jsxs)("div",{className:"dz-layer"+(tb?.nodePath===e.path?" active":""),style:{paddingLeft:8+11*e.depth},onClick:()=>(function(e){try{t4.current?.contentWindow?.postMessage({__cstlaHost:1,type:"canvas:selectByPath",path:e},"*")}catch{}})(e.path),title:`<${e.tag}>`,children:[(0,r.jsx)(o.I,{name:e.kids>0?"grid":"dot",size:10}),(0,r.jsx)("span",{className:"lt",children:e.label}),(0,r.jsxs)("span",{className:"lg",children:[e.tag,e.kids>0?` \xb7 ${e.kids}`:""]})]},e.path)):(0,r.jsx)("div",{style:{fontSize:11.5,color:"var(--text-dim)",lineHeight:1.5},children:el("design.layers.openScreen")})]}),"screens"===a5&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"dz-sec",children:el("design.screens.title")}),0===as.length?(0,r.jsx)("div",{style:{fontSize:11.5,color:"var(--text-dim)",lineHeight:1.5},children:el("design.screens.empty")}):as.map(e=>(0,r.jsxs)("div",{className:"dz-row "+(ad===e?"active":""),onClick:()=>{eq(e),tv(null),tj(!1)},children:[(0,r.jsx)("div",{className:"dz-r-ic",children:(0,r.jsx)(o.I,{name:"grid",size:14})}),(0,r.jsxs)("div",{style:{minWidth:0},children:[(0,r.jsx)("div",{className:"dz-r-t",children:J(e)}),(0,r.jsx)("div",{className:"dz-r-s",children:e.replace(/^design-mock\//,"")})]}),ad===e&&(0,r.jsx)("span",{className:"dz-r-meta",children:el("design.screens.active")})]},e)),(0,r.jsxs)("div",{className:"dz-addrow",onClick:()=>aH("Build a new screen for the prototype."),children:[(0,r.jsx)(o.I,{name:"add",size:13})," ",el("design.screens.newScreen")]}),ai.length>0&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"dz-sec",style:{marginTop:16},children:el("design.screens.components",{count:ai.length})}),(0,r.jsx)("div",{className:"dz-comp-grid",children:ai.slice(0,8).map((e,t)=>(0,r.jsxs)("div",{className:"dz-comp",children:[(0,r.jsx)("div",{style:{height:30,borderRadius:7,background:t%2?q(eM.accent,.16):"var(--bg-app)",border:"1px solid var(--border)",display:"grid",placeItems:"center",color:"var(--accent)",fontSize:12},children:"◧"}),(0,r.jsx)("div",{className:"nm",children:(e.split("/").pop()||e).replace(/\.[a-z]+$/i,"")})]},e))})]})]}),"docs"===a5&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"dz-sec",children:el("design.docs.title")}),0===tB.length?(0,r.jsx)("div",{style:{fontSize:11.5,color:"var(--text-dim)",lineHeight:1.5},children:el("design.docs.empty")}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"dz-docnav",children:tB.map(e=>(0,r.jsxs)("div",{className:"dz-doctab "+(tY===e.path?"active":""),onClick:()=>aj(e.path),title:e.label,children:[(0,r.jsx)(o.I,{name:/APPROVED/i.test(e.path)?"check":"doc",size:12}),(0,r.jsx)("span",{children:e.label})]},e.path))}),(0,r.jsx)("div",{className:"dz-docbody md",children:tZ?(0,r.jsx)(D.oz,{remarkPlugins:[P.A],children:tZ}):(0,r.jsx)("div",{style:{fontSize:11.5,color:"var(--text-dim)"},children:el("design.docs.reading")})})]})]}),"styles"===a5&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"dz-sec",children:el("design.styles.palette")}),(0,r.jsx)("div",{className:"dz-swatches",children:Z.map(e=>(0,r.jsx)("span",{title:e.name,className:"dz-sw "+(eM.accent===e.c?"on":""),style:{background:e.c},onClick:()=>aS({accent:e.c,accentName:e.name})},e.name))}),aC(el("design.styles.accentCustom"),"accent"),aC(el("design.styles.secondary"),"secondary"),aC(el("design.styles.surface"),"surface"),(0,r.jsxs)("details",{className:"dz-adv",children:[(0,r.jsx)("summary",{children:el("design.styles.semanticColors")}),aC(el("design.styles.success"),"success","#10b981"),aC(el("design.styles.warning"),"warning","#f59e0b"),aC(el("design.styles.danger"),"danger","#ef4444"),aC(el("design.styles.accentText"),"accentFg")]}),(0,r.jsx)("div",{className:"dz-sec",style:{marginTop:18},children:el("design.styles.typography")}),(0,r.jsx)("div",{className:"dz-sub",children:el("design.styles.bodyFont")}),(0,r.jsx)("div",{className:"dz-opt",children:_.map(e=>(0,r.jsx)("span",{className:"dz-pill2 "+(eM.fontName===e.n?"on":""),onClick:()=>aS({font:e.s,fontName:e.n}),children:e.n},e.n))}),(0,r.jsx)("div",{className:"dz-sub",children:el("design.styles.headingFont")}),(0,r.jsx)("div",{className:"dz-opt",children:_.map(e=>(0,r.jsx)("span",{className:"dz-pill2 "+(eM.headingFontName===e.n?"on":""),onClick:()=>aS({headingFont:e.s,headingFontName:e.n}),children:e.n},e.n))}),aI(el("design.styles.weight"),"fontWeight",300,800,100),aI(el("design.styles.lineHeight"),"lineHeight",1,2,.05),aI(el("design.styles.letterSpacing"),"letterSpacing",-1,4,.1,"px"),(0,r.jsx)("div",{className:"dz-sub",children:el("design.styles.textSize")}),(0,r.jsx)("div",{className:"dz-opt",children:[[el("design.styles.sizeSmall"),.9],[el("design.styles.sizeDefault"),1],[el("design.styles.sizeLarge"),1.15]].map(([e,t])=>(0,r.jsx)("span",{className:"dz-pill2 "+(eM.fontScale===t?"on":""),onClick:()=>aS({fontScale:t}),children:e},e))}),(0,r.jsx)("div",{className:"dz-sec",style:{marginTop:18},children:el("design.styles.shapeDepth")}),(0,r.jsx)("div",{className:"dz-opt",children:K.map(e=>(0,r.jsx)("span",{className:"dz-pill2 "+(eM.radius===e.r?"on":""),onClick:()=>aS({radius:e.r}),children:el("design.styles.radius"+e.n)},e.n))}),aI(el("design.styles.radius"),"radius",0,32,1,"px"),aI(el("design.styles.borderWidth"),"borderWidth",0,4,1,"px"),aC(el("design.styles.borderColor"),"borderColor"),(0,r.jsx)("div",{className:"dz-sub",children:el("design.styles.shadow")}),(0,r.jsx)("div",{className:"dz-opt",children:["none","sm","md","lg"].map(e=>(0,r.jsx)("span",{className:"dz-pill2 "+(eM.shadow===e?"on":""),onClick:()=>aS({shadow:e}),children:"none"===e?el("design.styles.shadowNone"):e.toUpperCase()},e))}),(0,r.jsx)("div",{className:"dz-sec",style:{marginTop:18},children:el("design.styles.theme")}),(0,r.jsxs)("div",{className:"dz-opt",children:[(0,r.jsx)("span",{className:"dz-pill2 "+("dark"===eM.theme?"on":""),onClick:()=>aS({theme:"dark"}),children:el("design.styles.dark")}),(0,r.jsx)("span",{className:"dz-pill2 "+("light"===eM.theme?"on":""),onClick:()=>aS({theme:"light"}),children:el("design.styles.light")})]}),(0,r.jsx)("div",{className:"dz-sec",style:{marginTop:18},children:el("design.styles.spacingLayoutMotion")}),(0,r.jsx)("div",{className:"dz-opt",children:[[el("design.styles.densityCompact"),8],[el("design.styles.densityCozy"),12],[el("design.styles.densityComfy"),16]].map(([e,t])=>(0,r.jsx)("span",{className:"dz-pill2 "+(eM.density===t?"on":""),onClick:()=>aS({density:t}),children:e},e))}),aI(el("design.styles.density"),"density",4,28,1,"px"),aI(el("design.styles.containerWidth"),"containerWidth",880,1600,20,"px"),aI(el("design.styles.motionSpeed"),"motionMs",0,600,20,"ms"),(0,r.jsx)("div",{className:"dz-sub",children:el("design.styles.easing")}),(0,r.jsx)("div",{className:"dz-opt",children:[[el("design.styles.easeEase"),"ease"],[el("design.styles.easeInOut"),"ease-in-out"],[el("design.styles.easeLinear"),"linear"],[el("design.styles.easeSmooth"),"cubic-bezier(.4,0,.2,1)"]].map(([e,t])=>(0,r.jsx)("span",{className:"dz-pill2 "+(eM.ease===t?"on":""),onClick:()=>aS({ease:t}),children:e},e))}),(0,r.jsx)("div",{className:"dz-sec",style:{marginTop:18},children:el("design.styles.spacingScale")}),(0,r.jsx)("div",{style:{display:"flex",gap:5,alignItems:"flex-end"},children:[.5,1,1.5,2,3,4].map(e=>{let t=Math.round(eM.density*e);return(0,r.jsxs)("div",{style:{textAlign:"center"},children:[(0,r.jsx)("div",{style:{width:20,height:Math.max(3,t),background:q(eM.accent,.5),borderRadius:3}}),(0,r.jsx)("div",{style:{fontSize:9,color:"var(--text-faint)",marginTop:3},children:t})]},e)})}),(0,r.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginTop:16,gap:8},children:[(0,r.jsx)("span",{style:{fontSize:10.5,color:"var(--text-faint)"},children:el("design.styles.restyleNote")}),(0,r.jsx)("button",{className:"dz-mini-btn",onClick:()=>aS(er),children:el("design.styles.reset")})]})]}),"comments"===a5&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"dz-sec",children:el("design.comments.title")}),0===a0.length&&(0,r.jsxs)("div",{style:{fontSize:11.5,color:"var(--text-dim)",lineHeight:1.5},children:[el("design.comments.emptyPre")," ",(0,r.jsx)("b",{children:el("design.comments.emptyTool")})," ",el("design.comments.emptyPost")]}),a0.map((e,t)=>(0,r.jsxs)("div",{className:"dz-cmt",children:[(0,r.jsxs)("div",{className:"h",children:[(0,r.jsx)("span",{className:"pin",children:t+1})," ",el("design.comments.comment")," ",(0,r.jsx)("span",{className:"x",onClick:()=>{M(e.id).then(()=>tV(e=>e+1))},children:(0,r.jsx)(o.I,{name:"trash",size:12})})]}),(0,r.jsx)("div",{className:"bd",children:e.body}),e.reply?(0,r.jsxs)("div",{className:"rep",children:[(0,r.jsx)(o.I,{name:"bot",size:12})," ",e.reply]}):(0,r.jsxs)("button",{className:"dz-mini-btn",onClick:()=>{e9(!0);let t=e.selection&&"object"==typeof e.selection&&e.selection.componentName?e.selection:void 0;h(`Apply this canvas comment on screen ${ad}${t?` (it is pinned on the ${t.componentName} element)`:""}: "${e.body}"`,void 0,t)},children:[(0,r.jsx)(o.I,{name:"bot",size:12})," ",el("design.comments.askGrace")]})]},e.id)),a1.length>0&&(0,r.jsx)("div",{className:"dz-sec",style:{marginTop:14},children:el("design.comments.markedRegions",{count:a1.length})}),a1.map((e,t)=>{let a=e.body&&"(region marked for review)"!==e.body?e.body:"";return(0,r.jsxs)("div",{className:"dz-cmt",children:[(0,r.jsxs)("div",{className:"h",children:[(0,r.jsxs)("span",{className:"pin",children:["M",t+1]})," ",el("design.comments.region")," ",(0,r.jsx)("span",{className:"x",onClick:()=>{M(e.id).then(()=>tV(e=>e+1))},children:(0,r.jsx)(o.I,{name:"trash",size:12})})]}),a&&(0,r.jsx)("div",{className:"bd",children:a}),e.reply?(0,r.jsxs)("div",{className:"rep",children:[(0,r.jsx)(o.I,{name:"bot",size:12})," ",e.reply]}):(0,r.jsxs)("button",{className:"dz-mini-btn",onClick:()=>{e9(!0);let t=ei(es(e));h(`On screen ${ad}, I marked a region for review (${t}).${a?` My note: "${a}"`:" Please review and refine it."} Update the screen accordingly.`)},children:[(0,r.jsx)(o.I,{name:"bot",size:12})," ",el("design.comments.askGrace")]})]},e.id)})]}),"history"===a5&&(U=t2.current.get(ad),B=U?.pos??-1,X=U?U.labels.map((e,t)=>({lab:e,i:t})):[],(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"dz-sec",children:U&&U.stack.length>1?el("design.history.pos",{pos:B+1,total:U.stack.length}):el("design.history.title")}),al?X.length<=1?(0,r.jsx)("div",{style:{fontSize:11.5,color:"var(--text-dim)",lineHeight:1.5},children:el("design.history.noEdits")}):(0,r.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:2},children:X.slice().reverse().map(({lab:e,i:t})=>(0,r.jsxs)("div",{onClick:()=>{let e,a;return e=t9.current,void((a=t2.current.get(e))&&!(t<0)&&!(t>=a.stack.length)&&t!==a.pos&&(a.pos=t,aD(e,a)))},style:{display:"flex",alignItems:"center",gap:8,padding:"7px 9px",borderRadius:8,cursor:"pointer",fontSize:12,background:t===B?"rgba(224,164,78,.12)":"transparent",color:t===B?"var(--accent)":"var(--text-dim)",border:"1px solid "+(t===B?"var(--accent)":"transparent")},children:[(0,r.jsx)("span",{style:{fontVariantNumeric:"tabular-nums",opacity:.6,minWidth:16,textAlign:"right"},children:0===t?"•":t}),(0,r.jsx)("span",{style:{flex:1,fontWeight:t===B?700:500},children:e||el("design.history.edited")}),t===B&&(0,r.jsx)("span",{style:{fontSize:10,fontWeight:700},children:el("design.history.current")})]},t))}):(0,r.jsx)("div",{style:{fontSize:11.5,color:"var(--text-dim)"},children:el("design.history.openScreen")})]})),"versions"===a5&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"dz-sec",children:el("design.versions.title")}),0===tA.length?(0,r.jsx)("div",{style:{fontSize:11.5,color:"var(--text-dim)",lineHeight:1.5},children:el("design.versions.empty")}):tA.map(e=>(0,r.jsxs)("div",{className:"dz-vnode"+(tO===e.id?" active":""),onClick:()=>tW(tO===e.id?null:e.id),title:el("design.versions.revertHint"),children:[(0,r.jsxs)("div",{className:"vt",children:[e.label," ",(0,r.jsx)("span",{className:"dz-tag",children:el("design.versions.files",{count:e.files.length,plural:1===e.files.length?"":"s"})})]}),(0,r.jsx)("div",{className:"vs",children:e.note}),(0,r.jsx)("div",{className:"vtime",children:function(e,t){let a=Math.max(0,Math.round((new Date().getTime()-e)/1e3));if(a<60)return t("design.time.justNow");let r=Math.round(a/60);if(r<60)return t("design.time.minAgo",{n:r});let n=Math.round(r/60);return n<24?t("design.time.hAgo",{n:n}):t("design.time.dAgo",{n:Math.round(n/24)})}(e.createdAt,el)}),tO===e.id&&(0,r.jsxs)("div",{className:"dz-addrow",style:{marginTop:8,padding:"6px"},onClick:t=>{t.stopPropagation(),e.restorable?T(e.id).then(async t=>{if(!t.ok)return void aW(t.error||el("design.toast.restoreFailed"));let a=t9.current;tQ.current=!1,t0.current="",t2.current.delete(a),t6(e=>e+1);let r=await g(a);r.ok&&null!=r.html&&(eQ(r.html),tv(null)),aW(el("design.toast.restored",{label:e.label}))}):(e9(!0),R(e.label,e.note)),tW(null)},children:[(0,r.jsx)(o.I,{name:"refresh",size:12})," ",el("design.versions.revertTo",{label:e.label})]})]},e.id))]})]})]}):(0,r.jsxs)("div",{className:"dz-strip right",onClick:()=>ev(!0),title:el("design.rail.expand"),children:[(0,r.jsx)(o.I,{name:"chevronLeft",size:16}),(0,r.jsx)(o.I,{name:"sidebarIcon",size:16})]}),eL&&(0,r.jsx)("div",{className:"dz-modal-bg",onClick:()=>eO(!1),children:(0,r.jsxs)("div",{className:"dz-modal",onClick:e=>e.stopPropagation(),children:[(0,r.jsxs)("div",{className:"dz-modal-h",children:[(0,r.jsx)("div",{className:"ic",children:(0,r.jsx)(o.I,{name:"arrowDown",size:17})}),(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"t",children:el("design.export.title")}),(0,r.jsx)("div",{className:"s",children:el("design.export.sub")})]}),(0,r.jsx)("div",{className:"x",onClick:()=>eO(!1),children:(0,r.jsx)(o.I,{name:"close",size:16})})]}),(0,r.jsx)("div",{className:"dz-modal-b",children:[[el("design.export.row.screens"),String(as.length)],[el("design.export.row.comments"),String(tD.filter(e=>!en(e)).length)],[el("design.export.row.versions"),String(tA.length)],[el("design.export.row.tokens"),el("design.export.row.tokensVal")],[el("design.export.row.approvedMd"),""],[el("design.export.row.kbRag"),""],[el("design.export.row.adaNotified"),""],[el("design.export.row.planner"),""]].map(e=>(0,r.jsxs)("div",{className:"dz-dl",children:[(0,r.jsx)("span",{className:"ck",children:(0,r.jsx)(o.I,{name:"check",size:11})}),e[0],e[1]&&(0,r.jsx)("span",{className:"n",children:e[1]})]},e[0]))}),(0,r.jsxs)("div",{className:"dz-modal-f",children:[(0,r.jsx)("span",{className:"note",children:el("design.export.note")}),(0,r.jsx)("div",{className:"dz-spacer"}),(0,r.jsxs)("button",{className:"dz-mini-btn",disabled:eP,onClick:aX,children:[(0,r.jsx)(o.I,{name:"cpu",size:13})," ",el("design.export.buildProd")]}),(0,r.jsx)("button",{className:"dz-mini-btn",onClick:()=>eO(!1),children:el("design.export.close")}),(0,r.jsxs)("button",{className:"dz-mini-btn accent",disabled:eP||ao,onClick:()=>{eO(!1),aF()},children:[(0,r.jsx)(o.I,{name:"check",size:13})," ",el("design.export.approveDesign")]})]})]})}),eW&&(0,r.jsx)("div",{className:"dz-flash",children:eW})]})}function ed(e){return(0,r.jsx)(eo,{grace:e.grace,context:e.context,status:e.status,tokens:e.tokens})}},2814:(e,t,a)=>{"use strict";a.d(t,{K:()=>n});var r=a(7814);let n=(0,r.createServerReference)("40a38caeec3ba27df94e136db8976ff46f62348474",r.callServer,void 0,r.findSourceMapURL,"previewFrameableAction")},5052:(e,t,a)=>{Promise.resolve().then(a.t.bind(a,3283,23)),Promise.resolve().then(a.bind(a,1319)),Promise.resolve().then(a.bind(a,8669)),Promise.resolve().then(a.bind(a,6588)),Promise.resolve().then(a.bind(a,4414)),Promise.resolve().then(a.bind(a,1344)),Promise.resolve().then(a.bind(a,4942)),Promise.resolve().then(a.bind(a,2444)),Promise.resolve().then(a.bind(a,5787))},6974:(e,t,a)=>{"use strict";a.d(t,{R:()=>n});var r=a(7814);let n=(0,r.createServerReference)("0052f8e2104f8633ca5df1d85c292d80b538d270cc",r.callServer,void 0,r.findSourceMapURL,"startDevServerAction")}},e=>{e.O(0,[9219,9690,3219,4428,8370,7457,6646,6834,7358],()=>e(e.s=5052)),_N_E=e.O()}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1387],{404:(e,s,n)=>{Promise.resolve().then(n.t.bind(n,3283,23)),Promise.resolve().then(n.bind(n,
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1387],{404:(e,s,n)=>{Promise.resolve().then(n.t.bind(n,3283,23)),Promise.resolve().then(n.bind(n,5196)),Promise.resolve().then(n.bind(n,8669)),Promise.resolve().then(n.bind(n,6588)),Promise.resolve().then(n.bind(n,4414)),Promise.resolve().then(n.bind(n,1344)),Promise.resolve().then(n.bind(n,4942)),Promise.resolve().then(n.bind(n,2444)),Promise.resolve().then(n.bind(n,5787))},5196:(e,s,n)=>{"use strict";n.d(s,{DocEditor:()=>m});var t=n(5076),i=n(8488),a=n(4302),o=n(5393),r=n(8576),c=n(7814);let l=(0,c.createServerReference)("6091058dd94cbb7f4eb9b3e8cc669195849fd68cfd",c.callServer,void 0,c.findSourceMapURL,"saveDoc");var d=n(5629);function m({docId:e,path:s,initial:n}){let c=(0,d.k)(),[h,v]=(0,i.useState)(!1),[b,u]=(0,i.useState)(n),[x,j]=(0,i.useTransition)();return(0,t.jsxs)("div",{className:"card",style:{maxWidth:880},children:[(0,t.jsxs)("div",{style:{display:"flex",gap:8,alignItems:"center",marginBottom:12},children:[h?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("button",{className:"btn-accent",disabled:x,onClick:()=>j(async()=>{await l(e,b),v(!1)}),children:[(0,t.jsx)(r.I,{name:"check",size:13})," ",c(x?"common.saving":"docsedit.saveMd")]}),(0,t.jsx)("button",{className:"btn-ghost",onClick:()=>{u(n),v(!1)},children:c("common.cancel")})]}):(0,t.jsxs)("button",{className:"btn-ghost",onClick:()=>v(!0),children:[(0,t.jsx)(r.I,{name:"command",size:13})," ",c("common.edit")]}),(0,t.jsx)("span",{className:"mono",style:{marginLeft:"auto",fontSize:11,color:"var(--text-faint)"},children:s})]}),h?(0,t.jsx)("textarea",{className:"persona-ta mono",style:{minHeight:460,width:"100%"},value:b,onChange:e=>u(e.target.value)}):(0,t.jsx)("div",{className:"md",children:b.trim()?(0,t.jsx)(a.oz,{remarkPlugins:[o.A],children:b}):(0,t.jsx)("div",{className:"muted",children:c("docsedit.emptyFile")})})]})}}},e=>{e.O(0,[9219,9690,3219,4428,8370,6646,6834,7358],()=>e(e.s=404)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1059],{3438:(e,s,n)=>{Promise.resolve().then(n.t.bind(n,3283,23)),Promise.resolve().then(n.bind(n,9991)),Promise.resolve().then(n.bind(n,8669)),Promise.resolve().then(n.bind(n,6588)),Promise.resolve().then(n.bind(n,4414)),Promise.resolve().then(n.bind(n,1344)),Promise.resolve().then(n.bind(n,4942)),Promise.resolve().then(n.bind(n,2444)),Promise.resolve().then(n.bind(n,5787))},9991:(e,s,n)=>{"use strict";n.d(s,{GenerateDocsButton:()=>l});var r=n(5076),i=n(8488),o=n(9860),t=n(8576),c=n(7814);let d=(0,c.createServerReference)("002903c3650d294cf4b5bf4e3f57cb6d5dc09de056",c.callServer,void 0,c.findSourceMapURL,"generateDocs");var a=n(5629);function l(){let e=(0,a.k)(),[s,n]=(0,i.useTransition)(),c=(0,o.useRouter)();return(0,r.jsxs)("button",{className:"btn-accent",disabled:s,onClick:()=>n(async()=>{await d(),c.refresh()}),children:[(0,r.jsx)(t.I,{name:"doc",size:14,className:s?"sync-spin":""})," ",e(s?"docs.writing":"docs.generate")]})}}},e=>{e.O(0,[9219,3219,4428,8370,6646,6834,7358],()=>e(e.s=3438)),_N_E=e.O()}]);
|
package/.next/static/chunks/app/(app)/github/{page-0e47c2c1c9c927e4.js → page-57bb812627d083a1.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8191],{1716:(e,s,t)=>{"use strict";t.d(s,{R:()=>n});var i=t(5076);function n({name:e}){let s={ts:{t:"TS",c:"#3178c6"},tsx:{t:"TS",c:"#3178c6"},js:{t:"JS",c:"#f0c000"},jsx:{t:"JS",c:"#f0c000"},json:{t:"{}",c:"#cbab35"},md:{t:"M↓",c:"#7d8590"},css:{t:"#",c:"#42a5f5"}}[e.split(".").pop()??""]||{t:"\xb7",c:"#7d8590"};return(0,i.jsx)("span",{style:{fontSize:9,fontWeight:700,fontFamily:"var(--mono-font, monospace)",color:s.c,lineHeight:1,letterSpacing:"-.5px"},children:s.t})}},2799:(e,s,t)=>{"use strict";function i(e){if(!e)return"";let s=Math.max(0,Math.floor((Date.now()-("number"==typeof e?e*(e<1e12?1e3:1):e.getTime()))/1e3));if(s<60)return"now";let t=Math.floor(s/60);if(t<60)return t+"m";let i=Math.floor(t/60);if(i<24)return i+"h";let n=Math.floor(i/24);return n<7?n+"d":Math.floor(n/7)+"w"}t.d(s,{f:()=>i})},4055:(e,s,t)=>{"use strict";t.d(s,{Jv:()=>l,yK:()=>a});var i=t(5138),n=t(8618);let a=(0,i.M)({baseURL:window.location.origin,plugins:[(0,n.N)()]}),{signIn:l,signUp:r,signOut:o,useSession:c,twoFactor:d}=a},4552:(e,s,t)=>{"use strict";t.d(s,{e:()=>n});var i=t(5076);function n({name:e,color:s,size:t=24,health:a,image:l}){let r=Math.max(6,Math.round(.3*t)),o=Math.round(.28*t),c=l?/^(data:|https?:|\/)/.test(l)?l:`/api/upload?path=${encodeURIComponent(l)}`:null;return(0,i.jsxs)("span",{style:{position:"relative",width:t,height:t,flex:`0 0 ${t}px`,display:"inline-block"},children:[c?(0,i.jsx)("img",{src:c,alt:e,width:t,height:t,style:{width:t,height:t,borderRadius:o,objectFit:"cover",display:"block"}}):(0,i.jsx)("span",{style:{width:t,height:t,borderRadius:o,background:s,color:"#fff",display:"grid",placeItems:"center",fontSize:Math.round(.42*t),fontWeight:700},children:(e[0]||"?").toUpperCase()}),a&&(0,i.jsx)("span",{style:{position:"absolute",right:-1,bottom:-1,width:r,height:r,borderRadius:"50%",background:"alive"===a?"var(--sx-string)":"stale"===a?"var(--sx-number)":"var(--text-faint)",border:"1.5px solid var(--bg-elevated)"}})]})}},8732:(e,s,t)=>{"use strict";t.d(s,{GitHubFlow:()=>S});var i=t(5076),n=t(8488),a=t(9860),l=t(8576),r=t(4552),o=t(1716),c=t(2799),d=t(7814);let h=(0,d.createServerReference)("00b24dc130bc1e5eb0ac672c3856acfaf53e5b81b4",d.callServer,void 0,d.findSourceMapURL,"listRepos"),m=(0,d.createServerReference)("405bfac9c02c21bc6cadab55060d4b8a7cca6bed3a",d.callServer,void 0,d.findSourceMapURL,"setRepo"),g=(0,d.createServerReference)("4056398e3a5dc6b605113e39a53c7771faef947710",d.callServer,void 0,d.findSourceMapURL,"createRepo"),u=(0,d.createServerReference)("005ee9ed1e496399593a288ca3e537ae07f83e5e3a",d.callServer,void 0,d.findSourceMapURL,"refreshGitStatus"),x=(0,d.createServerReference)("4011fcde093f42112b28cc541723dbc225d6a714e5",d.callServer,void 0,d.findSourceMapURL,"connectGitHub"),b=(0,d.createServerReference)("00e527fcbd0a7e3ebc46bb760dcd243017c97e03ba",d.callServer,void 0,d.findSourceMapURL,"disconnectGitHub"),p=(0,d.createServerReference)("00e3350a78e964833511c5fa855d9b1a1e4153619e",d.callServer,void 0,d.findSourceMapURL,"draftCommitMessage"),f=(0,d.createServerReference)("409cdc6f254d50e330fe025ba8cfd74d25872f00d8",d.callServer,void 0,d.findSourceMapURL,"commitPush"),v=(0,d.createServerReference)("0018c89ba8d786c75ed1a506b878e976ef6879a79f",d.callServer,void 0,d.findSourceMapURL,"scanWorkspace");var j=t(4055),y=t(5629);function N({current:e}){let[s,t]=(0,n.useState)(!1),[r,o]=(0,n.useState)(null),[c,d]=(0,n.useState)(""),[u,x]=(0,n.useState)(""),[b,p]=(0,n.useState)(!0),[f,v]=(0,n.useState)(""),[j,k]=(0,n.useTransition)(),S=(0,a.useRouter)(),w=(0,y.k)(),z=(r??[]).filter(e=>!c.trim()||e.full.toLowerCase().includes(c.trim().toLowerCase()));return(0,i.jsxs)("div",{className:"card",style:{marginBottom:16},children:[(0,i.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8},children:[(0,i.jsx)("div",{className:"detail-label",style:{margin:0,flex:1},children:w("github.repo.label")}),(0,i.jsxs)("button",{className:"link-btn",onClick:function(){t("pick"),v(""),o(null),k(async()=>{let e=await h();e.ok?o(e.repos.map(e=>({full:e.full,private:e.private}))):v(e.error??w("github.repo.listError"))})},disabled:j,children:[(0,i.jsx)(l.I,{name:"git",size:12})," ",e?w("github.repo.change"):w("common.select")]}),(0,i.jsxs)("button",{className:"link-btn",onClick:()=>{t("new"),v("")},disabled:j,children:[(0,i.jsx)(l.I,{name:"add",size:12})," ",w("github.repo.new")]})]}),(0,i.jsx)("div",{style:{fontFamily:"var(--mono-font)",fontSize:12.5,color:e?"var(--accent)":"var(--text-faint)",marginTop:4},children:e||w("github.repo.noOrigin")}),"pick"===s&&(0,i.jsxs)("div",{style:{marginTop:10},children:[(0,i.jsxs)("div",{className:"dm-search",style:{marginBottom:8},children:[(0,i.jsx)(l.I,{name:"search",size:13}),(0,i.jsx)("input",{placeholder:w("github.repo.filterPlaceholder"),value:c,onChange:e=>d(e.target.value),autoFocus:!0})]}),null===r&&(0,i.jsxs)("div",{className:"muted",style:{fontSize:12},children:[(0,i.jsx)("span",{className:"spin",children:(0,i.jsx)(l.I,{name:"refresh",size:12})})," ",w("github.repo.loading")]}),f&&(0,i.jsxs)("div",{className:"form-hint",style:{color:"var(--sx-number)"},children:[(0,i.jsx)(l.I,{name:"close",size:12})," ",f]}),(0,i.jsxs)("div",{className:"scroll",style:{maxHeight:220,overflowY:"auto"},children:[z.map(e=>(0,i.jsxs)("button",{className:"lrow",style:{width:"100%",cursor:"pointer"},disabled:j,onClick:()=>{var s;return s=e.full,void k(async()=>{let e=await m(s);e.ok?(t(!1),S.refresh()):v(e.error??"")})},children:[(0,i.jsx)(l.I,{name:"git",size:14,style:{color:"var(--text-faint)"}}),(0,i.jsx)("span",{className:"lr-main",children:(0,i.jsx)("span",{className:"lr-title",style:{fontFamily:"var(--mono-font)",fontSize:12.5},children:e.full})}),(0,i.jsx)("span",{className:"pill",style:{fontSize:10},children:e.private?w("github.repo.private"):w("github.repo.public")})]},e.full)),null!==r&&0===z.length&&(0,i.jsx)("div",{className:"muted",style:{fontSize:12,padding:8},children:w("github.repo.noRepos")})]})]}),"new"===s&&(0,i.jsxs)("div",{style:{marginTop:10},children:[(0,i.jsx)("input",{className:"form-input mono",placeholder:"new-repo-name",value:u,onChange:e=>x(e.target.value),autoFocus:!0}),(0,i.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:8,marginTop:8,fontSize:12.5,color:"var(--text-dim)"},children:[(0,i.jsx)("input",{type:"checkbox",checked:b,onChange:e=>p(e.target.checked)})," ",w("github.repo.privateRepo")]}),f&&(0,i.jsxs)("div",{className:"form-hint",style:{color:"var(--sx-number)"},children:[(0,i.jsx)(l.I,{name:"close",size:12})," ",f]}),(0,i.jsxs)("div",{style:{display:"flex",gap:8,marginTop:10},children:[(0,i.jsx)("button",{className:"btn-accent",onClick:function(){v(""),u.trim()&&k(async()=>{let e=await g({name:u,private:b});e.ok?(t(!1),x(""),S.refresh()):v(e.error??"")})},disabled:j||!u.trim(),children:j?w("github.repo.creating"):w("github.repo.createSetOrigin")}),(0,i.jsx)("button",{className:"btn-ghost",onClick:()=>t(!1),children:w("common.cancel")})]})]})]})}function k(){let[e,s]=(0,n.useTransition)(),t=(0,a.useRouter)(),r=(0,y.k)();return(0,i.jsxs)("button",{className:"link-btn",disabled:e,onClick:()=>s(async()=>{await u(),t.refresh()}),children:[e?(0,i.jsx)("span",{className:"spin",children:(0,i.jsx)(l.I,{name:"refresh",size:12})}):(0,i.jsx)(l.I,{name:"refresh",size:12})," ",r("github.refreshChanges")]})}function S({linked:e,repo:s,changes:t,deploys:a,assistant:d,oauthAvailable:h}){let m,g,u,w,z,[I,R]=(0,n.useState)(h?"oauth":"token"),[C,T]=(0,n.useState)(""),[M,F]=(0,n.useState)(""),[U,L]=(0,n.useState)(""),[P,$]=(0,n.useState)(!1),[H,O]=(0,n.useState)(!1),[_,B]=(0,n.useState)("idle"),[W,E]=(0,n.useState)(null),[G,J]=(0,n.useTransition)(),Y=(0,y.k)();function A(e,t=!1){O(e),B("committing"),J(async()=>{B("pushing");let i=await f({repo:s.full,branch:s.branch,message:U||"chore: sync workspace to remote",delegated:e,force:t});E(i),B("done"),i.blocked||setTimeout(()=>{B("idle"),L(""),O(!1),E(null)},3800)})}let[D,K]=(0,n.useState)(null),[q,Q]=(0,n.useState)(!0);return e?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)("button",{className:"link-btn",style:{marginBottom:10},onClick:function(){J(async()=>{await b()})},disabled:G,children:[(0,i.jsx)(l.I,{name:"settings",size:12})," ",Y("github.disconnect")]}),(0,i.jsx)(N,{current:s.full}),(0,i.jsxs)("div",{className:"card",style:{marginBottom:16},children:[(0,i.jsx)("div",{className:"detail-label",children:Y("github.flow.title")}),(0,i.jsxs)("div",{className:"gh-flow",children:[(0,i.jsxs)("div",{className:"gf-node",children:[(0,i.jsx)("div",{className:"gf-t",children:Y("github.flow.workspace")}),(0,i.jsxs)("div",{className:"gf-s",children:[t.length," ",Y(1===t.length?"github.flow.change.one":"github.flow.change.other")]})]}),(0,i.jsx)("span",{className:"gf-arrow",children:(0,i.jsx)(l.I,{name:"chevronRight",size:18})}),(0,i.jsxs)("div",{className:"gf-node",children:[(0,i.jsx)("div",{className:"gf-t",children:Y("github.flow.commit")}),(0,i.jsx)("div",{className:"gf-s",children:s.branch})]}),(0,i.jsx)("span",{className:"gf-arrow",children:(0,i.jsx)(l.I,{name:"chevronRight",size:18})}),(0,i.jsxs)("div",{className:"gf-node",children:[(0,i.jsx)("div",{className:"gf-t",children:"origin"}),(0,i.jsx)("div",{className:"gf-s",children:"github.com"})]})]})]}),(0,i.jsxs)("div",{className:"card",style:{marginBottom:16},children:[(0,i.jsxs)("div",{style:{display:"flex",alignItems:"center"},children:[(0,i.jsxs)("button",{onClick:()=>Q(e=>!e),style:{flex:1,display:"flex",alignItems:"center",gap:7,background:"none",border:"none",padding:0,cursor:"pointer",textAlign:"left"},children:[(0,i.jsx)(l.I,{name:"chevronDown",size:13,style:{color:"var(--text-dim)",transform:q?"none":"rotate(-90deg)",transition:"transform .15s"}}),(0,i.jsx)("span",{className:"detail-label",style:{margin:0},children:Y("github.changes.title")}),t.length>0&&(0,i.jsx)("span",{className:"pill",style:{fontSize:10},children:t.length})]}),(0,i.jsx)(k,{})]}),q&&(0===t.length?(0,i.jsx)("div",{className:"muted",style:{fontSize:12.5,marginTop:6},children:Y("github.changes.clean")}):(0,i.jsx)("div",{className:"scroll",style:{maxHeight:340,marginTop:6,overflowY:"auto"},children:t.map(e=>(0,i.jsxs)("div",{className:"gh-stat",children:[(0,i.jsx)(o.R,{name:e.name}),(0,i.jsx)("span",{className:"gs-file",children:e.path}),(0,i.jsx)("span",{className:"gstat "+e.st,style:{fontFamily:"var(--mono-font)",fontWeight:700},children:e.st})]},e.path))}))]}),(0,i.jsxs)("div",{className:"card",children:[(0,i.jsx)("div",{className:"detail-label",children:Y("github.commit.message")}),(0,i.jsx)("textarea",{className:"persona-ta mono",rows:3,placeholder:Y("github.commit.placeholder"),value:U,onChange:e=>L(e.target.value)}),(0,i.jsxs)("button",{className:"assist-btn",onClick:function(){$(!0),J(async()=>{let e=await p();e.ok&&L(e.message),$(!1)})},disabled:P||0===t.length,style:{marginTop:8},children:[P?(0,i.jsx)("span",{className:"spin",children:(0,i.jsx)(l.I,{name:"refresh",size:13})}):(0,i.jsx)(l.I,{name:"skill",size:13}),P?Y("github.commit.drafting"):Y("github.commit.generate")]}),"idle"===_?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)("div",{style:{display:"flex",gap:8,marginTop:14},children:[(0,i.jsxs)("button",{className:"btn-accent",onClick:()=>A(!1),disabled:!U.trim()||0===t.length,children:[(0,i.jsx)(l.I,{name:"arrowUp",size:14})," ",Y("github.commit.commitPush")]}),(0,i.jsxs)("button",{className:"btn-ghost",onClick:function(){K(null),J(async()=>{let e=await v();K({findings:e.findings,scanned:e.scanned})})},disabled:0===t.length,children:[(0,i.jsx)(l.I,{name:"shield",size:13})," ",Y("github.commit.securityScan")]})]}),D&&(0,i.jsx)("div",{className:"card",style:{marginTop:10,borderColor:D.findings.length?"color-mix(in srgb, var(--sx-keyword) 45%, var(--border))":void 0},children:0===D.findings.length?(0,i.jsxs)("div",{style:{fontSize:12.5,color:"var(--sx-string)"},children:[(0,i.jsx)(l.I,{name:"check",size:13})," ",Y("github.scan.clean",{n:D.scanned})]}):(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)("div",{style:{fontSize:12.5,color:"var(--sx-keyword)",fontWeight:700,marginBottom:6},children:[(0,i.jsx)(l.I,{name:"shield",size:13})," ",Y("github.scan.risks",{n:D.findings.length})]}),D.findings.slice(0,30).map((e,s)=>(0,i.jsxs)("div",{style:{fontSize:11.5,fontFamily:"var(--mono-font)",color:"var(--text-dim)",display:"flex",gap:8},children:[(0,i.jsx)("span",{style:{color:"var(--sx-keyword)"},children:e.kind}),(0,i.jsxs)("span",{style:{flex:1},children:[e.file,e.line?":"+e.line:""]}),(0,i.jsx)("span",{style:{color:"var(--text-faint)"},children:e.preview})]},s))]})})]}):(0,i.jsxs)("div",{style:{marginTop:14},children:[(m=W?W.pushed?`${Y("github.progress.pushed",{branch:s.branch})}${W.prUrl?H?` \xb7 ${Y("github.progress.agentOpenedPr",{name:d?.name??Y("github.progress.agent")})}`:` \xb7 ${Y("github.progress.prOpened")}`:""}`:W.committed?`${Y("github.progress.committedLocal")}${W.sha?` (${W.sha})`:""}${Y("github.progress.notPushedSuffix")}`:W.nothing?Y("github.progress.nothing"):Y("github.progress.failed"):Y("github.progress.finishing"),g="done"===_&&null!=W&&!W.ok,u=[["committing",Y("github.progress.committing",{n:t.length})],["pushing",Y("github.progress.pushing",{branch:s.branch})],["done",m]],z=(w=["committing","pushing","done"]).indexOf(_),u.map(([e,s])=>{let t=w.indexOf(e),n=t<z||"done"===_&&"done"===e?"done":t===z?"on":"",a="done"===e&&g;return(0,i.jsxs)("div",{className:"gh-progress-step "+(a?"":n),children:[(0,i.jsx)("span",{className:"gp-ico",children:a?(0,i.jsx)(l.I,{name:"close",size:13}):"done"===n?(0,i.jsx)(l.I,{name:"check",size:14}):"on"===n?(0,i.jsx)("span",{className:"spin",children:(0,i.jsx)(l.I,{name:"refresh",size:13})}):(0,i.jsx)(l.I,{name:"dot",size:8})}),s]},e)})),W?.error&&(0,i.jsxs)("div",{className:"form-hint",style:{marginTop:8,color:"var(--sx-number)"},children:[(0,i.jsx)(l.I,{name:"shield",size:12})," ",W.error]}),W?.blocked&&W.secrets&&W.secrets.length>0&&(0,i.jsxs)("div",{className:"card",style:{marginTop:10,borderColor:"color-mix(in srgb, var(--sx-keyword) 45%, var(--border))"},children:[W.secrets.slice(0,30).map((e,s)=>(0,i.jsxs)("div",{style:{fontSize:11.5,fontFamily:"var(--mono-font)",color:"var(--text-dim)",display:"flex",gap:8},children:[(0,i.jsx)("span",{style:{color:"var(--sx-keyword)"},children:e.kind}),(0,i.jsxs)("span",{style:{flex:1},children:[e.file,e.line?":"+e.line:""]}),(0,i.jsx)("span",{style:{color:"var(--text-faint)"},children:e.preview})]},s)),(0,i.jsxs)("div",{style:{display:"flex",gap:8,marginTop:10},children:[(0,i.jsx)("button",{className:"btn-ghost",onClick:()=>{B("idle"),E(null)},children:Y("github.blocked.fixRetry")}),(0,i.jsx)("button",{className:"btn-accent",style:{background:"var(--sx-keyword)"},onClick:()=>{confirm(Y("github.blocked.confirm"))&&A(H,!0)},children:Y("github.blocked.commitAnyway")})]})]}),W?.blocked&&(!W.secrets||0===W.secrets.length)&&(0,i.jsx)("button",{className:"btn-ghost",style:{marginTop:8},onClick:()=>{B("idle"),E(null)},children:Y("github.blocked.ok")}),W?.prUrl&&(0,i.jsxs)("a",{className:"link-btn",href:W.prUrl,target:"_blank",rel:"noreferrer",style:{marginTop:8,display:"inline-flex"},children:[(0,i.jsx)(l.I,{name:"git",size:12})," ",Y("github.viewPr")]})]}),"idle"===_&&d&&(0,i.jsxs)("div",{className:"agent-do",children:[(0,i.jsx)(r.e,{name:d.name,color:d.color,size:30,health:d.health}),(0,i.jsxs)("div",{style:{flex:1},children:[(0,i.jsx)("div",{className:"sr-title",children:Y("github.delegate.title")}),(0,i.jsx)("div",{className:"sr-sub",children:Y("github.delegate.sub",{name:d.name})})]}),(0,i.jsxs)("button",{className:"btn-ghost",onClick:()=>{L(U||"chore: sync workspace to remote"),A(!0)},disabled:0===t.length,children:[(0,i.jsx)(l.I,{name:"bot",size:13})," ",Y("github.delegate.button")]})]})]}),a.length>0&&(0,i.jsxs)("div",{className:"card",style:{marginTop:16},children:[(0,i.jsx)("div",{className:"detail-label",children:Y("github.recentPushes")}),(0,i.jsx)("div",{className:"scroll",style:{maxHeight:260,overflowY:"auto"},children:a.map(e=>(0,i.jsxs)("div",{className:"gh-stat",children:[(0,i.jsx)(l.I,{name:"git",size:13,style:{color:"var(--text-faint)"}}),(0,i.jsx)("span",{className:"gs-file",style:{fontFamily:"var(--ui-font)"},children:e.text}),(0,i.jsx)("span",{style:{fontSize:11,color:"var(--text-faint)"},children:(0,c.f)(e.at)})]},e.id))})]})]}):(0,i.jsxs)("div",{className:"card",children:[(0,i.jsxs)("div",{className:"gh-auth-tabs",children:[(0,i.jsx)("button",{className:"seg-opt"+("oauth"===I?" on":""),onClick:()=>R("oauth"),style:{flex:"none",padding:"7px 14px"},children:Y("github.auth.githubLogin")}),(0,i.jsx)("button",{className:"seg-opt"+("token"===I?" on":""),onClick:()=>R("token"),style:{flex:"none",padding:"7px 14px"},children:Y("github.auth.personalToken")})]}),"oauth"===I?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)("button",{className:"oauth-btn",disabled:!h||G,onClick:()=>h&&j.Jv.social({provider:"github",callbackURL:"/github"}),children:[(0,i.jsx)(l.I,{name:"git",size:15}),Y("github.auth.signInWithGithub")]}),(0,i.jsx)("div",{className:"form-hint",style:{marginTop:8},children:h?(0,i.jsx)(i.Fragment,{children:Y("github.auth.authorizeHint")}):(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(l.I,{name:"shield",size:12})," ",Y("github.auth.oauthNotConfigured")]})})]}):(0,i.jsxs)("div",{className:"form-field",children:[(0,i.jsx)("label",{className:"form-label",children:Y("github.auth.patLabel")}),(0,i.jsx)("input",{className:"form-input mono",type:"password",placeholder:"ghp_…",value:C,onChange:e=>{T(e.target.value),F("")}}),(0,i.jsxs)("div",{className:"form-hint",children:[(0,i.jsx)(l.I,{name:"shield",size:12})," ",Y("github.auth.patHint")]}),M&&(0,i.jsxs)("div",{className:"form-hint",style:{color:"var(--sx-number)"},children:[(0,i.jsx)(l.I,{name:"close",size:12})," ",M]}),(0,i.jsxs)("button",{className:"btn-accent",style:{marginTop:10},onClick:function(){C.length<7||(F(""),J(async()=>{let e=await x(C);e.ok||F(e.error??Y("github.connectError"))}))},disabled:C.length<7||G,children:[G?(0,i.jsx)("span",{className:"spin",children:(0,i.jsx)(l.I,{name:"refresh",size:13})}):(0,i.jsx)(l.I,{name:"git",size:13}),G?Y("github.auth.verifying"):Y("common.connect")]})]})]})}},9206:(e,s,t)=>{Promise.resolve().then(t.t.bind(t,3283,23)),Promise.resolve().then(t.bind(t,8732)),Promise.resolve().then(t.bind(t,3014)),Promise.resolve().then(t.bind(t,6588)),Promise.resolve().then(t.bind(t,4414)),Promise.resolve().then(t.bind(t,8718)),Promise.resolve().then(t.bind(t,4942)),Promise.resolve().then(t.bind(t,2444)),Promise.resolve().then(t.bind(t,5787))}},e=>{e.O(0,[9219,7555,3219,4991,8370,6646,6834,7358],()=>e(e.s=9206)),_N_E=e.O()}]);
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8191],{1716:(e,s,t)=>{"use strict";t.d(s,{R:()=>n});var i=t(5076);function n({name:e}){let s={ts:{t:"TS",c:"#3178c6"},tsx:{t:"TS",c:"#3178c6"},js:{t:"JS",c:"#f0c000"},jsx:{t:"JS",c:"#f0c000"},json:{t:"{}",c:"#cbab35"},md:{t:"M↓",c:"#7d8590"},css:{t:"#",c:"#42a5f5"}}[e.split(".").pop()??""]||{t:"\xb7",c:"#7d8590"};return(0,i.jsx)("span",{style:{fontSize:9,fontWeight:700,fontFamily:"var(--mono-font, monospace)",color:s.c,lineHeight:1,letterSpacing:"-.5px"},children:s.t})}},2799:(e,s,t)=>{"use strict";function i(e){if(!e)return"";let s=Math.max(0,Math.floor((Date.now()-("number"==typeof e?e*(e<1e12?1e3:1):e.getTime()))/1e3));if(s<60)return"now";let t=Math.floor(s/60);if(t<60)return t+"m";let i=Math.floor(t/60);if(i<24)return i+"h";let n=Math.floor(i/24);return n<7?n+"d":Math.floor(n/7)+"w"}t.d(s,{f:()=>i})},4055:(e,s,t)=>{"use strict";t.d(s,{Jv:()=>l,yK:()=>a});var i=t(5138),n=t(8618);let a=(0,i.M)({baseURL:window.location.origin,plugins:[(0,n.N)()]}),{signIn:l,signUp:r,signOut:o,useSession:c,twoFactor:d}=a},4552:(e,s,t)=>{"use strict";t.d(s,{e:()=>n});var i=t(5076);function n({name:e,color:s,size:t=24,health:a,image:l}){let r=Math.max(6,Math.round(.3*t)),o=Math.round(.28*t),c=l?/^(data:|https?:|\/)/.test(l)?l:`/api/upload?path=${encodeURIComponent(l)}`:null;return(0,i.jsxs)("span",{style:{position:"relative",width:t,height:t,flex:`0 0 ${t}px`,display:"inline-block"},children:[c?(0,i.jsx)("img",{src:c,alt:e,width:t,height:t,style:{width:t,height:t,borderRadius:o,objectFit:"cover",display:"block"}}):(0,i.jsx)("span",{style:{width:t,height:t,borderRadius:o,background:s,color:"#fff",display:"grid",placeItems:"center",fontSize:Math.round(.42*t),fontWeight:700},children:(e[0]||"?").toUpperCase()}),a&&(0,i.jsx)("span",{style:{position:"absolute",right:-1,bottom:-1,width:r,height:r,borderRadius:"50%",background:"alive"===a?"var(--sx-string)":"stale"===a?"var(--sx-number)":"var(--text-faint)",border:"1.5px solid var(--bg-elevated)"}})]})}},6012:(e,s,t)=>{"use strict";t.d(s,{GitHubFlow:()=>S});var i=t(5076),n=t(8488),a=t(9860),l=t(8576),r=t(4552),o=t(1716),c=t(2799),d=t(7814);let h=(0,d.createServerReference)("002976b4e1bb6d6be1001fdce79e5fcd8e1bcedeb0",d.callServer,void 0,d.findSourceMapURL,"listRepos"),m=(0,d.createServerReference)("4043341457a5a20747d2fe927edcae3d54b3a3862b",d.callServer,void 0,d.findSourceMapURL,"setRepo"),g=(0,d.createServerReference)("40d6866d463970448f888370dad0e3bda10d62394b",d.callServer,void 0,d.findSourceMapURL,"createRepo"),u=(0,d.createServerReference)("00e52b2a4df850b9efa75b4d76f49c45d5eb91147d",d.callServer,void 0,d.findSourceMapURL,"refreshGitStatus"),x=(0,d.createServerReference)("4017b179253b8e5c6a16e5a588247b56926034c7e0",d.callServer,void 0,d.findSourceMapURL,"connectGitHub"),b=(0,d.createServerReference)("00f1b5ef1639b3a58e763103a09911cfbcc7d6c003",d.callServer,void 0,d.findSourceMapURL,"disconnectGitHub"),p=(0,d.createServerReference)("00e7db64d9c3eaed43c7a728e6e5ee6f1103f8be83",d.callServer,void 0,d.findSourceMapURL,"draftCommitMessage"),f=(0,d.createServerReference)("403f88ec0d4e570613e0bbb8a79d1323357e277fd0",d.callServer,void 0,d.findSourceMapURL,"commitPush"),v=(0,d.createServerReference)("0051a8c2c219e472737431e8ecf0a266ce13f2d9be",d.callServer,void 0,d.findSourceMapURL,"scanWorkspace");var j=t(4055),y=t(5629);function N({current:e}){let[s,t]=(0,n.useState)(!1),[r,o]=(0,n.useState)(null),[c,d]=(0,n.useState)(""),[u,x]=(0,n.useState)(""),[b,p]=(0,n.useState)(!0),[f,v]=(0,n.useState)(""),[j,k]=(0,n.useTransition)(),S=(0,a.useRouter)(),w=(0,y.k)(),z=(r??[]).filter(e=>!c.trim()||e.full.toLowerCase().includes(c.trim().toLowerCase()));return(0,i.jsxs)("div",{className:"card",style:{marginBottom:16},children:[(0,i.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8},children:[(0,i.jsx)("div",{className:"detail-label",style:{margin:0,flex:1},children:w("github.repo.label")}),(0,i.jsxs)("button",{className:"link-btn",onClick:function(){t("pick"),v(""),o(null),k(async()=>{let e=await h();e.ok?o(e.repos.map(e=>({full:e.full,private:e.private}))):v(e.error??w("github.repo.listError"))})},disabled:j,children:[(0,i.jsx)(l.I,{name:"git",size:12})," ",e?w("github.repo.change"):w("common.select")]}),(0,i.jsxs)("button",{className:"link-btn",onClick:()=>{t("new"),v("")},disabled:j,children:[(0,i.jsx)(l.I,{name:"add",size:12})," ",w("github.repo.new")]})]}),(0,i.jsx)("div",{style:{fontFamily:"var(--mono-font)",fontSize:12.5,color:e?"var(--accent)":"var(--text-faint)",marginTop:4},children:e||w("github.repo.noOrigin")}),"pick"===s&&(0,i.jsxs)("div",{style:{marginTop:10},children:[(0,i.jsxs)("div",{className:"dm-search",style:{marginBottom:8},children:[(0,i.jsx)(l.I,{name:"search",size:13}),(0,i.jsx)("input",{placeholder:w("github.repo.filterPlaceholder"),value:c,onChange:e=>d(e.target.value),autoFocus:!0})]}),null===r&&(0,i.jsxs)("div",{className:"muted",style:{fontSize:12},children:[(0,i.jsx)("span",{className:"spin",children:(0,i.jsx)(l.I,{name:"refresh",size:12})})," ",w("github.repo.loading")]}),f&&(0,i.jsxs)("div",{className:"form-hint",style:{color:"var(--sx-number)"},children:[(0,i.jsx)(l.I,{name:"close",size:12})," ",f]}),(0,i.jsxs)("div",{className:"scroll",style:{maxHeight:220,overflowY:"auto"},children:[z.map(e=>(0,i.jsxs)("button",{className:"lrow",style:{width:"100%",cursor:"pointer"},disabled:j,onClick:()=>{var s;return s=e.full,void k(async()=>{let e=await m(s);e.ok?(t(!1),S.refresh()):v(e.error??"")})},children:[(0,i.jsx)(l.I,{name:"git",size:14,style:{color:"var(--text-faint)"}}),(0,i.jsx)("span",{className:"lr-main",children:(0,i.jsx)("span",{className:"lr-title",style:{fontFamily:"var(--mono-font)",fontSize:12.5},children:e.full})}),(0,i.jsx)("span",{className:"pill",style:{fontSize:10},children:e.private?w("github.repo.private"):w("github.repo.public")})]},e.full)),null!==r&&0===z.length&&(0,i.jsx)("div",{className:"muted",style:{fontSize:12,padding:8},children:w("github.repo.noRepos")})]})]}),"new"===s&&(0,i.jsxs)("div",{style:{marginTop:10},children:[(0,i.jsx)("input",{className:"form-input mono",placeholder:"new-repo-name",value:u,onChange:e=>x(e.target.value),autoFocus:!0}),(0,i.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:8,marginTop:8,fontSize:12.5,color:"var(--text-dim)"},children:[(0,i.jsx)("input",{type:"checkbox",checked:b,onChange:e=>p(e.target.checked)})," ",w("github.repo.privateRepo")]}),f&&(0,i.jsxs)("div",{className:"form-hint",style:{color:"var(--sx-number)"},children:[(0,i.jsx)(l.I,{name:"close",size:12})," ",f]}),(0,i.jsxs)("div",{style:{display:"flex",gap:8,marginTop:10},children:[(0,i.jsx)("button",{className:"btn-accent",onClick:function(){v(""),u.trim()&&k(async()=>{let e=await g({name:u,private:b});e.ok?(t(!1),x(""),S.refresh()):v(e.error??"")})},disabled:j||!u.trim(),children:j?w("github.repo.creating"):w("github.repo.createSetOrigin")}),(0,i.jsx)("button",{className:"btn-ghost",onClick:()=>t(!1),children:w("common.cancel")})]})]})]})}function k(){let[e,s]=(0,n.useTransition)(),t=(0,a.useRouter)(),r=(0,y.k)();return(0,i.jsxs)("button",{className:"link-btn",disabled:e,onClick:()=>s(async()=>{await u(),t.refresh()}),children:[e?(0,i.jsx)("span",{className:"spin",children:(0,i.jsx)(l.I,{name:"refresh",size:12})}):(0,i.jsx)(l.I,{name:"refresh",size:12})," ",r("github.refreshChanges")]})}function S({linked:e,repo:s,changes:t,deploys:a,assistant:d,oauthAvailable:h}){let m,g,u,w,z,[I,R]=(0,n.useState)(h?"oauth":"token"),[C,T]=(0,n.useState)(""),[M,F]=(0,n.useState)(""),[U,L]=(0,n.useState)(""),[P,$]=(0,n.useState)(!1),[H,O]=(0,n.useState)(!1),[_,B]=(0,n.useState)("idle"),[W,E]=(0,n.useState)(null),[G,J]=(0,n.useTransition)(),Y=(0,y.k)();function A(e,t=!1){O(e),B("committing"),J(async()=>{B("pushing");let i=await f({repo:s.full,branch:s.branch,message:U||"chore: sync workspace to remote",delegated:e,force:t});E(i),B("done"),i.blocked||setTimeout(()=>{B("idle"),L(""),O(!1),E(null)},3800)})}let[D,K]=(0,n.useState)(null),[q,Q]=(0,n.useState)(!0);return e?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)("button",{className:"link-btn",style:{marginBottom:10},onClick:function(){J(async()=>{await b()})},disabled:G,children:[(0,i.jsx)(l.I,{name:"settings",size:12})," ",Y("github.disconnect")]}),(0,i.jsx)(N,{current:s.full}),(0,i.jsxs)("div",{className:"card",style:{marginBottom:16},children:[(0,i.jsx)("div",{className:"detail-label",children:Y("github.flow.title")}),(0,i.jsxs)("div",{className:"gh-flow",children:[(0,i.jsxs)("div",{className:"gf-node",children:[(0,i.jsx)("div",{className:"gf-t",children:Y("github.flow.workspace")}),(0,i.jsxs)("div",{className:"gf-s",children:[t.length," ",Y(1===t.length?"github.flow.change.one":"github.flow.change.other")]})]}),(0,i.jsx)("span",{className:"gf-arrow",children:(0,i.jsx)(l.I,{name:"chevronRight",size:18})}),(0,i.jsxs)("div",{className:"gf-node",children:[(0,i.jsx)("div",{className:"gf-t",children:Y("github.flow.commit")}),(0,i.jsx)("div",{className:"gf-s",children:s.branch})]}),(0,i.jsx)("span",{className:"gf-arrow",children:(0,i.jsx)(l.I,{name:"chevronRight",size:18})}),(0,i.jsxs)("div",{className:"gf-node",children:[(0,i.jsx)("div",{className:"gf-t",children:"origin"}),(0,i.jsx)("div",{className:"gf-s",children:"github.com"})]})]})]}),(0,i.jsxs)("div",{className:"card",style:{marginBottom:16},children:[(0,i.jsxs)("div",{style:{display:"flex",alignItems:"center"},children:[(0,i.jsxs)("button",{onClick:()=>Q(e=>!e),style:{flex:1,display:"flex",alignItems:"center",gap:7,background:"none",border:"none",padding:0,cursor:"pointer",textAlign:"left"},children:[(0,i.jsx)(l.I,{name:"chevronDown",size:13,style:{color:"var(--text-dim)",transform:q?"none":"rotate(-90deg)",transition:"transform .15s"}}),(0,i.jsx)("span",{className:"detail-label",style:{margin:0},children:Y("github.changes.title")}),t.length>0&&(0,i.jsx)("span",{className:"pill",style:{fontSize:10},children:t.length})]}),(0,i.jsx)(k,{})]}),q&&(0===t.length?(0,i.jsx)("div",{className:"muted",style:{fontSize:12.5,marginTop:6},children:Y("github.changes.clean")}):(0,i.jsx)("div",{className:"scroll",style:{maxHeight:340,marginTop:6,overflowY:"auto"},children:t.map(e=>(0,i.jsxs)("div",{className:"gh-stat",children:[(0,i.jsx)(o.R,{name:e.name}),(0,i.jsx)("span",{className:"gs-file",children:e.path}),(0,i.jsx)("span",{className:"gstat "+e.st,style:{fontFamily:"var(--mono-font)",fontWeight:700},children:e.st})]},e.path))}))]}),(0,i.jsxs)("div",{className:"card",children:[(0,i.jsx)("div",{className:"detail-label",children:Y("github.commit.message")}),(0,i.jsx)("textarea",{className:"persona-ta mono",rows:3,placeholder:Y("github.commit.placeholder"),value:U,onChange:e=>L(e.target.value)}),(0,i.jsxs)("button",{className:"assist-btn",onClick:function(){$(!0),J(async()=>{let e=await p();e.ok&&L(e.message),$(!1)})},disabled:P||0===t.length,style:{marginTop:8},children:[P?(0,i.jsx)("span",{className:"spin",children:(0,i.jsx)(l.I,{name:"refresh",size:13})}):(0,i.jsx)(l.I,{name:"skill",size:13}),P?Y("github.commit.drafting"):Y("github.commit.generate")]}),"idle"===_?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)("div",{style:{display:"flex",gap:8,marginTop:14},children:[(0,i.jsxs)("button",{className:"btn-accent",onClick:()=>A(!1),disabled:!U.trim()||0===t.length,children:[(0,i.jsx)(l.I,{name:"arrowUp",size:14})," ",Y("github.commit.commitPush")]}),(0,i.jsxs)("button",{className:"btn-ghost",onClick:function(){K(null),J(async()=>{let e=await v();K({findings:e.findings,scanned:e.scanned})})},disabled:0===t.length,children:[(0,i.jsx)(l.I,{name:"shield",size:13})," ",Y("github.commit.securityScan")]})]}),D&&(0,i.jsx)("div",{className:"card",style:{marginTop:10,borderColor:D.findings.length?"color-mix(in srgb, var(--sx-keyword) 45%, var(--border))":void 0},children:0===D.findings.length?(0,i.jsxs)("div",{style:{fontSize:12.5,color:"var(--sx-string)"},children:[(0,i.jsx)(l.I,{name:"check",size:13})," ",Y("github.scan.clean",{n:D.scanned})]}):(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)("div",{style:{fontSize:12.5,color:"var(--sx-keyword)",fontWeight:700,marginBottom:6},children:[(0,i.jsx)(l.I,{name:"shield",size:13})," ",Y("github.scan.risks",{n:D.findings.length})]}),D.findings.slice(0,30).map((e,s)=>(0,i.jsxs)("div",{style:{fontSize:11.5,fontFamily:"var(--mono-font)",color:"var(--text-dim)",display:"flex",gap:8},children:[(0,i.jsx)("span",{style:{color:"var(--sx-keyword)"},children:e.kind}),(0,i.jsxs)("span",{style:{flex:1},children:[e.file,e.line?":"+e.line:""]}),(0,i.jsx)("span",{style:{color:"var(--text-faint)"},children:e.preview})]},s))]})})]}):(0,i.jsxs)("div",{style:{marginTop:14},children:[(m=W?W.pushed?`${Y("github.progress.pushed",{branch:s.branch})}${W.prUrl?H?` \xb7 ${Y("github.progress.agentOpenedPr",{name:d?.name??Y("github.progress.agent")})}`:` \xb7 ${Y("github.progress.prOpened")}`:""}`:W.committed?`${Y("github.progress.committedLocal")}${W.sha?` (${W.sha})`:""}${Y("github.progress.notPushedSuffix")}`:W.nothing?Y("github.progress.nothing"):Y("github.progress.failed"):Y("github.progress.finishing"),g="done"===_&&null!=W&&!W.ok,u=[["committing",Y("github.progress.committing",{n:t.length})],["pushing",Y("github.progress.pushing",{branch:s.branch})],["done",m]],z=(w=["committing","pushing","done"]).indexOf(_),u.map(([e,s])=>{let t=w.indexOf(e),n=t<z||"done"===_&&"done"===e?"done":t===z?"on":"",a="done"===e&&g;return(0,i.jsxs)("div",{className:"gh-progress-step "+(a?"":n),children:[(0,i.jsx)("span",{className:"gp-ico",children:a?(0,i.jsx)(l.I,{name:"close",size:13}):"done"===n?(0,i.jsx)(l.I,{name:"check",size:14}):"on"===n?(0,i.jsx)("span",{className:"spin",children:(0,i.jsx)(l.I,{name:"refresh",size:13})}):(0,i.jsx)(l.I,{name:"dot",size:8})}),s]},e)})),W?.error&&(0,i.jsxs)("div",{className:"form-hint",style:{marginTop:8,color:"var(--sx-number)"},children:[(0,i.jsx)(l.I,{name:"shield",size:12})," ",W.error]}),W?.blocked&&W.secrets&&W.secrets.length>0&&(0,i.jsxs)("div",{className:"card",style:{marginTop:10,borderColor:"color-mix(in srgb, var(--sx-keyword) 45%, var(--border))"},children:[W.secrets.slice(0,30).map((e,s)=>(0,i.jsxs)("div",{style:{fontSize:11.5,fontFamily:"var(--mono-font)",color:"var(--text-dim)",display:"flex",gap:8},children:[(0,i.jsx)("span",{style:{color:"var(--sx-keyword)"},children:e.kind}),(0,i.jsxs)("span",{style:{flex:1},children:[e.file,e.line?":"+e.line:""]}),(0,i.jsx)("span",{style:{color:"var(--text-faint)"},children:e.preview})]},s)),(0,i.jsxs)("div",{style:{display:"flex",gap:8,marginTop:10},children:[(0,i.jsx)("button",{className:"btn-ghost",onClick:()=>{B("idle"),E(null)},children:Y("github.blocked.fixRetry")}),(0,i.jsx)("button",{className:"btn-accent",style:{background:"var(--sx-keyword)"},onClick:()=>{confirm(Y("github.blocked.confirm"))&&A(H,!0)},children:Y("github.blocked.commitAnyway")})]})]}),W?.blocked&&(!W.secrets||0===W.secrets.length)&&(0,i.jsx)("button",{className:"btn-ghost",style:{marginTop:8},onClick:()=>{B("idle"),E(null)},children:Y("github.blocked.ok")}),W?.prUrl&&(0,i.jsxs)("a",{className:"link-btn",href:W.prUrl,target:"_blank",rel:"noreferrer",style:{marginTop:8,display:"inline-flex"},children:[(0,i.jsx)(l.I,{name:"git",size:12})," ",Y("github.viewPr")]})]}),"idle"===_&&d&&(0,i.jsxs)("div",{className:"agent-do",children:[(0,i.jsx)(r.e,{name:d.name,color:d.color,size:30,health:d.health}),(0,i.jsxs)("div",{style:{flex:1},children:[(0,i.jsx)("div",{className:"sr-title",children:Y("github.delegate.title")}),(0,i.jsx)("div",{className:"sr-sub",children:Y("github.delegate.sub",{name:d.name})})]}),(0,i.jsxs)("button",{className:"btn-ghost",onClick:()=>{L(U||"chore: sync workspace to remote"),A(!0)},disabled:0===t.length,children:[(0,i.jsx)(l.I,{name:"bot",size:13})," ",Y("github.delegate.button")]})]})]}),a.length>0&&(0,i.jsxs)("div",{className:"card",style:{marginTop:16},children:[(0,i.jsx)("div",{className:"detail-label",children:Y("github.recentPushes")}),(0,i.jsx)("div",{className:"scroll",style:{maxHeight:260,overflowY:"auto"},children:a.map(e=>(0,i.jsxs)("div",{className:"gh-stat",children:[(0,i.jsx)(l.I,{name:"git",size:13,style:{color:"var(--text-faint)"}}),(0,i.jsx)("span",{className:"gs-file",style:{fontFamily:"var(--ui-font)"},children:e.text}),(0,i.jsx)("span",{style:{fontSize:11,color:"var(--text-faint)"},children:(0,c.f)(e.at)})]},e.id))})]})]}):(0,i.jsxs)("div",{className:"card",children:[(0,i.jsxs)("div",{className:"gh-auth-tabs",children:[(0,i.jsx)("button",{className:"seg-opt"+("oauth"===I?" on":""),onClick:()=>R("oauth"),style:{flex:"none",padding:"7px 14px"},children:Y("github.auth.githubLogin")}),(0,i.jsx)("button",{className:"seg-opt"+("token"===I?" on":""),onClick:()=>R("token"),style:{flex:"none",padding:"7px 14px"},children:Y("github.auth.personalToken")})]}),"oauth"===I?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)("button",{className:"oauth-btn",disabled:!h||G,onClick:()=>h&&j.Jv.social({provider:"github",callbackURL:"/github"}),children:[(0,i.jsx)(l.I,{name:"git",size:15}),Y("github.auth.signInWithGithub")]}),(0,i.jsx)("div",{className:"form-hint",style:{marginTop:8},children:h?(0,i.jsx)(i.Fragment,{children:Y("github.auth.authorizeHint")}):(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(l.I,{name:"shield",size:12})," ",Y("github.auth.oauthNotConfigured")]})})]}):(0,i.jsxs)("div",{className:"form-field",children:[(0,i.jsx)("label",{className:"form-label",children:Y("github.auth.patLabel")}),(0,i.jsx)("input",{className:"form-input mono",type:"password",placeholder:"ghp_…",value:C,onChange:e=>{T(e.target.value),F("")}}),(0,i.jsxs)("div",{className:"form-hint",children:[(0,i.jsx)(l.I,{name:"shield",size:12})," ",Y("github.auth.patHint")]}),M&&(0,i.jsxs)("div",{className:"form-hint",style:{color:"var(--sx-number)"},children:[(0,i.jsx)(l.I,{name:"close",size:12})," ",M]}),(0,i.jsxs)("button",{className:"btn-accent",style:{marginTop:10},onClick:function(){C.length<7||(F(""),J(async()=>{let e=await x(C);e.ok||F(e.error??Y("github.connectError"))}))},disabled:C.length<7||G,children:[G?(0,i.jsx)("span",{className:"spin",children:(0,i.jsx)(l.I,{name:"refresh",size:13})}):(0,i.jsx)(l.I,{name:"git",size:13}),G?Y("github.auth.verifying"):Y("common.connect")]})]})]})}},9206:(e,s,t)=>{Promise.resolve().then(t.t.bind(t,3283,23)),Promise.resolve().then(t.bind(t,6012)),Promise.resolve().then(t.bind(t,8669)),Promise.resolve().then(t.bind(t,6588)),Promise.resolve().then(t.bind(t,4414)),Promise.resolve().then(t.bind(t,1344)),Promise.resolve().then(t.bind(t,4942)),Promise.resolve().then(t.bind(t,2444)),Promise.resolve().then(t.bind(t,5787))}},e=>{e.O(0,[9219,7555,3219,4428,8370,6646,6834,7358],()=>e(e.s=9206)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[296],{891:(e,s,a)=>{"use strict";a.d(s,{m:()=>i});var l=a(5076);let t={working:{c:"var(--sx-string)",pulse:!0,label:"working"},review:{c:"#e0a44e",label:"review"},blocked:{c:"#e8688f",label:"blocked"},idle:{c:"var(--text-faint)",label:"idle"}};function i({status:e,label:s=!1,size:a=8}){let n=t[e]??t.idle;return(0,l.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:5},title:n.label,children:[n.pulse?(0,l.jsx)("span",{className:"dotpulse"}):(0,l.jsx)("span",{style:{width:a,height:a,borderRadius:"50%",background:n.c,display:"inline-block",flex:`0 0 ${a}px`}}),s&&(0,l.jsx)("span",{style:{fontSize:11,color:n.c,fontWeight:600},children:n.label})]})}},4552:(e,s,a)=>{"use strict";a.d(s,{e:()=>t});var l=a(5076);function t({name:e,color:s,size:a=24,health:i,image:n}){let o=Math.max(6,Math.round(.3*a)),c=Math.round(.28*a),r=n?/^(data:|https?:|\/)/.test(n)?n:`/api/upload?path=${encodeURIComponent(n)}`:null;return(0,l.jsxs)("span",{style:{position:"relative",width:a,height:a,flex:`0 0 ${a}px`,display:"inline-block"},children:[r?(0,l.jsx)("img",{src:r,alt:e,width:a,height:a,style:{width:a,height:a,borderRadius:c,objectFit:"cover",display:"block"}}):(0,l.jsx)("span",{style:{width:a,height:a,borderRadius:c,background:s,color:"#fff",display:"grid",placeItems:"center",fontSize:Math.round(.42*a),fontWeight:700},children:(e[0]||"?").toUpperCase()}),i&&(0,l.jsx)("span",{style:{position:"absolute",right:-1,bottom:-1,width:o,height:o,borderRadius:"50%",background:"alive"===i?"var(--sx-string)":"stale"===i?"var(--sx-number)":"var(--text-faint)",border:"1.5px solid var(--bg-elevated)"}})]})}},4899:(e,s,a)=>{Promise.resolve().then(a.t.bind(a,3283,23)),Promise.resolve().then(a.bind(a,8857)),Promise.resolve().then(a.bind(a,5020)),Promise.resolve().then(a.bind(a,8669)),Promise.resolve().then(a.bind(a,6588)),Promise.resolve().then(a.bind(a,4414)),Promise.resolve().then(a.bind(a,1344)),Promise.resolve().then(a.bind(a,4942)),Promise.resolve().then(a.bind(a,2444)),Promise.resolve().then(a.bind(a,5787))},5020:(e,s,a)=>{"use strict";a.d(s,{NewGoalButton:()=>c});var l=a(5076),t=a(8488),i=a(7814);let n=(0,i.createServerReference)("40c1501eebdc8beb6718c793679ac4fd66afd9ea4c",i.callServer,void 0,i.findSourceMapURL,"createGoal");var o=a(5629);function c({agents:e}){let s=(0,o.k)(),[a,i]=(0,t.useState)(!1),[r,d]=(0,t.useState)(""),[h,g]=(0,t.useState)(""),[u,m]=(0,t.useState)(e[0]?.id??""),[p,v]=(0,t.useTransition)();return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsxs)("button",{className:"btn-accent",onClick:()=>i(!0),children:["+ ",s("goals.new")]}),a&&(0,l.jsx)("div",{className:"modal-overlay",onMouseDown:()=>i(!1),children:(0,l.jsxs)("div",{className:"modal",style:{padding:"20px 22px",width:440,maxWidth:"94vw"},onMouseDown:e=>e.stopPropagation(),children:[(0,l.jsx)("div",{style:{fontSize:15,fontWeight:800,marginBottom:10},children:s("goals.new")}),(0,l.jsx)("label",{className:"form-label",children:s("goals.objective")}),(0,l.jsx)("input",{className:"form-input",autoFocus:!0,value:r,onChange:e=>d(e.target.value),placeholder:s("goals.objectivePlaceholder")}),(0,l.jsx)("label",{className:"form-label",children:s("common.description")}),(0,l.jsx)("textarea",{className:"form-input",rows:3,value:h,onChange:e=>g(e.target.value),placeholder:s("goals.descPlaceholder")}),(0,l.jsx)("label",{className:"form-label",children:s("goals.owner")}),(0,l.jsx)("select",{className:"form-input",value:u,onChange:e=>m(e.target.value),children:e.map(e=>(0,l.jsxs)("option",{value:e.id,children:[e.name," \xb7 ",e.role]},e.id))}),(0,l.jsxs)("div",{style:{display:"flex",justifyContent:"flex-end",gap:8,marginTop:16},children:[(0,l.jsx)("button",{className:"btn-ghost",onClick:()=>i(!1),children:s("common.cancel")}),(0,l.jsx)("button",{className:"btn-accent",disabled:!r.trim()||p,onClick:function(){v(async()=>{await n({title:r,description:h,ownerId:u}),i(!1),d(""),g("")})},children:s(p?"goals.creating":"goals.create")})]})]})})]})}},5695:(e,s,a)=>{"use strict";function l(e){if(null==e)return"";let s=e instanceof Date?e:new Date(e);if(isNaN(s.getTime()))return"";let a=s.toLocaleDateString([],{day:"2-digit",month:"short"}),l=s.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"});return`${a}, ${l}`}a.d(s,{F:()=>l})},8857:(e,s,a)=>{"use strict";a.d(s,{GoalTree:()=>b});var l=a(5076),t=a(8488),i=a(9860),n=a(8576),o=a(4552),c=a(891),r=a(7814);let d=(0,r.createServerReference)("40b087d49a37138c61d2b54cb086f4be65320060e5",r.callServer,void 0,r.findSourceMapURL,"cancelGoal"),h=(0,r.createServerReference)("406fb34dca08f1fed6533731647ab3eff5250a8fca",r.callServer,void 0,r.findSourceMapURL,"archiveGoal"),g=(0,r.createServerReference)("40eeee128074d98c84673a1f344c89930072b68e5f",r.callServer,void 0,r.findSourceMapURL,"reopenGoal"),u=(0,r.createServerReference)("4070af908340801ebec3ca43c4db97969c450b3987",r.callServer,void 0,r.findSourceMapURL,"restoreGoal");var m=a(5695),p=a(5629);function v({id:e,status:s,progress:a}){let o=(0,p.k)(),[c,r]=(0,t.useTransition)(),m=(0,i.useRouter)(),x=s=>r(async()=>{await s(e),m.refresh()});return(0,l.jsxs)("div",{className:"goal-actions",children:["active"===s&&a<100&&(0,l.jsxs)("button",{className:"goal-act danger",disabled:c,onClick:()=>{confirm(o("goals.cancelConfirm"))&&x(d)},children:[(0,l.jsx)(n.I,{name:"close",size:12})," ",o("common.cancel")]}),("active"===s||"cancelled"===s||"done"===s)&&(0,l.jsxs)("button",{className:"goal-act",disabled:c,onClick:()=>x(h),children:[(0,l.jsx)(n.I,{name:"collapse",size:12})," ",o("goals.archive")]}),"cancelled"===s&&(0,l.jsxs)("button",{className:"goal-act accent",disabled:c,onClick:()=>x(g),children:[(0,l.jsx)(n.I,{name:"refresh",size:12})," ",o("goals.reopen")]}),"archived"===s&&(0,l.jsxs)("button",{className:"goal-act accent",disabled:c,onClick:()=>x(u),children:[(0,l.jsx)(n.I,{name:"refresh",size:12})," ",o("goals.restore")]})]})}let x={active:"active",done:"done",cancelled:"cancelled",archived:"archived"};function b({goals:e}){let s=(0,p.k)(),[a,i]=(0,t.useState)("active"),[r,d]=(0,t.useState)("all"),[h,g]=(0,t.useState)(new Set),u=(0,t.useMemo)(()=>{let s=new Map;for(let a of e)for(let e of a.issues)e.assignee&&s.set(e.assignee.handle,e.assignee.name);return[...s.entries()]},[e]),f=e.filter(e=>"all"===a||e.status===a);return 0===e.length?(0,l.jsx)("div",{className:"muted",style:{padding:30,textAlign:"center"},children:s("goals.empty")}):(0,l.jsxs)("div",{className:"goal-tree",children:[(0,l.jsxs)("div",{className:"goal-filters",children:[(0,l.jsx)("div",{className:"seg",children:["active","done","cancelled","archived","all"].map(e=>(0,l.jsx)("button",{className:"seg-opt"+(a===e?" on":""),onClick:()=>i(e),children:s(`goals.status.${e}`)},e))}),u.length>0&&(0,l.jsxs)("select",{className:"goal-agent-sel",value:r,onChange:e=>d(e.target.value),children:[(0,l.jsx)("option",{value:"all",children:s("goals.allAgents")}),u.map(([e,s])=>(0,l.jsx)("option",{value:e,children:s},e))]})]}),0===f.length&&(0,l.jsx)("div",{className:"muted",style:{padding:24,textAlign:"center"},children:s("goals.emptyFiltered",{status:s(`goals.status.${a}`).toLowerCase()})}),f.map(e=>{let a,t=h.has(e.id),i=e.issues.filter(e=>"all"===r||e.assignee?.handle===r),d=e.issues.filter(e=>e.progress>=100).length;return(0,l.jsx)("div",{className:"goal-node",children:(0,l.jsxs)("div",{className:"goal-card status-"+(x[e.status]??"active"),children:[(0,l.jsxs)("div",{className:"goal-head",children:[(0,l.jsx)("button",{className:"side-act",title:t?s("goals.expand"):s("goals.collapse"),style:{flex:"0 0 auto"},onClick:()=>g(s=>{let a=new Set(s);return a.has(e.id)?a.delete(e.id):a.add(e.id),a}),children:(0,l.jsx)(n.I,{name:t?"chevronRight":"chevronDown",size:13})}),(0,l.jsx)(n.I,{name:"target",size:15,style:{color:"var(--accent)",flex:"0 0 auto"}}),(0,l.jsx)("span",{className:"goal-title",children:e.title}),(0,l.jsx)("span",{className:"goal-status-badge "+(x[e.status]??"active"),children:s(`goals.status.${e.status}`)}),(0,l.jsxs)("span",{className:"chip-sm",children:[e.progress,"%"]})]}),e.description&&(0,l.jsx)("div",{className:"goal-desc",children:e.description}),(0,l.jsx)("div",{className:"pbar",children:(0,l.jsx)("span",{style:{width:e.progress+"%"}})}),(0,l.jsxs)("div",{className:"goal-bottom",children:[(0,l.jsxs)("div",{className:"goal-meta",children:[s("goals.meta.complete",{done:d,total:e.issues.length})," \xb7 ",s(1!==e.issues.length?"goals.meta.childIssues.other":"goals.meta.childIssues.one",{n:e.issues.length}),(a="done"===e.status?[s("goals.stamp.done"),e.doneAt]:"cancelled"===e.status?[s("goals.stamp.cancelled"),e.cancelledAt]:"archived"===e.status?[s("goals.stamp.archived"),e.archivedAt]:[s("goals.stamp.created"),e.createdAt])[1]?(0,l.jsxs)("span",{style:{color:"var(--text-faint)"},children:[" \xb7 ",a[0]," ",(0,m.F)(a[1])]}):null]}),(0,l.jsx)(v,{id:e.id,status:e.status,progress:e.progress})]}),!t&&(0,l.jsxs)("div",{className:"goal-issues",children:[0===i.length&&(0,l.jsx)("div",{className:"goal-issue-empty",children:"all"!==r?s("goals.noIssuesForAgent"):s("goals.noIssuesYet")}),i.map(e=>(0,l.jsxs)("div",{className:"goal-issue",children:[(0,l.jsx)("span",{className:"gi-key",children:e.key}),(0,l.jsxs)("div",{className:"gi-main",children:[(0,l.jsxs)("div",{className:"gi-title-row",children:[(0,l.jsx)("span",{className:"gi-title",children:e.title}),e.assignee&&(0,l.jsx)(o.e,{name:e.assignee.name,color:e.assignee.color,size:18}),(0,l.jsxs)("span",{className:"gi-col col-"+e.col,children:[(0,l.jsx)(c.m,{status:"doing"===e.col?"working":"blocked"===e.col?"blocked":"review"===e.col?"review":"idle"})," ",s(`goals.col.${e.col}`)]})]}),(0,l.jsxs)("div",{className:"gi-prog",children:[(0,l.jsx)("span",{className:"gi-bar",children:(0,l.jsx)("span",{style:{width:e.progress+"%"}})}),(0,l.jsxs)("span",{className:"gi-pct",children:[e.progress,"%",e.steps.total>0?` \xb7 ${s("goals.todos",{done:e.steps.done,total:e.steps.total})}`:""]}),e.updatedAt&&(0,l.jsx)("span",{style:{fontSize:10,color:"var(--text-faint)",marginLeft:"auto"},children:(0,m.F)(e.updatedAt)})]})]})]},e.id))]})]})},e.id)})]})}}},e=>{e.O(0,[9219,3219,4428,8370,6646,6834,7358],()=>e(e.s=4899)),_N_E=e.O()}]);
|