nexoreui-cli 1.6.0 → 1.7.0

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/dist/index.js CHANGED
@@ -2713,6 +2713,1651 @@ export default function DocsPlatformTemplate() {
2713
2713
  `
2714
2714
  };
2715
2715
 
2716
+ // src/registry/template-healthcare-portal.ts
2717
+ var templateHealthcarePortal = {
2718
+ name: "template-healthcare-portal",
2719
+ dependencies: ["framer-motion", "lucide-react"],
2720
+ fileName: "template-healthcare-portal.tsx",
2721
+ content: `"use client";
2722
+
2723
+ import React, { useState } from "react";
2724
+ import { motion } from "framer-motion";
2725
+ import { Activity, Heart, Calendar, Pill, CheckCircle2, Video, TrendingUp } from "lucide-react";
2726
+
2727
+ export default function HealthcarePortalTemplate() {
2728
+ const [checkedMeds, setCheckedMeds] = useState<string[]>(["med-1"]);
2729
+
2730
+ const vitals = [
2731
+ { label: "Resting Heart Rate", value: "64", unit: "BPM", delta: "-3 bpm vs avg", status: "Optimal" },
2732
+ { label: "Blood Oxygen (SpO2)", value: "98.8", unit: "%", delta: "+0.4% healthy", status: "Optimal" },
2733
+ { label: "Sleep Recovery", value: "88", unit: "/100", delta: "7h 42m deep sleep", status: "High" },
2734
+ { label: "Heart Rate Var.", value: "58", unit: "ms", delta: "+7ms resilience", status: "Normal" },
2735
+ ];
2736
+
2737
+ const medications = [
2738
+ { id: "med-1", name: "Atorvastatin Calcium", dose: "20mg \u2022 Morning with meal", days: "24 days left" },
2739
+ { id: "med-2", name: "Omega-3 Pure EPA/DHA", dose: "1000mg \u2022 Midday with water", days: "18 days left" },
2740
+ { id: "med-3", name: "Magnesium Glycinate", dose: "400mg \u2022 Evening before sleep", days: "6 days left" },
2741
+ ];
2742
+
2743
+ return (
2744
+ <div className="min-h-screen bg-[#090b10] text-zinc-100 font-sans p-6 sm:p-8">
2745
+ <header className="max-w-6xl mx-auto flex justify-between items-center pb-6 border-b border-white/10">
2746
+ <div>
2747
+ <span className="text-xs uppercase font-mono tracking-widest text-teal-400">PulseCare Telehealth</span>
2748
+ <h1 className="text-2xl font-bold">Patient Health Telemetry</h1>
2749
+ </div>
2750
+ <button className="px-4 py-2 rounded-xl text-xs font-semibold bg-teal-600 hover:bg-teal-500 text-white flex items-center gap-2">
2751
+ <Video className="h-3.5 w-3.5" />
2752
+ <span>Book Specialist</span>
2753
+ </button>
2754
+ </header>
2755
+
2756
+ <main className="max-w-6xl mx-auto py-8 space-y-6">
2757
+ <div className="grid grid-cols-2 sm:grid-cols-4 gap-4">
2758
+ {vitals.map((v) => (
2759
+ <div key={v.label} className="p-4 rounded-2xl border border-white/10 bg-[#12141c]">
2760
+ <span className="text-xs text-zinc-400">{v.label}</span>
2761
+ <div className="text-2xl sm:text-3xl font-bold font-mono my-1">
2762
+ {v.value} <span className="text-xs font-normal opacity-60">{v.unit}</span>
2763
+ </div>
2764
+ <span className="text-xs text-teal-400 font-semibold flex items-center gap-1">
2765
+ <TrendingUp className="h-3 w-3" />
2766
+ {v.delta}
2767
+ </span>
2768
+ </div>
2769
+ ))}
2770
+ </div>
2771
+
2772
+ <div className="p-6 rounded-2xl border border-white/10 bg-[#12141c] space-y-4">
2773
+ <h2 className="font-bold text-base flex items-center gap-2">
2774
+ <Pill className="h-4 w-4 text-teal-400" />
2775
+ <span>Daily Prescriptions</span>
2776
+ </h2>
2777
+ <div className="space-y-2">
2778
+ {medications.map((m) => {
2779
+ const isDone = checkedMeds.includes(m.id);
2780
+ return (
2781
+ <div
2782
+ key={m.id}
2783
+ onClick={() =>
2784
+ setCheckedMeds((prev) =>
2785
+ prev.includes(m.id) ? prev.filter((i) => i !== m.id) : [...prev, m.id]
2786
+ )
2787
+ }
2788
+ className="p-3.5 rounded-xl border border-white/5 bg-[#181a24] flex items-center justify-between cursor-pointer hover:border-white/20"
2789
+ >
2790
+ <div className="flex items-center gap-3">
2791
+ <div
2792
+ className={\`w-5 h-5 rounded-lg border flex items-center justify-center \${
2793
+ isDone ? "bg-teal-600 border-teal-600 text-white" : "border-zinc-500"
2794
+ }\`}
2795
+ >
2796
+ {isDone && <CheckCircle2 className="h-3.5 w-3.5" />}
2797
+ </div>
2798
+ <div>
2799
+ <div className={\`text-xs font-semibold \${isDone ? "line-through opacity-50" : ""}\`}>
2800
+ {m.name}
2801
+ </div>
2802
+ <div className="text-[10px] text-zinc-400">{m.dose}</div>
2803
+ </div>
2804
+ </div>
2805
+ <span className="text-xs font-mono text-zinc-400">{m.days}</span>
2806
+ </div>
2807
+ );
2808
+ })}
2809
+ </div>
2810
+ </div>
2811
+ </main>
2812
+ </div>
2813
+ );
2814
+ }
2815
+ `
2816
+ };
2817
+
2818
+ // src/registry/template-web3-dex.ts
2819
+ var templateWeb3Dex = {
2820
+ name: "template-web3-dex",
2821
+ dependencies: ["framer-motion", "lucide-react"],
2822
+ fileName: "template-web3-dex.tsx",
2823
+ content: `"use client";
2824
+
2825
+ import React, { useState } from "react";
2826
+ import { ArrowDownUp, Zap, Wallet, TrendingUp } from "lucide-react";
2827
+
2828
+ export default function Web3DexTemplate() {
2829
+ const [fromAmount, setFromAmount] = useState("1.5");
2830
+ const [isSwapping, setIsSwapping] = useState(false);
2831
+
2832
+ return (
2833
+ <div className="min-h-screen bg-[#08090d] text-zinc-100 font-sans p-6 flex flex-col items-center justify-center">
2834
+ <div className="w-full max-w-md p-6 rounded-3xl border border-white/10 bg-[#12141c] space-y-4 shadow-2xl">
2835
+ <div className="flex justify-between items-center">
2836
+ <span className="font-bold text-base">NovaSwap DEX</span>
2837
+ <span className="text-xs px-2.5 py-1 rounded-full bg-cyan-500/10 text-cyan-400 font-mono">12 Gwei</span>
2838
+ </div>
2839
+
2840
+ <div className="p-4 rounded-2xl border border-white/5 bg-[#181a24] space-y-1">
2841
+ <div className="flex justify-between text-xs text-zinc-400">
2842
+ <span>You Pay</span>
2843
+ <span>Balance: 4.82 ETH</span>
2844
+ </div>
2845
+ <div className="flex justify-between items-center">
2846
+ <input
2847
+ type="text"
2848
+ value={fromAmount}
2849
+ onChange={(e) => setFromAmount(e.target.value)}
2850
+ className="text-2xl font-mono font-bold bg-transparent outline-none w-1/2"
2851
+ />
2852
+ <span className="px-3 py-1 rounded-xl bg-white/10 font-bold text-xs">ETH</span>
2853
+ </div>
2854
+ </div>
2855
+
2856
+ <div className="flex justify-center -my-2">
2857
+ <div className="p-2 rounded-xl bg-[#12141c] border border-white/10">
2858
+ <ArrowDownUp className="h-4 w-4 text-cyan-400" />
2859
+ </div>
2860
+ </div>
2861
+
2862
+ <div className="p-4 rounded-2xl border border-white/5 bg-[#181a24] space-y-1">
2863
+ <div className="flex justify-between text-xs text-zinc-400">
2864
+ <span>You Receive (Est.)</span>
2865
+ <span>Balance: 14,850 USDC</span>
2866
+ </div>
2867
+ <div className="flex justify-between items-center">
2868
+ <div className="text-2xl font-mono font-bold">
2869
+ {(parseFloat(fromAmount || "0") * 2640.5).toFixed(2)}
2870
+ </div>
2871
+ <span className="px-3 py-1 rounded-xl bg-white/10 font-bold text-xs">USDC</span>
2872
+ </div>
2873
+ </div>
2874
+
2875
+ <button
2876
+ onClick={() => {
2877
+ setIsSwapping(true);
2878
+ setTimeout(() => setIsSwapping(false), 1200);
2879
+ }}
2880
+ className="w-full py-3.5 rounded-xl font-bold text-xs text-white bg-cyan-600 hover:bg-cyan-500 shadow-lg flex items-center justify-center gap-2 transition-transform active:scale-95"
2881
+ >
2882
+ <Zap className="h-4 w-4" />
2883
+ <span>{isSwapping ? "Routing via Smart Contract..." : "Swap Tokens"}</span>
2884
+ </button>
2885
+ </div>
2886
+ </div>
2887
+ );
2888
+ }
2889
+ `
2890
+ };
2891
+
2892
+ // src/registry/template-edtech-learning.ts
2893
+ var templateEdtechLearning = {
2894
+ name: "template-edtech-learning",
2895
+ dependencies: ["framer-motion", "lucide-react"],
2896
+ fileName: "template-edtech-learning.tsx",
2897
+ content: `"use client";
2898
+
2899
+ import React, { useState } from "react";
2900
+ import { BookOpen, CheckCircle2, Code2, Award, Flame, Play } from "lucide-react";
2901
+
2902
+ export default function EdtechLearningTemplate() {
2903
+ const [selectedIdx, setSelectedIdx] = useState<number | null>(1);
2904
+ const [isDone, setIsDone] = useState(false);
2905
+
2906
+ return (
2907
+ <div className="min-h-screen bg-[#090b10] text-zinc-100 font-sans p-6 sm:p-8">
2908
+ <header className="max-w-5xl mx-auto flex justify-between items-center pb-6 border-b border-white/10">
2909
+ <div className="flex items-center gap-2">
2910
+ <BookOpen className="h-5 w-5 text-emerald-400" />
2911
+ <span className="font-bold text-base">Polymath Academy</span>
2912
+ </div>
2913
+ <div className="flex items-center gap-1.5 px-3 py-1 rounded-full bg-amber-500/10 text-amber-400 text-xs font-semibold">
2914
+ <Flame className="h-3.5 w-3.5 fill-current" />
2915
+ <span>14 Day Streak</span>
2916
+ </div>
2917
+ </header>
2918
+
2919
+ <main className="max-w-5xl mx-auto py-8 grid grid-cols-1 lg:grid-cols-3 gap-6">
2920
+ <div className="lg:col-span-2 p-6 rounded-2xl border border-white/10 bg-[#12141c] space-y-4">
2921
+ <div className="text-xs font-mono text-zinc-400">Module 2 \u2022 Lesson 2.2</div>
2922
+ <h1 className="text-2xl font-bold">Raft Consensus & Majority Quorums</h1>
2923
+ <p className="text-xs text-zinc-300 leading-relaxed">
2924
+ In Raft, a cluster of 5 nodes requires an affirmative vote from at least 3 nodes before committing any state machine transition.
2925
+ </p>
2926
+
2927
+ <div className="space-y-2 pt-2">
2928
+ {[
2929
+ "Any follower can commit independently without Leader confirmation.",
2930
+ "A quorum majority (3 of 5 nodes) ensures overlapping sets and prevents split-brain.",
2931
+ "Logs are replicated only during leader step-down events.",
2932
+ ].map((ans, i) => (
2933
+ <button
2934
+ key={i}
2935
+ onClick={() => setSelectedIdx(i)}
2936
+ className={\`w-full p-3.5 rounded-xl border text-left text-xs transition-colors \${
2937
+ selectedIdx === i
2938
+ ? "border-emerald-500 bg-emerald-500/10 text-white font-semibold"
2939
+ : "border-white/10 bg-[#181a24] text-zinc-300"
2940
+ }\`}
2941
+ >
2942
+ {ans}
2943
+ </button>
2944
+ ))}
2945
+ </div>
2946
+
2947
+ <button
2948
+ onClick={() => setIsDone(true)}
2949
+ className="px-5 py-2.5 rounded-xl text-xs font-bold text-white bg-emerald-600 hover:bg-emerald-500 shadow-md flex items-center gap-2 mt-4"
2950
+ >
2951
+ <Play className="h-3.5 w-3.5 fill-current" />
2952
+ <span>{isDone ? "Solution Verified \u2713 (+150 XP)" : "Verify Solution"}</span>
2953
+ </button>
2954
+ </div>
2955
+ </main>
2956
+ </div>
2957
+ );
2958
+ }
2959
+ `
2960
+ };
2961
+
2962
+ // src/registry/template-conference-event.ts
2963
+ var templateConferenceEvent = {
2964
+ name: "template-conference-event",
2965
+ dependencies: ["framer-motion", "lucide-react"],
2966
+ fileName: "template-conference-event.tsx",
2967
+ content: `"use client";
2968
+
2969
+ import React, { useState } from "react";
2970
+ import { Calendar, MapPin, Ticket, Sparkles, Check } from "lucide-react";
2971
+
2972
+ export default function ConferenceEventTemplate() {
2973
+ const [selectedDay, setSelectedDay] = useState("day-1");
2974
+
2975
+ const schedule = [
2976
+ { time: "09:00 AM", title: "Opening Keynote: Autonomous Inference at Edge", speaker: "Dr. Elena Vance" },
2977
+ { time: "11:00 AM", title: "Deterministic Design Systems for 100M+ Users", speaker: "Marcus Sterling" },
2978
+ { time: "02:00 PM", title: "Zero-Downtime eBPF State Replication", speaker: "Hiroshi Tanaka" },
2979
+ ];
2980
+
2981
+ return (
2982
+ <div className="min-h-screen bg-[#08090e] text-zinc-100 font-sans p-6 sm:p-12">
2983
+ <header className="max-w-5xl mx-auto flex justify-between items-center pb-6 border-b border-white/10">
2984
+ <span className="font-extrabold text-base tracking-tight">Vertex Summit 2027</span>
2985
+ <button className="px-4 py-2 rounded-xl text-xs font-bold text-white bg-purple-600 hover:bg-purple-500 shadow-md">
2986
+ Claim Pass
2987
+ </button>
2988
+ </header>
2989
+
2990
+ <main className="max-w-4xl mx-auto py-16 text-center space-y-6">
2991
+ <div className="inline-flex items-center gap-2 px-3 py-1 rounded-full bg-purple-500/10 border border-purple-500/20 text-purple-400 text-xs font-mono">
2992
+ <Calendar className="h-3.5 w-3.5" />
2993
+ <span>October 14\u201316, 2027 \u2022 San Francisco, CA & Virtual</span>
2994
+ </div>
2995
+
2996
+ <h1 className="text-4xl sm:text-6xl font-black tracking-tight leading-tight">
2997
+ The Convergence of Autonomous Systems
2998
+ </h1>
2999
+
3000
+ <p className="text-sm text-zinc-400 max-w-xl mx-auto">
3001
+ Gathering 4,500+ systems engineers and AI leaders to build the future of software infrastructure.
3002
+ </p>
3003
+
3004
+ <div className="p-6 rounded-2xl border border-white/10 bg-[#12141c] text-left space-y-3 mt-8">
3005
+ <h2 className="font-bold text-sm">Day 1 Schedule (Oct 14)</h2>
3006
+ <div className="space-y-2">
3007
+ {schedule.map((item) => (
3008
+ <div key={item.time} className="p-3 rounded-xl border border-white/5 bg-[#181a24] flex items-center justify-between text-xs">
3009
+ <div>
3010
+ <div className="font-bold">{item.title}</div>
3011
+ <div className="text-[10px] text-zinc-400">{item.speaker}</div>
3012
+ </div>
3013
+ <span className="font-mono text-purple-400 font-bold">{item.time}</span>
3014
+ </div>
3015
+ ))}
3016
+ </div>
3017
+ </div>
3018
+ </main>
3019
+ </div>
3020
+ );
3021
+ }
3022
+ `
3023
+ };
3024
+
3025
+ // src/registry/template-audio-podcast.ts
3026
+ var templateAudioPodcast = {
3027
+ name: "template-audio-podcast",
3028
+ dependencies: ["framer-motion", "lucide-react"],
3029
+ fileName: "template-audio-podcast.tsx",
3030
+ content: `"use client";
3031
+
3032
+ import React, { useState } from "react";
3033
+ import { Headphones, Play, Pause, RotateCcw, RotateCw, Download } from "lucide-react";
3034
+
3035
+ export default function AudioPodcastTemplate() {
3036
+ const [isPlaying, setIsPlaying] = useState(false);
3037
+ const [currentSec, setCurrentSec] = useState(255); // 04:15
3038
+
3039
+ const chapters = [
3040
+ { time: "00:00", title: "Cold Open & Benchmarks" },
3041
+ { time: "04:15", title: "Lockless Ring Buffers vs Channels" },
3042
+ { time: "18:40", title: "Kernel-Bypass Networking with io_uring" },
3043
+ ];
3044
+
3045
+ return (
3046
+ <div className="min-h-screen bg-[#08090d] text-zinc-100 font-sans p-6 pb-24">
3047
+ <header className="max-w-4xl mx-auto flex justify-between items-center pb-6 border-b border-white/10">
3048
+ <div className="flex items-center gap-2">
3049
+ <Headphones className="h-5 w-5 text-indigo-400" />
3050
+ <span className="font-bold text-base">EchoWave Studio</span>
3051
+ </div>
3052
+ <button className="px-3.5 py-1.5 rounded-xl border border-white/10 text-xs hover:bg-white/10">
3053
+ Subscribe RSS
3054
+ </button>
3055
+ </header>
3056
+
3057
+ <main className="max-w-4xl mx-auto py-10 space-y-6">
3058
+ <div className="p-6 rounded-2xl border border-white/10 bg-[#12141c] space-y-3">
3059
+ <span className="text-xs font-mono text-indigo-400">Episode 148 \u2022 54m 20s</span>
3060
+ <h1 className="text-2xl sm:text-3xl font-bold">Zero-Cost Abstractions & High-Throughput I/O</h1>
3061
+ <p className="text-xs text-zinc-400">Featuring Linus M. Discussing memory barriers and lock-free concurrency queues.</p>
3062
+ </div>
3063
+
3064
+ <div className="space-y-2">
3065
+ <h2 className="font-bold text-xs uppercase tracking-wider text-zinc-400">Chapters</h2>
3066
+ {chapters.map((ch) => (
3067
+ <div key={ch.time} className="p-3.5 rounded-xl border border-white/10 bg-[#12141c] flex items-center justify-between text-xs">
3068
+ <span>{ch.title}</span>
3069
+ <span className="font-mono text-indigo-400">{ch.time}</span>
3070
+ </div>
3071
+ ))}
3072
+ </div>
3073
+ </main>
3074
+
3075
+ <footer className="fixed bottom-0 inset-x-0 p-4 border-t border-white/10 bg-[#08090d]/95 backdrop-blur-xl">
3076
+ <div className="max-w-4xl mx-auto flex items-center justify-between gap-4">
3077
+ <button
3078
+ onClick={() => setIsPlaying(!isPlaying)}
3079
+ className="p-3 rounded-full bg-indigo-600 hover:bg-indigo-500 text-white shadow-md"
3080
+ >
3081
+ {isPlaying ? <Pause className="h-5 w-5" /> : <Play className="h-5 w-5 fill-current ml-0.5" />}
3082
+ </button>
3083
+ <span className="text-xs font-mono text-zinc-400">04:15 / 54:20</span>
3084
+ </div>
3085
+ </footer>
3086
+ </div>
3087
+ );
3088
+ }
3089
+ `
3090
+ };
3091
+
3092
+ // src/registry/template-real-estate.ts
3093
+ var templateRealEstate = {
3094
+ name: "template-real-estate",
3095
+ dependencies: ["framer-motion", "lucide-react"],
3096
+ fileName: "template-real-estate.tsx",
3097
+ content: `"use client";
3098
+
3099
+ import React, { useState } from "react";
3100
+ import { Building2, MapPin, Calendar, Users, Check } from "lucide-react";
3101
+
3102
+ export default function RealEstateTemplate() {
3103
+ const [nights, setNights] = useState(4);
3104
+ const baseRate = 2450;
3105
+
3106
+ return (
3107
+ <div className="min-h-screen bg-[#0c0d12] text-zinc-100 font-sans p-6 sm:p-12">
3108
+ <header className="max-w-5xl mx-auto flex justify-between items-center pb-6 border-b border-white/10">
3109
+ <span className="font-serif text-base uppercase tracking-widest font-light">Haven Luxury Estates</span>
3110
+ <span className="text-xs uppercase tracking-widest font-mono text-zinc-400">Aspen \u2022 Kyoto \u2022 Zurich</span>
3111
+ </header>
3112
+
3113
+ <main className="max-w-5xl mx-auto py-12 space-y-8">
3114
+ <div className="space-y-3">
3115
+ <div className="text-xs font-mono text-zinc-400">Aspen Valley, Colorado \u2022 Residence #04</div>
3116
+ <h1 className="text-3xl sm:text-5xl font-serif font-light">The Obsidian Pavilion</h1>
3117
+ <p className="text-xs sm:text-sm text-zinc-400 max-w-2xl leading-relaxed">
3118
+ A 9,400 sq.ft cantilevered cedar and blackened steel retreat with panoramic mountain views and private helipad.
3119
+ </p>
3120
+ </div>
3121
+
3122
+ <div className="p-6 rounded-2xl border border-white/10 bg-[#14161f] flex flex-col sm:flex-row justify-between items-center gap-4">
3123
+ <div>
3124
+ <div className="text-xs text-zinc-400">Nightly Rate: $2,450 USD</div>
3125
+ <div className="text-2xl font-serif font-bold mt-0.5">
3126
+ \${(baseRate * nights).toLocaleString()} USD <span className="text-xs font-sans font-normal text-zinc-400">({nights} nights)</span>
3127
+ </div>
3128
+ </div>
3129
+ <button className="px-6 py-3 rounded-xl text-xs font-serif uppercase tracking-wider font-bold bg-white text-black hover:bg-zinc-200 shadow-md">
3130
+ Reserve Residence
3131
+ </button>
3132
+ </div>
3133
+ </main>
3134
+ </div>
3135
+ );
3136
+ }
3137
+ `
3138
+ };
3139
+
3140
+ // src/registry/template-uptime-status.ts
3141
+ var templateUptimeStatus = {
3142
+ name: "template-uptime-status",
3143
+ dependencies: ["framer-motion", "lucide-react"],
3144
+ fileName: "template-uptime-status.tsx",
3145
+ content: `"use client";
3146
+
3147
+ import React, { useState } from "react";
3148
+ import { CheckCircle2, ShieldCheck, Server, Bell, Globe } from "lucide-react";
3149
+
3150
+ export default function UptimeStatusTemplate() {
3151
+ const services = [
3152
+ { name: "Global Anycast Edge CDN", uptime: "100.0%", ping: "11ms" },
3153
+ { name: "Authentication Engine & SSO", uptime: "99.99%", ping: "24ms" },
3154
+ { name: "Distributed Vector Indexing", uptime: "99.97%", ping: "38ms" },
3155
+ { name: "PostgreSQL Database Clusters", uptime: "99.95%", ping: "14ms" },
3156
+ ];
3157
+
3158
+ return (
3159
+ <div className="min-h-screen bg-[#08090d] text-zinc-100 font-sans p-6 sm:p-12">
3160
+ <header className="max-w-4xl mx-auto flex justify-between items-center pb-6 border-b border-white/10">
3161
+ <div className="flex items-center gap-2 font-bold text-base">
3162
+ <ShieldCheck className="h-5 w-5 text-emerald-500" />
3163
+ <span>Beacon Status</span>
3164
+ </div>
3165
+ <button className="px-3.5 py-1.5 rounded-xl border border-white/10 text-xs hover:bg-white/10 flex items-center gap-1.5">
3166
+ <Bell className="h-3.5 w-3.5" />
3167
+ <span>Subscribe</span>
3168
+ </button>
3169
+ </header>
3170
+
3171
+ <main className="max-w-4xl mx-auto py-10 space-y-6">
3172
+ <div className="p-5 rounded-2xl border border-emerald-500/30 bg-emerald-500/10 flex items-center justify-between text-xs text-emerald-400 font-semibold">
3173
+ <div className="flex items-center gap-2">
3174
+ <CheckCircle2 className="h-5 w-5" />
3175
+ <span>All Core Services Operational \u2014 99.994% Availability</span>
3176
+ </div>
3177
+ <span className="font-mono">Past 90 Days</span>
3178
+ </div>
3179
+
3180
+ <div className="space-y-3">
3181
+ {services.map((s) => (
3182
+ <div key={s.name} className="p-4 rounded-xl border border-white/10 bg-[#12141c] flex items-center justify-between text-xs">
3183
+ <div>
3184
+ <div className="font-bold">{s.name}</div>
3185
+ <div className="text-[10px] text-zinc-400 font-mono">Latency: {s.ping}</div>
3186
+ </div>
3187
+ <span className="text-xs font-mono font-bold text-emerald-400">{s.uptime}</span>
3188
+ </div>
3189
+ ))}
3190
+ </div>
3191
+ </main>
3192
+ </div>
3193
+ );
3194
+ }
3195
+ `
3196
+ };
3197
+
3198
+ // src/registry/template-agent-workflow.ts
3199
+ var templateAgentWorkflow = {
3200
+ name: "template-agent-workflow",
3201
+ dependencies: ["framer-motion", "lucide-react"],
3202
+ fileName: "template-agent-workflow.tsx",
3203
+ content: `"use client";
3204
+
3205
+ import React, { useState } from "react";
3206
+ import { Play, Zap, Database, Cpu, Send, CheckCircle2 } from "lucide-react";
3207
+
3208
+ export default function AgentWorkflowTemplate() {
3209
+ const [isRunning, setIsRunning] = useState(false);
3210
+ const [log, setLog] = useState<string | null>(null);
3211
+
3212
+ const handleRun = () => {
3213
+ setIsRunning(true);
3214
+ setLog("Trigger received. Querying vector database...");
3215
+ setTimeout(() => {
3216
+ setLog("Claude 3.5 Sonnet generated solution. Dispatching webhook...");
3217
+ setTimeout(() => {
3218
+ setIsRunning(false);
3219
+ setLog("\u2713 Execution completed in 680ms. Payload delivered.");
3220
+ }, 700);
3221
+ }, 800);
3222
+ };
3223
+
3224
+ return (
3225
+ <div className="min-h-screen bg-[#08090d] text-zinc-100 font-sans p-6 sm:p-12">
3226
+ <header className="max-w-4xl mx-auto flex justify-between items-center pb-6 border-b border-white/10">
3227
+ <span className="font-bold text-base">Nexus Nodes Canvas</span>
3228
+ <button
3229
+ onClick={handleRun}
3230
+ disabled={isRunning}
3231
+ className="px-4 py-2 rounded-xl text-xs font-bold text-white bg-blue-600 hover:bg-blue-500 flex items-center gap-2 shadow-md"
3232
+ >
3233
+ <Play className="h-3.5 w-3.5 fill-current" />
3234
+ <span>{isRunning ? "Running..." : "Test Workflow"}</span>
3235
+ </button>
3236
+ </header>
3237
+
3238
+ <main className="max-w-4xl mx-auto py-12 space-y-6">
3239
+ <div className="grid grid-cols-1 sm:grid-cols-4 gap-3">
3240
+ {[
3241
+ { name: "Webhook Ingress", icon: Zap, color: "text-amber-400" },
3242
+ { name: "Pinecone Retrieval", icon: Database, color: "text-cyan-400" },
3243
+ { name: "Claude 3.5 Reasoning", icon: Cpu, color: "text-blue-400" },
3244
+ { name: "Slack Dispatcher", icon: Send, color: "text-emerald-400" },
3245
+ ].map((n) => {
3246
+ const Icon = n.icon;
3247
+ return (
3248
+ <div key={n.name} className="p-4 rounded-2xl border border-white/10 bg-[#12141c] space-y-2 text-xs">
3249
+ <Icon className={\`h-4 w-4 \${n.color}\`} />
3250
+ <div className="font-bold">{n.name}</div>
3251
+ </div>
3252
+ );
3253
+ })}
3254
+ </div>
3255
+
3256
+ {log && (
3257
+ <div className="p-4 rounded-xl border border-white/10 bg-[#06070a] font-mono text-xs text-blue-400">
3258
+ {log}
3259
+ </div>
3260
+ )}
3261
+ </main>
3262
+ </div>
3263
+ );
3264
+ }
3265
+ `
3266
+ };
3267
+
3268
+ // src/registry/template-restaurant-culinary.ts
3269
+ var templateRestaurantCulinary = {
3270
+ name: "template-restaurant-culinary",
3271
+ dependencies: ["framer-motion", "lucide-react"],
3272
+ fileName: "template-restaurant-culinary.tsx",
3273
+ content: `"use client";
3274
+
3275
+ import React, { useState } from "react";
3276
+ import { Utensils, Calendar, Users, Award, Wine } from "lucide-react";
3277
+
3278
+ export default function RestaurantCulinaryTemplate() {
3279
+ const [guests, setGuests] = useState(2);
3280
+ const [confirmed, setConfirmed] = useState(false);
3281
+
3282
+ return (
3283
+ <div className="min-h-screen bg-[#0e0d0b] text-[#f5f2eb] font-sans p-6 sm:p-12">
3284
+ <header className="max-w-4xl mx-auto flex justify-between items-center pb-6 border-b border-[#2e2b24]">
3285
+ <div>
3286
+ <span className="text-[10px] uppercase font-mono tracking-widest text-amber-500">Komorebi Gastronomy</span>
3287
+ <h1 className="text-xl font-serif">Contemporary Seasonal Dining</h1>
3288
+ </div>
3289
+ <div className="flex items-center gap-1.5 text-xs text-amber-500 font-serif">
3290
+ <Award className="h-4 w-4" />
3291
+ <span>Two Michelin Stars</span>
3292
+ </div>
3293
+ </header>
3294
+
3295
+ <main className="max-w-4xl mx-auto py-12 space-y-8">
3296
+ <div className="space-y-2 text-center">
3297
+ <h2 className="text-3xl sm:text-4xl font-serif font-light">Autumn Tasting Menu (8 Courses)</h2>
3298
+ <p className="text-xs text-[#b8b3a5] max-w-xl mx-auto">
3299
+ Hokkaido sea urchin, wild matsutake, and binchotan-charred Miyazaki A5 wagyu tenderloin.
3300
+ </p>
3301
+ </div>
3302
+
3303
+ <div className="p-6 rounded-3xl border border-[#2e2b24] bg-[#171512] max-w-md mx-auto space-y-4">
3304
+ <div className="font-serif font-bold text-sm">Table Reservation</div>
3305
+ <div className="flex gap-2">
3306
+ {[2, 4, 6].map((g) => (
3307
+ <button
3308
+ key={g}
3309
+ onClick={() => setGuests(g)}
3310
+ className={\`flex-1 py-2 rounded-xl border text-xs font-serif \${
3311
+ guests === g ? "bg-amber-700 text-white border-amber-700" : "border-[#2e2b24] text-[#b8b3a5]"
3312
+ }\`}
3313
+ >
3314
+ {g} Guests
3315
+ </button>
3316
+ ))}
3317
+ </div>
3318
+
3319
+ <button
3320
+ onClick={() => setConfirmed(true)}
3321
+ className="w-full py-3 rounded-xl font-serif uppercase tracking-widest text-xs font-bold text-white bg-amber-700 hover:bg-amber-600 shadow-lg"
3322
+ >
3323
+ {confirmed ? "Table Reserved \u2713" : "Reserve Table for " + guests}
3324
+ </button>
3325
+ </div>
3326
+ </main>
3327
+ </div>
3328
+ );
3329
+ }
3330
+ `
3331
+ };
3332
+
3333
+ // src/registry/template-help-center.ts
3334
+ var templateHelpCenter = {
3335
+ name: "template-help-center",
3336
+ dependencies: ["framer-motion", "lucide-react"],
3337
+ fileName: "template-help-center.tsx",
3338
+ content: `"use client";
3339
+
3340
+ import React, { useState } from "react";
3341
+ import { Search, LifeBuoy, CreditCard, ShieldCheck, Code2, ChevronDown } from "lucide-react";
3342
+
3343
+ export default function HelpCenterTemplate() {
3344
+ const [query, setQuery] = useState("");
3345
+
3346
+ const categories = [
3347
+ { title: "Getting Started", icon: LifeBuoy, count: "14 articles" },
3348
+ { title: "Billing & Invoicing", icon: CreditCard, count: "9 articles" },
3349
+ { title: "Security & 2FA", icon: ShieldCheck, count: "18 articles" },
3350
+ { title: "Developer API", icon: Code2, count: "22 articles" },
3351
+ ];
3352
+
3353
+ return (
3354
+ <div className="min-h-screen bg-[#090b10] text-zinc-100 font-sans p-6 sm:p-12">
3355
+ <header className="max-w-4xl mx-auto flex justify-between items-center pb-6 border-b border-white/10">
3356
+ <span className="font-bold text-base">Resolv Support Desk</span>
3357
+ <button className="px-3.5 py-1.5 rounded-xl text-xs font-semibold bg-indigo-600 hover:bg-indigo-500 text-white shadow-md">
3358
+ Submit Ticket
3359
+ </button>
3360
+ </header>
3361
+
3362
+ <main className="max-w-4xl mx-auto py-12 space-y-8 text-center">
3363
+ <h1 className="text-3xl sm:text-4xl font-extrabold">How can our support team help you?</h1>
3364
+
3365
+ <div className="max-w-md mx-auto relative">
3366
+ <Search className="absolute left-3.5 top-3 h-4 w-4 opacity-50" />
3367
+ <input
3368
+ type="text"
3369
+ value={query}
3370
+ onChange={(e) => setQuery(e.target.value)}
3371
+ placeholder="Search guides, 2FA, billing..."
3372
+ className="w-full pl-10 pr-4 py-2.5 rounded-xl border border-white/10 bg-[#12141c] text-xs outline-none"
3373
+ />
3374
+ </div>
3375
+
3376
+ <div className="grid grid-cols-1 sm:grid-cols-2 gap-4 text-left">
3377
+ {categories.map((c) => {
3378
+ const Icon = c.icon;
3379
+ return (
3380
+ <div key={c.title} className="p-4 rounded-2xl border border-white/10 bg-[#12141c] flex items-center justify-between text-xs">
3381
+ <div className="flex items-center gap-3">
3382
+ <div className="p-2 rounded-xl bg-indigo-500/10 text-indigo-400">
3383
+ <Icon className="h-4 w-4" />
3384
+ </div>
3385
+ <div>
3386
+ <div className="font-bold">{c.title}</div>
3387
+ <div className="text-[10px] text-zinc-400">{c.count}</div>
3388
+ </div>
3389
+ </div>
3390
+ </div>
3391
+ );
3392
+ })}
3393
+ </div>
3394
+ </main>
3395
+ </div>
3396
+ );
3397
+ }
3398
+ `
3399
+ };
3400
+
3401
+ // src/registry/template-fitness-athletics.ts
3402
+ var templateFitnessAthletics = {
3403
+ name: "template-fitness-athletics",
3404
+ dependencies: ["framer-motion", "lucide-react"],
3405
+ fileName: "template-fitness-athletics.tsx",
3406
+ content: `"use client";
3407
+
3408
+ import React, { useState } from "react";
3409
+ import { Activity, Heart, Flame, Trophy, Timer, Plus, CheckCircle2 } from "lucide-react";
3410
+
3411
+ export default function FitnessAthleticsTemplate() {
3412
+ const [bpm, setBpm] = useState(158);
3413
+ const [intervals, setIntervals] = useState([
3414
+ { title: "Dynamic Hip Mobility", target: "10 min \u2022 Zone 1", done: true },
3415
+ { title: "Progressive Aerobic Build", target: "15 min @ 140 BPM", done: true },
3416
+ { title: "4 x 1,000m Lactate Repeats", target: "4 reps @ 3:42/km", done: false },
3417
+ ]);
3418
+
3419
+ return (
3420
+ <div
3421
+ className="min-h-screen transition-colors text-left p-6 font-sans max-w-5xl mx-auto"
3422
+ style={{
3423
+ backgroundColor: "var(--template-bg, #ffffff)",
3424
+ color: "var(--template-fg, #0f172a)",
3425
+ }}
3426
+ >
3427
+ <header className="flex justify-between items-center pb-6 border-b" style={{ borderColor: "var(--template-border, #e2e8f0)" }}>
3428
+ <div className="flex items-center gap-2">
3429
+ <Activity className="w-5 h-5 text-rose-500" />
3430
+ <span className="font-bold text-base">AeroPulse Athletics</span>
3431
+ </div>
3432
+ <div className="text-xs font-mono px-3 py-1.5 rounded-full border" style={{ borderColor: "var(--template-border, #e2e8f0)" }}>
3433
+ Recovery: 88% Ready
3434
+ </div>
3435
+ </header>
3436
+
3437
+ <main className="py-8 space-y-6">
3438
+ <div className="grid grid-cols-1 sm:grid-cols-3 gap-4">
3439
+ <div className="p-4 rounded-xl border" style={{ backgroundColor: "var(--template-surface, #f8f9fa)", borderColor: "var(--template-border, #e2e8f0)" }}>
3440
+ <span className="text-xs opacity-70">Daily Strain</span>
3441
+ <div className="text-2xl font-extrabold mt-1">14.8 / 21.0</div>
3442
+ </div>
3443
+ <div className="p-4 rounded-xl border" style={{ backgroundColor: "var(--template-surface, #f8f9fa)", borderColor: "var(--template-border, #e2e8f0)" }}>
3444
+ <span className="text-xs opacity-70">Current Target BPM</span>
3445
+ <div className="text-2xl font-extrabold text-indigo-600 mt-1">{bpm} BPM</div>
3446
+ </div>
3447
+ <div className="p-4 rounded-xl border" style={{ backgroundColor: "var(--template-surface, #f8f9fa)", borderColor: "var(--template-border, #e2e8f0)" }}>
3448
+ <span className="text-xs opacity-70">Resting Heart Rate</span>
3449
+ <div className="text-2xl font-extrabold text-emerald-600 mt-1">48 bpm</div>
3450
+ </div>
3451
+ </div>
3452
+
3453
+ <div className="p-6 rounded-2xl border" style={{ backgroundColor: "var(--template-surface, #f8f9fa)", borderColor: "var(--template-border, #e2e8f0)" }}>
3454
+ <h3 className="font-bold text-sm mb-2">Cardio Zone Spectrum</h3>
3455
+ <input
3456
+ type="range"
3457
+ min="100"
3458
+ max="195"
3459
+ value={bpm}
3460
+ onChange={(e) => setBpm(Number(e.target.value))}
3461
+ className="w-full accent-indigo-600"
3462
+ />
3463
+ </div>
3464
+ </main>
3465
+ </div>
3466
+ );
3467
+ }`
3468
+ };
3469
+
3470
+ // src/registry/template-wilderness-travel.ts
3471
+ var templateWildernessTravel = {
3472
+ name: "template-wilderness-travel",
3473
+ dependencies: ["framer-motion", "lucide-react"],
3474
+ fileName: "template-wilderness-travel.tsx",
3475
+ content: `"use client";
3476
+
3477
+ import React, { useState } from "react";
3478
+ import { Compass, Mountain, Scale, Radio, Tent } from "lucide-react";
3479
+
3480
+ export default function WildernessTravelTemplate() {
3481
+ const [baseWeight, setBaseWeight] = useState(6.4);
3482
+ const [foodDays, setFoodDays] = useState(6);
3483
+ const totalWeight = (baseWeight + foodDays * 0.75 + 2.0).toFixed(1);
3484
+
3485
+ return (
3486
+ <div
3487
+ className="min-h-screen transition-colors text-left p-6 font-sans max-w-5xl mx-auto"
3488
+ style={{
3489
+ backgroundColor: "var(--template-bg, #ffffff)",
3490
+ color: "var(--template-fg, #0f172a)",
3491
+ }}
3492
+ >
3493
+ <header className="flex justify-between items-center pb-6 border-b" style={{ borderColor: "var(--template-border, #e2e8f0)" }}>
3494
+ <div className="flex items-center gap-2">
3495
+ <Compass className="w-5 h-5 text-emerald-600" />
3496
+ <span className="font-bold text-base">NomadRoute Expeditions</span>
3497
+ </div>
3498
+ <button className="px-3.5 py-1.5 rounded-xl text-xs font-semibold text-white bg-emerald-600">
3499
+ Reserve Permits
3500
+ </button>
3501
+ </header>
3502
+
3503
+ <main className="py-8 space-y-6">
3504
+ <div className="p-6 rounded-2xl border" style={{ backgroundColor: "var(--template-surface, #f8f9fa)", borderColor: "var(--template-border, #e2e8f0)" }}>
3505
+ <h2 className="text-xl font-extrabold mb-1">Patagonia High Icefield Crossing</h2>
3506
+ <p className="text-xs opacity-70">148 km \u2022 +6,850m Cumulative Gain \u2022 8 Days</p>
3507
+ </div>
3508
+
3509
+ <div className="p-6 rounded-2xl border" style={{ backgroundColor: "var(--template-surface, #f8f9fa)", borderColor: "var(--template-border, #e2e8f0)" }}>
3510
+ <div className="flex items-center justify-between mb-4">
3511
+ <h3 className="font-bold text-sm">Skin-Out Pack Weight: {totalWeight} kg</h3>
3512
+ <span className="text-xs px-2 py-0.5 rounded bg-emerald-500/10 text-emerald-600 font-bold">Ultralight Load</span>
3513
+ </div>
3514
+ <input
3515
+ type="range"
3516
+ min="4.0"
3517
+ max="12.0"
3518
+ step="0.2"
3519
+ value={baseWeight}
3520
+ onChange={(e) => setBaseWeight(parseFloat(e.target.value))}
3521
+ className="w-full accent-emerald-600"
3522
+ />
3523
+ </div>
3524
+ </main>
3525
+ </div>
3526
+ );
3527
+ }`
3528
+ };
3529
+
3530
+ // src/registry/template-devops-kubernetes.ts
3531
+ var templateDevopsKubernetes = {
3532
+ name: "template-devops-kubernetes",
3533
+ dependencies: ["framer-motion", "lucide-react"],
3534
+ fileName: "template-devops-kubernetes.tsx",
3535
+ content: `"use client";
3536
+
3537
+ import React, { useState } from "react";
3538
+ import { Server, Cpu, Database, Terminal, Search, SlidersHorizontal } from "lucide-react";
3539
+
3540
+ export default function DevopsKubernetesTemplate() {
3541
+ const [canary, setCanary] = useState(15);
3542
+
3543
+ return (
3544
+ <div
3545
+ className="min-h-screen transition-colors text-left p-6 font-mono max-w-5xl mx-auto"
3546
+ style={{
3547
+ backgroundColor: "var(--template-bg, #ffffff)",
3548
+ color: "var(--template-fg, #0f172a)",
3549
+ }}
3550
+ >
3551
+ <header className="flex justify-between items-center pb-6 border-b font-sans" style={{ borderColor: "var(--template-border, #e2e8f0)" }}>
3552
+ <div className="flex items-center gap-2">
3553
+ <Server className="w-5 h-5 text-indigo-600" />
3554
+ <span className="font-bold text-base">KubeOrbit Cloud</span>
3555
+ </div>
3556
+ <span className="text-xs px-2.5 py-1 rounded-full bg-emerald-500/10 text-emerald-600 border border-emerald-500/20 font-mono">
3557
+ 242/248 Pods Healthy
3558
+ </span>
3559
+ </header>
3560
+
3561
+ <main className="py-8 space-y-6">
3562
+ <div className="p-6 rounded-2xl border font-sans" style={{ backgroundColor: "var(--template-surface, #f8f9fa)", borderColor: "var(--template-border, #e2e8f0)" }}>
3563
+ <h3 className="font-bold text-sm mb-2">Canary Ingress Weight: {canary}%</h3>
3564
+ <input
3565
+ type="range"
3566
+ min="0"
3567
+ max="100"
3568
+ value={canary}
3569
+ onChange={(e) => setCanary(Number(e.target.value))}
3570
+ className="w-full accent-indigo-600"
3571
+ />
3572
+ </div>
3573
+ </main>
3574
+ </div>
3575
+ );
3576
+ }`
3577
+ };
3578
+
3579
+ // src/registry/template-audio-daw.ts
3580
+ var templateAudioDaw = {
3581
+ name: "template-audio-daw",
3582
+ dependencies: ["framer-motion", "lucide-react"],
3583
+ fileName: "template-audio-daw.tsx",
3584
+ content: `"use client";
3585
+
3586
+ import React, { useState, useEffect } from "react";
3587
+ import { Play, Pause, Disc, Sliders, Volume2, ShoppingBag } from "lucide-react";
3588
+
3589
+ export default function AudioDawTemplate() {
3590
+ const [isPlaying, setIsPlaying] = useState(false);
3591
+ const [bpm, setBpm] = useState(140);
3592
+ const [step, setStep] = useState(0);
3593
+
3594
+ useEffect(() => {
3595
+ let interval: NodeJS.Timeout;
3596
+ if (isPlaying) {
3597
+ interval = setInterval(() => setStep((s) => (s + 1) % 16), (60 / bpm / 4) * 1000);
3598
+ }
3599
+ return () => clearInterval(interval);
3600
+ }, [isPlaying, bpm]);
3601
+
3602
+ return (
3603
+ <div
3604
+ className="min-h-screen transition-colors text-left p-6 font-sans max-w-5xl mx-auto"
3605
+ style={{
3606
+ backgroundColor: "var(--template-bg, #ffffff)",
3607
+ color: "var(--template-fg, #0f172a)",
3608
+ }}
3609
+ >
3610
+ <header className="flex justify-between items-center pb-6 border-b" style={{ borderColor: "var(--template-border, #e2e8f0)" }}>
3611
+ <div className="flex items-center gap-2">
3612
+ <Disc className="w-5 h-5 text-purple-600" />
3613
+ <span className="font-bold text-base">SoundForge Studio</span>
3614
+ </div>
3615
+ <button onClick={() => setIsPlaying(!isPlaying)} className="px-4 py-2 rounded-xl text-xs font-semibold text-white bg-purple-600 flex items-center gap-1.5">
3616
+ {isPlaying ? <Pause className="w-3.5 h-3.5" /> : <Play className="w-3.5 h-3.5" />}
3617
+ <span>{isPlaying ? "Pause" : "Play Groove"}</span>
3618
+ </button>
3619
+ </header>
3620
+
3621
+ <main className="py-8 space-y-6">
3622
+ <div className="p-6 rounded-2xl border" style={{ backgroundColor: "var(--template-surface, #f8f9fa)", borderColor: "var(--template-border, #e2e8f0)" }}>
3623
+ <div className="flex justify-between items-center mb-4">
3624
+ <h3 className="font-bold text-sm">16-Step Beat Grid ({bpm} BPM)</h3>
3625
+ <span className="font-mono text-xs opacity-60">Step {step + 1} / 16</span>
3626
+ </div>
3627
+ <div className="grid grid-cols-16 gap-1">
3628
+ {Array.from({ length: 16 }).map((_, i) => (
3629
+ <div key={i} className={\`h-10 rounded border \${step === i && isPlaying ? "bg-purple-600 text-white" : "bg-zinc-100 dark:bg-zinc-800"}\`} />
3630
+ ))}
3631
+ </div>
3632
+ </div>
3633
+ </main>
3634
+ </div>
3635
+ );
3636
+ }`
3637
+ };
3638
+
3639
+ // src/registry/template-gamified-habits.ts
3640
+ var templateGamifiedHabits = {
3641
+ name: "template-gamified-habits",
3642
+ dependencies: ["framer-motion", "lucide-react"],
3643
+ fileName: "template-gamified-habits.tsx",
3644
+ content: `"use client";
3645
+
3646
+ import React, { useState } from "react";
3647
+ import { Shield, Sword, Sparkles, Coins, Flame, CheckCircle2 } from "lucide-react";
3648
+
3649
+ export default function GamifiedHabitsTemplate() {
3650
+ const [xp, setXp] = useState(2450);
3651
+ const [gold, setGold] = useState(1420);
3652
+ const [quests, setQuests] = useState([
3653
+ { id: 1, title: "Slay 90m Deep Focus Work Block", xp: 180, done: false },
3654
+ { id: 2, title: "Drink 2.5L Water Elixir", xp: 60, done: true },
3655
+ ]);
3656
+
3657
+ const toggle = (id: number, questXp: number) => {
3658
+ setQuests((prev) =>
3659
+ prev.map((q) => {
3660
+ if (q.id === id && !q.done) {
3661
+ setXp((x) => x + questXp);
3662
+ setGold((g) => g + 40);
3663
+ return { ...q, done: true };
3664
+ }
3665
+ return q;
3666
+ })
3667
+ );
3668
+ };
3669
+
3670
+ return (
3671
+ <div
3672
+ className="min-h-screen transition-colors text-left p-6 font-sans max-w-5xl mx-auto"
3673
+ style={{
3674
+ backgroundColor: "var(--template-bg, #ffffff)",
3675
+ color: "var(--template-fg, #0f172a)",
3676
+ }}
3677
+ >
3678
+ <header className="flex justify-between items-center pb-6 border-b" style={{ borderColor: "var(--template-border, #e2e8f0)" }}>
3679
+ <div className="flex items-center gap-2">
3680
+ <Shield className="w-5 h-5 text-amber-500" />
3681
+ <span className="font-bold text-base">QuestCraft RPG</span>
3682
+ </div>
3683
+ <div className="text-xs font-mono font-bold text-amber-500 flex items-center gap-1">
3684
+ <Coins className="w-3.5 h-3.5" />
3685
+ <span>{gold} Gold</span>
3686
+ </div>
3687
+ </header>
3688
+
3689
+ <main className="py-8 space-y-6">
3690
+ <div className="p-6 rounded-2xl border" style={{ backgroundColor: "var(--template-surface, #f8f9fa)", borderColor: "var(--template-border, #e2e8f0)" }}>
3691
+ <h2 className="font-extrabold text-base mb-1">Level 14 Paladin \u2022 {xp} / 3,000 XP</h2>
3692
+ <div className="w-full h-2 bg-zinc-200 dark:bg-zinc-800 rounded-full overflow-hidden">
3693
+ <div className="h-full bg-amber-500" style={{ width: \`\${(xp / 3000) * 100}%\` }} />
3694
+ </div>
3695
+ </div>
3696
+ </main>
3697
+ </div>
3698
+ );
3699
+ }`
3700
+ };
3701
+
3702
+ // src/registry/template-global-logistics.ts
3703
+ var templateGlobalLogistics = {
3704
+ name: "template-global-logistics",
3705
+ dependencies: ["framer-motion", "lucide-react"],
3706
+ fileName: "template-global-logistics.tsx",
3707
+ content: `"use client";
3708
+
3709
+ import React, { useState } from "react";
3710
+ import { Ship, Truck, Thermometer, Anchor, Navigation } from "lucide-react";
3711
+
3712
+ export default function GlobalLogisticsTemplate() {
3713
+ const [activeStage, setActiveStage] = useState(2);
3714
+
3715
+ return (
3716
+ <div
3717
+ className="min-h-screen transition-colors text-left p-6 font-sans max-w-5xl mx-auto"
3718
+ style={{
3719
+ backgroundColor: "var(--template-bg, #ffffff)",
3720
+ color: "var(--template-fg, #0f172a)",
3721
+ }}
3722
+ >
3723
+ <header className="flex justify-between items-center pb-6 border-b" style={{ borderColor: "var(--template-border, #e2e8f0)" }}>
3724
+ <div className="flex items-center gap-2">
3725
+ <Anchor className="w-5 h-5 text-cyan-600" />
3726
+ <span className="font-bold text-base">Vanguard Logistics</span>
3727
+ </div>
3728
+ <span className="text-xs font-mono text-emerald-600 font-bold">14 Vessels Active</span>
3729
+ </header>
3730
+
3731
+ <main className="py-8 space-y-6">
3732
+ <div className="p-6 rounded-2xl border" style={{ backgroundColor: "var(--template-surface, #f8f9fa)", borderColor: "var(--template-border, #e2e8f0)" }}>
3733
+ <span className="text-xs font-mono opacity-60">MASTER BILL OF LADING</span>
3734
+ <h2 className="text-xl font-extrabold font-mono mt-1">BOL-849204-HKG</h2>
3735
+ <p className="text-xs opacity-70 mt-1">Shenzhen (YTN) &rarr; Rotterdam Gateway (RTM)</p>
3736
+ </div>
3737
+ </main>
3738
+ </div>
3739
+ );
3740
+ }`
3741
+ };
3742
+
3743
+ // src/registry/template-gaming-esports.ts
3744
+ var templateGamingEsports = {
3745
+ name: "template-gaming-esports",
3746
+ dependencies: ["framer-motion", "lucide-react"],
3747
+ fileName: "template-gaming-esports.tsx",
3748
+ content: `"use client";
3749
+
3750
+ import React, { useState } from "react";
3751
+ import { Trophy, Tv, Users, Target, Crown } from "lucide-react";
3752
+
3753
+ export default function GamingEsportsTemplate() {
3754
+ const [votes, setVotes] = useState(64);
3755
+
3756
+ return (
3757
+ <div
3758
+ className="min-h-screen transition-colors text-left p-6 font-sans max-w-5xl mx-auto"
3759
+ style={{
3760
+ backgroundColor: "var(--template-bg, #ffffff)",
3761
+ color: "var(--template-fg, #0f172a)",
3762
+ }}
3763
+ >
3764
+ <header className="flex justify-between items-center pb-6 border-b" style={{ borderColor: "var(--template-border, #e2e8f0)" }}>
3765
+ <div className="flex items-center gap-2">
3766
+ <Trophy className="w-5 h-5 text-rose-500" />
3767
+ <span className="font-bold text-base">Valkyrie Esports</span>
3768
+ </div>
3769
+ <span className="text-xs font-bold text-rose-500 font-mono">LIVE \u2022 284k Viewers</span>
3770
+ </header>
3771
+
3772
+ <main className="py-8 space-y-6">
3773
+ <div className="p-6 rounded-2xl border flex items-center justify-between" style={{ backgroundColor: "var(--template-surface, #f8f9fa)", borderColor: "var(--template-border, #e2e8f0)" }}>
3774
+ <div className="font-extrabold text-lg">Sentinels (11)</div>
3775
+ <div className="font-mono text-xs opacity-60">Map 5 Inferno</div>
3776
+ <div className="font-extrabold text-lg">Cloud9 (9)</div>
3777
+ </div>
3778
+ </main>
3779
+ </div>
3780
+ );
3781
+ }`
3782
+ };
3783
+
3784
+ // src/registry/template-architecture-spatial.ts
3785
+ var templateArchitectureSpatial = {
3786
+ name: "template-architecture-spatial",
3787
+ dependencies: ["framer-motion", "lucide-react"],
3788
+ fileName: "template-architecture-spatial.tsx",
3789
+ content: `"use client";
3790
+
3791
+ import React, { useState } from "react";
3792
+ import { Layers, Sun, Building, FileText } from "lucide-react";
3793
+
3794
+ export default function ArchitectureSpatialTemplate() {
3795
+ const [hour, setHour] = useState(13);
3796
+
3797
+ return (
3798
+ <div
3799
+ className="min-h-screen transition-colors text-left p-6 font-sans max-w-5xl mx-auto"
3800
+ style={{
3801
+ backgroundColor: "var(--template-bg, #ffffff)",
3802
+ color: "var(--template-fg, #0f172a)",
3803
+ }}
3804
+ >
3805
+ <header className="flex justify-between items-center pb-6 border-b" style={{ borderColor: "var(--template-border, #e2e8f0)" }}>
3806
+ <div className="flex items-center gap-2">
3807
+ <Building className="w-5 h-5 text-amber-600" />
3808
+ <span className="font-bold text-base">Arcform Spatial</span>
3809
+ </div>
3810
+ <span className="text-xs px-2.5 py-1 rounded-full bg-emerald-500/10 text-emerald-600 font-mono">
3811
+ LEED Platinum \u2022 620 m\xB2
3812
+ </span>
3813
+ </header>
3814
+
3815
+ <main className="py-8 space-y-6">
3816
+ <div className="p-6 rounded-2xl border" style={{ backgroundColor: "var(--template-surface, #f8f9fa)", borderColor: "var(--template-border, #e2e8f0)" }}>
3817
+ <h3 className="font-bold text-sm mb-2">Solar Daylight Azimuth ({hour}:00 JST)</h3>
3818
+ <input
3819
+ type="range"
3820
+ min="8"
3821
+ max="18"
3822
+ value={hour}
3823
+ onChange={(e) => setHour(Number(e.target.value))}
3824
+ className="w-full accent-amber-600"
3825
+ />
3826
+ </div>
3827
+ </main>
3828
+ </div>
3829
+ );
3830
+ }`
3831
+ };
3832
+
3833
+ // src/registry/template-cybersecurity-soc.ts
3834
+ var templateCybersecuritySoc = {
3835
+ name: "template-cybersecurity-soc",
3836
+ dependencies: ["framer-motion", "lucide-react"],
3837
+ fileName: "template-cybersecurity-soc.tsx",
3838
+ content: `"use client";
3839
+
3840
+ import React, { useState } from "react";
3841
+ import { ShieldAlert, Terminal, Lock, CheckCircle2 } from "lucide-react";
3842
+
3843
+ export default function CybersecuritySocTemplate() {
3844
+ const [quarantined, setQuarantined] = useState(false);
3845
+
3846
+ return (
3847
+ <div
3848
+ className="min-h-screen transition-colors text-left p-6 font-mono max-w-5xl mx-auto"
3849
+ style={{
3850
+ backgroundColor: "var(--template-bg, #ffffff)",
3851
+ color: "var(--template-fg, #0f172a)",
3852
+ }}
3853
+ >
3854
+ <header className="flex justify-between items-center pb-6 border-b font-sans" style={{ borderColor: "var(--template-border, #e2e8f0)" }}>
3855
+ <div className="flex items-center gap-2">
3856
+ <ShieldAlert className="w-5 h-5 text-rose-600" />
3857
+ <span className="font-bold text-base">Aegis SOC</span>
3858
+ </div>
3859
+ <button
3860
+ onClick={() => setQuarantined(!quarantined)}
3861
+ className={\`px-3.5 py-1.5 rounded-xl text-xs font-semibold text-white \${quarantined ? "bg-gray-600" : "bg-rose-600"}\`}
3862
+ >
3863
+ {quarantined ? "Host Air-Gapped" : "Isolate Host"}
3864
+ </button>
3865
+ </header>
3866
+
3867
+ <main className="py-8 space-y-6">
3868
+ <div className="p-6 rounded-2xl border" style={{ backgroundColor: "var(--template-surface, #f8f9fa)", borderColor: "var(--template-border, #e2e8f0)" }}>
3869
+ <div className="text-xs text-rose-600 font-bold mb-1">CRITICAL \u2022 MITRE T1021.002</div>
3870
+ <h2 className="text-base font-extrabold font-sans">Pass-the-Hash Lateral Movement via SMB</h2>
3871
+ <p className="text-xs opacity-70 mt-1">Target Host: srv-dc-primary-01.internal (10.240.12.8)</p>
3872
+ </div>
3873
+ </main>
3874
+ </div>
3875
+ );
3876
+ }`
3877
+ };
3878
+
3879
+ // src/registry/template-cleantech-agriculture.ts
3880
+ var templateCleantechAgriculture = {
3881
+ name: "template-cleantech-agriculture",
3882
+ dependencies: ["framer-motion", "lucide-react"],
3883
+ fileName: "template-cleantech-agriculture.tsx",
3884
+ content: `"use client";
3885
+
3886
+ import React, { useState } from "react";
3887
+ import { Sprout, Droplets, Sun, Wind, Leaf } from "lucide-react";
3888
+
3889
+ export default function CleantechAgricultureTemplate() {
3890
+ const [ph, setPh] = useState(6.2);
3891
+ const [red, setRed] = useState(65);
3892
+
3893
+ return (
3894
+ <div
3895
+ className="min-h-screen transition-colors text-left p-6 font-sans max-w-5xl mx-auto"
3896
+ style={{
3897
+ backgroundColor: "var(--template-bg, #ffffff)",
3898
+ color: "var(--template-fg, #0f172a)",
3899
+ }}
3900
+ >
3901
+ <header className="flex justify-between items-center pb-6 border-b" style={{ borderColor: "var(--template-border, #e2e8f0)" }}>
3902
+ <div className="flex items-center gap-2">
3903
+ <Sprout className="w-5 h-5 text-emerald-600" />
3904
+ <span className="font-bold text-base">Verdant IoT</span>
3905
+ </div>
3906
+ <span className="text-xs font-mono text-emerald-600 font-bold">98.4% Water Recycled</span>
3907
+ </header>
3908
+
3909
+ <main className="py-8 space-y-6">
3910
+ <div className="p-6 rounded-2xl border" style={{ backgroundColor: "var(--template-surface, #f8f9fa)", borderColor: "var(--template-border, #e2e8f0)" }}>
3911
+ <h3 className="font-bold text-sm mb-2">Hydroponic pH Level: {ph}</h3>
3912
+ <input
3913
+ type="range"
3914
+ min="5.5"
3915
+ max="7.0"
3916
+ step="0.1"
3917
+ value={ph}
3918
+ onChange={(e) => setPh(parseFloat(e.target.value))}
3919
+ className="w-full accent-emerald-600"
3920
+ />
3921
+ </div>
3922
+ </main>
3923
+ </div>
3924
+ );
3925
+ }`
3926
+ };
3927
+
3928
+ // src/registry/template-juris-vault.ts
3929
+ var templateJurisVault = {
3930
+ name: "template-juris-vault",
3931
+ dependencies: ["lucide-react"],
3932
+ fileName: "template-juris-vault.tsx",
3933
+ content: `"use client";
3934
+
3935
+ import React, { useState } from "react";
3936
+ import { Scale, FileText, CheckCircle2, AlertTriangle, PenTool } from "lucide-react";
3937
+
3938
+ export default function JurisVaultTemplate() {
3939
+ const [signed, setSigned] = useState(false);
3940
+
3941
+ return (
3942
+ <div
3943
+ className="min-h-screen transition-colors text-left p-6 font-sans max-w-5xl mx-auto"
3944
+ style={{
3945
+ backgroundColor: "var(--template-bg, #ffffff)",
3946
+ color: "var(--template-fg, #0f172a)",
3947
+ }}
3948
+ >
3949
+ <header className="flex justify-between items-center pb-6 border-b" style={{ borderColor: "var(--template-border, #e2e8f0)" }}>
3950
+ <div className="flex items-center gap-2">
3951
+ <Scale className="w-5 h-5 text-indigo-600" />
3952
+ <span className="font-bold text-base">JurisVault AI</span>
3953
+ </div>
3954
+ <button
3955
+ onClick={() => setSigned(true)}
3956
+ className="px-3.5 py-1.5 rounded-xl text-xs font-semibold text-white bg-indigo-600 transition-opacity hover:opacity-90"
3957
+ >
3958
+ {signed ? "Executed & Signed" : "Approve & E-Sign"}
3959
+ </button>
3960
+ </header>
3961
+
3962
+ <main className="py-8 space-y-6">
3963
+ <div className="p-6 rounded-2xl border" style={{ backgroundColor: "var(--template-surface, #f8f9fa)", borderColor: "var(--template-border, #e2e8f0)" }}>
3964
+ <div className="text-xs text-rose-600 font-bold mb-1">CRITICAL RISK \u2022 SEC-8.2</div>
3965
+ <h2 className="text-base font-bold">Limitation of Liability & Consequential Damages</h2>
3966
+ <p className="text-xs opacity-70 mt-2">Counterparty proposes uncapped liability. Recommended: Insert 2x ACV fallback clause.</p>
3967
+ </div>
3968
+ </main>
3969
+ </div>
3970
+ );
3971
+ }`
3972
+ };
3973
+
3974
+ // src/registry/template-orbitalx-mission.ts
3975
+ var templateOrbitalxMission = {
3976
+ name: "template-orbitalx-mission",
3977
+ dependencies: ["lucide-react"],
3978
+ fileName: "template-orbitalx-mission.tsx",
3979
+ content: `"use client";
3980
+
3981
+ import React, { useState } from "react";
3982
+ import { Satellite, Radio, Compass, Zap, Terminal } from "lucide-react";
3983
+
3984
+ export default function OrbitalXTemplate() {
3985
+ const [armed, setArmed] = useState(false);
3986
+
3987
+ return (
3988
+ <div
3989
+ className="min-h-screen transition-colors text-left p-6 font-mono max-w-5xl mx-auto"
3990
+ style={{
3991
+ backgroundColor: "var(--template-bg, #ffffff)",
3992
+ color: "var(--template-fg, #0f172a)",
3993
+ }}
3994
+ >
3995
+ <header className="flex justify-between items-center pb-6 border-b font-sans" style={{ borderColor: "var(--template-border, #e2e8f0)" }}>
3996
+ <div className="flex items-center gap-2">
3997
+ <Satellite className="w-5 h-5 text-blue-600" />
3998
+ <span className="font-bold text-base">OrbitalX Operations</span>
3999
+ </div>
4000
+ <span className="text-xs font-mono text-emerald-500 font-bold">AOS in 04m 12s</span>
4001
+ </header>
4002
+
4003
+ <main className="py-8 space-y-6">
4004
+ <div className="p-6 rounded-2xl border" style={{ backgroundColor: "var(--template-surface, #f8f9fa)", borderColor: "var(--template-border, #e2e8f0)" }}>
4005
+ <div className="text-xs opacity-60">ORBITAL VELOCITY: 7.58 km/s \u2022 LEO 545 km</div>
4006
+ <h2 className="text-base font-bold font-sans mt-1">AstraConstellation-07 (NORAD 58210)</h2>
4007
+ <p className="text-xs opacity-75 mt-2">Propellant: 78.4% Hydrazine \u2022 Solar: 1,420 W Nominal</p>
4008
+ </div>
4009
+ </main>
4010
+ </div>
4011
+ );
4012
+ }`
4013
+ };
4014
+
4015
+ // src/registry/template-cineboard-studio.ts
4016
+ var templateCineboardStudio = {
4017
+ name: "template-cineboard-studio",
4018
+ dependencies: ["lucide-react"],
4019
+ fileName: "template-cineboard-studio.tsx",
4020
+ content: `"use client";
4021
+
4022
+ import React, { useState } from "react";
4023
+ import { Clapperboard, Film, Camera, Video } from "lucide-react";
4024
+
4025
+ export default function CineBoardTemplate() {
4026
+ const [ratio, setRatio] = useState("2.39:1");
4027
+
4028
+ return (
4029
+ <div
4030
+ className="min-h-screen transition-colors text-left p-6 font-sans max-w-5xl mx-auto"
4031
+ style={{
4032
+ backgroundColor: "var(--template-bg, #ffffff)",
4033
+ color: "var(--template-fg, #0f172a)",
4034
+ }}
4035
+ >
4036
+ <header className="flex justify-between items-center pb-6 border-b" style={{ borderColor: "var(--template-border, #e2e8f0)" }}>
4037
+ <div className="flex items-center gap-2">
4038
+ <Clapperboard className="w-5 h-5 text-rose-600" />
4039
+ <span className="font-bold text-base">CineBoard Studio</span>
4040
+ </div>
4041
+ <div className="text-xs font-mono font-bold bg-rose-600/10 text-rose-600 px-2 py-1 rounded">
4042
+ Framing: {ratio}
4043
+ </div>
4044
+ </header>
4045
+
4046
+ <main className="py-8 space-y-6">
4047
+ <div className="p-6 rounded-2xl border" style={{ backgroundColor: "var(--template-surface, #f8f9fa)", borderColor: "var(--template-border, #e2e8f0)" }}>
4048
+ <h2 className="text-base font-bold">SCENE 14A \u2022 SHOT 01 (EXT. HIGHWAY DUSK)</h2>
4049
+ <p className="text-xs opacity-75 mt-1">Cooke Anamorphic 40mm T2.3 \u2022 Drone Push-In (3.2m/s)</p>
4050
+ </div>
4051
+ </main>
4052
+ </div>
4053
+ );
4054
+ }`
4055
+ };
4056
+
4057
+ // src/registry/template-domus-living.ts
4058
+ var templateDomusLiving = {
4059
+ name: "template-domus-living",
4060
+ dependencies: ["lucide-react"],
4061
+ fileName: "template-domus-living.tsx",
4062
+ content: `"use client";
4063
+
4064
+ import React, { useState } from "react";
4065
+ import { Home, Thermometer, Sun, Zap, ShieldCheck } from "lucide-react";
4066
+
4067
+ export default function DomusLivingTemplate() {
4068
+ const [temp, setTemp] = useState(21.5);
4069
+
4070
+ return (
4071
+ <div
4072
+ className="min-h-screen transition-colors text-left p-6 font-sans max-w-5xl mx-auto"
4073
+ style={{
4074
+ backgroundColor: "var(--template-bg, #ffffff)",
4075
+ color: "var(--template-fg, #0f172a)",
4076
+ }}
4077
+ >
4078
+ <header className="flex justify-between items-center pb-6 border-b" style={{ borderColor: "var(--template-border, #e2e8f0)" }}>
4079
+ <div className="flex items-center gap-2">
4080
+ <Home className="w-5 h-5 text-emerald-600" />
4081
+ <span className="font-bold text-base">Domus Living</span>
4082
+ </div>
4083
+ <span className="text-xs font-semibold text-emerald-600">Perimeter Armed</span>
4084
+ </header>
4085
+
4086
+ <main className="py-8 space-y-6">
4087
+ <div className="p-6 rounded-2xl border" style={{ backgroundColor: "var(--template-surface, #f8f9fa)", borderColor: "var(--template-border, #e2e8f0)" }}>
4088
+ <h3 className="font-bold text-sm mb-2">Living Pavilion Climate: {temp}\xB0C</h3>
4089
+ <input
4090
+ type="range"
4091
+ min="18.0"
4092
+ max="26.0"
4093
+ step="0.5"
4094
+ value={temp}
4095
+ onChange={(e) => setTemp(parseFloat(e.target.value))}
4096
+ className="w-full accent-emerald-600"
4097
+ />
4098
+ </div>
4099
+ </main>
4100
+ </div>
4101
+ );
4102
+ }`
4103
+ };
4104
+
4105
+ // src/registry/template-hyperion-ev.ts
4106
+ var templateHyperionEv = {
4107
+ name: "template-hyperion-ev",
4108
+ dependencies: ["lucide-react"],
4109
+ fileName: "template-hyperion-ev.tsx",
4110
+ content: `"use client";
4111
+
4112
+ import React, { useState } from "react";
4113
+ import { Car, BatteryCharging, Zap, Gauge } from "lucide-react";
4114
+
4115
+ export default function HyperionEvTemplate() {
4116
+ const [soc, setSoc] = useState(74);
4117
+
4118
+ return (
4119
+ <div
4120
+ className="min-h-screen transition-colors text-left p-6 font-sans max-w-5xl mx-auto"
4121
+ style={{
4122
+ backgroundColor: "var(--template-bg, #ffffff)",
4123
+ color: "var(--template-fg, #0f172a)",
4124
+ }}
4125
+ >
4126
+ <header className="flex justify-between items-center pb-6 border-b" style={{ borderColor: "var(--template-border, #e2e8f0)" }}>
4127
+ <div className="flex items-center gap-2">
4128
+ <Car className="w-5 h-5 text-cyan-600" />
4129
+ <span className="font-bold text-base">Hyperion Fleet EV</span>
4130
+ </div>
4131
+ <span className="text-xs font-mono font-bold text-cyan-600">{soc}% SoC</span>
4132
+ </header>
4133
+
4134
+ <main className="py-8 space-y-6">
4135
+ <div className="p-6 rounded-2xl border" style={{ backgroundColor: "var(--template-surface, #f8f9fa)", borderColor: "var(--template-border, #e2e8f0)" }}>
4136
+ <h2 className="text-base font-bold">Hyperion Freight Hauler Max (CA-941-EV)</h2>
4137
+ <p className="text-xs opacity-75 mt-1">Usable Capacity: 210 kWh / 280 kWh \u2022 780V Architecture</p>
4138
+ </div>
4139
+ </main>
4140
+ </div>
4141
+ );
4142
+ }`
4143
+ };
4144
+
4145
+ // src/registry/template-sovereign-auctions.ts
4146
+ var templateSovereignAuctions = {
4147
+ name: "template-sovereign-auctions",
4148
+ dependencies: ["lucide-react"],
4149
+ fileName: "template-sovereign-auctions.tsx",
4150
+ content: `"use client";
4151
+
4152
+ import React, { useState } from "react";
4153
+ import { Gavel, ShieldCheck, DollarSign, Award } from "lucide-react";
4154
+
4155
+ export default function SovereignAuctionsTemplate() {
4156
+ const [bid, setBid] = useState(2450000);
4157
+
4158
+ return (
4159
+ <div
4160
+ className="min-h-screen transition-colors text-left p-6 font-sans max-w-5xl mx-auto"
4161
+ style={{
4162
+ backgroundColor: "var(--template-bg, #ffffff)",
4163
+ color: "var(--template-fg, #0f172a)",
4164
+ }}
4165
+ >
4166
+ <header className="flex justify-between items-center pb-6 border-b" style={{ borderColor: "var(--template-border, #e2e8f0)" }}>
4167
+ <div className="flex items-center gap-2">
4168
+ <Gavel className="w-5 h-5 text-amber-600" />
4169
+ <span className="font-bold text-base">Sovereign Auctions</span>
4170
+ </div>
4171
+ <span className="text-xs font-mono font-bold text-amber-600">\${bid.toLocaleString()}</span>
4172
+ </header>
4173
+
4174
+ <main className="py-8 space-y-6">
4175
+ <div className="p-6 rounded-2xl border" style={{ backgroundColor: "var(--template-surface, #f8f9fa)", borderColor: "var(--template-border, #e2e8f0)" }}>
4176
+ <div className="text-xs opacity-60">LOT 24 \u2022 EVENING SALE LONDON</div>
4177
+ <h2 className="text-base font-bold mt-1">Composition in Cadmium & Cobalt Resonance, 1988</h2>
4178
+ <button
4179
+ onClick={() => setBid(bid + 50000)}
4180
+ className="mt-4 px-4 py-2 rounded-xl text-xs font-bold text-white bg-amber-600 transition-opacity hover:opacity-90"
4181
+ >
4182
+ Raise Bid +$50,000
4183
+ </button>
4184
+ </div>
4185
+ </main>
4186
+ </div>
4187
+ );
4188
+ }`
4189
+ };
4190
+
4191
+ // src/registry/template-scholaris-archive.ts
4192
+ var templateScholarisArchive = {
4193
+ name: "template-scholaris-archive",
4194
+ dependencies: ["lucide-react"],
4195
+ fileName: "template-scholaris-archive.tsx",
4196
+ content: `"use client";
4197
+
4198
+ import React, { useState } from "react";
4199
+ import { BookOpen, FileText, Download, Award } from "lucide-react";
4200
+
4201
+ export default function ScholarisArchiveTemplate() {
4202
+ const [copied, setCopied] = useState(false);
4203
+
4204
+ return (
4205
+ <div
4206
+ className="min-h-screen transition-colors text-left p-6 font-sans max-w-5xl mx-auto"
4207
+ style={{
4208
+ backgroundColor: "var(--template-bg, #ffffff)",
4209
+ color: "var(--template-fg, #0f172a)",
4210
+ }}
4211
+ >
4212
+ <header className="flex justify-between items-center pb-6 border-b" style={{ borderColor: "var(--template-border, #e2e8f0)" }}>
4213
+ <div className="flex items-center gap-2">
4214
+ <BookOpen className="w-5 h-5 text-sky-600" />
4215
+ <span className="font-bold text-base">Scholaris Archive</span>
4216
+ </div>
4217
+ <span className="text-xs font-mono text-emerald-600 font-bold">Reproducibility: 9.8/10</span>
4218
+ </header>
4219
+
4220
+ <main className="py-8 space-y-6">
4221
+ <div className="p-6 rounded-2xl border" style={{ backgroundColor: "var(--template-surface, #f8f9fa)", borderColor: "var(--template-border, #e2e8f0)" }}>
4222
+ <div className="text-xs text-sky-600 font-mono font-bold mb-1">DOI: 10.1038/s41586-026-09214-x</div>
4223
+ <h2 className="text-base font-bold">Sub-Quadratic Attention via Orthogonal State Space Projections</h2>
4224
+ <p className="text-xs opacity-75 mt-2">Dr. Evelyn Zhao (Stanford) \u2022 Prof. Kenneth Sterling (MIT)</p>
4225
+ </div>
4226
+ </main>
4227
+ </div>
4228
+ );
4229
+ }`
4230
+ };
4231
+
4232
+ // src/registry/template-talentorbit-hr.ts
4233
+ var templateTalentorbitHr = {
4234
+ name: "template-talentorbit-hr",
4235
+ dependencies: ["lucide-react"],
4236
+ fileName: "template-talentorbit-hr.tsx",
4237
+ content: `"use client";
4238
+
4239
+ import React, { useState } from "react";
4240
+ import { Users, Calendar, Award, MapPin } from "lucide-react";
4241
+
4242
+ export default function TalentOrbitTemplate() {
4243
+ const [ptoDays, setPtoDays] = useState(18);
4244
+
4245
+ return (
4246
+ <div
4247
+ className="min-h-screen transition-colors text-left p-6 font-sans max-w-5xl mx-auto"
4248
+ style={{
4249
+ backgroundColor: "var(--template-bg, #ffffff)",
4250
+ color: "var(--template-fg, #0f172a)",
4251
+ }}
4252
+ >
4253
+ <header className="flex justify-between items-center pb-6 border-b" style={{ borderColor: "var(--template-border, #e2e8f0)" }}>
4254
+ <div className="flex items-center gap-2">
4255
+ <Users className="w-5 h-5 text-violet-600" />
4256
+ <span className="font-bold text-base">TalentOrbit HR</span>
4257
+ </div>
4258
+ <span className="text-xs font-semibold text-violet-600">{ptoDays} Days PTO Left</span>
4259
+ </header>
4260
+
4261
+ <main className="py-8 space-y-6">
4262
+ <div className="p-6 rounded-2xl border" style={{ backgroundColor: "var(--template-surface, #f8f9fa)", borderColor: "var(--template-border, #e2e8f0)" }}>
4263
+ <h2 className="text-base font-bold">Sophia Lindqvist \u2022 VP of Engineering</h2>
4264
+ <p className="text-xs opacity-70 mt-1">Stockholm (UTC+1) \u2022 24 Direct Reports \u2022 Top Performer (9-Box 1A)</p>
4265
+ </div>
4266
+ </main>
4267
+ </div>
4268
+ );
4269
+ }`
4270
+ };
4271
+
4272
+ // src/registry/template-miseenplace-kds.ts
4273
+ var templateMiseenplaceKds = {
4274
+ name: "template-miseenplace-kds",
4275
+ dependencies: ["lucide-react"],
4276
+ fileName: "template-miseenplace-kds.tsx",
4277
+ content: `"use client";
4278
+
4279
+ import React, { useState } from "react";
4280
+ import { UtensilsCrossed, Flame, Clock, Check } from "lucide-react";
4281
+
4282
+ export default function MiseEnPlaceTemplate() {
4283
+ const [bumped, setBumped] = useState(false);
4284
+
4285
+ return (
4286
+ <div
4287
+ className="min-h-screen transition-colors text-left p-6 font-sans max-w-5xl mx-auto"
4288
+ style={{
4289
+ backgroundColor: "var(--template-bg, #ffffff)",
4290
+ color: "var(--template-fg, #0f172a)",
4291
+ }}
4292
+ >
4293
+ <header className="flex justify-between items-center pb-6 border-b" style={{ borderColor: "var(--template-border, #e2e8f0)" }}>
4294
+ <div className="flex items-center gap-2">
4295
+ <UtensilsCrossed className="w-5 h-5 text-orange-600" />
4296
+ <span className="font-bold text-base">MiseEnPlace KDS</span>
4297
+ </div>
4298
+ <span className="text-xs font-mono font-bold text-orange-600">3 ACTIVE ORDERS</span>
4299
+ </header>
4300
+
4301
+ <main className="py-8 space-y-6">
4302
+ <div className="p-6 rounded-2xl border" style={{ backgroundColor: "var(--template-surface, #f8f9fa)", borderColor: "var(--template-border, #e2e8f0)" }}>
4303
+ <div className="text-xs font-mono font-bold text-rose-600 mb-1">TABLE 12 \u2022 04:15 ELAPSED</div>
4304
+ <h2 className="text-base font-bold">2x 45-Day Dry Aged Ribeye (Med-Rare)</h2>
4305
+ <p className="text-xs opacity-75 mt-1">Station: GRILL \u2022 Extra flaky Maldon salt</p>
4306
+ <button
4307
+ onClick={() => setBumped(true)}
4308
+ className="mt-4 px-4 py-2 rounded-xl text-xs font-bold text-white bg-orange-600 transition-opacity hover:opacity-90"
4309
+ >
4310
+ {bumped ? "Order Bumped" : "Bump Order"}
4311
+ </button>
4312
+ </div>
4313
+ </main>
4314
+ </div>
4315
+ );
4316
+ }`
4317
+ };
4318
+
4319
+ // src/registry/template-aurasolace-sanctuary.ts
4320
+ var templateAurasolaceSanctuary = {
4321
+ name: "template-aurasolace-sanctuary",
4322
+ dependencies: ["lucide-react"],
4323
+ fileName: "template-aurasolace-sanctuary.tsx",
4324
+ content: `"use client";
4325
+
4326
+ import React, { useState } from "react";
4327
+ import { Heart, Wind, Volume2, Sparkles } from "lucide-react";
4328
+
4329
+ export default function AuraSolaceTemplate() {
4330
+ const [phase, setPhase] = useState("Inhale (4s)");
4331
+
4332
+ return (
4333
+ <div
4334
+ className="min-h-screen transition-colors text-left p-6 font-sans max-w-5xl mx-auto"
4335
+ style={{
4336
+ backgroundColor: "var(--template-bg, #ffffff)",
4337
+ color: "var(--template-fg, #0f172a)",
4338
+ }}
4339
+ >
4340
+ <header className="flex justify-between items-center pb-6 border-b" style={{ borderColor: "var(--template-border, #e2e8f0)" }}>
4341
+ <div className="flex items-center gap-2">
4342
+ <Heart className="w-5 h-5 text-teal-600" />
4343
+ <span className="font-bold text-base">AuraSolace Sanctuary</span>
4344
+ </div>
4345
+ <span className="text-xs font-semibold text-teal-600">Peaceful Grounded</span>
4346
+ </header>
4347
+
4348
+ <main className="py-8 space-y-6 text-center">
4349
+ <div className="p-8 rounded-2xl border" style={{ backgroundColor: "var(--template-surface, #f8f9fa)", borderColor: "var(--template-border, #e2e8f0)" }}>
4350
+ <div className="w-32 h-32 rounded-full border-2 border-teal-500 mx-auto flex items-center justify-center font-bold text-xs text-teal-600">
4351
+ {phase}
4352
+ </div>
4353
+ <h2 className="text-base font-bold mt-4">Parasympathetic Nervous System Regulation</h2>
4354
+ </div>
4355
+ </main>
4356
+ </div>
4357
+ );
4358
+ }`
4359
+ };
4360
+
2716
4361
  // src/registry/index.ts
2717
4362
  var registry = {
2718
4363
  button,
@@ -2734,7 +4379,37 @@ var registry = {
2734
4379
  "template-ai-chat": templateAiChat,
2735
4380
  "template-project-management": templateProjectManagement,
2736
4381
  "template-startup-waitlist": templateStartupWaitlist,
2737
- "template-docs-platform": templateDocsPlatform
4382
+ "template-docs-platform": templateDocsPlatform,
4383
+ "template-healthcare-portal": templateHealthcarePortal,
4384
+ "template-web3-dex": templateWeb3Dex,
4385
+ "template-edtech-learning": templateEdtechLearning,
4386
+ "template-conference-event": templateConferenceEvent,
4387
+ "template-audio-podcast": templateAudioPodcast,
4388
+ "template-real-estate": templateRealEstate,
4389
+ "template-uptime-status": templateUptimeStatus,
4390
+ "template-agent-workflow": templateAgentWorkflow,
4391
+ "template-restaurant-culinary": templateRestaurantCulinary,
4392
+ "template-help-center": templateHelpCenter,
4393
+ "template-fitness-athletics": templateFitnessAthletics,
4394
+ "template-wilderness-travel": templateWildernessTravel,
4395
+ "template-devops-kubernetes": templateDevopsKubernetes,
4396
+ "template-audio-daw": templateAudioDaw,
4397
+ "template-gamified-habits": templateGamifiedHabits,
4398
+ "template-global-logistics": templateGlobalLogistics,
4399
+ "template-gaming-esports": templateGamingEsports,
4400
+ "template-architecture-spatial": templateArchitectureSpatial,
4401
+ "template-cybersecurity-soc": templateCybersecuritySoc,
4402
+ "template-cleantech-agriculture": templateCleantechAgriculture,
4403
+ "template-juris-vault": templateJurisVault,
4404
+ "template-orbitalx-mission": templateOrbitalxMission,
4405
+ "template-cineboard-studio": templateCineboardStudio,
4406
+ "template-domus-living": templateDomusLiving,
4407
+ "template-hyperion-ev": templateHyperionEv,
4408
+ "template-sovereign-auctions": templateSovereignAuctions,
4409
+ "template-scholaris-archive": templateScholarisArchive,
4410
+ "template-talentorbit-hr": templateTalentorbitHr,
4411
+ "template-miseenplace-kds": templateMiseenplaceKds,
4412
+ "template-aurasolace-sanctuary": templateAurasolaceSanctuary
2738
4413
  };
2739
4414
 
2740
4415
  // src/commands/add.ts