You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Keep src/widgets/registry.ts as the typed, reviewed source for exact package identity/version, literal entry imports, integration mode, route, label/icon, chains, and EIP-1193 methods.
Reject duplicate widget IDs/routes, unsupported chains/methods, and non-exact package versions.
Reuse the existing dashboard grid
Mount registered widgets through an authenticated bottom-sheet route following src/app/[locale]/@home/(home)/(bottomsheet)//page.tsx.
Default to a Web Component host, permitting React only when explicitly selected in a reviewed registry entry; both hosts must lazy-load client-side and receive { provider, themeOverrides, config }.
Assign Web Component object properties without HTML serialization and clear them on unmount.
Expose only a restricted EIP-1193 provider; enforce each widget’s approved method subset and chains at runtime, and never expose signer, seed, unrestricted RPC provider, or session internals.
Keep signing-capable widgets disabled until every signing/transaction request validates active account and chain and receives explicit Wallet-owned approval.
Add the reusable src/widgets/** registry, authenticated route, renderer, host contract/property handling, React/Web Component hosts, and provider policy boundary.
Integrate registry actions into src/sections/Home/components/WalletSection.tsx and reusable icon support into src/components/Form/RoundButton/RoundButton.tsx while preserving the six core actions and More-drawer behavior.
Add the bottom-sheet route and ensure it mounts only registered, authenticated widget entries.
Add focused unit coverage for registry validation, host selection, object-property handoff/cleanup, provider restrictions, chain/account validation, and provider errors.
Add desktop and mobile Playwright coverage for authenticated widget opening from both the dashboard and More drawer without regressing layout behavior.
Run type checking, unit tests, production build, and Playwright tests.
[PLAN] Prepare GoodWallet for GoodWidget integration
Parent feature request: #52
Required behavior
src/widgets/registry.tsas the typed, reviewed source for exact package identity/version, literal entry imports, integration mode, route, label/icon, chains, and EIP-1193 methods.src/app/[locale]/@home/(home)/(bottomsheet)//page.tsx.{ provider, themeOverrides, config }.Execution steps
src/widgets/**registry, authenticated route, renderer, host contract/property handling, React/Web Component hosts, and provider policy boundary.src/sections/Home/components/WalletSection.tsxand reusable icon support intosrc/components/Form/RoundButton/RoundButton.tsxwhile preserving the six core actions and More-drawer behavior.Acceptance criteria
Human reviewer checklist