1import{j as o,r as g}from"./index-BYlVdiO4.js";import{H as z,j as P,E as M,p as H}from"./WidgetPreview-BhvyOu84.js";import{G as V,u as O,l as q,t as G,a4 as K,a as R,F as U}from"./App-CzVRO1K3.js";import{E as W,u as Q}from"./shows-sRS2UhX8.js";import{E as Z,D as J,s as Y,V as B,T as F,S as $,a as X,b as ee,c as j,i as I,e as ie,t as _,d as te,r as ne,p as re,f as oe,g as se,R as x,A as C}from"./IndexStudio-Voh_S9ua.js";import{S as ae,F as le,L as de,a as ue,C as me,P as ce,b as he,c as ge}from"./episodeBlocks-BkSVeH2L.js";import{N as pe,d as fe,a as A}from"./formats-DOqoYoXA.js";import{t as f}from"./ui-CdPzOe_F.js";import{S as be,a as ke,b as we,c as Se}from"./showBlocks-CIOKsDWe.js";import{M as _e,A as L,E as xe,C as Ie,Q as ve,a as ye,L as Ee,B as De,b as je,c as Ae}from"./widgetBlocks-BdPyk0ax.js";import{G as We}from"./globe-Cu7ANCUJ.js";import"./client-8BQ6cR46.js";/* empty css */import"./kit-C8LVm_nX.js";import"./inbox-B-BQ8RpT.js";import"./rotate-ccw-BrnLi6dD.js";import"./inbox-jkR-dQNq.js";import"./refresh-cw-BhW9U54t.js";import"./arrow-down-DtV931AU.js";import"./type-BLKxnfpY.js";import"./volume-2-B-VKAHNQ.js";const k=n=>n.firstName?`Hallo ${n.firstName}!`:"Hallo!",v=n=>{try{return new URL(n).hostname.replace(/^www\./,"")}catch{return n}},b=(n,l)=>{var d;return((d=n.voices.find(i=>i.id===l))==null?void 0:d.name)??"Eigene Stimme"},Be=(n,l)=>(n==null?void 0:n.mode)==="own"?{sponsor:n,fromShow:!1}:(n==null?void 0:n.mode)==="none"?null:l?{sponsor:l.sponsor,fromShow:!0}:null,Fe={intro_url:null,background_music_url:null,outro_url:null,background_volume:.15},$e=n=>({...Z,website_url:n??"",questions:[],ai:null,aiLoading:!1,row:null});function Ce(n){const l=i=>!!i.row;return{kind:"widget",title:"Neues interaktives Widget",steps:[{id:"url",title:"Website",ask:i=>i.website_url?`${k(n)} Wir richten ein interaktives Widget ein â in etwa drei Minuten. Stimmt diese Seite als Grundlage?`:`${k(n)} Wir richten ein interaktives Widget ein â in etwa drei Minuten. Auf welcher Seite Ihrer Website soll es Besuchern ihre persönliche Audio-Episode erstellen?`,why:"Das Widget liest diese Seite und macht daraus für jeden Besucher ein kurzes Gespräch â passend zu seinen Antworten. Ich schaue mir die Seite gleich an und mache Ihnen Vorschläge für die nächsten Schritte.",block:({s:i,submit:e,patch:t})=>o.jsx(_e,{initial:i.website_url,onSubmit:r=>{e({website_url:r,ai:i.website_url===r?i.ai:null},v(r)),!(i.website_url===r&&i.ai)&&(t({aiLoading:!0}),Y(r,n.orgId).then(s=>t({ai:s,aiLoading:!1})))}}),summary:i=>i.website_url?v(i.website_url):void 0,lockedAfter:l},{id:"name",title:"Name",ask:()=>"Wie soll das Widget heiÃen? Der Name erscheint nur bei Ihnen im Studio.",composer:{key:"name",placeholder:"Name des Widgets",maxLength:80,validate:i=>i.trim().length<2?"Bitte mindestens zwei Zeichen.":null,suggest:i=>{var e;return Array.from(new Set([...((e=i.ai)==null?void 0:e.names)??[],i.website_url?V(i.website_url):"","Produktberater"].filter(Boolean))).slice(0,4)}},block:({s:i})=>{var e;return o.jsx(L,{loading:i.aiLoading,summary:(e=i.ai)==null?void 0:e.summary})},summary:i=>i.name||void 0,lockedAfter:l},{id:"extra",title:"Weitere Seiten",ask:()=>"Soll das Widget noch weitere Seiten kennen â zum Beispiel andere Produkte, Tarife oder eine FAQ? Bis zu vier zusätzliche sind möglich.",why:"Mehr Seiten bedeuten mehr Wissen für die Episoden. Bei Produktvarianten kann das Widget sie später sogar miteinander vergleichen.",block:({s:i,submit:e})=>o.jsx(xe,{main:i.website_url,initialUrls:i.additional_urls,initialLabels:i.source_labels,onSubmit:(t,r,s)=>e({additional_urls:t,source_labels:r,comparison_mode:t.length?i.comparison_mode:"off"},s)}),summary:i=>i.additional_urls.length?`+ ${i.additional_urls.length} ${i.additional_urls.length===1?"Seite":"Seiten"}`:"nur Hauptseite",lockedAfter:l},{id:"compare",title:"Vergleich",when:i=>i.additional_urls.length>0,ask:()=>"Sie haben mehrere Seiten angegeben. Soll das Widget sie miteinander vergleichen können?",block:({s:i,submit:e})=>o.jsx(Ie,{initial:i.comparison_mode,initialCriteria:i.comparison_criteria,onSubmit:(t,r,s)=>e({comparison_mode:t,comparison_criteria:r},s)}),summary:i=>({off:"Aus",always:"Immer vergleichen",listener:"Hörer wählt"})[i.comparison_mode],lockedAfter:l},{id:"questions",title:"Fragen an Besucher",ask:()=>"Jetzt der wichtigste Teil: Was soll das Widget Ihre Besucher fragen? Aus den Antworten entsteht für jeden eine eigene Episode â und Sie sehen später, was Ihre Besucher bewegt.",why:"Die Antworten steuern, worauf die Episode eingeht: Ein Geschäftsführer hört etwas anderes als eine Technikerin. Zwei bis vier kurze Fragen sind ideal â mehr schreckt ab.",block:({s:i,submit:e})=>{var t;return o.jsx(ve,{initial:i.questions,ai:((t=i.ai)==null?void 0:t.questions)??null,aiLoading:i.aiLoading,onSubmit:(r,s)=>e({questions:r},s)})},summary:i=>i.questions.length?`${i.questions.length} ${i.questions.length===1?"Frage":"Fragen"}`:"ohne Fragen",lockedAfter:l},{id:"email",title:"E-Mail-Abfrage",ask:()=>"Sollen Hörer ihre E-Mail-Adresse angeben? Die Einwilligung zur Audio-Erstellung holt das Widget in jedem Fall ein.",why:"Mit E-Mail-Adressen gewinnen Sie Kontakte, brauchen dafür aber einen Zweck in Ihrer Datenschutzerklärung. Ohne E-Mail-Abfrage ist der Einstieg für Besucher am leichtesten und am datensparsamsten.",block:({s:i,submit:e})=>o.jsx(ye,{initial:i.email_capture_mode,initialText:i.email_capture_text,onSubmit:(t,r,s)=>e({email_capture_mode:t,email_capture_text:r},s)}),summary:i=>({required:"Erforderlich",optional:"Optional",disabled:"Deaktiviert"})[i.email_capture_mode],lockedAfter:l},{id:"voices",title:"Stimmen",ask:()=>"Wer soll sprechen? Wählen Sie eine Host- und eine Experten-Stimme â mit â¶ hören Sie jede vorher.",block:({s:i,submit:e})=>
1o.jsx(B,{quality:!0,expressive:!0,voices:n.voices,initial:{host:i.host_voice_id,expert:i.expert_voice_id,quality:i.tts_mode,lively:i.lively_mode,emotion:i.emotion_tags},onSubmit:(t,r)=>e({host_voice_id:t.host,expert_voice_id:t.expert,tts_mode:t.quality??"premium",lively_mode:!!t.lively,emotion_tags:!!t.emotion&&(t.quality!=="turbo"||!!t.lively)},r)}),summary:i=>`${b(n,i.host_voice_id)} & ${b(n,i.expert_voice_id)} · ${F[i.tts_mode]}${i.lively_mode?" · angeregt":""}${i.emotion_tags?" · Emotionen":""}`,lockedAfter:l},{id:"look",title:"Aussehen",ask:()=>"Wie soll das Widget auf Ihrer Website aussehen? Ich übernehme Farben und Logo direkt von Ihrer Website â passen Sie gern an, die Vorschau zeigt es live.",block:({s:i,submit:e})=>{var t;return o.jsx(Ee,{initial:i,name:i.name,websiteUrl:i.website_url,autoBrand:!0,suggestedCta:((t=i.ai)==null?void 0:t.cta)||void 0,onSubmit:(r,s)=>e(r,s)})},summary:i=>{var e;return`${((e=z.find(t=>t.id===i.icon_style))==null?void 0:e.name)??i.icon_style} · ${{floating:"Schwebend",inline:"Im Text",both:"Beides"}[i.display_mode]}`},lockedAfter:l},{id:"budget",title:"Kosten",ask:()=>"Zum Schluss die Kosten: Jede persönliche Episode verbraucht Credits. Möchten Sie ein monatliches Limit setzen?",block:({s:i,submit:e})=>o.jsx(De,{initial:i.personalization_enabled,initialLimit:i.monthly_credit_limit,onSubmit:(t,r,s)=>e({personalization_enabled:t,monthly_credit_limit:r},s)}),summary:i=>i.monthly_credit_limit===null?"ohne Limit":`${i.monthly_credit_limit} Credits/Monat`,lockedAfter:l},{id:"create",title:"Anlegen",ask:()=>"Alles beisammen. Hier noch einmal im Ãberblick:",block:({s:i,submit:e})=>o.jsx(je,{draft:i,questions:i.questions,voiceName:t=>b(n,t),orgId:n.orgId,userId:n.userId,onCreated:(t,r)=>{n.refreshPlan(),e({row:t},r)}}),summary:i=>i.row?"angelegt":void 0,lockedAfter:l},{id:"sound",title:"Markenklang",when:l,ask:i=>`â${i.name}â ist angelegt. Möchten Sie Ihren Markenklang einbinden? Intro, Musikbett und Outro werden automatisch in jede Episode gemischt â alles optional.`,block:({s:i,submit:e})=>o.jsx($,{table:"widgets",id:i.row.id,orgId:n.orgId,initial:{intro_url:i.row.intro_url,background_music_url:i.row.background_music_url,outro_url:i.row.outro_url,background_volume:i.row.background_volume??.15},onDone:(t,r)=>e({row:{...i.row,...t}},r)}),summary:i=>{var t,r,s;const e=[(t=i.row)==null?void 0:t.intro_url,(r=i.row)==null?void 0:r.background_music_url,(s=i.row)==null?void 0:s.outro_url].filter(
1Boolean).length;return e?`${e} von 3 Ebenen`:"ohne"}},{id:"done",title:"Einbinden",final:!0,ask:i=>`Fertig! Kopieren Sie diesen Code einmal auf Ihre Website â dann ist â${i.name}â live. Testen können Sie es sofort in der Vorschau.`,block:({s:i,open:e})=>o.jsx(Ae,{widget:{...i.row,display_mode:i.row.display_mode??"floating"},onOpen:()=>e(`/studio/widget/${i.row.id}`)})}],editPath:i=>i.row?`/studio/widget/${i.row.id}`:null}}const Le=n=>({prefill:n,source:null,title:"",briefing:"",format:pe,formatDone:!1,sponsor:null,sponsorDone:!1,sponsorEff:null,settings:{...J},emotion:!0,minutesChosen:!1,ai:null,aiLoading:!1,episodeId:null,segments:[],disclaimerDisabled:!1,disclaimerConfirmation:null,sound:Fe,cover:null,coverDone:!1,coverSkipped:!1,previewUrl:null,previewDone:!1,visibility:"public",sharePassword:"",out:null}),w=n=>({...n.settings,title:n.title,briefing:n.briefing});function Ne(n,l){const d=e=>!!e.out;return{kind:"episode",title:"Neue Dokument-Episode",steps:[{id:"source",title:"Quelle",ask:e=>e.prefill&&(e.prefill.file||e.prefill.url||e.prefill.text)?`${k(n)} Ich lese Ihre Quelle aus â einen Moment.`:`${k(n)} Aus welchem Inhalt soll die Episode entstehen? Eine Datei, ein eingefügter Text oder eine Webseite â ich lese alles automatisch aus.`,why:"VADio Cast macht aus Ihrem Inhalt ein Gespräch zwischen zwei Stimmen: Skript schreiben, vertonen, mit Musik abmischen, veröffentlichen. Sie behalten bei jedem Schritt die Kontrolle.",block:({s:e,submit:t,patch:r})=>o.jsx(ae,{orgId:n.orgId,userId:n.userId,prefill:e.prefill,autoStart:!e.source,onDone:(s,a)=>{t({source:s,title:e.title||s.title,ai:null},a),r({aiLoading:!0}),X(s.docId).then(u=>r({ai:u,aiLoading:!1}))}}),summary:e=>e.source?`${e.source.kind==="url"?v(e.source.url??""):e.source.title} · ${e.source.chars.toLocaleString("de-DE")} Zeichen`:void 0,lockedAfter:e=>!!e.episodeId},{id:"title",title:"Titel",ask:e=>{var t;return`Gelesen â ${(t=e.source)==null?void 0:t.chars.toLocaleString("de-DE")} Zeichen. Wie soll die Episode heiÃen?`},composer:{key:"title",placeholder:"Titel der Episode",maxLength:120,validate:e=>e.trim()?null:"Bitte einen Titel eingeben.",suggest:e=>{var t,r;return Array.from(new Set([...((t=e.ai)==null?void 0:t.titles)??[],((r=e.source)==null?void 0:r.title)??""].filter(Boolean))).slice(0,4)}},block:({s:e})=>{var t;return o.jsx(L,{loading:e.aiLoading,summary:(t=e.ai)==null?void 0:t.summary})},summary:e=>e.title||void 0,lockedAfter:d},{id:"briefing",title:"Briefing",ask:()=>"Für wen ist die Episode â und worauf soll sie eingehen? Ein Satz reicht. Sie können das auch überspringen.",why:"Das Briefing steuert Ton und Schwerpunkt des Skripts: Für Kunden klingt es anders als für das eigene Team.",composer:{key:"briefing",placeholder:"z. B. für Neukunden, freundlich, Fokus auf die ersten Schritte",skippable:!0,maxLength:500,suggest:e=>{var t;return Array.from(new Set([...((t=e.ai)==null?void 0:t.briefings)??[],"Für Kunden, freundlich und klar","Für das eigene Team, sachlich und knapp"])).slice(0,3)}},summary:e=>e.briefing||"ohne Briefing",lockedAfter:d},{id:"format",title:"Format",ask:()=>"Gehört die Episode zu einem Format â zum Beispiel einer Reihe? Dann begrüÃt der Host die Hörer immer mit dem Formatnamen.",why:"So klingen alle Folgen wie aus einem Guss: Jede beginnt mit âWillkommen bei â¦â und dem gleichen Namen. Das Format ist zugleich eine Show, in der die Folgen gebündelt sind.",block:({s:e,submit:t})=>o.jsx(le,{orgId:n.orgId,canCreate:n.canCreateShow,initial:e.format,onSubmit:(r,s)=>{if(t({format:r,formatDone:!0},s),e.episodeId){const a=e.format.showId;(async()=>{try{a&&a!==r.showId&&await fe(e.episodeId,a),await A(e.episodeId,r,{orgId:n.orgId,userId:n.userId,orgHandle:n.orgHandle}),e.segments.length&&f.info("Format geändert","Damit die BegrüÃung den neuen Namen nennt, das Skript neu schreiben lassen oder den ersten Satz anpassen.")}catch(u){f.err("Format konnte nicht gespeichert werden",String((u==null?void 0:u.message)??u))}})()}}}),summary:e=>e.formatDone?e.format.name??"ohne Format":void 0,lockedAfter:d},{id:"sponsor",title:"Sponsor",ask:e=>e.format.name?`Wird diese Folge von einem Partner präsentiert? Sie kann den Sponsor der Show â${e.format.name}â übernehmen, einen eigenen haben oder ohne Sponsor laufen.`:"Wird diese Folge von einem Partner präsentiert? Dann nennen wir ihn am Anfang und am Ende â Wort für Wort, wie Sie es festlegen.",why:"Sponsoren kaufen eine feste Nennung, keine ungefähre. Deshalb formuliert die KI diese Sätze nicht um: Gesprochen wird genau der Text, den Sie hier bestätigen â mit der Ansage âDiese Folge wird präsentiert von â¦â, die das Sponsoring kennzeichnet.",block:({s:e,submit:t})=>o.jsx(ee,{showId:e.format.showId,showName:e.format.name,title:e.title,initial:e.sponsor,onSubmit:(r,s,a)=>{t({sponsor:r,sponsorDone:!0,sponsorEff:Be(r,a)},s),e.episodeId&&j(e.episodeId,r).then(()=>I()).catch(u=>f.err("Sponsor konnte nicht gespeichert werden",String((u==null?void 0:u.message)??u)))}}),summary:e=>e.sponsorDone?e.sponsorEff?`Präsentiert von ${e.sponsorEff.sponsor.name}${e.sponsorEff.fromShow?" (Show)":""}`:"ohne Sponsor":void 0,lockedAfter:d},{id:"voices",title:"Stimmen & Qualität",ask:()=>"Wer soll sprechen â und in welcher Qualität? Mit â¶ hören Sie jede Stimme vorher.",block:({s:e,submit:t})=>o.jsx(B,{episode:!0,voices:n.voices,initial:{host:e.settings.host_voice_id,expert:e.settings.expert_voice_id,quality:e.settings.tts_mode,lively:e.settings.lively_mode,emotion:e.emotion},onSubmit:(r,s)=>t({settings:{...e.settings,host_voice_id:r.host,expert_voice_id:r.expert,tts_mode:r.quality??"premium",lively_mode:!!r.lively},emotion:!!r.emotion},s)}),summary:e=>`${b(n,e.settings.host_voice_id)} & ${b(n,e.settings.expert_voice_id)} · ${F[e.settings.tts_mode]}${e.settings.lively_mode?" · angeregt":""}${e.emotion&&ie(e.settings)?" · Emotionen":""}`,lockedAfter:d},{id:"length",title:"Länge",ask:e=>{var t;return(t=e.ai)!=null&&t.minutes?`Wie lang soll die Episode werden? Für Ihren Inhalt passen etwa ${e.ai.minutes} ${e.ai.minutes===1?"Minute":"Minuten"}.`:"Wie lang soll die Episode werden?"},block:({s:e,submit:t})=>{var r,s;return o.jsx(de,{initial:e.minutesChosen?e.settings.target_minutes:((r=e.ai)==null?void 0:r.minutes)??e.settings.target_minutes,mode:e.settings.tts_mode,creditsLeft:n.creditsLeft,recommended:(s=e.ai)==null?void 0:s.minutes,onSubmit:(a,u)=>
1t({settings:{...e.settings,target_minutes:a},minutesChosen:!0},u)})},summary:e=>`${e.settings.target_minutes} Min · â ${_(e.settings.target_minutes,e.settings.tts_mode)} Credits`,lockedAfter:d},{id:"script",title:"Skript",ask:e=>e.segments.length?"Hier ist Ihr Skript. Ãndern Sie, was Sie möchten â vertont wird erst beim Veröffentlichen.":"Ich schreibe jetzt das Gespräch. Danach können Sie jeden Satz ändern, neu formulieren lassen oder probehören â vertont wird erst, wenn Sie zufrieden sind.",why:"Die Stimmen sprechen genau diesen Text. Je besser das Skript, desto besser die Episode â deshalb sehen Sie es vor dem Vertonen.",block:({s:e,submit:t,patch:r})=>o.jsxs(o.Fragment,{children:[e.sponsorEff&&o.jsx(te,{sponsor:e.sponsorEff.sponsor}),o.jsx(ue,{episodeId:e.episodeId,docId:e.source.docId,orgId:n.orgId,userId:n.userId,settings:w(e),initial:e.segments,disclaimer:{disabled:e.disclaimerDisabled,confirmation:e.disclaimerConfirmation},formatName:e.format.name,emotionTags:e.emotion,onCreated:s=>{r({episodeId:s}),n.refreshPlan(),e.sponsor&&j(s,e.sponsor).then(()=>I()).catch(a=>f.err("Sponsor konnte nicht gespeichert werden",String((a==null?void 0:a.message)??a))),e.format.name&&A(s,e.format,{orgId:n.orgId,userId:n.userId,orgHandle:n.orgHandle}).then(a=>a&&r({format:{...e.format,showId:a,isNew:!1}})).catch(a=>f.err("Format konnte nicht angelegt werden",String((a==null?void 0:a.message)??a)))},onSubmit:(s,a)=>t({segments:s.segments,disclaimerDisabled:s.disclaimerDisabled,disclaimerConfirmation:s.disclaimerConfirmation},a)})]}),summary:e=>e.segments.length?`${e.segments.length} Abschnitte${e.disclaimerDisabled?" · ohne gesprochenen KI-Hinweis":""}`:void 0,lockedAfter:d},{id:"sound",title:"Markenklang",when:e=>!!e.episodeId,ask:()=>"Soll Ihr Markenklang dazu? Intro, Musikbett und Outro gelten nur für diese Episode â alles optional.",block:({s:e,submit:t})=>o.jsx($,{table:"standard_episodes",id:e.episodeId,orgId:n.orgId,scope:"der Episode",initial:e.sound,onDone:(r,s)=>t({sound:r},s)}),summary:e=>{const t=[e.sound.intro_url,e.sound.background_music_url,e.sound.outro_url].filter(
1Boolean).length;return t?`${t} von 3 Ebenen`:"ohne"},lockedAfter:d},{id:"cover",title:"Cover",when:e=>!!e.episodeId,ask:()=>"Möchten Sie ein Cover? Ich erzeuge Ihnen eines, oder Sie laden ein eigenes Bild hoch. Sie können den Schritt auch überspringen.",block:({s:e,submit:t})=>o.jsx(me,{episodeId:e.episodeId,orgId:n.orgId,title:e.title,initial:e.cover,onSubmit:(r,s)=>t({cover:r,coverDone:!0,coverSkipped:!1},s),onSkip:r=>t({cover:null,coverDone:!0,coverSkipped:!0},r)}),skip:async e=>(await ne(e.episodeId),{cover:null,coverDone:!0,coverSkipped:!0}),summary:e=>e.coverDone?e.coverSkipped?"ohne":e.cover?"gewählt":"automatisch":void 0,lockedAfter:d},{id:"preview",title:"Vorschau",when:e=>!!e.episodeId,ask:e=>`Ich erstelle jetzt die komplette Episode â mit KI-Hinweis${e.sponsorEff?", Sponsor-Nennung":""}, Musik und Markenklang. Hören Sie rein: Passt alles, wird genau diese Fassung veröffentlicht.`,block:({s:e,submit:t})=>o.jsx(ce,{episodeId:e.episodeId,settings:w(e),segments:e.segments,title:e.title,credits:_(e.settings.target_minutes,e.settings.tts_mode),disclaimer:{disabled:e.disclaimerDisabled,confirmation:e.disclaimerConfirmation},onSubmit:(r,s)=>{n.refreshPlan(),t({previewUrl:r,previewDone:!0},s)}}),summary:e=>e.previewDone?"gehört â wird 1:1 übernommen":void 0,lockedAfter:d},{id:"publish",title:"Veröffentlichen",when:e=>!!e.episodeId,ask:()=>"Letzter Schritt: Wer darf die Episode hören?",why:"Veröffentlicht wird genau die Vorschau, die Sie gehört haben â ohne neue Vertonung. Erst jetzt werden Credits abgebucht; alles Vorhören davor war kostenlos. Die Datei wird dabei als KI-Inhalt gekennzeichnet, und Sie bekommen einen Link zum Teilen.",block:({s:e,submit:t})=>o.jsx(he,{credits:_(e.settings.target_minutes,e.settings.tts_mode),creditsLeft:n.creditsLeft,initialVisibility:e.visibility,disclaimerDisabled:e.disclaimerDisabled,ensurePreview:{episodeId:e.episodeId,settings:w(e),segments:e.segments,disclaimer:{disabled:e.disclaimerDisabled,confirmation:e.disclaimerConfirmation},title:e.title},onPublish:async(r,s)=>{if(!n.ensureVerified("Episoden zu veröffentlichen"))return null;const a=await re(e.episodeId,w(e),e.segments,{visibility:r.visibility,password:r.password,disclaimerDisabled:e.disclaimerDisabled,disclaimerConfirmation:e.disclaimerConfirmation,skipCover:e.coverSki
1pped},s);return n.refreshPlan(),a},onSubmit:(r,s,a,u)=>t({out:r,visibility:s,sharePassword:u},a)}),summary:e=>e.out?{public:"Ãffentlich",password:"Mit Passwort",private:"Privat"}[e.visibility]:void 0,lockedAfter:d},{id:"done",title:"Teilen",final:!0,ask:e=>e.visibility==="private"?`â${e.title}â ist fertig â privat, nur im Studio hörbar.`:`Veröffentlicht! â${e.title}â ist bereit zum Teilen.`,block:({s:e,open:t})=>o.jsx(ge,{out:e.out,title:e.title,visibility:e.visibility,password:e.sharePassword,disclaimerDisabled:e.disclaimerDisabled,episodeId:e.episodeId,cover:e.cover,onOpen:()=>t(`/studio/episode/${e.episodeId}`),onNew:l})}],editPath:e=>e.episodeId?`/studio/episode/${e.episodeId}`:null}}const Te=n=>({subtitle:n.subtitle,about_md:n.about_md,host_name:n.host_name,host_role:n.host_role,logo_url:n.logo_url,cover_url:n.cover_url,background_url:n.background_url,background_style:n.background_style,primary_color:n.primary_color,accent_color:n.accent_color,cta_label:n.cta_label,cta_url:n.cta_url}),ze=n=>({title:(n==null?void 0:n.slice(0,80))??"",items:[],itemsDone:!1,itemTitles:[],brand:Te
1(W),brandDone:!1,sponsor:null,sponsorDone:!1,saved:null});function Pe(n){const l=i=>!!i.saved;return{kind:"show",title:"Neue Format-Show",steps:[{id:"title",title:"Titel",ask:()=>`${k(n)} Eine Show bündelt Ihre Episoden auf einer eigenen Seite â wie ein Podcast mit eigener Adresse. Wie soll sie heiÃen?`,composer:{key:"title",placeholder:"Titel der Show",maxLength:80,validate:i=>i.trim()?null:"Bitte einen Titel eingeben.",suggest:()=>["Wissen zum Hören","Produkt-Update","Onboarding-Reihe"]},summary:i=>i.title||void 0,lockedAfter:l},{id:"items",title:"Folgen",ask:()=>"Welche Folgen gehören hinein? Auch interaktive Widgets lassen sich einbinden â dort bekommt jeder Hörer seine eigene Episode.",block:({s:i,submit:e})=>o.jsx(be,{orgId:n.orgId,initial:i.items,onSubmit:(t,r,s)=>e({items:t,itemsDone:!0,itemTitles:s},r)}),summary:i=>i.itemsDone?i.items.length?`${i.items.length} ${i.items.length===1?"Folge":"Folgen"}`:"später":void 0,lockedAfter:l},{id:"brand",title:"Aussehen & Texte",ask:()=>"Wie soll die Show-Seite aussehen? Farben, Logo, ein kurzer Text und auf Wunsch ein Button â oder ich schlage Ihnen die Texte vor.",block:({s:i,submit:e})=>o.jsx(ke,{orgId:n.orgId,showId:null,title:i.title,episodeTitles:i.itemTitles,initial:i.brand,onSubmit:(t,r)=>e({brand:t,brandDone:!0},r)}),summary:i=>i.brandDone?i.brand.subtitle||"angepasst":void 0,lockedAfter:l},{id:"sponsor",title:"Sponsor",ask:()=>"Wird die Show von einem Partner präsentiert? Dann nennen wir ihn in jeder Folge am Anfang und am Ende â Wort für Wort, wie Sie es festlegen.",why:"So verkaufen Sie eine feste Rubrik, z. B. âDas Matchday Briefing, präsentiert von â¦â. Die KI formuliert diese Sätze nicht um; gesprochen wird genau der bestätigte Text, mit der Ansage âDiese Folge wird präsentiert von â¦â, die das Sponsoring kennzeichnet.",block:({s:i,submit:e})=>o.jsx(oe,{kind:"show",title:i.title,initial:i.sponsor?{mode:"own",...i.sponsor}:null,onSubmit:(t,r)=>e({sponsor:(t==null?void 0:t.mode)==="own"?{name:t.name,opener:t.opener,closer:t.closer}:null,sponsorDone:!0},r)}),summary:i=>i.sponsorDone?i.sponsor?`Präsentiert von ${i.sponsor.name}`:"ohne Sponsor":void 0,lockedAfter:l},{id:"access",title:"Zugriff & Adresse",ask:()=>"Wer soll die Show sehen â und unter welcher Adresse?",block:({s:i,submit:e})=>o.jsx(we,{draft:{...W,...i.brand,title:i.title,sponsor:i.sponsor},items:i.items,orgId:n.orgId,orgHandle:n.orgHandle,userId:n.userId,onSaved:(t,r)=>{n.refreshPlan(),i.sponsor&&I(),e({saved:t},r)}}),summary:i=>i.saved?`/s/${i.saved.slug}`:void 0,lockedAfter:l},{id:"done",title:"Teilen",final:!0,ask:i=>`Live! â${i.title}â ist online. Teilen Sie den Link, binden Sie die Show ein oder drucken Sie den QR-Code.`,block:({s:i,open:e})=>o.jsx(Se,{slug:i.saved.slug,title:i.title,onOpen:()=>e(`/studio/show/${i.saved.id}`)})}],editPath:i=>i.saved?`/studio/show/${i.saved.id}`:null}}const Me=[{id:"widget",icon:We,title:"Interaktives Widget",text:"für Ihre Website â jeder Besucher hört seine eigene Episode"},{id:"episode",icon:U,title:"Dokument-Episode",text:"aus Datei, Text oder Webseite"},{id:"show",icon:M,title:"Format-Show",text:"Ihre Episoden auf einer eigenen Seite"}];function He({children:n}){return o.jsxs("div",{className:"studio-msg flex items-start gap-3",children:[o.jsx(C,{}),o.jsx("div",{className:"min-w-0 flex-1 pt-1 text-[15px] leading-relaxed text-white/90",children:n})]})}function ui(){const[n,l]=P(),d=n.get("typ"),{user:i}=O(),{activeOrg:e}=q(),t=G(),{voices:r}=Q((e==null?void 0:e.id)??null),{ensureVerified:s}=K(),{consume:a}=R(),u=g.useRef(void 0);u.current===void 0&&(u.current=a());const[p,N]=g.useState(0),m=g.useMemo(()=>i&&e?{orgId:e.id,orgHandle:e.slug??null,userId:i.id,firstName:se(i.user_metadata),voices:r,creditsLeft:t.loading?null:t.creditsLeft,canCreateShow:t.canCreateFormatShow,ensureVerified:s,refreshPlan:()=>void t.refetch()}:null,[i,e,r,t.loading,t.creditsLeft,t.canCreateFormatShow,s]),h=d?u.current??null:null,y=g.useMemo(()=>m?Ce(m):null,[m]),E=g.useMemo(()=>m?Ne(m,()=>N(c=>c+1)):null,[m]),D=g.useMemo(()=>m?Pe(m):null,[m]);if(!m||t.loading)return o.jsx("div",{className:"grid h-full place-items-center",children:o.jsx("span",{className:"studio-shimmer h-10 w-64 roun
1ded-full"})});const S=c=>{if(c==="widget"?t.canCreateWidget:c==="episode"?t.canCreateDocEpisode:t.canCreateFormatShow)return;const T=c==="widget"?"weitere Widgets":c==="episode"?"weitere Dokument-Episoden":"weitere Shows";return o.jsxs(He,{children:[t.planSource==="none"||t.isExpired?o.jsx(o.Fragment,{children:"Für Ihre Organisation ist gerade kein aktiver Plan hinterlegt â deshalb kann ich noch nichts anlegen. "}):o.jsxs(o.Fragment,{children:["Ihr aktueller Plan erlaubt keine ",T,". "]}),o.jsx(H,{to:"/studio/einstellungen/plan",className:"font-semibold text-white underline decoration-white/30 underline-offset-2",children:t.isOwner?"Plan & Credits ansehen":"Plan ansehen und Upgrade anfragen"})]})};return d==="widget"&&y?o.jsx(x,{flow:y,initial:$e(h==null?void 0:h.url),blocked:S("widget")},`w${p}`):d==="episode"&&E?o.jsx(x,{flow:E,initial:Le(p===0&&h?{url:h.url,text:h.text,file:h.file}:void 0),blocked:S("episode")},`e${p}`):d==="show"&&D?o.jsx(x,{flow:D,initial:ze(p===0?h==null?void 0:h.text:void 0),blocked:S("show")},`s${p}`):o.jsx("div",{className:"mx-auto flex h-full max-w-[760px] flex-col justify-center overflow-y-auto px-4 py-10",children:o.jsxs("div",{className:"studio-msg flex items-start gap-3",children:[o.jsx(C,{}),o.jsxs("div",{className:"flex-1",children:[o.jsxs("p",{className:"pt-1 text-[15px] leading-relaxed text-white/90",children:[m.firstName?`Hallo ${m.firstName}!`:"Hallo!"," Ich bin Markus und führe Sie Schritt für Schritt. Was möchten Sie erstellen?"]}),o.jsx("div",{className:"mt-4 grid grid-cols-1 gap-2 sm:grid-cols-3",children:Me.map(c=>o.jsxs("button",{type:"button",onClick:()=>l({typ:c.id}),className:"studio-pop rounded-[16px] bg-white/[0.04] p-4 text-left ring-1 ring-inset ring-white/10 transition-colors hover:bg-white/[0.08]",children:[o.jsx(c.icon,{className:"h-5 w-5 text-[#8ffee0]",strokeWidth:1.6}),o.jsx("p",{className:"mt-3 text-[14.5px] font-semibold",children:c.title}),o.jsx("p",{className:"text-[12.5px] text-white/50",children:c.text})]},c.id))}),o.jsx("p",{className:"mt-4 text-[12.5px] text-white/45",children:"Unsicher? Ein Widget lohnt sich, wenn Besucher Ihrer Website etwas erklärt bekommen sollen. Eine Episode, wenn Sie einen vorhandenen Inhalt hörbar machen möchten."})]})]})})}export{ui 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.