@codingfactory/task-engine-client 1.0.0 → 1.0.1

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.
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const ga=require("axios"),Ze=require("pinia"),e=require("vue"),ba="/api/task-engine/v1";function ee(t,a){return a===void 0?{}:{[t]:a}}function ha(t){return typeof t=="object"&&t!==null&&"id"in t&&"name"in t}function x(t,a){if(t==null||t==="")return null;if(ha(t))return t;if(typeof t=="string"||typeof t=="number")return{id:t,name:a??String(t)};if(typeof t=="object"&&t!==null){const l=t,o=l.id??l.user_id,n=l.name??l.email??o,i=typeof l.avatar_url=="string"?l.avatar_url:void 0;if(o!==void 0&&n!==void 0)return{id:o,name:String(n),...ee("avatar_url",i)}}return null}function pt(t){return{id:t.id,name:t.name,color:t.color,...ee("created_at",t.created_at),...ee("updated_at",t.updated_at)}}function Ae(t){return{id:t.id,...ee("task_id",t.task_id),title:t.title,is_completed:t.is_completed,completed_at:t.completed_at,completed_by:x(t.completed_by),position:t.position,template_item_id:t.template_item_id??null}}function ze(t){return t===null?null:{id:t.id,display_number_formatted:t.display_number_formatted,title:t.title,status:t.status,priority:t.priority??"none"}}function Ye(t){return{id:t.id,type:t.type_for_task??t.type,related_task:ze(t.related_task),created_at:t.created_at??null}}function qe(t){return{id:t.id,...ee("task_id",t.task_id),author:x(t.author??t.author_id,"Unknown User")??{id:"unknown",name:"Unknown User"},content:t.content,visibility:t.visibility,metadata:t.metadata??null,created_at:t.created_at,updated_at:t.updated_at??null}}function me(t){return{id:t.id,task_id:t.task_id,user_id:t.user_id,user:x(t.user??t.user_id),started_at:t.started_at,stopped_at:t.stopped_at,duration_minutes:t.duration_minutes,description:t.description,is_manual:t.is_manual,is_running:t.is_running??t.stopped_at===null,created_at:t.created_at,updated_at:t.updated_at}}function Ea(t){return{id:t.id,...ee("task_id",t.task_id),user:x(t.user??t.user_id),action:t.action,description:t.description,changes:t.changes,metadata:t.metadata,created_at:t.created_at}}function wa(t){return{id:t.id,tenant_id:t.tenant_id,profile_key:t.profile_key,name:t.name,description:t.description,is_default:t.is_default,tiers:t.tiers.map(a=>({name:a.name,label:a.label,offset_hours:a.offset_hours,visual:a.visual,channels:a.channels,target:a.target,cooldown_hours:a.cooldown_hours,color:a.color})),business_hours_only:t.business_hours_only,quiet_hours_start:t.quiet_hours_start,quiet_hours_end:t.quiet_hours_end,timezone:t.timezone,created_at:t.created_at,updated_at:t.updated_at}}function kt(t){return{id:t.id,tenant_id:t.tenant_id,task_id:t.task_id,policy_id:t.policy_id,tier_name:t.tier_name,tier_label:t.tier_label,event_type:t.event_type,target_user_id:t.target_user_id,target_role:t.target_role,target_user:x(t.target_user),channels_used:t.channels_used??[],acknowledged_at:t.acknowledged_at,acknowledged_by:t.acknowledged_by,acknowledged_by_user:x(t.acknowledged_by_user),snoozed_until:t.snoozed_until,snooze_reason:t.snooze_reason,blocker_task_id:t.blocker_task_id,blocker_task:ze(t.blocker_task),metadata:t.metadata??null,created_at:t.created_at}}function Qe(t){var o,n;const a=((o=t.checklist_items)==null?void 0:o.map(Ae))??[],l=a.filter(i=>i.is_completed).length;return{id:t.id,tenant_id:t.tenant_id,display_number:t.display_number,display_number_formatted:t.display_number_formatted,title:t.title,description:t.description??null,status:t.status,priority:t.priority,taskable_type:t.taskable_type,taskable_id:t.taskable_id,created_by:x(t.created_by),primary_assignee:x(t.primary_assignee??t.primary_assignee_id),due_at:t.due_at,completed_at:t.completed_at,completed_by:x(t.completed_by),source:t.source,source_id:t.source_id,template_item_id:t.template_item_id??null,escalation_policy_id:t.escalation_policy_id??null,current_escalation_tier:t.current_escalation_tier??null,current_escalation_label:t.current_escalation_label??null,next_escalation_at:t.next_escalation_at??null,escalation_acknowledged_at:t.escalation_acknowledged_at??null,escalation_snoozed_until:t.escalation_snoozed_until??null,comment_count:t.comment_count??null,checklist_total:t.checklist_total??null,checklist_completed:t.checklist_completed??null,blocker_count:t.blocker_count??null,open_blocker_count:t.open_blocker_count??null,has_unresolved_blockers:t.has_unresolved_blockers??null,subtask_count:t.subtask_count??null,completed_subtask_count:t.completed_subtask_count??null,completion_rules:t.completion_rules??null,time_tracked_minutes:t.time_tracked_minutes??null,tags:((n=t.tags)==null?void 0:n.map(pt))??[],checklist_progress:{completed:a.length===0?Math.round((t.progress_percentage??0)/100):l,total:a.length},is_overdue:t.is_overdue,is_complete:t.is_complete,progress_percentage:t.progress_percentage??(a.length===0?0:Math.round(l/a.length*100)),metadata:t.metadata??null,created_at:t.created_at,updated_at:t.updated_at}}function q(t){var o,n,i,r,s,y;const a=Qe(t),l=((o=t.assignments)==null?void 0:o.filter(_=>_.role==="watcher"))??[];return{...a,comments:((n=t.comments)==null?void 0:n.map(qe))??[],checklist_items:((i=t.checklist_items)==null?void 0:i.map(Ae))??[],time_entries:((r=t.time_entries)==null?void 0:r.map(me))??[],watchers:l.map(_=>x(_.user_id)).filter(_=>_!==null),relations:[...t.outgoing_relations??[],...t.incoming_relations??[]].map(Ye),activity_logs:((s=t.activity_logs)==null?void 0:s.map(Ea))??[],escalation_policy:t.escalation_policy?wa(t.escalation_policy):null,escalation_events:((y=t.escalation_events)==null?void 0:y.map(kt))??[]}}function _t(t){var a;return{id:t.id,...ee("template_id",t.template_id),parent_item_id:t.parent_item_id??null,type:t.type,title:t.title,description:t.description,default_priority:t.default_priority??null,due_offset_hours:t.due_offset_hours??null,position:t.position,metadata:t.metadata??null,children:((a=t.children)==null?void 0:a.map(_t))??[]}}function Va(t){var a,l;return{id:t.id,name:t.name,description:t.description,default_title:t.default_title,default_description:t.default_description??null,default_priority:t.default_priority,...ee("default_status",t.default_status),due_offset_hours:t.due_offset_hours??null,items_count:((a=t.items)==null?void 0:a.length)??0,items:((l=t.items)==null?void 0:l.map(_t))??[],is_active:t.is_active,default_assignee_role:t.default_assignee_role??null,applicable_types:t.applicable_types??null,tags:t.tags??[],position:t.position??0,metadata:t.metadata??null}}function Pe(t){return{id:t.id,tenant_id:t.tenant_id,user_id:t.user_id,name:t.name,filters:t.filters,is_default:t.is_default,is_shared:t.is_shared,position:t.position,created_at:t.created_at,updated_at:t.updated_at}}function pe(t){return{id:t.id,tenant_id:t.tenant_id,name:t.name,description:t.description,trigger_type:t.trigger_type,trigger_type_label:t.trigger_type_label??null,trigger_config:t.trigger_config??null,conditions:t.conditions??[],actions:t.actions??[],is_enabled:t.is_enabled,position:t.position,stop_processing:t.stop_processing,metadata:t.metadata??null,created_by:t.created_by,execution_count:t.execution_count??0,last_executed_at:t.last_executed_at??null,created_at:t.created_at,updated_at:t.updated_at}}function Na(t){return{id:t.id,tenant_id:t.tenant_id,workflow_id:t.workflow_id,task_id:t.task_id,trigger_type:t.trigger_type,trigger_type_label:t.trigger_type_label??null,status:t.status,status_label:t.status_label??null,conditions_met:t.conditions_met,actions_executed:(t.actions_executed??[]).map(a=>{const{result:l,...o}=a,n={...o};return l!==void 0&&(n.result={type:l.type,success:l.success,message:l.message,data:l.data??{},dry_run:l.dry_run??!1}),n}),error:t.error,duration_ms:t.duration_ms,failed_action_index:t.failed_action_index??null,failed_action_type:t.failed_action_type??null,idempotency_key:t.idempotency_key??null,executed_at:t.executed_at,created_at:t.created_at,updated_at:t.updated_at}}function $a(t){return{workflow:pe(t.workflow),task_id:t.task_id,trigger_matched:t.trigger_matched,conditions_met:t.conditions_met,actions:t.actions.map(a=>({type:a.type,success:a.success,message:a.message,data:a.data??{},dry_run:a.dry_run??!1}))}}function Ta(t){return{success:t.success??[],failed:t.failed??[]}}function Xe(t){return{id:t.id,display_number_formatted:t.display_number_formatted,title:t.title,description:t.description,status:t.status,priority:t.priority,due_at:t.due_at,is_overdue:t.is_overdue,primary_assignee:x(t.primary_assignee),created_by:x(t.created_by),completed_by:x(t.completed_by),current_escalation_tier:t.current_escalation_tier??null,current_escalation_label:t.current_escalation_label??null,comment_count:t.comment_count??0,checklist_total:t.checklist_total??0,checklist_completed:t.checklist_completed??0,subtask_count:t.subtask_count??0,progress_percentage:t.progress_percentage??0,created_at:t.created_at,updated_at:t.updated_at}}function Ba(t){return{id:t.id,action:t.action,description:t.description,changes:t.changes,metadata:t.metadata,created_at:t.created_at,user:x(t.user),task:ze(t.task)}}function Ke(t){return{id:t.id,tenant_id:t.tenant_id,user_id:t.user_id,layout:t.layout,preferences:t.preferences??{},created_at:t.created_at,updated_at:t.updated_at}}function Ie(t){return{items:t.items.map(Xe),summary:t.summary}}function ft(t){return{days:t.days.map(a=>({date:a.date,label:a.label,weekday:a.weekday,is_today:a.is_today,tasks:a.tasks.map(Xe)})),summary:t.summary}}function Sa(t){return{task:Xe(t.task),health_status:t.health_status,health_score:t.health_score,issues:t.issues.map(a=>({type:a.type,label:a.label,message:a.message,suggested_actions:a.suggested_actions}))}}function vt(t){return{items:t.items.map(Sa),summary:t.summary}}function yt(t){return{items:t.items.map(Ba),summary:t.summary}}function gt(t){return{period:t.period,current:t.current,previous:t.previous,trends:t.trends}}function Ca(t){return{scope:t.scope,config:Ke(t.config),widgets:{my_tasks_today:Ie(t.widgets.my_tasks_today),upcoming_this_week:ft(t.widgets.upcoming_this_week),overdue:Ie(t.widgets.overdue),activity:yt(t.widgets.activity),my_stats:gt(t.widgets.my_stats),health_alerts:vt(t.widgets.health_alerts)},meta:t.meta}}function bt(t){return{id:t.id,recurring_template_id:t.recurring_template_id,task_id:t.task_id,occurrence_date:t.occurrence_date,generated_at:t.generated_at,created_at:t.created_at,task:ze(t.task)}}function ue(t){var a;return{id:t.id,tenant_id:t.tenant_id,task_template_id:t.task_template_id,task_template:t.task_template,title:t.title,description:t.description,rrule:t.rrule,rrule_human:t.rrule_human,timezone:t.timezone,taskable_type:t.taskable_type,taskable_id:t.taskable_id,primary_assignee_id:t.primary_assignee_id,priority:t.priority,priority_label:t.priority_label??null,due_offset_hours:t.due_offset_hours,tags:t.tags??[],is_active:t.is_active,skip_holidays:t.skip_holidays,business_hours_only:t.business_hours_only,chain_mode:t.chain_mode,last_generated_at:t.last_generated_at,next_occurrence_at:t.next_occurrence_at,metadata:t.metadata??null,created_by:t.created_by,created_at:t.created_at,updated_at:t.updated_at,deleted_at:t.deleted_at,history:((a=t.history)==null?void 0:a.map(bt))??[]}}function Da(t){var a,l,o,n;return{current_page:((a=t.meta)==null?void 0:a.current_page)??t.current_page??1,last_page:((l=t.meta)==null?void 0:l.last_page)??t.last_page??1,per_page:((o=t.meta)==null?void 0:o.per_page)??t.per_page??t.data.length,total:((n=t.meta)==null?void 0:n.total)??t.total??t.data.length}}function Z(t,a){return{data:t.data.map(a),meta:Da(t)}}function A(t,a){return`${t.replace(/\/$/,"")}${a}`}function Oe(t){const a={...t},l=t.sort;return typeof l=="string"&&l!==""&&(l.startsWith("-")?(a.sort=l.slice(1),a.direction="desc"):(a.sort=l,a.direction="asc")),typeof t.assignee=="string"?a.assignee_id=t.assignee:typeof t.assignee_id=="string"&&(a.assignee_id=t.assignee_id),delete a.assignee,a}function et(t={}){const a=t.axios??ga,l=t.baseUrl??ba;return{async list(o={}){const n=await a.get(A(l,"/tasks"),{params:Oe(o)});return Z(n.data,Qe)},async get(o){const n=await a.get(A(l,`/tasks/${o}`));return q(n.data.data)},async create(o){const n=await a.post(A(l,"/tasks"),o);return q(n.data.data)},async update(o,n){const i=await a.patch(A(l,`/tasks/${o}`),n);return q(i.data.data)},async delete(o){await a.delete(A(l,`/tasks/${o}`))},async complete(o,n){const i=await a.post(A(l,`/tasks/${o}/complete`),{note:n});return q(i.data.data)},async reopen(o){const n=await a.post(A(l,`/tasks/${o}/reopen`));return q(n.data.data)},async cancel(o){const n=await a.post(A(l,`/tasks/${o}/cancel`));return q(n.data.data)},async assign(o,n){return await a.post(A(l,`/tasks/${o}/assign`),{user_id:n}),this.get(o)},async reassign(o,n){return await a.post(A(l,`/tasks/${o}/reassign`),{user_id:n}),this.get(o)},async addWatcher(o,n){return await a.post(A(l,`/tasks/${o}/watchers`),{user_id:n}),this.get(o)},async removeWatcher(o,n){return await a.delete(A(l,`/tasks/${o}/watchers/${n}`)),this.get(o)},async listComments(o){return(await a.get(A(l,`/tasks/${o}/comments`))).data.data.map(qe)},async addComment(o,n){const i=await a.post(A(l,`/tasks/${o}/comments`),n);return qe(i.data.data)},async getActiveTimer(){const o=await a.get(A(l,"/time/active"));return o.data.data?me(o.data.data):null},async listTimeEntries(o){var i;const n=await a.get(A(l,`/tasks/${o}/time`));return{entries:n.data.data.map(me),total_minutes:Number(((i=n.data.meta)==null?void 0:i.total_minutes)??0)}},async startTimer(o){var i;const n=await a.post(A(l,`/tasks/${o}/time/start`));return{entry:me(n.data.data),total_minutes:Number(((i=n.data.meta)==null?void 0:i.total_minutes)??0)}},async stopTimer(o){var i;const n=await a.post(A(l,`/tasks/${o}/time/stop`));return{entry:me(n.data.data),total_minutes:Number(((i=n.data.meta)==null?void 0:i.total_minutes)??0)}},async addManualTimeEntry(o,n){var r;const i=await a.post(A(l,`/tasks/${o}/time`),n);return{entry:me(i.data.data),total_minutes:Number(((r=i.data.meta)==null?void 0:r.total_minutes)??0)}},async deleteTimeEntry(o,n){var r;const i=await a.delete(A(l,`/tasks/${o}/time/${n}`));return{total_minutes:Number(((r=i.data.meta)==null?void 0:r.total_minutes)??0)}},async exportTasks(o={}){return(await a.get(A(l,"/tasks/export"),{params:Oe(o),responseType:"text"})).data},async importTasks(o){const n=new FormData;return n.append("file",o),(await a.post(A(l,"/tasks/import"),n,{headers:{"Content-Type":"multipart/form-data"}})).data.data},async acknowledgeEscalation(o){const n=await a.post(A(l,`/tasks/${o}/escalation/acknowledge`));return q(n.data.data)},async snoozeEscalation(o,n){const i=await a.post(A(l,`/tasks/${o}/escalation/snooze`),n);return q(i.data.data)},async escalationHistory(o,n={}){const i=await a.get(A(l,`/tasks/${o}/escalation/history`),{params:n});return Z(i.data,kt)},async addChecklistItem(o,n){const i=await a.post(A(l,`/tasks/${o}/checklist`),{title:n});return Ae(i.data.data)},async toggleChecklistItem(o,n){const i=await a.post(A(l,`/tasks/${o}/checklist/${n}/toggle`));return Ae(i.data.data)},async removeChecklistItem(o,n){await a.delete(A(l,`/tasks/${o}/checklist/${n}`))},async listRelations(o){return(await a.get(A(l,`/tasks/${o}/relations`))).data.data.map(Ye)},async addRelation(o,n){const i=await a.post(A(l,`/tasks/${o}/relations`),n);return Ye(i.data.data)},async listTags(){return(await a.get(A(l,"/tags"))).data.data.map(pt)},async addTagToTask(o,n){return await a.post(A(l,`/tasks/${o}/tags`),{tag_id:n}),this.get(o)},async listSavedFilters(){return(await a.get(A(l,"/filters"))).data.data.map(Pe)},async createSavedFilter(o){const n=await a.post(A(l,"/filters"),o);return Pe(n.data.data)},async updateSavedFilter(o,n){const i=await a.patch(A(l,`/filters/${o}`),n);return Pe(i.data.data)},async deleteSavedFilter(o){await a.delete(A(l,`/filters/${o}`))},async listWorkflows(o={}){const n=await a.get(A(l,"/workflows"),{params:o});return Z(n.data,pe)},async getWorkflow(o){const n=await a.get(A(l,`/workflows/${o}`));return pe(n.data.data)},async createWorkflow(o){const n=await a.post(A(l,"/workflows"),o);return pe(n.data.data)},async updateWorkflow(o,n){const i=await a.patch(A(l,`/workflows/${o}`),n);return pe(i.data.data)},async deleteWorkflow(o){await a.delete(A(l,`/workflows/${o}`))},async toggleWorkflow(o,n){const i=await a.post(A(l,`/workflows/${o}/toggle`),{is_enabled:n});return pe(i.data.data)},async workflowLogs(o,n={}){const i=await a.get(A(l,`/workflows/${o}/logs`),{params:n});return Z(i.data,Na)},async testWorkflow(o,n,i={}){const r=await a.post(A(l,`/workflows/${o}/test`),{task_id:n,context:i});return $a(r.data.data)},async bulkAction(o,n,i={}){const r=await a.post(A(l,"/tasks/bulk"),{task_ids:o,action:n,params:i});return Ta(r.data.data)},async listTemplates(o={}){const n=await a.get(A(l,"/templates"),{params:o});return Z(n.data,Va)},async instantiateTemplate(o,n){const i=await a.post(A(l,`/templates/${o}/instantiate`),n);return q(i.data.data)},async listRecurring(o={}){const n=await a.get(A(l,"/recurring"),{params:o});return Z(n.data,ue)},async getRecurring(o){const n=await a.get(A(l,`/recurring/${o}`));return ue(n.data.data)},async createRecurring(o){const n=await a.post(A(l,"/recurring"),o);return ue(n.data.data)},async updateRecurring(o,n){const i=await a.patch(A(l,`/recurring/${o}`),n);return ue(i.data.data)},async deleteRecurring(o){await a.delete(A(l,`/recurring/${o}`))},async pauseRecurring(o){const n=await a.post(A(l,`/recurring/${o}/pause`));return ue(n.data.data)},async resumeRecurring(o){const n=await a.post(A(l,`/recurring/${o}/resume`));return ue(n.data.data)},async recurringHistory(o,n={}){const i=await a.get(A(l,`/recurring/${o}/history`),{params:n});return Z(i.data,bt)},async generateRecurring(o){const n=await a.post(A(l,`/recurring/${o}/generate`));return q(n.data.data)},async entityTasks(o,n,i={}){const r=await a.get(A(l,`/entity/${o}/${n}/tasks`),{params:Oe(i)});return Z(r.data,Qe)},async entitySummary(o,n){const r=(await a.get(A(l,`/entity/${o}/${n}/summary`))).data.data;return{...r,recent_tasks:r.recent_tasks.map(s=>({id:s.id,display_number_formatted:s.display_number_formatted,title:s.title,status:s.status,priority:s.priority??"none"}))}},async getDashboard(o="week"){const n=await a.get(A(l,"/dashboard"),{params:{period:o}});return Ca(n.data.data)},async getDashboardConfig(){const o=await a.get(A(l,"/dashboard/config"));return Ke(o.data.data)},async updateDashboardConfig(o){const n=await a.put(A(l,"/dashboard/config"),o);return Ke(n.data.data)},async getDashboardMyTasksToday(){const o=await a.get(A(l,"/dashboard/my-tasks-today"));return Ie(o.data.data)},async getDashboardUpcoming(){const o=await a.get(A(l,"/dashboard/upcoming"));return ft(o.data.data)},async getDashboardOverdue(){const o=await a.get(A(l,"/dashboard/overdue"));return Ie(o.data.data)},async getDashboardActivity(){const o=await a.get(A(l,"/dashboard/activity"));return yt(o.data.data)},async getDashboardStats(o="week"){const n=await a.get(A(l,"/dashboard/stats"),{params:{period:o}});return gt(n.data.data)},async getDashboardHealthAlerts(){const o=await a.get(A(l,"/dashboard/health-alerts"));return vt(o.data.data)},async getAnalyticsCompletionRate(o={}){return(await a.get(A(l,"/analytics/completion-rate"),{params:o})).data.data},async getAnalyticsCycleTime(o={}){return(await a.get(A(l,"/analytics/cycle-time"),{params:o})).data.data},async getAnalyticsVelocity(o={}){return(await a.get(A(l,"/analytics/velocity"),{params:o})).data.data},async getAnalyticsOverdueRate(o={}){return(await a.get(A(l,"/analytics/overdue-rate"),{params:o})).data.data},async getAnalyticsTemplateUsage(){return(await a.get(A(l,"/analytics/template-usage"))).data.data}}}let tt=et();function T(){return tt}function Ma(t){tt=t}function Aa(){tt=et()}const Ia={list:t=>T().list(t),get:t=>T().get(t),create:t=>T().create(t),update:(t,a)=>T().update(t,a),delete:t=>T().delete(t),complete:(t,a)=>T().complete(t,a),reopen:t=>T().reopen(t),cancel:t=>T().cancel(t),assign:(t,a)=>T().assign(t,a),reassign:(t,a)=>T().reassign(t,a),addWatcher:(t,a)=>T().addWatcher(t,a),removeWatcher:(t,a)=>T().removeWatcher(t,a),listComments:t=>T().listComments(t),addComment:(t,a)=>T().addComment(t,a),getActiveTimer:()=>T().getActiveTimer(),listTimeEntries:t=>T().listTimeEntries(t),startTimer:t=>T().startTimer(t),stopTimer:t=>T().stopTimer(t),addManualTimeEntry:(t,a)=>T().addManualTimeEntry(t,a),deleteTimeEntry:(t,a)=>T().deleteTimeEntry(t,a),exportTasks:t=>T().exportTasks(t),importTasks:t=>T().importTasks(t),acknowledgeEscalation:t=>T().acknowledgeEscalation(t),snoozeEscalation:(t,a)=>T().snoozeEscalation(t,a),escalationHistory:(t,a)=>T().escalationHistory(t,a),addChecklistItem:(t,a)=>T().addChecklistItem(t,a),toggleChecklistItem:(t,a)=>T().toggleChecklistItem(t,a),removeChecklistItem:(t,a)=>T().removeChecklistItem(t,a),listRelations:t=>T().listRelations(t),addRelation:(t,a)=>T().addRelation(t,a),listTags:()=>T().listTags(),addTagToTask:(t,a)=>T().addTagToTask(t,a),listSavedFilters:()=>T().listSavedFilters(),createSavedFilter:t=>T().createSavedFilter(t),updateSavedFilter:(t,a)=>T().updateSavedFilter(t,a),deleteSavedFilter:t=>T().deleteSavedFilter(t),listWorkflows:t=>T().listWorkflows(t),getWorkflow:t=>T().getWorkflow(t),createWorkflow:t=>T().createWorkflow(t),updateWorkflow:(t,a)=>T().updateWorkflow(t,a),deleteWorkflow:t=>T().deleteWorkflow(t),toggleWorkflow:(t,a)=>T().toggleWorkflow(t,a),workflowLogs:(t,a)=>T().workflowLogs(t,a),testWorkflow:(t,a,l)=>T().testWorkflow(t,a,l),bulkAction:(t,a,l)=>T().bulkAction(t,a,l),listTemplates:t=>T().listTemplates(t),instantiateTemplate:(t,a)=>T().instantiateTemplate(t,a),listRecurring:t=>T().listRecurring(t),getRecurring:t=>T().getRecurring(t),createRecurring:t=>T().createRecurring(t),updateRecurring:(t,a)=>T().updateRecurring(t,a),deleteRecurring:t=>T().deleteRecurring(t),pauseRecurring:t=>T().pauseRecurring(t),resumeRecurring:t=>T().resumeRecurring(t),recurringHistory:(t,a)=>T().recurringHistory(t,a),generateRecurring:t=>T().generateRecurring(t),entityTasks:(t,a,l)=>T().entityTasks(t,a,l),entitySummary:(t,a)=>T().entitySummary(t,a),getDashboard:t=>T().getDashboard(t),getDashboardConfig:()=>T().getDashboardConfig(),updateDashboardConfig:t=>T().updateDashboardConfig(t),getDashboardMyTasksToday:()=>T().getDashboardMyTasksToday(),getDashboardUpcoming:()=>T().getDashboardUpcoming(),getDashboardOverdue:()=>T().getDashboardOverdue(),getDashboardActivity:()=>T().getDashboardActivity(),getDashboardStats:t=>T().getDashboardStats(t),getDashboardHealthAlerts:()=>T().getDashboardHealthAlerts(),getAnalyticsCompletionRate:t=>T().getAnalyticsCompletionRate(t),getAnalyticsCycleTime:t=>T().getAnalyticsCycleTime(t),getAnalyticsVelocity:t=>T().getAnalyticsVelocity(t),getAnalyticsOverdueRate:t=>T().getAnalyticsOverdueRate(t),getAnalyticsTemplateUsage:()=>T().getAnalyticsTemplateUsage()};function rt(){return{page:1,per_page:15,sort:"-created_at"}}function Fa(){return{current_page:1,last_page:1,per_page:15,total:0}}const at=Ze.defineStore("task-engine/task-list",()=>{const t=e.ref(rt()),a=e.ref(Fa()),l=e.ref("list"),o=e.ref(null);function n(c,d){const m={...t.value};d==null||d===""||Array.isArray(d)&&d.length===0?delete m[c]:m[c]=d,m.page=1,t.value=m}function i(c){t.value={...t.value,...c,page:c.page??1}}function r(){t.value=rt()}function s(c){t.value={...t.value,sort:c,page:1}}function y(){a.value.current_page>=a.value.last_page||(t.value={...t.value,page:a.value.current_page+1})}function _(){a.value.current_page<=1||(t.value={...t.value,page:a.value.current_page-1})}function u(c){a.value=c,t.value={...t.value,page:c.current_page,per_page:c.per_page}}function k(c){l.value=c}function f(c){o.value=c}const b=e.computed(()=>Object.entries(t.value).reduce((c,[d,m])=>d==="page"||d==="per_page"||d==="sort"||m==null||m===""||Array.isArray(m)&&m.length===0?c:c+1,0));return{filters:t,pagination:a,view:l,activeSavedFilterId:o,activeFilterCount:b,setFilter:n,setFilters:i,clearFilters:r,setSort:s,setView:k,setActiveSavedFilter:f,nextPage:y,previousPage:_,syncPagination:u}});function La(){return{current_page:1,last_page:1,per_page:15,total:0}}function Ra(){return{completed:0,total:0}}function za(t){var o;if(typeof t=="number")return Number.isFinite(t)?t:0;const a=(o=t.match(/(\d+)(?!.*\d)/))==null?void 0:o[1],l=a===void 0?Number.NaN:Number.parseInt(a,10);return Number.isNaN(l)?0:l}function Me(t){return t==="complete"}function He(t){return t.total<=0?0:Math.round(t.completed/t.total*100)}function Ua(t,a){return t===null||Me(a)||a==="cancelled"?!1:new Date(t).getTime()<Date.now()}function dt(t,a){return a===void 0?!0:Array.isArray(a)?a.includes(t):a===t}const ve=Ze.defineStore("task-engine/tasks",()=>{const t=e.ref([]),a=e.ref(null),l=e.ref(null),o=e.ref(!1),n=e.ref(null),i=e.ref(La()),r=e.ref({}),s=e.ref([]),y=e.ref(!1),_=e.ref(null),u=e.ref(!1),k=e.ref(null),f=e.ref(!1),b=e.ref(null),c=e.ref(!1),d=e.ref(!1);function m(g){n.value=g instanceof Error?g.message:String(g)}function E(g){i.value={...i.value,total:Math.max(0,g)}}function B(g){E(i.value.total+g)}function N(g){const p=t.value.findIndex(M=>M.id===g.id);return p>=0?(t.value.splice(p,1,g),!1):(t.value.unshift(g),!0)}function $(g){const p=t.value.findIndex(M=>M.id===g);return p<0?!1:(t.value.splice(p,1),!0)}function h(g){var M;const p=r.value;return!(!dt(g.status,p.status)||!dt(g.priority,p.priority)||typeof p.taskable_type=="string"&&g.taskable_type!==p.taskable_type||typeof p.taskable_id=="string"&&g.taskable_id!==p.taskable_id||typeof p.assignee=="string"&&String(((M=g.primary_assignee)==null?void 0:M.id)??"")!==p.assignee||p.overdue===!0&&!g.is_overdue)}function V(g,p){const M=(p==null?void 0:p.checklist_progress)??Ra(),W=g.status,O=g.due_at??(p==null?void 0:p.due_at)??null,H=g.display_number_formatted||String(g.display_number);return{id:g.id,tenant_id:(p==null?void 0:p.tenant_id)??"",display_number:(p==null?void 0:p.display_number)??za(g.display_number),display_number_formatted:H,title:g.title,description:(p==null?void 0:p.description)??null,status:W,priority:g.priority,taskable_type:g.taskable_type??(p==null?void 0:p.taskable_type)??null,taskable_id:g.taskable_id??(p==null?void 0:p.taskable_id)??null,created_by:g.created_by??(p==null?void 0:p.created_by)??null,primary_assignee:g.primary_assignee??(p==null?void 0:p.primary_assignee)??null,due_at:O,completed_at:Me(W)?(p==null?void 0:p.completed_at)??null:null,completed_by:g.completed_by??(Me(W)?(p==null?void 0:p.completed_by)??null:null),source:(p==null?void 0:p.source)??"manual",source_id:(p==null?void 0:p.source_id)??null,template_item_id:(p==null?void 0:p.template_item_id)??null,escalation_policy_id:(p==null?void 0:p.escalation_policy_id)??null,current_escalation_tier:g.current_escalation_tier??(p==null?void 0:p.current_escalation_tier)??null,current_escalation_label:(p==null?void 0:p.current_escalation_label)??null,next_escalation_at:g.next_escalation_at??(p==null?void 0:p.next_escalation_at)??null,escalation_acknowledged_at:g.escalation_acknowledged_at??(p==null?void 0:p.escalation_acknowledged_at)??null,escalation_snoozed_until:g.escalation_snoozed_until??(p==null?void 0:p.escalation_snoozed_until)??null,blocker_count:(p==null?void 0:p.blocker_count)??null,open_blocker_count:(p==null?void 0:p.open_blocker_count)??null,has_unresolved_blockers:(p==null?void 0:p.has_unresolved_blockers)??null,subtask_count:(p==null?void 0:p.subtask_count)??null,completed_subtask_count:(p==null?void 0:p.completed_subtask_count)??null,completion_rules:(p==null?void 0:p.completion_rules)??null,time_tracked_minutes:(p==null?void 0:p.time_tracked_minutes)??null,tags:(p==null?void 0:p.tags)??[],checklist_progress:M,is_overdue:Ua(O,W),is_complete:Me(W),progress_percentage:He(M),metadata:(p==null?void 0:p.metadata)??null,created_at:(p==null?void 0:p.created_at)??new Date().toISOString(),updated_at:new Date().toISOString()}}function w(g){var M;if(((M=a.value)==null?void 0:M.id)!==g.id)return;const p=V(g,a.value);a.value={...a.value,...p}}function v(g){const p=t.value.find(H=>H.id===g.id)??a.value,M=V(g,p??null),W=t.value.some(H=>H.id===M.id);return h(M)?N(M)&&!W&&B(1):$(M.id)&&B(-1),w(g),M}function I(g,p,M){var H;const W=t.value.findIndex(ce=>ce.id===g);if(W>=0){const ce=t.value[W];ce!==void 0&&t.value.splice(W,1,{...ce,checklist_progress:M,progress_percentage:He(M),updated_at:new Date().toISOString()})}if(((H=a.value)==null?void 0:H.id)!==g)return;const O=a.value.checklist_items.findIndex(ce=>ce.id===p.id);O>=0?a.value.checklist_items.splice(O,1,{...a.value.checklist_items[O],...p}):a.value.checklist_items.push(p),a.value={...a.value,checklist_progress:M,progress_percentage:He(M),updated_at:new Date().toISOString()}}function z(g){var p;return((p=a.value)==null?void 0:p.id)===g}function P(g){return v(g)}function G(g){return v(g.task)}function te(g){return v({...g.task,status:g.new_status})}function ae(g){return v({...g.task,assignee_id:g.new_assignee_id,primary_assignee:g.task.primary_assignee})}function _e(g){return v({...g.task,status:"complete",completed_by:g.completed_by})}function We(g){return v(g.task)}function xe(g){const p=v(g.task);return I(g.task.id,g.item,g.progress),p}async function fe(g={}){o.value=!0,n.value=null;try{const p=await T().list(g);t.value=p.data,i.value=p.meta,r.value={...g}}catch(p){throw m(p),p}finally{o.value=!1}}async function C(g){o.value=!0,n.value=null;try{const p=await T().get(g);return a.value=p,N(p),p}catch(p){throw m(p),p}finally{o.value=!1}}async function S(g){o.value=!0,n.value=null;try{const p=await T().create(g);return a.value=p,N(p),B(1),p}catch(p){throw m(p),p}finally{o.value=!1}}async function D(g,p){o.value=!0,n.value=null;try{const M=await T().update(g,p);return a.value=M,N(M),M}catch(M){throw m(M),M}finally{o.value=!1}}async function L(g){var p;o.value=!0,n.value=null;try{await T().delete(g),t.value=t.value.filter(M=>M.id!==g),((p=a.value)==null?void 0:p.id)===g&&(a.value=null),B(-1)}catch(M){throw m(M),M}finally{o.value=!1}}async function F(g,p){const M=await T().complete(g,p);return a.value=M,N(M),M}async function ne(g){const p=await T().reopen(g);return a.value=p,N(p),p}async function be(g){const p=await T().cancel(g);return a.value=p,N(p),p}async function he(g,p){var M;return await T().addComment(g,p),((M=a.value)==null?void 0:M.id)===g?C(g):null}async function U(g){const p=await T().acknowledgeEscalation(g);return a.value=p,N(p),p}async function Ee(g,p){const M=await T().snoozeEscalation(g,p);return a.value=M,N(M),M}async function we(g,p){var M;return await T().addChecklistItem(g,p),((M=a.value)==null?void 0:M.id)===g?C(g):null}async function Ve(g,p){var M;return await T().toggleChecklistItem(g,p),((M=a.value)==null?void 0:M.id)===g?C(g):null}async function Ne(g,p){var M;return await T().removeChecklistItem(g,p),((M=a.value)==null?void 0:M.id)===g?C(g):null}async function $e(g,p,M={}){o.value=!0,n.value=null;try{const W=await T().entityTasks(g,p,M);t.value=W.data,i.value=W.meta,r.value={...M,taskable_type:g,taskable_id:p}}catch(W){throw m(W),W}finally{o.value=!1}}async function Te(g,p){o.value=!0,n.value=null;try{const M=await T().entitySummary(g,p);return l.value=M,M}catch(M){throw m(M),M}finally{o.value=!1}}async function Be(g,p){o.value=!0,n.value=null;try{const M=await T().instantiateTemplate(g,p);return a.value=M,N(M),B(1),M}catch(M){throw m(M),M}finally{o.value=!1}}async function J(){try{return k.value=await T().getActiveTimer(),k.value}catch(g){throw m(g),g}}async function le(g){var M;const p=await T().get(g);return N(p),((M=a.value)==null?void 0:M.id)===g&&(a.value=p),p}async function Se(g){f.value=!0,n.value=null;try{return await T().startTimer(g),await J(),le(g)}catch(p){throw m(p),p}finally{f.value=!1}}async function Ce(g){f.value=!0,n.value=null;try{return await T().stopTimer(g),await J(),le(g)}catch(p){throw m(p),p}finally{f.value=!1}}async function ia(g,p){f.value=!0,n.value=null;try{return await T().addManualTimeEntry(g,p),await J(),le(g)}catch(M){throw m(M),M}finally{f.value=!1}}async function ra(g,p){f.value=!0,n.value=null;try{return await T().deleteTimeEntry(g,p),await J(),le(g)}catch(M){throw m(M),M}finally{f.value=!1}}async function da(g=r.value){d.value=!0,n.value=null;try{return await T().exportTasks(g)}catch(p){throw m(p),p}finally{d.value=!1}}async function ca(g){c.value=!0,n.value=null;try{const p=await T().importTasks(g);return b.value=p,(t.value.length>0||Object.keys(r.value).length>0)&&await fe(r.value),p}catch(p){throw m(p),p}finally{c.value=!1}}async function ua(){y.value=!0,n.value=null;try{const g=await T().listSavedFilters();return s.value=[...g].sort((p,M)=>p.position-M.position||p.name.localeCompare(M.name)),s.value}catch(g){throw m(g),g}finally{y.value=!1}}async function ma(g){y.value=!0,n.value=null;try{const p=await T().createSavedFilter(g);return s.value=[...s.value,p].sort((M,W)=>M.position-W.position||M.name.localeCompare(W.name)),p}catch(p){throw m(p),p}finally{y.value=!1}}async function pa(g,p){y.value=!0,n.value=null;try{const M=await T().updateSavedFilter(g,p),W=s.value.findIndex(O=>O.id===g);return W>=0&&(s.value.splice(W,1,M),s.value=[...s.value].sort((O,H)=>O.position-H.position||O.name.localeCompare(H.name))),M}catch(M){throw m(M),M}finally{y.value=!1}}async function ka(g){y.value=!0,n.value=null;try{await T().deleteSavedFilter(g),s.value=s.value.filter(p=>p.id!==g)}catch(p){throw m(p),p}finally{y.value=!1}}async function _a(g,p,M={}){u.value=!0,n.value=null;try{const W=await T().bulkAction(g,p,M);return _.value=W,W.success.length>0&&(t.value.length>0||Object.keys(r.value).length>0)&&await fe(r.value),a.value!==null&&W.success.includes(a.value.id)&&(p==="delete"?a.value=null:await C(a.value.id)),W}catch(W){throw m(W),W}finally{u.value=!1}}const fa=e.computed(()=>t.value.filter(g=>g.is_overdue)),va=e.computed(()=>({draft:t.value.filter(g=>g.status==="draft"),open:t.value.filter(g=>g.status==="open"),in_progress:t.value.filter(g=>g.status==="in_progress"),blocked:t.value.filter(g=>g.status==="blocked"),under_review:t.value.filter(g=>g.status==="under_review"),complete:t.value.filter(g=>g.status==="complete"),cancelled:t.value.filter(g=>g.status==="cancelled")})),ya=e.computed(()=>({none:t.value.filter(g=>g.priority==="none"),low:t.value.filter(g=>g.priority==="low"),medium:t.value.filter(g=>g.priority==="medium"),high:t.value.filter(g=>g.priority==="high"),urgent:t.value.filter(g=>g.priority==="urgent"),critical:t.value.filter(g=>g.priority==="critical")}));return{tasks:t,currentTask:a,entitySummary:l,loading:o,error:n,pagination:i,lastFilters:r,savedFilters:s,savedFiltersLoading:y,bulkResult:_,bulkLoading:u,activeTimer:k,timeTrackingLoading:f,importResult:b,importLoading:c,exportLoading:d,overdueTasks:fa,tasksByStatus:va,tasksByPriority:ya,isViewingTask:z,handleTaskCreated:P,handleTaskUpdated:G,handleStatusChanged:te,handleTaskAssigned:ae,handleTaskCompleted:_e,handleCommentAdded:We,handleChecklistToggled:xe,fetchTasks:fe,fetchTask:C,createTask:S,updateTask:D,deleteTask:L,completeTask:F,reopenTask:ne,cancelTask:be,addComment:he,acknowledgeEscalation:U,snoozeEscalation:Ee,addChecklistItem:we,toggleChecklistItem:Ve,removeChecklistItem:Ne,fetchEntityTasks:$e,fetchEntitySummary:Te,instantiateTemplate:Be,fetchActiveTimer:J,startTimer:Se,stopTimer:Ce,addManualTimeEntry:ia,deleteTimeEntry:ra,exportTasks:da,importTasks:ca,fetchSavedFilters:ua,createSavedFilter:ma,updateSavedFilterRecord:pa,deleteSavedFilterRecord:ka,runBulkAction:_a}});function Wa(t){return{name:`${t.name} (Copy)`,description:t.description,trigger_type:t.trigger_type,trigger_config:t.trigger_config===null?null:{...t.trigger_config},conditions:t.conditions.map(a=>({...a})),actions:t.actions.map(a=>{const l={...a};return a.config!==void 0&&(l.config={...a.config}),l}),is_enabled:t.is_enabled,position:t.position+1,stop_processing:t.stop_processing,metadata:t.metadata===null?null:{...t.metadata}}}const ht=Ze.defineStore("task-engine/workflows",()=>{const t=e.ref([]),a=e.ref({current_page:1,last_page:1,per_page:15,total:0}),l=e.ref(null),o=e.ref(null),n=e.ref({}),i=e.ref(!1),r=e.ref(!1),s=e.ref(null),y=e.ref({});function _(w){s.value=w instanceof Error?w.message:String(w)}function u(w){const v=[...t.value],I=v.findIndex(z=>z.id===w.id);I>=0?v.splice(I,1,w):v.push(w),t.value=v.sort((z,P)=>z.position-P.position)}async function k(w={}){i.value=!0,s.value=null;try{const v=await T().listWorkflows(w);return t.value=[...v.data].sort((I,z)=>I.position-z.position),a.value=v.meta,v}catch(v){throw _(v),v}finally{i.value=!1}}async function f(w){i.value=!0,s.value=null;try{const v=await T().getWorkflow(w);return l.value=v,u(v),v}catch(v){throw _(v),v}finally{i.value=!1}}async function b(w){r.value=!0,s.value=null;try{const v=await T().createWorkflow(w);return l.value=v,u(v),v}catch(v){throw _(v),v}finally{r.value=!1}}async function c(w,v){r.value=!0,s.value=null;try{const I=await T().updateWorkflow(w,v);return l.value=I,u(I),I}catch(I){throw _(I),I}finally{r.value=!1}}async function d(w){var v;r.value=!0,s.value=null;try{await T().deleteWorkflow(w),t.value=t.value.filter(I=>I.id!==w),((v=l.value)==null?void 0:v.id)===w&&(l.value=null)}catch(I){throw _(I),I}finally{r.value=!1}}async function m(w,v){var I;r.value=!0,s.value=null;try{const z=await T().toggleWorkflow(w,v);return l.value=((I=l.value)==null?void 0:I.id)===w?z:l.value,u(z),z}catch(z){throw _(z),z}finally{r.value=!1}}async function E(w){return b(Wa(w))}async function B(w,v){const I=[...t.value].sort((ae,_e)=>ae.position-_e.position),z=I.findIndex(ae=>ae.id===w),P=v==="up"?z-1:z+1;if(z<0||P<0||P>=I.length)return;const G=I[z],te=I[P];G===void 0||te===void 0||await Promise.all([c(G.id,{position:te.position}),c(te.id,{position:G.position})])}async function N(w,v={}){y.value={...y.value,[w]:!0},s.value=null;try{const I=await T().workflowLogs(w,v);return n.value={...n.value,[w]:I},I}catch(I){throw _(I),I}finally{y.value={...y.value,[w]:!1}}}async function $(w,v,I={}){r.value=!0,s.value=null;try{const z=await T().testWorkflow(w,v,I);return o.value=z,z}catch(z){throw _(z),z}finally{r.value=!1}}const h=e.computed(()=>t.value.filter(w=>w.is_enabled)),V=e.computed(()=>t.value.filter(w=>!w.is_enabled));return{workflows:t,pagination:a,currentWorkflow:l,testResult:o,logsByWorkflow:n,loading:i,saving:r,error:s,logLoading:y,enabledWorkflows:h,disabledWorkflows:V,fetchWorkflows:k,fetchWorkflow:f,createWorkflow:b,updateWorkflow:c,deleteWorkflow:d,toggleWorkflow:m,duplicateWorkflow:E,moveWorkflow:B,fetchLogs:N,runTest:$}}),xa=8e3,Pa="/admin/tasks",Q=e.ref([]),Fe=new Map;let Oa=0;function Ha(t){return`${Pa}/${t}`}function nt(t){const a=Fe.get(t);a!==void 0&&(clearTimeout(a),Fe.delete(t))}function Et(t){nt(t),Q.value=Q.value.filter(a=>a.id!==t)}function ja(t){const a=t.id??`task-toast-${++Oa}`,l={id:a,kind:t.kind,title:t.title,body:t.body,taskId:t.taskId,taskNumber:t.taskNumber,tone:t.tone??"info",duration:t.duration??xa,url:t.url??Ha(t.taskId),created_at:t.created_at??new Date().toISOString()},o=Q.value.findIndex(n=>n.id===a);return nt(a),o>=0&&Q.value.splice(o,1),Q.value=[l,...Q.value].slice(0,5),Fe.set(a,setTimeout(()=>{Et(a)},l.duration)),l}function Ya(){Array.from(Fe.keys()).forEach(nt),Q.value=[]}function lt(){return{notifications:e.readonly(Q),hasNotifications:e.computed(()=>Q.value.length>0),pushTaskNotificationToast:ja,dismissTaskNotificationToast:Et,clearTaskNotificationFeed:Ya}}const oe={created:".task.created",updated:".task.updated",statusChanged:".task.status_changed",assigned:".task.assigned",completed:".task.completed",commentAdded:".task.comment_added",checklistToggled:".task.checklist_toggled"},qa=["draft","open","in_progress","blocked","under_review","complete","cancelled"],Qa=["none","low","medium","high","urgent","critical"],Ka=["reminder","warning","due_now","overdue","escalated","critical"];function Y(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function j(t){return t==null||t===""?null:typeof t=="string"||typeof t=="number"?String(t):void 0}function Ge(t){return typeof t=="string"&&qa.includes(t)}function Ga(t){return typeof t=="string"&&Qa.includes(t)}function Ja(t){return t==null||t===""?null:typeof t=="string"&&Ka.includes(t)?t:void 0}function ie(t){if(t==null||t==="")return null;if(!Y(t))return;const a=t.id,l=t.name,o=t.avatar_url;if(!(typeof a!="string"&&typeof a!="number"||typeof l!="string"))return{id:String(a),name:l,...typeof o=="string"?{avatar_url:o}:{}}}function de(t){if(!Y(t))return null;const a=t.id,l=t.display_number,o=t.display_number_formatted,n=t.title,i=t.status,r=t.priority,s=j(t.assignee_id),y=j(t.taskable_type),_=j(t.taskable_id),u=ie(t.created_by),k=ie(t.primary_assignee),f=ie(t.completed_by),b=j(t.due_at),c=Ja(t.current_escalation_tier),d=j(t.next_escalation_at),m=j(t.escalation_acknowledged_at),E=j(t.escalation_snoozed_until);return typeof a!="string"||typeof l!="string"&&typeof l!="number"||typeof o!="string"||typeof n!="string"||!Ge(i)||!Ga(r)||s===void 0||y===void 0||_===void 0||u===void 0||k===void 0||f===void 0||b===void 0||c===void 0||d===void 0||m===void 0||E===void 0?null:{id:a,display_number:l,display_number_formatted:o,title:n,status:i,priority:r,assignee_id:s,taskable_type:y,taskable_id:_,created_by:u,primary_assignee:k,completed_by:f,due_at:b,current_escalation_tier:c,next_escalation_at:d,escalation_acknowledged_at:m,escalation_snoozed_until:E}}function wt(t){if(!Y(t))return null;const a=de(t.task),l=t.changes;return a===null||!Y(l)?null:{task:a,changes:l}}function Vt(t){if(!Y(t))return null;const a=de(t.task),l=t.old_status,o=t.new_status;return a===null||!Ge(l)||!Ge(o)?null:{task:a,old_status:l,new_status:o}}function Nt(t){if(!Y(t))return null;const a=de(t.task),l=j(t.new_assignee_id),o=j(t.old_assignee_id),n=ie(t.assigned_by);return a===null||l===void 0||o===void 0||n===void 0?null:{task:a,new_assignee_id:l,old_assignee_id:o,assigned_by:n}}function $t(t){if(!Y(t))return null;const a=de(t.task),l=ie(t.completed_by);return a===null||l===void 0?null:{task:a,completed_by:l}}function Za(t){if(!Y(t))return null;const a=t.id,l=ie(t.author),o=j(t.author_id),n=t.visibility,i=t.preview,r=j(t.created_at);return typeof a!="string"||l===void 0||o===void 0||n!=="team"&&n!=="private"||typeof i!="string"||r===void 0?null:{id:a,author:l,author_id:o,visibility:n,preview:i,created_at:r}}function Tt(t){if(!Y(t))return null;const a=de(t.task),l=Za(t.comment);return a===null||l===null?null:{task:a,comment:l}}function Xa(t){if(!Y(t))return null;const a=t.completed,l=t.total;return typeof a!="number"||typeof l!="number"?null:{completed:a,total:l}}function en(t){if(!Y(t))return null;const a=t.id,l=t.title,o=t.is_completed,n=j(t.completed_at),i=ie(t.completed_by),r=t.position;return typeof a!="string"||typeof l!="string"||typeof o!="boolean"||n===void 0||i===void 0||typeof r!="number"?null:{id:a,title:l,is_completed:o,completed_at:n,completed_by:i,position:r}}function Bt(t){if(!Y(t))return null;const a=de(t.task),l=en(t.item),o=Xa(t.progress);return a===null||l===null||o===null?null:{task:a,item:l,progress:o}}function St(t){return de(t)}function tn(){return typeof window>"u"?null:window.Echo??null}function Ct(t){try{return JSON.stringify(t)??"null"}catch{return"unserializable"}}function X(t){return t.display_number_formatted||String(t.display_number)}function se(t,a){switch(t){case"task.created":{const l=St(a);return l===null?null:`${t}:${l.id}`}case"task.updated":{const l=wt(a);return l===null?null:`${t}:${l.task.id}:${Ct(l.changes)}`}case"task.status_changed":{const l=Vt(a);return l===null?null:`${t}:${l.task.id}:${l.old_status}:${l.new_status}`}case"task.assigned":{const l=Nt(a);return l===null?null:`${t}:${l.task.id}:${l.new_assignee_id??""}:${l.old_assignee_id??""}`}case"task.completed":{const l=$t(a);return l===null?null:`${t}:${l.task.id}`}case"task.comment_added":{const l=Tt(a);return l===null?null:`${t}:${l.task.id}:${l.comment.id}`}case"task.checklist_toggled":{const l=Bt(a);return l===null?null:`${t}:${l.task.id}:${l.item.id}:${l.item.is_completed?"1":"0"}`}}}function Dt(t,a={}){const l=ve(),o=lt(),n=e.ref([]),i=e.ref(a.autoConnect??!0),r=e.ref(!1),s=e.computed(()=>r.value),y=new Map;function _(N){var $;r.value!==N&&(r.value=N,($=a.onConnectionChange)==null||$.call(a,N))}function u(){return(typeof a.echo=="function"?a.echo():a.echo)??tn()}function k(N){return N===null||y.has(N)?!1:(y.set(N,setTimeout(()=>{const $=y.get(N);$!==void 0&&clearTimeout($),y.delete(N)},1500)),!0)}function f(){Array.from(y.entries()).forEach(([N,$])=>{clearTimeout($),y.delete(N)})}function b(N){var h;const $=o.pushTaskNotificationToast(N);(h=a.onToast)==null||h.call(a,$)}function c(N,$){const h=u();if(h===null)return;h.private(N.name).listen(oe.created,w=>{var I;if(!k(se("task.created",w)))return;const v=St(w);v!==null&&(l.handleTaskCreated(v),(I=a.onEvent)==null||I.call(a,"task.created",v))}).listen(oe.updated,w=>{var I;if(!k(se("task.updated",w)))return;const v=wt(w);v!==null&&(l.handleTaskUpdated(v),(I=a.onEvent)==null||I.call(a,"task.updated",v),l.isViewingTask(v.task.id)&&l.fetchTask(v.task.id),N.scope==="personal"&&b({id:`task.updated:${v.task.id}:${Ct(v.changes)}`,kind:"update",title:`${X(v.task)} updated`,body:v.task.title,taskId:v.task.id,taskNumber:X(v.task),tone:"info",url:`/admin/tasks/${v.task.id}`}))}).listen(oe.statusChanged,w=>{var I;if(!k(se("task.status_changed",w)))return;const v=Vt(w);v!==null&&(l.handleStatusChanged(v),(I=a.onEvent)==null||I.call(a,"task.status_changed",v))}).listen(oe.assigned,w=>{var I;if(!k(se("task.assigned",w)))return;const v=Nt(w);v!==null&&(l.handleTaskAssigned(v),(I=a.onEvent)==null||I.call(a,"task.assigned",v),N.scope==="personal"&&v.new_assignee_id===$&&b({id:`task.assigned:${v.task.id}:${v.new_assignee_id??""}`,kind:"assignment",title:`Assigned ${X(v.task)}`,body:v.assigned_by===null?v.task.title:`${v.assigned_by.name} assigned ${v.task.title}`,taskId:v.task.id,taskNumber:X(v.task),tone:"info",url:`/admin/tasks/${v.task.id}`}))}).listen(oe.completed,w=>{var I;if(!k(se("task.completed",w)))return;const v=$t(w);v!==null&&(l.handleTaskCompleted(v),(I=a.onEvent)==null||I.call(a,"task.completed",v),N.scope==="personal"&&b({id:`task.completed:${v.task.id}`,kind:"completion",title:`${X(v.task)} completed`,body:v.completed_by===null?v.task.title:`${v.completed_by.name} completed ${v.task.title}`,taskId:v.task.id,taskNumber:X(v.task),tone:"success",url:`/admin/tasks/${v.task.id}`}))}).listen(oe.commentAdded,w=>{var I;if(!k(se("task.comment_added",w)))return;const v=Tt(w);v!==null&&(l.handleCommentAdded(v),(I=a.onEvent)==null||I.call(a,"task.comment_added",v),l.isViewingTask(v.task.id)&&l.fetchTask(v.task.id),N.scope==="personal"&&b({id:`task.comment_added:${v.task.id}:${v.comment.id}`,kind:"comment",title:`New comment on ${X(v.task)}`,body:v.comment.author===null?v.comment.preview:`${v.comment.author.name}: ${v.comment.preview}`,taskId:v.task.id,taskNumber:X(v.task),tone:"info",url:`/admin/tasks/${v.task.id}`}))}).listen(oe.checklistToggled,w=>{var I;if(!k(se("task.checklist_toggled",w)))return;const v=Bt(w);v!==null&&(l.handleChecklistToggled(v),(I=a.onEvent)==null||I.call(a,"task.checklist_toggled",v))})}function d(){const N=u();n.value.forEach($=>{N==null||N.leave($)}),n.value=[],_(!1)}function m(){i.value=!0}function E(){i.value=!1,d(),i.value=!0}const B=e.computed(()=>{const N=[],$=e.toValue(t);$!=null&&$!==""&&N.push({name:`tasks.user.${String($)}`,scope:"personal"});const h=a.entity===void 0?null:e.toValue(a.entity);return h!=null&&h.type!==""&&h.id!==""&&N.push({name:`tasks.entity.${h.type}.${String(h.id)}`,scope:"entity"}),(a.teamIds===void 0?[]:e.toValue(a.teamIds)??[]).forEach(w=>{w==null||w===""||N.push({name:`tasks.team.${String(w)}`,scope:"team"})}),N});return e.watch(()=>({shouldConnect:i.value,targetNames:B.value.map(N=>N.name).join("|"),userId:String(e.toValue(t)??"")}),({shouldConnect:N,userId:$})=>{d(),f(),!(!N||$==="")&&(B.value.forEach(h=>{c(h,$)}),n.value=B.value.map(h=>h.name),_(n.value.length>0))},{immediate:!0}),e.onUnmounted(()=>{d(),f()}),{isConnected:s,activeChannels:n,connect:m,disconnect:()=>{i.value=!1,d()},reconnect:E}}function an(t){switch(t){case"my-tasks-today":return"my_tasks_today";case"upcoming-this-week":return"upcoming_this_week";case"overdue-tracker":return"overdue";case"team-activity-feed":return"activity";case"my-stats":return"my_stats";case"task-health-alerts":return"health_alerts"}}function nn(t){switch(t){case"task.created":return["my-tasks-today","upcoming-this-week","team-activity-feed","task-health-alerts"];case"task.completed":return["my-stats","overdue-tracker","team-activity-feed","task-health-alerts"];case"task.assigned":return["my-tasks-today","overdue-tracker","team-activity-feed","task-health-alerts"];case"task.status_changed":return["my-tasks-today","upcoming-this-week","overdue-tracker","team-activity-feed","task-health-alerts"];case"task.updated":return["upcoming-this-week","overdue-tracker","team-activity-feed","task-health-alerts"];default:return["team-activity-feed","task-health-alerts"]}}function Mt(t,a={}){const l=e.ref(null),o=e.ref(!1),n=e.ref(!1),i=e.ref(null),r=e.ref({}),s=e.ref("week");function y(c,d){r.value={...r.value,[c]:d}}async function _(c=s.value){const d=e.toValue(t);if(d==null||d==="")return l.value=null,null;o.value=!0,i.value=null;try{const m=await T().getDashboard(c);return l.value=m,s.value=m.widgets.my_stats.period,m}catch(m){throw i.value=m instanceof Error?m.message:String(m),m}finally{o.value=!1}}async function u(c){l.value===null&&await _(),y(c,!0),i.value=null;try{let d;switch(c){case"my-tasks-today":d=await T().getDashboardMyTasksToday();break;case"upcoming-this-week":d=await T().getDashboardUpcoming();break;case"overdue-tracker":d=await T().getDashboardOverdue();break;case"team-activity-feed":d=await T().getDashboardActivity();break;case"my-stats":d=await T().getDashboardStats(s.value),s.value=d.period;break;case"task-health-alerts":d=await T().getDashboardHealthAlerts();break}return l.value!==null&&(l.value={...l.value,widgets:{...l.value.widgets,[an(c)]:d}}),d}catch(d){throw i.value=d instanceof Error?d.message:String(d),d}finally{y(c,!1)}}async function k(c,d){var m;n.value=!0,i.value=null;try{const E=await T().updateDashboardConfig({layout:c,preferences:d??((m=l.value)==null?void 0:m.config.preferences)??{}});return l.value!==null&&(l.value={...l.value,config:E}),E}catch(E){throw i.value=E instanceof Error?E.message:String(E),E}finally{n.value=!1}}function f(c){l.value!==null&&(l.value={...l.value,config:{...l.value.config,layout:{widgets:c}}})}async function b(c){s.value=c,await u("my-stats")}return e.watch(()=>e.toValue(t),c=>{if(c==null||c===""){l.value=null;return}(a.autoLoad??!0)&&_()},{immediate:!0}),Dt(t,{echo:a.echo,autoConnect:a.autoConnect??!0,onEvent:c=>{nn(c).forEach(m=>{u(m)})}}),{dashboardData:l,loading:e.computed(()=>o.value),saving:e.computed(()=>n.value),error:e.computed(()=>i.value),widgetLoading:e.computed(()=>r.value),statsPeriod:e.computed(()=>s.value),loadDashboard:_,loadWidget:u,saveLayout:k,updateLayoutWidgets:f,setStatsPeriod:b}}function At(t){const a=ve();async function l(c){if(!c)return null;const d=await a.fetchTask(c);return await a.fetchActiveTimer(),d}async function o(c){var d;return(d=a.currentTask)!=null&&d.id?a.addComment(a.currentTask.id,c):null}async function n(){var c;return(c=a.currentTask)!=null&&c.id?a.acknowledgeEscalation(a.currentTask.id):null}async function i(c){var d;return(d=a.currentTask)!=null&&d.id?a.snoozeEscalation(a.currentTask.id,c):null}async function r(c){var d;return(d=a.currentTask)!=null&&d.id?a.addChecklistItem(a.currentTask.id,c):null}async function s(c){var d;return(d=a.currentTask)!=null&&d.id?a.toggleChecklistItem(a.currentTask.id,c):null}async function y(c){var d;return(d=a.currentTask)!=null&&d.id?a.removeChecklistItem(a.currentTask.id,c):null}function _(c){var d;return c??((d=a.currentTask)==null?void 0:d.id)??null}async function u(c){const d=_(c);return d?a.startTimer(d):null}async function k(c){const d=_(c);return d?a.stopTimer(d):null}async function f(c,d){const m=_(d);return m?a.addManualTimeEntry(m,c):null}async function b(c,d){const m=_(d);return m?a.deleteTimeEntry(m,c):null}return t!==void 0&&e.watch(()=>e.toValue(t),async c=>{await l(c)},{immediate:!0}),{task:e.computed(()=>a.currentTask),activeTimer:e.computed(()=>a.activeTimer),loading:e.computed(()=>a.loading),error:e.computed(()=>a.error),loadTask:l,addComment:o,acknowledgeEscalation:n,snoozeEscalation:i,addChecklistItem:r,toggleChecklistItem:s,removeChecklistItem:y,startTimer:u,stopTimer:k,addManualTimeEntry:f,deleteTimeEntry:b,completeTask:a.completeTask,reopenTask:a.reopenTask,cancelTask:a.cancelTask,updateTask:a.updateTask,deleteTask:a.deleteTask}}function It(){const t=at();function a(l){t.setFilters(l)}return{filters:e.computed(()=>t.filters),pagination:e.computed(()=>t.pagination),view:e.computed(()=>t.view),activeSavedFilterId:e.computed(()=>t.activeSavedFilterId),activeFilterCount:e.computed(()=>t.activeFilterCount),setFilter:t.setFilter,setFilters:a,setSort:t.setSort,setView:t.setView,setActiveSavedFilter:t.setActiveSavedFilter,clearFilters:t.clearFilters,nextPage:t.nextPage,previousPage:t.previousPage}}function ln(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function je(t){if(!ln(t))return null;const a=t.id,l=t.name;return typeof a!="string"&&typeof a!="number"||typeof l!="string"?null:{id:String(a),name:l}}function on(){return typeof window>"u"?null:window.Echo??null}function sn(t,a={}){const l=e.ref([]),o=e.ref(null),n=e.ref(a.autoConnect??!0),i=e.computed(()=>o.value!==null);function r(){const k=(typeof a.echo=="function"?a.echo():a.echo)??on();if(k===null)throw new Error("Laravel Echo is not available for task presence.");return k}function s(u){l.value=u}function y(){n.value=!0}function _(){n.value=!1,o.value!==null&&(r().leave(o.value),o.value=null),s([])}return e.watch(()=>{const u=e.toValue(t),k=u==null?null:String(u);return n.value&&k!==""?`presence-tasks.viewing.${k}`:null},(u,k)=>{if(typeof k=="string"&&k!==u&&(r().leave(k),o.value=null,s([])),u===null||u===k)return;r().join(u).here(b=>{s(b.map(je).filter(c=>c!==null))}).joining(b=>{const c=je(b);c===null||l.value.some(d=>d.id===c.id)||s([...l.value,c])}).leaving(b=>{const c=je(b);c!==null&&s(l.value.filter(d=>d.id!==c.id))}),o.value=u},{immediate:!0}),e.onUnmounted(()=>{o.value!==null&&r().leave(o.value)}),{viewers:l,isConnected:i,connect:y,disconnect:_}}function Ft(){const t=ve(),a=at();async function l(){const s=await t.fetchSavedFilters();if(a.activeSavedFilterId===null){const y=s.find(_=>_.is_default);y!==void 0&&o(y)}return s}function o(s){const y={...s.filters,page:1,per_page:s.filters.per_page??a.filters.per_page??15};return a.setFilters(y),a.setActiveSavedFilter(s.id),y}async function n(s){const y=await t.createSavedFilter({name:s.name,filters:{...a.filters},is_default:s.is_default??!1,is_shared:s.is_shared??!1,position:s.position??t.savedFilters.length});return a.setActiveSavedFilter(y.id),y}async function i(s,y){const _=await t.updateSavedFilterRecord(s,y);return a.activeSavedFilterId===s&&y.filters!==void 0&&o(_),_}async function r(s){await t.deleteSavedFilterRecord(s),a.activeSavedFilterId===s&&a.setActiveSavedFilter(null)}return{savedFilters:e.computed(()=>t.savedFilters),loading:e.computed(()=>t.savedFiltersLoading),error:e.computed(()=>t.error),activeSavedFilterId:e.computed(()=>a.activeSavedFilterId),loadSavedFilters:l,applySavedFilter:o,saveCurrentFilter:n,updateSavedFilter:i,deleteSavedFilter:r}}function rn(t={}){const a=ht(),l=e.ref(t.initialFilters??{});async function o(){await a.fetchWorkflows(l.value)}async function n(i){l.value={...i},await o()}return e.onMounted(()=>{(t.autoLoad??!0)&&o()}),{filters:e.computed(()=>l.value),workflows:e.computed(()=>a.workflows),pagination:e.computed(()=>a.pagination),currentWorkflow:e.computed(()=>a.currentWorkflow),testResult:e.computed(()=>a.testResult),logsByWorkflow:e.computed(()=>a.logsByWorkflow),loading:e.computed(()=>a.loading),saving:e.computed(()=>a.saving),error:e.computed(()=>a.error),reload:o,setFilters:n,fetchWorkflow:a.fetchWorkflow,createWorkflow:a.createWorkflow,updateWorkflow:a.updateWorkflow,deleteWorkflow:a.deleteWorkflow,toggleWorkflow:a.toggleWorkflow,duplicateWorkflow:a.duplicateWorkflow,moveWorkflow:a.moveWorkflow,fetchLogs:a.fetchLogs,runTest:a.runTest}}function Lt(){const t=T(),a=e.ref([]),l=e.ref(null),o=e.ref(!1),n=e.ref(!1),i=e.ref(null),r=e.ref({current_page:1,last_page:1,per_page:15,total:0});function s(m){i.value=m instanceof Error?m.message:String(m)}async function y(m={}){o.value=!0,i.value=null;try{const E=await t.listRecurring(m);a.value=E.data,r.value=E.meta}catch(E){s(E)}finally{o.value=!1}}async function _(m){o.value=!0,i.value=null;try{const E=await t.getRecurring(m);return l.value=E,E}catch(E){return s(E),null}finally{o.value=!1}}async function u(m){n.value=!0,i.value=null;try{const E=await t.createRecurring(m);return a.value.unshift(E),E}catch(E){return s(E),null}finally{n.value=!1}}async function k(m,E){var B;n.value=!0,i.value=null;try{const N=await t.updateRecurring(m,E),$=a.value.findIndex(h=>h.id===m);return $>=0&&a.value.splice($,1,N),((B=l.value)==null?void 0:B.id)===m&&(l.value=N),N}catch(N){return s(N),null}finally{n.value=!1}}async function f(m){var E;n.value=!0,i.value=null;try{return await t.deleteRecurring(m),a.value=a.value.filter(B=>B.id!==m),((E=l.value)==null?void 0:E.id)===m&&(l.value=null),!0}catch(B){return s(B),!1}finally{n.value=!1}}async function b(m){n.value=!0,i.value=null;try{const E=await t.pauseRecurring(m),B=a.value.findIndex(N=>N.id===m);return B>=0&&a.value.splice(B,1,E),E}catch(E){return s(E),null}finally{n.value=!1}}async function c(m){n.value=!0,i.value=null;try{const E=await t.resumeRecurring(m),B=a.value.findIndex(N=>N.id===m);return B>=0&&a.value.splice(B,1,E),E}catch(E){return s(E),null}finally{n.value=!1}}async function d(m){n.value=!0,i.value=null;try{return await t.generateRecurring(m)}catch(E){return s(E),null}finally{n.value=!1}}return{templates:e.computed(()=>a.value),currentTemplate:e.computed(()=>l.value),loading:e.computed(()=>o.value),saving:e.computed(()=>n.value),error:e.computed(()=>i.value),pagination:e.computed(()=>r.value),loadTemplates:y,loadTemplate:_,createTemplate:u,updateTemplate:k,deleteTemplate:f,pauseTemplate:b,resumeTemplate:c,generateFromTemplate:d}}const dn={class:"stats-widget","data-testid":"panel-my-stats"},cn={class:"stats-widget__toggle",role:"group","aria-label":"Stats period"},un=["data-testid","aria-pressed","onClick"],mn={class:"stats-widget__cards","data-testid":"list-stats-cards"},pn=["data-testid","aria-label"],kn=["data-testid"],_n=["aria-label"],fn=["aria-label"],vn=e.defineComponent({__name:"MyStatsWidget",props:{stats:{}},emits:["update:period"],setup(t,{emit:a}){const l=a;function o(i){return i==="up"?"↑":i==="down"?"↓":"→"}const n=[{key:"tasks_completed",label:"Tasks Completed"},{key:"avg_cycle_hours",label:"Avg Cycle Hours"},{key:"on_time_percentage",label:"On-Time %"},{key:"tasks_created",label:"Tasks Created"}];return(i,r)=>(e.openBlock(),e.createElementBlock("section",dn,[e.createElementVNode("header",cn,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(["week","month"],s=>e.createElementVNode("button",{key:s,type:"button",class:e.normalizeClass({active:t.stats.period===s}),"data-testid":`btn-stats-period-${s}`,"aria-pressed":t.stats.period===s,onClick:y=>l("update:period",s)},e.toDisplayString(s),11,un)),64))]),e.createElementVNode("div",mn,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(n,s=>e.createElementVNode("article",{key:s.key,class:"stats-widget__card","data-testid":`card-stat-${s.key}`,"aria-label":`${s.label}: ${t.stats.current[s.key]}`},[e.createElementVNode("small",null,e.toDisplayString(s.label),1),e.createElementVNode("strong",{"data-testid":`badge-stat-value-${s.key}`},e.toDisplayString(t.stats.current[s.key]),9,kn),e.createElementVNode("span",{"aria-label":`Trend: ${o(t.stats.trends[s.key])} vs previous period`},e.toDisplayString(o(t.stats.trends[s.key]))+" vs previous",9,_n)],8,pn)),64))]),e.createElementVNode("footer",{class:"stats-widget__footer","data-testid":"badge-streak-days","aria-label":`${t.stats.current.streak_days??0} day streak`},e.toDisplayString(t.stats.current.streak_days??0)+" day streak ",9,fn)]))}}),R=(t,a)=>{const l=t.__vccOpts||t;for(const[o,n]of a)l[o]=n;return l},Rt=R(vn,[["__scopeId","data-v-514b610d"]]),yn={draft:"Draft",open:"Open",in_progress:"In Progress",blocked:"Blocked",under_review:"Under Review",complete:"Complete",cancelled:"Cancelled"},gn={none:"None",low:"Low",medium:"Medium",high:"High",urgent:"Urgent",critical:"Critical"},bn={draft:"is-draft",open:"is-open",in_progress:"is-in-progress",blocked:"is-blocked",under_review:"is-under-review",complete:"is-complete",cancelled:"is-cancelled"},hn={draft:["draft","open","cancelled"],open:["open","in_progress","blocked","complete","cancelled"],in_progress:["in_progress","blocked","under_review","complete","cancelled"],blocked:["blocked","open","in_progress","cancelled"],under_review:["under_review","in_progress","complete","cancelled"],complete:["complete","open"],cancelled:["cancelled","open"]},En={none:"·",low:"↓",medium:"–",high:"↑",urgent:"⇈",critical:"!"},wn={none:"is-none",low:"is-low",medium:"is-medium",high:"is-high",urgent:"is-urgent",critical:"is-critical"},Vn={reminder:"Reminder",warning:"Warning",due_now:"Due Now",overdue:"Overdue",escalated:"Escalated",critical:"Critical"};function Je(t){return yn[t]}function Nn(t,a){return hn[t].includes(a)}function ct(t,a){return!(!Nn(t.status,a)||a==="in_progress"&&t.has_unresolved_blockers===!0)}function $n(t){return bn[t]}function Tn(t){return gn[t]}function Bn(t){return En[t]}function Sn(t){return wn[t]}function Cn(t){return{none:"#94a3b8",low:"#0f766e",medium:"#2563eb",high:"#d97706",urgent:"#dc2626",critical:"#7f1d1d"}[t]}function Dn(t){return t?Vn[t]:"No escalation"}function ot(t){return t?new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric",year:"numeric"}).format(new Date(t)):"No due date"}function K(t){return t?new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric",year:"numeric",hour:"numeric",minute:"2-digit"}).format(new Date(t)):"Unknown time"}function re(t,a=new Date){if(!t)return"Not scheduled";const o=new Date(t).getTime()-a.getTime(),n=Math.round(o/6e4);if(Math.abs(n)<1)return"Just now";const i=new Intl.RelativeTimeFormat("en-US",{numeric:"auto"});if(Math.abs(n)<60)return i.format(n,"minute");const r=Math.round(n/60);if(Math.abs(r)<24)return i.format(r,"hour");const s=Math.round(r/24);return i.format(s,"day")}function zt(t){return t.description?t.description:t.action.replace(/_/g," ")}const Le=[{value:"MO",label:"Monday",shortLabel:"Mon"},{value:"TU",label:"Tuesday",shortLabel:"Tue"},{value:"WE",label:"Wednesday",shortLabel:"Wed"},{value:"TH",label:"Thursday",shortLabel:"Thu"},{value:"FR",label:"Friday",shortLabel:"Fri"},{value:"SA",label:"Saturday",shortLabel:"Sat"},{value:"SU",label:"Sunday",shortLabel:"Sun"}],Mn=["America/New_York","America/Chicago","America/Denver","America/Los_Angeles","America/Phoenix","UTC"],Re=new Map(Le.map(t=>[t.value,t.label])),ut=Le.map(t=>t.value),An=new Map([[1,"first"],[2,"second"],[3,"third"],[4,"fourth"],[-1,"last"]]);function ke(t,a=1){const l=typeof t=="number"?t:Number.parseInt(String(t??""),10);return Number.isFinite(l)&&l>0?l:a}function In(t){return new Map(t.split(";").map(a=>a.trim()).filter(Boolean).map(a=>{const[l,o]=a.split("=");return[String(l??"").toUpperCase(),String(o??"").toUpperCase()]}))}function Ut(t){return[...t].sort((a,l)=>ut.indexOf(a)-ut.indexOf(l))}function mt(t){return t.length===0?"":t.length===1?t[0]??"":t.length===2?`${t[0]??""} and ${t[1]??""}`:`${t.slice(0,-1).join(", ")}, and ${t[t.length-1]??""}`}function Fn(t){const a=t%10,l=t%100;return a===1&&l!==11?`${t}st`:a===2&&l!==12?`${t}nd`:a===3&&l!==13?`${t}rd`:`${t}th`}function De(t){return`FREQ=DAILY;INTERVAL=${ke(t)}`}function Ln(t,a){const l=Ut(a);return`FREQ=WEEKLY;INTERVAL=${ke(t)};BYDAY=${l.join(",")}`}function Rn(t,a){const l=Math.min(Math.max(ke(a),1),31);return`FREQ=MONTHLY;INTERVAL=${ke(t)};BYMONTHDAY=${l}`}function zn(t,a,l){const o=[1,2,3,4,-1].includes(l)?l:1;return`FREQ=MONTHLY;INTERVAL=${ke(t)};BYDAY=${a};BYSETPOS=${o}`}function Wt(t){const a=t.trim().toUpperCase(),l=In(a),o=l.get("FREQ"),n=ke(l.get("INTERVAL"));if(o==="DAILY")return{mode:"daily",interval:n,weeklyDays:["MO"],monthlyMode:"day_of_month",monthlyDay:1,monthlyWeekday:"MO",monthlySetPosition:1,raw:a};if(o==="WEEKLY"){const i=Ut((l.get("BYDAY")??"").split(",").filter(r=>Re.has(r)));if(i.length>0)return{mode:"weekly",interval:n,weeklyDays:i,monthlyMode:"day_of_month",monthlyDay:1,monthlyWeekday:"MO",monthlySetPosition:1,raw:a}}if(o==="MONTHLY"){const i=Number.parseInt(l.get("BYMONTHDAY")??"",10);if(Number.isFinite(i))return{mode:"monthly",interval:n,weeklyDays:["MO"],monthlyMode:"day_of_month",monthlyDay:Math.min(Math.max(i,1),31),monthlyWeekday:"MO",monthlySetPosition:1,raw:a};const r=l.get("BYDAY"),s=Number.parseInt(l.get("BYSETPOS")??"",10);if(r!==void 0&&Re.has(r)&&Number.isFinite(s))return{mode:"monthly",interval:n,weeklyDays:["MO"],monthlyMode:"weekday",monthlyDay:1,monthlyWeekday:r,monthlySetPosition:s,raw:a}}return{mode:"custom",interval:1,weeklyDays:["MO"],monthlyMode:"day_of_month",monthlyDay:1,monthlyWeekday:"MO",monthlySetPosition:1,raw:t.trim()}}function Un(t){const a=Wt(t);if(a.mode==="custom")return a.raw||"Custom recurrence rule";if(a.mode==="daily")return a.interval===1?"Every day":`Every ${a.interval} days`;if(a.mode==="weekly"){const i=a.weeklyDays.map(r=>Re.get(r)).filter(r=>typeof r=="string");return a.interval===1?`Every ${mt(i)}`:a.interval===2&&i.length===1?`Every other ${i[0]??"week"}`:`Every ${a.interval} weeks on ${mt(i)}`}if(a.monthlyMode==="day_of_month"){const i=a.interval===1?"month":`${a.interval} months`;return`${Fn(a.monthlyDay)} of every ${i}`}const l=Re.get(a.monthlyWeekday)??a.monthlyWeekday,o=An.get(a.monthlySetPosition)??`${a.monthlySetPosition}th`,n=a.interval===1?"month":`${a.interval} months`;return`${o} ${l} of every ${n}`}const Wn=["title","data-testid","aria-label"],xn={class:"task-priority-icon__glyph","aria-hidden":"true"},Pn={key:0,class:"task-priority-icon__label","aria-hidden":"true"},On=e.defineComponent({__name:"TaskPriorityIcon",props:{priority:{},compact:{type:Boolean}},setup(t){const a=t,l=e.computed(()=>Tn(a.priority)),o=e.computed(()=>Bn(a.priority)),n=e.computed(()=>Sn(a.priority));return(i,r)=>(e.openBlock(),e.createElementBlock("span",{class:e.normalizeClass(["task-priority-icon",[n.value,{compact:t.compact}]]),title:l.value,"data-testid":`badge-priority-${t.priority}`,"aria-label":`Priority: ${l.value}`},[e.createElementVNode("span",xn,e.toDisplayString(o.value),1),t.compact?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("span",Pn,e.toDisplayString(l.value),1))],10,Wn))}}),ye=R(On,[["__scopeId","data-v-5d9a631f"]]),Hn=["data-status"],jn=e.defineComponent({__name:"TaskStatusBadge",props:{status:{}},setup(t){const a=t,l=e.computed(()=>Je(a.status)),o=e.computed(()=>$n(a.status));return(n,i)=>(e.openBlock(),e.createElementBlock("span",{class:e.normalizeClass(["task-status-badge",o.value]),"data-status":t.status,"data-testid":"badge-task-status",role:"status"},e.toDisplayString(l.value),11,Hn))}}),ge=R(jn,[["__scopeId","data-v-e4a33c21"]]),Yn={class:"dashboard-widget","data-testid":"panel-my-tasks-today"},qn={key:0,class:"dashboard-widget__empty","data-testid":"status-my-tasks-empty"},Qn={key:1,class:"dashboard-widget__list","data-testid":"list-my-tasks-today"},Kn=["data-testid","aria-label","onClick"],Gn={class:"dashboard-widget__task-main"},Jn={class:"dashboard-widget__task-meta"},Zn={class:"dashboard-widget__footer","data-testid":"status-my-tasks-summary"},Xn=e.defineComponent({__name:"MyTasksToday",props:{widget:{}},emits:["select-task"],setup(t,{emit:a}){const l=a;return(o,n)=>(e.openBlock(),e.createElementBlock("section",Yn,[t.widget.items.length===0?(e.openBlock(),e.createElementBlock("div",qn,[...n[0]||(n[0]=[e.createElementVNode("strong",null,"All caught up!",-1),e.createElementVNode("p",null,"No tasks are due today.",-1)])])):(e.openBlock(),e.createElementBlock("ul",Qn,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.widget.items,i=>(e.openBlock(),e.createElementBlock("li",{key:i.id},[e.createElementVNode("button",{type:"button",class:"dashboard-widget__task","data-testid":`item-task-${i.id}`,"aria-label":`${i.display_number_formatted}: ${i.title}${i.is_overdue?" (overdue)":""}`,onClick:r=>l("select-task",i.id)},[e.createElementVNode("div",Gn,[e.createVNode(ye,{priority:i.priority,compact:""},null,8,["priority"]),e.createElementVNode("div",null,[e.createElementVNode("strong",null,e.toDisplayString(i.display_number_formatted),1),e.createElementVNode("p",null,e.toDisplayString(i.title),1)])]),e.createElementVNode("div",Jn,[e.createVNode(ge,{status:i.status},null,8,["status"]),e.createElementVNode("span",{class:e.normalizeClass({"is-overdue":i.is_overdue})},e.toDisplayString(e.unref(re)(i.due_at)),3)])],8,Kn)]))),128))])),e.createElementVNode("footer",Zn,e.toDisplayString(t.widget.summary.due_today??0)+" due today, "+e.toDisplayString(t.widget.summary.overdue??0)+" overdue ",1)]))}}),xt=R(Xn,[["__scopeId","data-v-011b1bd1"]]),el={class:"overdue-tracker","data-testid":"panel-overdue-tracker"},tl={key:0,class:"overdue-tracker__empty","data-testid":"status-overdue-empty"},al={key:1,class:"overdue-tracker__list","data-testid":"list-overdue-tasks"},nl=["data-testid","aria-label","onClick"],ll={class:"overdue-tracker__meta"},ol=e.defineComponent({__name:"OverdueTracker",props:{widget:{}},emits:["select-task"],setup(t,{emit:a}){const l=a;function o(n){if(!n.due_at)return"is-low";const i=Math.abs((Date.now()-new Date(n.due_at).getTime())/36e5);return i>=72?"is-critical":i>=24?"is-high":"is-medium"}return(n,i)=>(e.openBlock(),e.createElementBlock("section",el,[t.widget.items.length===0?(e.openBlock(),e.createElementBlock("div",tl,"No overdue tasks.")):(e.openBlock(),e.createElementBlock("ul",al,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.widget.items,r=>{var s,y;return e.openBlock(),e.createElementBlock("li",{key:r.id},[e.createElementVNode("button",{type:"button",class:e.normalizeClass(["overdue-tracker__row",o(r)]),"data-testid":`item-task-${r.id}`,"aria-label":`${r.display_number_formatted}: ${r.title}, assigned to ${((s=r.primary_assignee)==null?void 0:s.name)??"Unassigned"}, due ${e.unref(re)(r.due_at)}`,onClick:_=>l("select-task",r.id)},[e.createElementVNode("div",null,[e.createElementVNode("strong",null,e.toDisplayString(r.display_number_formatted),1),e.createElementVNode("p",null,e.toDisplayString(r.title),1)]),e.createElementVNode("div",ll,[e.createElementVNode("span",null,e.toDisplayString(e.unref(re)(r.due_at)),1),e.createElementVNode("small",null,e.toDisplayString(((y=r.primary_assignee)==null?void 0:y.name)??"Unassigned"),1)])],10,nl)])}),128))]))]))}}),Pt=R(ol,[["__scopeId","data-v-a45242a6"]]),sl={class:"health-alerts","data-testid":"panel-task-health-alerts"},il={key:0,class:"health-alerts__empty","data-testid":"status-health-alerts-empty"},rl=["data-testid"],dl=["data-testid"],cl=["data-testid","aria-label","onClick"],ul={class:"health-alerts__actions"},ml=["data-testid","aria-label","onClick"],pl=["data-testid","aria-label","onClick"],kl=e.defineComponent({__name:"TaskHealthAlerts",props:{widget:{}},emits:["select-task","action"],setup(t,{emit:a}){const l=t,o=a,n=e.ref({}),i=e.computed(()=>{const s=Date.now();return l.widget.items.filter(y=>(n.value[y.task.id]??0)<s).flatMap(y=>y.issues.map(_=>({issue:_,alert:y}))).reduce((y,_)=>{const u=_.issue.type;return y[u]=[...y[u]??[],_],y},{})});function r(s){n.value={...n.value,[s]:Date.now()+1440*60*1e3}}return(s,y)=>(e.openBlock(),e.createElementBlock("section",sl,[Object.keys(i.value).length===0?(e.openBlock(),e.createElementBlock("div",il,"No tasks need attention.")):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,(_,u)=>{var k;return e.openBlock(),e.createElementBlock("article",{key:u,class:"health-alerts__group","data-testid":`panel-health-group-${u}`},[e.createElementVNode("header",null,e.toDisplayString((k=_[0])==null?void 0:k.issue.label),1),e.createElementVNode("ul",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(_,f=>(e.openBlock(),e.createElementBlock("li",{key:`${u}-${f.alert.task.id}`},[e.createElementVNode("div",{class:"health-alerts__card","data-testid":`card-health-alert-${f.alert.task.id}`},[e.createElementVNode("button",{type:"button",class:"health-alerts__task","data-testid":`btn-health-alert-task-${f.alert.task.id}`,"aria-label":`View task ${f.alert.task.display_number_formatted}: ${f.alert.task.title}`,onClick:b=>o("select-task",f.alert.task.id)},[e.createElementVNode("strong",null,e.toDisplayString(f.alert.task.display_number_formatted),1),e.createElementVNode("span",null,e.toDisplayString(f.alert.task.title),1)],8,cl),e.createElementVNode("p",null,e.toDisplayString(f.issue.message),1),e.createElementVNode("div",ul,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(f.issue.suggested_actions,b=>(e.openBlock(),e.createElementBlock("button",{key:b,type:"button","data-testid":`btn-health-action-${b}-${f.alert.task.id}`,"aria-label":`${b.replace(/_/g," ")} for task ${f.alert.task.display_number_formatted}`,onClick:c=>o("action",{taskId:f.alert.task.id,action:b})},e.toDisplayString(b.replace(/_/g," ")),9,ml))),128)),e.createElementVNode("button",{type:"button",class:"secondary","data-testid":`btn-snooze-alert-${f.alert.task.id}`,"aria-label":`Snooze alerts for task ${f.alert.task.display_number_formatted} for 24 hours`,onClick:b=>r(f.alert.task.id)},"Snooze 24h",8,pl)])],8,dl)]))),128))])],8,rl)}),128))]))}}),Ot=R(kl,[["__scopeId","data-v-2ecc7683"]]),_l={class:"activity-feed","data-testid":"panel-team-activity-feed"},fl={class:"activity-feed__header"},vl={"data-testid":"badge-activity-count"},yl={key:0,class:"activity-feed__empty","data-testid":"status-activity-empty"},gl={key:1,class:"activity-feed__list","data-testid":"list-activity-feed"},bl=["data-testid"],hl={class:"activity-feed__avatar","aria-hidden":"true"},El={class:"activity-feed__content"},wl=["data-testid","aria-label","onClick"],Vl=e.defineComponent({__name:"TeamActivityFeed",props:{widget:{},scope:{}},emits:["select-task"],setup(t,{emit:a}){const l=a;return(o,n)=>(e.openBlock(),e.createElementBlock("section",_l,[e.createElementVNode("header",fl,[e.createElementVNode("strong",null,e.toDisplayString(t.scope==="team"?"Team feed":"My feed"),1),e.createElementVNode("span",vl,e.toDisplayString(t.widget.summary.count??t.widget.items.length)+" items",1)]),t.widget.items.length===0?(e.openBlock(),e.createElementBlock("div",yl,"No recent activity.")):(e.openBlock(),e.createElementBlock("ul",gl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.widget.items,i=>{var r,s,y;return e.openBlock(),e.createElementBlock("li",{key:i.id},[e.createElementVNode("div",{class:"activity-feed__item","data-testid":`item-activity-${i.id}`},[e.createElementVNode("div",hl,e.toDisplayString(((s=(r=i.user)==null?void 0:r.name)==null?void 0:s.slice(0,1))??"?"),1),e.createElementVNode("div",El,[e.createElementVNode("p",null,[e.createElementVNode("strong",null,e.toDisplayString(((y=i.user)==null?void 0:y.name)??"System"),1),e.createTextVNode(" "+e.toDisplayString(e.unref(zt)(i))+" ",1),i.task?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"activity-feed__task-link","data-testid":`btn-activity-task-${i.task.id}`,"aria-label":`View task ${i.task.display_number_formatted}`,onClick:_=>l("select-task",i.task.id)},e.toDisplayString(i.task.display_number_formatted),9,wl)):e.createCommentVNode("",!0)]),e.createElementVNode("small",null,e.toDisplayString(e.unref(re)(i.created_at)),1)])],8,bl)])}),128))]))]))}}),Ht=R(Vl,[["__scopeId","data-v-1165d882"]]),Nl={class:"upcoming-grid","data-testid":"panel-upcoming-this-week"},$l=["data-testid","aria-label"],Tl=["data-testid"],Bl=["data-testid"],Sl=["data-testid"],Cl=["data-testid","aria-label","onClick"],Dl=e.defineComponent({__name:"UpcomingThisWeek",props:{widget:{}},emits:["select-task"],setup(t,{emit:a}){const l=a;return(o,n)=>(e.openBlock(),e.createElementBlock("section",Nl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.widget.days,i=>(e.openBlock(),e.createElementBlock("article",{key:i.date,class:e.normalizeClass(["upcoming-grid__column",{"is-today":i.is_today}]),"data-testid":`panel-upcoming-day-${i.date}`,"aria-label":`${i.label}${i.is_today?" (today)":""}: ${i.tasks.length} task${i.tasks.length!==1?"s":""}`},[e.createElementVNode("header",null,[e.createElementVNode("strong",null,e.toDisplayString(i.label),1),e.createElementVNode("span",{"data-testid":`badge-day-task-count-${i.date}`},e.toDisplayString(i.tasks.length),9,Tl)]),i.tasks.length===0?(e.openBlock(),e.createElementBlock("div",{key:0,class:"upcoming-grid__empty","data-testid":`status-day-empty-${i.date}`},"No tasks",8,Bl)):(e.openBlock(),e.createElementBlock("ul",{key:1,"data-testid":`list-day-tasks-${i.date}`},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.tasks,r=>(e.openBlock(),e.createElementBlock("li",{key:r.id},[e.createElementVNode("button",{type:"button","data-testid":`item-task-${r.id}`,"aria-label":`${r.display_number_formatted}: ${r.title}, due ${e.unref(re)(r.due_at)}`,onClick:s=>l("select-task",r.id)},[e.createElementVNode("strong",null,e.toDisplayString(r.display_number_formatted),1),e.createElementVNode("span",null,e.toDisplayString(r.title),1),e.createElementVNode("small",null,e.toDisplayString(e.unref(re)(r.due_at)),1)],8,Cl)]))),128))],8,Sl))],10,$l))),128))]))}}),jt=R(Dl,[["__scopeId","data-v-a958bde1"]]),Ml={class:"widget-grid","data-testid":"panel-widget-grid"},Al=["data-testid","aria-label","onDragstart","onDrop"],Il=e.defineComponent({__name:"WidgetGrid",props:{widgets:{}},emits:["update:widgets"],setup(t,{emit:a}){const l=t,o=a,n=e.ref(null),i=e.computed(()=>[...l.widgets].filter(k=>k.visible!==!1).sort((k,f)=>k.y-f.y||k.x-f.x));function r(k){o("update:widgets",k(l.widgets.map(f=>({...f,...f.settings?{settings:{...f.settings}}:{}}))))}function s(k,f){k!==f&&r(b=>{const c=b.find(m=>m.id===k),d=b.find(m=>m.id===f);return c===void 0||d===void 0||([c.x,d.x]=[d.x,c.x],[c.y,d.y]=[d.y,c.y]),b})}function y(k,f){r(b=>b.map(c=>c.id!==k?c:f==="left"?{...c,x:Math.max(0,c.x-1)}:f==="right"?{...c,x:Math.min(11,c.x+1)}:f==="up"?{...c,y:Math.max(0,c.y-1)}:{...c,y:Math.max(0,c.y+1)}))}function _(k,f){r(b=>b.map(c=>c.id===k?{...c,w:Math.min(12,Math.max(2,c.w+f))}:c))}function u(k){return{gridColumn:`${k.x+1} / span ${k.w}`,gridRow:`${k.y+1} / span ${k.h}`}}return(k,f)=>(e.openBlock(),e.createElementBlock("div",Ml,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,b=>(e.openBlock(),e.createElementBlock("article",{key:b.id,class:"widget-grid__item",style:e.normalizeStyle(u(b)),"data-testid":`panel-widget-grid-item-${b.id}`,draggable:"true","aria-label":`${b.id} widget, draggable`,onDragstart:c=>n.value=b.id,onDragend:f[0]||(f[0]=c=>n.value=null),onDragover:f[1]||(f[1]=e.withModifiers(()=>{},["prevent"])),onDrop:c=>n.value?s(n.value,b.id):null},[e.renderSlot(k.$slots,"default",{widget:b,move:c=>y(b.id,c),resize:c=>_(b.id,c)},void 0,!0)],44,Al))),128))]))}}),Yt=R(Il,[["__scopeId","data-v-24cc5047"]]),Fl={class:"task-dashboard","data-testid":"panel-task-dashboard"},Ll={class:"task-dashboard__header"},Rl={class:"task-dashboard__eyebrow"},zl={key:0,class:"task-dashboard__error","data-testid":"status-dashboard-error",role:"alert"},Ul={key:1,class:"task-dashboard__loading","data-testid":"status-dashboard-loading","aria-live":"polite"},Wl={key:2,class:"task-dashboard__hidden","data-testid":"panel-hidden-widgets"},xl=["data-testid","aria-label","onClick"],Pl=["data-testid"],Ol={class:"task-dashboard__panel-header"},Hl=["data-testid"],jl={class:"task-dashboard__panel-controls"},Yl=["data-testid","onClick"],ql=["data-testid","onClick"],Ql=["data-testid","onClick"],Kl=["data-testid","onClick"],Gl=e.defineComponent({__name:"TaskDashboard",props:{userId:{},echo:{type:[Object,Function,null]},autoConnect:{type:Boolean}},emits:["select-task","widget-action"],setup(t,{emit:a}){const l=t,o=a,n=Mt(e.computed(()=>l.userId),{echo:l.echo,autoConnect:l.autoConnect??!0}),i=n.dashboardData,r=n.loading,s=n.error,y=n.widgetLoading,_=e.computed(()=>{var m;return((m=n.dashboardData.value)==null?void 0:m.config.layout.widgets.filter(E=>E.visible===!1))??[]});let u;function k(m){var E;return{"my-tasks-today":"My Tasks Today","upcoming-this-week":"Upcoming This Week","overdue-tracker":"Overdue Tracker","team-activity-feed":((E=n.dashboardData.value)==null?void 0:E.scope)==="team"?"Team Activity":"My Activity","my-stats":"My Stats","task-health-alerts":"Task Health Alerts"}[m]??m}function f(){n.dashboardData.value!==null&&(u!==void 0&&clearTimeout(u),u=setTimeout(()=>{n.dashboardData.value!==null&&n.saveLayout(n.dashboardData.value.config.layout)},300))}function b(m){n.updateLayoutWidgets(m),f()}function c(m){var B;const E=(B=n.dashboardData.value)==null?void 0:B.config.layout.widgets.map(N=>N.id===m?{...N,visible:!0}:N);E!==void 0&&b(E)}function d(m){o("select-task",m)}return e.onBeforeUnmount(()=>{u!==void 0&&clearTimeout(u)}),(m,E)=>{var B;return e.openBlock(),e.createElementBlock("section",Fl,[e.createElementVNode("header",Ll,[e.createElementVNode("div",null,[e.createElementVNode("p",Rl,e.toDisplayString(((B=e.unref(i))==null?void 0:B.scope)==="team"?"Operations command center":"Personal command center"),1),E[2]||(E[2]=e.createElementVNode("h2",null,"Task Dashboard",-1))]),e.createElementVNode("button",{type:"button",class:"task-dashboard__refresh","data-testid":"btn-refresh-dashboard",onClick:E[0]||(E[0]=N=>e.unref(n).loadDashboard())}," Refresh ")]),e.unref(s)?(e.openBlock(),e.createElementBlock("p",zl,e.toDisplayString(e.unref(s)),1)):e.unref(r)&&e.unref(i)===null?(e.openBlock(),e.createElementBlock("p",Ul,"Loading dashboard…")):e.createCommentVNode("",!0),_.value.length>0?(e.openBlock(),e.createElementBlock("div",Wl,[E[3]||(E[3]=e.createElementVNode("span",null,"Hidden widgets",-1)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(_.value,N=>(e.openBlock(),e.createElementBlock("button",{key:N.id,type:"button","data-testid":`btn-restore-widget-${N.id}`,"aria-label":`Show ${k(N.id)} widget`,onClick:$=>c(N.id)}," Show "+e.toDisplayString(k(N.id)),9,xl))),128))])):e.createCommentVNode("",!0),e.unref(i)?(e.openBlock(),e.createBlock(Yt,{key:3,widgets:e.unref(i).config.layout.widgets,"onUpdate:widgets":b},{default:e.withCtx(({widget:N,move:$,resize:h})=>[e.createElementVNode("section",{class:"task-dashboard__panel","data-testid":`panel-widget-${N.id}`},[e.createElementVNode("header",Ol,[e.createElementVNode("div",null,[e.createElementVNode("h3",null,e.toDisplayString(k(N.id)),1),e.unref(y)[N.id]?(e.openBlock(),e.createElementBlock("small",{key:0,"data-testid":`status-widget-refreshing-${N.id}`,"aria-live":"polite"},"Refreshing…",8,Hl)):e.createCommentVNode("",!0)]),e.createElementVNode("div",jl,[e.createElementVNode("button",{type:"button","aria-label":"Move left","data-testid":`btn-widget-move-left-${N.id}`,onClick:V=>$("left")},"←",8,Yl),e.createElementVNode("button",{type:"button","aria-label":"Move right","data-testid":`btn-widget-move-right-${N.id}`,onClick:V=>$("right")},"→",8,ql),e.createElementVNode("button",{type:"button","aria-label":"Grow widget","data-testid":`btn-widget-grow-${N.id}`,onClick:V=>h(1)},"+",8,Ql),e.createElementVNode("button",{type:"button","aria-label":"Shrink widget","data-testid":`btn-widget-shrink-${N.id}`,onClick:V=>h(-1)},"−",8,Kl)])]),N.id==="my-tasks-today"?(e.openBlock(),e.createBlock(xt,{key:0,widget:e.unref(i).widgets.my_tasks_today,onSelectTask:d},null,8,["widget"])):N.id==="upcoming-this-week"?(e.openBlock(),e.createBlock(jt,{key:1,widget:e.unref(i).widgets.upcoming_this_week,onSelectTask:d},null,8,["widget"])):N.id==="overdue-tracker"?(e.openBlock(),e.createBlock(Pt,{key:2,widget:e.unref(i).widgets.overdue,onSelectTask:d},null,8,["widget"])):N.id==="team-activity-feed"?(e.openBlock(),e.createBlock(Ht,{key:3,widget:e.unref(i).widgets.activity,scope:e.unref(i).scope,onSelectTask:d},null,8,["widget","scope"])):N.id==="my-stats"?(e.openBlock(),e.createBlock(Rt,{key:4,stats:e.unref(i).widgets.my_stats,"onUpdate:period":e.unref(n).setStatsPeriod},null,8,["stats","onUpdate:period"])):N.id==="task-health-alerts"?(e.openBlock(),e.createBlock(Ot,{key:5,widget:e.unref(i).widgets.health_alerts,onSelectTask:d,onAction:E[1]||(E[1]=V=>o("widget-action",V))},null,8,["widget"])):e.createCommentVNode("",!0)],8,Pl)]),_:1},8,["widgets"])):e.createCommentVNode("",!0)])}}}),qt=R(Gl,[["__scopeId","data-v-14ba4eea"]]),Jl=["data-tier"],Zl={key:0,class:"escalation-badge__icon","aria-hidden":"true"},Xl={key:1,class:"escalation-badge__suffix"},eo=e.defineComponent({__name:"EscalationBadge",props:{tier:{},acknowledgedAt:{},snoozedUntil:{},compact:{type:Boolean}},setup(t){const a=t,l=e.computed(()=>Dn(a.tier)),o=e.computed(()=>a.tier?`tier-${a.tier}`:"tier-none"),n=e.computed(()=>a.snoozedUntil?"Snoozed":a.acknowledgedAt?"Ack":null),i=e.computed(()=>{switch(a.tier){case"reminder":return"•";case"warning":return"◔";case"due_now":return"!";case"overdue":return"!!";case"escalated":return"▲";case"critical":return"!!!";default:return null}});return(r,s)=>t.tier?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(["escalation-badge",[o.value,{compact:t.compact,muted:t.acknowledgedAt,snoozed:t.snoozedUntil}]]),"data-testid":"badge-escalation","data-tier":t.tier},[i.value?(e.openBlock(),e.createElementBlock("span",Zl,e.toDisplayString(i.value),1)):e.createCommentVNode("",!0),e.createElementVNode("span",null,e.toDisplayString(l.value),1),n.value?(e.openBlock(),e.createElementBlock("span",Xl,e.toDisplayString(n.value),1)):e.createCommentVNode("",!0)],10,Jl)):e.createCommentVNode("",!0)}}),Ue=R(eo,[["__scopeId","data-v-e454b2a6"]]),to=["data-testid","aria-label","onKeydown"],ao={class:"task-card__header"},no={class:"task-card__identity"},lo={class:"task-card__number"},oo={class:"task-card__title"},so={class:"task-card__meta"},io={key:0,class:"task-card__lock","aria-label":"Blocked task"},ro={key:0,class:"task-card__description"},co={class:"task-card__footer"},uo={class:"task-card__person"},mo={class:"task-card__person-value"},po={class:"task-card__date"},ko={class:"task-card__person-value"},_o=["aria-label"],fo={class:"task-card__progress-bar","aria-hidden":"true"},vo={class:"task-card__progress-label","aria-hidden":"true"},yo={key:2,class:"task-card__tags","aria-label":"Tags"},go=e.defineComponent({__name:"TaskCard",props:{task:{},compact:{type:Boolean}},emits:["select"],setup(t,{emit:a}){const l=t,o=a,n=e.computed(()=>ot(l.task.due_at??null)),i=e.computed(()=>{var u;return((u=l.task.tags)==null?void 0:u.slice(0,l.compact?2:4))??[]}),r=e.computed(()=>l.task.has_unresolved_blockers===!0||l.task.status==="blocked"),s=e.computed(()=>{const u=l.task.checklist_progress;return!u||u.total===0?0:Math.min(100,Math.round(u.completed/u.total*100))}),y=e.computed(()=>l.task.current_escalation_tier?`escalation-${l.task.current_escalation_tier}`:"");function _(){o("select",l.task.id)}return(u,k)=>{var f;return e.openBlock(),e.createElementBlock("article",{class:e.normalizeClass(["task-card",[y.value,{compact:t.compact,overdue:t.task.is_overdue}]]),"data-testid":`card-task-${t.task.id}`,"aria-label":`Task ${t.task.display_number_formatted}: ${t.task.title}`,role:"button",tabindex:"0",onClick:_,onKeydown:e.withKeys(e.withModifiers(_,["prevent"]),["enter"])},[e.createElementVNode("header",ao,[e.createElementVNode("div",no,[e.createElementVNode("span",lo,e.toDisplayString(t.task.display_number_formatted),1),e.createElementVNode("h3",oo,e.toDisplayString(t.task.title),1)]),e.createElementVNode("div",so,[r.value?(e.openBlock(),e.createElementBlock("span",io," Lock ")):e.createCommentVNode("",!0),e.createVNode(Ue,{tier:t.task.current_escalation_tier??null,"acknowledged-at":t.task.escalation_acknowledged_at??null,"snoozed-until":t.task.escalation_snoozed_until??null,compact:""},null,8,["tier","acknowledged-at","snoozed-until"]),e.createVNode(ye,{priority:t.task.priority,compact:""},null,8,["priority"]),e.createVNode(ge,{status:t.task.status},null,8,["status"])])]),t.task.description&&!t.compact?(e.openBlock(),e.createElementBlock("p",ro,e.toDisplayString(t.task.description),1)):e.createCommentVNode("",!0),e.createElementVNode("div",co,[e.createElementVNode("div",uo,[k[0]||(k[0]=e.createElementVNode("span",{class:"task-card__person-label"},"Assignee",-1)),e.createElementVNode("span",mo,e.toDisplayString(((f=t.task.primary_assignee)==null?void 0:f.name)??"Unassigned"),1)]),e.createElementVNode("div",po,[k[1]||(k[1]=e.createElementVNode("span",{class:"task-card__person-label"},"Due",-1)),e.createElementVNode("span",ko,e.toDisplayString(n.value),1)])]),t.task.checklist_progress&&t.task.checklist_progress.total>0?(e.openBlock(),e.createElementBlock("div",{key:1,class:"task-card__progress","aria-label":`Checklist progress: ${t.task.checklist_progress.completed} of ${t.task.checklist_progress.total} items complete`},[e.createElementVNode("div",fo,[e.createElementVNode("div",{class:"task-card__progress-fill",style:e.normalizeStyle({width:`${s.value}%`})},null,4)]),e.createElementVNode("span",vo,e.toDisplayString(t.task.checklist_progress.completed)+"/"+e.toDisplayString(t.task.checklist_progress.total),1)],8,_o)):e.createCommentVNode("",!0),i.value.length>0?(e.openBlock(),e.createElementBlock("ul",yo,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,b=>(e.openBlock(),e.createElementBlock("li",{key:b.id,class:"task-card__tag"},[e.createElementVNode("span",{class:"task-card__tag-dot",style:e.normalizeStyle({backgroundColor:b.color??"#94a3b8"}),"aria-hidden":"true"},null,4),e.createTextVNode(" "+e.toDisplayString(b.name),1)]))),128))])):e.createCommentVNode("",!0)],42,to)}}}),st=R(go,[["__scopeId","data-v-5b6e36cb"]]),bo={class:"task-board-view","aria-label":"Task board","data-testid":"panel-task-board"},ho={class:"task-board-view__header"},Eo={key:0,class:"task-board-view__error",role:"alert","data-testid":"status-board-error"},wo={class:"task-board-view__columns","data-testid":"list-board-columns"},Vo=["data-testid","onDragover","onDrop"],No={class:"task-board-view__column-header"},$o=["data-testid","aria-label"],To=["data-testid"],Bo=["data-testid"],So=["data-testid","onDragstart"],Co=e.defineComponent({__name:"TaskBoardView",props:{tasks:{},loading:{type:Boolean},visibleStatuses:{},updateTaskStatus:{type:[Function,null]}},emits:["select-task","status-change"],setup(t,{emit:a}){const l=["draft","open","in_progress","blocked","under_review","complete","cancelled"],o=t,n=a,i=e.ref([]),r=e.ref(null),s=e.ref(null),y=e.ref(null);e.watch(()=>o.tasks,m=>{i.value=m.map(E=>({...E}))},{immediate:!0,deep:!0});const _=e.computed(()=>o.visibleStatuses??l),u=e.computed(()=>({draft:i.value.filter(m=>m.status==="draft"),open:i.value.filter(m=>m.status==="open"),in_progress:i.value.filter(m=>m.status==="in_progress"),blocked:i.value.filter(m=>m.status==="blocked"),under_review:i.value.filter(m=>m.status==="under_review"),complete:i.value.filter(m=>m.status==="complete"),cancelled:i.value.filter(m=>m.status==="cancelled")}));function k(m,E){var B,N,$;r.value=m,y.value=null,(B=E.dataTransfer)==null||B.setData("text/plain",m),($=(N=E.dataTransfer)==null?void 0:N.setDragImage)==null||$.call(N,E.currentTarget,20,20)}function f(){r.value=null,s.value=null}function b(){return i.value.find(m=>m.id===r.value)}function c(m){const E=b();return E===void 0?!1:ct(E,m)}async function d(m){var N;const E=b();if(E===void 0){f();return}if(!ct(E,m)){y.value=`Task ${E.display_number_formatted} cannot move to ${Je(m)}.`,f();return}const B=E.status;E.status=m,n("status-change",{taskId:E.id,status:m});try{await((N=o.updateTaskStatus)==null?void 0:N.call(o,E.id,m))}catch($){E.status=B,y.value=$ instanceof Error?$.message:"Unable to update the task status."}finally{f()}}return(m,E)=>(e.openBlock(),e.createElementBlock("section",bo,[e.createElementVNode("header",ho,[E[2]||(E[2]=e.createElementVNode("div",null,[e.createElementVNode("h2",null,"Board"),e.createElementVNode("p",null,"Drag tasks between status columns to keep work moving.")],-1)),y.value?(e.openBlock(),e.createElementBlock("p",Eo,e.toDisplayString(y.value),1)):e.createCommentVNode("",!0)]),e.createElementVNode("div",wo,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(_.value,B=>(e.openBlock(),e.createElementBlock("section",{key:B,class:e.normalizeClass(["task-board-view__column",{"is-hovered":s.value===B,"is-invalid":s.value===B&&r.value!==null&&!c(B)}]),"data-testid":`panel-board-column-${B}`,onDragover:e.withModifiers(N=>s.value=B,["prevent"]),onDragleave:E[1]||(E[1]=N=>s.value=null),onDrop:e.withModifiers(N=>d(B),["prevent"])},[e.createElementVNode("header",No,[e.createElementVNode("div",null,[e.createElementVNode("h3",null,e.toDisplayString(e.unref(Je)(B)),1),e.createElementVNode("span",{"data-testid":`badge-column-count-${B}`,"aria-label":`${u.value[B].length} tasks`},e.toDisplayString(u.value[B].length),9,$o)])]),e.createElementVNode("div",{class:"task-board-view__column-body","data-testid":`list-column-tasks-${B}`},[u.value[B].length===0&&!t.loading?(e.openBlock(),e.createElementBlock("p",{key:0,class:"task-board-view__empty","data-testid":`panel-empty-column-${B}`}," Nothing here. ",8,Bo)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(u.value[B],N=>(e.openBlock(),e.createElementBlock("div",{key:N.id,class:"task-board-view__card",draggable:"true","data-testid":`card-task-${N.id}`,onDragstart:$=>k(N.id,$),onDragend:f},[e.createVNode(st,{task:N,compact:"",onSelect:E[0]||(E[0]=$=>n("select-task",$))},null,8,["task"])],40,So))),128))],8,To)],42,Vo))),128))])]))}}),Do=R(Co,[["__scopeId","data-v-7427180f"]]),Mo={class:"task-bulk-action-bar","aria-label":"Bulk actions","data-testid":"panel-bulk-action-bar"},Ao={class:"task-bulk-action-bar__summary"},Io={"data-testid":"status-selected-count"},Fo={class:"task-bulk-action-bar__controls"},Lo=["disabled"],Ro={key:0},zo=["disabled"],Uo={key:1},Wo=["disabled"],xo={key:2},Po=["disabled"],Oo={key:3},Ho=["disabled"],jo={key:4},Yo=["disabled"],qo=["disabled"],Qo={key:0,class:"task-bulk-action-bar__result",role:"status","aria-live":"polite","data-testid":"status-bulk-result"},Ko=e.defineComponent({__name:"TaskBulkActionBar",props:{selectedCount:{},busy:{type:Boolean},result:{}},emits:["apply","clear"],setup(t,{emit:a}){const l=t,o=a,n=e.ref("set_status"),i=e.ref("open"),r=e.ref("medium"),s=e.ref(""),y=e.ref(""),_=e.ref(""),u=e.computed(()=>n.value==="set_status"),k=e.computed(()=>n.value==="set_priority"),f=e.computed(()=>n.value==="assign"),b=e.computed(()=>n.value==="add_tag"||n.value==="remove_tag"),c=e.computed(()=>n.value==="complete"),d=e.computed(()=>l.result===null||l.result===void 0?"":`${l.result.success.length} succeeded, ${l.result.failed.length} failed`);function m(){const E={};u.value&&(E.status=i.value),k.value&&(E.priority=r.value),f.value&&(E.user_id=s.value),b.value&&(E.name=y.value),c.value&&_.value.trim()!==""&&(E.note=_.value.trim()),o("apply",{action:n.value,params:E})}return(E,B)=>(e.openBlock(),e.createElementBlock("section",Mo,[e.createElementVNode("div",Ao,[e.createElementVNode("strong",Io,e.toDisplayString(t.selectedCount)+" selected",1),e.createElementVNode("button",{type:"button","data-testid":"btn-clear-selection",onClick:B[0]||(B[0]=N=>o("clear"))},"Clear selection")]),e.createElementVNode("div",Fo,[e.createElementVNode("label",null,[B[8]||(B[8]=e.createElementVNode("span",null,"Action",-1)),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":B[1]||(B[1]=N=>n.value=N),"data-testid":"select-bulk-action","aria-label":"Bulk action to apply",disabled:t.busy},[...B[7]||(B[7]=[e.createStaticVNode('<option value="assign" data-v-832479cd>Assign</option><option value="set_status" data-v-832479cd>Set status</option><option value="set_priority" data-v-832479cd>Set priority</option><option value="add_tag" data-v-832479cd>Add tag</option><option value="remove_tag" data-v-832479cd>Remove tag</option><option value="complete" data-v-832479cd>Complete</option><option value="cancel" data-v-832479cd>Cancel</option><option value="delete" data-v-832479cd>Delete</option>',8)])],8,Lo),[[e.vModelSelect,n.value]])]),u.value?(e.openBlock(),e.createElementBlock("label",Ro,[B[10]||(B[10]=e.createElementVNode("span",null,"Status",-1)),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":B[2]||(B[2]=N=>i.value=N),"data-testid":"select-bulk-status","aria-label":"Status to set",disabled:t.busy},[...B[9]||(B[9]=[e.createStaticVNode('<option value="draft" data-v-832479cd>Draft</option><option value="open" data-v-832479cd>Open</option><option value="in_progress" data-v-832479cd>In Progress</option><option value="blocked" data-v-832479cd>Blocked</option><option value="under_review" data-v-832479cd>Under Review</option><option value="complete" data-v-832479cd>Complete</option><option value="cancelled" data-v-832479cd>Cancelled</option>',7)])],8,zo),[[e.vModelSelect,i.value]])])):e.createCommentVNode("",!0),k.value?(e.openBlock(),e.createElementBlock("label",Uo,[B[12]||(B[12]=e.createElementVNode("span",null,"Priority",-1)),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":B[3]||(B[3]=N=>r.value=N),"data-testid":"select-bulk-priority","aria-label":"Priority to set",disabled:t.busy},[...B[11]||(B[11]=[e.createStaticVNode('<option value="none" data-v-832479cd>None</option><option value="low" data-v-832479cd>Low</option><option value="medium" data-v-832479cd>Medium</option><option value="high" data-v-832479cd>High</option><option value="urgent" data-v-832479cd>Urgent</option><option value="critical" data-v-832479cd>Critical</option>',6)])],8,Wo),[[e.vModelSelect,r.value]])])):e.createCommentVNode("",!0),f.value?(e.openBlock(),e.createElementBlock("label",xo,[B[13]||(B[13]=e.createElementVNode("span",null,"Assignee ID",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":B[4]||(B[4]=N=>s.value=N),type:"text","data-testid":"input-bulk-assignee","aria-label":"Assignee user ID",disabled:t.busy,placeholder:"user-123"},null,8,Po),[[e.vModelText,s.value]])])):e.createCommentVNode("",!0),b.value?(e.openBlock(),e.createElementBlock("label",Oo,[B[14]||(B[14]=e.createElementVNode("span",null,"Tag",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":B[5]||(B[5]=N=>y.value=N),type:"text","data-testid":"input-bulk-tag","aria-label":"Tag name",disabled:t.busy,placeholder:"warehouse"},null,8,Ho),[[e.vModelText,y.value]])])):e.createCommentVNode("",!0),c.value?(e.openBlock(),e.createElementBlock("label",jo,[B[15]||(B[15]=e.createElementVNode("span",null,"Note",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":B[6]||(B[6]=N=>_.value=N),type:"text","data-testid":"input-bulk-completion-note","aria-label":"Completion note",disabled:t.busy,placeholder:"Optional completion note"},null,8,Yo),[[e.vModelText,_.value]])])):e.createCommentVNode("",!0),e.createElementVNode("button",{type:"button",class:"task-bulk-action-bar__apply","data-testid":"btn-apply-bulk-action",disabled:t.busy,onClick:m}," Apply ",8,qo)]),d.value?(e.openBlock(),e.createElementBlock("p",Qo,e.toDisplayString(d.value),1)):e.createCommentVNode("",!0)]))}}),Qt=R(Ko,[["__scopeId","data-v-832479cd"]]),Go={class:"task-calendar-view","aria-label":"Task calendar","data-testid":"panel-task-calendar"},Jo={class:"task-calendar-view__header"},Zo={class:"task-calendar-view__nav",role:"group","aria-label":"Calendar navigation"},Xo={"aria-live":"polite","aria-atomic":"true","data-testid":"status-current-month"},es={class:"task-calendar-view__layout"},ts=["aria-label"],as=["data-testid"],ns={class:"task-calendar-view__cell-header"},ls=["data-testid","aria-label"],os=["data-testid","aria-label","onClick"],ss={class:"task-calendar-view__task-number"},is={class:"task-calendar-view__task-title"},rs={class:"task-calendar-view__sidebar","data-testid":"panel-no-date-sidebar"},ds={key:0,"data-testid":"status-no-unscheduled"},cs=["data-testid","aria-label","onClick"],us=e.defineComponent({__name:"TaskCalendarView",props:{tasks:{},initialMonth:{}},emits:["select-task"],setup(t,{emit:a}){const l=t,o=a,n=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];function i(f){if(f instanceof Date)return new Date(f.getFullYear(),f.getMonth(),1);if(typeof f=="string"&&/^\d{4}-\d{2}/.test(f)){const[c,d]=f.slice(0,7).split("-");return new Date(Number(c),Number(d)-1,1)}const b=typeof f=="string"?new Date(f):new Date;return new Date(b.getFullYear(),b.getMonth(),1)}const r=e.ref(i(l.initialMonth)),s=e.computed(()=>new Intl.DateTimeFormat("en-US",{month:"long",year:"numeric"}).format(r.value)),y=e.computed(()=>{const f=new Date(r.value);return f.setDate(1-f.getDay()),Array.from({length:42},(b,c)=>{const d=new Date(f);d.setDate(f.getDate()+c);const m=d.toISOString().slice(0,10),E=l.tasks.filter(B=>{var N;return((N=B.due_at)==null?void 0:N.slice(0,10))===m});return{key:m,date:d,isCurrentMonth:d.getMonth()===r.value.getMonth(),tasks:E}})}),_=e.computed(()=>l.tasks.filter(f=>f.due_at===null));function u(){r.value=new Date(r.value.getFullYear(),r.value.getMonth()-1,1)}function k(){r.value=new Date(r.value.getFullYear(),r.value.getMonth()+1,1)}return(f,b)=>(e.openBlock(),e.createElementBlock("section",Go,[e.createElementVNode("header",Jo,[b[0]||(b[0]=e.createElementVNode("div",null,[e.createElementVNode("h2",null,"Calendar"),e.createElementVNode("p",null,"Track due dates at a glance and keep unscheduled work visible.")],-1)),e.createElementVNode("div",Zo,[e.createElementVNode("button",{type:"button","data-testid":"btn-prev-month","aria-label":"Previous month",onClick:u},"Previous"),e.createElementVNode("strong",Xo,e.toDisplayString(s.value),1),e.createElementVNode("button",{type:"button","data-testid":"btn-next-month","aria-label":"Next month",onClick:k},"Next")])]),e.createElementVNode("div",es,[e.createElementVNode("div",{class:"task-calendar-view__grid",role:"grid","aria-label":`Calendar for ${s.value}`},[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(n,c=>e.createElementVNode("div",{key:c,class:"task-calendar-view__weekday",role:"columnheader"},e.toDisplayString(c),1)),64)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(y.value,c=>(e.openBlock(),e.createElementBlock("article",{key:c.key,class:e.normalizeClass(["task-calendar-view__cell",{"is-muted":!c.isCurrentMonth}]),role:"gridcell","data-testid":`panel-calendar-day-${c.key}`},[e.createElementVNode("header",ns,[e.createElementVNode("span",null,e.toDisplayString(c.date.getDate()),1),c.tasks.length>3?(e.openBlock(),e.createElementBlock("span",{key:0,class:"task-calendar-view__dot-indicator","data-testid":`badge-overflow-${c.key}`,"aria-label":`${c.tasks.length-3} more tasks`},"+"+e.toDisplayString(c.tasks.length-3),9,ls)):e.createCommentVNode("",!0)]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.tasks.slice(0,3),d=>(e.openBlock(),e.createElementBlock("button",{key:d.id,type:"button",class:e.normalizeClass(["task-calendar-view__task",{"is-overdue":d.is_overdue}]),"data-testid":`btn-calendar-task-${d.id}`,"aria-label":`${d.display_number_formatted}: ${d.title}${d.is_overdue?" (overdue)":""}`,style:e.normalizeStyle({"--task-calendar-priority":e.unref(Cn)(d.priority)}),onClick:m=>o("select-task",d.id)},[e.createElementVNode("span",ss,e.toDisplayString(d.display_number_formatted),1),e.createElementVNode("span",is,e.toDisplayString(d.title),1)],14,os))),128))],10,as))),128))],8,ts),e.createElementVNode("aside",rs,[b[1]||(b[1]=e.createElementVNode("h3",null,"No Date",-1)),_.value.length===0?(e.openBlock(),e.createElementBlock("p",ds,"Every task in this set has a due date.")):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(_.value,c=>(e.openBlock(),e.createElementBlock("button",{key:c.id,type:"button",class:"task-calendar-view__sidebar-task","data-testid":`btn-sidebar-task-${c.id}`,"aria-label":`${c.display_number_formatted}: ${c.title}`,onClick:d=>o("select-task",c.id)},[e.createElementVNode("strong",null,e.toDisplayString(c.display_number_formatted),1),e.createElementVNode("span",null,e.toDisplayString(c.title),1),e.createElementVNode("small",null,e.toDisplayString(e.unref(ot)(c.due_at)),1)],8,cs))),128))])])]))}}),ms=R(us,[["__scopeId","data-v-1e9323de"]]),ps={class:"task-filter-bar","data-testid":"panel-filter-bar"},ks={class:"task-filter-bar__topline"},_s={class:"task-filter-bar__search"},fs=["disabled"],vs={class:"task-filter-bar__actions"},ys=["aria-label"],gs={class:"task-filter-bar__grid"},bs=["disabled"],hs=["selected","value"],Es=["disabled"],ws=["selected","value"],Vs=["value","disabled"],Ns=["value","disabled"],$s=["value","disabled"],Ts=["value","disabled"],Bs=e.defineComponent({__name:"TaskFilterBar",props:{modelValue:{},loading:{type:Boolean}},emits:["update:modelValue","clear","save-current"],setup(t,{emit:a}){const l=t,o=a,n=["draft","open","in_progress","blocked","under_review","complete","cancelled"],i=["none","low","medium","high","urgent","critical"],r=e.ref(l.modelValue.search??"");let s=null;e.watch(()=>l.modelValue.search,b=>{r.value=b??""}),e.onBeforeUnmount(()=>{s&&clearTimeout(s)});const y=e.computed(()=>Object.entries(l.modelValue).reduce((b,[c,d])=>c==="page"||c==="per_page"||c==="sort"||d==null||d===""||Array.isArray(d)&&d.length===0?b:b+1,0));function _(b,c){const d={...l.modelValue,page:1};c==null||c===""?delete d[b]:d[b]=c,o("update:modelValue",d)}function u(b,c){const d=c.target,m=Array.from(d.selectedOptions).map(E=>E.value);_(b,m.length>0?m:void 0)}function k(){s&&clearTimeout(s),s=setTimeout(()=>{_("search",r.value||void 0)},250)}function f(){r.value="",o("update:modelValue",{page:1,per_page:l.modelValue.per_page??15,sort:l.modelValue.sort??"-created_at"}),o("clear")}return(b,c)=>(e.openBlock(),e.createElementBlock("section",ps,[e.createElementVNode("div",ks,[e.createElementVNode("div",_s,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":c[0]||(c[0]=d=>r.value=d),type:"search","data-testid":"input-search-tasks","aria-label":"Search tasks",disabled:t.loading,placeholder:"Search tasks",onInput:k},null,40,fs),[[e.vModelText,r.value]])]),e.createElementVNode("div",vs,[e.createElementVNode("button",{type:"button",class:"task-filter-bar__save","data-testid":"btn-save-filter",onClick:c[1]||(c[1]=d=>o("save-current"))}," Save current filter "),e.createElementVNode("button",{type:"button",class:"task-filter-bar__clear","data-testid":"btn-clear-filters",onClick:f},[c[8]||(c[8]=e.createTextVNode(" Clear all ",-1)),y.value>0?(e.openBlock(),e.createElementBlock("span",{key:0,class:"task-filter-bar__badge","data-testid":"badge-active-filter-count","aria-label":`${y.value} active filters`},e.toDisplayString(y.value),9,ys)):e.createCommentVNode("",!0)])])]),e.createElementVNode("div",gs,[e.createElementVNode("label",null,[c[9]||(c[9]=e.createElementVNode("span",null,"Status",-1)),e.createElementVNode("select",{multiple:"","data-testid":"select-status-filter","aria-label":"Filter by status",disabled:t.loading,onChange:c[2]||(c[2]=d=>u("status",d))},[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(n,d=>e.createElementVNode("option",{key:d,selected:Array.isArray(t.modelValue.status)?t.modelValue.status.includes(d):t.modelValue.status===d,value:d},e.toDisplayString(d),9,hs)),64))],40,bs)]),e.createElementVNode("label",null,[c[10]||(c[10]=e.createElementVNode("span",null,"Priority",-1)),e.createElementVNode("select",{multiple:"","data-testid":"select-priority-filter","aria-label":"Filter by priority",disabled:t.loading,onChange:c[3]||(c[3]=d=>u("priority",d))},[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(i,d=>e.createElementVNode("option",{key:d,selected:Array.isArray(t.modelValue.priority)?t.modelValue.priority.includes(d):t.modelValue.priority===d,value:d},e.toDisplayString(d),9,ws)),64))],40,Es)]),e.createElementVNode("label",null,[c[11]||(c[11]=e.createElementVNode("span",null,"Assignee",-1)),e.createElementVNode("input",{value:t.modelValue.assignee??"",type:"text","data-testid":"input-assignee-filter","aria-label":"Filter by assignee",disabled:t.loading,placeholder:"Assignee ID",onInput:c[4]||(c[4]=d=>_("assignee",d.target.value||void 0))},null,40,Vs)]),e.createElementVNode("label",null,[c[12]||(c[12]=e.createElementVNode("span",null,"Tag",-1)),e.createElementVNode("input",{value:t.modelValue.tag??"",type:"text","data-testid":"input-tag-filter","aria-label":"Filter by tag",disabled:t.loading,placeholder:"Tag name",onInput:c[5]||(c[5]=d=>_("tag",d.target.value||void 0))},null,40,Ns)]),e.createElementVNode("label",null,[c[13]||(c[13]=e.createElementVNode("span",null,"Due after",-1)),e.createElementVNode("input",{value:t.modelValue.due_after??"",type:"date","data-testid":"input-due-after-filter","aria-label":"Filter tasks due after date",disabled:t.loading,onInput:c[6]||(c[6]=d=>_("due_after",d.target.value||void 0))},null,40,$s)]),e.createElementVNode("label",null,[c[14]||(c[14]=e.createElementVNode("span",null,"Due before",-1)),e.createElementVNode("input",{value:t.modelValue.due_before??"",type:"date","data-testid":"input-due-before-filter","aria-label":"Filter tasks due before date",disabled:t.loading,onInput:c[7]||(c[7]=d=>_("due_before",d.target.value||void 0))},null,40,Ts)])])]))}}),Kt=R(Bs,[["__scopeId","data-v-43007cde"]]),Ss={class:"recurring-form__grid"},Cs={class:"recurring-form__field"},Ds=["value","disabled"],Ms=["value"],As={class:"recurring-form__field recurring-form__field--wide"},Is=["disabled"],Fs={class:"recurring-form__field recurring-form__field--wide"},Ls=["disabled"],Rs={class:"recurring-form__field"},zs=["disabled"],Us=["value"],Ws={class:"recurring-form__field"},xs=["disabled"],Ps=["value"],Os={key:0,class:"recurring-form__panel recurring-form__field--wide","data-testid":"panel-daily-schedule"},Hs={class:"recurring-form__field"},js=["disabled"],Ys={key:1,class:"recurring-form__panel recurring-form__field--wide","data-testid":"panel-weekly-schedule"},qs={class:"recurring-form__field"},Qs=["disabled"],Ks={class:"recurring-form__field"},Gs={class:"recurring-form__day-grid","data-testid":"panel-weekly-days"},Js=["disabled","data-testid","aria-pressed","aria-label","onClick"],Zs={key:2,class:"recurring-form__panel recurring-form__field--wide","data-testid":"panel-monthly-schedule"},Xs={class:"recurring-form__field"},ei=["disabled"],ti={class:"recurring-form__field"},ai=["disabled"],ni={key:0,class:"recurring-form__field"},li=["disabled"],oi={class:"recurring-form__field"},si=["disabled"],ii=["value"],ri={class:"recurring-form__field"},di=["disabled"],ci=["value"],ui={key:3,class:"recurring-form__field recurring-form__field--wide"},mi=["disabled"],pi={class:"recurring-form__field recurring-form__field--wide recurring-form__preview","data-testid":"panel-rrule-preview"},ki={"data-testid":"status-rrule-preview"},_i={class:"recurring-form__field"},fi=["disabled"],vi={class:"recurring-form__field"},yi=["disabled"],gi={class:"recurring-form__field"},bi=["disabled"],hi={class:"recurring-form__field"},Ei=["disabled"],wi=["value"],Vi={class:"recurring-form__field"},Ni=["disabled"],$i={class:"recurring-form__field recurring-form__field--wide"},Ti=["disabled"],Bi={class:"recurring-form__toggles","data-testid":"panel-template-toggles"},Si=["disabled"],Ci=["disabled"],Di=["disabled"],Mi=["disabled"],Ai={class:"recurring-form__actions"},Ii=["disabled"],Fi=e.defineComponent({__name:"RecurringTemplateForm",props:{recurring:{},templates:{},submitting:{type:Boolean},mode:{}},emits:["submit","cancel","template-change"],setup(t,{emit:a}){const l=t,o=a,n=["none","low","medium","high","urgent","critical"],i=[{value:1,label:"First"},{value:2,label:"Second"},{value:3,label:"Third"},{value:4,label:"Fourth"},{value:-1,label:"Last"}],r=[{value:"daily",label:"Daily"},{value:"weekly",label:"Weekly"},{value:"monthly",label:"Monthly"},{value:"custom",label:"Custom"}],s=e.reactive({taskTemplateId:"",title:"",description:"",timezone:"America/New_York",taskableType:"",taskableId:"",primaryAssigneeId:"",priority:"none",dueOffsetHours:"",tags:"",isActive:!0,skipHolidays:!1,businessHoursOnly:!1,chainMode:!1,scheduleMode:"daily",dailyInterval:"1",weeklyInterval:"1",weeklyDays:["MO"],monthlyMode:"day_of_month",monthlyInterval:"1",monthlyDay:"1",monthlyWeekday:"MO",monthlySetPosition:"1",rawRrule:De(1)}),y=e.computed(()=>l.templates??[]),_=e.computed(()=>l.mode??"create"),u=e.computed(()=>_.value==="edit"?"Save recurring template":"Create recurring template");function k(){var V;const $=l.recurring;s.taskTemplateId=($==null?void 0:$.task_template_id)??"",s.title=($==null?void 0:$.title)??"",s.description=($==null?void 0:$.description)??"",s.timezone=($==null?void 0:$.timezone)??"America/New_York",s.taskableType=($==null?void 0:$.taskable_type)??"",s.taskableId=($==null?void 0:$.taskable_id)??"",s.primaryAssigneeId=($==null?void 0:$.primary_assignee_id)??"",s.priority=($==null?void 0:$.priority)??"none",s.dueOffsetHours=($==null?void 0:$.due_offset_hours)===null||($==null?void 0:$.due_offset_hours)===void 0?"":String($.due_offset_hours),s.tags=((V=$==null?void 0:$.tags)==null?void 0:V.join(", "))??"",s.isActive=($==null?void 0:$.is_active)??!0,s.skipHolidays=($==null?void 0:$.skip_holidays)??!1,s.businessHoursOnly=($==null?void 0:$.business_hours_only)??!1,s.chainMode=($==null?void 0:$.chain_mode)??!1;const h=Wt(($==null?void 0:$.rrule)??De(1));s.scheduleMode=h.mode,s.dailyInterval=String(h.interval),s.weeklyInterval=String(h.interval),s.weeklyDays=h.weeklyDays,s.monthlyMode=h.monthlyMode,s.monthlyInterval=String(h.interval),s.monthlyDay=String(h.monthlyDay),s.monthlyWeekday=h.monthlyWeekday,s.monthlySetPosition=String(h.monthlySetPosition),s.rawRrule=h.raw||De(1)}e.watch(()=>l.recurring,()=>{k()},{immediate:!0,deep:!0});const f=e.computed(()=>s.scheduleMode==="daily"?De(Number.parseInt(s.dailyInterval,10)||1):s.scheduleMode==="weekly"?Ln(Number.parseInt(s.weeklyInterval,10)||1,s.weeklyDays.length>0?s.weeklyDays:["MO"]):s.scheduleMode==="monthly"&&s.monthlyMode==="day_of_month"?Rn(Number.parseInt(s.monthlyInterval,10)||1,Number.parseInt(s.monthlyDay,10)||1):s.scheduleMode==="monthly"?zn(Number.parseInt(s.monthlyInterval,10)||1,s.monthlyWeekday,Number.parseInt(s.monthlySetPosition,10)||1):s.rawRrule.trim());e.watch(f,$=>{s.scheduleMode!=="custom"&&(s.rawRrule=$)},{immediate:!0});const b=e.computed(()=>s.scheduleMode==="custom"?s.rawRrule.trim():f.value),c=e.computed(()=>Un(b.value)),d=e.computed(()=>b.value.length>0&&(s.taskTemplateId.length>0||s.title.trim().length>0));function m($){if(s.taskTemplateId=$,o("template-change",$||null),!$||_.value==="edit")return;const h=y.value.find(V=>V.id===$);h&&(s.title.trim()||(s.title=h.name),!s.description.trim()&&h.description&&(s.description=h.description))}function E($){var h;m(((h=$.target)==null?void 0:h.value)??"")}function B($){if(s.weeklyDays.includes($)){s.weeklyDays=s.weeklyDays.filter(h=>h!==$);return}s.weeklyDays=[...s.weeklyDays,$]}function N(){var h;if(!d.value)return;const $=Number.parseInt(s.dueOffsetHours,10);o("submit",{task_template_id:s.taskTemplateId||null,title:s.title.trim()||null,description:s.description.trim()||null,rrule:b.value,timezone:s.timezone||null,taskable_type:s.taskableType.trim()||null,taskable_id:s.taskableId.trim()||null,primary_assignee_id:s.primaryAssigneeId.trim()||null,priority:s.priority,due_offset_hours:Number.isFinite($)?$:null,tags:s.tags.split(",").map(V=>V.trim()).filter(Boolean),is_active:s.isActive,skip_holidays:s.skipHolidays,business_hours_only:s.businessHoursOnly,chain_mode:s.chainMode,metadata:((h=l.recurring)==null?void 0:h.metadata)??null})}return($,h)=>(e.openBlock(),e.createElementBlock("form",{class:"recurring-form","data-testid":"form-recurring-template",onSubmit:e.withModifiers(N,["prevent"])},[e.createElementVNode("div",Ss,[e.createElementVNode("label",Cs,[h[24]||(h[24]=e.createElementVNode("span",null,"Template",-1)),e.createElementVNode("select",{"data-testid":"select-task-template",value:s.taskTemplateId,disabled:t.submitting,onChange:E},[h[23]||(h[23]=e.createElementVNode("option",{value:""},"Standalone recurring task",-1)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(y.value,V=>(e.openBlock(),e.createElementBlock("option",{key:V.id,value:V.id},e.toDisplayString(V.name),9,Ms))),128))],40,Ds)]),e.createElementVNode("label",As,[h[25]||(h[25]=e.createElementVNode("span",null,"Title",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":h[0]||(h[0]=V=>s.title=V),"data-testid":"input-template-name",type:"text",disabled:t.submitting,placeholder:"Required when no template is linked"},null,8,Is),[[e.vModelText,s.title]])]),e.createElementVNode("label",Fs,[h[26]||(h[26]=e.createElementVNode("span",null,"Description",-1)),e.withDirectives(e.createElementVNode("textarea",{"onUpdate:modelValue":h[1]||(h[1]=V=>s.description=V),"data-testid":"input-template-description",rows:"4",disabled:t.submitting},null,8,Ls),[[e.vModelText,s.description]])]),e.createElementVNode("label",Rs,[h[27]||(h[27]=e.createElementVNode("span",null,"Schedule type",-1)),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":h[2]||(h[2]=V=>s.scheduleMode=V),"data-testid":"select-recurrence-pattern",disabled:t.submitting},[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(r,V=>e.createElementVNode("option",{key:V.value,value:V.value},e.toDisplayString(V.label),9,Us)),64))],8,zs),[[e.vModelSelect,s.scheduleMode]])]),e.createElementVNode("label",Ws,[h[28]||(h[28]=e.createElementVNode("span",null,"Timezone",-1)),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":h[3]||(h[3]=V=>s.timezone=V),"data-testid":"select-timezone",disabled:t.submitting},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(Mn),V=>(e.openBlock(),e.createElementBlock("option",{key:V,value:V},e.toDisplayString(V),9,Ps))),128))],8,xs),[[e.vModelSelect,s.timezone]])]),s.scheduleMode==="daily"?(e.openBlock(),e.createElementBlock("section",Os,[e.createElementVNode("label",Hs,[h[29]||(h[29]=e.createElementVNode("span",null,"Every N days",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":h[4]||(h[4]=V=>s.dailyInterval=V),"data-testid":"input-daily-interval",type:"number",min:"1",disabled:t.submitting},null,8,js),[[e.vModelText,s.dailyInterval]])])])):s.scheduleMode==="weekly"?(e.openBlock(),e.createElementBlock("section",Ys,[e.createElementVNode("label",qs,[h[30]||(h[30]=e.createElementVNode("span",null,"Every N weeks",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":h[5]||(h[5]=V=>s.weeklyInterval=V),"data-testid":"input-weekly-interval",type:"number",min:"1",disabled:t.submitting},null,8,Qs),[[e.vModelText,s.weeklyInterval]])]),e.createElementVNode("div",Ks,[h[31]||(h[31]=e.createElementVNode("span",null,"Days",-1)),e.createElementVNode("div",Gs,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(Le),V=>(e.openBlock(),e.createElementBlock("button",{key:V.value,class:e.normalizeClass(["recurring-form__day-chip",{"is-active":s.weeklyDays.includes(V.value)}]),disabled:t.submitting,type:"button","data-testid":`btn-weekday-${V.value}`,"aria-pressed":s.weeklyDays.includes(V.value),"aria-label":`Toggle ${V.label}`,onClick:w=>B(V.value)},e.toDisplayString(V.shortLabel),11,Js))),128))])])])):s.scheduleMode==="monthly"?(e.openBlock(),e.createElementBlock("section",Zs,[e.createElementVNode("label",Xs,[h[32]||(h[32]=e.createElementVNode("span",null,"Every N months",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":h[6]||(h[6]=V=>s.monthlyInterval=V),"data-testid":"input-monthly-interval",type:"number",min:"1",disabled:t.submitting},null,8,ei),[[e.vModelText,s.monthlyInterval]])]),e.createElementVNode("label",ti,[h[34]||(h[34]=e.createElementVNode("span",null,"Monthly pattern",-1)),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":h[7]||(h[7]=V=>s.monthlyMode=V),"data-testid":"select-monthly-mode",disabled:t.submitting},[...h[33]||(h[33]=[e.createElementVNode("option",{value:"day_of_month"},"Day of month",-1),e.createElementVNode("option",{value:"weekday"},"Nth weekday",-1)])],8,ai),[[e.vModelSelect,s.monthlyMode]])]),s.monthlyMode==="day_of_month"?(e.openBlock(),e.createElementBlock("label",ni,[h[35]||(h[35]=e.createElementVNode("span",null,"Day of month",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":h[8]||(h[8]=V=>s.monthlyDay=V),"data-testid":"input-monthly-day",type:"number",min:"1",max:"31",disabled:t.submitting},null,8,li),[[e.vModelText,s.monthlyDay]])])):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("label",oi,[h[36]||(h[36]=e.createElementVNode("span",null,"Position",-1)),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":h[9]||(h[9]=V=>s.monthlySetPosition=V),"data-testid":"select-monthly-position",disabled:t.submitting},[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(i,V=>e.createElementVNode("option",{key:V.value,value:String(V.value)},e.toDisplayString(V.label),9,ii)),64))],8,si),[[e.vModelSelect,s.monthlySetPosition]])]),e.createElementVNode("label",ri,[h[37]||(h[37]=e.createElementVNode("span",null,"Weekday",-1)),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":h[10]||(h[10]=V=>s.monthlyWeekday=V),"data-testid":"select-monthly-weekday",disabled:t.submitting},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(Le),V=>(e.openBlock(),e.createElementBlock("option",{key:V.value,value:V.value},e.toDisplayString(V.label),9,ci))),128))],8,di),[[e.vModelSelect,s.monthlyWeekday]])])],64))])):(e.openBlock(),e.createElementBlock("label",ui,[h[38]||(h[38]=e.createElementVNode("span",null,"Custom RRULE",-1)),e.withDirectives(e.createElementVNode("textarea",{"onUpdate:modelValue":h[11]||(h[11]=V=>s.rawRrule=V),"data-testid":"input-custom-rrule",rows:"3",disabled:t.submitting,placeholder:"FREQ=WEEKLY;BYDAY=MO,WE,FR"},null,8,mi),[[e.vModelText,s.rawRrule]])])),e.createElementVNode("div",pi,[h[39]||(h[39]=e.createElementVNode("span",null,"Preview",-1)),e.createElementVNode("strong",ki,e.toDisplayString(c.value),1),e.createElementVNode("code",null,e.toDisplayString(b.value),1)]),e.createElementVNode("label",_i,[h[40]||(h[40]=e.createElementVNode("span",null,"Taskable type",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":h[12]||(h[12]=V=>s.taskableType=V),"data-testid":"input-taskable-type",type:"text",disabled:t.submitting,placeholder:"order"},null,8,fi),[[e.vModelText,s.taskableType]])]),e.createElementVNode("label",vi,[h[41]||(h[41]=e.createElementVNode("span",null,"Taskable ID",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":h[13]||(h[13]=V=>s.taskableId=V),"data-testid":"input-taskable-id",type:"text",disabled:t.submitting},null,8,yi),[[e.vModelText,s.taskableId]])]),e.createElementVNode("label",gi,[h[42]||(h[42]=e.createElementVNode("span",null,"Primary assignee ID",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":h[14]||(h[14]=V=>s.primaryAssigneeId=V),"data-testid":"input-primary-assignee",type:"text",disabled:t.submitting},null,8,bi),[[e.vModelText,s.primaryAssigneeId]])]),e.createElementVNode("label",hi,[h[43]||(h[43]=e.createElementVNode("span",null,"Priority",-1)),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":h[15]||(h[15]=V=>s.priority=V),"data-testid":"select-priority",disabled:t.submitting},[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(n,V=>e.createElementVNode("option",{key:V,value:V},e.toDisplayString(V),9,wi)),64))],8,Ei),[[e.vModelSelect,s.priority]])]),e.createElementVNode("label",Vi,[h[44]||(h[44]=e.createElementVNode("span",null,"Due offset hours",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":h[16]||(h[16]=V=>s.dueOffsetHours=V),"data-testid":"input-due-offset-hours",type:"number",min:"0",disabled:t.submitting},null,8,Ni),[[e.vModelText,s.dueOffsetHours]])]),e.createElementVNode("label",$i,[h[45]||(h[45]=e.createElementVNode("span",null,"Tags",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":h[17]||(h[17]=V=>s.tags=V),"data-testid":"input-tags",type:"text",disabled:t.submitting,placeholder:"ops, warehouse"},null,8,Ti),[[e.vModelText,s.tags]])])]),e.createElementVNode("section",Bi,[e.createElementVNode("label",null,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":h[18]||(h[18]=V=>s.isActive=V),"data-testid":"input-is-active",type:"checkbox",disabled:t.submitting},null,8,Si),[[e.vModelCheckbox,s.isActive]]),h[46]||(h[46]=e.createTextVNode(" Active",-1))]),e.createElementVNode("label",null,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":h[19]||(h[19]=V=>s.skipHolidays=V),"data-testid":"input-skip-holidays",type:"checkbox",disabled:t.submitting},null,8,Ci),[[e.vModelCheckbox,s.skipHolidays]]),h[47]||(h[47]=e.createTextVNode(" Skip holidays",-1))]),e.createElementVNode("label",null,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":h[20]||(h[20]=V=>s.businessHoursOnly=V),"data-testid":"input-business-hours-only",type:"checkbox",disabled:t.submitting},null,8,Di),[[e.vModelCheckbox,s.businessHoursOnly]]),h[48]||(h[48]=e.createTextVNode(" Business hours only",-1))]),e.createElementVNode("label",null,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":h[21]||(h[21]=V=>s.chainMode=V),"data-testid":"input-chain-mode",type:"checkbox",disabled:t.submitting},null,8,Mi),[[e.vModelCheckbox,s.chainMode]]),h[49]||(h[49]=e.createTextVNode(" Chain mode",-1))])]),e.createElementVNode("footer",Ai,[e.createElementVNode("button",{type:"button",class:"secondary","data-testid":"btn-cancel-template",onClick:h[22]||(h[22]=V=>o("cancel"))},"Cancel"),e.createElementVNode("button",{type:"submit","data-testid":"btn-save-template",disabled:t.submitting||!d.value},e.toDisplayString(u.value),9,Ii)])],32))}}),Gt=R(Fi,[["__scopeId","data-v-5b51dde8"]]),Li={class:"recurring-list","data-testid":"list-recurring-templates"},Ri={class:"recurring-list__toolbar"},zi={class:"recurring-list__search"},Ui=["value"],Wi={class:"recurring-list__toggle"},xi=["checked"],Pi={key:0,class:"recurring-list__empty","data-testid":"status-loading-templates"},Oi={key:1,class:"recurring-list__empty","data-testid":"status-empty-templates"},Hi={key:2,class:"recurring-list__table","data-testid":"table-recurring-templates"},ji=["data-testid"],Yi={key:0,class:"recurring-list__meta"},qi={key:1,class:"recurring-list__flags"},Qi={key:0},Ki={key:1},Gi={key:2},Ji={class:"recurring-list__meta"},Zi=["data-testid"],Xi={class:"recurring-list__actions"},er=["data-testid","aria-label","onClick"],tr=["data-testid","aria-label","onClick"],ar=["data-testid","aria-label","onClick"],nr=["data-testid","aria-label","onClick"],lr=["data-testid","aria-label","onClick"],or=e.defineComponent({__name:"RecurringTemplateList",props:{templates:{},loading:{type:Boolean},search:{},includeInactive:{type:Boolean}},emits:["update:search","update:includeInactive","edit","pause","resume","remove","generate"],setup(t,{emit:a}){const l=t,o=a,n=e.computed(()=>l.templates??[]);function i(y){return y?K(y):"Not scheduled"}function r(y){var _;o("update:search",((_=y.target)==null?void 0:_.value)??"")}function s(y){var _;o("update:includeInactive",((_=y.target)==null?void 0:_.checked)??!1)}return(y,_)=>(e.openBlock(),e.createElementBlock("section",Li,[e.createElementVNode("header",Ri,[e.createElementVNode("label",zi,[_[0]||(_[0]=e.createElementVNode("span",null,"Search",-1)),e.createElementVNode("input",{"data-testid":"input-search-templates",value:t.search??"",type:"search",placeholder:"Search recurring templates",onInput:r},null,40,Ui)]),e.createElementVNode("label",Wi,[e.createElementVNode("input",{"data-testid":"input-include-inactive",checked:t.includeInactive??!1,type:"checkbox",onChange:s},null,40,xi),_[1]||(_[1]=e.createElementVNode("span",null,"Include paused",-1))])]),t.loading?(e.openBlock(),e.createElementBlock("div",Pi," Loading recurring templates… ")):n.value.length===0?(e.openBlock(),e.createElementBlock("div",Oi," No recurring templates found. ")):(e.openBlock(),e.createElementBlock("table",Hi,[_[2]||(_[2]=e.createElementVNode("thead",null,[e.createElementVNode("tr",null,[e.createElementVNode("th",null,"Name"),e.createElementVNode("th",null,"Schedule"),e.createElementVNode("th",null,"Next"),e.createElementVNode("th",null,"Last"),e.createElementVNode("th",null,"Status"),e.createElementVNode("th",null,"Actions")])],-1)),e.createElementVNode("tbody",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.value,u=>{var k;return e.openBlock(),e.createElementBlock("tr",{key:u.id,"data-testid":`item-template-${u.id}`},[e.createElementVNode("td",null,[e.createElementVNode("strong",null,e.toDisplayString(u.title??((k=u.task_template)==null?void 0:k.name)??"Untitled recurrence"),1),u.task_template?(e.openBlock(),e.createElementBlock("p",Yi," Template: "+e.toDisplayString(u.task_template.name),1)):e.createCommentVNode("",!0),u.chain_mode||u.business_hours_only||u.skip_holidays?(e.openBlock(),e.createElementBlock("p",qi,[u.chain_mode?(e.openBlock(),e.createElementBlock("span",Qi,"Chain mode")):e.createCommentVNode("",!0),u.business_hours_only?(e.openBlock(),e.createElementBlock("span",Ki,"Business hours")):e.createCommentVNode("",!0),u.skip_holidays?(e.openBlock(),e.createElementBlock("span",Gi,"Skip holidays")):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)]),e.createElementVNode("td",null,[e.createElementVNode("strong",null,e.toDisplayString(u.rrule_human),1),e.createElementVNode("p",Ji,e.toDisplayString(u.timezone),1)]),e.createElementVNode("td",null,e.toDisplayString(i(u.next_occurrence_at)),1),e.createElementVNode("td",null,e.toDisplayString(i(u.last_generated_at)),1),e.createElementVNode("td",null,[e.createElementVNode("span",{class:e.normalizeClass(["recurring-list__status",u.is_active?"is-active":"is-paused"]),"data-testid":`status-template-${u.id}`},e.toDisplayString(u.is_active?"Active":"Paused"),11,Zi)]),e.createElementVNode("td",null,[e.createElementVNode("div",Xi,[e.createElementVNode("button",{type:"button","data-testid":`btn-edit-template-${u.id}`,"aria-label":`Edit ${u.title??"template"}`,onClick:f=>o("edit",u.id)},"Edit",8,er),u.is_active?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button","data-testid":`btn-pause-recurring-${u.id}`,"aria-label":`Pause ${u.title??"template"}`,onClick:f=>o("pause",u.id)}," Pause ",8,tr)):(e.openBlock(),e.createElementBlock("button",{key:1,type:"button","data-testid":`btn-resume-recurring-${u.id}`,"aria-label":`Resume ${u.title??"template"}`,onClick:f=>o("resume",u.id)}," Resume ",8,ar)),e.createElementVNode("button",{type:"button","data-testid":`btn-generate-template-${u.id}`,"aria-label":`Generate tasks for ${u.title??"template"}`,onClick:f=>o("generate",u.id)},"Generate",8,nr),e.createElementVNode("button",{type:"button",class:"danger","data-testid":`btn-delete-template-${u.id}`,"aria-label":`Delete ${u.title??"template"}`,onClick:f=>o("remove",u.id)},"Delete",8,lr)])])],8,ji)}),128))])]))]))}}),Jt=R(or,[["__scopeId","data-v-03abd6c3"]]),sr={key:0,class:"task-saved-filter-tabs","aria-label":"Saved filters","data-testid":"panel-saved-filter-tabs",role:"tablist"},ir=["data-testid"],rr=["data-testid","aria-label","aria-selected","onClick"],dr={key:0,class:"task-saved-filter-tabs__default","aria-label":"Default filter"},cr=["data-testid","aria-label","onClick"],ur=e.defineComponent({__name:"TaskSavedFilterTabs",props:{filters:{},activeFilterId:{}},emits:["select","remove"],setup(t,{emit:a}){const l=t,o=a;return(n,i)=>l.filters.length>0?(e.openBlock(),e.createElementBlock("section",sr,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.filters,r=>(e.openBlock(),e.createElementBlock("article",{key:r.id,class:e.normalizeClass(["task-saved-filter-tabs__pill",{"is-active":r.id===t.activeFilterId}]),"data-testid":`item-saved-filter-${r.id}`},[e.createElementVNode("button",{type:"button",class:"task-saved-filter-tabs__select",role:"tab","data-testid":`tab-saved-filter-${r.id}`,"aria-label":`Apply saved filter: ${r.name}`,"aria-selected":r.id===t.activeFilterId,onClick:s=>o("select",r.id)},[e.createElementVNode("span",null,e.toDisplayString(r.name),1),r.is_default?(e.openBlock(),e.createElementBlock("span",dr,"Default")):e.createCommentVNode("",!0)],8,rr),r.is_default?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"task-saved-filter-tabs__remove","data-testid":`btn-remove-saved-filter-${r.id}`,"aria-label":`Remove saved filter: ${r.name}`,onClick:s=>o("remove",r.id)}," Remove ",8,cr))],10,ir))),128))])):e.createCommentVNode("",!0)}}),Zt=R(ur,[["__scopeId","data-v-9cc7c47b"]]),mr={class:"task-list-view","data-testid":"panel-task-list"},pr={class:"task-list-view__header"},kr={key:2,class:"task-list-view__empty","data-testid":"panel-empty-state"},_r={key:3,class:"task-list-view__table-wrap","data-testid":"panel-task-table-wrap"},fr={class:"task-list-view__table","data-testid":"list-tasks"},vr=["data-testid","onClick"],yr=["value","data-testid","aria-label"],gr={class:"task-list-view__title-cell"},br={key:0},hr={class:"task-list-view__tags"},Er={class:"task-list-view__pagination","data-testid":"panel-pagination"},wr=["disabled"],Vr={"aria-live":"polite","aria-atomic":"true"},Nr=["disabled"],$r=e.defineComponent({__name:"TaskListView",props:{tasks:{},filters:{},pagination:{},loading:{type:Boolean},savedFilters:{},activeSavedFilterId:{},bulkBusy:{type:Boolean},bulkResult:{}},emits:["update:filters","select-task","quick-create","page-change","save-filter","apply-saved-filter","delete-saved-filter","bulk-action"],setup(t,{emit:a}){const l=t,o=a,n=e.ref([]),i=e.computed({get:()=>l.tasks.length>0&&n.value.length===l.tasks.length,set:_=>{n.value=_?l.tasks.map(u=>u.id):[]}});function r(_){const u=l.filters.sort??"-created_at",f=(u.startsWith("-")?u.slice(1):u)===_&&!u.startsWith("-")?`-${_}`:_;o("update:filters",{...l.filters,sort:f,page:1})}function s(_){o("page-change",_),o("update:filters",{...l.filters,page:_})}function y(){n.value=[]}return e.watch(()=>l.tasks,_=>{const u=new Set(_.map(k=>k.id));n.value=n.value.filter(k=>u.has(k))},{deep:!0}),(_,u)=>(e.openBlock(),e.createElementBlock("section",mr,[e.createElementVNode("header",pr,[u[15]||(u[15]=e.createElementVNode("div",null,[e.createElementVNode("h2",null,"Tasks"),e.createElementVNode("p",null,"Manage work across entities, playbooks, and operational follow-ups.")],-1)),e.createElementVNode("button",{type:"button",class:"task-list-view__create","data-testid":"btn-create-task",onClick:u[0]||(u[0]=k=>o("quick-create"))}," Create task ")]),t.savedFilters&&t.savedFilters.length>0?(e.openBlock(),e.createBlock(Zt,{key:0,filters:t.savedFilters,"active-filter-id":t.activeSavedFilterId??null,onSelect:u[1]||(u[1]=k=>o("apply-saved-filter",k)),onRemove:u[2]||(u[2]=k=>o("delete-saved-filter",k))},null,8,["filters","active-filter-id"])):e.createCommentVNode("",!0),e.createVNode(Kt,{"model-value":t.filters,loading:t.loading??!1,"onUpdate:modelValue":u[3]||(u[3]=k=>o("update:filters",k)),onSaveCurrent:u[4]||(u[4]=k=>o("save-filter"))},null,8,["model-value","loading"]),n.value.length>0?(e.openBlock(),e.createBlock(Qt,{key:1,"selected-count":n.value.length,busy:t.bulkBusy??!1,result:t.bulkResult??null,onApply:u[5]||(u[5]=k=>o("bulk-action",{taskIds:n.value,action:k.action,params:k.params})),onClear:y},null,8,["selected-count","busy","result"])):e.createCommentVNode("",!0),t.tasks.length===0&&!t.loading?(e.openBlock(),e.createElementBlock("div",kr,[u[16]||(u[16]=e.createElementVNode("h3",null,"No tasks yet",-1)),u[17]||(u[17]=e.createElementVNode("p",null,"Start with a quick task or instantiate a template for structured work.",-1)),e.createElementVNode("button",{type:"button","data-testid":"btn-create-first-task",onClick:u[6]||(u[6]=k=>o("quick-create"))},"Create first task")])):(e.openBlock(),e.createElementBlock("div",_r,[e.createElementVNode("table",fr,[e.createElementVNode("thead",null,[e.createElementVNode("tr",null,[e.createElementVNode("th",null,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":u[7]||(u[7]=k=>i.value=k),type:"checkbox","data-testid":"input-select-all-tasks","aria-label":"Select all tasks"},null,512),[[e.vModelCheckbox,i.value]])]),e.createElementVNode("th",null,[e.createElementVNode("button",{type:"button","data-testid":"btn-sort-number","aria-label":"Sort by number",onClick:u[8]||(u[8]=k=>r("display_number"))},"Number")]),e.createElementVNode("th",null,[e.createElementVNode("button",{type:"button","data-testid":"btn-sort-title","aria-label":"Sort by title",onClick:u[9]||(u[9]=k=>r("title"))},"Title")]),u[18]||(u[18]=e.createElementVNode("th",null,"Status",-1)),u[19]||(u[19]=e.createElementVNode("th",null,"Priority",-1)),u[20]||(u[20]=e.createElementVNode("th",null,"Assignee",-1)),e.createElementVNode("th",null,[e.createElementVNode("button",{type:"button","data-testid":"btn-sort-due","aria-label":"Sort by due date",onClick:u[10]||(u[10]=k=>r("due_at"))},"Due")]),u[21]||(u[21]=e.createElementVNode("th",null,"Tags",-1))])]),e.createElementVNode("tbody",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.tasks,k=>{var f;return e.openBlock(),e.createElementBlock("tr",{key:k.id,"data-testid":`task-row-${k.id}`,onClick:b=>o("select-task",k.id)},[e.createElementVNode("td",null,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":u[11]||(u[11]=b=>n.value=b),type:"checkbox",value:k.id,"data-testid":`input-select-task-${k.id}`,"aria-label":`Select task ${k.display_number_formatted}`,onClick:u[12]||(u[12]=e.withModifiers(()=>{},["stop"]))},null,8,yr),[[e.vModelCheckbox,n.value]])]),e.createElementVNode("td",null,e.toDisplayString(k.display_number_formatted),1),e.createElementVNode("td",null,[e.createElementVNode("div",gr,[e.createElementVNode("strong",null,e.toDisplayString(k.title),1),k.description?(e.openBlock(),e.createElementBlock("small",br,e.toDisplayString(k.description),1)):e.createCommentVNode("",!0)])]),e.createElementVNode("td",null,[e.createVNode(ge,{status:k.status},null,8,["status"])]),e.createElementVNode("td",null,[e.createVNode(ye,{priority:k.priority,compact:""},null,8,["priority"])]),e.createElementVNode("td",null,e.toDisplayString(((f=k.primary_assignee)==null?void 0:f.name)??"Unassigned"),1),e.createElementVNode("td",{class:e.normalizeClass({overdue:k.is_overdue})},e.toDisplayString(e.unref(ot)(k.due_at)),3),e.createElementVNode("td",null,[e.createElementVNode("ul",hr,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(k.tags,b=>(e.openBlock(),e.createElementBlock("li",{key:b.id},e.toDisplayString(b.name),1))),128))])])],8,vr)}),128))])])])),e.createElementVNode("footer",Er,[e.createElementVNode("button",{type:"button","data-testid":"btn-prev-page","aria-label":"Previous page",disabled:t.pagination.current_page<=1,onClick:u[13]||(u[13]=k=>s(t.pagination.current_page-1))}," Previous ",8,wr),e.createElementVNode("span",Vr,"Page "+e.toDisplayString(t.pagination.current_page)+" of "+e.toDisplayString(t.pagination.last_page),1),e.createElementVNode("button",{type:"button","data-testid":"btn-next-page","aria-label":"Next page",disabled:t.pagination.current_page>=t.pagination.last_page,onClick:u[14]||(u[14]=k=>s(t.pagination.current_page+1))}," Next ",8,Nr)])]))}}),Xt=R($r,[["__scopeId","data-v-74b6fa03"]]),Tr={class:"workflow-form__steps","aria-label":"Workflow steps"},Br=["data-testid","onClick"],Sr={key:0,class:"workflow-form__panel","data-testid":"workflow-step-panel-1"},Cr={class:"workflow-form__card-grid"},Dr=["data-testid","aria-pressed","onClick"],Mr={key:1,class:"workflow-form__panel","data-testid":"workflow-step-panel-2"},Ar={class:"workflow-form__grid"},Ir={class:"workflow-form__field"},Fr=["value"],Lr={class:"workflow-form__field"},Rr=["value"],zr={key:1,class:"workflow-form__field"},Ur={key:2,class:"workflow-form__field"},Wr={key:3,class:"workflow-form__field"},xr={key:4,class:"workflow-form__muted"},Pr={key:2,class:"workflow-form__panel","data-testid":"workflow-step-panel-3"},Or=["data-testid"],Hr=["onUpdate:modelValue","data-testid","aria-label"],jr=["value"],Yr=["onUpdate:modelValue","data-testid","aria-label"],qr=["value"],Qr=["onUpdate:modelValue","data-testid","aria-label","disabled"],Kr=["data-testid","aria-label","disabled","onClick"],Gr={key:3,class:"workflow-form__panel","data-testid":"workflow-step-panel-4"},Jr=["data-testid"],Zr={class:"workflow-form__row workflow-form__row--wrap"},Xr={class:"workflow-form__field workflow-form__field--compact"},ed=["onUpdate:modelValue","data-testid"],td=["value"],ad={class:"workflow-form__field workflow-form__field--grow"},nd=["onUpdate:modelValue","data-testid"],ld=["value"],od=["onUpdate:modelValue","data-testid"],sd=["onUpdate:modelValue","data-testid","placeholder"],id={key:0,class:"workflow-form__row workflow-form__row--wrap"},rd={class:"workflow-form__field workflow-form__field--grow"},dd=["onUpdate:modelValue","data-testid"],cd={class:"workflow-form__field workflow-form__field--grow"},ud=["onUpdate:modelValue","data-testid"],md={key:1,class:"workflow-form__row workflow-form__row--wrap"},pd={class:"workflow-form__field"},kd=["onUpdate:modelValue","data-testid"],_d={class:"workflow-form__field"},fd=["onUpdate:modelValue","data-testid"],vd={class:"workflow-form__field"},yd=["onUpdate:modelValue","data-testid"],gd=["value"],bd={class:"workflow-form__field workflow-form__field--grow"},hd=["onUpdate:modelValue","data-testid"],Ed={key:2,class:"workflow-form__row workflow-form__row--wrap"},wd={class:"workflow-form__field"},Vd=["onUpdate:modelValue","data-testid"],Nd={class:"workflow-form__field"},$d=["onUpdate:modelValue","data-testid"],Td={key:3,class:"workflow-form__row workflow-form__row--wrap"},Bd={class:"workflow-form__field workflow-form__field--grow"},Sd=["onUpdate:modelValue","data-testid"],Cd={class:"workflow-form__field"},Dd=["onUpdate:modelValue","data-testid"],Md={class:"workflow-form__action-footer"},Ad=["data-testid","aria-label","disabled","onClick"],Id=["data-testid","aria-label","disabled","onClick"],Fd=["data-testid","aria-label","disabled","onClick"],Ld={key:4,class:"workflow-form__panel","data-testid":"workflow-step-panel-5"},Rd={class:"workflow-form__grid"},zd={class:"workflow-form__field workflow-form__field--wide"},Ud={class:"workflow-form__field workflow-form__field--wide"},Wd={class:"workflow-form__field"},xd={class:"workflow-form__toggle"},Pd={class:"workflow-form__toggle"},Od={class:"workflow-form__footer"},Hd=["disabled"],jd=e.defineComponent({__name:"WorkflowForm",props:{workflow:{},mode:{},submitting:{type:Boolean}},emits:["submit","cancel"],setup(t,{emit:a}){const l=t,o=a,n=["Trigger","Trigger Config","Conditions","Actions","Settings"],i=["draft","open","in_progress","blocked","under_review","complete","cancelled"],r=["none","low","medium","high","urgent","critical"],s=[{value:"task_created",label:"Task created",description:"Runs as soon as a task is created."},{value:"status_changed",label:"Status changed",description:"Runs after a task moves between statuses."},{value:"tag_added",label:"Tag added",description:"Runs when a tag is attached to a task."},{value:"assigned",label:"Assigned",description:"Runs when a task is assigned or reassigned."},{value:"comment_added",label:"Comment added",description:"Runs when a new comment is added."},{value:"completed",label:"Completed",description:"Runs when a task is completed."},{value:"due_approaching",label:"Due approaching",description:"Runs ahead of a due date based on hours before due."},{value:"overdue",label:"Overdue",description:"Runs once a task crosses an overdue threshold."}],y=["status","priority","taskable_type","tags","assignee","source","due_at","created_by"],_=["equals","not_equals","in","not_in","contains","not_contains","is_null","is_not_null","before","after","greater_than","less_than"],u=[{value:"set_status",label:"Set status"},{value:"set_priority",label:"Set priority"},{value:"assign_to_user",label:"Assign to user"},{value:"assign_to_role",label:"Assign to role"},{value:"add_tag",label:"Add tag"},{value:"remove_tag",label:"Remove tag"},{value:"send_notification",label:"Send notification"},{value:"add_comment",label:"Add comment"},{value:"create_related_task",label:"Create related task"},{value:"set_due_date",label:"Set due date"},{value:"webhook",label:"Webhook"}],k=e.ref(1),f=e.reactive({name:"",description:"",trigger_type:"task_created",is_enabled:!0,stop_processing:!1,position:0}),b=e.reactive({from_status:"",to_status:"",tag:"",hours_before:"24",hours_overdue:"0"}),c=e.ref([]),d=e.ref([]),m=e.computed(()=>l.mode??"create"),E=e.computed(()=>k.value===n.length);function B(C="add_tag"){return{type:C,value:"",config:{recipients:"",message:"",relation_type:"related_to",priority:"none",template_id:"",tags:"",offset_hours:"",url:"",method:"POST"}}}function N(){return{field:"status",operator:"equals",value:""}}function $(){var S,D,L,F,ne,be,he;const C=l.workflow;f.name=(C==null?void 0:C.name)??"",f.description=(C==null?void 0:C.description)??"",f.trigger_type=(C==null?void 0:C.trigger_type)??"task_created",f.is_enabled=(C==null?void 0:C.is_enabled)??!0,f.stop_processing=(C==null?void 0:C.stop_processing)??!1,f.position=(C==null?void 0:C.position)??0,b.from_status=typeof((S=C==null?void 0:C.trigger_config)==null?void 0:S.from_status)=="string"?C.trigger_config.from_status:"",b.to_status=typeof((D=C==null?void 0:C.trigger_config)==null?void 0:D.to_status)=="string"?C.trigger_config.to_status:"",b.tag=typeof((L=C==null?void 0:C.trigger_config)==null?void 0:L.tag)=="string"?C.trigger_config.tag:"",b.hours_before=((F=C==null?void 0:C.trigger_config)==null?void 0:F.hours_before)===void 0?"24":String(C.trigger_config.hours_before),b.hours_overdue=((ne=C==null?void 0:C.trigger_config)==null?void 0:ne.hours_overdue)===void 0?"0":String(C.trigger_config.hours_overdue),c.value=(be=C==null?void 0:C.conditions)!=null&&be.length?C.conditions.map(U=>({field:U.field,operator:U.operator,value:U.value===void 0||U.value===null?"":Array.isArray(U.value)?U.value.join(", "):String(U.value)})):[N()],d.value=(he=C==null?void 0:C.actions)!=null&&he.length?C.actions.map(U=>{var Ee,we,Ve,Ne,$e,Te,Be,J,le,Se,Ce;return{type:U.type,value:U.value===void 0||U.value===null?"":String(U.value),config:{recipients:Array.isArray((Ee=U.config)==null?void 0:Ee.recipients)?String(((we=U.config)==null?void 0:we.recipients).join(", ")):"",message:typeof((Ve=U.config)==null?void 0:Ve.message)=="string"?U.config.message:"",relation_type:typeof((Ne=U.config)==null?void 0:Ne.relation_type)=="string"?U.config.relation_type:"related_to",priority:typeof(($e=U.config)==null?void 0:$e.priority)=="string"?U.config.priority:"none",template_id:typeof((Te=U.config)==null?void 0:Te.template_id)=="string"?U.config.template_id:"",tags:Array.isArray((Be=U.config)==null?void 0:Be.tags)?String(((J=U.config)==null?void 0:J.tags).join(", ")):"",offset_hours:((le=U.config)==null?void 0:le.offset_hours)===void 0?"":String(U.config.offset_hours),url:typeof((Se=U.config)==null?void 0:Se.url)=="string"?U.config.url:"",method:typeof((Ce=U.config)==null?void 0:Ce.method)=="string"?U.config.method:"POST"}}}):[B()]}e.watch(()=>l.workflow,()=>{$()},{immediate:!0});function h(){k.value=Math.min(n.length,k.value+1)}function V(){k.value=Math.max(1,k.value-1)}function w(C){k.value=C}function v(){c.value.push(N())}function I(C){c.value.splice(C,1)}function z(){d.value.push(B())}function P(C){d.value.splice(C,1)}function G(C,S){const D=S==="up"?C-1:C+1;if(D<0||D>=d.value.length)return;const L=[...d.value],F=L[C],ne=L[D];F===void 0||ne===void 0||(L[C]=ne,L[D]=F,d.value=L)}function te(C,S){return S==="in"||S==="not_in"?C.split(",").map(D=>D.trim()).filter(Boolean):C.trim()===""?void 0:C.trim()}function ae(){switch(f.trigger_type){case"status_changed":return{...b.from_status!==""?{from_status:b.from_status}:{},...b.to_status!==""?{to_status:b.to_status}:{}};case"tag_added":return b.tag===""?{}:{tag:b.tag};case"due_approaching":return{hours_before:Number.parseInt(b.hours_before||"24",10)||24};case"overdue":return{hours_overdue:Number.parseInt(b.hours_overdue||"0",10)||0};default:return null}}function _e(){return c.value.filter(C=>C.field&&C.operator).map(C=>({field:C.field,operator:C.operator,value:te(C.value,C.operator)}))}function We(){return d.value.map(C=>{const S={};return C.type==="send_notification"&&(S.recipients=C.config.recipients.split(",").map(D=>D.trim()).filter(Boolean),C.config.message.trim()!==""&&(S.message=C.config.message.trim())),C.type==="create_related_task"&&(C.config.template_id.trim()!==""&&(S.template_id=C.config.template_id.trim()),S.relation_type=C.config.relation_type,C.config.priority!=="none"&&(S.priority=C.config.priority),C.config.tags.trim()!==""&&(S.tags=C.config.tags.split(",").map(D=>D.trim()).filter(Boolean))),C.type==="set_due_date"&&C.config.offset_hours.trim()!==""&&(S.offset_hours=Number.parseInt(C.config.offset_hours,10)),C.type==="webhook"&&(S.url=C.config.url.trim(),S.method=C.config.method||"POST"),{type:C.type,...C.value.trim()!==""?{value:C.value.trim()}:{},...Object.keys(S).length>0?{config:S}:{}}})}function xe(){f.name.trim()===""||d.value.length===0||o("submit",{name:f.name.trim(),description:f.description.trim()===""?null:f.description.trim(),trigger_type:f.trigger_type,trigger_config:ae(),conditions:_e(),actions:We(),is_enabled:f.is_enabled,position:f.position,stop_processing:f.stop_processing})}function fe(C){return C==="set_status"||C==="set_priority"}return(C,S)=>(e.openBlock(),e.createElementBlock("form",{class:"workflow-form","data-testid":"form-workflow",onSubmit:e.withModifiers(xe,["prevent"])},[e.createElementVNode("nav",Tr,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(n,(D,L)=>e.createElementVNode("button",{key:D,type:"button",class:e.normalizeClass(["workflow-form__step",{"workflow-form__step--active":k.value===L+1}]),"data-testid":`workflow-step-${L+1}`,onClick:F=>w(L+1)},[e.createElementVNode("span",null,e.toDisplayString(L+1),1),e.createTextVNode(" "+e.toDisplayString(D),1)],10,Br)),64))]),k.value===1?(e.openBlock(),e.createElementBlock("section",Sr,[S[11]||(S[11]=e.createElementVNode("h3",null,"Select trigger",-1)),e.createElementVNode("div",Cr,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(s,D=>e.createElementVNode("button",{key:D.value,type:"button",class:e.normalizeClass(["workflow-form__trigger-card",{"workflow-form__trigger-card--selected":f.trigger_type===D.value}]),"data-testid":`btn-trigger-${D.value}`,"aria-pressed":f.trigger_type===D.value,onClick:L=>f.trigger_type=D.value},[e.createElementVNode("strong",null,e.toDisplayString(D.label),1),e.createElementVNode("span",null,e.toDisplayString(D.description),1)],10,Dr)),64))])])):k.value===2?(e.openBlock(),e.createElementBlock("section",Mr,[S[19]||(S[19]=e.createElementVNode("h3",null,"Trigger configuration",-1)),e.createElementVNode("div",Ar,[f.trigger_type==="status_changed"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("label",Ir,[S[13]||(S[13]=e.createElementVNode("span",null,"From status",-1)),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":S[0]||(S[0]=D=>b.from_status=D),"data-testid":"workflow-trigger-from-status"},[S[12]||(S[12]=e.createElementVNode("option",{value:""},"Any status",-1)),(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(i,D=>e.createElementVNode("option",{key:D,value:D},e.toDisplayString(D),9,Fr)),64))],512),[[e.vModelSelect,b.from_status]])]),e.createElementVNode("label",Lr,[S[15]||(S[15]=e.createElementVNode("span",null,"To status",-1)),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":S[1]||(S[1]=D=>b.to_status=D),"data-testid":"workflow-trigger-to-status"},[S[14]||(S[14]=e.createElementVNode("option",{value:""},"Any status",-1)),(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(i,D=>e.createElementVNode("option",{key:D,value:D},e.toDisplayString(D),9,Rr)),64))],512),[[e.vModelSelect,b.to_status]])])],64)):f.trigger_type==="tag_added"?(e.openBlock(),e.createElementBlock("label",zr,[S[16]||(S[16]=e.createElementVNode("span",null,"Required tag",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":S[2]||(S[2]=D=>b.tag=D),"data-testid":"workflow-trigger-tag",type:"text",placeholder:"shipping"},null,512),[[e.vModelText,b.tag]])])):f.trigger_type==="due_approaching"?(e.openBlock(),e.createElementBlock("label",Ur,[S[17]||(S[17]=e.createElementVNode("span",null,"Hours before due",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":S[3]||(S[3]=D=>b.hours_before=D),"data-testid":"workflow-trigger-hours-before",type:"number",min:"0"},null,512),[[e.vModelText,b.hours_before]])])):f.trigger_type==="overdue"?(e.openBlock(),e.createElementBlock("label",Wr,[S[18]||(S[18]=e.createElementVNode("span",null,"Hours overdue",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":S[4]||(S[4]=D=>b.hours_overdue=D),"data-testid":"workflow-trigger-hours-overdue",type:"number",min:"0"},null,512),[[e.vModelText,b.hours_overdue]])])):(e.openBlock(),e.createElementBlock("p",xr,"This trigger does not need extra configuration."))])])):k.value===3?(e.openBlock(),e.createElementBlock("section",Pr,[e.createElementVNode("div",{class:"workflow-form__panel-header"},[S[20]||(S[20]=e.createElementVNode("div",null,[e.createElementVNode("h3",null,"Conditions"),e.createElementVNode("p",null,"All conditions are evaluated with AND logic.")],-1)),e.createElementVNode("button",{type:"button","data-testid":"btn-add-condition",onClick:v},"Add condition")]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,(D,L)=>(e.openBlock(),e.createElementBlock("div",{key:`condition-${L}`,class:"workflow-form__row","data-testid":`item-condition-${L}`},[e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":F=>D.field=F,"data-testid":`workflow-condition-field-${L}`,"aria-label":`Condition ${L+1} field`},[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(y,F=>e.createElementVNode("option",{key:F,value:F},e.toDisplayString(F),9,jr)),64))],8,Hr),[[e.vModelSelect,D.field]]),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":F=>D.operator=F,"data-testid":`workflow-condition-operator-${L}`,"aria-label":`Condition ${L+1} operator`},[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(_,F=>e.createElementVNode("option",{key:F,value:F},e.toDisplayString(F),9,qr)),64))],8,Yr),[[e.vModelSelect,D.operator]]),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":F=>D.value=F,"data-testid":`workflow-condition-value-${L}`,"aria-label":`Condition ${L+1} value`,type:"text",placeholder:"critical, urgent",disabled:D.operator==="is_null"||D.operator==="is_not_null"},null,8,Qr),[[e.vModelText,D.value]]),e.createElementVNode("button",{type:"button","data-testid":`btn-remove-condition-${L}`,"aria-label":`Remove condition ${L+1}`,disabled:c.value.length===1,onClick:F=>I(L)},"Remove",8,Kr)],8,Or))),128))])):k.value===4?(e.openBlock(),e.createElementBlock("section",Gr,[e.createElementVNode("div",{class:"workflow-form__panel-header"},[S[21]||(S[21]=e.createElementVNode("div",null,[e.createElementVNode("h3",null,"Action steps"),e.createElementVNode("p",null,"Actions run in the order shown here.")],-1)),e.createElementVNode("button",{type:"button","data-testid":"btn-add-action",onClick:z},"Add action")]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.value,(D,L)=>(e.openBlock(),e.createElementBlock("article",{key:`action-${L}`,class:"workflow-form__action-card","data-testid":`item-action-${L}`},[e.createElementVNode("div",Zr,[e.createElementVNode("label",Xr,[S[22]||(S[22]=e.createElementVNode("span",null,"Action",-1)),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":F=>D.type=F,"data-testid":`workflow-action-type-${L}`},[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(u,F=>e.createElementVNode("option",{key:F.value,value:F.value},e.toDisplayString(F.label),9,td)),64))],8,ed),[[e.vModelSelect,D.type]])]),e.createElementVNode("label",ad,[S[24]||(S[24]=e.createElementVNode("span",null,"Value",-1)),fe(D.type)?e.withDirectives((e.openBlock(),e.createElementBlock("select",{key:0,"onUpdate:modelValue":F=>D.value=F,"data-testid":`workflow-action-value-${L}`},[S[23]||(S[23]=e.createElementVNode("option",{value:""},"Select value",-1)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(D.type==="set_status"?i:r,F=>(e.openBlock(),e.createElementBlock("option",{key:F,value:F},e.toDisplayString(F),9,ld))),128))],8,nd)),[[e.vModelSelect,D.value]]):D.type==="add_comment"?e.withDirectives((e.openBlock(),e.createElementBlock("textarea",{key:1,"onUpdate:modelValue":F=>D.value=F,"data-testid":`workflow-action-value-${L}`,rows:"3",placeholder:"Comment body"},null,8,od)),[[e.vModelText,D.value]]):e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:2,"onUpdate:modelValue":F=>D.value=F,"data-testid":`workflow-action-value-${L}`,type:"text",placeholder:D.type==="assign_to_role"?"warehouse-manager":D.type==="assign_to_user"?"user-uuid":D.type==="add_tag"?"auto-assigned":D.type==="webhook"?"Optional label":"Value"},null,8,sd)),[[e.vModelText,D.value]])])]),D.type==="send_notification"?(e.openBlock(),e.createElementBlock("div",id,[e.createElementVNode("label",rd,[S[25]||(S[25]=e.createElementVNode("span",null,"Recipients",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":F=>D.config.recipients=F,"data-testid":`workflow-action-recipients-${L}`,type:"text",placeholder:"assignee, manager"},null,8,dd),[[e.vModelText,D.config.recipients]])]),e.createElementVNode("label",cd,[S[26]||(S[26]=e.createElementVNode("span",null,"Message",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":F=>D.config.message=F,"data-testid":`workflow-action-message-${L}`,type:"text",placeholder:"Workflow updated this task"},null,8,ud),[[e.vModelText,D.config.message]])])])):e.createCommentVNode("",!0),D.type==="create_related_task"?(e.openBlock(),e.createElementBlock("div",md,[e.createElementVNode("label",pd,[S[28]||(S[28]=e.createElementVNode("span",null,"Relation type",-1)),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":F=>D.config.relation_type=F,"data-testid":`workflow-action-relation-type-${L}`},[...S[27]||(S[27]=[e.createElementVNode("option",{value:"related_to"},"related_to",-1),e.createElementVNode("option",{value:"blocks"},"blocks",-1),e.createElementVNode("option",{value:"parent_of"},"parent_of",-1)])],8,kd),[[e.vModelSelect,D.config.relation_type]])]),e.createElementVNode("label",_d,[S[29]||(S[29]=e.createElementVNode("span",null,"Template ID",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":F=>D.config.template_id=F,"data-testid":`workflow-action-template-id-${L}`,type:"text",placeholder:"template-uuid"},null,8,fd),[[e.vModelText,D.config.template_id]])]),e.createElementVNode("label",vd,[S[30]||(S[30]=e.createElementVNode("span",null,"Priority",-1)),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":F=>D.config.priority=F,"data-testid":`workflow-action-priority-${L}`},[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(r,F=>e.createElementVNode("option",{key:F,value:F},e.toDisplayString(F),9,gd)),64))],8,yd),[[e.vModelSelect,D.config.priority]])]),e.createElementVNode("label",bd,[S[31]||(S[31]=e.createElementVNode("span",null,"Tags",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":F=>D.config.tags=F,"data-testid":`workflow-action-tags-${L}`,type:"text",placeholder:"follow-up, warehouse"},null,8,hd),[[e.vModelText,D.config.tags]])])])):e.createCommentVNode("",!0),D.type==="set_due_date"?(e.openBlock(),e.createElementBlock("div",Ed,[e.createElementVNode("label",wd,[S[32]||(S[32]=e.createElementVNode("span",null,"Absolute due date",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":F=>D.value=F,"data-testid":`workflow-action-due-date-${L}`,type:"date"},null,8,Vd),[[e.vModelText,D.value]])]),e.createElementVNode("label",Nd,[S[33]||(S[33]=e.createElementVNode("span",null,"Offset hours",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":F=>D.config.offset_hours=F,"data-testid":`workflow-action-offset-hours-${L}`,type:"number",min:"0",placeholder:"4"},null,8,$d),[[e.vModelText,D.config.offset_hours]])])])):e.createCommentVNode("",!0),D.type==="webhook"?(e.openBlock(),e.createElementBlock("div",Td,[e.createElementVNode("label",Bd,[S[34]||(S[34]=e.createElementVNode("span",null,"Webhook URL",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":F=>D.config.url=F,"data-testid":`workflow-action-url-${L}`,type:"url",placeholder:"https://hooks.example.com/task"},null,8,Sd),[[e.vModelText,D.config.url]])]),e.createElementVNode("label",Cd,[S[36]||(S[36]=e.createElementVNode("span",null,"Method",-1)),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":F=>D.config.method=F,"data-testid":`workflow-action-method-${L}`},[...S[35]||(S[35]=[e.createElementVNode("option",{value:"POST"},"POST",-1),e.createElementVNode("option",{value:"PUT"},"PUT",-1),e.createElementVNode("option",{value:"PATCH"},"PATCH",-1)])],8,Dd),[[e.vModelSelect,D.config.method]])])])):e.createCommentVNode("",!0),e.createElementVNode("footer",Md,[e.createElementVNode("button",{type:"button","data-testid":`btn-move-action-up-${L}`,"aria-label":`Move action ${L+1} up`,disabled:L===0,onClick:F=>G(L,"up")},"Move up",8,Ad),e.createElementVNode("button",{type:"button","data-testid":`btn-move-action-down-${L}`,"aria-label":`Move action ${L+1} down`,disabled:L===d.value.length-1,onClick:F=>G(L,"down")},"Move down",8,Id),e.createElementVNode("button",{type:"button","data-testid":`btn-remove-action-${L}`,"aria-label":`Remove action ${L+1}`,disabled:d.value.length===1,onClick:F=>P(L)},"Remove",8,Fd)])],8,Jr))),128))])):(e.openBlock(),e.createElementBlock("section",Ld,[S[42]||(S[42]=e.createElementVNode("h3",null,"Settings",-1)),e.createElementVNode("div",Rd,[e.createElementVNode("label",zd,[S[37]||(S[37]=e.createElementVNode("span",null,"Name",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":S[5]||(S[5]=D=>f.name=D),"data-testid":"workflow-name",type:"text",required:"",placeholder:"Auto-assign shipping tasks"},null,512),[[e.vModelText,f.name]])]),e.createElementVNode("label",Ud,[S[38]||(S[38]=e.createElementVNode("span",null,"Description",-1)),e.withDirectives(e.createElementVNode("textarea",{"onUpdate:modelValue":S[6]||(S[6]=D=>f.description=D),"data-testid":"workflow-description",rows:"4",placeholder:"Explain when and why this workflow exists."},null,512),[[e.vModelText,f.description]])]),e.createElementVNode("label",Wd,[S[39]||(S[39]=e.createElementVNode("span",null,"Position",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":S[7]||(S[7]=D=>f.position=D),"data-testid":"workflow-position",type:"number",min:"0"},null,512),[[e.vModelText,f.position,void 0,{number:!0}]])]),e.createElementVNode("label",xd,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":S[8]||(S[8]=D=>f.is_enabled=D),"data-testid":"workflow-enabled",type:"checkbox"},null,512),[[e.vModelCheckbox,f.is_enabled]]),S[40]||(S[40]=e.createTextVNode(" Enabled ",-1))]),e.createElementVNode("label",Pd,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":S[9]||(S[9]=D=>f.stop_processing=D),"data-testid":"workflow-stop-processing",type:"checkbox"},null,512),[[e.vModelCheckbox,f.stop_processing]]),S[41]||(S[41]=e.createTextVNode(" Stop processing later workflows ",-1))])])])),e.createElementVNode("footer",Od,[e.createElementVNode("button",{type:"button",class:"workflow-form__ghost","data-testid":"workflow-cancel",onClick:S[10]||(S[10]=D=>o("cancel"))},"Cancel"),k.value>1?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"workflow-form__ghost","data-testid":"workflow-back",onClick:V},"Back")):e.createCommentVNode("",!0),E.value?(e.openBlock(),e.createElementBlock("button",{key:2,type:"submit","data-testid":"workflow-submit",disabled:t.submitting||f.name.trim()===""},e.toDisplayString(m.value==="edit"?"Save workflow":"Create workflow"),9,Hd)):(e.openBlock(),e.createElementBlock("button",{key:1,type:"button","data-testid":"workflow-next",onClick:h},"Next"))])],32))}}),Yd=R(jd,[["__scopeId","data-v-64987e59"]]),qd={class:"workflow-list","data-testid":"list-workflows"},Qd={class:"workflow-list__header"},Kd={class:"workflow-list__count","data-testid":"badge-workflow-count"},Gd={key:0,class:"workflow-list__error","data-testid":"status-workflow-error"},Jd={key:1,class:"workflow-list__loading","data-testid":"status-loading-workflows"},Zd={key:2,class:"workflow-list__table-wrap"},Xd={class:"workflow-list__table","data-testid":"workflow-list-table"},ec=["data-testid"],tc={class:"workflow-list__name"},ac={key:0},nc=["data-testid","onClick"],lc={class:"workflow-list__actions"},oc=["data-testid","aria-label","disabled","onClick"],sc=["data-testid","aria-label","disabled","onClick"],ic=["data-testid","aria-label","onClick"],rc=["data-testid","aria-label","onClick"],dc=["data-testid","aria-label","onClick"],cc=["data-testid","aria-label","onClick"],uc={key:0},mc=e.defineComponent({__name:"WorkflowList",props:{workflows:{},loading:{type:Boolean},error:{}},emits:["edit","duplicate","remove","toggle","move","logs"],setup(t,{emit:a}){const l=t,o=a,n=e.computed(()=>[...l.workflows].sort((r,s)=>r.position-s.position));function i(r){return r===null||r===""?"Never":new Date(r).toLocaleString()}return(r,s)=>(e.openBlock(),e.createElementBlock("section",qd,[e.createElementVNode("header",Qd,[s[0]||(s[0]=e.createElementVNode("div",null,[e.createElementVNode("p",{class:"workflow-list__eyebrow"},"Workflow Automation"),e.createElementVNode("h2",null,"Workflow Builder")],-1)),e.createElementVNode("span",Kd,e.toDisplayString(n.value.length)+" workflows",1)]),t.error?(e.openBlock(),e.createElementBlock("p",Gd,e.toDisplayString(t.error),1)):t.loading&&n.value.length===0?(e.openBlock(),e.createElementBlock("p",Jd,"Loading workflows…")):(e.openBlock(),e.createElementBlock("div",Zd,[e.createElementVNode("table",Xd,[s[2]||(s[2]=e.createElementVNode("thead",null,[e.createElementVNode("tr",null,[e.createElementVNode("th",null,"Name"),e.createElementVNode("th",null,"Trigger"),e.createElementVNode("th",null,"Status"),e.createElementVNode("th",null,"Last Run"),e.createElementVNode("th",null,"Runs"),e.createElementVNode("th",{class:"workflow-list__actions-header"},"Actions")])],-1)),e.createElementVNode("tbody",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.value,(y,_)=>(e.openBlock(),e.createElementBlock("tr",{key:y.id,"data-testid":`workflow-row-${y.id}`},[e.createElementVNode("td",null,[e.createElementVNode("div",tc,[e.createElementVNode("strong",null,e.toDisplayString(y.name),1),y.description?(e.openBlock(),e.createElementBlock("span",ac,e.toDisplayString(y.description),1)):e.createCommentVNode("",!0)])]),e.createElementVNode("td",null,e.toDisplayString(y.trigger_type_label??y.trigger_type),1),e.createElementVNode("td",null,[e.createElementVNode("button",{type:"button",class:e.normalizeClass(["workflow-list__status",{"workflow-list__status--enabled":y.is_enabled}]),"data-testid":`workflow-toggle-${y.id}`,onClick:u=>o("toggle",{workflow:y,isEnabled:!y.is_enabled})},e.toDisplayString(y.is_enabled?"Enabled":"Disabled"),11,nc)]),e.createElementVNode("td",null,e.toDisplayString(i(y.last_executed_at)),1),e.createElementVNode("td",null,e.toDisplayString(y.execution_count),1),e.createElementVNode("td",lc,[e.createElementVNode("button",{type:"button","data-testid":`btn-move-workflow-up-${y.id}`,"aria-label":`Move ${y.name} up`,disabled:_===0,onClick:u=>o("move",{workflow:y,direction:"up"})},"Up",8,oc),e.createElementVNode("button",{type:"button","data-testid":`btn-move-workflow-down-${y.id}`,"aria-label":`Move ${y.name} down`,disabled:_===n.value.length-1,onClick:u=>o("move",{workflow:y,direction:"down"})},"Down",8,sc),e.createElementVNode("button",{type:"button","data-testid":`btn-edit-workflow-${y.id}`,"aria-label":`Edit ${y.name}`,onClick:u=>o("edit",y)},"Edit",8,ic),e.createElementVNode("button",{type:"button","data-testid":`btn-duplicate-workflow-${y.id}`,"aria-label":`Duplicate ${y.name}`,onClick:u=>o("duplicate",y)},"Duplicate",8,rc),e.createElementVNode("button",{type:"button","data-testid":`btn-logs-workflow-${y.id}`,"aria-label":`View logs for ${y.name}`,onClick:u=>o("logs",y)},"Logs",8,dc),e.createElementVNode("button",{type:"button",class:"workflow-list__danger","data-testid":`btn-delete-workflow-${y.id}`,"aria-label":`Delete ${y.name}`,onClick:u=>o("remove",y)},"Delete",8,cc)])],8,ec))),128)),n.value.length===0?(e.openBlock(),e.createElementBlock("tr",uc,[...s[1]||(s[1]=[e.createElementVNode("td",{colspan:"6",class:"workflow-list__empty","data-testid":"status-empty-workflows"},"No workflows yet.",-1)])])):e.createCommentVNode("",!0)])])]))]))}}),pc=R(mc,[["__scopeId","data-v-dbc9ea34"]]),kc={class:"workflow-logs","data-testid":"panel-workflow-logs"},_c={class:"workflow-logs__filters"},fc={key:0,class:"workflow-logs__loading","data-testid":"status-loading-logs"},vc=["data-testid"],yc={class:"workflow-logs__row"},gc=["data-testid"],bc={class:"workflow-logs__meta"},hc=["data-testid","aria-expanded","aria-label","onClick"],Ec=["data-testid"],wc={key:0},Vc={key:1,class:"workflow-logs__empty","data-testid":"status-empty-logs"},Nc=e.defineComponent({__name:"WorkflowLogs",props:{logs:{},loading:{type:Boolean}},emits:["refresh"],setup(t,{emit:a}){const l=t,o=a,n=e.ref(""),i=e.ref(""),r=e.ref(""),s=e.ref(null),y=e.computed(()=>l.logs.filter(k=>!(n.value!==""&&k.status!==n.value||i.value!==""&&(k.executed_at===null||k.executed_at<i.value)||r.value!==""&&(k.executed_at===null||k.executed_at>r.value))));function _(k){s.value=s.value===k?null:k}function u(){o("refresh",{...n.value!==""?{status:n.value}:{},...i.value!==""?{date_from:i.value}:{},...r.value!==""?{date_to:r.value}:{}})}return(k,f)=>(e.openBlock(),e.createElementBlock("section",kc,[e.createElementVNode("header",{class:"workflow-logs__header"},[f[3]||(f[3]=e.createElementVNode("div",null,[e.createElementVNode("p",{class:"workflow-logs__eyebrow"},"Execution Audit"),e.createElementVNode("h2",null,"Workflow Logs")],-1)),e.createElementVNode("button",{type:"button","data-testid":"btn-refresh-logs","aria-label":"Refresh workflow logs",onClick:u},"Refresh")]),e.createElementVNode("div",_c,[e.createElementVNode("label",null,[f[5]||(f[5]=e.createElementVNode("span",null,"Status",-1)),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":f[0]||(f[0]=b=>n.value=b),"data-testid":"workflow-log-status-filter"},[...f[4]||(f[4]=[e.createElementVNode("option",{value:""},"All",-1),e.createElementVNode("option",{value:"success"},"success",-1),e.createElementVNode("option",{value:"skipped"},"skipped",-1),e.createElementVNode("option",{value:"error"},"error",-1)])],512),[[e.vModelSelect,n.value]])]),e.createElementVNode("label",null,[f[6]||(f[6]=e.createElementVNode("span",null,"From",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":f[1]||(f[1]=b=>i.value=b),"data-testid":"workflow-log-date-from",type:"date"},null,512),[[e.vModelText,i.value]])]),e.createElementVNode("label",null,[f[7]||(f[7]=e.createElementVNode("span",null,"To",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":f[2]||(f[2]=b=>r.value=b),"data-testid":"workflow-log-date-to",type:"date"},null,512),[[e.vModelText,r.value]])])]),t.loading?(e.openBlock(),e.createElementBlock("p",fc,"Loading logs…")):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(y.value,b=>(e.openBlock(),e.createElementBlock("div",{key:b.id,class:"workflow-logs__card","data-testid":`card-log-${b.id}`},[e.createElementVNode("div",yc,[e.createElementVNode("div",null,[e.createElementVNode("strong",{"data-testid":`status-log-${b.id}`},e.toDisplayString(b.status_label??b.status),9,gc),e.createElementVNode("p",null,e.toDisplayString(b.executed_at??"No execution time"),1)]),e.createElementVNode("div",bc,[e.createElementVNode("span",null,"Task "+e.toDisplayString(b.task_id),1),e.createElementVNode("span",null,e.toDisplayString(b.duration_ms)+"ms",1),e.createElementVNode("button",{type:"button","data-testid":`btn-toggle-log-${b.id}`,"aria-expanded":s.value===b.id,"aria-label":s.value===b.id?"Hide log details":"Show log details",onClick:c=>_(b.id)},e.toDisplayString(s.value===b.id?"Hide":"Details"),9,hc)])]),s.value===b.id?(e.openBlock(),e.createElementBlock("div",{key:0,class:"workflow-logs__details","data-testid":`panel-log-details-${b.id}`},[e.createElementVNode("p",null,[f[8]||(f[8]=e.createElementVNode("strong",null,"Conditions met:",-1)),e.createTextVNode(" "+e.toDisplayString(b.conditions_met?"Yes":"No"),1)]),b.error?(e.openBlock(),e.createElementBlock("p",wc,[f[9]||(f[9]=e.createElementVNode("strong",null,"Error:",-1)),e.createTextVNode(" "+e.toDisplayString(b.error),1)])):e.createCommentVNode("",!0),e.createElementVNode("ul",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(b.actions_executed,(c,d)=>{var m;return e.openBlock(),e.createElementBlock("li",{key:`${b.id}-${d}`},e.toDisplayString(c.type)+": "+e.toDisplayString(((m=c.result)==null?void 0:m.message)??"No result message"),1)}),128))])],8,Ec)):e.createCommentVNode("",!0)],8,vc))),128)),!t.loading&&y.value.length===0?(e.openBlock(),e.createElementBlock("p",Vc,"No log entries match the current filters.")):e.createCommentVNode("",!0)]))}}),$c=R(Nc,[["__scopeId","data-v-67a6bc66"]]),Tc=["disabled"],Bc={key:0,class:"task-quick-create__extras"},Sc=["disabled"],Cc=["value"],Dc=["disabled"],Mc=["disabled"],Ac=["disabled"],Ic=e.defineComponent({__name:"TaskQuickCreate",props:{templates:{},busy:{type:Boolean},entityContext:{}},emits:["submit","instantiate-template"],setup(t,{emit:a}){const l=t,o=a,n=e.ref(!1),i=e.reactive({title:"",primary_assignee_id:"",due_at:"",template_id:""}),r=e.computed(()=>l.templates??[]);function s(){n.value=!0}function y(){i.title||i.primary_assignee_id||i.due_at||i.template_id||(n.value=!1)}function _(){var u,k;if(i.template_id){o("instantiate-template",i.template_id),i.template_id="",y();return}i.title.trim()&&(o("submit",{title:i.title.trim(),primary_assignee_id:i.primary_assignee_id||null,due_at:i.due_at||null,taskable_type:((u=l.entityContext)==null?void 0:u.type)??null,taskable_id:((k=l.entityContext)==null?void 0:k.id)??null}),i.title="",i.primary_assignee_id="",i.due_at="",y())}return(u,k)=>(e.openBlock(),e.createElementBlock("form",{class:e.normalizeClass(["task-quick-create",{expanded:n.value}]),"data-testid":"form-quick-create",onSubmit:e.withModifiers(_,["prevent"])},[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":k[0]||(k[0]=f=>i.title=f),type:"text","data-testid":"input-task-title","aria-label":"Task title",disabled:t.busy,placeholder:"Quick create a task",onFocus:s,onBlur:y},null,40,Tc),[[e.vModelText,i.title]]),n.value?(e.openBlock(),e.createElementBlock("div",Bc,[e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":k[1]||(k[1]=f=>i.template_id=f),"data-testid":"select-task-template","aria-label":"Task template",disabled:t.busy},[k[4]||(k[4]=e.createElementVNode("option",{value:""},"No template",-1)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,f=>(e.openBlock(),e.createElementBlock("option",{key:f.id,value:f.id},e.toDisplayString(f.name),9,Cc))),128))],8,Sc),[[e.vModelSelect,i.template_id]]),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":k[2]||(k[2]=f=>i.primary_assignee_id=f),type:"text","data-testid":"input-task-assignee","aria-label":"Assignee ID",disabled:t.busy,placeholder:"Assignee ID"},null,8,Dc),[[e.vModelText,i.primary_assignee_id]]),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":k[3]||(k[3]=f=>i.due_at=f),type:"date","data-testid":"input-task-due-date","aria-label":"Due date",disabled:t.busy},null,8,Mc),[[e.vModelText,i.due_at]]),e.createElementVNode("button",{type:"submit","data-testid":"btn-submit-task",disabled:t.busy||!i.title.trim()&&!i.template_id}," Create ",8,Ac)])):e.createCommentVNode("",!0)],34))}}),it=R(Ic,[["__scopeId","data-v-c122ba09"]]),Fc={class:"task-entity-widget","data-testid":"panel-entity-tasks"},Lc={class:"task-entity-widget__header"},Rc={class:"task-entity-widget__summary","data-testid":"panel-task-summary"},zc={"data-testid":"status-task-total"},Uc={"data-testid":"status-task-open"},Wc={"data-testid":"status-task-overdue"},xc={"data-testid":"status-task-completed"},Pc={class:"task-entity-widget__recent","data-testid":"panel-recent-tasks"},Oc={key:0,class:"task-entity-widget__cards","data-testid":"list-recent-tasks"},Hc={key:1,"data-testid":"status-no-recent-tasks"},jc=e.defineComponent({__name:"TaskEntityWidget",props:{entityType:{},entityId:{},summary:{},templates:{},loading:{type:Boolean}},emits:["create-task","view-all","instantiate-template","select-task"],setup(t,{emit:a}){const l=a;return(o,n)=>{var i,r,s,y,_,u;return e.openBlock(),e.createElementBlock("section",Fc,[e.createElementVNode("header",Lc,[e.createElementVNode("div",null,[n[4]||(n[4]=e.createElementVNode("h3",null,"Tasks",-1)),e.createElementVNode("p",null,"Operational work linked to this "+e.toDisplayString(t.entityType)+".",1)]),e.createElementVNode("button",{type:"button","data-testid":"btn-view-all-tasks",onClick:n[0]||(n[0]=k=>l("view-all"))},"View all")]),e.createElementVNode("div",Rc,[e.createElementVNode("article",zc,[n[5]||(n[5]=e.createElementVNode("span",null,"Total",-1)),e.createElementVNode("strong",null,e.toDisplayString(((i=t.summary)==null?void 0:i.total)??0),1)]),e.createElementVNode("article",Uc,[n[6]||(n[6]=e.createElementVNode("span",null,"Open",-1)),e.createElementVNode("strong",null,e.toDisplayString(((r=t.summary)==null?void 0:r.open)??0),1)]),e.createElementVNode("article",Wc,[n[7]||(n[7]=e.createElementVNode("span",null,"Overdue",-1)),e.createElementVNode("strong",null,e.toDisplayString(((s=t.summary)==null?void 0:s.overdue)??0),1)]),e.createElementVNode("article",xc,[n[8]||(n[8]=e.createElementVNode("span",null,"Completed",-1)),e.createElementVNode("strong",null,e.toDisplayString(((y=t.summary)==null?void 0:y.completed)??0),1)])]),e.createVNode(it,{busy:t.loading??!1,templates:t.templates??[],"entity-context":{type:t.entityType,id:t.entityId},onSubmit:n[1]||(n[1]=k=>l("create-task",k)),onInstantiateTemplate:n[2]||(n[2]=k=>l("instantiate-template",k))},null,8,["busy","templates","entity-context"]),e.createElementVNode("div",Pc,[n[9]||(n[9]=e.createElementVNode("h4",null,"Recent tasks",-1)),(u=(_=t.summary)==null?void 0:_.recent_tasks)!=null&&u.length?(e.openBlock(),e.createElementBlock("div",Oc,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.summary.recent_tasks,k=>(e.openBlock(),e.createBlock(st,{key:k.id,"data-testid":`entity-task-${k.id}`,task:k,compact:"",onSelect:n[3]||(n[3]=f=>l("select-task",f))},null,8,["data-testid","task"]))),128))])):(e.openBlock(),e.createElementBlock("p",Hc,"No recent tasks for this entity."))])])}}}),Yc=R(jc,[["__scopeId","data-v-77147155"]]),qc={class:"task-import-export-panel","data-testid":"task-import-export-panel"},Qc={class:"task-import-export-panel__block"},Kc=["disabled"],Gc={class:"task-import-export-panel__block"},Jc={class:"task-import-export-panel__upload"},Zc=["disabled"],Xc={key:0,class:"task-import-export-panel__result","data-testid":"task-import-result"},eu={key:0,"data-testid":"task-import-errors"},tu=e.defineComponent({__name:"TaskImportExportPanel",props:{busy:{type:Boolean},importing:{type:Boolean},exporting:{type:Boolean},result:{}},emits:["export","import"],setup(t,{emit:a}){const l=a,o=e.ref(null);function n(){l("export")}function i(r){var _;const s=r.target,y=((_=s==null?void 0:s.files)==null?void 0:_[0])??null;y&&(l("import",y),o.value&&(o.value.value=""))}return(r,s)=>(e.openBlock(),e.createElementBlock("section",qc,[e.createElementVNode("div",Qc,[s[0]||(s[0]=e.createElementVNode("div",null,[e.createElementVNode("h3",null,"Export Tasks"),e.createElementVNode("p",null,"Download the current filtered task view as CSV.")],-1)),e.createElementVNode("button",{type:"button","data-testid":"btn-export-tasks",disabled:(t.busy??!1)||(t.exporting??!1),onClick:n},e.toDisplayString(t.exporting?"Exporting…":"Export CSV"),9,Kc)]),e.createElementVNode("div",Gc,[s[1]||(s[1]=e.createElementVNode("div",null,[e.createElementVNode("h3",null,"Import Tasks"),e.createElementVNode("p",null,"Upload a CSV with title, description, priority, assignee email, due date, and tags.")],-1)),e.createElementVNode("label",Jc,[e.createElementVNode("span",null,e.toDisplayString(t.importing?"Importing…":"Choose CSV"),1),e.createElementVNode("input",{ref_key:"fileInput",ref:o,type:"file",accept:".csv,text/csv","data-testid":"input-import-tasks",disabled:(t.busy??!1)||(t.importing??!1),onChange:i},null,40,Zc)])]),t.result?(e.openBlock(),e.createElementBlock("div",Xc,[e.createElementVNode("p",null,[s[2]||(s[2]=e.createTextVNode(" Imported ",-1)),e.createElementVNode("strong",null,e.toDisplayString(t.result.imported),1),e.createTextVNode(" task"+e.toDisplayString(t.result.imported===1?"":"s")+". ",1)]),t.result.errors.length>0?(e.openBlock(),e.createElementBlock("ul",eu,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.result.errors,y=>(e.openBlock(),e.createElementBlock("li",{key:`${y.row}-${y.message}`}," Row "+e.toDisplayString(y.row)+": "+e.toDisplayString(y.message),1))),128))])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)]))}}),ea=R(tu,[["__scopeId","data-v-ab83ddf0"]]),au=["aria-label"],nu=["data-testid"],lu=["data-testid","aria-label","onClick"],ou={class:"task-notification-toast__eyebrow"},su=["aria-label","onClick"],iu=e.defineComponent({__name:"TaskNotificationToast",props:{navigate:{type:[Function,null],default:null},ariaLabel:{default:"Task notifications"}},emits:["dismiss","select"],setup(t,{emit:a}){const l=t,o=a,n=lt(),i=n.notifications,r=n.hasNotifications;function s(_){n.dismissTaskNotificationToast(_),o("dismiss",_)}function y(_){if(o("select",_),l.navigate!==null){l.navigate(_);return}typeof window<"u"&&_.url!==null&&window.location.assign(_.url)}return(_,u)=>e.unref(r)?(e.openBlock(),e.createElementBlock("div",{key:0,class:"task-notification-toast","data-testid":"toast-task-notification",role:"region","aria-label":t.ariaLabel,"aria-live":"polite","aria-atomic":"false"},[e.createVNode(e.TransitionGroup,{name:"task-toast"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(i),k=>(e.openBlock(),e.createElementBlock("article",{key:k.id,class:e.normalizeClass(["task-notification-toast__item",`task-notification-toast__item--${k.tone}`]),"data-testid":`toast-item-${k.id}`},[e.createElementVNode("button",{type:"button",class:"task-notification-toast__content","data-testid":`btn-open-toast-${k.id}`,"aria-label":`Open: ${k.title}`,onClick:f=>y(k)},[e.createElementVNode("span",ou,e.toDisplayString(k.kind),1),e.createElementVNode("strong",null,e.toDisplayString(k.title),1),e.createElementVNode("p",null,e.toDisplayString(k.body),1)],8,lu),e.createElementVNode("button",{type:"button",class:"task-notification-toast__dismiss","data-testid":"btn-dismiss-toast","aria-label":`Dismiss ${k.title}`,onClick:f=>s(k.id)}," × ",8,su)],10,nu))),128))]),_:1})],8,au)):e.createCommentVNode("",!0)}}),ru=R(iu,[["__scopeId","data-v-e5bf3315"]]),du={key:0,class:"escalation-actions","data-testid":"panel-escalation"},cu={class:"escalation-actions__header"},uu={class:"escalation-actions__status"},mu={class:"escalation-actions__label"},pu={class:"escalation-actions__buttons"},ku=["disabled"],_u=["aria-expanded","disabled"],fu={class:"escalation-actions__facts"},vu={key:0},yu={key:1},gu={key:2},bu={class:"escalation-actions__field"},hu={class:"escalation-actions__field"},Eu={key:0,class:"escalation-actions__error",role:"alert"},wu={class:"escalation-actions__buttons"},Vu=["disabled"],Nu={key:1,class:"escalation-actions__timeline","data-testid":"list-escalation-events"},$u=["data-testid"],Tu={key:0},Bu=e.defineComponent({__name:"EscalationActions",props:{task:{},busy:{type:Boolean}},emits:["acknowledge","snooze"],setup(t,{emit:a}){const l=t,o=a,n=e.ref(!1),i=e.ref(4),r=e.ref(""),s=e.ref(null),y=e.computed(()=>l.task.escalation_events.slice(0,6)),_=e.computed(()=>l.task.current_escalation_tier!==null||y.value.length>0),u=e.computed(()=>l.task.current_escalation_tier!==null&&!l.task.escalation_acknowledged_at),k=e.computed(()=>l.task.current_escalation_tier!==null),f=e.computed(()=>l.task.current_escalation_label??"Escalation");function b(){if(r.value.trim().length<5){s.value="Add a reason with at least 5 characters.";return}s.value=null,o("snooze",{taskId:l.task.id,hours:Math.max(1,Math.round(i.value)),reason:r.value.trim()}),n.value=!1,r.value=""}function c(d){switch(d.event_type){case"tier_fired":return d.tier_label??"Tier fired";case"acknowledged":return"Acknowledged";case"snoozed":return"Snoozed";case"suppressed":return"Queued for business hours";case"resolved":return"Resolved";case"rerouted":return"Rerouted";default:return d.event_type}}return(d,m)=>_.value?(e.openBlock(),e.createElementBlock("section",du,[e.createElementVNode("header",cu,[e.createElementVNode("div",null,[m[5]||(m[5]=e.createElementVNode("p",{class:"escalation-actions__eyebrow"},"Escalation",-1)),e.createElementVNode("div",uu,[e.createVNode(Ue,{tier:t.task.current_escalation_tier,"acknowledged-at":t.task.escalation_acknowledged_at,"snoozed-until":t.task.escalation_snoozed_until},null,8,["tier","acknowledged-at","snoozed-until"]),e.createElementVNode("span",mu,e.toDisplayString(f.value),1)])]),e.createElementVNode("div",pu,[e.createElementVNode("button",{type:"button","data-testid":"btn-acknowledge-escalation",disabled:(t.busy??!1)||!u.value,onClick:m[0]||(m[0]=E=>o("acknowledge",t.task.id))}," Acknowledge ",8,ku),e.createElementVNode("button",{type:"button","data-testid":"btn-snooze-escalation","aria-expanded":n.value,disabled:(t.busy??!1)||!k.value,onClick:m[1]||(m[1]=E=>n.value=!n.value)}," Snooze ",8,_u)])]),e.createElementVNode("dl",fu,[t.task.next_escalation_at?(e.openBlock(),e.createElementBlock("div",vu,[m[6]||(m[6]=e.createElementVNode("dt",null,"Next check",-1)),e.createElementVNode("dd",null,e.toDisplayString(e.unref(K)(t.task.next_escalation_at))+" · "+e.toDisplayString(e.unref(re)(t.task.next_escalation_at)),1)])):e.createCommentVNode("",!0),t.task.escalation_snoozed_until?(e.openBlock(),e.createElementBlock("div",yu,[m[7]||(m[7]=e.createElementVNode("dt",null,"Snoozed until",-1)),e.createElementVNode("dd",null,e.toDisplayString(e.unref(K)(t.task.escalation_snoozed_until)),1)])):e.createCommentVNode("",!0),t.task.escalation_acknowledged_at?(e.openBlock(),e.createElementBlock("div",gu,[m[8]||(m[8]=e.createElementVNode("dt",null,"Acknowledged",-1)),e.createElementVNode("dd",null,e.toDisplayString(e.unref(K)(t.task.escalation_acknowledged_at)),1)])):e.createCommentVNode("",!0)]),n.value?(e.openBlock(),e.createElementBlock("form",{key:0,class:"escalation-actions__snooze","data-testid":"form-snooze",onSubmit:e.withModifiers(b,["prevent"])},[e.createElementVNode("label",bu,[m[9]||(m[9]=e.createElementVNode("span",null,"Hours",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":m[2]||(m[2]=E=>i.value=E),type:"number","data-testid":"input-snooze-hours",min:"1",max:"168","aria-label":"Snooze duration in hours"},null,512),[[e.vModelText,i.value,void 0,{number:!0}]])]),e.createElementVNode("label",hu,[m[10]||(m[10]=e.createElementVNode("span",null,"Reason",-1)),e.withDirectives(e.createElementVNode("textarea",{"onUpdate:modelValue":m[3]||(m[3]=E=>r.value=E),rows:"3","data-testid":"input-snooze-reason",placeholder:"Explain why this alert can wait.","aria-label":"Snooze reason"},null,512),[[e.vModelText,r.value]])]),s.value?(e.openBlock(),e.createElementBlock("p",Eu,e.toDisplayString(s.value),1)):e.createCommentVNode("",!0),e.createElementVNode("div",wu,[e.createElementVNode("button",{type:"submit","data-testid":"btn-save-snooze",disabled:t.busy??!1},"Save snooze",8,Vu),e.createElementVNode("button",{type:"button","data-testid":"btn-cancel-snooze",class:"ghost",onClick:m[4]||(m[4]=E=>n.value=!1)},"Cancel")])],32)):e.createCommentVNode("",!0),y.value.length>0?(e.openBlock(),e.createElementBlock("ol",Nu,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(y.value,E=>(e.openBlock(),e.createElementBlock("li",{key:E.id,"data-testid":`item-escalation-event-${E.id}`},[e.createElementVNode("strong",null,e.toDisplayString(c(E)),1),e.createElementVNode("span",null,e.toDisplayString(e.unref(K)(E.created_at)),1),E.snooze_reason?(e.openBlock(),e.createElementBlock("small",Tu,e.toDisplayString(E.snooze_reason),1)):e.createCommentVNode("",!0)],8,$u))),128))])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)}}),ta=R(Bu,[["__scopeId","data-v-ae740e37"]]),Su={class:"task-checklist","data-testid":"panel-checklist"},Cu={class:"task-checklist__header"},Du={class:"task-checklist__meter","aria-hidden":"true"},Mu={class:"task-checklist__items","data-testid":"list-checklist-items"},Au=["data-testid"],Iu={class:"task-checklist__toggle"},Fu=["checked","disabled","aria-label","onChange"],Lu={class:"task-checklist__actions"},Ru=["aria-label","disabled","onClick"],zu=["aria-label","disabled","onClick"],Uu=["aria-label","disabled","onClick"],Wu=["disabled"],xu=["disabled"],Pu=e.defineComponent({__name:"TaskChecklist",props:{items:{},disabled:{type:Boolean}},emits:["toggle-item","add-item","remove-item","reorder-items"],setup(t,{emit:a}){const l=t,o=a,n=e.ref(""),i=e.computed(()=>l.items.filter(_=>_.is_completed).length),r=e.computed(()=>l.items.length===0?0:Math.round(i.value/l.items.length*100));function s(){n.value.trim()&&(o("add-item",n.value.trim()),n.value="")}function y(_,u){const k=_+u;if(k<0||k>=l.items.length)return;const f=[...l.items],[b]=f.splice(_,1);b&&(f.splice(k,0,b),o("reorder-items",f.map(c=>c.id)))}return(_,u)=>(e.openBlock(),e.createElementBlock("section",Su,[e.createElementVNode("header",Cu,[e.createElementVNode("div",null,[u[1]||(u[1]=e.createElementVNode("h3",null,"Checklist",-1)),e.createElementVNode("p",null,e.toDisplayString(i.value)+" of "+e.toDisplayString(t.items.length)+" complete",1)]),e.createElementVNode("div",Du,[e.createElementVNode("div",{class:"task-checklist__meter-fill",style:e.normalizeStyle({width:`${r.value}%`})},null,4)])]),e.createElementVNode("ul",Mu,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,(k,f)=>(e.openBlock(),e.createElementBlock("li",{key:k.id,"data-testid":`checklist-item-${k.id}`,class:"task-checklist__item"},[e.createElementVNode("label",Iu,[e.createElementVNode("input",{type:"checkbox",checked:k.is_completed,disabled:t.disabled,"aria-label":k.title,onChange:b=>o("toggle-item",k.id)},null,40,Fu),e.createElementVNode("span",{class:e.normalizeClass({done:k.is_completed})},e.toDisplayString(k.title),3)]),e.createElementVNode("div",Lu,[e.createElementVNode("button",{type:"button","aria-label":`Move '${k.title}' up`,disabled:t.disabled||f===0,onClick:b=>y(f,-1)},"↑",8,Ru),e.createElementVNode("button",{type:"button","aria-label":`Move '${k.title}' down`,disabled:t.disabled||f===t.items.length-1,onClick:b=>y(f,1)},"↓",8,zu),e.createElementVNode("button",{type:"button","aria-label":`Remove '${k.title}'`,disabled:t.disabled,onClick:b=>o("remove-item",k.id)},"Remove",8,Uu)])],8,Au))),128))]),e.createElementVNode("form",{class:"task-checklist__composer","data-testid":"form-add-checklist-item",onSubmit:e.withModifiers(s,["prevent"])},[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":u[0]||(u[0]=k=>n.value=k),type:"text","data-testid":"input-checklist-item",disabled:t.disabled,placeholder:"Add a checklist item"},null,8,Wu),[[e.vModelText,n.value]]),e.createElementVNode("button",{type:"submit","data-testid":"btn-add-checklist-item",disabled:t.disabled||!n.value.trim()},"Add",8,xu)],32)]))}}),aa=R(Pu,[["__scopeId","data-v-e4914d1f"]]),Ou={class:"task-comments","data-testid":"panel-comments"},Hu={class:"task-comments__list","data-testid":"list-comments"},ju=["data-testid"],Yu={class:"task-comments__meta"},qu={class:"task-comments__visibility"},Qu=["disabled"],Ku={class:"task-comments__controls"},Gu=["disabled"],Ju=["disabled"],Zu=e.defineComponent({__name:"TaskComments",props:{comments:{},disabled:{type:Boolean}},emits:["submit"],setup(t,{emit:a}){const l=t,o=a,n=e.ref(""),i=e.ref("team"),r=e.computed(()=>[...l.comments].sort((y,_)=>y.created_at.localeCompare(_.created_at)));function s(){n.value.trim()&&(o("submit",{content:n.value.trim(),visibility:i.value}),n.value="",i.value="team")}return(y,_)=>(e.openBlock(),e.createElementBlock("section",Ou,[e.createElementVNode("ul",Hu,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,u=>(e.openBlock(),e.createElementBlock("li",{key:u.id,"data-testid":`item-comment-${u.id}`,class:"task-comments__item"},[e.createElementVNode("div",Yu,[e.createElementVNode("strong",null,e.toDisplayString(u.author.name),1),e.createElementVNode("span",null,e.toDisplayString(e.unref(K)(u.created_at)),1),e.createElementVNode("span",qu,e.toDisplayString(u.visibility),1)]),e.createElementVNode("p",null,e.toDisplayString(u.content),1)],8,ju))),128))]),e.createElementVNode("form",{class:"task-comments__composer","data-testid":"form-comment",onSubmit:e.withModifiers(s,["prevent"])},[e.withDirectives(e.createElementVNode("textarea",{"onUpdate:modelValue":_[0]||(_[0]=u=>n.value=u),rows:"4","data-testid":"input-comment",disabled:t.disabled,placeholder:"Add a comment (basic markdown supported)","aria-label":"Comment text"},null,8,Qu),[[e.vModelText,n.value]]),e.createElementVNode("div",Ku,[e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":_[1]||(_[1]=u=>i.value=u),"data-testid":"select-comment-visibility",disabled:t.disabled,"aria-label":"Comment visibility"},[..._[2]||(_[2]=[e.createElementVNode("option",{value:"team"},"Team",-1),e.createElementVNode("option",{value:"private"},"Private",-1)])],8,Gu),[[e.vModelSelect,i.value]]),e.createElementVNode("button",{type:"submit","data-testid":"btn-post-comment",disabled:t.disabled||!n.value.trim()},"Post comment",8,Ju)])],32)]))}}),na=R(Zu,[["__scopeId","data-v-e18d15f3"]]),Xu={class:"task-time-tracker","data-testid":"task-time-tracker"},em={class:"task-time-tracker__header"},tm={"data-testid":"time-total"},am={class:"task-time-tracker__actions"},nm=["disabled"],lm=["disabled"],om=["disabled"],sm={key:0,class:"task-time-tracker__running","data-testid":"time-running-state"},im={key:1,class:"task-time-tracker__notice","data-testid":"time-switch-notice"},rm=["disabled"],dm=["disabled"],cm={class:"task-time-tracker__manual-description"},um=["disabled"],mm=["disabled"],pm={class:"task-time-tracker__entries","data-testid":"list-time-entries"},km=["data-testid"],_m={class:"task-time-tracker__entry-main"},fm={key:0},vm={key:1,class:"task-time-tracker__entry-live"},ym=["disabled","data-testid","onClick"],gm={key:0,class:"task-time-tracker__empty"},bm=e.defineComponent({__name:"TaskTimeTracker",props:{task:{},activeTimer:{},busy:{type:Boolean}},emits:["start-timer","stop-timer","add-manual-entry","delete-entry"],setup(t,{emit:a}){const l=t,o=a,n=e.ref("0"),i=e.ref("30"),r=e.ref(""),s=e.ref(!1),y=e.ref(Date.now());let _=null;const u=e.computed(()=>{var V;return l.task.time_entries.find(w=>w.is_running)??(((V=l.activeTimer)==null?void 0:V.task_id)===l.task.id&&l.activeTimer.is_running?l.activeTimer:null)}),k=e.computed(()=>l.activeTimer!==null&&l.activeTimer!==void 0&&l.activeTimer.task_id!==l.task.id&&l.activeTimer.is_running),f=e.computed(()=>l.task.time_entries.length===0?l.task.time_tracked_minutes??0:l.task.time_entries.reduce((V,w)=>{if(w.duration_minutes!==null)return V+w.duration_minutes;if(!w.started_at)return V;const v=new Date(w.started_at).getTime();return Number.isNaN(v)?V:V+Math.max(1,Math.floor((y.value-v)/6e4))},0)),b=e.computed(()=>{var w;if(!((w=u.value)!=null&&w.started_at))return 0;const V=new Date(u.value.started_at).getTime();return Number.isNaN(V)?0:Math.max(0,Math.floor((y.value-V)/1e3))}),c=e.computed(()=>[...l.task.time_entries].sort((V,w)=>{const v=w.started_at??w.created_at??"",I=V.started_at??V.created_at??"";return v.localeCompare(I)}));function d(){o("start-timer",l.task.id)}function m(){o("stop-timer",l.task.id)}function E(){const V=Number.parseInt(n.value,10),w=Number.parseInt(i.value,10),v=(Number.isNaN(V)?0:Math.max(0,V))*60+(Number.isNaN(w)?0:Math.max(0,w));v<=0||(o("add-manual-entry",{taskId:l.task.id,duration_minutes:v,description:r.value.trim()||null}),n.value="0",i.value="30",r.value="",s.value=!1)}function B(V){o("delete-entry",{taskId:l.task.id,entryId:V})}function N(V){if(V&&_===null){_=globalThis.setInterval(()=>{y.value=Date.now()},1e3);return}!V&&_!==null&&(globalThis.clearInterval(_),_=null)}function $(V){if(V<=0)return"0m";const w=Math.floor(V/60),v=V%60;return w===0?`${v}m`:v===0?`${w}h`:`${w}h ${v}m`}function h(V){const w=Math.floor(V/3600),v=Math.floor(V%3600/60),I=V%60;return[w,v,I].map(z=>String(z).padStart(2,"0")).join(":")}return e.watch(u,V=>{N(V!==null)},{immediate:!0}),e.onBeforeUnmount(()=>{N(!1)}),(V,w)=>(e.openBlock(),e.createElementBlock("section",Xu,[e.createElementVNode("header",em,[e.createElementVNode("div",null,[w[5]||(w[5]=e.createElementVNode("h3",null,"Time Tracking",-1)),e.createElementVNode("p",null,[w[4]||(w[4]=e.createTextVNode("Total logged: ",-1)),e.createElementVNode("strong",tm,e.toDisplayString($(f.value)),1)])]),e.createElementVNode("div",am,[u.value?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button","data-testid":"btn-stop-timer",disabled:t.busy??!1,onClick:m}," Stop timer ",8,nm)):(e.openBlock(),e.createElementBlock("button",{key:1,type:"button","data-testid":"btn-start-timer",disabled:t.busy??!1,onClick:d},e.toDisplayString(k.value?"Switch timer here":"Start timer"),9,lm)),e.createElementVNode("button",{type:"button","data-testid":"btn-toggle-manual-entry",disabled:t.busy??!1,onClick:w[0]||(w[0]=v=>s.value=!s.value)},e.toDisplayString(s.value?"Close manual entry":"Add manual entry"),9,om)])]),u.value?(e.openBlock(),e.createElementBlock("p",sm," Running now: "+e.toDisplayString(h(b.value)),1)):k.value?(e.openBlock(),e.createElementBlock("p",im," Starting a timer here will stop your other active timer automatically. ")):e.createCommentVNode("",!0),s.value?(e.openBlock(),e.createElementBlock("form",{key:2,class:"task-time-tracker__manual","data-testid":"form-manual-time-entry",onSubmit:e.withModifiers(E,["prevent"])},[e.createElementVNode("label",null,[w[6]||(w[6]=e.createElementVNode("span",null,"Hours",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":w[1]||(w[1]=v=>n.value=v),type:"number",min:"0",step:"1",inputmode:"numeric","data-testid":"input-manual-hours",disabled:t.busy??!1},null,8,rm),[[e.vModelText,n.value]])]),e.createElementVNode("label",null,[w[7]||(w[7]=e.createElementVNode("span",null,"Minutes",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":w[2]||(w[2]=v=>i.value=v),type:"number",min:"0",max:"59",step:"1",inputmode:"numeric","data-testid":"input-manual-minutes",disabled:t.busy??!1},null,8,dm),[[e.vModelText,i.value]])]),e.createElementVNode("label",cm,[w[8]||(w[8]=e.createElementVNode("span",null,"Description",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":w[3]||(w[3]=v=>r.value=v),type:"text",maxlength:"500","data-testid":"input-manual-description",placeholder:"Optional note",disabled:t.busy??!1},null,8,um),[[e.vModelText,r.value]])]),e.createElementVNode("button",{type:"submit","data-testid":"btn-submit-manual-entry",disabled:t.busy??!1}," Save time entry ",8,mm)],32)):e.createCommentVNode("",!0),e.createElementVNode("ul",pm,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,v=>{var I;return e.openBlock(),e.createElementBlock("li",{key:v.id,class:"task-time-tracker__entry","data-testid":`time-entry-${v.id}`},[e.createElementVNode("div",_m,[e.createElementVNode("strong",null,e.toDisplayString(v.is_manual?"Manual entry":"Timer session"),1),e.createElementVNode("span",null,e.toDisplayString(((I=v.user)==null?void 0:I.name)??v.user_id),1),e.createElementVNode("span",null,e.toDisplayString($(v.duration_minutes??0)),1),e.createElementVNode("span",null,e.toDisplayString(e.unref(K)(v.started_at)),1),v.description?(e.openBlock(),e.createElementBlock("span",fm,e.toDisplayString(v.description),1)):e.createCommentVNode("",!0),v.is_running?(e.openBlock(),e.createElementBlock("span",vm,"Running")):e.createCommentVNode("",!0)]),v.is_running?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"task-time-tracker__delete",disabled:t.busy??!1,"data-testid":`btn-delete-time-entry-${v.id}`,onClick:z=>B(v.id)}," Delete ",8,ym))],8,km)}),128)),c.value.length===0?(e.openBlock(),e.createElementBlock("li",gm," No time entries yet. ")):e.createCommentVNode("",!0)])]))}}),la=R(bm,[["__scopeId","data-v-abd36333"]]),hm={class:"task-timeline","data-testid":"panel-activity"},Em={class:"task-timeline__list","data-testid":"list-activity"},wm=["data-testid"],Vm=e.defineComponent({__name:"TaskTimeline",props:{logs:{},canLoadMore:{type:Boolean}},emits:["load-more"],setup(t,{emit:a}){const l=a;return(o,n)=>(e.openBlock(),e.createElementBlock("section",hm,[e.createElementVNode("ol",Em,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.logs,i=>{var r;return e.openBlock(),e.createElementBlock("li",{key:i.id,"data-testid":`item-activity-${i.id}`,class:"task-timeline__item"},[n[1]||(n[1]=e.createElementVNode("span",{class:"task-timeline__icon","aria-hidden":"true"},"•",-1)),e.createElementVNode("div",null,[e.createElementVNode("p",null,[e.createElementVNode("strong",null,e.toDisplayString(((r=i.user)==null?void 0:r.name)??"System"),1),e.createTextVNode(" "+e.toDisplayString(e.unref(zt)(i)),1)]),e.createElementVNode("small",null,e.toDisplayString(e.unref(K)(i.created_at)),1)])],8,wm)}),128))]),t.canLoadMore?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button","data-testid":"btn-load-more-activity",class:"task-timeline__more",onClick:n[0]||(n[0]=i=>l("load-more"))}," Load more ")):e.createCommentVNode("",!0)]))}}),oa=R(Vm,[["__scopeId","data-v-51877f49"]]),Nm=["data-task-id"],$m={class:"task-detail__header","data-testid":"task-detail-header"},Tm={class:"task-detail__identity"},Bm={class:"task-detail__number"},Sm={class:"task-detail__badges"},Cm={class:"task-detail__actions"},Dm=["disabled"],Mm=["disabled"],Am=["disabled"],Im=["disabled"],Fm=["disabled"],Lm={class:"task-detail__layout"},Rm={class:"task-detail__main"},zm={class:"task-detail__description","data-testid":"task-description"},Um={class:"task-detail__tabs","aria-label":"Task detail sections"},Wm=["aria-pressed"],xm=["aria-pressed"],Pm=["aria-pressed"],Om=["aria-pressed"],Hm={key:2,class:"task-detail__relations","data-testid":"panel-relations"},jm={"data-testid":"list-relations"},Ym=["data-testid"],qm={key:0},Qm={class:"task-detail__sidebar","data-testid":"task-sidebar"},Km=e.defineComponent({__name:"TaskDetail",props:{task:{},activeTimer:{},busy:{type:Boolean}},emits:["complete","reopen","cancel","edit","delete","acknowledge-escalation","snooze-escalation","submit-comment","add-checklist-item","toggle-checklist-item","remove-checklist-item","reorder-checklist-items","start-timer","stop-timer","add-manual-time-entry","delete-time-entry"],setup(t,{emit:a}){const l=t,o=a,n=e.ref("comments"),i=e.computed(()=>{var r;return((r=l.task)==null?void 0:r.relations)??[]});return(r,s)=>{var y;return t.task?(e.openBlock(),e.createElementBlock("section",{key:0,class:"task-detail","data-task-id":t.task.id},[e.createElementVNode("header",$m,[e.createElementVNode("div",Tm,[e.createElementVNode("span",Bm,e.toDisplayString(t.task.display_number_formatted),1),e.createElementVNode("h2",null,e.toDisplayString(t.task.title),1),e.createElementVNode("div",Sm,[e.createVNode(Ue,{tier:t.task.current_escalation_tier??null,"acknowledged-at":t.task.escalation_acknowledged_at??null,"snoozed-until":t.task.escalation_snoozed_until??null},null,8,["tier","acknowledged-at","snoozed-until"]),e.createVNode(ge,{status:t.task.status,"data-testid":"status-badge"},null,8,["status"]),e.createVNode(ye,{priority:t.task.priority,"data-testid":"priority-badge"},null,8,["priority"])])]),e.createElementVNode("div",Cm,[e.createElementVNode("button",{type:"button","data-testid":"btn-complete-task",disabled:t.busy??!1,onClick:s[0]||(s[0]=_=>o("complete",t.task.id))},"Complete",8,Dm),e.createElementVNode("button",{type:"button","data-testid":"btn-reopen-task",disabled:t.busy??!1,onClick:s[1]||(s[1]=_=>o("reopen",t.task.id))},"Reopen",8,Mm),e.createElementVNode("button",{type:"button","data-testid":"btn-cancel-task",disabled:t.busy??!1,onClick:s[2]||(s[2]=_=>o("cancel",t.task.id))},"Cancel",8,Am),e.createElementVNode("button",{type:"button","data-testid":"btn-edit-task",disabled:t.busy??!1,onClick:s[3]||(s[3]=_=>o("edit",t.task.id))},"Edit",8,Im),e.createElementVNode("button",{type:"button","data-testid":"btn-delete-task",class:"danger",disabled:t.busy??!1,onClick:s[4]||(s[4]=_=>o("delete",t.task.id))},"Delete",8,Fm)])]),e.createElementVNode("div",Lm,[e.createElementVNode("article",Rm,[e.createVNode(ta,{task:t.task,busy:t.busy??!1,onAcknowledge:s[5]||(s[5]=_=>o("acknowledge-escalation",_)),onSnooze:s[6]||(s[6]=_=>o("snooze-escalation",_))},null,8,["task","busy"]),e.createElementVNode("section",zm,[s[20]||(s[20]=e.createElementVNode("h3",null,"Description",-1)),e.createElementVNode("p",null,e.toDisplayString(t.task.description||"No description yet."),1)]),e.createVNode(la,{task:t.task,"active-timer":t.activeTimer??null,busy:t.busy??!1,onStartTimer:s[7]||(s[7]=_=>o("start-timer",_)),onStopTimer:s[8]||(s[8]=_=>o("stop-timer",_)),onAddManualEntry:s[9]||(s[9]=_=>o("add-manual-time-entry",_)),onDeleteEntry:s[10]||(s[10]=_=>o("delete-time-entry",_))},null,8,["task","active-timer","busy"]),e.createElementVNode("nav",Um,[e.createElementVNode("button",{type:"button","data-testid":"tab-comments",class:e.normalizeClass({active:n.value==="comments"}),"aria-pressed":n.value==="comments",onClick:s[11]||(s[11]=_=>n.value="comments")},"Comments",10,Wm),e.createElementVNode("button",{type:"button","data-testid":"tab-checklist",class:e.normalizeClass({active:n.value==="checklist"}),"aria-pressed":n.value==="checklist",onClick:s[12]||(s[12]=_=>n.value="checklist")},"Checklist",10,xm),e.createElementVNode("button",{type:"button","data-testid":"tab-relations",class:e.normalizeClass({active:n.value==="relations"}),"aria-pressed":n.value==="relations",onClick:s[13]||(s[13]=_=>n.value="relations")},"Relations",10,Pm),e.createElementVNode("button",{type:"button","data-testid":"tab-activity",class:e.normalizeClass({active:n.value==="activity"}),"aria-pressed":n.value==="activity",onClick:s[14]||(s[14]=_=>n.value="activity")},"Activity",10,Om)]),n.value==="comments"?(e.openBlock(),e.createBlock(na,{key:0,comments:t.task.comments,disabled:t.busy??!1,onSubmit:s[15]||(s[15]=_=>o("submit-comment",_))},null,8,["comments","disabled"])):n.value==="checklist"?(e.openBlock(),e.createBlock(aa,{key:1,items:t.task.checklist_items,disabled:t.busy??!1,onToggleItem:s[16]||(s[16]=_=>o("toggle-checklist-item",_)),onAddItem:s[17]||(s[17]=_=>o("add-checklist-item",_)),onRemoveItem:s[18]||(s[18]=_=>o("remove-checklist-item",_)),onReorderItems:s[19]||(s[19]=_=>o("reorder-checklist-items",_))},null,8,["items","disabled"])):n.value==="relations"?(e.openBlock(),e.createElementBlock("section",Hm,[e.createElementVNode("ul",jm,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,_=>(e.openBlock(),e.createElementBlock("li",{key:_.id,"data-testid":`item-relation-${_.id}`},[e.createElementVNode("strong",null,e.toDisplayString(_.type),1),_.related_task?(e.openBlock(),e.createElementBlock("span",qm,e.toDisplayString(_.related_task.display_number_formatted)+" · "+e.toDisplayString(_.related_task.title),1)):e.createCommentVNode("",!0)],8,Ym))),128))])])):(e.openBlock(),e.createBlock(oa,{key:3,logs:t.task.activity_logs},null,8,["logs"]))]),e.createElementVNode("aside",Qm,[e.createElementVNode("dl",null,[e.createElementVNode("div",null,[s[21]||(s[21]=e.createElementVNode("dt",null,"Assignee",-1)),e.createElementVNode("dd",null,e.toDisplayString(((y=t.task.primary_assignee)==null?void 0:y.name)??"Unassigned"),1)]),e.createElementVNode("div",null,[s[22]||(s[22]=e.createElementVNode("dt",null,"Due date",-1)),e.createElementVNode("dd",null,e.toDisplayString(e.unref(K)(t.task.due_at)),1)]),e.createElementVNode("div",null,[s[23]||(s[23]=e.createElementVNode("dt",null,"Source",-1)),e.createElementVNode("dd",null,e.toDisplayString(t.task.source),1)]),e.createElementVNode("div",null,[s[24]||(s[24]=e.createElementVNode("dt",null,"Linked entity",-1)),e.createElementVNode("dd",null,e.toDisplayString(t.task.taskable_type??"None")+" "+e.toDisplayString(t.task.taskable_id??""),1)]),e.createElementVNode("div",null,[s[25]||(s[25]=e.createElementVNode("dt",null,"Tags",-1)),e.createElementVNode("dd",null,e.toDisplayString(t.task.tags.map(_=>_.name).join(", ")||"No tags"),1)])])])])],8,Nm)):e.createCommentVNode("",!0)}}}),sa=R(Km,[["__scopeId","data-v-89e442ec"]]),Gm={class:"task-form__grid"},Jm={class:"task-form__field task-form__field--wide"},Zm=["disabled"],Xm={key:0,class:"task-form__field"},ep=["disabled"],tp=["value"],ap={class:"task-form__field"},np=["disabled"],lp={class:"task-form__field"},op=["disabled"],sp={class:"task-form__field"},ip=["disabled"],rp={class:"task-form__field task-form__field--wide"},dp=["disabled"],cp={class:"task-form__field task-form__field--wide"},up=["disabled"],mp={class:"task-form__checklist","data-testid":"panel-form-checklist"},pp=["data-testid"],kp=["onUpdate:modelValue","data-testid","disabled","placeholder"],_p=["data-testid","aria-label","onClick"],fp={class:"task-form__actions"},vp=["disabled"],yp=e.defineComponent({__name:"TaskForm",props:{task:{},templates:{},entityContext:{},submitting:{type:Boolean},mode:{}},emits:["submit","cancel","template-change"],setup(t,{emit:a}){const l=t,o=a,n=e.reactive({title:"",description:"",templateId:"",priority:"none",primary_assignee_id:"",due_at:"",tags:"",checklist:[]}),i=e.computed(()=>l.templates??[]),r=e.computed(()=>l.mode??"create"),s=e.computed(()=>r.value==="edit"?"Save task":"Create task");function y(c){return c.flatMap(d=>{const m=y(d.children);return d.type==="checklist"?[d.title,...m]:m})}function _(){var c,d,m,E,B,N,$,h,V,w;n.title=((c=l.task)==null?void 0:c.title)??"",n.description=((d=l.task)==null?void 0:d.description)??"",n.priority=((m=l.task)==null?void 0:m.priority)??"none",n.primary_assignee_id=String(((B=(E=l.task)==null?void 0:E.primary_assignee)==null?void 0:B.id)??""),n.due_at=(N=l.task)!=null&&N.due_at?l.task.due_at.slice(0,10):"",n.tags=((h=($=l.task)==null?void 0:$.tags)==null?void 0:h.map(v=>v.name).join(", "))??"",n.checklist=((w=(V=l.task)==null?void 0:V.checklist_items)==null?void 0:w.map(v=>v.title))??[]}e.watch(()=>l.task,()=>{_()},{immediate:!0});function u(c){if(n.templateId=c,o("template-change",c||null),!c||r.value==="edit")return;const d=i.value.find(m=>m.id===c);d&&(n.title=d.default_title,n.description=d.default_description??"",n.priority=d.default_priority,n.tags=(d.tags??[]).join(", "),n.checklist=d.items?y(d.items):[])}function k(){n.checklist.push("")}function f(c){n.checklist.splice(c,1)}function b(){var c,d;n.title.trim()&&o("submit",{title:n.title.trim(),description:n.description.trim()||null,priority:n.priority,primary_assignee_id:n.primary_assignee_id||null,due_at:n.due_at||null,taskable_type:((c=l.entityContext)==null?void 0:c.type)??null,taskable_id:((d=l.entityContext)==null?void 0:d.id)??null,tags:n.tags.split(",").map(m=>m.trim()).filter(Boolean),checklist_items:n.checklist.map((m,E)=>({title:m.trim(),position:E})).filter(m=>m.title.length>0)})}return(c,d)=>(e.openBlock(),e.createElementBlock("form",{class:"task-form","data-testid":"form-task",onSubmit:e.withModifiers(b,["prevent"])},[e.createElementVNode("div",Gm,[e.createElementVNode("label",Jm,[d[9]||(d[9]=e.createElementVNode("span",null,"Title",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":d[0]||(d[0]=m=>n.title=m),type:"text","data-testid":"input-task-title",disabled:t.submitting,required:""},null,8,Zm),[[e.vModelText,n.title]])]),r.value==="create"?(e.openBlock(),e.createElementBlock("label",Xm,[d[11]||(d[11]=e.createElementVNode("span",null,"Template",-1)),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":d[1]||(d[1]=m=>n.templateId=m),"data-testid":"select-task-template",disabled:t.submitting,onChange:d[2]||(d[2]=m=>u(n.templateId))},[d[10]||(d[10]=e.createElementVNode("option",{value:""},"No template",-1)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,m=>(e.openBlock(),e.createElementBlock("option",{key:m.id,value:m.id},e.toDisplayString(m.name),9,tp))),128))],40,ep),[[e.vModelSelect,n.templateId]])])):e.createCommentVNode("",!0),e.createElementVNode("label",ap,[d[13]||(d[13]=e.createElementVNode("span",null,"Priority",-1)),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":d[3]||(d[3]=m=>n.priority=m),"data-testid":"select-task-priority",disabled:t.submitting},[...d[12]||(d[12]=[e.createStaticVNode('<option value="none" data-v-103fda97>None</option><option value="low" data-v-103fda97>Low</option><option value="medium" data-v-103fda97>Medium</option><option value="high" data-v-103fda97>High</option><option value="urgent" data-v-103fda97>Urgent</option><option value="critical" data-v-103fda97>Critical</option>',6)])],8,np),[[e.vModelSelect,n.priority]])]),e.createElementVNode("label",lp,[d[14]||(d[14]=e.createElementVNode("span",null,"Assignee ID",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":d[4]||(d[4]=m=>n.primary_assignee_id=m),type:"text","data-testid":"input-task-assignee",disabled:t.submitting},null,8,op),[[e.vModelText,n.primary_assignee_id]])]),e.createElementVNode("label",sp,[d[15]||(d[15]=e.createElementVNode("span",null,"Due date",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":d[5]||(d[5]=m=>n.due_at=m),type:"date","data-testid":"input-task-due-date",disabled:t.submitting},null,8,ip),[[e.vModelText,n.due_at]])]),e.createElementVNode("label",rp,[d[16]||(d[16]=e.createElementVNode("span",null,"Tags",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":d[6]||(d[6]=m=>n.tags=m),type:"text","data-testid":"input-task-tags",disabled:t.submitting,placeholder:"ops, warehouse"},null,8,dp),[[e.vModelText,n.tags]])]),e.createElementVNode("label",cp,[d[17]||(d[17]=e.createElementVNode("span",null,"Description",-1)),e.withDirectives(e.createElementVNode("textarea",{"onUpdate:modelValue":d[7]||(d[7]=m=>n.description=m),rows:"5","data-testid":"input-task-description",disabled:t.submitting},null,8,up),[[e.vModelText,n.description]])])]),e.createElementVNode("section",mp,[e.createElementVNode("div",{class:"task-form__checklist-header"},[d[18]||(d[18]=e.createElementVNode("h3",null,"Checklist items",-1)),e.createElementVNode("button",{type:"button","data-testid":"btn-add-checklist-row",onClick:k},"Add item")]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.checklist,(m,E)=>(e.openBlock(),e.createElementBlock("div",{key:`${E}-${m}`,"data-testid":`checklist-row-${E}`,class:"task-form__checklist-row"},[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":B=>n.checklist[E]=B,type:"text","data-testid":`input-checklist-row-${E}`,disabled:t.submitting,placeholder:`Checklist item ${E+1}`},null,8,kp),[[e.vModelText,n.checklist[E]]]),e.createElementVNode("button",{type:"button","data-testid":`btn-remove-checklist-row-${E}`,"aria-label":`Remove checklist item ${E+1}`,onClick:B=>f(E)},"Remove",8,_p)],8,pp))),128))]),e.createElementVNode("footer",fp,[e.createElementVNode("button",{type:"button","data-testid":"btn-cancel-task-form",class:"secondary",onClick:d[8]||(d[8]=m=>o("cancel"))},"Cancel"),e.createElementVNode("button",{type:"submit","data-testid":"btn-submit-task-form",disabled:t.submitting||!n.title.trim()},e.toDisplayString(s.value),9,vp)])],32))}}),gp=R(yp,[["__scopeId","data-v-103fda97"]]),bp={class:"task-detail-page","data-testid":"page-task-detail"},hp={class:"task-detail-page__header"},Ep={key:0,class:"task-detail-page__loading","data-testid":"status-task-loading"},wp={key:1,class:"task-detail-page__error",role:"alert","data-testid":"status-task-error"},Vp=e.defineComponent({__name:"TaskDetailPage",props:{taskId:{}},emits:["navigate-back","task-deleted","edit-task"],setup(t,{emit:a}){const l=t,o=a,n=At(e.toRef(l,"taskId")),i=e.ref(!1);async function r(v){i.value=!0;try{await v()}finally{i.value=!1}}function s(v){r(()=>n.completeTask(v))}function y(v){r(()=>n.reopenTask(v))}function _(v){r(()=>n.cancelTask(v))}async function u(v){i.value=!0;try{await n.deleteTask(v),o("task-deleted",v)}finally{i.value=!1}}function k(v){o("edit-task",v)}function f(v){r(()=>n.addComment(v))}function b(v){r(()=>n.addChecklistItem(v))}function c(v){n.toggleChecklistItem(v)}function d(v){n.removeChecklistItem(v)}function m(){r(()=>n.acknowledgeEscalation())}function E(v){r(()=>n.snoozeEscalation(v))}function B(v){}function N(v){r(()=>n.startTimer(v))}function $(v){r(()=>n.stopTimer(v))}function h(v){r(()=>n.addManualTimeEntry(v,v.taskId))}function V(v){r(()=>n.deleteTimeEntry(v.entryId,v.taskId))}function w(){n.loadTask(l.taskId)}return(v,I)=>(e.openBlock(),e.createElementBlock("div",bp,[e.createElementVNode("div",hp,[e.createElementVNode("button",{type:"button",class:"task-detail-page__back","data-testid":"btn-back-to-tasks",onClick:I[0]||(I[0]=z=>o("navigate-back"))}," ← Back to Tasks ")]),e.unref(n).loading.value?(e.openBlock(),e.createElementBlock("div",Ep," Loading task... ")):e.unref(n).error.value?(e.openBlock(),e.createElementBlock("div",wp,[e.createElementVNode("p",null,e.toDisplayString(e.unref(n).error.value),1),e.createElementVNode("button",{type:"button","data-testid":"btn-retry-load",onClick:w},"Retry")])):e.unref(n).task.value?(e.openBlock(),e.createBlock(sa,{key:2,task:e.unref(n).task.value,"active-timer":e.unref(n).activeTimer.value,busy:i.value,onComplete:s,onReopen:y,onCancel:_,onDelete:u,onEdit:k,onSubmitComment:f,onAddChecklistItem:b,onToggleChecklistItem:c,onRemoveChecklistItem:d,onReorderChecklistItems:B,onStartTimer:N,onStopTimer:$,onAddManualTimeEntry:h,onDeleteTimeEntry:V,onAcknowledgeEscalation:m,onSnoozeEscalation:E},null,8,["task","active-timer","busy"])):e.createCommentVNode("",!0)]))}}),Np=R(Vp,[["__scopeId","data-v-81b22b16"]]),$p={class:"task-list-page","data-testid":"page-task-list"},Tp=e.defineComponent({__name:"TaskListPage",props:{entityContext:{}},emits:["navigate-to-task"],setup(t,{emit:a}){const l=a,o=ve(),{filters:n,setFilters:i}=It(),r=Ft(),s=e.ref(!1),y=e.ref(!1);function _(w,v="task-engine-export.csv"){if(typeof window>"u")return;const I=new Blob([w],{type:"text/csv;charset=utf-8"}),z=window.URL.createObjectURL(I),P=document.createElement("a");P.href=z,P.download=v,P.click(),window.URL.revokeObjectURL(z)}async function u(){await o.fetchTasks(n.value)}function k(w){i(w),u()}function f(w){i({...n.value,page:w}),u()}function b(w){l("navigate-to-task",w)}function c(){s.value=!s.value}async function d(w){y.value=!0;try{await o.createTask(w),s.value=!1,await u()}finally{y.value=!1}}async function m(w){y.value=!0;try{await o.instantiateTemplate(w,{}),s.value=!1,await u()}finally{y.value=!1}}async function E(){const w=prompt("Filter name:");w&&await r.saveCurrentFilter({name:w})}async function B(w){const v=r.savedFilters.value.find(I=>I.id===w);v&&(r.applySavedFilter(v),await u())}async function N(w){await r.deleteSavedFilter(w)}async function $(w){await o.runBulkAction(w.taskIds,w.action,w.params),await u()}async function h(){const w=await o.exportTasks(n.value);_(w)}async function V(w){await o.importTasks(w),await u()}return e.onMounted(async()=>{await Promise.all([u(),r.loadSavedFilters()])}),(w,v)=>(e.openBlock(),e.createElementBlock("div",$p,[e.createVNode(ea,{busy:e.unref(o).loading,importing:e.unref(o).importLoading,exporting:e.unref(o).exportLoading,result:e.unref(o).importResult,onExport:h,onImport:V},null,8,["busy","importing","exporting","result"]),s.value?(e.openBlock(),e.createBlock(it,{key:0,busy:y.value,"entity-context":t.entityContext??null,"data-testid":"panel-quick-create",onSubmit:d,onInstantiateTemplate:m},null,8,["busy","entity-context"])):e.createCommentVNode("",!0),e.createVNode(Xt,{tasks:e.unref(o).tasks,filters:e.unref(n),pagination:e.unref(o).pagination,loading:e.unref(o).loading,"saved-filters":e.unref(r).savedFilters.value,"active-saved-filter-id":e.unref(r).activeSavedFilterId.value,"bulk-busy":e.unref(o).bulkLoading,"bulk-result":e.unref(o).bulkResult,onSelectTask:b,"onUpdate:filters":k,onPageChange:f,onQuickCreate:c,onSaveFilter:E,onApplySavedFilter:B,onDeleteSavedFilter:N,onBulkAction:$},null,8,["tasks","filters","pagination","loading","saved-filters","active-saved-filter-id","bulk-busy","bulk-result"])]))}}),Bp=R(Tp,[["__scopeId","data-v-efe9ec9d"]]),Sp={class:"task-dashboard-page","data-testid":"page-task-dashboard"},Cp=e.defineComponent({__name:"TaskDashboardPage",props:{userId:{},echo:{},autoConnect:{type:Boolean}},emits:["navigate-to-task"],setup(t,{emit:a}){const l=a;function o(n){l("navigate-to-task",n)}return(n,i)=>(e.openBlock(),e.createElementBlock("div",Sp,[e.createVNode(qt,{"user-id":t.userId,echo:t.echo,"auto-connect":t.autoConnect??!0,onSelectTask:o},null,8,["user-id","echo","auto-connect"])]))}}),Dp=R(Cp,[["__scopeId","data-v-3d67a330"]]),Mp={class:"task-recurring-page","data-testid":"page-task-recurring"},Ap=e.defineComponent({__name:"TaskRecurringPage",emits:["navigate-to-task"],setup(t,{emit:a}){const l=a,o=Lt(),n=e.ref(!1),i=e.ref(null),r=e.ref(""),s=e.ref(!1);function y(){i.value=null,n.value=!0}function _(m){const E=o.templates.value.find(B=>B.id===m);i.value=E??null,n.value=!0}function u(){n.value=!1,i.value=null}async function k(m){i.value?await o.updateTemplate(i.value.id,m):await o.createTemplate(m),o.error.value||u()}async function f(m){await o.pauseTemplate(m)}async function b(m){await o.resumeTemplate(m)}async function c(m){await o.deleteTemplate(m)}async function d(m){const E=await o.generateFromTemplate(m);E&&l("navigate-to-task",E.id)}return e.onMounted(()=>{o.loadTemplates()}),(m,E)=>(e.openBlock(),e.createElementBlock("div",Mp,[e.createElementVNode("header",{class:"task-recurring-page__header"},[E[2]||(E[2]=e.createElementVNode("div",null,[e.createElementVNode("h2",null,"Recurring Tasks"),e.createElementVNode("p",null,"Manage recurring task schedules")],-1)),e.createElementVNode("button",{type:"button","data-testid":"btn-create-recurring",onClick:y}," Create recurring task ")]),n.value?(e.openBlock(),e.createBlock(Gt,{key:0,recurring:i.value,submitting:e.unref(o).saving.value,mode:i.value?"edit":"create",onSubmit:k,onCancel:u},null,8,["recurring","submitting","mode"])):e.createCommentVNode("",!0),e.createVNode(Jt,{templates:e.unref(o).templates.value,loading:e.unref(o).loading.value,search:r.value,"include-inactive":s.value,onEdit:_,onPause:f,onResume:b,onRemove:c,onGenerate:d,"onUpdate:search":E[0]||(E[0]=B=>r.value=B),"onUpdate:includeInactive":E[1]||(E[1]=B=>s.value=B)},null,8,["templates","loading","search","include-inactive"])]))}}),Ip=R(Ap,[["__scopeId","data-v-05bfaa2f"]]);exports.EscalationActions=ta;exports.EscalationBadge=Ue;exports.MyStatsWidget=Rt;exports.MyTasksToday=xt;exports.OverdueTracker=Pt;exports.RecurringTemplateForm=Gt;exports.RecurringTemplateList=Jt;exports.TaskBoardView=Do;exports.TaskBulkActionBar=Qt;exports.TaskCalendarView=ms;exports.TaskCard=st;exports.TaskChecklist=aa;exports.TaskComments=na;exports.TaskDashboard=qt;exports.TaskDashboardPage=Dp;exports.TaskDetailPage=Np;exports.TaskDetailView=sa;exports.TaskEntityWidget=Yc;exports.TaskFilterBar=Kt;exports.TaskForm=gp;exports.TaskHealthAlerts=Ot;exports.TaskImportExportPanel=ea;exports.TaskListPage=Bp;exports.TaskListView=Xt;exports.TaskNotificationToast=ru;exports.TaskPriorityIcon=ye;exports.TaskQuickCreate=it;exports.TaskRecurringPage=Ip;exports.TaskSavedFilterTabs=Zt;exports.TaskStatusBadge=ge;exports.TaskTimeTracker=la;exports.TaskTimeline=oa;exports.TeamActivityFeed=Ht;exports.UpcomingThisWeek=jt;exports.WidgetGrid=Yt;exports.WorkflowForm=Yd;exports.WorkflowList=pc;exports.WorkflowLogs=$c;exports.createTaskApi=et;exports.getTaskApi=T;exports.resetTaskApi=Aa;exports.setTaskApi=Ma;exports.taskApi=Ia;exports.useRecurringTemplates=Lt;exports.useTaskDashboard=Mt;exports.useTaskDetail=At;exports.useTaskFilters=It;exports.useTaskListStore=at;exports.useTaskNotificationFeed=lt;exports.useTaskPresence=sn;exports.useTaskSavedFilters=Ft;exports.useTaskStore=ve;exports.useTaskWebSocket=Dt;exports.useTaskWorkflowStore=ht;exports.useTaskWorkflows=rn;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const Ba=require("axios"),lt=require("pinia"),e=require("vue"),Sa="/api/task-engine/v1";function fe(t,a){return a===void 0?{}:{[t]:a}}function Ca(t){return typeof t=="object"&&t!==null&&"id"in t&&"name"in t}function X(t,a){if(t==null||t==="")return null;if(Ca(t))return t;if(typeof t=="string"||typeof t=="number")return{id:t,name:a??String(t)};if(typeof t=="object"&&t!==null){const l=t,o=l.id??l.user_id,n=l.name??l.email??o,i=typeof l.avatar_url=="string"?l.avatar_url:void 0;if(o!==void 0&&n!==void 0)return{id:o,name:String(n),...fe("avatar_url",i)}}return null}function wt(t){return{id:t.id,name:t.name,color:t.color,...fe("created_at",t.created_at),...fe("updated_at",t.updated_at)}}function Et(t){return t==null?null:{open_tasks:Number(t.open_tasks??0),overdue_tasks:Number(t.overdue_tasks??0),blocked_tasks:Number(t.blocked_tasks??0),urgent_tasks:Number(t.urgent_tasks??0),critical_tasks:Number(t.critical_tasks??0),workload_score:Number(t.workload_score??0),workload_status:t.workload_status??"light",workload_summary:typeof t.workload_summary=="string"&&t.workload_summary.trim()!==""?t.workload_summary:"No active tasks"}}function Da(t){const a=typeof t.position=="string"&&t.position.trim()!==""?t.position.trim():null,l=typeof t.department=="string"&&t.department.trim()!==""?t.department.trim():null,o=typeof t.subtitle=="string"&&t.subtitle.trim()!==""?t.subtitle.trim():a??l??(typeof t.email=="string"&&t.email.trim()!==""?t.email.trim():null),n=typeof t.label=="string"&&t.label.trim()!==""?t.label.trim():o===null?t.name:`${t.name} - ${o}`;return{id:String(t.id),name:t.name,email:typeof t.email=="string"&&t.email.trim()!==""?t.email.trim():null,label:n,subtitle:o,department:l,position:a,role_names:Array.isArray(t.role_names)?t.role_names.filter(i=>typeof i=="string"&&i.trim()!==""):[],workload:Et(t.workload)}}function Ma(t){return{user_id:String(t.user_id),user_name:t.user_name,avg_completion_time_hours:typeof t.avg_completion_time_hours=="number"?t.avg_completion_time_hours:null,team_id:typeof t.team_id=="string"&&t.team_id.trim()!==""?t.team_id:null,...Et(t)}}function Aa(t){return{scope:t.scope??"tenant",total_open:Number(t.total_open??0),total_overdue:Number(t.total_overdue??0),total_blocked:Number(t.total_blocked??0),by_priority:t.by_priority??{},by_status:t.by_status??{},top_overdue_tasks:Array.isArray(t.top_overdue_tasks)?t.top_overdue_tasks.map(a=>({id:a.id,display_number_formatted:a.display_number_formatted,title:a.title,priority:a.priority??"none",status:a.status,due_at:a.due_at??null,current_escalation_tier:a.current_escalation_tier??null})):[],stale_tasks:Array.isArray(t.stale_tasks)?t.stale_tasks.map(a=>({id:a.id,display_number_formatted:a.display_number_formatted,title:a.title,status:a.status,updated_at:a.updated_at??null})):[],workload_per_user:Array.isArray(t.workload_per_user)?t.workload_per_user.map(Ma):[]}}function We(t){return{id:t.id,...fe("task_id",t.task_id),title:t.title,is_completed:t.is_completed,completed_at:t.completed_at,completed_by:X(t.completed_by),position:t.position,template_item_id:t.template_item_id??null}}function Ia(t){return{id:t.id,tenant_id:t.tenant_id,display_number:Number(t.display_number??0),display_number_formatted:t.display_number_formatted,title:t.title,description:t.description??null,status:t.status,priority:t.priority??"none",taskable_type:t.taskable_type??null,taskable_id:t.taskable_id??null,created_by:t.created_by??null,primary_assignee_id:t.primary_assignee_id??null,due_at:t.due_at??null,completed_at:t.completed_at??null,completed_by:t.completed_by??null,source:t.source,source_id:t.source_id??null,metadata:t.metadata??null,completion_rules:t.completion_rules??null,comment_count:Number(t.comment_count??0),checklist_total:Number(t.checklist_total??0),checklist_completed:Number(t.checklist_completed??0),subtask_count:Number(t.subtask_count??0),snapshot:t.snapshot??null,archived_at:t.archived_at??null,archived_by:t.archived_by??null,created_at:t.created_at??null,updated_at:t.updated_at??null,deleted_at:t.deleted_at??null}}function je(t){return t===null?null:{id:t.id,display_number_formatted:t.display_number_formatted,title:t.title,status:t.status,priority:t.priority??"none"}}function Je(t){return{id:t.id,type:t.type_for_task??t.type,related_task:je(t.related_task),created_at:t.created_at??null}}function Ze(t){return{id:t.id,...fe("task_id",t.task_id),author:X(t.author??t.author_id,"Unknown User")??{id:"unknown",name:"Unknown User"},content:t.content,visibility:t.visibility,metadata:t.metadata??null,created_at:t.created_at,updated_at:t.updated_at??null}}function De(t){return{id:t.id,task_id:t.task_id,user_id:t.user_id,user:X(t.user??t.user_id),started_at:t.started_at,stopped_at:t.stopped_at,duration_minutes:t.duration_minutes,description:t.description,is_manual:t.is_manual,is_running:t.is_running??t.stopped_at===null,created_at:t.created_at,updated_at:t.updated_at}}function Fa(t){return{id:t.id,...fe("task_id",t.task_id),user:X(t.user??t.user_id),action:t.action,description:t.description,changes:t.changes,metadata:t.metadata,created_at:t.created_at}}function La(t){return{id:t.id,tenant_id:t.tenant_id,profile_key:t.profile_key,name:t.name,description:t.description,is_default:t.is_default,tiers:t.tiers.map(a=>({name:a.name,label:a.label,offset_hours:a.offset_hours,visual:a.visual,channels:a.channels,target:a.target,cooldown_hours:a.cooldown_hours,color:a.color})),business_hours_only:t.business_hours_only,quiet_hours_start:t.quiet_hours_start,quiet_hours_end:t.quiet_hours_end,timezone:t.timezone,created_at:t.created_at,updated_at:t.updated_at}}function Vt(t){return{id:t.id,tenant_id:t.tenant_id,task_id:t.task_id,policy_id:t.policy_id,tier_name:t.tier_name,tier_label:t.tier_label,event_type:t.event_type,target_user_id:t.target_user_id,target_role:t.target_role,target_user:X(t.target_user),channels_used:t.channels_used??[],acknowledged_at:t.acknowledged_at,acknowledged_by:t.acknowledged_by,acknowledged_by_user:X(t.acknowledged_by_user),snoozed_until:t.snoozed_until,snooze_reason:t.snooze_reason,blocker_task_id:t.blocker_task_id,blocker_task:je(t.blocker_task),metadata:t.metadata??null,created_at:t.created_at}}function Xe(t){var o,n;const a=((o=t.checklist_items)==null?void 0:o.map(We))??[],l=a.filter(i=>i.is_completed).length;return{id:t.id,tenant_id:t.tenant_id,display_number:t.display_number,display_number_formatted:t.display_number_formatted,title:t.title,description:t.description??null,status:t.status,priority:t.priority,taskable_type:t.taskable_type,taskable_id:t.taskable_id,created_by:X(t.created_by),primary_assignee:X(t.primary_assignee??t.primary_assignee_id),due_at:t.due_at,completed_at:t.completed_at,completed_by:X(t.completed_by),source:t.source,source_id:t.source_id,template_item_id:t.template_item_id??null,escalation_policy_id:t.escalation_policy_id??null,current_escalation_tier:t.current_escalation_tier??null,current_escalation_label:t.current_escalation_label??null,next_escalation_at:t.next_escalation_at??null,escalation_acknowledged_at:t.escalation_acknowledged_at??null,escalation_snoozed_until:t.escalation_snoozed_until??null,comment_count:t.comment_count??null,checklist_total:t.checklist_total??null,checklist_completed:t.checklist_completed??null,blocker_count:t.blocker_count??null,open_blocker_count:t.open_blocker_count??null,has_unresolved_blockers:t.has_unresolved_blockers??null,subtask_count:t.subtask_count??null,completed_subtask_count:t.completed_subtask_count??null,completion_rules:t.completion_rules??null,time_tracked_minutes:t.time_tracked_minutes??null,tags:((n=t.tags)==null?void 0:n.map(wt))??[],checklist_progress:{completed:a.length===0?Math.round((t.progress_percentage??0)/100):l,total:a.length},is_overdue:t.is_overdue,is_complete:t.is_complete,progress_percentage:t.progress_percentage??(a.length===0?0:Math.round(l/a.length*100)),metadata:t.metadata??null,created_at:t.created_at,updated_at:t.updated_at}}function se(t){var o,n,i,r,s,f;const a=Xe(t),l=((o=t.assignments)==null?void 0:o.filter(u=>u.role==="watcher"))??[];return{...a,comments:((n=t.comments)==null?void 0:n.map(Ze))??[],checklist_items:((i=t.checklist_items)==null?void 0:i.map(We))??[],time_entries:((r=t.time_entries)==null?void 0:r.map(De))??[],watchers:l.map(u=>X(u.user_id)).filter(u=>u!==null),relations:[...t.outgoing_relations??[],...t.incoming_relations??[]].map(Je),activity_logs:((s=t.activity_logs)==null?void 0:s.map(Fa))??[],escalation_policy:t.escalation_policy?La(t.escalation_policy):null,escalation_events:((f=t.escalation_events)==null?void 0:f.map(Vt))??[]}}function Nt(t){var a;return{id:t.id,...fe("template_id",t.template_id),parent_item_id:t.parent_item_id??null,type:t.type,title:t.title,description:t.description,default_priority:t.default_priority??null,due_offset_hours:t.due_offset_hours??null,position:t.position,metadata:t.metadata??null,children:((a=t.children)==null?void 0:a.map(Nt))??[]}}function Ra(t){var a,l;return{id:t.id,name:t.name,description:t.description,default_title:t.default_title,default_description:t.default_description??null,default_priority:t.default_priority,...fe("default_status",t.default_status),due_offset_hours:t.due_offset_hours??null,items_count:((a=t.items)==null?void 0:a.length)??0,items:((l=t.items)==null?void 0:l.map(Nt))??[],is_active:t.is_active,default_assignee_role:t.default_assignee_role??null,applicable_types:t.applicable_types??null,tags:t.tags??[],position:t.position??0,metadata:t.metadata??null}}function Ye(t){return{id:t.id,tenant_id:t.tenant_id,user_id:t.user_id,name:t.name,filters:t.filters,is_default:t.is_default,is_shared:t.is_shared,position:t.position,created_at:t.created_at,updated_at:t.updated_at}}function Me(t){return{id:t.id,tenant_id:t.tenant_id,name:t.name,description:t.description,trigger_type:t.trigger_type,trigger_type_label:t.trigger_type_label??null,trigger_config:t.trigger_config??null,conditions:t.conditions??[],actions:t.actions??[],is_enabled:t.is_enabled,position:t.position,stop_processing:t.stop_processing,metadata:t.metadata??null,created_by:t.created_by,execution_count:t.execution_count??0,last_executed_at:t.last_executed_at??null,created_at:t.created_at,updated_at:t.updated_at}}function za(t){return{id:t.id,tenant_id:t.tenant_id,workflow_id:t.workflow_id,task_id:t.task_id,trigger_type:t.trigger_type,trigger_type_label:t.trigger_type_label??null,status:t.status,status_label:t.status_label??null,conditions_met:t.conditions_met,actions_executed:(t.actions_executed??[]).map(a=>{const{result:l,...o}=a,n={...o};return l!==void 0&&(n.result={type:l.type,success:l.success,message:l.message,data:l.data??{},dry_run:l.dry_run??!1}),n}),error:t.error,duration_ms:t.duration_ms,failed_action_index:t.failed_action_index??null,failed_action_type:t.failed_action_type??null,idempotency_key:t.idempotency_key??null,executed_at:t.executed_at,created_at:t.created_at,updated_at:t.updated_at}}function Ua(t){return{workflow:Me(t.workflow),task_id:t.task_id,trigger_matched:t.trigger_matched,conditions_met:t.conditions_met,actions:t.actions.map(a=>({type:a.type,success:a.success,message:a.message,data:a.data??{},dry_run:a.dry_run??!1}))}}function Wa(t){return{success:t.success??[],failed:t.failed??[]}}function ot(t){return{id:t.id,display_number_formatted:t.display_number_formatted,title:t.title,description:t.description,status:t.status,priority:t.priority,due_at:t.due_at,is_overdue:t.is_overdue,primary_assignee:X(t.primary_assignee),created_by:X(t.created_by),completed_by:X(t.completed_by),current_escalation_tier:t.current_escalation_tier??null,current_escalation_label:t.current_escalation_label??null,comment_count:t.comment_count??0,checklist_total:t.checklist_total??0,checklist_completed:t.checklist_completed??0,subtask_count:t.subtask_count??0,progress_percentage:t.progress_percentage??0,created_at:t.created_at,updated_at:t.updated_at}}function xa(t){return{id:t.id,action:t.action,description:t.description,changes:t.changes,metadata:t.metadata,created_at:t.created_at,user:X(t.user),task:je(t.task)}}function et(t){return{id:t.id,tenant_id:t.tenant_id,user_id:t.user_id,layout:t.layout,preferences:t.preferences??{},created_at:t.created_at,updated_at:t.updated_at}}function xe(t){return{items:t.items.map(ot),summary:t.summary}}function $t(t){return{days:t.days.map(a=>({date:a.date,label:a.label,weekday:a.weekday,is_today:a.is_today,tasks:a.tasks.map(ot)})),summary:t.summary}}function Pa(t){return{task:ot(t.task),health_status:t.health_status,health_score:t.health_score,issues:t.issues.map(a=>({type:a.type,label:a.label,message:a.message,suggested_actions:a.suggested_actions}))}}function Tt(t){return{items:t.items.map(Pa),summary:t.summary}}function Bt(t){return{items:t.items.map(xa),summary:t.summary}}function St(t){return{period:t.period,current:t.current,previous:t.previous,trends:t.trends}}function Oa(t){return{scope:t.scope,config:et(t.config),widgets:{my_tasks_today:xe(t.widgets.my_tasks_today),upcoming_this_week:$t(t.widgets.upcoming_this_week),overdue:xe(t.widgets.overdue),activity:Bt(t.widgets.activity),my_stats:St(t.widgets.my_stats),health_alerts:Tt(t.widgets.health_alerts)},meta:t.meta}}function Ct(t){return{id:t.id,recurring_template_id:t.recurring_template_id,task_id:t.task_id,occurrence_date:t.occurrence_date,generated_at:t.generated_at,created_at:t.created_at,task:je(t.task)}}function Ce(t){var a;return{id:t.id,tenant_id:t.tenant_id,task_template_id:t.task_template_id,task_template:t.task_template,title:t.title,description:t.description,rrule:t.rrule,rrule_human:t.rrule_human,timezone:t.timezone,taskable_type:t.taskable_type,taskable_id:t.taskable_id,primary_assignee_id:t.primary_assignee_id,priority:t.priority,priority_label:t.priority_label??null,due_offset_hours:t.due_offset_hours,tags:t.tags??[],is_active:t.is_active,skip_holidays:t.skip_holidays,business_hours_only:t.business_hours_only,chain_mode:t.chain_mode,last_generated_at:t.last_generated_at,next_occurrence_at:t.next_occurrence_at,metadata:t.metadata??null,created_by:t.created_by,created_at:t.created_at,updated_at:t.updated_at,deleted_at:t.deleted_at,history:((a=t.history)==null?void 0:a.map(Ct))??[]}}function Ha(t){var a,l,o,n;return{current_page:((a=t.meta)==null?void 0:a.current_page)??t.current_page??1,last_page:((l=t.meta)==null?void 0:l.last_page)??t.last_page??1,per_page:((o=t.meta)==null?void 0:o.per_page)??t.per_page??t.data.length,total:((n=t.meta)==null?void 0:n.total)??t.total??t.data.length}}function ue(t,a){return{data:t.data.map(a),meta:Ha(t)}}function R(t,a){return`${t.replace(/\/$/,"")}${a}`}function Ke(t){const a={...t},l=t.sort;return typeof l=="string"&&l!==""&&(l.startsWith("-")?(a.sort=l.slice(1),a.direction="desc"):(a.sort=l,a.direction="asc")),typeof t.assignee=="string"?a.assignee_id=t.assignee:typeof t.assignee_id=="string"&&(a.assignee_id=t.assignee_id),delete a.assignee,a}function st(t={}){const a=t.axios??Ba,l=t.baseUrl??Sa;return{async list(o={}){const n=await a.get(R(l,"/tasks"),{params:Ke(o)});return ue(n.data,Xe)},async searchUsers(o,n={}){return(await a.get(R(l,"/users/search"),{params:{query:o,...n}})).data.data.map(Da)},async getWorkload(o={}){const n=await a.get(R(l,"/workload"),{params:o});return Aa(n.data.data)},async listArchives(o={}){const n=await a.get(R(l,"/archives"),{params:o});return ue(n.data,Ia)},async restoreArchive(o){const n=await a.post(R(l,`/archives/${o}/restore`));return se(n.data.data)},async get(o){const n=await a.get(R(l,`/tasks/${o}`));return se(n.data.data)},async create(o){const n=await a.post(R(l,"/tasks"),o);return se(n.data.data)},async update(o,n){const i=await a.patch(R(l,`/tasks/${o}`),n);return se(i.data.data)},async delete(o){await a.delete(R(l,`/tasks/${o}`))},async complete(o,n){const i=await a.post(R(l,`/tasks/${o}/complete`),{note:n});return se(i.data.data)},async reopen(o){const n=await a.post(R(l,`/tasks/${o}/reopen`));return se(n.data.data)},async cancel(o){const n=await a.post(R(l,`/tasks/${o}/cancel`));return se(n.data.data)},async assign(o,n){return await a.post(R(l,`/tasks/${o}/assign`),{user_id:n}),this.get(o)},async reassign(o,n){return await a.post(R(l,`/tasks/${o}/reassign`),{user_id:n}),this.get(o)},async addWatcher(o,n){return await a.post(R(l,`/tasks/${o}/watchers`),{user_id:n}),this.get(o)},async removeWatcher(o,n){return await a.delete(R(l,`/tasks/${o}/watchers/${n}`)),this.get(o)},async listComments(o){return(await a.get(R(l,`/tasks/${o}/comments`))).data.data.map(Ze)},async addComment(o,n){const i=await a.post(R(l,`/tasks/${o}/comments`),n);return Ze(i.data.data)},async getActiveTimer(){const o=await a.get(R(l,"/time/active"));return o.data.data?De(o.data.data):null},async listTimeEntries(o){var i;const n=await a.get(R(l,`/tasks/${o}/time`));return{entries:n.data.data.map(De),total_minutes:Number(((i=n.data.meta)==null?void 0:i.total_minutes)??0)}},async startTimer(o){var i;const n=await a.post(R(l,`/tasks/${o}/time/start`));return{entry:De(n.data.data),total_minutes:Number(((i=n.data.meta)==null?void 0:i.total_minutes)??0)}},async stopTimer(o){var i;const n=await a.post(R(l,`/tasks/${o}/time/stop`));return{entry:De(n.data.data),total_minutes:Number(((i=n.data.meta)==null?void 0:i.total_minutes)??0)}},async addManualTimeEntry(o,n){var r;const i=await a.post(R(l,`/tasks/${o}/time`),n);return{entry:De(i.data.data),total_minutes:Number(((r=i.data.meta)==null?void 0:r.total_minutes)??0)}},async deleteTimeEntry(o,n){var r;const i=await a.delete(R(l,`/tasks/${o}/time/${n}`));return{total_minutes:Number(((r=i.data.meta)==null?void 0:r.total_minutes)??0)}},async exportTasks(o={}){return(await a.get(R(l,"/tasks/export"),{params:Ke(o),responseType:"text"})).data},async importTasks(o){const n=new FormData;return n.append("file",o),(await a.post(R(l,"/tasks/import"),n,{headers:{"Content-Type":"multipart/form-data"}})).data.data},async acknowledgeEscalation(o){const n=await a.post(R(l,`/tasks/${o}/escalation/acknowledge`));return se(n.data.data)},async snoozeEscalation(o,n){const i=await a.post(R(l,`/tasks/${o}/escalation/snooze`),n);return se(i.data.data)},async escalationHistory(o,n={}){const i=await a.get(R(l,`/tasks/${o}/escalation/history`),{params:n});return ue(i.data,Vt)},async addChecklistItem(o,n){const i=await a.post(R(l,`/tasks/${o}/checklist`),{title:n});return We(i.data.data)},async toggleChecklistItem(o,n){const i=await a.post(R(l,`/tasks/${o}/checklist/${n}/toggle`));return We(i.data.data)},async removeChecklistItem(o,n){await a.delete(R(l,`/tasks/${o}/checklist/${n}`))},async listRelations(o){return(await a.get(R(l,`/tasks/${o}/relations`))).data.data.map(Je)},async addRelation(o,n){const i=await a.post(R(l,`/tasks/${o}/relations`),n);return Je(i.data.data)},async listTags(){return(await a.get(R(l,"/tags"))).data.data.map(wt)},async addTagToTask(o,n){return await a.post(R(l,`/tasks/${o}/tags`),{tag_id:n}),this.get(o)},async listSavedFilters(){return(await a.get(R(l,"/filters"))).data.data.map(Ye)},async createSavedFilter(o){const n=await a.post(R(l,"/filters"),o);return Ye(n.data.data)},async updateSavedFilter(o,n){const i=await a.patch(R(l,`/filters/${o}`),n);return Ye(i.data.data)},async deleteSavedFilter(o){await a.delete(R(l,`/filters/${o}`))},async listWorkflows(o={}){const n=await a.get(R(l,"/workflows"),{params:o});return ue(n.data,Me)},async getWorkflow(o){const n=await a.get(R(l,`/workflows/${o}`));return Me(n.data.data)},async createWorkflow(o){const n=await a.post(R(l,"/workflows"),o);return Me(n.data.data)},async updateWorkflow(o,n){const i=await a.patch(R(l,`/workflows/${o}`),n);return Me(i.data.data)},async deleteWorkflow(o){await a.delete(R(l,`/workflows/${o}`))},async toggleWorkflow(o,n){const i=await a.post(R(l,`/workflows/${o}/toggle`),{is_enabled:n});return Me(i.data.data)},async workflowLogs(o,n={}){const i=await a.get(R(l,`/workflows/${o}/logs`),{params:n});return ue(i.data,za)},async testWorkflow(o,n,i={}){const r=await a.post(R(l,`/workflows/${o}/test`),{task_id:n,context:i});return Ua(r.data.data)},async bulkAction(o,n,i={}){const r=await a.post(R(l,"/tasks/bulk"),{task_ids:o,action:n,params:i});return Wa(r.data.data)},async listTemplates(o={}){const n=await a.get(R(l,"/templates"),{params:o});return ue(n.data,Ra)},async instantiateTemplate(o,n){const i=await a.post(R(l,`/templates/${o}/instantiate`),n);return se(i.data.data)},async listRecurring(o={}){const n=await a.get(R(l,"/recurring"),{params:o});return ue(n.data,Ce)},async getRecurring(o){const n=await a.get(R(l,`/recurring/${o}`));return Ce(n.data.data)},async createRecurring(o){const n=await a.post(R(l,"/recurring"),o);return Ce(n.data.data)},async updateRecurring(o,n){const i=await a.patch(R(l,`/recurring/${o}`),n);return Ce(i.data.data)},async deleteRecurring(o){await a.delete(R(l,`/recurring/${o}`))},async pauseRecurring(o){const n=await a.post(R(l,`/recurring/${o}/pause`));return Ce(n.data.data)},async resumeRecurring(o){const n=await a.post(R(l,`/recurring/${o}/resume`));return Ce(n.data.data)},async recurringHistory(o,n={}){const i=await a.get(R(l,`/recurring/${o}/history`),{params:n});return ue(i.data,Ct)},async generateRecurring(o){const n=await a.post(R(l,`/recurring/${o}/generate`));return se(n.data.data)},async entityTasks(o,n,i={}){const r=await a.get(R(l,`/entity/${o}/${n}/tasks`),{params:Ke(i)});return ue(r.data,Xe)},async entitySummary(o,n){const r=(await a.get(R(l,`/entity/${o}/${n}/summary`))).data.data;return{...r,recent_tasks:r.recent_tasks.map(s=>({id:s.id,display_number_formatted:s.display_number_formatted,title:s.title,status:s.status,priority:s.priority??"none"}))}},async getDashboard(o="week"){const n=await a.get(R(l,"/dashboard"),{params:{period:o}});return Oa(n.data.data)},async getDashboardConfig(){const o=await a.get(R(l,"/dashboard/config"));return et(o.data.data)},async updateDashboardConfig(o){const n=await a.put(R(l,"/dashboard/config"),o);return et(n.data.data)},async getDashboardMyTasksToday(){const o=await a.get(R(l,"/dashboard/my-tasks-today"));return xe(o.data.data)},async getDashboardUpcoming(){const o=await a.get(R(l,"/dashboard/upcoming"));return $t(o.data.data)},async getDashboardOverdue(){const o=await a.get(R(l,"/dashboard/overdue"));return xe(o.data.data)},async getDashboardActivity(){const o=await a.get(R(l,"/dashboard/activity"));return Bt(o.data.data)},async getDashboardStats(o="week"){const n=await a.get(R(l,"/dashboard/stats"),{params:{period:o}});return St(n.data.data)},async getDashboardHealthAlerts(){const o=await a.get(R(l,"/dashboard/health-alerts"));return Tt(o.data.data)},async getAnalyticsCompletionRate(o={}){return(await a.get(R(l,"/analytics/completion-rate"),{params:o})).data.data},async getAnalyticsCycleTime(o={}){return(await a.get(R(l,"/analytics/cycle-time"),{params:o})).data.data},async getAnalyticsVelocity(o={}){return(await a.get(R(l,"/analytics/velocity"),{params:o})).data.data},async getAnalyticsOverdueRate(o={}){return(await a.get(R(l,"/analytics/overdue-rate"),{params:o})).data.data},async getAnalyticsTemplateUsage(){return(await a.get(R(l,"/analytics/template-usage"))).data.data}}}let it=st();function T(){return it}function ja(t){it=t}function qa(){it=st()}const tt={list:t=>T().list(t),searchUsers:(t,a)=>T().searchUsers(t,a),getWorkload:t=>T().getWorkload(t),listArchives:t=>T().listArchives(t),restoreArchive:t=>T().restoreArchive(t),get:t=>T().get(t),create:t=>T().create(t),update:(t,a)=>T().update(t,a),delete:t=>T().delete(t),complete:(t,a)=>T().complete(t,a),reopen:t=>T().reopen(t),cancel:t=>T().cancel(t),assign:(t,a)=>T().assign(t,a),reassign:(t,a)=>T().reassign(t,a),addWatcher:(t,a)=>T().addWatcher(t,a),removeWatcher:(t,a)=>T().removeWatcher(t,a),listComments:t=>T().listComments(t),addComment:(t,a)=>T().addComment(t,a),getActiveTimer:()=>T().getActiveTimer(),listTimeEntries:t=>T().listTimeEntries(t),startTimer:t=>T().startTimer(t),stopTimer:t=>T().stopTimer(t),addManualTimeEntry:(t,a)=>T().addManualTimeEntry(t,a),deleteTimeEntry:(t,a)=>T().deleteTimeEntry(t,a),exportTasks:t=>T().exportTasks(t),importTasks:t=>T().importTasks(t),acknowledgeEscalation:t=>T().acknowledgeEscalation(t),snoozeEscalation:(t,a)=>T().snoozeEscalation(t,a),escalationHistory:(t,a)=>T().escalationHistory(t,a),addChecklistItem:(t,a)=>T().addChecklistItem(t,a),toggleChecklistItem:(t,a)=>T().toggleChecklistItem(t,a),removeChecklistItem:(t,a)=>T().removeChecklistItem(t,a),listRelations:t=>T().listRelations(t),addRelation:(t,a)=>T().addRelation(t,a),listTags:()=>T().listTags(),addTagToTask:(t,a)=>T().addTagToTask(t,a),listSavedFilters:()=>T().listSavedFilters(),createSavedFilter:t=>T().createSavedFilter(t),updateSavedFilter:(t,a)=>T().updateSavedFilter(t,a),deleteSavedFilter:t=>T().deleteSavedFilter(t),listWorkflows:t=>T().listWorkflows(t),getWorkflow:t=>T().getWorkflow(t),createWorkflow:t=>T().createWorkflow(t),updateWorkflow:(t,a)=>T().updateWorkflow(t,a),deleteWorkflow:t=>T().deleteWorkflow(t),toggleWorkflow:(t,a)=>T().toggleWorkflow(t,a),workflowLogs:(t,a)=>T().workflowLogs(t,a),testWorkflow:(t,a,l)=>T().testWorkflow(t,a,l),bulkAction:(t,a,l)=>T().bulkAction(t,a,l),listTemplates:t=>T().listTemplates(t),instantiateTemplate:(t,a)=>T().instantiateTemplate(t,a),listRecurring:t=>T().listRecurring(t),getRecurring:t=>T().getRecurring(t),createRecurring:t=>T().createRecurring(t),updateRecurring:(t,a)=>T().updateRecurring(t,a),deleteRecurring:t=>T().deleteRecurring(t),pauseRecurring:t=>T().pauseRecurring(t),resumeRecurring:t=>T().resumeRecurring(t),recurringHistory:(t,a)=>T().recurringHistory(t,a),generateRecurring:t=>T().generateRecurring(t),entityTasks:(t,a,l)=>T().entityTasks(t,a,l),entitySummary:(t,a)=>T().entitySummary(t,a),getDashboard:t=>T().getDashboard(t),getDashboardConfig:()=>T().getDashboardConfig(),updateDashboardConfig:t=>T().updateDashboardConfig(t),getDashboardMyTasksToday:()=>T().getDashboardMyTasksToday(),getDashboardUpcoming:()=>T().getDashboardUpcoming(),getDashboardOverdue:()=>T().getDashboardOverdue(),getDashboardActivity:()=>T().getDashboardActivity(),getDashboardStats:t=>T().getDashboardStats(t),getDashboardHealthAlerts:()=>T().getDashboardHealthAlerts(),getAnalyticsCompletionRate:t=>T().getAnalyticsCompletionRate(t),getAnalyticsCycleTime:t=>T().getAnalyticsCycleTime(t),getAnalyticsVelocity:t=>T().getAnalyticsVelocity(t),getAnalyticsOverdueRate:t=>T().getAnalyticsOverdueRate(t),getAnalyticsTemplateUsage:()=>T().getAnalyticsTemplateUsage()};function ft(){return{page:1,per_page:15,sort:"-created_at"}}function Ya(){return{current_page:1,last_page:1,per_page:15,total:0}}const rt=lt.defineStore("task-engine/task-list",()=>{const t=e.ref(ft()),a=e.ref(Ya()),l=e.ref("list"),o=e.ref(null);function n(m,y){const c={...t.value};y==null||y===""||Array.isArray(y)&&y.length===0?delete c[m]:c[m]=y,c.page=1,t.value=c}function i(m){t.value={...t.value,...m,page:m.page??1}}function r(){t.value=ft()}function s(m){t.value={...t.value,sort:m,page:1}}function f(){a.value.current_page>=a.value.last_page||(t.value={...t.value,page:a.value.current_page+1})}function u(){a.value.current_page<=1||(t.value={...t.value,page:a.value.current_page-1})}function k(m){a.value=m,t.value={...t.value,page:m.current_page,per_page:m.per_page}}function d(m){l.value=m}function g(m){o.value=m}const b=e.computed(()=>Object.entries(t.value).reduce((m,[y,c])=>y==="page"||y==="per_page"||y==="sort"||c==null||c===""||Array.isArray(c)&&c.length===0?m:m+1,0));return{filters:t,pagination:a,view:l,activeSavedFilterId:o,activeFilterCount:b,setFilter:n,setFilters:i,clearFilters:r,setSort:s,setView:d,setActiveSavedFilter:g,nextPage:f,previousPage:u,syncPagination:k}});function Ka(){return{current_page:1,last_page:1,per_page:15,total:0}}function Qa(){return{completed:0,total:0}}function Ga(t){var o;if(typeof t=="number")return Number.isFinite(t)?t:0;const a=(o=t.match(/(\d+)(?!.*\d)/))==null?void 0:o[1],l=a===void 0?Number.NaN:Number.parseInt(a,10);return Number.isNaN(l)?0:l}function Ue(t){return t==="complete"}function Qe(t){return t.total<=0?0:Math.round(t.completed/t.total*100)}function Ja(t,a){return t===null||Ue(a)||a==="cancelled"?!1:new Date(t).getTime()<Date.now()}function vt(t,a){return a===void 0?!0:Array.isArray(a)?a.includes(t):a===t}const Ie=lt.defineStore("task-engine/tasks",()=>{const t=e.ref([]),a=e.ref(null),l=e.ref(null),o=e.ref(!1),n=e.ref(null),i=e.ref(Ka()),r=e.ref({}),s=e.ref([]),f=e.ref(!1),u=e.ref(null),k=e.ref(!1),d=e.ref(null),g=e.ref(!1),b=e.ref(null),m=e.ref(!1),y=e.ref(!1);function c(h){n.value=h instanceof Error?h.message:String(h)}function p(h){i.value={...i.value,total:Math.max(0,h)}}function N(h){p(i.value.total+h)}function V(h){const _=t.value.findIndex(A=>A.id===h.id);return _>=0?(t.value.splice(_,1,h),!1):(t.value.unshift(h),!0)}function I(h){const _=t.value.findIndex(A=>A.id===h);return _<0?!1:(t.value.splice(_,1),!0)}function $(h){var Y;const _=r.value,A=_.assignee??_.assignee_id;return!(!vt(h.status,_.status)||!vt(h.priority,_.priority)||typeof _.taskable_type=="string"&&h.taskable_type!==_.taskable_type||typeof _.taskable_id=="string"&&h.taskable_id!==_.taskable_id||typeof A=="string"&&String(((Y=h.primary_assignee)==null?void 0:Y.id)??"")!==A||_.overdue===!0&&!h.is_overdue)}function E(h,_){const A=(_==null?void 0:_.checklist_progress)??Qa(),Y=h.status,ee=h.due_at??(_==null?void 0:_.due_at)??null,te=h.display_number_formatted||String(h.display_number);return{id:h.id,tenant_id:(_==null?void 0:_.tenant_id)??"",display_number:(_==null?void 0:_.display_number)??Ga(h.display_number),display_number_formatted:te,title:h.title,description:(_==null?void 0:_.description)??null,status:Y,priority:h.priority,taskable_type:h.taskable_type??(_==null?void 0:_.taskable_type)??null,taskable_id:h.taskable_id??(_==null?void 0:_.taskable_id)??null,created_by:h.created_by??(_==null?void 0:_.created_by)??null,primary_assignee:h.primary_assignee??(_==null?void 0:_.primary_assignee)??null,due_at:ee,completed_at:Ue(Y)?(_==null?void 0:_.completed_at)??null:null,completed_by:h.completed_by??(Ue(Y)?(_==null?void 0:_.completed_by)??null:null),source:(_==null?void 0:_.source)??"manual",source_id:(_==null?void 0:_.source_id)??null,template_item_id:(_==null?void 0:_.template_item_id)??null,escalation_policy_id:(_==null?void 0:_.escalation_policy_id)??null,current_escalation_tier:h.current_escalation_tier??(_==null?void 0:_.current_escalation_tier)??null,current_escalation_label:(_==null?void 0:_.current_escalation_label)??null,next_escalation_at:h.next_escalation_at??(_==null?void 0:_.next_escalation_at)??null,escalation_acknowledged_at:h.escalation_acknowledged_at??(_==null?void 0:_.escalation_acknowledged_at)??null,escalation_snoozed_until:h.escalation_snoozed_until??(_==null?void 0:_.escalation_snoozed_until)??null,blocker_count:(_==null?void 0:_.blocker_count)??null,open_blocker_count:(_==null?void 0:_.open_blocker_count)??null,has_unresolved_blockers:(_==null?void 0:_.has_unresolved_blockers)??null,subtask_count:(_==null?void 0:_.subtask_count)??null,completed_subtask_count:(_==null?void 0:_.completed_subtask_count)??null,completion_rules:(_==null?void 0:_.completion_rules)??null,time_tracked_minutes:(_==null?void 0:_.time_tracked_minutes)??null,tags:(_==null?void 0:_.tags)??[],checklist_progress:A,is_overdue:Ja(ee,Y),is_complete:Ue(Y),progress_percentage:Qe(A),metadata:(_==null?void 0:_.metadata)??null,created_at:(_==null?void 0:_.created_at)??new Date().toISOString(),updated_at:new Date().toISOString()}}function v(h){var A;if(((A=a.value)==null?void 0:A.id)!==h.id)return;const _=E(h,a.value);a.value={...a.value,..._}}function w(h){const _=t.value.find(te=>te.id===h.id)??a.value,A=E(h,_??null),Y=t.value.some(te=>te.id===A.id);return $(A)?V(A)&&!Y&&N(1):I(A.id)&&N(-1),v(h),A}function M(h,_,A){var te;const Y=t.value.findIndex(Se=>Se.id===h);if(Y>=0){const Se=t.value[Y];Se!==void 0&&t.value.splice(Y,1,{...Se,checklist_progress:A,progress_percentage:Qe(A),updated_at:new Date().toISOString()})}if(((te=a.value)==null?void 0:te.id)!==h)return;const ee=a.value.checklist_items.findIndex(Se=>Se.id===_.id);ee>=0?a.value.checklist_items.splice(ee,1,{...a.value.checklist_items[ee],..._}):a.value.checklist_items.push(_),a.value={...a.value,checklist_progress:A,progress_percentage:Qe(A),updated_at:new Date().toISOString()}}function P(h){var _;return((_=a.value)==null?void 0:_.id)===h}function J(h){return w(h)}function F(h){return w(h.task)}function O(h){return w({...h.task,status:h.new_status})}function j(h){return w({...h.task,assignee_id:h.new_assignee_id,primary_assignee:h.task.primary_assignee})}function K(h){return w({...h.task,status:"complete",completed_by:h.completed_by})}function Q(h){return w(h.task)}function re(h){const _=w(h.task);return M(h.task.id,h.item,h.progress),_}async function ke(h={}){o.value=!0,n.value=null;try{const _=await T().list(h);t.value=_.data,i.value=_.meta,r.value={...h}}catch(_){throw c(_),_}finally{o.value=!1}}async function ie(h){o.value=!0,n.value=null;try{const _=await T().get(h);return a.value=_,V(_),_}catch(_){throw c(_),_}finally{o.value=!1}}async function Ve(h){o.value=!0,n.value=null;try{const _=await T().create(h);return a.value=_,V(_),N(1),_}catch(_){throw c(_),_}finally{o.value=!1}}async function Ne(h,_){o.value=!0,n.value=null;try{const A=await T().update(h,_);return a.value=A,V(A),A}catch(A){throw c(A),A}finally{o.value=!1}}async function D(h){var _;o.value=!0,n.value=null;try{await T().delete(h),t.value=t.value.filter(A=>A.id!==h),((_=a.value)==null?void 0:_.id)===h&&(a.value=null),N(-1)}catch(A){throw c(A),A}finally{o.value=!1}}async function B(h,_){const A=await T().complete(h,_);return a.value=A,V(A),A}async function S(h){const _=await T().reopen(h);return a.value=_,V(_),_}async function z(h){const _=await T().cancel(h);return a.value=_,V(_),_}async function L(h,_){var A;return await T().addComment(h,_),((A=a.value)==null?void 0:A.id)===h?ie(h):null}async function de(h){const _=await T().acknowledgeEscalation(h);return a.value=_,V(_),_}async function $e(h,_){const A=await T().snoozeEscalation(h,_);return a.value=A,V(A),A}async function Te(h,_){var A;return await T().addChecklistItem(h,_),((A=a.value)==null?void 0:A.id)===h?ie(h):null}async function q(h,_){var A;return await T().toggleChecklistItem(h,_),((A=a.value)==null?void 0:A.id)===h?ie(h):null}async function C(h,_){var A;return await T().removeChecklistItem(h,_),((A=a.value)==null?void 0:A.id)===h?ie(h):null}async function U(h,_,A={}){o.value=!0,n.value=null;try{const Y=await T().entityTasks(h,_,A);t.value=Y.data,i.value=Y.meta,r.value={...A,taskable_type:h,taskable_id:_}}catch(Y){throw c(Y),Y}finally{o.value=!1}}async function W(h,_){o.value=!0,n.value=null;try{const A=await T().entitySummary(h,_);return l.value=A,A}catch(A){throw c(A),A}finally{o.value=!1}}async function H(h,_){o.value=!0,n.value=null;try{const A=await T().instantiateTemplate(h,_);return a.value=A,V(A),N(1),A}catch(A){throw c(A),A}finally{o.value=!1}}async function G(){try{return d.value=await T().getActiveTimer(),d.value}catch(h){throw c(h),h}}async function Z(h){var A;const _=await T().get(h);return V(_),((A=a.value)==null?void 0:A.id)===h&&(a.value=_),_}async function oe(h){g.value=!0,n.value=null;try{return await T().startTimer(h),await G(),Z(h)}catch(_){throw c(_),_}finally{g.value=!1}}async function ye(h){g.value=!0,n.value=null;try{return await T().stopTimer(h),await G(),Z(h)}catch(_){throw c(_),_}finally{g.value=!1}}async function ce(h,_){g.value=!0,n.value=null;try{return await T().addManualTimeEntry(h,_),await G(),Z(h)}catch(A){throw c(A),A}finally{g.value=!1}}async function Be(h,_){g.value=!0,n.value=null;try{return await T().deleteTimeEntry(h,_),await G(),Z(h)}catch(A){throw c(A),A}finally{g.value=!1}}async function Re(h=r.value){y.value=!0,n.value=null;try{return await T().exportTasks(h)}catch(_){throw c(_),_}finally{y.value=!1}}async function ga(h){m.value=!0,n.value=null;try{const _=await T().importTasks(h);return b.value=_,(t.value.length>0||Object.keys(r.value).length>0)&&await ke(r.value),_}catch(_){throw c(_),_}finally{m.value=!1}}async function ba(){f.value=!0,n.value=null;try{const h=await T().listSavedFilters();return s.value=[...h].sort((_,A)=>_.position-A.position||_.name.localeCompare(A.name)),s.value}catch(h){throw c(h),h}finally{f.value=!1}}async function ha(h){f.value=!0,n.value=null;try{const _=await T().createSavedFilter(h);return s.value=[...s.value,_].sort((A,Y)=>A.position-Y.position||A.name.localeCompare(Y.name)),_}catch(_){throw c(_),_}finally{f.value=!1}}async function wa(h,_){f.value=!0,n.value=null;try{const A=await T().updateSavedFilter(h,_),Y=s.value.findIndex(ee=>ee.id===h);return Y>=0&&(s.value.splice(Y,1,A),s.value=[...s.value].sort((ee,te)=>ee.position-te.position||ee.name.localeCompare(te.name))),A}catch(A){throw c(A),A}finally{f.value=!1}}async function Ea(h){f.value=!0,n.value=null;try{await T().deleteSavedFilter(h),s.value=s.value.filter(_=>_.id!==h)}catch(_){throw c(_),_}finally{f.value=!1}}async function Va(h,_,A={}){k.value=!0,n.value=null;try{const Y=await T().bulkAction(h,_,A);return u.value=Y,Y.success.length>0&&(t.value.length>0||Object.keys(r.value).length>0)&&await ke(r.value),a.value!==null&&Y.success.includes(a.value.id)&&(_==="delete"?a.value=null:await ie(a.value.id)),Y}catch(Y){throw c(Y),Y}finally{k.value=!1}}const Na=e.computed(()=>t.value.filter(h=>h.is_overdue)),$a=e.computed(()=>({draft:t.value.filter(h=>h.status==="draft"),open:t.value.filter(h=>h.status==="open"),in_progress:t.value.filter(h=>h.status==="in_progress"),blocked:t.value.filter(h=>h.status==="blocked"),under_review:t.value.filter(h=>h.status==="under_review"),complete:t.value.filter(h=>h.status==="complete"),cancelled:t.value.filter(h=>h.status==="cancelled")})),Ta=e.computed(()=>({none:t.value.filter(h=>h.priority==="none"),low:t.value.filter(h=>h.priority==="low"),medium:t.value.filter(h=>h.priority==="medium"),high:t.value.filter(h=>h.priority==="high"),urgent:t.value.filter(h=>h.priority==="urgent"),critical:t.value.filter(h=>h.priority==="critical")}));return{tasks:t,currentTask:a,entitySummary:l,loading:o,error:n,pagination:i,lastFilters:r,savedFilters:s,savedFiltersLoading:f,bulkResult:u,bulkLoading:k,activeTimer:d,timeTrackingLoading:g,importResult:b,importLoading:m,exportLoading:y,overdueTasks:Na,tasksByStatus:$a,tasksByPriority:Ta,isViewingTask:P,handleTaskCreated:J,handleTaskUpdated:F,handleStatusChanged:O,handleTaskAssigned:j,handleTaskCompleted:K,handleCommentAdded:Q,handleChecklistToggled:re,fetchTasks:ke,fetchTask:ie,createTask:Ve,updateTask:Ne,deleteTask:D,completeTask:B,reopenTask:S,cancelTask:z,addComment:L,acknowledgeEscalation:de,snoozeEscalation:$e,addChecklistItem:Te,toggleChecklistItem:q,removeChecklistItem:C,fetchEntityTasks:U,fetchEntitySummary:W,instantiateTemplate:H,fetchActiveTimer:G,startTimer:oe,stopTimer:ye,addManualTimeEntry:ce,deleteTimeEntry:Be,exportTasks:Re,importTasks:ga,fetchSavedFilters:ba,createSavedFilter:ha,updateSavedFilterRecord:wa,deleteSavedFilterRecord:Ea,runBulkAction:Va}});function Za(t){return{name:`${t.name} (Copy)`,description:t.description,trigger_type:t.trigger_type,trigger_config:t.trigger_config===null?null:{...t.trigger_config},conditions:t.conditions.map(a=>({...a})),actions:t.actions.map(a=>{const l={...a};return a.config!==void 0&&(l.config={...a.config}),l}),is_enabled:t.is_enabled,position:t.position+1,stop_processing:t.stop_processing,metadata:t.metadata===null?null:{...t.metadata}}}const Dt=lt.defineStore("task-engine/workflows",()=>{const t=e.ref([]),a=e.ref({current_page:1,last_page:1,per_page:15,total:0}),l=e.ref(null),o=e.ref(null),n=e.ref({}),i=e.ref(!1),r=e.ref(!1),s=e.ref(null),f=e.ref({});function u(v){s.value=v instanceof Error?v.message:String(v)}function k(v){const w=[...t.value],M=w.findIndex(P=>P.id===v.id);M>=0?w.splice(M,1,v):w.push(v),t.value=w.sort((P,J)=>P.position-J.position)}async function d(v={}){i.value=!0,s.value=null;try{const w=await T().listWorkflows(v);return t.value=[...w.data].sort((M,P)=>M.position-P.position),a.value=w.meta,w}catch(w){throw u(w),w}finally{i.value=!1}}async function g(v){i.value=!0,s.value=null;try{const w=await T().getWorkflow(v);return l.value=w,k(w),w}catch(w){throw u(w),w}finally{i.value=!1}}async function b(v){r.value=!0,s.value=null;try{const w=await T().createWorkflow(v);return l.value=w,k(w),w}catch(w){throw u(w),w}finally{r.value=!1}}async function m(v,w){r.value=!0,s.value=null;try{const M=await T().updateWorkflow(v,w);return l.value=M,k(M),M}catch(M){throw u(M),M}finally{r.value=!1}}async function y(v){var w;r.value=!0,s.value=null;try{await T().deleteWorkflow(v),t.value=t.value.filter(M=>M.id!==v),((w=l.value)==null?void 0:w.id)===v&&(l.value=null)}catch(M){throw u(M),M}finally{r.value=!1}}async function c(v,w){var M;r.value=!0,s.value=null;try{const P=await T().toggleWorkflow(v,w);return l.value=((M=l.value)==null?void 0:M.id)===v?P:l.value,k(P),P}catch(P){throw u(P),P}finally{r.value=!1}}async function p(v){return b(Za(v))}async function N(v,w){const M=[...t.value].sort((j,K)=>j.position-K.position),P=M.findIndex(j=>j.id===v),J=w==="up"?P-1:P+1;if(P<0||J<0||J>=M.length)return;const F=M[P],O=M[J];F===void 0||O===void 0||await Promise.all([m(F.id,{position:O.position}),m(O.id,{position:F.position})])}async function V(v,w={}){f.value={...f.value,[v]:!0},s.value=null;try{const M=await T().workflowLogs(v,w);return n.value={...n.value,[v]:M},M}catch(M){throw u(M),M}finally{f.value={...f.value,[v]:!1}}}async function I(v,w,M={}){r.value=!0,s.value=null;try{const P=await T().testWorkflow(v,w,M);return o.value=P,P}catch(P){throw u(P),P}finally{r.value=!1}}const $=e.computed(()=>t.value.filter(v=>v.is_enabled)),E=e.computed(()=>t.value.filter(v=>!v.is_enabled));return{workflows:t,pagination:a,currentWorkflow:l,testResult:o,logsByWorkflow:n,loading:i,saving:r,error:s,logLoading:f,enabledWorkflows:$,disabledWorkflows:E,fetchWorkflows:d,fetchWorkflow:g,createWorkflow:b,updateWorkflow:m,deleteWorkflow:y,toggleWorkflow:c,duplicateWorkflow:p,moveWorkflow:N,fetchLogs:V,runTest:I}}),Xa=8e3,en="/admin/tasks",me=e.ref([]),Pe=new Map;let tn=0;function an(t){return`${en}/${t}`}function dt(t){const a=Pe.get(t);a!==void 0&&(clearTimeout(a),Pe.delete(t))}function Mt(t){dt(t),me.value=me.value.filter(a=>a.id!==t)}function nn(t){const a=t.id??`task-toast-${++tn}`,l={id:a,kind:t.kind,title:t.title,body:t.body,taskId:t.taskId,taskNumber:t.taskNumber,tone:t.tone??"info",duration:t.duration??Xa,url:t.url??an(t.taskId),created_at:t.created_at??new Date().toISOString()},o=me.value.findIndex(n=>n.id===a);return dt(a),o>=0&&me.value.splice(o,1),me.value=[l,...me.value].slice(0,5),Pe.set(a,setTimeout(()=>{Mt(a)},l.duration)),l}function ln(){Array.from(Pe.keys()).forEach(dt),me.value=[]}function ct(){return{notifications:e.readonly(me),hasNotifications:e.computed(()=>me.value.length>0),pushTaskNotificationToast:nn,dismissTaskNotificationToast:Mt,clearTaskNotificationFeed:ln}}const ge={created:".task.created",updated:".task.updated",statusChanged:".task.status_changed",assigned:".task.assigned",completed:".task.completed",commentAdded:".task.comment_added",checklistToggled:".task.checklist_toggled"},on=["draft","open","in_progress","blocked","under_review","complete","cancelled"],sn=["none","low","medium","high","urgent","critical"],rn=["reminder","warning","due_now","overdue","escalated","critical"];function le(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function ae(t){return t==null||t===""?null:typeof t=="string"||typeof t=="number"?String(t):void 0}function at(t){return typeof t=="string"&&on.includes(t)}function dn(t){return typeof t=="string"&&sn.includes(t)}function cn(t){return t==null||t===""?null:typeof t=="string"&&rn.includes(t)?t:void 0}function he(t){if(t==null||t==="")return null;if(!le(t))return;const a=t.id,l=t.name,o=t.avatar_url;if(!(typeof a!="string"&&typeof a!="number"||typeof l!="string"))return{id:String(a),name:l,...typeof o=="string"?{avatar_url:o}:{}}}function we(t){if(!le(t))return null;const a=t.id,l=t.display_number,o=t.display_number_formatted,n=t.title,i=t.status,r=t.priority,s=ae(t.assignee_id),f=ae(t.taskable_type),u=ae(t.taskable_id),k=he(t.created_by),d=he(t.primary_assignee),g=he(t.completed_by),b=ae(t.due_at),m=cn(t.current_escalation_tier),y=ae(t.next_escalation_at),c=ae(t.escalation_acknowledged_at),p=ae(t.escalation_snoozed_until);return typeof a!="string"||typeof l!="string"&&typeof l!="number"||typeof o!="string"||typeof n!="string"||!at(i)||!dn(r)||s===void 0||f===void 0||u===void 0||k===void 0||d===void 0||g===void 0||b===void 0||m===void 0||y===void 0||c===void 0||p===void 0?null:{id:a,display_number:l,display_number_formatted:o,title:n,status:i,priority:r,assignee_id:s,taskable_type:f,taskable_id:u,created_by:k,primary_assignee:d,completed_by:g,due_at:b,current_escalation_tier:m,next_escalation_at:y,escalation_acknowledged_at:c,escalation_snoozed_until:p}}function At(t){if(!le(t))return null;const a=we(t.task),l=t.changes;return a===null||!le(l)?null:{task:a,changes:l}}function It(t){if(!le(t))return null;const a=we(t.task),l=t.old_status,o=t.new_status;return a===null||!at(l)||!at(o)?null:{task:a,old_status:l,new_status:o}}function Ft(t){if(!le(t))return null;const a=we(t.task),l=ae(t.new_assignee_id),o=ae(t.old_assignee_id),n=he(t.assigned_by);return a===null||l===void 0||o===void 0||n===void 0?null:{task:a,new_assignee_id:l,old_assignee_id:o,assigned_by:n}}function Lt(t){if(!le(t))return null;const a=we(t.task),l=he(t.completed_by);return a===null||l===void 0?null:{task:a,completed_by:l}}function un(t){if(!le(t))return null;const a=t.id,l=he(t.author),o=ae(t.author_id),n=t.visibility,i=t.preview,r=ae(t.created_at);return typeof a!="string"||l===void 0||o===void 0||n!=="team"&&n!=="private"||typeof i!="string"||r===void 0?null:{id:a,author:l,author_id:o,visibility:n,preview:i,created_at:r}}function Rt(t){if(!le(t))return null;const a=we(t.task),l=un(t.comment);return a===null||l===null?null:{task:a,comment:l}}function mn(t){if(!le(t))return null;const a=t.completed,l=t.total;return typeof a!="number"||typeof l!="number"?null:{completed:a,total:l}}function pn(t){if(!le(t))return null;const a=t.id,l=t.title,o=t.is_completed,n=ae(t.completed_at),i=he(t.completed_by),r=t.position;return typeof a!="string"||typeof l!="string"||typeof o!="boolean"||n===void 0||i===void 0||typeof r!="number"?null:{id:a,title:l,is_completed:o,completed_at:n,completed_by:i,position:r}}function zt(t){if(!le(t))return null;const a=we(t.task),l=pn(t.item),o=mn(t.progress);return a===null||l===null||o===null?null:{task:a,item:l,progress:o}}function Ut(t){return we(t)}function kn(){return typeof window>"u"?null:window.Echo??null}function Wt(t){try{return JSON.stringify(t)??"null"}catch{return"unserializable"}}function _e(t){return t.display_number_formatted||String(t.display_number)}function be(t,a){switch(t){case"task.created":{const l=Ut(a);return l===null?null:`${t}:${l.id}`}case"task.updated":{const l=At(a);return l===null?null:`${t}:${l.task.id}:${Wt(l.changes)}`}case"task.status_changed":{const l=It(a);return l===null?null:`${t}:${l.task.id}:${l.old_status}:${l.new_status}`}case"task.assigned":{const l=Ft(a);return l===null?null:`${t}:${l.task.id}:${l.new_assignee_id??""}:${l.old_assignee_id??""}`}case"task.completed":{const l=Lt(a);return l===null?null:`${t}:${l.task.id}`}case"task.comment_added":{const l=Rt(a);return l===null?null:`${t}:${l.task.id}:${l.comment.id}`}case"task.checklist_toggled":{const l=zt(a);return l===null?null:`${t}:${l.task.id}:${l.item.id}:${l.item.is_completed?"1":"0"}`}}}function xt(t,a={}){const l=Ie(),o=ct(),n=e.ref([]),i=e.ref(a.autoConnect??!0),r=e.ref(!1),s=e.computed(()=>r.value),f=new Map;function u(V){var I;r.value!==V&&(r.value=V,(I=a.onConnectionChange)==null||I.call(a,V))}function k(){return(typeof a.echo=="function"?a.echo():a.echo)??kn()}function d(V){return V===null||f.has(V)?!1:(f.set(V,setTimeout(()=>{const I=f.get(V);I!==void 0&&clearTimeout(I),f.delete(V)},1500)),!0)}function g(){Array.from(f.entries()).forEach(([V,I])=>{clearTimeout(I),f.delete(V)})}function b(V){var $;const I=o.pushTaskNotificationToast(V);($=a.onToast)==null||$.call(a,I)}function m(V,I){const $=k();if($===null)return;$.private(V.name).listen(ge.created,v=>{var M;if(!d(be("task.created",v)))return;const w=Ut(v);w!==null&&(l.handleTaskCreated(w),(M=a.onEvent)==null||M.call(a,"task.created",w))}).listen(ge.updated,v=>{var M;if(!d(be("task.updated",v)))return;const w=At(v);w!==null&&(l.handleTaskUpdated(w),(M=a.onEvent)==null||M.call(a,"task.updated",w),l.isViewingTask(w.task.id)&&l.fetchTask(w.task.id),V.scope==="personal"&&b({id:`task.updated:${w.task.id}:${Wt(w.changes)}`,kind:"update",title:`${_e(w.task)} updated`,body:w.task.title,taskId:w.task.id,taskNumber:_e(w.task),tone:"info",url:`/admin/tasks/${w.task.id}`}))}).listen(ge.statusChanged,v=>{var M;if(!d(be("task.status_changed",v)))return;const w=It(v);w!==null&&(l.handleStatusChanged(w),(M=a.onEvent)==null||M.call(a,"task.status_changed",w))}).listen(ge.assigned,v=>{var M;if(!d(be("task.assigned",v)))return;const w=Ft(v);w!==null&&(l.handleTaskAssigned(w),(M=a.onEvent)==null||M.call(a,"task.assigned",w),V.scope==="personal"&&w.new_assignee_id===I&&b({id:`task.assigned:${w.task.id}:${w.new_assignee_id??""}`,kind:"assignment",title:`Assigned ${_e(w.task)}`,body:w.assigned_by===null?w.task.title:`${w.assigned_by.name} assigned ${w.task.title}`,taskId:w.task.id,taskNumber:_e(w.task),tone:"info",url:`/admin/tasks/${w.task.id}`}))}).listen(ge.completed,v=>{var M;if(!d(be("task.completed",v)))return;const w=Lt(v);w!==null&&(l.handleTaskCompleted(w),(M=a.onEvent)==null||M.call(a,"task.completed",w),V.scope==="personal"&&b({id:`task.completed:${w.task.id}`,kind:"completion",title:`${_e(w.task)} completed`,body:w.completed_by===null?w.task.title:`${w.completed_by.name} completed ${w.task.title}`,taskId:w.task.id,taskNumber:_e(w.task),tone:"success",url:`/admin/tasks/${w.task.id}`}))}).listen(ge.commentAdded,v=>{var M;if(!d(be("task.comment_added",v)))return;const w=Rt(v);w!==null&&(l.handleCommentAdded(w),(M=a.onEvent)==null||M.call(a,"task.comment_added",w),l.isViewingTask(w.task.id)&&l.fetchTask(w.task.id),V.scope==="personal"&&b({id:`task.comment_added:${w.task.id}:${w.comment.id}`,kind:"comment",title:`New comment on ${_e(w.task)}`,body:w.comment.author===null?w.comment.preview:`${w.comment.author.name}: ${w.comment.preview}`,taskId:w.task.id,taskNumber:_e(w.task),tone:"info",url:`/admin/tasks/${w.task.id}`}))}).listen(ge.checklistToggled,v=>{var M;if(!d(be("task.checklist_toggled",v)))return;const w=zt(v);w!==null&&(l.handleChecklistToggled(w),(M=a.onEvent)==null||M.call(a,"task.checklist_toggled",w))})}function y(){const V=k();n.value.forEach(I=>{V==null||V.leave(I)}),n.value=[],u(!1)}function c(){i.value=!0}function p(){i.value=!1,y(),i.value=!0}const N=e.computed(()=>{const V=[],I=e.toValue(t);I!=null&&I!==""&&V.push({name:`tasks.user.${String(I)}`,scope:"personal"});const $=a.entity===void 0?null:e.toValue(a.entity);return $!=null&&$.type!==""&&$.id!==""&&V.push({name:`tasks.entity.${$.type}.${String($.id)}`,scope:"entity"}),(a.teamIds===void 0?[]:e.toValue(a.teamIds)??[]).forEach(v=>{v==null||v===""||V.push({name:`tasks.team.${String(v)}`,scope:"team"})}),V});return e.watch(()=>({shouldConnect:i.value,targetNames:N.value.map(V=>V.name).join("|"),userId:String(e.toValue(t)??"")}),({shouldConnect:V,userId:I})=>{y(),g(),!(!V||I==="")&&(N.value.forEach($=>{m($,I)}),n.value=N.value.map($=>$.name),u(n.value.length>0))},{immediate:!0}),e.onUnmounted(()=>{y(),g()}),{isConnected:s,activeChannels:n,connect:c,disconnect:()=>{i.value=!1,y()},reconnect:p}}function _n(t){switch(t){case"my-tasks-today":return"my_tasks_today";case"upcoming-this-week":return"upcoming_this_week";case"overdue-tracker":return"overdue";case"team-activity-feed":return"activity";case"my-stats":return"my_stats";case"task-health-alerts":return"health_alerts"}}function fn(t){switch(t){case"task.created":return["my-tasks-today","upcoming-this-week","team-activity-feed","task-health-alerts"];case"task.completed":return["my-stats","overdue-tracker","team-activity-feed","task-health-alerts"];case"task.assigned":return["my-tasks-today","overdue-tracker","team-activity-feed","task-health-alerts"];case"task.status_changed":return["my-tasks-today","upcoming-this-week","overdue-tracker","team-activity-feed","task-health-alerts"];case"task.updated":return["upcoming-this-week","overdue-tracker","team-activity-feed","task-health-alerts"];default:return["team-activity-feed","task-health-alerts"]}}function Pt(t,a={}){const l=e.ref(null),o=e.ref(!1),n=e.ref(!1),i=e.ref(null),r=e.ref({}),s=e.ref("week");function f(m,y){r.value={...r.value,[m]:y}}async function u(m=s.value){const y=e.toValue(t);if(y==null||y==="")return l.value=null,null;o.value=!0,i.value=null;try{const c=await T().getDashboard(m);return l.value=c,s.value=c.widgets.my_stats.period,c}catch(c){throw i.value=c instanceof Error?c.message:String(c),c}finally{o.value=!1}}async function k(m){l.value===null&&await u(),f(m,!0),i.value=null;try{let y;switch(m){case"my-tasks-today":y=await T().getDashboardMyTasksToday();break;case"upcoming-this-week":y=await T().getDashboardUpcoming();break;case"overdue-tracker":y=await T().getDashboardOverdue();break;case"team-activity-feed":y=await T().getDashboardActivity();break;case"my-stats":y=await T().getDashboardStats(s.value),s.value=y.period;break;case"task-health-alerts":y=await T().getDashboardHealthAlerts();break}return l.value!==null&&(l.value={...l.value,widgets:{...l.value.widgets,[_n(m)]:y}}),y}catch(y){throw i.value=y instanceof Error?y.message:String(y),y}finally{f(m,!1)}}async function d(m,y){var c;n.value=!0,i.value=null;try{const p=await T().updateDashboardConfig({layout:m,preferences:y??((c=l.value)==null?void 0:c.config.preferences)??{}});return l.value!==null&&(l.value={...l.value,config:p}),p}catch(p){throw i.value=p instanceof Error?p.message:String(p),p}finally{n.value=!1}}function g(m){l.value!==null&&(l.value={...l.value,config:{...l.value.config,layout:{widgets:m}}})}async function b(m){s.value=m,await k("my-stats")}return e.watch(()=>e.toValue(t),m=>{if(m==null||m===""){l.value=null;return}(a.autoLoad??!0)&&u()},{immediate:!0}),xt(t,{echo:a.echo,autoConnect:a.autoConnect??!0,onEvent:m=>{fn(m).forEach(c=>{k(c)})}}),{dashboardData:l,loading:e.computed(()=>o.value),saving:e.computed(()=>n.value),error:e.computed(()=>i.value),widgetLoading:e.computed(()=>r.value),statsPeriod:e.computed(()=>s.value),loadDashboard:u,loadWidget:k,saveLayout:d,updateLayoutWidgets:g,setStatsPeriod:b}}function Ot(t){const a=Ie();async function l(m){if(!m)return null;const y=await a.fetchTask(m);return await a.fetchActiveTimer(),y}async function o(m){var y;return(y=a.currentTask)!=null&&y.id?a.addComment(a.currentTask.id,m):null}async function n(){var m;return(m=a.currentTask)!=null&&m.id?a.acknowledgeEscalation(a.currentTask.id):null}async function i(m){var y;return(y=a.currentTask)!=null&&y.id?a.snoozeEscalation(a.currentTask.id,m):null}async function r(m){var y;return(y=a.currentTask)!=null&&y.id?a.addChecklistItem(a.currentTask.id,m):null}async function s(m){var y;return(y=a.currentTask)!=null&&y.id?a.toggleChecklistItem(a.currentTask.id,m):null}async function f(m){var y;return(y=a.currentTask)!=null&&y.id?a.removeChecklistItem(a.currentTask.id,m):null}function u(m){var y;return m??((y=a.currentTask)==null?void 0:y.id)??null}async function k(m){const y=u(m);return y?a.startTimer(y):null}async function d(m){const y=u(m);return y?a.stopTimer(y):null}async function g(m,y){const c=u(y);return c?a.addManualTimeEntry(c,m):null}async function b(m,y){const c=u(y);return c?a.deleteTimeEntry(c,m):null}return t!==void 0&&e.watch(()=>e.toValue(t),async m=>{await l(m)},{immediate:!0}),{task:e.computed(()=>a.currentTask),activeTimer:e.computed(()=>a.activeTimer),loading:e.computed(()=>a.loading),error:e.computed(()=>a.error),loadTask:l,addComment:o,acknowledgeEscalation:n,snoozeEscalation:i,addChecklistItem:r,toggleChecklistItem:s,removeChecklistItem:f,startTimer:k,stopTimer:d,addManualTimeEntry:g,deleteTimeEntry:b,completeTask:a.completeTask,reopenTask:a.reopenTask,cancelTask:a.cancelTask,updateTask:a.updateTask,deleteTask:a.deleteTask}}function Ht(){const t=rt();function a(l){t.setFilters(l)}return{filters:e.computed(()=>t.filters),pagination:e.computed(()=>t.pagination),view:e.computed(()=>t.view),activeSavedFilterId:e.computed(()=>t.activeSavedFilterId),activeFilterCount:e.computed(()=>t.activeFilterCount),setFilter:t.setFilter,setFilters:a,setSort:t.setSort,setView:t.setView,setActiveSavedFilter:t.setActiveSavedFilter,clearFilters:t.clearFilters,nextPage:t.nextPage,previousPage:t.previousPage}}function vn(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function Ge(t){if(!vn(t))return null;const a=t.id,l=t.name;return typeof a!="string"&&typeof a!="number"||typeof l!="string"?null:{id:String(a),name:l}}function yn(){return typeof window>"u"?null:window.Echo??null}function gn(t,a={}){const l=e.ref([]),o=e.ref(null),n=e.ref(a.autoConnect??!0),i=e.computed(()=>o.value!==null);function r(){const d=(typeof a.echo=="function"?a.echo():a.echo)??yn();if(d===null)throw new Error("Laravel Echo is not available for task presence.");return d}function s(k){l.value=k}function f(){n.value=!0}function u(){n.value=!1,o.value!==null&&(r().leave(o.value),o.value=null),s([])}return e.watch(()=>{const k=e.toValue(t),d=k==null?null:String(k);return n.value&&d!==""?`presence-tasks.viewing.${d}`:null},(k,d)=>{if(typeof d=="string"&&d!==k&&(r().leave(d),o.value=null,s([])),k===null||k===d)return;r().join(k).here(b=>{s(b.map(Ge).filter(m=>m!==null))}).joining(b=>{const m=Ge(b);m===null||l.value.some(y=>y.id===m.id)||s([...l.value,m])}).leaving(b=>{const m=Ge(b);m!==null&&s(l.value.filter(y=>y.id!==m.id))}),o.value=k},{immediate:!0}),e.onUnmounted(()=>{o.value!==null&&r().leave(o.value)}),{viewers:l,isConnected:i,connect:f,disconnect:u}}function jt(){const t=Ie(),a=rt();async function l(){const s=await t.fetchSavedFilters();if(a.activeSavedFilterId===null){const f=s.find(u=>u.is_default);f!==void 0&&o(f)}return s}function o(s){const f={...s.filters,page:1,per_page:s.filters.per_page??a.filters.per_page??15};return a.setFilters(f),a.setActiveSavedFilter(s.id),f}async function n(s){const f=await t.createSavedFilter({name:s.name,filters:{...a.filters},is_default:s.is_default??!1,is_shared:s.is_shared??!1,position:s.position??t.savedFilters.length});return a.setActiveSavedFilter(f.id),f}async function i(s,f){const u=await t.updateSavedFilterRecord(s,f);return a.activeSavedFilterId===s&&f.filters!==void 0&&o(u),u}async function r(s){await t.deleteSavedFilterRecord(s),a.activeSavedFilterId===s&&a.setActiveSavedFilter(null)}return{savedFilters:e.computed(()=>t.savedFilters),loading:e.computed(()=>t.savedFiltersLoading),error:e.computed(()=>t.error),activeSavedFilterId:e.computed(()=>a.activeSavedFilterId),loadSavedFilters:l,applySavedFilter:o,saveCurrentFilter:n,updateSavedFilter:i,deleteSavedFilter:r}}function bn(t={}){const a=Dt(),l=e.ref(t.initialFilters??{});async function o(){await a.fetchWorkflows(l.value)}async function n(i){l.value={...i},await o()}return e.onMounted(()=>{(t.autoLoad??!0)&&o()}),{filters:e.computed(()=>l.value),workflows:e.computed(()=>a.workflows),pagination:e.computed(()=>a.pagination),currentWorkflow:e.computed(()=>a.currentWorkflow),testResult:e.computed(()=>a.testResult),logsByWorkflow:e.computed(()=>a.logsByWorkflow),loading:e.computed(()=>a.loading),saving:e.computed(()=>a.saving),error:e.computed(()=>a.error),reload:o,setFilters:n,fetchWorkflow:a.fetchWorkflow,createWorkflow:a.createWorkflow,updateWorkflow:a.updateWorkflow,deleteWorkflow:a.deleteWorkflow,toggleWorkflow:a.toggleWorkflow,duplicateWorkflow:a.duplicateWorkflow,moveWorkflow:a.moveWorkflow,fetchLogs:a.fetchLogs,runTest:a.runTest}}function qt(){const t=T(),a=e.ref([]),l=e.ref(null),o=e.ref(!1),n=e.ref(!1),i=e.ref(null),r=e.ref({current_page:1,last_page:1,per_page:15,total:0});function s(c){i.value=c instanceof Error?c.message:String(c)}async function f(c={}){o.value=!0,i.value=null;try{const p=await t.listRecurring(c);a.value=p.data,r.value=p.meta}catch(p){s(p)}finally{o.value=!1}}async function u(c){o.value=!0,i.value=null;try{const p=await t.getRecurring(c);return l.value=p,p}catch(p){return s(p),null}finally{o.value=!1}}async function k(c){n.value=!0,i.value=null;try{const p=await t.createRecurring(c);return a.value.unshift(p),p}catch(p){return s(p),null}finally{n.value=!1}}async function d(c,p){var N;n.value=!0,i.value=null;try{const V=await t.updateRecurring(c,p),I=a.value.findIndex($=>$.id===c);return I>=0&&a.value.splice(I,1,V),((N=l.value)==null?void 0:N.id)===c&&(l.value=V),V}catch(V){return s(V),null}finally{n.value=!1}}async function g(c){var p;n.value=!0,i.value=null;try{return await t.deleteRecurring(c),a.value=a.value.filter(N=>N.id!==c),((p=l.value)==null?void 0:p.id)===c&&(l.value=null),!0}catch(N){return s(N),!1}finally{n.value=!1}}async function b(c){n.value=!0,i.value=null;try{const p=await t.pauseRecurring(c),N=a.value.findIndex(V=>V.id===c);return N>=0&&a.value.splice(N,1,p),p}catch(p){return s(p),null}finally{n.value=!1}}async function m(c){n.value=!0,i.value=null;try{const p=await t.resumeRecurring(c),N=a.value.findIndex(V=>V.id===c);return N>=0&&a.value.splice(N,1,p),p}catch(p){return s(p),null}finally{n.value=!1}}async function y(c){n.value=!0,i.value=null;try{return await t.generateRecurring(c)}catch(p){return s(p),null}finally{n.value=!1}}return{templates:e.computed(()=>a.value),currentTemplate:e.computed(()=>l.value),loading:e.computed(()=>o.value),saving:e.computed(()=>n.value),error:e.computed(()=>i.value),pagination:e.computed(()=>r.value),loadTemplates:f,loadTemplate:u,createTemplate:k,updateTemplate:d,deleteTemplate:g,pauseTemplate:b,resumeTemplate:m,generateFromTemplate:y}}const hn={class:"stats-widget","data-testid":"panel-my-stats"},wn={class:"stats-widget__toggle",role:"group","aria-label":"Stats period"},En=["data-testid","aria-pressed","onClick"],Vn={class:"stats-widget__cards","data-testid":"list-stats-cards"},Nn=["data-testid","aria-label"],$n=["data-testid"],Tn=["aria-label"],Bn=["aria-label"],Sn=e.defineComponent({__name:"MyStatsWidget",props:{stats:{}},emits:["update:period"],setup(t,{emit:a}){const l=a;function o(i){return i==="up"?"↑":i==="down"?"↓":"→"}const n=[{key:"tasks_completed",label:"Tasks Completed"},{key:"avg_cycle_hours",label:"Avg Cycle Hours"},{key:"on_time_percentage",label:"On-Time %"},{key:"tasks_created",label:"Tasks Created"}];return(i,r)=>(e.openBlock(),e.createElementBlock("section",hn,[e.createElementVNode("header",wn,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(["week","month"],s=>e.createElementVNode("button",{key:s,type:"button",class:e.normalizeClass({active:t.stats.period===s}),"data-testid":`btn-stats-period-${s}`,"aria-pressed":t.stats.period===s,onClick:f=>l("update:period",s)},e.toDisplayString(s),11,En)),64))]),e.createElementVNode("div",Vn,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(n,s=>e.createElementVNode("article",{key:s.key,class:"stats-widget__card","data-testid":`card-stat-${s.key}`,"aria-label":`${s.label}: ${t.stats.current[s.key]}`},[e.createElementVNode("small",null,e.toDisplayString(s.label),1),e.createElementVNode("strong",{"data-testid":`badge-stat-value-${s.key}`},e.toDisplayString(t.stats.current[s.key]),9,$n),e.createElementVNode("span",{"aria-label":`Trend: ${o(t.stats.trends[s.key])} vs previous period`},e.toDisplayString(o(t.stats.trends[s.key]))+" vs previous",9,Tn)],8,Nn)),64))]),e.createElementVNode("footer",{class:"stats-widget__footer","data-testid":"badge-streak-days","aria-label":`${t.stats.current.streak_days??0} day streak`},e.toDisplayString(t.stats.current.streak_days??0)+" day streak ",9,Bn)]))}}),x=(t,a)=>{const l=t.__vccOpts||t;for(const[o,n]of a)l[o]=n;return l},Yt=x(Sn,[["__scopeId","data-v-242fabf1"]]),Cn={draft:"Draft",open:"Open",in_progress:"In Progress",blocked:"Blocked",under_review:"Under Review",complete:"Complete",cancelled:"Cancelled"},Dn={none:"None",low:"Low",medium:"Medium",high:"High",urgent:"Urgent",critical:"Critical"},Mn={draft:"is-draft",open:"is-open",in_progress:"is-in-progress",blocked:"is-blocked",under_review:"is-under-review",complete:"is-complete",cancelled:"is-cancelled"},An={draft:["draft","open","cancelled"],open:["open","in_progress","blocked","complete","cancelled"],in_progress:["in_progress","blocked","under_review","complete","cancelled"],blocked:["blocked","open","in_progress","cancelled"],under_review:["under_review","in_progress","complete","cancelled"],complete:["complete","open"],cancelled:["cancelled","open"]},In={none:"·",low:"↓",medium:"–",high:"↑",urgent:"⇈",critical:"!"},Fn={none:"is-none",low:"is-low",medium:"is-medium",high:"is-high",urgent:"is-urgent",critical:"is-critical"},Ln={reminder:"Reminder",warning:"Warning",due_now:"Due Now",overdue:"Overdue",escalated:"Escalated",critical:"Critical"},Rn={customer:"Customer",order:"Order",product:"Product","purchase-order":"Purchase Order",purchase_order:"Purchase Order",ticket:"Ticket"},zn={no_deadline:"No deadline",upcoming:"Scheduled",reminder:"Due soon",warning:"Due within 24h",due_now:"Due now",overdue:"Overdue",escalated:"Escalated",critical:"Critical"};function nt(t){return Cn[t]}function Un(t,a){return An[t].includes(a)}function yt(t,a){return!(!Un(t.status,a)||a==="in_progress"&&t.has_unresolved_blockers===!0)}function Wn(t){return Mn[t]}function xn(t){return Dn[t]}function Pn(t){return In[t]}function On(t){return Fn[t]}function Hn(t){return{none:"#94a3b8",low:"#0f766e",medium:"#2563eb",high:"#d97706",urgent:"#dc2626",critical:"#7f1d1d"}[t]}function jn(t){return t?Ln[t]:"No escalation"}function gt(t){if(!t)return"Record";const a=t.trim();if(a==="")return"Record";const l=Rn[a.toLowerCase()];return l||a.split(/[_-]+/).filter(o=>o.length>0).map(o=>o.charAt(0).toUpperCase()+o.slice(1)).join(" ")}function Kt(t,a){if(!t||!a)return"None";const l=a.trim();return l===""?gt(t):`${gt(t)} #${l}`}function qn(t,a=new Date){if(t.current_escalation_tier)return t.current_escalation_tier;if(!t.due_at)return"no_deadline";const o=(new Date(t.due_at).getTime()-a.getTime())/36e5;return o<=-24?o<=-48?"critical":"escalated":o<=-4?"overdue":o<=0?"due_now":t.is_overdue?"overdue":o<=24?"warning":o<=48?"reminder":"upcoming"}function Yn(t){return zn[t]}function ut(t){return t?new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric",year:"numeric"}).format(new Date(t)):"No due date"}function ne(t){return t?new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric",year:"numeric",hour:"numeric",minute:"2-digit"}).format(new Date(t)):"Unknown time"}function ve(t,a=new Date){if(!t)return"Not scheduled";const o=new Date(t).getTime()-a.getTime(),n=Math.round(o/6e4);if(Math.abs(n)<1)return"Just now";const i=new Intl.RelativeTimeFormat("en-US",{numeric:"auto"});if(Math.abs(n)<60)return i.format(n,"minute");const r=Math.round(n/60);if(Math.abs(r)<24)return i.format(r,"hour");const s=Math.round(r/24);return i.format(s,"day")}function Qt(t){return t.description?t.description:t.action.replace(/_/g," ")}const Oe=[{value:"MO",label:"Monday",shortLabel:"Mon"},{value:"TU",label:"Tuesday",shortLabel:"Tue"},{value:"WE",label:"Wednesday",shortLabel:"Wed"},{value:"TH",label:"Thursday",shortLabel:"Thu"},{value:"FR",label:"Friday",shortLabel:"Fri"},{value:"SA",label:"Saturday",shortLabel:"Sat"},{value:"SU",label:"Sunday",shortLabel:"Sun"}],Kn=["America/New_York","America/Chicago","America/Denver","America/Los_Angeles","America/Phoenix","UTC"],He=new Map(Oe.map(t=>[t.value,t.label])),bt=Oe.map(t=>t.value),Qn=new Map([[1,"first"],[2,"second"],[3,"third"],[4,"fourth"],[-1,"last"]]);function Ae(t,a=1){const l=typeof t=="number"?t:Number.parseInt(String(t??""),10);return Number.isFinite(l)&&l>0?l:a}function Gn(t){return new Map(t.split(";").map(a=>a.trim()).filter(Boolean).map(a=>{const[l,o]=a.split("=");return[String(l??"").toUpperCase(),String(o??"").toUpperCase()]}))}function Gt(t){return[...t].sort((a,l)=>bt.indexOf(a)-bt.indexOf(l))}function ht(t){return t.length===0?"":t.length===1?t[0]??"":t.length===2?`${t[0]??""} and ${t[1]??""}`:`${t.slice(0,-1).join(", ")}, and ${t[t.length-1]??""}`}function Jn(t){const a=t%10,l=t%100;return a===1&&l!==11?`${t}st`:a===2&&l!==12?`${t}nd`:a===3&&l!==13?`${t}rd`:`${t}th`}function ze(t){return`FREQ=DAILY;INTERVAL=${Ae(t)}`}function Zn(t,a){const l=Gt(a);return`FREQ=WEEKLY;INTERVAL=${Ae(t)};BYDAY=${l.join(",")}`}function Xn(t,a){const l=Math.min(Math.max(Ae(a),1),31);return`FREQ=MONTHLY;INTERVAL=${Ae(t)};BYMONTHDAY=${l}`}function el(t,a,l){const o=[1,2,3,4,-1].includes(l)?l:1;return`FREQ=MONTHLY;INTERVAL=${Ae(t)};BYDAY=${a};BYSETPOS=${o}`}function Jt(t){const a=t.trim().toUpperCase(),l=Gn(a),o=l.get("FREQ"),n=Ae(l.get("INTERVAL"));if(o==="DAILY")return{mode:"daily",interval:n,weeklyDays:["MO"],monthlyMode:"day_of_month",monthlyDay:1,monthlyWeekday:"MO",monthlySetPosition:1,raw:a};if(o==="WEEKLY"){const i=Gt((l.get("BYDAY")??"").split(",").filter(r=>He.has(r)));if(i.length>0)return{mode:"weekly",interval:n,weeklyDays:i,monthlyMode:"day_of_month",monthlyDay:1,monthlyWeekday:"MO",monthlySetPosition:1,raw:a}}if(o==="MONTHLY"){const i=Number.parseInt(l.get("BYMONTHDAY")??"",10);if(Number.isFinite(i))return{mode:"monthly",interval:n,weeklyDays:["MO"],monthlyMode:"day_of_month",monthlyDay:Math.min(Math.max(i,1),31),monthlyWeekday:"MO",monthlySetPosition:1,raw:a};const r=l.get("BYDAY"),s=Number.parseInt(l.get("BYSETPOS")??"",10);if(r!==void 0&&He.has(r)&&Number.isFinite(s))return{mode:"monthly",interval:n,weeklyDays:["MO"],monthlyMode:"weekday",monthlyDay:1,monthlyWeekday:r,monthlySetPosition:s,raw:a}}return{mode:"custom",interval:1,weeklyDays:["MO"],monthlyMode:"day_of_month",monthlyDay:1,monthlyWeekday:"MO",monthlySetPosition:1,raw:t.trim()}}function tl(t){const a=Jt(t);if(a.mode==="custom")return a.raw||"Custom recurrence rule";if(a.mode==="daily")return a.interval===1?"Every day":`Every ${a.interval} days`;if(a.mode==="weekly"){const i=a.weeklyDays.map(r=>He.get(r)).filter(r=>typeof r=="string");return a.interval===1?`Every ${ht(i)}`:a.interval===2&&i.length===1?`Every other ${i[0]??"week"}`:`Every ${a.interval} weeks on ${ht(i)}`}if(a.monthlyMode==="day_of_month"){const i=a.interval===1?"month":`${a.interval} months`;return`${Jn(a.monthlyDay)} of every ${i}`}const l=He.get(a.monthlyWeekday)??a.monthlyWeekday,o=Qn.get(a.monthlySetPosition)??`${a.monthlySetPosition}th`,n=a.interval===1?"month":`${a.interval} months`;return`${o} ${l} of every ${n}`}const al=["data-state","aria-label","title"],nl={class:"task-deadline-badge__icon","aria-hidden":"true"},ll={key:0,class:"task-deadline-badge__suffix"},ol=e.defineComponent({__name:"TaskDeadlineBadge",props:{task:{},compact:{type:Boolean,default:!1},showRelative:{type:Boolean,default:!1},showNoDeadline:{type:Boolean,default:!0},now:{default:null}},setup(t){const a=t;function l(d){return d instanceof Date?d:typeof d=="string"?new Date(d):new Date}const o=e.computed(()=>l(a.now)),n=e.computed(()=>qn({due_at:a.task.due_at??null,current_escalation_tier:a.task.current_escalation_tier??null,is_overdue:a.task.is_overdue??!1},o.value)),i=e.computed(()=>Yn(n.value)),r=e.computed(()=>a.task.due_at?ve(a.task.due_at,o.value):null),s=e.computed(()=>`state-${n.value}`),f=e.computed(()=>n.value==="no_deadline"?a.showNoDeadline:n.value!=="upcoming"),u=e.computed(()=>({no_deadline:"○",upcoming:"•",reminder:"◔",warning:"◕",due_now:"!",overdue:"!!",escalated:"▲",critical:"!!!"})[n.value]),k=e.computed(()=>{if(n.value==="no_deadline")return"No deadline set";if(!a.task.due_at)return i.value;const d=[i.value,`due ${ne(a.task.due_at)}`];return r.value&&d.push(r.value),d.join(" • ")});return(d,g)=>f.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(["task-deadline-badge",[s.value,{compact:t.compact}]]),"data-testid":"badge-task-deadline","data-state":n.value,"aria-label":k.value,title:k.value},[e.createElementVNode("span",nl,e.toDisplayString(u.value),1),e.createElementVNode("span",null,e.toDisplayString(i.value),1),t.showRelative&&r.value&&!t.compact?(e.openBlock(),e.createElementBlock("span",ll,e.toDisplayString(r.value),1)):e.createCommentVNode("",!0)],10,al)):e.createCommentVNode("",!0)}}),pe=x(ol,[["__scopeId","data-v-c5644ddc"]]),sl=["title","data-testid","aria-label"],il={class:"task-priority-icon__glyph","aria-hidden":"true"},rl={key:0,class:"task-priority-icon__label","aria-hidden":"true"},dl=e.defineComponent({__name:"TaskPriorityIcon",props:{priority:{},compact:{type:Boolean}},setup(t){const a=t,l=e.computed(()=>xn(a.priority)),o=e.computed(()=>Pn(a.priority)),n=e.computed(()=>On(a.priority));return(i,r)=>(e.openBlock(),e.createElementBlock("span",{class:e.normalizeClass(["task-priority-icon",[n.value,{compact:t.compact}]]),title:l.value,"data-testid":`badge-priority-${t.priority}`,"aria-label":`Priority: ${l.value}`},[e.createElementVNode("span",il,e.toDisplayString(o.value),1),t.compact?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("span",rl,e.toDisplayString(l.value),1))],10,sl))}}),Fe=x(dl,[["__scopeId","data-v-5827867c"]]),cl=["data-status"],ul=e.defineComponent({__name:"TaskStatusBadge",props:{status:{}},setup(t){const a=t,l=e.computed(()=>nt(a.status)),o=e.computed(()=>Wn(a.status));return(n,i)=>(e.openBlock(),e.createElementBlock("span",{class:e.normalizeClass(["task-status-badge",o.value]),"data-status":t.status,"data-testid":"badge-task-status",role:"status"},e.toDisplayString(l.value),11,cl))}}),Le=x(ul,[["__scopeId","data-v-3be91cb9"]]),ml={class:"dashboard-widget","data-testid":"panel-my-tasks-today"},pl={key:0,class:"dashboard-widget__empty","data-testid":"status-my-tasks-empty"},kl={key:1,class:"dashboard-widget__list","data-testid":"list-my-tasks-today"},_l=["data-testid","aria-label","onClick"],fl={class:"dashboard-widget__task-main"},vl={class:"dashboard-widget__task-meta"},yl={class:"dashboard-widget__footer","data-testid":"status-my-tasks-summary"},gl=e.defineComponent({__name:"MyTasksToday",props:{widget:{}},emits:["select-task"],setup(t,{emit:a}){const l=a;return(o,n)=>(e.openBlock(),e.createElementBlock("section",ml,[t.widget.items.length===0?(e.openBlock(),e.createElementBlock("div",pl,[...n[0]||(n[0]=[e.createElementVNode("strong",null,"All caught up!",-1),e.createElementVNode("p",null,"No tasks are due today.",-1)])])):(e.openBlock(),e.createElementBlock("ul",kl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.widget.items,i=>(e.openBlock(),e.createElementBlock("li",{key:i.id},[e.createElementVNode("button",{type:"button",class:"dashboard-widget__task","data-testid":`item-task-${i.id}`,"aria-label":`${i.display_number_formatted}: ${i.title}${i.is_overdue?" (overdue)":""}`,onClick:r=>l("select-task",i.id)},[e.createElementVNode("div",fl,[e.createVNode(Fe,{priority:i.priority,compact:""},null,8,["priority"]),e.createElementVNode("div",null,[e.createElementVNode("strong",null,e.toDisplayString(i.display_number_formatted),1),e.createElementVNode("p",null,e.toDisplayString(i.title),1)])]),e.createElementVNode("div",vl,[e.createVNode(pe,{task:i,compact:""},null,8,["task"]),e.createVNode(Le,{status:i.status},null,8,["status"]),e.createElementVNode("span",{class:e.normalizeClass({"is-overdue":i.is_overdue})},e.toDisplayString(e.unref(ve)(i.due_at)),3)])],8,_l)]))),128))])),e.createElementVNode("footer",yl,e.toDisplayString(t.widget.summary.due_today??0)+" due today, "+e.toDisplayString(t.widget.summary.overdue??0)+" overdue ",1)]))}}),Zt=x(gl,[["__scopeId","data-v-da91bfef"]]),bl={class:"overdue-tracker","data-testid":"panel-overdue-tracker"},hl={key:0,class:"overdue-tracker__empty","data-testid":"status-overdue-empty"},wl={key:1,class:"overdue-tracker__list","data-testid":"list-overdue-tasks"},El=["data-testid","aria-label","onClick"],Vl={class:"overdue-tracker__meta"},Nl=e.defineComponent({__name:"OverdueTracker",props:{widget:{}},emits:["select-task"],setup(t,{emit:a}){const l=a;function o(n){if(!n.due_at)return"is-low";const i=Math.abs((Date.now()-new Date(n.due_at).getTime())/36e5);return i>=72?"is-critical":i>=24?"is-high":"is-medium"}return(n,i)=>(e.openBlock(),e.createElementBlock("section",bl,[t.widget.items.length===0?(e.openBlock(),e.createElementBlock("div",hl,"No overdue tasks.")):(e.openBlock(),e.createElementBlock("ul",wl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.widget.items,r=>{var s,f;return e.openBlock(),e.createElementBlock("li",{key:r.id},[e.createElementVNode("button",{type:"button",class:e.normalizeClass(["overdue-tracker__row",o(r)]),"data-testid":`item-task-${r.id}`,"aria-label":`${r.display_number_formatted}: ${r.title}, assigned to ${((s=r.primary_assignee)==null?void 0:s.name)??"Unassigned"}, due ${e.unref(ve)(r.due_at)}`,onClick:u=>l("select-task",r.id)},[e.createElementVNode("div",null,[e.createElementVNode("strong",null,e.toDisplayString(r.display_number_formatted),1),e.createElementVNode("p",null,e.toDisplayString(r.title),1)]),e.createElementVNode("div",Vl,[e.createElementVNode("span",null,e.toDisplayString(e.unref(ve)(r.due_at)),1),e.createElementVNode("small",null,e.toDisplayString(((f=r.primary_assignee)==null?void 0:f.name)??"Unassigned"),1)])],10,El)])}),128))]))]))}}),Xt=x(Nl,[["__scopeId","data-v-97af3342"]]),$l={class:"health-alerts","data-testid":"panel-task-health-alerts"},Tl={key:0,class:"health-alerts__empty","data-testid":"status-health-alerts-empty"},Bl=["data-testid"],Sl=["data-testid"],Cl=["data-testid","aria-label","onClick"],Dl={class:"health-alerts__actions"},Ml=["data-testid","aria-label","onClick"],Al=["data-testid","aria-label","onClick"],Il=e.defineComponent({__name:"TaskHealthAlerts",props:{widget:{}},emits:["select-task","action"],setup(t,{emit:a}){const l=t,o=a,n=e.ref({}),i=e.computed(()=>{const s=Date.now();return l.widget.items.filter(f=>(n.value[f.task.id]??0)<s).flatMap(f=>f.issues.map(u=>({issue:u,alert:f}))).reduce((f,u)=>{const k=u.issue.type;return f[k]=[...f[k]??[],u],f},{})});function r(s){n.value={...n.value,[s]:Date.now()+1440*60*1e3}}return(s,f)=>(e.openBlock(),e.createElementBlock("section",$l,[Object.keys(i.value).length===0?(e.openBlock(),e.createElementBlock("div",Tl,"No tasks need attention.")):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,(u,k)=>{var d;return e.openBlock(),e.createElementBlock("article",{key:k,class:"health-alerts__group","data-testid":`panel-health-group-${k}`},[e.createElementVNode("header",null,e.toDisplayString((d=u[0])==null?void 0:d.issue.label),1),e.createElementVNode("ul",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(u,g=>(e.openBlock(),e.createElementBlock("li",{key:`${k}-${g.alert.task.id}`},[e.createElementVNode("div",{class:"health-alerts__card","data-testid":`card-health-alert-${g.alert.task.id}`},[e.createElementVNode("button",{type:"button",class:"health-alerts__task","data-testid":`btn-health-alert-task-${g.alert.task.id}`,"aria-label":`View task ${g.alert.task.display_number_formatted}: ${g.alert.task.title}`,onClick:b=>o("select-task",g.alert.task.id)},[e.createElementVNode("strong",null,e.toDisplayString(g.alert.task.display_number_formatted),1),e.createElementVNode("span",null,e.toDisplayString(g.alert.task.title),1)],8,Cl),e.createElementVNode("p",null,e.toDisplayString(g.issue.message),1),e.createElementVNode("div",Dl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(g.issue.suggested_actions,b=>(e.openBlock(),e.createElementBlock("button",{key:b,type:"button","data-testid":`btn-health-action-${b}-${g.alert.task.id}`,"aria-label":`${b.replace(/_/g," ")} for task ${g.alert.task.display_number_formatted}`,onClick:m=>o("action",{taskId:g.alert.task.id,action:b})},e.toDisplayString(b.replace(/_/g," ")),9,Ml))),128)),e.createElementVNode("button",{type:"button",class:"secondary","data-testid":`btn-snooze-alert-${g.alert.task.id}`,"aria-label":`Snooze alerts for task ${g.alert.task.display_number_formatted} for 24 hours`,onClick:b=>r(g.alert.task.id)},"Snooze 24h",8,Al)])],8,Sl)]))),128))])],8,Bl)}),128))]))}}),ea=x(Il,[["__scopeId","data-v-79a1caa4"]]),Fl={class:"activity-feed","data-testid":"panel-team-activity-feed"},Ll={class:"activity-feed__header"},Rl={"data-testid":"badge-activity-count"},zl={key:0,class:"activity-feed__empty","data-testid":"status-activity-empty"},Ul={key:1,class:"activity-feed__list","data-testid":"list-activity-feed"},Wl=["data-testid"],xl={class:"activity-feed__avatar","aria-hidden":"true"},Pl={class:"activity-feed__content"},Ol=["data-testid","aria-label","onClick"],Hl=e.defineComponent({__name:"TeamActivityFeed",props:{widget:{},scope:{}},emits:["select-task"],setup(t,{emit:a}){const l=a;return(o,n)=>(e.openBlock(),e.createElementBlock("section",Fl,[e.createElementVNode("header",Ll,[e.createElementVNode("strong",null,e.toDisplayString(t.scope==="team"?"Team feed":"My feed"),1),e.createElementVNode("span",Rl,e.toDisplayString(t.widget.summary.count??t.widget.items.length)+" items",1)]),t.widget.items.length===0?(e.openBlock(),e.createElementBlock("div",zl,"No recent activity.")):(e.openBlock(),e.createElementBlock("ul",Ul,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.widget.items,i=>{var r,s,f;return e.openBlock(),e.createElementBlock("li",{key:i.id},[e.createElementVNode("div",{class:"activity-feed__item","data-testid":`item-activity-${i.id}`},[e.createElementVNode("div",xl,e.toDisplayString(((s=(r=i.user)==null?void 0:r.name)==null?void 0:s.slice(0,1))??"?"),1),e.createElementVNode("div",Pl,[e.createElementVNode("p",null,[e.createElementVNode("strong",null,e.toDisplayString(((f=i.user)==null?void 0:f.name)??"System"),1),e.createTextVNode(" "+e.toDisplayString(e.unref(Qt)(i))+" ",1),i.task?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"activity-feed__task-link","data-testid":`btn-activity-task-${i.task.id}`,"aria-label":`View task ${i.task.display_number_formatted}`,onClick:u=>l("select-task",i.task.id)},e.toDisplayString(i.task.display_number_formatted),9,Ol)):e.createCommentVNode("",!0)]),e.createElementVNode("small",null,e.toDisplayString(e.unref(ve)(i.created_at)),1)])],8,Wl)])}),128))]))]))}}),ta=x(Hl,[["__scopeId","data-v-237c3c24"]]),jl={class:"upcoming-grid","data-testid":"panel-upcoming-this-week"},ql=["data-testid","aria-label"],Yl=["data-testid"],Kl=["data-testid"],Ql=["data-testid"],Gl=["data-testid","aria-label","onClick"],Jl=e.defineComponent({__name:"UpcomingThisWeek",props:{widget:{}},emits:["select-task"],setup(t,{emit:a}){const l=a;return(o,n)=>(e.openBlock(),e.createElementBlock("section",jl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.widget.days,i=>(e.openBlock(),e.createElementBlock("article",{key:i.date,class:e.normalizeClass(["upcoming-grid__column",{"is-today":i.is_today}]),"data-testid":`panel-upcoming-day-${i.date}`,"aria-label":`${i.label}${i.is_today?" (today)":""}: ${i.tasks.length} task${i.tasks.length!==1?"s":""}`},[e.createElementVNode("header",null,[e.createElementVNode("strong",null,e.toDisplayString(i.label),1),e.createElementVNode("span",{"data-testid":`badge-day-task-count-${i.date}`},e.toDisplayString(i.tasks.length),9,Yl)]),i.tasks.length===0?(e.openBlock(),e.createElementBlock("div",{key:0,class:"upcoming-grid__empty","data-testid":`status-day-empty-${i.date}`},"No tasks",8,Kl)):(e.openBlock(),e.createElementBlock("ul",{key:1,"data-testid":`list-day-tasks-${i.date}`},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.tasks,r=>(e.openBlock(),e.createElementBlock("li",{key:r.id},[e.createElementVNode("button",{type:"button","data-testid":`item-task-${r.id}`,"aria-label":`${r.display_number_formatted}: ${r.title}, due ${e.unref(ve)(r.due_at)}`,onClick:s=>l("select-task",r.id)},[e.createElementVNode("strong",null,e.toDisplayString(r.display_number_formatted),1),e.createElementVNode("span",null,e.toDisplayString(r.title),1),e.createVNode(pe,{task:r,compact:""},null,8,["task"]),e.createElementVNode("small",null,e.toDisplayString(e.unref(ve)(r.due_at)),1)],8,Gl)]))),128))],8,Ql))],10,ql))),128))]))}}),aa=x(Jl,[["__scopeId","data-v-de5be104"]]),Zl={class:"widget-grid","data-testid":"panel-widget-grid"},Xl=["data-testid","aria-label","onDragstart","onDrop"],eo=e.defineComponent({__name:"WidgetGrid",props:{widgets:{}},emits:["update:widgets"],setup(t,{emit:a}){const l=t,o=a,n=e.ref(null),i=e.computed(()=>[...l.widgets].filter(d=>d.visible!==!1).sort((d,g)=>d.y-g.y||d.x-g.x));function r(d){o("update:widgets",d(l.widgets.map(g=>({...g,...g.settings?{settings:{...g.settings}}:{}}))))}function s(d,g){d!==g&&r(b=>{const m=b.find(c=>c.id===d),y=b.find(c=>c.id===g);return m===void 0||y===void 0||([m.x,y.x]=[y.x,m.x],[m.y,y.y]=[y.y,m.y]),b})}function f(d,g){r(b=>b.map(m=>m.id!==d?m:g==="left"?{...m,x:Math.max(0,m.x-1)}:g==="right"?{...m,x:Math.min(11,m.x+1)}:g==="up"?{...m,y:Math.max(0,m.y-1)}:{...m,y:Math.max(0,m.y+1)}))}function u(d,g){r(b=>b.map(m=>m.id===d?{...m,w:Math.min(12,Math.max(2,m.w+g))}:m))}function k(d){return{gridColumn:`${d.x+1} / span ${d.w}`,gridRow:`${d.y+1} / span ${d.h}`}}return(d,g)=>(e.openBlock(),e.createElementBlock("div",Zl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,b=>(e.openBlock(),e.createElementBlock("article",{key:b.id,class:"widget-grid__item",style:e.normalizeStyle(k(b)),"data-testid":`panel-widget-grid-item-${b.id}`,draggable:"true","aria-label":`${b.id} widget, draggable`,onDragstart:m=>n.value=b.id,onDragend:g[0]||(g[0]=m=>n.value=null),onDragover:g[1]||(g[1]=e.withModifiers(()=>{},["prevent"])),onDrop:m=>n.value?s(n.value,b.id):null},[e.renderSlot(d.$slots,"default",{widget:b,move:m=>f(b.id,m),resize:m=>u(b.id,m)},void 0,!0)],44,Xl))),128))]))}}),na=x(eo,[["__scopeId","data-v-24cc5047"]]),to={class:"task-dashboard","data-testid":"panel-task-dashboard"},ao={class:"task-dashboard__header"},no={class:"task-dashboard__eyebrow"},lo={key:0,class:"task-dashboard__error","data-testid":"status-dashboard-error",role:"alert"},oo={key:1,class:"task-dashboard__loading","data-testid":"status-dashboard-loading","aria-live":"polite"},so={key:2,class:"task-dashboard__hidden","data-testid":"panel-hidden-widgets"},io=["data-testid","aria-label","onClick"],ro=["data-testid"],co={class:"task-dashboard__panel-header"},uo=["data-testid"],mo={class:"task-dashboard__panel-controls"},po=["data-testid","onClick"],ko=["data-testid","onClick"],_o=["data-testid","onClick"],fo=["data-testid","onClick"],vo=e.defineComponent({__name:"TaskDashboard",props:{userId:{},echo:{type:[Object,Function,null]},autoConnect:{type:Boolean}},emits:["select-task","widget-action"],setup(t,{emit:a}){const l=t,o=a,n=Pt(e.computed(()=>l.userId),{echo:l.echo,autoConnect:l.autoConnect??!0}),i=n.dashboardData,r=n.loading,s=n.error,f=n.widgetLoading,u=e.computed(()=>{var c;return((c=n.dashboardData.value)==null?void 0:c.config.layout.widgets.filter(p=>p.visible===!1))??[]});let k;function d(c){var p;return{"my-tasks-today":"My Tasks Today","upcoming-this-week":"Upcoming This Week","overdue-tracker":"Overdue Tracker","team-activity-feed":((p=n.dashboardData.value)==null?void 0:p.scope)==="team"?"Team Activity":"My Activity","my-stats":"My Stats","task-health-alerts":"Task Health Alerts"}[c]??c}function g(){n.dashboardData.value!==null&&(k!==void 0&&clearTimeout(k),k=setTimeout(()=>{n.dashboardData.value!==null&&n.saveLayout(n.dashboardData.value.config.layout)},300))}function b(c){n.updateLayoutWidgets(c),g()}function m(c){var N;const p=(N=n.dashboardData.value)==null?void 0:N.config.layout.widgets.map(V=>V.id===c?{...V,visible:!0}:V);p!==void 0&&b(p)}function y(c){o("select-task",c)}return e.onBeforeUnmount(()=>{k!==void 0&&clearTimeout(k)}),(c,p)=>{var N;return e.openBlock(),e.createElementBlock("section",to,[e.createElementVNode("header",ao,[e.createElementVNode("div",null,[e.createElementVNode("p",no,e.toDisplayString(((N=e.unref(i))==null?void 0:N.scope)==="team"?"Operations command center":"Personal command center"),1),p[2]||(p[2]=e.createElementVNode("h2",null,"Task Dashboard",-1))]),e.createElementVNode("button",{type:"button",class:"task-dashboard__refresh","data-testid":"btn-refresh-dashboard",onClick:p[0]||(p[0]=V=>e.unref(n).loadDashboard())}," Refresh ")]),e.unref(s)?(e.openBlock(),e.createElementBlock("p",lo,e.toDisplayString(e.unref(s)),1)):e.unref(r)&&e.unref(i)===null?(e.openBlock(),e.createElementBlock("p",oo,"Loading dashboard…")):e.createCommentVNode("",!0),u.value.length>0?(e.openBlock(),e.createElementBlock("div",so,[p[3]||(p[3]=e.createElementVNode("span",null,"Hidden widgets",-1)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(u.value,V=>(e.openBlock(),e.createElementBlock("button",{key:V.id,type:"button","data-testid":`btn-restore-widget-${V.id}`,"aria-label":`Show ${d(V.id)} widget`,onClick:I=>m(V.id)}," Show "+e.toDisplayString(d(V.id)),9,io))),128))])):e.createCommentVNode("",!0),e.unref(i)?(e.openBlock(),e.createBlock(na,{key:3,widgets:e.unref(i).config.layout.widgets,"onUpdate:widgets":b},{default:e.withCtx(({widget:V,move:I,resize:$})=>[e.createElementVNode("section",{class:"task-dashboard__panel","data-testid":`panel-widget-${V.id}`},[e.createElementVNode("header",co,[e.createElementVNode("div",null,[e.createElementVNode("h3",null,e.toDisplayString(d(V.id)),1),e.unref(f)[V.id]?(e.openBlock(),e.createElementBlock("small",{key:0,"data-testid":`status-widget-refreshing-${V.id}`,"aria-live":"polite"},"Refreshing…",8,uo)):e.createCommentVNode("",!0)]),e.createElementVNode("div",mo,[e.createElementVNode("button",{type:"button","aria-label":"Move left","data-testid":`btn-widget-move-left-${V.id}`,onClick:E=>I("left")},"←",8,po),e.createElementVNode("button",{type:"button","aria-label":"Move right","data-testid":`btn-widget-move-right-${V.id}`,onClick:E=>I("right")},"→",8,ko),e.createElementVNode("button",{type:"button","aria-label":"Grow widget","data-testid":`btn-widget-grow-${V.id}`,onClick:E=>$(1)},"+",8,_o),e.createElementVNode("button",{type:"button","aria-label":"Shrink widget","data-testid":`btn-widget-shrink-${V.id}`,onClick:E=>$(-1)},"−",8,fo)])]),V.id==="my-tasks-today"?(e.openBlock(),e.createBlock(Zt,{key:0,widget:e.unref(i).widgets.my_tasks_today,onSelectTask:y},null,8,["widget"])):V.id==="upcoming-this-week"?(e.openBlock(),e.createBlock(aa,{key:1,widget:e.unref(i).widgets.upcoming_this_week,onSelectTask:y},null,8,["widget"])):V.id==="overdue-tracker"?(e.openBlock(),e.createBlock(Xt,{key:2,widget:e.unref(i).widgets.overdue,onSelectTask:y},null,8,["widget"])):V.id==="team-activity-feed"?(e.openBlock(),e.createBlock(ta,{key:3,widget:e.unref(i).widgets.activity,scope:e.unref(i).scope,onSelectTask:y},null,8,["widget","scope"])):V.id==="my-stats"?(e.openBlock(),e.createBlock(Yt,{key:4,stats:e.unref(i).widgets.my_stats,"onUpdate:period":e.unref(n).setStatsPeriod},null,8,["stats","onUpdate:period"])):V.id==="task-health-alerts"?(e.openBlock(),e.createBlock(ea,{key:5,widget:e.unref(i).widgets.health_alerts,onSelectTask:y,onAction:p[1]||(p[1]=E=>o("widget-action",E))},null,8,["widget"])):e.createCommentVNode("",!0)],8,ro)]),_:1},8,["widgets"])):e.createCommentVNode("",!0)])}}}),la=x(vo,[["__scopeId","data-v-82b54361"]]),yo={class:"task-workload-panel","data-testid":"panel-task-workload"},go={class:"task-workload-panel__summary"},bo={key:0,class:"task-workload-panel__empty","data-testid":"status-task-workload-empty"},ho={key:1,class:"task-workload-panel__list","data-testid":"list-task-workload-users"},wo=["data-testid","onClick"],Eo=e.defineComponent({__name:"TaskWorkloadPanel",props:{summary:{},limit:{default:6}},emits:["select-user"],setup(t,{emit:a}){const l=t,o=a,n=e.computed(()=>{var r;return(((r=l.summary)==null?void 0:r.workload_per_user)??[]).slice(0,l.limit)});function i(r){return`task-workload-panel__chip--${r.workload_status}`}return(r,s)=>{var f,u,k;return e.openBlock(),e.createElementBlock("section",yo,[e.createElementVNode("header",go,[e.createElementVNode("article",null,[s[0]||(s[0]=e.createElementVNode("span",null,"Open",-1)),e.createElementVNode("strong",null,e.toDisplayString(((f=t.summary)==null?void 0:f.total_open)??0),1)]),e.createElementVNode("article",null,[s[1]||(s[1]=e.createElementVNode("span",null,"Overdue",-1)),e.createElementVNode("strong",null,e.toDisplayString(((u=t.summary)==null?void 0:u.total_overdue)??0),1)]),e.createElementVNode("article",null,[s[2]||(s[2]=e.createElementVNode("span",null,"Blocked",-1)),e.createElementVNode("strong",null,e.toDisplayString(((k=t.summary)==null?void 0:k.total_blocked)??0),1)])]),n.value.length===0?(e.openBlock(),e.createElementBlock("p",bo," No workload data yet. ")):(e.openBlock(),e.createElementBlock("ul",ho,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.value,d=>(e.openBlock(),e.createElementBlock("li",{key:d.user_id},[e.createElementVNode("button",{type:"button",class:"task-workload-panel__row","data-testid":`item-task-workload-${d.user_id}`,onClick:g=>o("select-user",d.user_id)},[e.createElementVNode("div",null,[e.createElementVNode("strong",null,e.toDisplayString(d.user_name),1),e.createElementVNode("p",null,e.toDisplayString(d.workload_summary),1)]),e.createElementVNode("span",{class:e.normalizeClass(["task-workload-panel__chip",i(d)])},e.toDisplayString(d.workload_status),3)],8,wo)]))),128))]))])}}}),Vo=x(Eo,[["__scopeId","data-v-4dc515ad"]]),No=["data-tier"],$o={key:0,class:"escalation-badge__icon","aria-hidden":"true"},To={key:1,class:"escalation-badge__suffix"},Bo=e.defineComponent({__name:"EscalationBadge",props:{tier:{},acknowledgedAt:{},snoozedUntil:{},compact:{type:Boolean}},setup(t){const a=t,l=e.computed(()=>jn(a.tier)),o=e.computed(()=>a.tier?`tier-${a.tier}`:"tier-none"),n=e.computed(()=>a.snoozedUntil?"Snoozed":a.acknowledgedAt?"Ack":null),i=e.computed(()=>{switch(a.tier){case"reminder":return"•";case"warning":return"◔";case"due_now":return"!";case"overdue":return"!!";case"escalated":return"▲";case"critical":return"!!!";default:return null}});return(r,s)=>t.tier?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(["escalation-badge",[o.value,{compact:t.compact,muted:t.acknowledgedAt,snoozed:t.snoozedUntil}]]),"data-testid":"badge-escalation","data-tier":t.tier},[i.value?(e.openBlock(),e.createElementBlock("span",$o,e.toDisplayString(i.value),1)):e.createCommentVNode("",!0),e.createElementVNode("span",null,e.toDisplayString(l.value),1),n.value?(e.openBlock(),e.createElementBlock("span",To,e.toDisplayString(n.value),1)):e.createCommentVNode("",!0)],10,No)):e.createCommentVNode("",!0)}}),qe=x(Bo,[["__scopeId","data-v-e454b2a6"]]),So=["data-testid","aria-label","onKeydown"],Co={class:"task-card__header"},Do={class:"task-card__identity"},Mo={class:"task-card__number"},Ao={class:"task-card__title"},Io={class:"task-card__meta"},Fo={key:0,class:"task-card__lock","aria-label":"Blocked task"},Lo={key:0,class:"task-card__description"},Ro={class:"task-card__footer"},zo={class:"task-card__person"},Uo={class:"task-card__person-value"},Wo={class:"task-card__date"},xo={class:"task-card__person-value"},Po=["aria-label"],Oo={class:"task-card__progress-bar","aria-hidden":"true"},Ho={class:"task-card__progress-label","aria-hidden":"true"},jo={key:2,class:"task-card__tags","aria-label":"Tags"},qo=e.defineComponent({__name:"TaskCard",props:{task:{},compact:{type:Boolean}},emits:["select"],setup(t,{emit:a}){const l=t,o=a,n=e.computed(()=>ut(l.task.due_at??null)),i=e.computed(()=>{var k;return((k=l.task.tags)==null?void 0:k.slice(0,l.compact?2:4))??[]}),r=e.computed(()=>l.task.has_unresolved_blockers===!0||l.task.status==="blocked"),s=e.computed(()=>{const k=l.task.checklist_progress;return!k||k.total===0?0:Math.min(100,Math.round(k.completed/k.total*100))}),f=e.computed(()=>l.task.current_escalation_tier?`escalation-${l.task.current_escalation_tier}`:"");function u(){o("select",l.task.id)}return(k,d)=>{var g;return e.openBlock(),e.createElementBlock("article",{class:e.normalizeClass(["task-card",[f.value,{compact:t.compact,overdue:t.task.is_overdue}]]),"data-testid":`card-task-${t.task.id}`,"aria-label":`Task ${t.task.display_number_formatted}: ${t.task.title}`,role:"button",tabindex:"0",onClick:u,onKeydown:e.withKeys(e.withModifiers(u,["prevent"]),["enter"])},[e.createElementVNode("header",Co,[e.createElementVNode("div",Do,[e.createElementVNode("span",Mo,e.toDisplayString(t.task.display_number_formatted),1),e.createElementVNode("h3",Ao,e.toDisplayString(t.task.title),1)]),e.createElementVNode("div",Io,[r.value?(e.openBlock(),e.createElementBlock("span",Fo," Lock ")):e.createCommentVNode("",!0),e.createVNode(pe,{task:t.task,compact:""},null,8,["task"]),e.createVNode(qe,{tier:t.task.current_escalation_tier??null,"acknowledged-at":t.task.escalation_acknowledged_at??null,"snoozed-until":t.task.escalation_snoozed_until??null,compact:""},null,8,["tier","acknowledged-at","snoozed-until"]),e.createVNode(Fe,{priority:t.task.priority,compact:""},null,8,["priority"]),e.createVNode(Le,{status:t.task.status},null,8,["status"])])]),t.task.description&&!t.compact?(e.openBlock(),e.createElementBlock("p",Lo,e.toDisplayString(t.task.description),1)):e.createCommentVNode("",!0),e.createElementVNode("div",Ro,[e.createElementVNode("div",zo,[d[0]||(d[0]=e.createElementVNode("span",{class:"task-card__person-label"},"Assignee",-1)),e.createElementVNode("span",Uo,e.toDisplayString(((g=t.task.primary_assignee)==null?void 0:g.name)??"Unassigned"),1)]),e.createElementVNode("div",Wo,[d[1]||(d[1]=e.createElementVNode("span",{class:"task-card__person-label"},"Deadline",-1)),e.createElementVNode("span",xo,e.toDisplayString(n.value),1)])]),t.task.checklist_progress&&t.task.checklist_progress.total>0?(e.openBlock(),e.createElementBlock("div",{key:1,class:"task-card__progress","aria-label":`Checklist progress: ${t.task.checklist_progress.completed} of ${t.task.checklist_progress.total} items complete`},[e.createElementVNode("div",Oo,[e.createElementVNode("div",{class:"task-card__progress-fill",style:e.normalizeStyle({width:`${s.value}%`})},null,4)]),e.createElementVNode("span",Ho,e.toDisplayString(t.task.checklist_progress.completed)+"/"+e.toDisplayString(t.task.checklist_progress.total),1)],8,Po)):e.createCommentVNode("",!0),i.value.length>0?(e.openBlock(),e.createElementBlock("ul",jo,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,b=>(e.openBlock(),e.createElementBlock("li",{key:b.id,class:"task-card__tag"},[e.createElementVNode("span",{class:"task-card__tag-dot",style:e.normalizeStyle({backgroundColor:b.color??"#94a3b8"}),"aria-hidden":"true"},null,4),e.createTextVNode(" "+e.toDisplayString(b.name),1)]))),128))])):e.createCommentVNode("",!0)],42,So)}}}),mt=x(qo,[["__scopeId","data-v-c2a57a3e"]]),Yo={class:"task-board-view","aria-label":"Task board","data-testid":"panel-task-board"},Ko={class:"task-board-view__header"},Qo={key:0,class:"task-board-view__error",role:"alert","data-testid":"status-board-error"},Go={class:"task-board-view__columns","data-testid":"list-board-columns"},Jo=["data-testid","onDragover","onDrop"],Zo={class:"task-board-view__column-header"},Xo=["data-testid","aria-label"],es=["data-testid"],ts=["data-testid"],as=["data-testid","onDragstart"],ns=e.defineComponent({__name:"TaskBoardView",props:{tasks:{},loading:{type:Boolean},visibleStatuses:{},updateTaskStatus:{type:[Function,null]}},emits:["select-task","status-change"],setup(t,{emit:a}){const l=["draft","open","in_progress","blocked","under_review","complete","cancelled"],o=t,n=a,i=e.ref([]),r=e.ref(null),s=e.ref(null),f=e.ref(null);e.watch(()=>o.tasks,c=>{i.value=c.map(p=>({...p}))},{immediate:!0,deep:!0});const u=e.computed(()=>o.visibleStatuses??l),k=e.computed(()=>({draft:i.value.filter(c=>c.status==="draft"),open:i.value.filter(c=>c.status==="open"),in_progress:i.value.filter(c=>c.status==="in_progress"),blocked:i.value.filter(c=>c.status==="blocked"),under_review:i.value.filter(c=>c.status==="under_review"),complete:i.value.filter(c=>c.status==="complete"),cancelled:i.value.filter(c=>c.status==="cancelled")}));function d(c,p){var N,V,I;r.value=c,f.value=null,(N=p.dataTransfer)==null||N.setData("text/plain",c),(I=(V=p.dataTransfer)==null?void 0:V.setDragImage)==null||I.call(V,p.currentTarget,20,20)}function g(){r.value=null,s.value=null}function b(){return i.value.find(c=>c.id===r.value)}function m(c){const p=b();return p===void 0?!1:yt(p,c)}async function y(c){var V;const p=b();if(p===void 0){g();return}if(!yt(p,c)){f.value=`Task ${p.display_number_formatted} cannot move to ${nt(c)}.`,g();return}const N=p.status;p.status=c,n("status-change",{taskId:p.id,status:c});try{await((V=o.updateTaskStatus)==null?void 0:V.call(o,p.id,c))}catch(I){p.status=N,f.value=I instanceof Error?I.message:"Unable to update the task status."}finally{g()}}return(c,p)=>(e.openBlock(),e.createElementBlock("section",Yo,[e.createElementVNode("header",Ko,[p[2]||(p[2]=e.createElementVNode("div",null,[e.createElementVNode("h2",null,"Board"),e.createElementVNode("p",null,"Drag tasks between status columns to keep work moving.")],-1)),f.value?(e.openBlock(),e.createElementBlock("p",Qo,e.toDisplayString(f.value),1)):e.createCommentVNode("",!0)]),e.createElementVNode("div",Go,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(u.value,N=>(e.openBlock(),e.createElementBlock("section",{key:N,class:e.normalizeClass(["task-board-view__column",{"is-hovered":s.value===N,"is-invalid":s.value===N&&r.value!==null&&!m(N)}]),"data-testid":`panel-board-column-${N}`,onDragover:e.withModifiers(V=>s.value=N,["prevent"]),onDragleave:p[1]||(p[1]=V=>s.value=null),onDrop:e.withModifiers(V=>y(N),["prevent"])},[e.createElementVNode("header",Zo,[e.createElementVNode("div",null,[e.createElementVNode("h3",null,e.toDisplayString(e.unref(nt)(N)),1),e.createElementVNode("span",{"data-testid":`badge-column-count-${N}`,"aria-label":`${k.value[N].length} tasks`},e.toDisplayString(k.value[N].length),9,Xo)])]),e.createElementVNode("div",{class:"task-board-view__column-body","data-testid":`list-column-tasks-${N}`},[k.value[N].length===0&&!t.loading?(e.openBlock(),e.createElementBlock("p",{key:0,class:"task-board-view__empty","data-testid":`panel-empty-column-${N}`}," Nothing here. ",8,ts)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(k.value[N],V=>(e.openBlock(),e.createElementBlock("div",{key:V.id,class:"task-board-view__card",draggable:"true","data-testid":`card-task-${V.id}`,onDragstart:I=>d(V.id,I),onDragend:g},[e.createVNode(mt,{task:V,compact:"",onSelect:p[0]||(p[0]=I=>n("select-task",I))},null,8,["task"])],40,as))),128))],8,es)],42,Jo))),128))])]))}}),ls=x(ns,[["__scopeId","data-v-d1d142e1"]]),os={class:"task-assignee-picker__control"},ss=["value","data-testid","aria-label","aria-expanded","aria-activedescendant","disabled","placeholder"],is=["data-testid","data-placement"],rs={key:0,class:"task-assignee-picker__hint","data-testid":"status-assignee-ranking"},ds={key:1,class:"task-assignee-picker__status","data-testid":"status-assignee-loading"},cs={key:2,class:"task-assignee-picker__status task-assignee-picker__status--error","data-testid":"status-assignee-error"},us={key:3,class:"task-assignee-picker__status","data-testid":"status-assignee-empty"},ms=["id","data-testid","aria-selected","onMouseenter","onClick"],ps={class:"task-assignee-picker__heading"},ks={key:0,class:"task-assignee-picker__recommendation","data-testid":"status-assignee-recommended"},_s={key:0,class:"task-assignee-picker__subtitle"},fs={key:1,class:"task-assignee-picker__meta"},vs={key:2,class:"task-assignee-picker__workload"},ys=e.defineComponent({__name:"TaskAssigneePicker",props:{modelValue:{default:null},selectedUser:{default:null},disabled:{type:Boolean,default:!1},placeholder:{default:"Search employees by name or email"},ariaLabel:{default:"Search assignees"},inputTestId:{default:"input-task-assignee"},listTestId:{default:"list-assignee-results"},rankByWorkload:{type:Boolean,default:!1},showWorkload:{type:Boolean,default:!0}},emits:["update:modelValue","select"],setup(t,{emit:a}){const l=t,o=a,n=e.ref(null),i=e.ref(null),r=e.ref(null),s=e.ref(""),f=e.ref(null),u=e.ref([]),k=e.ref(0),d=e.ref(!1),g=e.ref(!1),b=e.ref(null),m=e.ref("bottom"),y=e.ref({position:"fixed",top:"-9999px",left:"0px",width:"0px",maxHeight:"320px",transform:"none",zIndex:"5000",pointerEvents:"auto"});let c=null,p=0,N=!1;const I=`task-assignee-results-${Math.random().toString(36).slice(2,10)}`,$=e.computed(()=>{const C=u.value[k.value];return C===void 0?void 0:`${I}-${C.id}`}),E=e.computed(()=>{var W;const C=((W=f.value)==null?void 0:W.label)??"",U=s.value.trim()!==""&&s.value.trim()!==C.trim();return g.value||b.value!==null||U&&u.value.length===0}),v=e.computed(()=>l.rankByWorkload&&l.showWorkload&&u.value.some(C=>C.workload!==null)),w=e.computed(()=>d.value&&(u.value.length>0||E.value));function M(C){if(C==null)return null;const U="subtitle"in C&&typeof C.subtitle=="string"&&C.subtitle.trim()!==""?C.subtitle.trim():null,W="email"in C&&typeof C.email=="string"&&C.email.trim()!==""?C.email.trim():null,H=U??W,G="label"in C&&typeof C.label=="string"&&C.label.trim()!==""?C.label.trim():H===null?C.name:`${C.name} - ${H}`;return{id:String(C.id),name:C.name,email:W,label:G,subtitle:H,department:"department"in C&&typeof C.department=="string"&&C.department.trim()!==""?C.department.trim():null,position:"position"in C&&typeof C.position=="string"&&C.position.trim()!==""?C.position.trim():null,role_names:"role_names"in C&&Array.isArray(C.role_names)?C.role_names.filter(Z=>typeof Z=="string"&&Z.trim()!==""):[],workload:"workload"in C&&C.workload?C.workload:null,...C.avatar_url?{avatar_url:C.avatar_url}:{}}}function P(C){return l.rankByWorkload?[...C].sort((U,W)=>{var Z,oe;const H=((Z=U.workload)==null?void 0:Z.workload_score)??0,G=((oe=W.workload)==null?void 0:oe.workload_score)??0;return H!==G?H-G:U.name.localeCompare(W.name)}):C}function J(C){return[C.position,C.department,...(C.role_names??[]).slice(0,1)].filter(U=>typeof U=="string"&&U.trim()!=="")}function F(C){return C.workload?`task-assignee-picker__workload--${C.workload.workload_status}`:null}function O(C,U){return l.rankByWorkload&&U===0&&C.workload!==null&&u.value.length>0}function j(){var C;s.value=((C=f.value)==null?void 0:C.label)??""}function K(){c!==null&&(clearTimeout(c),c=null)}function Q(){u.value=[],k.value=0}function re(){if(i.value===null||!w.value)return;const C=i.value.getBoundingClientRect(),U=window.innerWidth,W=window.innerHeight,H=8,G=Math.min(C.width,U-H*2),Z=Math.min(Math.max(H,C.left),Math.max(H,U-G-H)),oe=W-C.bottom-H,ye=C.top-H,ce=oe<240&&ye>oe,Be=Math.max(140,ce?ye:oe);m.value=ce?"top":"bottom",y.value={position:"fixed",top:`${ce?C.top-H:C.bottom+H}px`,left:`${Z}px`,width:`${G}px`,maxHeight:`${Math.min(320,Be)}px`,transform:ce?"translateY(-100%)":"none",zIndex:"5000",pointerEvents:"auto"}}function ke(){e.nextTick(()=>{re()})}function ie(){N||(window.addEventListener("resize",re),document.addEventListener("scroll",re,!0),N=!0)}function Ve(){N&&(window.removeEventListener("resize",re),document.removeEventListener("scroll",re,!0),N=!1)}function Ne(){if(d.value=!1,Q(),b.value=null,f.value!==null){j();return}s.value=""}async function D(C){const U=C.trim();if(U===""){f.value=null,s.value="";return}const W=++p;g.value=!0;try{const H=await tt.searchUsers(U,{limit:1});if(W!==p)return;const G=H.find(Z=>Z.id===U)??H[0]??null;f.value=G,j()}catch{if(W!==p)return;f.value=null,s.value=U}finally{W===p&&(g.value=!1)}}async function B(C){const U=C.trim();if(U===""){g.value=!1,b.value=null,Q();return}const W=++p;g.value=!0,b.value=null;try{const H=await tt.searchUsers(U,{limit:8});if(W!==p)return;u.value=P(H),k.value=0}catch{if(W!==p)return;Q(),b.value="Unable to search employees right now."}finally{W===p&&(g.value=!1)}}function S(C){K(),c=setTimeout(()=>{B(C)},200)}function z(C){f.value=C,o("update:modelValue",C.id),o("select",C),j(),d.value=!1,b.value=null,Q()}function L(){var C;K(),p+=1,f.value=null,s.value="",d.value=!1,b.value=null,Q(),o("update:modelValue",null),o("select",null),(C=i.value)==null||C.focus()}function de(C){const W=C.target.value;if(s.value=W,d.value=!0,b.value=null,f.value!==null&&(f.value=null,o("update:modelValue",null),o("select",null)),W.trim()===""){K(),Q();return}S(W)}function $e(){l.disabled||(d.value=!0,f.value===null&&s.value.trim()!==""&&u.value.length===0&&S(s.value))}function Te(C){var W,H;const U=C.relatedTarget;U!==null&&((W=n.value)!=null&&W.contains(U)||(H=r.value)!=null&&H.contains(U))||Ne()}function q(C){if(C.key==="Escape"){C.preventDefault(),Ne();return}if(u.value.length!==0){if(C.key==="ArrowDown"){C.preventDefault(),d.value=!0,k.value=(k.value+1)%u.value.length;return}if(C.key==="ArrowUp"){C.preventDefault(),d.value=!0,k.value=k.value<=0?u.value.length-1:k.value-1;return}if(C.key==="Enter"&&d.value){const U=u.value[k.value];U!==void 0&&(C.preventDefault(),z(U))}}}return e.watch(w,C=>{if(C){ie(),ke();return}Ve()},{immediate:!0}),e.watch(()=>[w.value,u.value.length,g.value,b.value],([C])=>{C&&ke()}),e.watch(()=>l.selectedUser,C=>{const U=M(C);U!==null&&(f.value=U,j())},{immediate:!0}),e.watch(()=>l.modelValue,C=>{var H;const U=C==null||C===""?null:String(C),W=((H=f.value)==null?void 0:H.id)??null;if(U===W){U===null&&(f.value=null,s.value="");return}if(U===null){if(f.value===null&&s.value.trim()!=="")return;f.value=null,s.value="",Q();return}D(U)},{immediate:!0}),e.onBeforeUnmount(()=>{K(),Ve()}),(C,U)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"rootRef",ref:n,class:e.normalizeClass(["task-assignee-picker",{"is-disabled":t.disabled}]),onFocusout:Te},[e.createElementVNode("div",os,[e.createElementVNode("input",{ref_key:"inputRef",ref:i,value:s.value,type:"text","data-testid":t.inputTestId,class:"task-assignee-picker__input","aria-label":t.ariaLabel,"aria-autocomplete":"list","aria-haspopup":"listbox","aria-controls":I,"aria-expanded":d.value,"aria-activedescendant":$.value,disabled:t.disabled,placeholder:t.placeholder,role:"combobox",autocomplete:"off",onFocus:$e,onInput:de,onKeydown:q},null,40,ss),!t.disabled&&(f.value!==null||s.value!=="")?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"task-assignee-picker__clear","data-testid":"btn-clear-assignee","aria-label":"Clear assignee",onClick:L}," × ")):e.createCommentVNode("",!0)]),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[w.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"menuRef",ref:r,id:I,class:"task-assignee-picker__menu","data-testid":t.listTestId,"data-placement":m.value,style:e.normalizeStyle(y.value),role:"listbox"},[v.value&&!g.value&&b.value===null&&u.value.length>0?(e.openBlock(),e.createElementBlock("p",rs," Ranked by current workload. Lowest-load match first. ")):e.createCommentVNode("",!0),g.value?(e.openBlock(),e.createElementBlock("p",ds," Searching employees... ")):b.value!==null?(e.openBlock(),e.createElementBlock("p",cs,e.toDisplayString(b.value),1)):u.value.length===0?(e.openBlock(),e.createElementBlock("p",us," No matching employees found. ")):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:4},e.renderList(u.value,(W,H)=>(e.openBlock(),e.createElementBlock("button",{id:`${I}-${W.id}`,key:W.id,type:"button",class:e.normalizeClass(["task-assignee-picker__option",{"is-active":H===k.value}]),"data-testid":`option-assignee-${W.id}`,role:"option","aria-selected":H===k.value,onMousedown:U[0]||(U[0]=e.withModifiers(()=>{},["prevent"])),onMouseenter:G=>k.value=H,onClick:G=>z(W)},[e.createElementVNode("div",ps,[e.createElementVNode("strong",null,e.toDisplayString(W.name),1),O(W,H)?(e.openBlock(),e.createElementBlock("span",ks," Best available ")):e.createCommentVNode("",!0)]),W.subtitle?(e.openBlock(),e.createElementBlock("span",_s,e.toDisplayString(W.subtitle),1)):e.createCommentVNode("",!0),J(W).length>0?(e.openBlock(),e.createElementBlock("span",fs,e.toDisplayString(J(W).join(" · ")),1)):e.createCommentVNode("",!0),t.showWorkload&&W.workload?(e.openBlock(),e.createElementBlock("div",vs,[e.createElementVNode("span",{class:e.normalizeClass(["task-assignee-picker__workload-chip",F(W)])},e.toDisplayString(W.workload.workload_summary),3)])):e.createCommentVNode("",!0)],42,ms))),128))],12,is)):e.createCommentVNode("",!0)]))],34))}}),Ee=x(ys,[["__scopeId","data-v-dddd3b7f"]]),gs={class:"task-bulk-action-bar","aria-label":"Bulk actions","data-testid":"panel-bulk-action-bar"},bs={class:"task-bulk-action-bar__summary"},hs={"data-testid":"status-selected-count"},ws={class:"task-bulk-action-bar__controls"},Es=["disabled"],Vs={key:0},Ns=["disabled"],$s={key:1},Ts=["disabled"],Bs={key:2},Ss={key:3},Cs=["disabled"],Ds={key:4},Ms=["disabled"],As=["disabled"],Is={key:0,class:"task-bulk-action-bar__result",role:"status","aria-live":"polite","data-testid":"status-bulk-result"},Fs=e.defineComponent({__name:"TaskBulkActionBar",props:{selectedCount:{},busy:{type:Boolean},result:{}},emits:["apply","clear"],setup(t,{emit:a}){const l=t,o=a,n=e.ref("set_status"),i=e.ref("open"),r=e.ref("medium"),s=e.ref(""),f=e.ref(""),u=e.ref(""),k=e.computed(()=>n.value==="set_status"),d=e.computed(()=>n.value==="set_priority"),g=e.computed(()=>n.value==="assign"),b=e.computed(()=>n.value==="add_tag"||n.value==="remove_tag"),m=e.computed(()=>n.value==="complete"),y=e.computed(()=>l.result===null||l.result===void 0?"":`${l.result.success.length} succeeded, ${l.result.failed.length} failed`);function c(){const p={};k.value&&(p.status=i.value),d.value&&(p.priority=r.value),g.value&&(p.user_id=s.value),b.value&&(p.name=f.value),m.value&&u.value.trim()!==""&&(p.note=u.value.trim()),o("apply",{action:n.value,params:p})}return(p,N)=>(e.openBlock(),e.createElementBlock("section",gs,[e.createElementVNode("div",bs,[e.createElementVNode("strong",hs,e.toDisplayString(t.selectedCount)+" selected",1),e.createElementVNode("button",{type:"button","data-testid":"btn-clear-selection",onClick:N[0]||(N[0]=V=>o("clear"))},"Clear selection")]),e.createElementVNode("div",ws,[e.createElementVNode("label",null,[N[8]||(N[8]=e.createElementVNode("span",null,"Action",-1)),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":N[1]||(N[1]=V=>n.value=V),"data-testid":"select-bulk-action","aria-label":"Bulk action to apply",disabled:t.busy},[...N[7]||(N[7]=[e.createStaticVNode('<option value="assign" data-v-ccd06617>Assign</option><option value="set_status" data-v-ccd06617>Set status</option><option value="set_priority" data-v-ccd06617>Set priority</option><option value="add_tag" data-v-ccd06617>Add tag</option><option value="remove_tag" data-v-ccd06617>Remove tag</option><option value="complete" data-v-ccd06617>Complete</option><option value="cancel" data-v-ccd06617>Cancel</option><option value="delete" data-v-ccd06617>Delete</option>',8)])],8,Es),[[e.vModelSelect,n.value]])]),k.value?(e.openBlock(),e.createElementBlock("label",Vs,[N[10]||(N[10]=e.createElementVNode("span",null,"Status",-1)),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":N[2]||(N[2]=V=>i.value=V),"data-testid":"select-bulk-status","aria-label":"Status to set",disabled:t.busy},[...N[9]||(N[9]=[e.createStaticVNode('<option value="draft" data-v-ccd06617>Draft</option><option value="open" data-v-ccd06617>Open</option><option value="in_progress" data-v-ccd06617>In Progress</option><option value="blocked" data-v-ccd06617>Blocked</option><option value="under_review" data-v-ccd06617>Under Review</option><option value="complete" data-v-ccd06617>Complete</option><option value="cancelled" data-v-ccd06617>Cancelled</option>',7)])],8,Ns),[[e.vModelSelect,i.value]])])):e.createCommentVNode("",!0),d.value?(e.openBlock(),e.createElementBlock("label",$s,[N[12]||(N[12]=e.createElementVNode("span",null,"Priority",-1)),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":N[3]||(N[3]=V=>r.value=V),"data-testid":"select-bulk-priority","aria-label":"Priority to set",disabled:t.busy},[...N[11]||(N[11]=[e.createStaticVNode('<option value="none" data-v-ccd06617>None</option><option value="low" data-v-ccd06617>Low</option><option value="medium" data-v-ccd06617>Medium</option><option value="high" data-v-ccd06617>High</option><option value="urgent" data-v-ccd06617>Urgent</option><option value="critical" data-v-ccd06617>Critical</option>',6)])],8,Ts),[[e.vModelSelect,r.value]])])):e.createCommentVNode("",!0),g.value?(e.openBlock(),e.createElementBlock("label",Bs,[N[13]||(N[13]=e.createElementVNode("span",null,"Assignee",-1)),e.createVNode(Ee,{modelValue:s.value,"onUpdate:modelValue":N[4]||(N[4]=V=>s.value=V),"input-test-id":"input-bulk-assignee","aria-label":"Assignee",disabled:t.busy??!1,placeholder:"Assign to employee","rank-by-workload":""},null,8,["modelValue","disabled"])])):e.createCommentVNode("",!0),b.value?(e.openBlock(),e.createElementBlock("label",Ss,[N[14]||(N[14]=e.createElementVNode("span",null,"Tag",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":N[5]||(N[5]=V=>f.value=V),type:"text","data-testid":"input-bulk-tag","aria-label":"Tag name",disabled:t.busy,placeholder:"warehouse"},null,8,Cs),[[e.vModelText,f.value]])])):e.createCommentVNode("",!0),m.value?(e.openBlock(),e.createElementBlock("label",Ds,[N[15]||(N[15]=e.createElementVNode("span",null,"Note",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":N[6]||(N[6]=V=>u.value=V),type:"text","data-testid":"input-bulk-completion-note","aria-label":"Completion note",disabled:t.busy,placeholder:"Optional completion note"},null,8,Ms),[[e.vModelText,u.value]])])):e.createCommentVNode("",!0),e.createElementVNode("button",{type:"button",class:"task-bulk-action-bar__apply","data-testid":"btn-apply-bulk-action",disabled:t.busy,onClick:c}," Apply ",8,As)]),y.value?(e.openBlock(),e.createElementBlock("p",Is,e.toDisplayString(y.value),1)):e.createCommentVNode("",!0)]))}}),oa=x(Fs,[["__scopeId","data-v-ccd06617"]]),Ls={class:"task-calendar-view","aria-label":"Task calendar","data-testid":"panel-task-calendar"},Rs={class:"task-calendar-view__header"},zs={class:"task-calendar-view__nav",role:"group","aria-label":"Calendar navigation"},Us={"aria-live":"polite","aria-atomic":"true","data-testid":"status-current-month"},Ws={class:"task-calendar-view__layout"},xs=["aria-label"],Ps=["data-testid"],Os={class:"task-calendar-view__cell-header"},Hs=["data-testid","aria-label"],js=["data-testid","aria-label","onClick"],qs={class:"task-calendar-view__task-number"},Ys={class:"task-calendar-view__task-title"},Ks={class:"task-calendar-view__sidebar","data-testid":"panel-no-date-sidebar"},Qs={key:0,"data-testid":"status-no-unscheduled"},Gs=["data-testid","aria-label","onClick"],Js=e.defineComponent({__name:"TaskCalendarView",props:{tasks:{},initialMonth:{}},emits:["select-task"],setup(t,{emit:a}){const l=t,o=a,n=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];function i(g){if(g instanceof Date)return new Date(g.getFullYear(),g.getMonth(),1);if(typeof g=="string"&&/^\d{4}-\d{2}/.test(g)){const[m,y]=g.slice(0,7).split("-");return new Date(Number(m),Number(y)-1,1)}const b=typeof g=="string"?new Date(g):new Date;return new Date(b.getFullYear(),b.getMonth(),1)}const r=e.ref(i(l.initialMonth)),s=e.computed(()=>new Intl.DateTimeFormat("en-US",{month:"long",year:"numeric"}).format(r.value)),f=e.computed(()=>{const g=new Date(r.value);return g.setDate(1-g.getDay()),Array.from({length:42},(b,m)=>{const y=new Date(g);y.setDate(g.getDate()+m);const c=y.toISOString().slice(0,10),p=l.tasks.filter(N=>{var V;return((V=N.due_at)==null?void 0:V.slice(0,10))===c});return{key:c,date:y,isCurrentMonth:y.getMonth()===r.value.getMonth(),tasks:p}})}),u=e.computed(()=>l.tasks.filter(g=>g.due_at===null));function k(){r.value=new Date(r.value.getFullYear(),r.value.getMonth()-1,1)}function d(){r.value=new Date(r.value.getFullYear(),r.value.getMonth()+1,1)}return(g,b)=>(e.openBlock(),e.createElementBlock("section",Ls,[e.createElementVNode("header",Rs,[b[0]||(b[0]=e.createElementVNode("div",null,[e.createElementVNode("h2",null,"Calendar"),e.createElementVNode("p",null,"Track due dates at a glance and keep unscheduled work visible.")],-1)),e.createElementVNode("div",zs,[e.createElementVNode("button",{type:"button","data-testid":"btn-prev-month","aria-label":"Previous month",onClick:k},"Previous"),e.createElementVNode("strong",Us,e.toDisplayString(s.value),1),e.createElementVNode("button",{type:"button","data-testid":"btn-next-month","aria-label":"Next month",onClick:d},"Next")])]),e.createElementVNode("div",Ws,[e.createElementVNode("div",{class:"task-calendar-view__grid",role:"grid","aria-label":`Calendar for ${s.value}`},[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(n,m=>e.createElementVNode("div",{key:m,class:"task-calendar-view__weekday",role:"columnheader"},e.toDisplayString(m),1)),64)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(f.value,m=>(e.openBlock(),e.createElementBlock("article",{key:m.key,class:e.normalizeClass(["task-calendar-view__cell",{"is-muted":!m.isCurrentMonth}]),role:"gridcell","data-testid":`panel-calendar-day-${m.key}`},[e.createElementVNode("header",Os,[e.createElementVNode("span",null,e.toDisplayString(m.date.getDate()),1),m.tasks.length>3?(e.openBlock(),e.createElementBlock("span",{key:0,class:"task-calendar-view__dot-indicator","data-testid":`badge-overflow-${m.key}`,"aria-label":`${m.tasks.length-3} more tasks`},"+"+e.toDisplayString(m.tasks.length-3),9,Hs)):e.createCommentVNode("",!0)]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.tasks.slice(0,3),y=>(e.openBlock(),e.createElementBlock("button",{key:y.id,type:"button",class:e.normalizeClass(["task-calendar-view__task",{"is-overdue":y.is_overdue}]),"data-testid":`btn-calendar-task-${y.id}`,"aria-label":`${y.display_number_formatted}: ${y.title}${y.is_overdue?" (overdue)":""}`,style:e.normalizeStyle({"--task-calendar-priority":e.unref(Hn)(y.priority)}),onClick:c=>o("select-task",y.id)},[e.createElementVNode("span",qs,e.toDisplayString(y.display_number_formatted),1),e.createElementVNode("span",Ys,e.toDisplayString(y.title),1),e.createVNode(pe,{task:y,compact:""},null,8,["task"])],14,js))),128))],10,Ps))),128))],8,xs),e.createElementVNode("aside",Ks,[b[1]||(b[1]=e.createElementVNode("h3",null,"No Date",-1)),u.value.length===0?(e.openBlock(),e.createElementBlock("p",Qs,"Every task in this set has a due date.")):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(u.value,m=>(e.openBlock(),e.createElementBlock("button",{key:m.id,type:"button",class:"task-calendar-view__sidebar-task","data-testid":`btn-sidebar-task-${m.id}`,"aria-label":`${m.display_number_formatted}: ${m.title}`,onClick:y=>o("select-task",m.id)},[e.createElementVNode("strong",null,e.toDisplayString(m.display_number_formatted),1),e.createElementVNode("span",null,e.toDisplayString(m.title),1),e.createVNode(pe,{task:m,compact:""},null,8,["task"]),e.createElementVNode("small",null,e.toDisplayString(e.unref(ut)(m.due_at)),1)],8,Gs))),128))])])]))}}),Zs=x(Js,[["__scopeId","data-v-583da259"]]),Xs={class:"task-filter-bar","data-testid":"panel-filter-bar"},ei={class:"task-filter-bar__topline"},ti={class:"task-filter-bar__search"},ai=["disabled"],ni={class:"task-filter-bar__actions"},li=["aria-label"],oi={class:"task-filter-bar__grid"},si=["disabled"],ii=["selected","value"],ri=["disabled"],di=["selected","value"],ci=["value","disabled"],ui=["value","disabled"],mi=["value","disabled"],pi=e.defineComponent({__name:"TaskFilterBar",props:{modelValue:{},loading:{type:Boolean}},emits:["update:modelValue","clear","save-current"],setup(t,{emit:a}){const l=t,o=a,n=["draft","open","in_progress","blocked","under_review","complete","cancelled"],i=["none","low","medium","high","urgent","critical"],r=e.ref(l.modelValue.search??"");let s=null;e.watch(()=>l.modelValue.search,m=>{r.value=m??""}),e.onBeforeUnmount(()=>{s&&clearTimeout(s)});const f=e.computed(()=>Object.entries(l.modelValue).reduce((m,[y,c])=>y==="page"||y==="per_page"||y==="sort"||c==null||c===""||Array.isArray(c)&&c.length===0?m:m+1,0));function u(m,y){const c={...l.modelValue,page:1};y==null||y===""?delete c[m]:c[m]=y,o("update:modelValue",c)}function k(m,y){const c=y.target,p=Array.from(c.selectedOptions).map(N=>N.value);u(m,p.length>0?p:void 0)}function d(){s&&clearTimeout(s),s=setTimeout(()=>{u("search",r.value||void 0)},250)}function g(m){const y={...l.modelValue,page:1};delete y.assignee_id,m===null||m===""?delete y.assignee:y.assignee=m,o("update:modelValue",y)}function b(){r.value="",o("update:modelValue",{page:1,per_page:l.modelValue.per_page??15,sort:l.modelValue.sort??"-created_at"}),o("clear")}return(m,y)=>(e.openBlock(),e.createElementBlock("section",Xs,[e.createElementVNode("div",ei,[e.createElementVNode("div",ti,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":y[0]||(y[0]=c=>r.value=c),type:"search","data-testid":"input-search-tasks","aria-label":"Search tasks",disabled:t.loading,placeholder:"Search tasks",onInput:d},null,40,ai),[[e.vModelText,r.value]])]),e.createElementVNode("div",ni,[e.createElementVNode("button",{type:"button",class:"task-filter-bar__save","data-testid":"btn-save-filter",onClick:y[1]||(y[1]=c=>o("save-current"))}," Save current filter "),e.createElementVNode("button",{type:"button",class:"task-filter-bar__clear","data-testid":"btn-clear-filters",onClick:b},[y[7]||(y[7]=e.createTextVNode(" Clear all ",-1)),f.value>0?(e.openBlock(),e.createElementBlock("span",{key:0,class:"task-filter-bar__badge","data-testid":"badge-active-filter-count","aria-label":`${f.value} active filters`},e.toDisplayString(f.value),9,li)):e.createCommentVNode("",!0)])])]),e.createElementVNode("div",oi,[e.createElementVNode("label",null,[y[8]||(y[8]=e.createElementVNode("span",null,"Status",-1)),e.createElementVNode("select",{multiple:"","data-testid":"select-status-filter","aria-label":"Filter by status",disabled:t.loading,onChange:y[2]||(y[2]=c=>k("status",c))},[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(n,c=>e.createElementVNode("option",{key:c,selected:Array.isArray(t.modelValue.status)?t.modelValue.status.includes(c):t.modelValue.status===c,value:c},e.toDisplayString(c),9,ii)),64))],40,si)]),e.createElementVNode("label",null,[y[9]||(y[9]=e.createElementVNode("span",null,"Priority",-1)),e.createElementVNode("select",{multiple:"","data-testid":"select-priority-filter","aria-label":"Filter by priority",disabled:t.loading,onChange:y[3]||(y[3]=c=>k("priority",c))},[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(i,c=>e.createElementVNode("option",{key:c,selected:Array.isArray(t.modelValue.priority)?t.modelValue.priority.includes(c):t.modelValue.priority===c,value:c},e.toDisplayString(c),9,di)),64))],40,ri)]),e.createElementVNode("label",null,[y[10]||(y[10]=e.createElementVNode("span",null,"Assignee",-1)),e.createVNode(Ee,{"model-value":t.modelValue.assignee??t.modelValue.assignee_id??null,"input-test-id":"input-assignee-filter","aria-label":"Filter by assignee",disabled:t.loading??!1,placeholder:"Filter by employee","onUpdate:modelValue":g},null,8,["model-value","disabled"])]),e.createElementVNode("label",null,[y[11]||(y[11]=e.createElementVNode("span",null,"Tag",-1)),e.createElementVNode("input",{value:t.modelValue.tag??"",type:"text","data-testid":"input-tag-filter","aria-label":"Filter by tag",disabled:t.loading,placeholder:"Tag name",onInput:y[4]||(y[4]=c=>u("tag",c.target.value||void 0))},null,40,ci)]),e.createElementVNode("label",null,[y[12]||(y[12]=e.createElementVNode("span",null,"Due after",-1)),e.createElementVNode("input",{value:t.modelValue.due_after??"",type:"date","data-testid":"input-due-after-filter","aria-label":"Filter tasks due after date",disabled:t.loading,onInput:y[5]||(y[5]=c=>u("due_after",c.target.value||void 0))},null,40,ui)]),e.createElementVNode("label",null,[y[13]||(y[13]=e.createElementVNode("span",null,"Due before",-1)),e.createElementVNode("input",{value:t.modelValue.due_before??"",type:"date","data-testid":"input-due-before-filter","aria-label":"Filter tasks due before date",disabled:t.loading,onInput:y[6]||(y[6]=c=>u("due_before",c.target.value||void 0))},null,40,mi)])])]))}}),sa=x(pi,[["__scopeId","data-v-14a7d99d"]]),ki={class:"recurring-form__grid"},_i={class:"recurring-form__field"},fi=["value","disabled"],vi=["value"],yi={class:"recurring-form__field recurring-form__field--wide"},gi=["disabled"],bi={class:"recurring-form__field recurring-form__field--wide"},hi=["disabled"],wi={class:"recurring-form__field"},Ei=["disabled"],Vi=["value"],Ni={class:"recurring-form__field"},$i=["disabled"],Ti=["value"],Bi={key:0,class:"recurring-form__panel recurring-form__field--wide","data-testid":"panel-daily-schedule"},Si={class:"recurring-form__field"},Ci=["disabled"],Di={key:1,class:"recurring-form__panel recurring-form__field--wide","data-testid":"panel-weekly-schedule"},Mi={class:"recurring-form__field"},Ai=["disabled"],Ii={class:"recurring-form__field"},Fi={class:"recurring-form__day-grid","data-testid":"panel-weekly-days"},Li=["disabled","data-testid","aria-pressed","aria-label","onClick"],Ri={key:2,class:"recurring-form__panel recurring-form__field--wide","data-testid":"panel-monthly-schedule"},zi={class:"recurring-form__field"},Ui=["disabled"],Wi={class:"recurring-form__field"},xi=["disabled"],Pi={key:0,class:"recurring-form__field"},Oi=["disabled"],Hi={class:"recurring-form__field"},ji=["disabled"],qi=["value"],Yi={class:"recurring-form__field"},Ki=["disabled"],Qi=["value"],Gi={key:3,class:"recurring-form__field recurring-form__field--wide"},Ji=["disabled"],Zi={class:"recurring-form__field recurring-form__field--wide recurring-form__preview","data-testid":"panel-rrule-preview"},Xi={"data-testid":"status-rrule-preview"},er={class:"recurring-form__field"},tr=["disabled"],ar=["value"],nr=["disabled"],lr={class:"recurring-form__field"},or=["disabled"],sr={class:"recurring-form__field"},ir={class:"recurring-form__field"},rr=["disabled"],dr=["value"],cr={class:"recurring-form__field"},ur=["disabled"],mr={class:"recurring-form__field recurring-form__field--wide"},pr=["disabled"],kr={class:"recurring-form__toggles","data-testid":"panel-template-toggles"},_r=["disabled"],fr=["disabled"],vr=["disabled"],yr=["disabled"],gr={class:"recurring-form__actions"},br=["disabled"],hr=e.defineComponent({__name:"RecurringTemplateForm",props:{recurring:{},templates:{},entityTypeOptions:{},submitting:{type:Boolean},mode:{}},emits:["submit","cancel","template-change"],setup(t,{emit:a}){const l=t,o=a,n=["none","low","medium","high","urgent","critical"],i=[{value:1,label:"First"},{value:2,label:"Second"},{value:3,label:"Third"},{value:4,label:"Fourth"},{value:-1,label:"Last"}],r=[{value:"daily",label:"Daily"},{value:"weekly",label:"Weekly"},{value:"monthly",label:"Monthly"},{value:"custom",label:"Custom"}],s=e.reactive({taskTemplateId:"",title:"",description:"",timezone:"America/New_York",taskableType:"",taskableId:"",primaryAssigneeId:"",priority:"none",dueOffsetHours:"",tags:"",isActive:!0,skipHolidays:!1,businessHoursOnly:!1,chainMode:!1,scheduleMode:"daily",dailyInterval:"1",weeklyInterval:"1",weeklyDays:["MO"],monthlyMode:"day_of_month",monthlyInterval:"1",monthlyDay:"1",monthlyWeekday:"MO",monthlySetPosition:"1",rawRrule:ze(1)}),f=e.computed(()=>l.templates??[]),u=e.computed(()=>l.entityTypeOptions??[]),k=e.computed(()=>l.mode??"create"),d=e.computed(()=>k.value==="edit"?"Save recurring template":"Create recurring template");function g(){var v;const $=l.recurring;s.taskTemplateId=($==null?void 0:$.task_template_id)??"",s.title=($==null?void 0:$.title)??"",s.description=($==null?void 0:$.description)??"",s.timezone=($==null?void 0:$.timezone)??"America/New_York",s.taskableType=($==null?void 0:$.taskable_type)??"",s.taskableId=($==null?void 0:$.taskable_id)??"",s.primaryAssigneeId=($==null?void 0:$.primary_assignee_id)??"",s.priority=($==null?void 0:$.priority)??"none",s.dueOffsetHours=($==null?void 0:$.due_offset_hours)===null||($==null?void 0:$.due_offset_hours)===void 0?"":String($.due_offset_hours),s.tags=((v=$==null?void 0:$.tags)==null?void 0:v.join(", "))??"",s.isActive=($==null?void 0:$.is_active)??!0,s.skipHolidays=($==null?void 0:$.skip_holidays)??!1,s.businessHoursOnly=($==null?void 0:$.business_hours_only)??!1,s.chainMode=($==null?void 0:$.chain_mode)??!1;const E=Jt(($==null?void 0:$.rrule)??ze(1));s.scheduleMode=E.mode,s.dailyInterval=String(E.interval),s.weeklyInterval=String(E.interval),s.weeklyDays=E.weeklyDays,s.monthlyMode=E.monthlyMode,s.monthlyInterval=String(E.interval),s.monthlyDay=String(E.monthlyDay),s.monthlyWeekday=E.monthlyWeekday,s.monthlySetPosition=String(E.monthlySetPosition),s.rawRrule=E.raw||ze(1)}e.watch(()=>l.recurring,()=>{g()},{immediate:!0,deep:!0});const b=e.computed(()=>s.scheduleMode==="daily"?ze(Number.parseInt(s.dailyInterval,10)||1):s.scheduleMode==="weekly"?Zn(Number.parseInt(s.weeklyInterval,10)||1,s.weeklyDays.length>0?s.weeklyDays:["MO"]):s.scheduleMode==="monthly"&&s.monthlyMode==="day_of_month"?Xn(Number.parseInt(s.monthlyInterval,10)||1,Number.parseInt(s.monthlyDay,10)||1):s.scheduleMode==="monthly"?el(Number.parseInt(s.monthlyInterval,10)||1,s.monthlyWeekday,Number.parseInt(s.monthlySetPosition,10)||1):s.rawRrule.trim());e.watch(b,$=>{s.scheduleMode!=="custom"&&(s.rawRrule=$)},{immediate:!0});const m=e.computed(()=>s.scheduleMode==="custom"?s.rawRrule.trim():b.value),y=e.computed(()=>tl(m.value)),c=e.computed(()=>m.value.length>0&&(s.taskTemplateId.length>0||s.title.trim().length>0));function p($){if(s.taskTemplateId=$,o("template-change",$||null),!$||k.value==="edit")return;const E=f.value.find(v=>v.id===$);E&&(s.title.trim()||(s.title=E.name),!s.description.trim()&&E.description&&(s.description=E.description))}function N($){var E;p(((E=$.target)==null?void 0:E.value)??"")}function V($){if(s.weeklyDays.includes($)){s.weeklyDays=s.weeklyDays.filter(E=>E!==$);return}s.weeklyDays=[...s.weeklyDays,$]}function I(){var E;if(!c.value)return;const $=Number.parseInt(s.dueOffsetHours,10);o("submit",{task_template_id:s.taskTemplateId||null,title:s.title.trim()||null,description:s.description.trim()||null,rrule:m.value,timezone:s.timezone||null,taskable_type:s.taskableType.trim()||null,taskable_id:s.taskableId.trim()||null,primary_assignee_id:s.primaryAssigneeId.trim()||null,priority:s.priority,due_offset_hours:Number.isFinite($)?$:null,tags:s.tags.split(",").map(v=>v.trim()).filter(Boolean),is_active:s.isActive,skip_holidays:s.skipHolidays,business_hours_only:s.businessHoursOnly,chain_mode:s.chainMode,metadata:((E=l.recurring)==null?void 0:E.metadata)??null})}return($,E)=>(e.openBlock(),e.createElementBlock("form",{class:"recurring-form","data-testid":"form-recurring-template",onSubmit:e.withModifiers(I,["prevent"])},[e.createElementVNode("div",ki,[e.createElementVNode("label",_i,[E[25]||(E[25]=e.createElementVNode("span",null,"Template",-1)),e.createElementVNode("select",{"data-testid":"select-task-template",value:s.taskTemplateId,disabled:t.submitting,onChange:N},[E[24]||(E[24]=e.createElementVNode("option",{value:""},"Standalone recurring task",-1)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(f.value,v=>(e.openBlock(),e.createElementBlock("option",{key:v.id,value:v.id},e.toDisplayString(v.name),9,vi))),128))],40,fi)]),e.createElementVNode("label",yi,[E[26]||(E[26]=e.createElementVNode("span",null,"Title",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":E[0]||(E[0]=v=>s.title=v),"data-testid":"input-template-name",type:"text",disabled:t.submitting,placeholder:"Required when no template is linked"},null,8,gi),[[e.vModelText,s.title]])]),e.createElementVNode("label",bi,[E[27]||(E[27]=e.createElementVNode("span",null,"Description",-1)),e.withDirectives(e.createElementVNode("textarea",{"onUpdate:modelValue":E[1]||(E[1]=v=>s.description=v),"data-testid":"input-template-description",rows:"4",disabled:t.submitting},null,8,hi),[[e.vModelText,s.description]])]),e.createElementVNode("label",wi,[E[28]||(E[28]=e.createElementVNode("span",null,"Schedule type",-1)),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":E[2]||(E[2]=v=>s.scheduleMode=v),"data-testid":"select-recurrence-pattern",disabled:t.submitting},[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(r,v=>e.createElementVNode("option",{key:v.value,value:v.value},e.toDisplayString(v.label),9,Vi)),64))],8,Ei),[[e.vModelSelect,s.scheduleMode]])]),e.createElementVNode("label",Ni,[E[29]||(E[29]=e.createElementVNode("span",null,"Timezone",-1)),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":E[3]||(E[3]=v=>s.timezone=v),"data-testid":"select-timezone",disabled:t.submitting},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(Kn),v=>(e.openBlock(),e.createElementBlock("option",{key:v,value:v},e.toDisplayString(v),9,Ti))),128))],8,$i),[[e.vModelSelect,s.timezone]])]),s.scheduleMode==="daily"?(e.openBlock(),e.createElementBlock("section",Bi,[e.createElementVNode("label",Si,[E[30]||(E[30]=e.createElementVNode("span",null,"Every N days",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":E[4]||(E[4]=v=>s.dailyInterval=v),"data-testid":"input-daily-interval",type:"number",min:"1",disabled:t.submitting},null,8,Ci),[[e.vModelText,s.dailyInterval]])])])):s.scheduleMode==="weekly"?(e.openBlock(),e.createElementBlock("section",Di,[e.createElementVNode("label",Mi,[E[31]||(E[31]=e.createElementVNode("span",null,"Every N weeks",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":E[5]||(E[5]=v=>s.weeklyInterval=v),"data-testid":"input-weekly-interval",type:"number",min:"1",disabled:t.submitting},null,8,Ai),[[e.vModelText,s.weeklyInterval]])]),e.createElementVNode("div",Ii,[E[32]||(E[32]=e.createElementVNode("span",null,"Days",-1)),e.createElementVNode("div",Fi,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(Oe),v=>(e.openBlock(),e.createElementBlock("button",{key:v.value,class:e.normalizeClass(["recurring-form__day-chip",{"is-active":s.weeklyDays.includes(v.value)}]),disabled:t.submitting,type:"button","data-testid":`btn-weekday-${v.value}`,"aria-pressed":s.weeklyDays.includes(v.value),"aria-label":`Toggle ${v.label}`,onClick:w=>V(v.value)},e.toDisplayString(v.shortLabel),11,Li))),128))])])])):s.scheduleMode==="monthly"?(e.openBlock(),e.createElementBlock("section",Ri,[e.createElementVNode("label",zi,[E[33]||(E[33]=e.createElementVNode("span",null,"Every N months",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":E[6]||(E[6]=v=>s.monthlyInterval=v),"data-testid":"input-monthly-interval",type:"number",min:"1",disabled:t.submitting},null,8,Ui),[[e.vModelText,s.monthlyInterval]])]),e.createElementVNode("label",Wi,[E[35]||(E[35]=e.createElementVNode("span",null,"Monthly pattern",-1)),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":E[7]||(E[7]=v=>s.monthlyMode=v),"data-testid":"select-monthly-mode",disabled:t.submitting},[...E[34]||(E[34]=[e.createElementVNode("option",{value:"day_of_month"},"Day of month",-1),e.createElementVNode("option",{value:"weekday"},"Nth weekday",-1)])],8,xi),[[e.vModelSelect,s.monthlyMode]])]),s.monthlyMode==="day_of_month"?(e.openBlock(),e.createElementBlock("label",Pi,[E[36]||(E[36]=e.createElementVNode("span",null,"Day of month",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":E[8]||(E[8]=v=>s.monthlyDay=v),"data-testid":"input-monthly-day",type:"number",min:"1",max:"31",disabled:t.submitting},null,8,Oi),[[e.vModelText,s.monthlyDay]])])):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("label",Hi,[E[37]||(E[37]=e.createElementVNode("span",null,"Position",-1)),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":E[9]||(E[9]=v=>s.monthlySetPosition=v),"data-testid":"select-monthly-position",disabled:t.submitting},[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(i,v=>e.createElementVNode("option",{key:v.value,value:String(v.value)},e.toDisplayString(v.label),9,qi)),64))],8,ji),[[e.vModelSelect,s.monthlySetPosition]])]),e.createElementVNode("label",Yi,[E[38]||(E[38]=e.createElementVNode("span",null,"Weekday",-1)),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":E[10]||(E[10]=v=>s.monthlyWeekday=v),"data-testid":"select-monthly-weekday",disabled:t.submitting},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(Oe),v=>(e.openBlock(),e.createElementBlock("option",{key:v.value,value:v.value},e.toDisplayString(v.label),9,Qi))),128))],8,Ki),[[e.vModelSelect,s.monthlyWeekday]])])],64))])):(e.openBlock(),e.createElementBlock("label",Gi,[E[39]||(E[39]=e.createElementVNode("span",null,"Custom RRULE",-1)),e.withDirectives(e.createElementVNode("textarea",{"onUpdate:modelValue":E[11]||(E[11]=v=>s.rawRrule=v),"data-testid":"input-custom-rrule",rows:"3",disabled:t.submitting,placeholder:"FREQ=WEEKLY;BYDAY=MO,WE,FR"},null,8,Ji),[[e.vModelText,s.rawRrule]])])),e.createElementVNode("div",Zi,[E[40]||(E[40]=e.createElementVNode("span",null,"Preview",-1)),e.createElementVNode("strong",Xi,e.toDisplayString(y.value),1),e.createElementVNode("code",null,e.toDisplayString(m.value),1)]),e.createElementVNode("label",er,[E[42]||(E[42]=e.createElementVNode("span",null,"Linked entity type",-1)),u.value.length>0?e.withDirectives((e.openBlock(),e.createElementBlock("select",{key:0,"onUpdate:modelValue":E[12]||(E[12]=v=>s.taskableType=v),"data-testid":"input-taskable-type",disabled:t.submitting},[E[41]||(E[41]=e.createElementVNode("option",{value:""},"No linked entity",-1)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(u.value,v=>(e.openBlock(),e.createElementBlock("option",{key:v.value,value:v.value},e.toDisplayString(v.label),9,ar))),128))],8,tr)),[[e.vModelSelect,s.taskableType]]):e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:1,"onUpdate:modelValue":E[13]||(E[13]=v=>s.taskableType=v),"data-testid":"input-taskable-type",type:"text",disabled:t.submitting,placeholder:"order"},null,8,nr)),[[e.vModelText,s.taskableType]])]),e.createElementVNode("label",lr,[E[43]||(E[43]=e.createElementVNode("span",null,"Linked entity record ID",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":E[14]||(E[14]=v=>s.taskableId=v),"data-testid":"input-taskable-id",type:"text",disabled:t.submitting,placeholder:"Optional record ID"},null,8,or),[[e.vModelText,s.taskableId]])]),e.createElementVNode("label",sr,[E[44]||(E[44]=e.createElementVNode("span",null,"Primary assignee",-1)),e.createVNode(Ee,{modelValue:s.primaryAssigneeId,"onUpdate:modelValue":E[15]||(E[15]=v=>s.primaryAssigneeId=v),"input-test-id":"input-primary-assignee","aria-label":"Primary assignee",disabled:t.submitting??!1,placeholder:"Assign to employee","rank-by-workload":""},null,8,["modelValue","disabled"])]),e.createElementVNode("label",ir,[E[45]||(E[45]=e.createElementVNode("span",null,"Priority",-1)),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":E[16]||(E[16]=v=>s.priority=v),"data-testid":"select-priority",disabled:t.submitting},[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(n,v=>e.createElementVNode("option",{key:v,value:v},e.toDisplayString(v),9,dr)),64))],8,rr),[[e.vModelSelect,s.priority]])]),e.createElementVNode("label",cr,[E[46]||(E[46]=e.createElementVNode("span",null,"Due offset hours",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":E[17]||(E[17]=v=>s.dueOffsetHours=v),"data-testid":"input-due-offset-hours",type:"number",min:"0",disabled:t.submitting},null,8,ur),[[e.vModelText,s.dueOffsetHours]])]),e.createElementVNode("label",mr,[E[47]||(E[47]=e.createElementVNode("span",null,"Tags",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":E[18]||(E[18]=v=>s.tags=v),"data-testid":"input-tags",type:"text",disabled:t.submitting,placeholder:"ops, warehouse"},null,8,pr),[[e.vModelText,s.tags]])])]),e.createElementVNode("section",kr,[e.createElementVNode("label",null,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":E[19]||(E[19]=v=>s.isActive=v),"data-testid":"input-is-active",type:"checkbox",disabled:t.submitting},null,8,_r),[[e.vModelCheckbox,s.isActive]]),E[48]||(E[48]=e.createTextVNode(" Active",-1))]),e.createElementVNode("label",null,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":E[20]||(E[20]=v=>s.skipHolidays=v),"data-testid":"input-skip-holidays",type:"checkbox",disabled:t.submitting},null,8,fr),[[e.vModelCheckbox,s.skipHolidays]]),E[49]||(E[49]=e.createTextVNode(" Skip holidays",-1))]),e.createElementVNode("label",null,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":E[21]||(E[21]=v=>s.businessHoursOnly=v),"data-testid":"input-business-hours-only",type:"checkbox",disabled:t.submitting},null,8,vr),[[e.vModelCheckbox,s.businessHoursOnly]]),E[50]||(E[50]=e.createTextVNode(" Business hours only",-1))]),e.createElementVNode("label",null,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":E[22]||(E[22]=v=>s.chainMode=v),"data-testid":"input-chain-mode",type:"checkbox",disabled:t.submitting},null,8,yr),[[e.vModelCheckbox,s.chainMode]]),E[51]||(E[51]=e.createTextVNode(" Chain mode",-1))])]),e.createElementVNode("footer",gr,[e.createElementVNode("button",{type:"button",class:"secondary","data-testid":"btn-cancel-template",onClick:E[23]||(E[23]=v=>o("cancel"))},"Cancel"),e.createElementVNode("button",{type:"submit","data-testid":"btn-save-template",disabled:t.submitting||!c.value},e.toDisplayString(d.value),9,br)])],32))}}),ia=x(hr,[["__scopeId","data-v-025addaf"]]),wr={class:"recurring-list","data-testid":"list-recurring-templates"},Er={class:"recurring-list__toolbar"},Vr={class:"recurring-list__search"},Nr=["value"],$r={class:"recurring-list__toggle"},Tr=["checked"],Br={key:0,class:"recurring-list__empty","data-testid":"status-loading-templates"},Sr={key:1,class:"recurring-list__empty","data-testid":"status-empty-templates"},Cr={key:2,class:"recurring-list__table","data-testid":"table-recurring-templates"},Dr=["data-testid"],Mr={key:0,class:"recurring-list__meta"},Ar={key:1,class:"recurring-list__meta"},Ir={key:2,class:"recurring-list__meta"},Fr={key:3,class:"recurring-list__flags"},Lr={key:0},Rr={key:1},zr={key:2},Ur={class:"recurring-list__meta"},Wr=["data-testid"],xr={class:"recurring-list__actions"},Pr=["data-testid","aria-label","onClick"],Or=["data-testid","aria-label","onClick"],Hr=["data-testid","aria-label","onClick"],jr=["data-testid","aria-label","onClick"],qr=["data-testid","aria-label","onClick"],Yr=e.defineComponent({__name:"RecurringTemplateList",props:{templates:{},loading:{type:Boolean},search:{},includeInactive:{type:Boolean}},emits:["update:search","update:includeInactive","edit","pause","resume","remove","generate"],setup(t,{emit:a}){const l=t,o=a,n=e.computed(()=>l.templates??[]);function i(u){return u?ne(u):"Not scheduled"}function r(u){return u===null?null:u===0?"Deadline at generation time":u===1?"1h deadline offset":`${u}h deadline offset`}function s(u){var k;o("update:search",((k=u.target)==null?void 0:k.value)??"")}function f(u){var k;o("update:includeInactive",((k=u.target)==null?void 0:k.checked)??!1)}return(u,k)=>(e.openBlock(),e.createElementBlock("section",wr,[e.createElementVNode("header",Er,[e.createElementVNode("label",Vr,[k[0]||(k[0]=e.createElementVNode("span",null,"Search",-1)),e.createElementVNode("input",{"data-testid":"input-search-templates",value:t.search??"",type:"search",placeholder:"Search recurring templates",onInput:s},null,40,Nr)]),e.createElementVNode("label",$r,[e.createElementVNode("input",{"data-testid":"input-include-inactive",checked:t.includeInactive??!1,type:"checkbox",onChange:f},null,40,Tr),k[1]||(k[1]=e.createElementVNode("span",null,"Include paused",-1))])]),t.loading?(e.openBlock(),e.createElementBlock("div",Br," Loading recurring templates… ")):n.value.length===0?(e.openBlock(),e.createElementBlock("div",Sr," No recurring templates found. ")):(e.openBlock(),e.createElementBlock("table",Cr,[k[2]||(k[2]=e.createElementVNode("thead",null,[e.createElementVNode("tr",null,[e.createElementVNode("th",null,"Name"),e.createElementVNode("th",null,"Schedule"),e.createElementVNode("th",null,"Next"),e.createElementVNode("th",null,"Last"),e.createElementVNode("th",null,"Status"),e.createElementVNode("th",null,"Actions")])],-1)),e.createElementVNode("tbody",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.value,d=>{var g;return e.openBlock(),e.createElementBlock("tr",{key:d.id,"data-testid":`item-template-${d.id}`},[e.createElementVNode("td",null,[e.createElementVNode("strong",null,e.toDisplayString(d.title??((g=d.task_template)==null?void 0:g.name)??"Untitled recurrence"),1),d.task_template?(e.openBlock(),e.createElementBlock("p",Mr," Template: "+e.toDisplayString(d.task_template.name),1)):e.createCommentVNode("",!0),d.taskable_type&&d.taskable_id?(e.openBlock(),e.createElementBlock("p",Ar," Scope: "+e.toDisplayString(e.unref(Kt)(d.taskable_type,d.taskable_id)),1)):e.createCommentVNode("",!0),r(d.due_offset_hours)?(e.openBlock(),e.createElementBlock("p",Ir,e.toDisplayString(r(d.due_offset_hours)),1)):e.createCommentVNode("",!0),d.chain_mode||d.business_hours_only||d.skip_holidays?(e.openBlock(),e.createElementBlock("p",Fr,[d.chain_mode?(e.openBlock(),e.createElementBlock("span",Lr,"Chain mode")):e.createCommentVNode("",!0),d.business_hours_only?(e.openBlock(),e.createElementBlock("span",Rr,"Business hours")):e.createCommentVNode("",!0),d.skip_holidays?(e.openBlock(),e.createElementBlock("span",zr,"Skip holidays")):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)]),e.createElementVNode("td",null,[e.createElementVNode("strong",null,e.toDisplayString(d.rrule_human),1),e.createElementVNode("p",Ur,e.toDisplayString(d.timezone),1)]),e.createElementVNode("td",null,e.toDisplayString(i(d.next_occurrence_at)),1),e.createElementVNode("td",null,e.toDisplayString(i(d.last_generated_at)),1),e.createElementVNode("td",null,[e.createElementVNode("span",{class:e.normalizeClass(["recurring-list__status",d.is_active?"is-active":"is-paused"]),"data-testid":`status-template-${d.id}`},e.toDisplayString(d.is_active?"Active":"Paused"),11,Wr)]),e.createElementVNode("td",null,[e.createElementVNode("div",xr,[e.createElementVNode("button",{type:"button","data-testid":`btn-edit-template-${d.id}`,"aria-label":`Edit ${d.title??"template"}`,onClick:b=>o("edit",d.id)},"Edit",8,Pr),d.is_active?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button","data-testid":`btn-pause-recurring-${d.id}`,"aria-label":`Pause ${d.title??"template"}`,onClick:b=>o("pause",d.id)}," Pause ",8,Or)):(e.openBlock(),e.createElementBlock("button",{key:1,type:"button","data-testid":`btn-resume-recurring-${d.id}`,"aria-label":`Resume ${d.title??"template"}`,onClick:b=>o("resume",d.id)}," Resume ",8,Hr)),e.createElementVNode("button",{type:"button","data-testid":`btn-generate-template-${d.id}`,"aria-label":`Generate tasks for ${d.title??"template"}`,onClick:b=>o("generate",d.id)},"Generate",8,jr),e.createElementVNode("button",{type:"button",class:"danger","data-testid":`btn-delete-template-${d.id}`,"aria-label":`Delete ${d.title??"template"}`,onClick:b=>o("remove",d.id)},"Delete",8,qr)])])],8,Dr)}),128))])]))]))}}),ra=x(Yr,[["__scopeId","data-v-8d6a1cfd"]]),Kr={key:0,class:"task-saved-filter-tabs","aria-label":"Saved filters","data-testid":"panel-saved-filter-tabs",role:"tablist"},Qr=["data-testid"],Gr=["data-testid","aria-label","aria-selected","onClick"],Jr={key:0,class:"task-saved-filter-tabs__default","aria-label":"Default filter"},Zr=["data-testid","aria-label","onClick"],Xr=e.defineComponent({__name:"TaskSavedFilterTabs",props:{filters:{},activeFilterId:{}},emits:["select","remove"],setup(t,{emit:a}){const l=t,o=a;return(n,i)=>l.filters.length>0?(e.openBlock(),e.createElementBlock("section",Kr,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.filters,r=>(e.openBlock(),e.createElementBlock("article",{key:r.id,class:e.normalizeClass(["task-saved-filter-tabs__pill",{"is-active":r.id===t.activeFilterId}]),"data-testid":`item-saved-filter-${r.id}`},[e.createElementVNode("button",{type:"button",class:"task-saved-filter-tabs__select",role:"tab","data-testid":`tab-saved-filter-${r.id}`,"aria-label":`Apply saved filter: ${r.name}`,"aria-selected":r.id===t.activeFilterId,onClick:s=>o("select",r.id)},[e.createElementVNode("span",null,e.toDisplayString(r.name),1),r.is_default?(e.openBlock(),e.createElementBlock("span",Jr,"Default")):e.createCommentVNode("",!0)],8,Gr),r.is_default?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"task-saved-filter-tabs__remove","data-testid":`btn-remove-saved-filter-${r.id}`,"aria-label":`Remove saved filter: ${r.name}`,onClick:s=>o("remove",r.id)}," Remove ",8,Zr))],10,Qr))),128))])):e.createCommentVNode("",!0)}}),da=x(Xr,[["__scopeId","data-v-24c87ca8"]]),ed={class:"task-list-view","data-testid":"panel-task-list"},td={class:"task-list-view__header"},ad={key:2,class:"task-list-view__empty","data-testid":"panel-empty-state"},nd={key:3,class:"task-list-view__table-wrap","data-testid":"panel-task-table-wrap"},ld={class:"task-list-view__table","data-testid":"list-tasks"},od=["data-testid","onClick"],sd=["value","data-testid","aria-label"],id={class:"task-list-view__title-cell"},rd={key:0},dd={class:"task-list-view__deadline"},cd={class:"task-list-view__tags"},ud={class:"task-list-view__pagination","data-testid":"panel-pagination"},md=["disabled"],pd={"aria-live":"polite","aria-atomic":"true"},kd=["disabled"],_d=e.defineComponent({__name:"TaskListView",props:{tasks:{},filters:{},pagination:{},loading:{type:Boolean},savedFilters:{},activeSavedFilterId:{},bulkBusy:{type:Boolean},bulkResult:{}},emits:["update:filters","select-task","quick-create","page-change","save-filter","apply-saved-filter","delete-saved-filter","bulk-action"],setup(t,{emit:a}){const l=t,o=a,n=e.ref([]),i=e.computed({get:()=>l.tasks.length>0&&n.value.length===l.tasks.length,set:u=>{n.value=u?l.tasks.map(k=>k.id):[]}});function r(u){const k=l.filters.sort??"-created_at",g=(k.startsWith("-")?k.slice(1):k)===u&&!k.startsWith("-")?`-${u}`:u;o("update:filters",{...l.filters,sort:g,page:1})}function s(u){o("page-change",u),o("update:filters",{...l.filters,page:u})}function f(){n.value=[]}return e.watch(()=>l.tasks,u=>{const k=new Set(u.map(d=>d.id));n.value=n.value.filter(d=>k.has(d))},{deep:!0}),(u,k)=>(e.openBlock(),e.createElementBlock("section",ed,[e.createElementVNode("header",td,[k[15]||(k[15]=e.createElementVNode("div",null,[e.createElementVNode("h2",null,"Tasks"),e.createElementVNode("p",null,"Manage work across entities, playbooks, and operational follow-ups.")],-1)),e.createElementVNode("button",{type:"button",class:"task-list-view__create","data-testid":"btn-create-task",onClick:k[0]||(k[0]=d=>o("quick-create"))}," Create task ")]),t.savedFilters&&t.savedFilters.length>0?(e.openBlock(),e.createBlock(da,{key:0,filters:t.savedFilters,"active-filter-id":t.activeSavedFilterId??null,onSelect:k[1]||(k[1]=d=>o("apply-saved-filter",d)),onRemove:k[2]||(k[2]=d=>o("delete-saved-filter",d))},null,8,["filters","active-filter-id"])):e.createCommentVNode("",!0),e.createVNode(sa,{"model-value":t.filters,loading:t.loading??!1,"onUpdate:modelValue":k[3]||(k[3]=d=>o("update:filters",d)),onSaveCurrent:k[4]||(k[4]=d=>o("save-filter"))},null,8,["model-value","loading"]),n.value.length>0?(e.openBlock(),e.createBlock(oa,{key:1,"selected-count":n.value.length,busy:t.bulkBusy??!1,result:t.bulkResult??null,onApply:k[5]||(k[5]=d=>o("bulk-action",{taskIds:n.value,action:d.action,params:d.params})),onClear:f},null,8,["selected-count","busy","result"])):e.createCommentVNode("",!0),t.tasks.length===0&&!t.loading?(e.openBlock(),e.createElementBlock("div",ad,[k[16]||(k[16]=e.createElementVNode("h3",null,"No tasks yet",-1)),k[17]||(k[17]=e.createElementVNode("p",null,"Start with a quick task or instantiate a template for structured work.",-1)),e.createElementVNode("button",{type:"button","data-testid":"btn-create-first-task",onClick:k[6]||(k[6]=d=>o("quick-create"))},"Create first task")])):(e.openBlock(),e.createElementBlock("div",nd,[e.createElementVNode("table",ld,[e.createElementVNode("thead",null,[e.createElementVNode("tr",null,[e.createElementVNode("th",null,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":k[7]||(k[7]=d=>i.value=d),type:"checkbox","data-testid":"input-select-all-tasks","aria-label":"Select all tasks"},null,512),[[e.vModelCheckbox,i.value]])]),e.createElementVNode("th",null,[e.createElementVNode("button",{type:"button","data-testid":"btn-sort-number","aria-label":"Sort by number",onClick:k[8]||(k[8]=d=>r("display_number"))},"Number")]),e.createElementVNode("th",null,[e.createElementVNode("button",{type:"button","data-testid":"btn-sort-title","aria-label":"Sort by title",onClick:k[9]||(k[9]=d=>r("title"))},"Title")]),k[18]||(k[18]=e.createElementVNode("th",null,"Status",-1)),k[19]||(k[19]=e.createElementVNode("th",null,"Priority",-1)),k[20]||(k[20]=e.createElementVNode("th",null,"Assignee",-1)),e.createElementVNode("th",null,[e.createElementVNode("button",{type:"button","data-testid":"btn-sort-due","aria-label":"Sort by deadline",onClick:k[10]||(k[10]=d=>r("due_at"))},"Deadline")]),k[21]||(k[21]=e.createElementVNode("th",null,"Tags",-1))])]),e.createElementVNode("tbody",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.tasks,d=>{var g;return e.openBlock(),e.createElementBlock("tr",{key:d.id,"data-testid":`task-row-${d.id}`,onClick:b=>o("select-task",d.id)},[e.createElementVNode("td",null,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":k[11]||(k[11]=b=>n.value=b),type:"checkbox",value:d.id,"data-testid":`input-select-task-${d.id}`,"aria-label":`Select task ${d.display_number_formatted}`,onClick:k[12]||(k[12]=e.withModifiers(()=>{},["stop"]))},null,8,sd),[[e.vModelCheckbox,n.value]])]),e.createElementVNode("td",null,e.toDisplayString(d.display_number_formatted),1),e.createElementVNode("td",null,[e.createElementVNode("div",id,[e.createElementVNode("strong",null,e.toDisplayString(d.title),1),d.description?(e.openBlock(),e.createElementBlock("small",rd,e.toDisplayString(d.description),1)):e.createCommentVNode("",!0)])]),e.createElementVNode("td",null,[e.createVNode(Le,{status:d.status},null,8,["status"])]),e.createElementVNode("td",null,[e.createVNode(Fe,{priority:d.priority,compact:""},null,8,["priority"])]),e.createElementVNode("td",null,e.toDisplayString(((g=d.primary_assignee)==null?void 0:g.name)??"Unassigned"),1),e.createElementVNode("td",null,[e.createElementVNode("div",dd,[e.createVNode(pe,{task:d,compact:""},null,8,["task"]),e.createElementVNode("span",{class:e.normalizeClass({overdue:d.is_overdue})},e.toDisplayString(e.unref(ut)(d.due_at)),3)])]),e.createElementVNode("td",null,[e.createElementVNode("ul",cd,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.tags,b=>(e.openBlock(),e.createElementBlock("li",{key:b.id},e.toDisplayString(b.name),1))),128))])])],8,od)}),128))])])])),e.createElementVNode("footer",ud,[e.createElementVNode("button",{type:"button","data-testid":"btn-prev-page","aria-label":"Previous page",disabled:t.pagination.current_page<=1,onClick:k[13]||(k[13]=d=>s(t.pagination.current_page-1))}," Previous ",8,md),e.createElementVNode("span",pd,"Page "+e.toDisplayString(t.pagination.current_page)+" of "+e.toDisplayString(t.pagination.last_page),1),e.createElementVNode("button",{type:"button","data-testid":"btn-next-page","aria-label":"Next page",disabled:t.pagination.current_page>=t.pagination.last_page,onClick:k[14]||(k[14]=d=>s(t.pagination.current_page+1))}," Next ",8,kd)])]))}}),ca=x(_d,[["__scopeId","data-v-0d8e643c"]]),fd={class:"task-role-picker","data-testid":"picker-task-role"},vd={class:"task-role-picker__input-wrap"},yd=["data-testid","disabled","placeholder","value","aria-expanded"],gd={key:0,class:"task-role-picker__menu",role:"listbox","data-testid":"list-task-roles"},bd=["data-testid","aria-selected","onMousedown"],hd={class:"task-role-picker__label"},wd={key:0,class:"task-role-picker__meta"},Ed={key:0,class:"task-role-picker__empty","data-testid":"status-no-roles"},Vd=e.defineComponent({__name:"TaskRolePicker",props:{modelValue:{default:null},options:{default:()=>[]},disabled:{type:Boolean,default:!1},placeholder:{default:"Choose a role"},inputTestId:{default:"input-task-role"}},emits:["update:modelValue","select"],setup(t,{emit:a}){const l=t,o=a,n=e.ref(""),i=e.ref(!1),r=e.ref(-1),s=e.computed(()=>l.options.find(N=>N.name===l.modelValue)??null),f=e.computed(()=>{const N=n.value.trim().toLowerCase();return N===""?l.options:l.options.filter(V=>V.label.toLowerCase().includes(N)||V.name.toLowerCase().includes(N))});e.watch(()=>[l.modelValue,l.options],()=>{if(s.value!==null){n.value=s.value.label;return}n.value=l.modelValue??""},{immediate:!0,deep:!0});function u(N){const V=[];return typeof N.level=="number"&&V.push(`Level ${N.level}`),typeof N.user_count=="number"&&V.push(`${N.user_count} ${N.user_count===1?"user":"users"}`),V.join(" • ")}function k(){r.value=f.value.length>0?0:-1}function d(){l.disabled||(i.value=!0,k())}function g(){if(i.value=!1,r.value=-1,s.value!==null){n.value=s.value.label;return}n.value=l.modelValue??""}function b(N){n.value=N.label,i.value=!1,r.value=-1,o("update:modelValue",N.name),o("select",N)}function m(){n.value="",i.value=!1,r.value=-1,o("update:modelValue",null)}function y(N){var I;const V=((I=N.target)==null?void 0:I.value)??"";n.value=V,i.value=!0,k(),V.trim()===""&&o("update:modelValue",null)}function c(){window.setTimeout(()=>{g()},120)}function p(N){if(!l.disabled){if(N.key==="ArrowDown"){N.preventDefault(),d(),r.value=Math.min(f.value.length-1,r.value+1);return}if(N.key==="ArrowUp"){N.preventDefault(),d(),r.value=Math.max(0,r.value-1);return}if(N.key==="Enter"&&i.value&&r.value>=0){N.preventDefault();const V=f.value[r.value];V!==void 0&&b(V);return}N.key==="Escape"&&(N.preventDefault(),g())}}return(N,V)=>(e.openBlock(),e.createElementBlock("div",fd,[e.createElementVNode("div",vd,[e.createElementVNode("input",{"data-testid":t.inputTestId,class:"task-role-picker__input",disabled:t.disabled,placeholder:t.placeholder,value:n.value,type:"text",role:"combobox","aria-autocomplete":"list","aria-expanded":i.value,"aria-haspopup":"listbox",onFocus:d,onInput:y,onKeydown:p,onBlur:c},null,40,yd),!t.disabled&&(t.modelValue!==null||n.value!=="")?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"task-role-picker__clear","data-testid":"btn-clear-role","aria-label":"Clear selected role",onClick:m}," Clear ")):e.createCommentVNode("",!0)]),i.value?(e.openBlock(),e.createElementBlock("div",gd,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(f.value,(I,$)=>(e.openBlock(),e.createElementBlock("button",{key:I.name,type:"button",class:e.normalizeClass(["task-role-picker__option",{"task-role-picker__option--active":$===r.value}]),"data-testid":`option-role-${I.name}`,role:"option","aria-selected":I.name===t.modelValue,onMousedown:e.withModifiers(E=>b(I),["prevent"])},[e.createElementVNode("span",hd,e.toDisplayString(I.label),1),u(I)!==""?(e.openBlock(),e.createElementBlock("span",wd,e.toDisplayString(u(I)),1)):e.createCommentVNode("",!0)],42,bd))),128)),f.value.length===0?(e.openBlock(),e.createElementBlock("div",Ed," No matching roles ")):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)]))}}),ua=x(Vd,[["__scopeId","data-v-944f1542"]]),Nd={class:"workflow-form__steps","aria-label":"Workflow steps"},$d=["data-testid","onClick"],Td={key:0,class:"workflow-form__panel","data-testid":"workflow-step-panel-1"},Bd={class:"workflow-form__card-grid"},Sd=["data-testid","aria-pressed","onClick"],Cd={key:1,class:"workflow-form__panel","data-testid":"workflow-step-panel-2"},Dd={class:"workflow-form__grid"},Md={class:"workflow-form__field"},Ad=["value"],Id={class:"workflow-form__field"},Fd=["value"],Ld={key:1,class:"workflow-form__field"},Rd={key:2,class:"workflow-form__field"},zd={key:3,class:"workflow-form__field"},Ud={key:4,class:"workflow-form__muted"},Wd={key:2,class:"workflow-form__panel","data-testid":"workflow-step-panel-3"},xd=["data-testid"],Pd=["onUpdate:modelValue","data-testid","aria-label"],Od=["value"],Hd=["onUpdate:modelValue","data-testid","aria-label"],jd=["value"],qd=["onUpdate:modelValue","data-testid","aria-label","disabled"],Yd=["data-testid","aria-label","disabled","onClick"],Kd={key:3,class:"workflow-form__panel","data-testid":"workflow-step-panel-4"},Qd=["data-testid"],Gd={class:"workflow-form__row workflow-form__row--wrap"},Jd={class:"workflow-form__field workflow-form__field--compact"},Zd=["onUpdate:modelValue","data-testid"],Xd=["value"],ec={class:"workflow-form__field workflow-form__field--grow"},tc=["onUpdate:modelValue","data-testid"],ac=["value"],nc=["onUpdate:modelValue","data-testid"],lc=["onUpdate:modelValue","data-testid","placeholder"],oc={key:0,class:"workflow-form__row workflow-form__row--wrap"},sc={class:"workflow-form__field workflow-form__field--grow"},ic=["onUpdate:modelValue","data-testid"],rc={class:"workflow-form__field workflow-form__field--grow"},dc=["onUpdate:modelValue","data-testid"],cc={key:1,class:"workflow-form__row workflow-form__row--wrap"},uc={class:"workflow-form__field"},mc=["onUpdate:modelValue","data-testid"],pc={class:"workflow-form__field"},kc=["onUpdate:modelValue","data-testid"],_c=["value"],fc={class:"workflow-form__field"},vc=["onUpdate:modelValue","data-testid"],yc=["value"],gc={class:"workflow-form__field workflow-form__field--grow"},bc=["onUpdate:modelValue","data-testid"],hc={key:2,class:"workflow-form__row workflow-form__row--wrap"},wc={class:"workflow-form__field"},Ec=["onUpdate:modelValue","data-testid"],Vc={class:"workflow-form__field"},Nc=["onUpdate:modelValue","data-testid"],$c={key:3,class:"workflow-form__row workflow-form__row--wrap"},Tc={class:"workflow-form__field workflow-form__field--grow"},Bc=["onUpdate:modelValue","data-testid"],Sc={class:"workflow-form__field"},Cc=["onUpdate:modelValue","data-testid"],Dc={class:"workflow-form__action-footer"},Mc=["data-testid","aria-label","disabled","onClick"],Ac=["data-testid","aria-label","disabled","onClick"],Ic=["data-testid","aria-label","disabled","onClick"],Fc={key:4,class:"workflow-form__panel","data-testid":"workflow-step-panel-5"},Lc={class:"workflow-form__grid"},Rc={class:"workflow-form__field workflow-form__field--wide"},zc={class:"workflow-form__field workflow-form__field--wide"},Uc={class:"workflow-form__field"},Wc={class:"workflow-form__toggle"},xc={class:"workflow-form__toggle"},Pc={class:"workflow-form__footer"},Oc=["disabled"],Hc=e.defineComponent({__name:"WorkflowForm",props:{workflow:{},templates:{},roleOptions:{},mode:{},submitting:{type:Boolean}},emits:["submit","cancel"],setup(t,{emit:a}){const l=t,o=a,n=["Trigger","Trigger Config","Conditions","Actions","Settings"],i=["draft","open","in_progress","blocked","under_review","complete","cancelled"],r=["none","low","medium","high","urgent","critical"],s=[{value:"task_created",label:"Task created",description:"Runs as soon as a task is created."},{value:"status_changed",label:"Status changed",description:"Runs after a task moves between statuses."},{value:"tag_added",label:"Tag added",description:"Runs when a tag is attached to a task."},{value:"assigned",label:"Assigned",description:"Runs when a task is assigned or reassigned."},{value:"comment_added",label:"Comment added",description:"Runs when a new comment is added."},{value:"completed",label:"Completed",description:"Runs when a task is completed."},{value:"due_approaching",label:"Due approaching",description:"Runs ahead of a due date based on hours before due."},{value:"overdue",label:"Overdue",description:"Runs once a task crosses an overdue threshold."}],f=["status","priority","taskable_type","tags","assignee","source","due_at","created_by"],u=["equals","not_equals","in","not_in","contains","not_contains","is_null","is_not_null","before","after","greater_than","less_than"],k=[{value:"set_status",label:"Set status"},{value:"set_priority",label:"Set priority"},{value:"assign_to_user",label:"Assign to user"},{value:"assign_to_role",label:"Assign to role"},{value:"add_tag",label:"Add tag"},{value:"remove_tag",label:"Remove tag"},{value:"send_notification",label:"Send notification"},{value:"add_comment",label:"Add comment"},{value:"create_related_task",label:"Create related task"},{value:"set_due_date",label:"Set due date"},{value:"webhook",label:"Webhook"}],d=e.ref(1),g=e.reactive({name:"",description:"",trigger_type:"task_created",is_enabled:!0,stop_processing:!1,position:0}),b=e.reactive({from_status:"",to_status:"",tag:"",hours_before:"24",hours_overdue:"0"}),m=e.ref([]),y=e.ref([]),c=e.computed(()=>l.mode??"create"),p=e.computed(()=>d.value===n.length),N=e.computed(()=>l.templates??[]),V=e.computed(()=>l.roleOptions??[]);function I(D="add_tag"){return{type:D,value:"",config:{recipients:"",message:"",relation_type:"related_to",priority:"none",template_id:"",tags:"",offset_hours:"",url:"",method:"POST"}}}function $(){return{field:"status",operator:"equals",value:""}}function E(){var B,S,z,L,de,$e,Te;const D=l.workflow;g.name=(D==null?void 0:D.name)??"",g.description=(D==null?void 0:D.description)??"",g.trigger_type=(D==null?void 0:D.trigger_type)??"task_created",g.is_enabled=(D==null?void 0:D.is_enabled)??!0,g.stop_processing=(D==null?void 0:D.stop_processing)??!1,g.position=(D==null?void 0:D.position)??0,b.from_status=typeof((B=D==null?void 0:D.trigger_config)==null?void 0:B.from_status)=="string"?D.trigger_config.from_status:"",b.to_status=typeof((S=D==null?void 0:D.trigger_config)==null?void 0:S.to_status)=="string"?D.trigger_config.to_status:"",b.tag=typeof((z=D==null?void 0:D.trigger_config)==null?void 0:z.tag)=="string"?D.trigger_config.tag:"",b.hours_before=((L=D==null?void 0:D.trigger_config)==null?void 0:L.hours_before)===void 0?"24":String(D.trigger_config.hours_before),b.hours_overdue=((de=D==null?void 0:D.trigger_config)==null?void 0:de.hours_overdue)===void 0?"0":String(D.trigger_config.hours_overdue),m.value=($e=D==null?void 0:D.conditions)!=null&&$e.length?D.conditions.map(q=>({field:q.field,operator:q.operator,value:q.value===void 0||q.value===null?"":Array.isArray(q.value)?q.value.join(", "):String(q.value)})):[$()],y.value=(Te=D==null?void 0:D.actions)!=null&&Te.length?D.actions.map(q=>{var C,U,W,H,G,Z,oe,ye,ce,Be,Re;return{type:q.type,value:q.value===void 0||q.value===null?"":String(q.value),config:{recipients:Array.isArray((C=q.config)==null?void 0:C.recipients)?String(((U=q.config)==null?void 0:U.recipients).join(", ")):"",message:typeof((W=q.config)==null?void 0:W.message)=="string"?q.config.message:"",relation_type:typeof((H=q.config)==null?void 0:H.relation_type)=="string"?q.config.relation_type:"related_to",priority:typeof((G=q.config)==null?void 0:G.priority)=="string"?q.config.priority:"none",template_id:typeof((Z=q.config)==null?void 0:Z.template_id)=="string"?q.config.template_id:"",tags:Array.isArray((oe=q.config)==null?void 0:oe.tags)?String(((ye=q.config)==null?void 0:ye.tags).join(", ")):"",offset_hours:((ce=q.config)==null?void 0:ce.offset_hours)===void 0?"":String(q.config.offset_hours),url:typeof((Be=q.config)==null?void 0:Be.url)=="string"?q.config.url:"",method:typeof((Re=q.config)==null?void 0:Re.method)=="string"?q.config.method:"POST"}}}):[I()]}e.watch(()=>l.workflow,()=>{E()},{immediate:!0});function v(){d.value=Math.min(n.length,d.value+1)}function w(){d.value=Math.max(1,d.value-1)}function M(D){d.value=D}function P(){m.value.push($())}function J(D){m.value.splice(D,1)}function F(){y.value.push(I())}function O(D){y.value.splice(D,1)}function j(D,B){const S=B==="up"?D-1:D+1;if(S<0||S>=y.value.length)return;const z=[...y.value],L=z[D],de=z[S];L===void 0||de===void 0||(z[D]=de,z[S]=L,y.value=z)}function K(D,B){return B==="in"||B==="not_in"?D.split(",").map(S=>S.trim()).filter(Boolean):D.trim()===""?void 0:D.trim()}function Q(){switch(g.trigger_type){case"status_changed":return{...b.from_status!==""?{from_status:b.from_status}:{},...b.to_status!==""?{to_status:b.to_status}:{}};case"tag_added":return b.tag===""?{}:{tag:b.tag};case"due_approaching":return{hours_before:Number.parseInt(b.hours_before||"24",10)||24};case"overdue":return{hours_overdue:Number.parseInt(b.hours_overdue||"0",10)||0};default:return null}}function re(){return m.value.filter(D=>D.field&&D.operator).map(D=>({field:D.field,operator:D.operator,value:K(D.value,D.operator)}))}function ke(){return y.value.map(D=>{const B={};return D.type==="send_notification"&&(B.recipients=D.config.recipients.split(",").map(S=>S.trim()).filter(Boolean),D.config.message.trim()!==""&&(B.message=D.config.message.trim())),D.type==="create_related_task"&&(D.config.template_id.trim()!==""&&(B.template_id=D.config.template_id.trim()),B.relation_type=D.config.relation_type,D.config.priority!=="none"&&(B.priority=D.config.priority),D.config.tags.trim()!==""&&(B.tags=D.config.tags.split(",").map(S=>S.trim()).filter(Boolean))),D.type==="set_due_date"&&D.config.offset_hours.trim()!==""&&(B.offset_hours=Number.parseInt(D.config.offset_hours,10)),D.type==="webhook"&&(B.url=D.config.url.trim(),B.method=D.config.method||"POST"),{type:D.type,...D.value.trim()!==""?{value:D.value.trim()}:{},...Object.keys(B).length>0?{config:B}:{}}})}function ie(){g.name.trim()===""||y.value.length===0||o("submit",{name:g.name.trim(),description:g.description.trim()===""?null:g.description.trim(),trigger_type:g.trigger_type,trigger_config:Q(),conditions:re(),actions:ke(),is_enabled:g.is_enabled,position:g.position,stop_processing:g.stop_processing})}function Ve(D){return D==="set_status"||D==="set_priority"}function Ne(D){switch(D){case"assign_to_role":return"warehouse-manager";case"assign_to_user":return"Assign to employee";case"add_tag":return"auto-assigned";case"webhook":return"Optional label";default:return"Value"}}return(D,B)=>(e.openBlock(),e.createElementBlock("form",{class:"workflow-form","data-testid":"form-workflow",onSubmit:e.withModifiers(ie,["prevent"])},[e.createElementVNode("nav",Nd,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(n,(S,z)=>e.createElementVNode("button",{key:S,type:"button",class:e.normalizeClass(["workflow-form__step",{"workflow-form__step--active":d.value===z+1}]),"data-testid":`workflow-step-${z+1}`,onClick:L=>M(z+1)},[e.createElementVNode("span",null,e.toDisplayString(z+1),1),e.createTextVNode(" "+e.toDisplayString(S),1)],10,$d)),64))]),d.value===1?(e.openBlock(),e.createElementBlock("section",Td,[B[11]||(B[11]=e.createElementVNode("h3",null,"Select trigger",-1)),e.createElementVNode("div",Bd,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(s,S=>e.createElementVNode("button",{key:S.value,type:"button",class:e.normalizeClass(["workflow-form__trigger-card",{"workflow-form__trigger-card--selected":g.trigger_type===S.value}]),"data-testid":`btn-trigger-${S.value}`,"aria-pressed":g.trigger_type===S.value,onClick:z=>g.trigger_type=S.value},[e.createElementVNode("strong",null,e.toDisplayString(S.label),1),e.createElementVNode("span",null,e.toDisplayString(S.description),1)],10,Sd)),64))])])):d.value===2?(e.openBlock(),e.createElementBlock("section",Cd,[B[19]||(B[19]=e.createElementVNode("h3",null,"Trigger configuration",-1)),e.createElementVNode("div",Dd,[g.trigger_type==="status_changed"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("label",Md,[B[13]||(B[13]=e.createElementVNode("span",null,"From status",-1)),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":B[0]||(B[0]=S=>b.from_status=S),"data-testid":"workflow-trigger-from-status"},[B[12]||(B[12]=e.createElementVNode("option",{value:""},"Any status",-1)),(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(i,S=>e.createElementVNode("option",{key:S,value:S},e.toDisplayString(S),9,Ad)),64))],512),[[e.vModelSelect,b.from_status]])]),e.createElementVNode("label",Id,[B[15]||(B[15]=e.createElementVNode("span",null,"To status",-1)),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":B[1]||(B[1]=S=>b.to_status=S),"data-testid":"workflow-trigger-to-status"},[B[14]||(B[14]=e.createElementVNode("option",{value:""},"Any status",-1)),(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(i,S=>e.createElementVNode("option",{key:S,value:S},e.toDisplayString(S),9,Fd)),64))],512),[[e.vModelSelect,b.to_status]])])],64)):g.trigger_type==="tag_added"?(e.openBlock(),e.createElementBlock("label",Ld,[B[16]||(B[16]=e.createElementVNode("span",null,"Required tag",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":B[2]||(B[2]=S=>b.tag=S),"data-testid":"workflow-trigger-tag",type:"text",placeholder:"shipping"},null,512),[[e.vModelText,b.tag]])])):g.trigger_type==="due_approaching"?(e.openBlock(),e.createElementBlock("label",Rd,[B[17]||(B[17]=e.createElementVNode("span",null,"Hours before due",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":B[3]||(B[3]=S=>b.hours_before=S),"data-testid":"workflow-trigger-hours-before",type:"number",min:"0"},null,512),[[e.vModelText,b.hours_before]])])):g.trigger_type==="overdue"?(e.openBlock(),e.createElementBlock("label",zd,[B[18]||(B[18]=e.createElementVNode("span",null,"Hours overdue",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":B[4]||(B[4]=S=>b.hours_overdue=S),"data-testid":"workflow-trigger-hours-overdue",type:"number",min:"0"},null,512),[[e.vModelText,b.hours_overdue]])])):(e.openBlock(),e.createElementBlock("p",Ud,"This trigger does not need extra configuration."))])])):d.value===3?(e.openBlock(),e.createElementBlock("section",Wd,[e.createElementVNode("div",{class:"workflow-form__panel-header"},[B[20]||(B[20]=e.createElementVNode("div",null,[e.createElementVNode("h3",null,"Conditions"),e.createElementVNode("p",null,"All conditions are evaluated with AND logic.")],-1)),e.createElementVNode("button",{type:"button","data-testid":"btn-add-condition",onClick:P},"Add condition")]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.value,(S,z)=>(e.openBlock(),e.createElementBlock("div",{key:`condition-${z}`,class:"workflow-form__row","data-testid":`item-condition-${z}`},[e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":L=>S.field=L,"data-testid":`workflow-condition-field-${z}`,"aria-label":`Condition ${z+1} field`},[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(f,L=>e.createElementVNode("option",{key:L,value:L},e.toDisplayString(L),9,Od)),64))],8,Pd),[[e.vModelSelect,S.field]]),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":L=>S.operator=L,"data-testid":`workflow-condition-operator-${z}`,"aria-label":`Condition ${z+1} operator`},[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(u,L=>e.createElementVNode("option",{key:L,value:L},e.toDisplayString(L),9,jd)),64))],8,Hd),[[e.vModelSelect,S.operator]]),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":L=>S.value=L,"data-testid":`workflow-condition-value-${z}`,"aria-label":`Condition ${z+1} value`,type:"text",placeholder:"critical, urgent",disabled:S.operator==="is_null"||S.operator==="is_not_null"},null,8,qd),[[e.vModelText,S.value]]),e.createElementVNode("button",{type:"button","data-testid":`btn-remove-condition-${z}`,"aria-label":`Remove condition ${z+1}`,disabled:m.value.length===1,onClick:L=>J(z)},"Remove",8,Yd)],8,xd))),128))])):d.value===4?(e.openBlock(),e.createElementBlock("section",Kd,[e.createElementVNode("div",{class:"workflow-form__panel-header"},[B[21]||(B[21]=e.createElementVNode("div",null,[e.createElementVNode("h3",null,"Action steps"),e.createElementVNode("p",null,"Actions run in the order shown here.")],-1)),e.createElementVNode("button",{type:"button","data-testid":"btn-add-action",onClick:F},"Add action")]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(y.value,(S,z)=>(e.openBlock(),e.createElementBlock("article",{key:`action-${z}`,class:"workflow-form__action-card","data-testid":`item-action-${z}`},[e.createElementVNode("div",Gd,[e.createElementVNode("label",Jd,[B[22]||(B[22]=e.createElementVNode("span",null,"Action",-1)),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":L=>S.type=L,"data-testid":`workflow-action-type-${z}`},[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(k,L=>e.createElementVNode("option",{key:L.value,value:L.value},e.toDisplayString(L.label),9,Xd)),64))],8,Zd),[[e.vModelSelect,S.type]])]),e.createElementVNode("label",ec,[B[24]||(B[24]=e.createElementVNode("span",null,"Value",-1)),Ve(S.type)?e.withDirectives((e.openBlock(),e.createElementBlock("select",{key:0,"onUpdate:modelValue":L=>S.value=L,"data-testid":`workflow-action-value-${z}`},[B[23]||(B[23]=e.createElementVNode("option",{value:""},"Select value",-1)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(S.type==="set_status"?i:r,L=>(e.openBlock(),e.createElementBlock("option",{key:L,value:L},e.toDisplayString(L),9,ac))),128))],8,tc)),[[e.vModelSelect,S.value]]):S.type==="assign_to_user"?(e.openBlock(),e.createBlock(Ee,{key:1,modelValue:S.value,"onUpdate:modelValue":L=>S.value=L,"input-test-id":`workflow-action-value-${z}`,"aria-label":"Workflow assignee",placeholder:"Assign to employee","rank-by-workload":""},null,8,["modelValue","onUpdate:modelValue","input-test-id"])):S.type==="assign_to_role"&&V.value.length>0?(e.openBlock(),e.createBlock(ua,{key:2,modelValue:S.value,"onUpdate:modelValue":L=>S.value=L,options:V.value,"input-test-id":`workflow-action-value-${z}`,placeholder:"Assign to role"},null,8,["modelValue","onUpdate:modelValue","options","input-test-id"])):S.type==="add_comment"?e.withDirectives((e.openBlock(),e.createElementBlock("textarea",{key:3,"onUpdate:modelValue":L=>S.value=L,"data-testid":`workflow-action-value-${z}`,rows:"3",placeholder:"Comment body"},null,8,nc)),[[e.vModelText,S.value]]):e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:4,"onUpdate:modelValue":L=>S.value=L,"data-testid":`workflow-action-value-${z}`,type:"text",placeholder:Ne(S.type)},null,8,lc)),[[e.vModelText,S.value]])])]),S.type==="send_notification"?(e.openBlock(),e.createElementBlock("div",oc,[e.createElementVNode("label",sc,[B[25]||(B[25]=e.createElementVNode("span",null,"Recipients",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":L=>S.config.recipients=L,"data-testid":`workflow-action-recipients-${z}`,type:"text",placeholder:"assignee, manager"},null,8,ic),[[e.vModelText,S.config.recipients]])]),e.createElementVNode("label",rc,[B[26]||(B[26]=e.createElementVNode("span",null,"Message",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":L=>S.config.message=L,"data-testid":`workflow-action-message-${z}`,type:"text",placeholder:"Workflow updated this task"},null,8,dc),[[e.vModelText,S.config.message]])])])):e.createCommentVNode("",!0),S.type==="create_related_task"?(e.openBlock(),e.createElementBlock("div",cc,[e.createElementVNode("label",uc,[B[28]||(B[28]=e.createElementVNode("span",null,"Relation type",-1)),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":L=>S.config.relation_type=L,"data-testid":`workflow-action-relation-type-${z}`},[...B[27]||(B[27]=[e.createElementVNode("option",{value:"related_to"},"related_to",-1),e.createElementVNode("option",{value:"blocks"},"blocks",-1),e.createElementVNode("option",{value:"parent_of"},"parent_of",-1)])],8,mc),[[e.vModelSelect,S.config.relation_type]])]),e.createElementVNode("label",pc,[B[30]||(B[30]=e.createElementVNode("span",null,"Template",-1)),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":L=>S.config.template_id=L,"data-testid":`workflow-action-template-id-${z}`},[B[29]||(B[29]=e.createElementVNode("option",{value:""},"No template",-1)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(N.value,L=>(e.openBlock(),e.createElementBlock("option",{key:L.id,value:L.id},e.toDisplayString(L.name),9,_c))),128))],8,kc),[[e.vModelSelect,S.config.template_id]])]),e.createElementVNode("label",fc,[B[31]||(B[31]=e.createElementVNode("span",null,"Priority",-1)),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":L=>S.config.priority=L,"data-testid":`workflow-action-priority-${z}`},[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(r,L=>e.createElementVNode("option",{key:L,value:L},e.toDisplayString(L),9,yc)),64))],8,vc),[[e.vModelSelect,S.config.priority]])]),e.createElementVNode("label",gc,[B[32]||(B[32]=e.createElementVNode("span",null,"Tags",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":L=>S.config.tags=L,"data-testid":`workflow-action-tags-${z}`,type:"text",placeholder:"follow-up, warehouse"},null,8,bc),[[e.vModelText,S.config.tags]])])])):e.createCommentVNode("",!0),S.type==="set_due_date"?(e.openBlock(),e.createElementBlock("div",hc,[e.createElementVNode("label",wc,[B[33]||(B[33]=e.createElementVNode("span",null,"Absolute due date",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":L=>S.value=L,"data-testid":`workflow-action-due-date-${z}`,type:"date"},null,8,Ec),[[e.vModelText,S.value]])]),e.createElementVNode("label",Vc,[B[34]||(B[34]=e.createElementVNode("span",null,"Offset hours",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":L=>S.config.offset_hours=L,"data-testid":`workflow-action-offset-hours-${z}`,type:"number",min:"0",placeholder:"4"},null,8,Nc),[[e.vModelText,S.config.offset_hours]])])])):e.createCommentVNode("",!0),S.type==="webhook"?(e.openBlock(),e.createElementBlock("div",$c,[e.createElementVNode("label",Tc,[B[35]||(B[35]=e.createElementVNode("span",null,"Webhook URL",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":L=>S.config.url=L,"data-testid":`workflow-action-url-${z}`,type:"url",placeholder:"https://hooks.example.com/task"},null,8,Bc),[[e.vModelText,S.config.url]])]),e.createElementVNode("label",Sc,[B[37]||(B[37]=e.createElementVNode("span",null,"Method",-1)),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":L=>S.config.method=L,"data-testid":`workflow-action-method-${z}`},[...B[36]||(B[36]=[e.createElementVNode("option",{value:"POST"},"POST",-1),e.createElementVNode("option",{value:"PUT"},"PUT",-1),e.createElementVNode("option",{value:"PATCH"},"PATCH",-1)])],8,Cc),[[e.vModelSelect,S.config.method]])])])):e.createCommentVNode("",!0),e.createElementVNode("footer",Dc,[e.createElementVNode("button",{type:"button","data-testid":`btn-move-action-up-${z}`,"aria-label":`Move action ${z+1} up`,disabled:z===0,onClick:L=>j(z,"up")},"Move up",8,Mc),e.createElementVNode("button",{type:"button","data-testid":`btn-move-action-down-${z}`,"aria-label":`Move action ${z+1} down`,disabled:z===y.value.length-1,onClick:L=>j(z,"down")},"Move down",8,Ac),e.createElementVNode("button",{type:"button","data-testid":`btn-remove-action-${z}`,"aria-label":`Remove action ${z+1}`,disabled:y.value.length===1,onClick:L=>O(z)},"Remove",8,Ic)])],8,Qd))),128))])):(e.openBlock(),e.createElementBlock("section",Fc,[B[43]||(B[43]=e.createElementVNode("h3",null,"Settings",-1)),e.createElementVNode("div",Lc,[e.createElementVNode("label",Rc,[B[38]||(B[38]=e.createElementVNode("span",null,"Name",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":B[5]||(B[5]=S=>g.name=S),"data-testid":"workflow-name",type:"text",required:"",placeholder:"Auto-assign shipping tasks"},null,512),[[e.vModelText,g.name]])]),e.createElementVNode("label",zc,[B[39]||(B[39]=e.createElementVNode("span",null,"Description",-1)),e.withDirectives(e.createElementVNode("textarea",{"onUpdate:modelValue":B[6]||(B[6]=S=>g.description=S),"data-testid":"workflow-description",rows:"4",placeholder:"Explain when and why this workflow exists."},null,512),[[e.vModelText,g.description]])]),e.createElementVNode("label",Uc,[B[40]||(B[40]=e.createElementVNode("span",null,"Position",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":B[7]||(B[7]=S=>g.position=S),"data-testid":"workflow-position",type:"number",min:"0"},null,512),[[e.vModelText,g.position,void 0,{number:!0}]])]),e.createElementVNode("label",Wc,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":B[8]||(B[8]=S=>g.is_enabled=S),"data-testid":"workflow-enabled",type:"checkbox"},null,512),[[e.vModelCheckbox,g.is_enabled]]),B[41]||(B[41]=e.createTextVNode(" Enabled ",-1))]),e.createElementVNode("label",xc,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":B[9]||(B[9]=S=>g.stop_processing=S),"data-testid":"workflow-stop-processing",type:"checkbox"},null,512),[[e.vModelCheckbox,g.stop_processing]]),B[42]||(B[42]=e.createTextVNode(" Stop processing later workflows ",-1))])])])),e.createElementVNode("footer",Pc,[e.createElementVNode("button",{type:"button",class:"workflow-form__ghost","data-testid":"workflow-cancel",onClick:B[10]||(B[10]=S=>o("cancel"))},"Cancel"),d.value>1?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"workflow-form__ghost","data-testid":"workflow-back",onClick:w},"Back")):e.createCommentVNode("",!0),p.value?(e.openBlock(),e.createElementBlock("button",{key:2,type:"submit","data-testid":"workflow-submit",disabled:t.submitting||g.name.trim()===""},e.toDisplayString(c.value==="edit"?"Save workflow":"Create workflow"),9,Oc)):(e.openBlock(),e.createElementBlock("button",{key:1,type:"button","data-testid":"workflow-next",onClick:v},"Next"))])],32))}}),jc=x(Hc,[["__scopeId","data-v-9e014510"]]),qc={class:"workflow-list","data-testid":"list-workflows"},Yc={class:"workflow-list__header"},Kc={class:"workflow-list__count","data-testid":"badge-workflow-count"},Qc={key:0,class:"workflow-list__error","data-testid":"status-workflow-error"},Gc={key:1,class:"workflow-list__loading","data-testid":"status-loading-workflows"},Jc={key:2,class:"workflow-list__table-wrap"},Zc={class:"workflow-list__table","data-testid":"workflow-list-table"},Xc=["data-testid"],eu={class:"workflow-list__name"},tu={key:0},au=["data-testid","onClick"],nu={class:"workflow-list__actions"},lu=["data-testid","aria-label","disabled","onClick"],ou=["data-testid","aria-label","disabled","onClick"],su=["data-testid","aria-label","onClick"],iu=["data-testid","aria-label","onClick"],ru=["data-testid","aria-label","onClick"],du=["data-testid","aria-label","onClick"],cu={key:0},uu=e.defineComponent({__name:"WorkflowList",props:{workflows:{},loading:{type:Boolean},error:{}},emits:["edit","duplicate","remove","toggle","move","logs"],setup(t,{emit:a}){const l=t,o=a,n=e.computed(()=>[...l.workflows].sort((r,s)=>r.position-s.position));function i(r){return r===null||r===""?"Never":new Date(r).toLocaleString()}return(r,s)=>(e.openBlock(),e.createElementBlock("section",qc,[e.createElementVNode("header",Yc,[s[0]||(s[0]=e.createElementVNode("div",null,[e.createElementVNode("p",{class:"workflow-list__eyebrow"},"Workflow Automation"),e.createElementVNode("h2",null,"Workflow Builder")],-1)),e.createElementVNode("span",Kc,e.toDisplayString(n.value.length)+" workflows",1)]),t.error?(e.openBlock(),e.createElementBlock("p",Qc,e.toDisplayString(t.error),1)):t.loading&&n.value.length===0?(e.openBlock(),e.createElementBlock("p",Gc,"Loading workflows…")):(e.openBlock(),e.createElementBlock("div",Jc,[e.createElementVNode("table",Zc,[s[2]||(s[2]=e.createElementVNode("thead",null,[e.createElementVNode("tr",null,[e.createElementVNode("th",null,"Name"),e.createElementVNode("th",null,"Trigger"),e.createElementVNode("th",null,"Status"),e.createElementVNode("th",null,"Last Run"),e.createElementVNode("th",null,"Runs"),e.createElementVNode("th",{class:"workflow-list__actions-header"},"Actions")])],-1)),e.createElementVNode("tbody",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.value,(f,u)=>(e.openBlock(),e.createElementBlock("tr",{key:f.id,"data-testid":`workflow-row-${f.id}`},[e.createElementVNode("td",null,[e.createElementVNode("div",eu,[e.createElementVNode("strong",null,e.toDisplayString(f.name),1),f.description?(e.openBlock(),e.createElementBlock("span",tu,e.toDisplayString(f.description),1)):e.createCommentVNode("",!0)])]),e.createElementVNode("td",null,e.toDisplayString(f.trigger_type_label??f.trigger_type),1),e.createElementVNode("td",null,[e.createElementVNode("button",{type:"button",class:e.normalizeClass(["workflow-list__status",{"workflow-list__status--enabled":f.is_enabled}]),"data-testid":`workflow-toggle-${f.id}`,onClick:k=>o("toggle",{workflow:f,isEnabled:!f.is_enabled})},e.toDisplayString(f.is_enabled?"Enabled":"Disabled"),11,au)]),e.createElementVNode("td",null,e.toDisplayString(i(f.last_executed_at)),1),e.createElementVNode("td",null,e.toDisplayString(f.execution_count),1),e.createElementVNode("td",nu,[e.createElementVNode("button",{type:"button","data-testid":`btn-move-workflow-up-${f.id}`,"aria-label":`Move ${f.name} up`,disabled:u===0,onClick:k=>o("move",{workflow:f,direction:"up"})},"Up",8,lu),e.createElementVNode("button",{type:"button","data-testid":`btn-move-workflow-down-${f.id}`,"aria-label":`Move ${f.name} down`,disabled:u===n.value.length-1,onClick:k=>o("move",{workflow:f,direction:"down"})},"Down",8,ou),e.createElementVNode("button",{type:"button","data-testid":`btn-edit-workflow-${f.id}`,"aria-label":`Edit ${f.name}`,onClick:k=>o("edit",f)},"Edit",8,su),e.createElementVNode("button",{type:"button","data-testid":`btn-duplicate-workflow-${f.id}`,"aria-label":`Duplicate ${f.name}`,onClick:k=>o("duplicate",f)},"Duplicate",8,iu),e.createElementVNode("button",{type:"button","data-testid":`btn-logs-workflow-${f.id}`,"aria-label":`View logs for ${f.name}`,onClick:k=>o("logs",f)},"Logs",8,ru),e.createElementVNode("button",{type:"button",class:"workflow-list__danger","data-testid":`btn-delete-workflow-${f.id}`,"aria-label":`Delete ${f.name}`,onClick:k=>o("remove",f)},"Delete",8,du)])],8,Xc))),128)),n.value.length===0?(e.openBlock(),e.createElementBlock("tr",cu,[...s[1]||(s[1]=[e.createElementVNode("td",{colspan:"6",class:"workflow-list__empty","data-testid":"status-empty-workflows"},"No workflows yet.",-1)])])):e.createCommentVNode("",!0)])])]))]))}}),mu=x(uu,[["__scopeId","data-v-9cefa856"]]),pu={class:"workflow-logs","data-testid":"panel-workflow-logs"},ku={class:"workflow-logs__filters"},_u={key:0,class:"workflow-logs__loading","data-testid":"status-loading-logs"},fu=["data-testid"],vu={class:"workflow-logs__row"},yu=["data-testid"],gu={class:"workflow-logs__meta"},bu=["data-testid","onClick"],hu={key:1},wu=["data-testid","aria-expanded","aria-label","onClick"],Eu=["data-testid"],Vu={key:0},Nu={key:1,class:"workflow-logs__empty","data-testid":"status-empty-logs"},$u=e.defineComponent({__name:"WorkflowLogs",props:{logs:{},loading:{type:Boolean}},emits:["refresh","select-task"],setup(t,{emit:a}){const l=t,o=a,n=e.ref(""),i=e.ref(""),r=e.ref(""),s=e.ref(null),f=e.computed(()=>l.logs.filter(g=>!(n.value!==""&&g.status!==n.value||i.value!==""&&(g.executed_at===null||g.executed_at<i.value)||r.value!==""&&(g.executed_at===null||g.executed_at>r.value))));function u(g){s.value=s.value===g?null:g}function k(){o("refresh",{...n.value!==""?{status:n.value}:{},...i.value!==""?{date_from:i.value}:{},...r.value!==""?{date_to:r.value}:{}})}function d(g){o("select-task",g)}return(g,b)=>(e.openBlock(),e.createElementBlock("section",pu,[e.createElementVNode("header",{class:"workflow-logs__header"},[b[3]||(b[3]=e.createElementVNode("div",null,[e.createElementVNode("p",{class:"workflow-logs__eyebrow"},"Execution Audit"),e.createElementVNode("h2",null,"Workflow Logs")],-1)),e.createElementVNode("button",{type:"button","data-testid":"btn-refresh-logs","aria-label":"Refresh workflow logs",onClick:k},"Refresh")]),e.createElementVNode("div",ku,[e.createElementVNode("label",null,[b[5]||(b[5]=e.createElementVNode("span",null,"Status",-1)),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":b[0]||(b[0]=m=>n.value=m),"data-testid":"workflow-log-status-filter"},[...b[4]||(b[4]=[e.createElementVNode("option",{value:""},"All",-1),e.createElementVNode("option",{value:"success"},"success",-1),e.createElementVNode("option",{value:"skipped"},"skipped",-1),e.createElementVNode("option",{value:"error"},"error",-1)])],512),[[e.vModelSelect,n.value]])]),e.createElementVNode("label",null,[b[6]||(b[6]=e.createElementVNode("span",null,"From",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":b[1]||(b[1]=m=>i.value=m),"data-testid":"workflow-log-date-from",type:"date"},null,512),[[e.vModelText,i.value]])]),e.createElementVNode("label",null,[b[7]||(b[7]=e.createElementVNode("span",null,"To",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":b[2]||(b[2]=m=>r.value=m),"data-testid":"workflow-log-date-to",type:"date"},null,512),[[e.vModelText,r.value]])])]),t.loading?(e.openBlock(),e.createElementBlock("p",_u,"Loading logs…")):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(f.value,m=>(e.openBlock(),e.createElementBlock("div",{key:m.id,class:"workflow-logs__card","data-testid":`card-log-${m.id}`},[e.createElementVNode("div",vu,[e.createElementVNode("div",null,[e.createElementVNode("strong",{"data-testid":`status-log-${m.id}`},e.toDisplayString(m.status_label??m.status),9,yu),e.createElementVNode("p",null,e.toDisplayString(e.unref(ne)(m.executed_at)),1)]),e.createElementVNode("div",gu,[m.task?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"workflow-logs__task-link","data-testid":`btn-open-log-task-${m.id}`,onClick:y=>d(m.task.id)},e.toDisplayString(m.task.display_number_formatted)+" · "+e.toDisplayString(m.task.title),9,bu)):(e.openBlock(),e.createElementBlock("span",hu,"Task "+e.toDisplayString(m.task_id),1)),e.createElementVNode("span",null,e.toDisplayString(m.duration_ms)+"ms",1),e.createElementVNode("button",{type:"button","data-testid":`btn-toggle-log-${m.id}`,"aria-expanded":s.value===m.id,"aria-label":s.value===m.id?"Hide log details":"Show log details",onClick:y=>u(m.id)},e.toDisplayString(s.value===m.id?"Hide":"Details"),9,wu)])]),s.value===m.id?(e.openBlock(),e.createElementBlock("div",{key:0,class:"workflow-logs__details","data-testid":`panel-log-details-${m.id}`},[e.createElementVNode("p",null,[b[8]||(b[8]=e.createElementVNode("strong",null,"Conditions met:",-1)),e.createTextVNode(" "+e.toDisplayString(m.conditions_met?"Yes":"No"),1)]),m.error?(e.openBlock(),e.createElementBlock("p",Vu,[b[9]||(b[9]=e.createElementVNode("strong",null,"Error:",-1)),e.createTextVNode(" "+e.toDisplayString(m.error),1)])):e.createCommentVNode("",!0),e.createElementVNode("ul",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.actions_executed,(y,c)=>{var p;return e.openBlock(),e.createElementBlock("li",{key:`${m.id}-${c}`},e.toDisplayString(y.type)+": "+e.toDisplayString(((p=y.result)==null?void 0:p.message)??"No result message"),1)}),128))])],8,Eu)):e.createCommentVNode("",!0)],8,fu))),128)),!t.loading&&f.value.length===0?(e.openBlock(),e.createElementBlock("p",Nu,"No log entries match the current filters.")):e.createCommentVNode("",!0)]))}}),Tu=x($u,[["__scopeId","data-v-e72cf4ed"]]),Bu={class:"task-deadline-field__inputs"},Su={class:"task-deadline-field__input-group"},Cu=["value","data-testid","disabled"],Du={class:"task-deadline-field__input-group"},Mu=["value","data-testid","disabled"],Au={class:"task-deadline-field__presets"},Iu=["disabled"],Fu=["disabled"],Lu=["disabled"],Ru=["disabled"],zu={key:0,class:"task-deadline-field__helper"},Uu=e.defineComponent({__name:"TaskDeadlineField",props:{modelValue:{default:null},disabled:{type:Boolean,default:!1},compact:{type:Boolean,default:!1},label:{default:"Deadline (optional)"},dateTestId:{default:"input-task-due-date"},timeTestId:{default:"input-task-due-time"}},emits:["update:modelValue"],setup(t,{emit:a}){const l=t,o=a,n=e.ref(""),i=e.ref("");function r(c){return c.toString().padStart(2,"0")}function s(c){return`${c.getFullYear()}-${r(c.getMonth()+1)}-${r(c.getDate())}`}function f(c){return`${r(c.getHours())}:${r(c.getMinutes())}`}function u(c){if(!c){n.value="",i.value="";return}if(/^\d{4}-\d{2}-\d{2}$/.test(c)){n.value=c,i.value="";return}const p=new Date(c);if(Number.isNaN(p.getTime())){n.value=c.slice(0,10),i.value=c.length>=16?c.slice(11,16):"";return}n.value=s(p),i.value=f(p)}function k(){if(!n.value){o("update:modelValue",null);return}if(!i.value){o("update:modelValue",n.value);return}o("update:modelValue",new Date(`${n.value}T${i.value}`).toISOString())}function d(c){n.value=c,k()}function g(c){i.value=c,k()}function b(c){const p=new Date;p.setDate(p.getDate()+c),n.value=s(p),i.value||(i.value="17:00"),k()}function m(){n.value="",i.value="",o("update:modelValue",null)}const y=e.computed(()=>i.value?"Escalation timing will use this exact time.":"Add a time for more precise reminder and escalation windows.");return e.watch(()=>l.modelValue,c=>{u(c)},{immediate:!0}),(c,p)=>(e.openBlock(),e.createElementBlock("fieldset",{class:e.normalizeClass(["task-deadline-field",{compact:t.compact}]),"data-testid":"field-task-deadline"},[e.createElementVNode("legend",null,e.toDisplayString(t.label),1),e.createElementVNode("div",Bu,[e.createElementVNode("label",Su,[p[5]||(p[5]=e.createElementVNode("span",null,"Date",-1)),e.createElementVNode("input",{value:n.value,type:"date","data-testid":t.dateTestId,"aria-label":"Deadline date",disabled:t.disabled,onInput:p[0]||(p[0]=N=>d(N.target.value))},null,40,Cu)]),e.createElementVNode("label",Du,[p[6]||(p[6]=e.createElementVNode("span",null,"Time",-1)),e.createElementVNode("input",{value:i.value,type:"time","data-testid":t.timeTestId,"aria-label":"Deadline time",disabled:t.disabled,onInput:p[1]||(p[1]=N=>g(N.target.value))},null,40,Mu)])]),e.createElementVNode("div",Au,[e.createElementVNode("button",{type:"button","data-testid":"btn-deadline-today",disabled:t.disabled,onClick:p[2]||(p[2]=N=>b(0))},"Today",8,Iu),e.createElementVNode("button",{type:"button","data-testid":"btn-deadline-tomorrow",disabled:t.disabled,onClick:p[3]||(p[3]=N=>b(1))},"Tomorrow",8,Fu),e.createElementVNode("button",{type:"button","data-testid":"btn-deadline-three-days",disabled:t.disabled,onClick:p[4]||(p[4]=N=>b(3))},"+3 days",8,Lu),e.createElementVNode("button",{type:"button","data-testid":"btn-deadline-clear",class:"secondary",disabled:t.disabled,onClick:m},"Clear",8,Ru)]),t.compact?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("p",zu,e.toDisplayString(y.value),1))],2))}}),pt=x(Uu,[["__scopeId","data-v-fa277772"]]),Wu=["disabled"],xu={key:0,class:"task-quick-create__extras"},Pu=["disabled"],Ou=["value"],Hu=["disabled"],ju=e.defineComponent({__name:"TaskQuickCreate",props:{templates:{},busy:{type:Boolean},startExpanded:{type:Boolean},entityContext:{}},emits:["submit","instantiate-template"],setup(t,{emit:a}){const l=t,o=a,n=e.ref(l.startExpanded??!1),i=e.reactive({title:"",primary_assignee_id:"",due_at:"",template_id:""}),r=e.computed(()=>l.templates??[]);function s(){n.value=!0}function f(){i.title||i.primary_assignee_id||i.due_at||i.template_id||(n.value=!1)}function u(){var k,d;if(i.template_id){o("instantiate-template",i.template_id),i.template_id="",f();return}i.title.trim()&&(o("submit",{title:i.title.trim(),primary_assignee_id:i.primary_assignee_id||null,due_at:i.due_at||null,taskable_type:((k=l.entityContext)==null?void 0:k.type)??null,taskable_id:((d=l.entityContext)==null?void 0:d.id)??null}),i.title="",i.primary_assignee_id="",i.due_at="",f())}return(k,d)=>(e.openBlock(),e.createElementBlock("form",{class:e.normalizeClass(["task-quick-create",{expanded:n.value}]),"data-testid":"form-quick-create",onSubmit:e.withModifiers(u,["prevent"])},[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":d[0]||(d[0]=g=>i.title=g),type:"text","data-testid":"input-task-title","aria-label":"Task title",disabled:t.busy,placeholder:"Quick create a task",onFocus:s},null,40,Wu),[[e.vModelText,i.title]]),n.value?(e.openBlock(),e.createElementBlock("div",xu,[e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":d[1]||(d[1]=g=>i.template_id=g),"data-testid":"select-task-template","aria-label":"Task template",disabled:t.busy},[d[4]||(d[4]=e.createElementVNode("option",{value:""},"No template",-1)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,g=>(e.openBlock(),e.createElementBlock("option",{key:g.id,value:g.id},e.toDisplayString(g.name),9,Ou))),128))],8,Pu),[[e.vModelSelect,i.template_id]]),e.createVNode(Ee,{modelValue:i.primary_assignee_id,"onUpdate:modelValue":d[2]||(d[2]=g=>i.primary_assignee_id=g),"input-test-id":"input-task-assignee",disabled:t.busy??!1,"aria-label":"Assignee",placeholder:"Assign to employee","rank-by-workload":""},null,8,["modelValue","disabled"]),e.createVNode(pt,{modelValue:i.due_at,"onUpdate:modelValue":d[3]||(d[3]=g=>i.due_at=g),class:"task-quick-create__deadline",compact:"",disabled:t.busy??!1},null,8,["modelValue","disabled"]),e.createElementVNode("button",{type:"submit","data-testid":"btn-submit-task",disabled:t.busy||!i.title.trim()&&!i.template_id}," Create ",8,Hu)])):e.createCommentVNode("",!0)],34))}}),kt=x(ju,[["__scopeId","data-v-713c12cf"]]),qu={class:"task-entity-widget","data-testid":"panel-entity-tasks"},Yu={class:"task-entity-widget__header"},Ku={class:"task-entity-widget__summary","data-testid":"panel-task-summary"},Qu={"data-testid":"status-task-total"},Gu={"data-testid":"status-task-open"},Ju={"data-testid":"status-task-overdue"},Zu={"data-testid":"status-task-completed"},Xu={class:"task-entity-widget__recent","data-testid":"panel-recent-tasks"},em={key:0,class:"task-entity-widget__cards","data-testid":"list-recent-tasks"},tm={key:1,"data-testid":"status-no-recent-tasks"},am=e.defineComponent({__name:"TaskEntityWidget",props:{entityType:{},entityId:{},summary:{},templates:{},loading:{type:Boolean}},emits:["create-task","view-all","instantiate-template","select-task"],setup(t,{emit:a}){const l=a;return(o,n)=>{var i,r,s,f,u,k;return e.openBlock(),e.createElementBlock("section",qu,[e.createElementVNode("header",Yu,[e.createElementVNode("div",null,[n[4]||(n[4]=e.createElementVNode("h3",null,"Tasks",-1)),e.createElementVNode("p",null,"Operational work linked to this "+e.toDisplayString(t.entityType)+".",1)]),e.createElementVNode("button",{type:"button","data-testid":"btn-view-all-tasks",onClick:n[0]||(n[0]=d=>l("view-all"))},"View all")]),e.createElementVNode("div",Ku,[e.createElementVNode("article",Qu,[n[5]||(n[5]=e.createElementVNode("span",null,"Total",-1)),e.createElementVNode("strong",null,e.toDisplayString(((i=t.summary)==null?void 0:i.total)??0),1)]),e.createElementVNode("article",Gu,[n[6]||(n[6]=e.createElementVNode("span",null,"Open",-1)),e.createElementVNode("strong",null,e.toDisplayString(((r=t.summary)==null?void 0:r.open)??0),1)]),e.createElementVNode("article",Ju,[n[7]||(n[7]=e.createElementVNode("span",null,"Overdue",-1)),e.createElementVNode("strong",null,e.toDisplayString(((s=t.summary)==null?void 0:s.overdue)??0),1)]),e.createElementVNode("article",Zu,[n[8]||(n[8]=e.createElementVNode("span",null,"Completed",-1)),e.createElementVNode("strong",null,e.toDisplayString(((f=t.summary)==null?void 0:f.completed)??0),1)])]),e.createVNode(kt,{busy:t.loading??!1,templates:t.templates??[],"entity-context":{type:t.entityType,id:t.entityId},onSubmit:n[1]||(n[1]=d=>l("create-task",d)),onInstantiateTemplate:n[2]||(n[2]=d=>l("instantiate-template",d))},null,8,["busy","templates","entity-context"]),e.createElementVNode("div",Xu,[n[9]||(n[9]=e.createElementVNode("h4",null,"Recent tasks",-1)),(k=(u=t.summary)==null?void 0:u.recent_tasks)!=null&&k.length?(e.openBlock(),e.createElementBlock("div",em,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.summary.recent_tasks,d=>(e.openBlock(),e.createBlock(mt,{key:d.id,"data-testid":`entity-task-${d.id}`,task:d,compact:"",onSelect:n[3]||(n[3]=g=>l("select-task",g))},null,8,["data-testid","task"]))),128))])):(e.openBlock(),e.createElementBlock("p",tm,"No recent tasks for this entity."))])])}}}),nm=x(am,[["__scopeId","data-v-bd744193"]]),lm={class:"task-import-export-panel","data-testid":"task-import-export-panel"},om={class:"task-import-export-panel__block"},sm=["disabled"],im={class:"task-import-export-panel__block"},rm={class:"task-import-export-panel__upload"},dm=["disabled"],cm={key:0,class:"task-import-export-panel__result","data-testid":"task-import-result"},um={key:0,"data-testid":"task-import-errors"},mm=e.defineComponent({__name:"TaskImportExportPanel",props:{busy:{type:Boolean},importing:{type:Boolean},exporting:{type:Boolean},result:{}},emits:["export","import"],setup(t,{emit:a}){const l=a,o=e.ref(null);function n(){l("export")}function i(r){var u;const s=r.target,f=((u=s==null?void 0:s.files)==null?void 0:u[0])??null;f&&(l("import",f),o.value&&(o.value.value=""))}return(r,s)=>(e.openBlock(),e.createElementBlock("section",lm,[e.createElementVNode("div",om,[s[0]||(s[0]=e.createElementVNode("div",null,[e.createElementVNode("h3",null,"Export Tasks"),e.createElementVNode("p",null,"Download the current filtered task view as CSV.")],-1)),e.createElementVNode("button",{type:"button","data-testid":"btn-export-tasks",disabled:(t.busy??!1)||(t.exporting??!1),onClick:n},e.toDisplayString(t.exporting?"Exporting…":"Export CSV"),9,sm)]),e.createElementVNode("div",im,[s[1]||(s[1]=e.createElementVNode("div",null,[e.createElementVNode("h3",null,"Import Tasks"),e.createElementVNode("p",null,"Upload a CSV with title, description, priority, assignee email, due date, and tags.")],-1)),e.createElementVNode("label",rm,[e.createElementVNode("span",null,e.toDisplayString(t.importing?"Importing…":"Choose CSV"),1),e.createElementVNode("input",{ref_key:"fileInput",ref:o,type:"file",accept:".csv,text/csv","data-testid":"input-import-tasks",disabled:(t.busy??!1)||(t.importing??!1),onChange:i},null,40,dm)])]),t.result?(e.openBlock(),e.createElementBlock("div",cm,[e.createElementVNode("p",null,[s[2]||(s[2]=e.createTextVNode(" Imported ",-1)),e.createElementVNode("strong",null,e.toDisplayString(t.result.imported),1),e.createTextVNode(" task"+e.toDisplayString(t.result.imported===1?"":"s")+". ",1)]),t.result.errors.length>0?(e.openBlock(),e.createElementBlock("ul",um,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.result.errors,f=>(e.openBlock(),e.createElementBlock("li",{key:`${f.row}-${f.message}`}," Row "+e.toDisplayString(f.row)+": "+e.toDisplayString(f.message),1))),128))])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)]))}}),ma=x(mm,[["__scopeId","data-v-54e06020"]]),pm=["aria-label"],km=["data-testid"],_m=["data-testid","aria-label","onClick"],fm={class:"task-notification-toast__eyebrow"},vm=["aria-label","onClick"],ym=e.defineComponent({__name:"TaskNotificationToast",props:{navigate:{type:[Function,null],default:null},ariaLabel:{default:"Task notifications"}},emits:["dismiss","select"],setup(t,{emit:a}){const l=t,o=a,n=ct(),i=n.notifications,r=n.hasNotifications;function s(u){n.dismissTaskNotificationToast(u),o("dismiss",u)}function f(u){if(o("select",u),l.navigate!==null){l.navigate(u);return}typeof window<"u"&&u.url!==null&&window.location.assign(u.url)}return(u,k)=>e.unref(r)?(e.openBlock(),e.createElementBlock("div",{key:0,class:"task-notification-toast","data-testid":"toast-task-notification",role:"region","aria-label":t.ariaLabel,"aria-live":"polite","aria-atomic":"false"},[e.createVNode(e.TransitionGroup,{name:"task-toast"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(i),d=>(e.openBlock(),e.createElementBlock("article",{key:d.id,class:e.normalizeClass(["task-notification-toast__item",`task-notification-toast__item--${d.tone}`]),"data-testid":`toast-item-${d.id}`},[e.createElementVNode("button",{type:"button",class:"task-notification-toast__content","data-testid":`btn-open-toast-${d.id}`,"aria-label":`Open: ${d.title}`,onClick:g=>f(d)},[e.createElementVNode("span",fm,e.toDisplayString(d.kind),1),e.createElementVNode("strong",null,e.toDisplayString(d.title),1),e.createElementVNode("p",null,e.toDisplayString(d.body),1)],8,_m),e.createElementVNode("button",{type:"button",class:"task-notification-toast__dismiss","data-testid":"btn-dismiss-toast","aria-label":`Dismiss ${d.title}`,onClick:g=>s(d.id)}," × ",8,vm)],10,km))),128))]),_:1})],8,pm)):e.createCommentVNode("",!0)}}),gm=x(ym,[["__scopeId","data-v-c2c06d87"]]),bm={key:0,class:"escalation-actions","data-testid":"panel-escalation"},hm={class:"escalation-actions__header"},wm={class:"escalation-actions__status"},Em={class:"escalation-actions__label"},Vm={class:"escalation-actions__buttons"},Nm=["disabled"],$m=["aria-expanded","disabled"],Tm={class:"escalation-actions__facts"},Bm={key:0},Sm={key:1},Cm={key:2},Dm={class:"escalation-actions__field"},Mm={class:"escalation-actions__field"},Am={key:0,class:"escalation-actions__error",role:"alert"},Im={class:"escalation-actions__buttons"},Fm=["disabled"],Lm={key:1,class:"escalation-actions__timeline","data-testid":"list-escalation-events"},Rm=["data-testid"],zm={key:0},Um=e.defineComponent({__name:"EscalationActions",props:{task:{},busy:{type:Boolean}},emits:["acknowledge","snooze"],setup(t,{emit:a}){const l=t,o=a,n=e.ref(!1),i=e.ref(4),r=e.ref(""),s=e.ref(null),f=e.computed(()=>l.task.escalation_events.slice(0,6)),u=e.computed(()=>l.task.current_escalation_tier!==null||f.value.length>0),k=e.computed(()=>l.task.current_escalation_tier!==null&&!l.task.escalation_acknowledged_at),d=e.computed(()=>l.task.current_escalation_tier!==null),g=e.computed(()=>l.task.current_escalation_label??"Escalation");function b(){if(r.value.trim().length<5){s.value="Add a reason with at least 5 characters.";return}s.value=null,o("snooze",{taskId:l.task.id,hours:Math.max(1,Math.round(i.value)),reason:r.value.trim()}),n.value=!1,r.value=""}function m(y){switch(y.event_type){case"tier_fired":return y.tier_label??"Tier fired";case"acknowledged":return"Acknowledged";case"snoozed":return"Snoozed";case"suppressed":return"Queued for business hours";case"resolved":return"Resolved";case"rerouted":return"Rerouted";default:return y.event_type}}return(y,c)=>u.value?(e.openBlock(),e.createElementBlock("section",bm,[e.createElementVNode("header",hm,[e.createElementVNode("div",null,[c[5]||(c[5]=e.createElementVNode("p",{class:"escalation-actions__eyebrow"},"Escalation",-1)),e.createElementVNode("div",wm,[e.createVNode(qe,{tier:t.task.current_escalation_tier,"acknowledged-at":t.task.escalation_acknowledged_at,"snoozed-until":t.task.escalation_snoozed_until},null,8,["tier","acknowledged-at","snoozed-until"]),e.createElementVNode("span",Em,e.toDisplayString(g.value),1)])]),e.createElementVNode("div",Vm,[e.createElementVNode("button",{type:"button","data-testid":"btn-acknowledge-escalation",disabled:(t.busy??!1)||!k.value,onClick:c[0]||(c[0]=p=>o("acknowledge",t.task.id))}," Acknowledge ",8,Nm),e.createElementVNode("button",{type:"button","data-testid":"btn-snooze-escalation","aria-expanded":n.value,disabled:(t.busy??!1)||!d.value,onClick:c[1]||(c[1]=p=>n.value=!n.value)}," Snooze ",8,$m)])]),e.createElementVNode("dl",Tm,[t.task.next_escalation_at?(e.openBlock(),e.createElementBlock("div",Bm,[c[6]||(c[6]=e.createElementVNode("dt",null,"Next check",-1)),e.createElementVNode("dd",null,e.toDisplayString(e.unref(ne)(t.task.next_escalation_at))+" · "+e.toDisplayString(e.unref(ve)(t.task.next_escalation_at)),1)])):e.createCommentVNode("",!0),t.task.escalation_snoozed_until?(e.openBlock(),e.createElementBlock("div",Sm,[c[7]||(c[7]=e.createElementVNode("dt",null,"Snoozed until",-1)),e.createElementVNode("dd",null,e.toDisplayString(e.unref(ne)(t.task.escalation_snoozed_until)),1)])):e.createCommentVNode("",!0),t.task.escalation_acknowledged_at?(e.openBlock(),e.createElementBlock("div",Cm,[c[8]||(c[8]=e.createElementVNode("dt",null,"Acknowledged",-1)),e.createElementVNode("dd",null,e.toDisplayString(e.unref(ne)(t.task.escalation_acknowledged_at)),1)])):e.createCommentVNode("",!0)]),n.value?(e.openBlock(),e.createElementBlock("form",{key:0,class:"escalation-actions__snooze","data-testid":"form-snooze",onSubmit:e.withModifiers(b,["prevent"])},[e.createElementVNode("label",Dm,[c[9]||(c[9]=e.createElementVNode("span",null,"Hours",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":c[2]||(c[2]=p=>i.value=p),type:"number","data-testid":"input-snooze-hours",min:"1",max:"168","aria-label":"Snooze duration in hours"},null,512),[[e.vModelText,i.value,void 0,{number:!0}]])]),e.createElementVNode("label",Mm,[c[10]||(c[10]=e.createElementVNode("span",null,"Reason",-1)),e.withDirectives(e.createElementVNode("textarea",{"onUpdate:modelValue":c[3]||(c[3]=p=>r.value=p),rows:"3","data-testid":"input-snooze-reason",placeholder:"Explain why this alert can wait.","aria-label":"Snooze reason"},null,512),[[e.vModelText,r.value]])]),s.value?(e.openBlock(),e.createElementBlock("p",Am,e.toDisplayString(s.value),1)):e.createCommentVNode("",!0),e.createElementVNode("div",Im,[e.createElementVNode("button",{type:"submit","data-testid":"btn-save-snooze",disabled:t.busy??!1},"Save snooze",8,Fm),e.createElementVNode("button",{type:"button","data-testid":"btn-cancel-snooze",class:"ghost",onClick:c[4]||(c[4]=p=>n.value=!1)},"Cancel")])],32)):e.createCommentVNode("",!0),f.value.length>0?(e.openBlock(),e.createElementBlock("ol",Lm,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(f.value,p=>(e.openBlock(),e.createElementBlock("li",{key:p.id,"data-testid":`item-escalation-event-${p.id}`},[e.createElementVNode("strong",null,e.toDisplayString(m(p)),1),e.createElementVNode("span",null,e.toDisplayString(e.unref(ne)(p.created_at)),1),p.snooze_reason?(e.openBlock(),e.createElementBlock("small",zm,e.toDisplayString(p.snooze_reason),1)):e.createCommentVNode("",!0)],8,Rm))),128))])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)}}),pa=x(Um,[["__scopeId","data-v-f16622bf"]]),Wm={class:"task-checklist","data-testid":"panel-checklist"},xm={class:"task-checklist__header"},Pm={class:"task-checklist__meter","aria-hidden":"true"},Om={class:"task-checklist__items","data-testid":"list-checklist-items"},Hm=["data-testid"],jm={class:"task-checklist__toggle"},qm=["checked","disabled","aria-label","onChange"],Ym={class:"task-checklist__actions"},Km=["aria-label","disabled","onClick"],Qm=["aria-label","disabled","onClick"],Gm=["aria-label","disabled","onClick"],Jm=["disabled"],Zm=["disabled"],Xm=e.defineComponent({__name:"TaskChecklist",props:{items:{},disabled:{type:Boolean}},emits:["toggle-item","add-item","remove-item","reorder-items"],setup(t,{emit:a}){const l=t,o=a,n=e.ref(""),i=e.computed(()=>l.items.filter(u=>u.is_completed).length),r=e.computed(()=>l.items.length===0?0:Math.round(i.value/l.items.length*100));function s(){n.value.trim()&&(o("add-item",n.value.trim()),n.value="")}function f(u,k){const d=u+k;if(d<0||d>=l.items.length)return;const g=[...l.items],[b]=g.splice(u,1);b&&(g.splice(d,0,b),o("reorder-items",g.map(m=>m.id)))}return(u,k)=>(e.openBlock(),e.createElementBlock("section",Wm,[e.createElementVNode("header",xm,[e.createElementVNode("div",null,[k[1]||(k[1]=e.createElementVNode("h3",null,"Checklist",-1)),e.createElementVNode("p",null,e.toDisplayString(i.value)+" of "+e.toDisplayString(t.items.length)+" complete",1)]),e.createElementVNode("div",Pm,[e.createElementVNode("div",{class:"task-checklist__meter-fill",style:e.normalizeStyle({width:`${r.value}%`})},null,4)])]),e.createElementVNode("ul",Om,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,(d,g)=>(e.openBlock(),e.createElementBlock("li",{key:d.id,"data-testid":`checklist-item-${d.id}`,class:"task-checklist__item"},[e.createElementVNode("label",jm,[e.createElementVNode("input",{type:"checkbox",checked:d.is_completed,disabled:t.disabled,"aria-label":d.title,onChange:b=>o("toggle-item",d.id)},null,40,qm),e.createElementVNode("span",{class:e.normalizeClass({done:d.is_completed})},e.toDisplayString(d.title),3)]),e.createElementVNode("div",Ym,[e.createElementVNode("button",{type:"button","aria-label":`Move '${d.title}' up`,disabled:t.disabled||g===0,onClick:b=>f(g,-1)},"↑",8,Km),e.createElementVNode("button",{type:"button","aria-label":`Move '${d.title}' down`,disabled:t.disabled||g===t.items.length-1,onClick:b=>f(g,1)},"↓",8,Qm),e.createElementVNode("button",{type:"button","aria-label":`Remove '${d.title}'`,disabled:t.disabled,onClick:b=>o("remove-item",d.id)},"Remove",8,Gm)])],8,Hm))),128))]),e.createElementVNode("form",{class:"task-checklist__composer","data-testid":"form-add-checklist-item",onSubmit:e.withModifiers(s,["prevent"])},[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":k[0]||(k[0]=d=>n.value=d),type:"text","data-testid":"input-checklist-item",disabled:t.disabled,placeholder:"Add a checklist item"},null,8,Jm),[[e.vModelText,n.value]]),e.createElementVNode("button",{type:"submit","data-testid":"btn-add-checklist-item",disabled:t.disabled||!n.value.trim()},"Add",8,Zm)],32)]))}}),ka=x(Xm,[["__scopeId","data-v-6732197b"]]),ep={class:"task-comments","data-testid":"panel-comments"},tp={class:"task-comments__list","data-testid":"list-comments"},ap=["data-testid"],np={class:"task-comments__meta"},lp={class:"task-comments__visibility"},op=["disabled"],sp={class:"task-comments__controls"},ip=["disabled"],rp=["disabled"],dp=e.defineComponent({__name:"TaskComments",props:{comments:{},disabled:{type:Boolean}},emits:["submit"],setup(t,{emit:a}){const l=t,o=a,n=e.ref(""),i=e.ref("team"),r=e.computed(()=>[...l.comments].sort((f,u)=>f.created_at.localeCompare(u.created_at)));function s(){n.value.trim()&&(o("submit",{content:n.value.trim(),visibility:i.value}),n.value="",i.value="team")}return(f,u)=>(e.openBlock(),e.createElementBlock("section",ep,[e.createElementVNode("ul",tp,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,k=>(e.openBlock(),e.createElementBlock("li",{key:k.id,"data-testid":`item-comment-${k.id}`,class:"task-comments__item"},[e.createElementVNode("div",np,[e.createElementVNode("strong",null,e.toDisplayString(k.author.name),1),e.createElementVNode("span",null,e.toDisplayString(e.unref(ne)(k.created_at)),1),e.createElementVNode("span",lp,e.toDisplayString(k.visibility),1)]),e.createElementVNode("p",null,e.toDisplayString(k.content),1)],8,ap))),128))]),e.createElementVNode("form",{class:"task-comments__composer","data-testid":"form-comment",onSubmit:e.withModifiers(s,["prevent"])},[e.withDirectives(e.createElementVNode("textarea",{"onUpdate:modelValue":u[0]||(u[0]=k=>n.value=k),rows:"4","data-testid":"input-comment",disabled:t.disabled,placeholder:"Add a comment (basic markdown supported)","aria-label":"Comment text"},null,8,op),[[e.vModelText,n.value]]),e.createElementVNode("div",sp,[e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":u[1]||(u[1]=k=>i.value=k),"data-testid":"select-comment-visibility",disabled:t.disabled,"aria-label":"Comment visibility"},[...u[2]||(u[2]=[e.createElementVNode("option",{value:"team"},"Team",-1),e.createElementVNode("option",{value:"private"},"Private",-1)])],8,ip),[[e.vModelSelect,i.value]]),e.createElementVNode("button",{type:"submit","data-testid":"btn-post-comment",disabled:t.disabled||!n.value.trim()},"Post comment",8,rp)])],32)]))}}),_a=x(dp,[["__scopeId","data-v-c0a9f671"]]),cp={class:"task-time-tracker","data-testid":"task-time-tracker"},up={class:"task-time-tracker__header"},mp={"data-testid":"time-total"},pp={class:"task-time-tracker__actions"},kp=["disabled"],_p=["disabled"],fp=["disabled"],vp={key:0,class:"task-time-tracker__running","data-testid":"time-running-state"},yp={key:1,class:"task-time-tracker__notice","data-testid":"time-switch-notice"},gp=["disabled"],bp=["disabled"],hp={class:"task-time-tracker__manual-description"},wp=["disabled"],Ep=["disabled"],Vp={class:"task-time-tracker__entries","data-testid":"list-time-entries"},Np=["data-testid"],$p={class:"task-time-tracker__entry-main"},Tp={key:0},Bp={key:1,class:"task-time-tracker__entry-live"},Sp=["disabled","data-testid","onClick"],Cp={key:0,class:"task-time-tracker__empty"},Dp=e.defineComponent({__name:"TaskTimeTracker",props:{task:{},activeTimer:{},busy:{type:Boolean}},emits:["start-timer","stop-timer","add-manual-entry","delete-entry"],setup(t,{emit:a}){const l=t,o=a,n=e.ref("0"),i=e.ref("30"),r=e.ref(""),s=e.ref(!1),f=e.ref(Date.now());let u=null;const k=e.computed(()=>{var v;return l.task.time_entries.find(w=>w.is_running)??(((v=l.activeTimer)==null?void 0:v.task_id)===l.task.id&&l.activeTimer.is_running?l.activeTimer:null)}),d=e.computed(()=>l.activeTimer!==null&&l.activeTimer!==void 0&&l.activeTimer.task_id!==l.task.id&&l.activeTimer.is_running),g=e.computed(()=>l.task.time_entries.length===0?l.task.time_tracked_minutes??0:l.task.time_entries.reduce((v,w)=>{if(w.duration_minutes!==null)return v+w.duration_minutes;if(!w.started_at)return v;const M=new Date(w.started_at).getTime();return Number.isNaN(M)?v:v+Math.max(1,Math.floor((f.value-M)/6e4))},0)),b=e.computed(()=>{var w;if(!((w=k.value)!=null&&w.started_at))return 0;const v=new Date(k.value.started_at).getTime();return Number.isNaN(v)?0:Math.max(0,Math.floor((f.value-v)/1e3))}),m=e.computed(()=>[...l.task.time_entries].sort((v,w)=>{const M=w.started_at??w.created_at??"",P=v.started_at??v.created_at??"";return M.localeCompare(P)}));function y(v){var w;return(w=v.user)!=null&&w.name?v.user.name:v.user_id.trim()!==""?"Archived teammate":"Unknown teammate"}function c(){o("start-timer",l.task.id)}function p(){o("stop-timer",l.task.id)}function N(){const v=Number.parseInt(n.value,10),w=Number.parseInt(i.value,10),M=(Number.isNaN(v)?0:Math.max(0,v))*60+(Number.isNaN(w)?0:Math.max(0,w));M<=0||(o("add-manual-entry",{taskId:l.task.id,duration_minutes:M,description:r.value.trim()||null}),n.value="0",i.value="30",r.value="",s.value=!1)}function V(v){o("delete-entry",{taskId:l.task.id,entryId:v})}function I(v){if(v&&u===null){u=globalThis.setInterval(()=>{f.value=Date.now()},1e3);return}!v&&u!==null&&(globalThis.clearInterval(u),u=null)}function $(v){if(v<=0)return"0m";const w=Math.floor(v/60),M=v%60;return w===0?`${M}m`:M===0?`${w}h`:`${w}h ${M}m`}function E(v){const w=Math.floor(v/3600),M=Math.floor(v%3600/60),P=v%60;return[w,M,P].map(J=>String(J).padStart(2,"0")).join(":")}return e.watch(k,v=>{I(v!==null)},{immediate:!0}),e.onBeforeUnmount(()=>{I(!1)}),(v,w)=>(e.openBlock(),e.createElementBlock("section",cp,[e.createElementVNode("header",up,[e.createElementVNode("div",null,[w[5]||(w[5]=e.createElementVNode("h3",null,"Time Tracking",-1)),e.createElementVNode("p",null,[w[4]||(w[4]=e.createTextVNode("Total logged: ",-1)),e.createElementVNode("strong",mp,e.toDisplayString($(g.value)),1)])]),e.createElementVNode("div",pp,[k.value?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button","data-testid":"btn-stop-timer",disabled:t.busy??!1,onClick:p}," Stop timer ",8,kp)):(e.openBlock(),e.createElementBlock("button",{key:1,type:"button","data-testid":"btn-start-timer",disabled:t.busy??!1,onClick:c},e.toDisplayString(d.value?"Switch timer here":"Start timer"),9,_p)),e.createElementVNode("button",{type:"button","data-testid":"btn-toggle-manual-entry",disabled:t.busy??!1,onClick:w[0]||(w[0]=M=>s.value=!s.value)},e.toDisplayString(s.value?"Close manual entry":"Add manual entry"),9,fp)])]),k.value?(e.openBlock(),e.createElementBlock("p",vp," Running now: "+e.toDisplayString(E(b.value)),1)):d.value?(e.openBlock(),e.createElementBlock("p",yp," Starting a timer here will stop your other active timer automatically. ")):e.createCommentVNode("",!0),s.value?(e.openBlock(),e.createElementBlock("form",{key:2,class:"task-time-tracker__manual","data-testid":"form-manual-time-entry",onSubmit:e.withModifiers(N,["prevent"])},[e.createElementVNode("label",null,[w[6]||(w[6]=e.createElementVNode("span",null,"Hours",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":w[1]||(w[1]=M=>n.value=M),type:"number",min:"0",step:"1",inputmode:"numeric","data-testid":"input-manual-hours",disabled:t.busy??!1},null,8,gp),[[e.vModelText,n.value]])]),e.createElementVNode("label",null,[w[7]||(w[7]=e.createElementVNode("span",null,"Minutes",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":w[2]||(w[2]=M=>i.value=M),type:"number",min:"0",max:"59",step:"1",inputmode:"numeric","data-testid":"input-manual-minutes",disabled:t.busy??!1},null,8,bp),[[e.vModelText,i.value]])]),e.createElementVNode("label",hp,[w[8]||(w[8]=e.createElementVNode("span",null,"Description",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":w[3]||(w[3]=M=>r.value=M),type:"text",maxlength:"500","data-testid":"input-manual-description",placeholder:"Optional note",disabled:t.busy??!1},null,8,wp),[[e.vModelText,r.value]])]),e.createElementVNode("button",{type:"submit","data-testid":"btn-submit-manual-entry",disabled:t.busy??!1}," Save time entry ",8,Ep)],32)):e.createCommentVNode("",!0),e.createElementVNode("ul",Vp,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.value,M=>(e.openBlock(),e.createElementBlock("li",{key:M.id,class:"task-time-tracker__entry","data-testid":`time-entry-${M.id}`},[e.createElementVNode("div",$p,[e.createElementVNode("strong",null,e.toDisplayString(M.is_manual?"Manual entry":"Timer session"),1),e.createElementVNode("span",null,e.toDisplayString(y(M)),1),e.createElementVNode("span",null,e.toDisplayString($(M.duration_minutes??0)),1),e.createElementVNode("span",null,e.toDisplayString(e.unref(ne)(M.started_at)),1),M.description?(e.openBlock(),e.createElementBlock("span",Tp,e.toDisplayString(M.description),1)):e.createCommentVNode("",!0),M.is_running?(e.openBlock(),e.createElementBlock("span",Bp,"Running")):e.createCommentVNode("",!0)]),M.is_running?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"task-time-tracker__delete",disabled:t.busy??!1,"data-testid":`btn-delete-time-entry-${M.id}`,onClick:P=>V(M.id)}," Delete ",8,Sp))],8,Np))),128)),m.value.length===0?(e.openBlock(),e.createElementBlock("li",Cp," No time entries yet. ")):e.createCommentVNode("",!0)])]))}}),fa=x(Dp,[["__scopeId","data-v-0fa2f9a3"]]),Mp={class:"task-timeline","data-testid":"panel-activity"},Ap={class:"task-timeline__list","data-testid":"list-activity"},Ip=["data-testid"],Fp=e.defineComponent({__name:"TaskTimeline",props:{logs:{},canLoadMore:{type:Boolean}},emits:["load-more"],setup(t,{emit:a}){const l=a;return(o,n)=>(e.openBlock(),e.createElementBlock("section",Mp,[e.createElementVNode("ol",Ap,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.logs,i=>{var r;return e.openBlock(),e.createElementBlock("li",{key:i.id,"data-testid":`item-activity-${i.id}`,class:"task-timeline__item"},[n[1]||(n[1]=e.createElementVNode("span",{class:"task-timeline__icon","aria-hidden":"true"},"•",-1)),e.createElementVNode("div",null,[e.createElementVNode("p",null,[e.createElementVNode("strong",null,e.toDisplayString(((r=i.user)==null?void 0:r.name)??"System"),1),e.createTextVNode(" "+e.toDisplayString(e.unref(Qt)(i)),1)]),e.createElementVNode("small",null,e.toDisplayString(e.unref(ne)(i.created_at)),1)])],8,Ip)}),128))]),t.canLoadMore?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button","data-testid":"btn-load-more-activity",class:"task-timeline__more",onClick:n[0]||(n[0]=i=>l("load-more"))}," Load more ")):e.createCommentVNode("",!0)]))}}),va=x(Fp,[["__scopeId","data-v-e1a451f2"]]),Lp=["data-task-id"],Rp={class:"task-detail__header","data-testid":"task-detail-header"},zp={class:"task-detail__identity"},Up={class:"task-detail__number"},Wp={class:"task-detail__badges"},xp={class:"task-detail__actions"},Pp=["disabled"],Op=["disabled"],Hp=["disabled"],jp=["disabled"],qp=["disabled"],Yp={class:"task-detail__layout"},Kp={class:"task-detail__main"},Qp={class:"task-detail__description","data-testid":"task-description"},Gp={class:"task-detail__tabs","aria-label":"Task detail sections"},Jp=["aria-pressed"],Zp=["aria-pressed"],Xp=["aria-pressed"],ek=["aria-pressed"],tk={key:2,class:"task-detail__relations","data-testid":"panel-relations"},ak={"data-testid":"list-relations"},nk=["data-testid"],lk={key:0},ok={class:"task-detail__sidebar","data-testid":"task-sidebar"},sk={class:"task-detail__deadline-status"},ik={key:0},rk=e.defineComponent({__name:"TaskDetail",props:{task:{},activeTimer:{},busy:{type:Boolean}},emits:["complete","reopen","cancel","edit","delete","acknowledge-escalation","snooze-escalation","submit-comment","add-checklist-item","toggle-checklist-item","remove-checklist-item","reorder-checklist-items","start-timer","stop-timer","add-manual-time-entry","delete-time-entry"],setup(t,{emit:a}){const l=t,o=a,n=e.ref("comments"),i=e.computed(()=>{var r;return((r=l.task)==null?void 0:r.relations)??[]});return(r,s)=>{var f;return t.task?(e.openBlock(),e.createElementBlock("section",{key:0,class:"task-detail","data-task-id":t.task.id},[e.createElementVNode("header",Rp,[e.createElementVNode("div",zp,[e.createElementVNode("span",Up,e.toDisplayString(t.task.display_number_formatted),1),e.createElementVNode("h2",null,e.toDisplayString(t.task.title),1),e.createElementVNode("div",Wp,[e.createVNode(pe,{task:t.task},null,8,["task"]),e.createVNode(qe,{tier:t.task.current_escalation_tier??null,"acknowledged-at":t.task.escalation_acknowledged_at??null,"snoozed-until":t.task.escalation_snoozed_until??null},null,8,["tier","acknowledged-at","snoozed-until"]),e.createVNode(Le,{status:t.task.status,"data-testid":"status-badge"},null,8,["status"]),e.createVNode(Fe,{priority:t.task.priority,"data-testid":"priority-badge"},null,8,["priority"])])]),e.createElementVNode("div",xp,[e.createElementVNode("button",{type:"button","data-testid":"btn-complete-task",disabled:t.busy??!1,onClick:s[0]||(s[0]=u=>o("complete",t.task.id))},"Complete",8,Pp),e.createElementVNode("button",{type:"button","data-testid":"btn-reopen-task",disabled:t.busy??!1,onClick:s[1]||(s[1]=u=>o("reopen",t.task.id))},"Reopen",8,Op),e.createElementVNode("button",{type:"button","data-testid":"btn-cancel-task",disabled:t.busy??!1,onClick:s[2]||(s[2]=u=>o("cancel",t.task.id))},"Cancel",8,Hp),e.createElementVNode("button",{type:"button","data-testid":"btn-edit-task",disabled:t.busy??!1,onClick:s[3]||(s[3]=u=>o("edit",t.task.id))},"Edit",8,jp),e.createElementVNode("button",{type:"button","data-testid":"btn-delete-task",class:"danger",disabled:t.busy??!1,onClick:s[4]||(s[4]=u=>o("delete",t.task.id))},"Delete",8,qp)])]),e.createElementVNode("div",Yp,[e.createElementVNode("article",Kp,[e.createVNode(pa,{task:t.task,busy:t.busy??!1,onAcknowledge:s[5]||(s[5]=u=>o("acknowledge-escalation",u)),onSnooze:s[6]||(s[6]=u=>o("snooze-escalation",u))},null,8,["task","busy"]),e.createElementVNode("section",Qp,[s[20]||(s[20]=e.createElementVNode("h3",null,"Description",-1)),e.createElementVNode("p",null,e.toDisplayString(t.task.description||"No description yet."),1)]),e.createVNode(fa,{task:t.task,"active-timer":t.activeTimer??null,busy:t.busy??!1,onStartTimer:s[7]||(s[7]=u=>o("start-timer",u)),onStopTimer:s[8]||(s[8]=u=>o("stop-timer",u)),onAddManualEntry:s[9]||(s[9]=u=>o("add-manual-time-entry",u)),onDeleteEntry:s[10]||(s[10]=u=>o("delete-time-entry",u))},null,8,["task","active-timer","busy"]),e.createElementVNode("nav",Gp,[e.createElementVNode("button",{type:"button","data-testid":"tab-comments",class:e.normalizeClass({active:n.value==="comments"}),"aria-pressed":n.value==="comments",onClick:s[11]||(s[11]=u=>n.value="comments")},"Comments",10,Jp),e.createElementVNode("button",{type:"button","data-testid":"tab-checklist",class:e.normalizeClass({active:n.value==="checklist"}),"aria-pressed":n.value==="checklist",onClick:s[12]||(s[12]=u=>n.value="checklist")},"Checklist",10,Zp),e.createElementVNode("button",{type:"button","data-testid":"tab-relations",class:e.normalizeClass({active:n.value==="relations"}),"aria-pressed":n.value==="relations",onClick:s[13]||(s[13]=u=>n.value="relations")},"Relations",10,Xp),e.createElementVNode("button",{type:"button","data-testid":"tab-activity",class:e.normalizeClass({active:n.value==="activity"}),"aria-pressed":n.value==="activity",onClick:s[14]||(s[14]=u=>n.value="activity")},"Activity",10,ek)]),n.value==="comments"?(e.openBlock(),e.createBlock(_a,{key:0,comments:t.task.comments,disabled:t.busy??!1,onSubmit:s[15]||(s[15]=u=>o("submit-comment",u))},null,8,["comments","disabled"])):n.value==="checklist"?(e.openBlock(),e.createBlock(ka,{key:1,items:t.task.checklist_items,disabled:t.busy??!1,onToggleItem:s[16]||(s[16]=u=>o("toggle-checklist-item",u)),onAddItem:s[17]||(s[17]=u=>o("add-checklist-item",u)),onRemoveItem:s[18]||(s[18]=u=>o("remove-checklist-item",u)),onReorderItems:s[19]||(s[19]=u=>o("reorder-checklist-items",u))},null,8,["items","disabled"])):n.value==="relations"?(e.openBlock(),e.createElementBlock("section",tk,[e.createElementVNode("ul",ak,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,u=>(e.openBlock(),e.createElementBlock("li",{key:u.id,"data-testid":`item-relation-${u.id}`},[e.createElementVNode("strong",null,e.toDisplayString(u.type),1),u.related_task?(e.openBlock(),e.createElementBlock("span",lk,e.toDisplayString(u.related_task.display_number_formatted)+" · "+e.toDisplayString(u.related_task.title),1)):e.createCommentVNode("",!0)],8,nk))),128))])])):(e.openBlock(),e.createBlock(va,{key:3,logs:t.task.activity_logs},null,8,["logs"]))]),e.createElementVNode("aside",ok,[e.createElementVNode("dl",null,[e.createElementVNode("div",null,[s[21]||(s[21]=e.createElementVNode("dt",null,"Assignee",-1)),e.createElementVNode("dd",null,e.toDisplayString(((f=t.task.primary_assignee)==null?void 0:f.name)??"Unassigned"),1)]),e.createElementVNode("div",null,[s[22]||(s[22]=e.createElementVNode("dt",null,"Deadline",-1)),e.createElementVNode("dd",null,e.toDisplayString(t.task.due_at?e.unref(ne)(t.task.due_at):"No deadline set"),1)]),e.createElementVNode("div",null,[s[23]||(s[23]=e.createElementVNode("dt",null,"Deadline status",-1)),e.createElementVNode("dd",sk,[e.createVNode(pe,{task:t.task,"show-relative":""},null,8,["task"])])]),t.task.next_escalation_at?(e.openBlock(),e.createElementBlock("div",ik,[s[24]||(s[24]=e.createElementVNode("dt",null,"Next visibility step",-1)),e.createElementVNode("dd",null,e.toDisplayString(e.unref(ne)(t.task.next_escalation_at)),1)])):e.createCommentVNode("",!0),e.createElementVNode("div",null,[s[25]||(s[25]=e.createElementVNode("dt",null,"Source",-1)),e.createElementVNode("dd",null,e.toDisplayString(t.task.source),1)]),e.createElementVNode("div",null,[s[26]||(s[26]=e.createElementVNode("dt",null,"Linked entity",-1)),e.createElementVNode("dd",null,e.toDisplayString(e.unref(Kt)(t.task.taskable_type,t.task.taskable_id)),1)]),e.createElementVNode("div",null,[s[27]||(s[27]=e.createElementVNode("dt",null,"Tags",-1)),e.createElementVNode("dd",null,e.toDisplayString(t.task.tags.map(u=>u.name).join(", ")||"No tags"),1)])])])])],8,Lp)):e.createCommentVNode("",!0)}}}),ya=x(rk,[["__scopeId","data-v-d3593bbf"]]),dk={class:"task-form__grid"},ck={class:"task-form__field task-form__field--wide"},uk=["disabled"],mk={key:0,class:"task-form__field"},pk=["disabled"],kk=["value"],_k={class:"task-form__field"},fk=["disabled"],vk={class:"task-form__field"},yk={class:"task-form__field task-form__field--wide"},gk=["disabled"],bk={class:"task-form__field task-form__field--wide"},hk=["disabled"],wk={class:"task-form__checklist","data-testid":"panel-form-checklist"},Ek=["data-testid"],Vk=["onUpdate:modelValue","data-testid","disabled","placeholder"],Nk=["data-testid","aria-label","onClick"],$k={class:"task-form__actions"},Tk=["disabled"],Bk=e.defineComponent({__name:"TaskForm",props:{task:{},templates:{},entityContext:{},submitting:{type:Boolean},mode:{}},emits:["submit","cancel","template-change"],setup(t,{emit:a}){const l=t,o=a,n=e.reactive({title:"",description:"",templateId:"",priority:"none",primary_assignee_id:"",due_at:"",tags:"",checklist:[]}),i=e.computed(()=>l.templates??[]),r=e.computed(()=>l.mode??"create"),s=e.computed(()=>r.value==="edit"?"Save task":"Create task");function f(c){return c.flatMap(p=>{const N=f(p.children);return p.type==="checklist"?[p.title,...N]:N})}function u(){var c,p,N,V,I,$,E,v,w,M;n.title=((c=l.task)==null?void 0:c.title)??"",n.description=((p=l.task)==null?void 0:p.description)??"",n.priority=((N=l.task)==null?void 0:N.priority)??"none",n.primary_assignee_id=String(((I=(V=l.task)==null?void 0:V.primary_assignee)==null?void 0:I.id)??""),n.due_at=(($=l.task)==null?void 0:$.due_at)??"",n.tags=((v=(E=l.task)==null?void 0:E.tags)==null?void 0:v.map(P=>P.name).join(", "))??"",n.checklist=((M=(w=l.task)==null?void 0:w.checklist_items)==null?void 0:M.map(P=>P.title))??[]}e.watch(()=>l.task,()=>{u()},{immediate:!0});function k(c){if(n.templateId=c,o("template-change",c||null),!c||r.value==="edit")return;const p=i.value.find(N=>N.id===c);p&&(n.title=p.default_title,n.description=p.default_description??"",n.priority=p.default_priority,n.tags=(p.tags??[]).join(", "),n.checklist=p.items?f(p.items):[])}function d(){n.checklist.push("")}function g(c){n.checklist.splice(c,1)}function b(c){const p=c.split(",").map(N=>N.trim()).filter(Boolean);return p.length>0?p:void 0}function m(){const c=n.checklist.map((p,N)=>({title:p.trim(),position:N})).filter(p=>p.title.length>0);return c.length>0?c:void 0}function y(){var N,V;if(!n.title.trim())return;const c=b(n.tags),p=m();o("submit",{title:n.title.trim(),description:n.description.trim()||null,priority:n.priority,primary_assignee_id:n.primary_assignee_id||null,due_at:n.due_at||null,taskable_type:((N=l.entityContext)==null?void 0:N.type)??null,taskable_id:((V=l.entityContext)==null?void 0:V.id)??null,...c?{tags:c}:{},...p?{checklist_items:p}:{}})}return(c,p)=>{var N;return e.openBlock(),e.createElementBlock("form",{class:"task-form","data-testid":"form-task",onSubmit:e.withModifiers(y,["prevent"])},[e.createElementVNode("div",dk,[e.createElementVNode("label",ck,[p[9]||(p[9]=e.createElementVNode("span",null,"Title",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":p[0]||(p[0]=V=>n.title=V),type:"text","data-testid":"input-task-title",disabled:t.submitting,required:""},null,8,uk),[[e.vModelText,n.title]])]),r.value==="create"?(e.openBlock(),e.createElementBlock("label",mk,[p[11]||(p[11]=e.createElementVNode("span",null,"Template",-1)),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":p[1]||(p[1]=V=>n.templateId=V),"data-testid":"select-task-template",disabled:t.submitting,onChange:p[2]||(p[2]=V=>k(n.templateId))},[p[10]||(p[10]=e.createElementVNode("option",{value:""},"No template",-1)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,V=>(e.openBlock(),e.createElementBlock("option",{key:V.id,value:V.id},e.toDisplayString(V.name),9,kk))),128))],40,pk),[[e.vModelSelect,n.templateId]])])):e.createCommentVNode("",!0),e.createElementVNode("label",_k,[p[13]||(p[13]=e.createElementVNode("span",null,"Priority",-1)),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":p[3]||(p[3]=V=>n.priority=V),"data-testid":"select-task-priority",disabled:t.submitting},[...p[12]||(p[12]=[e.createStaticVNode('<option value="none" data-v-b2880e56>None</option><option value="low" data-v-b2880e56>Low</option><option value="medium" data-v-b2880e56>Medium</option><option value="high" data-v-b2880e56>High</option><option value="urgent" data-v-b2880e56>Urgent</option><option value="critical" data-v-b2880e56>Critical</option>',6)])],8,fk),[[e.vModelSelect,n.priority]])]),e.createElementVNode("label",vk,[p[14]||(p[14]=e.createElementVNode("span",null,"Assignee",-1)),e.createVNode(Ee,{modelValue:n.primary_assignee_id,"onUpdate:modelValue":p[4]||(p[4]=V=>n.primary_assignee_id=V),"selected-user":((N=t.task)==null?void 0:N.primary_assignee)??null,"input-test-id":"input-task-assignee","aria-label":"Assignee",disabled:t.submitting??!1,placeholder:"Assign to employee","rank-by-workload":""},null,8,["modelValue","selected-user","disabled"])]),e.createVNode(pt,{modelValue:n.due_at,"onUpdate:modelValue":p[5]||(p[5]=V=>n.due_at=V),class:"task-form__field task-form__field--wide",disabled:t.submitting??!1},null,8,["modelValue","disabled"]),e.createElementVNode("label",yk,[p[15]||(p[15]=e.createElementVNode("span",null,"Tags",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":p[6]||(p[6]=V=>n.tags=V),type:"text","data-testid":"input-task-tags",disabled:t.submitting,placeholder:"ops, warehouse"},null,8,gk),[[e.vModelText,n.tags]])]),e.createElementVNode("label",bk,[p[16]||(p[16]=e.createElementVNode("span",null,"Description",-1)),e.withDirectives(e.createElementVNode("textarea",{"onUpdate:modelValue":p[7]||(p[7]=V=>n.description=V),rows:"5","data-testid":"input-task-description",disabled:t.submitting},null,8,hk),[[e.vModelText,n.description]])])]),e.createElementVNode("section",wk,[e.createElementVNode("div",{class:"task-form__checklist-header"},[p[17]||(p[17]=e.createElementVNode("h3",null,"Checklist items",-1)),e.createElementVNode("button",{type:"button","data-testid":"btn-add-checklist-row",onClick:d},"Add item")]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.checklist,(V,I)=>(e.openBlock(),e.createElementBlock("div",{key:`${I}-${V}`,"data-testid":`checklist-row-${I}`,class:"task-form__checklist-row"},[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":$=>n.checklist[I]=$,type:"text","data-testid":`input-checklist-row-${I}`,disabled:t.submitting,placeholder:`Checklist item ${I+1}`},null,8,Vk),[[e.vModelText,n.checklist[I]]]),e.createElementVNode("button",{type:"button","data-testid":`btn-remove-checklist-row-${I}`,"aria-label":`Remove checklist item ${I+1}`,onClick:$=>g(I)},"Remove",8,Nk)],8,Ek))),128))]),e.createElementVNode("footer",$k,[e.createElementVNode("button",{type:"button","data-testid":"btn-cancel-task-form",class:"secondary",onClick:p[8]||(p[8]=V=>o("cancel"))},"Cancel"),e.createElementVNode("button",{type:"submit","data-testid":"btn-submit-task-form",disabled:t.submitting||!n.title.trim()},e.toDisplayString(s.value),9,Tk)])],32)}}}),Sk=x(Bk,[["__scopeId","data-v-b2880e56"]]),Ck=["aria-label"],Dk={class:"task-confirm-dialog__panel"},Mk={class:"task-confirm-dialog__header"},Ak={class:"task-confirm-dialog__actions"},Ik=["disabled"],Fk=["disabled"],Lk=e.defineComponent({__name:"TaskConfirmDialog",props:{show:{type:Boolean},title:{},message:{},confirmText:{default:"Confirm"},cancelText:{default:"Cancel"},busy:{type:Boolean,default:!1}},emits:["confirm","cancel","update:show"],setup(t,{emit:a}){const l=t,o=a;function n(){l.busy||(o("update:show",!1),o("cancel"))}function i(){o("confirm")}return(r,s)=>t.show?(e.openBlock(),e.createElementBlock("div",{key:0,class:"task-confirm-dialog","data-testid":"task-confirm-dialog",role:"dialog","aria-modal":"true","aria-label":t.title},[e.createElementVNode("div",{class:"task-confirm-dialog__backdrop",onClick:n}),e.createElementVNode("section",Dk,[e.createElementVNode("header",Mk,[e.createElementVNode("h2",null,e.toDisplayString(t.title),1),e.createElementVNode("p",null,e.toDisplayString(t.message),1)]),e.createElementVNode("footer",Ak,[e.createElementVNode("button",{type:"button",class:"task-confirm-dialog__button","data-testid":"btn-task-confirm-cancel",disabled:t.busy,onClick:n},e.toDisplayString(t.cancelText),9,Ik),e.createElementVNode("button",{type:"button",class:"task-confirm-dialog__button task-confirm-dialog__button--danger","data-testid":"btn-task-confirm-accept",disabled:t.busy,onClick:i},e.toDisplayString(t.confirmText),9,Fk)])])],8,Ck)):e.createCommentVNode("",!0)}}),_t=x(Lk,[["__scopeId","data-v-6a8cc864"]]),Rk={class:"task-detail-page","data-testid":"page-task-detail"},zk={class:"task-detail-page__header"},Uk={key:0,class:"task-detail-page__loading","data-testid":"status-task-loading"},Wk={key:1,class:"task-detail-page__error",role:"alert","data-testid":"status-task-error"},xk=e.defineComponent({__name:"TaskDetailPage",props:{taskId:{}},emits:["navigate-back","task-deleted","edit-task"],setup(t,{emit:a}){const l=t,o=a,n=Ot(e.toRef(l,"taskId")),i=e.ref(!1),r=e.ref(null);async function s(F){i.value=!0;try{await F()}finally{i.value=!1}}function f(F){s(()=>n.completeTask(F))}function u(F){s(()=>n.reopenTask(F))}function k(F){s(()=>n.cancelTask(F))}function d(F,O,j){r.value={title:F,message:O,action:j}}async function g(){if(r.value!==null){i.value=!0;try{await r.value.action()}finally{i.value=!1,r.value=null}}}function b(){r.value=null}function m(F){var j;const O=((j=n.task.value)==null?void 0:j.title)??"this task";d("Delete task?",`Delete "${O}"? This cannot be undone.`,async()=>{await n.deleteTask(F),o("task-deleted",F)})}function y(F){o("edit-task",F)}function c(F){s(()=>n.addComment(F))}function p(F){s(()=>n.addChecklistItem(F))}function N(F){n.toggleChecklistItem(F)}function V(F){var K;const O=(K=n.task.value)==null?void 0:K.checklist_items.find(Q=>Q.id===F),j=(O==null?void 0:O.title)??"this checklist item";d("Remove checklist item?",`Remove "${j}" from this task?`,async()=>{await n.removeChecklistItem(F)})}function I(){s(()=>n.acknowledgeEscalation())}function $(F){s(()=>n.snoozeEscalation(F))}function E(F){}function v(F){s(()=>n.startTimer(F))}function w(F){s(()=>n.stopTimer(F))}function M(F){s(()=>n.addManualTimeEntry(F,F.taskId))}function P(F){d("Delete time entry?","Delete this logged time entry? The recorded time will be removed from the task.",async()=>{await n.deleteTimeEntry(F.entryId,F.taskId)})}function J(){n.loadTask(l.taskId)}return(F,O)=>{var j,K;return e.openBlock(),e.createElementBlock("div",Rk,[e.createElementVNode("div",zk,[e.createElementVNode("button",{type:"button",class:"task-detail-page__back","data-testid":"btn-back-to-tasks",onClick:O[0]||(O[0]=Q=>o("navigate-back"))}," ← Back to Tasks ")]),e.unref(n).loading.value?(e.openBlock(),e.createElementBlock("div",Uk," Loading task... ")):e.unref(n).error.value?(e.openBlock(),e.createElementBlock("div",Wk,[e.createElementVNode("p",null,e.toDisplayString(e.unref(n).error.value),1),e.createElementVNode("button",{type:"button","data-testid":"btn-retry-load",onClick:J},"Retry")])):e.unref(n).task.value?(e.openBlock(),e.createBlock(ya,{key:2,task:e.unref(n).task.value,"active-timer":e.unref(n).activeTimer.value,busy:i.value,onComplete:f,onReopen:u,onCancel:k,onDelete:m,onEdit:y,onSubmitComment:c,onAddChecklistItem:p,onToggleChecklistItem:N,onRemoveChecklistItem:V,onReorderChecklistItems:E,onStartTimer:v,onStopTimer:w,onAddManualTimeEntry:M,onDeleteTimeEntry:P,onAcknowledgeEscalation:I,onSnoozeEscalation:$},null,8,["task","active-timer","busy"])):e.createCommentVNode("",!0),e.createVNode(_t,{show:r.value!==null,title:((j=r.value)==null?void 0:j.title)??"Confirm action",message:((K=r.value)==null?void 0:K.message)??"","confirm-text":"Delete",busy:i.value,"onUpdate:show":O[1]||(O[1]=Q=>{Q||b()}),onCancel:b,onConfirm:g},null,8,["show","title","message","busy"])])}}}),Pk=x(xk,[["__scopeId","data-v-0e38bf7f"]]),Ok={class:"task-list-page","data-testid":"page-task-list"},Hk=e.defineComponent({__name:"TaskListPage",props:{entityContext:{}},emits:["navigate-to-task"],setup(t,{emit:a}){const l=a,o=Ie(),{filters:n,setFilters:i}=Ht(),r=jt(),s=e.ref(!1),f=e.ref(!1),u=e.ref(null),k=e.computed(()=>{var F;return((F=u.value)==null?void 0:F.kind)==="saved-filter"?"Delete saved filter?":"Delete selected tasks?"}),d=e.computed(()=>{var O,j,K;if(((O=u.value)==null?void 0:O.kind)==="saved-filter")return`Delete "${u.value.filterName??"this saved filter"}"? This saved view will be removed.`;const F=((K=(j=u.value)==null?void 0:j.payload)==null?void 0:K.taskIds.length)??0;return`Delete ${F} selected task${F===1?"":"s"}? This action cannot be undone.`});function g(F,O="task-engine-export.csv"){if(typeof window>"u")return;const j=new Blob([F],{type:"text/csv;charset=utf-8"}),K=window.URL.createObjectURL(j),Q=document.createElement("a");Q.href=K,Q.download=O,Q.click(),window.URL.revokeObjectURL(K)}async function b(){await o.fetchTasks(n.value)}function m(F){i(F),b()}function y(F){i({...n.value,page:F}),b()}function c(F){l("navigate-to-task",F)}function p(){s.value=!s.value}async function N(F){f.value=!0;try{await o.createTask(F),s.value=!1,await b()}finally{f.value=!1}}async function V(F){f.value=!0;try{await o.instantiateTemplate(F,{}),s.value=!1,await b()}finally{f.value=!1}}async function I(){const F=prompt("Filter name:");F&&await r.saveCurrentFilter({name:F})}async function $(F){const O=r.savedFilters.value.find(j=>j.id===F);O&&(r.applySavedFilter(O),await b())}async function E(F){const O=r.savedFilters.value.find(j=>j.id===F);u.value={kind:"saved-filter",filterId:F,filterName:O==null?void 0:O.name}}async function v(F){if(F.action==="delete"){u.value={kind:"bulk-delete",payload:F};return}await o.runBulkAction(F.taskIds,F.action,F.params),await b()}function w(){u.value=null}async function M(){if(u.value!==null){if(u.value.kind==="saved-filter"&&u.value.filterId){await r.deleteSavedFilter(u.value.filterId),u.value=null;return}u.value.kind==="bulk-delete"&&u.value.payload&&(await o.runBulkAction(u.value.payload.taskIds,u.value.payload.action,u.value.payload.params),u.value=null,await b())}}async function P(){const F=await o.exportTasks(n.value);g(F)}async function J(F){await o.importTasks(F),await b()}return e.onMounted(async()=>{await Promise.all([b(),r.loadSavedFilters()])}),(F,O)=>(e.openBlock(),e.createElementBlock("div",Ok,[e.createVNode(ma,{busy:e.unref(o).loading,importing:e.unref(o).importLoading,exporting:e.unref(o).exportLoading,result:e.unref(o).importResult,onExport:P,onImport:J},null,8,["busy","importing","exporting","result"]),s.value?(e.openBlock(),e.createBlock(kt,{key:0,busy:f.value,"entity-context":t.entityContext??null,"data-testid":"panel-quick-create",onSubmit:N,onInstantiateTemplate:V},null,8,["busy","entity-context"])):e.createCommentVNode("",!0),e.createVNode(ca,{tasks:e.unref(o).tasks,filters:e.unref(n),pagination:e.unref(o).pagination,loading:e.unref(o).loading,"saved-filters":e.unref(r).savedFilters.value,"active-saved-filter-id":e.unref(r).activeSavedFilterId.value,"bulk-busy":e.unref(o).bulkLoading,"bulk-result":e.unref(o).bulkResult,onSelectTask:c,"onUpdate:filters":m,onPageChange:y,onQuickCreate:p,onSaveFilter:I,onApplySavedFilter:$,onDeleteSavedFilter:E,onBulkAction:v},null,8,["tasks","filters","pagination","loading","saved-filters","active-saved-filter-id","bulk-busy","bulk-result"]),e.createVNode(_t,{show:u.value!==null,title:k.value,message:d.value,"confirm-text":"Delete",busy:e.unref(o).bulkLoading||e.unref(o).savedFiltersLoading,"onUpdate:show":O[0]||(O[0]=j=>{j||w()}),onCancel:w,onConfirm:M},null,8,["show","title","message","busy"])]))}}),jk=x(Hk,[["__scopeId","data-v-513490e0"]]),qk={class:"task-dashboard-page","data-testid":"page-task-dashboard"},Yk=e.defineComponent({__name:"TaskDashboardPage",props:{userId:{},echo:{},autoConnect:{type:Boolean}},emits:["navigate-to-task"],setup(t,{emit:a}){const l=a;function o(n){l("navigate-to-task",n)}return(n,i)=>(e.openBlock(),e.createElementBlock("div",qk,[e.createVNode(la,{"user-id":t.userId,echo:t.echo,"auto-connect":t.autoConnect??!0,onSelectTask:o},null,8,["user-id","echo","auto-connect"])]))}}),Kk=x(Yk,[["__scopeId","data-v-3d67a330"]]),Qk={class:"task-recurring-page","data-testid":"page-task-recurring"},Gk=e.defineComponent({__name:"TaskRecurringPage",props:{entityTypeOptions:{}},emits:["navigate-to-task"],setup(t,{emit:a}){const l=t,o=a,n=qt(),i=e.ref(!1),r=e.ref(null),s=e.ref(""),f=e.ref(!1),u=e.ref(null),k=e.computed(()=>{var E;return u.value===null?"":`Delete "${u.value.title??((E=u.value.task_template)==null?void 0:E.name)??"this recurring template"}"? Future scheduled tasks will stop generating.`});function d(){r.value=null,i.value=!0}function g($){const E=n.templates.value.find(v=>v.id===$);r.value=E??null,i.value=!0}function b(){i.value=!1,r.value=null}async function m($){r.value?await n.updateTemplate(r.value.id,$):await n.createTemplate($),n.error.value||b()}async function y($){await n.pauseTemplate($)}async function c($){await n.resumeTemplate($)}function p($){u.value=n.templates.value.find(E=>E.id===$)??null}async function N(){u.value!==null&&(await n.deleteTemplate(u.value.id),u.value=null)}function V(){u.value=null}async function I($){const E=await n.generateFromTemplate($);E&&o("navigate-to-task",E.id)}return e.onMounted(()=>{n.loadTemplates()}),($,E)=>(e.openBlock(),e.createElementBlock("div",Qk,[e.createElementVNode("header",{class:"task-recurring-page__header"},[E[3]||(E[3]=e.createElementVNode("div",null,[e.createElementVNode("h2",null,"Recurring Tasks"),e.createElementVNode("p",null,"Manage recurring task schedules")],-1)),e.createElementVNode("button",{type:"button","data-testid":"btn-create-recurring",onClick:d}," Create recurring task ")]),i.value?(e.openBlock(),e.createBlock(ia,e.mergeProps({key:0},l.entityTypeOptions?{entityTypeOptions:l.entityTypeOptions}:{},{recurring:r.value,submitting:e.unref(n).saving.value,mode:r.value?"edit":"create",onSubmit:m,onCancel:b}),null,16,["recurring","submitting","mode"])):e.createCommentVNode("",!0),e.createVNode(ra,{templates:e.unref(n).templates.value,loading:e.unref(n).loading.value,search:s.value,"include-inactive":f.value,onEdit:g,onPause:y,onResume:c,onRemove:p,onGenerate:I,"onUpdate:search":E[0]||(E[0]=v=>s.value=v),"onUpdate:includeInactive":E[1]||(E[1]=v=>f.value=v)},null,8,["templates","loading","search","include-inactive"]),e.createVNode(_t,{show:u.value!==null,title:"Delete recurring template?",message:k.value,"confirm-text":"Delete",busy:e.unref(n).saving.value,"onUpdate:show":E[2]||(E[2]=v=>{v||V()}),onCancel:V,onConfirm:N},null,8,["show","message","busy"])]))}}),Jk=x(Gk,[["__scopeId","data-v-7e8383a0"]]);exports.EscalationActions=pa;exports.EscalationBadge=qe;exports.MyStatsWidget=Yt;exports.MyTasksToday=Zt;exports.OverdueTracker=Xt;exports.RecurringTemplateForm=ia;exports.RecurringTemplateList=ra;exports.TaskAssigneePicker=Ee;exports.TaskBoardView=ls;exports.TaskBulkActionBar=oa;exports.TaskCalendarView=Zs;exports.TaskCard=mt;exports.TaskChecklist=ka;exports.TaskComments=_a;exports.TaskDashboard=la;exports.TaskDashboardPage=Kk;exports.TaskDeadlineBadge=pe;exports.TaskDeadlineField=pt;exports.TaskDetailPage=Pk;exports.TaskDetailView=ya;exports.TaskEntityWidget=nm;exports.TaskFilterBar=sa;exports.TaskForm=Sk;exports.TaskHealthAlerts=ea;exports.TaskImportExportPanel=ma;exports.TaskListPage=jk;exports.TaskListView=ca;exports.TaskNotificationToast=gm;exports.TaskPriorityIcon=Fe;exports.TaskQuickCreate=kt;exports.TaskRecurringPage=Jk;exports.TaskRolePicker=ua;exports.TaskSavedFilterTabs=da;exports.TaskStatusBadge=Le;exports.TaskTimeTracker=fa;exports.TaskTimeline=va;exports.TaskWorkloadPanel=Vo;exports.TeamActivityFeed=ta;exports.UpcomingThisWeek=aa;exports.WidgetGrid=na;exports.WorkflowForm=jc;exports.WorkflowList=mu;exports.WorkflowLogs=Tu;exports.createTaskApi=st;exports.getTaskApi=T;exports.resetTaskApi=qa;exports.setTaskApi=ja;exports.taskApi=tt;exports.useRecurringTemplates=qt;exports.useTaskDashboard=Pt;exports.useTaskDetail=Ot;exports.useTaskFilters=Ht;exports.useTaskListStore=rt;exports.useTaskNotificationFeed=ct;exports.useTaskPresence=gn;exports.useTaskSavedFilters=jt;exports.useTaskStore=Ie;exports.useTaskWebSocket=xt;exports.useTaskWorkflowStore=Dt;exports.useTaskWorkflows=bn;