@bpinhosilva/agent-orchestrator 1.0.0-alpha.21 → 1.0.0-alpha.22

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.
Files changed (86) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/dist/ui/assets/AgentFleet-CC0h_Ar0.js +1 -0
  3. package/dist/ui/assets/AgentFleet-CC0h_Ar0.js.map +1 -0
  4. package/dist/ui/assets/ConfirmDialog-mRH8i_xK.js +10 -0
  5. package/dist/ui/assets/ConfirmDialog-mRH8i_xK.js.map +1 -0
  6. package/dist/ui/assets/InitialsAvatar-0mIRaTK8.js +1 -0
  7. package/dist/ui/assets/InitialsAvatar-0mIRaTK8.js.map +1 -0
  8. package/dist/ui/assets/MarkdownField-flCuU7w3.js +1 -0
  9. package/dist/ui/assets/MarkdownField-flCuU7w3.js.map +1 -0
  10. package/dist/ui/assets/ProjectDetail-CY-VSV2D.js +1 -0
  11. package/dist/ui/assets/ProjectDetail-CY-VSV2D.js.map +1 -0
  12. package/dist/ui/assets/Providers-C9_lxOG1.js +1 -0
  13. package/dist/ui/assets/Providers-C9_lxOG1.js.map +1 -0
  14. package/dist/ui/assets/Scheduler-Du2cIGfB.js +1 -0
  15. package/dist/ui/assets/Scheduler-Du2cIGfB.js.map +1 -0
  16. package/dist/ui/assets/TaskDetail-BdQJCVo3.js +1 -0
  17. package/dist/ui/assets/TaskDetail-BdQJCVo3.js.map +1 -0
  18. package/dist/ui/assets/TaskManager-CWDh69pf.js +8 -0
  19. package/dist/ui/assets/TaskManager-CWDh69pf.js.map +1 -0
  20. package/dist/ui/assets/{activity-CYFCUKYz.js → activity-CIlCK2jL.js} +1 -1
  21. package/dist/ui/assets/activity-CIlCK2jL.js.map +1 -0
  22. package/dist/ui/assets/{brain-D1LPqnhA.js → brain-_N041Xks.js} +1 -1
  23. package/dist/ui/assets/brain-_N041Xks.js.map +1 -0
  24. package/dist/ui/assets/check-DgCfni6J.js +1 -0
  25. package/dist/ui/assets/check-DgCfni6J.js.map +1 -0
  26. package/dist/ui/assets/clock-C0d1RzP_.js +1 -0
  27. package/dist/ui/assets/clock-C0d1RzP_.js.map +1 -0
  28. package/dist/ui/assets/cn-i-5ItZGU.js +1 -0
  29. package/dist/ui/assets/cn-i-5ItZGU.js.map +1 -0
  30. package/dist/ui/assets/{eye-DSoNYXlu.js → eye-RB18-re_.js} +1 -1
  31. package/dist/ui/assets/eye-RB18-re_.js.map +1 -0
  32. package/dist/ui/assets/index-CCsHBe__.css +1 -0
  33. package/dist/ui/assets/index-yzhzS93F.js +2 -0
  34. package/dist/ui/assets/index-yzhzS93F.js.map +1 -0
  35. package/dist/ui/assets/{layers-BQR0gbW3.js → layers-D5ECV506.js} +1 -1
  36. package/dist/ui/assets/layers-D5ECV506.js.map +1 -0
  37. package/dist/ui/assets/providers-BMRq_pkm.js +1 -0
  38. package/dist/ui/assets/providers-BMRq_pkm.js.map +1 -0
  39. package/dist/ui/assets/rolldown-runtime-COnpUsM8.js +1 -0
  40. package/dist/ui/assets/{send-Cgv_rLex.js → send-BA7-sXzg.js} +1 -1
  41. package/dist/ui/assets/send-BA7-sXzg.js.map +1 -0
  42. package/dist/ui/assets/{shield-check-02qtz3Au.js → shield-check-D7JIluse.js} +1 -1
  43. package/dist/ui/assets/shield-check-D7JIluse.js.map +1 -0
  44. package/dist/ui/assets/{sparkles-cO3r5TCU.js → sparkles-CCXaTT3H.js} +1 -1
  45. package/dist/ui/assets/sparkles-CCXaTT3H.js.map +1 -0
  46. package/dist/ui/assets/{tasks-BZ0wO0e9.js → tasks-DEHCZk48.js} +1 -1
  47. package/dist/ui/assets/tasks-DEHCZk48.js.map +1 -0
  48. package/dist/ui/assets/{trash-2-7e8TY3SJ.js → trash-2-BNP4kC5c.js} +1 -1
  49. package/dist/ui/assets/trash-2-BNP4kC5c.js.map +1 -0
  50. package/dist/ui/assets/{trending-up-Dh3I3BnW.js → trending-up-DBTQIgW8.js} +1 -1
  51. package/dist/ui/assets/trending-up-DBTQIgW8.js.map +1 -0
  52. package/dist/ui/assets/useNotification-DK-pV16c.js +6 -0
  53. package/dist/ui/assets/useNotification-DK-pV16c.js.map +1 -0
  54. package/dist/ui/assets/{user-sikuVJBW.js → user-Cp55HCCi.js} +1 -1
  55. package/dist/ui/assets/user-Cp55HCCi.js.map +1 -0
  56. package/dist/ui/assets/vendor-dnd-CxfOy4-Z.js +5 -0
  57. package/dist/ui/assets/vendor-dnd-CxfOy4-Z.js.map +1 -0
  58. package/dist/ui/assets/vendor-forms-HC2wK6B9.js +39 -0
  59. package/dist/ui/assets/vendor-forms-HC2wK6B9.js.map +1 -0
  60. package/dist/ui/assets/vendor-markdown-Dl_1qnne.js +29 -0
  61. package/dist/ui/assets/vendor-markdown-Dl_1qnne.js.map +1 -0
  62. package/dist/ui/assets/vendor-motion-CkXYvnuI.js +9 -0
  63. package/dist/ui/assets/vendor-motion-CkXYvnuI.js.map +1 -0
  64. package/dist/ui/assets/vendor-query-DQlZ8h7P.js +1 -0
  65. package/dist/ui/assets/vendor-query-DQlZ8h7P.js.map +1 -0
  66. package/dist/ui/assets/vendor-react-CiDbU5Ns.js +11 -0
  67. package/dist/ui/assets/vendor-react-CiDbU5Ns.js.map +1 -0
  68. package/dist/ui/assets/{zap-CFqyHdPJ.js → zap-D1sST66b.js} +1 -1
  69. package/dist/ui/assets/zap-D1sST66b.js.map +1 -0
  70. package/dist/ui/index.html +9 -4
  71. package/package.json +1 -1
  72. package/dist/ui/assets/AgentFleet-CQIXvils.js +0 -6
  73. package/dist/ui/assets/ConfirmDialog-nQ8F6FEz.js +0 -1
  74. package/dist/ui/assets/MarkdownField-BvkVHJZh.js +0 -29
  75. package/dist/ui/assets/ProjectDetail-CZ-tFtQo.js +0 -1
  76. package/dist/ui/assets/Providers-C61nXOPZ.js +0 -1
  77. package/dist/ui/assets/Scheduler-BwWeFfsh.js +0 -1
  78. package/dist/ui/assets/TaskDetail-BKQ3Vgnu.js +0 -1
  79. package/dist/ui/assets/TaskManager-CCOnj4Gq.js +0 -16
  80. package/dist/ui/assets/check-BZcW41Vk.js +0 -1
  81. package/dist/ui/assets/clock-vIUNSAVw.js +0 -1
  82. package/dist/ui/assets/file-text-DyBkf5PF.js +0 -1
  83. package/dist/ui/assets/index-BX3YIi49.css +0 -1
  84. package/dist/ui/assets/index-Ctbpa_Ei.js +0 -20
  85. package/dist/ui/assets/providers-C3SQm75E.js +0 -1
  86. package/dist/ui/assets/useNotification-nXJIHD_q.js +0 -6
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TaskManager-CWDh69pf.js","names":["__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode"],"sources":["../../node_modules/lucide-react/dist/esm/icons/archive.js","../../node_modules/lucide-react/dist/esm/icons/arrow-right.js","../../node_modules/lucide-react/dist/esm/icons/clipboard-list.js","../../node_modules/lucide-react/dist/esm/icons/ellipsis.js","../../node_modules/lucide-react/dist/esm/icons/flag.js","../../node_modules/lucide-react/dist/esm/icons/list-plus.js","../../node_modules/lucide-react/dist/esm/icons/message-square.js","../../node_modules/lucide-react/dist/esm/icons/paperclip.js","../../node_modules/lucide-react/dist/esm/icons/shield-alert.js","../../src/components/tasks/TaskCard.tsx","../../src/components/tasks/TaskColumn.tsx","../../src/components/tasks/TaskBoard.tsx","../../src/components/tasks/TaskStats.tsx","../../src/components/tasks/CreateTaskModal.tsx","../../src/components/tasks/ArchiveZone.tsx","../../node_modules/@microsoft/fetch-event-source/lib/esm/parse.js","../../node_modules/@microsoft/fetch-event-source/lib/esm/fetch.js","../../src/hooks/useTaskSSE.ts","../../src/hooks/useTaskDnD.ts","../../src/pages/TaskManager.tsx"],"sourcesContent":["/**\n * @license lucide-react v0.577.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"rect\", { width: \"20\", height: \"5\", x: \"2\", y: \"3\", rx: \"1\", key: \"1wp1u1\" }],\n [\"path\", { d: \"M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8\", key: \"1s80jp\" }],\n [\"path\", { d: \"M10 12h4\", key: \"a56b0p\" }]\n];\nconst Archive = createLucideIcon(\"archive\", __iconNode);\n\nexport { __iconNode, Archive as default };\n//# sourceMappingURL=archive.js.map\n","/**\n * @license lucide-react v0.577.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M5 12h14\", key: \"1ays0h\" }],\n [\"path\", { d: \"m12 5 7 7-7 7\", key: \"xquz4c\" }]\n];\nconst ArrowRight = createLucideIcon(\"arrow-right\", __iconNode);\n\nexport { __iconNode, ArrowRight as default };\n//# sourceMappingURL=arrow-right.js.map\n","/**\n * @license lucide-react v0.577.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"rect\", { width: \"8\", height: \"4\", x: \"8\", y: \"2\", rx: \"1\", ry: \"1\", key: \"tgr4d6\" }],\n [\n \"path\",\n {\n d: \"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2\",\n key: \"116196\"\n }\n ],\n [\"path\", { d: \"M12 11h4\", key: \"1jrz19\" }],\n [\"path\", { d: \"M12 16h4\", key: \"n85exb\" }],\n [\"path\", { d: \"M8 11h.01\", key: \"1dfujw\" }],\n [\"path\", { d: \"M8 16h.01\", key: \"18s6g9\" }]\n];\nconst ClipboardList = createLucideIcon(\"clipboard-list\", __iconNode);\n\nexport { __iconNode, ClipboardList as default };\n//# sourceMappingURL=clipboard-list.js.map\n","/**\n * @license lucide-react v0.577.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"1\", key: \"41hilf\" }],\n [\"circle\", { cx: \"19\", cy: \"12\", r: \"1\", key: \"1wjl8i\" }],\n [\"circle\", { cx: \"5\", cy: \"12\", r: \"1\", key: \"1pcz8c\" }]\n];\nconst Ellipsis = createLucideIcon(\"ellipsis\", __iconNode);\n\nexport { __iconNode, Ellipsis as default };\n//# sourceMappingURL=ellipsis.js.map\n","/**\n * @license lucide-react v0.577.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M4 22V4a1 1 0 0 1 .4-.8A6 6 0 0 1 8 2c3 0 5 2 7.333 2q2 0 3.067-.8A1 1 0 0 1 20 4v10a1 1 0 0 1-.4.8A6 6 0 0 1 16 16c-3 0-5-2-8-2a6 6 0 0 0-4 1.528\",\n key: \"1jaruq\"\n }\n ]\n];\nconst Flag = createLucideIcon(\"flag\", __iconNode);\n\nexport { __iconNode, Flag as default };\n//# sourceMappingURL=flag.js.map\n","/**\n * @license lucide-react v0.577.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M16 5H3\", key: \"m91uny\" }],\n [\"path\", { d: \"M11 12H3\", key: \"51ecnj\" }],\n [\"path\", { d: \"M16 19H3\", key: \"zzsher\" }],\n [\"path\", { d: \"M18 9v6\", key: \"1twb98\" }],\n [\"path\", { d: \"M21 12h-6\", key: \"bt1uis\" }]\n];\nconst ListPlus = createLucideIcon(\"list-plus\", __iconNode);\n\nexport { __iconNode, ListPlus as default };\n//# sourceMappingURL=list-plus.js.map\n","/**\n * @license lucide-react v0.577.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z\",\n key: \"18887p\"\n }\n ]\n];\nconst MessageSquare = createLucideIcon(\"message-square\", __iconNode);\n\nexport { __iconNode, MessageSquare as default };\n//# sourceMappingURL=message-square.js.map\n","/**\n * @license lucide-react v0.577.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551\",\n key: \"1miecu\"\n }\n ]\n];\nconst Paperclip = createLucideIcon(\"paperclip\", __iconNode);\n\nexport { __iconNode, Paperclip as default };\n//# sourceMappingURL=paperclip.js.map\n","/**\n * @license lucide-react v0.577.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z\",\n key: \"oel41y\"\n }\n ],\n [\"path\", { d: \"M12 8v4\", key: \"1got3b\" }],\n [\"path\", { d: \"M12 16h.01\", key: \"1drbdi\" }]\n];\nconst ShieldAlert = createLucideIcon(\"shield-alert\", __iconNode);\n\nexport { __iconNode, ShieldAlert as default };\n//# sourceMappingURL=shield-alert.js.map\n","import React, { memo } from 'react';\nimport { useNavigate } from 'react-router-dom';\nimport { useSortable } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\nimport { Check, Clock, MessageSquare, Paperclip } from 'lucide-react';\nimport type { Task } from './types';\nimport { cn } from '../../lib/cn';\nimport InitialsAvatar from '../InitialsAvatar';\n\ninterface TaskCardProps {\n task: Task;\n isOverlay?: boolean;\n}\n\nconst getPriorityColor = (priority?: number) => {\n if (priority === 0) {\n return 'bg-error text-white shadow-[0_0_10px_rgba(255,107,107,0.3)]';\n }\n\n if (priority === 1) {\n return 'bg-error-container/40 font-black text-error';\n }\n\n if (priority === 2) {\n return 'bg-secondary-container/40 font-black text-secondary';\n }\n\n return 'bg-surface-container-highest font-black text-on-surface-variant';\n};\n\nconst getPriorityLabel = (priority?: number) => {\n if (priority === 0) return 'Critical';\n if (priority === 1) return 'High';\n if (priority === 2) return 'Medium';\n return 'Low';\n};\n\nconst getPriorityBadgeLabel = (priority?: number) => {\n if (priority === 0) return 'CRIT';\n if (priority === 1) return 'HIGH';\n if (priority === 2) return 'MED';\n return 'LOW';\n};\n\nconst renderTimeIcon = (timeIcon?: Task['timeIcon']) => {\n switch (timeIcon) {\n case 'schedule':\n return <Clock size={14} className=\"mr-1\" aria-hidden=\"true\" />;\n case 'attach_file':\n return <Paperclip size={14} className=\"mr-1\" aria-hidden=\"true\" />;\n case 'comment':\n return <MessageSquare size={14} className=\"mr-1\" aria-hidden=\"true\" />;\n default:\n return null;\n }\n};\n\nconst TaskCardComponent: React.FC<TaskCardProps> = ({ task, isOverlay }) => {\n const navigate = useNavigate();\n\n const {\n attributes,\n listeners,\n setNodeRef,\n transform,\n transition,\n isDragging: sortableDragging,\n } = useSortable({ id: isOverlay ? `overlay-${task.id}` : task.id, data: { ...task } });\n\n const isDragging = isOverlay ? false : sortableDragging;\n const isDone = task.status === 'done';\n const isActive = task.isActive;\n const showActiveDetails = isActive || isOverlay;\n const priorityLabel = getPriorityLabel(task.priority);\n\n const style = {\n transform: CSS.Transform.toString(transform),\n transition,\n };\n\n const handleClick = () => {\n if (!isOverlay) {\n navigate(`/projects/${task.projectId}/tasks/${task.id}`);\n }\n };\n\n return (\n <div\n ref={setNodeRef}\n style={style}\n {...attributes}\n {...listeners}\n className={cn(\n 'group relative flex h-full cursor-grab flex-col overflow-hidden rounded-xl border p-4 shadow-xl transition-all duration-300 active:cursor-grabbing',\n isDragging && 'scale-[0.98] border-outline-variant/20 bg-surface-container-low opacity-40 grayscale',\n isOverlay &&\n 'z-[100] scale-[1.05] cursor-grabbing border-primary/60 bg-surface-container-high shadow-[0_20px_50px_rgba(173,198,255,0.3)] ring-2 ring-primary/40 antialiased',\n !isDragging &&\n !isOverlay &&\n isDone &&\n 'border-outline-variant/10 bg-surface-container-low opacity-70 shadow-sm grayscale hover:opacity-100 hover:grayscale-0',\n !isDragging &&\n !isOverlay &&\n !isDone &&\n 'border-outline-variant/10 bg-surface-container-low hover:border-primary/30 hover:shadow-primary/5',\n !isDragging &&\n !isOverlay &&\n !isDone &&\n isActive &&\n 'border-primary/40 bg-surface-container-high/50 shadow-lg',\n )}\n onClick={handleClick}\n aria-label={`Task ${task.code}: ${task.title}. ${priorityLabel} priority. Status ${task.status}.${isOverlay ? ' Drag preview active.' : ' Drag to move or open details.'}`}\n aria-roledescription=\"Draggable task card\"\n >\n <span className=\"sr-only\">\n {isOverlay\n ? 'Dragging preview.'\n : 'Press space to start dragging this task, then use arrow keys to move it.'}\n </span>\n\n <div className=\"mb-3 flex items-start justify-between\">\n <span\n className={cn(\n 'rounded px-2 py-0.5 font-headline text-[10px] font-black uppercase tracking-widest transition-colors',\n showActiveDetails\n ? 'border border-primary/20 bg-primary-container/30 text-primary'\n : 'bg-surface-container-highest/30 text-on-surface-variant/40',\n )}\n >\n {task.code}\n </span>\n {isDone ? (\n <div\n aria-label=\"Completed task\"\n className=\"flex h-4 w-4 items-center justify-center rounded-full bg-secondary-container/30\"\n >\n <Check size={10} className=\"font-bold text-secondary\" aria-hidden=\"true\" />\n </div>\n ) : (\n <span\n aria-label={`${priorityLabel} priority`}\n className={cn(\n 'rounded px-2 py-0.5 text-[10px] font-black uppercase tracking-widest transition-colors',\n showActiveDetails || isOverlay\n ? getPriorityColor(task.priority)\n : 'bg-transparent text-on-surface-variant/60',\n )}\n >\n {getPriorityBadgeLabel(task.priority)}\n </span>\n )}\n </div>\n\n <h4\n className={cn(\n 'mb-4 text-base font-headline font-extrabold leading-tight transition-colors',\n isDone\n ? 'text-outline line-through'\n : 'text-on-surface group-hover:text-primary',\n )}\n >\n {task.title}\n </h4>\n\n <div className=\"mt-auto flex items-center justify-between\">\n <div className=\"flex items-center gap-2.5\">\n <div\n className={cn(\n 'rounded border border-outline-variant/10 bg-surface-container-highest/50 p-1',\n showActiveDetails && 'border-primary/30',\n )}\n >\n {task.agent.avatar ? (\n <img\n src={task.agent.avatar}\n alt={`${task.agent.name} avatar`}\n className={cn('h-5 w-5 rounded-sm object-cover', isDone && 'grayscale')}\n />\n ) : (\n <InitialsAvatar\n name={task.agent.name}\n size={20}\n className={cn('rounded-sm text-[8px]', isDone && 'grayscale')}\n />\n )}\n </div>\n <span\n className={cn(\n 'text-[11px] font-bold tracking-tight',\n showActiveDetails ? 'text-on-surface' : 'text-on-surface-variant/40',\n )}\n >\n {task.agent.name}\n </span>\n </div>\n\n {isDone ? (\n <span className=\"text-[10px] font-black tracking-widest text-secondary\">\n COMPLETED\n </span>\n ) : (\n task.timeIcon &&\n !showActiveDetails && (\n <div\n className=\"flex items-center text-[10px] font-black uppercase tracking-widest text-on-surface-variant/30\"\n aria-label={`${task.timeLabel ?? 'Task detail'} ${task.timeValue ?? ''}`.trim()}\n >\n {renderTimeIcon(task.timeIcon)}\n {task.timeValue}\n </div>\n )\n )}\n </div>\n </div>\n );\n};\n\nconst TaskCard = memo(TaskCardComponent);\n\nexport default TaskCard;\n","import React, { memo, useId, useMemo } from 'react';\nimport { useDroppable } from '@dnd-kit/core';\nimport { SortableContext, verticalListSortingStrategy } from '@dnd-kit/sortable';\nimport { MoreHorizontal } from 'lucide-react';\nimport TaskCard from './TaskCard';\nimport type { Task, TaskStatus } from './types';\nimport { cn } from '../../lib/cn';\n\ninterface TaskColumnProps {\n id: TaskStatus;\n title: string;\n tasks: Task[];\n dotColorClass: string;\n badgeBgClass: string;\n badgeTextClass: string;\n}\n\nconst TaskColumnComponent: React.FC<TaskColumnProps> = ({\n id,\n title,\n tasks,\n dotColorClass,\n badgeBgClass,\n badgeTextClass,\n}) => {\n const { setNodeRef, isOver } = useDroppable({ id });\n const headingId = useId();\n const taskIds = useMemo(() => tasks.map((task) => task.id), [tasks]);\n\n return (\n <section aria-labelledby={headingId} className=\"flex flex-col gap-5\">\n <div className=\"flex items-center justify-between px-1\">\n <div className=\"flex items-center gap-2\">\n <span\n aria-hidden=\"true\"\n className={cn('h-2 w-2 rounded-full', dotColorClass)}\n />\n <h3\n id={headingId}\n className={cn(\n 'font-headline text-sm font-bold uppercase tracking-widest',\n badgeTextClass,\n )}\n >\n {title}\n </h3>\n <span\n aria-label={`${tasks.length} tasks`}\n className={cn(\n 'rounded px-1.5 py-0.5 text-[10px] font-bold',\n badgeBgClass,\n badgeTextClass,\n )}\n >\n {tasks.length}\n </span>\n </div>\n <button\n type=\"button\"\n disabled\n aria-label={`${title} column options unavailable`}\n title={`${title} column options unavailable`}\n className={cn(\n 'transition-colors',\n 'text-outline hover:text-primary',\n 'disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:text-outline',\n )}\n >\n <MoreHorizontal size={18} aria-hidden=\"true\" />\n </button>\n </div>\n\n <div\n ref={setNodeRef}\n role=\"list\"\n aria-labelledby={headingId}\n className={cn(\n 'flex min-h-[300px] flex-col gap-5 rounded-xl transition-colors duration-200',\n isOver && 'bg-surface-container-high/30 ring-2 ring-outline-variant/20',\n )}\n >\n <SortableContext items={taskIds} strategy={verticalListSortingStrategy}>\n {tasks.map((task) => (\n <TaskCard key={task.id} task={task} />\n ))}\n </SortableContext>\n {tasks.length === 0 ? (\n <p className=\"sr-only\">{title} column is empty.</p>\n ) : null}\n </div>\n </section>\n );\n};\n\nconst TaskColumn = memo(TaskColumnComponent);\n\nexport default TaskColumn;\n","import React, { memo, useMemo } from 'react';\nimport TaskColumn from './TaskColumn';\nimport type { Task, TaskStatus } from './types';\nimport { cn } from '../../lib/cn';\n\ntype BoardColumnId = Exclude<TaskStatus, 'archived'>;\n\nconst BOARD_COLUMNS: ReadonlyArray<{\n id: BoardColumnId;\n title: string;\n dotColorClass: string;\n badgeBgClass: string;\n badgeTextClass: string;\n}> = [\n {\n id: 'backlog',\n title: 'Backlog',\n dotColorClass: 'bg-outline',\n badgeBgClass: 'bg-surface-container-high',\n badgeTextClass: 'text-outline-variant',\n },\n {\n id: 'in-progress',\n title: 'In Progress',\n dotColorClass: 'bg-primary animate-pulse',\n badgeBgClass: 'bg-primary-container',\n badgeTextClass: 'text-primary',\n },\n {\n id: 'review',\n title: 'Review',\n dotColorClass: 'bg-tertiary',\n badgeBgClass: 'bg-tertiary-container',\n badgeTextClass: 'text-tertiary',\n },\n {\n id: 'done',\n title: 'Done',\n dotColorClass: 'bg-secondary',\n badgeBgClass: 'bg-secondary-container/20',\n badgeTextClass: 'text-secondary',\n },\n];\n\ninterface TaskBoardProps {\n tasks: Task[];\n}\n\nconst TaskBoardComponent: React.FC<TaskBoardProps> = ({ tasks }) => {\n const tasksByStatus = useMemo(() => {\n const grouped: Record<BoardColumnId, Task[]> = {\n backlog: [],\n 'in-progress': [],\n review: [],\n done: [],\n };\n\n tasks.forEach((task) => {\n if (task.status !== 'archived') {\n grouped[task.status].push(task);\n }\n });\n\n return grouped;\n }, [tasks]);\n\n return (\n <section\n aria-label=\"Kanban task board\"\n className={cn('grid grid-cols-1 items-start gap-6 md:grid-cols-2 lg:grid-cols-4')}\n >\n {BOARD_COLUMNS.map((column) => (\n <TaskColumn\n key={column.id}\n id={column.id}\n title={column.title}\n dotColorClass={column.dotColorClass}\n badgeBgClass={column.badgeBgClass}\n badgeTextClass={column.badgeTextClass}\n tasks={tasksByStatus[column.id]}\n />\n ))}\n </section>\n );\n};\n\nconst TaskBoard = memo(TaskBoardComponent);\n\nexport default TaskBoard;\n","import React from 'react';\nimport { Sparkles } from 'lucide-react';\nimport type { Task } from './types';\n\ninterface TaskStatsProps {\n tasks: Task[];\n taskCounts: Record<Task['status'], number>;\n projectTitle: string;\n}\n\nconst TaskStats: React.FC<TaskStatsProps> = ({ tasks, taskCounts, projectTitle }) => (\n <div className=\"grid grid-cols-1 md:grid-cols-3 gap-6\">\n <div\n className=\"glass-card p-6 rounded-2xl border border-outline-variant/10 col-span-1 md:col-span-2 flex flex-col md:flex-row justify-between items-center gap-6\"\n style={{ background: 'rgba(34, 42, 61, 0.4)', backdropFilter: 'blur(12px)' }}\n >\n <div>\n <h3 className=\"font-headline font-bold text-lg text-on-surface\">Efficiency Matrix</h3>\n <p className=\"text-outline text-sm\">System performance metrics for active sector.</p>\n <div className=\"mt-4 flex gap-6\">\n <div className=\"flex flex-col\">\n <span className=\"text-2xl font-extrabold text-primary\">{taskCounts.done}</span>\n <span className=\"text-[10px] font-bold text-outline uppercase tracking-wider\">Completed</span>\n </div>\n <div className=\"flex flex-col\">\n <span className=\"text-2xl font-extrabold text-secondary\">{taskCounts['in-progress']}</span>\n <span className=\"text-[10px] font-bold text-outline uppercase tracking-wider\">Active Nodes</span>\n </div>\n </div>\n </div>\n\n <div className=\"w-full md:w-48 h-24 bg-surface-container-highest/30 rounded-lg relative overflow-hidden flex items-end px-2 gap-1\">\n {['backlog', 'in-progress', 'review', 'done'].map((status, i) => {\n const count = taskCounts[status as keyof typeof taskCounts];\n const height = tasks.length > 0 ? (count / tasks.length) * 100 : 10;\n return (\n <div\n key={status}\n className=\"w-full bg-primary/40 rounded-t transition-all duration-500\"\n style={{ height: `${Math.max(height, 5)}%`, opacity: 0.3 + i * 0.2 }}\n />\n );\n })}\n <div className=\"absolute inset-0 pointer-events-none opacity-30 flex items-center justify-center\">\n <span className=\"text-primary text-[8px] font-mono uppercase tracking-[0.5em]\">Live Stats</span>\n </div>\n </div>\n </div>\n\n <div className=\"bg-tertiary-container/10 p-6 rounded-2xl border border-tertiary/10 relative overflow-hidden group\">\n <div className=\"absolute -right-4 -top-4 text-tertiary/5 text-8xl transition-transform group-hover:scale-110\">\n <Sparkles size={80} />\n </div>\n <h3 className=\"font-headline font-bold text-tertiary\">Orchestration Info</h3>\n <p className=\"text-on-surface-variant text-sm mt-2 relative z-10\">\n {tasks.length > 0\n ? `Managing ${tasks.length} tasks across ${projectTitle}. Drag tasks between columns to update their operational status.`\n : 'Initialize new tasks to begin sector orchestration. Tasks will automatically be mapped to assigned intelligence nodes.'}\n </p>\n </div>\n </div>\n);\n\nexport default TaskStats;\n","import { useEffect, useId, useMemo } from 'react';\nimport { Controller, useForm, useWatch } from 'react-hook-form';\nimport { zodResolver } from '@hookform/resolvers/zod';\nimport { useMutation, useQuery, useQueryClient } from '@tanstack/react-query';\nimport { AnimatePresence, motion } from 'framer-motion';\nimport {\n ChevronDown,\n ClipboardList,\n FileText,\n Flag,\n Sparkles,\n Trash2,\n User,\n X,\n} from 'lucide-react';\nimport { agentsApi, type Agent } from '../../api/agents';\nimport { projectsApi, type Project } from '../../api/projects';\nimport { tasksApi, TaskPriority, TaskStatus } from '../../api/tasks';\nimport MarkdownField from '../MarkdownField';\nimport { useNotification } from '../../hooks/useNotification';\nimport {\n TASK_TEMPLATE,\n createTaskSchema,\n type CreateTaskFormValues,\n} from '../../lib/taskFormSchemas';\n\ninterface CreateTaskModalProps {\n isOpen: boolean;\n onClose: () => void;\n onCreated?: () => void;\n}\n\nconst createTaskDefaults: CreateTaskFormValues = {\n title: '',\n description: TASK_TEMPLATE,\n status: TaskStatus.BACKLOG,\n priority: TaskPriority.MEDIUM,\n assigneeId: '',\n projectId: '',\n};\n\nconst CreateTaskModal = ({ isOpen, onClose, onCreated }: CreateTaskModalProps) => {\n const queryClient = useQueryClient();\n const { notifyApiError, notifyError, notifySuccess } = useNotification();\n const titleErrorId = useId();\n const descriptionErrorId = useId();\n const statusErrorId = useId();\n const priorityErrorId = useId();\n const assigneeErrorId = useId();\n const projectErrorId = useId();\n const titleId = useId();\n const modalTitleId = useId();\n const modalDescriptionId = useId();\n\n const {\n control,\n formState: { errors },\n handleSubmit,\n register,\n reset,\n setValue,\n } = useForm<CreateTaskFormValues>({\n resolver: zodResolver(createTaskSchema),\n defaultValues: createTaskDefaults,\n mode: 'onBlur',\n });\n\n const agentsQuery = useQuery({\n queryKey: ['agents'],\n enabled: isOpen,\n queryFn: async () => {\n const response = await agentsApi.findAll();\n return response.data;\n },\n });\n\n const projectsQuery = useQuery({\n queryKey: ['projects'],\n enabled: isOpen,\n queryFn: async () => {\n const response = await projectsApi.findAll();\n return response.data;\n },\n });\n\n useEffect(() => {\n if (!isOpen) {\n reset(createTaskDefaults);\n return;\n }\n\n const handleEsc = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n onClose();\n }\n };\n\n window.addEventListener('keydown', handleEsc);\n return () => window.removeEventListener('keydown', handleEsc);\n }, [isOpen, onClose, reset]);\n\n useEffect(() => {\n if (!isOpen) {\n return;\n }\n\n if (agentsQuery.error) {\n notifyApiError(agentsQuery.error, 'Agents Load Failed');\n }\n }, [agentsQuery.error, isOpen, notifyApiError]);\n\n useEffect(() => {\n if (!isOpen) {\n return;\n }\n\n if (projectsQuery.error) {\n notifyApiError(projectsQuery.error, 'Projects Load Failed');\n }\n }, [isOpen, notifyApiError, projectsQuery.error]);\n\n const projects = useMemo(() => projectsQuery.data ?? [], [projectsQuery.data]);\n const currentProjectId = useWatch({ control, name: 'projectId' });\n\n useEffect(() => {\n if (!isOpen || projects.length === 0 || currentProjectId) {\n return;\n }\n\n setValue('projectId', projects[0].id, {\n shouldDirty: false,\n shouldValidate: true,\n });\n }, [currentProjectId, isOpen, projects, setValue]);\n\n const createMutation = useMutation({\n mutationFn: async (values: CreateTaskFormValues) => {\n await tasksApi.create(values.projectId, {\n title: values.title,\n description: values.description,\n status: values.status,\n priority: values.priority as TaskPriority,\n assigneeId: values.assigneeId || undefined,\n projectId: values.projectId,\n });\n\n return values;\n },\n onSuccess: (values) => {\n queryClient.invalidateQueries({ queryKey: ['tasks', values.projectId] });\n queryClient.invalidateQueries({ queryKey: ['projects'] });\n notifySuccess('Task Commissioned', 'The task node has been added to the orchestration grid.');\n onCreated?.();\n onClose();\n reset({ ...createTaskDefaults, projectId: values.projectId });\n },\n onError: (error) => {\n notifyApiError(error, 'Task Creation Failed');\n },\n });\n\n const agents = agentsQuery.data ?? [];\n const fetchingData = agentsQuery.isPending || projectsQuery.isPending;\n const loading = createMutation.isPending;\n const priority = useWatch({ control, name: 'priority' });\n const status = useWatch({ control, name: 'status' });\n const assigneeId = useWatch({ control, name: 'assigneeId' });\n const projectId = useWatch({ control, name: 'projectId' });\n\n const handleCreate = handleSubmit(\n async (values) => {\n await createMutation.mutateAsync(values);\n },\n () => {\n notifyError('Validation Error', 'Please review the highlighted fields before commissioning the task.');\n },\n );\n\n const handleClose = () => {\n if (loading) {\n return;\n }\n onClose();\n };\n\n if (!isOpen) {\n return null;\n }\n\n return (\n <AnimatePresence>\n <div className=\"fixed inset-0 z-[100] flex items-center justify-center p-4 md:p-8\">\n <motion.div\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n onClick={handleClose}\n className=\"absolute inset-0 bg-surface/80 backdrop-blur-xl\"\n aria-hidden=\"true\"\n />\n\n <motion.div\n initial={{ opacity: 0, scale: 0.95, y: 20 }}\n animate={{ opacity: 1, scale: 1, y: 0 }}\n exit={{ opacity: 0, scale: 0.95, y: 20 }}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={modalTitleId}\n aria-describedby={modalDescriptionId}\n aria-busy={fetchingData || loading}\n className=\"relative w-full max-w-3xl h-full max-h-[750px] bg-surface-container-low rounded-2xl shadow-2xl overflow-hidden flex flex-col ring-1 ring-outline-variant/10\"\n >\n <div className=\"px-8 py-6 border-b border-outline-variant/10 flex items-center justify-between bg-surface-container-low/50 backdrop-blur-md sticky top-0 z-10\">\n <div className=\"flex items-center gap-3\">\n <div className=\"w-10 h-10 rounded-xl bg-primary/10 flex items-center justify-center text-primary\">\n <ClipboardList size={22} aria-hidden=\"true\" />\n </div>\n <div>\n <h2 id={modalTitleId} className=\"text-xl font-black font-headline text-white tracking-tight\">\n Comission New Task\n </h2>\n <p\n id={modalDescriptionId}\n className=\"text-[10px] uppercase tracking-widest text-on-surface-variant/60 font-bold\"\n >\n Node Specification Protocol\n </p>\n </div>\n </div>\n <button\n type=\"button\"\n onClick={handleClose}\n disabled={loading}\n aria-label=\"Close create task modal\"\n className=\"w-10 h-10 rounded-full flex items-center justify-center text-on-surface-variant hover:bg-surface-container-highest transition-colors disabled:opacity-50 disabled:cursor-not-allowed\"\n >\n <X size={20} aria-hidden=\"true\" />\n </button>\n </div>\n\n <div className=\"flex-1 overflow-y-auto p-10 space-y-10 custom-scrollbar\">\n <section className=\"space-y-6\">\n <div className=\"flex items-center gap-3 mb-2\">\n <div className=\"w-1 bg-primary h-4 rounded-full\" />\n <h3 className=\"text-xs font-black uppercase tracking-[0.2em] text-on-surface-variant\">\n Essential Intelligence\n </h3>\n </div>\n\n <div className=\"space-y-6\">\n <div className=\"space-y-2\">\n <label\n htmlFor={titleId}\n className=\"text-[10px] font-black uppercase tracking-widest text-on-surface-variant/60 ml-1\"\n >\n Task Title\n </label>\n <div className=\"bg-surface-container-highest/30 rounded-xl p-0.5 ring-1 ring-outline-variant/10 focus-within:ring-primary/40 focus-within:bg-surface-container-highest/50 transition-all\">\n <input\n id={titleId}\n type=\"text\"\n placeholder=\"e.g. Synthesize Vector DB results\"\n aria-invalid={Boolean(errors.title)}\n aria-describedby={errors.title ? titleErrorId : undefined}\n className=\"w-full bg-transparent border-none text-sm text-on-surface h-12 px-4 focus:outline-none placeholder:text-on-surface-variant/30 font-medium\"\n {...register('title')}\n />\n </div>\n {errors.title && (\n <p id={titleErrorId} className=\"text-xs text-error font-semibold\">\n {errors.title.message}\n </p>\n )}\n </div>\n\n <div className=\"space-y-3\">\n <div className=\"flex items-center justify-between px-1\">\n <label className=\"text-[10px] font-black uppercase tracking-widest text-on-surface-variant/60\">\n Objective / Description\n </label>\n <div className=\"flex items-center gap-2\">\n <button\n type=\"button\"\n onClick={() =>\n setValue('description', TASK_TEMPLATE, {\n shouldDirty: true,\n shouldValidate: true,\n })\n }\n className=\"flex items-center gap-1 px-2 py-1 rounded hover:bg-surface-container-highest text-[9px] font-black text-on-surface-variant/60 uppercase tracking-widest transition-colors\"\n title=\"Reset to template\"\n >\n <FileText size={10} aria-hidden=\"true\" />\n Template\n </button>\n <div className=\"w-px h-3 bg-outline-variant/10\" />\n <button\n type=\"button\"\n onClick={() =>\n setValue('description', '', {\n shouldDirty: true,\n shouldValidate: true,\n })\n }\n className=\"flex items-center gap-1 px-2 py-1 rounded hover:bg-error/10 text-[9px] font-black text-error/60 hover:text-error uppercase tracking-widest transition-colors\"\n title=\"Clear field\"\n >\n <Trash2 size={10} aria-hidden=\"true\" />\n Clear\n </button>\n </div>\n </div>\n <Controller\n control={control}\n name=\"description\"\n render={({ field }) => (\n <MarkdownField\n value={field.value}\n onChange={field.onChange}\n placeholder=\"Describe the desired output and constraints for this node...\"\n height=\"h-52\"\n maxLength={2000}\n />\n )}\n />\n {errors.description && (\n <p id={descriptionErrorId} className=\"text-xs text-error font-semibold\">\n {errors.description.message}\n </p>\n )}\n </div>\n </div>\n </section>\n\n <section className=\"space-y-6 pt-10 border-t border-outline-variant/10\">\n <div className=\"flex items-center gap-3 mb-2\">\n <div className=\"w-1 bg-secondary h-4 rounded-full\" />\n <h3 className=\"text-xs font-black uppercase tracking-[0.2em] text-on-surface-variant\">\n Operational Configuration\n </h3>\n </div>\n\n <div className=\"grid grid-cols-1 md:grid-cols-2 gap-8\">\n <div className=\"space-y-3\">\n <label className=\"text-[10px] font-black uppercase tracking-widest text-on-surface-variant/60 ml-1 flex items-center gap-1.5\">\n <Flag size={12} className=\"text-secondary\" aria-hidden=\"true\" />\n Priority Level\n </label>\n <div className=\"grid grid-cols-4 gap-2 p-1 bg-surface-container-highest/30 rounded-xl ring-1 ring-outline-variant/10\">\n {[\n { id: TaskPriority.LOW, label: 'LOW' },\n { id: TaskPriority.MEDIUM, label: 'MED' },\n { id: TaskPriority.HIGH, label: 'HIGH' },\n { id: TaskPriority.CRITICAL, label: 'CRIT' },\n ].map((item) => (\n <button\n key={item.id}\n type=\"button\"\n aria-pressed={priority === item.id}\n onClick={() =>\n setValue('priority', item.id, {\n shouldDirty: true,\n shouldValidate: true,\n })\n }\n className={`py-2 rounded-lg text-[10px] font-black tracking-widest transition-all ${\n priority === item.id\n ? item.id === TaskPriority.CRITICAL || item.id === TaskPriority.HIGH\n ? 'bg-error text-on-error shadow-lg shadow-error/30'\n : 'bg-primary text-on-primary shadow-lg shadow-primary/30'\n : 'hover:bg-surface-container-highest text-on-surface-variant'\n }`}\n >\n {item.label}\n </button>\n ))}\n </div>\n {errors.priority && (\n <p id={priorityErrorId} className=\"text-xs text-error font-semibold\">\n {errors.priority.message}\n </p>\n )}\n </div>\n\n <div className=\"space-y-3\">\n <label\n htmlFor=\"create-task-status\"\n className=\"text-[10px] font-black uppercase tracking-widest text-on-surface-variant/60 ml-1\"\n >\n Initial Status\n </label>\n <div className=\"bg-surface-container-highest/30 rounded-xl p-0.5 ring-1 ring-outline-variant/10 focus-within:ring-primary/40 transition-all relative\">\n <select\n id=\"create-task-status\"\n value={status}\n onChange={(event) =>\n setValue('status', event.target.value as CreateTaskFormValues['status'], {\n shouldDirty: true,\n shouldValidate: true,\n })\n }\n aria-invalid={Boolean(errors.status)}\n aria-describedby={errors.status ? statusErrorId : undefined}\n className=\"w-full bg-transparent border-none text-xs font-bold text-on-surface h-10 px-4 focus:outline-none appearance-none cursor-pointer uppercase tracking-widest\"\n >\n {[TaskStatus.BACKLOG, TaskStatus.IN_PROGRESS, TaskStatus.REVIEW].map((value) => (\n <option\n key={value}\n value={value}\n className=\"bg-surface-container-low text-on-surface uppercase\"\n >\n {value}\n </option>\n ))}\n </select>\n <div className=\"absolute right-3 top-1/2 -translate-y-1/2 pointer-events-none text-on-surface-variant/60\">\n <ChevronDown size={16} aria-hidden=\"true\" />\n </div>\n </div>\n {errors.status && (\n <p id={statusErrorId} className=\"text-xs text-error font-semibold\">\n {errors.status.message}\n </p>\n )}\n </div>\n\n <div className=\"space-y-3 col-span-full\">\n <label className=\"text-[10px] font-black uppercase tracking-widest text-on-surface-variant/60 ml-1 flex items-center gap-1.5\">\n <User size={12} className=\"text-primary\" aria-hidden=\"true\" />\n Assigned Intelligence (Optional)\n </label>\n <div className=\"grid grid-cols-2 md:grid-cols-3 gap-3\">\n {agents.map((agent: Agent) => (\n <button\n key={agent.id}\n type=\"button\"\n aria-pressed={assigneeId === agent.id}\n onClick={() =>\n setValue('assigneeId', assigneeId === agent.id ? '' : agent.id, {\n shouldDirty: true,\n shouldValidate: true,\n })\n }\n className={`p-3 rounded-xl border flex items-center gap-3 transition-all text-left ${\n assigneeId === agent.id\n ? 'bg-primary/10 border-primary shadow-[0_0_15px_rgba(173,198,255,0.1)]'\n : 'bg-surface-container-highest/20 border-outline-variant/5 hover:border-outline-variant/30 hover:bg-surface-container-highest/30'\n }`}\n >\n <div\n className={`w-8 h-8 rounded-lg flex items-center justify-center font-bold text-xs ${\n assigneeId === agent.id\n ? 'bg-primary text-surface'\n : 'bg-surface-container-high text-on-surface-variant'\n }`}\n >\n {agent.name.substring(0, 2).toUpperCase()}\n </div>\n <div>\n <div className={`text-[11px] font-bold ${assigneeId === agent.id ? 'text-white' : 'text-on-surface-variant'}`}>\n {agent.name}\n </div>\n <div className=\"text-[9px] text-on-surface-variant/50 uppercase tracking-widest font-black leading-none mt-0.5\">\n {agent.role || 'Agent'}\n </div>\n </div>\n </button>\n ))}\n {agents.length === 0 && !agentsQuery.isPending && (\n <div className=\"col-span-full py-4 text-center border-2 border-dashed border-outline-variant/10 rounded-xl\">\n <span className=\"text-[10px] font-bold text-on-surface-variant/30 uppercase tracking-[0.2em]\">\n No active intelligence found\n </span>\n </div>\n )}\n </div>\n {errors.assigneeId && (\n <p id={assigneeErrorId} className=\"text-xs text-error font-semibold\">\n {errors.assigneeId.message}\n </p>\n )}\n </div>\n\n {projects.length > 1 ? (\n <div className=\"space-y-3 col-span-full\">\n <label\n htmlFor=\"create-task-project\"\n className=\"text-[10px] font-black uppercase tracking-widest text-on-surface-variant/60 ml-1\"\n >\n Target Project\n </label>\n <div className=\"bg-surface-container-highest/30 rounded-xl p-0.5 ring-1 ring-outline-variant/10 focus-within:ring-primary/40 transition-all relative\">\n <select\n id=\"create-task-project\"\n value={projectId}\n onChange={(event) =>\n setValue('projectId', event.target.value, {\n shouldDirty: true,\n shouldValidate: true,\n })\n }\n aria-invalid={Boolean(errors.projectId)}\n aria-describedby={errors.projectId ? projectErrorId : undefined}\n className=\"w-full bg-transparent border-none text-xs font-bold text-on-surface h-10 px-4 focus:outline-none appearance-none cursor-pointer\"\n >\n {projects.map((project: Project) => (\n <option key={project.id} value={project.id} className=\"bg-surface-container-low text-on-surface\">\n {project.title}\n </option>\n ))}\n </select>\n <div className=\"absolute right-3 top-1/2 -translate-y-1/2 pointer-events-none text-on-surface-variant/60\">\n <ChevronDown size={16} aria-hidden=\"true\" />\n </div>\n </div>\n {errors.projectId && (\n <p id={projectErrorId} className=\"text-xs text-error font-semibold\">\n {errors.projectId.message}\n </p>\n )}\n </div>\n ) : projects.length === 1 ? (\n <div className=\"col-span-full px-4 py-2 bg-surface-container-highest/10 rounded-lg border border-outline-variant/10 flex items-center justify-between\">\n <span className=\"text-[10px] font-black uppercase tracking-widest text-on-surface-variant/40\">\n Target Sector\n </span>\n <span className=\"text-xs font-bold text-primary/80\">{projects[0].title}</span>\n </div>\n ) : (\n <div className=\"col-span-full p-4 bg-error/5 border border-error/20 rounded-xl text-center\">\n <p className=\"text-xs font-bold text-error\">No Project Sector Detected</p>\n <p className=\"text-[10px] text-on-surface-variant/60 mt-1 uppercase tracking-widest font-black\">\n Initialize a sector in the sidebar before commissioning tasks\n </p>\n </div>\n )}\n </div>\n </section>\n </div>\n\n <div className=\"px-8 py-6 bg-surface-container-low/80 backdrop-blur-md border-t border-outline-variant/10 flex items-center justify-between\">\n <div className=\"flex items-center gap-2 text-[10px] font-bold text-on-surface-variant/50 uppercase tracking-widest\">\n <Sparkles size={12} className=\"text-primary animate-pulse\" aria-hidden=\"true\" />\n Agentic Orchestration Active\n </div>\n <div className=\"flex items-center gap-4\">\n <button\n type=\"button\"\n onClick={handleClose}\n disabled={loading}\n className=\"px-6 py-2.5 rounded-lg text-sm font-bold text-on-surface-variant hover:text-white transition-all hover:bg-surface-container-highest disabled:opacity-50 disabled:cursor-not-allowed\"\n >\n Discard\n </button>\n <button\n type=\"button\"\n onClick={handleCreate}\n disabled={loading || fetchingData || projects.length === 0}\n className=\"px-10 py-2.5 rounded-lg bg-primary text-on-primary text-sm font-black shadow-[0_8px_20px_rgba(173,198,255,0.2)] hover:scale-[1.02] active:scale-[0.98] transition-all disabled:opacity-50 disabled:grayscale disabled:cursor-not-allowed group relative overflow-hidden disabled:hover:scale-100\"\n >\n <div className=\"absolute inset-0 bg-white/10 translate-x-[-100%] group-hover:translate-x-[100%] transition-transform duration-700 skew-x-12\" />\n {loading ? 'Processing...' : 'Comission Task'}\n </button>\n </div>\n </div>\n </motion.div>\n </div>\n </AnimatePresence>\n );\n};\n\nexport default CreateTaskModal;\n","import React from 'react';\nimport { useDroppable } from '@dnd-kit/core';\nimport { Archive } from 'lucide-react';\n\ninterface ArchiveZoneProps {\n isDragging: boolean;\n}\n\nconst ArchiveZone: React.FC<ArchiveZoneProps> = ({ isDragging }) => {\n const { setNodeRef, isOver } = useDroppable({ id: 'archive' });\n \n return (\n <div\n ref={setNodeRef}\n className={`\n flex-1 flex items-center gap-4 px-6 py-3 rounded-2xl border-2 border-dashed transition-all duration-500 min-w-[240px]\n ${isOver \n ? 'bg-error/20 border-error text-error scale-[1.02] shadow-xl shadow-error/10 z-50' \n : isDragging\n ? 'bg-article-container/40 border-primary/40 text-primary animate-pulse shadow-lg'\n : 'bg-surface-container-low/20 border-outline-variant/10 text-on-surface-variant/40 hover:bg-surface-container-low/40 hover:border-outline-variant/30'\n }\n `}\n >\n <div className={`\n w-10 h-10 rounded-xl flex items-center justify-center transition-all duration-500\n ${isOver ? 'bg-error text-white rotate-12' : isDragging ? 'bg-primary/20 text-primary' : 'bg-surface-container-highest/50'}\n `}>\n <Archive size={20} />\n </div>\n <div className=\"flex flex-col flex-1\">\n <span className={`text-[10px] font-black uppercase tracking-[0.2em] leading-none transition-colors ${isOver ? 'text-error' : isDragging ? 'text-primary' : 'text-on-surface-variant/60'}`}>\n {isOver ? 'Authorization Required' : 'Archival Logic Sink'}\n </span>\n <span className=\"text-[9px] font-bold opacity-40 uppercase tracking-widest mt-1.5 whitespace-nowrap\">\n {isOver ? 'Release to decommissioning' : isDragging ? 'Drag node here to decommission' : 'Sector dormant'}\n </span>\n </div>\n \n {isDragging && !isOver && (\n <div className=\"flex gap-1\">\n {[1, 2, 3].map(i => (\n <div key={i} className=\"w-1 h-1 rounded-full bg-primary/40 animate-ping\" style={{ animationDelay: `${i * 0.2}s` }} />\n ))}\n </div>\n )}\n </div>\n );\n};\n\nexport default ArchiveZone;\n","export async function getBytes(stream, onChunk) {\r\n const reader = stream.getReader();\r\n let result;\r\n while (!(result = await reader.read()).done) {\r\n onChunk(result.value);\r\n }\r\n}\r\nexport function getLines(onLine) {\r\n let buffer;\r\n let position;\r\n let fieldLength;\r\n let discardTrailingNewline = false;\r\n return function onChunk(arr) {\r\n if (buffer === undefined) {\r\n buffer = arr;\r\n position = 0;\r\n fieldLength = -1;\r\n }\r\n else {\r\n buffer = concat(buffer, arr);\r\n }\r\n const bufLength = buffer.length;\r\n let lineStart = 0;\r\n while (position < bufLength) {\r\n if (discardTrailingNewline) {\r\n if (buffer[position] === 10) {\r\n lineStart = ++position;\r\n }\r\n discardTrailingNewline = false;\r\n }\r\n let lineEnd = -1;\r\n for (; position < bufLength && lineEnd === -1; ++position) {\r\n switch (buffer[position]) {\r\n case 58:\r\n if (fieldLength === -1) {\r\n fieldLength = position - lineStart;\r\n }\r\n break;\r\n case 13:\r\n discardTrailingNewline = true;\r\n case 10:\r\n lineEnd = position;\r\n break;\r\n }\r\n }\r\n if (lineEnd === -1) {\r\n break;\r\n }\r\n onLine(buffer.subarray(lineStart, lineEnd), fieldLength);\r\n lineStart = position;\r\n fieldLength = -1;\r\n }\r\n if (lineStart === bufLength) {\r\n buffer = undefined;\r\n }\r\n else if (lineStart !== 0) {\r\n buffer = buffer.subarray(lineStart);\r\n position -= lineStart;\r\n }\r\n };\r\n}\r\nexport function getMessages(onId, onRetry, onMessage) {\r\n let message = newMessage();\r\n const decoder = new TextDecoder();\r\n return function onLine(line, fieldLength) {\r\n if (line.length === 0) {\r\n onMessage === null || onMessage === void 0 ? void 0 : onMessage(message);\r\n message = newMessage();\r\n }\r\n else if (fieldLength > 0) {\r\n const field = decoder.decode(line.subarray(0, fieldLength));\r\n const valueOffset = fieldLength + (line[fieldLength + 1] === 32 ? 2 : 1);\r\n const value = decoder.decode(line.subarray(valueOffset));\r\n switch (field) {\r\n case 'data':\r\n message.data = message.data\r\n ? message.data + '\\n' + value\r\n : value;\r\n break;\r\n case 'event':\r\n message.event = value;\r\n break;\r\n case 'id':\r\n onId(message.id = value);\r\n break;\r\n case 'retry':\r\n const retry = parseInt(value, 10);\r\n if (!isNaN(retry)) {\r\n onRetry(message.retry = retry);\r\n }\r\n break;\r\n }\r\n }\r\n };\r\n}\r\nfunction concat(a, b) {\r\n const res = new Uint8Array(a.length + b.length);\r\n res.set(a);\r\n res.set(b, a.length);\r\n return res;\r\n}\r\nfunction newMessage() {\r\n return {\r\n data: '',\r\n event: '',\r\n id: '',\r\n retry: undefined,\r\n };\r\n}\r\n//# sourceMappingURL=parse.js.map","var __rest = (this && this.__rest) || function (s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n};\r\nimport { getBytes, getLines, getMessages } from './parse';\r\nexport const EventStreamContentType = 'text/event-stream';\r\nconst DefaultRetryInterval = 1000;\r\nconst LastEventId = 'last-event-id';\r\nexport function fetchEventSource(input, _a) {\r\n var { signal: inputSignal, headers: inputHeaders, onopen: inputOnOpen, onmessage, onclose, onerror, openWhenHidden, fetch: inputFetch } = _a, rest = __rest(_a, [\"signal\", \"headers\", \"onopen\", \"onmessage\", \"onclose\", \"onerror\", \"openWhenHidden\", \"fetch\"]);\r\n return new Promise((resolve, reject) => {\r\n const headers = Object.assign({}, inputHeaders);\r\n if (!headers.accept) {\r\n headers.accept = EventStreamContentType;\r\n }\r\n let curRequestController;\r\n function onVisibilityChange() {\r\n curRequestController.abort();\r\n if (!document.hidden) {\r\n create();\r\n }\r\n }\r\n if (!openWhenHidden) {\r\n document.addEventListener('visibilitychange', onVisibilityChange);\r\n }\r\n let retryInterval = DefaultRetryInterval;\r\n let retryTimer = 0;\r\n function dispose() {\r\n document.removeEventListener('visibilitychange', onVisibilityChange);\r\n window.clearTimeout(retryTimer);\r\n curRequestController.abort();\r\n }\r\n inputSignal === null || inputSignal === void 0 ? void 0 : inputSignal.addEventListener('abort', () => {\r\n dispose();\r\n resolve();\r\n });\r\n const fetch = inputFetch !== null && inputFetch !== void 0 ? inputFetch : window.fetch;\r\n const onopen = inputOnOpen !== null && inputOnOpen !== void 0 ? inputOnOpen : defaultOnOpen;\r\n async function create() {\r\n var _a;\r\n curRequestController = new AbortController();\r\n try {\r\n const response = await fetch(input, Object.assign(Object.assign({}, rest), { headers, signal: curRequestController.signal }));\r\n await onopen(response);\r\n await getBytes(response.body, getLines(getMessages(id => {\r\n if (id) {\r\n headers[LastEventId] = id;\r\n }\r\n else {\r\n delete headers[LastEventId];\r\n }\r\n }, retry => {\r\n retryInterval = retry;\r\n }, onmessage)));\r\n onclose === null || onclose === void 0 ? void 0 : onclose();\r\n dispose();\r\n resolve();\r\n }\r\n catch (err) {\r\n if (!curRequestController.signal.aborted) {\r\n try {\r\n const interval = (_a = onerror === null || onerror === void 0 ? void 0 : onerror(err)) !== null && _a !== void 0 ? _a : retryInterval;\r\n window.clearTimeout(retryTimer);\r\n retryTimer = window.setTimeout(create, interval);\r\n }\r\n catch (innerErr) {\r\n dispose();\r\n reject(innerErr);\r\n }\r\n }\r\n }\r\n }\r\n create();\r\n });\r\n}\r\nfunction defaultOnOpen(response) {\r\n const contentType = response.headers.get('content-type');\r\n if (!(contentType === null || contentType === void 0 ? void 0 : contentType.startsWith(EventStreamContentType))) {\r\n throw new Error(`Expected content-type to be ${EventStreamContentType}, Actual: ${contentType}`);\r\n }\r\n}\r\n//# sourceMappingURL=fetch.js.map","import { useEffect, useRef } from 'react';\nimport { fetchEventSource } from '@microsoft/fetch-event-source';\nimport type { Task } from '../api/tasks';\n\nexport const useTaskSSE = (\n projectId: string | undefined,\n onTaskUpdate: (event: string, task: Task) => void\n) => {\n const abortControllerRef = useRef<AbortController | null>(null);\n const callbackRef = useRef(onTaskUpdate);\n\n // Keep the callback ref current without re-running the SSE effect\n useEffect(() => {\n callbackRef.current = onTaskUpdate;\n }, [onTaskUpdate]);\n\n useEffect(() => {\n if (!projectId) return;\n\n abortControllerRef.current = new AbortController();\n\n const connect = async () => {\n try {\n await fetchEventSource(`/api/v1/projects/${projectId}/tasks/events`, {\n method: 'GET',\n headers: {\n 'Accept': 'text/event-stream',\n },\n credentials: 'include',\n signal: abortControllerRef.current?.signal,\n onmessage(msg) {\n if (!msg.data) return;\n try {\n const data = JSON.parse(msg.data);\n if (data && data.task && data.event) {\n callbackRef.current(data.event, data.task);\n }\n } catch (err) {\n console.error('Failed to parse SSE message', err);\n }\n },\n onclose() {\n // Server closed connection, let fetchEventSource retry naturally if appropriate\n },\n onerror(err) {\n console.error('SSE connection error:', err);\n },\n });\n } catch (err) {\n console.error('SSE initialization failed', err);\n }\n };\n\n connect();\n\n return () => {\n if (abortControllerRef.current) {\n abortControllerRef.current.abort();\n }\n };\n }, [projectId]);\n};\n","import { useState, useCallback } from 'react';\nimport {\n closestCenter,\n KeyboardSensor,\n PointerSensor,\n useSensor,\n useSensors,\n type DragStartEvent,\n type DragEndEvent,\n type DragOverEvent,\n} from '@dnd-kit/core';\nimport {\n arrayMove,\n sortableKeyboardCoordinates,\n} from '@dnd-kit/sortable';\nimport type { Task } from '../components/tasks/types';\n\ninterface UseTaskDnDOptions {\n tasks: Task[];\n setTasks: React.Dispatch<React.SetStateAction<Task[]>>;\n onStatusChange: (taskId: string, newStatus: string) => Promise<void>;\n skipArchiveConfirm: boolean;\n}\n\nexport function useTaskDnD({ tasks, setTasks, onStatusChange, skipArchiveConfirm }: UseTaskDnDOptions) {\n const [activeId, setActiveId] = useState<string | null>(null);\n const [initialStatus, setInitialStatus] = useState<Task['status'] | null>(null);\n const [isConfirmOpen, setIsConfirmOpen] = useState(false);\n const [pendingArchiveId, setPendingArchiveId] = useState<string | null>(null);\n\n const sensors = useSensors(\n useSensor(PointerSensor, { activationConstraint: { distance: 5 } }),\n useSensor(KeyboardSensor, { coordinateGetter: sortableKeyboardCoordinates }),\n );\n\n const handleDragStart = useCallback((event: DragStartEvent) => {\n const id = event.active.id as string;\n setActiveId(id);\n const task = tasks.find(t => t.id === id);\n if (task) setInitialStatus(task.status);\n }, [tasks]);\n\n const handleDragOver = useCallback((event: DragOverEvent) => {\n const { active, over } = event;\n if (!over) return;\n\n const dragActiveId = active.id;\n const overId = over.id;\n if (dragActiveId === overId) return;\n\n const activeIndex = tasks.findIndex(t => t.id === dragActiveId);\n const overIndex = tasks.findIndex(t => t.id === overId);\n if (activeIndex === -1) return;\n\n const isOverColumn = overId === 'backlog' || overId === 'in-progress' || overId === 'review' || overId === 'done';\n\n if (!isOverColumn && overIndex >= 0) {\n if (tasks[activeIndex].status !== tasks[overIndex].status) {\n const newItems = [...tasks];\n const newStatus = tasks[overIndex].status;\n newItems[activeIndex] = {\n ...newItems[activeIndex],\n status: newStatus,\n isActive: newStatus === 'in-progress',\n };\n setTasks(arrayMove(newItems, activeIndex, overIndex));\n }\n } else if (isOverColumn) {\n if (tasks[activeIndex].status !== overId) {\n const newItems = [...tasks];\n const newStatus = overId as Task['status'];\n newItems[activeIndex] = {\n ...newItems[activeIndex],\n status: newStatus,\n isActive: newStatus === 'in-progress',\n };\n setTasks(arrayMove(newItems, activeIndex, tasks.length - 1));\n }\n }\n }, [tasks, setTasks]);\n\n const handleDragEnd = useCallback(async (event: DragEndEvent) => {\n const { active, over } = event;\n setActiveId(null);\n\n if (!over) return;\n\n const dragActiveId = active.id as string;\n const overId = over.id as string;\n\n const activeTask = tasks.find(t => t.id === dragActiveId);\n if (!activeTask) return;\n\n if (overId === 'archive') {\n if (skipArchiveConfirm) {\n await onStatusChange(dragActiveId, 'archived');\n } else {\n setPendingArchiveId(dragActiveId);\n setIsConfirmOpen(true);\n }\n setInitialStatus(null);\n return;\n }\n\n const isOverColumn = overId === 'backlog' || overId === 'in-progress' || overId === 'review' || overId === 'done';\n const newStatus = isOverColumn ? (overId as Task['status']) : tasks.find(t => t.id === overId)?.status;\n\n if (newStatus && initialStatus !== newStatus) {\n await onStatusChange(dragActiveId, newStatus);\n }\n\n setInitialStatus(null);\n if (dragActiveId === overId) return;\n\n const activeIndex = tasks.findIndex(t => t.id === dragActiveId);\n const overIndex = tasks.findIndex(t => t.id === overId);\n if (activeIndex === -1) return;\n\n const isOverColumnCheck = overId === 'backlog' || overId === 'in-progress' || overId === 'review' || overId === 'done';\n if (!isOverColumnCheck && overIndex >= 0) {\n if (tasks[activeIndex].status === tasks[overIndex].status) {\n setTasks(arrayMove(tasks, activeIndex, overIndex));\n }\n }\n }, [tasks, setTasks, initialStatus, skipArchiveConfirm, onStatusChange]);\n\n return {\n activeId,\n sensors,\n collisionDetection: closestCenter,\n handleDragStart,\n handleDragOver,\n handleDragEnd,\n isConfirmOpen,\n setIsConfirmOpen,\n pendingArchiveId,\n setPendingArchiveId,\n };\n}\n","import React, { useState, useEffect, useCallback, useMemo } from 'react';\nimport { ListPlus, ArrowRight, ShieldAlert, Layout } from 'lucide-react';\nimport { NavLink } from 'react-router-dom';\nimport { DndContext, DragOverlay } from '@dnd-kit/core';\nimport TaskBoard from '../components/tasks/TaskBoard';\nimport TaskCard from '../components/tasks/TaskCard';\nimport TaskStats from '../components/tasks/TaskStats';\nimport CreateTaskModal from '../components/tasks/CreateTaskModal';\nimport ArchiveZone from '../components/tasks/ArchiveZone';\nimport ConfirmDialog from '../components/ConfirmDialog';\nimport AppErrorBoundary from '../components/AppErrorBoundary';\nimport { useProject } from '../hooks/useProject';\nimport { useNotification } from '../hooks/useNotification';\nimport { useTaskSSE } from '../hooks/useTaskSSE';\nimport { useTaskDnD } from '../hooks/useTaskDnD';\nimport { tasksApi, TaskStatus, type Task as ApiTask } from '../api/tasks';\nimport { cn } from '../lib/cn';\nimport type { Task as ComponentTask } from '../components/tasks/types';\n\nconst TaskManager: React.FC = () => {\n const { activeProject, loading: projectLoading } = useProject();\n const { notifyApiError, notifyError } = useNotification();\n const [isCreateModalOpen, setIsCreateModalOpen] = useState(false);\n const [tasks, setTasks] = useState<ComponentTask[]>([]);\n const [loadingTasks, setLoadingTasks] = useState(false);\n const [refreshKey, setRefreshKey] = useState(0);\n\n const [skipConfirm, setSkipConfirm] = useState(() => {\n return localStorage.getItem('skipArchiveConfirm') === 'true';\n });\n const [checkValue, setCheckValue] = useState(false);\n\n const fetchTasks = useCallback(async () => {\n if (!activeProject) return;\n try {\n setLoadingTasks(true);\n // Fetch all tasks for the project (excluding archived in the backend might be better, \n // but let's just fetch everything and handle it here so the archive column/logic works if needed).\n // Actually, requirement 1: \"Don't fetch tasks that are archived\"\n const allTasksData = await tasksApi.fetchAll(activeProject.id);\n \n const filteredTasks = allTasksData.filter(t => t.status !== 'archived');\n\n const mappedTasks: ComponentTask[] = filteredTasks.map((t) => ({\n id: t.id,\n status: t.status as ComponentTask['status'],\n code: `#TASK-${t.id.substring(0, 4).toUpperCase()}`,\n title: t.title,\n priority: t.priority as ComponentTask['priority'],\n agent: {\n name: t.assignee?.name || 'Unassigned',\n colorClass: 'bg-surface-container-highest border-outline-variant/30'\n },\n isActive: t.status === 'in-progress',\n progress: t.status === 'done' ? 100 : t.status === 'in-progress' ? 50 : 0,\n projectId: activeProject.id,\n updatedAt: t.updatedAt\n }));\n\n // Sort tasks based on requirements:\n // 2. tasks in backlog by priority (lower number = higher priority)\n // 3. tasks in other columns by latest updatedAt (most recent first)\n const sortedTasks = [...mappedTasks].sort((a, b) => {\n if (a.status === 'backlog' && b.status === 'backlog') {\n return (a.priority || 0) - (b.priority || 0);\n }\n if (a.status !== 'backlog' && b.status !== 'backlog') {\n return new Date(b.updatedAt || 0).getTime() - new Date(a.updatedAt || 0).getTime();\n }\n return 0; // Default if in different categories (though they are filtered by column anyway)\n });\n\n setTasks(sortedTasks);\n } catch (error) {\n console.error('Failed to fetch tasks in TaskManager:', error);\n notifyApiError(error, 'Fetch Error');\n } finally {\n setLoadingTasks(false);\n }\n }, [activeProject, notifyApiError]);\n\n useEffect(() => {\n fetchTasks();\n }, [fetchTasks, refreshKey]);\n\n const handleSseUpdate = useCallback((event: string, updatedTaskData: ApiTask) => {\n if (!activeProject || updatedTaskData.projectId !== activeProject.id) return;\n\n const mappedTask: ComponentTask = {\n id: updatedTaskData.id,\n status: updatedTaskData.status as ComponentTask['status'],\n code: `#TASK-${updatedTaskData.id.substring(0, 4).toUpperCase()}`,\n title: updatedTaskData.title,\n priority: updatedTaskData.priority as ComponentTask['priority'],\n agent: {\n name: updatedTaskData.assignee?.name || 'Unassigned',\n colorClass: 'bg-surface-container-highest border-outline-variant/30'\n },\n isActive: updatedTaskData.status === 'in-progress',\n progress: updatedTaskData.status === 'done' ? 100 : updatedTaskData.status === 'in-progress' ? 50 : 0,\n projectId: updatedTaskData.projectId,\n updatedAt: updatedTaskData.updatedAt\n };\n\n setTasks(prevTasks => {\n if (event === 'deleted' || updatedTaskData.status === 'archived') {\n return prevTasks.filter(t => t.id !== updatedTaskData.id);\n }\n \n const exists = prevTasks.some(t => t.id === updatedTaskData.id);\n if (exists) {\n return prevTasks.map(t => t.id === updatedTaskData.id ? mappedTask : t).sort((a, b) => {\n if (a.status === 'backlog' && b.status === 'backlog') {\n return (a.priority || 0) - (b.priority || 0);\n }\n if (a.status !== 'backlog' && b.status !== 'backlog') {\n return new Date(b.updatedAt || 0).getTime() - new Date(a.updatedAt || 0).getTime();\n }\n return 0;\n });\n } else {\n const newTasks = [mappedTask, ...prevTasks];\n return newTasks.sort((a, b) => {\n if (a.status === 'backlog' && b.status === 'backlog') {\n return (a.priority || 0) - (b.priority || 0);\n }\n if (a.status !== 'backlog' && b.status !== 'backlog') {\n return new Date(b.updatedAt || 0).getTime() - new Date(a.updatedAt || 0).getTime();\n }\n return 0;\n });\n }\n });\n }, [activeProject]);\n\n useTaskSSE(activeProject?.id, handleSseUpdate);\n\n const handleTaskCreated = () => {\n // Rely on SSE or keep the fallback\n setRefreshKey(prev => prev + 1);\n };\n\n const handleStatusChange = useCallback(async (taskId: string, newStatus: string) => {\n if (!activeProject) return;\n try {\n await tasksApi.update(activeProject.id, taskId, { status: newStatus as TaskStatus });\n if (newStatus === 'archived') {\n setTasks(prev => prev.filter(t => t.id !== taskId));\n } else {\n setTasks(prev => prev.map(t => t.id === taskId ? { \n ...t, \n status: newStatus as ComponentTask['status'],\n isActive: newStatus === 'in-progress'\n } : t));\n }\n } catch (error) {\n console.error('Failed to update task status:', error);\n notifyError('Status Update Failed', 'Failed to update task status in the neural mesh.');\n fetchTasks();\n }\n }, [activeProject, notifyError, fetchTasks]);\n\n const {\n activeId,\n sensors,\n collisionDetection,\n handleDragStart,\n handleDragOver,\n handleDragEnd,\n isConfirmOpen,\n setIsConfirmOpen,\n pendingArchiveId,\n setPendingArchiveId,\n } = useTaskDnD({ tasks, setTasks, onStatusChange: handleStatusChange, skipArchiveConfirm: skipConfirm });\n\n const confirmArchive = useCallback(async () => {\n if (pendingArchiveId) {\n if (checkValue) {\n localStorage.setItem('skipArchiveConfirm', 'true');\n setSkipConfirm(true);\n }\n await handleStatusChange(pendingArchiveId, 'archived');\n }\n setIsConfirmOpen(false);\n setPendingArchiveId(null);\n }, [pendingArchiveId, checkValue, handleStatusChange, setIsConfirmOpen, setPendingArchiveId]);\n\n const activeTask = useMemo(\n () => tasks.find((task) => task.id === activeId),\n [tasks, activeId],\n );\n\n const taskCounts = useMemo(\n () =>\n tasks.reduce(\n (counts, task) => {\n counts[task.status] += 1;\n return counts;\n },\n {\n backlog: 0,\n 'in-progress': 0,\n review: 0,\n done: 0,\n archived: 0,\n } as Record<ComponentTask['status'], number>,\n ),\n [tasks],\n );\n\n if (projectLoading) {\n return (\n <div className=\"w-full h-[60vh] flex items-center justify-center\">\n <div className=\"flex flex-col items-center gap-4\">\n <div className=\"w-16 h-16 border-4 border-primary border-t-transparent rounded-full animate-spin\"></div>\n <p className=\"text-on-surface-variant text-sm font-black uppercase tracking-[0.3em] animate-pulse\">Initializing Neural Mesh</p>\n </div>\n </div>\n );\n }\n\n if (!activeProject) {\n return (\n <div className=\"w-full h-[60vh] flex items-center justify-center\">\n <div className=\"text-center space-y-6 max-w-md\">\n <div className=\"w-20 h-20 bg-surface-container-highest rounded-3xl flex items-center justify-center text-on-surface-variant/20 mx-auto border border-outline-variant/10 shadow-xl\">\n <Layout size={40} />\n </div>\n <div className=\"space-y-2\">\n <h2 className=\"text-2xl font-black font-headline text-white tracking-tight\">No Active Sectors Found</h2>\n <p className=\"text-on-surface-variant text-sm leading-relaxed\">The orchestration grid is currently offline. Please initialize a new project sector in the sidebar to begin commissioning agentic tasks.</p>\n </div>\n <NavLink \n to=\"/\" \n className=\"inline-flex items-center gap-2 px-8 py-3 bg-primary text-on-primary rounded-xl font-black text-xs uppercase tracking-widest hover:scale-105 active:scale-95 transition-all shadow-lg shadow-primary/20\"\n >\n Go to Dashboard\n <ArrowRight size={16} />\n </NavLink>\n </div>\n </div>\n );\n }\n\n const missingLead = !activeProject.ownerAgent;\n\n const content = (\n <div className=\"space-y-10 animate-in fade-in duration-700\">\n {/* Missing Lead Warning */}\n {missingLead && (\n <div className=\"bg-error/10 border border-error/20 p-4 rounded-2xl flex flex-col md:flex-row items-center justify-between gap-4 animate-in fade-in slide-in-from-top-4 duration-500 shadow-lg shadow-error/5\">\n <div className=\"flex items-center gap-4\">\n <div className=\"w-12 h-12 rounded-2xl bg-error/20 flex items-center justify-center text-error border border-error/30\">\n <ShieldAlert size={24} />\n </div>\n <div>\n <h4 className=\"text-sm font-black text-white uppercase tracking-tight\">Administrative Protocol Warning</h4>\n <p className=\"text-xs text-on-surface-variant max-w-2xl leading-relaxed mt-0.5\">\n The <span className=\"text-error font-bold italic\">\"{activeProject.title}\"</span> sector currently lacks a Designated Lead Agent. \n A lead is required to oversee autonomous task assignment, token allocation, and critical sector operations.\n </p>\n </div>\n </div>\n <NavLink \n to={`/projects/${activeProject.id}`} \n className=\"w-full md:w-auto px-6 py-2.5 rounded-xl bg-error text-on-error text-xs font-black uppercase tracking-widest hover:scale-[1.02] active:scale-[0.98] transition-all whitespace-nowrap text-center shadow-lg shadow-error/20\"\n >\n Assign Protocol Lead\n </NavLink>\n </div>\n )}\n\n {/* Page Header */}\n <div className=\"flex flex-col md:flex-row justify-between items-start md:items-center gap-4\">\n <div>\n <div className=\"flex items-center gap-3 mb-1\">\n <span className=\"text-[10px] font-black uppercase tracking-[0.3em] text-primary/60\">Fleet Command</span>\n <div className=\"h-1 w-1 rounded-full bg-outline-variant/30\" />\n <span className=\"text-[10px] font-black uppercase tracking-[0.3em] text-on-surface-variant/40\">{activeProject.title}</span>\n </div>\n <h1 className=\"text-4xl font-extrabold font-headline tracking-tight text-white\">Agentic Task Canvas</h1>\n <p className=\"text-outline text-sm mt-1\">\n Orchestrating <span className=\"text-primary font-bold\">{tasks.length}</span> parallel node operations\n </p>\n </div>\n \n <div className=\"flex-1 flex items-center justify-end gap-6 max-w-4xl\">\n <ArchiveZone isDragging={!!activeId} />\n <button \n onClick={() => setIsCreateModalOpen(true)}\n className=\"bg-primary hover:bg-primary/90 text-on-primary px-8 py-3.5 rounded-2xl flex items-center gap-2 font-black text-xs uppercase tracking-widest transition-all shadow-lg shadow-primary/20 hover:scale-[1.02] active:scale-[0.98] whitespace-nowrap\"\n >\n <ListPlus size={18} />\n Commission Task\n </button>\n </div>\n </div>\n\n <CreateTaskModal \n isOpen={isCreateModalOpen} \n onClose={() => setIsCreateModalOpen(false)} \n onCreated={handleTaskCreated}\n />\n\n {/* Kanban Board */}\n <AppErrorBoundary\n title=\"Unable to render task board\"\n description=\"The Kanban board hit an unexpected error. You can still use the rest of Task Manager while retrying this section.\"\n >\n <section\n aria-label=\"Task board panel\"\n aria-busy={loadingTasks}\n className={cn('space-y-4', loadingTasks && tasks.length === 0 && 'min-h-96')}\n >\n {loadingTasks && tasks.length === 0 ? (\n <div className=\"flex h-96 w-full items-center justify-center\">\n <div className=\"h-12 w-12 animate-spin rounded-full border-4 border-outline-variant/30 border-t-primary\" />\n </div>\n ) : (\n <TaskBoard tasks={tasks} />\n )}\n </section>\n </AppErrorBoundary>\n\n <TaskStats tasks={tasks} taskCounts={taskCounts} projectTitle={activeProject.title} />\n </div>\n );\n\n return (\n <DndContext \n sensors={sensors} \n collisionDetection={collisionDetection} \n onDragStart={handleDragStart} \n onDragOver={handleDragOver} \n onDragEnd={handleDragEnd}\n >\n {content}\n \n <DragOverlay>\n {activeTask ? <TaskCard task={activeTask} isOverlay /> : null}\n </DragOverlay>\n\n <ConfirmDialog\n isOpen={isConfirmOpen}\n onClose={() => setIsConfirmOpen(false)}\n onConfirm={confirmArchive}\n title=\"Archive Protocol Task\"\n message=\"Are you sure you want to transfer this task to the archival sector? This operation will remove the task node from the active grid.\"\n confirmText=\"Archive Task\"\n variant=\"warning\"\n showCheckbox\n onCheckboxChange={setCheckValue}\n />\n </DndContext>\n );\n};\n\nexport default TaskManager;\n"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,15,16],"mappings":"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"}
@@ -1 +1 @@
1
- import{s as e}from"./useNotification-nXJIHD_q.js";var t=e(`activity`,[[`path`,{d:`M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2`,key:`169zse`}]]);export{t};
1
+ import{o as e}from"./useNotification-DK-pV16c.js";var t=e(`activity`,[[`path`,{d:`M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2`,key:`169zse`}]]);export{t};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"activity-CIlCK2jL.js","names":[],"sources":["../../node_modules/lucide-react/dist/esm/icons/activity.js"],"sourcesContent":["/**\n * @license lucide-react v0.577.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2\",\n key: \"169zse\"\n }\n ]\n];\nconst Activity = createLucideIcon(\"activity\", __iconNode);\n\nexport { __iconNode, Activity as default };\n//# sourceMappingURL=activity.js.map\n"],"x_google_ignoreList":[0],"mappings":"kDAkBA,IAAM,EAAW,EAAiB,WATf,CACjB,CACE,OACA,CACE,EAAG,6HACH,IAAK,SACN,CACF,CACF,CACwD"}
@@ -1 +1 @@
1
- import{s as e}from"./useNotification-nXJIHD_q.js";var t=e(`brain`,[[`path`,{d:`M12 18V5`,key:`adv99a`}],[`path`,{d:`M15 13a4.17 4.17 0 0 1-3-4 4.17 4.17 0 0 1-3 4`,key:`1e3is1`}],[`path`,{d:`M17.598 6.5A3 3 0 1 0 12 5a3 3 0 1 0-5.598 1.5`,key:`1gqd8o`}],[`path`,{d:`M17.997 5.125a4 4 0 0 1 2.526 5.77`,key:`iwvgf7`}],[`path`,{d:`M18 18a4 4 0 0 0 2-7.464`,key:`efp6ie`}],[`path`,{d:`M19.967 17.483A4 4 0 1 1 12 18a4 4 0 1 1-7.967-.517`,key:`1gq6am`}],[`path`,{d:`M6 18a4 4 0 0 1-2-7.464`,key:`k1g0md`}],[`path`,{d:`M6.003 5.125a4 4 0 0 0-2.526 5.77`,key:`q97ue3`}]]);export{t};
1
+ import{o as e}from"./useNotification-DK-pV16c.js";var t=e(`brain`,[[`path`,{d:`M12 18V5`,key:`adv99a`}],[`path`,{d:`M15 13a4.17 4.17 0 0 1-3-4 4.17 4.17 0 0 1-3 4`,key:`1e3is1`}],[`path`,{d:`M17.598 6.5A3 3 0 1 0 12 5a3 3 0 1 0-5.598 1.5`,key:`1gqd8o`}],[`path`,{d:`M17.997 5.125a4 4 0 0 1 2.526 5.77`,key:`iwvgf7`}],[`path`,{d:`M18 18a4 4 0 0 0 2-7.464`,key:`efp6ie`}],[`path`,{d:`M19.967 17.483A4 4 0 1 1 12 18a4 4 0 1 1-7.967-.517`,key:`1gq6am`}],[`path`,{d:`M6 18a4 4 0 0 1-2-7.464`,key:`k1g0md`}],[`path`,{d:`M6.003 5.125a4 4 0 0 0-2.526 5.77`,key:`q97ue3`}]]);export{t};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brain-_N041Xks.js","names":[],"sources":["../../node_modules/lucide-react/dist/esm/icons/brain.js"],"sourcesContent":["/**\n * @license lucide-react v0.577.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M12 18V5\", key: \"adv99a\" }],\n [\"path\", { d: \"M15 13a4.17 4.17 0 0 1-3-4 4.17 4.17 0 0 1-3 4\", key: \"1e3is1\" }],\n [\"path\", { d: \"M17.598 6.5A3 3 0 1 0 12 5a3 3 0 1 0-5.598 1.5\", key: \"1gqd8o\" }],\n [\"path\", { d: \"M17.997 5.125a4 4 0 0 1 2.526 5.77\", key: \"iwvgf7\" }],\n [\"path\", { d: \"M18 18a4 4 0 0 0 2-7.464\", key: \"efp6ie\" }],\n [\"path\", { d: \"M19.967 17.483A4 4 0 1 1 12 18a4 4 0 1 1-7.967-.517\", key: \"1gq6am\" }],\n [\"path\", { d: \"M6 18a4 4 0 0 1-2-7.464\", key: \"k1g0md\" }],\n [\"path\", { d: \"M6.003 5.125a4 4 0 0 0-2.526 5.77\", key: \"q97ue3\" }]\n];\nconst Brain = createLucideIcon(\"brain\", __iconNode);\n\nexport { __iconNode, Brain as default };\n//# sourceMappingURL=brain.js.map\n"],"x_google_ignoreList":[0],"mappings":"kDAmBA,IAAM,EAAQ,EAAiB,QAVZ,CACjB,CAAC,OAAQ,CAAE,EAAG,WAAY,IAAK,SAAU,CAAC,CAC1C,CAAC,OAAQ,CAAE,EAAG,iDAAkD,IAAK,SAAU,CAAC,CAChF,CAAC,OAAQ,CAAE,EAAG,iDAAkD,IAAK,SAAU,CAAC,CAChF,CAAC,OAAQ,CAAE,EAAG,qCAAsC,IAAK,SAAU,CAAC,CACpE,CAAC,OAAQ,CAAE,EAAG,2BAA4B,IAAK,SAAU,CAAC,CAC1D,CAAC,OAAQ,CAAE,EAAG,sDAAuD,IAAK,SAAU,CAAC,CACrF,CAAC,OAAQ,CAAE,EAAG,0BAA2B,IAAK,SAAU,CAAC,CACzD,CAAC,OAAQ,CAAE,EAAG,oCAAqC,IAAK,SAAU,CAAC,CACpE,CACkD"}
@@ -0,0 +1 @@
1
+ import{o as e}from"./useNotification-DK-pV16c.js";var t=e(`check`,[[`path`,{d:`M20 6 9 17l-5-5`,key:`1gmf2c`}]]);export{t};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-DgCfni6J.js","names":[],"sources":["../../node_modules/lucide-react/dist/esm/icons/check.js"],"sourcesContent":["/**\n * @license lucide-react v0.577.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [[\"path\", { d: \"M20 6 9 17l-5-5\", key: \"1gmf2c\" }]];\nconst Check = createLucideIcon(\"check\", __iconNode);\n\nexport { __iconNode, Check as default };\n//# sourceMappingURL=check.js.map\n"],"x_google_ignoreList":[0],"mappings":"kDAUA,IAAM,EAAQ,EAAiB,QADZ,CAAC,CAAC,OAAQ,CAAE,EAAG,kBAAmB,IAAK,SAAU,CAAC,CAAC,CACnB"}
@@ -0,0 +1 @@
1
+ import{o as e}from"./useNotification-DK-pV16c.js";var t=e(`clock`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 6v6l4 2`,key:`mmk7yg`}]]);export{t};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clock-C0d1RzP_.js","names":[],"sources":["../../node_modules/lucide-react/dist/esm/icons/clock.js"],"sourcesContent":["/**\n * @license lucide-react v0.577.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\n [\"path\", { d: \"M12 6v6l4 2\", key: \"mmk7yg\" }]\n];\nconst Clock = createLucideIcon(\"clock\", __iconNode);\n\nexport { __iconNode, Clock as default };\n//# sourceMappingURL=clock.js.map\n"],"x_google_ignoreList":[0],"mappings":"kDAaA,IAAM,EAAQ,EAAiB,QAJZ,CACjB,CAAC,SAAU,CAAE,GAAI,KAAM,GAAI,KAAM,EAAG,KAAM,IAAK,SAAU,CAAC,CAC1D,CAAC,OAAQ,CAAE,EAAG,cAAe,IAAK,SAAU,CAAC,CAC9C,CACkD"}
@@ -0,0 +1 @@
1
+ function e(t){var n,r,i=``;if(typeof t==`string`||typeof t==`number`)i+=t;else if(typeof t==`object`)if(Array.isArray(t)){var a=t.length;for(n=0;n<a;n++)t[n]&&(r=e(t[n]))&&(i&&(i+=` `),i+=r)}else for(r in t)t[r]&&(i&&(i+=` `),i+=r);return i}function t(){for(var t,n,r=0,i=``,a=arguments.length;r<a;r++)(t=arguments[r])&&(n=e(t))&&(i&&(i+=` `),i+=n);return i}var n=(e,t)=>{let n=Array(e.length+t.length);for(let t=0;t<e.length;t++)n[t]=e[t];for(let r=0;r<t.length;r++)n[e.length+r]=t[r];return n},r=(e,t)=>({classGroupId:e,validator:t}),i=(e=new Map,t=null,n)=>({nextPart:e,validators:t,classGroupId:n}),a=`-`,o=[],s=`arbitrary..`,c=e=>{let t=ee(e),{conflictingClassGroups:r,conflictingClassGroupModifiers:i}=e;return{getClassGroupId:e=>{if(e.startsWith(`[`)&&e.endsWith(`]`))return u(e);let n=e.split(a);return l(n,n[0]===``&&n.length>1?1:0,t)},getConflictingClassGroupIds:(e,t)=>{if(t){let t=i[e],a=r[e];return t?a?n(a,t):t:a||o}return r[e]||o}}},l=(e,t,n)=>{if(e.length-t===0)return n.classGroupId;let r=e[t],i=n.nextPart.get(r);if(i){let n=l(e,t+1,i);if(n)return n}let o=n.validators;if(o===null)return;let s=t===0?e.join(a):e.slice(t).join(a),c=o.length;for(let e=0;e<c;e++){let t=o[e];if(t.validator(s))return t.classGroupId}},u=e=>e.slice(1,-1).indexOf(`:`)===-1?void 0:(()=>{let t=e.slice(1,-1),n=t.indexOf(`:`),r=t.slice(0,n);return r?s+r:void 0})(),ee=e=>{let{theme:t,classGroups:n}=e;return d(n,t)},d=(e,t)=>{let n=i();for(let r in e){let i=e[r];f(i,n,r,t)}return n},f=(e,t,n,r)=>{let i=e.length;for(let a=0;a<i;a++){let i=e[a];p(i,t,n,r)}},p=(e,t,n,r)=>{if(typeof e==`string`){m(e,t,n);return}if(typeof e==`function`){h(e,t,n,r);return}g(e,t,n,r)},m=(e,t,n)=>{let r=e===``?t:_(t,e);r.classGroupId=n},h=(e,t,n,i)=>{if(v(e)){f(e(i),t,n,i);return}t.validators===null&&(t.validators=[]),t.validators.push(r(n,e))},g=(e,t,n,r)=>{let i=Object.entries(e),a=i.length;for(let e=0;e<a;e++){let[a,o]=i[e];f(o,_(t,a),n,r)}},_=(e,t)=>{let n=e,r=t.split(a),o=r.length;for(let e=0;e<o;e++){let t=r[e],a=n.nextPart.get(t);a||(a=i(),n.nextPart.set(t,a)),n=a}return n},v=e=>`isThemeGetter`in e&&e.isThemeGetter===!0,y=e=>{if(e<1)return{get:()=>void 0,set:()=>{}};let t=0,n=Object.create(null),r=Object.create(null),i=(i,a)=>{n[i]=a,t++,t>e&&(t=0,r=n,n=Object.create(null))};return{get(e){let t=n[e];if(t!==void 0)return t;if((t=r[e])!==void 0)return i(e,t),t},set(e,t){e in n?n[e]=t:i(e,t)}}},b=`!`,x=`:`,S=[],C=(e,t,n,r,i)=>({modifiers:e,hasImportantModifier:t,baseClassName:n,maybePostfixModifierPosition:r,isExternal:i}),w=e=>{let{prefix:t,experimentalParseClassName:n}=e,r=e=>{let t=[],n=0,r=0,i=0,a,o=e.length;for(let s=0;s<o;s++){let o=e[s];if(n===0&&r===0){if(o===x){t.push(e.slice(i,s)),i=s+1;continue}if(o===`/`){a=s;continue}}o===`[`?n++:o===`]`?n--:o===`(`?r++:o===`)`&&r--}let s=t.length===0?e:e.slice(i),c=s,l=!1;s.endsWith(b)?(c=s.slice(0,-1),l=!0):s.startsWith(b)&&(c=s.slice(1),l=!0);let u=a&&a>i?a-i:void 0;return C(t,l,c,u)};if(t){let e=t+x,n=r;r=t=>t.startsWith(e)?n(t.slice(e.length)):C(S,!1,t,void 0,!0)}if(n){let e=r;r=t=>n({className:t,parseClassName:e})}return r},te=e=>{let t=new Map;return e.orderSensitiveModifiers.forEach((e,n)=>{t.set(e,1e6+n)}),e=>{let n=[],r=[];for(let i=0;i<e.length;i++){let a=e[i],o=a[0]===`[`,s=t.has(a);o||s?(r.length>0&&(r.sort(),n.push(...r),r=[]),n.push(a)):r.push(a)}return r.length>0&&(r.sort(),n.push(...r)),n}},ne=e=>({cache:y(e.cacheSize),parseClassName:w(e),sortModifiers:te(e),...c(e)}),T=/\s+/,re=(e,t)=>{let{parseClassName:n,getClassGroupId:r,getConflictingClassGroupIds:i,sortModifiers:a}=t,o=[],s=e.trim().split(T),c=``;for(let e=s.length-1;e>=0;--e){let t=s[e],{isExternal:l,modifiers:u,hasImportantModifier:ee,baseClassName:d,maybePostfixModifierPosition:f}=n(t);if(l){c=t+(c.length>0?` `+c:c);continue}let p=!!f,m=r(p?d.substring(0,f):d);if(!m){if(!p){c=t+(c.length>0?` `+c:c);continue}if(m=r(d),!m){c=t+(c.length>0?` `+c:c);continue}p=!1}let h=u.length===0?``:u.length===1?u[0]:a(u).join(`:`),g=ee?h+b:h,_=g+m;if(o.indexOf(_)>-1)continue;o.push(_);let v=i(m,p);for(let e=0;e<v.length;++e){let t=v[e];o.push(g+t)}c=t+(c.length>0?` `+c:c)}return c},E=(...e)=>{let t=0,n,r,i=``;for(;t<e.length;)(n=e[t++])&&(r=D(n))&&(i&&(i+=` `),i+=r);return i},D=e=>{if(typeof e==`string`)return e;let t,n=``;for(let r=0;r<e.length;r++)e[r]&&(t=D(e[r]))&&(n&&(n+=` `),n+=t);return n},O=(e,...t)=>{let n,r,i,a,o=o=>(n=ne(t.reduce((e,t)=>t(e),e())),r=n.cache.get,i=n.cache.set,a=s,s(o)),s=e=>{let t=r(e);if(t)return t;let a=re(e,n);return i(e,a),a};return a=o,(...e)=>a(E(...e))},k=[],A=e=>{let t=t=>t[e]||k;return t.isThemeGetter=!0,t},j=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,M=/^\((?:(\w[\w-]*):)?(.+)\)$/i,N=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,ie=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,ae=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,oe=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,P=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,F=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,I=e=>N.test(e),L=e=>!!e&&!Number.isNaN(Number(e)),R=e=>!!e&&Number.isInteger(Number(e)),se=e=>e.endsWith(`%`)&&L(e.slice(0,-1)),z=e=>ie.test(e),ce=()=>!0,B=e=>ae.test(e)&&!oe.test(e),V=()=>!1,le=e=>P.test(e),H=e=>F.test(e),ue=e=>!U(e)&&!K(e),de=e=>Y(e,$,V),U=e=>j.test(e),W=e=>Y(e,Se,B),fe=e=>Y(e,Ce,L),pe=e=>Y(e,Te,ce),me=e=>Y(e,we,V),he=e=>Y(e,Z,V),ge=e=>Y(e,Q,H),G=e=>Y(e,Ee,le),K=e=>M.test(e),q=e=>X(e,Se),_e=e=>X(e,we),ve=e=>X(e,Z),ye=e=>X(e,$),be=e=>X(e,Q),J=e=>X(e,Ee,!0),xe=e=>X(e,Te,!0),Y=(e,t,n)=>{let r=j.exec(e);return r?r[1]?t(r[1]):n(r[2]):!1},X=(e,t,n=!1)=>{let r=M.exec(e);return r?r[1]?t(r[1]):n:!1},Z=e=>e===`position`||e===`percentage`,Q=e=>e===`image`||e===`url`,$=e=>e===`length`||e===`size`||e===`bg-size`,Se=e=>e===`length`,Ce=e=>e===`number`,we=e=>e===`family-name`,Te=e=>e===`number`||e===`weight`,Ee=e=>e===`shadow`,De=O(()=>{let e=A(`color`),t=A(`font`),n=A(`text`),r=A(`font-weight`),i=A(`tracking`),a=A(`leading`),o=A(`breakpoint`),s=A(`container`),c=A(`spacing`),l=A(`radius`),u=A(`shadow`),ee=A(`inset-shadow`),d=A(`text-shadow`),f=A(`drop-shadow`),p=A(`blur`),m=A(`perspective`),h=A(`aspect`),g=A(`ease`),_=A(`animate`),v=()=>[`auto`,`avoid`,`all`,`avoid-page`,`page`,`left`,`right`,`column`],y=()=>[`center`,`top`,`bottom`,`left`,`right`,`top-left`,`left-top`,`top-right`,`right-top`,`bottom-right`,`right-bottom`,`bottom-left`,`left-bottom`],b=()=>[...y(),K,U],x=()=>[`auto`,`hidden`,`clip`,`visible`,`scroll`],S=()=>[`auto`,`contain`,`none`],C=()=>[K,U,c],w=()=>[I,`full`,`auto`,...C()],te=()=>[R,`none`,`subgrid`,K,U],ne=()=>[`auto`,{span:[`full`,R,K,U]},R,K,U],T=()=>[R,`auto`,K,U],re=()=>[`auto`,`min`,`max`,`fr`,K,U],E=()=>[`start`,`end`,`center`,`between`,`around`,`evenly`,`stretch`,`baseline`,`center-safe`,`end-safe`],D=()=>[`start`,`end`,`center`,`stretch`,`center-safe`,`end-safe`],O=()=>[`auto`,...C()],k=()=>[I,`auto`,`full`,`dvw`,`dvh`,`lvw`,`lvh`,`svw`,`svh`,`min`,`max`,`fit`,...C()],j=()=>[I,`screen`,`full`,`dvw`,`lvw`,`svw`,`min`,`max`,`fit`,...C()],M=()=>[I,`screen`,`full`,`lh`,`dvh`,`lvh`,`svh`,`min`,`max`,`fit`,...C()],N=()=>[e,K,U],ie=()=>[...y(),ve,he,{position:[K,U]}],ae=()=>[`no-repeat`,{repeat:[``,`x`,`y`,`space`,`round`]}],oe=()=>[`auto`,`cover`,`contain`,ye,de,{size:[K,U]}],P=()=>[se,q,W],F=()=>[``,`none`,`full`,l,K,U],B=()=>[``,L,q,W],V=()=>[`solid`,`dashed`,`dotted`,`double`],le=()=>[`normal`,`multiply`,`screen`,`overlay`,`darken`,`lighten`,`color-dodge`,`color-burn`,`hard-light`,`soft-light`,`difference`,`exclusion`,`hue`,`saturation`,`color`,`luminosity`],H=()=>[L,se,ve,he],Y=()=>[``,`none`,p,K,U],X=()=>[`none`,L,K,U],Z=()=>[`none`,L,K,U],Q=()=>[L,K,U],$=()=>[I,`full`,...C()];return{cacheSize:500,theme:{animate:[`spin`,`ping`,`pulse`,`bounce`],aspect:[`video`],blur:[z],breakpoint:[z],color:[ce],container:[z],"drop-shadow":[z],ease:[`in`,`out`,`in-out`],font:[ue],"font-weight":[`thin`,`extralight`,`light`,`normal`,`medium`,`semibold`,`bold`,`extrabold`,`black`],"inset-shadow":[z],leading:[`none`,`tight`,`snug`,`normal`,`relaxed`,`loose`],perspective:[`dramatic`,`near`,`normal`,`midrange`,`distant`,`none`],radius:[z],shadow:[z],spacing:[`px`,L],text:[z],"text-shadow":[z],tracking:[`tighter`,`tight`,`normal`,`wide`,`wider`,`widest`]},classGroups:{aspect:[{aspect:[`auto`,`square`,I,U,K,h]}],container:[`container`],columns:[{columns:[L,U,K,s]}],"break-after":[{"break-after":v()}],"break-before":[{"break-before":v()}],"break-inside":[{"break-inside":[`auto`,`avoid`,`avoid-page`,`avoid-column`]}],"box-decoration":[{"box-decoration":[`slice`,`clone`]}],box:[{box:[`border`,`content`]}],display:[`block`,`inline-block`,`inline`,`flex`,`inline-flex`,`table`,`inline-table`,`table-caption`,`table-cell`,`table-column`,`table-column-group`,`table-footer-group`,`table-header-group`,`table-row-group`,`table-row`,`flow-root`,`grid`,`inline-grid`,`contents`,`list-item`,`hidden`],sr:[`sr-only`,`not-sr-only`],float:[{float:[`right`,`left`,`none`,`start`,`end`]}],clear:[{clear:[`left`,`right`,`both`,`none`,`start`,`end`]}],isolation:[`isolate`,`isolation-auto`],"object-fit":[{object:[`contain`,`cover`,`fill`,`none`,`scale-down`]}],"object-position":[{object:b()}],overflow:[{overflow:x()}],"overflow-x":[{"overflow-x":x()}],"overflow-y":[{"overflow-y":x()}],overscroll:[{overscroll:S()}],"overscroll-x":[{"overscroll-x":S()}],"overscroll-y":[{"overscroll-y":S()}],position:[`static`,`fixed`,`absolute`,`relative`,`sticky`],inset:[{inset:w()}],"inset-x":[{"inset-x":w()}],"inset-y":[{"inset-y":w()}],start:[{"inset-s":w(),start:w()}],end:[{"inset-e":w(),end:w()}],"inset-bs":[{"inset-bs":w()}],"inset-be":[{"inset-be":w()}],top:[{top:w()}],right:[{right:w()}],bottom:[{bottom:w()}],left:[{left:w()}],visibility:[`visible`,`invisible`,`collapse`],z:[{z:[R,`auto`,K,U]}],basis:[{basis:[I,`full`,`auto`,s,...C()]}],"flex-direction":[{flex:[`row`,`row-reverse`,`col`,`col-reverse`]}],"flex-wrap":[{flex:[`nowrap`,`wrap`,`wrap-reverse`]}],flex:[{flex:[L,I,`auto`,`initial`,`none`,U]}],grow:[{grow:[``,L,K,U]}],shrink:[{shrink:[``,L,K,U]}],order:[{order:[R,`first`,`last`,`none`,K,U]}],"grid-cols":[{"grid-cols":te()}],"col-start-end":[{col:ne()}],"col-start":[{"col-start":T()}],"col-end":[{"col-end":T()}],"grid-rows":[{"grid-rows":te()}],"row-start-end":[{row:ne()}],"row-start":[{"row-start":T()}],"row-end":[{"row-end":T()}],"grid-flow":[{"grid-flow":[`row`,`col`,`dense`,`row-dense`,`col-dense`]}],"auto-cols":[{"auto-cols":re()}],"auto-rows":[{"auto-rows":re()}],gap:[{gap:C()}],"gap-x":[{"gap-x":C()}],"gap-y":[{"gap-y":C()}],"justify-content":[{justify:[...E(),`normal`]}],"justify-items":[{"justify-items":[...D(),`normal`]}],"justify-self":[{"justify-self":[`auto`,...D()]}],"align-content":[{content:[`normal`,...E()]}],"align-items":[{items:[...D(),{baseline:[``,`last`]}]}],"align-self":[{self:[`auto`,...D(),{baseline:[``,`last`]}]}],"place-content":[{"place-content":E()}],"place-items":[{"place-items":[...D(),`baseline`]}],"place-self":[{"place-self":[`auto`,...D()]}],p:[{p:C()}],px:[{px:C()}],py:[{py:C()}],ps:[{ps:C()}],pe:[{pe:C()}],pbs:[{pbs:C()}],pbe:[{pbe:C()}],pt:[{pt:C()}],pr:[{pr:C()}],pb:[{pb:C()}],pl:[{pl:C()}],m:[{m:O()}],mx:[{mx:O()}],my:[{my:O()}],ms:[{ms:O()}],me:[{me:O()}],mbs:[{mbs:O()}],mbe:[{mbe:O()}],mt:[{mt:O()}],mr:[{mr:O()}],mb:[{mb:O()}],ml:[{ml:O()}],"space-x":[{"space-x":C()}],"space-x-reverse":[`space-x-reverse`],"space-y":[{"space-y":C()}],"space-y-reverse":[`space-y-reverse`],size:[{size:k()}],"inline-size":[{inline:[`auto`,...j()]}],"min-inline-size":[{"min-inline":[`auto`,...j()]}],"max-inline-size":[{"max-inline":[`none`,...j()]}],"block-size":[{block:[`auto`,...M()]}],"min-block-size":[{"min-block":[`auto`,...M()]}],"max-block-size":[{"max-block":[`none`,...M()]}],w:[{w:[s,`screen`,...k()]}],"min-w":[{"min-w":[s,`screen`,`none`,...k()]}],"max-w":[{"max-w":[s,`screen`,`none`,`prose`,{screen:[o]},...k()]}],h:[{h:[`screen`,`lh`,...k()]}],"min-h":[{"min-h":[`screen`,`lh`,`none`,...k()]}],"max-h":[{"max-h":[`screen`,`lh`,...k()]}],"font-size":[{text:[`base`,n,q,W]}],"font-smoothing":[`antialiased`,`subpixel-antialiased`],"font-style":[`italic`,`not-italic`],"font-weight":[{font:[r,xe,pe]}],"font-stretch":[{"font-stretch":[`ultra-condensed`,`extra-condensed`,`condensed`,`semi-condensed`,`normal`,`semi-expanded`,`expanded`,`extra-expanded`,`ultra-expanded`,se,U]}],"font-family":[{font:[_e,me,t]}],"font-features":[{"font-features":[U]}],"fvn-normal":[`normal-nums`],"fvn-ordinal":[`ordinal`],"fvn-slashed-zero":[`slashed-zero`],"fvn-figure":[`lining-nums`,`oldstyle-nums`],"fvn-spacing":[`proportional-nums`,`tabular-nums`],"fvn-fraction":[`diagonal-fractions`,`stacked-fractions`],tracking:[{tracking:[i,K,U]}],"line-clamp":[{"line-clamp":[L,`none`,K,fe]}],leading:[{leading:[a,...C()]}],"list-image":[{"list-image":[`none`,K,U]}],"list-style-position":[{list:[`inside`,`outside`]}],"list-style-type":[{list:[`disc`,`decimal`,`none`,K,U]}],"text-alignment":[{text:[`left`,`center`,`right`,`justify`,`start`,`end`]}],"placeholder-color":[{placeholder:N()}],"text-color":[{text:N()}],"text-decoration":[`underline`,`overline`,`line-through`,`no-underline`],"text-decoration-style":[{decoration:[...V(),`wavy`]}],"text-decoration-thickness":[{decoration:[L,`from-font`,`auto`,K,W]}],"text-decoration-color":[{decoration:N()}],"underline-offset":[{"underline-offset":[L,`auto`,K,U]}],"text-transform":[`uppercase`,`lowercase`,`capitalize`,`normal-case`],"text-overflow":[`truncate`,`text-ellipsis`,`text-clip`],"text-wrap":[{text:[`wrap`,`nowrap`,`balance`,`pretty`]}],indent:[{indent:C()}],"vertical-align":[{align:[`baseline`,`top`,`middle`,`bottom`,`text-top`,`text-bottom`,`sub`,`super`,K,U]}],whitespace:[{whitespace:[`normal`,`nowrap`,`pre`,`pre-line`,`pre-wrap`,`break-spaces`]}],break:[{break:[`normal`,`words`,`all`,`keep`]}],wrap:[{wrap:[`break-word`,`anywhere`,`normal`]}],hyphens:[{hyphens:[`none`,`manual`,`auto`]}],content:[{content:[`none`,K,U]}],"bg-attachment":[{bg:[`fixed`,`local`,`scroll`]}],"bg-clip":[{"bg-clip":[`border`,`padding`,`content`,`text`]}],"bg-origin":[{"bg-origin":[`border`,`padding`,`content`]}],"bg-position":[{bg:ie()}],"bg-repeat":[{bg:ae()}],"bg-size":[{bg:oe()}],"bg-image":[{bg:[`none`,{linear:[{to:[`t`,`tr`,`r`,`br`,`b`,`bl`,`l`,`tl`]},R,K,U],radial:[``,K,U],conic:[R,K,U]},be,ge]}],"bg-color":[{bg:N()}],"gradient-from-pos":[{from:P()}],"gradient-via-pos":[{via:P()}],"gradient-to-pos":[{to:P()}],"gradient-from":[{from:N()}],"gradient-via":[{via:N()}],"gradient-to":[{to:N()}],rounded:[{rounded:F()}],"rounded-s":[{"rounded-s":F()}],"rounded-e":[{"rounded-e":F()}],"rounded-t":[{"rounded-t":F()}],"rounded-r":[{"rounded-r":F()}],"rounded-b":[{"rounded-b":F()}],"rounded-l":[{"rounded-l":F()}],"rounded-ss":[{"rounded-ss":F()}],"rounded-se":[{"rounded-se":F()}],"rounded-ee":[{"rounded-ee":F()}],"rounded-es":[{"rounded-es":F()}],"rounded-tl":[{"rounded-tl":F()}],"rounded-tr":[{"rounded-tr":F()}],"rounded-br":[{"rounded-br":F()}],"rounded-bl":[{"rounded-bl":F()}],"border-w":[{border:B()}],"border-w-x":[{"border-x":B()}],"border-w-y":[{"border-y":B()}],"border-w-s":[{"border-s":B()}],"border-w-e":[{"border-e":B()}],"border-w-bs":[{"border-bs":B()}],"border-w-be":[{"border-be":B()}],"border-w-t":[{"border-t":B()}],"border-w-r":[{"border-r":B()}],"border-w-b":[{"border-b":B()}],"border-w-l":[{"border-l":B()}],"divide-x":[{"divide-x":B()}],"divide-x-reverse":[`divide-x-reverse`],"divide-y":[{"divide-y":B()}],"divide-y-reverse":[`divide-y-reverse`],"border-style":[{border:[...V(),`hidden`,`none`]}],"divide-style":[{divide:[...V(),`hidden`,`none`]}],"border-color":[{border:N()}],"border-color-x":[{"border-x":N()}],"border-color-y":[{"border-y":N()}],"border-color-s":[{"border-s":N()}],"border-color-e":[{"border-e":N()}],"border-color-bs":[{"border-bs":N()}],"border-color-be":[{"border-be":N()}],"border-color-t":[{"border-t":N()}],"border-color-r":[{"border-r":N()}],"border-color-b":[{"border-b":N()}],"border-color-l":[{"border-l":N()}],"divide-color":[{divide:N()}],"outline-style":[{outline:[...V(),`none`,`hidden`]}],"outline-offset":[{"outline-offset":[L,K,U]}],"outline-w":[{outline:[``,L,q,W]}],"outline-color":[{outline:N()}],shadow:[{shadow:[``,`none`,u,J,G]}],"shadow-color":[{shadow:N()}],"inset-shadow":[{"inset-shadow":[`none`,ee,J,G]}],"inset-shadow-color":[{"inset-shadow":N()}],"ring-w":[{ring:B()}],"ring-w-inset":[`ring-inset`],"ring-color":[{ring:N()}],"ring-offset-w":[{"ring-offset":[L,W]}],"ring-offset-color":[{"ring-offset":N()}],"inset-ring-w":[{"inset-ring":B()}],"inset-ring-color":[{"inset-ring":N()}],"text-shadow":[{"text-shadow":[`none`,d,J,G]}],"text-shadow-color":[{"text-shadow":N()}],opacity:[{opacity:[L,K,U]}],"mix-blend":[{"mix-blend":[...le(),`plus-darker`,`plus-lighter`]}],"bg-blend":[{"bg-blend":le()}],"mask-clip":[{"mask-clip":[`border`,`padding`,`content`,`fill`,`stroke`,`view`]},`mask-no-clip`],"mask-composite":[{mask:[`add`,`subtract`,`intersect`,`exclude`]}],"mask-image-linear-pos":[{"mask-linear":[L]}],"mask-image-linear-from-pos":[{"mask-linear-from":H()}],"mask-image-linear-to-pos":[{"mask-linear-to":H()}],"mask-image-linear-from-color":[{"mask-linear-from":N()}],"mask-image-linear-to-color":[{"mask-linear-to":N()}],"mask-image-t-from-pos":[{"mask-t-from":H()}],"mask-image-t-to-pos":[{"mask-t-to":H()}],"mask-image-t-from-color":[{"mask-t-from":N()}],"mask-image-t-to-color":[{"mask-t-to":N()}],"mask-image-r-from-pos":[{"mask-r-from":H()}],"mask-image-r-to-pos":[{"mask-r-to":H()}],"mask-image-r-from-color":[{"mask-r-from":N()}],"mask-image-r-to-color":[{"mask-r-to":N()}],"mask-image-b-from-pos":[{"mask-b-from":H()}],"mask-image-b-to-pos":[{"mask-b-to":H()}],"mask-image-b-from-color":[{"mask-b-from":N()}],"mask-image-b-to-color":[{"mask-b-to":N()}],"mask-image-l-from-pos":[{"mask-l-from":H()}],"mask-image-l-to-pos":[{"mask-l-to":H()}],"mask-image-l-from-color":[{"mask-l-from":N()}],"mask-image-l-to-color":[{"mask-l-to":N()}],"mask-image-x-from-pos":[{"mask-x-from":H()}],"mask-image-x-to-pos":[{"mask-x-to":H()}],"mask-image-x-from-color":[{"mask-x-from":N()}],"mask-image-x-to-color":[{"mask-x-to":N()}],"mask-image-y-from-pos":[{"mask-y-from":H()}],"mask-image-y-to-pos":[{"mask-y-to":H()}],"mask-image-y-from-color":[{"mask-y-from":N()}],"mask-image-y-to-color":[{"mask-y-to":N()}],"mask-image-radial":[{"mask-radial":[K,U]}],"mask-image-radial-from-pos":[{"mask-radial-from":H()}],"mask-image-radial-to-pos":[{"mask-radial-to":H()}],"mask-image-radial-from-color":[{"mask-radial-from":N()}],"mask-image-radial-to-color":[{"mask-radial-to":N()}],"mask-image-radial-shape":[{"mask-radial":[`circle`,`ellipse`]}],"mask-image-radial-size":[{"mask-radial":[{closest:[`side`,`corner`],farthest:[`side`,`corner`]}]}],"mask-image-radial-pos":[{"mask-radial-at":y()}],"mask-image-conic-pos":[{"mask-conic":[L]}],"mask-image-conic-from-pos":[{"mask-conic-from":H()}],"mask-image-conic-to-pos":[{"mask-conic-to":H()}],"mask-image-conic-from-color":[{"mask-conic-from":N()}],"mask-image-conic-to-color":[{"mask-conic-to":N()}],"mask-mode":[{mask:[`alpha`,`luminance`,`match`]}],"mask-origin":[{"mask-origin":[`border`,`padding`,`content`,`fill`,`stroke`,`view`]}],"mask-position":[{mask:ie()}],"mask-repeat":[{mask:ae()}],"mask-size":[{mask:oe()}],"mask-type":[{"mask-type":[`alpha`,`luminance`]}],"mask-image":[{mask:[`none`,K,U]}],filter:[{filter:[``,`none`,K,U]}],blur:[{blur:Y()}],brightness:[{brightness:[L,K,U]}],contrast:[{contrast:[L,K,U]}],"drop-shadow":[{"drop-shadow":[``,`none`,f,J,G]}],"drop-shadow-color":[{"drop-shadow":N()}],grayscale:[{grayscale:[``,L,K,U]}],"hue-rotate":[{"hue-rotate":[L,K,U]}],invert:[{invert:[``,L,K,U]}],saturate:[{saturate:[L,K,U]}],sepia:[{sepia:[``,L,K,U]}],"backdrop-filter":[{"backdrop-filter":[``,`none`,K,U]}],"backdrop-blur":[{"backdrop-blur":Y()}],"backdrop-brightness":[{"backdrop-brightness":[L,K,U]}],"backdrop-contrast":[{"backdrop-contrast":[L,K,U]}],"backdrop-grayscale":[{"backdrop-grayscale":[``,L,K,U]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[L,K,U]}],"backdrop-invert":[{"backdrop-invert":[``,L,K,U]}],"backdrop-opacity":[{"backdrop-opacity":[L,K,U]}],"backdrop-saturate":[{"backdrop-saturate":[L,K,U]}],"backdrop-sepia":[{"backdrop-sepia":[``,L,K,U]}],"border-collapse":[{border:[`collapse`,`separate`]}],"border-spacing":[{"border-spacing":C()}],"border-spacing-x":[{"border-spacing-x":C()}],"border-spacing-y":[{"border-spacing-y":C()}],"table-layout":[{table:[`auto`,`fixed`]}],caption:[{caption:[`top`,`bottom`]}],transition:[{transition:[``,`all`,`colors`,`opacity`,`shadow`,`transform`,`none`,K,U]}],"transition-behavior":[{transition:[`normal`,`discrete`]}],duration:[{duration:[L,`initial`,K,U]}],ease:[{ease:[`linear`,`initial`,g,K,U]}],delay:[{delay:[L,K,U]}],animate:[{animate:[`none`,_,K,U]}],backface:[{backface:[`hidden`,`visible`]}],perspective:[{perspective:[m,K,U]}],"perspective-origin":[{"perspective-origin":b()}],rotate:[{rotate:X()}],"rotate-x":[{"rotate-x":X()}],"rotate-y":[{"rotate-y":X()}],"rotate-z":[{"rotate-z":X()}],scale:[{scale:Z()}],"scale-x":[{"scale-x":Z()}],"scale-y":[{"scale-y":Z()}],"scale-z":[{"scale-z":Z()}],"scale-3d":[`scale-3d`],skew:[{skew:Q()}],"skew-x":[{"skew-x":Q()}],"skew-y":[{"skew-y":Q()}],transform:[{transform:[K,U,``,`none`,`gpu`,`cpu`]}],"transform-origin":[{origin:b()}],"transform-style":[{transform:[`3d`,`flat`]}],translate:[{translate:$()}],"translate-x":[{"translate-x":$()}],"translate-y":[{"translate-y":$()}],"translate-z":[{"translate-z":$()}],"translate-none":[`translate-none`],accent:[{accent:N()}],appearance:[{appearance:[`none`,`auto`]}],"caret-color":[{caret:N()}],"color-scheme":[{scheme:[`normal`,`dark`,`light`,`light-dark`,`only-dark`,`only-light`]}],cursor:[{cursor:[`auto`,`default`,`pointer`,`wait`,`text`,`move`,`help`,`not-allowed`,`none`,`context-menu`,`progress`,`cell`,`crosshair`,`vertical-text`,`alias`,`copy`,`no-drop`,`grab`,`grabbing`,`all-scroll`,`col-resize`,`row-resize`,`n-resize`,`e-resize`,`s-resize`,`w-resize`,`ne-resize`,`nw-resize`,`se-resize`,`sw-resize`,`ew-resize`,`ns-resize`,`nesw-resize`,`nwse-resize`,`zoom-in`,`zoom-out`,K,U]}],"field-sizing":[{"field-sizing":[`fixed`,`content`]}],"pointer-events":[{"pointer-events":[`auto`,`none`]}],resize:[{resize:[`none`,``,`y`,`x`]}],"scroll-behavior":[{scroll:[`auto`,`smooth`]}],"scroll-m":[{"scroll-m":C()}],"scroll-mx":[{"scroll-mx":C()}],"scroll-my":[{"scroll-my":C()}],"scroll-ms":[{"scroll-ms":C()}],"scroll-me":[{"scroll-me":C()}],"scroll-mbs":[{"scroll-mbs":C()}],"scroll-mbe":[{"scroll-mbe":C()}],"scroll-mt":[{"scroll-mt":C()}],"scroll-mr":[{"scroll-mr":C()}],"scroll-mb":[{"scroll-mb":C()}],"scroll-ml":[{"scroll-ml":C()}],"scroll-p":[{"scroll-p":C()}],"scroll-px":[{"scroll-px":C()}],"scroll-py":[{"scroll-py":C()}],"scroll-ps":[{"scroll-ps":C()}],"scroll-pe":[{"scroll-pe":C()}],"scroll-pbs":[{"scroll-pbs":C()}],"scroll-pbe":[{"scroll-pbe":C()}],"scroll-pt":[{"scroll-pt":C()}],"scroll-pr":[{"scroll-pr":C()}],"scroll-pb":[{"scroll-pb":C()}],"scroll-pl":[{"scroll-pl":C()}],"snap-align":[{snap:[`start`,`end`,`center`,`align-none`]}],"snap-stop":[{snap:[`normal`,`always`]}],"snap-type":[{snap:[`none`,`x`,`y`,`both`]}],"snap-strictness":[{snap:[`mandatory`,`proximity`]}],touch:[{touch:[`auto`,`none`,`manipulation`]}],"touch-x":[{"touch-pan":[`x`,`left`,`right`]}],"touch-y":[{"touch-pan":[`y`,`up`,`down`]}],"touch-pz":[`touch-pinch-zoom`],select:[{select:[`none`,`text`,`all`,`auto`]}],"will-change":[{"will-change":[`auto`,`scroll`,`contents`,`transform`,K,U]}],fill:[{fill:[`none`,...N()]}],"stroke-w":[{stroke:[L,q,W,fe]}],stroke:[{stroke:[`none`,...N()]}],"forced-color-adjust":[{"forced-color-adjust":[`auto`,`none`]}]},conflictingClassGroups:{overflow:[`overflow-x`,`overflow-y`],overscroll:[`overscroll-x`,`overscroll-y`],inset:[`inset-x`,`inset-y`,`inset-bs`,`inset-be`,`start`,`end`,`top`,`right`,`bottom`,`left`],"inset-x":[`right`,`left`],"inset-y":[`top`,`bottom`],flex:[`basis`,`grow`,`shrink`],gap:[`gap-x`,`gap-y`],p:[`px`,`py`,`ps`,`pe`,`pbs`,`pbe`,`pt`,`pr`,`pb`,`pl`],px:[`pr`,`pl`],py:[`pt`,`pb`],m:[`mx`,`my`,`ms`,`me`,`mbs`,`mbe`,`mt`,`mr`,`mb`,`ml`],mx:[`mr`,`ml`],my:[`mt`,`mb`],size:[`w`,`h`],"font-size":[`leading`],"fvn-normal":[`fvn-ordinal`,`fvn-slashed-zero`,`fvn-figure`,`fvn-spacing`,`fvn-fraction`],"fvn-ordinal":[`fvn-normal`],"fvn-slashed-zero":[`fvn-normal`],"fvn-figure":[`fvn-normal`],"fvn-spacing":[`fvn-normal`],"fvn-fraction":[`fvn-normal`],"line-clamp":[`display`,`overflow`],rounded:[`rounded-s`,`rounded-e`,`rounded-t`,`rounded-r`,`rounded-b`,`rounded-l`,`rounded-ss`,`rounded-se`,`rounded-ee`,`rounded-es`,`rounded-tl`,`rounded-tr`,`rounded-br`,`rounded-bl`],"rounded-s":[`rounded-ss`,`rounded-es`],"rounded-e":[`rounded-se`,`rounded-ee`],"rounded-t":[`rounded-tl`,`rounded-tr`],"rounded-r":[`rounded-tr`,`rounded-br`],"rounded-b":[`rounded-br`,`rounded-bl`],"rounded-l":[`rounded-tl`,`rounded-bl`],"border-spacing":[`border-spacing-x`,`border-spacing-y`],"border-w":[`border-w-x`,`border-w-y`,`border-w-s`,`border-w-e`,`border-w-bs`,`border-w-be`,`border-w-t`,`border-w-r`,`border-w-b`,`border-w-l`],"border-w-x":[`border-w-r`,`border-w-l`],"border-w-y":[`border-w-t`,`border-w-b`],"border-color":[`border-color-x`,`border-color-y`,`border-color-s`,`border-color-e`,`border-color-bs`,`border-color-be`,`border-color-t`,`border-color-r`,`border-color-b`,`border-color-l`],"border-color-x":[`border-color-r`,`border-color-l`],"border-color-y":[`border-color-t`,`border-color-b`],translate:[`translate-x`,`translate-y`,`translate-none`],"translate-none":[`translate`,`translate-x`,`translate-y`,`translate-z`],"scroll-m":[`scroll-mx`,`scroll-my`,`scroll-ms`,`scroll-me`,`scroll-mbs`,`scroll-mbe`,`scroll-mt`,`scroll-mr`,`scroll-mb`,`scroll-ml`],"scroll-mx":[`scroll-mr`,`scroll-ml`],"scroll-my":[`scroll-mt`,`scroll-mb`],"scroll-p":[`scroll-px`,`scroll-py`,`scroll-ps`,`scroll-pe`,`scroll-pbs`,`scroll-pbe`,`scroll-pt`,`scroll-pr`,`scroll-pb`,`scroll-pl`],"scroll-px":[`scroll-pr`,`scroll-pl`],"scroll-py":[`scroll-pt`,`scroll-pb`],touch:[`touch-x`,`touch-y`,`touch-pz`],"touch-x":[`touch`],"touch-y":[`touch`],"touch-pz":[`touch`]},conflictingClassGroupModifiers:{"font-size":[`leading`]},orderSensitiveModifiers:[`*`,`**`,`after`,`backdrop`,`before`,`details-content`,`file`,`first-letter`,`first-line`,`marker`,`placeholder`,`selection`]}}),Oe=(...e)=>De(t(e));export{Oe as t};