ai-agent-session-center 2.9.7 → 2.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- import{y as j,h as i,k as e,o as M}from"./index-C8k9FEpq.js";const A="_container_pmjze_6",F="_filterBar_pmjze_15",P="_toggleLabel_pmjze_42",$="_taskList_pmjze_61",U="_groupHeader_pmjze_69",Y="_groupChevron_pmjze_78",G="_collapsed_pmjze_86",V="_groupLabel_pmjze_90",W="_groupCount_pmjze_99",q="_taskCard_pmjze_107",K="_completed_pmjze_124",J="_taskTitle_pmjze_128",Q="_overdue_pmjze_133",X="_dueToday_pmjze_138",Z="_checkbox_pmjze_145",ee="_taskContent_pmjze_160",te="_taskHeader_pmjze_165",se="_taskTitleInput_pmjze_189",ae="_priorityBadge_pmjze_204",ne="_priorityUrgent_pmjze_215",oe="_priorityHigh_pmjze_221",le="_priorityMedium_pmjze_227",ie="_priorityLow_pmjze_233",re="_taskMeta_pmjze_241",ce="_dueDate_pmjze_249",de="_dueDateOverdue_pmjze_255",ue="_dueDateToday_pmjze_259",pe="_tag_pmjze_263",me="_tagInput_pmjze_278",ge="_addTagBtn_pmjze_291",he="_description_pmjze_311",_e="_descriptionToggle_pmjze_321",je="_deleteBtn_pmjze_338",fe="_addForm_pmjze_359",ve="_titleInput_pmjze_402",xe="_tagsInput_pmjze_407",ye="_addBtn_pmjze_412",Te="_emptyState_pmjze_438",Ce="_loading_pmjze_459",ke="_stats_pmjze_472",De="_statsSep_pmjze_482",be="_confirmOverlay_pmjze_488",we="_confirmBtn_pmjze_497",ze="_cancelBtn_pmjze_512",s={container:A,filterBar:F,toggleLabel:P,taskList:$,groupHeader:U,groupChevron:Y,collapsed:G,groupLabel:V,groupCount:W,taskCard:q,completed:K,taskTitle:J,overdue:Q,dueToday:X,checkbox:Z,taskContent:ee,taskHeader:te,taskTitleInput:se,priorityBadge:ae,priorityUrgent:ne,priorityHigh:oe,priorityMedium:le,priorityLow:ie,taskMeta:re,dueDate:ce,dueDateOverdue:de,dueDateToday:ue,tag:pe,tagInput:me,addTagBtn:ge,description:he,descriptionToggle:_e,deleteBtn:je,addForm:fe,titleInput:ve,tagsInput:xe,addBtn:ye,emptyState:Te,loading:Ce,stats:ke,statsSep:De,confirmOverlay:be,confirmBtn:we,cancelBtn:ze},Se=[{value:"all",label:"All priorities"},{value:"urgent",label:"Urgent"},{value:"high",label:"High"},{value:"medium",label:"Medium"},{value:"low",label:"Low"}],Ne=[{value:"priority",label:"Priority"},{value:"dueDate",label:"Due date"},{value:"createdAt",label:"Created"}];function Be(){const t=j(l=>l.filter),o=j(l=>l.setFilter),n=i.useCallback(l=>o({search:l}),[o]),c=i.useCallback(l=>o({priority:l.target.value}),[o]),d=i.useCallback(l=>o({sortBy:l.target.value}),[o]),p=i.useCallback(()=>o({showCompleted:!t.showCompleted}),[o,t.showCompleted]);return e.jsxs("div",{className:s.filterBar,children:[e.jsx(M,{value:t.search,onChange:n,placeholder:"Search tasks...",debounceMs:200}),e.jsx("select",{value:t.priority,onChange:c,children:Se.map(l=>e.jsx("option",{value:l.value,children:l.label},l.value))}),e.jsx("select",{value:t.sortBy,onChange:d,children:Ne.map(l=>e.jsx("option",{value:l.value,children:l.label},l.value))}),e.jsxs("label",{className:s.toggleLabel,children:[e.jsx("input",{type:"checkbox",checked:t.showCompleted,onChange:p}),"Show completed"]})]})}const Ie={urgent:s.priorityUrgent,high:s.priorityHigh,medium:s.priorityMedium,low:s.priorityLow};function Le(t){if(!t)return null;const o=new Date;o.setHours(0,0,0,0);const n=new Date(t+"T00:00:00");return n<o?"overdue":n.getTime()===o.getTime()?"today":"future"}function He(t){return new Date(t+"T00:00:00").toLocaleDateString("en-US",{month:"short",day:"numeric"})}function N({task:t}){const o=j(a=>a.toggleTask),n=j(a=>a.updateTask),c=j(a=>a.deleteTask),[d,p]=i.useState(!1),[l,h]=i.useState(t.title),[_,v]=i.useState(!1),[u,y]=i.useState(""),[T,r]=i.useState(!1),[f,g]=i.useState(!1),C=i.useRef(null),b=i.useRef(null);i.useEffect(()=>{d&&(C.current?.focus(),C.current?.select())},[d]),i.useEffect(()=>{_&&b.current?.focus()},[_]),i.useEffect(()=>{d||h(t.title)},[t.title,d]);const k=i.useCallback(()=>{p(!1);const a=l.trim();a&&a!==t.title?n(t.id,{title:a}):h(t.title)},[l,t.id,t.title,n]),w=i.useCallback(()=>{o(t.id)},[o,t.id]),m=i.useCallback(()=>{c(t.id),g(!1)},[c,t.id]),x=i.useCallback(()=>{y(t.tags.join(", ")),v(!0)},[t.tags]),S=i.useCallback(()=>{v(!1);const a=u.split(",").map(R=>R.trim()).filter(Boolean),O=t.tags.join(","),E=a.join(",");O!==E&&n(t.id,{tags:a})},[u,t.id,t.tags,n]),D=Le(t.dueDate),z=[s.taskCard];return t.completed&&z.push(s.completed),!t.completed&&D==="overdue"&&z.push(s.overdue),!t.completed&&D==="today"&&z.push(s.dueToday),e.jsxs("div",{className:z.join(" "),children:[e.jsx("input",{type:"checkbox",className:s.checkbox,checked:t.completed,onChange:w,"aria-label":`Mark "${t.title}" as ${t.completed?"incomplete":"complete"}`}),e.jsxs("div",{className:s.taskContent,children:[e.jsxs("div",{className:s.taskHeader,children:[d?e.jsx("input",{ref:C,className:s.taskTitleInput,value:l,onChange:a=>h(a.target.value),onBlur:k,onKeyDown:a=>{a.key==="Enter"&&(a.preventDefault(),k()),a.key==="Escape"&&(h(t.title),p(!1))},onClick:a=>a.stopPropagation()}):e.jsx("span",{className:s.taskTitle,onClick:()=>{h(t.title),p(!0)},title:"Click to edit",children:t.title}),e.jsx("span",{className:`${s.priorityBadge} ${Ie[t.priority]}`,children:t.priority})]}),e.jsxs("div",{className:s.taskMeta,children:[t.dueDate&&e.jsxs("span",{className:`${s.dueDate} ${D==="overdue"?s.dueDateOverdue:""} ${D==="today"?s.dueDateToday:""}`,children:[D==="overdue"&&"Overdue: ",D==="today"&&"Today: ",He(t.dueDate)]}),_?e.jsx("input",{ref:b,className:s.tagInput,value:u,onChange:a=>y(a.target.value),onBlur:S,onKeyDown:a=>{a.key==="Enter"&&(a.preventDefault(),S()),a.key==="Escape"&&v(!1)},onClick:a=>a.stopPropagation(),placeholder:"tag1, tag2, ..."}):e.jsxs(e.Fragment,{children:[t.tags.map(a=>e.jsx("span",{className:s.tag,onClick:x,title:"Click to edit tags",style:{cursor:"pointer"},children:a},a)),e.jsx("button",{className:s.addTagBtn,onClick:x,title:"Add / edit tags",children:"+"})]})]}),t.description&&e.jsxs(e.Fragment,{children:[e.jsx("button",{className:s.descriptionToggle,onClick:()=>r(a=>!a),children:T?"- Hide details":"+ Show details"}),T&&e.jsx("div",{className:s.description,children:t.description})]})]}),f?e.jsxs("div",{className:s.confirmOverlay,children:[e.jsx("span",{children:"Delete?"}),e.jsx("button",{className:s.confirmBtn,onClick:m,children:"Yes"}),e.jsx("button",{className:s.cancelBtn,onClick:()=>g(!1),children:"No"})]}):e.jsx("button",{className:s.deleteBtn,onClick:()=>g(!0),"aria-label":`Delete "${t.title}"`,title:"Delete task",children:e.jsxs("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[e.jsx("polyline",{points:"3 6 5 6 21 6"}),e.jsx("path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"})]})})]})}function Oe(){const t=j(u=>u.createTask),[o,n]=i.useState(""),[c,d]=i.useState("medium"),[p,l]=i.useState(""),[h,_]=i.useState(""),v=i.useCallback(u=>{u.preventDefault();const y=o.trim();if(!y)return;const T=h.split(",").map(r=>r.trim()).filter(Boolean);t({title:y,priority:c,tags:T,dueDate:p||void 0}),n(""),d("medium"),l(""),_("")},[o,c,p,h,t]);return e.jsxs("form",{className:s.addForm,onSubmit:v,children:[e.jsx("input",{type:"text",className:s.titleInput,placeholder:"New task title...",value:o,onChange:u=>n(u.target.value),required:!0}),e.jsxs("select",{value:c,onChange:u=>d(u.target.value),children:[e.jsx("option",{value:"urgent",children:"Urgent"}),e.jsx("option",{value:"high",children:"High"}),e.jsx("option",{value:"medium",children:"Medium"}),e.jsx("option",{value:"low",children:"Low"})]}),e.jsx("input",{type:"date",value:p,onChange:u=>l(u.target.value),title:"Due date (optional)"}),e.jsx("input",{type:"text",className:s.tagsInput,placeholder:"Tags (comma-sep)",value:h,onChange:u=>_(u.target.value)}),e.jsx("button",{type:"submit",className:s.addBtn,disabled:!o.trim(),children:"ADD"})]})}const B=["urgent","high","medium","low"],I={urgent:0,high:1,medium:2,low:3},Ee={urgent:"Urgent",high:"High",medium:"Medium",low:"Low"};function Re(t,o,n,c){if(n!=="all"&&t.priority!==n||c!=="all"&&!t.tags.includes(c))return!1;if(o){const d=o.toLowerCase(),p=t.title.toLowerCase().includes(d),l=(t.description??"").toLowerCase().includes(d);if(!p&&!l)return!1}return!0}function L(t,o){return[...t].sort((n,c)=>{if(o==="priority"){const d=I[n.priority],p=I[c.priority];return d!==p?d-p:new Date(c.createdAt).getTime()-new Date(n.createdAt).getTime()}return o==="dueDate"?!n.dueDate&&!c.dueDate?0:n.dueDate?c.dueDate?n.dueDate.localeCompare(c.dueDate):-1:1:new Date(c.createdAt).getTime()-new Date(n.createdAt).getTime()})}function H({label:t,count:o,collapsed:n,onToggle:c}){return e.jsxs("div",{className:s.groupHeader,onClick:c,children:[e.jsx("svg",{className:`${s.groupChevron} ${n?s.collapsed:""}`,width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:e.jsx("polyline",{points:"6 9 12 15 18 9"})}),e.jsx("span",{className:s.groupLabel,children:t}),e.jsx("span",{className:s.groupCount,children:o})]})}function Ae(){const t=j(r=>r.tasks),o=j(r=>r.loading),n=j(r=>r.filter),c=j(r=>r.fetchTasks),[d,p]=i.useState(new Set);i.useEffect(()=>{c()},[c]);const l=i.useCallback(r=>{p(f=>{const g=new Set(f);return g.has(r)?g.delete(r):g.add(r),g})},[]),{groups:h,completedTasks:_,totalIncomplete:v,totalCompleted:u}=i.useMemo(()=>{const f=[...t.values()].filter(m=>Re(m,n.search,n.priority,n.tag)),g=f.filter(m=>!m.completed),C=f.filter(m=>m.completed),b=L(g,n.sortBy),k=new Map;for(const m of B)k.set(m,[]);for(const m of b){const x=k.get(m.priority);x&&x.push(m)}const w=[];for(const m of B){const x=k.get(m)??[];x.length>0&&w.push({id:m,label:Ee[m],tasks:x})}return{groups:w,completedTasks:L(C,n.sortBy),totalIncomplete:g.length,totalCompleted:C.length}},[t,n]);if(o)return e.jsx("div",{className:s.container,children:e.jsx("div",{className:s.loading,children:"Loading tasks..."})});const y=h.length===0&&_.length===0,T=t.size===0;return e.jsxs("div",{className:s.container,"data-testid":"agenda-view",children:[e.jsx(Be,{}),e.jsxs("div",{className:s.stats,children:[e.jsxs("span",{children:[v," task",v!==1?"s":""]}),e.jsx("span",{className:s.statsSep,children:"|"}),e.jsxs("span",{children:[u," completed"]})]}),e.jsx("div",{className:s.taskList,children:T?e.jsxs("div",{className:s.emptyState,children:[e.jsx("div",{children:"No tasks yet"}),e.jsx("span",{children:"Add your first task below"})]}):y?e.jsxs("div",{className:s.emptyState,children:[e.jsx("div",{children:"No tasks match the current filter"}),e.jsx("span",{children:"Try adjusting your search or filter criteria"})]}):e.jsxs(e.Fragment,{children:[h.map(r=>{const f=d.has(r.id);return e.jsxs("div",{children:[e.jsx(H,{label:r.label,count:r.tasks.length,collapsed:f,onToggle:()=>l(r.id)}),!f&&r.tasks.map(g=>e.jsx(N,{task:g},g.id))]},r.id)}),n.showCompleted&&_.length>0&&e.jsxs("div",{children:[e.jsx(H,{label:"Completed",count:_.length,collapsed:d.has("__completed__"),onToggle:()=>l("__completed__")}),!d.has("__completed__")&&_.map(r=>e.jsx(N,{task:r},r.id))]})]})}),e.jsx(Oe,{})]})}export{Ae as default};
1
+ import{y as j,h as i,k as e,o as M}from"./index-CGTrscK-.js";const A="_container_pmjze_6",F="_filterBar_pmjze_15",P="_toggleLabel_pmjze_42",$="_taskList_pmjze_61",U="_groupHeader_pmjze_69",Y="_groupChevron_pmjze_78",G="_collapsed_pmjze_86",V="_groupLabel_pmjze_90",W="_groupCount_pmjze_99",q="_taskCard_pmjze_107",K="_completed_pmjze_124",J="_taskTitle_pmjze_128",Q="_overdue_pmjze_133",X="_dueToday_pmjze_138",Z="_checkbox_pmjze_145",ee="_taskContent_pmjze_160",te="_taskHeader_pmjze_165",se="_taskTitleInput_pmjze_189",ae="_priorityBadge_pmjze_204",ne="_priorityUrgent_pmjze_215",oe="_priorityHigh_pmjze_221",le="_priorityMedium_pmjze_227",ie="_priorityLow_pmjze_233",re="_taskMeta_pmjze_241",ce="_dueDate_pmjze_249",de="_dueDateOverdue_pmjze_255",ue="_dueDateToday_pmjze_259",pe="_tag_pmjze_263",me="_tagInput_pmjze_278",ge="_addTagBtn_pmjze_291",he="_description_pmjze_311",_e="_descriptionToggle_pmjze_321",je="_deleteBtn_pmjze_338",fe="_addForm_pmjze_359",ve="_titleInput_pmjze_402",xe="_tagsInput_pmjze_407",ye="_addBtn_pmjze_412",Te="_emptyState_pmjze_438",Ce="_loading_pmjze_459",ke="_stats_pmjze_472",De="_statsSep_pmjze_482",be="_confirmOverlay_pmjze_488",we="_confirmBtn_pmjze_497",ze="_cancelBtn_pmjze_512",s={container:A,filterBar:F,toggleLabel:P,taskList:$,groupHeader:U,groupChevron:Y,collapsed:G,groupLabel:V,groupCount:W,taskCard:q,completed:K,taskTitle:J,overdue:Q,dueToday:X,checkbox:Z,taskContent:ee,taskHeader:te,taskTitleInput:se,priorityBadge:ae,priorityUrgent:ne,priorityHigh:oe,priorityMedium:le,priorityLow:ie,taskMeta:re,dueDate:ce,dueDateOverdue:de,dueDateToday:ue,tag:pe,tagInput:me,addTagBtn:ge,description:he,descriptionToggle:_e,deleteBtn:je,addForm:fe,titleInput:ve,tagsInput:xe,addBtn:ye,emptyState:Te,loading:Ce,stats:ke,statsSep:De,confirmOverlay:be,confirmBtn:we,cancelBtn:ze},Se=[{value:"all",label:"All priorities"},{value:"urgent",label:"Urgent"},{value:"high",label:"High"},{value:"medium",label:"Medium"},{value:"low",label:"Low"}],Ne=[{value:"priority",label:"Priority"},{value:"dueDate",label:"Due date"},{value:"createdAt",label:"Created"}];function Be(){const t=j(l=>l.filter),o=j(l=>l.setFilter),n=i.useCallback(l=>o({search:l}),[o]),c=i.useCallback(l=>o({priority:l.target.value}),[o]),d=i.useCallback(l=>o({sortBy:l.target.value}),[o]),p=i.useCallback(()=>o({showCompleted:!t.showCompleted}),[o,t.showCompleted]);return e.jsxs("div",{className:s.filterBar,children:[e.jsx(M,{value:t.search,onChange:n,placeholder:"Search tasks...",debounceMs:200}),e.jsx("select",{value:t.priority,onChange:c,children:Se.map(l=>e.jsx("option",{value:l.value,children:l.label},l.value))}),e.jsx("select",{value:t.sortBy,onChange:d,children:Ne.map(l=>e.jsx("option",{value:l.value,children:l.label},l.value))}),e.jsxs("label",{className:s.toggleLabel,children:[e.jsx("input",{type:"checkbox",checked:t.showCompleted,onChange:p}),"Show completed"]})]})}const Ie={urgent:s.priorityUrgent,high:s.priorityHigh,medium:s.priorityMedium,low:s.priorityLow};function Le(t){if(!t)return null;const o=new Date;o.setHours(0,0,0,0);const n=new Date(t+"T00:00:00");return n<o?"overdue":n.getTime()===o.getTime()?"today":"future"}function He(t){return new Date(t+"T00:00:00").toLocaleDateString("en-US",{month:"short",day:"numeric"})}function N({task:t}){const o=j(a=>a.toggleTask),n=j(a=>a.updateTask),c=j(a=>a.deleteTask),[d,p]=i.useState(!1),[l,h]=i.useState(t.title),[_,v]=i.useState(!1),[u,y]=i.useState(""),[T,r]=i.useState(!1),[f,g]=i.useState(!1),C=i.useRef(null),b=i.useRef(null);i.useEffect(()=>{d&&(C.current?.focus(),C.current?.select())},[d]),i.useEffect(()=>{_&&b.current?.focus()},[_]),i.useEffect(()=>{d||h(t.title)},[t.title,d]);const k=i.useCallback(()=>{p(!1);const a=l.trim();a&&a!==t.title?n(t.id,{title:a}):h(t.title)},[l,t.id,t.title,n]),w=i.useCallback(()=>{o(t.id)},[o,t.id]),m=i.useCallback(()=>{c(t.id),g(!1)},[c,t.id]),x=i.useCallback(()=>{y(t.tags.join(", ")),v(!0)},[t.tags]),S=i.useCallback(()=>{v(!1);const a=u.split(",").map(R=>R.trim()).filter(Boolean),O=t.tags.join(","),E=a.join(",");O!==E&&n(t.id,{tags:a})},[u,t.id,t.tags,n]),D=Le(t.dueDate),z=[s.taskCard];return t.completed&&z.push(s.completed),!t.completed&&D==="overdue"&&z.push(s.overdue),!t.completed&&D==="today"&&z.push(s.dueToday),e.jsxs("div",{className:z.join(" "),children:[e.jsx("input",{type:"checkbox",className:s.checkbox,checked:t.completed,onChange:w,"aria-label":`Mark "${t.title}" as ${t.completed?"incomplete":"complete"}`}),e.jsxs("div",{className:s.taskContent,children:[e.jsxs("div",{className:s.taskHeader,children:[d?e.jsx("input",{ref:C,className:s.taskTitleInput,value:l,onChange:a=>h(a.target.value),onBlur:k,onKeyDown:a=>{a.key==="Enter"&&(a.preventDefault(),k()),a.key==="Escape"&&(h(t.title),p(!1))},onClick:a=>a.stopPropagation()}):e.jsx("span",{className:s.taskTitle,onClick:()=>{h(t.title),p(!0)},title:"Click to edit",children:t.title}),e.jsx("span",{className:`${s.priorityBadge} ${Ie[t.priority]}`,children:t.priority})]}),e.jsxs("div",{className:s.taskMeta,children:[t.dueDate&&e.jsxs("span",{className:`${s.dueDate} ${D==="overdue"?s.dueDateOverdue:""} ${D==="today"?s.dueDateToday:""}`,children:[D==="overdue"&&"Overdue: ",D==="today"&&"Today: ",He(t.dueDate)]}),_?e.jsx("input",{ref:b,className:s.tagInput,value:u,onChange:a=>y(a.target.value),onBlur:S,onKeyDown:a=>{a.key==="Enter"&&(a.preventDefault(),S()),a.key==="Escape"&&v(!1)},onClick:a=>a.stopPropagation(),placeholder:"tag1, tag2, ..."}):e.jsxs(e.Fragment,{children:[t.tags.map(a=>e.jsx("span",{className:s.tag,onClick:x,title:"Click to edit tags",style:{cursor:"pointer"},children:a},a)),e.jsx("button",{className:s.addTagBtn,onClick:x,title:"Add / edit tags",children:"+"})]})]}),t.description&&e.jsxs(e.Fragment,{children:[e.jsx("button",{className:s.descriptionToggle,onClick:()=>r(a=>!a),children:T?"- Hide details":"+ Show details"}),T&&e.jsx("div",{className:s.description,children:t.description})]})]}),f?e.jsxs("div",{className:s.confirmOverlay,children:[e.jsx("span",{children:"Delete?"}),e.jsx("button",{className:s.confirmBtn,onClick:m,children:"Yes"}),e.jsx("button",{className:s.cancelBtn,onClick:()=>g(!1),children:"No"})]}):e.jsx("button",{className:s.deleteBtn,onClick:()=>g(!0),"aria-label":`Delete "${t.title}"`,title:"Delete task",children:e.jsxs("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[e.jsx("polyline",{points:"3 6 5 6 21 6"}),e.jsx("path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"})]})})]})}function Oe(){const t=j(u=>u.createTask),[o,n]=i.useState(""),[c,d]=i.useState("medium"),[p,l]=i.useState(""),[h,_]=i.useState(""),v=i.useCallback(u=>{u.preventDefault();const y=o.trim();if(!y)return;const T=h.split(",").map(r=>r.trim()).filter(Boolean);t({title:y,priority:c,tags:T,dueDate:p||void 0}),n(""),d("medium"),l(""),_("")},[o,c,p,h,t]);return e.jsxs("form",{className:s.addForm,onSubmit:v,children:[e.jsx("input",{type:"text",className:s.titleInput,placeholder:"New task title...",value:o,onChange:u=>n(u.target.value),required:!0}),e.jsxs("select",{value:c,onChange:u=>d(u.target.value),children:[e.jsx("option",{value:"urgent",children:"Urgent"}),e.jsx("option",{value:"high",children:"High"}),e.jsx("option",{value:"medium",children:"Medium"}),e.jsx("option",{value:"low",children:"Low"})]}),e.jsx("input",{type:"date",value:p,onChange:u=>l(u.target.value),title:"Due date (optional)"}),e.jsx("input",{type:"text",className:s.tagsInput,placeholder:"Tags (comma-sep)",value:h,onChange:u=>_(u.target.value)}),e.jsx("button",{type:"submit",className:s.addBtn,disabled:!o.trim(),children:"ADD"})]})}const B=["urgent","high","medium","low"],I={urgent:0,high:1,medium:2,low:3},Ee={urgent:"Urgent",high:"High",medium:"Medium",low:"Low"};function Re(t,o,n,c){if(n!=="all"&&t.priority!==n||c!=="all"&&!t.tags.includes(c))return!1;if(o){const d=o.toLowerCase(),p=t.title.toLowerCase().includes(d),l=(t.description??"").toLowerCase().includes(d);if(!p&&!l)return!1}return!0}function L(t,o){return[...t].sort((n,c)=>{if(o==="priority"){const d=I[n.priority],p=I[c.priority];return d!==p?d-p:new Date(c.createdAt).getTime()-new Date(n.createdAt).getTime()}return o==="dueDate"?!n.dueDate&&!c.dueDate?0:n.dueDate?c.dueDate?n.dueDate.localeCompare(c.dueDate):-1:1:new Date(c.createdAt).getTime()-new Date(n.createdAt).getTime()})}function H({label:t,count:o,collapsed:n,onToggle:c}){return e.jsxs("div",{className:s.groupHeader,onClick:c,children:[e.jsx("svg",{className:`${s.groupChevron} ${n?s.collapsed:""}`,width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:e.jsx("polyline",{points:"6 9 12 15 18 9"})}),e.jsx("span",{className:s.groupLabel,children:t}),e.jsx("span",{className:s.groupCount,children:o})]})}function Ae(){const t=j(r=>r.tasks),o=j(r=>r.loading),n=j(r=>r.filter),c=j(r=>r.fetchTasks),[d,p]=i.useState(new Set);i.useEffect(()=>{c()},[c]);const l=i.useCallback(r=>{p(f=>{const g=new Set(f);return g.has(r)?g.delete(r):g.add(r),g})},[]),{groups:h,completedTasks:_,totalIncomplete:v,totalCompleted:u}=i.useMemo(()=>{const f=[...t.values()].filter(m=>Re(m,n.search,n.priority,n.tag)),g=f.filter(m=>!m.completed),C=f.filter(m=>m.completed),b=L(g,n.sortBy),k=new Map;for(const m of B)k.set(m,[]);for(const m of b){const x=k.get(m.priority);x&&x.push(m)}const w=[];for(const m of B){const x=k.get(m)??[];x.length>0&&w.push({id:m,label:Ee[m],tasks:x})}return{groups:w,completedTasks:L(C,n.sortBy),totalIncomplete:g.length,totalCompleted:C.length}},[t,n]);if(o)return e.jsx("div",{className:s.container,children:e.jsx("div",{className:s.loading,children:"Loading tasks..."})});const y=h.length===0&&_.length===0,T=t.size===0;return e.jsxs("div",{className:s.container,"data-testid":"agenda-view",children:[e.jsx(Be,{}),e.jsxs("div",{className:s.stats,children:[e.jsxs("span",{children:[v," task",v!==1?"s":""]}),e.jsx("span",{className:s.statsSep,children:"|"}),e.jsxs("span",{children:[u," completed"]})]}),e.jsx("div",{className:s.taskList,children:T?e.jsxs("div",{className:s.emptyState,children:[e.jsx("div",{children:"No tasks yet"}),e.jsx("span",{children:"Add your first task below"})]}):y?e.jsxs("div",{className:s.emptyState,children:[e.jsx("div",{children:"No tasks match the current filter"}),e.jsx("span",{children:"Try adjusting your search or filter criteria"})]}):e.jsxs(e.Fragment,{children:[h.map(r=>{const f=d.has(r.id);return e.jsxs("div",{children:[e.jsx(H,{label:r.label,count:r.tasks.length,collapsed:f,onToggle:()=>l(r.id)}),!f&&r.tasks.map(g=>e.jsx(N,{task:g},g.id))]},r.id)}),n.showCompleted&&_.length>0&&e.jsxs("div",{children:[e.jsx(H,{label:"Completed",count:_.length,collapsed:d.has("__completed__"),onToggle:()=>l("__completed__")}),!d.has("__completed__")&&_.map(r=>e.jsx(N,{task:r},r.id))]})]})}),e.jsx(Oe,{})]})}export{Ae as default};