## Problem solved
FIxes [DASH-495](https://linear.app/thirdweb/issue/DASH-495/engine-playground)
Short description of the bug fixed or feature added
Added Engine Section to playground
-Airdrop
-Mint
-Webhooks
Updated AppSidebar `expanded: false` to show `otherLinks` section - previously this was unseen by users and there was no scroll option
Create EngineAPIHeader for Engine CTA and utm link updates
Slack [thread](https://thirdwebdev.slack.com/archives/C07U1LM6S2W/p1731687004602369) for initiative
<!-- start pr-codex -->
---
## PR-Codex overview
This PR introduces new features and updates to the `playground-web` application, including new API routes for minting and airdropping tokens, enhancements to the UI components, and the addition of new environment variables for build processes.
### Detailed summary
- Added environment variables for `ENGINE_ACCESS_TOKEN`, `ENGINE_BACKEND_WALLET`, and `ENGINE_URL`.
- Introduced new dependencies: `@thirdweb-dev/engine` and `timeago.js`.
- Updated `navLinks.ts` to collapse sections and added a new `Engine` section.
- Created new pages for `Webhooks`, `Airdrop`, and `Minting` with respective UI components.
- Implemented API routes for transaction status, minting, and airdropping.
- Enhanced the `EngineAPIHeader` component to display dynamic content.
- Added polling functionality for transaction status updates in the `Sponsorship` and `AirdropERC20` components.
- Introduced pagination for transaction results in `ClaimTransactionResults` components.
> The following files were skipped due to too many changes: `pnpm-lock.yaml`
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
part of DASH-388
<!-- start pr-codex -->
---
## PR-Codex overview
This PR focuses on updating the return types in the `convertFiatToCrypto` and `convertCryptoToFiat` functions to return objects instead of plain numbers. Additionally, it modifies the `SnapshotUpload` component to replace `Link` elements with `a` tags and adjusts the layout for better styling.
### Detailed summary
- Changed return type of `convertFiatToCrypto` to `{ result: 0.0000057 }`.
- Changed return type of `convertCryptoToFiat` to `{ result: 3404.11 }`.
- Replaced `Link` components with `a` tags in `SnapshotUpload`.
- Adjusted layout and styling in `SnapshotUpload` for improved design.
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
Fixes: DASH-487
<!-- start pr-codex -->
---
## PR-Codex overview
This PR focuses on updating references to smart contract interaction links throughout the application, simplifying the URLs to point directly to `/contracts` instead of specific interaction overview pages.
### Detailed summary
- Updated `href` in `page.tsx` from `/contracts/interact/overview` to `/contracts`.
- Changed references in `interact-blockchain/page.mdx` to point to `/contracts`.
- Modified links in `contracts/page.mdx` to `/contracts`.
- Adjusted links in `sdk.tsx` to `https://portal.thirdweb.com/contracts`.
- Updated SDK documentation links in `ipfs/page.mdx` to `/contracts`.
- Changed SDK references in `gas/page.mdx` to `/contracts`.
- Updated redirects in `redirects.mjs` for `/sdk`, `/sdk/how-it-works`, and `/sdk/getting-started` to `/contracts`.
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
https://linear.app/thirdweb/issue/DASH-489/modules-ui-bug-with-erc20-modules-showing-tokenid
<!-- start pr-codex -->
---
## PR-Codex overview
This PR focuses on refactoring the handling of different ERC token types in various components of a dashboard application. It replaces boolean flags with string identifiers for token types, enhancing clarity and maintainability.
### Detailed summary
- Replaced boolean flags (`isErc721`, `isErc20`) with string identifiers (`name`) for token types in multiple components.
- Updated metadata upload logic to use `props.contractInfo.name` for conditional checks.
- Refactored the `uploadMetadata`, `setTransferable`, and `mint` functions to use the new string identifiers.
- Modified UI components to use `Select` for token type selection instead of checkboxes.
- Adjusted condition checks for enabling transfer and minting based on the updated token type handling.
- Updated the `ClaimableModule` to handle ERC20 and ERC721 claims with the new string-based approach.
- Ensured consistent handling of token decimals and claim conditions based on token type.
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
DASH-474
<!-- start pr-codex -->
---
## PR-Codex overview
This PR updates the metadata for the `Explore` page in the dashboard application. It modifies the `title` and `description` to better reflect the content of the page, specifically focusing on Ethereum smart contract templates for web3 developers.
### Detailed summary
- Added a new `title`: "List of smart contracts for EVM Developers".
- Added a new `description`: "A list of Ethereum smart contract templates for web3 developers, including the most popular evm smart contracts for dapps, NFTs and more."
- Updated the `metadata` object to use the new `title` and `description`.
- Updated the `openGraph` object to use the new `title` and `description`.
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
Fixes: DASH-479
<!-- start pr-codex -->
---
## PR-Codex overview
This PR primarily focuses on refactoring the billing components to use a `redirectUrl` instead of `redirectPath`, streamlining the URL handling for billing processes in the application.
### Detailed summary
- Removed `getAbsoluteUrlFromPath` function.
- Updated `PlanInfoCard.tsx` to include `redirectPath` in `BillingPortalButton`.
- Changed `CheckoutButtonProps` and `BillingPortalButtonProps` to use `redirectUrl`.
- Modified `CheckoutButton` and `BillingPortalButton` to utilize `getRedirectUrl` for URL generation.
- Added `getRedirectUrl` function to construct URLs based on the current origin.
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
fixes DASH-476
<!-- start pr-codex -->
---
## PR-Codex overview
This PR updates the fee-sharing information in the `PayConfig.tsx` component of the dashboard, increasing the percentage shared with users.
### Detailed summary
- Changed the fee-sharing percentage from 30% to 70% in the text:
- From: "We share 30% of this fee with you."
- To: "We share 70% of this fee with you."
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
https://linear.app/thirdweb/issue/DASH-469/small-changes-for-modules-ui
<!-- start pr-codex -->
---
## PR-Codex overview
This PR focuses on enhancing the functionality and user experience of the `Transferable`, `Claimable`, and `Royalty` components in the dashboard application, particularly by adding support for ERC20 tokens and improving form handling for royalties.
### Detailed summary
- Added support for `isErc20` state in `Transferable` and `Claimable` components.
- Updated UI to display messages related to transfer restrictions and accounts.
- Introduced `SequentialTokenIdFieldset` to handle token ID inputs.
- Changed royalty handling from BPS to percentage in `Royalty` component.
- Improved form validation and error messaging for royalty inputs.
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
## Problem solved
Short description of the bug fixed or feature added
<!-- start pr-codex -->
---
## PR-Codex overview
This PR introduces headless components related to blockchain chain management in the `thirdweb` library, including `ChainProvider`, `ChainIcon`, and `ChainName`. It also adds tests for these components and updates documentation to reflect their usage.
### Detailed summary
- Added headless components: `ChainProvider`, `ChainIcon`, `ChainName`.
- Introduced `TokenIconProps` interface.
- Updated `react.ts` to export new components and their props.
- Added documentation for `ChainProvider`, `ChainIcon`, and `ChainName` in `page.mdx`.
- Implemented tests for `TokenSymbol`, `ChainProvider`, `TokenProvider`, `ChainName`.
- Enhanced `ChainProvider` and `ChainIcon` components with new props and functionalities.
- Updated `ChainName` component to support custom name resolvers and formatting functions.
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
CNCT-2395
<img width="1161" alt="Screenshot 2024-11-22 at 9 52 09 PM" src="https://github.com/user-attachments/assets/e46f1645-11bb-42d5-abcf-147852a3e8ce">
<!-- start pr-codex -->
---
## PR-Codex overview
This PR primarily focuses on refactoring the analytics data handling by shifting the source of types from the `@/api/analytics` module to a new `types/analytics` module. This change enhances type definitions and improves code organization.
### Detailed summary
- Changed import paths for various analytics types to `types/analytics`.
- Added new interfaces in `apps/dashboard/src/types/analytics.ts` for `WalletStats`, `WalletUserStats`, `InAppWalletStats`, `EcosystemWalletStats`, `UserOpStats`, `RpcMethodStats`, and `AnalyticsQueryParams`.
- Updated multiple components and utilities to utilize the new type definitions.
- Implemented a new RPC method usage function in `apps/dashboard/src/@/api/analytics.ts`.
- Added `RpcMethodBarChartCard` component to visualize RPC method usage in `apps/dashboard/src/app/team/[team_slug]/[project_slug]/page.tsx`.
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
<!-- start pr-codex -->
## PR-Codex overview
This PR introduces support for custom chains in the `thirdweb Engine`, enhancing functionality by allowing users to add and manage their own EVM chains, including RPC URL overrides and related metadata.
### Detailed summary
- Added new section for `Custom Chains` in the documentation.
- Included images related to adding custom chains.
- Provided detailed instructions on overriding chain RPC URLs.
- Added examples for API requests to manage custom chains.
- Specified limitations and additional guidance for using custom chains.
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
## Problem solved
Short description of the bug fixed or feature added
<!-- start pr-codex -->
---
## PR-Codex overview
This PR focuses on enhancing the `MarkdownRenderer` component by updating its styling and structure, as well as adding comprehensive Storybook stories for better documentation and testing.
### Detailed summary
- Replaced padding props with a `className` in `MarkdownRenderer`.
- Updated styles for `inline-code` component.
- Added Storybook stories for `MarkdownRenderer`, including examples and parameters for desktop and mobile views.
- Improved the structure of the `MarkdownRenderer` component, including class-based styling and code highlighting features.
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
<!-- start pr-codex -->
---
## PR-Codex overview
This PR introduces a new component called `TextDivider` and integrates it into the `OnboardingChoosePlan` component. It also makes adjustments to the layout and button styles within `OnboardingChoosePlan`.
### Detailed summary
- Added `TextDivider` component in `TextDivider.tsx` for displaying a horizontal divider with text.
- Updated `OnboardingChoosePlan` to include `TextDivider` with the text "OR".
- Changed the grid gap from `md:gap-4` to `md:gap-5`.
- Replaced the previous button with a new styled button in `OnboardingChoosePlan`.
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
## Problem solved
Short description of the bug fixed or feature added
<!-- start pr-codex -->
---
## PR-Codex overview
This PR focuses on adding a `redirectPath` prop across various components in the onboarding and billing sections of the application, enhancing navigation after specific actions.
### Detailed summary
- Added `redirectPath` prop to `LazyOnboardingUI` in `LoginPage.tsx`.
- Introduced `redirectPath` in `OnboardingChoosePlan` component.
- Passed `redirectPath` from `OnboardingUI` to `OnboardingChoosePlan`.
- Updated `PricingCard` to accept and utilize `redirectPath`.
- Implemented `redirectPath` in the `BillingPricing` component for `PricingCard` instances.
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
## Problem solved
Short description of the bug fixed or feature added
<!-- start pr-codex -->
---
## PR-Codex overview
This PR focuses on refactoring the `UploadStep` component in `upload-step.tsx` to replace `Heading` and `Link` components with standard HTML elements like `p` and `a`, enhancing simplicity and readability.
### Detailed summary
- Replaced `Heading` components with `p` elements for text display.
- Changed `Link` components to `a` elements for file downloads.
- Updated class names for styling consistency.
- Simplified the conditional rendering structure.
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
NOTE:
This will not build - Recently the sidebar categories have been updated in the reference pages and this is creating issues with static build. Need to fix those errors
<!-- start pr-codex -->
---
## PR-Codex overview
This PR focuses on making adjustments to various files, including changing limits on data retrieval, modifying the structure of TypeScript types, and cleaning up the formatting of documentation.
### Detailed summary
- Changed `-limit` from `50` to `20` in `apps/portal/src/app/changelog/ghost.ts`.
- Removed `classes`, `variables`, `types`, and `enums` from `subgroups` in `apps/portal/src/app/references/components/TDoc/utils/subgroups.ts`.
- Cleaned up documentation text in `apps/portal/src/app/typescript/v5/chain/page.mdx`.
- Reformatted `PageProps` type definition in `apps/portal/src/app/references/components/TDoc/PageLayout.tsx` for better readability.
- Updated return type of `generateStaticParams` function to be more explicit in `apps/portal/src/app/references/components/TDoc/PageLayout.tsx`.
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
## Problem solved
Short description of the bug fixed or feature added
<!-- start pr-codex -->
---
## PR-Codex overview
This PR focuses on collecting and managing `utm_` cookies for tracking purposes during user login and middleware processing. It enhances the handling of cookies to ensure `utm_` parameters are captured and forwarded appropriately in API requests and redirects.
### Detailed summary
- Added collection of `utm_` cookies in `auth-actions.ts`.
- Modified the `doLogin` function to include `utmCookies` in the request body.
- Implemented logic in `middleware.ts` to capture `utm_` parameters from URL and set them as cookies.
- Updated redirect and rewrite functions to include `cookiesToSet` for managing cookies in responses.
- Ensured cookies are set in the response for various redirect scenarios.
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
## Problem solved
Short description of the bug fixed or feature added
<!-- start pr-codex -->
---
## PR-Codex overview
This PR reorganizes the onboarding-related components and types in the `apps/dashboard/src/app/login/onboarding` directory, improving the structure and imports. It also updates several import paths and refactors components for better clarity.
### Detailed summary
- Moved onboarding-related files to `apps/dashboard/src/app/login/onboarding`.
- Updated import paths for `isOnboardingComplete` to reflect the new structure.
- Refactored `PricingCard` import in `AccountForm.tsx` and `ChoosePlan.tsx`.
- Added `FeatureItem` component in `PricingCard`.
- Updated `useSkipOnboarding` and `ConfirmEmail` for new import paths.
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
## Problem solved
Short description of the bug fixed or feature added
<!-- start pr-codex -->
---
## PR-Codex overview
This PR primarily focuses on refactoring the logout functionality across various components by replacing direct API calls with a centralized `doLogout` function. It also includes some UI adjustments and enhancements.
### Detailed summary
- Removed direct API call to `/api/auth/logout` in favor of `doLogout()` in multiple components.
- Updated styles for various UI elements, including `AccountForm` and `OnboardingChoosePlan`.
- Adjusted layout and class names for better responsiveness and appearance.
- Added `Aurora` component for visual effects in the `LoginAndOnboardingPage`.
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
### TL;DR
Refactored ecosystem creation flow to use server actions and removed the confirmation dialog.
### What changed?
- Created a new server action `createEcosystem` to handle ecosystem creation
- Extracted `BASE_URL` constant for reusability
- Removed the confirmation dialog from the creation form
- Simplified form submission to directly create ecosystems
- Added more specific error handling with user-friendly toast messages
- Changed component props to use `teamSlug` instead of `ecosystemLayoutPath`
### How to test?
1. Navigate to the ecosystem creation page
2. Fill out the ecosystem form with a name and logo
3. Select permission type (PARTNER_WHITELIST or ANYONE)
4. Submit the form
5. Verify redirect to Stripe billing portal
6. Verify appropriate error messages display for various error scenarios
### Why make this change?
To streamline the ecosystem creation process by implementing server-side actions and providing better error handling. This change improves the user experience by removing the extra confirmation step while maintaining secure server-side processing of ecosystem creation.
<!-- start pr-codex -->
---
## PR-Codex overview
This PR focuses on refactoring the `EcosystemCreatePage` and related components to streamline the creation of ecosystems, updating function signatures, and improving the handling of the creation process.
### Detailed summary
- Removed `ecosystemLayoutPath` prop from `EcosystemCreatePage`.
- Added `teamSlug` prop to `EcosystemCreatePage` and `CreateEcosystemForm`.
- Updated `createEcosystem` function to handle authentication and API calls.
- Enhanced error handling in the `CreateEcosystemForm`.
- Removed unused imports and state management related to confirmation dialogs.
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
## Problem solved
Short description of the bug fixed or feature added
<!-- start pr-codex -->
---
## PR-Codex overview
This PR enhances the `NebulaWaitListPageUI` and related components by adding a `teamId` prop to improve link sharing functionality. It modifies how the invite link is generated and displayed, allowing users to share a personalized link tied to their team.
### Detailed summary
- Updated `Story` to pass `teamId="foo"` to `NebulaWaitListPageUI`.
- Modified `NebulaWaitListPageUI` to accept `teamId` as a prop.
- Enhanced `ShareButton` to accept `teamId` and generate a personalized invite link.
- Changed tooltip label for the share button to "Copy Invite Link".
- Updated footer in `NebulaWaitListPageUI` to include the personalized `ShareButton` and a message encouraging sharing.
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
## Problem solved
Short description of the bug fixed or feature added
<!-- start pr-codex -->
---
## PR-Codex overview
This PR focuses on improving the onboarding process and account management in the application. It introduces better handling of team retrieval, login redirection, and email confirmation, while also refining the UI components related to these features.
### Detailed summary
- Added optional chaining for `firstTeam` retrieval.
- Introduced `loginRedirect` function for consistent login handling.
- Created `getValidAccount` to enforce login and onboarding checks.
- Improved `Onboarding` components for better user experience.
- Enhanced email confirmation flow with clearer messaging.
- Updated various components to use new account and team management functions.
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
Move the chart data fetching inside suspense boundary with loading fallback to speed up page load
<!-- start pr-codex -->
---
## PR-Codex overview
This PR focuses on improving the layout and structure of several components in the dashboard, enhancing the user interface by adjusting styles and adding new features like loading states. It also refines the `TeamOverviewPage` to better handle data and display.
### Detailed summary
- Updated styles in `range-selector.tsx` for improved layout.
- Added `w-full` class in `EmptyState.tsx` for full-width section.
- Adjusted gap sizes in `AnalyticsHeader.tsx`.
- Modified `TeamOverviewPage` to include a loading state using `Suspense`.
- Introduced `OverviewPageContent` function to manage content rendering.
- Enhanced conditionals to simplify rendering logic in `TeamOverviewPage`.
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
## Problem solved
Short description of the bug fixed or feature added
<!-- start pr-codex -->
---
## PR-Codex overview
This PR focuses on enhancing the account settings functionality, including email confirmation and account updates, while improving error handling and user interactions.
### Detailed summary
- Added a new route for `/account/settings`.
- Improved onboarding logic for email confirmation.
- Updated waitlist joining logic to handle responses better.
- Enhanced `joinTeamWaitlist` and `updateAccount` actions with better error handling.
- Implemented email confirmation with OTP in `confirmEmailWithOTP`.
- Improved `AccountSettingsPage` to include email update functionalities.
- Added UI components for email verification and account updates.
- Refined error handling in various components for better user feedback.
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
## Problem solved
BLOCK-436
This PR adds an initial UI for insight to give visibility to insight in the platform. The first three blueprints are Data APIs available for all users. The next iteration will add the ability to create a new blueprint.
![CleanShot 2024-11-15 at [email protected]](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/dGj3ureqJk84bcvq1s10/8d0fb6d9-f80b-414a-925d-e6ed68aa6bfb.png)
---
## PR-Codex overview
This PR introduces a new `Insight` page under the project structure, adding components for displaying blueprints, including a header and an explorer. It also implements authentication redirection and a loading state for better user experience.
### Detailed summary
- Added a new route for `Insight` in `layout.tsx`.
- Created `BlueprintsPageHeader` component for the `Insight` page.
- Implemented `Page` component with authentication check and redirection logic.
- Developed `BlueprintsPage` component to display blueprints with a loading state.
- Created `getProjectBlueprints` function to fetch blueprint data.
- Added `BlueprintsExplorer` component to list blueprints with a fallback message.
- Implemented `BlueprintCard` for individual blueprint display.
- Included loading spinner in `Loading` component.
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
Linear Ticket: https://linear.app/thirdweb/issue/BLOCK-436/implement-initial-insight-ui
<!-- start pr-codex -->
---
## PR-Codex overview
This PR adds a new `Insight` page to the dashboard for a project, featuring a `BlueprintsPage` that displays blueprints and a header. It includes authentication checks and a redirect to the login page if the user is not authenticated.
### Detailed summary
- Added a new route for `Insight` in `layout.tsx`.
- Created `Page` component in `page.tsx` with authentication check.
- Added `BlueprintsPageHeader` component for the `Insight` page.
- Implemented `BlueprintsPage` to display billing alerts and blueprints.
- Created `getProjectBlueprints` function to fetch blueprint data.
- Developed `BlueprintsExplorer` component to list blueprints.
- Added `BlueprintCard` component to display individual blueprints.
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
Linear Ticket: https://linear.app/thirdweb/issue/BLOCK-436/implement-initial-insight-ui
<!-- start pr-codex -->
---
## PR-Codex overview
This PR introduces a new `Insight` feature to the dashboard, which includes a dedicated page for insights with blueprints and a header component. It also implements authentication checks and displays billing alerts.
### Detailed summary
- Added a new route for `Insight`.
- Created `Page` component with authentication check and redirection.
- Introduced `BlueprintsPage` component displaying billing alerts and blueprints.
- Implemented `BlueprintsPageHeader` with a disabled button.
- Added `BlueprintsExplorer` for listing blueprints.
- Defined `BlueprintCard` for individual blueprint display.
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
## Problem solved
Short description of the bug fixed or feature added
<!-- start pr-codex -->
---
## PR-Codex overview
This PR introduces new components related to token management in a React application, including `TokenProvider`, `TokenName`, `TokenSymbol`, and `TokenIcon`. These components allow users to fetch and display token-related data such as name, symbol, and icon.
### Detailed summary
- Added `Token` section in the sidebar with links to token components.
- Created `TokenProvider` for managing token data context.
- Implemented `TokenName`, `TokenSymbol`, and `TokenIcon` components for fetching and displaying token information.
- Exported new token-related types and components from `react.ts`.
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
cnct-2137
<!-- start pr-codex -->
---
## PR-Codex overview
This PR introduces a new `Account` component suite to the `thirdweb` library, enhancing user account management with features like account name, address, avatar, and balance display. It also marks existing `NFT` components as `@beta`.
### Detailed summary
- Added `Account` components: `AccountName`, `AccountAddress`, `AccountAvatar`, `AccountBalance`, and `AccountBlobbie`.
- Updated existing `NFT` components to `@beta`.
- Introduced tests for new `Account` components.
- Enhanced `AccountProvider` for context management.
- Updated documentation for new components and props.
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
## Problem solved
Short description of the bug fixed or feature added
<!-- start pr-codex -->
---
## PR-Codex overview
This PR focuses on restructuring and enhancing the documentation for various modular contract types in the `pre-built-modular` section, including updates to navigation, descriptions, and deployment steps.
### Detailed summary
- Renamed `Pre-built Contracts` to `Pre-built Modular` in the sidebar.
- Added detailed documentation for:
- `NFT Drop`
- `Token`
- `Token Drop`
- `Edition Drop`
- `Open Edition`
- `Edition`
- `NFT Collection`
- Included images and steps for deploying each contract type.
- Updated links and metadata for better navigation and user experience.
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
https://linear.app/thirdweb/issue/DEVX-1828/7-guides-for-contracts
<!-- end pr-codex -->
## Problem solved
Short description of the bug fixed or feature added
<!-- start pr-codex -->
---
## PR-Codex overview
This PR primarily focuses on refactoring the `NFT` component and its related functionalities to improve performance, enhance control over fetching logic, and simplify usage by removing the need for `React.Suspense`. It also introduces new props for better loading and error handling.
### Detailed summary
- Deleted several test files and an unused `NFT.tsx` file.
- Introduced `NFTProvider`, `NFTMedia`, `NFTName`, and `NFTDescription` components.
- Added `loadingComponent` and `fallbackComponent` props for better handling of loading states and errors.
- Updated references in tests to use new component structure.
- Renamed and adjusted documentation comments to reflect new functionality.
- Improved sidebar organization by updating links and names for consistency.
- Enhanced utility functions and hooks for better NFT data fetching and context management.
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->