{
	"$schema": "https://ui.shadcn.com/schema/registry-item.json",
	"name": "app-03",
	"type": "registry:block",
	"description": "An X profile bio generator app.",
	"dependencies": ["ai", "@ai-sdk/openai", "zod", "next-themes"],
	"registryDependencies": [
		"button",
		"dialog",
		"input",
		"textarea",
		"form",
		"label",
		"select",
		"skeleton",
		"avatar"
	],
	"files": [
		{
			"path": "./src/registry/blocks/app-03/page.tsx",
			"content": "\"use client\";\n\nimport { useCompletion } from \"@ai-sdk/react\";\nimport type { DeepPartial } from \"ai\";\nimport { useEffect, useState } from \"react\";\nimport type { z } from \"zod\";\nimport { ProfileGenerateDialog } from \"@/registry/blocks/app-03/components/profile-generate-dialog\";\nimport { Toolbar } from \"@/registry/blocks/app-03/components/toolbar\";\nimport { XPreview } from \"@/registry/blocks/app-03/components/x-preview\";\nimport type {\n\tprofileGenerationSchema,\n\tXProfile,\n} from \"@/registry/blocks/app-03/lib/x\";\n\nexport default function XProfileGenerator() {\n\tconst [profile, setProfile] = useState<DeepPartial<XProfile>>({});\n\n\tconst { isLoading, complete, completion } = useCompletion({\n\t\tapi: \"/api/ai/x-profile\",\n\t\tonFinish: (_prompt, completion) => {\n\t\t\tsetProfile((profile) => ({\n\t\t\t\t...profile,\n\t\t\t\tbio: completion,\n\t\t\t}));\n\t\t},\n\t\texperimental_throttle: 90,\n\t});\n\n\tuseEffect(() => {\n\t\tif (completion) {\n\t\t\tsetProfile((profile) => ({\n\t\t\t\t...profile,\n\t\t\t\tbio: completion,\n\t\t\t}));\n\t\t}\n\t}, [completion]);\n\n\tfunction onSubmit(values: z.infer<typeof profileGenerationSchema>) {\n\t\tsetProfile({\n\t\t\tdisplayName: values.displayName,\n\t\t\tusername: values.username,\n\t\t});\n\t\tcomplete(JSON.stringify(values));\n\t}\n\n\treturn (\n\t\t<div className=\"min-h-screen bg-black text-white\">\n\t\t\t<Toolbar />\n\t\t\t<XPreview\n\t\t\t\tprofile={profile}\n\t\t\t\tisLoading={isLoading}\n\t\t\t\tgenerateDialog={<ProfileGenerateDialog onSubmit={onSubmit} />}\n\t\t\t/>\n\t\t</div>\n\t);\n}\n",
			"type": "registry:page",
			"target": "app/x-profile/page.tsx"
		},
		{
			"path": "./src/registry/blocks/app-03/layout.tsx",
			"content": "import { ThemeProvider } from \"next-themes\";\nimport type { ReactNode } from \"react\";\n\ninterface ThemeProviderLayoutProps {\n\tchildren: ReactNode;\n}\n\nexport default function ThemeProviderLayout({\n\tchildren,\n}: ThemeProviderLayoutProps) {\n\treturn (\n\t\t<ThemeProvider\n\t\t\tattribute=\"class\"\n\t\t\tdefaultTheme=\"system\"\n\t\t\tenableSystem\n\t\t\tdisableTransitionOnChange\n\t\t\tenableColorScheme\n\t\t>\n\t\t\t{children}\n\t\t</ThemeProvider>\n\t);\n}\n",
			"type": "registry:page",
			"target": "app/x-profile/layout.tsx"
		},
		{
			"path": "./src/registry/blocks/app-03/route.ts",
			"content": "import { openai } from \"@ai-sdk/openai\";\nimport { streamText } from \"ai\";\n\nexport async function POST(req: Request) {\n\tconst { prompt }: { prompt: string } = await req.json();\n\n\tconst result = streamText({\n\t\tmodel: openai(\"gpt-4o-mini\"),\n\t\tsystem: `\n<internal_reminder>\n\t<assistant_info>\n\t\t- Your task is to generate a bio for an X profile\n\t\t- You will receive: name, username, about them, and generation type\n\t\t- Generation types: fun, professional, casual, technical, creative\n\t</assistant_info>\n\n\t<forming_correct_responses>\n\t\t- Respond ONLY with the bio text (no quotes, no markdown)\n\t\t- Include username handle (@example) if it fits naturally\n\t\t- Style guidelines:\n\t\t\t• Fun: Use emojis, puns, humor\n\t\t\t• Professional: Formal tone, job titles, achievements\n\t\t\t• Casual: Conversational, minimal emojis\n\t\t\t• Technical: Jargon, specs, certifications\n\t\t\t• Creative: Metaphors, wordplay, unique structures\n\t</forming_correct_responses>\n\n\t<examples>\n\t\t<example>\n\t\t\t<input>\n\t\t\t\tName: Sarah Johnson\n\t\t\t\tUsername: @CodeAdventurer\n\t\t\t\tAbout: Software developer passionate about AI and hiking\n\t\t\t\tMode: Fun\n\t\t\t</input>\n\t\t\t<output>🚀 AI whisperer | 👩💻 Code chef | 🌲 Trail conqueror | Brewing bugs into features ☕️ @CodeAdventurer</output>\n\t\t</example>\n\n\t\t<example>\n\t\t\t<input>\n\t\t\t\tName: Dr. Michael Tan\n\t\t\t\tUsername: @FinStrategist\n\t\t\t\tAbout: Financial advisor with 15 years experience\n\t\t\t\tMode: Professional\n\t\t\t</input>\n\t\t\t<output>CFA | Senior Financial Strategist @WealthCorp | Portfolio Optimization Expert | 15+ Years Market Experience @FinStrategist</output>\n\t\t</example>\n\n\t\t<example>\n\t\t\t<input>\n\t\t\t\tName: Emma Lee\n\t\t\t\tUsername: @PixelArtist\n\t\t\t\tAbout: Digital artist specializing in anime styles\n\t\t\t\tMode: Creative\n\t\t\t</input>\n\t\t\t<output>🎨 Breathing life into pixels | Anime dimensions explorer | ✨ Digital dream weaver | \"Colors speak louder than words\" @PixelArtist</output>\n\t\t</example>\n\t</examples>\n</internal_reminder>\n`,\n\t\tprompt: prompt,\n\t});\n\n\treturn result.toTextStreamResponse();\n}\n",
			"type": "registry:page",
			"target": "app/api/ai/x-profile/route.ts"
		},
		{
			"path": "./src/registry/blocks/app-03/components/profile-generate-dialog.tsx",
			"content": "\"use client\";\n\nimport { zodResolver } from \"@hookform/resolvers/zod\";\nimport { useState } from \"react\";\nimport { Controller, useForm } from \"react-hook-form\";\nimport type { z } from \"zod\";\nimport { Button } from \"@/components/ui/button\";\nimport {\n\tDialog,\n\tDialogContent,\n\tDialogHeader,\n\tDialogTitle,\n\tDialogTrigger,\n} from \"@/components/ui/dialog\";\nimport {\n\tField,\n\tFieldError,\n\tFieldGroup,\n\tFieldLabel,\n} from \"@/components/ui/field\";\nimport { Input } from \"@/components/ui/input\";\nimport {\n\tSelect,\n\tSelectContent,\n\tSelectItem,\n\tSelectTrigger,\n\tSelectValue,\n} from \"@/components/ui/select\";\nimport { Textarea } from \"@/components/ui/textarea\";\nimport { getRandomExample } from \"@/registry/blocks/app-03/lib/profile-examples\";\nimport { profileGenerationSchema } from \"@/registry/blocks/app-03/lib/x\";\n\ninterface ProfileGenerateDialogProps {\n\tonSubmit: (values: z.infer<typeof profileGenerationSchema>) => void;\n}\n\nexport function ProfileGenerateDialog({\n\tonSubmit,\n}: ProfileGenerateDialogProps) {\n\tconst [dialogOpen, setDialogOpen] = useState(true);\n\n\tconst form = useForm<z.infer<typeof profileGenerationSchema>>({\n\t\tresolver: zodResolver(profileGenerationSchema),\n\t\tdefaultValues: {\n\t\t\tdisplayName: \"\",\n\t\t\tusername: \"\",\n\t\t\taboutYou: \"\",\n\t\t\tgenerationType: \"fun\",\n\t\t},\n\t});\n\n\tconst handleRandomize = () => {\n\t\tconst example = getRandomExample();\n\t\tform.reset(example);\n\t};\n\n\treturn (\n\t\t<Dialog open={dialogOpen} onOpenChange={setDialogOpen}>\n\t\t\t<DialogTrigger asChild>\n\t\t\t\t<button\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tclassName=\"px-4 py-2 rounded-full border border-gray-300 dark:border-gray-600 font-bold hover:bg-gray-100 dark:hover:bg-zinc-800\"\n\t\t\t\t>\n\t\t\t\t\tGenerate your X bio\n\t\t\t\t</button>\n\t\t\t</DialogTrigger>\n\n\t\t\t<DialogContent className=\"max-w-[95vw] md:max-w-2xl\">\n\t\t\t\t<DialogHeader>\n\t\t\t\t\t<DialogTitle>Generate your X bio</DialogTitle>\n\t\t\t\t</DialogHeader>\n\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"outline\"\n\t\t\t\t\tonClick={handleRandomize}\n\t\t\t\t\tclassName=\"group\"\n\t\t\t\t>\n\t\t\t\t\t<span className=\"mr-2 group-hover:animate-spin\">🎲</span>\n\t\t\t\t\tTry Random Example\n\t\t\t\t</Button>\n\n\t\t\t\t<form\n\t\t\t\t\tid=\"user-persona-demo-form\"\n\t\t\t\t\tonSubmit={form.handleSubmit((values) => {\n\t\t\t\t\t\tonSubmit(values);\n\t\t\t\t\t\tsetDialogOpen(false);\n\t\t\t\t\t})}\n\t\t\t\t\tclassName=\"space-y-4\"\n\t\t\t\t>\n\t\t\t\t\t<FieldGroup>\n\t\t\t\t\t\t<Controller\n\t\t\t\t\t\t\tname=\"displayName\"\n\t\t\t\t\t\t\tcontrol={form.control}\n\t\t\t\t\t\t\trender={({ field, fieldState }) => (\n\t\t\t\t\t\t\t\t<Field data-invalid={fieldState.invalid}>\n\t\t\t\t\t\t\t\t\t<FieldLabel htmlFor=\"user-persona-demo-displayName\">\n\t\t\t\t\t\t\t\t\t\tDisplay Name\n\t\t\t\t\t\t\t\t\t</FieldLabel>\n\t\t\t\t\t\t\t\t\t<Input\n\t\t\t\t\t\t\t\t\t\t{...field}\n\t\t\t\t\t\t\t\t\t\tid=\"user-persona-demo-displayName\"\n\t\t\t\t\t\t\t\t\t\taria-invalid={fieldState.invalid}\n\t\t\t\t\t\t\t\t\t\tplaceholder=\"John Doe\"\n\t\t\t\t\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t{fieldState.invalid && (\n\t\t\t\t\t\t\t\t\t\t<FieldError\n\t\t\t\t\t\t\t\t\t\t\terrors={[fieldState.error]}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</Field>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t<Controller\n\t\t\t\t\t\t\tname=\"username\"\n\t\t\t\t\t\t\tcontrol={form.control}\n\t\t\t\t\t\t\trender={({ field, fieldState }) => (\n\t\t\t\t\t\t\t\t<Field data-invalid={fieldState.invalid}>\n\t\t\t\t\t\t\t\t\t<FieldLabel htmlFor=\"user-persona-demo-username\">\n\t\t\t\t\t\t\t\t\t\tUsername\n\t\t\t\t\t\t\t\t\t</FieldLabel>\n\t\t\t\t\t\t\t\t\t<Input\n\t\t\t\t\t\t\t\t\t\t{...field}\n\t\t\t\t\t\t\t\t\t\tid=\"user-persona-demo-username\"\n\t\t\t\t\t\t\t\t\t\taria-invalid={fieldState.invalid}\n\t\t\t\t\t\t\t\t\t\tplaceholder=\"johndoe\"\n\t\t\t\t\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t{fieldState.invalid && (\n\t\t\t\t\t\t\t\t\t\t<FieldError\n\t\t\t\t\t\t\t\t\t\t\terrors={[fieldState.error]}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</Field>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t<Controller\n\t\t\t\t\t\t\tname=\"aboutYou\"\n\t\t\t\t\t\t\tcontrol={form.control}\n\t\t\t\t\t\t\trender={({ field, fieldState }) => (\n\t\t\t\t\t\t\t\t<Field data-invalid={fieldState.invalid}>\n\t\t\t\t\t\t\t\t\t<FieldLabel htmlFor=\"user-persona-demo-aboutYou\">\n\t\t\t\t\t\t\t\t\t\tAbout You\n\t\t\t\t\t\t\t\t\t</FieldLabel>\n\t\t\t\t\t\t\t\t\t<Textarea\n\t\t\t\t\t\t\t\t\t\t{...field}\n\t\t\t\t\t\t\t\t\t\tid=\"user-persona-demo-aboutYou\"\n\t\t\t\t\t\t\t\t\t\taria-invalid={fieldState.invalid}\n\t\t\t\t\t\t\t\t\t\tplaceholder=\"Tell us about yourself...\"\n\t\t\t\t\t\t\t\t\t\tclassName=\"resize-none\"\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t{fieldState.invalid && (\n\t\t\t\t\t\t\t\t\t\t<FieldError\n\t\t\t\t\t\t\t\t\t\t\terrors={[fieldState.error]}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</Field>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<Controller\n\t\t\t\t\t\t\tname=\"generationType\"\n\t\t\t\t\t\t\tcontrol={form.control}\n\t\t\t\t\t\t\trender={({ field, fieldState }) => (\n\t\t\t\t\t\t\t\t<Field data-invalid={fieldState.invalid}>\n\t\t\t\t\t\t\t\t\t<FieldLabel htmlFor=\"user-persona-demo-generationType\">\n\t\t\t\t\t\t\t\t\t\tGeneration Type\n\t\t\t\t\t\t\t\t\t</FieldLabel>\n\n\t\t\t\t\t\t\t\t\t<Select\n\t\t\t\t\t\t\t\t\t\tvalue={field.value}\n\t\t\t\t\t\t\t\t\t\tonValueChange={field.onChange}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<SelectTrigger>\n\t\t\t\t\t\t\t\t\t\t\t<SelectValue placeholder=\"Select a generation type\" />\n\t\t\t\t\t\t\t\t\t\t</SelectTrigger>\n\n\t\t\t\t\t\t\t\t\t\t<SelectContent>\n\t\t\t\t\t\t\t\t\t\t\t<SelectItem value=\"fun\">\n\t\t\t\t\t\t\t\t\t\t\t\t🎉 Fun\n\t\t\t\t\t\t\t\t\t\t\t</SelectItem>\n\t\t\t\t\t\t\t\t\t\t\t<SelectItem value=\"professional\">\n\t\t\t\t\t\t\t\t\t\t\t\t👨‍💻 Professional\n\t\t\t\t\t\t\t\t\t\t\t</SelectItem>\n\t\t\t\t\t\t\t\t\t\t\t<SelectItem value=\"casual\">\n\t\t\t\t\t\t\t\t\t\t\t\t👋 Casual\n\t\t\t\t\t\t\t\t\t\t\t</SelectItem>\n\t\t\t\t\t\t\t\t\t\t\t<SelectItem value=\"technical\">\n\t\t\t\t\t\t\t\t\t\t\t\t💻 Technical\n\t\t\t\t\t\t\t\t\t\t\t</SelectItem>\n\t\t\t\t\t\t\t\t\t\t\t<SelectItem value=\"creative\">\n\t\t\t\t\t\t\t\t\t\t\t\t🎨 Creative\n\t\t\t\t\t\t\t\t\t\t\t</SelectItem>\n\t\t\t\t\t\t\t\t\t\t</SelectContent>\n\t\t\t\t\t\t\t\t\t</Select>\n\t\t\t\t\t\t\t\t\t{fieldState.invalid && (\n\t\t\t\t\t\t\t\t\t\t<FieldError\n\t\t\t\t\t\t\t\t\t\t\terrors={[fieldState.error]}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</Field>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FieldGroup>\n\t\t\t\t\t<Field orientation=\"horizontal\">\n\t\t\t\t\t\t<Button type=\"submit\">Generate</Button>\n\t\t\t\t\t</Field>\n\t\t\t\t</form>\n\t\t\t</DialogContent>\n\t\t</Dialog>\n\t);\n}\n",
			"type": "registry:component"
		},
		{
			"path": "./src/registry/blocks/app-03/components/x-preview.tsx",
			"content": "\"use client\";\n\nimport type { DeepPartial } from \"ai\";\nimport {\n\tBookmarkIcon,\n\tCalendar,\n\tChartNoAxesColumn,\n\tHeart,\n\tLink as LinkIcon,\n\tMapPin,\n\tMessageCircle,\n\tRepeat2,\n\tShare,\n} from \"lucide-react\";\nimport type { ReactNode } from \"react\";\nimport { Avatar, AvatarFallback } from \"@/components/ui/avatar\";\nimport { Skeleton } from \"@/components/ui/skeleton\";\nimport { cn } from \"@/lib/utils\";\nimport type { XProfile } from \"@/registry/blocks/app-03/lib/x\";\n\nfunction DisplayLoader({\n\tvalue,\n\tisLoading,\n\twidth,\n\tforceLoading = true,\n}: {\n\tvalue?: string | number | ReactNode;\n\twidth?: string;\n\tisLoading: boolean;\n\tforceLoading?: boolean;\n}) {\n\treturn (\n\t\t<>\n\t\t\t{isLoading && (value === undefined || forceLoading) ? (\n\t\t\t\t<Skeleton className={cn(\"h-4 w-10\", width)} />\n\t\t\t) : isLoading || value !== undefined ? (\n\t\t\t\tvalue\n\t\t\t) : (\n\t\t\t\t\"-\"\n\t\t\t)}\n\t\t</>\n\t);\n}\n\nexport function XPreview({\n\tprofile,\n\tisLoading = false,\n\tgenerateDialog,\n}: {\n\tprofile: DeepPartial<XProfile>;\n\tisLoading?: boolean;\n\tgenerateDialog: ReactNode;\n}) {\n\treturn (\n\t\t<div className=\"bg-white dark:bg-black text-black dark:text-white\">\n\t\t\t<div className=\"max-w-7xl mx-auto flex\">\n\t\t\t\t<div className=\"flex w-full\">\n\t\t\t\t\t<aside className=\"hidden lg:flex flex-col w-[275px] min-w-[275px] p-4 pr-6 sticky top-0 h-screen\">\n\t\t\t\t\t\t<nav className=\"space-y-4\">\n\t\t\t\t\t\t\t<div className=\"h-12 w-12 bg-gray-100 dark:bg-zinc-800 rounded-lg\" />\n\t\t\t\t\t\t\t{[...Array(7)].map((_, i) => (\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t// biome-ignore lint/suspicious/noArrayIndexKey: false positive\n\t\t\t\t\t\t\t\t\tkey={i}\n\t\t\t\t\t\t\t\t\tclassName=\"h-8 bg-gray-100 dark:bg-zinc-800 rounded-lg\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t<div className=\"h-10 bg-gray-100 dark:bg-zinc-800 rounded-lg\" />\n\t\t\t\t\t\t</nav>\n\t\t\t\t\t</aside>\n\n\t\t\t\t\t<main className=\"flex-1 min-h-screen border-x border-gray-200 dark:border-zinc-800\">\n\t\t\t\t\t\t<div className=\"relative\">\n\t\t\t\t\t\t\t<div className=\"relative h-48 bg-gray-100 dark:bg-zinc-800 overflow-hidden\">\n\t\t\t\t\t\t\t\t<div className=\"absolute inset-0 bg-gradient-to-r dark:from-zinc-800 dark:to-zinc-900 from-zinc-200 to-zinc-300\" />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div className=\"p-6\">\n\t\t\t\t\t\t\t\t<div className=\"relative\">\n\t\t\t\t\t\t\t\t\t<div className=\"absolute -top-[100px]\">\n\t\t\t\t\t\t\t\t\t\t<Avatar className=\"h-36 w-36 border-4 border-white dark:border-black\">\n\t\t\t\t\t\t\t\t\t\t\t<AvatarFallback>\n\t\t\t\t\t\t\t\t\t\t\t\t{profile.displayName?.[0]}\n\t\t\t\t\t\t\t\t\t\t\t</AvatarFallback>\n\t\t\t\t\t\t\t\t\t\t</Avatar>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<div className=\"flex justify-end mb-4\">\n\t\t\t\t\t\t\t\t\t\t{generateDialog}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<div className=\"mt-6\">\n\t\t\t\t\t\t\t\t\t\t<h4 className=\"font-bold text-xl mb-2\">\n\t\t\t\t\t\t\t\t\t\t\t<DisplayLoader\n\t\t\t\t\t\t\t\t\t\t\t\tvalue={profile.displayName}\n\t\t\t\t\t\t\t\t\t\t\t\tisLoading={isLoading}\n\t\t\t\t\t\t\t\t\t\t\t\twidth=\"w-20\"\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</h4>\n\t\t\t\t\t\t\t\t\t\t<span className=\"flex items-center text-gray-500\">\n\t\t\t\t\t\t\t\t\t\t\t@\n\t\t\t\t\t\t\t\t\t\t\t<DisplayLoader\n\t\t\t\t\t\t\t\t\t\t\t\tvalue={profile.username}\n\t\t\t\t\t\t\t\t\t\t\t\tisLoading={isLoading}\n\t\t\t\t\t\t\t\t\t\t\t\twidth=\"w-10\"\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t<p className=\"mt-4\">\n\t\t\t\t\t\t\t\t\t\t\t<DisplayLoader\n\t\t\t\t\t\t\t\t\t\t\t\tvalue={profile.bio}\n\t\t\t\t\t\t\t\t\t\t\t\tisLoading={isLoading}\n\t\t\t\t\t\t\t\t\t\t\t\tforceLoading={false}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</p>\n\n\t\t\t\t\t\t\t\t\t\t<div className=\"flex flex-wrap gap-x-4 mt-2 text-gray-500\">\n\t\t\t\t\t\t\t\t\t\t\t<span className=\"flex items-center gap-1\">\n\t\t\t\t\t\t\t\t\t\t\t\t<MapPin size={16} />\n\t\t\t\t\t\t\t\t\t\t\t\tWorld\n\t\t\t\t\t\t\t\t\t\t\t</span>\n\n\t\t\t\t\t\t\t\t\t\t\t<span className=\"flex items-center gap-1\">\n\t\t\t\t\t\t\t\t\t\t\t\t<LinkIcon size={16} />\n\t\t\t\t\t\t\t\t\t\t\t\t<span className=\"inline text-[#1d9bf0] lowercase\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<DisplayLoader\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tprofile.username\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? `${profile.username}.com`\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth=\"w-24\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tisLoading={isLoading}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t</span>\n\n\t\t\t\t\t\t\t\t\t\t\t<span className=\"flex items-center gap-1\">\n\t\t\t\t\t\t\t\t\t\t\t\t<Calendar size={16} />\n\t\t\t\t\t\t\t\t\t\t\t\t<DisplayLoader\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue=\"Joined January 2025\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tisLoading={isLoading}\n\t\t\t\t\t\t\t\t\t\t\t\t\twidth=\"w-20\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tforceLoading\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t<div className=\"flex gap-4 mt-4\">\n\t\t\t\t\t\t\t\t\t\t\t<span className=\"flex items-center gap-1\">\n\t\t\t\t\t\t\t\t\t\t\t\t<strong>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<DisplayLoader\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={Math.floor(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tMath.random() *\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t1000,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tisLoading={isLoading}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tforceLoading\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t</strong>\n\t\t\t\t\t\t\t\t\t\t\t\t<span className=\"text-gray-500\">\n\t\t\t\t\t\t\t\t\t\t\t\t\tFollowing\n\t\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t<span className=\"flex items-center gap-1\">\n\t\t\t\t\t\t\t\t\t\t\t\t<strong>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<DisplayLoader\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={Math.floor(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tMath.random() *\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t1000,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tisLoading={isLoading}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tforceLoading\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t</strong>\n\t\t\t\t\t\t\t\t\t\t\t\t<span className=\"text-gray-500\">\n\t\t\t\t\t\t\t\t\t\t\t\t\tFollowers\n\t\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t<div className=\"border-b border-gray-200 dark:border-zinc-800\">\n\t\t\t\t\t\t\t\t<div className=\"flex\">\n\t\t\t\t\t\t\t\t\t{[\n\t\t\t\t\t\t\t\t\t\t{ id: \"posts\", label: \"Posts\" },\n\t\t\t\t\t\t\t\t\t\t{ id: \"replies\", label: \"Replies\" },\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tid: \"highlights\",\n\t\t\t\t\t\t\t\t\t\t\tlabel: \"Highlights\",\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t{ id: \"media\", label: \"Media\" },\n\t\t\t\t\t\t\t\t\t\t{ id: \"likes\", label: \"Likes\" },\n\t\t\t\t\t\t\t\t\t].map((tab) => (\n\t\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\t\tkey={tab.id}\n\t\t\t\t\t\t\t\t\t\t\tclassName={`flex-1 text-sm text-gray-500 hover:bg-gray-100 dark:hover:bg-gray-900 py-4 relative ${\n\t\t\t\t\t\t\t\t\t\t\t\ttab.id === \"posts\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t? \"font-bold text-black dark:text-white\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t: \"\"\n\t\t\t\t\t\t\t\t\t\t\t}`}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{tab.label}\n\t\t\t\t\t\t\t\t\t\t\t{tab.id === \"posts\" && (\n\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"absolute bottom-0 left-0 right-0 h-1 bg-[#1d9bf0]\" />\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t<div className=\"space-y-4\">\n\t\t\t\t\t\t\t\t{[1, 2, 3].map((i) => (\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tkey={i}\n\t\t\t\t\t\t\t\t\t\tclassName=\"flex flex-col border-b border-gray-200 dark:border-zinc-800\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<div className=\"flex gap-4 p-4\">\n\t\t\t\t\t\t\t\t\t\t\t<Avatar className=\"h-12 w-12\">\n\t\t\t\t\t\t\t\t\t\t\t\t<AvatarFallback>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{profile.displayName?.[0]}\n\t\t\t\t\t\t\t\t\t\t\t\t</AvatarFallback>\n\t\t\t\t\t\t\t\t\t\t\t</Avatar>\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"flex-1 space-y-2\">\n\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"flex items-center gap-2\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span className=\"font-bold\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<DisplayLoader\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tprofile.displayName\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tisLoading={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tisLoading\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth=\"w-20\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span className=\"flex items-center text-gray-500\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t@\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<DisplayLoader\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tprofile.username\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tisLoading={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tisLoading\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth=\"w-10\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span className=\"text-gray-500\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{i * 10}h\n\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"h-4 bg-gray-200 dark:bg-zinc-700 rounded w-2/3\" />\n\t\t\t\t\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t<div className=\"p-4 flex justify-around gap-4\">\n\t\t\t\t\t\t\t\t\t\t\t<span className=\"flex items-center gap-2\">\n\t\t\t\t\t\t\t\t\t\t\t\t<MessageCircle size={18} />\n\t\t\t\t\t\t\t\t\t\t\t\t<span className=\"text-sm\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<DisplayLoader\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={Math.floor(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tMath.random() * 100,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tisLoading={isLoading}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tforceLoading\n\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth=\"w-6\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t<span className=\"flex items-center gap-2\">\n\t\t\t\t\t\t\t\t\t\t\t\t<Repeat2 size={18} />\n\t\t\t\t\t\t\t\t\t\t\t\t<span className=\"text-sm\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<DisplayLoader\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={Math.floor(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tMath.random() * 100,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tisLoading={isLoading}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tforceLoading\n\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth=\"w-6\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t<span className=\"flex items-center gap-2\">\n\t\t\t\t\t\t\t\t\t\t\t\t<Heart size={18} />\n\t\t\t\t\t\t\t\t\t\t\t\t<span className=\"text-sm\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<DisplayLoader\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={Math.floor(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tMath.random() * 100,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tisLoading={isLoading}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tforceLoading\n\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth=\"w-6\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t<span className=\"flex items-center gap-2\">\n\t\t\t\t\t\t\t\t\t\t\t\t<ChartNoAxesColumn size={18} />\n\t\t\t\t\t\t\t\t\t\t\t\t<span className=\"text-sm\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<DisplayLoader\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={Math.floor(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tMath.random() *\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t1000,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tisLoading={isLoading}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tforceLoading\n\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth=\"w-6\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t<span className=\"flex items-center gap-4\">\n\t\t\t\t\t\t\t\t\t\t\t\t<BookmarkIcon size={18} />\n\t\t\t\t\t\t\t\t\t\t\t\t<Share size={18} />\n\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</main>\n\n\t\t\t\t\t<aside className=\"hidden xl:flex flex-col w-[350px] min-w-[350px] p-4 sticky top-0 h-screen\">\n\t\t\t\t\t\t<div className=\"space-y-4\">\n\t\t\t\t\t\t\t<div className=\"h-12 bg-gray-100 dark:bg-zinc-800 rounded-lg\" />\n\t\t\t\t\t\t\t<div className=\"p-4 space-y-4 bg-gray-100 dark:bg-zinc-800 rounded-lg\">\n\t\t\t\t\t\t\t\t<div className=\"h-6 bg-gray-200 dark:bg-zinc-700 rounded w-1/3\" />\n\t\t\t\t\t\t\t\t{[...Array(3)].map((_, i) => (\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t// biome-ignore lint/suspicious/noArrayIndexKey: false positive\n\t\t\t\t\t\t\t\t\t\tkey={i}\n\t\t\t\t\t\t\t\t\t\tclassName=\"flex items-center gap-3\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<div className=\"h-10 w-10 bg-gray-200 dark:bg-zinc-700 rounded-full\" />\n\t\t\t\t\t\t\t\t\t\t<div className=\"flex-1 space-y-2\">\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"h-4 bg-gray-200 dark:bg-zinc-700 rounded w-2/3\" />\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"h-3 bg-gray-200 dark:bg-zinc-700 rounded w-1/2\" />\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</aside>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n",
			"type": "registry:component"
		},
		{
			"path": "./src/registry/blocks/app-03/components/toolbar.tsx",
			"content": "import { ThemeToggle } from \"@/components/theme/theme-toggle\";\n\nexport function Toolbar() {\n\treturn (\n\t\t<div className=\"bg-background text-foreground border-b border-border\">\n\t\t\t<div className=\"max-w-7xl mx-auto px-3 py-2 flex items-center justify-between gap-2\">\n\t\t\t\t<div className=\"flex-1 text-center flex flex-col items-center justify-center\">\n\t\t\t\t\t<h4 className=\"font-bold text-xl\">\n\t\t\t\t\t\tGenerate X Bio with AI\n\t\t\t\t\t</h4>\n\t\t\t\t\t<p className=\"text-muted-foreground text-sm\">\n\t\t\t\t\t\tSee how your profile will look\n\t\t\t\t\t</p>\n\t\t\t\t</div>\n\t\t\t\t<ThemeToggle />\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n",
			"type": "registry:component"
		},
		{
			"path": "./src/registry/blocks/app-03/components/theme-toggle.tsx",
			"content": "\"use client\";\n\nimport { MoonIcon, SunIcon } from \"lucide-react\";\nimport { useTheme } from \"next-themes\";\nimport { type ComponentProps, useCallback } from \"react\";\nimport { Button } from \"@/components/ui/button\";\nimport { cn } from \"@/lib/utils\";\n\nexport const ThemeToggle = ({\n\tclassName,\n\t...props\n}: ComponentProps<typeof Button>) => {\n\tconst { theme, setTheme } = useTheme();\n\n\tconst toggleTheme = useCallback(() => {\n\t\tsetTheme(theme === \"light\" ? \"dark\" : \"light\");\n\t}, [theme, setTheme]);\n\n\treturn (\n\t\t<Button\n\t\t\tvariant=\"ghost\"\n\t\t\tclassName={cn(\"group/toggle h-8 w-8 px-0\", className)}\n\t\t\tonClick={toggleTheme}\n\t\t\t{...props}\n\t\t>\n\t\t\t<SunIcon className=\"hidden [html.dark_&]:block\" />\n\t\t\t<MoonIcon className=\"hidden [html.light_&]:block\" />\n\t\t\t<span className=\"sr-only\">Toggle theme</span>\n\t\t</Button>\n\t);\n};\n",
			"type": "registry:component"
		},
		{
			"path": "./src/registry/blocks/app-03/lib/x.ts",
			"content": "import { z } from \"zod\";\n\nexport const XProfileSchema = z.object({\n\tdisplayName: z.string(),\n\tusername: z.string(),\n\tbio: z.string().optional(),\n\t//website: z.string().url().optional(),\n});\n\nexport type XProfile = z.infer<typeof XProfileSchema>;\n\nexport const profileGenerationSchema = z.object({\n\tdisplayName: z.string().min(1, \"Display name is required\"),\n\tusername: z.string().min(1, \"Username is required\"),\n\taboutYou: z.string().min(1, \"Bio is required\"),\n\tgenerationType: z.enum([\n\t\t\"fun\",\n\t\t\"professional\",\n\t\t\"casual\",\n\t\t\"technical\",\n\t\t\"creative\",\n\t]),\n});\n",
			"type": "registry:lib"
		},
		{
			"path": "./src/registry/blocks/app-03/lib/profile-examples.ts",
			"content": "import type { z } from \"zod\";\nimport type { profileGenerationSchema } from \"./x\";\n\ntype ProfileExample = z.infer<typeof profileGenerationSchema>;\n\nconst examples: ProfileExample[] = [\n\t// Technical Examples\n\t{\n\t\tdisplayName: \"Dr. Quantum\",\n\t\tusername: \"quantum_coder\",\n\t\taboutYou:\n\t\t\t\"I'm a quantum computing researcher who's obsessed with machine learning applications. I spend my days trying to break through classical computing limitations and build systems that might one day change everything!\",\n\t\tgenerationType: \"technical\",\n\t},\n\t{\n\t\tdisplayName: \"CyberSec Nina\",\n\t\tusername: \"firewall_guru\",\n\t\taboutYou:\n\t\t\t\"I'm an ethical hacker who specializes in finding zero-day vulnerabilities. My mission is to build stronger digital defenses while teaching organizations how to protect themselves from emerging threats.\",\n\t\tgenerationType: \"technical\",\n\t},\n\n\t// Professional Examples\n\t{\n\t\tdisplayName: \"Lena V. Capital\",\n\t\tusername: \"vc_insider\",\n\t\taboutYou:\n\t\t\t\"As a venture capital partner focused on fintech, I help identify and scale innovative financial technologies. My passion is nurturing startups that have the potential to become tomorrow's industry leaders.\",\n\t\tgenerationType: \"professional\",\n\t},\n\t{\n\t\tdisplayName: \"HR Innovator Tom\",\n\t\tusername: \"futureofwork_tom\",\n\t\taboutYou:\n\t\t\t\"I'm revolutionizing workplace culture as a Chief People Officer. My current focus is creating sustainable remote work models that boost productivity while maintaining team connection.\",\n\t\tgenerationType: \"professional\",\n\t},\n\n\t// Creative Examples\n\t{\n\t\tdisplayName: \"Poetica\",\n\t\tusername: \"word_alchemist\",\n\t\taboutYou:\n\t\t\t\"I transform raw emotions into lyrical poetry that lingers in your soul. When I'm not crafting verses, you'll find me hosting intimate spoken word nights in cozy bookshop corners.\",\n\t\tgenerationType: \"creative\",\n\t},\n\t{\n\t\tdisplayName: \"SynthWave Maya\",\n\t\tusername: \"80s_retro_ai\",\n\t\taboutYou:\n\t\t\t\"I create digital art that resurrects the neon-drenched aesthetic of 1980s retro futurism. My work blends VHS nostalgia with modern AI tools to imagine what tomorrow looked like yesterday.\",\n\t\tgenerationType: \"creative\",\n\t},\n\n\t// Fun Examples\n\t{\n\t\tdisplayName: \"Pun Master Flex\",\n\t\tusername: \"dad_joke_ceo\",\n\t\taboutYou:\n\t\t\t\"I'm on a crusade to make the world 37% punnier! By day I'm a mild-mannered office worker, but by lunchtime I'm crafting wordplay so cheesy it needs a lactose warning. 🧀\",\n\t\tgenerationType: \"fun\",\n\t},\n\t{\n\t\tdisplayName: \"Taco Hero\",\n\t\tusername: \"salsa_avenger\",\n\t\taboutYou:\n\t\t\t\"I'm the self-appointed guardian of authentic Mexican street food! When I'm not hunting for the perfect taco, I'm in my kitchen experimenting with salsa recipes that make taste buds sing. 🌶️\",\n\t\tgenerationType: \"fun\",\n\t},\n\n\t// Casual Examples\n\t{\n\t\tdisplayName: \"Mountain Mike\",\n\t\tusername: \"trail_tales\",\n\t\taboutYou:\n\t\t\t\"Just a regular guy who finds peace in hiking trails and capturing nature through my lens. I share stories from paths less traveled - the muddier, the better!\",\n\t\tgenerationType: \"casual\",\n\t},\n\t{\n\t\tdisplayName: \"Bookish Beth\",\n\t\tusername: \"cozyreads\",\n\t\taboutYou:\n\t\t\t\"I'm that friend who always has book recommendations and a fresh cup of tea. Currently trying to read every mystery novel published after 1985 (wish me luck!).\",\n\t\tgenerationType: \"casual\",\n\t},\n\n\t// Hybrid Examples\n\t{\n\t\tdisplayName: \"Astro Chef\",\n\t\tusername: \"space_kitchen\",\n\t\taboutYou:\n\t\t\t\"I combine my love for space exploration and gourmet cooking by developing recipes that astronauts could make in zero-g! Terrestrial foodies seem to like them too. 🚀\",\n\t\tgenerationType: \"creative\",\n\t},\n\t{\n\t\tdisplayName: \"Data DJ\",\n\t\tusername: \"analytics_beats\",\n\t\taboutYou:\n\t\t\t\"By day I'm a data analyst crunching numbers, by night I'm mixing beats at underground clubs. Sometimes I even make songs using SQL query rhythms - nerdcore at its finest! 🎧\",\n\t\tgenerationType: \"fun\",\n\t},\n];\n\nexport function getRandomExample(): ProfileExample {\n\treturn examples[Math.floor(Math.random() * examples.length)];\n}\n",
			"type": "registry:lib"
		}
	],
	"envVars": {
		"OPENAI_API_KEY": ""
	},
	"docs": "Get an OpenAI API key from https://platform.openai.com/ and add it to the environment variables file and run the dev server. \n\nLearn more about how to use the Vercel AI SDK https://ai-sdk.dev/docs/introduction.",
	"categories": ["app"]
}
