1!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._posthogChunkIds=e._posthogChunkIds||{},e._posthogChunkIds[n]="01a0d9af-403f-7c40-8dac-e7d7bb3789a6")}catch(e){}}();import{c as y,a as n,d as k,b as d,w as p,r as N,t as I,F as V,g as R,T as U,h as T,U as A,Y as M,Z as L,H as J,$ as X,P as Z,E as G,Q,a0 as $,o as b,e as c,i as D,a1 as P,a2 as K}from"./index-BtIFvzQj.js";import{B as ee}from"./Button-DDqYR2UI.js";import{C as te}from"./Checkbox-DMGI_X1S.js";import{I as ne}from"./Icon-BXxSe1O9.js";import{I as se}from"./Input-dYpsULvi.js";import{P as le}from"./PanelNav-unSbcX6V.js";import{w as ie}from"./whatsNewEntries-OZ_g_PSr.js";import{_ as oe}from"./_plugin-vue_export-helper-DlAUqK2U.js";const ae={starterTemplates:"Starter templates",community:"Community",examplePrompts:"Example prompts",inspiration:"Inspiration",whatsNew:"What's New"},j=new Set(["image","video","embed"]),re=/^\d{4}-\d{2}-\d{2}$/;let W=0;function x(t){return W+=1,`${t}_${W}`}function O(t){return JSON.parse(JSON.stringify(t))}function S(t){return Array.isArray(t)&&t.every(e=>typeof e=="string")}function E(t){return!t||typeof t!="object"||Array.isArray(t)?{}:Object.fromEntries(Object.entries(t).map(([e,a])=>[String(e||"").trim(),String(a||"").trim()]).filter(([e,a])=>e&&a))}function me(t){return Array.isArray(t)&&t.every(e=>e&&typeof e=="object"&&typeof e.id=="string"&&typeof e.title=="string"&&S(e.remixIds))}function de(t){return Array.isArray(t)&&t.every(e=>e&&typeof e=="object"&&typeof e.id=="string"&&typeof e.remixId=="string"&&S(e.tags)&&e.media&&typeof e.media=="object")}function B(){return{type:"",src:"",title:""}}function F(t){return{type:String(t?.type||""),src:String(t?.src||""),title:String(t?.title||"")}}function q(t){return t==null?!0:t&&typeof t=="object"&&j.has(t.type)&&t
1ypeof t.src=="string"&&!!t.src&&(t.title==null||typeof t.title=="string")}function ue(t){return t&&typeof t=="object"&&typeof t.headline=="string"&&(t.summary==null||typeof t.summary=="string")&&(t.bullets==null||S(t.bullets))&&q(t.media)}function ce(t){return Array.isArray(t)&&t.length>0&&t.every(e=>e&&typeof e=="object"&&typeof e.id=="string"&&typeof e.date=="string"&&typeof e.dateLabel=="string"&&typeof e.headline=="string"&&(e.summary==null||typeof e.summary=="string")&&(e.tag==null||typeof e.tag=="string")&&(e.docsUrl==null||typeof e.docsUrl=="string")&&(e.bullets==null||S(e.bullets))&&(e.subAnnouncements==null||Array.isArray(e.subAnnouncements)&&e.subAnnouncements.every(ue))&&q(e.media))}function z(t){return(t||[]).map(e=>({id:String(e.id||""),date:String(e.date||""),dateLabel:String(e.dateLabel||""),tag:String(e.tag||""),headline:String(e.headline||""),summary:String(e.summary||""),bullets:Array.isArray(e.bullets)?[...e.bullets]:[],media:F(e.media),subAnnouncements:(e.subAnnouncements||[]).map(a=>({headline:String(a.headline||""),summary:String(a.summary||""),bullets:Array.isArray(a.bullets)?[...a.bullets]:[],media:F(a.media)})),docsUrl:String(e.docsUrl||"")}))}function pe(t){const e=new Date(`${t}T00:00:00`);if(Number.isNaN(e.getTime()))return"";const a=e.getDate(),h=a%10===1&&a!==11?"st":a%10===2&&a!==12?"nd":a%10===3&&a!==13?"rd":"th";return`${e.toLocaleString("en-US",{month:"long"})} ${a}${h}, ${e.getFullYear()}`}function be(t){return String(t||"").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")}function Y(t){return Array.isArray(t)?t.every(e=>typeof e?.name=="string"&&Array.isArray(e?.tags)&&e.tags.every(a=>typeof a=="string"))?t:null:t&&typeof t=="object"&&Object.values(t).every(e=>Array.isArray(e)&&e.every(a=>typeof a=="string"))?Object.entries(t).map(([e,a])=>({name:e,tags:a})):null}function _(t){const e=new Set;return t.find(a=>e.has(a)?!0:(e.add(a),!1))}function H(t,e,a){Object.defineProperty(t,e,{value:a,enumerable:!1,configurable:!0,writable:!0})}const he={name:"ContentAdminView",components:{Button:ee,Checkbox:te,Icon:ne,Input:se,PanelNav:le},data(){return{UserStore:A,activeTab:"starterTemplates",tabs:ae,loading:!0,publishing:!1,usingDefaults:!1,loadError:"",validationError:"",publishedSnapshot:"",remixPreviews:{},contentKeys:{starterTemplates:[],communityFeatured:[],communityDashboard:[],examplePrompts:[],inspirationDashboard:[]},content:{starterTemplates:{remixIds:[],thumbnailOverrides:{}},community:{featuredRemixIds:[],dashboardRemixIds:[],sections:[],thumbnailOverrides:{}},examplePrompts:{items:[]},inspiration:{categories:[],items:[],dashboardItemIds:[]},whatsNew:{entries:[]}}}},computed:{hasChanges(){return this.usingDefaults||!!this.publishedSnapshot&&JSON.stringify(this.content)!==this.publishedSnapshot}},async mounted(){if(!(await A.fetchPublishCapabilities())?.isAdmin){this.$router.replace("/dashboard");return}await this.loadContent()},methods:{async loadContent(){this.loading=!0,this.loadError="";try{const t=await fetch("/inspiration.json");if(!t.ok)throw new Error(`Unable to load inspiration defaults (${t.status})`);const e=await t.json(),a=Y(e.categories);if(!a||!Array.isArray(e.items))throw new Error("The inspiration fallback is invalid.");const h={starterTemplates:{remixIds:[...$],thumbnailOverrides:{}},community:{featuredRemixIds:[...Q],dashboardRemixIds:[...G],sections:O(Z),thumbnailOverrides:{}},examplePrompts:{items:[...X]},inspiration:{categories:a,items:O(e.items),dashboardItemIds:[...J]},whatsNew:{entries:O(ie)}},l=Object.keys(h),s=await Promise.all(l.map(r=>T.getSiteContent(r).catch(w=>(console.warn(`Unable to load ${r} content, using defaults:`,w),null)))),m=Object.fromEntries(l.map((r,w)=>[r,s[w]?.exists()?s[w].data():null])),g=Y(m.inspiration?.categories),f={starterTemplates:S(m.starterTemplates?.remixIds),community:S(m.community?.featuredRemixIds)&&S(m.community?.dashboardRemixIds)&&me(m.community?.sections),examplePrompts:S(m.examplePrompts?.items),inspiration:!!g&&de(m.inspiration?.items)&&S(m.inspiration?.dashboardItemIds),whatsNew:ce(m.whatsNew?.entries)};this.usingDefaults=l.some(r=>!f[r]),this.content={starterTemplates:{remixIds:f.starterTemplates?[...m.starterTemplates.remixIds]:h.starterTemplates.remixIds,thumbnailOverrides:E(m.starterTemplates?.thumbnailOverrides)},community:{featuredRemixIds:f.community?[...m.community.featuredRemixIds]:h.community.featuredRemixIds,dashboardRemixIds:f.community?[...m.community.dashboardRemixIds]:h.community.dashboardRemixIds,sections:f.community?O(m.community.sections):h.community.sections,thumbnailOverrides:E(m.community?.thumbnailOverrides)},examplePrompts:{items:f.examplePrompts?[...m.examplePrompts.items]:h.examplePrompts.items},inspiration:{categories:f.inspiration?g:h.inspiration.categories,items:f.inspiration?O(m.inspiration.items):h.inspiration.items,dashboardItemIds:f.inspiration?[...m.inspiration.dashboardItemIds]:h.inspiration.dashboardItemIds}
1,whatsNew:{entries:z(f.whatsNew?m.whatsNew.entries:h.whatsNew.entries)}},this.publishedSnapshot=JSON.stringify(this.content),this.resetRowKeys(),await this.loadContentPreviews()}catch(t){console.error("Unable to load content admin:",t),this.loadError=t.message||"Unable to load content."}finally{this.loading=!1}},resetRowKeys(){this.contentKeys={starterTemplates:this.content.starterTemplates.remixIds.map(()=>x("starter")),communityFeatured:this.content.community.featuredRemixIds.map(()=>x("featured")),communityDashboard:this.content.community.dashboardRemixIds.map(()=>x("dashboardRemix")),examplePrompts:this.content.examplePrompts.items.map(()=>x("prompt")),inspirationDashboard:this.content.inspiration.dashboardItemIds.map(()=>x("dashboardInspiration"))},this.content.community.sections.forEach(t=>{this.getObjectKey(t,"section"),this.getSectionRemixKeys(t)}),this.content.inspiration.categories.forEach(t=>this.getObjectKey(t,"category")),this.content.inspiration.items.forEach(t=>this.getObjectKey(t,"inspirationItem")),this.content.whatsNew.entries.forEach(t=>{this.getObjectKey(t,"whatsNew"),(t.subAnnouncements||[]).forEach(e=>this.getObjectKey(e,"whatsNewSub"))})},getRowKey(t,e,a="row"){return t[e]||t.splice(e,1,x(a)),t[e]},getObjectKey(t,e){return t.__adminRowKey||H(t,"__adminRowKey",x(e)),t.__adminRowKey},getSectionRemixKeys(t){for(Array.isArray(t.__adminRemixRowKeys)||H(t,"__adminRemixRowKeys",(t.remixIds||[]).map(()=>x("sectionRemix")));t.__adminRemixRowKeys.length<(t.remixIds||[]).length;)t.__adminRemixRowKeys.push(x("sectionRemix"));return t.__adminRemixRowKeys.length>(t.remixIds||[]).length&&(t.__adminRemixRowKeys.length=t.remixIds.length),t.__adminRemixRowKeys},async loadContentPreviews(){const t=[...new Set([...this.content.starterTemplates.remixIds,...this.content.community.featuredRemixIds,...this.content.community.dashboardRemixIds,...this.content.community.sections.flatMap(e=>e.remixIds||[]),...this.content.inspiration.items.map(e=>e.remixId)])].filter(Boolean);if(!t.length){this.remixPreviews={};return}try{const e=await T.getRemixesByIds(t);this.remixPreviews=Object.fromEntries(e.map(a=>[a.id,a]))}catch(e){console.warn("Unable to load content previews:",e)}},async loadRemixPreview(t){const e=String(t||"").trim();if(!(!e||this.remixPreviews[e]))try{const a=await T.getRemix(e);a.exists()&&(this.remixPreviews={...this.remixPreviews,[e]:{...a.data(),id:a.id}})}catch(a){console.warn(`Unable to load remix preview ${e}:`,a)}},addString(t,e=null){t.push(""),e&&e.push(x("string"))},addStringAtTop(t,e=null){t.unshift(""),e&&e.unshift(x("string"))},removeItem(t,e,a=null){t.splice(e,1),a&&a.splice(e,1)},moveItem(t,e,a,h=null){const l=e+a;if(l<0||l>=t.length)return;const[s]=t.splice(e,1);if(t.splice(l,0,s),h){const[m]=h.splice(e,1);h.splice(l,0,m)}},addCommunitySection(){const t={id:"",title:"",rows:1,showCreator:!0,remixIds:[]};this.getObjectKey(t,"section"),this.getSectionRemixKeys(t),this.content.community.sections.push(t)},addInspirationCategory(){const t={name:"",tags:[]};this.getObjectKey(t,"category"),this.content.inspiration.categories.push(t)},addInspirationItem(){const t={id:"",description:"",tags:[],media:{type:"video",src:""},remixId:""};this.getObjectKey(t,"inspirationItem"),this.content.inspiration.items.unshift(t)},addWhatsNewEntry(){const t=new Date,e=[t.getFullYear(),String(t.getMonth()+1).padStart(2,"0"),String(t.getDate()).padStart(2,"0")].join("-"),a=pe(e),h={id:be(a),date:e,dateLabel:a,tag:"",headline:"",summary:"",bullets:[],media:B(),subAnnouncements:[],docsUrl:""};this.getObjectKey(h,"whatsNew"),this.content.whatsNew.entries.unshift(h)},addWhatsNewSubAnnouncement(t){Array.isArray(t.subAnnouncements)||(t.subAnnouncements=[]);const e={headline:"",summary:"",bullets:[],media:B()};this.getObjectKey(e,"whatsNewSub"),t.subAnnouncements.push(e)},setLineList(t,e,a){t[e]=String(a||"").split(` 2`).map(h=>h.trim()).filter(Boolean)},async uploadWhatsNewMedia(t,e){const a=e.target.files?.[0];if(e.target.value="",!a)return;const h=a.type.startsWith("image/"),l=a.type.startsWith("video/");if(!h&&!l){U.add({message:"Upload an image or video file.",type:"error",duration:4e3});return}try{const s=a.name.split(".").pop()||(l?"mp4":"png"),m=`${A.id}/content-whats-new/${Date.now()}.${s}`,g=T.storageRef(m);await M(g,a,{contentType:a.type}),t.media={type:l?"video":"image",src:await L(g),title:String(t.media?.title||"").trim()||a.name.replace(/\.[^.]+$/,"")},U.add({message:"Media uploaded. Publish to make it live.",type:"success",duration:3e3})}catch(s){console.error("Unable to upload What's New media:",s),U.add({message:"Unable to upload media.",type:"error",duration:5e3})}},setCommaList(t,e,a){t[e]=a.split(",").map(h=>
2h.trim()).filter(Boolean)},getThumbnailOverrides(t){return this.content[t]?.thumbnailOverrides||{}},getRemixPreviewThumbnail(t,e){const a=String(e||"").trim();return this.getThumbnailOverrides(t)[a]||this.remixPreviews[a]?.thumbnail||""},hasThumbnailOverride(t,e){return!!this.getThumbnailOverrides(t)[String(e||"").trim()]},setThumbnailOverride(t,e,a){const h=String(e||"").trim();!h||!this.content[t]||(this.content[t].thumbnailOverrides={...this.content[t].thumbnailOverrides||{},[h]:a})},clearThumbnailOverride(t,e){const a=String(e||"").trim();if(!a||!this.content[t]?.thumbnailOverrides)return;const h={...this.content[t].thumbnailOverrides};delete h[a],this.content[t].thumbnailOverrides=h},async uploadThumbnailOverride(t,e,a){const h=a.target.files?.[0];a.target.value="";const l=String(e||"").trim();if(h){if(!l){U.add({message:"Enter a remix ID before uploading a thumbnail.",type:"error",duration:4e3});return}if(!h.type.startsWith("image/")){U.add({message:"Upload an image file for the thumbnail.",type:"error",duration:4e3});return}try{const s=h.name.split(".").pop()||"png",m=l.replace(/[^a-zA-Z0-9_-]/g,""),g=`${A.id}/content-thumbnails/${t}-${m}-${Date.now()}.${s}`,f=T.storageRef(g);await M(f,h,{contentType:h.type});const r=await L(f);this.setThumbnailOverride(t,l,r),U.add({message:"Thumbnail uploaded. Publish to make it live.",type:"success",duration:3e3})}catch(s){console.error("Unable to upload thumbnail override:",s),U.add({message:"Unable to upload thumbnail.",type:"error",duration:5e3})}}},sanitizeContent(){const t=O(this.content),e=s=>s.map(m=>String(m||"").trim()),a=(s,m)=>{const g=new Set(m);return Object.fromEntries(Object.entries(E(s)).filter(([f])=>g.has(f)))};t.starterTemplates.remixIds=e(t.starterTemplates.remixIds),t.starterTemplates.thumbnailOverrides=a(t.starterTemplates.thumbnailOverrides,t.starterTemplates.remixIds),t.community.featuredRemixIds=e(t.community.featuredRemixIds),t.community.dashboardRemixIds=e(t.community.dashboardRemixIds),t.community.sections=t.community.sections.map(s=>({...s,id:String(s.id||"").trim(),title:String(s.title||"").trim(),byline:String(s.byline||"").trim(),link:String(s.link||"").trim(),icon:String(s.icon||"").trim(),rows:Math.max(1,Number(s.rows)||1),showCreator:s.showCreator!==!1,remixIds:e(s.remixIds||[])})),t.community.thumbnailOverrides=a(t.community.thumbnailOverrides,[...t.community.featuredRemixIds,...t.community.dashboardRemixIds,...t.community.sections.flatMap(s=>s.remixIds)]),t.examplePrompts.items=e(t.examplePrompts.items),t.inspiration.dashboardItemIds=e(t.inspiration.dashboardItemIds),t.inspiration.categories=t.inspiration.categories.map(s=>({name:String(s.name||"").trim(),tags:e(s.tags||[])})),t.inspiration.items=t.inspiration.items.map(s=>{const m={...s,id:String(s.id||"").trim(),remixId:String(s.remixId||"").trim(),tags:e(s.tags||[]),media:{...s.media||{},type:String(s.media?.type||"").trim(),src:String(s.media?.src||"").trim(),poster:String(s.media?.poster||"").trim()}};return["description","tutorialUrl","credit","credit_color","credit_nonlink"].forEach(g=>{m[g]=String(s[g]||"").trim()}),m});const h=s=>{const m=String(s?.type||"").trim(),g=String(s?.src||"").trim(),f=String(s?.title||"").trim();return!m&&!g?null:f?{type:m,src:g,title:f}:{type:m,src:g}},l=s=>{const m=e(s.bullets||[]).filter(Boolean),g={headline:String(s.headline||"").trim(),summary:String(s.summary||"").trim()};m.length&&(g.bullets=m);const f=h(s.media);return f&&(g.media=f),g};return t.whatsNew.entries=t.whatsNew.entries.map(s=>{const m=e(s.bullets||[]).filter(Boolean),g=(s.subAnnouncements||[]).map(l).filter(u=>u.headline||u.summary),f={id:String(s.id||"").trim(),date:String(s.date||"").trim(),dateLabel:String(s.dateLabel||"").trim(),headline:String(s.headline||"").trim(),summary:String(s.summary||"").trim()},r=String(s.tag||"").trim(),w=String(s.docsUrl||"").trim();r&&(f.tag=r),m.length&&(f.bullets=m);const i=h(s.media);return i&&(f.media=i),g.length&&(f.subAnnouncements=g),w&&(f.docsUrl=w),f}),t},validateContent(t){const e=(r,w)=>{if(!S(r)||!r.length||r.some(u=>!u))return`${w} must contain at least one non-empty value.`;const i=_(r);return i?`${w} contains duplicate value "${i}".`:""};let a=e(t.starterTemplates.remixIds,"Starter templates");if(a||(a=e(t.community.featuredRemixIds,"Featured community remixes"),a)||(a=e(t.community.dashboardRemixIds,"Dashboard community remixes"),a)||(a=e(t.examplePrompts.items,"Example prompts"),a)||(a=e(t.inspiration.dashboardItemIds,"Dashboard inspiration items"),a))return a;
2if(!t.community.sections.length)return"Community must contain at least one section.";const h=t.community.sections.map(r=>r.id);if(h.some(r=>!r)||_(h))return"Community section IDs must be non-empty and unique.";for(const r of t.community.sections){if(!r.title)return`Community section "${r.id}" needs a title.`;if(a=e(r.remixIds,`Community section "${r.title}"`),a)return a}if(!t.inspiration.categories.length)return"Inspiration must contain at least one category.";const l=t.inspiration.categories.map(r=>r.name);if(l.some(r=>!r)||_(l))return"Inspiration category names must be non-empty and unique.";for(const r of t.inspiration.categories)if(a=e(r.tags,`Inspiration category "${r.name}" tags`),a)return a;if(!t.inspiration.items.length)return"Inspiration must contain at least one item.";const s=t.inspiration.items.map(r=>r.id);if(s.some(r=>!r)||_(s))return"Inspiration item IDs must be non-empty and unique.";for(const r of t.inspiration.items){if(!r.remixId||!r.media.type||!r.media.src)return`Inspiration item "${r.id}" needs a remix ID, media type, and media URL.`;if(a=e(r.tags,`Inspiration item "${r.id}" tags`),a)return a}const m=new Set(t.inspiration.items.flatMap(r=>[r.id,r.remixId])),g=t.inspiration.dashboardItemIds.find(r=>!m.has(r));if(g)return`Dashboard inspiration item "${g}" is not in the inspiration catalog.`;if(!t.whatsNew.entries.length)return"What's New must contain at least one announcement.";const f=t.whatsNew.entries.map(r=>r.id);if(f.some(r=>!r)||_(f))return"What's New IDs must be non-empty and unique.";for(const r of t.whatsNew.entries){if(!r.headline)return`What's New entry "${r.id}" needs a headline.`;if(!r.dateLabel)return`What's New entry "${r.id}" needs a date label.`;if(!re.test(r.date))return`What's New entry "${r.id}" needs a date in YYYY-MM-DD format.`;if(r.media&&(!j.has(r.media.type)||!r.media.src))return`What's New entry "${r.id}" needs a media type and URL.`;for(const w of r.subAnnouncements||[]){if(!w.headline)return`What's New entry "${r.id}" has a sub-announcement without a headline.`;if(w.media&&(!j.has(w.media.type)||!w.media.src))return`What's New sub-announcement "${w.headline}" needs a media type and URL.`}}return""},getReferencedRemixIds(t){return[...t.starterTemplates.remixIds,...t.community.featuredRemixIds,...t.community.dashboardRemixIds,...t.community.sections.flatMap(e=>e.remixIds),...t.inspiration.items.map(e=>e.remixId)]},async validateRemixReferences(t){const e=[...new Set(this.getReferencedRemixIds(t))],a=await T.getRemixesByIds(e),h=new Set(a.map(s=>s.id)),l=e.filter(s=>!h.has(s));if(l.length){const s=l.slice(0,8).join(", ");throw new Error(`Missing remix documents: ${s}${l.length>8?` and ${l.length-8} more`:""}.`)}},async publishContent(){this.validationError="";const t=this.sanitizeContent(),e=this.validateContent(t);if(e){this.validationError=e,U.add({message:e,type:"error",duration:6e3});return}this.publishing=!0;try{await this.validateRemixReferences(t),await T.publishSiteContent(t),t.whatsNew.entries=z(t.whatsNew.entries),this.content=t,this.resetRowKeys(),this.publishedSnapshot=JSON.stringify(t),this.usingDefaults=!1,await this.loadContentPreviews(),U.add({message:"Site content published.",type:"success",duration:3e3})}catch(a){console.error("Unable to publish site content:",a),this.validationError=a.message||"Unable to publish site content.",U.add({message:this.validationError,type:"error",duration:7e3})}finally{this.publishing=!1}}}},ye={class:"content-admin-view"},fe={class:"flex align-center justify-between"},ge={key:0,class:"font-secondary-color mt-3"},ve={key:1,class:"content-admin-error mt-3"},we={key:2,class:"content-admin-error mt-3"},Ie={key:3,class:"flex justify-center mt-6"},Ce={key:0,class:"content-admin-section"},Ve={class:"flex align-center justify-between mb-3"},Re={class:"content-admin-list"},xe={class:"content-admin-index"},ke=["src","alt"],Ue={key:1,class:"content-admin-preview content-admin-preview--empty"},Se={class:"flex-1"},Te={key:0,class:"small-text font-secondary-color mt-1 mb-0"},Oe={class:"content-admin-actions"},Ne={class:"content-admin-upload-button"},_e=["onChange"],Ae={key:1,class:"content-admin-section"},De={class:"mb-5"},Pe={class:"flex align-center justify-between mb-2"},Ke={class:"content-admin-list"},Ee={class:"content-admin-index"},je=["src","alt"],Me={key:1,class:"content-admin-preview content-admin-preview--empty"},Le={class:"content-admin-actions"},We={class:"content-admin-upload-button"},Be=["onChange"],Fe={class:"mb-5"},ze={class:"flex align-center justify-between mb-2"},Ye={class:"content-admin-list"},He={class:"content-admin-index"},qe=["src","alt"],Je={key:1,class:"content-admin-preview content-admin-preview--empty"},Xe={class:"content-admin-actions"},Ze={class:"content-admin-upload-button"},Ge=["onChange"],Qe={class:"flex align-center justify-between mb-2"},$e={class:"content-admin-list"},et={class:"font-secondary-color"},tt={class:"content-admin-fields mt-3"},nt={class:"flex align-center justify-between mt-4 mb-2"},st={class:"content-admin-list"},lt={class:"content-admin-index"},it=["src","alt"],ot={key:1,class:"content-admin-preview content-admin-preview--empty"},at={class:"content-admin-actions"},rt={class:"content-admin-upload-button"},mt=["onChange"],dt={class:"content-admin-card-actions mt-3"},ut={key:2,class:"content-admin-section"},ct={class:"flex align-center justify-between mb-3"},pt={class:"content-admin-list"},bt={class:"content-admin-index"},ht={class:"content-admin-actions"},yt={key:3,class:"content-admin-section"},ft={class:"mb-5"},gt={class:"flex align-center justify-between mb-2"},vt={class:"content-admin-list"},wt={class:"content-admin-index"},It={class:"content-admin-actions"},Ct={class:"mb-5"},Vt={class:"flex align-center justify-between mb-2"},Rt={class:"content-admin-list"},xt={class:"content-admin-index"},kt={class:"content-admin-actions"},Ut={class:"flex align-center justify-between mb-2"},St={class:"content-admin-list"},Tt={class:"font-secondary-color"},Ot={key:0,class:"font-secondary-color"},Nt={class:"content-admin-fields mt-3"},_t={class:"content-admin-field--wide"},At=["onUpdate:modelValue"],Dt={class:"content-admin-field--wide"},Pt={class:"content-admin-card-actions mt-3"},Kt={key:4,class:"content-admin-section"},Et={class:"flex align-center justify-between mb-3"},jt={class:"content-admin-list"},Mt={class:"font-secondary-color"},Lt={class:"content-admin-fields mt-3"},Wt={class:"content-admin-field--wide"},Bt={class:"content-admin-field--wide"},Ft={class:"content-admin-field--wide"},zt=["onUpdate:modelValue"],Yt={class:"content-admin-card-actions mt-3"},Ht={class:"content-admin-upload-button"},qt=["onChange"],Jt={class:"flex align-center justify-between mt-4 mb-2"},Xt={class:"content-admin-list"},Zt={class:"content-admin-fields mt-3"},Gt={class:"content-admin-field--wide"},Qt={class:"content-admin-field--wide"},$t={class:"content-admin-field--wide"},en=["onUpdate:modelValue"],tn={class:"content-admin-card-actions mt-3"},nn={class:"content-admin-upload-button"}
2,sn=["onChange"];function ln(t,e,a,h,l,s){const m=N("Button"),g=N("PanelNav"),f=N("Icon"),r=N("Input"),w=N("Checkbox");return b(),y("div",ye,[n("div",fe,[e[7]||(e[7]=n("div",null,[n("h1",{class:"h2 mt-0 mb-1"},"Content admin"),n("p",{class:"font-secondary-color my-0"},"Changes stay local until you publish.")],-1)),d(m,{class:"primary",loading:l.publishing,disabled:l.loading||l.publishing||!s.hasChanges,onClick:s.publishContent},{default:p(()=>[...e[6]||(e[6]=[c(" Publish changes ",-1)])]),_:1},8,["loading","disabled","onClick"])]),l.usingDefaults&&!l.loading?(b(),y("p",ge," One or more sections are using shipped defaults. Publishing will seed all managed content. ")):k("",!0),l.loadError?(b(),y("p",ve,I(l.loadError),1)):k("",!0),l.validationError?(b(),y("p",we,I(l.validationError),1)):k("",!0),d(g,{modelValue:l.activeTab,"onUpdate:modelValue":e[0]||(e[0]=i=>l.activeTab=i),options:l.tabs,class:"mt-4"},null,8,["modelValue","options"]),l.loading?(b(),y("div",Ie,[d(f,{icon:"spinner",size:"24"})])):(b(),y(V,{key:4},[l.activeTab==="starterTemplates"?(b(),y("section",Ce,[n("div",Ve,[e[9]||(e[9]=n("div",null,[n("h2",{class:"h3 my-0"},"Starter templates"),n("p",{class:"font-secondary-color mt-1 mb-0"},"Ordered remix IDs shown on the dashboard.")],-1)),d(m,{class:"secondary small",icon:"plus",onClick:e[1]||(e[1]=i=>s.addStringAtTop(l.content.starterTemplates.remixIds,l.contentKeys.starterTemplates))},{default:p(()=>[...e[8]||(e[8]=[c(" Add template ",-1)])]),_:1})]),n("div",Re,[(b(!0),y(V,null,R(l.content.starterTemplates.remixIds,(i,u)=>(b(),y("div",{key:s.getRowKey(l.contentKeys.starterTemplates,u,"starter"),class:"content-admin-row"},[n("span",xe,I(u+1),1),s.getRemixPreviewThumbnail("starterTemplates",i)?(b(),y("img",{key:0,class:"content-admin-preview",src:s.getRemixPreviewThumbnail("starterTemplates",i),alt:l.remixPreviews[i]?.name||i},null,8,ke)):(b(),y("div",Ue)),n("div",Se,[d(r,{modelValue:l.content.starterTemplates.remixIds[u],"onUpdate:modelValue":o=>l.content.starterTemplates.remixIds[u]=o,placeholder:"Remix ID",onChange:o=>s.loadRemixPreview(l.content.starterTemplates.remixIds[u])},null,8,["modelValue","onUpdate:modelValue","onChange"]),l.remixPreviews[i]?(b(),y("p",Te,I(l.remixPreviews[i].name||"Untitled design"),1)):k("",!0)]),n("div",Oe,[n("label",Ne,[e[10]||(e[10]=c(" Upload thumbnail ",-1)),n("input",{type:"file",accept:"image/*",onChange:o=>s.uploadThumbnailOverride("starterTemplates",i,o)},null,40,_e)]),s.hasThumbnailOverride("starterTemplates",i)?(b(),D(m,{key:0,class:"subtle small",onClick:o=>s.clearThumbnailOverride("starterTemplates",i)},{default:p(()=>[...e[11]||(e[11]=[c(" Clear thumbnail ",-1)])]),_:1},8,["onClick"])):k("",!0),d(m,{class:"subtle small",disabled:u===0,onClick:o=>s.moveItem(l.content.starterTemplates.remixIds,u,-1,l.contentKeys.starterTemplates)},{default:p(()=>[...e[12]||(e[12]=[c(" Up ",-1)])]),_:1},8,["disabled","onClick"]),d(m,{class:"subtle small",disabled:u===l.content.starterTemplates.remixIds.length-1,onClick:o=>s.moveItem(l.content.starterTemplates.remixIds,u,1,l.contentKeys.starterTemplates)},{default:p(()=>[...e[13]||(e[13]=[c(" Down ",-1)])]),_:1},8,["disabled","onClick"]),d(m,{class:"subtle small",onClick:o=>s.removeItem(l.content.starterTemplates.remixIds,u,l.contentKeys.starterTemplates)},{default:p(()=>[...e[14]||(e[14]=[c(" Remove ",-1)])]),_:1},8,["onClick"])])]))),128))])])):l.activeTab==="community"?(b(),y("section",Ae,[n("div",De,[n("div",Pe,[e[16]||(e[16]=n("div",null,[n("h2",{class:"h3 my-0"},"Latest featured"),n("p",{class:"font-secondary-color mt-1 mb-0"},"Ordered IDs in the main community section.")],-1)),d(m,{class:"secondary small",icon:"plus",onClick:e[2]||(e[2]=i=>s.addStringAtTop(l.content.community.featuredRemixIds,l.contentKeys.communityFeatured))},{default:p(()=>[...e[15]||(e[15]=[c(" Add remix ",-1)])]),_:1})]),n("div",Ke,[(b(!0),y(V,null,R(l.content.community.featuredRemixIds,(i,u)=>(b(),y("div",{key:s.getRowKey(l.contentKeys.communityFeatured,u,"featured"),class:"content-admin-row"},[n("span",Ee,I(u+1),1),s.getRemixPreviewThumbnail("community",i)?(b(),y("img",{key:0,class:"content-admin-preview",src:s.getRemixPreviewThumbnail("community",i),alt:l.remixPreviews[i]?.name||i},null,8,je)):(b(),y("div",Me)),d(r,{modelValue:l.content.community.featuredRemixIds[u],"onUpdate:modelValue":o=>l.content.community.featuredRemixIds[u]=o,class:"flex-1",placeholder:"Remix ID",onChange:o=>s.loadRemixPreview(l.content.community.featuredRemixIds[u])},null,8,["modelValue","onUpdate:modelValue","onChange"]),n("div",Le,[n("label",We,[e[17]||(e[17]=c(" Upload thumbnail ",-1)),n("input",{type:"file",accept:"image/*",onChange:o=>s.uploadThumbnailOverride("community",i,o)},null,40,Be)]),s.hasThumbnailOverride("community",i)?(b(),D(m,{key:0,class:"subtle small",onClick:o=>
2s.clearThumbnailOverride("community",i)},{default:p(()=>[...e[18]||(e[18]=[c("Clear thumbnail",-1)])]),_:1},8,["onClick"])):k("",!0),d(m,{class:"subtle small",disabled:u===0,onClick:o=>s.moveItem(l.content.community.featuredRemixIds,u,-1,l.contentKeys.communityFeatured)},{default:p(()=>[...e[19]||(e[19]=[c("Up",-1)])]),_:1},8,["disabled","onClick"]),d(m,{class:"subtle small",disabled:u===l.content.community.featuredRemixIds.length-1,onClick:o=>s.moveItem(l.content.community.featuredRemixIds,u,1,l.contentKeys.communityFeatured)},{default:p(()=>[...e[20]||(e[20]=[c("Down",-1)])]),_:1},8,["disabled","onClick"]),d(m,{class:"subtle small",onClick:o=>s.removeItem(l.content.community.featuredRemixIds,u,l.contentKeys.communityFeatured)},{default:p(()=>[...e[21]||(e[21]=[c("Remove",-1)])]),_:1},8,["onClick"])])]))),128))])]),n("div",Fe,[n("div",ze,[e[23]||(e[23]=n("div",null,[n("h2",{class:"h3 my-0"},"Dashboard community"),n("p",{class:"font-secondary-color mt-1 mb-0"},"Curated remixes shown on the dashboard, up to two rows.")],-1)),d(m,{class:"secondary small",icon:"plus",onClick:e[3]||(e[3]=i=>s.addStringAtTop(l.content.community.dashboardRemixIds,l.contentKeys.communityDashboard))},{default:p(()=>[...e[22]||(e[22]=[c(" Add remix ",-1)])]),_:1})]),n("div",Ye,[(b(!0),y(V,null,R(l.content.community.dashboardRemixIds,(i,u)=>(b(),y("div",{key:s.getRowKey(l.contentKeys.communityDashboard,u,"dashboardRemix"),class:"content-admin-row"},[n("span",He,I(u+1),1),s.getRemixPreviewThumbnail("community",i)?(b(),y("img",{key:0,class:"content-admin-preview",src:s.getRemixPreviewThumbnail("community",i),alt:l.remixPreviews[i]?.name||i},null,8,qe)):(b(),y("div",Je)),d(r,{modelValue:l.content.community.dashboardRemixIds[u],"onUpdate:modelValue":o=>l.content.community.dashboardRemixIds[u]=o,class:"flex-1",placeholder:"Remix ID",onChange:o=>s.loadRemixPreview(l.content.community.dashboardRemixIds[u])},null,8,["modelValue","onUpdate:modelValue","onChange"]),n("div",Xe,[n("label",Ze,[e[24]||(e[24]=c(" Upload thumbnail ",-1)),n("input",{type:"file",accept:"image/*",onChange:o=>s.uploadThumbnailOverride("community",i,o)},null,40,Ge)]),s.hasThumbnailOverride("community",i)?(b(),D(m,{key:0,class:"subtle small",onClick:o=>s.clearThumbnailOverride("community",i)},{default:p(()=>[...e[25]||(e[25]=[c("Clear thumbnail",-1)])]),_:1},8,["onClick"])):k("",!0),d(m,{class:"subtle small",disabled:u===0,onClick:o=>s.moveItem(l.content.community.dashboardRemixIds,u,-1,l.contentKeys.communityDashboard)},{default:p(()=>[...e[26]||(e[26]=[c("Up",-1)])]),_:1},8,["disabled","onClick"]),d(m,{class:"subtle small",disabled:u===l.content.community.dashboardRemixIds.length-1,onClick:o=>s.moveItem(l.content.community.dashboardRemixIds,u,1,l.contentKeys.communityDashboard)},{default:p(()=>[...e[27]||(e[27]=[c("Down",-1)])]),_:1},8,["disabled","onClick"]),d(m,{class:"subtle small",onClick:o=>s.removeItem(l.content.community.dashboardRemixIds,u,l.contentKeys.communityDashboard)},{default:p(()=>[...e[28]||(e[28]=[c("Remove",-1)])]),_:1},8,["onClick"])])]))),128))])]),n("div",null,[n("div",Qe,[e[30]||(e[30]=n("div",null,[n("h2",{class:"h3 my-0"},"Category sections"),n("p",{class:"font-secondary-color mt-1 mb-0"},"Ordered community rows and their presentation metadata.")],-1)),d(m,{class:"secondary small",icon:"plus",onClick:s.addCommunitySection},{default:p(()=>[...e[29]||(e[29]=[c("Add section",-1)])]),_:1},8,["onClick"])]),n("div",$e,[(b(!0),y(V,null,R(l.content.community.sections,(i,u)=>(b(),y("details",{key:s.getObjectKey(i,"section"),class:"content-admin-card"},[n("summary",null,[c(I(i.title||"Untitled section")+" ",1),n("span",et,"("+I(i.remixIds?.length||0)+")",1)]),n("div",tt,[n("label",null,[e[31]||(e[31]=n("span",null,"Section ID",-1)),d(r,{modelValue:i.id,"onUpdate:modelValue":o=>i.id=o,placeholder:"gradient-backgrounds"},null,8,["modelValue","onUpdate:modelValue"])]),n("label",null,[e[32]||(e[32]=n("span",null,"Title",-1)),d(r,{modelValue:i.title,"onUpdate:modelValue":o=>i.title=o,placeholder:"Gradient backgrounds"},null,8,["modelValue","onUpdate:modelValue"])]),n("label",null,[e[33]||(e[33]=n("span",null,"Byline",-1)),d(r,{modelValue:i.byline,"onUpdate:modelValue":o=>i.byline=o,placeholder:"Optional"},null,8,["modelValue","onUpdate:modelValue"])]),n("label",null,[e[34]||(e[34]=n("span",null,"Link",-1)),d(r,{modelValue:i.link,"onUpdate:modelValue":o=>i.link=o,placeholder:"Optional URL"},null,8,["modelValue","onUpdate:modelValue"])]),n("label",null,[e[35]||(e[35]=n("span",null,"Icon",-1)),d(r,{modelValue:i.icon,"onUpdate:modelValue":o=>i.icon=o,placeholder:"Optional URL"},null,8,["modelValue","onUpdate:modelValue"])]),n("label",null,[e[36]||(e[36]=n("span",null,"Rows",-1)),d(r,{modelValue:i.rows,"onUpdate:modelValue":o=>i.rows=o,type:"number",min:"1"},null,8,["modelValue","onUpdate:modelValue"])]),d(w,{value:i.showCreator!==!1,onChange:o=>i.showCreator=o},{default:p(()=>
2[...e[37]||(e[37]=[c(" Show creator ",-1)])]),_:1},8,["value","onChange"])]),n("div",nt,[e[39]||(e[39]=n("h3",{class:"h4 my-0"},"Remix IDs",-1)),d(m,{class:"secondary small",icon:"plus",onClick:o=>s.addStringAtTop(i.remixIds,s.getSectionRemixKeys(i))},{default:p(()=>[...e[38]||(e[38]=[c("Add remix",-1)])]),_:1},8,["onClick"])]),n("div",st,[(b(!0),y(V,null,R(i.remixIds,(o,C)=>(b(),y("div",{key:s.getRowKey(s.getSectionRemixKeys(i),C,"sectionRemix"),class:"content-admin-row"},[n("span",lt,I(C+1),1),s.getRemixPreviewThumbnail("community",o)?(b(),y("img",{key:0,class:"content-admin-preview",src:s.getRemixPreviewThumbnail("community",o),alt:l.remixPreviews[o]?.name||o},null,8,it)):(b(),y("div",ot)),d(r,{modelValue:i.remixIds[C],"onUpdate:modelValue":v=>i.remixIds[C]=v,class:"flex-1",placeholder:"Remix ID",onChange:v=>s.loadRemixPreview(i.remixIds[C])},null,8,["modelValue","onUpdate:modelValue","onChange"]),n("div",at,[n("label",rt,[e[40]||(e[40]=c(" Upload thumbnail ",-1)),n("input",{type:"file",accept:"image/*",onChange:v=>s.uploadThumbnailOverride("community",o,v)},null,40,mt)]),s.hasThumbnailOverride("community",o)?(b(),D(m,{key:0,class:"subtle small",onClick:v=>s.clearThumbnailOverride("community",o)},{default:p(()=>[...e[41]||(e[41]=[c("Clear thumbnail",-1)])]),_:1},8,["onClick"])):k("",!0),d(m,{class:"subtle small",disabled:C===0,onClick:v=>s.moveItem(i.remixIds,C,-1,s.getSectionRemixKeys(i))},{default:p(()=>[...e[42]||(e[42]=[c("Up",-1)])]),_:1},8,["disabled","onClick"]),d(m,{class:"subtle small",disabled:C===i.remixIds.length-1,onClick:v=>s.moveItem(i.remixIds,C,1,s.getSectionRemixKeys(i))},{default:p(()=>[...e[43]||(e[43]=[c("Down",-1)])]),_:1},8,["disabled","onClick"]),d(m,{class:"subtle small",onClick:v=>s.removeItem(i.remixIds,C,s.getSectionRemixKeys(i))},{default:p(()=>[...e[44]||(e[44]=[c("Remove",-1)])]),_:1},8,["onClick"])])]))),128))]),n("div",dt,[d(m,{class:"subtle small",disabled:u===0,onClick:o=>s.moveItem(l.content.community.sections,u,-1)},{default:p(()=>[...e[45]||(e[45]=[c("Move section up",-1)])]),_:1},8,["disabled","onClick"]),d(m,{class:"subtle small",disabled:u===l.content.community.sections.length-1,onClick:o=>s.moveItem(l.content.community.sections,u,1)},{default:p(()=>[...e[46]||(e[46]=[c("Move section down",-1)])]),_:1},8,["disabled","onClick"]),d(m,{class:"subtle small",onClick:o=>s.removeItem(l.content.community.sections,u)},{default:p(()=>[...e[47]||(e[47]=[c("Remove section",-1)])]),_:1},8,["onClick"])])]))),128))])])])):l.activeTab==="examplePrompts"?(b(),y("section",ut,[n("div",ct,[e[49]||(e[49]=n("div",null,[n("h2",{class:"h3 my-0"},"Example prompts"),n("p",{class:"font-secondary-color mt-1 mb-0"},"Suggestions shown in the TopBar AI create flow.")],-1)),d(m,{class:"secondary small",icon:"plus",onClick:e[4]||(e[4]=i=>s.addString(l.content.examplePrompts.items,l.contentKeys.examplePrompts))},{default:p(()=>[...e[48]||(e[48]=[c("Add prompt",-1)])]),_:1})]),n("div",pt,[(b(!0),y(V,null,R(l.content.examplePrompts.items,(i,u)=>(b(),y("div",{key:s.getRowKey(l.contentKeys.examplePrompts,u,"prompt"),class:"content-admin-row"},[n("span",bt,I(u+1),1),d(r,{modelValue:l.content.examplePrompts.items[u],"onUpdate:modelValue":o=>l.content.examplePrompts.items[u]=o,class:"flex-1",multiline:"",rows:2},null,8,["modelValue","onUpdate:modelValue"]),n("div",ht,[d(m,{class:"subtle small",disabled:u===0,onClick:o=>s.moveItem(l.content.examplePrompts.items,u,-1,l.contentKeys.examplePrompts)},{default:p(()=>[...e[50]||(e[50]=[c("Up",-1)])]),_:1},8,["disabled","onClick"]),d(m,{class:"subtle small",disabled:u===l.content.examplePrompts.items.length-1,onClick:o=>s.moveItem(l.content.examplePrompts.items,u,1,l.contentKeys.examplePrompts)},{default:p(()=>[...e[51]||(e[51]=[c("Down",-1)])]),_:1},8,["disabled","onClick"]),d(m,{class:"subtle small",onClick:o=>s.removeItem(l.content.examplePrompts.items,u,l.contentKeys.examplePrompts)},{default:p(()=>[...e[52]||(e[52]=[c("Remove",-1)])]),_:1},8,["onClick"])])]))),128))])])):l.activeTab==="inspiration"?(b(),y("section",yt,[n("div",ft,[n("div",gt,[e[54]||(e[54]=n("div",null,[n("h2",{class:"h3 my-0"},"Dashboard inspiration"),n("p",{class:"font-secondary-color mt-1 mb-0"},"Item IDs or remix IDs shown on the dashboard, up to two rows.")],-1)),d(m,{class:"secondary small",icon:"plus",onClick:e[5]||(e[5]=i=>s.addString(l.content.inspiration.dashboardItemIds,l.contentKeys.inspirationDashboard))},{default:p(()=>[...e[53]||(e[53]=[c("Add item",-1)])]),_:1})]),n("div",vt,[(b(!0),y(V,null,R(l.content.inspiration.dashboardItemIds,(i,u)=>(b(),y("div",{key:s.getRowKey(l.contentKeys.inspirationDashboard,u,"dashboardInspiration"),class:"content-admin-row"},[n("span",wt,I(u+1),1),d(r,{modelValue:l.content.inspiration.dashboardItemIds[u],"onUpdate:modelValue":o=>l.content.inspiration.dashboardItemIds[u]=o,class:"flex-1",placeholder:"Item or remix ID"},null,8,["modelValue","onUpdate:modelValue"]),n("div",It,[d(m,{class:"subtle small",disabled:u===0,onClick:o=>s.moveItem(l.content.inspiration.dashboardItemIds,u,-1,l.contentKeys.inspirationDashboard)},{default:p(()=>[...e[55]||(e[55]=[c("Up",-1)])]),_:1},8,["disabled","onClick"]),d(m,{class:"subtle small",disabled:u===l.content.inspiration.dashboardItemIds.length-1,onClick:o=>s.moveItem(l.content.inspiration.dashboardItemIds,u,1,l.contentKeys.inspirationDashboard)},{default:p(()=>[...e[56]||(e[56]=[c("Down",-1)])]),_:1},8,["disabled","onClick"]),d(m,{class:"subtle small",onClick:o=>s.removeItem(l.content.inspiration.dashboardItemIds,u,l.contentKeys.inspirationDashboard)},{default:p(()=>[...e[57]||(e[57]=[c("Remove",-1)])]),_:1},8,["onClick"])])]))),128))])]),n("div",Ct,[n("div",Vt,[e[59]||(e[59]=n("div",null,[n("h2",{class:"h3 my-0"},"Categories"),n("p",{class:"font-secondary-color mt-1 mb-0"},"Ordered filter names and comma-separated tags.")],-1)),d(m,{class:"secondary small",icon:"plus",onClick:s.addInspirationCategory},{default:p(()=>[...e[58]||(e[58]=[c("Add category",-1)])]),_:1},8,["onClick"])]),n("div",Rt,[(b(!0),y(V,null,R(l.content.inspiration.categories,(i,u)=>(b(),y("div",{key:s.getObjectKey(i,"category"),class:"content-admin-row"},[n("span",xt,I(u+1),1),d(r,{modelValue:i.name,"onUpdate:modelValue":o=>i.name=o,placeholder:"Category name"},null,8,["modelValue","onUpdate:modelValue"]),d(r,{"model-value":i.tags.join(", "),class:"flex-1",placeholder:"tag one, tag two","onUpdate:modelValue":o=>s.setCommaList(i,"tags",o)},null,8,["model-value","onUpdate:modelValue"]),n("div",kt,[d(m,{class:"subtle small",disabled:u===0,onClick:o=>s.moveItem(l.content.inspiration.categories,u,-1)},{default:p(()=>[...e[60]||(e[60]=[c("Up",-1)])]),_:1},8,["disabled","onClick"]),d(m,{class:"subtle small",disabled:u===l.content.inspiration.categories.length-1,onClick:o=>s.moveItem(l.content.inspiration.categories,u,1)},{default:p(()=>[...e[61]||(e[61]=[c("Down",-1)])]),_:1},8,["disabled","onClick"]),d(m,{class:"subtle small",onClick:o=>s.removeItem(l.content.inspiration.categories,u)},{default:p(()=>[...e[62]||(e[62]=[c("Remove",-1)])]),_:1},8,["onClick"])])]))),128))])]),n("div",null,[n("div",Ut,[e[64]||(e[64]=n("div",null,[n("h2",{class:"h3 my-0"},"Inspiration items"),n("p",{class:"font-secondary-color mt-1 mb-0"},"Ordered catalog metadata. Media stays on the existing CDN.")],-1)),d(m,{class:"secondary small",icon:"plus",onClick:s.addInspirationItem},{default:p(()=>[...e[63]||(e[63]=[c("Add item",-1)])]),_:1},8,["onClick"])]),n("div",St,[(b(!0),y(V,null,R(l.content.inspiration.items,(i,u)=>(b(),y("details",{key:s.getObjectKey(i,"inspirationItem"),class:"content-admin-card"},[n("summary",null,[c(I(i.id||"Untitled item")+" ",1),n("span",Tt,"("+I(i.remixId||"No remix ID")+")",1),l.remixPreviews[i.remixId]?(b(),y("span",Ot," · "+I(l.remixPreviews[i.remixId].remixCount||0)+" remixes ",1)):k("",!0)]),n("div",Nt,[n("label",null,[e[65]||(e[65]=n("span",null,"Item ID",-1)),d(r,{modelValue:i.id,"onUpdate:modelValue":o=>i.id=o,placeholder:"insp-001"},null,8,["modelValue","onUpdate:modelValue"])]),n("label",null,[e[66]||(e[66]=n("span",null,"Remix ID",-1)),d(r,{modelValue:i.remixId,"onUpdate:modelValue":o=>i.remixId=o,placeholder:"Firestore remix ID",onChange:o=>s.loadRemixPreview(i.remixId)},null,8,["modelValue","onUpdate:modelValue","onChange"])]),n("label",_t,[e[67]||(e[67]=n("span",null,"Description",-1)),d(r,{modelValue:i.description,"onUpdate:modelValue":o=>i.description=o,multiline:"",rows:3,placeholder:"Describe this inspiration item"},null,8,["modelValue","onUpdate:modelValue"])]),n("label",null,[e[69]||(e[69]=n("span",null,"Media type",-1)),P(n("select",{"onUpdate:modelValue":o=>i.media.type=o,class:"input-field w-100"},[...e[68]||(e[68]=[n("option",{value:"video"},"Video",-1),n("option",{value:"image"},"Image",-1)])],8,At),[[K,i.media.type]])]),n("label",null,[e[70]||
2(e[70]=n("span",null,"Media URL",-1)),d(r,{modelValue:i.media.src,"onUpdate:modelValue":o=>i.media.src=o,placeholder:"https://â¦"},null,8,["modelValue","onUpdate:modelValue"])]),n("label",null,[e[71]||(e[71]=n("span",null,"Poster URL",-1)),d(r,{modelValue:i.media.poster,"onUpdate:modelValue":o=>i.media.poster=o,placeholder:"Optional"},null,8,["modelValue","onUpdate:modelValue"])]),n("label",null,[e[72]||(e[72]=n("span",null,"Tutorial URL",-1)),d(r,{modelValue:i.tutorialUrl,"onUpdate:modelValue":o=>i.tutorialUrl=o,placeholder:"Optional"},null,8,["modelValue","onUpdate:modelValue"])]),n("label",null,[e[73]||(e[73]=n("span",null,"Credit username",-1)),d(r,{modelValue:i.credit,"onUpdate:modelValue":o=>i.credit=o,placeholder:"Optional community username"},null,8,["modelValue","onUpdate:modelValue"])]),n("label",null,[e[74]||(e[74]=n("span",null,"Credit text",-1)),d(r,{modelValue:i.credit_nonlink,"onUpdate:modelValue":o=>i.credit_nonlink=o,placeholder:"Optional non-link credit"},null,8,["modelValue","onUpdate:modelValue"])]),n("label",null,[e[75]||(e[75]=n("span",null,"Credit color",-1)),d(r,{modelValue:i.credit_color,"onUpdate:modelValue":o=>i.credit_color=o,placeholder:"Optional CSS color"},null,8,["modelValue","onUpdate:modelValue"])]),n("label",Dt,[e[76]||(e[76]=n("span",null,"Tags",-1)),d(r,{"model-value":i.tags.join(", "),placeholder:"tag one, tag two","onUpdate:modelValue":o=>s.setCommaList(i,"tags",o)},null,8,["model-value","onUpdate:modelValue"])])]),n("div",Pt,[d(m,{class:"subtle small",disabled:u===0,onClick:o=>s.moveItem(l.content.inspiration.items,u,-1)},{default:p(()=>[...e[77]||(e[77]=[c("Move item up",-1)])]),_:1},8,["disabled","onClick"]),d(m,{class:"subtle small",disabled:u===l.content.inspiration.items.length-1,onClick:o=>s.moveItem(l.content.inspiration.items,u,1)},{default:p(()=>[...e[78]||(e[78]=[c("Move item down",-1)])]),_:1},8,["disabled","onClick"]),d(m,{class:"subtle small",onClick:o=>s.removeItem(l.content.inspiration.items,u)},{default:p(()=>[...e[79]||(e[79]=[c("Remove item",-1)])]),_:1},8,["onClick"])])]))),128))])])])):l.activeTab==="whatsNew"?(b(),y("section",Kt,[n("div",Et,[e[81]||(e[81]=n("div",null,[n("h2",{class:"h3 my-0"},"What's New"),n("p",{class:"font-secondary-color mt-1 mb-0"}," Newest first. The top announcement drives the unread badge. Changes stay local until you publish. ")],-1)),d(m,{class:"secondary small",icon:"plus",onClick:s.addWhatsNewEntry},{default:p(()=>[...e[80]||(e[80]=[c("Add announcement",-1)])]),_:1},8,["onClick"])]),n("div",jt,[(b(!0),y(V,null,R(l.content.whatsNew.entries,(i,u)=>(b(),y("details",{key:s.getObjectKey(i,"whatsNew"),class:"content-admin-card"},[n("summary",null,[c(I(i.headline||"Untitled announcement")+" ",1),n("span",Mt,"("+I(i.dateLabel||i.date||"No date")+")",1)]),n("div",Lt,[n("label",null,[e[82]||(e[82]=n("span",null,"ID",-1)),d(r,{modelValue:i.id,"onUpdate:modelValue":o=>i.id=o,placeholder:"september-16th-2026-new-effect"},null,8,["modelValue","onUpdate:modelValue"])]),n("label",null,[e[83]||(e[83]=n("span",null,"Tag",-1)),d(r,{modelValue:i.tag,"onUpdate:modelValue":o=>i.tag=o,placeholder:"New effect"},null,8,["modelValue","onUpdate:modelValue"])]),n("label",null,[e[84]||(e[84]=n("span",null,"Date",-1)),d(r,{modelValue:i.date,"onUpdate:modelValue":o=>i.date=o,type:"date"},null,8,["modelValue","onUpdate:modelValue"])]),n("label",null,[e[85]||(e[85]=n("span",null,"Date label",-1)),d(r,{modelValue:i.dateLabel,"onUpdate:modelValue":o=>i.dateLabel=o,placeholder:"September 16th, 2026"},null,8,["modelValue","onUpdate:modelValue"])]),n("label",Wt,[e[86]||(e[86]=n("span",null,"Headline",-1)),d(r,{modelValue:i.headline,"onUpdate:modelValue":o=>i.headline=o,placeholder:"New effect: Video Sequence"},null,8,["modelValue","onUpdate:modelValue"])]),n("label",Bt,[e[87]||(e[87]=n("span",null,"Summary",-1)),d(r,{modelValue:i.summary,"onUpdate:modelValue":o=>i.summary=o,multiline:"",rows:3,placeholder:"Describe this announcement"},null,8,["modelValue","onUpdate:modelValue"])]),n("label",Ft,[e[88]||(e[88]=n("span",null,"Bullets (one per line)",-1)),d(r,{"model-value":i.bullets.join(` 3`),multiline:"",rows:3,placeholder:"Optional","onUpdate:modelValue":o=>s.setLineList(i,"bullets",o)},null,8,["model-value","onUpdate:modelValue"])]),n("label",null,[e[90]||(e[90]=n("span",null,"Media type",-1)),P(n("select",{"onUpdate:modelValue":o=>i.media.type=o,class:"input-field w-100"},[...e[89]||(e[89]=[n("option",{value:""},"None",-1),n("option",{value:"image"},"Image",-1),n("option",{value:"video"},"Video",-1),n("option",{value:"embed"},"Embed",-1)])],8,zt),[[K,i.media.type]])]),n("label",null,[e[91]||(e[91]=n("span",null,"Media URL",-1)),d(r,{modelValue:i.media.src,"onUpdate:modelValue":o=>i.media.src=o,placeholder:"https://â¦"},null,8,["modelValue","onUpdate:modelValue"])]),n("label",null,[e[92]||(e[92]=n("span",null,"Media title",-1)),d(r,{modelValue:i.media.title,"onUpdate:modelValue":o=>i.media.title=o,placeholder:"Optional"},null,8,["modelValue","onUpdate:modelValue"])]),n("label",null,[e[93]||(e[93]=n("span",null,"Docs URL",-1)),d(r,{modelValue:i.docsUrl,"onUpdate:modelValue":o=>i.docsUrl=o,placeholder:"/docs/changelog/#september-16th-2026"},null,8,["modelValue","onUpdate:modelValue"])])]),n("div",Yt,[n("label",Ht,[e[94]||(e[94]=c(" Upload media ",-1)),n("input",{type:"file",accept:"image/*,video/*",onChange:o=>s.uploadWhatsNewMedia(i,o)},null,40,qt)]),d(m,{class:"subtle small",disabled:u===0,onClick:o=>
3s.moveItem(l.content.whatsNew.entries,u,-1)},{default:p(()=>[...e[95]||(e[95]=[c("Move up",-1)])]),_:1},8,["disabled","onClick"]),d(m,{class:"subtle small",disabled:u===l.content.whatsNew.entries.length-1,onClick:o=>s.moveItem(l.content.whatsNew.entries,u,1)},{default:p(()=>[...e[96]||(e[96]=[c("Move down",-1)])]),_:1},8,["disabled","onClick"]),d(m,{class:"subtle small",onClick:o=>s.removeItem(l.content.whatsNew.entries,u)},{default:p(()=>[...e[97]||(e[97]=[c("Remove",-1)])]),_:1},8,["onClick"])]),n("div",Jt,[e[99]||(e[99]=n("h3",{class:"h4 my-0"},"Sub-announcements",-1)),d(m,{class:"secondary small",icon:"plus",onClick:o=>s.addWhatsNewSubAnnouncement(i)},{default:p(()=>[...e[98]||(e[98]=[c("Add sub",-1)])]),_:1},8,["onClick"])]),n("div",Xt,[(b(!0),y(V,null,R(i.subAnnouncements,(o,C)=>(b(),y("details",{key:s.getObjectKey(o,"whatsNewSub"),class:"content-admin-card"},[n("summary",null,I(o.headline||"Untitled sub-announcement"),1),n("div",Zt,[n("label",Gt,[e[100]||(e[100]=n("span",null,"Headline",-1)),d(r,{modelValue:o.headline,"onUpdate:modelValue":v=>o.headline=v,placeholder:"New SDK version"},null,8,["modelValue","onUpdate:modelValue"])]),n("label",Qt,[e[101]||(e[101]=n("span",null,"Summary",-1)),d(r,{modelValue:o.summary,"onUpdate:modelValue":v=>o.summary=v,multiline:"",rows:2,placeholder:"Optional"},null,8,["modelValue","onUpdate:modelValue"])]),n("label",$t,[e[102]||(e[102]=n("span",null,"Bullets (one per line)",-1)),d(r,{"model-value":o.bullets.join(` 4`),multiline:"",rows:3,placeholder:"Optional","onUpdate:modelValue":v=>s.setLineList(o,"bullets",v)},null,8,["model-value","onUpdate:modelValue"])]),n("label",null,[e[104]||(e[104]=n("span",null,"Media type",-1)),P(n("select",{"onUpdate:modelValue":v=>o.media.type=v,class:"input-field w-100"},[...e[103]||(e[103]=[n("option",{value:""},"None",-1),n("option",{value:"image"},"Image",-1),n("option",{value:"video"},"Video",-1),n("option",{value:"embed"},"Embed",-1)])],8,en),[[K,o.media.type]])]),n("label",null,[e[105]||(e[105]=n("span",null,"Media URL",-1)),d(r,{modelValue:o.media.src,"onUpdate:modelValue":v=>o.media.src=v,placeholder:"https://â¦"},null,8,["modelValue","onUpdate:modelValue"])]),n("label",null,[e[106]||(e[106]=n("span",null,"Media title",-1)),d(r,{modelValue:o.media.title,"onUpdate:modelValue":v=>o.media.title=v,placeholder:"Optional"},null,8,["modelValue","onUpdate:modelValue"])])]),n("div",tn,[n("label",nn,[e[107]||(e[107]=c(" Upload media ",-1)),n("input",{type:"file",accept:"image/*,video/*",onChange:v=>s.uploadWhatsNewMedia(o,v)},null,40,sn)]),d(m,{class:"subtle small",disabled:C===0,onClick:v=>s.moveItem(i.subAnnouncements,C,-1)},{default:p(()=>[...e[108]||(e[108]=[c("Move up",-1)])]),_:1},8,["disabled","onClick"]),d(m,{class:"subtle small",disabled:C===i.subAnnouncements.length-1,onClick:v=>s.moveItem(i.subAnnouncements,C,1)},{default:p(()=>[...e[109]||(e[109]=[c("Move down",-1)])]),_:1},8,["disabled","onClick"]),d(m,{class:"subtle small",onClick:v=>s.removeItem(i.subAnnouncements,C)},{default:p(()=>[...e[110]||(e[110]=[c("Remove",-1)])]),_:1},8,["onClick"])])]))),128))])]))),128))])])):k("",!0)],64))])}const bn=oe(he,[["render",ln],["__scopeId","data-v-6387669e"]]);export{bn as default}; 5 6//# chunkId=01a0d9af-403f-7c40-8dac-e7d7bb3789a6
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.