diff --git a/base-theme.css b/base-theme.css
new file mode 100644
index 0000000..ca61f0a
--- /dev/null
+++ b/base-theme.css
@@ -0,0 +1,53 @@
+/** Base colors */
+--clr-dark-a0: #14172a;
+--clr-light-a0: #ffffff;
+
+/** Theme primary colors */
+--clr-primary-a0: #1fb568;
+--clr-primary-a10: #49be78;
+--clr-primary-a20: #65c688;
+--clr-primary-a30: #7ecf99;
+--clr-primary-a40: #95d7a9;
+--clr-primary-a50: #abdfba;
+
+/** Theme surface colors */
+--clr-surface-a0: #14172a;
+--clr-surface-a10: #2a2c3e;
+--clr-surface-a20: #414354;
+--clr-surface-a30: #5a5b6a;
+--clr-surface-a40: #737481;
+--clr-surface-a50: #8d8e99;
+
+/** Theme tonal surface colors */
+--clr-surface-tonal-a0: #1a2530;
+--clr-surface-tonal-a10: #303944;
+--clr-surface-tonal-a20: #464f59;
+--clr-surface-tonal-a30: #5e666e;
+--clr-surface-tonal-a40: #777d85;
+--clr-surface-tonal-a50: #91969c;
+
+/** Success colors */
+--clr-success-a0: #22946e;
+--clr-success-a10: #47d5a6;
+--clr-success-a20: #9ae8ce;
+
+/** Warning colors */
+--clr-warning-a0: #a87a2a;
+--clr-warning-a10: #d7ac61;
+--clr-warning-a20: #ecd7b2;
+
+/** Danger colors */
+--clr-danger-a0: #9c2121;
+--clr-danger-a10: #d94a4a;
+--clr-danger-a20: #eb9e9e;
+
+/** Info colors */
+--clr-info-a0: #21498a;
+--clr-info-a10: #4077d1;
+--clr-info-a20: #92b2e5;
+
+/** Examples */
+.bg-primary {
+ color: var(--clr-primary-a50);
+ background-color: var(--clr-surface-a0);
+}
diff --git a/build-doc.md b/build-doc.md
new file mode 100644
index 0000000..76269d3
--- /dev/null
+++ b/build-doc.md
@@ -0,0 +1,53 @@
+I would like to build an app for managing LLM, ComfyUI and Stable Diffusion Prompts. The app needs to have the following features:
+1) User authentication system
+2) Database to store Prompts
+3) Individual Prompt pages containing the prompt text.
+4) An admin dashboard for editing and removing prompts.
+5) A prompt list page with filter options.
+
+
+Prompt Categories
+Prompt Platform
+User settings page
+
+Please can we improve the UI and aesthetics a bit. Perhaps try a glass style theme?
+
+
+Prompt fields:
+Platform
+Model
+Tags
+Usage
+Workflow
+Example Image
+
+
+
+Can we now please implement a favorites function for prompts so that users can add, edit and delete favorites.
+Can we change the signup process so that email confirmation is no longer required, but all signups have to be approved by an admin.
+Can we please add a user import and export function, so that users can export their entire library as a JSON file? They should also be able to import this JSON file.
+
+
+Can you please change the sidebar background to be a darker shade?
+The prompt view page overflows the width of the page, can you please fix it?
+Can you please change the syntax theme for the workflow area to use the Dracula theme?
+
+
+
+
+
+Prompt version history: Track edits with timestamps, authors, and a “restore” option; show side-by-side diffs for content changes.
+Ratings and comments: Let users rate prompts (1–5 stars) and discuss tips in threaded comments with mentions.
+Sharing & visibility controls: Make prompts public, private, or shared to a team/folder; generate read-only share links.
+Saved filters & smart collections: Save common search filters; auto-collections like “Recently edited,” “Top rated,” or “My favorites + tag.”
+Prompt templates & variables: Define reusable templates with {{placeholders}}; render prompts with a simple “Fill variables” form.
+Live Playground: Test prompts against selected models with adjustable params; copy result to clipboard; save “runs” as examples.
+Bulk actions: Multi-select to tag, move to folder, favorite/unfavorite, or delete; quick keyboard shortcuts for common actions.
+Tag enhancements: Autocomplete/suggested tags; tag weights (primary vs. secondary); tag pages to browse related prompts.
+Folder improvements: Drag-and-drop reorganization, nested folders, and pinned folders; “Move to…” quick action from cards.
+Analytics dashboard: See favorites, ratings, views, recent edits; filter by time range; per-user/team breakdown.
+Attachments gallery: Multiple example images per prompt with captions; lightweight carousel; upload from URL.
+Import/export: JSON/CSV import wizard with validation; one-click export of selected prompts with tags and metadata.
+Admin tooling: Moderation queue for public prompts, abuse reports, soft delete/restore, and audit logs.
+Notifications: Toasts plus optional in-app notifications for favorites, comments, shares, and edits on watched prompts.
+Profile upgrades: Avatars, bio, social links; “My contributions” page with stats and badges.
diff --git a/logs/console-export-2025-12-29_9-46-54.txt b/logs/console-export-2025-12-29_9-46-54.txt
new file mode 100644
index 0000000..d2baf67
--- /dev/null
+++ b/logs/console-export-2025-12-29_9-46-54.txt
@@ -0,0 +1,114 @@
+Error: A must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.
+ z_ https://promptlib.og.codes/assets/index-LEf5ZMDa.js:224
+ lf https://promptlib.og.codes/assets/index-LEf5ZMDa.js:38
+ kv https://promptlib.og.codes/assets/index-LEf5ZMDa.js:40
+ oy https://promptlib.og.codes/assets/index-LEf5ZMDa.js:40
+ ty https://promptlib.og.codes/assets/index-LEf5ZMDa.js:40
+ S2 https://promptlib.og.codes/assets/index-LEf5ZMDa.js:40
+ Uc https://promptlib.og.codes/assets/index-LEf5ZMDa.js:40
+ If https://promptlib.og.codes/assets/index-LEf5ZMDa.js:40
+ Xv https://promptlib.og.codes/assets/index-LEf5ZMDa.js:40
+ os https://promptlib.og.codes/assets/index-LEf5ZMDa.js:38
+ Jt https://promptlib.og.codes/assets/index-LEf5ZMDa.js:40
+ Jt https://promptlib.og.codes/assets/index-LEf5ZMDa.js:40
+ Mr https://promptlib.og.codes/assets/index-LEf5ZMDa.js:40
+ l2 https://promptlib.og.codes/assets/index-LEf5ZMDa.js:38
+ g https://promptlib.og.codes/assets/index-LEf5ZMDa.js:138
+ b https://promptlib.og.codes/assets/index-LEf5ZMDa.js:120
+ K3 https://promptlib.og.codes/assets/index-LEf5ZMDa.js:129
+ wN https://promptlib.og.codes/assets/index-LEf5ZMDa.js:138
+ T https://promptlib.og.codes/assets/index-LEf5ZMDa.js:138
+ nn https://promptlib.og.codes/assets/index-LEf5ZMDa.js:37
+ KS https://promptlib.og.codes/assets/index-LEf5ZMDa.js:37
+ qS https://promptlib.og.codes/assets/index-LEf5ZMDa.js:37
+ Tg https://promptlib.og.codes/assets/index-LEf5ZMDa.js:37
+ Rg https://promptlib.og.codes/assets/index-LEf5ZMDa.js:37
+ Md https://promptlib.og.codes/assets/index-LEf5ZMDa.js:37
+ Df https://promptlib.og.codes/assets/index-LEf5ZMDa.js:40
+ Ht https://promptlib.og.codes/assets/index-LEf5ZMDa.js:37
+ Md https://promptlib.og.codes/assets/index-LEf5ZMDa.js:37
+ vd https://promptlib.og.codes/assets/index-LEf5ZMDa.js:37
+ cE https://promptlib.og.codes/assets/index-LEf5ZMDa.js:37
+ Ng https://promptlib.og.codes/assets/index-LEf5ZMDa.js:37
+ Id https://promptlib.og.codes/assets/index-LEf5ZMDa.js:37
+ ya https://promptlib.og.codes/assets/index-LEf5ZMDa.js:37
+ ya https://promptlib.og.codes/assets/index-LEf5ZMDa.js:37
+ createRoot https://promptlib.og.codes/assets/index-LEf5ZMDa.js:40
+ https://promptlib.og.codes/assets/index-LEf5ZMDa.js:230
+index-LEf5ZMDa.js:40:161
+Error: A must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.
+ z_ https://promptlib.og.codes/assets/index-LEf5ZMDa.js:224
+ lf https://promptlib.og.codes/assets/index-LEf5ZMDa.js:38
+ kv https://promptlib.og.codes/assets/index-LEf5ZMDa.js:40
+ oy https://promptlib.og.codes/assets/index-LEf5ZMDa.js:40
+ ty https://promptlib.og.codes/assets/index-LEf5ZMDa.js:40
+ S2 https://promptlib.og.codes/assets/index-LEf5ZMDa.js:40
+ Uc https://promptlib.og.codes/assets/index-LEf5ZMDa.js:40
+ If https://promptlib.og.codes/assets/index-LEf5ZMDa.js:40
+ Xv https://promptlib.og.codes/assets/index-LEf5ZMDa.js:40
+ os https://promptlib.og.codes/assets/index-LEf5ZMDa.js:38
+ Jt https://promptlib.og.codes/assets/index-LEf5ZMDa.js:40
+ Jt https://promptlib.og.codes/assets/index-LEf5ZMDa.js:40
+ Mr https://promptlib.og.codes/assets/index-LEf5ZMDa.js:40
+ l2 https://promptlib.og.codes/assets/index-LEf5ZMDa.js:38
+ g https://promptlib.og.codes/assets/index-LEf5ZMDa.js:138
+ b https://promptlib.og.codes/assets/index-LEf5ZMDa.js:120
+ K3 https://promptlib.og.codes/assets/index-LEf5ZMDa.js:129
+ wN https://promptlib.og.codes/assets/index-LEf5ZMDa.js:138
+ T https://promptlib.og.codes/assets/index-LEf5ZMDa.js:138
+ nn https://promptlib.og.codes/assets/index-LEf5ZMDa.js:37
+ KS https://promptlib.og.codes/assets/index-LEf5ZMDa.js:37
+ qS https://promptlib.og.codes/assets/index-LEf5ZMDa.js:37
+ Tg https://promptlib.og.codes/assets/index-LEf5ZMDa.js:37
+ Rg https://promptlib.og.codes/assets/index-LEf5ZMDa.js:37
+ Md https://promptlib.og.codes/assets/index-LEf5ZMDa.js:37
+ Df https://promptlib.og.codes/assets/index-LEf5ZMDa.js:40
+ Ht https://promptlib.og.codes/assets/index-LEf5ZMDa.js:37
+ Md https://promptlib.og.codes/assets/index-LEf5ZMDa.js:37
+ vd https://promptlib.og.codes/assets/index-LEf5ZMDa.js:37
+ cE https://promptlib.og.codes/assets/index-LEf5ZMDa.js:37
+ Ng https://promptlib.og.codes/assets/index-LEf5ZMDa.js:37
+ Id https://promptlib.og.codes/assets/index-LEf5ZMDa.js:37
+ ya https://promptlib.og.codes/assets/index-LEf5ZMDa.js:37
+ ya https://promptlib.og.codes/assets/index-LEf5ZMDa.js:37
+ createRoot https://promptlib.og.codes/assets/index-LEf5ZMDa.js:40
+ https://promptlib.og.codes/assets/index-LEf5ZMDa.js:230
+index-LEf5ZMDa.js:40:161
+Uncaught Error: A must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.
+ z_ https://promptlib.og.codes/assets/index-LEf5ZMDa.js:224
+ lf https://promptlib.og.codes/assets/index-LEf5ZMDa.js:38
+ kv https://promptlib.og.codes/assets/index-LEf5ZMDa.js:40
+ oy https://promptlib.og.codes/assets/index-LEf5ZMDa.js:40
+ ty https://promptlib.og.codes/assets/index-LEf5ZMDa.js:40
+ S2 https://promptlib.og.codes/assets/index-LEf5ZMDa.js:40
+ Uc https://promptlib.og.codes/assets/index-LEf5ZMDa.js:40
+ If https://promptlib.og.codes/assets/index-LEf5ZMDa.js:40
+ Xv https://promptlib.og.codes/assets/index-LEf5ZMDa.js:40
+ os https://promptlib.og.codes/assets/index-LEf5ZMDa.js:38
+ Jt https://promptlib.og.codes/assets/index-LEf5ZMDa.js:40
+ Jt https://promptlib.og.codes/assets/index-LEf5ZMDa.js:40
+ Mr https://promptlib.og.codes/assets/index-LEf5ZMDa.js:40
+ l2 https://promptlib.og.codes/assets/index-LEf5ZMDa.js:38
+ g https://promptlib.og.codes/assets/index-LEf5ZMDa.js:138
+ b https://promptlib.og.codes/assets/index-LEf5ZMDa.js:120
+ K3 https://promptlib.og.codes/assets/index-LEf5ZMDa.js:129
+ wN https://promptlib.og.codes/assets/index-LEf5ZMDa.js:138
+ T https://promptlib.og.codes/assets/index-LEf5ZMDa.js:138
+ nn https://promptlib.og.codes/assets/index-LEf5ZMDa.js:37
+ KS https://promptlib.og.codes/assets/index-LEf5ZMDa.js:37
+ qS https://promptlib.og.codes/assets/index-LEf5ZMDa.js:37
+ Tg https://promptlib.og.codes/assets/index-LEf5ZMDa.js:37
+ Rg https://promptlib.og.codes/assets/index-LEf5ZMDa.js:37
+ Md https://promptlib.og.codes/assets/index-LEf5ZMDa.js:37
+ Df https://promptlib.og.codes/assets/index-LEf5ZMDa.js:40
+ Ht https://promptlib.og.codes/assets/index-LEf5ZMDa.js:37
+ Md https://promptlib.og.codes/assets/index-LEf5ZMDa.js:37
+ vd https://promptlib.og.codes/assets/index-LEf5ZMDa.js:37
+ cE https://promptlib.og.codes/assets/index-LEf5ZMDa.js:37
+ Ng https://promptlib.og.codes/assets/index-LEf5ZMDa.js:37
+ Id https://promptlib.og.codes/assets/index-LEf5ZMDa.js:37
+ ya https://promptlib.og.codes/assets/index-LEf5ZMDa.js:37
+ ya https://promptlib.og.codes/assets/index-LEf5ZMDa.js:37
+ createRoot https://promptlib.og.codes/assets/index-LEf5ZMDa.js:40
+ https://promptlib.og.codes/assets/index-LEf5ZMDa.js:230
+index-LEf5ZMDa.js:224:82964
diff --git a/logs/console-export-2025-12-30_2-26-4.txt b/logs/console-export-2025-12-30_2-26-4.txt
new file mode 100644
index 0000000..011c39c
--- /dev/null
+++ b/logs/console-export-2025-12-30_2-26-4.txt
@@ -0,0 +1,108 @@
+ReferenceError: JsonCodeBlock is not defined
+ n6 https://promptlib.og.codes/assets/index-DUMYc9bI.js:224
+ df https://promptlib.og.codes/assets/index-DUMYc9bI.js:38
+ bf https://promptlib.og.codes/assets/index-DUMYc9bI.js:40
+ iy https://promptlib.og.codes/assets/index-DUMYc9bI.js:40
+ ry https://promptlib.og.codes/assets/index-DUMYc9bI.js:40
+ EC https://promptlib.og.codes/assets/index-DUMYc9bI.js:40
+ Yc https://promptlib.og.codes/assets/index-DUMYc9bI.js:40
+ Lf https://promptlib.og.codes/assets/index-DUMYc9bI.js:40
+ Zv https://promptlib.og.codes/assets/index-DUMYc9bI.js:40
+ us https://promptlib.og.codes/assets/index-DUMYc9bI.js:38
+ Zt https://promptlib.og.codes/assets/index-DUMYc9bI.js:40
+ Zt https://promptlib.og.codes/assets/index-DUMYc9bI.js:40
+ Br https://promptlib.og.codes/assets/index-DUMYc9bI.js:40
+ sv https://promptlib.og.codes/assets/index-DUMYc9bI.js:38
+ rv https://promptlib.og.codes/assets/index-DUMYc9bI.js:38
+ batchCalls https://promptlib.og.codes/assets/index-DUMYc9bI.js:111
+ r https://promptlib.og.codes/assets/index-DUMYc9bI.js:111
+ c https://promptlib.og.codes/assets/index-DUMYc9bI.js:111
+ c https://promptlib.og.codes/assets/index-DUMYc9bI.js:111
+ s https://promptlib.og.codes/assets/index-DUMYc9bI.js:111
+ c https://promptlib.og.codes/assets/index-DUMYc9bI.js:111
+ setTimeout handler*qR https://promptlib.og.codes/assets/index-DUMYc9bI.js:111
+ c https://promptlib.og.codes/assets/index-DUMYc9bI.js:111
+ batch https://promptlib.og.codes/assets/index-DUMYc9bI.js:111
+ Ln https://promptlib.og.codes/assets/index-DUMYc9bI.js:111
+ setData https://promptlib.og.codes/assets/index-DUMYc9bI.js:111
+ onSuccess https://promptlib.og.codes/assets/index-DUMYc9bI.js:111
+ v https://promptlib.og.codes/assets/index-DUMYc9bI.js:111
+ promise callback*E https://promptlib.og.codes/assets/index-DUMYc9bI.js:111
+ start https://promptlib.og.codes/assets/index-DUMYc9bI.js:111
+ fetch https://promptlib.og.codes/assets/index-DUMYc9bI.js:111
+ Ka https://promptlib.og.codes/assets/index-DUMYc9bI.js:111
+ onSubscribe https://promptlib.og.codes/assets/index-DUMYc9bI.js:111
+ subscribe https://promptlib.og.codes/assets/index-DUMYc9bI.js:111
+ yN https://promptlib.og.codes/assets/index-DUMYc9bI.js:111
+ rv https://promptlib.og.codes/assets/index-DUMYc9bI.js:38
+ zc https://promptlib.og.codes/assets/index-DUMYc9bI.js:40
+ oi https://promptlib.og.codes/assets/index-DUMYc9bI.js:40
+ Zv https://promptlib.og.codes/assets/index-DUMYc9bI.js:40
+ us https://promptlib.og.codes/assets/index-DUMYc9bI.js:38
+ kC https://promptlib.og.codes/assets/index-DUMYc9bI.js:40
+ ro https://promptlib.og.codes/assets/index-DUMYc9bI.js:40
+ Xv https://promptlib.og.codes/assets/index-DUMYc9bI.js:40
+ I https://promptlib.og.codes/assets/index-DUMYc9bI.js:25
+ J https://promptlib.og.codes/assets/index-DUMYc9bI.js:25
+ VC https://promptlib.og.codes/assets/index-DUMYc9bI.js:25
+ VC https://promptlib.og.codes/assets/index-DUMYc9bI.js:25
+ WC https://promptlib.og.codes/assets/index-DUMYc9bI.js:25
+ HC https://promptlib.og.codes/assets/index-DUMYc9bI.js:33
+ dw https://promptlib.og.codes/assets/index-DUMYc9bI.js:40
+ KC https://promptlib.og.codes/assets/index-DUMYc9bI.js:40
+ https://promptlib.og.codes/assets/index-DUMYc9bI.js:40
+index-DUMYc9bI.js:40:161
+Uncaught ReferenceError: JsonCodeBlock is not defined
+ n6 https://promptlib.og.codes/assets/index-DUMYc9bI.js:224
+ df https://promptlib.og.codes/assets/index-DUMYc9bI.js:38
+ bf https://promptlib.og.codes/assets/index-DUMYc9bI.js:40
+ iy https://promptlib.og.codes/assets/index-DUMYc9bI.js:40
+ ry https://promptlib.og.codes/assets/index-DUMYc9bI.js:40
+ EC https://promptlib.og.codes/assets/index-DUMYc9bI.js:40
+ Yc https://promptlib.og.codes/assets/index-DUMYc9bI.js:40
+ Lf https://promptlib.og.codes/assets/index-DUMYc9bI.js:40
+ Zv https://promptlib.og.codes/assets/index-DUMYc9bI.js:40
+ us https://promptlib.og.codes/assets/index-DUMYc9bI.js:38
+ Zt https://promptlib.og.codes/assets/index-DUMYc9bI.js:40
+ Zt https://promptlib.og.codes/assets/index-DUMYc9bI.js:40
+ Br https://promptlib.og.codes/assets/index-DUMYc9bI.js:40
+ sv https://promptlib.og.codes/assets/index-DUMYc9bI.js:38
+ rv https://promptlib.og.codes/assets/index-DUMYc9bI.js:38
+ batchCalls https://promptlib.og.codes/assets/index-DUMYc9bI.js:111
+ r https://promptlib.og.codes/assets/index-DUMYc9bI.js:111
+ c https://promptlib.og.codes/assets/index-DUMYc9bI.js:111
+ c https://promptlib.og.codes/assets/index-DUMYc9bI.js:111
+ s https://promptlib.og.codes/assets/index-DUMYc9bI.js:111
+ c https://promptlib.og.codes/assets/index-DUMYc9bI.js:111
+ setTimeout handler*qR https://promptlib.og.codes/assets/index-DUMYc9bI.js:111
+ c https://promptlib.og.codes/assets/index-DUMYc9bI.js:111
+ batch https://promptlib.og.codes/assets/index-DUMYc9bI.js:111
+ Ln https://promptlib.og.codes/assets/index-DUMYc9bI.js:111
+ setData https://promptlib.og.codes/assets/index-DUMYc9bI.js:111
+ onSuccess https://promptlib.og.codes/assets/index-DUMYc9bI.js:111
+ v https://promptlib.og.codes/assets/index-DUMYc9bI.js:111
+ promise callback*E https://promptlib.og.codes/assets/index-DUMYc9bI.js:111
+ start https://promptlib.og.codes/assets/index-DUMYc9bI.js:111
+ fetch https://promptlib.og.codes/assets/index-DUMYc9bI.js:111
+ Ka https://promptlib.og.codes/assets/index-DUMYc9bI.js:111
+ onSubscribe https://promptlib.og.codes/assets/index-DUMYc9bI.js:111
+ subscribe https://promptlib.og.codes/assets/index-DUMYc9bI.js:111
+ yN https://promptlib.og.codes/assets/index-DUMYc9bI.js:111
+ rv https://promptlib.og.codes/assets/index-DUMYc9bI.js:38
+ zc https://promptlib.og.codes/assets/index-DUMYc9bI.js:40
+ oi https://promptlib.og.codes/assets/index-DUMYc9bI.js:40
+ Zv https://promptlib.og.codes/assets/index-DUMYc9bI.js:40
+ us https://promptlib.og.codes/assets/index-DUMYc9bI.js:38
+ kC https://promptlib.og.codes/assets/index-DUMYc9bI.js:40
+ ro https://promptlib.og.codes/assets/index-DUMYc9bI.js:40
+ Xv https://promptlib.og.codes/assets/index-DUMYc9bI.js:40
+ I https://promptlib.og.codes/assets/index-DUMYc9bI.js:25
+ J https://promptlib.og.codes/assets/index-DUMYc9bI.js:25
+ VC https://promptlib.og.codes/assets/index-DUMYc9bI.js:25
+ VC https://promptlib.og.codes/assets/index-DUMYc9bI.js:25
+ WC https://promptlib.og.codes/assets/index-DUMYc9bI.js:25
+ HC https://promptlib.og.codes/assets/index-DUMYc9bI.js:33
+ dw https://promptlib.og.codes/assets/index-DUMYc9bI.js:40
+ KC https://promptlib.og.codes/assets/index-DUMYc9bI.js:40
+ https://promptlib.og.codes/assets/index-DUMYc9bI.js:40
+index-DUMYc9bI.js:224:109608
diff --git a/logs/vercel-build-log_01.txt b/logs/vercel-build-log_01.txt
new file mode 100644
index 0000000..9fa6874
--- /dev/null
+++ b/logs/vercel-build-log_01.txt
@@ -0,0 +1,56 @@
+02:44:14.215 Running build in Washington, D.C., USA (East) – iad1
+02:44:14.215 Build machine configuration: 4 cores, 8 GB
+02:44:14.322 Cloning github.com/OliverGee/promptlib (Branch: main, Commit: bd24306)
+02:44:14.613 Cloning completed: 290.000ms
+02:44:15.044 Restored build cache from previous deployment (Bd8UGvdHcVGZmBTDTjevLZJESWLg)
+02:44:15.792 Running "vercel build"
+02:44:16.242 Vercel CLI 50.1.3
+02:44:16.886 Detected `pnpm-lock.yaml` 9 which may be generated by pnpm@9.x or pnpm@10.x
+02:44:16.886 Using pnpm@10.x based on project creation date
+02:44:16.886 To use pnpm@9.x, manually opt in using corepack (https://vercel.com/docs/deployments/configure-a-build#corepack)
+02:44:16.897 Installing dependencies...
+02:44:18.046 Lockfile is up to date, resolution step is skipped
+02:44:18.136 Already up to date
+02:44:18.526
+02:44:18.548 ╭ Warning ─────────────────────────────────────────────────────────────────────╮
+02:44:18.548 │ │
+02:44:18.548 │ Ignored build scripts: @swc/core@1.11.21, esbuild@0.25.3. │
+02:44:18.549 │ Run "pnpm approve-builds" to pick which dependencies should be allowed │
+02:44:18.549 │ to run scripts. │
+02:44:18.549 │ │
+02:44:18.549 ╰──────────────────────────────────────────────────────────────────────────────╯
+02:44:18.552 Done in 1s using pnpm v10.26.0
+02:44:18.577 Running "pnpm run build"
+02:44:18.879
+02:44:18.880 > vite_react_shadcn_ts@0.0.0 build /vercel/path0
+02:44:18.880 > vite build
+02:44:18.880
+02:44:19.239 [36mvite v6.3.4 [32mbuilding for production...[36m[39m
+02:44:19.619 transforming...
+02:44:19.648 Browserslist: browsers data (caniuse-lite) is 8 months old. Please run:
+02:44:19.648 npx update-browserslist-db@latest
+02:44:19.648 Why you should do it regularly: https://github.com/browserslist/update-db#readme
+02:44:22.430 [32m✓[39m 1785 modules transformed.
+02:44:22.433 [31m✗[39m Build failed in 3.16s
+02:44:22.433 [31merror during build:
+02:44:22.433 [31msrc/components/JsonCodeBlock.tsx (2:20): "defaultProps" is not exported by "node_modules/.pnpm/prism-react-renderer@2.4.1_react@18.3.1/node_modules/prism-react-renderer/dist/index.mjs", imported by "src/components/JsonCodeBlock.tsx".[31m
+02:44:22.434 file: [36m/vercel/path0/src/components/JsonCodeBlock.tsx:2:20[31m
+02:44:22.434 [33m
+02:44:22.434 1: import React from "react";
+02:44:22.434 2: import { Highlight, defaultProps } from "prism-react-renderer";
+02:44:22.434 ^
+02:44:22.434 3:
+02:44:22.434 4: type Props = {
+02:44:22.434 [31m
+02:44:22.434 at getRollupError (file:///vercel/path0/node_modules/.pnpm/rollup@4.40.0/node_modules/rollup/dist/es/shared/parseAst.js:397:41)
+02:44:22.434 at error (file:///vercel/path0/node_modules/.pnpm/rollup@4.40.0/node_modules/rollup/dist/es/shared/parseAst.js:393:42)
+02:44:22.434 at Module.error (file:///vercel/path0/node_modules/.pnpm/rollup@4.40.0/node_modules/rollup/dist/es/shared/node-entry.js:16750:16)
+02:44:22.434 at Module.traceVariable (file:///vercel/path0/node_modules/.pnpm/rollup@4.40.0/node_modules/rollup/dist/es/shared/node-entry.js:17199:29)
+02:44:22.434 at ModuleScope.findVariable (file:///vercel/path0/node_modules/.pnpm/rollup@4.40.0/node_modules/rollup/dist/es/shared/node-entry.js:14855:39)
+02:44:22.434 at ReturnValueScope.findVariable (file:///vercel/path0/node_modules/.pnpm/rollup@4.40.0/node_modules/rollup/dist/es/shared/node-entry.js:5583:38)
+02:44:22.435 at FunctionBodyScope.findVariable (file:///vercel/path0/node_modules/.pnpm/rollup@4.40.0/node_modules/rollup/dist/es/shared/node-entry.js:5583:38)
+02:44:22.435 at Identifier.bind (file:///vercel/path0/node_modules/.pnpm/rollup@4.40.0/node_modules/rollup/dist/es/shared/node-entry.js:5357:40)
+02:44:22.435 at SpreadElement.bind (file:///vercel/path0/node_modules/.pnpm/rollup@4.40.0/node_modules/rollup/dist/es/shared/node-entry.js:2784:23)
+02:44:22.435 at ObjectExpression.bind (file:///vercel/path0/node_modules/.pnpm/rollup@4.40.0/node_modules/rollup/dist/es/shared/node-entry.js:2780:28)[39m
+02:44:22.550 ELIFECYCLE Command failed with exit code 1.
+02:44:22.564 Error: Command "pnpm run build" exited with 1