auramaxx 0.0.17 → 0.0.19
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/app-build-manifest.json +70 -70
- package/.next/app-path-routes-manifest.json +2 -2
- package/.next/build-manifest.json +5 -5
- package/.next/prerender-manifest.json +30 -30
- package/.next/react-loadable-manifest.json +16 -16
- package/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +5 -5
- package/.next/server/app/api/[...doc]/page.js.nft.json +1 -1
- package/.next/server/app/api/[...doc]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/api/agent-requests/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/apps/install/route.js.nft.json +1 -1
- package/.next/server/app/api/apps/install/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/apps/manifests/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/apps/static/[...path]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/docs/plain/route.js.nft.json +1 -1
- package/.next/server/app/api/docs/plain/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/events/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/import-from-openclaw/[channel]/route.js.nft.json +1 -1
- package/.next/server/app/api/import-from-openclaw/[channel]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/import-from-openclaw/route.js.nft.json +1 -1
- package/.next/server/app/api/import-from-openclaw/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/import-from-openclaw/validate/[channel]/route.js.nft.json +1 -1
- package/.next/server/app/api/import-from-openclaw/validate/[channel]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/page.js.nft.json +1 -1
- package/.next/server/app/api/page_client-reference-manifest.js +1 -1
- package/.next/server/app/api/restart/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/update/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/version/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/workspace/[id]/apps/[wid]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/workspace/[id]/apps/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/workspace/[id]/export/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/workspace/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/workspace/config/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/workspace/import/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/workspace/route_client-reference-manifest.js +1 -1
- package/.next/server/app/app-legacy-do-not-use/page.js +3 -3
- package/.next/server/app/app-legacy-do-not-use/page.js.nft.json +1 -1
- package/.next/server/app/app-legacy-do-not-use/page_client-reference-manifest.js +1 -1
- package/.next/server/app/app-legacy-do-not-use.html +1 -1
- package/.next/server/app/app-legacy-do-not-use.rsc +6 -6
- package/.next/server/app/approve/[actionId]/page.js.nft.json +1 -1
- package/.next/server/app/approve/[actionId]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/docs/[...doc]/page.js.nft.json +1 -1
- package/.next/server/app/docs/[...doc]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/docs/page.js.nft.json +1 -1
- package/.next/server/app/docs/page_client-reference-manifest.js +1 -1
- package/.next/server/app/health/page.js.nft.json +1 -1
- package/.next/server/app/health/page_client-reference-manifest.js +1 -1
- package/.next/server/app/health.html +1 -1
- package/.next/server/app/health.rsc +5 -5
- package/.next/server/app/hello/page.js.nft.json +1 -1
- package/.next/server/app/hello/page_client-reference-manifest.js +1 -1
- package/.next/server/app/hello.html +1 -1
- package/.next/server/app/hello.rsc +5 -5
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.rsc +6 -6
- package/.next/server/app/page.js +9 -3
- package/.next/server/app/page.js.nft.json +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/privacy/page.js.nft.json +1 -1
- package/.next/server/app/privacy/page_client-reference-manifest.js +1 -1
- package/.next/server/app/privacy.html +1 -1
- package/.next/server/app/privacy.rsc +5 -5
- package/.next/server/app/share/[token]/page.js.nft.json +1 -1
- package/.next/server/app/share/[token]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/terms/page.js.nft.json +1 -1
- package/.next/server/app/terms/page_client-reference-manifest.js +1 -1
- package/.next/server/app/terms.html +1 -1
- package/.next/server/app/terms.rsc +5 -5
- package/.next/server/app/yo/page.js +1 -1
- package/.next/server/app/yo/page.js.nft.json +1 -1
- package/.next/server/app/yo/page_client-reference-manifest.js +1 -1
- package/.next/server/app/yo.html +1 -1
- package/.next/server/app/yo.rsc +6 -6
- package/.next/server/app-paths-manifest.json +2 -2
- package/.next/server/chunks/1196.js +1 -1
- package/.next/server/chunks/{6415.js → 2123.js} +2 -2
- package/.next/server/chunks/2234.js +1 -1
- package/.next/server/chunks/4224.js +1 -0
- package/.next/server/chunks/4600.js +1 -1
- package/.next/server/chunks/5678.js +1 -1
- package/.next/server/chunks/5991.js +7 -0
- package/.next/server/chunks/6470.js +1 -1
- package/.next/server/chunks/7585.js +1 -1
- package/.next/server/chunks/7935.js +19 -11
- package/.next/server/chunks/8468.js +1 -1
- package/.next/server/chunks/{1350.js → 9323.js} +3 -3
- package/.next/server/chunks/9971.js +1 -1
- package/.next/server/functions-config-manifest.json +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/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/chunks/{1168.aaac1edbb597fe5a.js → 1168.bb1c93965872e980.js} +1 -1
- package/.next/static/chunks/2891-bf010357841c9ce9.js +1 -0
- package/.next/static/chunks/{2927.7e00cc878d9a3f52.js → 2927.3976471e61df966e.js} +1 -1
- package/.next/static/chunks/{3573-1b41d7b8a000d015.js → 3573-667bc4c8f56afcff.js} +1 -1
- package/.next/static/chunks/{3a91511d-ba215c0b5dc21ba9.js → 3a91511d-da2c74cad6c6fc33.js} +2 -2
- package/.next/static/chunks/4114-a375178fd94c4d8a.js +1 -0
- package/.next/static/chunks/{4256.48407d9abad5ea33.js → 4256.aa831e4d8c3f65bc.js} +1 -1
- package/.next/static/chunks/{4919-7e7cdd5efc9f2110.js → 4919-0e698cd95504e355.js} +1 -1
- package/.next/static/chunks/{5336-233ec7ab3807267c.js → 5336-b775f449d7433604.js} +1 -1
- package/.next/static/chunks/{7338-3ce17a93614f1d77.js → 5362-2e8fcdd0bc6273ca.js} +4 -4
- package/.next/static/chunks/67-cb9bbb430499e803.js +1 -0
- package/.next/static/chunks/{8273-8e92d34180669ca9.js → 8273-3b9d882c5dd6a9a8.js} +1 -1
- package/.next/static/chunks/8291-8f6fb6554e692552.js +1 -0
- package/.next/static/chunks/8370-6537b6b27df58b23.js +1 -0
- package/.next/static/chunks/app/app-legacy-do-not-use/page-efa348da049c5873.js +1 -0
- package/.next/static/chunks/app/{error-63cbe72522239cff.js → error-04a18fd49a89ee17.js} +1 -1
- package/.next/static/chunks/app/layout-7093dda0d106f34d.js +1 -0
- package/.next/static/chunks/app/page-0ec7cf48550f71e6.js +1 -0
- package/.next/static/chunks/app/yo/{page-cf5d6540ea31c31c.js → page-48930746b135037e.js} +1 -1
- package/.next/static/chunks/{webpack-79ad58260e9b10b4.js → webpack-15ec0114c9d658c2.js} +1 -1
- package/.next/static/css/35991998d1b5eff0.css +3 -0
- package/.next/trace +28 -28
- package/README.md +2 -2
- package/bin/auramaxx.js +87 -3
- package/package.json +8 -4
- package/prisma/migrations/20260301225214_social_tables/migration.sql +81 -0
- package/prisma/migrations/20260302120000_add_notification_hash/migration.sql +8 -0
- package/prisma/migrations/20260302160000_add_public_key_hex/migration.sql +5 -0
- package/prisma/migrations/20260302170000_add_inbound_author_public_key/migration.sql +5 -0
- package/prisma/schema.prisma +272 -177
- package/shared/credential-field-schema.ts +10 -0
- package/skills/auramaxx/SKILL.md +33 -4
- package/skills/auramaxx/docs/AGENT_SETUP.md +7 -2
- package/src/app/UnlockPageClient.tsx +448 -43
- package/src/app/app-legacy-do-not-use/page.tsx +5 -3
- package/src/app/globals.css +1 -1
- package/src/components/AgentPicker.tsx +278 -0
- package/src/components/CreateAgentModal.tsx +192 -0
- package/src/components/NotificationDrawer.tsx +15 -13
- package/src/components/agent/AgentSidebar.tsx +2 -19
- package/src/components/agent/CredentialAgent.tsx +70 -37
- package/src/components/agent/CredentialForm.tsx +32 -7
- package/src/components/agent/CredentialList.tsx +149 -72
- package/src/components/agents/AgentsView.tsx +1035 -0
- package/src/components/design-system/TextAreaInput.tsx +78 -0
- package/src/components/design-system/index.ts +1 -0
- package/src/components/hub/HubView.tsx +58 -0
- package/src/components/layout/LeftRail.tsx +333 -40
- package/src/components/layout/ViewShell.tsx +125 -0
- package/src/components/layout/index.ts +1 -0
- package/src/components/social/PrimaryHubRegistrationGate.tsx +260 -0
- package/src/components/social/SocialView.tsx +904 -0
- package/src/hooks/useSocialNotifications.ts +123 -0
- package/src/lib/events.ts +10 -1
- package/src/lib/social-client.ts +319 -0
- package/src/lib/view-registry.ts +22 -4
- package/src/server/cli/commands/agent.ts +33 -7
- package/src/server/cli/commands/create.ts +209 -0
- package/src/server/cli/commands/onboard.ts +39 -0
- package/src/server/cli/commands/play.ts +68 -0
- package/src/server/cli/commands/register-agent.ts +181 -0
- package/src/server/cli/commands/social.ts +648 -0
- package/src/server/cli/commands/start.ts +4 -3
- package/src/server/cron/index.ts +5 -9
- package/src/server/cron/jobs/social-inbound.ts +596 -0
- package/src/server/cron/jobs/social-outbound.ts +70 -0
- package/src/server/index.ts +14 -0
- package/src/server/lib/agent-profiles.ts +10 -1
- package/src/server/lib/cold.ts +0 -45
- package/src/server/lib/credential-import.ts +53 -47
- package/src/server/lib/defaults.ts +11 -0
- package/src/server/lib/feature-flags.ts +3 -0
- package/src/server/lib/hub-auth.ts +159 -0
- package/src/server/lib/migrate-agent-profiles.ts +96 -0
- package/src/server/lib/notifications.ts +12 -1
- package/src/server/lib/permissions.ts +10 -0
- package/src/server/lib/project-scope.ts +33 -5
- package/src/server/lib/social/create.ts +176 -0
- package/src/server/lib/social/global-aura-id.ts +115 -0
- package/src/server/lib/social/hub-rpc-client.ts +99 -0
- package/src/server/lib/social/hub-session.ts +6 -0
- package/src/server/lib/social/public-key.ts +32 -0
- package/src/server/lib/social/register.ts +162 -0
- package/src/server/lib/social/sign.ts +95 -0
- package/src/server/lib/social/sync.ts +301 -0
- package/src/server/mcp/server.ts +142 -18
- package/src/server/mcp/tools.ts +552 -0
- package/src/server/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -1
- package/src/server/routes/agent-hub.ts +276 -0
- package/src/server/routes/agent-profiles.ts +145 -19
- package/src/server/routes/credentials.ts +49 -15
- package/src/server/routes/heartbeat.ts +3 -7
- package/src/server/routes/passkey.ts +7 -1
- package/src/server/routes/social.ts +869 -0
- package/src/server/routes/unlock.ts +17 -1
- package/src/server/routes/verified-credentials.ts +312 -0
- package/src/server/test-data/template.db +0 -0
- package/src/server/test-data/worker-1/agent-primary.json +12 -0
- package/src/server/test-data/worker-1/auramaxx.db +0 -0
- package/src/server/test-data/worker-1/backups/auramaxx.db.20260305_011404.bak +0 -0
- package/src/server/test-data/worker-1/backups/credentials.20260305_011404.cred-00ntf5h3.json +24 -0
- package/src/server/test-data/worker-1/backups/credentials.20260305_011404.cred-dh8fa9k3.json +24 -0
- package/src/server/test-data/worker-1/backups/credentials.20260305_011404.cred-prfhlyow.json +25 -0
- package/src/server/test-data/worker-1/backups/credentials.20260305_011404.cred-w26jd6zi.json +22 -0
- package/src/server/test-data/worker-1/config.json +33 -0
- package/src/server/test-data/worker-1/test.db +0 -0
- package/src/server/test-data/worker-10/agent-primary.json +12 -0
- package/src/server/test-data/worker-10/config.json +33 -0
- package/src/server/test-data/worker-10/test.db +0 -0
- package/src/server/test-data/worker-11/agent-primary.json +12 -0
- package/src/server/test-data/worker-11/config.json +33 -0
- package/src/server/test-data/worker-11/test.db +0 -0
- package/src/server/test-data/worker-12/agent-primary.json +12 -0
- package/src/server/test-data/worker-12/config.json +33 -0
- package/src/server/test-data/worker-12/credentials/cred-hboagned.json +25 -0
- package/src/server/test-data/worker-12/credentials/cred-nt14xd9t.json +24 -0
- package/src/server/test-data/worker-12/credentials/cred-qn59xefc.json +24 -0
- package/src/server/test-data/worker-12/test.db +0 -0
- package/src/server/test-data/worker-13/agent-primary.json +12 -0
- package/src/server/test-data/worker-13/approval-context.json +56 -0
- package/src/server/test-data/worker-13/approval-context.key +1 -0
- package/src/server/test-data/worker-13/config.json +33 -0
- package/src/server/test-data/worker-13/credentials-recently-deleted/cred-jn9yqy2m.json +20 -0
- package/src/server/test-data/worker-13/test.db +0 -0
- package/src/server/test-data/worker-14/agent-primary.json +12 -0
- package/src/server/test-data/worker-14/config.json +33 -0
- package/src/server/test-data/worker-14/test.db +0 -0
- package/src/server/test-data/worker-15/agent-primary.json +12 -0
- package/src/server/test-data/worker-15/config.json +33 -0
- package/src/server/test-data/worker-15/test.db +0 -0
- package/src/server/test-data/worker-15/update-check-4b305e76.json +5 -0
- package/src/server/test-data/worker-2/agent-primary.json +12 -0
- package/src/server/test-data/worker-2/config.json +33 -0
- package/src/server/test-data/worker-2/test.db +0 -0
- package/src/server/test-data/worker-3/agent-primary.json +12 -0
- package/src/server/test-data/worker-3/config.json +33 -0
- package/src/server/test-data/worker-3/test.db +0 -0
- package/src/server/test-data/worker-4/agent-primary.json +12 -0
- package/src/server/test-data/worker-4/config.json +33 -0
- package/src/server/test-data/worker-4/credentials/cred-bm6p74u5.json +24 -0
- package/src/server/test-data/worker-4/credentials/cred-r8eqb07i.json +25 -0
- package/src/server/test-data/worker-4/credentials/cred-ziv49y9h.json +24 -0
- package/src/server/test-data/worker-4/test.db +0 -0
- package/src/server/test-data/worker-5/agent-primary.json +12 -0
- package/src/server/test-data/worker-5/config.json +33 -0
- package/src/server/test-data/worker-5/credentials/cred-15gyfeht.json +25 -0
- package/src/server/test-data/worker-5/credentials/cred-lp0ocnfc.json +24 -0
- package/src/server/test-data/worker-5/credentials/cred-zfbwfxw0.json +24 -0
- package/src/server/test-data/worker-5/test.db +0 -0
- package/src/server/test-data/worker-6/agent-primary.json +12 -0
- package/src/server/test-data/worker-6/config.json +33 -0
- package/src/server/test-data/worker-6/credentials/cred-dx8li3ue.json +24 -0
- package/src/server/test-data/worker-6/credentials/cred-myeskqky.json +24 -0
- package/src/server/test-data/worker-6/credentials/cred-tam01qdt.json +25 -0
- package/src/server/test-data/worker-6/credentials/cred-wdh6rslw.json +22 -0
- package/src/server/test-data/worker-6/credentials-archive/cred-4wg53v1y.json +25 -0
- package/src/server/test-data/worker-6/test.db +0 -0
- package/src/server/test-data/worker-7/agent-primary.json +12 -0
- package/src/server/test-data/worker-7/config.json +33 -0
- package/src/server/test-data/worker-7/credentials/cred-ji7ec57d.json +25 -0
- package/src/server/test-data/worker-7/credentials/cred-mmgj0ypo.json +24 -0
- package/src/server/test-data/worker-7/credentials/cred-nb0ic93x.json +24 -0
- package/src/server/test-data/worker-7/test.db +0 -0
- package/src/server/test-data/worker-8/agent-primary.json +12 -0
- package/src/server/test-data/worker-8/config.json +33 -0
- package/src/server/test-data/worker-8/test.db +0 -0
- package/src/server/test-data/worker-9/agent-primary.json +12 -0
- package/src/server/test-data/worker-9/test.db +0 -0
- package/src/server/tests/cli/bin-entrypoint.test.ts +99 -0
- package/src/server/tests/cli/social.test.ts +83 -0
- package/src/server/tests/cron/social-inbound-followers.unit.test.ts +164 -0
- package/src/server/tests/cron/social-inbound-staleness.test.ts +193 -0
- package/src/server/tests/cron/social-outbound.test.ts +252 -0
- package/src/server/tests/endpoints/agent.test.ts +0 -16
- package/src/server/tests/lib/credential-field-schema.test.ts +448 -0
- package/src/server/tests/lib/project-scope.test.ts +49 -0
- package/src/server/tests/lib/social/create.test.ts +207 -0
- package/src/server/tests/lib/social/sign.test.ts +163 -0
- package/src/server/tests/lib/social/sync.test.ts +198 -0
- package/src/server/tests/mcp/server.test.ts +1 -3
- package/src/server/tests/mcp/tools.test.ts +219 -7
- package/src/server/tsconfig.tsbuildinfo +1 -1
- package/tsconfig.json +1 -0
- package/.next/server/chunks/2460.js +0 -7
- package/.next/server/chunks/5246.js +0 -1
- package/.next/static/chunks/3667-1db7bd03948e60df.js +0 -1
- package/.next/static/chunks/5442-b5bb869e832e8967.js +0 -1
- package/.next/static/chunks/6872-a8f1ad5fc35a1c35.js +0 -1
- package/.next/static/chunks/7394-4bdb1feefad1a74a.js +0 -1
- package/.next/static/chunks/7587-8542eae6e5139d27.js +0 -1
- package/.next/static/chunks/app/app-legacy-do-not-use/page-569fed5d1a2bfe79.js +0 -1
- package/.next/static/chunks/app/layout-af8d9969c7aeb758.js +0 -1
- package/.next/static/chunks/app/page-9bd0ec3ba4aa6cea.js +0 -1
- package/.next/static/css/88f92e1578b1e5d9.css +0 -3
- package/shared/agent-profile-schema.ts +0 -81
- package/src/internal/security/frontend-api-authorization-audit.md +0 -206
- package/src/server/lib/agent-profile-records.ts +0 -72
- /package/.next/static/{QPzVnl7GToqgYBq14V_iC → yEruVJH_cuht5hu5_1R00}/_buildManifest.js +0 -0
- /package/.next/static/{QPzVnl7GToqgYBq14V_iC → yEruVJH_cuht5hu5_1R00}/_ssgManifest.js +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";exports.id=5246,exports.ids=[5246],exports.modules={1599:(a,b,c)=>{c.d(b,{u:()=>d,Rn:()=>e,l3:()=>f,Dw:()=>l,VB:()=>h,zo:()=>i});let d={login:{url:"url",username:"username",password:"password",notes:"notes",totp:"totp"},card:{cardholder:"cardholder",brand:"brand",billingZip:"billing_zip",last4:"last4",number:"number",cvv:"cvv",expiry:"expiry",notes:"notes"},sso:{website:"website",provider:"provider",identifier:"identifier"},note:{content:"content"},plain_note:{content:"content"},hot_wallet:{address:"address",privateKey:"private_key",chain:"chain"},apikey:{key:"key",value:"value"},oauth2:{accessToken:"access_token",refreshToken:"refresh_token",clientId:"client_id",clientSecret:"client_secret",tokenEndpoint:"token_endpoint",scopes:"scopes",authMethod:"auth_method",expiresAt:"expires_at"},ssh:{privateKey:"private_key",passphrase:"passphrase",publicKey:"public_key",fingerprint:"fingerprint",keyType:"key_type",hosts:"hosts"},gpg:{privateKey:"private_key",publicKey:"public_key",fingerprint:"fingerprint",keyId:"key_id",uidEmail:"uid_email",expiresAt:"expires_at"},custom:{value:"value"}},e={login:[{key:d.login.url,label:"URL",type:"text",sensitive:!1},{key:d.login.username,label:"Username",type:"text",sensitive:!1,requiredOnCreate:!0},{key:d.login.password,label:"Password",type:"secret",sensitive:!0,requiredOnCreate:!0},{key:d.login.notes,label:"Notes",type:"text",sensitive:!0},{key:d.login.totp,label:"TOTP",type:"secret",sensitive:!0,aliases:["otp"]}],card:[{key:d.card.cardholder,label:"Cardholder",type:"text",sensitive:!1,requiredOnCreate:!0},{key:d.card.brand,label:"Brand",type:"text",sensitive:!1},{key:d.card.billingZip,label:"Billing ZIP",type:"text",sensitive:!1},{key:d.card.last4,label:"Last 4",type:"text",sensitive:!1},{key:d.card.number,label:"Number",type:"text",sensitive:!0,requiredOnCreate:!0},{key:d.card.cvv,label:"CVV",type:"secret",sensitive:!0,requiredOnCreate:!0},{key:d.card.expiry,label:"Expiry",type:"text",sensitive:!0,requiredOnCreate:!0},{key:d.card.notes,label:"Notes",type:"text",sensitive:!0}],sso:[{key:d.sso.website,label:"Website",type:"text",sensitive:!1,requiredOnCreate:!0},{key:d.sso.provider,label:"Provider",type:"text",sensitive:!1,requiredOnCreate:!0},{key:d.sso.identifier,label:"Identifier",type:"text",sensitive:!1}],note:[{key:d.note.content,label:"Content",type:"text",sensitive:!0,requiredOnCreate:!0,aliases:["value"]}],plain_note:[{key:d.plain_note.content,label:"Content",type:"text",sensitive:!1,requiredOnCreate:!0,aliases:["value"]}],hot_wallet:[{key:d.hot_wallet.address,label:"Address",type:"text",sensitive:!1,requiredOnCreate:!0},{key:d.hot_wallet.chain,label:"Chain",type:"text",sensitive:!1,requiredOnCreate:!0},{key:d.hot_wallet.privateKey,label:"Private Key",type:"secret",sensitive:!0,requiredOnCreate:!0}],api:[],apikey:[{key:d.apikey.key,label:"Key",type:"text",sensitive:!1,requiredOnCreate:!0},{key:d.apikey.value,label:"Value",type:"secret",sensitive:!0,requiredOnCreate:!0}],custom:[],passkey:[],oauth2:[{key:d.oauth2.tokenEndpoint,label:"Token Endpoint",type:"url",sensitive:!1,requiredOnCreate:!0},{key:d.oauth2.scopes,label:"Scopes",type:"text",sensitive:!1},{key:d.oauth2.authMethod,label:"Auth Method",type:"text",sensitive:!1},{key:d.oauth2.expiresAt,label:"Expires At",type:"number",sensitive:!1,requiredOnCreate:!0},{key:d.oauth2.accessToken,label:"Access Token",type:"secret",sensitive:!0,requiredOnCreate:!0},{key:d.oauth2.refreshToken,label:"Refresh Token",type:"secret",sensitive:!0,requiredOnCreate:!0},{key:d.oauth2.clientId,label:"Client ID",type:"secret",sensitive:!0,requiredOnCreate:!0},{key:d.oauth2.clientSecret,label:"Client Secret",type:"secret",sensitive:!0,requiredOnCreate:!0}],ssh:[{key:d.ssh.fingerprint,label:"Fingerprint",type:"text",sensitive:!1},{key:d.ssh.keyType,label:"Key Type",type:"text",sensitive:!1},{key:d.ssh.hosts,label:"Hosts",type:"text",sensitive:!1},{key:d.ssh.privateKey,label:"Private Key",type:"secret",sensitive:!0,requiredOnCreate:!0},{key:d.ssh.passphrase,label:"Passphrase",type:"secret",sensitive:!0},{key:d.ssh.publicKey,label:"Public Key",type:"text",sensitive:!1}],gpg:[{key:d.gpg.fingerprint,label:"Fingerprint",type:"text",sensitive:!1},{key:d.gpg.keyId,label:"Key ID",type:"text",sensitive:!1},{key:d.gpg.uidEmail,label:"UID Email",type:"email",sensitive:!1},{key:d.gpg.expiresAt,label:"Expires At",type:"text",sensitive:!1},{key:d.gpg.privateKey,label:"Private Key",type:"secret",sensitive:!0,requiredOnCreate:!0},{key:d.gpg.publicKey,label:"Public Key",type:"text",sensitive:!1}]},f=d.note.content,g={login:d.login.password,card:d.card.number,sso:d.sso.website,note:d.note.content,plain_note:d.plain_note.content,hot_wallet:d.hot_wallet.privateKey,api:d.apikey.value,apikey:d.apikey.value,custom:d.custom.value,passkey:d.ssh.privateKey,oauth2:d.oauth2.accessToken,ssh:d.ssh.privateKey,gpg:d.gpg.privateKey};function h(a){return k(a)&&g[a]||"value"}function i(a){if(!k(a))return;let b=h(a);return e[a].find(a=>a.key===b)}let j=Object.fromEntries(Object.entries(e).map(([a,b])=>{let c=new Map;for(let a of b)for(let b of(c.set(a.key.toLowerCase(),a.key),a.aliases||[]))c.set(b.toLowerCase(),a.key);return[a,c]}));function k(a){return Object.prototype.hasOwnProperty.call(e,a)}function l(a,b){let c=b.trim();return c&&k(a)&&j[a].get(c.toLowerCase())||c}},14657:(a,b,c)=>{c.d(b,{Q:()=>e});var d=c(51498);let e=(a,b={})=>{let c=new d.xI.Renderer,e=c.link,f=b.decodeEscapedNewlines?a.replace(/\\n/g,"\n"):a;return c.heading=({text:a,depth:b})=>{let c=a.replace(/<[^>]*>/g,"").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"");return`<h${b} id="${c}">${a}</h${b}>`},c.link=function(a){let c=b.rewriteLinkHref?.(a.href)??a.href,d=e.call(this,{...a,href:c});return/^https?:\/\//i.test(c)?d.replace("<a ",'<a target="_blank" rel="noopener noreferrer" '):d},d.xI.parse(f,{async:!1,renderer:c,breaks:b.preserveSingleLineBreaks??!1})}},30935:(a,b,c)=>{c.d(b,{p:()=>n});var d=c(21124),e=c(38301),f=c(9212),g=c(51536);let h=["abandon","ability","able","about","above","absent","absorb","abstract","absurd","abuse","access","accident","account","accuse","achieve","acid","acoustic","acquire","across","act","action","actor","actress","actual","adapt","add","addict","address","adjust","admit","adult","advance","advice","aerobic","affair","afford","afraid","again","age","agent","agree","ahead","aim","air","airport","aisle","alarm","album","alcohol","alert","alien","all","alley","allow","almost","alone","alpha","already","also","alter","always","amateur","amazing","among","amount","amused","analyst","anchor","ancient","anger","angle","angry","animal","ankle","announce","annual","another","answer","antenna","antique","anxiety","any","apart","apology","appear","apple","approve","april","arch","arctic","area","arena","argue","arm","armed","armor","army","around","arrange","arrest","arrive","arrow","art","artefact","artist","artwork","ask","aspect","assault","asset","assist","assume","asthma","athlete","atom","attack","attend","attitude","attract","auction","audit","august","aunt","author","auto","autumn","average","avocado","avoid","awake","aware","away","awesome","awful","awkward","axis","baby","bachelor","bacon","badge","bag","balance","balcony","ball","bamboo","banana","banner","bar","barely","bargain","barrel","base","basic","basket","battle","beach","bean","beauty","because","become","beef","before","begin","behave","behind","believe","below","belt","bench","benefit","best","betray","better","between","beyond","bicycle","bid","bike","bind","biology","bird","birth","bitter","black","blade","blame","blanket","blast","bleak","bless","blind","blood","blossom","blouse","blue","blur","blush","board","boat","body","boil","bomb","bone","bonus","book","boost","border","boring","borrow","boss","bottom","bounce","box","boy","bracket","brain","brand","brass","brave","bread","breeze","brick","bridge","brief","bright","bring","brisk","broccoli","broken","bronze","broom","brother","brown","brush","bubble","buddy","budget","buffalo","build","bulb","bulk","bullet","bundle","bunker","burden","burger","burst","bus","business","busy","butter","buyer","buzz","cabbage","cabin","cable","cactus","cage","cake","call","calm","camera","camp","can","canal","cancel","candy","cannon","canoe","canvas","canyon","capable","capital","captain","car","carbon","card","cargo","carpet","carry","cart","case","cash","casino","castle","casual","cat","catalog","catch","category","cattle","caught","cause","caution","cave","ceiling","celery","cement","census","century","cereal","certain","chair","chalk","champion","change","chaos","chapter","charge","chase","chat","cheap","check","cheese","chef","cherry","chest","chicken","chief","child","chimney","choice","choose","chronic","chuckle","chunk","churn","cigar","cinnamon","circle","citizen","city","civil","claim","clap","clarify","claw","clay","clean","clerk","clever","click","client","cliff","climb","clinic","clip","clock","clog","close","cloth","cloud","clown","club","clump","cluster","clutch","coach","coast","coconut","code","coffee","coil","coin","collect","color","column","combine","come","comfort","comic","common","company","concert","conduct","confirm","congress","connect","consider","control","convince","cook","cool","copper","copy","coral","core","corn","correct","cost","cotton","couch","country","couple","course","cousin","cover","coyote","crack","cradle","craft","cram","crane","crash","crater","crawl","crazy","cream","credit","creek","crew","cricket","crime","crisp","critic","crop","cross","crouch","crowd","crucial","cruel","cruise","crumble","crunch","crush","cry","crystal","cube","culture","cup","cupboard","curious","current","curtain","curve","cushion","custom","cute","cycle","dad","damage","damp","dance","danger","daring","dash","daughter","dawn","day","deal","debate","debris","decade","december","decide","decline","decorate","decrease","deer","defense","define","defy","degree","delay","deliver","demand","demise","denial","dentist","deny","depart","depend","deposit","depth","deputy","derive","describe","desert","design","desk","despair","destroy","detail","detect","develop","device","devote","diagram","dial","diamond","diary","dice","diesel","diet","differ","digital","dignity","dilemma","dinner","dinosaur","direct","dirt","disagree","discover","disease","dish","dismiss","disorder","display","distance","divert","divide","divorce","dizzy","doctor","document","dog","doll","dolphin","domain","donate","donkey","donor","door","dose","double","dove","draft","dragon","drama","drastic","draw","dream","dress","drift","drill","drink","drip","drive","drop","drum","dry","duck","dumb","dune","during","dust","dutch","duty","dwarf","dynamic","eager","eagle","early","earn","earth","easily","east","easy","echo","ecology","economy","edge","edit","educate","effort","egg","eight","either","elbow","elder","electric","elegant","element","elephant","elevator","elite","else","embark","embody","embrace","emerge","emotion","employ","empower","empty","enable","enact","end","endless","endorse","enemy","energy","enforce","engage","engine","enhance","enjoy","enlist","enough","enrich","enroll","ensure","enter","entire","entry","envelope","episode","equal","equip","era","erase","erode","erosion","error","erupt","escape","essay","essence","estate","eternal","ethics","evidence","evil","evoke","evolve","exact","example","excess","exchange","excite","exclude","excuse","execute","exercise","exhaust","exhibit","exile","exist","exit","exotic","expand","expect","expire","explain","expose","express","extend","extra","eye","eyebrow","fabric","face","faculty","fade","faint","faith","fall","false","fame","family","famous","fan","fancy","fantasy","farm","fashion","fat","fatal","father","fatigue","fault","favorite","feature","february","federal","fee","feed","feel","female","fence","festival","fetch","fever","few","fiber","fiction","field","figure","file","film","filter","final","find","fine","finger","finish","fire","firm","first","fiscal","fish","fit","fitness","fix","flag","flame","flash","flat","flavor","flee","flight","flip","float","flock","floor","flower","fluid","flush","fly","foam","focus","fog","foil","fold","follow","food","foot","force","forest","forget","fork","fortune","forum","forward","fossil","foster","found","fox","fragile","frame","frequent","fresh","friend","fringe","frog","front","frost","frown","frozen","fruit","fuel","fun","funny","furnace","fury","future","gadget","gain","galaxy","gallery","game","gap","garage","garbage","garden","garlic","garment","gas","gasp","gate","gather","gauge","gaze","general","genius","genre","gentle","genuine","gesture","ghost","giant","gift","giggle","ginger","giraffe","girl","give","glad","glance","glare","glass","glide","glimpse","globe","gloom","glory","glove","glow","glue","goat","goddess","gold","good","goose","gorilla","gospel","gossip","govern","gown","grab","grace","grain","grant","grape","grass","gravity","great","green","grid","grief","grit","grocery","group","grow","grunt","guard","guess","guide","guilt","guitar","gun","gym","habit","hair","half","hammer","hamster","hand","happy","harbor","hard","harsh","harvest","hat","have","hawk","hazard","head","health","heart","heavy","hedgehog","height","hello","helmet","help","hen","hero","hidden","high","hill","hint","hip","hire","history","hobby","hockey","hold","hole","holiday","hollow","home","honey","hood","hope","horn","horror","horse","hospital","host","hotel","hour","hover","hub","huge","human","humble","humor","hundred","hungry","hunt","hurdle","hurry","hurt","husband","hybrid","ice","icon","idea","identify","idle","ignore","ill","illegal","illness","image","imitate","immense","immune","impact","impose","improve","impulse","inch","include","income","increase","index","indicate","indoor","industry","infant","inflict","inform","inhale","inherit","initial","inject","injury","inmate","inner","innocent","input","inquiry","insane","insect","inside","inspire","install","intact","interest","into","invest","invite","involve","iron","island","isolate","issue","item","ivory","jacket","jaguar","jar","jazz","jealous","jeans","jelly","jewel","job","join","joke","journey","joy","judge","juice","jump","jungle","junior","junk","just","kangaroo","keen","keep","ketchup","key","kick","kid","kidney","kind","kingdom","kiss","kit","kitchen","kite","kitten","kiwi","knee","knife","knock","know","lab","label","labor","ladder","lady","lake","lamp","language","laptop","large","later","latin","laugh","laundry","lava","law","lawn","lawsuit","layer","lazy","leader","leaf","learn","leave","lecture","left","leg","legal","legend","leisure","lemon","lend","length","lens","leopard","lesson","letter","level","liar","liberty","library","license","life","lift","light","like","limb","limit","link","lion","liquid","list","little","live","lizard","load","loan","lobster","local","lock","logic","lonely","long","loop","lottery","loud","lounge","love","loyal","lucky","luggage","lumber","lunar","lunch","luxury","lyrics","machine","mad","magic","magnet","maid","mail","main","major","make","mammal","man","manage","mandate","mango","mansion","manual","maple","marble","march","margin","marine","market","marriage","mask","mass","master","match","material","math","matrix","matter","maximum","maze","meadow","mean","measure","meat","mechanic","medal","media","melody","melt","member","memory","mention","menu","mercy","merge","merit","merry","mesh","message","metal","method","middle","midnight","milk","million","mimic","mind","minimum","minor","minute","miracle","mirror","misery","miss","mistake","mix","mixed","mixture","mobile","model","modify","mom","moment","monitor","monkey","monster","month","moon","moral","more","morning","mosquito","mother","motion","motor","mountain","mouse","move","movie","much","muffin","mule","multiply","muscle","museum","mushroom","music","must","mutual","myself","mystery","myth","naive","name","napkin","narrow","nasty","nation","nature","near","neck","need","negative","neglect","neither","nephew","nerve","nest","net","network","neutral","never","news","next","nice","night","noble","noise","nominee","noodle","normal","north","nose","notable","note","nothing","notice","novel","now","nuclear","number","nurse","nut","oak","obey","object","oblige","obscure","observe","obtain","obvious","occur","ocean","october","odor","off","offer","office","often","oil","okay","old","olive","olympic","omit","once","one","onion","online","only","open","opera","opinion","oppose","option","orange","orbit","orchard","order","ordinary","organ","orient","original","orphan","ostrich","other","outdoor","outer","output","outside","oval","oven","over","own","owner","oxygen","oyster","ozone","pact","paddle","page","pair","palace","palm","panda","panel","panic","panther","paper","parade","parent","park","parrot","party","pass","patch","path","patient","patrol","pattern","pause","pave","payment","peace","peanut","pear","peasant","pelican","pen","penalty","pencil","people","pepper","perfect","permit","person","pet","phone","photo","phrase","physical","piano","picnic","picture","piece","pig","pigeon","pill","pilot","pink","pioneer","pipe","pistol","pitch","pizza","place","planet","plastic","plate","play","please","pledge","pluck","plug","plunge","poem","poet","point","polar","pole","police","pond","pony","pool","popular","portion","position","possible","post","potato","pottery","poverty","powder","power","practice","praise","predict","prefer","prepare","present","pretty","prevent","price","pride","primary","print","priority","prison","private","prize","problem","process","produce","profit","program","project","promote","proof","property","prosper","protect","proud","provide","public","pudding","pull","pulp","pulse","pumpkin","punch","pupil","puppy","purchase","purity","purpose","purse","push","put","puzzle","pyramid","quality","quantum","quarter","question","quick","quit","quiz","quote","rabbit","raccoon","race","rack","radar","radio","rail","rain","raise","rally","ramp","ranch","random","range","rapid","rare","rate","rather","raven","raw","razor","ready","real","reason","rebel","rebuild","recall","receive","recipe","record","recycle","reduce","reflect","reform","refuse","region","regret","regular","reject","relax","release","relief","rely","remain","remember","remind","remove","render","renew","rent","reopen","repair","repeat","replace","report","require","rescue","resemble","resist","resource","response","result","retire","retreat","return","reunion","reveal","review","reward","rhythm","rib","ribbon","rice","rich","ride","ridge","rifle","right","rigid","ring","riot","ripple","risk","ritual","rival","river","road","roast","robot","robust","rocket","romance","roof","rookie","room","rose","rotate","rough","round","route","royal","rubber","rude","rug","rule","run","runway","rural","sad","saddle","sadness","safe","sail","salad","salmon","salon","salt","salute","same","sample","sand","satisfy","satoshi","sauce","sausage","save","say","scale","scan","scare","scatter","scene","scheme","school","science","scissors","scorpion","scout","scrap","screen","script","scrub","sea","search","season","seat","second","secret","section","security","seed","seek","segment","select","sell","seminar","senior","sense","sentence","series","service","session","settle","setup","seven","shadow","shaft","shallow","share","shed","shell","sheriff","shield","shift","shine","ship","shiver","shock","shoe","shoot","shop","short","shoulder","shove","shrimp","shrug","shuffle","shy","sibling","sick","side","siege","sight","sign","silent","silk","silly","silver","similar","simple","since","sing","siren","sister","situate","six","size","skate","sketch","ski","skill","skin","skirt","skull","slab","slam","sleep","slender","slice","slide","slight","slim","slogan","slot","slow","slush","small","smart","smile","smoke","smooth","snack","snake","snap","sniff","snow","soap","soccer","social","sock","soda","soft","solar","soldier","solid","solution","solve","someone","song","soon","sorry","sort","soul","sound","soup","source","south","space","spare","spatial","spawn","speak","special","speed","spell","spend","sphere","spice","spider","spike","spin","spirit","split","spoil","sponsor","spoon","sport","spot","spray","spread","spring","spy","square","squeeze","squirrel","stable","stadium","staff","stage","stairs","stamp","stand","start","state","stay","steak","steel","stem","step","stereo","stick","still","sting","stock","stomach","stone","stool","story","stove","strategy","street","strike","strong","struggle","student","stuff","stumble","style","subject","submit","subway","success","such","sudden","suffer","sugar","suggest","suit","summer","sun","sunny","sunset","super","supply","supreme","sure","surface","surge","surprise","surround","survey","suspect","sustain","swallow","swamp","swap","swarm","swear","sweet","swift","swim","swing","switch","sword","symbol","symptom","syrup","system","table","tackle","tag","tail","talent","talk","tank","tape","target","task","taste","tattoo","taxi","teach","team","tell","ten","tenant","tennis","tent","term","test","text","thank","that","theme","then","theory","there","they","thing","this","thought","three","thrive","throw","thumb","thunder","ticket","tide","tiger","tilt","timber","time","tiny","tip","tired","tissue","title","toast","tobacco","today","toddler","toe","together","toilet","token","tomato","tomorrow","tone","tongue","tonight","tool","tooth","top","topic","topple","torch","tornado","tortoise","toss","total","tourist","toward","tower","town","toy","track","trade","traffic","tragic","train","transfer","trap","trash","travel","tray","treat","tree","trend","trial","tribe","trick","trigger","trim","trip","trophy","trouble","truck","true","truly","trumpet","trust","truth","try","tube","tuition","tumble","tuna","tunnel","turkey","turn","turtle","twelve","twenty","twice","twin","twist","two","type","typical","ugly","umbrella","unable","unaware","uncle","uncover","under","undo","unfair","unfold","unhappy","uniform","unique","unit","universe","unknown","unlock","until","unusual","unveil","update","upgrade","uphold","upon","upper","upset","urban","urge","usage","use","used","useful","useless","usual","utility","vacant","vacuum","vague","valid","valley","valve","van","vanish","vapor","various","vast","agent","vehicle","velvet","vendor","venture","venue","verb","verify","version","very","vessel","veteran","viable","vibrant","vicious","victory","video","view","village","vintage","violin","virtual","virus","visa","visit","visual","vital","vivid","vocal","voice","void","volcano","volume","vote","voyage","wage","wagon","wait","walk","wall","walnut","want","warfare","warm","warrior","wash","wasp","waste","water","wave","way","wealth","weapon","wear","weasel","weather","web","wedding","weekend","weird","welcome","west","wet","whale","what","wheat","wheel","when","where","whip","whisper","wide","width","wife","wild","will","win","window","wine","wing","wink","winner","winter","wire","wisdom","wise","wish","witness","wolf","woman","wonder","wood","wool","word","work","world","worry","worth","wrap","wreck","wrestle","wrist","write","wrong","yard","year","yellow","you","young","youth","zebra","zero","zone","zoo"],i=[{value:"random",label:"Random"},{value:"memorable",label:"Memorable"},{value:"pin",label:"PIN"}],j={random:20,memorable:4,pin:6},k={random:8,memorable:3,pin:4},l={random:128,memorable:10,pin:12};function m(a){let b=new Uint32Array(1);return crypto.getRandomValues(b),b[0]%a}let n=({isOpen:a,onClose:b,onUse:c})=>{let[n,o]=(0,e.useState)("random"),[p,q]=(0,e.useState)(j.random),[r,s]=(0,e.useState)({numbers:!0,symbols:!0,uppercase:!0,avoidAmbiguous:!1}),[t,u]=(0,e.useState)(""),[v,w]=(0,e.useState)(!1),x=(0,e.useCallback)(()=>{switch(n){case"random":u(function(a,b){let c="abcdefghijklmnopqrstuvwxyz";b.numbers&&(c+="0123456789"),b.symbols&&(c+="!@#$%^&*()_+-=[]{}|;:,.<>?"),b.uppercase&&(c+="ABCDEFGHIJKLMNOPQRSTUVWXYZ"),b.avoidAmbiguous&&(c=c.replace(/[0OoIl1]/g,"")),0===c.length&&(c="abcdefghijklmnopqrstuvwxyz");let d=[];for(let b=0;b<a;b++)d.push(c[m(c.length)]);return d.join("")}(p,r));break;case"memorable":u(function(a){let b=[];for(let c=0;c<a;c++)b.push(h[m(h.length)]);return b.join("-")}(p));break;case"pin":u(function(a){let b=[];for(let c=0;c<a;c++)b.push(String(m(10)));return b.join("")}(p))}w(!1)},[n,p,r]);(0,e.useEffect)(()=>{a&&x()},[a,x]),(0,e.useEffect)(()=>{q(j[n])},[n]);let y=async()=>{try{await navigator.clipboard.writeText(t),w(!0),setTimeout(()=>w(!1),2e3)}catch{}};return(0,d.jsx)(g.aF,{isOpen:a,onClose:b,title:"Password Generator",size:"sm",footer:(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)(g.$n,{variant:"ghost",size:"sm",onClick:x,icon:(0,d.jsx)(f.A,{size:10}),children:"Refresh"}),(0,d.jsx)(g.$n,{variant:"secondary",size:"sm",onClick:b,children:"Cancel"}),(0,d.jsx)(g.$n,{variant:"primary",size:"sm",onClick:()=>c(t),children:"Use"})]}),children:(0,d.jsxs)("div",{className:"space-y-4 min-h-[280px]",children:[(0,d.jsxs)("div",{onClick:y,className:"bg-[var(--color-background-alt,#f4f4f5)] border border-[var(--color-border,#d4d4d8)] p-3 cursor-pointer transition-colors hover:border-[var(--color-border-focus,#0a0a0a)] relative group",children:[(0,d.jsx)("div",{className:"font-mono text-lg font-bold text-[var(--color-text,#0a0a0a)] break-all select-all pr-12",children:t}),(0,d.jsx)("div",{className:`absolute top-1 right-2 font-mono text-[8px] uppercase tracking-widest font-bold transition-opacity ${v?"opacity-100":"opacity-0"} bg-[var(--color-text,#0a0a0a)] text-[var(--color-surface,#ffffff)] px-1.5 py-0.5`,children:"Copied"}),!v&&(0,d.jsx)("div",{className:"absolute top-1 right-2 font-mono text-[8px] uppercase tracking-widest text-[var(--color-text-muted,#6b7280)] opacity-0 group-hover:opacity-100 transition-opacity",children:"Click to copy"})]}),(0,d.jsx)(g.UM,{options:i,value:n,onChange:a=>o(a),label:"Type",compact:!0}),(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:"block font-mono text-[9px] font-bold uppercase tracking-widest text-[var(--color-text-muted,#6b7280)] mb-1.5 px-1",children:"Length"}),(0,d.jsxs)("div",{className:"flex items-center gap-3",children:[(0,d.jsx)("input",{type:"range",min:k[n],max:l[n],value:p,onChange:a=>q(parseInt(a.target.value,10)),className:"flex-1 h-1 appearance-none bg-[var(--color-border,#d4d4d8)] outline-none",style:{accentColor:"var(--color-accent, #ccff00)"}}),(0,d.jsx)("div",{className:"w-16",children:(0,d.jsx)(g.ks,{compact:!0,type:"number",min:k[n],max:l[n],value:p,onChange:a=>(a=>{let b=parseInt(a,10);isNaN(b)||q(Math.max(k[n],Math.min(l[n],b)))})(a.target.value)})})]})]}),"random"===n&&(0,d.jsxs)("div",{className:"space-y-2.5",children:[(0,d.jsx)(g.lM,{size:"sm",checked:r.numbers,onChange:a=>s(b=>({...b,numbers:a})),label:"Numbers"}),(0,d.jsx)(g.lM,{size:"sm",checked:r.symbols,onChange:a=>s(b=>({...b,symbols:a})),label:"Symbols"}),(0,d.jsx)(g.lM,{size:"sm",checked:r.uppercase,onChange:a=>s(b=>({...b,uppercase:a})),label:"Uppercase"}),(0,d.jsx)(g.lM,{size:"sm",checked:r.avoidAmbiguous,onChange:a=>s(b=>({...b,avoidAmbiguous:a})),label:"Avoid ambiguous"})]})]})})}},37763:(a,b,c)=>{c.d(b,{v:()=>u});var d=c(21124),e=c(38301),f=c.n(e),g=c(23312),h=c(47268),i=c(15303),j=c(47089),k=c(51536);function l(a){return"string"==typeof a?a.trim():"number"==typeof a?String(a):""}function m(a){let b=Math.floor((Date.now()-new Date(a).getTime())/6e4);if(b<1)return"just now";if(b<60)return`${b}m ago`;let c=Math.floor(b/60);return c<24?`${c}h ago`:`${Math.floor(c/24)}d ago`}function n(a){if(!a)return{};try{let b=JSON.parse(a);return b&&"object"==typeof b?b:{}}catch{return{}}}function o(a){var b;let c=n(a.metadata),d="one_shot_read"===(b=c.approvalScope)||"session_token"===b?b:null;return d||("DENY_EXCLUDED_FIELD"===c.escalationReason||"number"==typeof c.credentialAccess?.maxReads&&1===c.credentialAccess.maxReads?"one_shot_read":"auth"===a.type||"agent_access"===a.type||"action"===a.type?"session_token":null)}function p(a){return"one_shot_read"===a?"temp":""}function q(){return{background:"var(--color-surface, #ffffff)",color:"var(--color-text, #0a0a0a)",border:"1px solid var(--color-border, #d4d4d8)"}}function r(a){let b=n(a.metadata);if(b.verifiedSummary?.oneLiner)return b.verifiedSummary.oneLiner;if(b.summary)return b.summary;if(("auth"===a.type||"agent_access"===a.type)&&"number"==typeof b.limit){let a=b.agentId||"agent";return!1===b.requestedLimitExplicit?`${a} requesting access`:`${a} requesting ${b.limit} ETH access`}return a.type}function s(a){return"pending"===a.status?"PENDING":"approved"===a.status?"APPROVED":"rejected"===a.status?"REJECTED":"notify"===a.type?"ALERT":"INFO"}function t(a){return"pending"===a.status?{bg:"color-mix(in srgb, var(--color-warning,#ff4d00) 15%, transparent)",fg:"var(--color-warning,#ff4d00)",border:"color-mix(in srgb, var(--color-warning,#ff4d00) 35%, transparent)"}:"approved"===a.status?{bg:"color-mix(in srgb, var(--color-success,#10b981) 15%, transparent)",fg:"var(--color-success,#10b981)",border:"color-mix(in srgb, var(--color-success,#10b981) 35%, transparent)"}:"rejected"===a.status?{bg:"color-mix(in srgb, var(--color-danger,#ef4444) 15%, transparent)",fg:"var(--color-danger,#ef4444)",border:"color-mix(in srgb, var(--color-danger,#ef4444) 35%, transparent)"}:{bg:"var(--color-background-alt,#f4f4f5)",fg:"var(--color-text-muted,#6b7280)",border:"var(--color-border,#d4d4d8)"}}let u=({notifications:a,onDismiss:b,compact:c=!1})=>{let[f,n]=(0,e.useState)(!1),[u,w]=(0,e.useState)(!1),[x,y]=(0,e.useState)(new Set),[z,A]=(0,e.useState)(null),B=a=>{let b=l(a.id);return b?`id:${b}`:`fallback:${a.type}:${a.createdAt}:${r(a)}`},C=(0,e.useMemo)(()=>a.filter(a=>!x.has(B(a))),[a,x]),D=(0,e.useMemo)(()=>C.filter(a=>"pending"===a.status&&"notify"!==a.type).length,[C]);return(0,e.useEffect)(()=>(w(!0),()=>w(!1)),[]),(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"relative",children:[(0,d.jsx)("button",{type:"button",onClick:()=>n(a=>!a),className:`${c?"p-0":"p-1.5"} text-[var(--color-text-muted,#6b7280)] hover:text-[var(--color-text,#0a0a0a)] hover:bg-[var(--color-surface,#ffffff)]/50 transition-colors rounded`,title:"Notifications","aria-label":"Notifications",children:(0,d.jsx)(h.A,{size:c?10:14})}),D>0&&(0,d.jsx)("span",{className:"absolute -top-0.5 -right-0.5 min-w-[14px] h-[14px] bg-[var(--color-warning,#ff4d00)] text-white font-mono text-[7px] font-bold flex items-center justify-center px-0.5",children:D>9?"9+":D})]}),u&&(0,g.createPortal)((0,d.jsxs)(d.Fragment,{children:[f&&(0,d.jsx)("button",{type:"button","aria-label":"Close notifications",onClick:()=>n(!1),className:"fixed inset-0 z-30 bg-[var(--color-text,#0a0a0a)]/20"}),(0,d.jsx)("div",{className:"fixed inset-y-0 right-0 z-40",children:(0,d.jsx)(k._s,{isOpen:f,onClose:()=>n(!1),title:"NOTIFICATIONS",subtitle:"Approvals + alerts",width:"sm",children:0===C.length?(0,d.jsxs)("div",{className:"py-8 text-center tyvek-label corner-marks mx-2",children:[(0,d.jsx)(h.A,{size:24,className:"mx-auto mb-2 text-[var(--color-text-faint,#9ca3af)]"}),(0,d.jsx)("div",{className:"label-specimen text-[var(--color-text-muted,#6b7280)]",children:"NO ALERTS"})]}):(0,d.jsx)("div",{className:"space-y-2",children:C.map(a=>{let c=o(a);return(0,d.jsxs)("div",{className:"w-full text-left flex items-start gap-2 p-3 clip-specimen-sm border-mech bg-[var(--color-surface-alt,#fafafa)] group cursor-pointer corner-marks transition-all hover:shadow-mech-hover",children:[(0,d.jsxs)("button",{type:"button",onClick:()=>A(a),className:"flex-1 min-w-0 text-left",title:"View details",children:[(0,d.jsxs)("div",{className:"mb-1.5 flex items-center gap-1",children:[(0,d.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 font-mono text-[7px] font-bold tracking-[0.15em] uppercase",style:{background:t(a).bg,color:t(a).fg,border:`1px solid ${t(a).border}`},children:s(a)}),"one_shot_read"===c&&(0,d.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 font-mono text-[7px] font-bold tracking-[0.15em]",style:q(),children:p(c)})]}),(0,d.jsx)("div",{className:"font-mono text-[10px] text-[var(--color-text,#0a0a0a)]",children:r(a)}),(0,d.jsxs)("div",{className:"font-mono text-[8px] text-[var(--color-text-faint,#9ca3af)] flex items-center gap-1 mt-1",children:[(0,d.jsx)(i.A,{size:7}),m(a.createdAt)]})]}),(0,d.jsx)("button",{type:"button",onClick:()=>{let c=B(a);y(a=>{let b=new Set(a);return b.add(c),b});let d=l(a.id);d&&b(d)},className:"p-1 hover:bg-[var(--color-background-alt,#e5e5e5)] transition-colors shrink-0",title:"Dismiss",children:(0,d.jsx)(j.A,{size:10,className:"text-[var(--color-text-muted,#6b7280)]"})})]},B(a))})})})})]}),document.body),(0,d.jsx)(v,{notification:z,onClose:()=>A(null)})]})};function v({notification:a,onClose:b}){let[c,e]=f().useState(null),g=a||c,h=g?n(g.metadata):{},j=g?.humanSummary,l=g?t(g):{bg:"",fg:"",border:""},r=g?o(g):null,u=h.agentId||"unknown";return(0,d.jsx)(k.aF,{isOpen:!!a,onClose:b,title:j?.actionLabel||g?.type.toUpperCase()||"DETAILS",size:"sm",children:(0,d.jsxs)("div",{className:"space-y-4",children:[g&&(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsxs)("div",{className:"flex items-center gap-1",children:[(0,d.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 font-mono text-[7px] font-bold tracking-[0.15em] uppercase",style:{background:l.bg,color:l.fg,border:`1px solid ${l.border}`},children:s(g)}),"one_shot_read"===r&&(0,d.jsx)("span",{className:"inline-flex items-center px-1.5 py-0.5 font-mono text-[7px] font-bold tracking-[0.15em]",style:q(),children:p(r)})]}),(0,d.jsxs)("span",{className:"font-mono text-[8px] text-[var(--color-text-faint,#9ca3af)] flex items-center gap-1",children:[(0,d.jsx)(i.A,{size:7}),m(g.createdAt)]})]}),j?.oneLiner&&(0,d.jsx)("div",{className:"text-[10px] text-[var(--color-text-muted,#6b7280)] tracking-wider",children:j.oneLiner}),(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsxs)("div",{className:"flex items-baseline justify-between gap-2",children:[(0,d.jsx)("span",{className:"text-[8px] text-[var(--color-text-faint,#9ca3af)] tracking-widest uppercase",children:"Agent"}),(0,d.jsx)("span",{className:"text-[10px] text-[var(--color-text,#0a0a0a)] tracking-wider text-right",children:u})]}),(0,d.jsxs)("div",{className:"flex items-baseline justify-between gap-2",children:[(0,d.jsx)("span",{className:"text-[8px] text-[var(--color-text-faint,#9ca3af)] tracking-widest uppercase",children:"Type"}),(0,d.jsx)("span",{className:"text-[10px] text-[var(--color-text,#0a0a0a)] font-bold tracking-wider text-right",children:g?.type})]}),"one_shot_read"===r&&(0,d.jsxs)("div",{className:"flex items-baseline justify-between gap-2",children:[(0,d.jsx)("span",{className:"text-[8px] text-[var(--color-text-faint,#9ca3af)] tracking-widest uppercase",children:"Token"}),(0,d.jsx)("span",{className:"text-[10px] text-[var(--color-text,#0a0a0a)] font-bold tracking-wider text-right",children:p(r)})]}),j?.profileLabel&&(0,d.jsxs)("div",{className:"flex items-baseline justify-between gap-2",children:[(0,d.jsx)("span",{className:"text-[8px] text-[var(--color-text-faint,#9ca3af)] tracking-widest uppercase",children:"Profile"}),(0,d.jsx)("span",{className:"text-[10px] text-[var(--color-text,#0a0a0a)] tracking-wider text-right",children:j.profileLabel})]}),j?.riskHint&&(0,d.jsxs)("div",{className:"flex items-baseline justify-between gap-2",children:[(0,d.jsx)("span",{className:"text-[8px] text-[var(--color-text-faint,#9ca3af)] tracking-widest uppercase",children:"Risk"}),(0,d.jsx)("span",{className:`text-[10px] font-bold tracking-wider ${j.riskHint.toLowerCase().includes("high")?"text-[var(--color-danger,#ef4444)]":j.riskHint.toLowerCase().includes("medium")?"text-[var(--color-warning,#ff4d00)]":"text-[var(--color-text,#0a0a0a)]"}`,children:j.riskHint})]}),j?.expiresIn&&(0,d.jsxs)("div",{className:"flex items-baseline justify-between gap-2",children:[(0,d.jsx)("span",{className:"text-[8px] text-[var(--color-text-faint,#9ca3af)] tracking-widest uppercase",children:"Expires"}),(0,d.jsx)("span",{className:"text-[10px] text-[var(--color-text,#0a0a0a)] tracking-wider text-right",children:j.expiresIn})]}),"number"==typeof h.limit&&(0,d.jsxs)("div",{className:"flex items-baseline justify-between gap-2",children:[(0,d.jsx)("span",{className:"text-[8px] text-[var(--color-text-faint,#9ca3af)] tracking-widest uppercase",children:"Limit"}),(0,d.jsxs)("span",{className:"text-[10px] text-[var(--color-text,#0a0a0a)] font-bold tracking-wider text-right",children:[h.limit," ETH"]})]}),(0,d.jsxs)("div",{className:"text-[7px] text-[var(--color-text-faint,#9ca3af)] tracking-widest break-all",children:["ID: ",g?.id]})]}),j?.can&&j.can.length>0&&(0,d.jsxs)("div",{className:"border-t border-[var(--color-border,#d4d4d8)] pt-3",children:[(0,d.jsx)("div",{className:"text-[8px] text-[var(--color-text-faint,#9ca3af)] tracking-widest uppercase mb-1.5",children:"Permissions"}),(0,d.jsx)("div",{className:"space-y-1",children:j.can.map(a=>(0,d.jsx)("div",{className:"text-[10px] text-[var(--color-text,#0a0a0a)] tracking-wider pl-2 border-l-2 border-[var(--color-border,#d4d4d8)]",children:a},a))})]}),j?.cannot&&j.cannot.length>0&&(0,d.jsxs)("div",{className:"border-t border-[var(--color-border,#d4d4d8)] pt-3",children:[(0,d.jsx)("div",{className:"text-[8px] text-[var(--color-text-faint,#9ca3af)] tracking-widest uppercase mb-1.5",children:"Restrictions"}),(0,d.jsx)("div",{className:"space-y-1",children:j.cannot.map(a=>(0,d.jsx)("div",{className:"text-[10px] text-[var(--color-danger,#ef4444)] tracking-wider pl-2 border-l-2 border-[var(--color-danger,#ef4444)]/30",children:a},a))})]}),j?.scope&&j.scope.length>0&&(0,d.jsxs)("div",{className:"border-t border-[var(--color-border,#d4d4d8)] pt-3",children:[(0,d.jsx)("div",{className:"text-[8px] text-[var(--color-text-faint,#9ca3af)] tracking-widest uppercase mb-1.5",children:"Scope"}),(0,d.jsx)("div",{className:"space-y-1",children:j.scope.map(a=>(0,d.jsx)("div",{className:"text-[10px] text-[var(--color-text,#0a0a0a)] tracking-wider pl-2 border-l-2 border-[var(--color-border,#d4d4d8)]",children:a},a))})]})]})})}},64354:(a,b,c)=>{c.d(b,{S:()=>i});var d=c(38301),e=c(77886);c(2761);var f=c(45478);function g(a){return[...a].sort((a,b)=>{let c=new Date(a.createdAt).getTime();return new Date(b.createdAt).getTime()-c})}function h(a){return"string"==typeof a?a:"number"==typeof a?String(a):""}function i(a={}){let{autoFetch:b=!0}=a,[c,j]=(0,d.useState)([]),[k,l]=(0,d.useState)([]),[m,n]=(0,d.useState)([]),[o,p]=(0,d.useState)(()=>new Set),[q,r]=(0,d.useState)([]),[s,t]=(0,d.useState)([]),[u,v]=(0,d.useState)(!0),[w,x]=(0,d.useState)(null),[y,z]=(0,d.useState)(null),[A,B]=(0,d.useState)({pendingActions:0,activeTokens:0}),[C,D]=(0,d.useState)(null),{subscribe:E,connected:F}=(0,e.h)(),G=(0,d.useRef)(!0);(0,d.useRef)([]);let H=(0,d.useCallback)(()=>{D(null)},[]),I=(0,d.useCallback)(a=>{let b=h(a);b&&(p(a=>{let c=new Set(a);return c.add(b),c}),n(a=>a.filter(a=>h(a.id)!==b)))},[]),J=(0,d.useCallback)(async()=>{try{let a=await f.FH.get(f.jI.Wallet,"/dashboard");if(!G.current)return;a.success?(j(b=>(function(a,b){let c=Date.now(),d=new Map;return a.filter(a=>"pending"===a.status).forEach(a=>d.set(a.id,a)),b.filter(a=>"pending"===a.status).filter(a=>!d.has(a.id)).filter(a=>c-new Date(a.createdAt).getTime()<=15e3).forEach(a=>d.set(a.id,a)),g(Array.from(d.values()))})(a.requests||[],b)),l(b=>(function(a,b){let c=Date.now(),d=new Map;return a.filter(a=>"pending"!==a.status).forEach(a=>d.set(a.id,a)),b.filter(a=>"pending"!==a.status).filter(a=>!d.has(a.id)).filter(a=>c-new Date(a.createdAt).getTime()<=15e3).forEach(a=>d.set(a.id,a)),g(Array.from(d.values())).slice(0,80)})(a.history||[],b)),r(a.tokens?.active||[]),t(a.tokens?.inactive||[]),B({pendingActions:a.counts?.pendingActions||0,activeTokens:a.counts?.activeTokens||0}),x(null)):x(a.error||"Failed to fetch dashboard")}catch(a){G.current&&x(a instanceof Error?a.message:"Failed to fetch dashboard")}finally{G.current&&v(!1)}},[]),K=(0,d.useCallback)(async()=>{v(!0),await J()},[J]),L=(0,d.useCallback)(async(a,b)=>{z(`resolve-${a}`);try{let c=await f.FH.post(f.jI.Wallet,`/actions/${a}/resolve`,{approved:b});if(!c.success)return x(c.error||"Action resolution failed"),{success:!1,message:c.error};{let a={success:!0,token:c.token,agentId:c.agentId,limit:c.limit,permissions:c.permissions,expiresIn:c.expiresIn,txHash:c.txHash,message:c.message};return c.token&&D(a),await K(),a}}catch(b){let a=b instanceof Error?b.message:"Action resolution failed";return x(a),{success:!1,message:a}}finally{z(null)}},[K]),M=(0,d.useCallback)(async a=>{z(`revoke-${a}`);try{let b=await f.FH.post(f.jI.Wallet,"/actions/tokens/revoke",{tokenHash:a});if(b.success)return await K(),!0;return x(b.error||"Revoke failed"),!1}catch(a){return x(a instanceof Error?a.message:"Revoke failed"),!1}finally{z(null)}},[K]),N=(0,d.useMemo)(()=>{let a=new Map,b=b=>{let c=h(b.id);if(!c||o.has(c))return;let d=a.get(c);if(!d)return void a.set(c,b);"pending"!==d.status&&"pending"===b.status&&a.set(c,b)};return c.forEach(b),k.forEach(b),m.forEach(b),g(Array.from(a.values()))},[k,m,o,c]);return{requests:c,notifications:N,dismissNotification:I,activeTokens:q,inactiveTokens:s,loading:u,error:w,counts:A,refresh:K,resolveAction:L,revokeToken:M,actionLoading:y,lastApprovalResult:C,clearApprovalResult:H,connected:F}}},71287:(a,b,c)=>{c.d(b,{Z:()=>u});var d=c(21124),e=c(38301),f=c(18310),g=c(75219),h=c(43700),i=c(71613),j=c(3663),k=c(96503),l=c(51536),m=c(45478),n=c(93292);let o=["1password-csv","bitwarden-csv","chrome-csv"],p=["aura to maxx","maxx to aura"],q=[{label:"1Password",format:"1password-csv"},{label:"Bitwarden",format:"bitwarden-csv"},{label:"Chrome",format:"chrome-csv"},{label:"Firefox",format:"firefox-csv"},{label:"iCloud Keychain",format:"icloud-csv"},{label:"LastPass",format:"lastpass-csv"}],r={skip:"Skip",rename:"Rename",overwrite:"Create Anyway"};function s(a){let b=a.replace(/-/g,"+").replace(/_/g,"/");for(;b.length%4;)b+="=";let c=atob(b),d=new Uint8Array(c.length);for(let a=0;a<c.length;a++)d[a]=c.charCodeAt(a);return d.buffer}function t(a){let b=new Uint8Array(a),c="";for(let a=0;a<b.length;a++)c+=String.fromCharCode(b[a]);return btoa(c).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function u({isUnlocked:a}){let b=(0,e.useMemo)(()=>(0,m.au)(),[]),c=(0,e.useMemo)(()=>p[Math.floor(Math.random()*p.length)],[]),[u,v]=(0,e.useState)("hidden"),[w,x]=(0,e.useState)("import-source"),[y,z]=(0,e.useState)(!1),[A,B]=(0,e.useState)(!1),[C,D]=(0,e.useState)(o[0]),[E,F]=(0,e.useState)("upload"),[G,H]=(0,e.useState)(null),[I,J]=(0,e.useState)("skip"),[K,L]=(0,e.useState)(null),[M,N]=(0,e.useState)(null),[O,P]=(0,e.useState)(!1),[Q,R]=(0,e.useState)(null),[S,T]=(0,e.useState)([]),[U,V]=(0,e.useState)("primary"),[W,X]=(0,e.useState)(!1),[Y,Z]=(0,e.useState)(!1),[$,_]=(0,e.useState)(null),aa=(0,e.useRef)(null),ab=(0,e.useMemo)(()=>A?q:q.filter(a=>o.includes(a.format)),[A]),ac=(0,e.useMemo)(()=>S.map(a=>({value:a.id,label:a.name||(a.isPrimary?"Primary":`Agent ${a.id.slice(0,6)}`)})),[S]),ad=(0,e.useMemo)(()=>S.find(a=>a.id===U)||null,[S,U]),ae=(0,e.useCallback)(()=>{F("upload"),H(null),J("skip"),L(null),N(null),P(!1),R(null),aa.current&&(aa.current.value="")},[]),af=(0,e.useCallback)((a=!1)=>{v("hidden"),x("import-source"),B(!1),D(o[0]),_(null),Z(!1),ae()},[ae]),ag=(0,e.useCallback)(()=>{x("retrieve-note"),X(!0)},[]),ah=(0,e.useCallback)(()=>{v("hidden"),_(null),Z(!1)},[]),ai=(0,e.useCallback)(async()=>{try{let a=await m.FH.get(m.jI.Wallet,"/agents/credential");if(!a.success||!Array.isArray(a.agents))return;T(a.agents);let b=a.agents.find(a=>a.isPrimary)?.id||a.agents[0]?.id||"primary";V(c=>c&&a.agents.some(a=>a.id===c)?c:b)}catch{}},[]),aj=(0,e.useCallback)(a=>{if(!G)return null;let b=new FormData;return b.append("file",G),b.append("format",C),b.append("agentId",U||"primary"),a&&b.append("dryRun","true"),b.append("duplicateStrategy",I),b},[I,G,C,U]),ak=(0,e.useCallback)(async()=>{if(G){P(!0),R(null);try{let a=aj(!0);if(!a)return;let c=await fetch(`${b}/credentials/import`,{method:"POST",headers:{},body:a});if(!(c.headers.get("content-type")||"").includes("application/json"))return void R(`Server error: ${c.status} ${c.statusText}`);let d=await c.json();if(!c.ok||!d.success)return void R(d.error||`Request failed: ${c.status}`);L(d),F("preview")}catch(a){R(a instanceof Error?a.message:"Preview failed")}finally{P(!1)}}},[aj,G,b]),al=(0,e.useCallback)(async()=>{P(!0),R(null);try{let a=aj(!1);if(!a)return;let c=await fetch(`${b}/credentials/import`,{method:"POST",headers:{},body:a});if(!(c.headers.get("content-type")||"").includes("application/json"))return void R(`Server error: ${c.status} ${c.statusText}`);let d=await c.json();if(!c.ok)return void R(d.error||`Request failed: ${c.status}`);N(d),F("result")}catch(a){R(a instanceof Error?a.message:"Import failed")}finally{P(!1)}},[aj,b]),am=(0,e.useCallback)(async()=>{if(!y)return void _("Passkey is not available in this environment.");Z(!0),_(null);try{let a=await m.FH.post(m.jI.Wallet,"/auth/passkey/register/options",{}),b={challenge:s(a.challenge),rp:{name:a.rp.name,id:a.rp.id},user:{id:s(a.user.id),name:a.user.name,displayName:a.user.displayName},pubKeyCredParams:a.pubKeyCredParams.map(a=>({type:a.type,alg:a.alg})),timeout:a.timeout,attestation:a.attestation||"none",excludeCredentials:(a.excludeCredentials||[]).map(a=>({type:"public-key",id:s(a.id),transports:a.transports})),authenticatorSelection:{authenticatorAttachment:a.authenticatorSelection?.authenticatorAttachment,residentKey:a.authenticatorSelection?.residentKey,userVerification:a.authenticatorSelection?.userVerification}},c=await navigator.credentials.create({publicKey:b});if(!c)return void Z(!1);let d=c.response,e={credential:{id:t(c.rawId),rawId:t(c.rawId),type:c.type,response:{clientDataJSON:t(d.clientDataJSON),attestationObject:t(d.attestationObject),transports:d.getTransports?.()||[]}}},f=await m.FH.post(m.jI.Wallet,"/auth/passkey/register/verify",e);if(!f.success)return void _(f.error||"Passkey registration failed.");"onboarding"===u?(x("passkey-success"),setTimeout(()=>af(!1),1200)):v("hidden")}catch(a){if(a instanceof Error&&"NotAllowedError"===a.name)return void Z(!1);_(a instanceof Error?a.message:"Passkey registration failed.")}finally{Z(!1)}},[af,u,y]);return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(l.aF,{isOpen:"hidden"!==u,onClose:()=>{},dismissible:!1,title:"onboarding"===u?"passkey"===w||"passkey-success"===w?"Passkey Setup":"Onboarding":"Passkey Setup",subtitle:"Security",icon:(0,d.jsx)(k.A,{size:16,className:"text-[var(--color-accent,#ccff00)]"}),size:"md",children:"onboarding"===u?(()=>{if("passkey-success"===w)return(0,d.jsxs)("div",{className:"flex flex-col items-center gap-3 py-4",children:[(0,d.jsx)("div",{className:"w-10 h-10 bg-[var(--color-text,#0a0a0a)] flex items-center justify-center",children:(0,d.jsx)(i.A,{size:20,className:"text-[var(--color-accent,#ccff00)]"})}),(0,d.jsx)("div",{className:"font-mono text-xs tracking-widest text-[var(--color-text,#0a0a0a)] uppercase",children:"Passkey enabled!"}),(0,d.jsx)("div",{className:"font-mono text-[10px] text-[var(--color-text-muted,#6b7280)]",children:"Onboarding complete."})]});if("import-source"===w)return(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsx)("div",{className:"font-mono text-xs text-[var(--color-text,#0a0a0a)] leading-relaxed",children:"Import credentials from another manager before you continue."}),(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)("label",{className:"block text-[9px] font-bold tracking-widest uppercase text-[var(--color-text-muted,#6b7280)]",children:"Import Source"}),(0,d.jsx)(l.O6,{ariaLabel:"Onboarding import source",value:C,onChange:a=>D(a),options:ab.map(a=>({value:a.format,label:a.label,icon:(0,d.jsx)(j.A,{size:12})}))})]}),(0,d.jsx)("button",{type:"button",onClick:()=>B(a=>!a),className:"font-mono text-[10px] tracking-widest text-[var(--color-text-muted,#6b7280)] hover:text-[var(--color-text,#0a0a0a)] transition-colors",children:A?"SHOW LESS":"SHOW MORE"}),(0,d.jsxs)("div",{className:"flex justify-between gap-2",children:[(0,d.jsx)(l.$n,{variant:"secondary",size:"sm",onClick:()=>{ae(),ag()},children:"SKIP"}),(0,d.jsx)(l.$n,{size:"sm",onClick:()=>{ae(),x("import-upload")},children:"CONFIRM"})]})]});if("import-upload"===w){if("preview"===E&&K){let a="skip"===I?K.total-K.duplicates:K.total;return(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsxs)("div",{className:"flex gap-4",children:[(0,d.jsxs)("div",{className:"text-center",children:[(0,d.jsx)("div",{className:"text-[18px] font-bold font-mono text-[var(--color-text,#0a0a0a)]",children:K.total}),(0,d.jsx)("div",{className:"text-[8px] font-mono tracking-widest uppercase text-[var(--color-text-muted,#6b7280)]",children:"Total"})]}),K.duplicates>0&&(0,d.jsxs)("div",{className:"text-center",children:[(0,d.jsx)("div",{className:"text-[18px] font-bold font-mono text-amber-600",children:K.duplicates}),(0,d.jsx)("div",{className:"text-[8px] font-mono tracking-widest uppercase text-[var(--color-text-muted,#6b7280)]",children:"Duplicates"})]})]}),(0,d.jsxs)("div",{className:"max-h-[220px] overflow-y-auto border border-[var(--color-border,#d4d4d8)]",children:[0===K.credentials.length?(0,d.jsx)("div",{className:"px-4 py-8 text-center text-[10px] font-mono text-[var(--color-text-muted,#6b7280)]",children:"No credentials found in file."}):K.credentials.map((a,b)=>(0,d.jsxs)("div",{className:`flex items-center gap-2 px-3 py-1.5 border-b border-[var(--color-border,#d4d4d8)] last:border-b-0 ${a.isDuplicate?"bg-amber-50/50":""}`,children:[(0,d.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,d.jsx)("div",{className:"text-[10px] font-mono text-[var(--color-text,#0a0a0a)] truncate",children:a.name}),a.url&&(0,d.jsx)("div",{className:"text-[8px] font-mono text-[var(--color-text-faint,#9ca3af)] truncate",children:a.url})]}),(0,d.jsx)("span",{className:"text-[8px] font-mono tracking-wider uppercase text-[var(--color-text-faint,#9ca3af)] flex-shrink-0",children:a.type}),a.isDuplicate&&(0,d.jsx)("span",{className:"text-[8px] font-mono tracking-wider uppercase text-amber-600 flex-shrink-0",children:"DUP"})]},`${a.name}-${b}`)),K.total>K.credentials.length&&(0,d.jsxs)("div",{className:"px-3 py-1.5 text-[9px] font-mono text-[var(--color-text-faint,#9ca3af)] text-center",children:["+ ",K.total-K.credentials.length," more"]})]}),K.duplicates>0&&(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:"block text-[9px] font-bold tracking-widest uppercase text-[var(--color-text-muted,#6b7280)] mb-1.5",children:"Duplicate handling"}),(0,d.jsx)("div",{className:"flex gap-1.5",children:["skip","rename","overwrite"].map(a=>(0,d.jsx)("button",{onClick:()=>J(a),className:`px-3 py-1.5 text-[9px] font-mono tracking-wider uppercase border transition-colors ${I===a?"border-[var(--color-accent,#ccff00)] bg-[var(--color-accent,#ccff00)]/10 text-[var(--color-text,#0a0a0a)]":"border-[var(--color-border,#d4d4d8)] text-[var(--color-text-muted,#6b7280)] hover:bg-[var(--color-background-alt,#f4f4f5)]"}`,children:r[a]},a))})]}),Q&&(0,d.jsxs)("div",{className:"flex items-start gap-2 px-3 py-2 bg-red-50 border border-red-200",children:[(0,d.jsx)(f.A,{size:12,className:"text-red-500 flex-shrink-0 mt-0.5"}),(0,d.jsx)("span",{className:"text-[10px] font-mono text-red-700",children:Q})]}),(0,d.jsxs)("div",{className:"flex justify-between gap-2",children:[(0,d.jsx)(l.$n,{variant:"secondary",size:"sm",onClick:()=>{ae(),ag()},children:"SKIP"}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(l.$n,{variant:"secondary",size:"sm",onClick:()=>{F("upload"),R(null),aa.current&&(aa.current.value="")},children:"BACK"}),(0,d.jsxs)(l.$n,{size:"sm",onClick:()=>{al()},loading:O,disabled:0===K.credentials.length,children:["IMPORT ",a," CREDENTIAL",1!==a?"S":""]})]})]})]})}if("result"===E&&M){let a=M.errors.length>0;return(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsxs)("div",{className:"flex items-center gap-3",children:[M.success?(0,d.jsx)(g.A,{size:20,className:"text-green-600"}):(0,d.jsx)(f.A,{size:20,className:"text-red-500"}),(0,d.jsx)("div",{children:(0,d.jsx)("div",{className:"text-[11px] font-mono font-bold text-[var(--color-text,#0a0a0a)]",children:M.success?"Import Complete":"Import Failed"})})]}),(0,d.jsxs)("div",{className:"flex gap-6",children:[(0,d.jsxs)("div",{className:"text-center",children:[(0,d.jsx)("div",{className:"text-[18px] font-bold font-mono text-green-600",children:M.imported}),(0,d.jsx)("div",{className:"text-[8px] font-mono tracking-widest uppercase text-[var(--color-text-muted,#6b7280)]",children:"Imported"})]}),M.skipped>0&&(0,d.jsxs)("div",{className:"text-center",children:[(0,d.jsx)("div",{className:"text-[18px] font-bold font-mono text-[var(--color-text-muted,#6b7280)]",children:M.skipped}),(0,d.jsx)("div",{className:"text-[8px] font-mono tracking-widest uppercase text-[var(--color-text-muted,#6b7280)]",children:"Skipped"})]}),a&&(0,d.jsxs)("div",{className:"text-center",children:[(0,d.jsx)("div",{className:"text-[18px] font-bold font-mono text-red-500",children:M.errors.length}),(0,d.jsx)("div",{className:"text-[8px] font-mono tracking-widest uppercase text-[var(--color-text-muted,#6b7280)]",children:"Errors"})]})]}),a&&(0,d.jsx)("div",{className:"max-h-[120px] overflow-y-auto border border-red-200 bg-red-50",children:M.errors.map((a,b)=>(0,d.jsxs)("div",{className:"px-3 py-1 text-[9px] font-mono text-red-700 border-b border-red-100 last:border-b-0",children:["Row ",a.row,": ",a.reason]},`${a.row}-${b}`))}),(0,d.jsx)("div",{className:"flex justify-end",children:(0,d.jsx)(l.$n,{size:"sm",onClick:()=>{ae(),x("retrieve-note")},children:"CONTINUE"})})]})}return(0,d.jsxs)("div",{className:"space-y-5",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:"block text-[9px] font-bold tracking-widest uppercase text-[var(--color-text-muted,#6b7280)] mb-2",children:"Source"}),(0,d.jsx)("div",{className:"text-[10px] font-mono text-[var(--color-text,#0a0a0a)] px-3 py-2 border border-[var(--color-border,#d4d4d8)]",children:q.find(a=>a.format===C)?.label||C})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:"block text-[9px] font-bold tracking-widest uppercase text-[var(--color-text-muted,#6b7280)] mb-2",children:"File"}),(0,d.jsx)("input",{ref:aa,type:"file",accept:".csv",onChange:a=>{let b=a.target.files?.[0]??null;if(b&&b.size>0xa00000){R(`File too large (${(b.size/1024/1024).toFixed(1)}MB). Maximum is 10MB.`),H(null),aa.current&&(aa.current.value="");return}H(b),R(null)},className:"hidden"}),(0,d.jsxs)("button",{onClick:()=>aa.current?.click(),className:"w-full flex items-center justify-center gap-2 px-4 py-4 border-2 border-dashed border-[var(--color-border,#d4d4d8)] hover:border-[var(--color-text-muted,#6b7280)] transition-colors",children:[(0,d.jsx)(h.A,{size:14,className:"text-[var(--color-text-muted,#6b7280)]"}),(0,d.jsx)("span",{className:"text-[10px] font-mono tracking-wider text-[var(--color-text-muted,#6b7280)]",children:G?G.name:"Choose CSV file"})]})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)(l.UM,{label:"Target Agent",ariaLabel:"TARGET AGENT",options:ac,value:U,onChange:V,compact:!0,searchable:!0,menuPosition:"top",searchPlaceholder:"Search agent...",emptyMessage:"No agent matches",disabled:0===ac.length}),ad&&!ad.isUnlocked&&(0,d.jsx)("div",{className:"mt-2 text-[9px] text-[var(--color-warning,#ff4d00)] border border-[var(--color-warning,#ff4d00)]/30 bg-[var(--color-warning,#ff4d00)]/10 px-3 py-2",children:"Selected agent is locked. Unlock it before preview/import."})]}),Q&&(0,d.jsxs)("div",{className:"flex items-start gap-2 px-3 py-2 bg-red-50 border border-red-200",children:[(0,d.jsx)(f.A,{size:12,className:"text-red-500 flex-shrink-0 mt-0.5"}),(0,d.jsx)("span",{className:"text-[10px] font-mono text-red-700",children:Q})]}),(0,d.jsxs)("div",{className:"flex justify-between gap-2",children:[(0,d.jsx)(l.$n,{variant:"secondary",size:"sm",onClick:()=>{ae(),ag()},children:"SKIP"}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(l.$n,{variant:"secondary",size:"sm",onClick:()=>{ae(),x("import-source")},children:"BACK"}),(0,d.jsx)(l.$n,{size:"sm",onClick:()=>{ak()},loading:O,disabled:!G,children:"PREVIEW"})]})]})]})}return"retrieve-note"===w?(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsx)("div",{className:"font-mono text-xs text-[var(--color-text,#0a0a0a)] leading-relaxed",children:"Retrieve your note before passkey setup."}),(0,d.jsxs)("div",{className:"space-y-2 border border-[var(--color-border,#d4d4d8)] bg-[var(--color-background-alt,#f4f4f5)] px-3 py-2",children:[(0,d.jsx)("div",{className:"font-mono text-[9px] tracking-widest uppercase text-[var(--color-text-muted,#6b7280)]",children:"Dev Command"}),(0,d.jsx)("div",{className:"font-mono text-[11px] text-[var(--color-text,#0a0a0a)] break-all",children:"$ npx auramaxx get FIRSTAURA"})]}),(0,d.jsxs)("div",{className:"space-y-2 border border-[var(--color-border,#d4d4d8)] bg-[var(--color-surface,#ffffff)] px-3 py-2",children:[(0,d.jsx)("div",{className:"font-mono text-[9px] tracking-widest uppercase text-[var(--color-text-muted,#6b7280)]",children:"Agent Prompt"}),(0,d.jsx)("div",{className:"font-mono text-[11px] text-[var(--color-text,#0a0a0a)]",children:"ayo get my FIRSTAURA using auramaxx"})]}),(0,d.jsx)("div",{className:"flex justify-end",children:(0,d.jsx)(l.$n,{size:"sm",onClick:()=>x("passkey"),children:"CONTINUE"})})]}):(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsx)("div",{className:"font-mono text-xs text-[var(--color-text,#0a0a0a)] leading-relaxed",children:"Enable Face ID / Passkey to unlock your agent without typing a password."}),!y&&(0,d.jsx)("div",{className:"p-2 border border-[var(--color-warning,#ff4d00)]/30 bg-[var(--color-warning,#ff4d00)]/5",children:(0,d.jsx)("div",{className:"font-mono text-[10px] text-[var(--color-warning,#ff4d00)]",children:"Passkey is unavailable in this environment."})}),$&&(0,d.jsx)("div",{className:"p-2 border border-[var(--color-warning,#ff4d00)]/30 bg-[var(--color-warning,#ff4d00)]/5",children:(0,d.jsx)("div",{className:"font-mono text-[10px] text-[var(--color-warning,#ff4d00)]",children:$})}),(0,d.jsxs)("div",{className:"flex justify-between gap-2",children:[(0,d.jsx)(l.$n,{variant:"secondary",size:"sm",onClick:()=>af(!0),children:"NOT NOW"}),(0,d.jsx)(l.$n,{variant:"primary",size:"sm",loading:Y,onClick:()=>{am()},disabled:!y,icon:(0,d.jsx)(k.A,{size:14}),children:Y?"REGISTERING...":"CREATE PASSKEY"})]})]})})():(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsx)("div",{className:"font-mono text-xs text-[var(--color-text,#0a0a0a)] leading-relaxed",children:"Enable Face ID / Passkey to unlock your agent without typing a password."}),$&&(0,d.jsx)("div",{className:"p-2 border border-[var(--color-warning,#ff4d00)]/30 bg-[var(--color-warning,#ff4d00)]/5",children:(0,d.jsx)("div",{className:"font-mono text-[10px] text-[var(--color-warning,#ff4d00)]",children:$})}),(0,d.jsxs)("div",{className:"flex justify-between gap-2",children:[(0,d.jsx)(l.$n,{variant:"secondary",size:"sm",onClick:ah,children:"NOT NOW"}),(0,d.jsx)(l.$n,{variant:"primary",size:"sm",loading:Y,onClick:()=>{am()},icon:(0,d.jsx)(k.A,{size:14}),children:Y?"REGISTERING...":"CREATE PASSKEY"})]})]})}),(0,d.jsx)(n.i,{isOpen:W,onClose:()=>{X(!1),x("retrieve-note")},onSaved:()=>{X(!1),x("retrieve-note"),ai()},agents:S,createStartStep:"form",createStartType:"plain_note",createPrefill:{type:"plain_note",name:"FIRSTAURA",noteContent:c,agentId:"primary"!==U?U:void 0}})]})}},93292:(a,b,c)=>{c.d(b,{i:()=>S});var d=c(21124),e=c(38301),f=c(46816),g=c(3663),h=c(43718),i=c(25345),j=c(14343),k=c(58249),l=c(31905),m=c(4451),n=c(79944),o=c(14263),p=c(3368),q=c(43700),r=c(51536),s=c(45478),t=c(9793),u=c(14657),v=c(1599),w=c(30935);let x=new Set(["SHA1","SHA256","SHA512"]);function y(a){let b=a.replace(/\s+/g,"").toUpperCase();if(b.length<8||!/^[A-Z2-7]+$/.test(b))throw Error("Invalid TOTP secret");return b}function z(a){let b=a.trim().toLowerCase();return b.startsWith("otpauth://totp/")?"otpauth":b.startsWith("otpauth-migration://")?"otpauth-migration":"unknown"}let A=({isEdit:a,hasExistingTotp:b,onIntentChange:c,onSecretChange:f})=>{let[g,h]=(0,e.useState)("manual"),[i,j]=(0,e.useState)(""),[k,l]=(0,e.useState)(""),[m,n]=(0,e.useState)(null),[o,p]=(0,e.useState)(null),[q,s]=(0,e.useState)(!1),t=(0,e.useRef)(0),u=(0,e.useMemo)(()=>"otpauth-migration"===z(k),[k]),v=async a=>{if(!a)return;if(a.size>5242880)return void p("QR image must be 5MB or smaller");let b=++t.current;s(!0),p(null);try{throw Error("QR decoding not supported in this browser. Paste setup link manually.")}catch(a){if(t.current!==b)return;n(null),p(a instanceof Error?a.message:"Failed to decode QR image")}finally{t.current===b&&s(!1)}};return(0,d.jsxs)("div",{className:"space-y-3 border border-[var(--color-border,#d4d4d8)] p-3 bg-[var(--color-background-alt,#f4f4f5)]","data-testid":"totp-setup-panel",children:[a&&b&&(0,d.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,d.jsx)("button",{type:"button",className:"font-mono text-[9px] px-2 py-1 border",onClick:()=>{c("keep"),p(null),f("",!1)},children:"Keep Existing"}),(0,d.jsx)("button",{type:"button",className:"font-mono text-[9px] px-2 py-1 border",onClick:()=>c("replace"),children:"Replace TOTP"}),(0,d.jsx)("button",{type:"button",className:"font-mono text-[9px] px-2 py-1 border",onClick:()=>{c("remove"),n(null),p(null),f("",!0)},children:"Remove TOTP"})]}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)("button",{type:"button",className:"font-mono text-[9px] uppercase px-2 py-1 border",onClick:()=>h("manual"),children:"Manual"}),(0,d.jsx)("button",{type:"button",className:"font-mono text-[9px] uppercase px-2 py-1 border",onClick:()=>h("uri"),children:"Paste Link"}),(0,d.jsx)("button",{type:"button",className:"font-mono text-[9px] uppercase px-2 py-1 border",onClick:()=>h("qr"),children:"Import QR"})]}),"manual"===g&&(0,d.jsx)(r.ks,{label:"TOTP Secret (2FA)",value:i,onChange:a=>(a=>{if(j(a),!a.trim()){n(null),f("",!1);return}try{let b=y(a);p(null),n({secret:b,algorithm:"SHA1",digits:6,period:30}),c("replace"),f(b,!0)}catch{n(null),p("Invalid TOTP secret"),f("",!1)}})(a.target.value),placeholder:"Base32 secret (e.g. JBSWY3DPEHPK3PXP)",type:"password"}),"uri"===g&&(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:"block font-mono text-[9px] font-bold uppercase tracking-widest text-[var(--color-text-muted,#6b7280)]",children:"Setup Link"}),(0,d.jsx)("textarea",{className:"w-full h-24 bg-[var(--color-background-alt,#f4f4f5)] border border-[var(--color-border,#d4d4d8)] font-mono text-sm p-3 resize-none",value:k,onChange:a=>{l(a.target.value),(a=>{if(!a.trim()){n(null),p(null),f("",!1);return}let b=z(a);if("otpauth-migration"===b){n(null),p(null),f("",!1);return}if("otpauth"!==b){n(null),p("Unsupported QR/setup payload. Use an otpauth://totp link."),f("",!1);return}try{(a=>{n(a),p(null),c("replace"),f(a.secret,!0)})(function(a){let b=new URL(a.trim());if("otpauth:"!==b.protocol)throw Error("Not an otpauth URI");if("totp"!==b.hostname)throw Error("Only TOTP is supported");let c=b.searchParams.get("secret");if(!c)throw Error("Missing secret parameter");let d=b.searchParams.has("digits")?Number.parseInt(b.searchParams.get("digits")||"",10):6,e=b.searchParams.has("period")?Number.parseInt(b.searchParams.get("period")||"",10):30,f=(b.searchParams.get("algorithm")||"SHA1").toUpperCase();if(!x.has(f))throw Error(`Unsupported TOTP algorithm: ${f}`);if(!Number.isInteger(d)||d<6||d>8)throw Error(`Invalid TOTP digits: ${d}`);if(!Number.isInteger(e)||e<15||e>60)throw Error(`Invalid TOTP period: ${e}`);let g=decodeURIComponent(b.pathname.replace(/^\//,""))||void 0,[h,i]=(g||"").includes(":")?(g||"").split(":",2):[void 0,g];return{secret:y(c),issuer:b.searchParams.get("issuer")||h||void 0,account:i||void 0,algorithm:f,digits:d,period:e,label:g}}(a))}catch(a){n(null),p(a instanceof Error?a.message:"Invalid TOTP setup link"),f("",!1)}})(a.target.value)},placeholder:"otpauth://totp/...","data-testid":"totp-uri-input"})]}),"qr"===g&&(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)("input",{type:"file",accept:"image/png,image/jpeg,image/webp",onChange:a=>{v(a.target.files?.[0]||null)},"data-testid":"totp-qr-file"}),q&&(0,d.jsx)("p",{className:"font-mono text-[10px]","data-testid":"totp-qr-decoding",children:"Decoding QR…"})]}),u&&(0,d.jsx)("div",{className:"font-mono text-[10px] border p-2","data-testid":"totp-migration-fallback",children:"Google Authenticator migration QR detected. v1 supports standard otpauth:// links only. Use manual setup or account-level QR when available."}),m&&(0,d.jsxs)("div",{className:"font-mono text-[10px] border p-2","data-testid":"totp-preview",children:[(0,d.jsxs)("div",{children:["Issuer: ",m.issuer||"—"]}),(0,d.jsxs)("div",{children:["Account: ",m.account||"—"]}),(0,d.jsxs)("div",{children:["Digits: ",m.digits]}),(0,d.jsxs)("div",{children:["Period: ",m.period,"s"]}),(0,d.jsxs)("div",{children:["Algorithm: ",m.algorithm]})]}),o&&(0,d.jsx)("div",{className:"font-mono text-[10px] text-[var(--color-danger,#ef4444)]","data-testid":"totp-error",children:o})]})},B=a=>(a.split(/\r?\n/).map(a=>a.trim()).find(Boolean)||"").slice(0,48);function C(a){let{type:b,apiKeyName:c,username:d,url:e,noteContent:f,customFieldKey:g,hotWalletChain:h,cardholder:i,cardNumber:j,cardLast4:k,ssoWebsite:l,ssoProvider:m,oauth2TokenEndpoint:n,sshHostsInput:o,gpgKeyId:p,gpgUidEmail:q}=a;return"apikey"===b&&!!c.trim()||"plain_note"===b&&!!f.trim()||"login"===b&&(!!d.trim()||!!e.trim())||"note"===b&&!!f.trim()||"hot_wallet"===b&&(!!h.trim()||!0)||"custom"===b&&!!g.trim()||"card"===b&&(!!i?.trim()||!!j?.trim()||!!k?.trim())||"sso"===b&&(!!l?.trim()||!!m?.trim())||"oauth2"===b&&!!n?.trim()||"ssh"===b&&!!o?.trim()||"gpg"===b&&(!!p?.trim()||!!q?.trim())}let D=v.u.login,E=v.u.card,F=v.u.sso,G=v.u.hot_wallet,H=v.u.apikey,I=v.u.oauth2,J=v.u.ssh,K=v.u.gpg,L={hot_wallet:{label:"Hot Wallet",description:"Generate wallet address + encrypted private key",icon:f.A},plain_note:{label:"Plain Note",description:"Readable note content stored without encryption",icon:g.A},apikey:{label:"API Key",description:"Simple key/value secret",icon:h.A},login:{label:"Login",description:"Websites and app accounts",icon:h.A},sso:{label:"SSO Login",description:"Website + identity provider references",icon:i.A},note:{label:"Secure Note",description:"Private notes and secrets",icon:g.A},card:{label:"Credit Card",description:"Payment cards and details",icon:j.A},oauth2:{label:"OAuth2",description:"Auto-refreshing OAuth2 tokens",icon:i.A},ssh:{label:"SSH Key",description:"Private/public keypair for SSH",icon:h.A},gpg:{label:"GPG Key",description:"Armored key material and metadata",icon:g.A},custom:{label:"Key / Value",description:"Define a custom key/value secret field",icon:g.A}},M=["apikey","login","plain_note"],N=["custom","card","hot_wallet","sso","note","oauth2","ssh","gpg"],O=[{value:"visa",label:"Visa"},{value:"mastercard",label:"Mastercard"},{value:"amex",label:"Amex"},{value:"discover",label:"Discover"},{value:"other",label:"Other"}],P=[{value:"apple",label:"Apple",icon:(0,d.jsx)(k.A,{size:14})},{value:"facebook",label:"Facebook",icon:(0,d.jsx)(l.A,{size:14})},{value:"google",label:"Google",icon:(0,d.jsx)(m.A,{size:14})}],Q=a=>a.trim().toLowerCase(),R=(a,b)=>{let c=a?Date.parse(a):NaN;if(Number.isFinite(c))return c;let d=b?Date.parse(b):NaN;return Number.isFinite(d)?d:0},S=({isOpen:a,onClose:b,onSaved:c,editCredentialId:f,agents:g,createStartStep:h="form",createStartType:i,createPrefill:j})=>{let[k,l]=(0,e.useState)("apikey"),[m,x]=(0,e.useState)("form"),[y,z]=(0,e.useState)(""),[S,T]=(0,e.useState)(""),[U,V]=(0,e.useState)(!1),[W,X]=(0,e.useState)([]),[Y,Z]=(0,e.useState)(""),[$,_]=(0,e.useState)(""),[aa,ab]=(0,e.useState)(""),[ac,ad]=(0,e.useState)(""),[ae,af]=(0,e.useState)(""),[ag,ah]=(0,e.useState)(""),[ai,aj]=(0,e.useState)("keep"),[ak,al]=(0,e.useState)(!1),[am,an]=(0,e.useState)(""),[ao,ap]=(0,e.useState)("visa"),[aq,ar]=(0,e.useState)(""),[as,at]=(0,e.useState)(""),[au,av]=(0,e.useState)(""),[aw,ax]=(0,e.useState)(""),[ay,az]=(0,e.useState)(""),[aA,aB]=(0,e.useState)(""),[aC,aD]=(0,e.useState)(""),[aE,aF]=(0,e.useState)(""),[aG,aH]=(0,e.useState)(""),[aI,aJ]=(0,e.useState)(""),[aK,aL]=(0,e.useState)("base"),[aM,aN]=(0,e.useState)(""),[aO,aP]=(0,e.useState)(""),[aQ,aR]=(0,e.useState)(""),[aS,aT]=(0,e.useState)("value"),[aU,aV]=(0,e.useState)(""),[aW,aX]=(0,e.useState)(""),[aY,aZ]=(0,e.useState)(""),[a$,a_]=(0,e.useState)(""),[a0,a1]=(0,e.useState)(""),[a2,a3]=(0,e.useState)(""),[a4,a5]=(0,e.useState)(""),[a6,a7]=(0,e.useState)("client_secret_post"),[a8,a9]=(0,e.useState)(""),[ba,bb]=(0,e.useState)(""),[bc,bd]=(0,e.useState)(""),[be,bf]=(0,e.useState)(""),[bg,bh]=(0,e.useState)(""),[bi,bj]=(0,e.useState)(""),[bk,bl]=(0,e.useState)(""),[bm,bn]=(0,e.useState)(""),[bo,bp]=(0,e.useState)(""),[bq,br]=(0,e.useState)(""),[bs,bt]=(0,e.useState)(""),[bu,bv]=(0,e.useState)(null),[bw,bx]=(0,e.useState)(!1),[by,bz]=(0,e.useState)(null),[bA,bB]=(0,e.useState)(!1),[bC,bD]=(0,e.useState)(!1),[bE,bF]=(0,e.useState)(!1),[bG,bH]=(0,e.useState)(!1),[bI,bJ]=(0,e.useState)([]),[bK,bL]=(0,e.useState)([]),[bM,bN]=(0,e.useState)(null),[bO,bP]=(0,e.useState)(null),[bQ,bR]=(0,e.useState)({}),[bS,bT]=(0,e.useState)({}),bU=(0,e.useRef)(null),bV=(0,e.useRef)(null),[bW,bX]=(0,e.useState)("write"),bY=!!f,bZ=(0,e.useCallback)((a,b,c)=>{switch((0,v.Dw)(c,a)){case D.password:ad(b);break;case D.notes:"login"===c&&af(b),"card"===c&&aB(b);break;case E.number:at(b),ar(b.replace(/\D/g,"").slice(-4));break;case E.expiry:av(b);break;case E.cvv:ax(b);break;case v.l3:aJ(b);break;case H.value:aR(b);break;case I.accessToken:a1(b);break;case I.refreshToken:a3(b);break;case I.clientId:aZ(b);break;case I.clientSecret:a_(b);break;case J.privateKey:"ssh"===c&&bd(b),"gpg"===c&&bn(b);break;case J.passphrase:bf(b);break;default:"custom"===c&&aV(b)}},[]),b$=(0,e.useCallback)(a=>{bR(b=>({...b,[a]:!0}))},[]);(0,e.useEffect)(()=>{if(g.length>0&&!S){let a=g.find(a=>a.isPrimary);T(a?.id||g[0].id)}},[g,S]);let b_=(0,e.useCallback)(async()=>{if(f)try{let a=(await s.FH.get(s.jI.Wallet,`/credentials/${f}`)).credential,b=a.type;z(a.name),l(b),T(a.agentId),V(a.meta.favorite||!1),X(a.meta.tags||[]);let c=a.meta.walletLink;bv(c?.walletAddress&&("hot"===c.tier||"cold"===c.tier)?c:null),"login"===a.type?(_(a.meta[D.url]||""),ab(a.meta[D.username]||""),al(!!a.meta.has_totp)):"card"===a.type?(an(a.meta[E.cardholder]||""),ap(a.meta[E.brand]||"visa"),ar(a.meta[E.last4]||""),az(a.meta[E.billingZip]||"")):"sso"===a.type?(aD(a.meta[F.website]||""),aF(a.meta[F.provider]||""),aH(a.meta[F.identifier]||"")):"apikey"===a.type?(aP(a.meta[H.key]||""),aR(a.meta[H.value]||"")):"plain_note"===a.type?aJ(a.meta[v.l3]||a.meta[H.value]||""):"oauth2"===a.type?(aX(a.meta[I.tokenEndpoint]||""),a5(a.meta[I.scopes]||""),a7(a.meta[I.authMethod]||"client_secret_post"),a9("number"==typeof a.meta[I.expiresAt]?String(a.meta[I.expiresAt]):"string"==typeof a.meta[I.expiresAt]?a.meta[I.expiresAt]:"")):"hot_wallet"===a.type?(aN(a.meta[G.address]||c?.walletAddress||""),aL(function(a){let b=(a||"").trim().toLowerCase();return"solana"===b||"solana-devnet"===b?"solana":"base"}(a.meta[G.chain]||c?.chain))):"ssh"===a.type?(bb(a.meta[J.publicKey]||""),bh(Array.isArray(a.meta[J.hosts])?a.meta[J.hosts].join("\n"):""),bj(a.meta[J.keyType]||"")):"gpg"===a.type&&(bl(a.meta[K.publicKey]||""),bp(a.meta[K.keyId]||""),br(a.meta[K.uidEmail]||""),bt(a.meta[K.expiresAt]||""));let d=v.Rn[b];if("custom"===b||"hot_wallet"!==b&&(d||[]).some(a=>a.sensitive))try{let a=await s.FH.post(s.jI.Wallet,`/credentials/${f}/read`),c=await (0,t.DC)(a.encrypted),d=JSON.parse(c),e={};(d.fields||[]).forEach(a=>{e[(0,v.Dw)(b,a.key)]=a.value}),bP(e),Object.entries(e).forEach(([a,c])=>{bZ(a,c,b)})}catch{}}catch(a){bz(a instanceof Error?a.message:"Failed to load credential")}},[f,bZ]),b0=(0,e.useCallback)(async()=>{if(!bY||!f)return{};if(bO)return bO;let a=await s.FH.post(s.jI.Wallet,`/credentials/${f}/read`),b=JSON.parse(await (0,t.DC)(a.encrypted)),c={};return(b.fields||[]).forEach(a=>{c[(0,v.Dw)(k,a.key)]=a.value}),bP(c),c},[bY,f,bO,k]),b1=(0,e.useCallback)(async a=>{if(bY){bN(a),bz(null);try{let b=await b0(),c=(0,v.Dw)(k,a);bZ(a,b[c]||b[a]||"",k)}catch(a){bz(a instanceof Error?a.message:"Decryption failed -- try re-unlocking")}finally{bN(null)}}},[b0,bY,bZ]),b2=(0,e.useCallback)(a=>{switch((0,v.Dw)(k,a)){case D.password:return ac;case H.value:return aQ;case v.u.custom.value:return aU;default:return"custom"===k?aU:""}},[aQ,aU,ac,k]),b3=(0,e.useCallback)(a=>!!bS[(0,v.Dw)(k,a)],[k,bS]),b4=(0,e.useCallback)(async a=>{let b=(0,v.Dw)(k,a);if(bS[b])return void bT(a=>({...a,[b]:!1}));bY&&!b2(a).trim()&&await b1(a),bT(a=>({...a,[b]:!0}))},[b2,b1,bY,k,bS]);(0,e.useEffect)(()=>{a&&(bY?x("form"):(x(h),i&&l(i),j?.type&&l(j.type),j?.agentId&&T(j.agentId),j?.tags&&j.tags.length>0&&X(j.tags),j?.name&&z(j.name),j?.noteContent&&aJ(j.noteContent)),bF(!1),bD(!1),bT({}),aj(bY?"keep":"replace"))},[a,bY,h,i,j]),(0,e.useEffect)(()=>{!a||bY||"oauth2"!==k||a8||a9(String(Math.floor(Date.now()/1e3)+3600))},[a,bY,k,a8]),(0,e.useEffect)(()=>{a&&(async()=>{try{let a=(await s.FH.get(s.jI.Wallet,"/credentials")).credentials||[],b=a.filter(a=>"login"===a.type),c=new Map;b.forEach(a=>{let b=String(a.meta.username||"").trim();if(!b)return;let d=Q(b),e=R(a.updatedAt,a.createdAt),f=c.get(d);if(!f)return void c.set(d,{raw:b,frequency:1,recent:e});f.frequency+=1,e>f.recent&&(f.recent=e,f.raw=b)});let d=Array.from(c.entries()).sort((a,b)=>b[1].recent!==a[1].recent?b[1].recent-a[1].recent:b[1].frequency!==a[1].frequency?b[1].frequency-a[1].frequency:a[0].localeCompare(b[0])).map(([,a])=>a.raw).slice(0,20),e=new Map;a.forEach(a=>{let b=R(a.updatedAt,a.createdAt);new Set((Array.isArray(a.meta.tags)?a.meta.tags:[]).map(a=>String(a).trim()).filter(Boolean)).forEach(a=>{let c=Q(a),d=e.get(c);if(!d)return void e.set(c,{frequency:1,recent:b});d.frequency+=1,b>d.recent&&(d.recent=b)})});let f=Array.from(e.entries()).sort((a,b)=>b[1].recent!==a[1].recent?b[1].recent-a[1].recent:b[1].frequency!==a[1].frequency?b[1].frequency-a[1].frequency:a[0].localeCompare(b[0])).map(([a])=>a).slice(0,30);bJ(d),bL(f)}catch{bJ([]),bL([])}})()},[a]),(0,e.useEffect)(()=>{a&&f&&(bP(null),bR({}),b_())},[a,f,b_]),(0,e.useEffect)(()=>{a||(z(""),T(""),V(!1),X([]),Z(""),_(""),ab(""),ad(""),af(""),ah(""),aj("keep"),al(!1),an(""),ap("visa"),ar(""),at(""),av(""),ax(""),az(""),aB(""),aD(""),aF(""),aH(""),aJ(""),aL("base"),aN(""),aP(""),aR(""),aT("value"),aV(""),aX(""),aZ(""),a_(""),a1(""),a3(""),a5(""),a7("client_secret_post"),a9(""),bb(""),bd(""),bf(""),bh(""),bj(""),bl(""),bn(""),bp(""),br(""),bt(""),bv(null),bz(null),bx(!1),bD(!1),bN(null),bP(null),bR({}),bT({}),bF(!1),bH(!1),bX("write"))},[a]),(0,e.useEffect)(()=>{"login"!==k&&bD(!1)},[k]);let b5=g.map(a=>({value:a.id,label:a.name||(a.isPrimary?"Primary":a.id.slice(0,8))})),b6=(0,e.useCallback)(()=>{bV.current?.click()},[]),b7=(0,e.useCallback)(a=>"function"==typeof a.text?a.text():new Promise((b,c)=>{let d=new FileReader;d.onerror=()=>c(Error("Failed to read note file")),d.onload=()=>b("string"==typeof d.result?d.result:""),d.readAsText(a)}),[]),b8=(0,e.useCallback)(async a=>{if(!a)return;bz(null);let b=a.name.toLowerCase();if(!(b.endsWith(".md")||b.endsWith(".markdown")||b.endsWith(".txt")))return void bz("Please choose a Markdown or text file (.md, .markdown, .txt).");try{let b=await b7(a);if(!b.trim())return void bz("The selected note file is empty.");aJ(b),bY&&"note"===k&&b$(v.l3)}catch(a){bz(a instanceof Error?a.message:"Failed to import note file")}},[bY,b$,b7,k]),b9=(0,e.useCallback)(a=>{b8(a.target.files?.[0]??null),a.currentTarget.value=""},[b8]),ca=bK.filter(a=>!W.includes(a)).filter(a=>!Y.trim()||a.toLowerCase().includes(Y.trim().toLowerCase())).slice(0,6),cb=(0,e.useMemo)(()=>aI.trim()?(0,u.Q)(aI.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">"),{preserveSingleLineBreaks:!0,decodeEscapedNewlines:!0}):"",[aI]),cc=(0,e.useCallback)(()=>{let a=C({type:k,apiKeyName:aO,username:aa,url:$,noteContent:aI,customFieldKey:aS,hotWalletChain:aK,cardholder:am,cardNumber:as,cardLast4:aq,ssoWebsite:aC,ssoProvider:aE,oauth2TokenEndpoint:aW,sshHostsInput:bg,gpgKeyId:bo,gpgUidEmail:bq});if(!y.trim()&&!a||"login"===k&&!bY&&!ac.trim()||"login"===k&&bY&&"replace"===ai&&!ag.trim()||"plain_note"===k&&!aI.trim()||"apikey"===k&&(!aO.trim()||!aQ.trim())||"custom"===k&&(!aS.trim()||!aU.trim())||"sso"===k&&(!aC.trim()||!aE.trim())||"ssh"===k&&!bc.trim()&&!bY||"gpg"===k&&!bm.trim()&&!bY)return!1;if("oauth2"===k){if(!aW.trim())return!1;let a=Number.parseInt(a8,10);if(!Number.isFinite(a)||a<=0||!bY&&(!a0.trim()||!a2.trim()||!aY.trim()||!a$.trim()))return!1}return!0},[aO,aQ,as,aq,am,aS,aU,bo,bm,bq,aK,bY,y,aI,a0,aY,a$,a8,a2,aW,ac,aE,aC,bg,bc,ai,ag,k,$,aa]),cd=async()=>{let a=C({type:k,apiKeyName:aO,username:aa,url:$,noteContent:aI,customFieldKey:aS,hotWalletChain:aK,cardholder:am,cardNumber:as,cardLast4:aq,ssoWebsite:aC,ssoProvider:aE,oauth2TokenEndpoint:aW,sshHostsInput:bg,gpgKeyId:bo,gpgUidEmail:bq});if("login"===k&&!bY&&!ac.trim())return void bz("Password is required for login");if("login"===k&&bY&&"replace"===ai&&!ag.trim())return void bz("TOTP replace requires a valid secret or setup link");if("plain_note"===k&&!aI.trim())return void bz("Content is required for plain note");if("apikey"===k&&(!aO.trim()||!aQ.trim()))return void bz("Key and value are required for API key");if("custom"===k&&(!aS.trim()||!aU.trim()))return void bz("Primary key and value are required for custom type");if("sso"===k&&!aC.trim())return void bz("Website is required for SSO login");if("sso"===k&&!aE.trim())return void bz("Provider is required for SSO login");if("ssh"===k&&!bc.trim()&&!bY)return void bz("SSH private key is required");if("gpg"===k&&!bm.trim()&&!bY)return void bz("GPG private key is required");if("oauth2"===k){if(!aW.trim())return void bz("OAuth2 requires a token endpoint. Add a valid token endpoint URL.");let a=Number.parseInt(a8,10);if(!Number.isFinite(a)||a<=0)return void bz("OAuth2 expiry is invalid. Enter a positive unix timestamp in seconds.");if(!bY){if(!a0.trim())return void bz("OAuth2 requires an access token.");if(!a2.trim())return void bz("OAuth2 requires a refresh token.");if(!aY.trim())return void bz("OAuth2 requires a client ID.");if(!a$.trim())return void bz("OAuth2 requires a client secret.")}}if(!y.trim()&&!a)return void bz("Name is required");bx(!0),bz(null);try{let a,d=(()=>{let a=as.replace(/\D/g,""),b=a.length>=4?a.slice(-4):aq.trim(),c=function(a){let{type:b,name:c,apiKeyName:d,username:e,url:f,noteContent:g,customFieldKey:h,hotWalletChain:i,cardNumber:j,cardBrand:k,cardLast4:l,ssoWebsite:m,ssoProvider:n,oauth2TokenEndpoint:o,sshHostsInput:p,gpgKeyId:q,gpgUidEmail:r}=a,s=(a=>{let b=a.trim().toLowerCase();return b&&"other"!==b&&b.replace(/[^a-z0-9]+/g,"_").replace(/^_+|_+$/g,"")||"card"})(k||""),t=((a,b)=>{let c=a.replace(/\D/g,"");return c.length>=4?c.slice(-4):b.replace(/\D/g,"").slice(-4)})(j||"",l||""),u=t?`${s}_${t}`:s,v=(p||"").split(/\n|,/).map(a=>a.trim()).filter(Boolean),w=(a=>{let b=a.trim().toLowerCase();return b?b.charAt(0).toUpperCase()+b.slice(1):""})(n||""),x=(m||"").trim(),y=w&&x?`${w} (${x})`:x||(w?`${w} SSO`:"SSO Login"),z={plain_note:B(g),apikey:d.trim(),login:e.trim()||f.trim()||"Login",note:B(g),hot_wallet:i.trim()?`Hot Wallet (${i.trim().toUpperCase()})`:"Hot Wallet",custom:h.trim(),card:u,sso:y,oauth2:(o||"").trim()||"OAuth2",ssh:v[0]||"SSH Key",gpg:(q||"").trim()||(r||"").trim()||"GPG Key"};return"card"===b?z.card||"card":"apikey"===b?z.apikey||c.trim():"note"===b||"plain_note"===b?z[b]||c.trim():c.trim()||z[b]||""}({type:k,name:y,apiKeyName:aO,username:aa,url:$,noteContent:aI,customFieldKey:aS,hotWalletChain:aK,cardholder:am,cardNumber:as,cardBrand:ao,cardLast4:b,ssoWebsite:aC,ssoProvider:aE,oauth2TokenEndpoint:aW,sshHostsInput:bg,gpgKeyId:bo,gpgUidEmail:bq}),d=aS.trim()||(0,v.VB)(k),e=[],f={tags:W,favorite:U};switch(k){case"login":$&&e.push({key:D.url,value:$,type:"text",sensitive:!1}),e.push({key:D.username,value:aa,type:"text",sensitive:!1}),e.push({key:D.password,value:ac,type:"secret",sensitive:!0}),(ae.trim()||bY&&bQ[D.notes])&&e.push({key:D.notes,value:ae,type:"text",sensitive:!0}),bY?("replace"===ai&&ag.trim()&&e.push({key:D.totp,value:ag.trim().replace(/\s+/g,"").toUpperCase(),type:"secret",sensitive:!0}),"remove"===ai&&e.push({key:D.totp,value:"",type:"secret",sensitive:!0})):ag.trim()&&e.push({key:D.totp,value:ag.trim().replace(/\s+/g,"").toUpperCase(),type:"secret",sensitive:!0}),f={...f,[D.url]:$,[D.username]:aa};break;case"card":e.push({key:E.cardholder,value:am,type:"text",sensitive:!1}),e.push({key:E.number,value:as,type:"text",sensitive:!0}),e.push({key:E.cvv,value:aw,type:"secret",sensitive:!0}),e.push({key:E.expiry,value:au,type:"text",sensitive:!0}),(aA.trim()||bY&&bQ[E.notes])&&e.push({key:E.notes,value:aA,type:"text",sensitive:!0}),f={...f,[E.brand]:ao,[E.cardholder]:am,[E.last4]:b,[E.billingZip]:ay};break;case"sso":e.push({key:F.website,value:aC.trim(),type:"text",sensitive:!1}),e.push({key:F.provider,value:aE.trim().toLowerCase(),type:"text",sensitive:!1}),e.push({key:F.identifier,value:aG.trim(),type:"text",sensitive:!1}),f={...f,[F.website]:aC.trim(),[F.provider]:aE.trim().toLowerCase(),[F.identifier]:aG.trim()};break;case"note":e.push({key:v.l3,value:aI,type:"text",sensitive:!0});break;case"hot_wallet":bY&&aM.trim()&&e.push({key:G.address,value:aM.trim(),type:"text",sensitive:!1}),f={...f,[G.chain]:aK,...aM.trim()?{[G.address]:aM.trim()}:{}};break;case"plain_note":e.push({key:v.l3,value:aI,type:"text",sensitive:!1}),f={...f,[v.l3]:aI};break;case"apikey":e.push({key:H.key,value:aO,type:"text",sensitive:!1}),e.push({key:H.value,value:aQ,type:"secret",sensitive:!0}),f={...f,[H.key]:aO};break;case"custom":e.push({key:d,value:aU,type:"secret",sensitive:!0}),f={...f,primaryKey:d};break;case"oauth2":{let a=Number.parseInt(a8,10);e.push({key:I.accessToken,value:a0,type:"secret",sensitive:!0}),e.push({key:I.refreshToken,value:a2,type:"secret",sensitive:!0}),e.push({key:I.clientId,value:aY,type:"secret",sensitive:!0}),e.push({key:I.clientSecret,value:a$,type:"secret",sensitive:!0}),f={...f,[I.tokenEndpoint]:aW,[I.scopes]:a4,[I.authMethod]:a6,[I.expiresAt]:Number.isFinite(a)?a:null};break}case"ssh":{let a=bg.split(/\n|,/).map(a=>a.trim()).filter(Boolean);e.push({key:J.privateKey,value:bc,type:"secret",sensitive:!0}),be.trim()&&e.push({key:J.passphrase,value:be,type:"secret",sensitive:!0}),ba.trim()&&e.push({key:J.publicKey,value:ba,type:"text",sensitive:!1}),f={...f,[J.publicKey]:ba,[J.hosts]:a,[J.keyType]:bi||void 0};break}case"gpg":e.push({key:K.privateKey,value:bm,type:"secret",sensitive:!0}),bk.trim()&&e.push({key:K.publicKey,value:bk,type:"text",sensitive:!1}),f={...f,[K.publicKey]:bk,[K.keyId]:bo,[K.uidEmail]:bq,[K.expiresAt]:bs||void 0}}return bu&&(f={...f,walletLink:bu}),{agentId:S,type:k,name:c,fields:e,meta:f}})();if(bY){let b=d.fields.filter(a=>!a.sensitive||!!bQ[a.key]);await s.FH.put(s.jI.Wallet,`/credentials/${f}`,{...d,fields:b}),a=f}else{let b=await s.FH.post(s.jI.Wallet,"/credentials",d);a=b?.credential?.id}await c(a),b()}catch(a){bz(a instanceof Error?a.message:"Failed to save credential")}finally{bx(!1)}};(0,e.useEffect)(()=>{if(!a||bY||"form"!==m)return;let b=a=>{"Enter"===a.key&&(a.metaKey||a.ctrlKey)&&!a.altKey&&!a.shiftKey&&!bw&&cc()&&(a.preventDefault(),a.stopPropagation(),cd())};return window.addEventListener("keydown",b),()=>window.removeEventListener("keydown",b)},[cc,m,cd,bY,a,bw]);let ce="w-full h-24 bg-[var(--color-background-alt,#f4f4f5)] border border-[var(--color-border,#d4d4d8)] font-mono text-sm p-3 resize-none focus:border-[var(--color-border-focus,#0a0a0a)] outline-none text-[var(--color-text,#0a0a0a)] placeholder-[var(--color-text-muted,#6b7280)]",cf=L[k]?.label||"Credential",cg=(0,v.VB)(k),ch=(0,v.zo)(k),ci=ch?.label||"Primary Value",cj="form"===m?`Create ${cf}`:"Create";return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(r.aF,{isOpen:a,onClose:b,title:bY?"Edit Credential":cj,size:"lg",headerActionPosition:"left",headerAction:bY||"form"!==m?void 0:(0,d.jsx)("button",{type:"button","data-testid":"back-to-type-picker",onClick:()=>x("type"),className:"inline-flex items-center justify-center w-6 h-6 text-[var(--color-text-muted,#6b7280)] hover:text-[var(--color-text,#0a0a0a)] transition-colors","aria-label":"Back to type picker",children:(0,d.jsx)(n.A,{size:12})}),footer:(0,d.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,d.jsx)(r.$n,{variant:"secondary",size:"sm",onClick:b,children:"Cancel"}),bY||"type"!==m?(0,d.jsx)(r.$n,{variant:"primary",size:"sm",onClick:cd,loading:bw,children:"Save"}):null]}),children:bY||"type"!==m?(0,d.jsxs)("div",{"data-testid":"credential-form-layout",className:"space-y-4 gap-4",children:[(0,d.jsx)("input",{ref:bV,type:"file",accept:".md,.markdown,.txt,text/markdown,text/plain",onChange:b9,className:"hidden","data-testid":"note-markdown-file-input"}),(0,d.jsx)("div",{className:"space-y-2",children:(0,d.jsx)("div",{className:"flex items-center justify-between px-1",children:(0,d.jsxs)("span",{className:"font-mono text-[9px] font-bold uppercase tracking-widest text-[var(--color-text-muted,#6b7280)]",children:["Type: ",cf]})})}),"login"===k&&(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.jsx)(r.ks,{label:"Username",value:aa,onChange:a=>ab(a.target.value),onFocus:()=>bH(!0),onBlur:()=>setTimeout(()=>bH(!1),50),placeholder:"user@example.com",list:"login-username-suggestions"}),bG&&bI.length>0&&(0,d.jsx)("datalist",{id:"login-username-suggestions",children:bI.map(a=>(0,d.jsx)("option",{value:a},a))}),(0,d.jsx)(r.ks,{label:"Website",value:$,onChange:a=>_(a.target.value),placeholder:"https://example.com"}),(0,d.jsxs)("div",{className:"relative",children:[(0,d.jsx)(r.ks,{label:"Password",type:b3(D.password)?"text":"password",value:ac,onChange:a=>{ad(a.target.value),bY&&b$(D.password)},onFocus:()=>bD(!0),onClick:()=>bD(!0),onBlur:a=>{let b=a.relatedTarget;b&&bU.current?.contains(b)||bD(!1)},placeholder:bY?"••••••••":"",rightElement:(0,d.jsx)("button",{type:"button",onClick:()=>{b4(D.password)},"aria-label":b3(D.password)?"Hide Password":"Reveal Password",className:"text-[var(--color-text-muted,#6b7280)] hover:text-[var(--color-text,#0a0a0a)] transition-colors",children:bM===D.password?(0,d.jsx)(o.A,{size:11,className:"animate-spin"}):(0,d.jsx)(p.A,{size:12})})}),bC&&(0,d.jsx)("div",{ref:bU,className:"absolute right-0 top-full mt-1 z-20 min-w-[13rem] border border-[var(--color-border,#d4d4d8)] bg-[var(--color-surface,#ffffff)] shadow-[2px_2px_0_rgba(10,10,10,0.08)]",children:(0,d.jsx)("button",{type:"button",onMouseDown:a=>a.preventDefault(),onClick:()=>{bB(!0),bD(!1)},className:"w-full text-left px-3 py-2 font-mono text-[9px] uppercase tracking-widest text-[var(--color-text,#0a0a0a)] hover:bg-[var(--color-background-alt,#f4f4f5)]",children:"Generate New Password"})})]}),bE&&(0,d.jsxs)("div",{className:"space-y-3 border border-[var(--color-border,#d4d4d8)] p-3 bg-[var(--color-background-alt,#f4f4f5)]",children:[(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{className:"flex items-center justify-between mb-1.5 px-1",children:[(0,d.jsx)("label",{className:"block font-mono text-[9px] font-bold uppercase tracking-widest text-[var(--color-text-muted,#6b7280)]",children:"Notes"}),bY&&(0,d.jsxs)("button",{type:"button",onClick:()=>{b1(D.notes)},"aria-label":"Reveal Notes",className:"font-mono text-[8px] uppercase tracking-widest text-[var(--color-text-muted,#6b7280)] hover:text-[var(--color-text,#0a0a0a)] transition-colors inline-flex items-center gap-1",children:[bM===D.notes?(0,d.jsx)(o.A,{size:9,className:"animate-spin"}):(0,d.jsx)(p.A,{size:9}),"Reveal"]})]}),(0,d.jsx)("textarea",{className:ce,value:ae,onChange:a=>{af(a.target.value),bY&&b$(D.notes)},placeholder:bY?"••••••••":""})]}),(0,d.jsx)(A,{isEdit:bY,hasExistingTotp:ak,onIntentChange:a=>{aj(a),bY&&"remove"===a&&b$(D.totp)},onSecretChange:(a,b)=>{ah(a),bY&&(b?(b$(D.totp),a.trim()&&aj("replace")):"remove"!==ai&&aj(ak?"keep":"replace"))}})]})]}),"card"===k&&(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.jsx)(r.ks,{label:"Cardholder",value:am,onChange:a=>an(a.target.value),placeholder:"John Doe"}),(0,d.jsx)(r.ks,{label:"Card Number",value:as,onChange:a=>{let b=a.target.value;at(b),ar(b.replace(/\D/g,"").slice(-4)),bY&&b$(E.number)},placeholder:bY?"••••••••":""}),(0,d.jsxs)("div",{className:"flex gap-3",children:[(0,d.jsx)("div",{className:"flex-1",children:(0,d.jsx)(r.ks,{label:"Expiry",value:au,onChange:a=>{av(a.target.value),bY&&b$(E.expiry)},placeholder:"MM/YY"})}),(0,d.jsx)("div",{className:"flex-1",children:(0,d.jsx)(r.ks,{label:"CVV",type:"password",value:aw,onChange:a=>{ax(a.target.value),bY&&b$(E.cvv)},placeholder:bY?"••••":""})})]}),bE&&(0,d.jsxs)("div",{className:"space-y-3 border border-[var(--color-border,#d4d4d8)] p-3 bg-[var(--color-background-alt,#f4f4f5)]",children:[(0,d.jsx)(r.UM,{options:O,value:ao,onChange:ap,label:"Brand"}),(0,d.jsx)(r.ks,{label:"Billing ZIP",value:ay,onChange:a=>az(a.target.value),placeholder:"12345"})]})]}),"sso"===k&&(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.jsx)(r.ks,{label:"Website",value:aC,onChange:a=>aD(a.target.value),placeholder:"https://example.com"}),(0,d.jsxs)("div",{className:"space-y-1",children:[(0,d.jsx)("label",{className:"block font-mono text-[9px] font-bold uppercase tracking-widest text-[var(--color-text-muted,#6b7280)]",children:"Provider"}),(0,d.jsx)("div",{"data-testid":"sso-provider-select",children:(0,d.jsx)(r.O6,{ariaLabel:"SSO Provider",options:P.map(a=>({value:a.value,label:a.label,description:`Sign in with ${a.label}`,icon:a.icon})),value:aE,onChange:a=>aF(String(a))})})]}),bE&&(0,d.jsx)("div",{className:"space-y-3 border border-[var(--color-border,#d4d4d8)] p-3 bg-[var(--color-background-alt,#f4f4f5)]",children:(0,d.jsx)(r.ks,{label:"Identifier (email/phone/username)",value:aG,onChange:a=>aH(a.target.value),placeholder:"alice@example.com"})})]}),"note"===k&&(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{className:"flex items-center justify-between mb-1.5 px-1",children:[(0,d.jsx)("label",{className:"block font-mono text-[9px] font-bold uppercase tracking-widest text-[var(--color-text-muted,#6b7280)]",children:"Content"}),bY&&(0,d.jsxs)("button",{type:"button",onClick:()=>{b1(v.l3)},"aria-label":"Reveal Content",className:"font-mono text-[8px] uppercase tracking-widest text-[var(--color-text-muted,#6b7280)] hover:text-[var(--color-text,#0a0a0a)] transition-colors inline-flex items-center gap-1",children:[bM===v.l3?(0,d.jsx)(o.A,{size:9,className:"animate-spin"}):(0,d.jsx)(p.A,{size:9}),"Reveal"]})]}),(0,d.jsx)("div",{className:"mb-2 px-1",children:(0,d.jsxs)("div",{className:"flex items-center justify-between gap-2","data-testid":"note-editor-toolbar",children:[(0,d.jsxs)("div",{className:"inline-flex border border-[var(--color-border,#d4d4d8)]",children:[(0,d.jsx)("button",{type:"button","data-testid":"note-mode-write",onClick:()=>bX("write"),className:`px-2 py-1 font-mono text-[8px] uppercase tracking-widest transition-colors ${"write"===bW?"bg-[var(--color-text,#0a0a0a)] text-[var(--color-surface,#ffffff)]":"text-[var(--color-text-muted,#6b7280)] hover:text-[var(--color-text,#0a0a0a)] hover:bg-[var(--color-background-alt,#f4f4f5)]"}`,children:"Write"}),(0,d.jsx)("button",{type:"button","data-testid":"note-mode-preview",onClick:()=>bX("preview"),className:`px-2 py-1 font-mono text-[8px] uppercase tracking-widest transition-colors ${"preview"===bW?"bg-[var(--color-text,#0a0a0a)] text-[var(--color-surface,#ffffff)]":"text-[var(--color-text-muted,#6b7280)] hover:text-[var(--color-text,#0a0a0a)] hover:bg-[var(--color-background-alt,#f4f4f5)]"}`,children:"Preview"})]}),(0,d.jsxs)("button",{type:"button",onClick:b6,className:"font-mono text-[8px] uppercase tracking-widest text-[var(--color-text-muted,#6b7280)] hover:text-[var(--color-text,#0a0a0a)] transition-colors inline-flex items-center gap-1","data-testid":"note-import-markdown-button",children:[(0,d.jsx)(q.A,{size:9}),"Import .md/.txt"]})]})}),"preview"===bW?(0,d.jsx)("div",{"data-testid":"note-markdown-preview",className:"w-full h-48 overflow-y-auto bg-[var(--color-background-alt,#f4f4f5)] border border-[var(--color-border,#d4d4d8)] p-3",children:cb?(0,d.jsx)("div",{className:"prose-mono max-w-none [&>*:first-child]:mt-0 [&>*:last-child]:mb-0",dangerouslySetInnerHTML:{__html:cb}}):(0,d.jsx)("span",{className:"font-mono text-[10px] text-[var(--color-text-muted,#6b7280)]",children:"Nothing to preview yet."})}):(0,d.jsx)("textarea",{className:ce.replace("h-24","h-48"),value:aI,onChange:a=>{aJ(a.target.value),bY&&b$(v.l3)},placeholder:bY?"••••••••":""})]}),"plain_note"===k&&(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.jsx)("p",{className:"font-mono text-[10px] text-[var(--color-text-muted,#6b7280)]",children:"Plain Note stores readable content in metadata (not encrypted)."}),(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{className:"flex items-center justify-between mb-1.5 px-1",children:(0,d.jsx)("label",{className:"block font-mono text-[9px] font-bold uppercase tracking-widest text-[var(--color-text-muted,#6b7280)]",children:"Content"})}),(0,d.jsx)("div",{className:"mb-2",children:(0,d.jsxs)("div",{className:"flex items-center justify-between gap-2","data-testid":"plain-note-editor-toolbar",children:[(0,d.jsxs)("div",{className:"inline-flex border border-[var(--color-border,#d4d4d8)]",children:[(0,d.jsx)("button",{type:"button","data-testid":"plain-note-mode-write",onClick:()=>bX("write"),className:`px-2 py-1 font-mono text-[8px] uppercase tracking-widest transition-colors ${"write"===bW?"bg-[var(--color-text,#0a0a0a)] text-[var(--color-surface,#ffffff)]":"text-[var(--color-text-muted,#6b7280)] hover:text-[var(--color-text,#0a0a0a)] hover:bg-[var(--color-background-alt,#f4f4f5)]"}`,children:"Write"}),(0,d.jsx)("button",{type:"button","data-testid":"plain-note-mode-preview",onClick:()=>bX("preview"),className:`px-2 py-1 font-mono text-[8px] uppercase tracking-widest transition-colors ${"preview"===bW?"bg-[var(--color-text,#0a0a0a)] text-[var(--color-surface,#ffffff)]":"text-[var(--color-text-muted,#6b7280)] hover:text-[var(--color-text,#0a0a0a)] hover:bg-[var(--color-background-alt,#f4f4f5)]"}`,children:"Preview"})]}),(0,d.jsxs)("button",{type:"button",onClick:b6,className:"font-mono text-[8px] uppercase tracking-widest text-[var(--color-text-muted,#6b7280)] hover:text-[var(--color-text,#0a0a0a)] transition-colors inline-flex items-center gap-1","data-testid":"plain-note-import-markdown-button",children:[(0,d.jsx)(q.A,{size:9}),"Import .md/.txt"]})]})}),"preview"===bW?(0,d.jsx)("div",{"data-testid":"plain-note-markdown-preview",className:"w-full h-48 overflow-y-auto bg-[var(--color-background-alt,#f4f4f5)] border border-[var(--color-border,#d4d4d8)] p-3",children:cb?(0,d.jsx)("div",{className:"prose-mono max-w-none [&>*:first-child]:mt-0 [&>*:last-child]:mb-0",dangerouslySetInnerHTML:{__html:cb}}):(0,d.jsx)("span",{className:"font-mono text-[10px] text-[var(--color-text-muted,#6b7280)]",children:"Nothing to preview yet."})}):(0,d.jsx)("textarea",{className:ce.replace("h-24","h-48"),value:aI,onChange:a=>aJ(a.target.value),placeholder:""})]})]}),"hot_wallet"===k&&(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.jsx)("p",{className:"font-mono text-[10px] text-[var(--color-text-muted,#6b7280)]",children:"Generates a hot wallet via backend wallet creation logic and stores the private key as encrypted primary secret."}),(0,d.jsxs)("div",{className:"space-y-1",children:[(0,d.jsx)("label",{className:"block font-mono text-[9px] font-bold uppercase tracking-widest text-[var(--color-text-muted,#6b7280)]",children:"Chain"}),(0,d.jsx)("div",{"data-testid":"hot-wallet-chain-select",children:(0,d.jsx)(r.O6,{ariaLabel:"Chain",options:[{value:"base",label:"Base / EVM",description:"EVM-compatible chains"},{value:"solana",label:"Solana",description:"Solana network wallets"}],value:aK,onChange:a=>aL(a)})})]}),bY&&(0,d.jsx)(r.ks,{label:"Address",value:aM,onChange:a=>aN(a.target.value),placeholder:"Generated wallet address"})]}),"apikey"===k&&(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.jsx)("p",{className:"font-mono text-[10px] text-[var(--color-text-muted,#6b7280)]",children:"Minimal flow: key name + key value. If Name is blank, key name becomes the credential title."}),(0,d.jsx)(r.ks,{label:"Key",value:aO,onChange:a=>aP(a.target.value),placeholder:"Service key name"}),(0,d.jsx)(r.ks,{label:"Value",type:b3(H.value)?"text":"password",value:aQ,onChange:a=>{aR(a.target.value),bY&&b$(H.value)},placeholder:bY?"••••••••":"",rightElement:(0,d.jsx)("button",{type:"button",onClick:()=>{b4(H.value)},"aria-label":b3(H.value)?"Hide Value":"Reveal Value",className:"text-[var(--color-text-muted,#6b7280)] hover:text-[var(--color-text,#0a0a0a)] transition-colors",children:bM===H.value?(0,d.jsx)(o.A,{size:11,className:"animate-spin"}):(0,d.jsx)(p.A,{size:12})})})]}),"custom"===k&&(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.jsxs)("p",{className:"font-mono text-[10px] text-[var(--color-text-muted,#6b7280)]",children:["Canonical primary key: ",cg]}),(0,d.jsx)(r.ks,{label:"Primary Key",value:aS,onChange:a=>aT(a.target.value),placeholder:"value"}),(0,d.jsx)(r.ks,{label:ci,type:b3(v.u.custom.value)?"text":"password",value:aU,onChange:a=>aV(a.target.value),placeholder:bY?"••••••••":"",rightElement:(0,d.jsx)("button",{type:"button",onClick:()=>{b4(v.u.custom.value)},"aria-label":b3(v.u.custom.value)?"Hide Value":"Reveal Value",className:"text-[var(--color-text-muted,#6b7280)] hover:text-[var(--color-text,#0a0a0a)] transition-colors",children:bM===v.u.custom.value?(0,d.jsx)(o.A,{size:11,className:"animate-spin"}):(0,d.jsx)(p.A,{size:12})})})]}),"oauth2"===k&&(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.jsx)(r.ks,{label:"Token Endpoint",value:aW,onChange:a=>aX(a.target.value),placeholder:"https://accounts.google.com/o/oauth2/token"}),(0,d.jsx)(r.ks,{label:"Access Token",type:"password",value:a0,onChange:a=>{a1(a.target.value),bY&&b$(I.accessToken)},placeholder:bY?"••••••••":"Optional — will be fetched on first use"}),(0,d.jsx)(r.ks,{label:"Expires At (unix seconds)",type:"text",value:a8,onChange:a=>a9(a.target.value),placeholder:String(Math.floor(Date.now()/1e3)+3600)}),bE&&(0,d.jsxs)("div",{className:"space-y-3 border border-[var(--color-border,#d4d4d8)] p-3 bg-[var(--color-background-alt,#f4f4f5)]",children:[(0,d.jsx)(r.ks,{label:"Client ID",value:aY,onChange:a=>{aZ(a.target.value),bY&&b$(I.clientId)},placeholder:"your-client-id"}),(0,d.jsx)(r.ks,{label:"Client Secret",type:"password",value:a$,onChange:a=>{a_(a.target.value),bY&&b$(I.clientSecret)},placeholder:bY?"••••••••":""}),(0,d.jsx)(r.ks,{label:"Refresh Token",type:"password",value:a2,onChange:a=>{a3(a.target.value),bY&&b$(I.refreshToken)},placeholder:bY?"••••••••":""}),(0,d.jsx)(r.ks,{label:"Scopes",value:a4,onChange:a=>a5(a.target.value),placeholder:"read write (space-separated)"}),(0,d.jsx)(r.UM,{options:[{value:"client_secret_post",label:"Client Secret (POST body)"},{value:"client_secret_basic",label:"Client Secret (Basic Auth)"}],value:a6,onChange:a7,label:"Auth Method"})]})]}),"ssh"===k&&(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.jsx)(r.ks,{label:"Public Key (optional)",value:ba,onChange:a=>bb(a.target.value),placeholder:"ssh-ed25519 AAAA..."}),(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:"block font-mono text-[9px] font-bold uppercase tracking-widest text-[var(--color-text-muted,#6b7280)]",children:"Private Key"}),(0,d.jsx)("textarea",{className:ce.replace("h-24","h-40"),value:bc,onChange:a=>{bd(a.target.value),bY&&b$(J.privateKey)},placeholder:bY?"••••••••":"-----BEGIN OPENSSH PRIVATE KEY-----"})]}),(0,d.jsx)(r.ks,{label:"Passphrase (optional)",type:"password",value:be,onChange:a=>{bf(a.target.value),bY&&b$(J.passphrase)}}),(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:"block font-mono text-[9px] font-bold uppercase tracking-widest text-[var(--color-text-muted,#6b7280)]",children:"Associated Hosts (comma or newline)"}),(0,d.jsx)("textarea",{className:ce,value:bg,onChange:a=>bh(a.target.value),placeholder:"github.com prod.example.com"})]})]}),"gpg"===k&&(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:"block font-mono text-[9px] font-bold uppercase tracking-widest text-[var(--color-text-muted,#6b7280)]",children:"Private Key (armored)"}),(0,d.jsx)("textarea",{className:ce.replace("h-24","h-40"),value:bm,onChange:a=>{bn(a.target.value),bY&&b$(K.privateKey)},placeholder:bY?"••••••••":"-----BEGIN PGP PRIVATE KEY BLOCK-----"})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:"block font-mono text-[9px] font-bold uppercase tracking-widest text-[var(--color-text-muted,#6b7280)]",children:"Public Key (optional)"}),(0,d.jsx)("textarea",{className:ce,value:bk,onChange:a=>bl(a.target.value),placeholder:"-----BEGIN PGP PUBLIC KEY BLOCK-----"})]}),(0,d.jsx)(r.ks,{label:"Key ID (optional)",value:bo,onChange:a=>bp(a.target.value)}),(0,d.jsx)(r.ks,{label:"UID Email (optional)",value:bq,onChange:a=>br(a.target.value)}),(0,d.jsx)(r.ks,{label:"Expires At (optional)",value:bs,onChange:a=>bt(a.target.value),placeholder:"2027-01-01"})]}),(0,d.jsx)("button",{type:"button",onClick:()=>bF(a=>!a),className:"font-mono text-[9px] uppercase tracking-widest text-[var(--color-text-muted,#6b7280)] hover:text-[var(--color-text,#0a0a0a)] text-left",children:bE?"Hide Advanced":"Show Advanced"}),bE&&(0,d.jsxs)("div",{className:"space-y-4 border border-[var(--color-border,#d4d4d8)] p-3 bg-[var(--color-background-alt,#f4f4f5)]",children:[!bY&&b5.length>0&&(0,d.jsx)(r.UM,{options:b5,value:S,onChange:T,label:"Agent"}),(0,d.jsxs)("div",{children:[(0,d.jsx)(r.ks,{label:"Tags",value:Y,onChange:a=>Z(a.target.value),onKeyDown:a=>{if("Enter"===a.key){a.preventDefault();let b=Y.trim();b&&!W.includes(b)&&X([...W,b]),Z("")}},placeholder:"Add tag and press Enter"}),ca.length>0&&(0,d.jsx)("div",{className:"flex flex-wrap gap-1 mt-1",children:ca.map(a=>(0,d.jsxs)("button",{type:"button",onClick:()=>{W.includes(a)||X([...W,a]),Z("")},className:"font-mono text-[9px] px-2 py-0.5 border border-[var(--color-border,#d4d4d8)] hover:border-[var(--color-border-focus,#0a0a0a)]",children:["+ ",a]},a))}),W.length>0&&(0,d.jsx)("div",{className:"flex flex-wrap gap-1 mt-2",children:W.map(a=>(0,d.jsxs)("span",{className:"inline-flex items-center gap-1 bg-[var(--color-accent,#ccff00)]/10 text-[var(--color-text,#0a0a0a)] text-[9px] font-mono px-2 py-0.5",children:[a,(0,d.jsx)("button",{type:"button",onClick:()=>{X(W.filter(b=>b!==a))},className:"text-[var(--color-text-muted,#6b7280)] hover:text-[var(--color-text,#0a0a0a)] ml-0.5",children:"x"})]},a))})]}),(0,d.jsx)(r.lM,{size:"sm",checked:U,onChange:V,label:"Favorite"})]}),by&&(0,d.jsx)("div",{className:"font-mono text-[10px] text-[var(--color-danger,#ef4444)] bg-[var(--color-danger,#ef4444)]/5 border border-[var(--color-danger,#ef4444)]/20 px-3 py-2",children:by})]}):(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsxs)("div",{"data-testid":"featured-types-section",className:"space-y-2",children:[(0,d.jsx)("p",{className:"font-mono text-[9px] font-bold uppercase tracking-widest text-[var(--color-text-muted,#6b7280)]",children:"Common"}),(0,d.jsx)(r.O6,{ariaLabel:"Common types",options:M.map(a=>{let b=L[a].icon;return{value:a,label:L[a].label,description:L[a].description,icon:(0,d.jsx)(b,{size:16}),quickActionLabel:`Quick create ${L[a].label}`,onQuickAction:()=>{l(a),bz(null),x("form")}}}),value:k,onChange:a=>{l(a),bz(null),x("form")}})]}),(0,d.jsxs)("div",{"data-testid":"other-types-section",className:"space-y-2",children:[(0,d.jsx)("p",{className:"font-mono text-[9px] font-bold uppercase tracking-widest text-[var(--color-text-muted,#6b7280)]",children:"Other Types"}),(0,d.jsx)(r.O6,{ariaLabel:"Other types",options:N.map(a=>{let b=L[a].icon;return{value:a,label:L[a].label,description:L[a].description,icon:(0,d.jsx)(b,{size:16}),quickActionLabel:`Quick create ${L[a].label}`,onQuickAction:()=>{l(a),bz(null),x("form")}}}),value:k,onChange:a=>{l(a),bz(null),x("form")}})]})]})}),(0,d.jsx)(w.p,{isOpen:bA,onClose:()=>bB(!1),onUse:a=>{ad(a),bY&&b$(D.password),bB(!1)}})]})}},97053:(a,b,c)=>{c.d(b,{Z:()=>E});var d=c(21124),e=c(38301),f=c(96503),g=c(46267),h=c(46422),i=c(68324),j=c(16945),k=c(71117),l=c(22842),m=c(47089),n=c(15303),o=c(82042),p=c(85351),q=c(71613),r=c(51536);function s(a){if(!a.metadata)return{};try{return JSON.parse(a.metadata)}catch{return{}}}function t(a){if(a.humanSummary?.oneLiner)return a.humanSummary.oneLiner;let b=s(a);if(b.summary)return b.summary;if(b.verifiedSummary?.oneLiner)return b.verifiedSummary.oneLiner;let c=b.agentId||"agent",d=a.type.replace(/_/g," ");return a.amount?`${c} requesting ${a.amount} ETH`:`${c} — ${d}`}function u(a){let b=s(a);return(b.verifiedSummary?.discrepancies?.length??0)>0}function v(a,b){let c=a.verifiedSummary?.permissionLabels?.length??a.permissions?.length??0,d=a.verifiedSummary?.discrepancies?.length??0,e=(b?.can.length??0)+(b?.scope.length??0)+(b?.cannot.length??0);return!!(a.summary||c>0||d>0||e>0)}function w(a){switch(a){case"agent_access":return(0,d.jsx)(f.A,{size:10});case"fund":return(0,d.jsx)(g.A,{size:10});case"send":default:return(0,d.jsx)(h.A,{size:10});case"action":return(0,d.jsx)(i.A,{size:10})}}function x(a){switch(a){case"agent_access":return"ACCESS";case"fund":return"FUND";case"send":return"SEND";case"action":return"ACTION";default:return a.toUpperCase().replace(/_/g," ")}}function y(a,b){var c;let d="one_shot_read"===(c=b.approvalScope)||"session_token"===c?c:null;return d||("DENY_EXCLUDED_FIELD"===b.escalationReason||"number"==typeof b.credentialAccess?.maxReads&&1===b.credentialAccess.maxReads?"one_shot_read":"auth"===a.type||"agent_access"===a.type||"action"===a.type?"session_token":null)}function z(a){return"one_shot_read"===a?"temp":""}function A(){return{background:"var(--color-surface, #ffffff)",color:"var(--color-text, #0a0a0a)",border:"1px solid var(--color-border, #d4d4d8)"}}function B({icon:a,label:b,children:c,muted:e}){return(0,d.jsxs)("div",{className:"flex gap-2 py-1.5",style:{opacity:e?.7:1},children:[(0,d.jsx)("div",{className:"shrink-0 mt-0.5",style:{color:"var(--color-text-muted, #6b7280)"},children:a}),(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsx)("div",{className:"font-mono text-[8px] font-bold tracking-[0.15em] uppercase mb-1",style:{color:"var(--color-text-faint, #9ca3af)"},children:b}),(0,d.jsx)("div",{className:"font-mono text-[10px]",style:{color:"var(--color-text, #0a0a0a)",fontStyle:e?"italic":void 0},children:c})]})]})}function C({meta:a,readable:b}){let c=a.verifiedSummary,e=(c?.discrepancies?.length??0)>0,f=c?.permissionLabels?.length?c.permissionLabels:a.permissions||[];return(0,d.jsxs)("div",{className:"px-4 py-3",style:{background:"var(--color-background-alt, #f4f4f5)",borderTop:"1px solid var(--color-border, #e5e5e5)"},children:[e&&c?.discrepancies&&(0,d.jsxs)("div",{className:"flex items-start gap-2 px-3 py-2 mb-3",style:{background:"color-mix(in srgb, var(--color-warning, #f59e0b) 10%, transparent)",border:"1px solid color-mix(in srgb, var(--color-warning, #f59e0b) 30%, transparent)"},children:[(0,d.jsx)(j.A,{size:12,className:"shrink-0 mt-0.5",style:{color:"var(--color-warning, #f59e0b)"}}),(0,d.jsx)("div",{className:"font-mono text-[9px]",style:{color:"var(--color-text, #0a0a0a)"},children:c.discrepancies.map((a,b)=>(0,d.jsxs)("div",{className:"mb-1 last:mb-0",children:[(0,d.jsx)("span",{className:"font-bold uppercase text-[8px] mr-1",style:{color:"critical"===a.severity?"var(--color-danger, #ef4444)":"warning"===a.severity?"var(--color-warning, #f59e0b)":"var(--color-text-muted, #6b7280)"},children:a.severity}),a.field,": agent says “",a.agentClaim,"”, actual: ",a.actual]},b))})]}),a.summary&&(0,d.jsxs)(B,{icon:(0,d.jsx)(k.A,{size:10}),label:"AGENT SAYS",muted:!0,children:["“",a.summary,"”"]}),(a.profile||b?.profileLabel)&&(0,d.jsxs)(B,{icon:(0,d.jsx)(i.A,{size:10}),label:"PROFILE",children:[(0,d.jsx)("span",{className:"font-bold",children:a.profile?.displayName||b?.profileLabel}),a.profile?.rationale&&(0,d.jsxs)("span",{className:"ml-1",style:{color:"var(--color-text-muted, #6b7280)"},children:["— ",a.profile.rationale]})]}),f.length>0&&(0,d.jsx)(B,{icon:(0,d.jsx)(l.A,{size:10}),label:"PERMISSIONS",children:(0,d.jsx)("div",{className:"flex flex-wrap gap-1",children:f.map((a,b)=>(0,d.jsx)("span",{className:"px-1.5 py-0.5 text-[8px] font-bold",style:{background:"var(--color-border, #e5e5e5)",color:"var(--color-text-muted, #6b7280)"},children:a},b))})}),b&&(0,d.jsxs)(d.Fragment,{children:[b.can.length>0&&(0,d.jsx)(B,{icon:(0,d.jsx)(i.A,{size:10}),label:"CAN",children:b.can.join(", ")}),b.cannot.length>0&&(0,d.jsx)(B,{icon:(0,d.jsx)(m.A,{size:10}),label:"CANNOT",children:b.cannot.join("; ")}),b.scope.length>0&&(0,d.jsx)(B,{icon:(0,d.jsx)(k.A,{size:10}),label:"SCOPE",children:b.scope.join(", ")}),(0,d.jsxs)(B,{icon:(0,d.jsx)(n.A,{size:10}),label:"EXPIRY / RISK",children:[b.expiresIn," \xb7 ",b.riskHint]})]})]})}function D({request:a,resolveAction:b,actionLoading:c,showBorder:f,bulkLocked:g=!1}){let[h,i]=(0,e.useState)(!1),[j,l]=(0,e.useState)(!1),B=c===`resolve-${a.id}`||c===`approve-${a.id}`,D=c===`reject-${a.id}`,E=B||D||g,F=s(a),G=y(a,F),H=u(a),I=H?"var(--color-warning, #f59e0b)":"var(--color-danger, #ef4444)";return(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{className:"flex items-center gap-3 px-4 py-3",style:{borderBottom:f&&!h?"1px solid var(--color-border, #e5e5e5)":void 0,borderLeft:`3px solid ${I}`,background:"var(--color-surface, #ffffff)"},children:[(0,d.jsxs)("div",{className:"flex items-center gap-1 px-1.5 py-0.5 shrink-0",style:{background:"var(--color-background-alt, #f4f4f5)",border:"1px solid var(--color-border, #e5e5e5)",color:"var(--color-text-muted, #6b7280)"},children:[w(a.type),(0,d.jsx)("span",{className:"font-mono text-[8px] font-bold tracking-wider uppercase",children:x(a.type)})]}),"one_shot_read"===G&&(0,d.jsx)("span",{className:"px-1.5 py-0.5 font-mono text-[8px] font-bold tracking-[0.12em] shrink-0",style:A(),children:z(G)}),(0,d.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,d.jsxs)("div",{className:"font-mono text-[10px] truncate flex items-center gap-1.5",style:{color:"var(--color-text, #0a0a0a)"},children:[t(a),H&&(0,d.jsx)("span",{className:"shrink-0 px-1 py-0 text-[7px] font-bold tracking-wider uppercase",style:{background:"color-mix(in srgb, var(--color-warning, #f59e0b) 15%, transparent)",color:"var(--color-warning, #f59e0b)",border:"1px solid color-mix(in srgb, var(--color-warning, #f59e0b) 30%, transparent)"},children:"MISMATCH"})]}),(0,d.jsxs)("div",{className:"font-mono text-[8px] mt-0.5 flex items-center gap-1",style:{color:"var(--color-text-faint, #9ca3af)"},children:[(0,d.jsx)(n.A,{size:7}),function(a){let b=Math.floor((Date.now()-new Date(a).getTime())/6e4);if(b<1)return"just now";if(b<60)return`${b}m ago`;let c=Math.floor(b/60);return c<24?`${c}h ago`:`${Math.floor(c/24)}d ago`}(a.createdAt)]})]}),v(F,a.humanSummary)&&(0,d.jsxs)("button",{onClick:()=>i(!h),className:"flex items-center gap-1 shrink-0 hover:opacity-70",style:{background:"none",border:"none",cursor:"pointer",color:"var(--color-text-muted, #6b7280)",padding:"2px 4px"},children:[(0,d.jsx)(k.A,{size:10}),h?(0,d.jsx)(o.A,{size:10}):(0,d.jsx)(p.A,{size:10})]}),(0,d.jsxs)("div",{className:"flex items-center gap-1.5 shrink-0",children:[(0,d.jsx)(r.$n,{variant:"primary",size:"sm",onClick:()=>b(a.id,!0),disabled:E,loading:B,icon:B?void 0:(0,d.jsx)(q.A,{size:10}),className:"h-7 px-2",children:"APPROVE"}),(0,d.jsx)(r.$n,{variant:"danger",size:"sm",onClick:()=>b(a.id,!1),disabled:E,loading:D,icon:D?void 0:(0,d.jsx)(m.A,{size:10}),className:"h-7 px-2",children:"REJECT"})]})]}),(0,d.jsx)("div",{style:{display:"grid",gridTemplateRows:h?"1fr":"0fr",transition:"grid-template-rows 150ms ease",borderLeft:`3px solid ${I}`,borderBottom:f&&h?"1px solid var(--color-border, #e5e5e5)":void 0},children:(0,d.jsx)("div",{style:{overflow:"hidden"},children:h&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(C,{meta:F,readable:a.humanSummary}),(0,d.jsxs)("div",{className:"px-4 pb-3 bg-[var(--color-background-alt,#f4f4f5)]",children:[(0,d.jsx)("button",{onClick:()=>l(a=>!a),className:"font-mono text-[9px] underline text-[var(--color-text-muted,#6b7280)]",children:j?"Hide raw details":"Show raw details"}),j&&(0,d.jsx)("pre",{className:"mt-2 p-2 text-[9px] overflow-x-auto border border-[var(--color-border,#d4d4d8)] bg-[var(--color-surface,#ffffff)]",children:a.rawPayload||a.metadata||"{}"})]})]})})})]})}let E=({requests:a,resolveAction:b,actionLoading:c})=>{let[f,g]=(0,e.useState)(!1),[h,i]=(0,e.useState)(!1),[j,l]=(0,e.useState)(!1),[n,B]=(0,e.useState)(!1),[E,F]=(0,e.useState)(!1),[G,H]=(0,e.useState)(null),I=a.filter(a=>"pending"===a.status&&"notify"!==a.type),J=(0,e.useRef)(null);if((0,e.useEffect)(()=>{if(!f)return;let a=a=>{J.current&&!J.current.contains(a.target)&&g(!1)};return document.addEventListener("mousedown",a),()=>document.removeEventListener("mousedown",a)},[f]),(0,e.useEffect)(()=>{I.length<=1&&g(!1)},[I.length]),(0,e.useEffect)(()=>{0===I.length&&H(null)},[I.length]),0===I.length)return null;let K=I[0],L=s(K),M=y(K,L),N=c===`resolve-${K.id}`||c===`approve-${K.id}`,O=c===`reject-${K.id}`,P=N||O||n||E,Q=u(K),R=Q?"var(--color-warning, #f59e0b)":"var(--color-danger, #ef4444)",S=async a=>{if(n||E)return;let c=I.map(a=>a.id);if(0===c.length)return;let d=a?"APPROVE ALL":"REJECT ALL";H(null),a?B(!0):F(!0),g(!1);let e=[];for(let d of c)try{let c=await b(d,a),f=function(a){return a&&"object"==typeof a?!1!==a.success?null:"string"==typeof a.message&&a.message.trim().length>0?a.message.trim():"string"==typeof a.error&&a.error.trim().length>0?a.error.trim():"request failed":null}(c);f&&e.push({id:d,message:f})}catch(a){e.push({id:d,message:a instanceof Error?a.message:"request failed"})}if(e.length>0){let a=e.slice(0,3).map(a=>`${a.id} (${a.message})`).join(", "),b=e.length>3?` +${e.length-3} more`:"";H(`${d} completed with ${e.length} failed: ${a}${b}`)}a?B(!1):F(!1)},T=async()=>S(!0),U=async()=>S(!1);return(0,d.jsxs)("div",{className:"relative z-30",ref:J,children:[f&&I.length>1&&(0,d.jsxs)("div",{className:"absolute bottom-full left-0 right-0",style:{maxHeight:"320px",overflowY:"auto",border:"1px solid var(--color-border, #e5e5e5)",borderBottom:"none"},children:[(0,d.jsx)("div",{className:"px-4 py-2 sticky top-0 z-10",style:{background:"var(--color-background-alt, #f4f4f5)",borderBottom:"1px solid var(--color-border, #e5e5e5)"},children:(0,d.jsxs)("span",{className:"font-mono text-[8px] font-bold tracking-[0.2em] uppercase",style:{color:"var(--color-text-faint, #9ca3af)"},children:["QUEUED ACTIONS (",I.length-1,")"]})}),I.slice(1).map((a,e)=>(0,d.jsx)(D,{request:a,resolveAction:b,actionLoading:c,showBorder:e<I.length-2,bulkLocked:n||E},a.id))]}),(0,d.jsxs)("div",{style:{background:"var(--color-surface, #ffffff)",borderTop:"1px solid var(--color-border, #e5e5e5)",borderBottom:"1px solid var(--color-border, #e5e5e5)"},children:[(0,d.jsxs)("div",{className:"flex items-center h-14 px-2 gap-2 sm:px-4 sm:gap-3 max-w-full overflow-hidden",style:{borderLeft:`3px solid ${R}`},children:[(0,d.jsx)("div",{className:"flex items-center justify-center shrink-0",style:{minWidth:"24px",height:"22px",padding:"0 6px",background:"var(--color-danger, #ef4444)",color:"#ffffff",fontFamily:"monospace",fontSize:"11px",fontWeight:700,letterSpacing:"0.05em"},children:I.length}),(0,d.jsx)("span",{className:"font-mono text-[10px] font-bold tracking-[0.2em] uppercase shrink-0 hidden sm:inline",style:{color:"var(--color-danger, #ef4444)"},children:"PENDING"}),(0,d.jsx)("div",{className:"w-px h-6 shrink-0 hidden sm:block",style:{background:"var(--color-border, #e5e5e5)"}}),(0,d.jsxs)("div",{className:"hidden sm:flex items-center gap-1 px-1.5 py-0.5 shrink-0",style:{background:"var(--color-background-alt, #f4f4f5)",border:"1px solid var(--color-border, #e5e5e5)",color:"var(--color-text-muted, #6b7280)"},children:[w(K.type),(0,d.jsx)("span",{className:"font-mono text-[8px] font-bold tracking-[0.15em] uppercase",children:x(K.type)})]}),"one_shot_read"===M&&(0,d.jsx)("span",{className:"hidden sm:inline px-1.5 py-0.5 font-mono text-[8px] font-bold tracking-[0.12em] shrink-0",style:A(),children:z(M)}),(0,d.jsxs)("div",{className:"font-mono text-[11px] truncate min-w-0 flex-1 flex items-center gap-1.5",style:{color:"var(--color-text, #0a0a0a)"},children:[t(K),Q&&(0,d.jsx)("span",{className:"shrink-0 px-1 py-0 text-[7px] font-bold tracking-wider uppercase",style:{background:"color-mix(in srgb, var(--color-warning, #f59e0b) 15%, transparent)",color:"var(--color-warning, #f59e0b)",border:"1px solid color-mix(in srgb, var(--color-warning, #f59e0b) 30%, transparent)"},children:"MISMATCH"})]}),v(L,K.humanSummary)&&(0,d.jsxs)("button",{onClick:()=>i(!h),className:"flex items-center gap-1 shrink-0 hover:opacity-70",style:{background:"none",border:"none",cursor:"pointer",color:"var(--color-text-muted, #6b7280)",padding:"2px 4px"},children:[(0,d.jsx)(k.A,{size:10}),h?(0,d.jsx)(o.A,{size:10}):(0,d.jsx)(p.A,{size:10})]}),(0,d.jsxs)("div",{className:"flex items-center gap-1.5 shrink-0",children:[I.length>1&&(0,d.jsx)(r.$n,{variant:"secondary",size:"sm",onClick:()=>void T(),disabled:P,loading:n,icon:n?void 0:(0,d.jsx)(q.A,{size:10}),className:"h-7 px-2",children:"APPROVE ALL"}),I.length>1&&(0,d.jsx)(r.$n,{variant:"danger",size:"sm",onClick:()=>void U(),disabled:P,loading:E,icon:E?void 0:(0,d.jsx)(m.A,{size:10}),className:"h-7 px-2",children:"REJECT ALL"}),(0,d.jsx)(r.$n,{variant:"primary",size:"sm",onClick:()=>b(K.id,!0),disabled:P,loading:N,icon:N?void 0:(0,d.jsx)(q.A,{size:10}),className:"h-7 px-2",children:"APPROVE"}),(0,d.jsx)(r.$n,{variant:"danger",size:"sm",onClick:()=>b(K.id,!1),disabled:P,loading:O,icon:O?void 0:(0,d.jsx)(m.A,{size:10}),className:"h-7 px-2",children:"REJECT"})]}),I.length>1&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{className:"w-px h-6 shrink-0",style:{background:"var(--color-border, #e5e5e5)"}}),(0,d.jsxs)("button",{onClick:()=>g(!f),className:"flex items-center gap-1.5 shrink-0 hover:opacity-70",style:{background:"none",border:"none",cursor:"pointer",color:"var(--color-text-muted, #6b7280)",padding:"4px 8px"},children:[(0,d.jsxs)("span",{className:"font-mono text-[8px] font-bold tracking-[0.15em] uppercase",children:["+",I.length-1," MORE"]}),f?(0,d.jsx)(p.A,{size:12}):(0,d.jsx)(o.A,{size:12})]})]})]}),G&&(0,d.jsx)("div",{className:"px-4 py-2 font-mono text-[9px]",style:{color:"var(--color-danger, #ef4444)",background:"color-mix(in srgb, var(--color-danger, #ef4444) 8%, transparent)",borderTop:"1px solid color-mix(in srgb, var(--color-danger, #ef4444) 30%, transparent)"},children:G}),(0,d.jsx)("div",{style:{display:"grid",gridTemplateRows:h?"1fr":"0fr",transition:"grid-template-rows 150ms ease",borderLeft:`3px solid ${R}`},children:(0,d.jsx)("div",{style:{overflow:"hidden"},children:h&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(C,{meta:L,readable:K.humanSummary}),(0,d.jsxs)("div",{className:"px-4 pb-3 bg-[var(--color-background-alt,#f4f4f5)]",children:[(0,d.jsx)("button",{onClick:()=>l(a=>!a),className:"font-mono text-[9px] underline text-[var(--color-text-muted,#6b7280)]",children:j?"Hide raw details":"Show raw details"}),j&&(0,d.jsx)("pre",{className:"mt-2 p-2 text-[9px] overflow-x-auto border border-[var(--color-border,#d4d4d8)] bg-[var(--color-surface,#ffffff)]",children:K.rawPayload||K.metadata||"{}"})]})]})})})]})]})}}};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3667],{53667:(e,a,r)=>{r.d(a,{$n:()=>l,XS:()=>A,Rw:()=>g,_s:()=>x,UM:()=>d,O6:()=>_,aF:()=>u,AM:()=>h,ks:()=>c,lM:()=>L,lX:()=>F});var t=r(95155),o=r(12115),s=r(35299);let n=()=>(0,t.jsx)("span",{className:"absolute right-0 top-0 bottom-0 w-[6px] pointer-events-none opacity-25","aria-hidden":"true",style:{backgroundImage:"repeating-linear-gradient(to bottom, var(--color-surface,#ffffff) 0px, var(--color-surface,#ffffff) 2px, transparent 2px, transparent 3px, var(--color-surface,#ffffff) 3px, var(--color-surface,#ffffff) 4px, transparent 4px, transparent 7px)"}}),l=e=>{let{variant:a="primary",size:r="md",loading:o=!1,icon:l,children:c,disabled:i,className:d="",...f}=e,v="primary"===a,x="sm"===r?"var(--font-size-xs)":"md"===r?"var(--font-size-sm)":"var(--font-size-md)";return(0,t.jsxs)("button",{className:"".concat("font-mono tracking-widest flex items-center justify-center gap-[var(--space-1)] transition-all disabled:opacity-50 disabled:cursor-not-allowed"," ").concat({primary:"relative clip-specimen-sm bg-[var(--color-text,#0a0a0a)] text-[var(--color-surface,#ffffff)] border border-[var(--color-text,#0a0a0a)] shadow-mech hover:shadow-mech-hover active:shadow-mech-active hover:bg-[var(--color-accent,#ccff00)] hover:text-[var(--color-accent-foreground,#0a0a0a)] hover:border-[var(--color-accent,#ccff00)] hover:-translate-y-[1px] hover:-translate-x-[1px] active:translate-y-0 active:translate-x-0",secondary:"bg-[var(--color-surface,#ffffff)] border border-[var(--color-border,#d4d4d8)] text-[var(--color-text-muted,#6b7280)] hover:border-[var(--color-text,#0a0a0a)] hover:text-[var(--color-text,#0a0a0a)] hover:bg-[var(--color-background-alt,#f4f4f5)]",danger:"bg-[var(--color-surface,#ffffff)] border-2 border-[var(--color-warning,#ff4d00)] text-[var(--color-warning,#ff4d00)] hover:bg-[var(--color-warning,#ff4d00)] hover:text-white",ghost:"bg-transparent text-[var(--color-text-muted,#6b7280)] hover:text-[var(--color-text,#0a0a0a)] hover:bg-[var(--color-background-alt,#f4f4f5)]"}[a]," ").concat({sm:"h-[var(--control-height-sm)] px-[var(--space-2)] text-[length:var(--font-size-xs)]",md:"h-[var(--control-height-md)] px-[var(--space-3)] text-[length:var(--font-size-sm)]",lg:"h-[var(--control-height-lg)] px-[var(--space-4)] text-[length:var(--font-size-md)]"}[r]," ").concat(d),disabled:i||o,...f,children:[o?(0,t.jsxs)(t.Fragment,{children:[v&&(0,t.jsx)("span",{className:"absolute inset-0 pointer-events-none animate-ticker bg-hazard-stripes opacity-40","aria-hidden":"true"}),(0,t.jsx)(s.A,{className:"animate-spin relative z-[1]",style:{width:x,height:x}})]}):l||null,(0,t.jsx)("span",{className:"relative z-[1]",children:c}),v&&!o&&(0,t.jsx)(n,{})]})},c=e=>{let{label:a,error:r,errorMessage:o,hint:s,leftElement:n,rightElement:l,compact:c=!1,inputRef:i,className:d="",...f}=e,v=a&&a.length>0,x=r&&(o||!o);return(0,t.jsxs)("div",{className:"flex flex-col gap-[var(--space-1)] w-full group ".concat(d),children:[(v||x)&&(0,t.jsxs)("div",{className:"flex justify-between items-end px-[var(--space-1)]",children:[v&&(0,t.jsx)("label",{className:"font-mono text-[length:var(--font-size-xs)] font-bold uppercase tracking-widest text-[var(--color-text-muted,#6b7280)] group-focus-within:text-[var(--color-text,#0a0a0a)] transition-colors",children:a}),r&&o&&(0,t.jsx)("span",{className:"font-mono text-[length:var(--font-size-xs)] text-[var(--color-danger,#ef4444)] uppercase",children:o}),r&&!o&&(0,t.jsx)("span",{className:"font-mono text-[length:var(--font-size-xs)] text-[var(--color-warning,#ff4d00)] font-bold",children:"ERR_NULL"})]}),(0,t.jsxs)("div",{className:"relative flex",children:[n&&(0,t.jsx)("div",{className:"absolute left-0 top-0 h-full flex items-center pl-[var(--space-2)] pointer-events-none text-[var(--color-text-muted,#6b7280)]",children:n}),(0,t.jsx)("input",{ref:i,className:"\n w-full ".concat(c?"h-[var(--control-height-sm)] text-[length:var(--font-size-xs)]":"h-[calc(var(--control-height-lg)+var(--space-2))] text-[length:var(--font-size-md)]"," bg-[var(--color-background-alt,#f4f4f5)] border outline-none font-mono text-[var(--color-text,#0a0a0a)] placeholder-[var(--color-text-muted,#6b7280)]\n transition-all duration-200\n border-[var(--color-border,#d4d4d8)]\n hover:border-[var(--color-border-muted,#a1a1aa)] hover:bg-[var(--color-surface,#ffffff)]\n focus:border-[var(--color-border-focus,#0a0a0a)] focus:bg-[var(--color-surface,#ffffff)] focus:shadow-[2px_2px_0_rgba(0,0,0,0.08)]\n ").concat(r?"border-[var(--color-danger,#ef4444)]/50 focus:border-[var(--color-danger,#ef4444)] bg-[var(--color-danger,#ef4444)]/5":"","\n ").concat(n?"pl-[calc(var(--space-4)+var(--space-3))]":"px-[var(--space-3)]","\n ").concat(l?"pr-[calc(var(--space-4)+var(--space-4))]":"pr-[var(--space-3)]","\n "),...f}),l&&(0,t.jsx)("div",{className:"absolute right-0 top-0 h-full flex items-center pr-[var(--space-2)]",children:l}),(0,t.jsx)("div",{className:"absolute top-0 right-0 w-1.5 h-1.5 border-t border-r transition-opacity ".concat(r?"border-[var(--color-danger,#ef4444)] opacity-100":"border-[var(--color-border-focus,#0a0a0a)] opacity-0 group-focus-within:opacity-100")}),(0,t.jsx)("div",{className:"absolute bottom-0 left-0 w-1.5 h-1.5 border-b border-l transition-opacity ".concat(r?"border-[var(--color-danger,#ef4444)] opacity-100":"border-[var(--color-border-focus,#0a0a0a)] opacity-0 group-focus-within:opacity-100")})]}),s&&(0,t.jsx)("span",{className:"font-mono text-[length:var(--font-size-xs)] text-[var(--color-text-muted,#6b7280)] px-[var(--space-1)]",children:s})]})};var i=r(24033);let d=e=>{let{options:a,value:r,onChange:s,label:n,compact:l=!1,disabled:c=!1,ariaLabel:d,searchable:f=!1,searchPlaceholder:v="Search...",emptyMessage:x="No options found",menuPosition:u="auto"}=e,[m,p]=(0,o.useState)(!1),[h,b]=(0,o.useState)(!1),[g,w]=(0,o.useState)(192),[j,y]=(0,o.useState)(""),N=(0,o.useRef)(null),k=(0,o.useRef)(null),z=a.find(e=>e.value===r),C=(0,o.useMemo)(()=>{if(!f)return a;let e=j.trim().toLowerCase();return e?a.filter(a=>a.label.toLowerCase().includes(e)||a.value.toLowerCase().includes(e)):a},[a,j,f]);return(0,o.useEffect)(()=>{if(!m)return void y("");f&&requestAnimationFrame(()=>{var e;null==(e=k.current)||e.focus()})},[m,f]),(0,t.jsxs)("div",{className:"relative w-full group ".concat(m?"z-50":"z-20"),children:[n&&(0,t.jsx)("label",{className:"block text-[length:var(--font-size-xs)] font-mono font-bold uppercase tracking-widest text-[var(--color-text-muted,#6b7280)] mb-[var(--space-1)] px-[var(--space-1)] pointer-events-none",children:n}),(0,t.jsxs)("button",{ref:N,type:"button","aria-label":d,disabled:c,onClick:()=>{if(!c){if(m)return void p(!1);(()=>{var e;let a=null==(e=N.current)?void 0:e.getBoundingClientRect(),r=Number.parseFloat(window.getComputedStyle(document.documentElement).getPropertyValue("--ui-scale-factor"))||1;if(a){let e=Math.round(12*r),t=Math.round(192*r),o=Math.max(0,window.innerHeight-a.bottom-e),s=Math.max(0,a.top-e),n="top"===u||"bottom"!==u&&o<t&&s>o,l=n?s:o;b(n),w(Math.max(0,Math.floor(Math.min(t,l))))}else b("top"===u),w(Math.round(192*r));p(!0)})()}},className:"\n w-full ".concat(l?"h-[var(--control-height-sm)] text-[length:var(--font-size-xs)]":"h-[calc(var(--control-height-lg)+var(--space-2))] text-[length:var(--font-size-md)]"," flex items-center justify-between px-[var(--space-3)] outline-none\n bg-[var(--color-background-alt,#f4f4f5)] border font-mono font-bold tracking-wider text-[var(--color-text,#0a0a0a)]\n transition-all duration-200\n ").concat(c?"opacity-50 cursor-not-allowed":"","\n ").concat(m?"border-[var(--color-border-focus,#0a0a0a)] bg-[var(--color-surface,#ffffff)] shadow-[0_0_0_1px_var(--color-border-muted,#a1a1aa)]":"border-[var(--color-border,#d4d4d8)] hover:border-[var(--color-border-muted,#a1a1aa)] hover:bg-[var(--color-surface,#ffffff)]","\n "),children:[(0,t.jsx)("span",{className:"min-w-0 flex-1 truncate text-left",children:(null==z?void 0:z.label)||"SELECT"}),(0,t.jsx)(i.A,{className:"shrink-0 transform transition-transform text-[var(--color-text-muted,#6b7280)] group-hover:text-[var(--color-text,#0a0a0a)] ".concat(m?"rotate-180 text-[var(--color-text,#0a0a0a)]":""),style:{width:"var(--font-size-md)",height:"var(--font-size-md)"}})]}),m&&!c&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"absolute top-0 right-0 w-2 h-2 border-t border-r border-[var(--color-border-focus,#0a0a0a)] pointer-events-none z-30"}),(0,t.jsx)("div",{className:"absolute bottom-0 left-0 w-2 h-2 border-b border-l border-[var(--color-border-focus,#0a0a0a)] pointer-events-none z-30"})]}),m&&!c&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"fixed inset-0 z-40",onClick:()=>p(!1)}),(0,t.jsxs)("div",{className:"absolute left-0 w-full bg-[var(--color-surface,#ffffff)] border border-[var(--color-border-focus,#0a0a0a)] shadow-[0_0_0_1px_var(--color-border-muted,#a1a1aa)] overflow-y-auto z-50 ".concat(h?"bottom-full mb-[var(--space-1)]":"top-full mt-[var(--space-1)]"),style:{maxHeight:"".concat(g,"px")},children:[f&&(0,t.jsx)("div",{className:"sticky top-0 bg-[var(--color-surface,#ffffff)] border-b border-[var(--color-border-muted,#e5e5e5)] p-[var(--space-2)]",children:(0,t.jsx)("input",{ref:k,value:j,onChange:e=>y(e.target.value),placeholder:v,className:"w-full h-[var(--control-height-sm)] px-[var(--space-2)] border border-[var(--color-border,#d4d4d8)] font-mono text-[length:var(--font-size-xs)] text-[var(--color-text,#0a0a0a)] bg-[var(--color-background-alt,#f4f4f5)] focus:outline-none focus:border-[var(--color-border-focus,#0a0a0a)]",onKeyDown:e=>{"Escape"===e.key&&(e.preventDefault(),p(!1))}})}),0===C.length?(0,t.jsx)("div",{className:"px-[var(--space-3)] py-[var(--space-3)] text-[var(--color-text-faint,#9ca3af)] font-mono text-[length:var(--font-size-xs)]",children:x}):C.map(e=>(0,t.jsxs)("button",{type:"button",onClick:()=>{s(e.value),p(!1)},className:"w-full text-left px-[var(--space-3)] py-[var(--space-2)] text-[var(--color-text-muted,#6b7280)] hover:text-[var(--color-text,#0a0a0a)] hover:bg-[var(--color-background-alt,#f4f4f5)] font-mono ".concat(l?"text-[length:var(--font-size-xs)]":"text-[length:var(--font-size-sm)]"," border-b border-[var(--color-border-muted,#e5e5e5)] last:border-0 flex items-center gap-[var(--space-2)] group/item"),children:[(0,t.jsx)("div",{className:"w-1.5 h-1.5 flex-shrink-0 ".concat(e.value===r?"bg-[var(--color-text,#0a0a0a)]":"bg-[var(--color-border,#d4d4d8)] group-hover/item:bg-[var(--color-text,#0a0a0a)]")}),(0,t.jsx)("span",{className:"min-w-0 flex-1 truncate",children:e.label})]},e.value))]})]})]})};var f=r(47650),v=r(65229);let x=e=>{let{isOpen:a,onClose:r,title:s,subtitle:n,children:l,width:c="md",footerLabel:i=""}=e,[d,x]=(0,o.useState)(!1),[u,m]=(0,o.useState)(!1),[p,h]=(0,o.useState)(!1);if((0,o.useEffect)(()=>{h(!0)},[]),(0,o.useEffect)(()=>{if(a)x(!0),requestAnimationFrame(()=>{requestAnimationFrame(()=>{m(!0)})});else{m(!1);let e=setTimeout(()=>{x(!1)},200);return()=>clearTimeout(e)}},[a]),(0,o.useEffect)(()=>{let e=e=>{"Escape"===e.key&&r()};return a&&window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[a,r]),!d||!p)return null;let b=(0,t.jsxs)("div",{className:"fixed inset-0 z-[110]",onMouseDown:r,"data-testid":"drawer-backdrop",children:[(0,t.jsx)("div",{className:"absolute inset-0 bg-black/10"}),(0,t.jsx)("div",{className:"absolute right-0 top-0 h-full overflow-hidden",style:{width:{sm:"min(100vw, calc(320px * var(--ui-scale-factor, 1)))",md:"min(100vw, calc(400px * var(--ui-scale-factor, 1)))",lg:"min(100vw, calc(520px * var(--ui-scale-factor, 1)))",full:"100vw"}[c]},onMouseDown:e=>e.stopPropagation(),children:(0,t.jsxs)("div",{className:"\n h-full bg-[var(--color-surface,#ffffff)] flex flex-col clip-specimen border-mech shadow-mech\n transition-transform duration-200 ease-out\n ".concat(u?"translate-x-0":"translate-x-full","\n "),children:[(0,t.jsxs)("div",{className:"relative border-b border-[var(--color-border,#d4d4d8)]",children:[(0,t.jsx)("div",{className:"absolute top-0 left-0 right-0 h-[2px] bg-hazard-stripes"}),(0,t.jsx)("div",{className:"px-[var(--space-4)] pt-[var(--space-3)] pb-[var(--space-2)]",children:(0,t.jsxs)("div",{className:"flex items-start justify-between",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"label-specimen-sm text-[var(--color-text-muted,#6b7280)]",children:n||"PANEL"}),(0,t.jsx)("h2",{className:"font-mono font-bold text-[length:var(--font-size-md)] text-[var(--color-text,#0a0a0a)] tracking-tight mt-[2px]",children:s})]}),(0,t.jsx)("button",{onClick:r,"aria-label":"Close drawer",className:"p-[var(--space-1)] hover:bg-[var(--color-background-alt,#f4f4f5)] transition-colors group -mr-[var(--space-1)]",children:(0,t.jsx)(v.A,{className:"text-[var(--color-text-muted,#6b7280)] group-hover:text-[var(--color-text,#0a0a0a)] transition-colors",style:{width:"var(--font-size-md)",height:"var(--font-size-md)"}})})]})})]}),(0,t.jsx)("div",{className:"flex-1 overflow-y-auto p-[var(--space-4)]",children:l}),(0,t.jsx)("div",{className:"px-[var(--space-4)] py-[var(--space-2)] border-t border-[var(--color-border,#d4d4d8)]",children:(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)("span",{className:"label-specimen-sm text-[var(--color-text-faint,#9ca3af)]",children:i||""}),(0,t.jsx)("span",{className:"font-mono text-[8px] text-[var(--color-text-faint,#9ca3af)] tracking-[0.3em]",children:"|||||||||||"})]})})]})})]});return(0,f.createPortal)(b,document.body)},u=e=>{let{isOpen:a,onClose:r,title:s,subtitle:n,children:l,icon:c,size:i="sm",hideHeader:d=!1,hideTitle:x=!1,contentClassName:u,headerAction:m,headerActionPosition:p="right",footer:h,footerClassName:b,showBottomStripe:g=!0,dismissible:w=!0}=e,[j,y]=(0,o.useState)(!1),[N,k]=(0,o.useState)(!1),[z,C]=(0,o.useState)(!1),E=(0,o.useRef)(null),M=(0,o.useId)();(0,o.useEffect)(()=>(C(!0),()=>C(!1)),[]),(0,o.useEffect)(()=>{a?(y(!0),k(!1)):j&&k(!0)},[a,j]);let A=(0,o.useCallback)(()=>{N&&(y(!1),k(!1))},[N]);(0,o.useEffect)(()=>(j&&!N?document.body.style.overflow="hidden":j||(document.body.style.overflow=""),()=>{document.body.style.overflow=""}),[j,N]),(0,o.useEffect)(()=>{let e=e=>{w&&"Escape"===e.key&&r()};return j&&!N&&window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[j,N,w,r]),(0,o.useEffect)(()=>{var e;if(!j||N)return;let a=E.current;if(!a)return;let r=document.activeElement,t=e=>{if(e.hasAttribute("disabled")||"true"===e.getAttribute("aria-disabled")||-1===e.tabIndex||e.closest("[inert]")||e.hasAttribute("hidden")||e instanceof HTMLInputElement&&"hidden"===e.type)return!1;let a=window.getComputedStyle(e);return"none"!==a.display&&"hidden"!==a.visibility},o=()=>Array.from(a.querySelectorAll('a[href],button:not([disabled]),textarea:not([disabled]),input:not([disabled]),select:not([disabled]),[tabindex]:not([tabindex="-1"])')).filter(t),s=o(),n=s.find(e=>!!e.hasAttribute("autofocus")||["INPUT","TEXTAREA","SELECT"].includes(e.tagName));(null!=(e=null!=n?n:s[0])?e:a).focus();let l=e=>{if("Tab"!==e.key)return;let r=o();if(0===r.length){e.preventDefault(),a.focus();return}let t=r[0],s=r[r.length-1],n=document.activeElement;e.shiftKey?n&&n!==t&&a.contains(n)||(e.preventDefault(),s.focus()):n&&n!==s&&a.contains(n)||(e.preventDefault(),t.focus())};return a.addEventListener("keydown",l),()=>{a.removeEventListener("keydown",l),null==r||r.focus()}},[j,N]);let L=s||n||"System_Message";return j&&z?(0,f.createPortal)((0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"fixed inset-0 z-[120] overflow-y-auto overflow-x-hidden",children:[(0,t.jsx)("div",{className:"absolute inset-0 bg-[var(--color-background-alt,#f4f4f5)]/95 ".concat(N?"animate-fade-out":"animate-fade-in"),onClick:w?r:void 0,onAnimationEnd:A,children:(0,t.jsx)("div",{className:"absolute inset-0 opacity-[0.1] bg-[radial-gradient(var(--color-text,#000)_1px,transparent_1px)] bg-[size:3px_3px]"})}),(0,t.jsx)("div",{"data-testid":"modal-dismiss-layer",className:"relative z-10 min-h-full flex items-start sm:items-center justify-center p-[var(--space-3)] sm:p-[var(--space-4)]",onClick:w?r:void 0,children:(0,t.jsxs)("div",{ref:E,role:"dialog","aria-modal":"true","aria-labelledby":!d&&L?M:void 0,tabIndex:-1,className:"w-full max-h-[calc(100vh-2rem)] max-h-[calc(100dvh-2rem)] sm:max-h-[calc(100vh-4rem)] sm:max-h-[calc(100dvh-4rem)] flex flex-col overflow-hidden clip-specimen border-mech bg-[var(--color-surface,#ffffff)] shadow-mech font-mono text-[var(--color-text,#0a0a0a)] corner-marks ".concat(N?"animate-terminal-close":"animate-terminal"),style:{maxWidth:{sm:"min(100%, calc(24rem * var(--ui-scale-factor, 1)))",md:"min(100%, calc(28rem * var(--ui-scale-factor, 1)))",lg:"min(100%, calc(32rem * var(--ui-scale-factor, 1)))"}[i]},onClick:e=>e.stopPropagation(),children:[(0,t.jsx)("div",{className:"absolute top-[-1px] right-[-1px] w-2 h-2 border-t-2 border-r-2 border-[var(--color-border-focus,#0a0a0a)] pointer-events-none z-20"}),(0,t.jsx)("div",{className:"absolute bottom-[-1px] left-[-1px] w-2 h-2 border-b-2 border-l-2 border-[var(--color-border-focus,#0a0a0a)] pointer-events-none z-20"}),!d&&(0,t.jsxs)("div",{className:"shrink-0 border-b border-[var(--color-border,#d4d4d8)] bg-[var(--color-surface-alt,#fafafa)] px-[var(--space-4)] py-[var(--space-3)] flex items-center justify-between gap-[var(--space-3)]",children:[(0,t.jsxs)("div",{className:"flex items-center gap-[var(--space-2)]",children:["left"===p?m:null,c&&(0,t.jsx)("div",{className:"w-6 h-6 border border-[var(--color-border,#d4d4d8)] bg-[var(--color-surface,#ffffff)] flex items-center justify-center shrink-0",children:c}),(0,t.jsx)("h3",{id:M,className:"font-mono text-[length:var(--font-size-xs)] font-bold text-[var(--color-text-muted,#6b7280)] uppercase tracking-[0.25em]",children:L})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:["left"!==p?m:null,w&&(0,t.jsx)("button",{onClick:r,className:"text-[var(--color-text-muted,#6b7280)] hover:text-[var(--color-text,#0a0a0a)] transition-colors",children:(0,t.jsx)(v.A,{style:{width:"var(--font-size-md)",height:"var(--font-size-md)"}})})]})]}),(0,t.jsx)("div",{className:"p-[var(--space-6)] flex-1 relative overflow-y-auto overflow-x-hidden min-h-0 ".concat(null!=u?u:""),children:(0,t.jsx)("div",{className:"relative z-10 font-mono text-sm tracking-[0.05em] text-[var(--color-text,#0a0a0a)]",children:l})}),h&&(0,t.jsxs)("div",{className:"shrink-0 border-t border-[var(--color-border,#d4d4d8)] bg-[var(--color-surface-alt,#fafafa)] px-[var(--space-4)] py-2 flex items-center gap-3 ".concat(null!=b?b:""),children:[g&&(0,t.jsx)("div",{className:"h-4 flex-1 bg-[repeating-linear-gradient(90deg,var(--color-text,#000),var(--color-text,#000)_1px,transparent_1px,transparent_3px)] opacity-30"}),(0,t.jsx)("div",{className:"shrink-0",children:h})]})]})})]}),(0,t.jsx)("style",{children:"\n @keyframes terminal-open {\n 0% {\n opacity: 0;\n transform: scaleY(0) scaleX(0.95);\n filter: blur(4px);\n }\n 100% {\n opacity: 1;\n transform: scaleY(1) scaleX(1);\n filter: blur(0);\n }\n }\n @keyframes terminal-close {\n 0% {\n opacity: 1;\n transform: scaleY(1) scaleX(1);\n filter: blur(0);\n }\n 100% {\n opacity: 0;\n transform: scaleY(0) scaleX(0.95);\n filter: blur(4px);\n }\n }\n @keyframes fade-in {\n from { opacity: 0; }\n to { opacity: 1; }\n }\n @keyframes fade-out {\n from { opacity: 1; }\n to { opacity: 0; }\n }\n .animate-terminal {\n animation: terminal-open 0.15s cubic-bezier(0.23, 1, 0.32, 1) forwards;\n transform-origin: center;\n }\n .animate-terminal-close {\n animation: terminal-close 0.12s cubic-bezier(0.55, 0, 1, 0.45) forwards;\n transform-origin: center;\n }\n .animate-fade-in {\n animation: fade-in 0.2s ease-out forwards;\n }\n .animate-fade-out {\n animation: fade-out 0.15s ease-in forwards;\n }\n "})]}),document.body):null};var m=r(88661),p=r.n(m);let h=e=>{let{isOpen:a,onClose:r,title:s,children:n,className:l="",anchor:c="right",anchorEl:i}=e,d=(0,o.useRef)(null),[v,x]=(0,o.useState)(null),[u,m]=(0,o.useState)(!1);if((0,o.useEffect)(()=>{m(!0)},[]),(0,o.useEffect)(()=>{if(a&&i){let e=i.getBoundingClientRect(),a=window.innerHeight-e.bottom,r="left"===c?e.left:e.right;a<250?x({bottom:window.innerHeight-e.top+4,left:r}):x({top:e.bottom+4,left:r})}},[a,i,c]),(0,o.useEffect)(()=>{let e=e=>{d.current&&!d.current.contains(e.target)&&r()};return a&&setTimeout(()=>{document.addEventListener("mousedown",e)},0),()=>document.removeEventListener("mousedown",e)},[a,r]),(0,o.useEffect)(()=>{let e=e=>{"Escape"===e.key&&r()};return a&&window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[a,r]),!a)return null;let h=!!i&&u,b=(0,t.jsxs)("div",{ref:d,style:h&&v?{...void 0!==v.top?{top:v.top}:{},...void 0!==v.bottom?{bottom:v.bottom}:{},left:"left"===c?v.left:void 0,right:"right"===c?window.innerWidth-v.left:void 0}:void 0,className:"jsx-25a89afa3a28f8c "+"\n bg-[var(--color-surface)] border border-[var(--color-border-focus,#0a0a0a)] shadow-mech\n min-w-[200px] animate-popover\n ".concat(h?"fixed z-[9999]":"absolute z-50 ".concat("right"===c?"right-0":"left-0"),"\n ").concat(l,"\n "),children:[s&&(0,t.jsxs)("div",{className:"jsx-25a89afa3a28f8c flex items-center justify-between px-[var(--space-3)] py-[var(--space-2)] border-b border-[var(--color-border)]",children:[(0,t.jsx)("span",{className:"jsx-25a89afa3a28f8c text-[length:var(--font-size-xs)] font-mono text-[var(--color-text-muted)] uppercase tracking-widest",children:s}),(0,t.jsxs)("div",{className:"jsx-25a89afa3a28f8c flex gap-[2px]",children:[(0,t.jsx)("div",{className:"jsx-25a89afa3a28f8c w-1 h-1 bg-[var(--color-text-muted)]"}),(0,t.jsx)("div",{className:"jsx-25a89afa3a28f8c w-1 h-1 bg-[var(--color-border)]"})]})]}),(0,t.jsx)("div",{className:"jsx-25a89afa3a28f8c p-[var(--space-3)]",children:n}),(0,t.jsx)("div",{className:"jsx-25a89afa3a28f8c absolute top-0 right-0 w-2 h-2 border-t border-r border-[var(--color-border-focus,#0a0a0a)]"}),(0,t.jsx)("div",{className:"jsx-25a89afa3a28f8c absolute bottom-0 left-0 w-2 h-2 border-b border-l border-[var(--color-border-focus,#0a0a0a)]"}),(0,t.jsx)(p(),{id:"25a89afa3a28f8c",children:"@keyframes popover-open{0%{opacity:0;transform:translatey(-4px)scale(.98)}100%{opacity:1;transform:translatey(0)scale(1)}}.animate-popover.jsx-25a89afa3a28f8c{animation:popover-open.12s cubic-bezier(.16,1,.3,1)forwards}"})]});return h?(0,f.createPortal)(b,document.body):b};var b=r(52056);let g=e=>{let{isOpen:a,onClose:r,onConfirm:o,title:s,message:n,confirmText:c="CONFIRM",cancelText:i="CANCEL",variant:d="default",loading:f=!1}=e,v={danger:{icon:"text-[var(--color-warning,#ff4d00)]",iconBg:"bg-[var(--color-warning,#ff4d00)]/10",border:"border-[var(--color-warning,#ff4d00)]",buttonVariant:"danger",buttonClassName:""},warning:{icon:"text-[var(--color-warning-alt,#ff9500)]",iconBg:"bg-[var(--color-warning-alt,#ff9500)]/10",border:"border-[var(--color-warning-alt,#ff9500)]",buttonVariant:"secondary",buttonClassName:"!bg-[var(--color-warning-alt,#ff9500)] !text-white !border-[var(--color-warning-alt,#ff9500)] hover:!bg-[var(--color-warning-alt,#ff9500)]/90"},default:{icon:"text-[var(--color-text,#0a0a0a)]",iconBg:"bg-[var(--color-text,#0a0a0a)]/10",border:"border-[var(--color-text,#0a0a0a)]",buttonVariant:"primary",buttonClassName:""}}[d];return(0,t.jsx)(u,{isOpen:a,onClose:r,title:s,icon:(0,t.jsx)(b.A,{style:{width:"var(--font-size-lg)",height:"var(--font-size-lg)"},className:v.icon}),size:"sm",children:(0,t.jsxs)("div",{className:"space-y-[var(--space-4)]",children:[(0,t.jsx)("p",{className:"font-mono text-[length:var(--font-size-sm)] text-[var(--color-text-muted,#6b7280)] leading-relaxed",children:n}),"danger"===d&&(0,t.jsx)("div",{className:"p-[var(--space-3)] ".concat(v.iconBg," border ").concat(v.border," border-dashed"),children:(0,t.jsxs)("div",{className:"flex items-center gap-[var(--space-2)]",children:[(0,t.jsx)(b.A,{style:{width:"var(--font-size-sm)",height:"var(--font-size-sm)"},className:v.icon}),(0,t.jsx)("span",{className:"font-mono text-[length:var(--font-size-sm)] text-[var(--color-text-muted,#6b7280)]",children:"This action cannot be undone."})]})}),(0,t.jsxs)("div",{className:"flex gap-[var(--space-2)] pt-[var(--space-2)]",children:[(0,t.jsx)(l,{onClick:r,disabled:f,variant:"secondary",size:"lg",className:"flex-1",children:i}),(0,t.jsx)(l,{onClick:o,disabled:f,variant:v.buttonVariant,size:"lg",loading:f,className:"flex-1 ".concat(v.buttonClassName),children:f?"PROCESSING...":c})]})]})})},w=e=>{let{size:a=16,className:r=""}=e;return(0,t.jsx)("svg",{width:a,height:a,viewBox:"0 0 111 111",fill:"none",className:r,children:(0,t.jsx)("path",{d:"M54.921 110.034C85.359 110.034 110.034 85.402 110.034 55.017C110.034 24.6319 85.359 0 54.921 0C26.0432 0 2.35281 22.1714 0 50.3923H72.8467V59.6416H0C2.35281 87.8625 26.0432 110.034 54.921 110.034Z",fill:"currentColor"})})},j=e=>{let{size:a=16,className:r=""}=e;return(0,t.jsxs)("svg",{width:a,height:a,viewBox:"0 0 256 417",className:r,children:[(0,t.jsx)("path",{fill:"currentColor",d:"M127.961 0l-2.795 9.5v275.668l2.795 2.79 127.962-75.638z"}),(0,t.jsx)("path",{fill:"currentColor",opacity:"0.6",d:"M127.962 0L0 212.32l127.962 75.639V154.158z"}),(0,t.jsx)("path",{fill:"currentColor",d:"M127.961 312.187l-1.575 1.92v98.199l1.575 4.6L256 236.587z"}),(0,t.jsx)("path",{fill:"currentColor",opacity:"0.6",d:"M127.962 416.905v-104.72L0 236.585z"}),(0,t.jsx)("path",{fill:"currentColor",opacity:"0.8",d:"M127.961 287.958l127.96-75.637-127.96-58.162z"}),(0,t.jsx)("path",{fill:"currentColor",opacity:"0.4",d:"M0 212.32l127.96 75.638v-133.8z"})]})},y=e=>{let{size:a=16,className:r=""}=e;return(0,t.jsx)("svg",{width:a,height:a,viewBox:"0 0 256 256",className:r,children:(0,t.jsx)("path",{fill:"currentColor",d:"M128 0C57.308 0 0 57.308 0 128s57.308 128 128 128 128-57.308 128-128S198.692 0 128 0zm70.56 186.624l-17.856-49.088L128 217.6l-52.704-80.064-17.856 49.088L128 38.4l70.56 148.224z"})})},N=e=>{let{size:a=16,className:r=""}=e;return(0,t.jsxs)("svg",{width:a,height:a,viewBox:"0 0 256 256",className:r,children:[(0,t.jsx)("circle",{cx:"128",cy:"128",r:"128",fill:"currentColor"}),(0,t.jsx)("path",{fill:"white",d:"M81.5 170.5c-11.3 0-20.2-3.2-26.7-9.5-6.5-6.4-9.8-15.3-9.8-26.8 0-14.5 4.2-26.2 12.5-35.2 8.4-9 19.5-13.5 33.3-13.5 11 0 19.7 3.1 26.2 9.4 6.5 6.2 9.7 14.9 9.7 26 0 14.7-4.2 26.6-12.5 35.7-8.3 9-19.4 13.5-33.3 13.5h.6v.4zm3.8-18c7.4 0 13.3-3.1 17.8-9.2 4.5-6.2 6.7-14.3 6.7-24.4 0-6.8-1.5-12-4.6-15.8-3-3.7-7.3-5.6-12.8-5.6-7.4 0-13.4 3.1-17.8 9.3-4.5 6.2-6.7 14.3-6.7 24.3 0 6.8 1.6 12 4.7 15.7 3.1 3.8 7.3 5.7 12.7 5.7z"}),(0,t.jsx)("path",{fill:"white",d:"M137.5 169V87.5h26.3c10.5 0 18.5 2.2 24 6.7 5.5 4.4 8.3 10.8 8.3 19.2 0 8.8-2.9 15.8-8.8 20.8-5.9 5-14.1 7.5-24.6 7.5h-7.8V169h-17.4zm17.4-43.8h5.3c5.2 0 9.1-1.1 11.8-3.4 2.7-2.3 4-5.5 4-9.8 0-3.8-1.2-6.6-3.6-8.6-2.4-2-6-3-10.8-3h-6.7v24.8z"})]})},k=e=>{let{size:a=16,className:r=""}=e;return(0,t.jsx)("svg",{width:a,height:a,viewBox:"0 0 256 256",className:r,children:(0,t.jsx)("path",{fill:"currentColor",d:"M177.1 94.9c-3.5-2-7.8-2-11.3 0l-26.4 15.6-17.9 10.2-26.4 15.6c-3.5 2-7.8 2-11.3 0l-20.7-12.2c-3.5-2-5.7-5.8-5.7-9.8V91.8c0-3.9 2.1-7.7 5.7-9.8l20.5-11.9c3.5-2 7.8-2 11.3 0l20.5 11.9c3.5 2 5.7 5.8 5.7 9.8v15.6l17.9-10.4V81.1c0-3.9-2.1-7.7-5.7-9.8L95.7 47.8c-3.5-2-7.8-2-11.3 0L45.2 71.4c-3.6 2.1-5.7 5.9-5.7 9.8v47.1c0 3.9 2.1 7.7 5.7 9.8l38.8 22.5c3.5 2 7.8 2 11.3 0l26.4-15.4 17.9-10.4 26.4-15.4c3.5-2 7.8-2 11.3 0l20.5 11.9c3.5 2 5.7 5.8 5.7 9.8v22.5c0 3.9-2.1 7.7-5.7 9.8l-20.4 12c-3.5 2-7.8 2-11.3 0l-20.5-11.9c-3.5-2-5.7-5.8-5.7-9.8v-15.4l-17.9 10.4v15.8c0 3.9 2.1 7.7 5.7 9.8l38.8 22.5c3.5 2 7.8 2 11.3 0l38.8-22.5c3.5-2 5.7-5.8 5.7-9.8v-47.3c0-3.9-2.1-7.7-5.7-9.8l-39-22.3z"})})},z=e=>{let{size:a=16,className:r=""}=e;return(0,t.jsxs)("svg",{width:a,height:a,viewBox:"0 0 397 311",className:r,children:[(0,t.jsx)("path",{fill:"currentColor",d:"M64.6 237.9c2.4-2.4 5.7-3.8 9.2-3.8h317.4c5.8 0 8.7 7 4.6 11.1l-62.7 62.7c-2.4 2.4-5.7 3.8-9.2 3.8H6.5c-5.8 0-8.7-7-4.6-11.1l62.7-62.7z"}),(0,t.jsx)("path",{fill:"currentColor",d:"M64.6 3.8C67.1 1.4 70.4 0 73.8 0h317.4c5.8 0 8.7 7 4.6 11.1l-62.7 62.7c-2.4 2.4-5.7 3.8-9.2 3.8H6.5c-5.8 0-8.7-7-4.6-11.1L64.6 3.8z"}),(0,t.jsx)("path",{fill:"currentColor",d:"M333.1 120.1c-2.4-2.4-5.7-3.8-9.2-3.8H6.5c-5.8 0-8.7 7-4.6 11.1l62.7 62.7c2.4 2.4 5.7 3.8 9.2 3.8h317.4c5.8 0 8.7-7 4.6-11.1l-62.7-62.7z"})]})},C=e=>{let{size:a=16,className:r=""}=e;return(0,t.jsxs)("svg",{width:a,height:a,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",className:r,children:[(0,t.jsx)("circle",{cx:"12",cy:"12",r:"10"}),(0,t.jsx)("path",{d:"M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"}),(0,t.jsx)("path",{d:"M2 12h20"})]})},E=e=>({base:w,ethereum:j,arbitrum:y,optimism:N,polygon:k,solana:z,"solana-devnet":z})[e.toLowerCase()]||C,M={base:"#0052FF",ethereum:"#627EEA",arbitrum:"#28A0F0",optimism:"#FF0420",polygon:"#8247E5"},A=e=>{let{value:a,onChange:r,chains:s,disabled:n=!1,size:l="sm",className:c="",label:d}=e,[v,x]=(0,o.useState)(!1),[u,m]=(0,o.useState)(!1),p=(0,o.useRef)(null),[h,b]=(0,o.useState)(null),g=E(a),w=M[a.toLowerCase()]||"#888",j="sm"===l;return(0,o.useEffect)(()=>{m(!0)},[]),(0,o.useEffect)(()=>{if(v&&p.current){let e=p.current.getBoundingClientRect(),a=Number.parseFloat(window.getComputedStyle(document.documentElement).getPropertyValue("--ui-scale-factor"))||1;b({top:e.bottom+Math.round(4*a),left:e.left,width:Math.max(e.width,100)})}},[v]),(0,t.jsxs)("div",{className:"relative w-full ".concat(c),children:[d&&(0,t.jsx)("label",{className:"block text-[length:var(--font-size-xs)] font-mono font-bold uppercase tracking-widest text-[var(--color-text-muted,#6b7280)] mb-[var(--space-1)] px-[var(--space-1)] pointer-events-none",children:d}),(0,t.jsxs)("button",{ref:p,type:"button",onClick:()=>!n&&x(!v),disabled:n,className:"\n w-full ".concat(j?"h-[var(--control-height-sm)] text-[length:var(--font-size-xs)]":"h-[calc(var(--control-height-lg)+var(--space-2))] text-[length:var(--font-size-md)]"," flex items-center justify-between px-[var(--space-2)] outline-none group\n bg-[var(--color-background-alt,#f4f4f5)] border font-mono font-bold tracking-wider text-[var(--color-text,#0a0a0a)]\n transition-all duration-200 disabled:opacity-50 disabled:cursor-not-allowed\n ").concat(v?"border-[var(--color-border-focus,#0a0a0a)] bg-[var(--color-surface,#ffffff)] shadow-mech":"border-[var(--color-border,#d4d4d8)] hover:border-[var(--color-border-muted,#a1a1aa)] hover:bg-[var(--color-surface,#ffffff)]","\n "),children:[(0,t.jsxs)("span",{className:"flex items-center gap-[var(--space-1)] truncate",children:[(0,t.jsx)("span",{style:{color:w},children:(0,t.jsx)(g,{size:j?10:12})}),(0,t.jsx)("span",{className:"uppercase",children:a})]}),(0,t.jsx)(i.A,{className:"transform transition-transform text-[var(--color-text-muted,#6b7280)] group-hover:text-[var(--color-text,#0a0a0a)] ".concat(v?"rotate-180 text-[var(--color-text,#0a0a0a)]":""),style:{width:j?"var(--font-size-sm)":"var(--font-size-md)",height:j?"var(--font-size-sm)":"var(--font-size-md)"}})]}),v&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"absolute top-0 right-0 w-2 h-2 border-t border-r border-[var(--color-border-focus,#0a0a0a)] pointer-events-none z-30"}),(0,t.jsx)("div",{className:"absolute bottom-0 left-0 w-2 h-2 border-b border-l border-[var(--color-border-focus,#0a0a0a)] pointer-events-none z-30"})]}),v&&u&&(0,f.createPortal)((0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"fixed inset-0 z-[9998]",onClick:()=>x(!1)}),(0,t.jsx)("div",{className:"fixed z-[9999] bg-[var(--color-surface,#ffffff)] border border-[var(--color-border-focus,#0a0a0a)] shadow-mech overflow-y-auto",style:{top:null==h?void 0:h.top,left:null==h?void 0:h.left,width:null==h?void 0:h.width,maxHeight:"calc(12rem * var(--ui-scale-factor, 1))"},children:s.map(e=>{let o=E(e),s=M[e.toLowerCase()]||"#888";return(0,t.jsxs)("button",{type:"button",onClick:()=>{r(e),x(!1)},className:"w-full text-left px-[var(--space-2)] py-[var(--space-2)] text-[var(--color-text-muted,#6b7280)] hover:text-[var(--color-text,#0a0a0a)] hover:bg-[var(--color-background-alt,#f4f4f5)] font-mono ".concat(j?"text-[length:var(--font-size-xs)]":"text-[length:var(--font-size-sm)]"," border-b border-[var(--color-border-muted,#e5e5e5)] last:border-0 flex items-center gap-[var(--space-2)] group/item uppercase tracking-wider"),children:[(0,t.jsx)("span",{style:{color:s},children:(0,t.jsx)(o,{size:j?10:12})}),(0,t.jsx)("span",{className:"truncate",children:e}),(0,t.jsx)("div",{className:"ml-auto w-1.5 h-1.5 flex-shrink-0 ".concat(e===a?"bg-[var(--color-text,#0a0a0a)]":"bg-[var(--color-border,#d4d4d8)] group-hover/item:bg-[var(--color-text,#0a0a0a)]")})]},e)})})]}),document.body)]})},L=e=>{let{checked:a,onChange:r,label:o,disabled:s=!1,size:n="md"}=e,l="sm"===n,c=l?"calc(var(--space-4) - var(--space-1))":"calc(var(--space-4) - 2px)";return(0,t.jsxs)("label",{className:"flex items-center gap-[var(--space-2)] ".concat(s?"opacity-50 cursor-not-allowed":"cursor-pointer"),children:[(0,t.jsx)("button",{type:"button",role:"switch","aria-checked":a,disabled:s,onClick:()=>r(!a),className:"\n rounded-full relative transition-colors duration-200 flex-shrink-0\n ".concat(a?"bg-[var(--color-accent,#ccff00)]":"bg-[var(--color-border,#d4d4d8)]","\n ").concat(s?"cursor-not-allowed":"cursor-pointer","\n "),style:{width:l?"calc(var(--space-4) * 2)":"calc(var(--space-4) * 2 + var(--space-2))",height:l?"var(--space-4)":"calc(var(--space-4) + var(--space-1))"},children:(0,t.jsx)("span",{className:"\n rounded-full absolute top-1/2 left-[2px]\n bg-[var(--color-text,#0a0a0a)] transition-transform duration-200\n ",style:{width:c,height:c,transform:a?"translate(".concat(l?"var(--space-4)":"calc(var(--space-4) + var(--space-1))",", -50%)"):"translate(0, -50%)"}})}),o&&(0,t.jsx)("span",{className:"font-mono tracking-widest uppercase text-[length:var(--font-size-xs)] text-[var(--color-text,#0a0a0a)] select-none",children:o})]})};var S=r(5917);let _=e=>{let{options:a,value:r,onChange:o,multi:s=!1,className:n="",disabled:l=!1,ariaLabel:c}=e,i=e=>{if(!l)if(s){let a=Array.isArray(r)?r:[];a.includes(e)?o(a.filter(a=>a!==e)):o([...a,e])}else o(e)};return(0,t.jsxs)("div",{className:"relative clip-specimen-sm border-mech bg-[var(--color-surface,#ffffff)] shadow-mech ".concat(l?"opacity-60":""," ").concat(n),role:s?"group":"radiogroup","aria-label":c,"data-testid":"item-picker",children:[(0,t.jsx)("div",{className:"absolute top-0 right-0 w-2 h-2 border-t border-r border-[var(--color-border-focus,#0a0a0a)] pointer-events-none"}),(0,t.jsx)("div",{className:"absolute bottom-0 left-0 w-2 h-2 border-b border-l border-[var(--color-border-focus,#0a0a0a)] pointer-events-none"}),(0,t.jsx)("div",{className:"absolute top-[6px] right-[10px] h-[calc(100%-12px)] w-[14px] opacity-35 pointer-events-none","aria-hidden":"true",style:{backgroundImage:"repeating-linear-gradient(to bottom, var(--color-text-muted,#71717a) 0px, var(--color-text-muted,#71717a) 2px, transparent 2px, transparent 4px)"}}),a.map((e,o)=>{let n=(e=>s&&Array.isArray(r)?r.includes(e):r===e)(e.value),c=e.description?"item-picker-description-".concat(e.value):void 0;return(0,t.jsxs)("div",{role:s?"checkbox":"radio",tabIndex:l?-1:0,"aria-checked":n,"aria-describedby":c,"data-testid":"item-picker-option-".concat(e.value),onClick:()=>i(e.value),onKeyDown:a=>{l||("Enter"===a.key||" "===a.key)&&(a.preventDefault(),i(e.value))},className:"\n group relative flex w-full items-center gap-[var(--space-2)] px-[var(--space-3)] py-[var(--space-2)] pr-[calc(var(--space-4)+12px)] text-left transition-colors\n ".concat(o!==a.length-1?"border-b border-[var(--color-border,#d4d4d8)]":"","\n ").concat(n?"bg-[var(--color-background-alt,#f4f4f5)] text-[var(--color-text,#0a0a0a)] dark:text-[var(--color-text-inverse,#ffffff)]":"bg-[var(--color-surface,#ffffff)] text-[var(--color-text-muted,#6b7280)] hover:bg-[var(--color-background-alt,#f4f4f5)] hover:text-[var(--color-text,#0a0a0a)] dark:text-[var(--color-text-muted-inverse,#a1a1aa)] dark:hover:text-[var(--color-text-inverse,#ffffff)]","\n ").concat(l?"cursor-not-allowed":"cursor-pointer","\n "),children:[(0,t.jsx)("span",{className:"\n relative mt-[1px] flex h-3.5 w-3.5 shrink-0 items-center justify-center border transition-colors\n ".concat(s?"rounded-[1px]":"rounded-full","\n ").concat(n?"border-[var(--color-text,#0a0a0a)] bg-[var(--color-text,#0a0a0a)] text-[var(--color-surface,#ffffff)] dark:border-[var(--color-text-inverse,#ffffff)] dark:bg-[var(--color-text-inverse,#ffffff)] dark:text-[var(--color-surface-inverse,#000000)]":"border-[var(--color-border-muted,#a1a1aa)] bg-transparent","\n "),children:n?(0,t.jsx)(S.A,{size:8,strokeWidth:3.5}):null}),(0,t.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,t.jsx)("span",{className:"block font-mono text-[10px] font-bold uppercase tracking-widest leading-none",children:e.label}),e.description?(0,t.jsx)("span",{id:c,className:"mt-1 block font-mono text-[10px] leading-tight text-[var(--color-text-muted,#71717a)] dark:text-[var(--color-text-muted-inverse,#a1a1aa)]",children:e.description}):null]}),e.onQuickAction?(0,t.jsx)("button",{type:"button","data-testid":"item-picker-quick-action-".concat(e.value),"aria-label":e.quickActionLabel||"Quick create ".concat(e.label),onClick:a=>{var r;a.stopPropagation(),null==(r=e.onQuickAction)||r.call(e)},disabled:l,className:"shrink-0 inline-flex h-5 w-5 items-center justify-center border border-[var(--color-border,#d4d4d8)] font-mono text-[10px] leading-none text-[var(--color-text-muted,#71717a)] opacity-0 transition-opacity group-hover:opacity-100 focus:opacity-100 group-focus-within:opacity-100 hover:text-[var(--color-text,#0a0a0a)]",children:"+"}):null,e.icon?(0,t.jsx)("span",{className:"shrink-0 ".concat(n?"text-[var(--color-text,#0a0a0a)] dark:text-[var(--color-text-inverse,#ffffff)]":"text-[var(--color-text-muted,#71717a)] group-hover:text-[var(--color-text,#0a0a0a)] dark:text-[var(--color-text-muted-inverse,#a1a1aa)] dark:group-hover:text-[var(--color-text-inverse,#ffffff)]"),children:e.icon}):null]},e.value)})]})},F=e=>{let{title:a,icon:r,isOpen:o,onToggle:s,children:n,tone:l="default",className:c="",headerClassName:d="",contentClassName:f=""}=e,v="warning"===l?"text-[var(--color-warning)]":"text-[var(--color-text-muted)]";return(0,t.jsxs)("div",{className:"bg-[var(--color-surface)] border-mech clip-specimen-sm shadow-mech !rounded-none ".concat(c),children:[(0,t.jsxs)("button",{type:"button",onClick:s,className:"w-full flex items-center justify-between px-4 py-3 bg-transparent hover:bg-[var(--color-background-alt,#f4f4f5)] transition-colors ".concat(d),children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[r?(0,t.jsx)("span",{className:v,children:r}):null,(0,t.jsx)("span",{className:"font-mono text-[9px] font-semibold tracking-widest uppercase ".concat(v),children:a})]}),(0,t.jsx)(i.A,{size:12,className:"".concat(v," transition-transform flex-shrink-0 ml-2 ").concat(o?"rotate-180":"")})]}),o&&(0,t.jsx)("div",{className:f,children:n})]})}}}]);
|