1import{c as Q,r as p,j as e,v as oe,w as de,x as ue,y as he,z as me,B as w,a1 as M,t as A,E as xe,a3 as pe}from"./index-C9ebdKB5.js";import{C as Z}from"./card-DR5LKJwI.js";import{k as U,av as fe,O as K,as as ge,D as ee,A as R,j as je,x as te,v as Ne,aw as be,w as ve,ai as Y,ax as we,ay as ye,n as ke,y as z,ah as T,I as Ce,az as _e,aA as Me,aB as V,aC as Ae,p as Se,q as ze,aj as De,s as Ee,B as Re,aD as Oe,aE as se,aF as Te,aG as We,aH as Pe,aI as Le,N as Fe}from"./Cockpit-COB0Md-T.js";import{A as W,b as P,d as L,e as F,f as I,g as B,h as X,i as $,a as Ie}from"./alert-dialog-DC8lUvR1.js";import{I as _}from"./label-mUns6IyZ.js";import{C as Be}from"./accordion-DEExls7I.js";import{A as $e}from"./archive-_7GY6ByE.js";import"./FokusLogo-6nlbNsOi.js";import"./index-DfOTqTrH.js";import"./users-MNfdipfr.js";import"./download-D4Jj7-3E.js";import"./Footer-sQ8iIHWy.js";import"./arrow-left-D7dovSXJ.js";import"./focus-reschedule-nmBTkqgv.js";import"./confetti-bEOLSAJf.js";/** 2 * @license lucide-react v0.462.0 - ISC 3 * 4 * This source code is licensed under the ISC license. 5 * See the LICENSE file in the root directory of this source tree. 6 */const He=Q("Link2",[["path",{d:"M9 17H7A5 5 0 0 1 7 7h2",key:"8i5ue5"}],["path",{d:"M15 7h2a5 5 0 1 1 0 10h-2",key:"1b9ql8"}],["line",{x1:"8",x2:"16",y1:"12",y2:"12",key:"1jonct"}]]);/** 7 * @license lucide-react v0.462.0 - ISC 8 * 9 * This source code is licensed under the ISC license. 10 * See the LICENSE file in the root directory of this source tree. 11 */const Ze=Q("Minus",[["path",{d:"M5 12h14",key:"1ays0h"}]]),ne="fokus.hebel-rechner.v1",ae="fokus.hebel-stundensatz";function E(){return{id:Math.random().toString(36).slice(2),name:"",zeitMin:0,freqWoche:0,fehler:3,istStdWoche:0,zielStdWoche:0}}function Ke(){try{const t=localStorage.getItem(ne);if(t){const n=JSON.parse(t);if(Array.isArray(n)&&n.length>0)return n}}catch{}return[E()]}function Ge(){try{const t=localStorage.getItem(ae);if(t){const n=Number(t);if(!isNaN(n)&&n>0)return n}}catch{}return 50}function H(t){return new Intl.NumberFormat("de-DE",{maximumFractionDigits:0}).format(Math.round(t))}function qe({open:t,onOpenChange:n}){const[r,i]=p.useState(50),[o,l]=p.useState([E()]),[h,m]=p.useState(null),{addObjective:f,addKeyResult:v,activeObjectives:u}=U();p.useEffect(()=>{t&&(l(Ke()),i(Ge()))},[t]),p.useEffect(()=>{if(t)try{localStorage.setItem(ne,JSON.stringify(o))}catch{}},[o,t]),p.useEffect(()=>{if(t)try{localStorage.setItem(ae,String(r))}catch{}},[r,t]);const N=p.useMemo(()=>o.map(s=>{const b=(Number(s.zeitMin)||0)*(Number(s.freqWoche)||0)*(Number(s.fehler)||0),c=Math.max(0,(Number(s.istStdWoche)||0)-(Number(s.zielStdWoche)||0)),y=c*(Number(r)||0)*4.33,D=y*12;return{row:s,score:b,ersparnisStdWoche:c,euroProMonat:y,euroProJahr:D}}),[o,r]),a=p.useMemo(()=>[...N].sort((s,b)=>b.score-s.score),[N]),C=N.reduce((s,b)=>s+b.euroProMonat,0);function k(s,b){l(c=>c.map(y=>y.id===s?{...y,...b}:y))}function d(s){l(b=>b.length<=1?[E()]:b.filter(c=>c.id!==s))}function x(){l(s=>[...s,E()])}async function g(s){var b;if(u.length>=3){M.error("Du hast schon 3 Fokus-Ziele â archiviere erst eins.");return}m(s.id);try{const c=await f.mutateAsync({title:((b=s.name)==null?void 0:b.trim())||"Neuer Hebel",category:"prozesse_ki",icon:"ð ï¸",color:"#06B6D4"}),y=Math.max(1,Math.round((Number(s.istStdWoche)||0)-(Number(s.zielStdWoche)||0)));await v.mutateAsync({objective_id:c.id,title:"Zeitersparnis (h/Woche)",type:"number",measure_kind:"weekly_rate",start_value:0,target_value:y,current_value:0,unit:"h",milestones:null}),M.success("Als Fokus-Ziel übernommen ð¯"),n(!1)}catch(c){M.error((c==null?void 0:c.message)??"Konnte Fokus-Ziel nicht anlegen")}finally{m(null)}}return e.jsx(oe,{open:t,onOpenChange:n,children:e.jsxs(de,{className:"max-w-3xl max-h-[90vh] overflow-y-auto",children:[e.jsx(fe,{open:t}),e.jsxs(ue,{children:[e.jsx(he,{children:"ð ï¸ Hebel-Rechner"}),e.jsx(me,{children:"Automatisierungspriorität = Zeit à Häufigkeit à Fehleranfälligkeit. ROI = gesparte Stunden/Woche à Stundensatz à 4,33."})]}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[e.jsx("label",{className:"text-sm font-medium",children:"Stundensatz"}),e.jsx(_,{type:"number",inputMode:"decimal",value:r,onChange:s=>i(Number(s.target.value)),className:"h-9 w-28"}),e.jsx("span",{className:"text-sm text-muted-foreground",children:"â¬/Stunde"})]}),e.jsx("div",{className:"overflow-x-auto -mx-2",children:e.jsxs("table",{className:"w-full text-sm min-w-[720px]",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"text-left text-xs text-muted-foreground",children:[e.jsx("th",{className:"p-1.5",children:"Prozess"}),e.jsx("th",{className:"p-1.5",children:"Zeit (Min)"}),e.jsx("th",{className:"p-1.5",children:"/Woche"}),e.jsx("th",{className:"p-1.5",children:"Fehler 1â5"}),e.jsx("th",{className:"p-1.5",children:"Ist h/W"}),e.jsx("th",{className:"p-1.5",children:"Ziel h/W"}),e.jsx("th",{className:"p-1.5",children:"Score"}),e.jsx("th",{className:"p-1.5",children:"ROI"}),e.jsx("th",{className:"p-1.5"})]})}),e.jsx("tbody",{children:a.map((s,b)=>e.jsxs("tr",{className:"border-t align-top",children:[e.jsxs("td",{className:"p-1.5",children:[e.jsx(_,{value:s.row.name,onChange:c=>k(s.row.id,{name:c.target.value}),placeholder:"z. B. Angebote schreiben",className:"h-8 min-w-[140px]"}),b===0&&s.score>0&&e.jsxs(K,{className:"mt-1 bg-amber-500 hover:bg-amber-500 text-white",children:[e.jsx(ge,{className:"h-3 w-3 mr-1"})," Top-Hebel"]})]}),e.jsx("td",{className:"p-1.5",children:e.jsx(_,{type:"number",inputMode:"decimal",value:s.row.zeitMin,onChange:c=>k(s.row.id,{zeitMin:Number(c.target.value)}),className:"h-8 w-20"})}),e.jsx("td",{className:"p-1.5",children:e.jsx(_,{type:"number",inputMode:"decimal",value:s.row.freqWoche,onChange:c=>k(s.row.id,{freqWoche:Number(c.target.value)}),className:"h-8 w-20"})}),e.jsx("td",{className:"p-1.5",children:e.jsx(_,{type:"number",min:1,max:5,inputMode:"decimal",value:s.row.fehler,onChange:c=>k(s.row.id,{fehler:Math.max(1,Math.min(5,Number(c.target.value)||1))}),className:"h-8 w-16"})}),e.jsx("td",{className:"p-1.5",children:e.jsx(_,{type:"number",inputMode:"decimal",value:s.row.istStdWoche,onChange:c=>k(s.row.id,{istStdWoche:Number(c.target.value)}),className:"h-8 w-20"})}),e.jsx("td",{className:"p-1.5",children:e.jsx(_,{type:"number",inputMode:"decimal",value:s.row.zielStdWoche,onChange:c=>k(s.row.id,{zielStdWoche:Number(c.target.value)}),className:"h-8 w-20"})}),e.jsx("td",{className:"p-1.5",children:e.jsx(K,{variant:"outline",className:"font-mono",children:s.score})}),e.jsxs("td",{className:"p-1.5 text-xs whitespace-nowrap",children:["â ",H(s.euroProMonat)," â¬/Monat",e.jsxs("div",{className:"text-muted-foreground",children:["~",H(s.euroProJahr)," â¬/Jahr"]}),e.jsx(w,{type:"button",size:"sm",variant:"outline",className:"mt-1 h-7 text-xs",disabled:h===s.row.id,onClick:()=>g(s.row),children:"ð¯ Als Fokus-Ziel übernehmen"})]}),e.jsx("td",{className:"p-1.5",children:e.jsx(w,{type:"button",variant:"ghost",size:"icon",className:"h-8 w-8",onClick:()=>d(s.row.id),"aria-label":"Zeile löschen",children:e.jsx(ee,{className:"h-4 w-4"})})})]},s.row.id))})]})}),e.jsxs("div",{className:"flex items-center justify-between gap-2 flex-wrap",children:[e.jsxs(w,{type:"button",variant:"outline",size:"sm",onClick:x,children:[e.jsx(R,{className:"h-4 w-4 mr-1"})," Prozess hinzufügen"]}),e.jsxs("div",{className:"text-sm",children:[e.jsx("span",{className:"text-muted-foreground",children:"Gesamt-Einsparpotenzial: "}),e.jsxs("span",{className:"font-semibold text-primary",children:[H(C)," â¬/Monat"]})]})]})]})]})})}const Je={green:"bg-emerald-500",yellow:"bg-amber-500",red:"bg-rose-500"},Ye={green:"yellow",yellow:"red",red:"green"};function jt(){var q,J;const{activeObjectives:t,keyResults:n,updateObjective:r,archiveObjective:i,updateKeyResult:o}=U(),{profile:l,update:h}=je(),[m,f]=p.useState(null),[v,u]=p.useState(!1),[N,a]=p.useState(!1),[C,k]=p.useState(!1),[d,x]=p.useState(!1),[g,s]=p.useState(!1);p.useEffect(()=>{const j=()=>a(!0);return window.addEventListener("open-focus-bulk-link",j),()=>window.removeEventListener("open-focus-bulk-link",j)},[]);const b=t.length===0?0:t.reduce((j,S)=>
11j+te(S,n.data??[]),0)/t.length,c=((q=l.data)==null?void 0:q.cycle_start_date)??null,y=((J=l.data)==null?void 0:J.cycle_end_date)??null,D=Ne(c,y),le=be(c),G=ve(y);function O(){window.dispatchEvent(new Event("open-focus-wizard"))}async function ie(j){await h.mutateAsync({cycle_start_date:j.start,cycle_end_date:j.end}),M.success("Fokus-Phase aktualisiert")}return e.jsxs("div",{className:"space-y-4",children:[e.jsxs(Z,{className:"p-4",children:[e.jsxs("div",{className:"flex items-center justify-between gap-3 flex-wrap",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsx("div",{className:"text-xs uppercase tracking-wide text-muted-foreground",children:Y}),e.jsx("div",{className:"font-display text-xl",children:c?`Tag ${Math.min(le,D)} von ${D}`:Y}),e.jsxs("div",{className:"text-sm font-medium text-foreground mt-0.5",children:["Noch ",e.jsxs("span",{className:"text-primary",children:[G," ",G===1?"Tag":"Tage"]}),y&&e.jsxs("span",{className:"text-muted-foreground",children:[" · bis ",y]})]})]}),e.jsx("div",{className:"flex items-center gap-3",children:e.jsxs("div",{className:"text-right",children:[e.jsx("div",{className:"text-xs text-muted-foreground",children:"Gesamtfortschritt"}),e.jsxs("div",{className:"font-display text-2xl text-primary",children:[Math.round(b*100),"%"]})]})})]}),e.jsx(re,{value:b,className:"mt-3",hint:"Noch kein Fortschritt â leg los!"}),e.jsx("div",{className:"flex justify-end mt-2",children:e.jsxs(w,{variant:"ghost",size:"sm",onClick:()=>x(j=>!j),className:"text-xs",children:[e.jsx(we,{className:"h-3.5 w-3.5 mr-1"}),d?"SchlieÃen":"Phase ändern"]})}),d&&e.jsx("div",{className:"mt-2 p-3 rounded-md border bg-muted/30",children:e.jsx(ye,{value:c&&y?{start:c,end:y}:null,onChange:j=>{ie(j),x(!1)}})})]}),t.length===0&&e.jsxs(Z,{className:"p-6 text-center space-y-3",children:[e.jsx(ke,{className:"h-10 w-10 mx-auto text-muted-foreground"}),e.jsxs("h3",{className:"font-display text-lg",children:["Noch keine ",z]}),e.jsxs("p",{className:"text-sm text-muted-foreground",children:["Starte die Grundkonfiguration und leg in 5 Minuten Deine ",z," für die nächsten 90 Tage fest."]}),e.jsxs("div",{className:"flex gap-2 justify-center flex-wrap",children:[e.jsx(w,{onClick:O,children:"Grundkonfiguration starten"}),e.jsx(w,{variant:"outline",onClick:()=>k(!0),children:"ð ï¸ Hebel-Rechner"})]})]}),t.map(j=>e.jsx(Ve,{o:j,krs:(n.data??[]).filter(S=>S.objective_id===j.id),onConfidence:()=>r.mutate({id:j.id,confidence:Ye[j.confidence]}),onArchive:()=>f(j),onKrUpdate:(S,ce)=>o.mutate({id:S,...ce})},j.id)),t.length>0&&e.jsxs("div",{className:"flex gap-2 justify-center pt-2 flex-wrap",children:[e.jsxs(w,{variant:"outline",size:"sm",onClick:()=>t.length>=3?u(!0):O(),children:[e.jsx(R,{className:"h-4 w-4 mr-1"})," ",T," hinzufügen"]}),e.jsxs(w,{variant:"outline",size:"sm",onClick:()=>a(!0),children:[e.jsx(He,{className:"h-4 w-4 mr-1"})," Bestehende Aufgaben zuordnen"]}),e.jsx(w,{variant:"outline",size:"sm",onClick:()=>k(!0),children:"ð ï¸ Hebel-Rechner"}),e.jsxs(w,{variant:"outline",size:"sm",onClick:()=>s(!0),children:[e.jsx(Ce,{className:"h-4 w-4 mr-1"})," Grundkonfiguration neu starten"]})]}),e.jsx(W,{open:g,onOpenChange:s,children:e.jsxs(P,{children:[e.jsxs(L,{children:[e.jsx(F,{children:"Grundkonfiguration neu starten?"}),e.jsxs(I,{children:["Du gehst nochmal durch den 5-Minuten-Wizard und legst Deine Fokus-Phase und ",z," neu fest. Bestehende ",z," bleiben erhalten â Du kannst aber neue hinzufügen oder Deine Phase überschreiben.",e.jsx("span",{className:"block mt-2 text-xs",children:"ð¡ Tipp: Erstelle/Exportiere vorher ein Backup (Profil â Backup/Export), dann kannst Du den Stand wiederherstellen."})]})]}),e.jsxs(B,{children:[e.jsx(X,{children:"Abbrechen"}),e.jsx($,{onClick:()=>{s(!1),O()},children:"Ja, neu starten"})]})]})}),e.jsx(_e,{open:N,onOpenChange:a}),e.jsx(qe,{open:C,onOpenChange:k}),e.jsx(W,{open:!!m,onOpenChange:j=>!j&&f(null),children:e.jsxs(P,{children:[e.jsxs(L,{children:[e.jsxs(F,{children:[m==null?void 0:m.title," archivieren?"]}),e.jsxs(I,{children:["Verknüpfte Aufgaben verlieren ihren ",T,"-Bezug (bleiben aber erhalten)."]})]}),e.jsxs(B,{children:[e.jsx(X,{children:"Abbrechen"}),e.jsx($,{onClick:()=>{m&&i.mutate(m.id),f(null),M.success(`${T} archiviert`)},children:"Archivieren"})]})]})}),e.jsx(W,{open:v,onOpenChange:u,children:e.jsxs(P,{children:[e.jsxs(L,{children:[e.jsxs(F,{children:["Drei ",z," reichen."]}),e.jsx(I,{children:"Mehr als drei zerstreuen den Fokus. Willst Du eines ersetzen? Archiviere es zuerst."})]}),e.jsx(B,{children:e.jsx($,{onClick:()=>u(!1),children:"Verstanden"})})]})})]})}function Ve({o:t,krs:n,onConfidence:r,onArchive:i,onKrUpdate:o}){const[l,h]=p.useState(!1),m=te(t,n),f=t.color||Me[t.category]||"#F15F22";async function v(){const u=[];u.push(`${t.icon??"ð¯"} ${t.title}`),u.push(`Kategorie: ${V[t.category]}`),u.push(`Fortschritt: ${Math.round(m*100)}%`),n.length>
110&&(u.push(""),n.forEach(a=>{let C=`⢠${a.title} â ${Math.round(se(a)*100)}%`;a.target_value!=null&&(C+=` (${a.current_value??0}/${a.target_value}${a.unit?" "+a.unit:""})`),u.push(C)}));const N=u.join(` 12`);try{typeof navigator<"u"&&navigator.share?await navigator.share({title:t.title,text:N}):(await navigator.clipboard.writeText(N),M.success("In die Zwischenablage kopiert"))}catch{try{await navigator.clipboard.writeText(N),M.success("In die Zwischenablage kopiert")}catch{}}}return e.jsxs(Z,{className:"p-4 border-l-4",style:{borderLeftColor:f},children:[e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("span",{className:"text-2xl",children:t.icon}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[e.jsx("h3",{className:"font-medium",children:t.title}),e.jsx(K,{variant:"outline",className:"text-[10px]",children:V[t.category]})]}),e.jsxs("div",{className:"flex items-center gap-2 mt-2",children:[e.jsx(re,{value:m,className:"flex-1",hint:"Noch kein Fortschritt â leg los!"}),e.jsxs("span",{className:"text-xs font-medium text-muted-foreground w-10 text-right",children:[Math.round(m*100),"%"]})]})]}),e.jsxs("div",{className:"flex items-center gap-1 shrink-0 mt-1",children:[e.jsx(w,{variant:"ghost",size:"icon",className:"h-7 w-7","aria-label":"Ziel teilen",onClick:v,children:e.jsx(Ae,{className:"h-3.5 w-3.5"})}),e.jsx("button",{onClick:r,"aria-label":`Ampel: ${t.confidence}`,className:A("h-3 w-3 rounded-full mt-1",Je[t.confidence])})]})]}),e.jsxs(Se,{open:l,onOpenChange:h,children:[e.jsxs(ze,{className:"w-full flex items-center justify-center gap-1 mt-3 text-xs text-muted-foreground hover:text-foreground",children:[e.jsx(Be,{className:A("h-3 w-3 transition",l&&"rotate-180")}),l?"Weniger":`${n.length} ${De}`]}),e.jsxs(Ee,{className:"mt-3 space-y-2",children:[n.map(u=>e.jsx(Qe,{kr:u,onUpdate:N=>o(u.id,N)},u.id)),n.length===0&&e.jsx("p",{className:"text-xs text-muted-foreground text-center py-2",children:"Noch keine Messpunkte."}),e.jsx(Xe,{objective:t,color:f}),e.jsx("div",{className:"flex gap-2 pt-2 border-t",children:e.jsxs(w,{variant:"ghost",size:"sm",onClick:i,className:"text-muted-foreground",children:[e.jsx($e,{className:"h-3.5 w-3.5 mr-1"})," Archivieren"]})})]})]})]})}function re({value:t,hint:n,className:r}){const i=Math.max(0,Math.min(1,t))*100;return i<=0?e.jsx("div",{className:A("relative h-2 w-full rounded-full bg-muted overflow-hidden",r),children:e.jsx("span",{className:"absolute inset-0 flex items-center justify-center text-[10px] text-muted-foreground italic px-2 truncate",children:n})}):e.jsx(Re,{value:i,className:A("h-2",r)})}function Xe({objective:t,color:n}){const{allTodos:r,tags:i,toggleDone:o,reopenTodo:l}=xe(),{todoObjectives:h}=Oe(),m=h.data??new Map,f=new Map;(i.data??[]).forEach(a=>{a.objective_id&&f.set(a.name,a.objective_id)});const v=(r??[]).filter(a=>(m.get(a.id)??[]).includes(t.id)?!0:(a.objective_id??(a.tag?f.get(a.tag):null)??null)===t.id),u=v.filter(a=>!a.done),N=v.length-u.length;return e.jsxs("div",{className:"pt-2 border-t space-y-1.5",children:[e.jsxs("div",{className:"flex items-center justify-between text-[11px] text-muted-foreground",children:[e.jsx("span",{className:"font-medium",children:"Zugeordnete Aufgaben"}),e.jsxs("span",{children:[N," erledigt / ",v.length," gesamt"]})]}),v.length===0?e.jsxs("div",{className:"text-xs text-muted-foreground py-1",children:["Noch keine Aufgaben zugeordnet â"," ",e.jsx("button",{type:"button",onClick:()=>window.dispatchEvent(new Event("open-focus-bulk-link")),className:"underline hover:text-foreground",children:"Bestehende Aufgaben zuordnen"})]}):u.length===0?e.jsx("div",{className:"text-xs text-emerald-600 dark:text-emerald-400",children:"Alle erledigt â stark! ð"}):e.jsx("ul",{className:"space-y-1",children:u.map(a=>e.jsxs("li",{className:"flex items-start gap-2 rounded-md p-1.5 bg-background border",style:{borderLeft:`3px solid ${n}`},children:[e.jsx(Ie,{checked:a.done,onCheckedChange:()=>{if(!a.done){const C=pe[a.prio]??0;M(`Aufgabe abgehakt · +${C}${a.important?"+5":""} Pkt`,{duration:4e3,action:{label:"Rückgängig",onClick:()=>l.mutate(a.id)}})}o.mutate(a)},className:"h-4 w-4 mt-0.5"}),e.jsx("span",{className:"text-xs flex-1 min-w-0 leading-snug break-words",children:a.text}),e.jsx("span",{className:A("shrink-0 text-[10px] font-semibold px-1.5 py-0.5 rounded border",a.prio==="A"&&"bg-prio-a/15 text-prio-a border-prio-a/30",a.prio==="B"&&"bg-prio-b/15 text-prio-b border-prio-b/30",a.prio==="C"&&"bg-prio-c/15 text-prio-c border-prio-c/30"),children:a.prio})]},a.id))})]})}function Qe({kr:t,onUpdate:n}){const r=se(t),i=t.measure_kind??"stock";return e.jsxs("div",{className:"p-2 rounded-md bg-muted/40",children:[e.jsxs("div",{className:"flex items-center justify-between gap-2",children:[e.jsxs("span",{className:"text-sm flex-1 min-w-0 truncate",children:[i==="counter"?"ð¢ ":i==="weekly_rate"?"ð ":"",t.title]}),e.jsxs("span",{className:"text-xs text-muted-foreground",children:[Math.round(r*100),"%"]})]}),(t.type==="number"||t.type==="percent")&&i==="stock"&&e.jsxs("div",{className:"flex items-center gap-2 mt-1",children:[e.jsx(w,{variant:"ghost",size:"icon",className:"h-7 w-7",onClick:()=>n({current_value:Math.max(0,(t.current_value??t.start_value??0)-1)}),children:e.jsx(Ze,{className:"h-3 w-3"})}),e.jsx(_,{type:"number",value:t.current_value??0,onChange:o=>n({current_value:Number(o.target.value)}),className:"h-7 text-sm w-20 text-center"}),e.jsx(w,{variant:"ghost",size:"icon",className:"h-7 w-7",onClick:()=>n({current_value:(t.current_value??t.start_value??0)+1}),children:e.jsx(R,{className:"h-3 w-3"})}),e.jsxs("span",{className:"text-xs text-muted-foreground",children:[t.type==="percent"?"%":t.unit||""," ",t.target_value!=null&&`/ ${t.target_value}`]})]}),(t.type==="number"||t.type==="percent")&&i==="counter"&&e.jsx(Ue,{kr:t,onUpdate:n}),(t.type==="number"||t.type==="percent")&&i==="weekly_rate"&&e.jsx(et,{kr:t,onUpdate:n}),t.type==="milestone"&&i!=="weekly_rate"&&e.jsx(st,{kr:t,onUpdate:n}),t.type==="auto"&&e.jsx("div",{className:"text-xs text-muted-foreground mt-1",children:"Fortschritt zählt automatisch Deine erledigten Aufgaben."}),e.jsx(tt,{kr:t,onUpdate:n})]})}function Ue({kr:t,onUpdate:n}){const r=Number(t.current_value??0),i=Number(t.target_value??0);return e.jsxs("div",{className:"flex items-center gap-2 mt-2",children:[e.jsx(w,{size:"sm",onClick:()=>n({current_value:r+1}),className:"font-bold",children:"+1"}),e.jsx(_,{type:"number",value:r,onChange:o=>n({current_value:Number(o.target.value)}),className:"h-8 text-sm w-20 text-center"}),e.jsxs("span",{className:"text-xs text-muted-foreground",children:[t.unit||"Anzahl"," / ",i]})]})}function et({kr:t,onUpdate:n}){const r=Te(t);r&&setTimeout(()=>n(r),0);const i=We(t),o=Number(t.target_value??0),l=Pe(t);return e.jsxs("div",{className:"space-y-1 mt-2",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(w,{size:"sm",onClick:()=>{const h=i+1,m=Array.isArray(t.milestones)?[...t.milestones]:[],f=Le(),v=m[m.length-1];v&&v.week===f?m[m.length-1]={week:f,count:h}:m.push({week:f,count:h}),n({current_value:h,milestones:m})},className:"font-bold",children:"+1 diese Woche"}),e.jsxs("span",{className:"text-xs text-muted-foreground",children:[i," / ",o," ",t.unit||""]})]}),e.jsxs("div",{className:"text-[10px] text-muted-foreground",children:["Soll geschafft in ",l.met," von ",l.total," ",l.total===1?"Woche":"Wochen"]})]})}function tt({kr:t,onUpdate:n}){const[r,i]=p.useState(!1);if(t.type!=="number"&&t.type!=="percent")return null;const o=t.measure_kind??"stock";return e.jsxs("div",{className:"mt-2",children:[e.jsxs("button",{onClick:()=>i(l=>!l),className:"text-[10px] text-muted-foreground hover:underline",children:["Mess-Art: ",o==="counter"?"ð¢ Zähler":o==="weekly_rate"?"ð Pro Woche":"ð Stand"," ",r?"â¾":"â¸"]}),r&&e.jsx("div",{className:"mt-1 flex gap-1 flex-wrap",children:["stock","counter","weekly_rate"].map(l=>e.jsx("button",{onClick:()=>
12{if(l===o){i(!1);return}const h={measure_kind:l};l==="counter"&&(h.current_value=0,h.start_value=0,h.milestones=null),l==="weekly_rate"&&(h.current_value=0,h.start_value=0,h.milestones=[]),l==="stock"&&(o==="counter"||o==="weekly_rate")&&(h.milestones=null),n(h),i(!1)},className:A("text-[10px] px-2 py-0.5 rounded border",l===o?"border-primary bg-primary/10":"border-border hover:bg-muted/40"),children:l==="counter"?"ð¢ Zähler":l==="weekly_rate"?"ð
Pro Woche":"ð Stand"},l))})]})}function st({kr:t,onUpdate:n}){const r=Array.isArray(t.milestones)?t.milestones:[],[i,o]=p.useState(null),[l,h]=p.useState(""),[m,f]=p.useState(!1),[v,u]=p.useState("");function N(d){n({milestones:d})}function a(d){const x=l.trim();if(!x){o(null);return}const g=[...r];g[d]={...g[d],text:x},N(g),o(null)}function C(){const d=v.trim();if(!d){f(!1),u("");return}N([...r,{text:d,done:!1}]),u(""),f(!1)}function k(d){const x=r.filter((g,s)=>s!==d);N(x)}return e.jsxs("div",{className:"space-y-1 mt-1",children:[r.map((d,x)=>e.jsxs("div",{className:"flex items-center gap-2 text-xs",children:[e.jsx("input",{type:"checkbox",checked:!!d.done,onChange:()=>{const g=[...r];g[x]={...g[x],done:!g[x].done},N(g)}}),i===x?e.jsx(_,{autoFocus:!0,defaultValue:d.text,onChange:g=>h(g.target.value),onBlur:()=>a(x),onKeyDown:g=>{g.key==="Enter"?(g.preventDefault(),a(x)):g.key==="Escape"&&(g.preventDefault(),o(null))},className:"h-6 text-xs flex-1"}):e.jsx("span",{className:A("flex-1 cursor-text",d.done&&"line-through text-muted-foreground"),onDoubleClick:()=>{h(d.text),o(x)},children:d.text}),i!==x&&e.jsx("button",{onClick:()=>{h(d.text),o(x)},className:"text-muted-foreground hover:text-foreground","aria-label":"Meilenstein bearbeiten",children:e.jsx(Fe,{className:"h-3 w-3"})}),e.jsx("button",{onClick:()=>k(x),className:"text-destructive/80 hover:text-destructive","aria-label":"Meilenstein löschen",children:e.jsx(ee,{className:"h-3 w-3"})})]},x)),m?e.jsx("div",{className:"flex items-center gap-2",children:e.jsx(_,{autoFocus:!0,value:v,onChange:d=>u(d.target.value),onBlur:C,onKeyDown:d=>{d.key==="Enter"?(d.preventDefault(),C()):d.key==="Escape"&&(d.preventDefault(),f(!1),u(""))},placeholder:"Neuer Meilensteinâ¦",className:"h-6 text-xs flex-1"})}):e.jsxs("button",{onClick:()=>f(!0),className:"text-[11px] text-muted-foreground hover:text-foreground inline-flex items-center gap-1",children:[e.jsx(R,{className:"h-3 w-3"})," Meilenstein"]})]})}export{jt as TabHebel};
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.