PageSourceSearch

https://daymarkinteractive.com/assets/ChangelogPage-BurXfcQR.js

js daymarkinteractive.com collected 2026-10-09 21:47:00 UTC 4,856 bytes, 1 lines download raw bytes

1import{j as e}from"./motion-Bn6pG5ag.js";import{r as l}from"./recharts-BwmT-sCX.js";import{u as f,D as b}from"./DashboardLayout-8scvnAGj.js";import{u as h}from"./usePageTitle-YzpWTYhX.js";import{F as j,f as N,a as y,S as v}from"./changelog-Bucxxw5t.js";import{S as w}from"./sparkles-Dy8p03rz.js";import{W as S}from"./wrench-IKlxzCQQ.js";import{e as k}from"./index-Dy40WjoG.js";import"./logo-D53sfU1B.js";import"./external-link-cOZ2Pb7O.js";import"./log-out-Dfr3BtnU.js";import"./supabase-BaWiknf2.js";const u={feature:{label:"Feature",border:"border-l-emerald-500",bg:"bg-emerald-500/5",text:"text-emerald-700 dark:text-emerald-400",badgeBg:"bg-emerald-500/15",badgeText:"text-emerald-700 dark:text-emerald-400",icon:w,keyDescription:"Significant new functionality"},improvement:{label:"Improvement",border:"border-l-slate-400",bg:"bg-slate-500/5",text:"text-slate-700 dark:text-slate-300",badgeBg:"bg-slate-500/15",badgeText:"text-slate-700 dark:text-slate-300",icon:v,keyDescription:"Smaller refinements and enhancements"},fix:{label:"Fix",border:"border-l-amber-500",bg:"bg-amber-500/5",text:"text-amber-700 dark:text-amber-400",badgeBg:"bg-amber-500/15",badgeText:"text-amber-700 dark:text-amber-500",icon:S,keyDescription:"Bugs squashed"}},C=o=>{try{const s=new Date(o);return s.toLocaleDateString("en-US",{month:"long",day:"numeric",year:"numeric"})+" · "+s.toLocaleTimeString("en-US",{hour:"numeric",minute:"2-digit",hour12:!0})}catch{return o}},E=({id:o,date:s,type:m,title:x,description:p,whereToFind:a,expanded:d,onToggle:c})=>{const n=u[m],i=n.icon;return e.jsxs("div",{id:o,className:`rounded-lg border border-border ${n.bg} border-l-4 ${n.border} overflow-hidden transition-all`,children:[e.jsxs("button",{onClick:c,className:"w-full text-left px-4 py-3 flex items-start justify-between gap-3 hover:bg-muted/30 transition-colors","aria-expanded":d,children:[e.jsxs("div",{className:"flex-1 min-w-0 space-y-1",children:[e.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[e.jsxs("span",{className:`inline-flex items-center gap-1 text-[10px] font-bold uppercase tracking-wider px-2 py-0.5 rounded ${n.badgeBg} ${n.badgeText}`,children:[e.jsx(i,{className:"w-3 h-3"}),n.label]}),e.jsx("span",{className:"text-[11px] text-muted-foreground",children:C(s)})]}),e.jsx("p",{className:"text-sm font-semibold text-foreground",children:x})]}),e.jsx(k,{className:`w-4 h-4 text-muted-foreground shrink-0 mt-1 transition-transform ${d?"rotate-180":""}`})]}),d&&e.jsxs("div",{className:"px-4 pb-4 pt-1 space-y-3",children:[e.jsx("p",{className:"text-sm text-foreground/80 leading-relaxed whitespace-pre-line",children:p}),a&&e.jsxs("div",{className:"text-xs text-muted-foreground bg-muted/50 rounded-md px-3 py-2",children:[e.jsx("span",{className:"font-semibold text-foreground",children:"Where to find it: "}),a]})]})]})},G=()=>{h("Changelog — 9x12 Sites Dashboard");const{markAsViewed:o}=f(),[s,m]=l.useState("all"),[x,p]=l.useState(null),[a,d]=l.useState(j);l.useEffect(()=>{o()},[o]),l.useEffect(()=>{let t=!1;return(async()=>{try{const r=await N();!t&&r.length&&d(r)}catch{}})(),()=>{t=!0}},[]);const c=l.useMemo(()=>y(a,s),[a,s]),n=l.useMemo(()=>{const t={all:a.length,feature:0,improvement:0,fix:0};for(const r of a)t[r.type]+=1;return t},[a]),i=(t,r)=>{const g=s===t;return e.jsxs("button",{onClick:()=>m(t),className:`px-3 py-1.5 rounded-full text-xs font-semibold border transition-colors ${g?"bg-primary text-primary-foreground border-primary":"bg-background text-foreground border-border hover:bg-muted"}`,children:[r," ",e.jsx("span",{className:"opacity-60 ml-1",children:n[t]})]},t)};return e.jsx(b,{children:e.jsxs("div",{className:"p-4 md:p-8 max-w-3xl mx-auto space-y-6",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"text-2xl font-bold text-foreground",children:"Changelog"}),e.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:"What's new on 9x12 Sites. Updates ship automatically as soon as we deploy them."})]}),e.jsx("div",{className:"flex flex-wrap gap-3 text-[11px]",children:Object.keys(u).map(t=>{const r=u[t],g=r.icon;return e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs("span",{className:`inline-flex items-center gap-1 px-2 py-0.5 rounded ${r.badgeBg} ${r.badgeText} font-bold uppercase tracking-wider`,children:[e.jsx(g,{className:"w-3 h-3"}),r.label]}),e.jsx("span",{className:"text-muted-foreground",children:r.keyDescription})]},t)})}),e.jsxs("div",{className:"flex flex-wrap gap-2",children:[i("all","All"),i("feature","Features"),i("improvement","Improvements"),i("fix","Fixes")]}),c.length===0?e.jsx("p",{className:"text-sm text-muted-foreground",children:"No entries in this category yet."}):e.jsx("div",{className:"space-y-3",children:c.map(t=>e.jsx(E,{...t,expanded:x===t.id,onToggle:()=>p(r=>r===t.id?null:t.id)},t.id))})]})})};export{G as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.