1import{r as i,g as k,j as e,B as r}from"./index-BYfYdMya.js";import{Q as I}from"./QuizOptInForm-P_HAajbI.js";import{S as C}from"./target-VwLF9VxT.js";import{L as u}from"./lock-BF4TDVFk.js";import{A as m}from"./arrow-right-C5rQwhmh.js";import{C as x}from"./circle-check-BL_Zjlqb.js";import{C as S}from"./copy-BSEILnB3.js";const A=()=>{const[a,o]=i.useState(1),[n,b]=i.useState(""),[l,f]=i.useState(""),[d,g]=i.useState(""),[y,p]=i.useState(!1),[j,h]=i.useState(null),{toast:w}=k(),v=(t,s)=>{navigator.clipboard.writeText(t),h(s),setTimeout(()=>h(null),2e3),w({title:"Copied to clipboard",description:"You can now paste this script into your email."})},N=(()=>{let t="",s="",c="";return n==="Scope creep and constant revisions"?t=`Hi [Name], 2 3As I review our project progress and my upcoming capacity, I've realized that my current business structure is no longer the best fit for the level of ongoing revisions this project requires. 4 5To ensure you get the dedicated support you need, I believe it's best to transition this project to another provider. Our contract requires a [Number]-day notice, making our final day [Date]. 6 7I will wrap up [Current Deliverable] and ensure all files are cleanly handed off by then. Let me know if you have any questions about the transition process.`:n==="Disrespectful communication"?t=`Hi [Name], 8 9Over the past few weeks, it has become clear that our working styles and communication expectations are not aligned. For a partnership to be successful, there must be mutual respect and clear boundaries, which I feel are currently lacking. 10 11Because of this, I am terminating our working agreement, effective [Date]. 12 13I will send over your final invoice for the work completed to date, and once settled, I will provide all assets in a final handoff folder.`:t=`Hi [Name], 14 15As I look at my business direction for the upcoming quarter, I am restructuring the types of projects I take on. Because of this, I will no longer be able to serve as your [Role]. 16 17I have truly appreciated the opportunity to work together. Our contract requires a [Number]-day notice, making our final day [Date]. 18 19I'll ensure everything is organized and handed over smoothly by then so you don't miss a beat.`,l==="I have a solid contract with a termination clause"?s=`Hi [Name], 20 21Per section [X] of our contract regarding termination, I am providing my formal [Number]-day notice that I will be stepping down as your [Role]. 22 23My last day will be [Date]. Between now and then, I will complete [Task A] and [Task B]. I will not be starting any new initiatives. 24 25Thank you for understanding as I make this transition in my business.`:s=`Hi [Name], 26 27I'm writing to let you know that I am making some changes to my business model and will be concluding our work together. 28 29To ensure a smooth transition, I'd like to wrap up our current open items by [Date]. I will send over all final assets and a closing invoice at that time. 30 31I wish you the absolute best with [Their Business/Project].`,d==="Firm and non-negotiable"?c=`Hi [Name], 32 33I am writing to inform you that I am terminating our working relationship, effective immediately. 34 35Attached is the final invoice for work completed. Once this is paid, I will release all remaining files to you. 36 37I wish you the best in finding a provider who is a better fit for your needs.`:c=`Hi [Name], 38 39I wanted to reach out and let you know that my availability is changing, and I won't be able to continue on as your [Role] after [Date]. 40 41I want to make sure you're well taken care of, so over the next [Timeframe], I'll be focused entirely on wrapping up our current deliverables and organizing your files for a clean handoff. 42 43Thank you for the opportunity to support you during this season!`,[{title:"The Objective Exit (Best for general misalignment)",content:t},{title:"The Contractual Exit (Best for clear transitions)",content:s},{title:"The Boundary Exit (Best for your specific tone)",content:c}]})();return e.jsxs("div",{className:"my-12 border-2 border-brand-sky/20 rounded-2xl bg-gradient-to-b from-brand-sky/5 to-transparent overflow-hidden",children:[e.jsxs("div",{className:"bg-brand-sky/10 p-6 text-center border-b border-brand-sky/20",children:[e.jsxs("h3",{className:"text-2xl font-heading text-brand-dark mb-2 flex items-center justify-center gap-2",children:[e.jsx(C,{className:"w-6 h-6 text-brand-sky"}),'The "Graceful Exit" Script Generator']}),e.jsx("p",{className:"text-muted-foreground text-lg",children:"Answer 3 questions and get the exact words to fire that client professionally and without guilt."})]}),e.jsx("div",{className:"p-8",children:y?e.jsxs("div",{className:"space-y-8 animate-in fade-in slide-in-from-bottom-8",children:[e.jsxs("div",{className:"text-center max-w-2xl mx-auto mb-8",children:[e.jsx("div",{className:"inline-flex items-center justify-center w-16 h-16 rounded-full bg-green-100 text-green-600 mb-6",children:e.jsx(x,{className:"w-8 h-8"})}),e.jsx("h3",{className:"text-3xl font-heading text-brand-dark mb-4",children:"Here are your scripts"}),e.jsx("p",{className:"text-lg text-muted-foreground",children:"Copy the one that feels best, fill in the brackets, and hit send. You've got this."})]}),e.jsx("div",{className:"grid gap-6 max-w-3xl mx-auto",children:N.map((t,s)=>e.jsxs("div",{className:"bg-white rounded-xl border border-border overflow-hidden shadow-sm",children:[e.jsxs("div",{className:"bg-muted/30 px-6 py-4 border-b border-border flex justify-between items-center",children:[e.jsx("h4",{className:"font-semibold text-foreground",children:t.title}),e.jsx(r,{variant:"ghost",size:"sm",onClick:()=>v(t.content,s),className:"text-brand-sky hover:text-brand-sky hover:bg-brand-sky/10",children:j===s?e.jsxs(e.Fragment,{children:[e.jsx(x,{className:"w-4 h-4 mr-2"})," Copied!"]}):e.jsxs(e.Fragment,{children:[e.jsx(S,{className:"w-4 h-4 mr-2"})," Copy"]})})]}),e.jsx("div",{className:"p-6",children:e.jsx("pre",{className:"whitespace-pre-wrap font-sans text-muted-foreground leading-relaxed",children:t.content})})]},s))}),e.jsxs("div",{className:"max-w-3xl mx-auto mt-12 bg-white p-8 rounded-2xl border border-border text-center",children:[e.jsx("h4",{className:"text-xl font-bold mb-4 text-brand-dark",children:"Need more help with boundaries?"}),e.jsx("p",{className:"text-muted-foreground mb-6",children:"Inside the Ecosystem, we have an entire library of scripts, boundaries, and client experience templates ready for you to use."}),e.jsxs("div",{className:"flex flex-col sm:flex-row justify-center gap-4",children:[e.jsx(r,{asChild:!0,className:"bg-brand-dark hover:bg-brand-dark/90 text-white",children:e.jsx("a",{href:"/ecosystem",children:"Explore The Ecosystem"})}),e.jsx(r,{asChild:!0,variant:"outline",children:e.jsx("a",{href:"/store",children:"Explore The Store"})})]})]})]}):e.jsxs("div",{className:"max-w-2xl mx-auto",children:[e.jsxs("div",{className:"flex justify-between items-center mb-8 relative",children:[e.jsx("div",{className:"absolute left-0 top-1/2 -translate-y-1/2 w-full h-1 bg-muted z-0 rounded-full"}),e.jsx("div",{className:"absolute left-0 top-1/2 -translate-y-1/2 h-1 bg-brand-sky z-0 rounded-full transition-all duration-300",style:{width:`${(a-1)/3*100}%`}}),[1,2,3,4].map(t=>e.jsx("div",{className:`w-8 h-8 rounded-full flex items-center justify-center relative z-10 font-bold text-sm transition-colors duration-300 ${a>=t?"bg-brand-sky text-white":"bg-muted text-muted-foreground"}`,children:t===4?e.jsx(u,{className:"w-3 h-3"}):t},t))]}),a===1&&e.jsxs("div",{className:"space-y-6 animate-in fade-in slide-in-from-right-4",children:[e.jsxs("div",{className:"text-center mb-8",children:[e.jsx("h4",{className:"text-2xl font-heading text-foreground mb-2",children:"What is the main issue with this client?"}),e.jsx("p",{className:"text-muted-foreground",children:"Select the primary reason you need to let them go."})]}),e.jsx("div",{className:"grid gap-3",children:["Scope creep and constant revisions","Disrespectful communication","It's just not a good fit anymore"].map(t=>e.jsx("button",{onClick:()=>b(t),className:`p-4 rounded-xl border-2 text-left transition-all ${n===t?"border-brand-sky bg-brand-sky/5":"border-border hover:border-brand-sky/50 bg-white"}`,children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:`w-5 h-5 rounded-full border-2 flex items-center justify-center ${n===t?"border-brand-sky":"border-muted-foreground
43/30"}`,children:n===t&&e.jsx("div",{className:"w-2.5 h-2.5 rounded-full bg-brand-sky"})}),e.jsx("span",{className:"font-medium",children:t})]})},t))}),e.jsx("div",{className:"flex justify-end pt-6",children:e.jsxs(r,{onClick:()=>o(2),disabled:!n,className:"bg-brand-sky hover:bg-brand-sky/90 text-white px-8",children:["Next Step ",e.jsx(m,{className:"w-4 h-4 ml-2"})]})})]}),a===2&&e.jsxs("div",{className:"space-y-6 animate-in fade-in slide-in-from-right-4",children:[e.jsxs("div",{className:"text-center mb-8",children:[e.jsx("h4",{className:"text-2xl font-heading text-foreground mb-2",children:"What does your contract look like?"}),e.jsx("p",{className:"text-muted-foreground",children:"This helps us include the right transition language."})]}),e.jsx("div",{className:"grid gap-3",children:["I have a solid contract with a termination clause","I have a basic agreement but no clear exit terms","Honestly, we never really signed anything formal"].map(t=>e.jsx("button",{onClick:()=>f(t),className:`p-4 rounded-xl border-2 text-left transition-all ${l===t?"border-brand-sky bg-brand-sky/5":"border-border hover:border-brand-sky/50 bg-white"}`,children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:`w-5 h-5 rounded-full border-2 flex items-center justify-center ${l===t?"border-brand-sky":"border-muted-foreground/30"}`,children:l===t&&e.jsx("div",{className:"w-2.5 h-2.5 rounded-full bg-brand-sky"})}),e.jsx("span",{className:"font-medium",children:t})]})},t))}),e.jsxs("div",{className:"flex justify-between pt-6",children:[e.jsx(r,{onClick:()=>o(1),variant:"outline",children:"Back"}),e.jsxs(r,{onClick:()=>o(3),disabled:!l,className:"bg-brand-sky hover:bg-brand-sky/90 text-white px-8",children:["Next Step ",e.jsx(m,{className:"w-4 h-4 ml-2"})]})]})]}),a===3&&e.jsxs("div",{className:"space-y-6 animate-in fade-in slide-in-from-right-4",children:[e.jsxs("div",{className:"text-center mb-8",children:[e.jsx("h4",{className:"text-2xl font-heading text-foreground mb-2",children:"How do you want this to sound?"}),e.jsx("p",{className:"text-muted-foreground",children:"Choose the tone that feels right for this specific client."})]}),e.jsx("div",{className:"grid gap-3",children:["Professional but warm (soft landing)","Direct and objective (no room for negotiation)","Firm and non-negotiable (immediate boundary)"].map(t=>e.jsx("button",{onClick:()=>g(t),className:`p-4 rounded-xl border-2 text-left transition-all ${d===t?"border-brand-sky bg-brand-sky/5":"border-border hover:border-brand-sky/50 bg-white"}`,children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:`w-5 h-5 rounded-full border-2 flex items-center justify-center ${d===t?"border-brand-sky":"border-muted-foreground/30"}`,children:d===t&&e.jsx("div",{className:"w-2.5 h-2.5 rounded-full bg-brand-sky"})}),e.jsx("span",{className:"font-medium",children:t})]})},t))}),e.jsxs("div",{className:"flex justify-between pt-6",children:[e.jsx(r,{onClick:()=>o(2),variant:"outline",children:"Back"}),e.jsxs(r,{onClick:()=>o(4),disabled:!d,className:"bg-brand-sky hover:bg-brand-sky/90 text-white px-8",children:["Generate Scripts ",e.jsx(m,{className:"w-4 h-4 ml-2"})]})]})]}),a===4&&e.jsxs("div",{className:"max-w-md mx-auto space-y-6 animate-in fade-in slide-in-from-right-4",children:[e.jsxs("div",{className:"text-center mb-8",children:[e.jsx("div",{className:"w-16 h-16 bg-brand-sky/10 rounded-full flex items-center justify-center mx-auto mb-4",children:e.jsx(u,{className:"w-8 h-8 text-brand-sky"})}),e.jsx("h4",{className:"text-2xl font-heading text-foreground mb-2",children:"Your scripts are ready!"}),e.jsx("p",{className:"text-muted-foreground",children:"Where should we send your results and additional boundary resources?"})]}),e.jsx(I,{quizName:"Client Exit Generator",onSubmitted:()=>p(!0)})]})]})})]})};export{A as ClientExitGenerator};
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.