From 70838b121ddb32bf2438e86fddcd981f24e9dbcf Mon Sep 17 00:00:00 2001 From: Brian Fertig Date: Tue, 25 Aug 2026 13:36:47 -0600 Subject: [PATCH] Add debugging tools and dark-theme surface detection for theme QA - Add .cdp/*.cjs scripts for CDP-driven headless Edge testing of theme switching, console errors, and login flows, plus a vendored next-themes beta package used during investigation - Add components/theme/use-dark-theme.ts to treat "ocean" as a dark surface alongside "dark" for card colors and markdown color-mode - Add shots/ screenshots captured while verifying theme behavior across pages and breakpoints --- .cdp/cdp-check.cjs | 59 +++ .cdp/cdp-console.cjs | 81 ++++ .cdp/cdp-shots.cjs | 82 ++++ .cdp/debug-menu.cjs | 53 +++ .cdp/diag.cjs | 53 +++ .cdp/final-check.cjs | 173 +++++++ .cdp/live-switch.cjs | 117 +++++ .cdp/nt-beta/next-themes-1.0.0-beta.0.tgz | Bin 0 -> 10341 bytes .cdp/nt-beta/package/README.md | 502 +++++++++++++++++++++ .cdp/nt-beta/package/dist/index.d.ts | 4 + .cdp/nt-beta/package/dist/index.js | 1 + .cdp/nt-beta/package/dist/index.modern.mjs | 1 + .cdp/nt-beta/package/dist/index.module.js | 1 + .cdp/nt-beta/package/dist/index.umd.js | 1 + .cdp/nt-beta/package/dist/types.d.ts | 46 ++ .cdp/nt-beta/package/package.json | 55 +++ .cdp/repro.cjs | 99 ++++ .cdp/verify-switch.cjs | 80 ++++ .cdp/verify-switch2.cjs | 79 ++++ .cdp/verify-theme.cjs | 61 +++ components/theme/use-dark-theme.ts | 47 ++ shots/01-login-default.png | Bin 0 -> 25913 bytes shots/01-login-light.png | Bin 0 -> 22330 bytes shots/02-home-default.png | Bin 0 -> 97960 bytes shots/03-home-sunset.png | Bin 0 -> 100379 bytes shots/04-home-dark.png | Bin 0 -> 97211 bytes shots/05-home-ocean.png | Bin 0 -> 98987 bytes shots/06-projects-dark.png | Bin 0 -> 74784 bytes shots/06-projects-default.png | Bin 0 -> 72325 bytes shots/07-chat-default.png | Bin 0 -> 67502 bytes shots/07-chat-ocean.png | Bin 0 -> 71020 bytes shots/08-admin-default.png | Bin 0 -> 136843 bytes shots/09-login-sunset.png | Bin 0 -> 26758 bytes shots/10-home-default-mobile.png | Bin 0 -> 30702 bytes shots/11-theme-picker.png | Bin 0 -> 37926 bytes shots/12-live-dark.png | Bin 0 -> 20678 bytes shots/13-live-sunset.png | Bin 0 -> 20678 bytes shots/14-live-ocean.png | Bin 0 -> 20678 bytes shots/15-live-default.png | Bin 0 -> 20678 bytes shots/admin-badge-debug.png | Bin 0 -> 43601 bytes shots/admin-role-menu.png | Bin 0 -> 42616 bytes shots/final-home.png | Bin 0 -> 35344 bytes 42 files changed, 1595 insertions(+) create mode 100644 .cdp/cdp-check.cjs create mode 100644 .cdp/cdp-console.cjs create mode 100644 .cdp/cdp-shots.cjs create mode 100644 .cdp/debug-menu.cjs create mode 100644 .cdp/diag.cjs create mode 100644 .cdp/final-check.cjs create mode 100644 .cdp/live-switch.cjs create mode 100644 .cdp/nt-beta/next-themes-1.0.0-beta.0.tgz create mode 100644 .cdp/nt-beta/package/README.md create mode 100644 .cdp/nt-beta/package/dist/index.d.ts create mode 100644 .cdp/nt-beta/package/dist/index.js create mode 100644 .cdp/nt-beta/package/dist/index.modern.mjs create mode 100644 .cdp/nt-beta/package/dist/index.module.js create mode 100644 .cdp/nt-beta/package/dist/index.umd.js create mode 100644 .cdp/nt-beta/package/dist/types.d.ts create mode 100644 .cdp/nt-beta/package/package.json create mode 100644 .cdp/repro.cjs create mode 100644 .cdp/verify-switch.cjs create mode 100644 .cdp/verify-switch2.cjs create mode 100644 .cdp/verify-theme.cjs create mode 100644 components/theme/use-dark-theme.ts create mode 100644 shots/01-login-default.png create mode 100644 shots/01-login-light.png create mode 100644 shots/02-home-default.png create mode 100644 shots/03-home-sunset.png create mode 100644 shots/04-home-dark.png create mode 100644 shots/05-home-ocean.png create mode 100644 shots/06-projects-dark.png create mode 100644 shots/06-projects-default.png create mode 100644 shots/07-chat-default.png create mode 100644 shots/07-chat-ocean.png create mode 100644 shots/08-admin-default.png create mode 100644 shots/09-login-sunset.png create mode 100644 shots/10-home-default-mobile.png create mode 100644 shots/11-theme-picker.png create mode 100644 shots/12-live-dark.png create mode 100644 shots/13-live-sunset.png create mode 100644 shots/14-live-ocean.png create mode 100644 shots/15-live-default.png create mode 100644 shots/admin-badge-debug.png create mode 100644 shots/admin-role-menu.png create mode 100644 shots/final-home.png diff --git a/.cdp/cdp-check.cjs b/.cdp/cdp-check.cjs new file mode 100644 index 0000000..894f171 --- /dev/null +++ b/.cdp/cdp-check.cjs @@ -0,0 +1,59 @@ +/* Verify computed styles for a given theme class after runtime swap. */ +const { spawn } = require("node:child_process"); +const fs = require("node:fs"); +const http = require("node:http"); +const EDGE = "C:/Program Files (x86)/Microsoft/Edge/Application/msedge.exe"; +const PORT = 9337; +function httpJson(path) { + return new Promise((resolve, reject) => { + const req = http.request({ host: "127.0.0.1", port: PORT, path }, (res) => { + let d = ""; + res.on("data", (c) => (d += c)); + res.on("end", () => { try { resolve(JSON.parse(d)); } catch { resolve(d); } }); + }); + req.on("error", reject); req.end(); + }); +} +(async () => { + const profile = fs.mkdtempSync("/tmp/edge-prof-"); + const proc = spawn(EDGE, ["--headless=new", `--remote-debugging-port=${PORT}`, `--user-data-dir=${profile}`, "--no-first-run", "--no-default-browser-check", "--disable-gpu", "about:blank"], { stdio: "ignore" }); + let targets = null; + for (let i = 0; i < 40; i++) { await new Promise((r) => setTimeout(r, 500)); try { targets = await httpJson("/json/list"); break; } catch {} } + if (!targets) { console.error("no targets"); process.exit(1); } + const page = targets.find((t) => t.type === "page"); + const ws = new WebSocket(page.webSocketDebuggerUrl); + await new Promise((r) => (ws.onopen = r)); + let id = 0; + const send = (method, params = {}) => new Promise((resolve) => { + const myId = ++id; + ws.send(JSON.stringify({ id: myId, method, params })); + const t = setInterval(() => { const m = ws._buf.find((b) => b.id === myId); if (m) { clearInterval(t); resolve(m.result ?? m.error); } }, 10); + }); + ws._buf = []; + ws.onmessage = (m) => { const msg = JSON.parse(m.data); if (msg.id) { ws._buf.push(msg); return; } + if (msg.method === "Runtime.consoleAPICalled") console.log("[c]", msg.params.args.map((a) => a.value ?? a.description ?? a.type).join(" ").slice(0, 160)); }; + await send("Runtime.enable"); + await send("Network.enable"); + const cookieFile = process.argv[2]; + if (cookieFile) { + const line = fs.readFileSync(cookieFile, "utf8").split("\n").map((l) => l.trim()).find((l) => l.includes("authjs.session-token")); + if (line) await send("Network.setCookies", { cookies: [{ name: "authjs.session-token", value: line.split("\t").pop(), domain: "localhost", path: "/", httpOnly: true, sameSite: "Lax" }] }); + } + await send("Page.enable"); + await send("Page.navigate", { url: "http://localhost:3210/" }); + await new Promise((r) => setTimeout(r, 4000)); + const theme = process.argv[3] || "dark"; + await send("Runtime.evaluate", { expression: `document.documentElement.className = ${JSON.stringify(theme)}` }); + await new Promise((r) => setTimeout(r, 1500)); + const info = await send("Runtime.evaluate", { expression: `(() => { + const card = document.querySelector('[aria-label^="Drag to move"]')?.closest('[class*="rounded-2xl"]'); + const checkbox = card ? card.querySelector('button[class*="size-4"]') : null; + return JSON.stringify({ + htmlClass: document.documentElement.className.split(" ").slice(-1)[0], + checkboxBorder: checkbox ? getComputedStyle(checkbox).borderColor : null, + cardBg: card ? getComputedStyle(card).backgroundColor : null, + }); + })()`, returnByValue: true }); + console.log(info?.result?.value); + proc.kill(); process.exit(0); +})().catch((e) => { console.error(e.message); process.exit(1); }); diff --git a/.cdp/cdp-console.cjs b/.cdp/cdp-console.cjs new file mode 100644 index 0000000..8cf3a49 --- /dev/null +++ b/.cdp/cdp-console.cjs @@ -0,0 +1,81 @@ +/* Print console messages + page errors for one URL in headless Edge. */ +const { spawn } = require("node:child_process"); +const fs = require("node:fs"); +const http = require("node:http"); + +const EDGE = "C:/Program Files (x86)/Microsoft/Edge/Application/msedge.exe"; +const PORT = 9334; +const url = process.argv[2] || "http://localhost:3210/"; +const cookieFile = process.argv[3]; + +function httpJson(path) { + return new Promise((resolve, reject) => { + const req = http.request({ host: "127.0.0.1", port: PORT, path }, (res) => { + let d = ""; + res.on("data", (c) => (d += c)); + res.on("end", () => { try { resolve(JSON.parse(d)); } catch { resolve(d); } }); + }); + req.on("error", reject); + req.end(); + }); +} + +(async () => { + const profile = fs.mkdtempSync("/tmp/edge-prof-"); + const proc = spawn(EDGE, [ + "--headless=new", `--remote-debugging-port=${PORT}`, `--user-data-dir=${profile}`, + "--no-first-run", "--no-default-browser-check", "--disable-gpu", "about:blank", + ], { stdio: "ignore" }); + + let targets = null; + for (let i = 0; i < 40; i++) { + await new Promise((r) => setTimeout(r, 500)); + try { targets = await httpJson("/json/list"); break; } catch {} + } + if (!targets) { console.error("edge did not start"); process.exit(1); } + const page = targets.find((t) => t.type === "page"); + + const ws = new WebSocket(page.webSocketDebuggerUrl); + await new Promise((r) => (ws.onopen = r)); + let id = 0; + const send = (method, params = {}) => + new Promise((resolve) => { + const myId = ++id; + ws.send(JSON.stringify({ id: myId, method, params })); + const t = setInterval(() => { + const m = ws._buf.find((b) => b.id === myId); + if (m) { clearInterval(t); resolve(m.result ?? m.error); } + }, 10); + }); + ws._buf = []; + ws.onmessage = (m) => { + const msg = JSON.parse(m.data); + if (msg.id) { ws._buf.push(msg); return; } + if (msg.method === "Runtime.consoleAPICalled") { + const text = msg.params.args.map((a) => a.value ?? a.description ?? a.type).join(" "); + console.log(`[${msg.params.type}] ${text}`.slice(0, 3000)); + } + if (msg.method === "Runtime.exceptionThrown") { + console.log("[EXCEPTION]", JSON.stringify(msg.params.exceptionDetails.exception?.description ?? msg.params.exceptionDetails.text).slice(0, 3000)); + } + if (msg.method === "Log.entryAdded") { + const e = msg.params.entry; + console.log(`[log:${e.level}] ${e.text}`.slice(0, 3000)); + } + }; + + await send("Runtime.enable"); + await send("Log.enable"); + await send("Network.enable"); + if (cookieFile) { + const line = fs.readFileSync(cookieFile, "utf8").split("\n").map((l) => l.trim()).find((l) => l.includes("authjs.session-token")); + if (line) await send("Network.setCookies", { cookies: [{ name: "authjs.session-token", value: line.split("\t").pop(), domain: "localhost", path: "/", httpOnly: true, sameSite: "Lax" }] }); + } + await send("Page.enable"); + await send("Page.navigate", { url }); + await new Promise((r) => setTimeout(r, 4500)); + const cls = await send("Runtime.evaluate", { expression: "document.documentElement.className" }); + console.log("ROOT CLASS:", cls?.result?.value); + proc.kill(); + process.exit(0); +})().catch((e) => { console.error(e.message); process.exit(1); }); diff --git a/.cdp/cdp-shots.cjs b/.cdp/cdp-shots.cjs new file mode 100644 index 0000000..7e6a71e --- /dev/null +++ b/.cdp/cdp-shots.cjs @@ -0,0 +1,82 @@ +/* Faithful theme test: sets next-themes' localStorage.theme (the theme NAME) + and reloads -- exactly what the in-app theme toggle does -- then screenshots. */ +const { spawn } = require("node:child_process"); +const fs = require("node:fs"); +const http = require("node:http"); +const path = require("node:path"); + +const EDGE = "C:/Program Files (x86)/Microsoft/Edge/Application/msedge.exe"; +const PORT = 9341; +const BASE = "http://localhost:3210"; +const OUT = path.join(__dirname, "..", "shots"); + +function httpJson(p) { + return new Promise((resolve, reject) => { + const req = http.request({ host: "127.0.0.1", port: PORT, path: p }, (res) => { + let d = ""; res.on("data", (c) => (d += c)); + res.on("end", () => { try { resolve(JSON.parse(d)); } catch { resolve(d); } }); + }); + req.on("error", reject); req.end(); + }); +} + +(async () => { + const profile = fs.mkdtempSync("/tmp/edge-prof-"); + const proc = spawn(EDGE, ["--headless=new", `--remote-debugging-port=${PORT}`, `--user-data-dir=${profile}`, "--no-first-run", "--no-default-browser-check", "--disable-gpu", "about:blank"], { stdio: "ignore" }); + let targets = null; + for (let i = 0; i < 40; i++) { await new Promise((r) => setTimeout(r, 500)); try { targets = await httpJson("/json/list"); break; } catch {} } + if (!targets) { console.error("no targets"); process.exit(1); } + const page = targets.find((t) => t.type === "page"); + const ws = new WebSocket(page.webSocketDebuggerUrl); + await new Promise((r) => (ws.onopen = r)); + let id = 0; + const send = (method, params = {}) => new Promise((resolve) => { + const myId = ++id; ws.send(JSON.stringify({ id: myId, method, params })); + const t = setInterval(() => { const m = ws._buf.find((b) => b.id === myId); if (m) { clearInterval(t); resolve(m.result ?? m.error); } }, 10); + }); + ws._buf = []; + ws.onmessage = (m) => { const msg = JSON.parse(m.data); if (msg.id) { ws._buf.push(msg); return; } + if (msg.method === "Runtime.consoleAPICalled" && msg.params.type === "error") { + const txt = msg.params.args.map((a) => a.value ?? a.description ?? a.type).join(" "); + if (!/hydrated|React DevTools|HMR/.test(txt)) console.log("[err]", txt.slice(0, 140)); + } }; + + await send("Runtime.enable"); await send("Page.enable"); await send("Network.enable"); + const cookieFile = process.argv[2]; + const cookieValue = cookieFile ? (fs.readFileSync(cookieFile, "utf8").split("\n").map((l) => l.trim()).find((l) => l.includes("authjs.session-token")) || "").split("\t").pop() : null; + // Cookie is applied per-job below (login pages need a logged-out state). + + const jobs = [ + { name: "01-login-default", url: `${BASE}/login`, theme: "default", cookie: false, w: 1280, h: 800 }, + { name: "02-home-default", url: `${BASE}/`, theme: "default", cookie: true, w: 1600, h: 1000 }, + { name: "03-home-sunset", url: `${BASE}/`, theme: "sunset", cookie: true, w: 1600, h: 1000 }, + { name: "04-home-dark", url: `${BASE}/`, theme: "dark", cookie: true, w: 1600, h: 1000 }, + { name: "05-home-ocean", url: `${BASE}/`, theme: "ocean", cookie: true, w: 1600, h: 1000 }, + { name: "06-projects-dark", url: `${BASE}/projects`, theme: "dark", cookie: true, w: 1600, h: 1000 }, + { name: "07-chat-ocean", url: `${BASE}/chat`, theme: "ocean", cookie: true, w: 1600, h: 1000 }, + { name: "08-admin-default", url: `${BASE}/admin`, theme: "default", cookie: true, w: 1600, h: 1000 }, + { name: "09-login-sunset", url: `${BASE}/login`, theme: "sunset", cookie: false, w: 1280, h: 800 }, + { name: "10-home-default-mobile", url: `${BASE}/`, theme: "default", cookie: true, w: 430, h: 932 }, + ]; + + for (const job of jobs) { + if (job.cookie && cookieValue) { + await send("Network.setCookies", { cookies: [{ name: "authjs.session-token", value: cookieValue, domain: "localhost", path: "/", httpOnly: true, sameSite: "Lax" }] }); + } else { + await send("Network.deleteCookies", { name: "authjs.session-token", domain: "localhost" }); + } + await send("Emulation.setDeviceMetricsOverride", { width: job.w, height: job.h, deviceScaleFactor: 1, mobile: job.w < 500 }); + await send("Page.navigate", { url: job.url }); + await new Promise((r) => setTimeout(r, 3500)); + // Switch theme the way the app does: write the theme NAME to next-themes' + // storage key, then reload so it applies on a fresh (SSR+hydration) render. + await send("Runtime.evaluate", { expression: `localStorage.setItem('theme', ${JSON.stringify(job.theme)}); 'ok'` }); + await send("Page.reload"); + await new Promise((r) => setTimeout(r, 3800)); + const htmlClass = (await send("Runtime.evaluate", { expression: `document.documentElement.className`, returnByValue: true }))?.result?.value || ""; + const shot = await send("Page.captureScreenshot", { format: "png", captureBeyondViewport: false }); + fs.writeFileSync(path.join(OUT, `${job.name}.png`), Buffer.from(shot.data, "base64")); + console.log(`saved ${job.name} (html=...${htmlClass.split(" ").filter(Boolean).slice(-1)[0]})`); + } + proc.kill(); process.exit(0); +})().catch((e) => { console.error(e); process.exit(1); }); diff --git a/.cdp/debug-menu.cjs b/.cdp/debug-menu.cjs new file mode 100644 index 0000000..7ba9baa --- /dev/null +++ b/.cdp/debug-menu.cjs @@ -0,0 +1,53 @@ +/* Debug: step through the theme menu with full state dumps between clicks. */ +const { spawn } = require("node:child_process"); +const fs = require("node:fs"); +const http = require("node:http"); +const EDGE = "C:/Program Files (x86)/Microsoft/Edge/Application/msedge.exe"; +const PORT = 9356; +function httpJson(p){return new Promise((res,rej)=>{const r=http.request({host:"127.0.0.1",port:PORT,path:p},(x)=>{let d="";x.on("data",c=>d+=c);x.on("end",()=>{try{res(JSON.parse(d))}catch{res(d)}})});r.on("error",rej);r.end()})} +(async()=>{ + const prof=fs.mkdtempSync(require("node:os").tmpdir()+"/edge-prof-"); + const proc=spawn(EDGE,["--headless=new","--remote-debugging-port="+PORT,"--user-data-dir="+prof,"--no-first-run","--no-default-browser-check","--disable-gpu","about:blank"],{stdio:"ignore"}); + let tg=null;for(let i=0;i<40;i++){await new Promise(r=>setTimeout(r,500));try{tg=await httpJson("/json/list");break}catch{}} + const page=tg.find(t=>t.type==="page"); + const ws=new WebSocket(page.webSocketDebuggerUrl); + await new Promise(r=>ws.onopen=r);let id=0; + const send=(m,p={})=>new Promise(res=>{const i2=++id;ws.send(JSON.stringify({id:i2,method:m,params:p}));const t=setInterval(()=>{const f=ws._buf.find(b=>b.id===i2);if(f){clearInterval(t);res(f.result??f.error)}},10)}); + ws._buf=[];const errs=[]; + ws.onmessage=(m)=>{const j=JSON.parse(m.data);if(j.id){ws._buf.push(j);return;} + if(j.method==="Runtime.consoleAPICalled"&&j.params.type==="error"){errs.push(j.params.args.map(a=>(a.value??a.description??"")).join(" ").slice(0,160));} + if(j.method==="Runtime.exceptionThrown"){errs.push("EXC: "+(j.params.exceptionDetails?.exception?.description||"").slice(0,120));}}; + await send("Runtime.enable");await send("Page.enable");await send("Network.enable"); + const cv=fs.readFileSync(process.argv[2],"utf8").split("\n").map(l=>l.trim()).find(l=>l.includes("authjs.session-token")).split("\t").pop(); + await send("Network.setCookies",{cookies:[{name:"authjs.session-token",value:cv,domain:"localhost",path:"/",httpOnly:true,sameSite:"Lax"}]}); + await send("Emulation.setDeviceMetricsOverride",{width:1440,height:900,deviceScaleFactor:1}); + + const ev=(expr)=>send("Runtime.evaluate",{expression:expr,returnByValue:true,awaitPromise:true}).then(r=>r.result?.value ?? r.exceptionDetails?.exception?.description); + const dump=async(label)=>console.log(label, JSON.stringify(await ev(`(()=>{ + const btns=Array.from(document.querySelectorAll("button")).map(b=>(b.textContent||"").trim()).filter(t=>["Theme","Default","Sunset","Dark","Ocean","Match system"].includes(t)); + return {html:document.documentElement.className.split(" ").filter(Boolean).slice(-1).join(","), ls:localStorage.getItem("theme"), btns, menuOpen:!!document.querySelector('[data-slot="dropdown-menu-content"]')}; + })()`))); + const click=async(x,y)=>{await send("Input.dispatchMouseEvent",{type:"mousePressed",x,y,button:"left",clickCount:1});await send("Input.dispatchMouseEvent",{type:"mouseReleased",x,y,button:"left",clickCount:1});}; + const center=async(name)=>{const v=await ev(`(()=>{const b=Array.from(document.querySelectorAll("button")).find(x=>(x.textContent||"").trim()==="${name}");if(!b)return null;const r=b.getBoundingClientRect();return JSON.stringify({x:Math.round(r.x+12),y:Math.round(r.y+r.height/2)})})()`);return v?JSON.parse(v):null;}; + + await send("Page.navigate",{url:"http://localhost:3210/"}); + await new Promise(r=>setTimeout(r,9000)); + console.log("PAGE", JSON.stringify(await ev("JSON.stringify({title:document.title,bodyLen:document.body.innerText.length,btnCount:document.querySelectorAll('button').length})"))); + + await dump("S0 initial "); + let p=await center("Theme"); if(!p){console.log("no Theme btn");proc.kill();process.exit(1);} + await click(p.x,p.y); await new Promise(r=>setTimeout(r,600)); + await dump("S1 after open "); + p=await center("Default"); console.log(" default btn at", JSON.stringify(p)); + await click(p.x,p.y); await new Promise(r=>setTimeout(r,900)); + await dump("S2 after Default"); + p=await center("Theme"); if(!p){console.log("no Theme btn #2");proc.kill();process.exit(1);} + await click(p.x,p.y); await new Promise(r=>setTimeout(r,600)); + await dump("S3 after open2 "); + p=await center("Ocean"); console.log(" ocean btn at", JSON.stringify(p)); + await click(p.x,p.y); await new Promise(r=>setTimeout(r,900)); + await dump("S4 after Ocean "); + const real=errs.filter(e=>!/favicon|manifest|icon|404/i.test(e)); + console.log("ERRORS:", real.length); real.slice(0,6).forEach(e=>console.log(" -",e)); + proc.kill();process.exit(0); +})().catch(e=>{console.error("FAIL",e.message);process.exit(1)}); diff --git a/.cdp/diag.cjs b/.cdp/diag.cjs new file mode 100644 index 0000000..148b693 --- /dev/null +++ b/.cdp/diag.cjs @@ -0,0 +1,53 @@ +const { spawn } = require("node:child_process"); +const fs = require("node:fs"); +const http = require("node:http"); +const EDGE = "C:/Program Files (x86)/Microsoft/Edge/Application/msedge.exe"; +const PORT = 9339; +function httpJson(path) { + return new Promise((resolve, reject) => { + const req = http.request({ host: "127.0.0.1", port: PORT, path }, (res) => { + let d = ""; res.on("data", (c) => (d += c)); + res.on("end", () => { try { resolve(JSON.parse(d)); } catch { resolve(d); } }); + }); + req.on("error", reject); req.end(); + }); +} +(async () => { + const profile = fs.mkdtempSync("/tmp/edge-prof-"); + const proc = spawn(EDGE, ["--headless=new", `--remote-debugging-port=${PORT}`, `--user-data-dir=${profile}`, "--no-first-run", "--no-default-browser-check", "--disable-gpu", "about:blank"], { stdio: "ignore" }); + let targets = null; + for (let i = 0; i < 40; i++) { await new Promise((r) => setTimeout(r, 500)); try { targets = await httpJson("/json/list"); break; } catch {} } + if (!targets) { console.error("no targets"); process.exit(1); } + const page = targets.find((t) => t.type === "page"); + const ws = new WebSocket(page.webSocketDebuggerUrl); + await new Promise((r) => (ws.onopen = r)); + let id = 0; + const send = (method, params = {}) => new Promise((resolve) => { + const myId = ++id; ws.send(JSON.stringify({ id: myId, method, params })); + const t = setInterval(() => { const m = ws._buf.find((b) => b.id === myId); if (m) { clearInterval(t); resolve(m.result ?? m.error); } }, 10); + }); + ws._buf = []; + ws.onmessage = (m) => { const msg = JSON.parse(m.data); if (msg.id) { ws._buf.push(msg); return; } + if (msg.method === "Runtime.consoleAPICalled") console.log("[c]", msg.params.args.map((a) => a.value ?? a.description ?? a.type).join(" ").slice(0, 120)); }; + await send("Runtime.enable"); await send("Network.enable"); + const cookieFile = process.argv[2]; + if (cookieFile) { const line = fs.readFileSync(cookieFile, "utf8").split("\n").map((l) => l.trim()).find((l) => l.includes("authjs.session-token")); + if (line) await send("Network.setCookies", { cookies: [{ name: "authjs.session-token", value: line.split("\t").pop(), domain: "localhost", path: "/", httpOnly: true, sameSite: "Lax" }] }); } + await send("Page.enable"); + await send("Page.navigate", { url: "http://localhost:3210/" }); + await new Promise((r) => setTimeout(r, 4000)); + const theme = process.argv[3] || "dark"; + await send("Runtime.evaluate", { expression: `document.documentElement.className = ${JSON.stringify(theme)}` }); + await new Promise((r) => setTimeout(r, 1600)); + const res = await send("Runtime.evaluate", { expression: `(() => { + const card = document.querySelector('[aria-label^="Drag to move"]')?.closest('[class*="rounded-2xl"]'); + return JSON.stringify({ + htmlClassTail: document.documentElement.className.split(" ").filter(Boolean).slice(-2), + inlineStyle: card ? card.getAttribute("style") : null, + computedBg: card ? getComputedStyle(card).backgroundColor : null, + varCard: getComputedStyle(document.documentElement).getPropertyValue('--card').trim(), + }); + })()`, returnByValue: true }); + console.log(res?.result?.value); + proc.kill(); process.exit(0); +})().catch((e) => { console.error(e.message); process.exit(1); }); diff --git a/.cdp/final-check.cjs b/.cdp/final-check.cjs new file mode 100644 index 0000000..72849aa --- /dev/null +++ b/.cdp/final-check.cjs @@ -0,0 +1,173 @@ +/* FINAL CHECK: login via UI, verify Home renders, cycle all 4 themes live, + * confirm card colors change instantly, zero console errors, screenshots. */ +const { spawn } = require("node:child_process"); +const fs = require("node:fs"); +const http = require("node:http"); +const EDGE = "C:/Program Files (x86)/Microsoft/Edge/Application/msedge.exe"; +const PORT = 9380; +function httpJson(p) { + return new Promise((res, rej) => { + const r = http.request({ host: "127.0.0.1", port: PORT, path: p }, (x) => { + let d = ""; x.on("data", (c) => { d += c; }); + x.on("end", () => { try { res(JSON.parse(d)); } catch (e) { res(d); } }); + }); + r.on("error", rej); r.end(); + }); +} +(async () => { + const prof = fs.mkdtempSync(require("node:os").tmpdir() + "/edge-prof-"); + const proc = spawn(EDGE, ["--headless=new", `--remote-debugging-port=${PORT}`, `--user-data-dir=${prof}`, "--no-first-run", "--no-default-browser-check", "--disable-gpu", "about:blank"], { stdio: "ignore" }); + let tg = null; + for (let i = 0; i < 40; i++) { await new Promise(r => setTimeout(r, 500)); try { tg = await httpJson("/json/list"); break; } catch (e) {} } + const page = tg.find(t => t.type === "page"); + const ws = new WebSocket(page.webSocketDebuggerUrl); + await new Promise(r => (ws.onopen = r)); + let id = 0; + const send = (m, p = {}) => new Promise(res => { + const i2 = ++id; ws.send(JSON.stringify({ id: i2, method: m, params: p })); + const t = setInterval(() => { const f = ws._buf.find(b => b.id === i2); if (f) { clearInterval(t); res(f.result ?? f.error); } }, 10); + }); + ws._buf = []; + const errors = []; + ws.onmessage = (m) => { + const j = JSON.parse(m.data); + if (j.id) { ws._buf.push(j); return; } + if (j.method === "Runtime.consoleAPICalled" && j.params.type === "error") { + errors.push(j.params.args.map(a => (a.value ?? a.description ?? "")).join(" ").slice(0, 140)); + } + if (j.method === "Runtime.exceptionThrown") { + errors.push("EXC: " + (j.params.exceptionDetails?.exception?.description || j.params.exceptionDetails?.text || "").slice(0, 140)); + } + }; + await send("Runtime.enable"); await send("Page.enable"); await send("Network.enable"); + await send("Emulation.setDeviceMetricsOverride", { width: 1440, height: 900, deviceScaleFactor: 1 }); + + const ev = (e) => send("Runtime.evaluate", { expression: e, returnByValue: true }).then(r => (r.result ? r.result.value : "ERR")); + const click = async (x, y) => { + await send("Input.dispatchMouseEvent", { type: "mousePressed", x, y, button: "left", clickCount: 1 }); + await send("Input.dispatchMouseEvent", { type: "mouseReleased", x, y, button: "left", clickCount: 1 }); + }; + const sleep = (ms) => new Promise(r => setTimeout(r, ms)); + const shot = async (name) => { const s = await send("Page.captureScreenshot", { format: "png" }); fs.writeFileSync("shots/" + name, Buffer.from(s.data, "base64")); }; + + // --- 1. login ----------------------------------------------------------- + await send("Page.navigate", { url: "http://localhost:3210/" }); + await sleep(4000); + const fill = (sel, v) => ev(`(() => { const el = document.querySelector(${JSON.stringify(sel)}); if (!el) return false; const set = Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype, "value").set; set.call(el, ${JSON.stringify(v)}); el.dispatchEvent(new Event("input", { bubbles: true })); return true; })()`); + console.log("1. login form found:", await ev("!!document.querySelector('input[type=email]') && !!document.querySelector('input[type=password]')")); + await fill("input[type=email]", "dev@example.com"); + await fill("input[type=password]", "password123"); + const sub = JSON.parse(await ev(`(() => { const b = document.querySelector("form button[type=submit]") || document.querySelector("form button"); const r = b.getBoundingClientRect(); return JSON.stringify({ x: Math.round(r.x + r.width / 2), y: Math.round(r.y + r.height / 2) }); })()`)); + await click(sub.x, sub.y); + let home = false; + for (let i = 0; i < 20; i++) { + await sleep(1000); + const url = await ev("location.href"); + const btns = await ev("document.querySelectorAll('button').length"); + if (url.endsWith("3210/") && btns > 8) { home = true; break; } + } + console.log("2. logged in & on Home:", home, "| URL:", await ev("location.href"), "| buttons:", await ev("document.querySelectorAll('button').length")); + console.log("3. board rendered:", await ev(`(() => { const lanes = document.querySelectorAll('[data-slot="dropdown-menu-trigger"], [class*="lane"]').length; const groups = Array.from(document.querySelectorAll("h3")).length; return "headings=" + groups; })()`)); + + // --- 2. helpers --------------------------------------------------------- + const cardState = () => ev(`(() => { + const cs = Array.from(document.querySelectorAll('[class*=rounded-2xl]')).filter(c => /background-color/.test(c.getAttribute('style') || '')); + if (!cs.length) return { cards: 0 }; + const s = cs[0].getAttribute('style'); + return { + cards: cs.length, + fill: (s.match(/background-color:([^;]+)/) || [])[1], + stroke: (s.match(/border-color:([^;]+)/) || [])[1], + html: document.documentElement.className.split(' ').filter(Boolean).slice(-1).join(','), + bodyBg: getComputedStyle(document.body).backgroundColor, + }; + })()`); + + const selectTheme = async (name) => { + for (let attempt = 1; attempt <= 3; attempt++) { + const v = await ev(`(() => { const b = Array.from(document.querySelectorAll('button')).find(x => (x.textContent || '').trim() === 'Theme'); if (!b) return null; const r = b.getBoundingClientRect(); return JSON.stringify({ x: Math.round(r.x + r.width / 2), y: Math.round(r.y + r.height / 2) }); })()`); + if (!v) { await sleep(400); continue; } + const tp = JSON.parse(v); await click(tp.x, tp.y); + let labels = null; + for (let i = 0; i < 20; i++) { + await sleep(150); + labels = await ev(`(() => { const m = document.querySelector('[data-slot="dropdown-menu-content"]'); if (!m || m.querySelectorAll('button').length < 4) return null; return JSON.stringify(Array.from(m.querySelectorAll('button')).map(b => (b.textContent || '').trim())); })()`); + if (labels) break; + } + if (!labels) { await sleep(500); continue; } + const idx = JSON.parse(labels).indexOf(name); + if (idx === -1) return "option missing"; + const p = JSON.parse(await ev(`(() => { const m = document.querySelector('[data-slot="dropdown-menu-content"]'); const b = m.querySelectorAll('button')[${idx}]; const r = b.getBoundingClientRect(); return JSON.stringify({ x: Math.round(r.x + 12), y: Math.round(r.y + r.height / 2) }); })()`)); + await click(p.x, p.y); await sleep(900); + return "ok"; + } + return "failed after retries"; + }; + + // --- 3. cycle themes: card fill must match light/dark variant live --- + const seq = ["Sunset", "Default", "Dark", "Ocean", "Sunset"]; + const expectedFill = (theme) => + theme === "Dark" || theme === "Ocean" ? "#3a2320" /* dark tint (softDark) */ : "#fae4e1"; /* light tint (soft) */; + let prev = await cardState(); + let allOk = true; + for (const name of seq) { + const r = await selectTheme(name); + await sleep(300); + const now = await cardState(); + const correct = r === "ok" && now.fill && now.fill.includes(expectedFill(name)) && prev.fill !== undefined; + // a live switch = the html class changed and the fill is the right variant for the new theme + if (!correct) allOk = false; + console.log(`4. ${name.padEnd(7)}:`, r, "| fill correct for theme:", now.fill.includes(expectedFill(name)), "| fill:", now.fill && now.fill.trim().slice(0, 40), "| html:", now.html); + prev = now; + } + console.log("5. ALL theme switches correct & live:", allOk); + + // --- 4. other pages smoke test ------------------------------------------ + const pages = ["/projects", "/chat", "/admin"]; + let adminBadgeOk = null; + for (const p of pages) { + const before = errors.length; + await ev(`location.href = ${JSON.stringify("http://localhost:3210" + p)}; true`); + await sleep(3500); + const ok = await ev(`document.body.innerText.length > 50 && document.querySelectorAll('button').length > 3`); + const newErr = errors.length - before; + console.log(`7. page ${p}: renders=${!!ok}, new console errors=${newErr}`); + if (p === "/admin") { + // role badge must be visible & its menu must open on a trusted click + await ev(`(() => { const b = Array.from(document.querySelectorAll('button')).find(x => /Change role/.test(x.getAttribute('aria-label') || '')); if (b) b.scrollIntoView({ block: 'center' }); return true; })()`); + await sleep(400); + const badgePos = await ev(`(() => { const b = Array.from(document.querySelectorAll('button')).find(x => /Change role/.test(x.getAttribute('aria-label') || '')); if (!b) return null; const r = b.getBoundingClientRect(); return JSON.stringify({ x: Math.round(r.x + r.width / 2), y: Math.round(r.y + r.height / 2) }); })()`); + if (badgePos) { + const bp = JSON.parse(badgePos); + await click(bp.x, bp.y); + let opened = false; + for (let i = 0; i < 10; i++) { + await sleep(150); + opened = !!(await ev(`document.querySelector('[data-slot="dropdown-menu-content"]')`)); + if (opened) break; + } + adminBadgeOk = opened; + console.log("7b. admin role-badge menu opens:", opened); + await ev(`document.body.click(); true`); + await sleep(300); + } else { + adminBadgeOk = false; + console.log("7b. admin role badge not found"); + } + } + } + + // --- 5. final state + errors -------------------------------------------- + await ev(`location.href = "http://localhost:3210/"; true`); + await sleep(4000); + await shot("final-home.png"); + const realErrors = errors.filter(e => !/favicon|manifest|icon|404|DevTools|HMR/i.test(e)); + console.log("8. CONSOLE ERRORS (filtered):", realErrors.length); + realErrors.slice(0, 8).forEach(e => console.log(" -", e)); + console.log("9. hydration warnings:", errors.filter(e => /hydrat/i.test(e)).length); + console.log("10. Base UI crashes:", errors.filter(e => /Base UI/i.test(e)).length); + proc.kill(); + const pass = allOk && realErrors.length === 0 && home && adminBadgeOk === true; + console.log(pass ? "\nFINAL RESULT: ALL PASS ✔" : "\nFINAL RESULT: FAIL"); + process.exit(pass ? 0 : 2); +})().catch(e => { console.error("FAIL", e.message); process.exit(1); }); diff --git a/.cdp/live-switch.cjs b/.cdp/live-switch.cjs new file mode 100644 index 0000000..78b464f --- /dev/null +++ b/.cdp/live-switch.cjs @@ -0,0 +1,117 @@ +/* Live-switch test with waits + evidence screenshots. */ +const { spawn } = require("node:child_process"); +const fs = require("node:fs"); +const http = require("node:http"); +const EDGE = "C:/Program Files (x86)/Microsoft/Edge/Application/msedge.exe"; +const PORT = 9368; +function httpJson(p){ + return new Promise((res, rej) => { + const r = http.request({ host: "127.0.0.1", port: PORT, path: p }, (x) => { + let d = ""; + x.on("data", (c) => { d += c; }); + x.on("end", () => { try { res(JSON.parse(d)); } catch (e) { res(d); } }); + }); + r.on("error", rej); + r.end(); + }); +} +(async () => { + const prof = fs.mkdtempSync(require("node:os").tmpdir() + "/edge-prof-"); + const proc = spawn(EDGE, ["--headless=new", `--remote-debugging-port=${PORT}`, `--user-data-dir=${prof}`, "--no-first-run", "--no-default-browser-check", "--disable-gpu", "about:blank"], { stdio: "ignore" }); + let tg = null; + for (let i = 0; i < 40; i++) { await new Promise(r => setTimeout(r, 500)); try { tg = await httpJson("/json/list"); break; } catch (e) {} } + const page = tg.find(t => t.type === "page"); + const ws = new WebSocket(page.webSocketDebuggerUrl); + await new Promise(r => (ws.onopen = r)); + let id = 0; + const send = (m, p = {}) => new Promise(res => { + const i2 = ++id; + ws.send(JSON.stringify({ id: i2, method: m, params: p })); + const t = setInterval(() => { const f = ws._buf.find(b => b.id === i2); if (f) { clearInterval(t); res(f.result ?? f.error); } }, 10); + }); + ws._buf = []; + const errs = []; + ws.onmessage = (m) => { + const j = JSON.parse(m.data); + if (j.id) { ws._buf.push(j); return; } + if (j.method === "Runtime.consoleAPICalled" && j.params.type === "error") errs.push(j.params.args.map(a => (a.value ?? a.description ?? "")).join(" ").slice(0, 120)); + if (j.method === "Runtime.exceptionThrown") errs.push("EXC: " + (j.params.exceptionDetails?.exception?.description || "").slice(0, 120)); + }; + await send("Runtime.enable"); + await send("Page.enable"); + await send("Network.enable"); + const cv = fs.readFileSync(process.argv[1], "utf8").split("\n").map(l => l.trim()).find(l => l.includes("authjs.session-token")).split("\t").pop(); + await send("Network.setCookies", { cookies: [{ name: "authjs.session-token", value: cv, domain: "localhost", path: "/", httpOnly: true, sameSite: "Lax" }] }); + await send("Emulation.setDeviceMetricsOverride", { width: 1440, height: 900, deviceScaleFactor: 1 }); + await send("Page.navigate", { url: "http://localhost:3210/" }); + let ready = false; + for (let i = 0; i < 45; i++) { + await new Promise(r => setTimeout(r, 1000)); + ready = await send("Runtime.evaluate", { expression: "document.querySelectorAll('button').length > 5", returnByValue: true }).then(r => r.result?.value); + if (ready) break; + } + console.log("page ready:", ready); + + const ev = (expr) => send("Runtime.evaluate", { expression: expr, returnByValue: true }).then(r => r.result?.value); + const click = async (x, y) => { + await send("Input.dispatchMouseEvent", { type: "mousePressed", x, y, button: "left", clickCount: 1 }); + await send("Input.dispatchMouseEvent", { type: "mouseReleased", x, y, button: "left", clickCount: 1 }); + }; + const sleep = (ms) => new Promise(r => setTimeout(r, ms)); + const cardStyle = async () => ev(`(() => { + const c = Array.from(document.querySelectorAll('[class*=rounded-2xl]')).find(x => /background-color/.test(x.getAttribute('style') || '')); + return c ? c.getAttribute('style').slice(0, 150) : 'no-card'; + })()`); + const shot = async (name) => { + const s = await send("Page.captureScreenshot", { format: "png" }); + fs.writeFileSync("shots/" + name, Buffer.from(s.data, "base64")); + }; + + const selectTheme = async (name) => { + const v = await ev(`(() => { + const b = Array.from(document.querySelectorAll('button')).find(x => (x.textContent || '').trim() === 'Theme'); + if (!b) return null; + const r = b.getBoundingClientRect(); + return JSON.stringify({ x: Math.round(r.x + r.width / 2), y: Math.round(r.y + r.height / 2) }); + })()`); + if (!v) return "no theme button"; + const tp = JSON.parse(v); + await click(tp.x, tp.y); + let labels = null; + for (let i = 0; i < 16; i++) { + await sleep(150); + labels = await ev(`(() => { + const m = document.querySelector('[data-slot="dropdown-menu-content"]'); + if (!m || m.querySelectorAll('button').length < 4) return null; + return JSON.stringify(Array.from(m.querySelectorAll('button')).map(b => (b.textContent || '').trim())); + })()`); + if (labels) break; + } + if (!labels) return "menu never populated"; + const idx = JSON.parse(labels).indexOf(name); + if (idx === -1) return "option missing: " + labels; + const p = JSON.parse(await ev(`(() => { + const m = document.querySelector('[data-slot="dropdown-menu-content"]'); + const b = m.querySelectorAll('button')[${idx}]; + const r = b.getBoundingClientRect(); + return JSON.stringify({ x: Math.round(r.x + 12), y: Math.round(r.y + r.height / 2) }); + })()`)); + await click(p.x, p.y); + await sleep(900); + return "ok"; + }; + + const A = await cardStyle(); console.log("A dark :", A); await shot("12-live-dark.png"); + console.log("-> Sunset :", await selectTheme("Sunset")); + const B = await cardStyle(); console.log("B sunset :", B); await shot("13-live-sunset.png"); + console.log("-> Ocean :", await selectTheme("Ocean")); + const C = await cardStyle(); console.log("C ocean :", C); await shot("14-live-ocean.png"); + console.log("-> Default:", await selectTheme("Default")); + const D = await cardStyle(); console.log("D default :", D); await shot("15-live-default.png"); + console.log("CHANGED A!=B:", A !== B, " B!=C:", B !== C, " C!=D:", C !== D); + const real = errs.filter(e => !/favicon|manifest|icon|404/i.test(e)); + console.log("CONSOLE ERRORS:", real.length); + real.slice(0, 4).forEach(e => console.log(" -", e)); + proc.kill(); + process.exit(0); +})().catch(e => { console.error("FAIL", e.message); process.exit(1); }); diff --git a/.cdp/nt-beta/next-themes-1.0.0-beta.0.tgz b/.cdp/nt-beta/next-themes-1.0.0-beta.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..2613bc925a508ee7b24d2af21c0bfbcf2066e141 GIT binary patch literal 10341 zcmV-rD4N$FiwFP!000006YYKLa@#tV?)+9&zXPneV$w}fw&Nry}ic|A2R$GKGlE4m;J+o!@bA*4cR``@7r7>`GXhwJA5!J`A1b2a~u9vr~@AMEer z`|rTZ%IAOi{NG~{|CF_|5g+rEZJq1i#zFM=V8Wz`ur&BPzc5BwHc30}b}$~==_uf# zpV~p(?oT5>*w$#Z`#f_^p#Nu{q(L05r4voY?W>iVc6v4JdT|&hKRLsM z^T=#8jw9yw(=2hl3<$D8oG{6E5V3hYP1q}-Vt-7TJDJ#xMvMLT|NTGg4NnH#%b4#b zmuwvS97`XtFo>XHJYXI?l10zvX~xGa4*W_VeIM2-7pWN{z z)MQ7S-WC@x?JEvkg*MDp+eEgqWX^(&rWGd>+8w|o-n++6Bhc6|Y&3ekULShf*k&L! zFpczB7w5)3=m5N)y9vmO@0Z>|Z6fzR<&DN);^_|6g$Z=o`3V?>c+7golS!}4^~cnX zlVRJBy|nH6S8n8Szct`)HcdcOJ*wA&K2R56Z1g5=6cNxO>~5N|-Ulex0|AIHQ;@$) z4kH$%9qQM|w9#&hDQaUekm5#TFpY$$znlYO#)6&1<4GLxD6^>On9&=Gga9atb|3rxPlhxtAa~6_v@^ zhTdVJg-{1*>niX;8!?E*aJu=`=#-5bOKc#2v=H60)_DVhT=3#g@a@4CiWG(qgDA5JoSY()dXuBJ2hSaS>LbS7%6iLPCVT2hc{C#w-|vRSDdT zV^edKHwG4Q1~!mvfz5uJE55CgEeB3Otx?B;W)Ia^yy+F;ML>js0vC zcq8mD^W2DWHw~b1lx8#+*&OT)jRlN>n0GHt8=WMMGn%OOF8d3@qy$*Sh~!IjdNcPpI*1H=~e=Thku z2ucQW5=SRt;9WWk!GUVd*a?H-DBCfYPha34>?J6`leVbz^sY2$Zh^!zRH0Q0Puh}c zQ%&bnw!8Zam~~LGt=(Pfh})0B*LdX8Q#P9W2@N~@FpW}oz&}W@2@{@;z(<3fFUpLA z6ebB|ekN!N_X*G-FON;2jOMuD4vEss95OE zH9p;FE+;aJhrZup3yx;d4~8J( z=&gZ*4}n?`rnXSFlA#560{tbUA=m@q9R$Ov9DW$c34|L$4NDa%ZtH45ckgqA{>{T}vg0A?KYQ?HduC3sce& zF`BP4Bjej#U(vZS!;it#pxBYM2M^(1<<;acq!>(=*n*B{$rPLUWyGOuLIVgg4ho=r zOAl4DN4=IzG6=SW_|!YEqLmYTeCEk9UTq2@*T4ghhJVX&Ih8(#C^A722Z*NEAkPZV zi4l{AqCXA7tOYX+@=d{05KX3;2#tm5NNK)BT>LI^qclKSdmRZ|3XIXj0B5f!_`*eB zE{ih^Bu~!HfOl0d6(&K9QV~)!L(>~syQS4?f%;I%mhc-UO@^%NuybiWEhgO?u=64S zvkqZZG56Gy!f88LSouX1-9Ns2`9gE*(((JngrVGEnsg;K1brnu@c0Bqtmk2EU#NLAV4H5r_~-qk~<|E79PTsa9rnFd*yN z@-enoC0js5PA$?D{fJ@+(DZ)L1I@T$V?l%*!uMY4CBX!E&D^1tTQZQnc-9J03b3>u z(uwkUetUBErW)AfA%%$2qZrywfV~V<%tFPG!2sqNN)UnHV@)_{h{)wE0pj3DYgeGR~%jyExr|9 zBc}KO)BK`S!mtQ&BA#p#omz{H7K>!0syFzuDO^U=qI69SCyJXeZ|Le*Vt&Obj$9Kp zy@`X-B;{`woYW2p2?0v2WPYH#hMWWL3o@^fi&+363Aj)2`{4etQ908#%`35|25s#K zSU?%NkOCDkq|$kahPBQaD?Ku??$AwqNOW;%+^lXW3rh%WU<4QHmQN1}dZm~EtP{m! zY9=rb!3fBQylY)&AP#;7UNVcp_;R%mI=wP%+s1l-DGn z{XAh5+?RqP8Zjl9C>*GfGZzzt7{z#k;F%^38eM7QDHXvO7iC>eQJ(vh^LD1U?5M&| zi;V4b7-3kq(pIA(IrHOaClma+B>}Z^`vII>1#U$y)-j|PauyUJEH!=vDkeLMqFQ#1 zimftC05S!CFmi-N2CeK+*-J~_Ws+HTO(>D14Z>ls>q1_^X;MKop0DDWm50WKLo6&3 z+Fq5(%d?$v_?Qo;%>kzAMb1u{EGAvdAX@ZuQL>>0TADGJEZ#&iY50SSAj9KI-LA?6@hLK8?) zqv&`6QWepeXhU-A1M#gbt+~R$sdWTB@e#6*F%(e+VPvx;&IoaVfbyK;pp1K?DEJ!$ zP8fF=K5*iCv7L_E{V*Q3^8|^)W~~j#oqr(&MRZO8t2ZTMeLj%+eh~->_Ixqf32zBo zPVY-7syl#acn0EutHOQ?2=r*P z8vat2;sX1)Vub~CghgggDs&d#B%xBX6j@Y~GK@PQ=evZ+xLU1GkMhDCF z@^+9kmFky(Zby*o*@T$w?h1fzcUNI0_1udrX|8INi(^Yv$|hG28Yn^|`HHX&5gQ0h zuFTGO-a?MV*Je-1N=by(02Cr2GUFSkpNcq(1;ff6wo__mhb>hABP=P1Aq*4vyaYoM z?j|ykami1n{wQ3!N7ol?-TuNH1uJ&hdeul zaLbUuUbUau1cWg*oEMeg= z#h6Tra68R#)=B2cSXPGbYkCU*RcZ)=dhU8B`)vj zav*g3qFh-P&MQk|AOT;s1fPfZdY9Vy)0L3^j>$l6I)D#LX#vXZF|JdwKjy1=FXcK_ zqw&*cFUyT(1g~kn0@hZtggn-`>%sl{q~x#*L&=*_xqE7};!%_}h*1fOU|EG=(E ziJ>sB5I;&-38-3?zdTG;`FE|9*GkP<=Hh}8{Pmo|%UpoK?0MPFmu!VtD_#98VC)r%^E&E@}Se0m1)t`ny(`C`r-8DXsOQ?`fV=#RzO+3^MxwpY6 z)ljLDoGrlzD#pg}C-JbvP;ZMiU>FW#e^rvI`e)`kfnz}ZOYqTtHgXn+dwWYZ;@DgHrFMI$HWzsmb`L{;+EGVRL*k2~Lx^3>MuATY zzhnjx#X(75FaCtn3+1gBdy02I1tH+sjiG%Dq38*#)u#yeLp^8WE5s ziX2_lqdYS;Wo7)HQRl zY~DD5Dw?Lvb2qXm7Z^XAM`^TcnN(Wv89bKb{9C0@=F@d~@Ocfl^@+1k{53VyOPq2) zNWmA(JGiHVujbG1+#tj~`H-ytIYwBd$d=6UOGXMC7id%E_mytt(LLds$mncC5YXhZ{=MO z5zgwqX3Vvv#;~Ucwzevj_d@LJgIv2OmVq<1W=HkqnmVOEw8p5X>Z>#wP-z-+TgUu6EH0|7{v1xZ`V{Pok~uUEgA_!20Tr9VxWL zwtjW|gF2?8ccXpr?3IhEo}oa|R%@!&HsW7t-tUj-&EYv@r1GN@8#&o;JXxg`$KDJa(S1CF0?m zw3MFbX^z+#9%u5T&Xk-CVgz20c++v3;n9y&-|1i4fKlG80TT=cESSjED143J8ZI0S zqacfIJQCE4VrmPOC!bNV7YE2uW zTzMiP@7UO#>y_*RO~x&ie!jCGl^sObp9&Y4Q%QJ^e?)QKuwCNMkJ%|3V*EwuN?V4= z<;6;UVtbSrcSbwr}5r{(w$t*bjo{Iqb8tw>zK% z9+dy>WMYxNr>}LCaH16~=kqpWlXa8ZmQ7&3a84?HquD^!OhY>F?I6xxL_o&dn)Wh zzJF61t8oy~ep{;X7gTN`(C@%i^2DxcZe`mdOb-~6R1H2UM5%9UH{MyLy;<6}1Y!1} zTqyWd5c&JllC7g>a<8-{5B9+yKKLy^p5ZgnE-<#;g z^K$%X-3CHjeWYdPd{xyCXj21(TsR2RAk{XeOZ=9$E0>4Tk|Dp`c|j>h^I5((k)Va9 zCHR2=P4Wsdg+2)Enc^7Os7{jDCrrL`Fbzon#j-HYky^^9JO@#5=ud_S5v0|t+dOVe zTN@N=6A@g|m8&@ADvqP}3$d;^<;3J6sA8?RG>oJ{)gHMj&Z9&~j;hG6@SsClI=dvd zdXTL{EKT3*VvrQlP!hcyY0tBZV#_QxicXcbga(L%vB`L}arOTb$d7zU zsr$-nnbE6K*?a;`RSWrcCf^IhLlj68PrlF6PvSLX#ym>t{mavL;@KbwiR3woFOIWs8 zz?WN+;0Xe zr|JScr>3gz+biwk5tgjQqpO>k6ov9Z!D0tcvc4EeElE;AvY=SZSzFEaU-#{UeS1GI zg3qzzGV5v=?P9B1@2REsM@8n~5h&roe&w~A+rR!Rs%YhdOVp#5PWq9Z zzbqa-^7_-`3Pn*^ z6P7uz>3F>idkqZc%p+Cg{(brOlFw5hXAk1!x$BJ#)rb*M6HU3I+uU*-c!GozMR>@w z*R$x2Tqt}dLx4CjxD}a4vXFq^RUsp@A}hg~-K4YN(R2*qWIyDctvw4KcJkKEh2r!) zx>znv_|GC@$c)3SY$^KK-o5wX!<+YSpMUtU+vbK`i!o#vW12_87)8#xTmZM^wp%N4 znnvA^V{~ZE%xqe*)67>7nvR1eG9Jj^a@Q-M&iTdCN*!aNo$TsxYwhWvPV8*$Tl$IDj_1Ibt^9~bC&kCbkFa!nr%6pVRm-E* zq0o=^b_R~&b@Ri(`6=;yQJ`~$`vugZeAA*en9f{~Cr&y;%Ns#11_4v2Z_&>xbhei! zbe|^Ud}5tlIGLSq_A}rW?>5CyG&_OeTLaUy&S%!iN;!B5ubw;eu9Ppa1Z2$3&d7Qv zO26d;!?Z5-FQ4=;uf>-WHw-*s7Cpm=hRAYg3&}m&D_8yaXQ?T)5da7!S@f!fC!YHDi7K=SAWrpeNDbwawjg+9(ukCC&9 z1?1EO5zTymZ%&ds!ob_KaQhMuqQbc4ZW9&p1sxydiSZG514b>fUvj>*m(b$J3-nsG z4P_4YgZwYB?8B4;znLBJ8EHoMQ!Wt2!_Et%_;P&>Msle*lUxIP&#$0T&PG$Z0x8 zE?^hnXtbYYf%mhH;2Q+?Mh-*k?(V+g>+2kS$;;>7z2eMuzn!~k%{$}kwDY|1(pDeF zJFG@GV-Odk8m(yU$67n?U3f2X8A{Fq$<9==GcJM#<~!O9h1SR^{HWXQp;`0Sx?Kpv z{KA=0HrI zVF;Ok%P9smc7kpIMiwU1bFwb~ee?R7?d&u=I2(Zx&IXI%JaVW0Ff;X){Jr{-L5%ny-a%`&z3`W& z$b2%K>;xuzT;nA&A~3e;#|ywPLg&WfJx`I#EBV_?z$OnK#B9M}ZUkWRVU(KG<)GXA1hWTI3^p6)bqP=XZWF&_3(enOfz5$Q-`Y2S z-&|sy!BY3HI9y*bSYO9#J_w4%<&n-{CKx>G9hFQ`?!7C~mxQ0Kg|r-&Prt$%Pty>B zz3dc%!~}nPue12@0e2*J=9pBHM+9!HfD}YJxLC#iDE!e84oXx%7~H(RmbSkbRuwT` zUuR2e>Xd?ub-^R4O;e9Ew79KO=^Z4PuVNn}zuiS^#`~8+ru{xg2a)S7fdsk`1h>ZV z-*0*y-&i-j;qBTtOUS#e^%%#Sla*$6g;M5u?vdQUY?ok4q$h$p#;42%qPu)-IZVj+?67ULRkd9(pn|2aN2_%CktO(J{z&2Zpb z@ZY_|!vhWf#r;2rkM}nFKYqwZ7}#C>{R&#Rks#-hN+?%wz34WGGr0-kj4R;k8i>=q z1>!8goQmnn9Il(LxMaGrZq{*^7?omfT`JbCWlI@QUa`E{I?G$F7-EJTRv_8rh8)dZ zfn?KqNY<-Bvf&p%vgx;jWVdB@)z=`|Gsv&SbQDl)qC>KwfMids*-ANhc@redbx4-$ zkgWFQg_MOVBpXRcHmZkYAsaCw$FD-N(M2Z$@pXUukZk4{<8_d1^y@&f;|e4@-axX6 zm3<*3o81wT9b?bD0+P+@AzAHlWOk!lAlVqwYX!+3*C-e?Il*XrD_IZ8Lg-q7WD}rv zT0>0Zq?>fkke9?dt3t9>mm05wWX}pn_P8FB#b$K*F}o*FOZv<77DzUQ!u61BmBX=h zcXwa$^>vQEcr^(*lxB>LJ-gLbB<1hGe53 z0LhNm;+$h0=N$hAAlWZw^{XJ+s%fo4veU1DWRndf`;QID`Zq$d(H$V!g@^lIOR%h! z;vQq+u(m2{BMK*ZScPh z{A1z@wZw?GgD`=v@jimV&>AIJ5I`d$&a>2o1^XGXnRtQ z_ah8uRD`&K7P_|qz1~egZ(43DSp)QjHvzrDXPjlvR)Ev!3xU(%cHlI+5jdUK0jF2D zoMoSA!09%gWlz?gWgjcx^c@1Hm2zVOPEVYx3UGRb=b)d9(h4|Dbl_C`@>+aZ0ZtPM zoF?_aDIGC(Mg?%{0vA{3$pz++PS*857dV}-15Qt1xL1Kw7tD=Y1y1LdTL+xZ*8rz$ z&$1`Km9y;8THy5g-GI~Q|B%3G&b1Q}a2l-#PNOdcP9yy+y9S)bb--z+KTb@r&-K7* zCV|rwJXmp-y{uq&Jr%Ck`*gD{J`*Y8-Z=2nBP)qvDh=9{T15Sey za2i43df>Fm;q>lj*|UnTzcX+etOri#xvO3|%YIULX*$b3twuMuon_CocA_7BmOc8l z&$37B&$7qA3E*_T<}AB=(^+=+=CkbaR{^JyJj?FZpJjK~o@KwPKg&MYFa=4Ec;anI34T2srLkt3^-@^xo`_Bw*qo1lir>Gh)i0d%n*e=u`N55+<^I!2Th?IWjSCMJ&?lO!#@md+kVwrp81|i18 z@(vjU2U51%7Nun*FWWi4I4X#|FYbsFHC3HF!(oO0z`D8j)kVi%4s_+;Ugz zp{yeQV7qu_RZkD@#l=C%l+(>O$d;=UFWrqp_fZK;mf{^n8QzLTH|~gQle7zyv}<$J zWq^3WkucGAi5o2=A!cA8#5GC!b#>y-GZqxLo)tu1BOkLM7k^kB}N5EAM)C!%b1fN^ec9ICK*~#7h_GUZJ{S&gGy;Oo2Ihi_*2a{&$Vc z*8Ix#R|symR&syVr-OtJ@0iN83%2O?K1E8K*1AFdMTt+W?mkx6XVKM?D2$=FRf1S5 zF66BP{PRZjd4pE_aU60t(wcoH@^u;ty8kzifKqYmmS9HSYo-s)+DyN;9j$xCU1Txq zC-E%BYqMvg0J=G5(Qo;hMrH>=O&MYx)f7|8$C9$uVqAf`2* zNwcA@&7HaOeqYnBw@>0SgHoMbZ-kWOv!sC%bqrzxq22UHH>3r4g`$4nv#y#p7+a4| zV61zT`O0hEX!&Hf#|*rvj_zZR=9Oy%Em;bGtfr^F(2T=3o_V&JbDh`8Sw@W)cgJeX zzl0c^u4EkO0}K;b=@r>Zn@LAFqZ=_V`CMKRr`N^4 +} + +export default MyApp +``` + +Adding dark mode support takes 2 lines of code: + +```js +import { ThemeProvider } from 'next-themes' + +function MyApp({ Component, pageProps }) { + return ( + + + + ) +} + +export default MyApp +``` + +That's it, your Next.js app fully supports dark mode, including System preference with `prefers-color-scheme`. The theme is also immediately synced between tabs. By default, next-themes modifies the `data-theme` attribute on the `html` element, which you can easily use to style your app: + +```css +:root { + /* Your default theme */ + --background: white; + --foreground: black; +} + +[data-theme='dark'] { + --background: black; + --foreground: white; +} +``` + +### useTheme + +Your UI will need to know the current theme and be able to change it. The `useTheme` hook provides theme information: + +```js +import { useTheme } from 'next-themes' + +const ThemeChanger = () => { + const { theme, setTheme } = useTheme() + + return ( +
+ The current theme is: {theme} + + +
+ ) +} +``` + +> **Warning!** The above code is hydration _unsafe_ and will throw a hydration mismatch warning when rendering with SSG or SSR. This is because we cannot know the `theme` on the server, so it will always be `undefined` until mounted on the client. +> +> You should delay rendering any theme toggling UI until mounted on the client. See the [example](#avoid-hydration-mismatch). + +## API + +Let's dig into the details. + +### ThemeProvider + +All your theme configuration is passed to ThemeProvider. + +- `storageKey = 'theme'`: Key used to store theme setting in localStorage +- `defaultTheme = 'system'`: Default theme name (for v0.0.12 and lower the default was `light`). If `enableSystem` is false, the default theme is `light` +- `forcedTheme`: Forced theme name for the current page (does not modify saved theme settings) +- `enableSystem = true`: Whether to switch between `dark` and `light` based on `prefers-color-scheme` +- `enableColorScheme = true`: Whether to indicate to browsers which color scheme is used (dark or light) for built-in UI like inputs and buttons +- `disableTransitionOnChange = false`: Optionally disable all CSS transitions when switching themes ([example](#disable-transitions-on-theme-change)) +- `themes = ['light', 'dark']`: List of theme names +- `attribute = 'data-theme'`: HTML attribute modified based on the active theme + - accepts `class` and `data-*` (meaning any data attribute, `data-mode`, `data-color`, etc.) ([example](#class-instead-of-data-attribute)) +- `value`: Optional mapping of theme name to attribute value + - value is an `object` where key is the theme name and value is the attribute value ([example](#differing-dom-attribute-and-theme-name)) +- `nonce`: Optional nonce passed to the injected `script` tag, used to allow-list the next-themes script in your CSP + +### useTheme + +useTheme takes no parameters, but returns: + +- `theme`: Active theme name +- `setTheme(name)`: Function to update the theme +- `forcedTheme`: Forced page theme or falsy. If `forcedTheme` is set, you should disable any theme switching UI +- `resolvedTheme`: Returns the effective theme color of the page. + - If `enableSystem` is true and the active theme is "system", this returns whether the system preference resolved to "dark" or "light". + - If `forcedTheme` is set, the name of the forced theme is returned. + - Otherwise identical to `theme`. +- `systemTheme`: If `enableSystem` is true, represents the System theme preference ("dark" or "light"), regardless what the active theme is +- `themes`: The list of themes passed to `ThemeProvider` (with "system" appended, if `enableSystem` is true) + +Not too bad, right? Let's see how to use these properties with examples: + +## Examples + +The [Live Example](https://next-themes-example.vercel.app/) shows next-themes in action, with dark, light, system themes and pages with forced themes. + +### Use System preference by default + +The `defaultTheme` is "light". If you want to respect the System preference instead, set it to "system": + +```js + +``` + +### Ignore System preference + +If you don't want a System theme, disable it via `enableSystem`: + +```js + +``` + +### Class instead of data attribute + +If your Next.js app uses a class to style the page based on the theme, change the attribute prop to `class`: + +```js + +``` + +Now, setting the theme to "dark" will set `class="dark"` on the `html` element. + +### Force page to a theme + +Let's say your cool new marketing page is dark mode only. The page should always use the dark theme, and changing the theme should have no effect. To force a theme on your Next.js pages, simply set a variable on the page component: + +```js +// pages/awesome-page.js + +const Page = () => { ... } +Page.theme = 'dark' +export default Page +``` + +In your `_app`, read the variable and pass it to ThemeProvider: + +```js +function MyApp({ Component, pageProps }) { + return ( + + + + ) +} +``` + +Done! Your page is always dark theme (regardless of user preference), and calling `setTheme` from `useTheme` is now a no-op. However, you should make sure to disable any of your UI that would normally change the theme: + +```js +const { forcedTheme } = useTheme() + +// Theme is forced, we shouldn't allow user to change the theme +const disabled = !!forcedTheme +``` + +### Disable transitions on theme change + +I wrote about [this technique here](https://paco.sh/blog/disable-theme-transitions). We can forcefully disable all CSS transitions before the theme is changed, and re-enable them immediately afterwards. This ensures your UI with different transition durations won't feel inconsistent when changing the theme. + +To enable this behavior, pass the `disableTransitionOnChange` prop: + +```js + +``` + +### Differing DOM attribute and theme name + +The name of the active theme is used as both the localStorage value and the value of the DOM attribute. If the theme name is "pink", localStorage will contain `theme=pink` and the DOM will be `data-theme="pink"`. You **cannot** modify the localStorage value, but you **can** modify the DOM value. + +If we want the DOM to instead render `data-theme="my-pink-theme"` when the theme is "pink", pass the `value` prop: + +```js + +``` + +Done! To be extra clear, this affects only the DOM. Here's how all the values will look: + +```js +const { theme } = useTheme() +// => "pink" + +localStorage.getItem('theme') +// => "pink" + +document.documentElement.getAttribute('data-theme') +// => "my-pink-theme" +``` + +### More than light and dark mode + +next-themes is designed to support any number of themes! Simply pass a list of themes: + +```js + +``` + +> **Note!** When you pass `themes`, the default set of themes ("light" and "dark") are overridden. Make sure you include those if you still want your light and dark themes: + +```js + +``` + +### Without CSS variables + +This library does not rely on your theme styling using CSS variables. You can hard-code the values in your CSS, and everything will work as expected (without any flashing): + +```css +html, +body { + color: #000; + background: #fff; +} + +[data-theme='dark'], +[data-theme='dark'] body { + color: #fff; + background: #000; +} +``` + +### With Styled Components and any CSS-in-JS + +Next Themes is completely CSS independent, it will work with any library. For example, with Styled Components you just need to `createGlobalStyle` in your custom App: + +```js +// pages/_app.js +import { createGlobalStyle } from 'styled-components' +import { ThemeProvider } from 'next-themes' + +// Your themeing variables +const GlobalStyle = createGlobalStyle` + :root { + --fg: #000; + --bg: #fff; + } + + [data-theme="dark"] { + --fg: #fff; + --bg: #000; + } +` + +function MyApp({ Component, pageProps }) { + return ( + <> + + + + + + ) +} +``` + +### Avoid Hydration Mismatch + +Because we cannot know the `theme` on the server, many of the values returned from `useTheme` will be `undefined` until mounted on the client. This means if you try to render UI based on the current theme before mounting on the client, you will see a hydration mismatch error. + +The following code sample is **unsafe**: + +```js +import { useTheme } from 'next-themes' + +// Do NOT use this! It will throw a hydration mismatch error. +const ThemeSwitch = () => { + const { resolvedTheme, setTheme } = useTheme() + + return ( + + ) +} + +export default ThemeSwitch +``` + +To fix this, make sure you only render UI that uses the current theme when the page is mounted on the client: + +```js +import { useState, useEffect } from 'react' +import { useTheme } from 'next-themes' + +const ThemeSwitch = () => { + const [mounted, setMounted] = useState(false) + const { resolvedTheme, setTheme } = useTheme() + + // useEffect only runs on the client, so now we can safely show the UI + useEffect(() => { + setMounted(true) + }, []) + + if (!mounted) { + return null + } + + return ( + + ) +} + +export default ThemeSwitch +``` + +To avoid [Layout Shift](https://web.dev/cls/), consider rendering a skeleton/placeholder until mounted on the client side. + +#### Images + +Showing different images based on the current theme also suffers from the hydration mismatch problem. With [`next/image`](https://nextjs.org/docs/basic-features/image-optimization) you can use an empty image until the theme is resolved: + +```js +import Image from 'next/image' +import { useTheme } from 'next-themes' + +function ThemedImage() { + const { resolvedTheme } = useTheme() + let src + + switch (resolvedTheme) { + case 'light': + src = '/light.png' + break + case 'dark': + src = '/dark.png' + break + default: + src = 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7' + break + } + + return +} + +export default ThemedImage +``` + +#### CSS + +You can also use CSS to hide or show content based on the current theme. To avoid the hydration mismatch, you'll need to render _both_ versions of the UI, with CSS hiding the unused version. For example: + +```jsx +function ThemedImage() { + return ( + <> + {/* When the theme is dark, hide this div */} +
+ +
+ + {/* When the theme is light, hide this div */} +
+ +
+ + ) +} + +export default ThemedImage +``` + +```css +[data-theme='dark'] [data-hide-on-theme='dark'], +[data-theme='light'] [data-hide-on-theme='light'] { + display: none; +} +``` + +### With Tailwind + +[Visit the live example](https://next-themes-tailwind.vercel.app) • [View the example source code](https://github.com/pacocoursey/next-themes/tree/master/examples/tailwind) + +> NOTE! Tailwind only supports dark mode in version >2. + +In your `tailwind.config.js`, set the dark mode property to class: + +```js +// tailwind.config.js +module.exports = { + darkMode: 'class' +} +``` + +Set the attribute for your Theme Provider to class: + +```js +// pages/_app.js + +``` + +If you're using the `value` prop to specify different attribute values, make sure your dark theme explicitly uses the "dark" value, as required by Tailwind. + +That's it! Now you can use dark-mode specific classes: + +```js +

+``` + +## Discussion + +### The Flash + +ThemeProvider automatically injects a script into `next/head` to update the `html` element with the correct attributes before the rest of your page loads. This means the page will not flash under any circumstances, including forced themes, system theme, multiple themes, and incognito. No `noflash.js` required. + +## FAQ + +--- + +**Why is my page still flashing?** + +In Next.js dev mode, the page may still flash. When you build your app in production mode, there will be no flashing. + +--- + +**Why do I get server/client mismatch error?** + +When using `useTheme`, you will use see a hydration mismatch error when rendering UI that relies on the current theme. This is because many of the values returned by `useTheme` are undefined on the server, since we can't read `localStorage` until mounting on the client. See the [example](#avoid-hydration-mismatch) for how to fix this error. + +--- + +**Do I need to use CSS variables with this library?** + +Nope. See the [example](#without-css-variables). + +--- + +**Can I set the class or data attribute on the body or another element?** + +Nope. If you have a good reason for supporting this feature, please open an issue. + +--- + +**Can I use this package with Gatsby or CRA?** + +Nope. + +--- + +**Is the injected script minified?** + +Yes, using Terser. + +--- + +**Why is `resolvedTheme` necessary?** + +When supporting the System theme preference, you want to make sure that's reflected in your UI. This means your buttons, selects, dropdowns, or whatever you use to indicate the current theme should say "System" when the System theme preference is active. + +If we didn't distinguish between `theme` and `resolvedTheme`, the UI would show "Dark" or "Light", when it should really be "System". + +`resolvedTheme` is then useful for modifying behavior or styles at runtime: + +```js +const { resolvedTheme } = useTheme() + +
+``` + +If we didn't have `resolvedTheme` and only used `theme`, you'd lose information about the state of your UI (you would only know the theme is "system", and not what it resolved to). diff --git a/.cdp/nt-beta/package/dist/index.d.ts b/.cdp/nt-beta/package/dist/index.d.ts new file mode 100644 index 0000000..55cb431 --- /dev/null +++ b/.cdp/nt-beta/package/dist/index.d.ts @@ -0,0 +1,4 @@ +import * as React from 'react'; +import type { UseThemeProps, ThemeProviderProps } from './types'; +export declare const useTheme: () => UseThemeProps; +export declare const ThemeProvider: React.FC; diff --git a/.cdp/nt-beta/package/dist/index.js b/.cdp/nt-beta/package/dist/index.js new file mode 100644 index 0000000..1fb48ff --- /dev/null +++ b/.cdp/nt-beta/package/dist/index.js @@ -0,0 +1 @@ +function e(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach(function(n){if("default"!==n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}}),t.default=e,t}var t=/*#__PURE__*/e(require("react"));const n=["light","dark"],r="(prefers-color-scheme: dark)",o="undefined"==typeof window,a=/*#__PURE__*/t.createContext(void 0),c={setTheme:e=>{},themes:[]},s=({forcedTheme:e,disableTransitionOnChange:o=!1,enableSystem:c=!0,enableColorScheme:s=!0,storageKey:d="theme",themes:h=["light","dark"],defaultTheme:f=(c?"system":"light"),attribute:v="data-theme",value:y,themeColor:g,children:b,nonce:$})=>{const[p,S]=t.useState(()=>e?"forced":i(d,f)),[w,C]=t.useState(()=>i(d)),E=y?Object.values(y):h,T=t.useRef(),k=t.useRef(),x=t.useRef(),O=t.useCallback(e=>{let t=e;if(!t)return;"system"===e&&c&&(t=m());const r=y?y[t]:t,a=o?u():null,l=document.documentElement;if("class"===v?(l.classList.remove(...E),r&&l.classList.add(r)):r?l.setAttribute(v,r):l.removeAttribute(v),g){let e=!1;const n=(i="string"==typeof g?g:g[t]).startsWith("var(--")?(k.current||(k.current=getComputedStyle(document.documentElement)),k.current.getPropertyValue(i.slice(4,-1))):i,r=(()=>{var t;if(null==(t=T.current)?void 0:t.isConnected)return T.current;const n=document.head.querySelector('meta[name="theme-color"]');if(n)return n;const r=document.createElement("meta");return r.setAttribute("name","theme-color"),e=!0,r})();T.current=r,n&&(r.removeAttribute("value"),r.setAttribute("content",n),e&&document.head.appendChild(r))}var i;if(s){const e=n.includes(f)?f:null,r=n.includes(t)?t:e;l.style.colorScheme=r}null==a||a()},[]),L=t.useCallback(t=>{if(S(t),!e)try{localStorage.setItem(d,t)}catch(e){}},[e]),j=t.useCallback(t=>{const n=m(t);C(n),"system"===p&&c&&!e&&O("system")},[p,e]);return t.useEffect(()=>{const e=window.matchMedia(r);return e.addListener(j),j(e),()=>e.removeListener(j)},[j]),t.useEffect(()=>{const t=t=>{t.key===d&&(e&&t.newValue?x.current=t.newValue:L(t.newValue||f))};return window.addEventListener("storage",t),()=>window.removeEventListener("storage",t)},[L]),t.useEffect(()=>{if(e&&"forced"!==p&&L("forced"),!e&&x.current)return L(x.current),O(x.current),void(x.current=void 0);O(null!=e?e:p)},[e,p]),/*#__PURE__*/t.createElement(a.Provider,{value:{theme:p,setTheme:L,resolvedTheme:(null!=e?e:"system"===p)?w:p,themes:c?[...h,"system"]:h,systemTheme:c?w:void 0}},/*#__PURE__*/t.createElement(l,{forcedTheme:e,disableTransitionOnChange:o,enableSystem:c,enableColorScheme:s,storageKey:d,themes:h,defaultTheme:f,attribute:v,value:y,children:b,attrs:E,nonce:$}),b)},l=/*#__PURE__*/t.memo(({forcedTheme:e,storageKey:o,attribute:a,enableSystem:c,enableColorScheme:s,defaultTheme:l,value:i,attrs:u,nonce:m})=>{const d="system"===l,h="class"===a?`var d=document.documentElement,c=d.classList;c.remove(${u.map(e=>`'${e}'`).join(",")});`:`var d=document.documentElement,n='${a}',s='setAttribute';`,f=s?n.includes(l)&&l?`if(e==='light'||e==='dark'||!e)d.style.colorScheme=e||'${l}'`:"if(e==='light'||e==='dark')d.style.colorScheme=e":"",v=(e,t=!1,r=!0)=>{const o=i?i[e]:e,c=t?e+"|| ''":`'${o}'`;let l="";return s&&r&&!t&&n.includes(e)&&(l+=`d.style.colorScheme = '${e}';`),"class"===a?l+=t||o?`c.add(${c})`:"null":o&&(l+=`d[s](n,${c})`),l},y=e?`!function(){${h}${v(e)}}()`:c?`!function(){try{${h}var e=localStorage.getItem('${o}');if('system'===e||(!e&&${d})){var t='${r}',m=window.matchMedia(t);if(m.media!==t||m.matches){${v("dark")}}else{${v("light")}}}else if(e){${i?`var x=${JSON.stringify(i)};`:""}${v(i?"x[e]":"e",!0)}}${d?"":"else{"+v(l,!1,!1)+"}"}${f}}catch(e){}}()`:`!function(){try{${h}var e=localStorage.getItem('${o}');if(e){${i?`var x=${JSON.stringify(i)};`:""}${v(i?"x[e]":"e",!0)}}else{${v(l,!1,!1)};}${f}}catch(t){}}();`;/*#__PURE__*/return t.createElement("script",{nonce:m,dangerouslySetInnerHTML:{__html:y}})},()=>!0),i=(e,t)=>{if(o)return;let n;try{n=localStorage.getItem(e)||void 0}catch(e){}return n||t},u=()=>{const e=document.createElement("style");return e.appendChild(document.createTextNode("*{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}")),document.head.appendChild(e),()=>{window.getComputedStyle(document.body),setTimeout(()=>{document.head.removeChild(e)},1)}},m=e=>(e||(e=window.matchMedia(r)),e.matches?"dark":"light");exports.ThemeProvider=e=>t.useContext(a)?/*#__PURE__*/t.createElement(t.Fragment,null,e.children):/*#__PURE__*/t.createElement(s,e),exports.useTheme=()=>{var e;return null!==(e=t.useContext(a))&&void 0!==e?e:c}; diff --git a/.cdp/nt-beta/package/dist/index.modern.mjs b/.cdp/nt-beta/package/dist/index.modern.mjs new file mode 100644 index 0000000..3efa922 --- /dev/null +++ b/.cdp/nt-beta/package/dist/index.modern.mjs @@ -0,0 +1 @@ +import*as e from"react";const t=["light","dark"],n="(prefers-color-scheme: dark)",r="undefined"==typeof window,o=/*#__PURE__*/e.createContext(void 0),a={setTheme:e=>{},themes:[]},s=()=>{var t;return null!==(t=e.useContext(o))&&void 0!==t?t:a},c=t=>e.useContext(o)?/*#__PURE__*/e.createElement(e.Fragment,null,t.children):/*#__PURE__*/e.createElement(l,t),l=({forcedTheme:r,disableTransitionOnChange:a=!1,enableSystem:s=!0,enableColorScheme:c=!0,storageKey:l="theme",themes:h=["light","dark"],defaultTheme:f=(s?"system":"light"),attribute:v="data-theme",value:y,themeColor:g,children:$,nonce:b})=>{const[S,p]=e.useState(()=>r?"forced":i(l,f)),[C,w]=e.useState(()=>i(l)),E=y?Object.values(y):h,T=e.useRef(),k=e.useRef(),x=e.useRef(),L=e.useCallback(e=>{let n=e;if(!n)return;"system"===e&&s&&(n=d());const r=y?y[n]:n,o=a?u():null,l=document.documentElement;if("class"===v?(l.classList.remove(...E),r&&l.classList.add(r)):r?l.setAttribute(v,r):l.removeAttribute(v),g){let e=!1;const t=(m="string"==typeof g?g:g[n]).startsWith("var(--")?(k.current||(k.current=getComputedStyle(document.documentElement)),k.current.getPropertyValue(m.slice(4,-1))):m,r=(()=>{var t;if(null==(t=T.current)?void 0:t.isConnected)return T.current;const n=document.head.querySelector('meta[name="theme-color"]');if(n)return n;const r=document.createElement("meta");return r.setAttribute("name","theme-color"),e=!0,r})();T.current=r,t&&(r.removeAttribute("value"),r.setAttribute("content",t),e&&document.head.appendChild(r))}var m;if(c){const e=t.includes(f)?f:null,r=t.includes(n)?n:e;l.style.colorScheme=r}null==o||o()},[]),A=e.useCallback(e=>{if(p(e),!r)try{localStorage.setItem(l,e)}catch(e){}},[r]),I=e.useCallback(e=>{const t=d(e);w(t),"system"===S&&s&&!r&&L("system")},[S,r]);return e.useEffect(()=>{const e=window.matchMedia(n);return e.addListener(I),I(e),()=>e.removeListener(I)},[I]),e.useEffect(()=>{const e=e=>{e.key===l&&(r&&e.newValue?x.current=e.newValue:A(e.newValue||f))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)},[A]),e.useEffect(()=>{if(r&&"forced"!==S&&A("forced"),!r&&x.current)return A(x.current),L(x.current),void(x.current=void 0);L(null!=r?r:S)},[r,S]),/*#__PURE__*/e.createElement(o.Provider,{value:{theme:S,setTheme:A,resolvedTheme:(null!=r?r:"system"===S)?C:S,themes:s?[...h,"system"]:h,systemTheme:s?C:void 0}},/*#__PURE__*/e.createElement(m,{forcedTheme:r,disableTransitionOnChange:a,enableSystem:s,enableColorScheme:c,storageKey:l,themes:h,defaultTheme:f,attribute:v,value:y,children:$,attrs:E,nonce:b}),$)},m=/*#__PURE__*/e.memo(({forcedTheme:r,storageKey:o,attribute:a,enableSystem:s,enableColorScheme:c,defaultTheme:l,value:m,attrs:i,nonce:u})=>{const d="system"===l,h="class"===a?`var d=document.documentElement,c=d.classList;c.remove(${i.map(e=>`'${e}'`).join(",")});`:`var d=document.documentElement,n='${a}',s='setAttribute';`,f=c?t.includes(l)&&l?`if(e==='light'||e==='dark'||!e)d.style.colorScheme=e||'${l}'`:"if(e==='light'||e==='dark')d.style.colorScheme=e":"",v=(e,n=!1,r=!0)=>{const o=m?m[e]:e,s=n?e+"|| ''":`'${o}'`;let l="";return c&&r&&!n&&t.includes(e)&&(l+=`d.style.colorScheme = '${e}';`),"class"===a?l+=n||o?`c.add(${s})`:"null":o&&(l+=`d[s](n,${s})`),l},y=r?`!function(){${h}${v(r)}}()`:s?`!function(){try{${h}var e=localStorage.getItem('${o}');if('system'===e||(!e&&${d})){var t='${n}',m=window.matchMedia(t);if(m.media!==t||m.matches){${v("dark")}}else{${v("light")}}}else if(e){${m?`var x=${JSON.stringify(m)};`:""}${v(m?"x[e]":"e",!0)}}${d?"":"else{"+v(l,!1,!1)+"}"}${f}}catch(e){}}()`:`!function(){try{${h}var e=localStorage.getItem('${o}');if(e){${m?`var x=${JSON.stringify(m)};`:""}${v(m?"x[e]":"e",!0)}}else{${v(l,!1,!1)};}${f}}catch(t){}}();`;/*#__PURE__*/return e.createElement("script",{nonce:u,dangerouslySetInnerHTML:{__html:y}})},()=>!0),i=(e,t)=>{if(r)return;let n;try{n=localStorage.getItem(e)||void 0}catch(e){}return n||t},u=()=>{const e=document.createElement("style");return e.appendChild(document.createTextNode("*{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}")),document.head.appendChild(e),()=>{window.getComputedStyle(document.body),setTimeout(()=>{document.head.removeChild(e)},1)}},d=e=>(e||(e=window.matchMedia(n)),e.matches?"dark":"light");export{c as ThemeProvider,s as useTheme}; diff --git a/.cdp/nt-beta/package/dist/index.module.js b/.cdp/nt-beta/package/dist/index.module.js new file mode 100644 index 0000000..3efa922 --- /dev/null +++ b/.cdp/nt-beta/package/dist/index.module.js @@ -0,0 +1 @@ +import*as e from"react";const t=["light","dark"],n="(prefers-color-scheme: dark)",r="undefined"==typeof window,o=/*#__PURE__*/e.createContext(void 0),a={setTheme:e=>{},themes:[]},s=()=>{var t;return null!==(t=e.useContext(o))&&void 0!==t?t:a},c=t=>e.useContext(o)?/*#__PURE__*/e.createElement(e.Fragment,null,t.children):/*#__PURE__*/e.createElement(l,t),l=({forcedTheme:r,disableTransitionOnChange:a=!1,enableSystem:s=!0,enableColorScheme:c=!0,storageKey:l="theme",themes:h=["light","dark"],defaultTheme:f=(s?"system":"light"),attribute:v="data-theme",value:y,themeColor:g,children:$,nonce:b})=>{const[S,p]=e.useState(()=>r?"forced":i(l,f)),[C,w]=e.useState(()=>i(l)),E=y?Object.values(y):h,T=e.useRef(),k=e.useRef(),x=e.useRef(),L=e.useCallback(e=>{let n=e;if(!n)return;"system"===e&&s&&(n=d());const r=y?y[n]:n,o=a?u():null,l=document.documentElement;if("class"===v?(l.classList.remove(...E),r&&l.classList.add(r)):r?l.setAttribute(v,r):l.removeAttribute(v),g){let e=!1;const t=(m="string"==typeof g?g:g[n]).startsWith("var(--")?(k.current||(k.current=getComputedStyle(document.documentElement)),k.current.getPropertyValue(m.slice(4,-1))):m,r=(()=>{var t;if(null==(t=T.current)?void 0:t.isConnected)return T.current;const n=document.head.querySelector('meta[name="theme-color"]');if(n)return n;const r=document.createElement("meta");return r.setAttribute("name","theme-color"),e=!0,r})();T.current=r,t&&(r.removeAttribute("value"),r.setAttribute("content",t),e&&document.head.appendChild(r))}var m;if(c){const e=t.includes(f)?f:null,r=t.includes(n)?n:e;l.style.colorScheme=r}null==o||o()},[]),A=e.useCallback(e=>{if(p(e),!r)try{localStorage.setItem(l,e)}catch(e){}},[r]),I=e.useCallback(e=>{const t=d(e);w(t),"system"===S&&s&&!r&&L("system")},[S,r]);return e.useEffect(()=>{const e=window.matchMedia(n);return e.addListener(I),I(e),()=>e.removeListener(I)},[I]),e.useEffect(()=>{const e=e=>{e.key===l&&(r&&e.newValue?x.current=e.newValue:A(e.newValue||f))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)},[A]),e.useEffect(()=>{if(r&&"forced"!==S&&A("forced"),!r&&x.current)return A(x.current),L(x.current),void(x.current=void 0);L(null!=r?r:S)},[r,S]),/*#__PURE__*/e.createElement(o.Provider,{value:{theme:S,setTheme:A,resolvedTheme:(null!=r?r:"system"===S)?C:S,themes:s?[...h,"system"]:h,systemTheme:s?C:void 0}},/*#__PURE__*/e.createElement(m,{forcedTheme:r,disableTransitionOnChange:a,enableSystem:s,enableColorScheme:c,storageKey:l,themes:h,defaultTheme:f,attribute:v,value:y,children:$,attrs:E,nonce:b}),$)},m=/*#__PURE__*/e.memo(({forcedTheme:r,storageKey:o,attribute:a,enableSystem:s,enableColorScheme:c,defaultTheme:l,value:m,attrs:i,nonce:u})=>{const d="system"===l,h="class"===a?`var d=document.documentElement,c=d.classList;c.remove(${i.map(e=>`'${e}'`).join(",")});`:`var d=document.documentElement,n='${a}',s='setAttribute';`,f=c?t.includes(l)&&l?`if(e==='light'||e==='dark'||!e)d.style.colorScheme=e||'${l}'`:"if(e==='light'||e==='dark')d.style.colorScheme=e":"",v=(e,n=!1,r=!0)=>{const o=m?m[e]:e,s=n?e+"|| ''":`'${o}'`;let l="";return c&&r&&!n&&t.includes(e)&&(l+=`d.style.colorScheme = '${e}';`),"class"===a?l+=n||o?`c.add(${s})`:"null":o&&(l+=`d[s](n,${s})`),l},y=r?`!function(){${h}${v(r)}}()`:s?`!function(){try{${h}var e=localStorage.getItem('${o}');if('system'===e||(!e&&${d})){var t='${n}',m=window.matchMedia(t);if(m.media!==t||m.matches){${v("dark")}}else{${v("light")}}}else if(e){${m?`var x=${JSON.stringify(m)};`:""}${v(m?"x[e]":"e",!0)}}${d?"":"else{"+v(l,!1,!1)+"}"}${f}}catch(e){}}()`:`!function(){try{${h}var e=localStorage.getItem('${o}');if(e){${m?`var x=${JSON.stringify(m)};`:""}${v(m?"x[e]":"e",!0)}}else{${v(l,!1,!1)};}${f}}catch(t){}}();`;/*#__PURE__*/return e.createElement("script",{nonce:u,dangerouslySetInnerHTML:{__html:y}})},()=>!0),i=(e,t)=>{if(r)return;let n;try{n=localStorage.getItem(e)||void 0}catch(e){}return n||t},u=()=>{const e=document.createElement("style");return e.appendChild(document.createTextNode("*{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}")),document.head.appendChild(e),()=>{window.getComputedStyle(document.body),setTimeout(()=>{document.head.removeChild(e)},1)}},d=e=>(e||(e=window.matchMedia(n)),e.matches?"dark":"light");export{c as ThemeProvider,s as useTheme}; diff --git a/.cdp/nt-beta/package/dist/index.umd.js b/.cdp/nt-beta/package/dist/index.umd.js new file mode 100644 index 0000000..60d6cb8 --- /dev/null +++ b/.cdp/nt-beta/package/dist/index.umd.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react")):"function"==typeof define&&define.amd?define(["exports","react"],t):t((e||self).nextThemes={},e.react)}(this,function(e,t){function n(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach(function(n){if("default"!==n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}}),t.default=e,t}var r=/*#__PURE__*/n(t);const o=["light","dark"],a="(prefers-color-scheme: dark)",c="undefined"==typeof window,s=/*#__PURE__*/r.createContext(void 0),l={setTheme:e=>{},themes:[]},i=({forcedTheme:e,disableTransitionOnChange:t=!1,enableSystem:n=!0,enableColorScheme:c=!0,storageKey:l="theme",themes:i=["light","dark"],defaultTheme:f=(n?"system":"light"),attribute:y="data-theme",value:v,themeColor:g,children:b,nonce:p})=>{const[$,S]=r.useState(()=>e?"forced":m(l,f)),[T,w]=r.useState(()=>m(l)),C=v?Object.values(v):i,E=r.useRef(),k=r.useRef(),x=r.useRef(),O=r.useCallback(e=>{let r=e;if(!r)return;"system"===e&&n&&(r=h());const a=v?v[r]:r,s=t?d():null,l=document.documentElement;if("class"===y?(l.classList.remove(...C),a&&l.classList.add(a)):a?l.setAttribute(y,a):l.removeAttribute(y),g){let e=!1;const t=(i="string"==typeof g?g:g[r]).startsWith("var(--")?(k.current||(k.current=getComputedStyle(document.documentElement)),k.current.getPropertyValue(i.slice(4,-1))):i,n=(()=>{var t;if(null==(t=E.current)?void 0:t.isConnected)return E.current;const n=document.head.querySelector('meta[name="theme-color"]');if(n)return n;const r=document.createElement("meta");return r.setAttribute("name","theme-color"),e=!0,r})();E.current=n,t&&(n.removeAttribute("value"),n.setAttribute("content",t),e&&document.head.appendChild(n))}var i;if(c){const e=o.includes(f)?f:null,t=o.includes(r)?r:e;l.style.colorScheme=t}null==s||s()},[]),L=r.useCallback(t=>{if(S(t),!e)try{localStorage.setItem(l,t)}catch(e){}},[e]),j=r.useCallback(t=>{const r=h(t);w(r),"system"===$&&n&&!e&&O("system")},[$,e]);return r.useEffect(()=>{const e=window.matchMedia(a);return e.addListener(j),j(e),()=>e.removeListener(j)},[j]),r.useEffect(()=>{const t=t=>{t.key===l&&(e&&t.newValue?x.current=t.newValue:L(t.newValue||f))};return window.addEventListener("storage",t),()=>window.removeEventListener("storage",t)},[L]),r.useEffect(()=>{if(e&&"forced"!==$&&L("forced"),!e&&x.current)return L(x.current),O(x.current),void(x.current=void 0);O(null!=e?e:$)},[e,$]),/*#__PURE__*/r.createElement(s.Provider,{value:{theme:$,setTheme:L,resolvedTheme:(null!=e?e:"system"===$)?T:$,themes:n?[...i,"system"]:i,systemTheme:n?T:void 0}},/*#__PURE__*/r.createElement(u,{forcedTheme:e,disableTransitionOnChange:t,enableSystem:n,enableColorScheme:c,storageKey:l,themes:i,defaultTheme:f,attribute:y,value:v,children:b,attrs:C,nonce:p}),b)},u=/*#__PURE__*/r.memo(({forcedTheme:e,storageKey:t,attribute:n,enableSystem:c,enableColorScheme:s,defaultTheme:l,value:i,attrs:u,nonce:m})=>{const d="system"===l,h="class"===n?`var d=document.documentElement,c=d.classList;c.remove(${u.map(e=>`'${e}'`).join(",")});`:`var d=document.documentElement,n='${n}',s='setAttribute';`,f=s?o.includes(l)&&l?`if(e==='light'||e==='dark'||!e)d.style.colorScheme=e||'${l}'`:"if(e==='light'||e==='dark')d.style.colorScheme=e":"",y=(e,t=!1,r=!0)=>{const a=i?i[e]:e,c=t?e+"|| ''":`'${a}'`;let l="";return s&&r&&!t&&o.includes(e)&&(l+=`d.style.colorScheme = '${e}';`),"class"===n?l+=t||a?`c.add(${c})`:"null":a&&(l+=`d[s](n,${c})`),l},v=e?`!function(){${h}${y(e)}}()`:c?`!function(){try{${h}var e=localStorage.getItem('${t}');if('system'===e||(!e&&${d})){var t='${a}',m=window.matchMedia(t);if(m.media!==t||m.matches){${y("dark")}}else{${y("light")}}}else if(e){${i?`var x=${JSON.stringify(i)};`:""}${y(i?"x[e]":"e",!0)}}${d?"":"else{"+y(l,!1,!1)+"}"}${f}}catch(e){}}()`:`!function(){try{${h}var e=localStorage.getItem('${t}');if(e){${i?`var x=${JSON.stringify(i)};`:""}${y(i?"x[e]":"e",!0)}}else{${y(l,!1,!1)};}${f}}catch(t){}}();`;/*#__PURE__*/return r.createElement("script",{nonce:m,dangerouslySetInnerHTML:{__html:v}})},()=>!0),m=(e,t)=>{if(c)return;let n;try{n=localStorage.getItem(e)||void 0}catch(e){}return n||t},d=()=>{const e=document.createElement("style");return e.appendChild(document.createTextNode("*{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}")),document.head.appendChild(e),()=>{window.getComputedStyle(document.body),setTimeout(()=>{document.head.removeChild(e)},1)}},h=e=>(e||(e=window.matchMedia(a)),e.matches?"dark":"light");e.ThemeProvider=e=>r.useContext(s)?/*#__PURE__*/r.createElement(r.Fragment,null,e.children):/*#__PURE__*/r.createElement(i,e),e.useTheme=()=>{var e;return null!==(e=r.useContext(s))&&void 0!==e?e:l}}); diff --git a/.cdp/nt-beta/package/dist/types.d.ts b/.cdp/nt-beta/package/dist/types.d.ts new file mode 100644 index 0000000..59bad29 --- /dev/null +++ b/.cdp/nt-beta/package/dist/types.d.ts @@ -0,0 +1,46 @@ +/// +interface ValueObject { + [themeName: string]: string; +} +export interface UseThemeProps { + /** List of all available theme names */ + themes: string[]; + /** Update the theme */ + setTheme: (theme: string) => void; + /** Active theme name */ + theme?: string; + /** + * If `enableSystem` is true and the active theme is "system", this returns whether the system preference resolved to "dark" or "light". + * If `forcedTheme` is set, the forced theme value is returned. + * Otherwise, identical to `theme`. + */ + resolvedTheme?: string; + /** If enableSystem is true, returns the System theme preference ("dark" or "light"), regardless what the active theme is */ + systemTheme?: 'dark' | 'light'; +} +export interface ThemeProviderProps { + /** List of all available theme names */ + themes?: string[]; + /** Forced theme name for the current page */ + forcedTheme?: string; + /** Whether to switch between dark and light themes based on prefers-color-scheme */ + enableSystem?: boolean; + /** Disable all CSS transitions when switching themes */ + disableTransitionOnChange?: boolean; + /** Whether to indicate to browsers which color scheme is used (dark or light) for built-in UI like inputs and buttons */ + enableColorScheme?: boolean; + /** Key used to store theme setting in localStorage */ + storageKey?: string; + /** Default theme name (for v0.0.12 and lower the default was light). If `enableSystem` is false, the default theme is light */ + defaultTheme?: string; + /** HTML attribute modified based on the active theme. Accepts `class` and `data-*` (meaning any data attribute, `data-mode`, `data-color`, etc.) */ + attribute?: string | 'class'; + /** Mapping of theme name to HTML attribute value. Object where key is the theme name and value is the attribute value */ + value?: ValueObject; + /** Mapping of theme name to theme-color meta tag. CSS color string, or object where key is the theme name and value is the meta tag value */ + themeColor?: string | ValueObject; + /** Nonce string to pass to the inline script for CSP headers */ + nonce?: string; + children?: React.ReactNode; +} +export {}; diff --git a/.cdp/nt-beta/package/package.json b/.cdp/nt-beta/package/package.json new file mode 100644 index 0000000..45dd66e --- /dev/null +++ b/.cdp/nt-beta/package/package.json @@ -0,0 +1,55 @@ +{ + "name": "next-themes", + "version": "1.0.0-beta.0", + "main": "./dist/index.js", + "module": "./dist/index.module.js", + "types": "./dist/index.d.ts", + "source": "./src/index.tsx", + "license": "MIT", + "files": [ + "dist" + ], + "scripts": { + "prepublish": "yarn build", + "build": "microbundle --jsx React.createElement --compress --no-sourcemap", + "test": "jest __tests__", + "test:e2e": "yarn playwright test" + }, + "dependencies": {}, + "peerDependencies": { + "next": "*", + "react": "*", + "react-dom": "*" + }, + "devDependencies": { + "@babel/core": "^7.13.10", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.14.5", + "@babel/plugin-proposal-optional-chaining": "^7.11.0", + "@babel/preset-env": "^7.13.10", + "@babel/preset-react": "^7.12.13", + "@babel/preset-typescript": "^7.13.0", + "@playwright/test": "^1.21.1", + "@testing-library/react": "^12.1.5", + "@types/jest": "^26.0.21", + "@types/next": "^9.0.0", + "@types/react": "^16.9.53", + "babel-jest": "^26.6.3", + "jest": "^27.5.1", + "microbundle": "^0.15.0", + "prettier": "^2.2.1", + "react": "^17.0.1", + "react-dom": "^17.0.1", + "typescript": "^4.0.3" + }, + "repository": { + "type": "git", + "url": "https://github.com/pacocoursey/next-themes.git" + }, + "prettier": { + "semi": false, + "singleQuote": true, + "trailingComma": "none", + "arrowParens": "avoid", + "printWidth": 100 + } +} diff --git a/.cdp/repro.cjs b/.cdp/repro.cjs new file mode 100644 index 0000000..26203ea --- /dev/null +++ b/.cdp/repro.cjs @@ -0,0 +1,99 @@ +/* Reproduce the user's problem: full console, error overlay, and clicking the Theme toggle. */ +const { spawn } = require("node:child_process"); +const fs = require("node:fs"); +const http = require("node:http"); +const path = require("node:path"); +const EDGE = "C:/Program Files (x86)/Microsoft/Edge/Application/msedge.exe"; +const PORT = 9350; +const BASE = "http://localhost:3210"; +const OUT = path.join(__dirname, "..", "shots"); +function httpJson(p) { + return new Promise((resolve, reject) => { + const req = http.request({ host: "127.0.0.1", port: PORT, path: p }, (res) => { + let d = ""; res.on("data", (c) => (d += c)); + res.on("end", () => { try { resolve(JSON.parse(d)); } catch { resolve(d); } }); + }); + req.on("error", reject); req.end(); + }); +} +(async () => { + const profile = fs.mkdtempSync("/tmp/edge-prof-"); + const proc = spawn(EDGE, ["--headless=new", `--remote-debugging-port=${PORT}`, `--user-data-dir=${profile}`, "--no-first-run", "--no-default-browser-check", "--disable-gpu", "about:blank"], { stdio: "ignore" }); + let targets = null; + for (let i = 0; i < 40; i++) { await new Promise((r) => setTimeout(r, 500)); try { targets = await httpJson("/json/list"); break; } catch {} } + if (!targets) { console.error("no targets"); process.exit(1); } + const page = targets.find((t) => t.type === "page"); + const ws = new WebSocket(page.webSocketDebuggerUrl); + await new Promise((r) => (ws.onopen = r)); + let id = 0; + const send = (method, params = {}) => new Promise((resolve) => { + const myId = ++id; ws.send(JSON.stringify({ id: myId, method, params })); + const t = setInterval(() => { const m = ws._buf.find((b) => b.id === myId); if (m) { clearInterval(t); resolve(m.result ?? m.error); } }, 10); + }); + ws._buf = []; + const full = (a) => (a.value ?? a.description ?? a.unserializableValue ?? a.type ?? "").toString(); + ws.onmessage = (m) => { + const msg = JSON.parse(m.data); if (msg.id) { ws._buf.push(msg); return; } + if (msg.method === "Runtime.consoleAPICalled") console.log(`[console:${msg.params.type}]`, msg.params.args.map(full).join(" ")); + if (msg.method === "Runtime.exceptionThrown") console.log("[EXCEPTION]", JSON.stringify(msg.params.exceptionDetails.exception?.description ?? msg.params.exceptionDetails.text)); + if (msg.method === "Log.entryAdded" && msg.params.entry.level === "error") console.log("[log:error]", msg.params.entry.text); + }; + + await send("Runtime.enable"); await send("Page.enable"); await send("Network.enable"); + const cookieFile = process.argv[2]; + const cookieValue = cookieFile ? (fs.readFileSync(cookieFile, "utf8").split("\n").map((l) => l.trim()).find((l) => l.includes("authjs.session-token")) || "").split("\t").pop() : null; + if (cookieValue) await send("Network.setCookies", { cookies: [{ name: "authjs.session-token", value: cookieValue, domain: "localhost", path: "/", httpOnly: true, sameSite: "Lax" }] }); + + await send("Emulation.setDeviceMetricsOverride", { width: 1440, height: 900, deviceScaleFactor: 1, mobile: false }); + await send("Page.navigate", { url: BASE + "/" }); + await new Promise((r) => setTimeout(r, 4500)); + + const state = await send("Runtime.evaluate", { expression: `(() => ({ + title: document.title, + bodyLen: document.body.innerHTML.length, + hasNextErrorOverlay: !!document.querySelector('nextjs-portal, [data-nextjs-dialog], iframe[title="error"]'), + themeBtn: !!Array.from(document.querySelectorAll('button')).find(b => /theme/i.test(b.textContent||'') || b.getAttribute('aria-label') && /theme/i.test(b.getAttribute('aria-label'))), + }))()`, returnByValue: true }); + console.log("STATE", JSON.stringify(state.result.value)); + + // Find the theme trigger in the sidebar and click it. + const clickRes = await send("Runtime.evaluate", { expression: `(() => { + const btns = Array.from(document.querySelectorAll('button')); + const t = btns.find(b => /theme/i.test(b.textContent||'') || (b.getAttribute('aria-label')||'').match(/theme/i)); + if (!t) return 'no-theme-button'; + const r = t.getBoundingClientRect(); + return JSON.stringify({ label: (t.textContent||t.getAttribute('aria-label')).trim(), x: r.x + r.width/2, y: r.y + r.height/2 }); + })()`, returnByValue: true }); + console.log("THEME BTN", clickRes.result?.value); + + if (clickRes.result?.value && clickRes.result.value !== "no-theme-button") { + const p = JSON.parse(clickRes.result.value); + await send("Input.dispatchMouseEvent", { type: "mousePressed", x: p.x, y: p.y, button: "left", clickCount: 1 }); + await send("Input.dispatchMouseEvent", { type: "mouseReleased", x: p.x, y: p.y, button: "left", clickCount: 1 }); + await new Promise((r) => setTimeout(r, 800)); + const menu = await send("Runtime.evaluate", { expression: `(() => { + const opts = Array.from(document.querySelectorAll('button, [role="radio"], [role="option"]')).map(e => (e.textContent||'').trim()).filter(t => /^(Default|Sunset|Dark|Ocean|System)$/i.test(t)); + return JSON.stringify(opts); + })()`, returnByValue: true }); + + console.log("MENU OPTIONS", menu.result?.value); + // click the "Ocean" option and verify the theme actually switches + const oceanPos = await send("Runtime.evaluate", { expression: `(() => { + const b = Array.from(document.querySelectorAll("button")).find(x => (x.textContent||"").trim() === "Ocean"); + if (!b) return null; const r = b.getBoundingClientRect(); return JSON.stringify({ x: r.x + 10, y: r.y + r.height/2 }); + })()`, returnByValue: true }); + if (oceanPos.result?.value) { + const pos = JSON.parse(oceanPos.result.value); + await send("Input.dispatchMouseEvent", { type: "mousePressed", x: pos.x, y: pos.y, button: "left", clickCount: 1 }); + await send("Input.dispatchMouseEvent", { type: "mouseReleased", x: pos.x, y: pos.y, button: "left", clickCount: 1 }); + await new Promise((r) => setTimeout(r, 1200)); + const after = await send("Runtime.evaluate", { expression: `JSON.stringify({ + html: document.documentElement.className.split(" ").filter(Boolean).slice(-1), + cardBg: (() => { const c = document.querySelector("[aria-label^=\"Drag to move\"]")?.closest("[class*=\\\"rounded-2xl\\\"]"); return c ? c.getAttribute("style")?.match(/background-color: ([^;]+)/)?.[1] : null; })(), + ls: localStorage.getItem("theme"), + })`, returnByValue: true }); + console.log("AFTER-CLICK", after.result?.value); + } + } + proc.kill(); process.exit(0); +})().catch((e) => { console.error("FAIL", e.message); process.exit(1); }); diff --git a/.cdp/verify-switch.cjs b/.cdp/verify-switch.cjs new file mode 100644 index 0000000..51831b9 --- /dev/null +++ b/.cdp/verify-switch.cjs @@ -0,0 +1,80 @@ +/* Verify every theme switch updates group card colors in the UI (no reload). */ +const { spawn } = require("node:child_process"); +const fs = require("node:fs"); +const http = require("node:http"); +const EDGE = "C:/Program Files (x86)/Microsoft/Edge/Application/msedge.exe"; +const PORT = 9357; +function httpJson(p){return new Promise((res,rej)=>{const r=http.request({host:"127.0.0.1",port:PORT,path:p},(x)=>{let d="";x.on("data",c=>d+=c);x.on("end",()=>{try{res(JSON.parse(d))}catch{res(d)}})});r.on("error",rej);r.end()})} +(async()=>{ + const prof=fs.mkdtempSync(require("node:os").tmpdir()+"/edge-prof-"); + const proc=spawn(EDGE,["--headless=new","--remote-debugging-port="+PORT,"--user-data-dir="+prof,"--no-first-run","--no-default-browser-check","--disable-gpu","about:blank"],{stdio:"ignore"}); + let tg=null;for(let i=0;i<40;i++){await new Promise(r=>setTimeout(r,500));try{tg=await httpJson("/json/list");break}catch{}} + const page=tg.find(t=>t.type==="page"); + const ws=new WebSocket(page.webSocketDebuggerUrl); + await new Promise(r=>ws.onopen=r);let id=0; + const send=(m,p={})=>new Promise(res=>{const i2=++id;ws.send(JSON.stringify({id:i2,method:m,params:p}));const t=setInterval(()=>{const f=ws._buf.find(b=>b.id===i2);if(f){clearInterval(t);res(f.result??f.error)}},10)}); + ws._buf=[];const errs=[]; + ws.onmessage=(m)=>{const j=JSON.parse(m.data);if(j.id){ws._buf.push(j);return;} + if(j.method==="Runtime.consoleAPICalled"&&j.params.type==="error"){errs.push(j.params.args.map(a=>(a.value??a.description??"")).join(" ").slice(0,150));} + if(j.method==="Runtime.exceptionThrown"){errs.push("EXC: "+(j.params.exceptionDetails?.exception?.description||"").slice(0,120));}}; + await send("Runtime.enable");await send("Page.enable");await send("Network.enable"); + const cv=fs.readFileSync(process.argv[1],"utf8").split("\n").map(l=>l.trim()).find(l=>l.includes("authjs.session-token")).split("\t").pop(); + await send("Network.setCookies",{cookies:[{name:"authjs.session-token",value:cv,domain:"localhost",path:"/",httpOnly:true,sameSite:"Lax"}]}); + await send("Emulation.setDeviceMetricsOverride",{width:1440,height:900,deviceScaleFactor:1}); + await send("Page.navigate",{url:"http://localhost:3210/"}); + await new Promise(r=>setTimeout(r,5000)); + // wait until group cards (divs with inline borderColor+backgroundColor) have rendered + const cardQ=`Array.from(document.querySelectorAll("div")).some(d=>{const st=d.getAttribute("style")||"";return /background-color/.test(st)&&/border-color/.test(st)})`; + for(let i=0;i<30;i++){ if(await send("Runtime.evaluate",{expression:cardQ,returnByValue:true}).then(r=>r.result?.value)){ break; } await new Promise(r=>setTimeout(r,1000)); } + await new Promise(r=>setTimeout(r,500)); + + const ev=(expr)=>send("Runtime.evaluate",{expression:expr,returnByValue:true,awaitPromise:true}).then(r=>r.result?.value ?? r.exceptionDetails?.exception?.description); + const click=async(x,y)=>{await send("Input.dispatchMouseEvent",{type:"mousePressed",x,y,button:"left",clickCount:1});await send("Input.dispatchMouseEvent",{type:"mouseReleased",x,y,button:"left",clickCount:1});}; + // Option button scoped to the open dropdown (avoids the "Default" *project* nav item) + const optionAt=async(name)=>{const v=await ev(`(()=>{ + const menu=document.querySelector('[data-slot="dropdown-menu-content"]'); + if(!menu) return null; + const b=Array.from(menu.querySelectorAll("button")).find(x=>(x.textContent||"").trim()==="${name}"); + if(!b) return null; const r=b.getBoundingClientRect(); + return JSON.stringify({x:Math.round(r.x+12),y:Math.round(r.y+r.height/2)}); + })()`); return v?JSON.parse(v):null;}; + const openMenu=async()=>{const v=await ev(`(()=>{const b=Array.from(document.querySelectorAll("button")).find(x=>(x.textContent||"").trim()==="Theme");if(!b)return null;const r=b.getBoundingClientRect();return JSON.stringify({x:Math.round(r.x+r.width/2),y:Math.round(r.y+r.height/2)})})()`);if(!v)return false;const p=JSON.parse(v);await click(p.x,p.y);await new Promise(r=>setTimeout(r,500));return true;}; + const state=async(label)=>{const out=JSON.stringify(await ev(`(()=>{ + const cards=Array.from(document.querySelectorAll("[class*=rounded-2xl]")).filter(c=>/background-color/.test(c.getAttribute("style")||"")&&/border-color/.test(c.getAttribute("style")||"")); + const card=cards[0]||{getAttribute:()=>""}; + const s=card.getAttribute("style")||""; + return { + html:document.documentElement.className.split(" ").filter(Boolean).slice(-1).join(","), + cards:cards.length, + cardBg:(s.match(/background-color:([^;]+)/)||[])[1], + cardBorder:(s.match(/border-color:([^;]+)/)||[])[1], + bodyBg:getComputedStyle(document.body).backgroundColor + }; + })()`));console.log(label,out);return out;}; + + const pickCard=await ev(`Array.from(document.querySelectorAll("div")).filter(d=>{const st=d.getAttribute("style")||"";return /background-color/.test(st)&&/border-color/.test(st)}).length`); + console.log(" cards-with-style:", pickCard); + let s1 = await state("1) initial (dark) "); + await openMenu(); let o = await optionAt("Default"); console.log(" -> clicking Default at", JSON.stringify(o)); + if(o){await click(o.x,o.y);} await new Promise(r=>setTimeout(r,900)); + let s2 = await state("2) after Default "); + await openMenu(); o = await optionAt("Sunset"); console.log(" -> clicking Sunset at", JSON.stringify(o)); + if(o){await click(o.x,o.y);} await new Promise(r=>setTimeout(r,900)); + let s3 = await state("3) after Sunset "); + await openMenu(); o = await optionAt("Ocean"); console.log(" -> clicking Ocean at", JSON.stringify(o)); + if(o){await click(o.x,o.y);} await new Promise(r=>setTimeout(r,900)); + let s4 = await state("4) after Ocean "); + await openMenu(); o = await optionAt("Dark"); console.log(" -> clicking Dark at", JSON.stringify(o)); + if(o){await click(o.x,o.y);} await new Promise(r=>setTimeout(r,900)); + let s5 = await state("5) back to Dark "); + + const parse=(s)=>JSON.parse(s.slice(s.indexOf("{"))); + const ok1 = parse(s2).cardBorder !== parse(s1).cardBorder || parse(s2).html !== parse(s1).html; + const ok2 = parse(s3).cardBg !== parse(s2).cardBg; + const ok3 = parse(s4).cardBg !== parse(s3).cardBg; + const ok4 = parse(s5).cardBg !== parse(s4).cardBg; + console.log("TRANSITIONS OK:", ok1, ok2, ok3, ok4, "| ALL:", ok1&&ok2&&ok3&&ok4); + const real=errs.filter(e=>!/favicon|manifest|icon|404/i.test(e)); + console.log("CONSOLE ERRORS:", real.length); real.slice(0,5).forEach(e=>console.log(" -",e)); + proc.kill();process.exit(0); +})().catch(e=>{console.error("FAIL",e.message);process.exit(1)}); diff --git a/.cdp/verify-switch2.cjs b/.cdp/verify-switch2.cjs new file mode 100644 index 0000000..3d9fbe7 --- /dev/null +++ b/.cdp/verify-switch2.cjs @@ -0,0 +1,79 @@ +/* Verify every theme switch updates group card colors in the UI (no reload). + * Robust menu clicks: verify the dropdown is open, retry, log what's in it. */ +const { spawn } = require("node:child_process"); +const fs = require("node:fs"); +const http = require("node:http"); +const EDGE = "C:/Program Files (x86)/Microsoft/Edge/Application/msedge.exe"; +const PORT = 9362; +function httpJson(p){return new Promise((res,rej)=>{const r=http.request({host:"127.0.0.1",port:PORT,path:p},(x)=>{let d="";x.on("data",c=>d+=c);x.on("end",()=>{try{res(JSON.parse(d))}catch{res(d)}})});r.on("error",rej);r.end()})} +(async()=>{ + const prof=fs.mkdtempSync(require("node:os").tmpdir()+"/edge-prof-"); + const proc=spawn(EDGE,["--headless=new","--remote-debugging-port="+PORT,"--user-data-dir="+prof,"--no-first-run","--no-default-browser-check","--disable-gpu","about:blank"],{stdio:"ignore"}); + let tg=null;for(let i=0;i<40;i++){await new Promise(r=>setTimeout(r,500));try{tg=await httpJson("/json/list");break}catch{}} + const page=tg.find(t=>t.type==="page"); + const ws=new WebSocket(page.webSocketDebuggerUrl); + await new Promise(r=>ws.onopen=r);let id=0; + const send=(m,p={})=>new Promise(res=>{const i2=++id;ws.send(JSON.stringify({id:i2,method:m,params:p}));const t=setInterval(()=>{const f=ws._buf.find(b=>b.id===i2);if(f){clearInterval(t);res(f.result??f.error)}},10)}); + ws._buf=[];const errs=[]; + ws.onmessage=(m)=>{const j=JSON.parse(m.data);if(j.id){ws._buf.push(j);return;} + if(j.method==="Runtime.consoleAPICalled"&&j.params.type==="error"){errs.push(j.params.args.map(a=>(a.value??a.description??"")).join(" ").slice(0,120));} + if(j.method==="Runtime.exceptionThrown"){errs.push("EXC: "+(j.params.exceptionDetails?.exception?.description||"").slice(0,120));}}; + await send("Runtime.enable");await send("Page.enable");await send("Network.enable"); + const cv=fs.readFileSync(process.argv[1],"utf8").split("\n").map(l=>l.trim()).find(l=>l.includes("authjs.session-token")).split("\t").pop(); + await send("Network.setCookies",{cookies:[{name:"authjs.session-token",value:cv,domain:"localhost",path:"/",httpOnly:true,sameSite:"Lax"}]}); + await send("Emulation.setDeviceMetricsOverride",{width:1440,height:900,deviceScaleFactor:1}); + await send("Page.navigate",{url:"http://localhost:3210/"}); + await new Promise(r=>setTimeout(r,10000)); + + const diag=async()=>{const t=await ev("document.title+\" | \"+document.body.innerText.length");const b=await ev("Array.from(document.querySelectorAll(\"button\")).length");console.log("PAGE",t,"buttons:",b);}; + const ev=(expr)=>send("Runtime.evaluate",{expression:expr,returnByValue:true,awaitPromise:true}).then(r=>{try{return JSON.stringify(r.result?.value)}catch{return "ERR"}}); + const click=async(x,y)=>{await send("Input.dispatchMouseEvent",{type:"mousePressed",x,y,button:"left",clickCount:1});await send("Input.dispatchMouseEvent",{type:"mouseReleased",x,y,button:"left",clickCount:1});}; + const sleep=(ms)=>new Promise(r=>setTimeout(r,ms)); + + const cardState=async()=>JSON.parse(await ev(`(()=>{ + const cs=Array.from(document.querySelectorAll("[class*=rounded-2xl]")).filter(c=>/background-color/.test(c.getAttribute("style")||"")); + if(!cs.length) return {cards:0}; + const s=cs[0].getAttribute("style"); + return {cards:cs.length, bg:(s.match(/background-color:([^;]+)/)||[])[1], border:(s.match(/border-color:([^;]+)/)||[])[1], html:document.documentElement.className.split(" ").filter(Boolean).slice(-1).join(",")}; + })()`)||"null"); + + const themeBtnPos=async()=>JSON.parse(await ev(`(()=>{const b=Array.from(document.querySelectorAll("button")).find(x=>(x.textContent||"").trim()==="Theme");if(!b)return null;const r=b.getBoundingClientRect();return {x:Math.round(r.x+r.width/2),y:Math.round(r.y+r.height/2)}})()`)||"null"); + const menuButtons=async()=>await ev(`(()=>{const m=document.querySelector('[data-slot="dropdown-menu-content"]');if(!m)return null;return Array.from(m.querySelectorAll("button")).map(b=>(b.textContent||"").trim())})()`)||"null"; + + async function selectTheme(name){ + for(let attempt=1; attempt<=4; attempt++){ + const tp=await themeBtnPos(); + if(!tp){console.log(` ! Theme btn not found (attempt ${attempt})`);await sleep(500);continue;} + await click(tp.x,tp.y); await sleep(700); + let mb=await menuButtons(); + if(!mb||mb==="null"){ + console.log(` attempt ${attempt}: menu did not open`); + // toggle closed? open again + await sleep(300); continue; + } + const list=JSON.parse(mb); + const idx=list.findIndex(t=>t===name); + if(idx===-1){console.log(` attempt ${attempt}: menu open, options=${JSON.stringify(list)}, no ${name}`);await sleep(300);continue;} + const pos=JSON.parse(await ev(`(()=>{const m=document.querySelector('[data-slot="dropdown-menu-content"]');const b=Array.from(m.querySelectorAll("button"))[${idx}];const r=b.getBoundingClientRect();return {x:Math.round(r.x+12),y:Math.round(r.y+r.height/2)}})()`)); + await click(pos.x,pos.y); await sleep(900); + return true; + } + return false; + } + + await diag(); + const seq=["Sunset","Default","Ocean","Dark","Sunset"]; + const results={}; + results["A"]=await cardState(); + let letter=65; + for(const name of seq){ + console.log(`selecting ${name}:`, await selectTheme(name)?"ok":"FAILED"); + results[String.fromCharCode(++letter)]=await cardState(); + } + for(const k of Object.keys(results)) console.log(k, results[k]); + const d=(a,b)=>a&&b&&a.cards>0&&a.bg!==b.bg; + console.log("FILL CHANGES: A->B:",d(results.A,results.B),"| B->C:",d(results.B,results.C),"| C->D:",d(results.C,results.D),"| D->E:",d(results.D,results.E),"| E->F:",d(results.E,results.F)); + const real=errs.filter(e=>!/favicon|manifest|icon|404/i.test(e)); + console.log("ERRORS:", real.length); real.slice(0,4).forEach(e=>console.log(" -",e)); + proc.kill();process.exit(0); +})().catch(e=>{console.error("FAIL",e.message);process.exit(1)}); diff --git a/.cdp/verify-theme.cjs b/.cdp/verify-theme.cjs new file mode 100644 index 0000000..b99e4a6 --- /dev/null +++ b/.cdp/verify-theme.cjs @@ -0,0 +1,61 @@ +/* Verify: open the Theme menu and click "Ocean", confirm the app switches theme. */ +const { spawn } = require("node:child_process"); +const fs = require("node:fs"); +const http = require("node:http"); +const EDGE = "C:/Program Files (x86)/Microsoft/Edge/Application/msedge.exe"; +const PORT = 9351; +const BASE = "http://localhost:3210"; +function httpJson(p) { + return new Promise((resolve, reject) => { + const req = http.request({ host: "127.0.0.1", port: PORT, path: p }, (res) => { + let d = ""; res.on("data", (c) => (d += c)); + res.on("end", () => { try { resolve(JSON.parse(d)); } catch { resolve(d); } }); + }); + req.on("error", reject); req.end(); + }); +} +(async () => { + const profile = fs.mkdtempSync("/tmp/edge-prof-"); + const proc = spawn(EDGE, ["--headless=new", `--remote-debugging-port=${PORT}`, `--user-data-dir=${profile}`, "--no-first-run", "--no-default-browser-check", "--disable-gpu", "about:blank"], { stdio: "ignore" }); + let targets = null; + for (let i = 0; i < 40; i++) { await new Promise((r) => setTimeout(r, 500)); try { targets = await httpJson("/json/list"); break; } catch {} } + if (!targets) { console.error("no targets"); process.exit(1); } + const page = targets.find((t) => t.type === "page"); + const ws = new WebSocket(page.webSocketDebuggerUrl); + await new Promise((r) => (ws.onopen = r)); + let id = 0; + const send = (method, params = {}) => new Promise((resolve) => { + const myId = ++id; ws.send(JSON.stringify({ id: myId, method, params })); + const t = setInterval(() => { const m = ws._buf.find((b) => b.id === myId); if (m) { clearInterval(t); resolve(m.result ?? m.error); } }, 10); + }); + ws._buf = []; + let crashed = false; + ws.onmessage = (m) => { const msg = JSON.parse(m.data); if (msg.id) { ws._buf.push(msg); return; } + if (msg.method === "Runtime.consoleAPICalled" && msg.params.type === "error") { const t2 = msg.params.args.map(a=>a.value??a.description??a.type).join(" "); if (/Base UI|MenuGroup|hydrat/i.test(t2)) crashed = true; } + if (msg.method === "Runtime.exceptionThrown") crashed = true; }; + await send("Runtime.enable"); await send("Page.enable"); await send("Network.enable"); + const cookieFile = process.argv[2]; + const cookieValue = cookieFile ? (fs.readFileSync(cookieFile, "utf8").split("\n").map((l) => l.trim()).find((l) => l.includes("authjs.session-token")) || "").split("\t").pop() : null; + if (cookieValue) await send("Network.setCookies", { cookies: [{ name: "authjs.session-token", value: cookieValue, domain: "localhost", path: "/", httpOnly: true, sameSite: "Lax" }] }); + await send("Emulation.setDeviceMetricsOverride", { width: 1440, height: 900, deviceScaleFactor: 1, mobile: false }); + await send("Page.navigate", { url: BASE + "/" }); + await new Promise((r) => setTimeout(r, 4500)); + + // Open the theme menu + const btn = (await send("Runtime.evaluate", { expression: `(() => { const b = Array.from(document.querySelectorAll("button")).find(x => (x.textContent||"").trim() === "Theme" || (x.getAttribute("aria-label")||"") === "Theme"); const r = b.getBoundingClientRect(); return JSON.stringify({ x: r.x + r.width / 2, y: r.y + r.height / 2 }); })()`, returnByValue: true })).result?.value; + const bp = JSON.parse(btn); + await send("Input.dispatchMouseEvent", { type: "mousePressed", x: bp.x, y: bp.y, button: "left", clickCount: 1 }); + await send("Input.dispatchMouseEvent", { type: "mouseReleased", x: bp.x, y: bp.y, button: "left", clickCount: 1 }); + await new Promise((r) => setTimeout(r, 700)); + // Click "Ocean" + const oc = (await send("Runtime.evaluate", { expression: `(() => { const b = Array.from(document.querySelectorAll("button")).find(x => (x.textContent||"").trim() === "Ocean"); if(!b) return null; const r = b.getBoundingClientRect(); return JSON.stringify({ x: r.x + 12, y: r.y + r.height / 2 }); })()`, returnByValue: true })).result?.value; + if (oc) { + const op = JSON.parse(oc); + await send("Input.dispatchMouseEvent", { type: "mousePressed", x: op.x, y: op.y, button: "left", clickCount: 1 }); + await send("Input.dispatchMouseEvent", { type: "mouseReleased", x: op.x, y: op.y, button: "left", clickCount: 1 }); + } + await new Promise((r) => setTimeout(r, 1500)); + const after = (await send("Runtime.evaluate", { expression: `JSON.stringify({ html: document.documentElement.className.split(" ").filter(Boolean).slice(-1), ls: localStorage.getItem("theme") })`, returnByValue: true })).result?.value; + console.log("OCEAN BTN FOUND:", !!oc, "| AFTER CLICK:", after, "| CRASHED (Base UI/hydration/exception):", crashed); + proc.kill(); process.exit(0); +})().catch((e) => { console.error("FAIL", e.message); process.exit(1); }); diff --git a/components/theme/use-dark-theme.ts b/components/theme/use-dark-theme.ts new file mode 100644 index 0000000..db256af --- /dev/null +++ b/components/theme/use-dark-theme.ts @@ -0,0 +1,47 @@ +"use client"; + +import { useEffect, useState } from "react"; + +import { useTheme, resolveTheme } from "./theme-provider"; + +// The themes whose *surfaces* are dark (see app/globals.css): "dark" and +// "ocean". Anything that used to compare `resolvedTheme === "dark"` to pick +// a color variant (group card fills/strokes, markdown widget color modes, +// ...) uses this instead, so Ocean is treated exactly like Dark. +const DARK_SURFACES = new Set(["dark", "ocean"]); + +function useMounted(): boolean { + const [mounted, setMounted] = useState(false); + useEffect(() => { + setMounted(true); + }, []); + return mounted; +} + +/** + * True when the active theme has dark surfaces (Dark or Ocean). + * + * Reactive to UI theme switches: the value is derived from the provider's + * theme state (the single source of truth), so the moment `setTheme` fires, + * every consumer re-renders with the new variant in the same commit -- no + * stale card colors, no manual refresh needed. + * + * Hydration-safe: until mounted we always report "light", matching the + * server render (the no-FOUC script in app/layout.tsx covers the CSS side + * of that first frame). + */ +export function isDarkTheme(): boolean { + const mounted = useMounted(); + const { theme } = useTheme(); + if (!mounted) return false; + return DARK_SURFACES.has(resolveTheme(theme)); +} + +/** + * The `data-color-mode` value the markdown editor/preview widgets expect. + * They only understand light/dark, so the light "sunset" look reports as + * light and the dark "ocean" look reports as dark. + */ +export function colorModeFromTheme(): "light" | "dark" { + return isDarkTheme() ? "dark" : "light"; +} diff --git a/shots/01-login-default.png b/shots/01-login-default.png new file mode 100644 index 0000000000000000000000000000000000000000..c86d9653d0d9b7ee121e1ad0af45ee41d55af273 GIT binary patch literal 25913 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 literal 0 HcmV?d00001 diff --git a/shots/01-login-light.png b/shots/01-login-light.png new file mode 100644 index 0000000000000000000000000000000000000000..eaa4c9cedbae8f2f84991bee0f358c8398c6f292 GIT binary patch literal 22330 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 literal 0 HcmV?d00001 diff --git a/shots/03-home-sunset.png b/shots/03-home-sunset.png new file mode 100644 index 0000000000000000000000000000000000000000..427e0cd3756aee8b13efde07b9d8114501a3f897 GIT binary patch literal 100379 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�#S3l#~Z{qMy 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 J%D?^m{{SPK1y=w7 literal 0 HcmV?d00001 diff --git a/shots/04-home-dark.png b/shots/04-home-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..1f4c1b174df7040c24939a608326e3be767d63e9 GIT binary patch literal 97211 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