1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7982],{5682:(e,t,s)=>{"use strict";s.d(t,{Q:()=>d});var r=s(37876),a=s(48230),l=s.n(a),n=s(29472),i=s(14232);let c={admin:{nav:"mb-6 flex items-center gap-2 text-ml text-gray-400",link:"hover:text-white transition-colors",active:"text-white font-medium"},blog:{nav:"text-sm text-fg-tertiary mb-4 flex items-center gap-2",link:"no-underline hover:text-fg-primary",active:"text-fg-primary"}};function d(e){let{items:t,variant:s="admin"}=e,a=c[s];return(0,r.jsx)("nav",{className:a.nav,"aria-label":"Breadcrumb",children:t.map((e,c)=>(0,r.jsxs)(i.Fragment,{children:[c>0&&("blog"===s?(0,r.jsx)("span",{children:"âº"}):(0,r.jsx)(n.A,{className:"h-4 w-4"})),e.href&&c<t.length-1?(0,r.jsx)(l(),{href:e.href,className:a.link,children:e.label}):(0,r.jsx)("span",{className:c===t.length-1?a.active:"",children:e.label})]},e.label))})}},10507:(e,t,s)=>{"use strict";s.r(t),s.d(t,{__N_SSP:()=>u,default:()=>y});var r=s(37876),a=s(79279),l=s(5682),n=s(14232),i=s(48230),c=s.n(i),d=s(89099),o=s(5259);let x="rounded-lg border border-gray-75 bg-gray-90",m=[{label:"7 days",value:"7d"},{label:"14 days",value:"14d"},{label:"30 days",value:"30d"},{label:"90 days",value:"90d"},{label:"180 days",value:"180d"},{label:"All time",value:"all"}];function g(e){let{percent:t}=e;if(null===t)return(0,r.jsx)("span",{className:"text-xs text-pg-500",children:"new"});let s=Math.abs(t),a=s>=1e3?`${(s/1e3).toFixed(1)}k`:s.toFixed(0);return t>0?(0,r.jsxs)("span",{className:"inline-flex items-center gap-0.5 text-xs font-medium text-emerald-400",children:[(0,r.jsx)("span",{children:"â²"})," ",a,"%"]}):t<0?(0,r.jsxs)("span",{className:"inline-flex items-center gap-0.5 text-xs font-medium text-red-400",children:[(0,r.jsx)("span",{children:"â¼"})," ",a,"%"]}):(0,r.jsx)("span",{className:"inline-flex items-center gap-0.5 text-xs font-medium text-pg-200",children:"0%"})}function h(e,t){switch(t){case"tag":return e.tagName.toLowerCase();case"uses":return e.currentUses;case"change":return e.changePercent??-1/0;case"active":return e.currentTemplateCount;case"total":return e.totalTemplates}}function p(e){let{sortKey:t,current:s,onSort:a,align:l,children:n}=e,i=s.key===t,c=i?"asc"===s.dir?o.SwV:o.bDP:o.TBE;return(0,r.jsxs)("button",{onClick:()=>a(t),className:`inline-flex items-center gap-0.5 uppercase hover:text-pg-100 transition-colors ${i?"text-pg-100":""} ${"right"===l?"ml-auto":""}`,children:[n,(0,r.jsx)(c,{className:"w-3 h-3 shrink-0"})]})}var u=!0;function y(){let e=(0,d.useRouter)(),t=e.query.tagId,s=e.query.range||"30d",[i,o]=(0,n.useState)(null),[u,y]=(0,n.useState)(!0),[j,f]=(0,n.useState)(null),[b,N]=(0,n.useState)(s),[v,w]=(0,n.useState)({key:"uses",dir:"desc"}),k=(0,n.useCallback)(async e=>{if(t){y(!0),f(null);try{let s=await fetch(`/api/admin/template-stats/${t}?range=${e}`);if(!s.ok)throw Error("Failed to fetch category stats");o(await s.json())}catch(e){f(e instanceof Error?e.message:"An error occurred")}finally{y(!1)}}},[t]);(0,n.useEffect)(()=>{k(b)},[b,k]);let S=e=>{w(t=>t.key===e?{key:e,dir:"desc"===t.dir?"asc":"desc"}:{key:e,dir:"desc"})},C=(0,n.useMemo)(()=>{var e;return i?(e=i.minorTags,[...e].sort((e,t)=>{let s=h(e,v.key),r=h(t,v.key),a="string"==typeof s&&"string"==typeof r?s.localeCompare(r):s-r;return"asc"===v.dir?a:-a})):[]},[i,v]);return(0,r.jsxs)(a.A,{className:"max-w-screen-xl mx-auto px-10 py-10",children:[(0,r.jsx)(l.Q,{items:[{label:"Admin",href:"/admin"},{label:"Template Stats",href:"/admin/template-stats"},{label:i?.tagName??"Category Detail"}]}),(0,r.jsxs)("div",{className:"flex justify-between items-center mb-8",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("h1",{className:"text-3xl font-medium text-gray-5",children:i?.tagName??"Category Detail"}),(0,r.jsxs)("p",{className:"text-sm text-gray-40 mt-1",children:["Minor tag breakdown & template performance",i&&(0,r.jsxs)("span",{className:"ml-2 text-gray-50",children:["(",i.periodLabel," period)"]})]})]}),(0,r.jsxs)("div",{className:"flex items-center gap-3",children:[(0,r.jsx)("div",{className:"flex gap-1 bg-gray-90 rounded-lg p-1 border border-gray-75",children:m.map(e=>(0,r.jsx)("button",{onClick:()=>N(e.value),className:`px-3 py-1.5 text-sm rounded-md transition-colors ${b===e.value?"bg-gray-80 text-gray-5 font-medium":"text-gray-40 hover:text-gray-10 hover:bg-gray-85"}`,children:e.label},e.value))}),(0,r.jsx)("button",{onClick:()=>k(b),disabled:u,className:"px-4 py-1.5 text-sm rounded-lg border border-gray-60 text-gray-10 hover:bg-gray-80 transition-colors disabled:opacity-50",children:u?"Loading...":"Refresh"})]})]}),j&&(0,r.jsx)("div",{className:"bg-red-500/20 border border-red-500/50 text-red-300 px-4 py-3 rounded-lg mb-6",children:j}),u?(0,r.jsx)("div",{className:"flex items-center justify-center py-20",children:(0,r.jsx)("div",{className:"animate-spin rounded-full h-12 w-12 border-b-2 border-gray-40"})}):i?(0,r.jsxs)(r.Fragment,{children:[C.length>0&&(0,r.jsxs)("div",{className:`p-6 mb-8 ${x}`,children:[(0,r.jsx)("h2",{className:"text-xl font-semibold text-gray-10 mb-1",children:"Uses by Minor Tag"}),(0,r.jsxs)("p",{className:"text-sm text-gray-40 mb-4",children:["Sub-categories within ",i.tagName]}),(0,r.jsx)("div",{className:"overflow-x-auto",children:(0,r.jsxs)("table",{className:"w-full text-sm text-left",children:[(0,r.jsx)("thead",{className:"text-xs text-pg-300 uppercase border-b border-pg-600",children:(0,r.jsxs)("tr",{children:[(0,r.jsx)("th",{className:"px-4 py-3",children:(0,r.jsx)(p,{sortKey:"tag",current:v,onSort:S,children:"Minor Tag"})}),(0,r.jsx)("th",{className:"px-4 py-3 text-right",children:(0,r.jsx)(p,{sortKey:"uses",current:v,onSort:S,align:"right",children:"Uses (Cur / Prev)"})}),(0,r.jsx)("th",{className:"px-4 py-3 text-right",children:(0,r.jsx)(p,{sortKey:"change",current:v,onSort:S,align:"right",children:"Change"})}),(0,r.jsx)("th",{className:"px-4 py-3 text-right",children:(0,r.jsx)(p,{sortKey:"active",current:v,onSort:S,align:"right",children:"Active"})}),(0,r.jsx)("th",{className:"px-4 py-3 text-right",children:(0,r.jsx)(p,{sortKey:"total",current:v,onSort:S,align:"right",children:"Total"})})]})}),(0,r.jsx)("tbody",{children:C.map(e=>(0,r.jsxs)("tr",{className:"border-b border-pg-700",children:[(0,r.jsx)("td",{className:"px-4 py-3 font-medium text-pg-100",children:e.tagName}),(0,r.jsxs)("td",{className:"px-4 py-3 text-right",children:[(0,r.jsx)("span",{className:"font-semibold text-pg-50",children:e.currentUses.toLocaleStr
1ing()}),(0,r.jsx)("span",{className:"text-pg-500 mx-1",children:"/"}),(0,r.jsx)("span",{className:"text-pg-400",children:e.previousUses.toLocaleString()})]}),(0,r.jsx)("td",{className:"px-4 py-3 text-right",children:(0,r.jsx)(g,{percent:e.changePercent})}),(0,r.jsx)("td",{className:"px-4 py-3 text-right text-pg-300",children:e.currentTemplateCount}),(0,r.jsx)("td",{className:"px-4 py-3 text-right text-pg-300",children:e.totalTemplates})]},e.tagId))})]})})]}),(0,r.jsxs)("div",{className:`p-6 ${x}`,children:[(0,r.jsx)("h2",{className:"text-xl font-semibold text-gray-10 mb-1",children:"Templates"}),(0,r.jsxs)("p",{className:"text-sm text-gray-40 mb-6",children:[i.templates.length," template",1!==i.templates.length?"s":""," in ",i.tagName]}),0===i.templates.length?(0,r.jsx)("div",{className:"text-center py-12 text-gray-50",children:"No templates with usage in this period"}):(0,r.jsx)("div",{className:"grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 gap-4",children:i.templates.map(e=>(0,r.jsxs)(c(),{href:`/admin/templates/${e.templateId}`,className:"group block rounded-lg border border-gray-75 bg-gray-85 overflow-hidden hover:border-gray-60 transition-colors",children:[(0,r.jsx)("div",{className:"aspect-square bg-gray-95 relative",children:e.imageUrl?(0,r.jsx)("img",{src:e.imageUrl,alt:e.title||"Template",className:"w-full h-full object-cover",loading:"lazy"}):(0,r.jsx)("div",{className:"w-full h-full flex items-center justify-center text-gray-60 text-xs",children:"No image"})}),(0,r.jsxs)("div",{className:"p-3",children:[(0,r.jsx)("div",{className:"text-sm font-medium text-gray-10 truncate group-hover:text-purple-l1 transition-colors",children:e.title||e.templateId}),(0,r.jsxs)("div",{className:"mt-2 flex items-center justify-between text-xs",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("span",{className:"text-gray-50",children:"Period"}),(0,r.jsx)("span",{className:"ml-1 font-semibold text-gray-10",children:e.periodUses.toLocaleString()})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("span",{className:"text-gray-50",children:"Share"}),(0,r.jsxs)("span",{className:"ml-1 font-medium text-gray-25",children:[e.share.toFixed(1),"%"]})]})]}),(0,r.jsxs)("div",{className:"mt-1 text-xs",children:[(0,r.jsx)("span",{className:"text-gray-50",children:"Lifetime"}),(0,r.jsx)("span",{className:"ml-1 text-gray-40",children:e.lifetimeUses.toLocaleString()})]})]})]},e.templateId))})]})]}):null]})}},29472:(e,t,s)=>{"use strict";s.d(t,{A:()=>c});var r=s(14232),a=s(95062),l=s.n(a);function n(){return(n=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var s=arguments[t];for(var r in s)Object.prototype.hasOwnProperty.call(s,r)&&(e[r]=s[r])}return e}).apply(this,arguments)}var i=(0,r.forwardRef)(function(e,t){var s=e.color,a=e.size,l=void 0===a?24:a,i=function(e,t){if(null==e)return{};var s,r,a=function(e,t){if(null==e)return{};var s,r,a={},l=Object.keys(e);for(r=0;r<l.length;r++)s=l[r],t.indexOf(s)>=0||(a[s]=e[s]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r<l.length;r++)s=l[r],!(t.indexOf(s)>=0)&&Object.prototype.propertyIsEnumerable.call(e,s)&&(a[s]=e[s])}return a}(e,["color","size"]);return r.createElement("svg",n({ref:t,xmlns:"http://www.w3.org/2000/svg",width:l,height:l,viewBox:"0 0 24 24",fill:"none",stroke:void 0===s?"currentColor":s,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},i),r.createElement("polyline",{points:"9 18 15 12 9 6"}))});i.propTypes={color:l().string,size:l().oneOfType([l().string,l().number])},i.displayName="ChevronRight";let c=i},48456:(e,t,s)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/admin/template-stats/[tagId]",function(){return s(10507)}])},79279:(e,t,s)=>{"use strict";s.d(t,{A:()=>l});var r=s(37876),a=s(4135);function l(e){let{className:t,children:s}=e;return(0,r.jsx)(a.x,{children:(0,r.jsx)("div",{className:"min-h-screen bg-gray-90 text-white",children:(0,r.jsx)("div",{className:t,children:s})})})}}},e=>{e.O(0,[636,6593,8792],()=>e(e.s=48456)),_N_E=e.O()}]);
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.