1import{r as i,j as e}from"./vendor-react-Bt0ObShd.js";import{s as k}from"./index-BcvFVgqq.js";import{e as w}from"./vendor-other-B44z6Txu.js";import"./vendor-date-BGk33O4L.js";import"./vendor-router-BYZCEADW.js";import"./icons-heroicons-8BJzgK2u.js";import"./icons-feather-CgHJwN8m.js";import"./vendor-utils-Caldb6d3.js";const j=[{id:"help",label:"Getting Started"},{id:"faq",label:"FAQ"},{id:"contact",label:"Contact"},{id:"feedback",label:"Feedback"}],v=[{title:"1. Getting Started",content:["Sign up with your email and a secure password.","Verify your account via the confirmation email we send."]},{title:"2. Setting Up Pillars & Goals",content:['Go to Structure and click "Add Pillar" for each life domain you want to track (e.g. Health, Career).',`Open a Pillar and click "New Goal" to add a weekly intent â set its tracking mode (Aim/Limit) and whether it's time- or count-based.`,"Add Activities under a Goal for the specific things you'll actually do."]},{title:"3. Tracking Your Time",content:["Start a timer for an Activity from the search bar in the top nav, or from the Activity's own page.","Use the timer pill in the top nav to pause, resume, or stop a running timer â it also handles multiple timers at once.","Edit a past entry from the Activity page if the tracked duration needs correcting."]},{title:"4. Reviewing Your Progress",content:["Home shows live progress against this week's plan.","Reports break your time down by day, week, month, and year.","Planner lets you set next week's targets for each Goal."]},{title:"5. Customizing Your Experience",content:["Adjust weekly targets any time from the Planner.","Rename, archive, or delete Pillars, Goals, and Activities from their detail pages.","Manage your profile, account, and integrations under Settings."]},{title:"6. Tips & Tricks",content:["Batch similar Activities to minimize context switching.","Plan your week every Sunday with a quick review in Planner.","Use Journal to capture reflections alongside your tracked time."]}],S=[{question:"What is Chronio?",answer:"Chronio helps you organize life into Pillars (domains like Health or Career), set weekly Goals under each, and track the Activities that move those Goals forward â with time entries, counts, tasks, and reading/watching lists all in one place."},{question:"How do I create a new Pillar or Goal?",answer:e.jsxs("ol",{className:"list-decimal list-inside space-y-1 text-[13px] text-stone-600",children:[e.jsxs("li",{children:["Go to ",e.jsx("strong",{children:"Structure"})," and click ",e.jsx("strong",{children:"Add Pillar"}),"."]}),e.jsxs("li",{children:["Open the Pillar and click ",e.jsx("strong",{children:"New Goal"})," â give it a name and choose its tracking mode."]}),e.jsx("li",{children:"Add one or more Activities to the Goal to start tracking."})]})},{question:"How do I start and stop the timer?",answer:e.jsxs("ol",{className:"list-decimal list-inside space-y-1 text-[13px] text-stone-600",children:[e.jsxs("li",{children:["Use the search bar in the top nav to find an Activity and press ",e.jsx("strong",{children:"Start"}),", or start it from the Activity page."]}),e.jsxs("li",{children:["While a timer is running, a pill appears in the top nav â click it to ",e.jsx("strong",{children:"Pause"}),", ",e.jsx("strong",{children:"Resume"}),", or ",e.jsx("strong",{children:"Stop"}),"."]}),e.jsx("li",{children:"You can run more than one timer at a time."})]})},{question:"Where can I see my total tracked time?",answer:"Home shows today's progress toward your weekly plan. Reports breaks your time down by day, week, month, and year."},{question:"Can I adjust my weekly targets?",answer:"Yes â open Planner, select a Goal for the current or an upcoming week, and update its planned target."},{question:"How do I export my data?",answer:"Go to Settings â Export, choose a format, and download."},{question:"I forgot my password. How do I reset it?",answer:"Click Forgot Password on the login page, enter your email, and follow the link we send."},{question:"Who can I contact for more help?",answer:"Use the Contact tab above, or email us directly at [email protected]."}];function N(){const[t,s]=i.useState(null);return e.jsx("div",{className:"space-y-3",children:S.map((n,o)=>{const r=t===o;return e.jsxs("div",{className:"rounded-xl border border-stone-200 dark:border-stone-800",children:[e.jsxs("button",{type:"button",onClick:()=>s(r?null:o),className:"flex w-full items-center justify-between px-4 py-3 text-left text-[14px] font-medium text-stone-800 dark:text-stone-100 hover:bg-stone-50 dark:hover:bg-stone-800/60 rounded-xl",children:[e.jsx("span",{children:n.question}),e.jsx("svg",{className:`h-4 w-4 shrink-0 text-stone-400 transition-transform ${r?"rotate-180":""}`,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19 9l-7 7-7-7"})})]}
1),r&&e.jsx("div",{className:"border-t border-stone-100 dark:border-stone-800 px-4 py-3 text-[13px] text-stone-600 dark:text-stone-400",children:typeof n.answer=="string"?e.jsx("p",{children:n.answer}):n.answer})]},o)})})}function C(){return e.jsx("div",{className:"space-y-4",children:v.map((t,s)=>e.jsxs("div",{className:"rounded-xl border border-stone-200 dark:border-stone-800 p-4",children:[e.jsx("h3",{className:"mb-2 text-[14px] font-semibold text-orange-600 dark:text-orange-400",children:t.title}),e.jsx("ul",{className:"list-disc list-inside space-y-1 text-[13px] text-stone-600 dark:text-stone-400",children:t.content.map((n,o)=>e.jsx("li",{children:n},o))})]},s))})}function m({label:t,error:s,children:n}){return e.jsxs("div",{children:[e.jsx("label",{className:"mb-1 block text-[13px] font-medium text-stone-700 dark:text-stone-300",children:t}),n,s&&e.jsx("p",{className:"mt-1 text-[12px] text-red-600",children:s})]})}const u="w-full rounded-lg border border-stone-200 dark:border-stone-700 bg-white dark:bg-stone-800 px-3 py-2 text-[13px] text-stone-800 dark:text-stone-100 outline-none focus:border-orange-400 focus:ring-2 focus:ring-orange-100 dark:focus:ring-orange-900/30";function P(){const[t,s]=i.useState({name:"",email:"",message:""}),[n,o]=i.useState({}),[r,d]=i.useState(null),[p,x]=i.useState(!1),b=()=>{const a={};return t.name.trim()||(a.name="Name is required."),t.email.trim()?/\S+@\S+\.\S+/.test(t.email)||(a.email="Please enter a valid email."):a.email="Email is required.",(!t.message.trim()||t.message.trim().length<10)&&(a.message="Message must be at least 10 characters."),o(a),Object.keys(a).length===0},f=async a=>{var l;if(a.preventDefault(),d(null),!!b()){x(!0);try{await k("/api/support/contact",{method:"POST",body:t}),d({ok:!0,message:"Your message has been sent!"}),s({name:"",email:"",message:""}),o({})}catch(c){if((l=c.responseData)!=null&&l.errors){const h={};c.responseData.errors.forEach(g=>{h[g.param]=g.msg||"Invalid input"}),o(h)}else d({ok:!1,message:c.message||"Something went wrong."})}finally{x(!1)}}};return e.jsxs("form",{onSubmit:f,className:"max-w-lg space-y-4",children:[e.jsx("p",{className:"text-[13px] text-stone-500",children:"Have questions, partnership ideas, or feedback? We'd love to hear from you."}),e.jsx(m,{label:"Your Name",error:n.name,children:e.jsx("input",{type:"text",className:u,value:t.name,onChange:a=>s({...t,name:a.target.value})})}),e.jsx(m,{label:"Your Email",error:n.email,children:e.jsx("input",{type:"email",className:u,value:t.email,onChange:a=>s({...t,email:a.target.value})})}),e.jsx(m,{label:"Message",error:n.message,children:e.jsx("textarea",{rows:5,className:u,value:t.message,onChange:a=>s({...t,message:a.target.value})})}),e.jsx("button",{type:"submit",disabled:p,className:"rounded-full bg-orange-600 px-5 py-2.5 text-[13px] font-semibold text-white transition hover:bg-orange-700 disabled:opacity-60",children:p?"Sendingâ¦":"Send Message"}),r&&e.jsx("p",{className:`text-[13px] ${r.ok?"text-emerald-600":"text-red-600"}`,children:r.message})]})}const y=[{value:"bug",label:"Bug Report"},{value:"feature",label:"Feature Request"},{value:"general",label:"General Comment"}];function A(){const[t,s]=i.useState({type:"",title:"",details:"",email:""}),[n,o]=i.useState({}),[r,d]=i.useState(null),[p,x]=i.useState(!1),b=()=>{const a={};return y.some(l=>l.value===t.type)||(a.type="Please select a feedback type."),(!t.title.trim()||t.title.trim().length<5)&&(a.title="Title must be at least 5 characters."),(!t.details.trim()||t.details.trim().length<10)&&(a.details="Details must be at least 10 characters."),t.email&&!/\S+@\S+\.\S+/.test(t.email)&&(a.email="Please enter a valid email address."),o(a),Object.keys(a).length===0},f=async a=>{var l;if(a.preventDefault(),d(null),!!b()){x(!0);try{await k("/api/support/feedback",{method:"POST",body:t}),d({ok:!0,message:"Feedback submitted successfully!"}),s({type:"",title:"",details:"",email:""}),o({})}catch(c){if((l=c.responseData)!=null&&l.errors){const h={};c.responseData.errors.forEach(g=>{h[g.param]=g.msg||"Invalid input"}),o(h)}else d({ok:!1,message:c.message||"Failed to submit feedback."})}finally{x(!1)}}};return e.jsxs("form",{onSubmit:f,className:"max-w-lg space-y-4",children:[e.jsx("p",{className:"text-[13px] text-stone-500",children:"Your feedback helps us improve Chronio. Whether it's a bug, feature request, or idea â let us know!"}),e.jsx(m,{label:"What type of feedback is this?",error:n.type,children:e.jsx("div",{className:"flex flex-wrap gap-2",children:y.map(({value:a,label:l})=>e.jsx("button",{type:"button",onClick:()=>s({...t,type:a}),className:`rounded-full border px-3 py-1.5 text-[12px] font-medium transition ${t.type===a?"border-orange-500 bg-orange-500 text-white":"border-stone-200 dark:border-stone-700 text-stone-600 dar
1k:text-stone-300 hover:bg-stone-50 dark:hover:bg-stone-800"}`,children:l},a))})}),e.jsx(m,{label:"Title / Short Summary",error:n.title,children:e.jsx("input",{type:"text",className:u,value:t.title,onChange:a=>s({...t,title:a.target.value})})}),e.jsx(m,{label:"Details",error:n.details,children:e.jsx("textarea",{rows:5,className:u,value:t.details,onChange:a=>s({...t,details:a.target.value})})}),e.jsxs(m,{label:"Email (optional)",error:n.email,children:[e.jsx("input",{type:"email",className:u,value:t.email,onChange:a=>s({...t,email:a.target.value})}),e.jsx("p",{className:"mt-1 text-[12px] text-stone-400",children:"Leave an email if you'd like a follow-up."})]}),e.jsx("button",{type:"submit",disabled:p,className:"rounded-full bg-orange-600 px-5 py-2.5 text-[13px] font-semibold text-white transition hover:bg-orange-700 disabled:opacity-60",children:p?"Submittingâ¦":"Submit Feedback"}),r&&e.jsx("p",{className:`text-[13px] ${r.ok?"text-emerald-600":"text-red-600"}`,children:r.message})]})}function D(){const t=w(),[s,n]=i.useState(()=>new URLSearchParams(window.location.search).get("tab")||"help"),o=r=>{n(r),t(`/support?tab=${r}`,{replace:!0})};return e.jsx("div",{className:"min-h-full",children:e.jsxs("div",{className:"mx-auto w-full max-w-4xl px-2 pb-36 pt-2 text-stone-900 md:px-8 lg:px-10",children:[e.jsxs("div",{className:"mb-1 px-3 md:px-0",children:[e.jsx("h1",{className:"text-[32px] font-bold leading-tight tracking-[-0.01em] text-slate-800 md:text-[40px]",style:{fontFamily:"Manrope, Inter, sans-serif"},children:"Support"}),e.jsx("p",{className:"mt-2 max-w-2xl text-[15px] text-stone-500",children:"Guides, answers, and a way to reach us if something's not working."})]}),e.jsx("div",{className:"mb-5 flex flex-wrap gap-1 border-b border-stone-200 px-3 md:px-0",children:j.map(r=>e.jsx("button",{type:"button",onClick:()=>o(r.id),className:`border-b-2 px-4 py-2.5 text-[13px] transition ${s===r.id?"border-orange-500 font-medium text-orange-600 dark:text-orange-400":"border-transparent text-stone-500 hover:text-stone-700 dark:hover:text-stone-300"}`,children:r.label},r.id))}),e.jsxs("div",{className:"mx-3 rounded-2xl border border-stone-200 bg-white p-5 shadow-sm dark:border-stone-800 dark:bg-stone-900 md:mx-0 md:p-8",children:[s==="help"&&e.jsx(C,{}),s==="faq"&&e.jsx(N,{}),s==="contact"&&e.jsx(P,{}),s==="feedback"&&e.jsx(A,{})]})]})})}export{D 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.