SYMBOL INDEX (1043 symbols across 379 files) FILE: actions/account.ts function deleteAccount (line 11) | async function deleteAccount(): Promise> { FILE: actions/ai-usage.ts type Timeframe (line 25) | type Timeframe = z.infer; type UsageStats (line 28) | interface UsageStats { type ChartDataPoint (line 33) | interface ChartDataPoint { function recordAIUsage (line 40) | async function recordAIUsage(input: { function getMyUsageStats (line 76) | async function getMyUsageStats(timeframe: Timeframe): Promise { function getMyAllTimeRequestCount (line 104) | async function getMyAllTimeRequestCount(userId: string): Promise { function getMyUsageChartData (line 118) | async function getMyUsageChartData(timeframe: Timeframe): Promise { function getCurrentUserId (line 57) | async function getCurrentUserId(): Promise { function logError (line 69) | function logError(error: Error, context: Record) { function fetchCommunityThemesCore (line 91) | async function fetchCommunityThemesCore( function getCommunityThemes (line 248) | async function getCommunityThemes( function publishTheme (line 285) | async function publishTheme( function unpublishTheme (line 375) | async function unpublishTheme( function toggleLikeTheme (line 411) | async function toggleLikeTheme( function fetchCommunityDataForThemeCore (line 486) | async function fetchCommunityDataForThemeCore( function getCommunityDataForTheme (line 548) | async function getCommunityDataForTheme( function getMyPublishedThemeIds (line 570) | async function getMyPublishedThemeIds(): Promise { function updateCommunityThemeTags (line 586) | async function updateCommunityThemeTags( function getCommunityTagCounts (line 669) | async function getCommunityTagCounts(): Promise< FILE: actions/themes.ts function getCurrentUserId (line 25) | async function getCurrentUserId(): Promise { function logError (line 38) | function logError(error: Error, context: Record) { function getThemes (line 64) | async function getThemes() { function createTheme (line 108) | async function createTheme(formData: { name: string; styles: ThemeStyles... function updateTheme (line 157) | async function updateTheme(formData: { id: string; name?: string; styles... function deleteTheme (line 195) | async function deleteTheme(themeId: string) { FILE: app/(auth)/components/auth-dialog.tsx type AuthDialogProps (line 19) | interface AuthDialogProps { function getContextualCopy (line 28) | function getContextualCopy(actionType?: PostLoginActionType | null) { function AuthDialog (line 64) | function AuthDialog({ FILE: app/(legal)/layout.tsx type LegalLayoutProps (line 5) | interface LegalLayoutProps { function LegalLayout (line 9) | function LegalLayout({ children }: LegalLayoutProps) { FILE: app/(legal)/privacy-policy/page.tsx function PrivacyPolicyPage (line 8) | function PrivacyPolicyPage() { FILE: app/ai/components/ai-announcement.tsx function AIAnnouncement (line 7) | function AIAnnouncement() { FILE: app/ai/components/ai-chat-form.tsx function AIChatForm (line 18) | function AIChatForm({ FILE: app/ai/components/ai-chat-hero.tsx function AIChatHero (line 15) | function AIChatHero() { FILE: app/ai/components/chat-heading.tsx function ChatHeading (line 1) | function ChatHeading({ isGeneratingTheme }: { isGeneratingTheme: boolean... FILE: app/ai/components/community-theme-card.tsx type SwatchDefinition (line 12) | type SwatchDefinition = { function CommunityThemeCard (line 28) | function CommunityThemeCard({ themePreset }: { themePreset: ThemePreset ... function CommunityThemeCardSkeleton (line 108) | function CommunityThemeCardSkeleton() { FILE: app/ai/components/community-themes.tsx function CommunityThemes (line 14) | async function CommunityThemes() { type CommunityThemeCardsProps (line 48) | interface CommunityThemeCardsProps { function CommunityThemeCards (line 52) | async function CommunityThemeCards({ themePresetsPromise }: CommunityThe... FILE: app/ai/components/suggested-pill-actions.tsx function SuggestedPillActions (line 13) | function SuggestedPillActions({ FILE: app/ai/layout.tsx function AiLayout (line 3) | function AiLayout({ children }: { children: React.ReactNode }) { FILE: app/ai/loading.tsx function AiLoading (line 3) | function AiLoading() { FILE: app/ai/page.tsx function AiPage (line 14) | function AiPage() { FILE: app/api/enhance-prompt/route.ts function POST (line 10) | async function POST(req: NextRequest) { FILE: app/api/generate-theme/route.ts function POST (line 22) | async function POST(req: NextRequest) { FILE: app/api/google-fonts/route.ts function GET (line 11) | async function GET(request: NextRequest) { FILE: app/api/oauth/app-info/route.ts function GET (line 7) | async function GET(req: NextRequest) { FILE: app/api/oauth/authorize/route.ts function GET (line 17) | async function GET(req: NextRequest) { FILE: app/api/oauth/revoke/route.ts function POST (line 7) | async function POST(req: NextRequest) { FILE: app/api/oauth/token/route.ts function POST (line 13) | async function POST(req: NextRequest) { function handleAuthorizationCode (line 32) | async function handleAuthorizationCode(body: FormData) { function handleRefreshToken (line 119) | async function handleRefreshToken(body: FormData) { FILE: app/api/oauth/userinfo/route.ts function GET (line 12) | async function GET(req: NextRequest) { FILE: app/api/subscription/route.ts function GET (line 6) | async function GET(request: NextRequest) { FILE: app/api/v1/me/route.ts function GET (line 7) | async function GET(req: NextRequest) { FILE: app/api/v1/themes/[themeId]/route.ts function GET (line 7) | async function GET( FILE: app/api/v1/themes/route.ts function GET (line 7) | async function GET(req: NextRequest) { FILE: app/api/webhook/polar/route.ts function safeParseDate (line 5) | function safeParseDate(value: string | Date | null | undefined): Date | ... constant POST (line 15) | const POST = Webhooks({ FILE: app/community/components/community-sidebar.tsx type CommunitySidebarProps (line 10) | interface CommunitySidebarProps { function CommunitySidebarContent (line 23) | function CommunitySidebarContent({ FILE: app/community/components/community-theme-card.tsx type CommunityThemeCardProps (line 15) | interface CommunityThemeCardProps { function CommunityThemeCard (line 20) | function CommunityThemeCard({ theme, onPreview }: CommunityThemeCardProp... FILE: app/community/components/community-theme-preview-dialog.tsx type CommunityThemePreviewDialogProps (line 26) | interface CommunityThemePreviewDialogProps { function CommunityThemePreviewDialog (line 34) | function CommunityThemePreviewDialog({ FILE: app/community/components/community-themes-content.tsx function CommunityThemesContent (line 64) | function CommunityThemesContent() { FILE: app/community/layout.tsx function CommunityLayout (line 4) | function CommunityLayout({ FILE: app/community/page.tsx function CommunityPage (line 24) | function CommunityPage() { FILE: app/dashboard/layout.tsx function DashboardLayout (line 4) | function DashboardLayout({ children }: { children: React.ReactNode }) { FILE: app/dashboard/loading.tsx function DashboardLoading (line 3) | function DashboardLoading() { FILE: app/dashboard/page.tsx function DashboardRedirect (line 4) | function DashboardRedirect() { FILE: app/editor/theme/[[...themeId]]/layout.tsx function EditorLayout (line 3) | function EditorLayout({ children }: { children: React.ReactNode }) { FILE: app/editor/theme/[[...themeId]]/loading.tsx function EditorLoading (line 3) | function EditorLoading() { FILE: app/editor/theme/[[...themeId]]/page.tsx function EditorPage (line 11) | async function EditorPage({ params }: { params: Promise<{ themeId: strin... FILE: app/figma/layout.tsx function FigmaLayout (line 39) | function FigmaLayout({ children }: { children: React.ReactNode }) { FILE: app/figma/page.tsx function FigmaPage (line 15) | function FigmaPage() { FILE: app/layout.tsx function RootLayout (line 54) | function RootLayout({ children }: { children: React.ReactNode }) { FILE: app/not-found.tsx function NotFound (line 12) | function NotFound() { FILE: app/oauth/authorize/page.tsx constant SCOPE_LABELS (line 11) | const SCOPE_LABELS: Record = { function OAuthAuthorizePage (line 16) | function OAuthAuthorizePage() { FILE: app/page.tsx function Home (line 15) | function Home() { FILE: app/pricing/components/checkout-button.tsx type CheckoutButtonProps (line 16) | interface CheckoutButtonProps extends ComponentProps {} function CheckoutButton (line 18) | function CheckoutButton({ disabled, className, ...props }: CheckoutButto... FILE: app/pricing/layout.tsx function PricingLayout (line 4) | function PricingLayout({ children }: { children: React.ReactNode }) { FILE: app/pricing/page.tsx function PricingPage (line 24) | function PricingPage() { constant PRICING_FAQS (line 192) | const PRICING_FAQS = [ FILE: app/r/themes/[id]/route.ts function GET (line 11) | async function GET(_req: Request, { params }: { params: Promise<{ id: st... FILE: app/r/v0/[id]/route.ts function GET (line 8) | async function GET(_req: Request, { params }: { params: Promise<{ id: st... FILE: app/settings/account/components/delete-account-section.tsx constant CONFIRMATION_TEXT (line 22) | const CONFIRMATION_TEXT = "DELETE"; function DeleteAccountSection (line 24) | function DeleteAccountSection() { FILE: app/settings/account/page.tsx function AccountPage (line 7) | async function AccountPage() { FILE: app/settings/components/customer-portal-link.tsx function CustomerPortalLink (line 7) | async function CustomerPortalLink() { FILE: app/settings/components/settings-header.tsx function SettingsHeader (line 1) | function SettingsHeader({ title, description }: { title: string; descrip... FILE: app/settings/components/settings-sidebar.tsx type NavItem (line 11) | type NavItem = constant BASE_NAV_ITEMS (line 24) | const BASE_NAV_ITEMS: NavItem[] = [ function SettingsSidebar (line 42) | function SettingsSidebar() { FILE: app/settings/components/theme-card.tsx type ThemeCardProps (line 58) | interface ThemeCardProps { function ThemeCard (line 64) | function ThemeCard({ FILE: app/settings/components/themes-list.tsx type ThemeWithPublished (line 18) | interface ThemeWithPublished extends Theme { type ThemesListProps (line 22) | interface ThemesListProps { function ThemesList (line 26) | function ThemesList({ themes }: ThemesListProps) { FILE: app/settings/components/usage-stats.tsx type Timeframe (line 17) | type Timeframe = "1d" | "7d" | "30d"; type UsageStats (line 19) | interface UsageStats { type ChartDataPoint (line 24) | interface ChartDataPoint { function UsageStats (line 44) | function UsageStats() { FILE: app/settings/components/user-info.tsx function UserInfo (line 7) | function UserInfo() { FILE: app/settings/layout.tsx function SettingsLayout (line 8) | async function SettingsLayout({ children }: { children: React.ReactNode ... FILE: app/settings/page.tsx function SettingsIndex (line 5) | async function SettingsIndex() { FILE: app/settings/portal/route.ts constant GET (line 5) | const GET = CustomerPortal({ FILE: app/settings/themes/page.tsx function ThemesPage (line 12) | async function ThemesPage() { FILE: app/settings/usage/page.tsx function UsagePage (line 7) | async function UsagePage() { FILE: app/sitemap.ts function sitemap (line 3) | function sitemap(): MetadataRoute.Sitemap { FILE: app/success/layout.tsx function SuccessLayout (line 1) | function SuccessLayout({ children }: { children: React.ReactNode }) { FILE: app/success/page.tsx function SuccessPage (line 14) | function SuccessPage() { FILE: app/themes/[themeId]/error.tsx function ThemeError (line 7) | function ThemeError({ FILE: app/themes/[themeId]/layout.tsx function ThemeLayout (line 4) | function ThemeLayout({ children }: { children: React.ReactNode }) { FILE: app/themes/[themeId]/loading.tsx function ThemeLoading (line 3) | function ThemeLoading() { FILE: app/themes/[themeId]/not-found.tsx function ThemeNotFound (line 4) | function ThemeNotFound() { FILE: app/themes/[themeId]/opengraph-image.tsx function Image (line 13) | async function Image({ FILE: app/themes/[themeId]/page.tsx type ThemePageProps (line 6) | interface ThemePageProps { function generateMetadata (line 12) | async function generateMetadata({ params }: ThemePageProps): Promise & { type CodeBlockCopyButtonProps (line 78) | type CodeBlockCopyButtonProps = ComponentProps & { FILE: components/ai-elements/conversation.tsx type ConversationProps (line 10) | type ConversationProps = ComponentProps; type ConversationContentProps (line 22) | type ConversationContentProps = ComponentProps; FILE: components/ai-elements/response.tsx type ResponseProps (line 7) | type ResponseProps = ComponentProps; FILE: components/auth-dialog-wrapper.tsx function AuthDialogWrapper (line 10) | function AuthDialogWrapper() { FILE: components/block-viewer.tsx type BlockViewerContext (line 11) | type BlockViewerContext = { function useBlockViewer (line 19) | function useBlockViewer() { function BlockViewerProvider (line 27) | function BlockViewerProvider({ children }: { children: React.ReactNode }) { function BlockViewer (line 44) | function BlockViewer({ function BlockViewerToolbar (line 68) | function BlockViewerToolbar({ function BlockViewerDisplay (line 120) | function BlockViewerDisplay({ FILE: components/copy-button.tsx type CopyButtonProps (line 10) | interface CopyButtonProps extends ComponentProps { function CopyButton (line 18) | function CopyButton({ textToCopy, successMessage, className, ...props }:... FILE: components/debug-button.tsx type DebugButtonProps (line 6) | interface DebugButtonProps extends React.ComponentProps { function DebugButton (line 12) | function DebugButton({ className, debug = isDevMode, ...props }: DebugBu... FILE: components/dynamic-font-loader.tsx function DynamicFontLoader (line 9) | function DynamicFontLoader() { FILE: components/dynamic-website-preview.tsx constant SCRIPT_URL (line 47) | const SCRIPT_URL = "https://tweakcn.com/live-preview.min.js"; constant HTML_SNIPPET (line 50) | const HTML_SNIPPET = `\n