ezux 1.1.19 → 1.1.21

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 (75) hide show
  1. package/README.md +7 -1
  2. package/dist/{DeleteConfirmationModal-CukNDgtX.cjs → DeleteConfirmationModal-BM1PoL6P.cjs} +1 -1
  3. package/dist/{DeleteConfirmationModal-p8XGDGIw.js → DeleteConfirmationModal-B_tXm0N0.js} +4 -4
  4. package/dist/{EzEventModal-BrCBSXBM.cjs → EzEventModal-D1EzXBsQ.cjs} +1 -1
  5. package/dist/{EzEventModal-BDSHG11m.js → EzEventModal-D5lX9XuW.js} +2 -2
  6. package/dist/{EzFlow-CQFeY7DL.cjs → EzFlow-B4qRm5KH.cjs} +3 -3
  7. package/dist/{EzFlow-C74NbZA9.js → EzFlow-CEfPykao.js} +278 -278
  8. package/dist/EzKanban-2b9skOep.cjs +2 -0
  9. package/dist/{EzKanban-COcGidzh.js → EzKanban-CpYH8b8g.js} +86 -80
  10. package/dist/{EzLayout-CiaPLniV.js → EzLayout-DFxegglu.js} +30 -24
  11. package/dist/EzLayout-EYOfpFXs.cjs +1 -0
  12. package/dist/{EzScheduler-CjQbi1Na.js → EzScheduler-D7aH4KCY.js} +60 -55
  13. package/dist/EzScheduler-hC9PsLrI.cjs +1 -0
  14. package/dist/{EzSchedulerQuickAdd-BeNfGdWs.cjs → EzSchedulerQuickAdd-BYrV9PQ-.cjs} +1 -1
  15. package/dist/{EzSchedulerQuickAdd-BIC8xbSn.js → EzSchedulerQuickAdd-D0kGTzE3.js} +2 -2
  16. package/dist/{EzSchedulerToolbar-jMw8KB8k.js → EzSchedulerToolbar-BhlCMeOT.js} +2 -2
  17. package/dist/{EzSchedulerToolbar-ihfe-5Yd.cjs → EzSchedulerToolbar-Dy62PVnH.cjs} +1 -1
  18. package/dist/{EzSignature-7UHO5lSP.js → EzSignature-B-CPcf7e.js} +5 -2
  19. package/dist/{EzSignature-Df7UZ-IS.cjs → EzSignature-DcmWBPIL.cjs} +1 -1
  20. package/dist/EzTable-Bcq7TByw.cjs +3 -0
  21. package/dist/{EzTable-D2p1IWHc.js → EzTable-DLbb3nl7.js} +1296 -1161
  22. package/dist/EzTableEditDialog--8pD39Rp.cjs +1 -0
  23. package/dist/EzTableEditDialog-m0zW6r6z.js +100 -0
  24. package/dist/{EzTableFooter-DrLoWelo.js → EzTableFooter-BuTS3wDK.js} +1 -1
  25. package/dist/{EzTableToolbar-DwuumvWP.cjs → EzTableToolbar-BWjqKfwx.cjs} +1 -1
  26. package/dist/{EzTableToolbar-BH5z9fSJ.js → EzTableToolbar-BiRfKm9d.js} +2 -2
  27. package/dist/{EzTreeView-D1G0Aomc.js → EzTreeView-B2B_Ruwm.js} +37 -37
  28. package/dist/EzTreeView-DLoPKe2i.cjs +1 -0
  29. package/dist/{KanbanBoard-BsZP_PJi.js → KanbanBoard-CRF0-mYa.js} +119 -119
  30. package/dist/{KanbanBoard-C9bjU_gk.cjs → KanbanBoard-DdXD-Zjt.cjs} +1 -1
  31. package/dist/advanced.cjs +2 -2
  32. package/dist/advanced.es.js +30 -29
  33. package/dist/card-NlCLCGFb.cjs +1 -0
  34. package/dist/{card-ZUNxcdIM.js → card-urNaa5h-.js} +1 -1
  35. package/dist/{checkbox-BrCh_Iid.cjs → checkbox-B9yPkCYi.cjs} +1 -1
  36. package/dist/{checkbox-DRkQuB4W.js → checkbox-BTuckDEm.js} +1 -1
  37. package/dist/components/EzTable/EzTableEditDialog.d.ts +1 -1
  38. package/dist/components/EzTable/hooks/useTableFiltering.d.ts +6 -6
  39. package/dist/components/EzTable/hooks/useTableHistory.d.ts +3 -3
  40. package/dist/components/EzTable/hooks/useTableImperative.d.ts +9 -6
  41. package/dist/components/EzTable/hooks/useTableState.d.ts +12 -12
  42. package/dist/components/EzTable/types/EzTableProps.d.ts +9 -1
  43. package/dist/ezux.css +1 -1
  44. package/dist/flow.cjs +1 -1
  45. package/dist/flow.es.js +1 -1
  46. package/dist/index.cjs +2 -2
  47. package/dist/index.es.js +20 -20
  48. package/dist/input-CcRi0LeO.js +14 -0
  49. package/dist/input-DOh8O0iX.cjs +1 -0
  50. package/dist/kanban.cjs +1 -1
  51. package/dist/kanban.es.js +2 -2
  52. package/dist/layout.cjs +1 -1
  53. package/dist/layout.es.js +1 -1
  54. package/dist/mock-services.cjs +1 -1
  55. package/dist/mock-services.es.js +1 -1
  56. package/dist/scheduler.cjs +1 -1
  57. package/dist/scheduler.es.js +1 -1
  58. package/dist/signature.cjs +1 -1
  59. package/dist/signature.es.js +1 -1
  60. package/dist/table.cjs +1 -1
  61. package/dist/table.es.js +1 -1
  62. package/dist/theme-vars.css +25 -5
  63. package/dist/treeview.cjs +1 -1
  64. package/dist/treeview.es.js +1 -1
  65. package/package.json +39 -36
  66. package/dist/EzKanban-DokdXGqQ.cjs +0 -2
  67. package/dist/EzLayout-BGnqFtvO.cjs +0 -1
  68. package/dist/EzScheduler-B8nV1VWY.cjs +0 -1
  69. package/dist/EzTable-CEXvJR1t.cjs +0 -3
  70. package/dist/EzTableEditDialog-BXnnYSSy.cjs +0 -1
  71. package/dist/EzTableEditDialog-Ccd5XoHm.js +0 -84
  72. package/dist/EzTreeView-KMGlU4ax.cjs +0 -1
  73. package/dist/card-CPlRZxbq.cjs +0 -1
  74. package/dist/input-CYlvlbF7.cjs +0 -1
  75. package/dist/input-Cj3sQK3M.js +0 -14
@@ -0,0 +1,2 @@
1
+ const e=require("./EzProvider-L2qQMq-v.cjs"),t=require("./button-BBMwzUtG.cjs"),n=require("./input-DOh8O0iX.cjs"),r=require("./label-BGgvoZWD.cjs"),i=require("./EzErrorBoundary-d_2g-_EK.cjs"),a=require("./useInitCoreServices-DlALVDNx.cjs"),o=require("./NotificationPanel-CFME00wq.cjs"),s=require("./card-NlCLCGFb.cjs"),c=require("./EzScheduler-hC9PsLrI.cjs"),l=require("./useServiceState-PyYQWxHi.cjs"),u=require("./popover-wZKNvYM5.cjs"),d=require("./select-sVieKbLu.cjs"),f=require("./checkbox-B9yPkCYi.cjs"),p=require("./KanbanBoard-DdXD-Zjt.cjs"),m=require("./scroll-area-DSkE2KB_.cjs"),h=require("./DeleteConfirmationModal-BM1PoL6P.cjs");let g=require("react");g=e.y(g,1);let _=require("lucide-react"),v=require("react/jsx-runtime"),y=require("@tanstack/store"),b=require("@tanstack/react-store"),x=require("@tanstack/react-query");var S=()=>(0,v.jsx)(`div`,{className:`flex flex-col items-center justify-center h-full p-8`,children:(0,v.jsxs)(`div`,{className:`flex flex-col items-center gap-4 max-w-md`,children:[(0,v.jsx)(`div`,{className:`flex items-center justify-center w-16 h-16 rounded-full bg-destructive/10`,children:(0,v.jsx)(_.AlertTriangle,{className:`w-8 h-8 text-destructive`})}),(0,v.jsxs)(`div`,{className:`flex flex-col items-center gap-2 text-center`,children:[(0,v.jsx)(`h2`,{className:`text-lg font-semibold`,children:`Kanban Board Error`}),(0,v.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`An error occurred while rendering the Kanban board. Please refresh the page or contact support if the issue persists.`})]}),(0,v.jsx)(t.t,{onClick:()=>window.location.reload(),children:`Reload Board`})]})}),C=(e,t=`standard`)=>new y.Store({board:e,selectedCards:[],selectedColumnId:null,view:t,searchQuery:``,activeFilters:{},history:[e],historyIndex:0}),w=e=>({setBoard:t=>{e.setState(e=>{let n=[...e.history.slice(0,e.historyIndex+1),t];return{...e,board:t,history:n,historyIndex:n.length-1}})},addCard:t=>{e.setState(e=>{let n={...e.board,cards:[...e.board.cards,t]},r=[...e.history.slice(0,e.historyIndex+1),n];return{...e,board:n,history:r,historyIndex:r.length-1}})},updateCard:(t,n)=>{e.setState(e=>{let r={...e.board,cards:e.board.cards.map(e=>e.id===t?{...e,...n}:e)},i=[...e.history.slice(0,e.historyIndex+1),r];return{...e,board:r,history:i,historyIndex:i.length-1}})},deleteCard:t=>{e.setState(e=>{let n={...e.board,cards:e.board.cards.filter(e=>e.id!==t)},r=[...e.history.slice(0,e.historyIndex+1),n];return{...e,board:n,history:r,historyIndex:r.length-1}})},moveCard:(t,n)=>{e.setState(e=>{let r={...e.board,cards:e.board.cards.map(e=>e.id===t?{...e,columnId:n}:e)},i=[...e.history.slice(0,e.historyIndex+1),r];return{...e,board:r,history:i,historyIndex:i.length-1}})},addColumn:t=>{e.setState(e=>{let n={...e.board,columns:[...e.board.columns,t]},r=[...e.history.slice(0,e.historyIndex+1),n];return{...e,board:n,history:r,historyIndex:r.length-1}})},updateColumn:(t,n)=>{e.setState(e=>{let r={...e.board,columns:e.board.columns.map(e=>e.id===t?{...e,...n}:e)},i=[...e.history.slice(0,e.historyIndex+1),r];return{...e,board:r,history:i,historyIndex:i.length-1}})},deleteColumn:t=>{e.setState(e=>{let n={...e.board,columns:e.board.columns.filter(e=>e.id!==t),cards:e.board.cards.filter(e=>e.columnId!==t)},r=[...e.history.slice(0,e.historyIndex+1),n];return{...e,board:n,history:r,historyIndex:r.length-1}})},setSelectedCards:t=>{e.setState(e=>({...e,selectedCards:t}))},setSelectedColumnId:t=>{e.setState(e=>({...e,selectedColumnId:t}))},setView:t=>{e.setState(e=>({...e,view:t}))},setSearchQuery:t=>{e.setState(e=>({...e,searchQuery:t}))},setActiveFilters:t=>{e.setState(e=>({...e,activeFilters:t}))},undo:()=>{e.setState(e=>e.historyIndex>0?{...e,board:e.history[e.historyIndex-1],historyIndex:e.historyIndex-1}:e)},redo:()=>{e.setState(e=>e.historyIndex<e.history.length-1?{...e,board:e.history[e.historyIndex+1],historyIndex:e.historyIndex+1}:e)},canUndo:()=>e.state.historyIndex>0,canRedo:()=>e.state.historyIndex<e.state.history.length-1}),T={id:`default-board`,name:`Default Board`,columns:[],cards:[],settings:{allowDragAndDrop:!0,allowMultiSelect:!0,enableWipLimits:!1,defaultView:`standard`},createdAt:new Date,updatedAt:new Date},E=e=>{let t=e.board||T,n=t.id,r=(0,g.useMemo)(()=>C(t,e.view),[n,e.view]),i=(0,g.useMemo)(()=>w(r),[r]),a=(0,b.useStore)(r,e=>e.board),o=(0,b.useStore)(r,e=>e.selectedCards),s=(0,b.useStore)(r,e=>e.selectedColumnId),c=(0,b.useStore)(r,e=>e.view),l=(0,b.useStore)(r,e=>e.searchQuery),u=(0,b.useStore)(r,e=>e.activeFilters),d=(0,g.useRef)(e.board?JSON.stringify(e.board):``),f=(0,g.useRef)(e.view);return(0,g.useEffect)(()=>{if(!e.board)return;let t=JSON.stringify(e.board);t!==d.current&&(d.current=t,i.setBoard(e.board)),e.view&&e.view!==f.current&&(f.current=e.view,i.setView(e.view))},[e.board,e.view,i]),{board:a,selectedCards:o,selectedColumnId:s,view:c,searchQuery:l,activeFilters:u,setBoard:i.setBoard,setSelectedCards:i.setSelectedCards,setSelectedColumnId:i.setSelectedColumnId,setView:i.setView,setSearchQuery:i.setSearchQuery,setActiveFilters:i.setActiveFilters,addCard:i.addCard,updateCard:i.updateCard,deleteCard:i.deleteCard,moveCard:i.moveCard,addColumn:i.addColumn,updateColumn:i.updateColumn,deleteColumn:i.deleteColumn,undo:i.undo,redo:i.redo,canUndo:i.canUndo(),canRedo:i.canRedo(),store:r,actions:i}},D=(t,n)=>{let r=e.n(),i=(0,x.useQueryClient)(),a=()=>r.get(`KanbanService`),o=(e,t,n=3e3)=>{let i=r.get(`NotificationService`);i&&i.add({type:e,message:t,duration:n})},s=e=>{i.setQueryData([`board`,n.id],e),t.onBoardChange?.(e)},c=(0,x.useMutation)({mutationFn:async e=>{let r=a();return r?await r.createCard(n.id,e):await t.onCardCreate?.(e),e},onMutate:async e=>{await i.cancelQueries({queryKey:[`board`,n.id]});let t=i.getQueryData([`board`,n.id]),r={...n,cards:[...n.cards,e]};return s(r),{previousBoard:t}},onError:(e,t,n)=>{n?.previousBoard&&s(n.previousBoard),o(`error`,`Failed to create card. Please try again.`,5e3)},onSuccess:e=>{o(`success`,`Card "${e.title}" created successfully`)}}),l=(0,g.useCallback)(async e=>{let t={id:`card-${Date.now()}`,type:e.type||`standard`,title:e.title||`New Card`,description:e.description,columnId:e.columnId||n.columns[0]?.id||``,position:e.position??n.cards.filter(t=>t.columnId===e.columnId).length,assignees:e.assignees||[],tags:e.tags||[],priority:e.priority,metadata:e.metadata||{},createdBy:`current-user`,createdAt:new Date,updatedBy:`current-user`,updatedAt:new Date,...e};return c.mutateAsync(t)},[n,c]),u=(0,x.useMutation)({mutationFn:async({cardId:e,updates:r})=>{let i=a();if(i)await i.updateCard(e,r);else{let i=n.cards.find(t=>t.id===e);i&&await t.onCardUpdate?.({...i,...r},`edit`)}return{cardId:e,updates:r}},onMutate:async({cardId:e,updates:t})=>{await i.cancelQueries({queryKey:[`board`,n.id]});let r=i.getQueryData([`board`,n.id]),a=n.cards.map(n=>n.id===e?{...n,...t,updatedAt:new Date}:n),o={...n,cards:a};return s(o),{previousBoard:r}},onError:(e,t,n)=>{n?.previousBoard&&s(n.previousBoard),o(`error`,`Failed to update card`,5e3)},onSuccess:()=>{o(`success`,`Card updated successfully`,2e3)}}),d=(0,g.useCallback)(async(e,t)=>u.mutateAsync({cardId:e,updates:t}),[u]),f=(0,x.useMutation)({mutationFn:async e=>{let n=a();return n?await n.deleteCard(e):await t.onCardDelete?.(e),e},onMutate:async e=>{await i.cancelQueries({queryKey:[`board`,n.id]});let t=i.getQueryData([`board`,n.id]),r={...n,cards:n.cards.filter(t=>t.id!==e)};return s(r),{previousBoard:t,deletedCardTitle:t?.cards.find(t=>t.id===e)?.title}},onError:(e,t,n)=>{n?.previousBoard&&s(n.previousBoard),o(`error`,`Failed to delete card`,5e3)},onSuccess:(e,t,n)=>{let r=n?.deletedCardTitle||`Card`;o(`success`,`Card "${r}" deleted`)}}),p=(0,g.useCallback)(async e=>f.mutateAsync(e),[f]),m=(0,x.useMutation)({mutationFn:async e=>{let{cardId:r,targetColumnId:i,targetSwimlaneId:o,targetPosition:s}=e,c=a();if(c)await c.moveCard(r,i,o,s);else{let e=n.cards.find(e=>e.id===r);e&&await t.onCardUpdate?.({...e,columnId:i,swimlaneId:o},`move`)}},onMutate:async({cardId:e,targetColumnId:t,targetSwimlaneId:r,targetPosition:a})=>{await i.cancelQueries({queryKey:[`board`,n.id]});let o=i.getQueryData([`board`,n.id]),c=n.cards.find(t=>t.id===e);if(!c)return{previousBoard:o};let l=n.cards.filter(t=>t.id!==e),u=l.filter(e=>e.columnId===t).sort((e,t)=>(e.position??0)-(t.position??0)),d=a===void 0?u.length:Math.min(a,u.length),f=[...u.slice(0,d),{...c,columnId:t,swimlaneId:r,updatedAt:new Date},...u.slice(d)].map((e,t)=>({...e,position:t})),p=c.columnId,m=l.filter(e=>e.columnId===p).sort((e,t)=>(e.position??0)-(t.position??0)).map((e,t)=>({...e,position:t})),h=[...l.filter(e=>e.columnId!==t&&e.columnId!==p),...m,...f],g={...n,cards:h};return s(g),{previousBoard:o}},onError:(e,t,n)=>{n?.previousBoard&&s(n.previousBoard),o(`error`,`Failed to move card`,3e3)}});return{createCard:l,updateCard:d,deleteCard:p,moveCard:(0,g.useCallback)(async(e,t,n,r)=>m.mutateAsync({cardId:e,targetColumnId:t,targetSwimlaneId:n,targetPosition:r}),[m]),duplicateCard:(0,g.useCallback)(async e=>{let t=n.cards.find(t=>t.id===e);if(!t)throw Error(`Card not found`);let r={...t,id:`card-${Date.now()}`,title:`${t.title} (Copy)`,position:(t.position??0)+1,createdAt:new Date,updatedAt:new Date};return l(r)},[n.cards,l]),archiveCard:(0,g.useCallback)(async e=>d(e,{isArchived:!0}),[d]),restoreCard:(0,g.useCallback)(async e=>d(e,{isArchived:!1}),[d])}},O=(t,n)=>{let r=e.n(),i=(0,x.useQueryClient)(),a=()=>r.get(`KanbanService`),o=(e,t,n=3e3)=>{let i=r.get(`NotificationService`);i&&i.add({type:e,message:t,duration:n})},s=e=>{i.setQueryData([`board`,n.id],e),t.onBoardChange?.(e)},c=(0,x.useMutation)({mutationFn:async e=>{let r=a();return r?await r.createColumn(n.id,e):await t.onColumnCreate?.(e),e},onMutate:async e=>{await i.cancelQueries({queryKey:[`board`,n.id]});let t=i.getQueryData([`board`,n.id]),r={...n,columns:[...n.columns,e]};return s(r),{previousBoard:t}},onError:(e,t,n)=>{n?.previousBoard&&s(n.previousBoard),o(`error`,`Failed to create column`,5e3)},onSuccess:e=>{o(`success`,`Column "${e.name}" added`)}}),l=(0,g.useCallback)(async e=>{let t={id:`column-${Date.now()}`,name:e.name||`New Column`,color:e.color,icon:e.icon,wipLimit:e.wipLimit,position:e.position??n.columns.length,isCollapsed:!1,...e};return c.mutateAsync(t)},[n.columns.length,c]),u=(0,x.useMutation)({mutationFn:async({columnId:e,updates:r})=>{let i=a();if(i)await i.updateColumn(e,r);else{let i=n.columns.find(t=>t.id===e);i&&await t.onColumnUpdate?.({...i,...r})}return{columnId:e,updates:r}},onMutate:async({columnId:e,updates:t})=>{await i.cancelQueries({queryKey:[`board`,n.id]});let r=i.getQueryData([`board`,n.id]),a={...n,columns:n.columns.map(n=>n.id===e?{...n,...t}:n)};return s(a),{previousBoard:r}},onError:(e,t,n)=>{n?.previousBoard&&s(n.previousBoard),o(`error`,`Failed to update column`,5e3)}}),d=(0,g.useCallback)(async(e,t)=>u.mutateAsync({columnId:e,updates:t}),[u]),f=(0,x.useMutation)({mutationFn:async e=>{let n=a();return n?await n.deleteColumn(e):await t.onColumnDelete?.(e),e},onMutate:async e=>{await i.cancelQueries({queryKey:[`board`,n.id]});let t=i.getQueryData([`board`,n.id]),r=t?.columns.find(t=>t.id===e),a={...n,columns:n.columns.filter(t=>t.id!==e),cards:n.cards.filter(t=>t.columnId!==e)};return s(a),{previousBoard:t,deletedColumnName:r?.name}},onError:(e,t,n)=>{n?.previousBoard&&s(n.previousBoard),o(`error`,`Failed to delete column`,5e3)},onSuccess:(e,t,n)=>{let r=n?.deletedColumnName||`Column`;o(`success`,`Column "${r}" deleted`)}}),p=(0,g.useCallback)(async e=>f.mutateAsync(e),[f]),m=(0,x.useMutation)({mutationFn:async e=>{let t=a();if(t){let n=e.map((e,n)=>t.updateColumn(e,{position:n}));await Promise.all(n)}return e},onMutate:async e=>{await i.cancelQueries({queryKey:[`board`,n.id]});let t=i.getQueryData([`board`,n.id]),r={...n,columns:e.map((e,t)=>{let r=n.columns.find(t=>t.id===e);if(!r)throw Error(`Column ${e} not found`);return{...r,position:t}})};return s(r),{previousBoard:t}},onError:(e,t,n)=>{n?.previousBoard&&s(n.previousBoard),o(`error`,`Failed to reorder columns`,3e3)}});return{createColumn:l,updateColumn:d,deleteColumn:p,reorderColumns:(0,g.useCallback)(async e=>m.mutateAsync(e),[m]),collapseColumn:(0,g.useCallback)(e=>{d(e,{isCollapsed:!0})},[d]),expandColumn:(0,g.useCallback)(e=>{d(e,{isCollapsed:!1})},[d])}},k=(t,n)=>{let r=e.n(),i=(0,x.useQueryClient)(),a=()=>r.get(`KanbanService`),o=(e,t,n=3e3)=>{let i=r.get(`NotificationService`);i&&i.add({type:e,message:t,duration:n})},s=e=>{i.setQueryData([`board`,n.id],e),t.onBoardChange?.(e)},c=(0,x.useMutation)({mutationFn:async e=>{let r=a();return r?await r.createSwimlane(n.id,e):await t.onSwimlaneCreate?.(e),e},onMutate:async e=>{await i.cancelQueries({queryKey:[`board`,n.id]});let t=i.getQueryData([`board`,n.id]),r={...n,swimlanes:[...n.swimlanes||[],e]};return s(r),{previousBoard:t}},onError:(e,t,n)=>{n?.previousBoard&&s(n.previousBoard),o(`error`,`Failed to create swimlane`,5e3)},onSuccess:e=>{o(`success`,`Swimlane "${e.name}" added`)}}),l=(0,g.useCallback)(async e=>{let t={id:`swimlane-${Date.now()}`,name:e.name||`New Swimlane`,type:e.type||`custom`,color:e.color,position:e.position??(n.swimlanes?.length||0),isCollapsed:!1,...e};return c.mutateAsync(t)},[n.swimlanes,c]),u=(0,x.useMutation)({mutationFn:async({swimlaneId:e,updates:r})=>{let i=a();if(i)await i.updateSwimlane(e,r);else{let i=n.swimlanes?.find(t=>t.id===e);i&&await t.onSwimlaneUpdate?.({...i,...r})}return{swimlaneId:e,updates:r}},onMutate:async({swimlaneId:e,updates:t})=>{await i.cancelQueries({queryKey:[`board`,n.id]});let r=i.getQueryData([`board`,n.id]),a={...n,swimlanes:(n.swimlanes||[]).map(n=>n.id===e?{...n,...t}:n)};return s(a),{previousBoard:r}},onError:(e,t,n)=>{n?.previousBoard&&s(n.previousBoard),o(`error`,`Failed to update swimlane`,5e3)}}),d=(0,g.useCallback)(async(e,t)=>u.mutateAsync({swimlaneId:e,updates:t}),[u]),f=(0,x.useMutation)({mutationFn:async e=>{let n=a();return n?await n.deleteSwimlane(e):await t.onSwimlaneDelete?.(e),e},onMutate:async e=>{await i.cancelQueries({queryKey:[`board`,n.id]});let t=i.getQueryData([`board`,n.id]),r=t?.swimlanes?.find(t=>t.id===e),a={...n,swimlanes:(n.swimlanes||[]).filter(t=>t.id!==e),cards:n.cards.map(t=>t.swimlaneId===e?{...t,swimlaneId:void 0}:t)};return s(a),{previousBoard:t,deletedSwimlaneName:r?.name}},onError:(e,t,n)=>{n?.previousBoard&&s(n.previousBoard),o(`error`,`Failed to delete swimlane`,5e3)},onSuccess:(e,t,n)=>{let r=n?.deletedSwimlaneName||`Swimlane`;o(`success`,`Swimlane "${r}" deleted`)}}),p=(0,g.useCallback)(async e=>f.mutateAsync(e),[f]),m=(0,x.useMutation)({mutationFn:async e=>{let t=a();if(t){let n=e.map((e,n)=>t.updateSwimlane(e,{position:n}));await Promise.all(n)}return e},onMutate:async e=>{await i.cancelQueries({queryKey:[`board`,n.id]});let t=i.getQueryData([`board`,n.id]),r={...n,swimlanes:e.map((e,t)=>{let r=n.swimlanes?.find(t=>t.id===e);return r?{...r,position:t}:null}).filter(Boolean)};return s(r),{previousBoard:t}},onError:(e,t,n)=>{n?.previousBoard&&s(n.previousBoard),o(`error`,`Failed to reorder swimlanes`,3e3)}});return{createSwimlane:l,updateSwimlane:d,deleteSwimlane:p,reorderSwimlanes:(0,g.useCallback)(async e=>m.mutateAsync(e),[m]),collapseSwimlane:(0,g.useCallback)(e=>{d(e,{isCollapsed:!0}),t.onSwimlaneToggle?.({swimlaneId:e,isCollapsed:!0})},[d,t.onSwimlaneToggle]),expandSwimlane:(0,g.useCallback)(e=>{d(e,{isCollapsed:!1}),t.onSwimlaneToggle?.({swimlaneId:e,isCollapsed:!1})},[d,t.onSwimlaneToggle])}},A=e=>{let[t,n]=(0,g.useState)(``),[r,i]=(0,g.useState)({});return{filteredCards:(0,g.useMemo)(()=>e.cards.filter(e=>{if(t){let n=t.toLowerCase();if(!(e.title.toLowerCase().includes(n)||e.description?.toLowerCase().includes(n)||e.tags.some(e=>e.name.toLowerCase().includes(n))))return!1}return!(r.tags&&r.tags.length>0&&!e.tags.some(e=>r.tags?.includes(e.id))||r.assignees&&r.assignees.length>0&&!e.assignees.some(e=>r.assignees?.includes(e.id))||r.priority&&r.priority.length>0&&e.priority&&!r.priority.includes(e.priority)||r.columns&&r.columns.length>0&&!r.columns.includes(e.columnId))}),[e.cards,t,r]),searchQuery:t,setSearchQuery:n,activeFilters:r,setActiveFilters:i,clearFilters:()=>{n(``),i({})}}},ee=(t,n,r=!1,i)=>{let a=e.n(),[o,s]=(0,g.useState)(null),[c,l]=(0,g.useState)(null),[u,d]=(0,g.useState)(null);return{draggedCard:o,dragOverColumn:c,dragOverSwimlane:u,handleDragStart:(0,g.useCallback)(e=>{if(i?.onCardDragStart){let t={card:e,columnId:e.columnId,cancel:!1};if(i.onCardDragStart(t),t.cancel)return}s(e)},[i?.onCardDragStart]),handleDragOver:(0,g.useCallback)((e,t)=>{o&&c!==e&&(c&&i?.onCardDragLeave&&i.onCardDragLeave({card:o,targetColumnId:c}),i?.onCardDragEnter&&i.onCardDragEnter({card:o,targetColumnId:e})),l(e),t&&d(t)},[o,i,c]),handleDragEnd:(0,g.useCallback)(()=>{o&&i?.onCardDragStop&&i.onCardDragStop({card:o,columnId:o.columnId}),s(null),l(null),d(null)},[o,i?.onCardDragStop]),handleDrop:(0,g.useCallback)((e,c,u)=>{if(!o)return;let f=t.columns.find(t=>t.id===e);if(f?.wipLimit&&t.cards.filter(t=>t.columnId===e&&!t.isArchived).length>=f.wipLimit&&(o.columnId!==e||o.swimlaneId!==c)){let e=a.get(`NotificationService`);if(e&&e.add({type:`warning`,message:`WIP limit reached for "${f.name}" (${f.wipLimit} cards)`,duration:4e3}),r){e?.add({type:`error`,message:`Cannot move card: "${f.name}" is full (Strict WIP)`,duration:4e3}),s(null),l(null),d(null);return}}n(o.id,e,c,u),i?.onCardDragStop&&i.onCardDragStop({card:o,columnId:e}),s(null),l(null),d(null)},[o,t,n,i?.onCardDragStop])}},j=(e,t={})=>{let n=l.t(`I18nService`)?.dir||`ltr`,r=e.dir===`auto`||!e.dir?n:e.dir,i={showSpinner:()=>{},hideSpinner:()=>{}},{board:a,setBoard:o,selectedCards:s,setSelectedCards:u,selectedColumnId:d,setSelectedColumnId:f,view:p,setView:m,undo:h,redo:_,canUndo:v,canRedo:y}=E(e),[b,x]=(0,g.useState)(null),{createCard:S,updateCard:C,deleteCard:w,moveCard:T,duplicateCard:j,archiveCard:M,restoreCard:N}=D(e,a),{createColumn:P,updateColumn:F,deleteColumn:I,reorderColumns:L,collapseColumn:R,expandColumn:z}=O(e,a),{createSwimlane:B,updateSwimlane:V,deleteSwimlane:H,reorderSwimlanes:U,collapseSwimlane:W,expandSwimlane:G}=k(e,a),{draggedCard:K,dragOverColumn:q,handleDragStart:te,handleDragOver:ne,handleDragEnd:re,handleDrop:ie}=ee(a,T,e.wipStrict,e),{filteredCards:J,searchQuery:Y,setSearchQuery:X,activeFilters:Z,setActiveFilters:Q,clearFilters:$}=A(a),{selectedIndex:ae,setSelectedIndex:oe}=c.i({totalItems:J.length,columns:1,enabled:!e.readOnly,onSelect:e=>{let t=J[e];t&&(x(t.id),(document.getElementById(t.id)||document.querySelector(`[data-card-id="${t.id}"]`))?.scrollIntoView({behavior:`smooth`,block:`nearest`}))},onAction:e=>{let n=J[e];n&&t.onCardClick&&t.onCardClick(n)}}),se=(0,g.useMemo)(()=>({addCard:S,updateCard:C,deleteCard:w,moveCard:T,duplicateCard:j,archiveCard:M,restoreCard:N,getCard:e=>a.cards.find(t=>t.id===e),getCards:()=>a.cards,getCardsInColumn:e=>a.cards.filter(t=>t.columnId===e),getOrderedCards:e=>a.cards.filter(t=>t.columnId===e).sort((e,t)=>(e.position??0)-(t.position??0)),addColumn:P,updateColumn:F,deleteColumn:I,reorderColumns:L,collapseColumn:R,expandColumn:z,getColumn:e=>a.columns.find(t=>t.id===e),getColumns:()=>a.columns,addSwimlane:B,updateSwimlane:V,deleteSwimlane:H,reorderSwimlanes:U,collapseSwimlane:W,expandSwimlane:G,getSwimlane:e=>a.swimlanes?.find(t=>t.id===e),getSwimlanes:()=>a.swimlanes||[],selectCard:e=>u([e]),selectCards:u,deselectCard:e=>{let t=s.filter(t=>t!==e);u(t)},deselectAllCards:()=>u([]),getSelectedCards:()=>a.cards.filter(e=>s.includes(e.id)),focusCard:e=>{let t=document.getElementById(e)||document.querySelector(`[data-card-id="${e}"]`);t instanceof HTMLElement&&(t.focus(),t.scrollIntoView({behavior:`smooth`,block:`center`}))},highlightCard:(e,t=2e3)=>{x(e),setTimeout(()=>x(null),t)},setView:m,getView:()=>p,scrollToColumn:(e,t)=>{(document.getElementById(`column-${e}`)||document.querySelector(`[data-column-id="${e}"]`))?.scrollIntoView(t||{behavior:`smooth`,block:`center`,inline:`center`})},scrollToCard:(e,t)=>{(document.getElementById(e)||document.querySelector(`[data-card-id="${e}"]`))?.scrollIntoView(t||{behavior:`smooth`,block:`center`})},setSearchQuery:X,getSearchQuery:()=>Y,setActiveFilters:Q,getActiveFilters:()=>Z,clearFilters:$,getFilteredCards:()=>J,getBoard:()=>a,setBoard:o,refresh:async()=>{},reset:()=>o(e.board),showSpinner:i.showSpinner,hideSpinner:i.hideSpinner,forceUpdate:()=>{},getStatistics:()=>({totalCards:a.cards.length,totalColumns:a.columns.length}),validate:()=>({isValid:!0,errors:[]}),...t}),[a,S,C,w,T,j,M,N,P,F,I,L,R,z,B,V,H,U,W,G,s,u,d,f,Y,X,Z,Q,$,J,o,e.board,i,t,p,e.wipStrict,e]);return(0,g.useMemo)(()=>({state:{board:a,selectedCards:s,highlightedCardId:b,selectedColumnId:d,view:p,draggedCard:K,dragOverColumn:q,filteredCards:J,searchQuery:Y,activeFilters:Z,selectedIndex:ae,canUndo:v,canRedo:y},actions:{setBoard:o,setSelectedCards:u,setSelectedColumnId:f,setView:m,createCard:S,updateCard:C,deleteCard:w,moveCard:T,duplicateCard:j,archiveCard:M,restoreCard:N,createColumn:P,updateColumn:F,deleteColumn:I,reorderColumns:L,collapseColumn:R,expandColumn:z,createSwimlane:B,updateSwimlane:V,deleteSwimlane:H,reorderSwimlanes:U,collapseSwimlane:W,expandSwimlane:G,handleDragStart:te,handleDragOver:ne,handleDragEnd:re,handleDrop:ie,setSearchQuery:X,setActiveFilters:Q,clearFilters:$,setSelectedIndex:oe,undo:h,redo:_},services:{serviceRegistry:null},imperativeAPI:se,dir:r,baseApi:i}),[i,se,a,o,s,u,b,d,f,p,m,r,S,C,w,T,j,M,N,P,F,I,L,R,z,B,V,H,U,W,G,K,q,te,ne,re,ie,J,Y,X,Z,Q,$,null,ae,oe,h,_,v,y])};function M(e,t=300){let[n,r]=(0,g.useState)(e);return(0,g.useEffect)(()=>{let n=setTimeout(()=>{r(e)},t);return()=>{clearTimeout(n)}},[e,t]),n}var N=({board:e,activeFilters:n,onFiltersChange:i,onClearFilters:a})=>{let o=Array.from(new Set(e.cards.flatMap(e=>e.tags).map(e=>JSON.stringify(e)))).map(e=>JSON.parse(e)).filter((e,t,n)=>t===n.findIndex(t=>t.id===e.id)),s=Array.from(new Set(e.cards.flatMap(e=>e.assignees).map(e=>JSON.stringify(e)))).map(e=>JSON.parse(e)).filter((e,t,n)=>t===n.findIndex(t=>t.id===e.id)),c=[`low`,`medium`,`high`,`critical`],l=e=>{let t=n.priority||[],r=t.includes(e)?t.filter(t=>t!==e):[...t,e];i({...n,priority:r.length?r:void 0})},d=e=>{let t=n.tags||[],r=t.includes(e)?t.filter(t=>t!==e):[...t,e];i({...n,tags:r.length?r:void 0})},h=e=>{let t=n.assignees||[],r=t.includes(e)?t.filter(t=>t!==e):[...t,e];i({...n,assignees:r.length?r:void 0})},g=(n.priority?.length||0)+(n.tags?.length||0)+(n.assignees?.length||0);return(0,v.jsxs)(u.t,{children:[(0,v.jsx)(u.r,{asChild:!0,children:(0,v.jsxs)(t.t,{variant:`outline`,size:`sm`,className:`relative`,children:[(0,v.jsx)(_.Filter,{className:`h-4 w-4 mr-2`}),`Filters`,g>0&&(0,v.jsx)(p.f,{variant:`secondary`,className:`ml-2 h-5 min-w-[20px] px-1 text-[10px] flex items-center justify-center`,children:g})]})}),(0,v.jsxs)(u.n,{className:`w-80 p-4`,align:`start`,children:[(0,v.jsxs)(`div`,{className:`flex items-center justify-between mb-4`,children:[(0,v.jsx)(`h4`,{className:`font-medium leading-none`,children:`Filters`}),g>0&&(0,v.jsx)(t.t,{variant:`ghost`,size:`sm`,className:`h-auto p-0 text-xs text-muted-foreground`,onClick:a,children:`Clear all`})]}),(0,v.jsx)(m.t,{className:`h-[300px] pr-4`,children:(0,v.jsxs)(`div`,{className:`space-y-6`,children:[(0,v.jsxs)(`div`,{className:`space-y-3`,children:[(0,v.jsx)(`h5`,{className:`text-sm font-medium text-muted-foreground`,children:`Priority`}),(0,v.jsx)(`div`,{className:`space-y-2`,children:c.map(e=>(0,v.jsxs)(`div`,{className:`flex items-center space-x-2`,children:[(0,v.jsx)(f.t,{id:`priority-${e}`,checked:n.priority?.includes(e),onCheckedChange:()=>l(e)}),(0,v.jsx)(r.t,{htmlFor:`priority-${e}`,className:`capitalize text-sm font-normal cursor-pointer`,children:e})]},e))})]}),s.length>0&&(0,v.jsxs)(`div`,{className:`space-y-3`,children:[(0,v.jsx)(`h5`,{className:`text-sm font-medium text-muted-foreground`,children:`Assignees`}),(0,v.jsx)(`div`,{className:`space-y-2`,children:s.map(e=>(0,v.jsxs)(`div`,{className:`flex items-center space-x-2`,children:[(0,v.jsx)(f.t,{id:`assignee-${e.id}`,checked:n.assignees?.includes(e.id),onCheckedChange:()=>h(e.id)}),(0,v.jsxs)(r.t,{htmlFor:`assignee-${e.id}`,className:`text-sm font-normal cursor-pointer flex items-center gap-2`,children:[e.avatarUrl&&(0,v.jsx)(`img`,{src:e.avatarUrl,alt:``,className:`w-4 h-4 rounded-full`}),e.name]})]},e.id))})]}),o.length>0&&(0,v.jsxs)(`div`,{className:`space-y-3`,children:[(0,v.jsx)(`h5`,{className:`text-sm font-medium text-muted-foreground`,children:`Tags`}),(0,v.jsx)(`div`,{className:`space-y-2`,children:o.map(e=>(0,v.jsxs)(`div`,{className:`flex items-center space-x-2`,children:[(0,v.jsx)(f.t,{id:`tag-${e.id}`,checked:n.tags?.includes(e.id),onCheckedChange:()=>d(e.id)}),(0,v.jsxs)(r.t,{htmlFor:`tag-${e.id}`,className:`text-sm font-normal cursor-pointer flex items-center gap-2`,children:[(0,v.jsx)(`div`,{className:`w-2 h-2 rounded-full`,style:{backgroundColor:e.color}}),e.name]})]},e.id))})]})]})})]})]})},P=({searchQuery:r,onSearchChange:i,onAddCardClick:a,onAddColumn:o,board:c,className:l,view:u=`standard`,onViewChange:f,onUndo:p,onRedo:m,canUndo:h,canRedo:y,activeFilters:b,onFiltersChange:x})=>{let S=e.n(),[C,w]=(0,g.useState)(r),{t:T}=s.c(),E=M(C,300);(0,g.useEffect)(()=>{i(E)},[E,i]),(0,g.useEffect)(()=>{w(r)},[r]);let D=()=>{a?.()},O=e=>{if(c)try{let t=S.get(`ExportService`);if(e===`csv`){let e=c.cards.map(e=>({id:e.id,title:e.title,description:e.description||``,column:c.columns.find(t=>t.id===e.columnId)?.name||``,priority:e.priority||``,assignees:e.assignees?.map(e=>e.name).join(`; `)||``,tags:e.tags?.map(e=>e.name).join(`; `)||``,dueDate:e.dueDate?new Date(e.dueDate).toISOString().split(`T`)[0]:``,isArchived:e.isArchived?`Yes`:`No`}));if(t)t.exportToCSV(e,[{header:`ID`,accessorKey:`id`},{header:`Title`,accessorKey:`title`},{header:`Description`,accessorKey:`description`},{header:`Column`,accessorKey:`column`},{header:`Priority`,accessorKey:`priority`},{header:`Assignees`,accessorKey:`assignees`},{header:`Tags`,accessorKey:`tags`},{header:`Due Date`,accessorKey:`dueDate`},{header:`Archived`,accessorKey:`isArchived`}],{fileName:`kanban-board-${c.id}`});else{let t=Object.keys(e[0]||{}),n=[t.join(`,`),...e.map(e=>t.map(t=>`"${e[t]}"`).join(`,`))].join(`
2
+ `),r=new Blob([n],{type:`text/csv`}),i=URL.createObjectURL(r),a=document.createElement(`a`);a.href=i,a.download=`kanban-board-${c.id}.csv`,a.click(),URL.revokeObjectURL(i)}}else{let e=JSON.stringify(c,null,2);if(t&&t.download)t.download(e,`kanban-board-${c.id}.json`);else{let t=new Blob([e],{type:`application/json`}),n=URL.createObjectURL(t),r=document.createElement(`a`);r.href=n,r.download=`kanban-board-${c.id}.json`,r.click(),URL.revokeObjectURL(n)}}let n=S.get(`NotificationService`);n&&n.add({type:`success`,message:`Board exported as ${e.toUpperCase()}`,duration:3e3})}catch(e){let t=S.get(`NotificationService`);t&&t.add({type:`error`,message:`Failed to export board: ${e instanceof Error?e.message:`Unknown error`}`,duration:4e3})}};return(0,v.jsx)(v.Fragment,{children:(0,v.jsxs)(`div`,{className:`flex items-center gap-4 p-4 border-b ${l||``}`,children:[(0,v.jsxs)(`div`,{className:`flex gap-1 mr-2`,children:[(0,v.jsx)(t.t,{variant:`ghost`,size:`icon`,onClick:p,disabled:!h,title:`Undo (Ctrl+Z)`,children:(0,v.jsx)(_.Undo2,{className:`h-4 w-4`})}),(0,v.jsx)(t.t,{variant:`ghost`,size:`icon`,onClick:m,disabled:!y,title:`Redo (Ctrl+Shift+Z)`,children:(0,v.jsx)(_.Redo2,{className:`h-4 w-4`})})]}),(0,v.jsxs)(`div`,{className:`relative flex-1 max-w-sm`,children:[(0,v.jsx)(_.Search,{className:`absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground`}),(0,v.jsx)(n.t,{placeholder:T(`search_placeholder`),value:C,onChange:e=>w(e.target.value),className:`pl-9`})]}),(0,v.jsx)(`div`,{className:`w-[180px]`,children:(0,v.jsxs)(d.t,{value:u,onValueChange:e=>f?.(e),children:[(0,v.jsx)(d.i,{children:(0,v.jsx)(d.a,{placeholder:`Select view`})}),(0,v.jsxs)(d.n,{children:[(0,v.jsx)(d.r,{value:`standard`,children:(0,v.jsxs)(`div`,{className:`flex items-center`,children:[(0,v.jsx)(_.Layout,{className:`h-4 w-4 mr-2`}),T(`view_standard`)]})}),(0,v.jsx)(d.r,{value:`swimlane`,children:(0,v.jsxs)(`div`,{className:`flex items-center`,children:[(0,v.jsx)(_.Layers,{className:`h-4 w-4 mr-2`}),T(`view_swimlane`)]})}),(0,v.jsx)(d.r,{value:`timeline`,children:(0,v.jsxs)(`div`,{className:`flex items-center`,children:[(0,v.jsx)(_.Layout,{className:`h-4 w-4 mr-2`}),` `,T(`view_timeline`)]})})]})]})}),c&&(0,v.jsx)(N,{board:c,activeFilters:b||{},onFiltersChange:e=>x?.(e),onClearFilters:()=>x?.({})}),c&&(0,v.jsxs)(`div`,{className:`flex gap-1`,children:[(0,v.jsxs)(t.t,{variant:`outline`,size:`sm`,onClick:()=>O(`csv`),title:`Export as CSV`,children:[(0,v.jsx)(_.Download,{className:`h-4 w-4 mr-2`}),`CSV`]}),(0,v.jsxs)(t.t,{variant:`outline`,size:`sm`,onClick:()=>O(`json`),title:`Export as JSON`,children:[(0,v.jsx)(_.Download,{className:`h-4 w-4 mr-2`}),`JSON`]})]}),(0,v.jsxs)(`div`,{className:`ml-auto flex gap-2`,children:[(0,v.jsxs)(t.t,{variant:`outline`,size:`sm`,onClick:o,children:[(0,v.jsx)(_.Plus,{className:`h-4 w-4 mr-2`}),T(`add_column`)]}),(0,v.jsxs)(t.t,{size:`sm`,onClick:D,children:[(0,v.jsx)(_.Plus,{className:`h-4 w-4 mr-2`}),T(`add_card`)]})]})]})})},F=new x.QueryClient,I=(0,g.forwardRef)((e,t)=>{let{className:n,readOnly:r,...o}=e;return a.t(),(0,v.jsx)(x.QueryClientProvider,{client:F,children:(0,v.jsx)(i.t,{fallback:(0,v.jsx)(S,{}),children:(0,v.jsx)(L,{ref:t,className:n,readOnly:r,...o})})})});I.displayName=`EzKanban`;var L=(0,g.forwardRef)((t,n)=>{let{className:r,readOnly:i,onCardClick:a,onCardDoubleClick:s}=t,{state:c,actions:l,dir:u,imperativeAPI:d}=j(t,n),[f,m]=(0,g.useState)(!1),[_,y]=(0,g.useState)(void 0),[b,x]=(0,g.useState)(!1),[S,C]=(0,g.useState)(null);(0,g.useImperativeHandle)(n,()=>d,[d]);let w=e=>{let t=e||c.selectedColumnId||c.board.columns[0]?.id;y({columnId:t,title:``,description:``,priority:`medium`}),m(!0)},T=async e=>{e.id?await l.updateCard(e.id,e):await l.createCard(e),m(!1)},E=e=>{t.confirmOnDelete===!1?(l.deleteCard(e),m(!1)):(C(e),x(!0),m(!1))},D=async()=>{S&&(await l.deleteCard(S),x(!1),C(null))},O=e=>{i||(y(e),m(!0)),a?.(e)},k=e=>{let t=c.board.columns.find(t=>t.id===e);t&&(t.isCollapsed?l.expandColumn(e):l.collapseColumn(e))},A=e=>{let t=c.board.swimlanes?.find(t=>t.id===e);t&&(t.isCollapsed?l.expandSwimlane(e):l.collapseSwimlane(e))};return(0,v.jsxs)(`div`,{className:e._(`flex flex-col h-full bg-background`,r),dir:u,children:[(0,v.jsx)(o.t,{}),(0,v.jsx)(o.t,{}),!i&&(t.slots?.toolbar?(0,v.jsx)(t.slots.toolbar,{searchQuery:c.searchQuery,onSearchChange:l.setSearchQuery,onAddCardClick:()=>w(),onAddColumn:()=>{l.createColumn({name:`New Column`,position:c.board.columns.length}).then(e=>{l.setSelectedColumnId(e.id)})},activeFilters:c.activeFilters,onFiltersChange:l.setActiveFilters,view:c.view,onViewChange:l.setView,onUndo:l.undo,onRedo:l.redo,canUndo:c.canUndo,canRedo:c.canRedo,...t.slotProps?.toolbar||{}}):(0,v.jsx)(P,{searchQuery:c.searchQuery,onSearchChange:l.setSearchQuery,onAddCardClick:()=>w(),onAddColumn:()=>{l.createColumn({name:`New Column`,position:c.board.columns.length}).then(e=>{l.setSelectedColumnId(e.id)})},activeFilters:c.activeFilters,onFiltersChange:l.setActiveFilters,view:c.view,onViewChange:l.setView,onUndo:l.undo,onRedo:l.redo,canUndo:c.canUndo,canRedo:c.canRedo})),(0,v.jsx)(`div`,{className:`flex-1 overflow-hidden h-full`,children:t.slots?.board?(0,v.jsx)(t.slots.board,{board:c.board,onCardClick:O,onCardDoubleClick:s,onCardDragStart:l.handleDragStart,onCardDragEnd:l.handleDragEnd,onCardDrop:l.handleDrop,onAddCard:w,onToggleColumnCollapse:k,onToggleSwimlaneCollapse:A,onDeleteColumn:l.deleteColumn,onUpdateColumn:l.updateColumn,onColumnClick:l.setSelectedColumnId,onCreateCard:T,selectedColumnId:c.selectedColumnId,draggedCardId:c.draggedCard?.id,filteredCards:c.filteredCards,slots:t.slots,slotProps:t.slotProps,view:c.view,dir:u,className:`flex-1 h-full`,...t.slotProps?.board||{}}):(0,v.jsx)(p.t,{board:c.board,onCardClick:O,onCardDoubleClick:s,onCardDragStart:l.handleDragStart,onCardDragEnd:l.handleDragEnd,onCardDrop:l.handleDrop,onAddCard:w,onToggleColumnCollapse:k,onToggleSwimlaneCollapse:A,onDeleteColumn:l.deleteColumn,onUpdateColumn:l.updateColumn,onColumnClick:l.setSelectedColumnId,onCreateCard:T,selectedColumnId:c.selectedColumnId,draggedCardId:c.draggedCard?.id,filteredCards:c.filteredCards,slots:t.slots,slotProps:t.slotProps,view:c.view,dir:u,className:`flex-1 h-full`})}),t.slots?.cardEditor?(0,v.jsx)(t.slots.cardEditor,{isOpen:f,onClose:()=>m(!1),onSave:T,onDelete:E,card:_,columns:c.board.columns,...t.slotProps?.cardEditor||{}}):(0,v.jsx)(p.s,{isOpen:f,onClose:()=>m(!1),onSave:T,onDelete:E,card:_,columns:c.board.columns}),(0,v.jsx)(h.t,{isOpen:b,onClose:()=>x(!1),onConfirm:D,title:`Confirm Delete`,message:`Are you sure you want to delete this card?`,description:`This action cannot be undone.`})]})});L.displayName=`EzKanbanInner`,Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return I}});
@@ -1,19 +1,19 @@
1
1
  import { _ as e, n as t } from "./EzProvider-AlmsYIDk.js";
2
2
  import { t as n } from "./button-CYyNwV8S.js";
3
- import { t as r } from "./input-Cj3sQK3M.js";
3
+ import { t as r } from "./input-CcRi0LeO.js";
4
4
  import { t as i } from "./label-DWEV--5W.js";
5
5
  import { t as a } from "./EzErrorBoundary-C7a6VisX.js";
6
6
  import { t as o } from "./useInitCoreServices-CuBrviDM.js";
7
7
  import { t as s } from "./NotificationPanel-BzpDc10Q.js";
8
- import { i as c } from "./EzScheduler-CjQbi1Na.js";
9
- import { t as l } from "./useServiceState-CkrJZm1D.js";
10
- import { n as u, r as d, t as f } from "./popover-D1akYj0W.js";
11
- import { a as p, i as m, n as h, r as g, t as _ } from "./select-D4tFaSai.js";
12
- import { t as v } from "./checkbox-DRkQuB4W.js";
13
- import { c as y } from "./card-ZUNxcdIM.js";
14
- import { f as b, s as x, t as S } from "./KanbanBoard-BsZP_PJi.js";
8
+ import { c } from "./card-urNaa5h-.js";
9
+ import { i as l } from "./EzScheduler-D7aH4KCY.js";
10
+ import { t as u } from "./useServiceState-CkrJZm1D.js";
11
+ import { n as d, r as f, t as p } from "./popover-D1akYj0W.js";
12
+ import { a as m, i as h, n as g, r as _, t as v } from "./select-D4tFaSai.js";
13
+ import { t as y } from "./checkbox-BTuckDEm.js";
14
+ import { f as b, s as x, t as S } from "./KanbanBoard-CRF0-mYa.js";
15
15
  import { t as C } from "./scroll-area-BJs87d45.js";
16
- import { t as w } from "./DeleteConfirmationModal-p8XGDGIw.js";
16
+ import { t as w } from "./DeleteConfirmationModal-B_tXm0N0.js";
17
17
  import { forwardRef as T, useCallback as E, useEffect as D, useImperativeHandle as O, useMemo as k, useRef as A, useState as j } from "react";
18
18
  import { AlertTriangle as M, Download as N, Filter as P, Layers as F, Layout as I, Plus as L, Redo2 as R, Search as z, Undo2 as B } from "lucide-react";
19
19
  import { Fragment as V, jsx as H, jsxs as U } from "react/jsx-runtime";
@@ -288,11 +288,11 @@ var J = () => /* @__PURE__ */ H("div", {
288
288
  },
289
289
  onMutate: async (e) => {
290
290
  await i.cancelQueries({ queryKey: ["board", n.id] });
291
- let t = i.getQueryData(["board", n.id]);
292
- return s({
291
+ let t = i.getQueryData(["board", n.id]), r = {
293
292
  ...n,
294
293
  cards: [...n.cards, e]
295
- }), { previousBoard: t };
294
+ };
295
+ return s(r), { previousBoard: t };
296
296
  },
297
297
  onError: (e, t, n) => {
298
298
  n?.previousBoard && s(n.previousBoard), o("error", "Failed to create card. Please try again.", 5e3);
@@ -341,11 +341,11 @@ var J = () => /* @__PURE__ */ H("div", {
341
341
  ...n,
342
342
  ...t,
343
343
  updatedAt: /* @__PURE__ */ new Date()
344
- } : n);
345
- return s({
344
+ } : n), o = {
346
345
  ...n,
347
346
  cards: a
348
- }), { previousBoard: r };
347
+ };
348
+ return s(o), { previousBoard: r };
349
349
  },
350
350
  onError: (e, t, n) => {
351
351
  n?.previousBoard && s(n.previousBoard), o("error", "Failed to update card", 5e3);
@@ -363,11 +363,11 @@ var J = () => /* @__PURE__ */ H("div", {
363
363
  },
364
364
  onMutate: async (e) => {
365
365
  await i.cancelQueries({ queryKey: ["board", n.id] });
366
- let t = i.getQueryData(["board", n.id]);
367
- return s({
366
+ let t = i.getQueryData(["board", n.id]), r = {
368
367
  ...n,
369
368
  cards: n.cards.filter((t) => t.id !== e)
370
- }), {
369
+ };
370
+ return s(r), {
371
371
  previousBoard: t,
372
372
  deletedCardTitle: t?.cards.find((t) => t.id === e)?.title
373
373
  };
@@ -376,7 +376,8 @@ var J = () => /* @__PURE__ */ H("div", {
376
376
  n?.previousBoard && s(n.previousBoard), o("error", "Failed to delete card", 5e3);
377
377
  },
378
378
  onSuccess: (e, t, n) => {
379
- o("success", `Card "${n?.deletedCardTitle || "Card"}" deleted`);
379
+ let r = n?.deletedCardTitle || "Card";
380
+ o("success", `Card "${r}" deleted`);
380
381
  }
381
382
  }), p = E(async (e) => f.mutateAsync(e), [f]), m = K({
382
383
  mutationFn: async (t) => {
@@ -414,11 +415,11 @@ var J = () => /* @__PURE__ */ H("div", {
414
415
  ...l.filter((e) => e.columnId !== t && e.columnId !== p),
415
416
  ...m,
416
417
  ...f
417
- ];
418
- return s({
418
+ ], g = {
419
419
  ...n,
420
420
  cards: h
421
- }), { previousBoard: o };
421
+ };
422
+ return s(g), { previousBoard: o };
422
423
  },
423
424
  onError: (e, t, n) => {
424
425
  n?.previousBoard && s(n.previousBoard), o("error", "Failed to move card", 3e3);
@@ -437,14 +438,15 @@ var J = () => /* @__PURE__ */ H("div", {
437
438
  duplicateCard: E(async (e) => {
438
439
  let t = n.cards.find((t) => t.id === e);
439
440
  if (!t) throw Error("Card not found");
440
- return l({
441
+ let r = {
441
442
  ...t,
442
443
  id: `card-${Date.now()}`,
443
444
  title: `${t.title} (Copy)`,
444
445
  position: (t.position ?? 0) + 1,
445
446
  createdAt: /* @__PURE__ */ new Date(),
446
447
  updatedAt: /* @__PURE__ */ new Date()
447
- });
448
+ };
449
+ return l(r);
448
450
  }, [n.cards, l]),
449
451
  archiveCard: E(async (e) => d(e, { isArchived: !0 }), [d]),
450
452
  restoreCard: E(async (e) => d(e, { isArchived: !1 }), [d])
@@ -466,11 +468,11 @@ var J = () => /* @__PURE__ */ H("div", {
466
468
  },
467
469
  onMutate: async (e) => {
468
470
  await i.cancelQueries({ queryKey: ["board", n.id] });
469
- let t = i.getQueryData(["board", n.id]);
470
- return s({
471
+ let t = i.getQueryData(["board", n.id]), r = {
471
472
  ...n,
472
473
  columns: [...n.columns, e]
473
- }), { previousBoard: t };
474
+ };
475
+ return s(r), { previousBoard: t };
474
476
  },
475
477
  onError: (e, t, n) => {
476
478
  n?.previousBoard && s(n.previousBoard), o("error", "Failed to create column", 5e3);
@@ -508,14 +510,14 @@ var J = () => /* @__PURE__ */ H("div", {
508
510
  },
509
511
  onMutate: async ({ columnId: e, updates: t }) => {
510
512
  await i.cancelQueries({ queryKey: ["board", n.id] });
511
- let r = i.getQueryData(["board", n.id]);
512
- return s({
513
+ let r = i.getQueryData(["board", n.id]), a = {
513
514
  ...n,
514
515
  columns: n.columns.map((n) => n.id === e ? {
515
516
  ...n,
516
517
  ...t
517
518
  } : n)
518
- }), { previousBoard: r };
519
+ };
520
+ return s(a), { previousBoard: r };
519
521
  },
520
522
  onError: (e, t, n) => {
521
523
  n?.previousBoard && s(n.previousBoard), o("error", "Failed to update column", 5e3);
@@ -530,12 +532,12 @@ var J = () => /* @__PURE__ */ H("div", {
530
532
  },
531
533
  onMutate: async (e) => {
532
534
  await i.cancelQueries({ queryKey: ["board", n.id] });
533
- let t = i.getQueryData(["board", n.id]), r = t?.columns.find((t) => t.id === e);
534
- return s({
535
+ let t = i.getQueryData(["board", n.id]), r = t?.columns.find((t) => t.id === e), a = {
535
536
  ...n,
536
537
  columns: n.columns.filter((t) => t.id !== e),
537
538
  cards: n.cards.filter((t) => t.columnId !== e)
538
- }), {
539
+ };
540
+ return s(a), {
539
541
  previousBoard: t,
540
542
  deletedColumnName: r?.name
541
543
  };
@@ -544,7 +546,8 @@ var J = () => /* @__PURE__ */ H("div", {
544
546
  n?.previousBoard && s(n.previousBoard), o("error", "Failed to delete column", 5e3);
545
547
  },
546
548
  onSuccess: (e, t, n) => {
547
- o("success", `Column "${n?.deletedColumnName || "Column"}" deleted`);
549
+ let r = n?.deletedColumnName || "Column";
550
+ o("success", `Column "${r}" deleted`);
548
551
  }
549
552
  }), p = E(async (e) => f.mutateAsync(e), [f]), m = K({
550
553
  mutationFn: async (e) => {
@@ -557,8 +560,7 @@ var J = () => /* @__PURE__ */ H("div", {
557
560
  },
558
561
  onMutate: async (e) => {
559
562
  await i.cancelQueries({ queryKey: ["board", n.id] });
560
- let t = i.getQueryData(["board", n.id]);
561
- return s({
563
+ let t = i.getQueryData(["board", n.id]), r = {
562
564
  ...n,
563
565
  columns: e.map((e, t) => {
564
566
  let r = n.columns.find((t) => t.id === e);
@@ -568,7 +570,8 @@ var J = () => /* @__PURE__ */ H("div", {
568
570
  position: t
569
571
  };
570
572
  })
571
- }), { previousBoard: t };
573
+ };
574
+ return s(r), { previousBoard: t };
572
575
  },
573
576
  onError: (e, t, n) => {
574
577
  n?.previousBoard && s(n.previousBoard), o("error", "Failed to reorder columns", 3e3);
@@ -603,11 +606,11 @@ var J = () => /* @__PURE__ */ H("div", {
603
606
  },
604
607
  onMutate: async (e) => {
605
608
  await i.cancelQueries({ queryKey: ["board", n.id] });
606
- let t = i.getQueryData(["board", n.id]);
607
- return s({
609
+ let t = i.getQueryData(["board", n.id]), r = {
608
610
  ...n,
609
611
  swimlanes: [...n.swimlanes || [], e]
610
- }), { previousBoard: t };
612
+ };
613
+ return s(r), { previousBoard: t };
611
614
  },
612
615
  onError: (e, t, n) => {
613
616
  n?.previousBoard && s(n.previousBoard), o("error", "Failed to create swimlane", 5e3);
@@ -644,14 +647,14 @@ var J = () => /* @__PURE__ */ H("div", {
644
647
  },
645
648
  onMutate: async ({ swimlaneId: e, updates: t }) => {
646
649
  await i.cancelQueries({ queryKey: ["board", n.id] });
647
- let r = i.getQueryData(["board", n.id]);
648
- return s({
650
+ let r = i.getQueryData(["board", n.id]), a = {
649
651
  ...n,
650
652
  swimlanes: (n.swimlanes || []).map((n) => n.id === e ? {
651
653
  ...n,
652
654
  ...t
653
655
  } : n)
654
- }), { previousBoard: r };
656
+ };
657
+ return s(a), { previousBoard: r };
655
658
  },
656
659
  onError: (e, t, n) => {
657
660
  n?.previousBoard && s(n.previousBoard), o("error", "Failed to update swimlane", 5e3);
@@ -666,15 +669,15 @@ var J = () => /* @__PURE__ */ H("div", {
666
669
  },
667
670
  onMutate: async (e) => {
668
671
  await i.cancelQueries({ queryKey: ["board", n.id] });
669
- let t = i.getQueryData(["board", n.id]), r = t?.swimlanes?.find((t) => t.id === e);
670
- return s({
672
+ let t = i.getQueryData(["board", n.id]), r = t?.swimlanes?.find((t) => t.id === e), a = {
671
673
  ...n,
672
674
  swimlanes: (n.swimlanes || []).filter((t) => t.id !== e),
673
675
  cards: n.cards.map((t) => t.swimlaneId === e ? {
674
676
  ...t,
675
677
  swimlaneId: void 0
676
678
  } : t)
677
- }), {
679
+ };
680
+ return s(a), {
678
681
  previousBoard: t,
679
682
  deletedSwimlaneName: r?.name
680
683
  };
@@ -683,7 +686,8 @@ var J = () => /* @__PURE__ */ H("div", {
683
686
  n?.previousBoard && s(n.previousBoard), o("error", "Failed to delete swimlane", 5e3);
684
687
  },
685
688
  onSuccess: (e, t, n) => {
686
- o("success", `Swimlane "${n?.deletedSwimlaneName || "Swimlane"}" deleted`);
689
+ let r = n?.deletedSwimlaneName || "Swimlane";
690
+ o("success", `Swimlane "${r}" deleted`);
687
691
  }
688
692
  }), p = E(async (e) => f.mutateAsync(e), [f]), m = K({
689
693
  mutationFn: async (e) => {
@@ -696,8 +700,7 @@ var J = () => /* @__PURE__ */ H("div", {
696
700
  },
697
701
  onMutate: async (e) => {
698
702
  await i.cancelQueries({ queryKey: ["board", n.id] });
699
- let t = i.getQueryData(["board", n.id]);
700
- return s({
703
+ let t = i.getQueryData(["board", n.id]), r = {
701
704
  ...n,
702
705
  swimlanes: e.map((e, t) => {
703
706
  let r = n.swimlanes?.find((t) => t.id === e);
@@ -706,7 +709,8 @@ var J = () => /* @__PURE__ */ H("div", {
706
709
  position: t
707
710
  } : null;
708
711
  }).filter(Boolean)
709
- }), { previousBoard: t };
712
+ };
713
+ return s(r), { previousBoard: t };
710
714
  },
711
715
  onError: (e, t, n) => {
712
716
  n?.previousBoard && s(n.previousBoard), o("error", "Failed to reorder swimlanes", 3e3);
@@ -818,10 +822,10 @@ var J = () => /* @__PURE__ */ H("div", {
818
822
  ])
819
823
  };
820
824
  }, Q = (e, t = {}) => {
821
- let n = l("I18nService")?.dir || "ltr", r = e.dir === "auto" || !e.dir ? n : e.dir, i = {
825
+ let n = u("I18nService")?.dir || "ltr", r = e.dir === "auto" || !e.dir ? n : e.dir, i = {
822
826
  showSpinner: () => {},
823
827
  hideSpinner: () => {}
824
- }, { board: a, setBoard: o, selectedCards: s, setSelectedCards: u, selectedColumnId: d, setSelectedColumnId: f, view: p, setView: m, undo: h, redo: g, canUndo: _, canRedo: v } = ne(e), [y, b] = j(null), { createCard: x, updateCard: S, deleteCard: C, moveCard: w, duplicateCard: T, archiveCard: E, restoreCard: D } = re(e, a), { createColumn: O, updateColumn: A, deleteColumn: M, reorderColumns: N, collapseColumn: P, expandColumn: F } = ie(e, a), { createSwimlane: I, updateSwimlane: L, deleteSwimlane: R, reorderSwimlanes: z, collapseSwimlane: B, expandSwimlane: V } = ae(e, a), { draggedCard: H, dragOverColumn: U, handleDragStart: W, handleDragOver: G, handleDragEnd: ee, handleDrop: te } = se(a, w, e.wipStrict, e), { filteredCards: K, searchQuery: q, setSearchQuery: J, activeFilters: Y, setActiveFilters: X, clearFilters: Z } = oe(a), { selectedIndex: Q, setSelectedIndex: $ } = c({
828
+ }, { board: a, setBoard: o, selectedCards: s, setSelectedCards: c, selectedColumnId: d, setSelectedColumnId: f, view: p, setView: m, undo: h, redo: g, canUndo: _, canRedo: v } = ne(e), [y, b] = j(null), { createCard: x, updateCard: S, deleteCard: C, moveCard: w, duplicateCard: T, archiveCard: E, restoreCard: D } = re(e, a), { createColumn: O, updateColumn: A, deleteColumn: M, reorderColumns: N, collapseColumn: P, expandColumn: F } = ie(e, a), { createSwimlane: I, updateSwimlane: L, deleteSwimlane: R, reorderSwimlanes: z, collapseSwimlane: B, expandSwimlane: V } = ae(e, a), { draggedCard: H, dragOverColumn: U, handleDragStart: W, handleDragOver: G, handleDragEnd: ee, handleDrop: te } = se(a, w, e.wipStrict, e), { filteredCards: K, searchQuery: q, setSearchQuery: J, activeFilters: Y, setActiveFilters: X, clearFilters: Z } = oe(a), { selectedIndex: Q, setSelectedIndex: $ } = l({
825
829
  totalItems: K.length,
826
830
  columns: 1,
827
831
  enabled: !e.readOnly,
@@ -864,12 +868,13 @@ var J = () => /* @__PURE__ */ H("div", {
864
868
  expandSwimlane: V,
865
869
  getSwimlane: (e) => a.swimlanes?.find((t) => t.id === e),
866
870
  getSwimlanes: () => a.swimlanes || [],
867
- selectCard: (e) => u([e]),
868
- selectCards: u,
871
+ selectCard: (e) => c([e]),
872
+ selectCards: c,
869
873
  deselectCard: (e) => {
870
- u(s.filter((t) => t !== e));
874
+ let t = s.filter((t) => t !== e);
875
+ c(t);
871
876
  },
872
- deselectAllCards: () => u([]),
877
+ deselectAllCards: () => c([]),
873
878
  getSelectedCards: () => a.cards.filter((e) => s.includes(e.id)),
874
879
  focusCard: (e) => {
875
880
  let t = document.getElementById(e) || document.querySelector(`[data-card-id="${e}"]`);
@@ -940,7 +945,7 @@ var J = () => /* @__PURE__ */ H("div", {
940
945
  B,
941
946
  V,
942
947
  s,
943
- u,
948
+ c,
944
949
  d,
945
950
  f,
946
951
  q,
@@ -975,7 +980,7 @@ var J = () => /* @__PURE__ */ H("div", {
975
980
  },
976
981
  actions: {
977
982
  setBoard: o,
978
- setSelectedCards: u,
983
+ setSelectedCards: c,
979
984
  setSelectedColumnId: f,
980
985
  setView: m,
981
986
  createCard: x,
@@ -1018,7 +1023,7 @@ var J = () => /* @__PURE__ */ H("div", {
1018
1023
  a,
1019
1024
  o,
1020
1025
  s,
1021
- u,
1026
+ c,
1022
1027
  y,
1023
1028
  d,
1024
1029
  f,
@@ -1092,7 +1097,7 @@ var ce = ({ board: e, activeFilters: t, onFiltersChange: r, onClearFilters: a })
1092
1097
  ...t,
1093
1098
  priority: i.length ? i : void 0
1094
1099
  });
1095
- }, p = (e) => {
1100
+ }, u = (e) => {
1096
1101
  let n = t.tags || [], i = n.includes(e) ? n.filter((t) => t !== e) : [...n, e];
1097
1102
  r({
1098
1103
  ...t,
@@ -1105,7 +1110,7 @@ var ce = ({ board: e, activeFilters: t, onFiltersChange: r, onClearFilters: a })
1105
1110
  assignees: i.length ? i : void 0
1106
1111
  });
1107
1112
  }, h = (t.priority?.length || 0) + (t.tags?.length || 0) + (t.assignees?.length || 0);
1108
- return /* @__PURE__ */ U(f, { children: [/* @__PURE__ */ H(d, {
1113
+ return /* @__PURE__ */ U(p, { children: [/* @__PURE__ */ H(f, {
1109
1114
  asChild: !0,
1110
1115
  children: /* @__PURE__ */ U(n, {
1111
1116
  variant: "outline",
@@ -1121,7 +1126,7 @@ var ce = ({ board: e, activeFilters: t, onFiltersChange: r, onClearFilters: a })
1121
1126
  })
1122
1127
  ]
1123
1128
  })
1124
- }), /* @__PURE__ */ U(u, {
1129
+ }), /* @__PURE__ */ U(d, {
1125
1130
  className: "w-80 p-4",
1126
1131
  align: "start",
1127
1132
  children: [/* @__PURE__ */ U("div", {
@@ -1150,7 +1155,7 @@ var ce = ({ board: e, activeFilters: t, onFiltersChange: r, onClearFilters: a })
1150
1155
  className: "space-y-2",
1151
1156
  children: c.map((e) => /* @__PURE__ */ U("div", {
1152
1157
  className: "flex items-center space-x-2",
1153
- children: [/* @__PURE__ */ H(v, {
1158
+ children: [/* @__PURE__ */ H(y, {
1154
1159
  id: `priority-${e}`,
1155
1160
  checked: t.priority?.includes(e),
1156
1161
  onCheckedChange: () => l(e)
@@ -1171,7 +1176,7 @@ var ce = ({ board: e, activeFilters: t, onFiltersChange: r, onClearFilters: a })
1171
1176
  className: "space-y-2",
1172
1177
  children: s.map((e) => /* @__PURE__ */ U("div", {
1173
1178
  className: "flex items-center space-x-2",
1174
- children: [/* @__PURE__ */ H(v, {
1179
+ children: [/* @__PURE__ */ H(y, {
1175
1180
  id: `assignee-${e.id}`,
1176
1181
  checked: t.assignees?.includes(e.id),
1177
1182
  onCheckedChange: () => m(e.id)
@@ -1196,10 +1201,10 @@ var ce = ({ board: e, activeFilters: t, onFiltersChange: r, onClearFilters: a })
1196
1201
  className: "space-y-2",
1197
1202
  children: o.map((e) => /* @__PURE__ */ U("div", {
1198
1203
  className: "flex items-center space-x-2",
1199
- children: [/* @__PURE__ */ H(v, {
1204
+ children: [/* @__PURE__ */ H(y, {
1200
1205
  id: `tag-${e.id}`,
1201
1206
  checked: t.tags?.includes(e.id),
1202
- onCheckedChange: () => p(e.id)
1207
+ onCheckedChange: () => u(e.id)
1203
1208
  }), /* @__PURE__ */ U(i, {
1204
1209
  htmlFor: `tag-${e.id}`,
1205
1210
  className: "text-sm font-normal cursor-pointer flex items-center gap-2",
@@ -1215,8 +1220,8 @@ var ce = ({ board: e, activeFilters: t, onFiltersChange: r, onClearFilters: a })
1215
1220
  })
1216
1221
  })]
1217
1222
  })] });
1218
- }, le = ({ searchQuery: e, onSearchChange: i, onAddCardClick: a, onAddColumn: o, board: s, className: c, view: l = "standard", onViewChange: u, onUndo: d, onRedo: f, canUndo: v, canRedo: b, activeFilters: x, onFiltersChange: S }) => {
1219
- let C = t(), [w, T] = j(e), { t: E } = y(), O = $(w, 300);
1223
+ }, le = ({ searchQuery: e, onSearchChange: i, onAddCardClick: a, onAddColumn: o, board: s, className: l, view: u = "standard", onViewChange: d, onUndo: f, onRedo: p, canUndo: y, canRedo: b, activeFilters: x, onFiltersChange: S }) => {
1224
+ let C = t(), [w, T] = j(e), { t: E } = c(), O = $(w, 300);
1220
1225
  D(() => {
1221
1226
  i(O);
1222
1227
  }, [O, i]), D(() => {
@@ -1305,21 +1310,21 @@ var ce = ({ board: e, activeFilters: t, onFiltersChange: r, onClearFilters: a })
1305
1310
  }
1306
1311
  };
1307
1312
  return /* @__PURE__ */ H(V, { children: /* @__PURE__ */ U("div", {
1308
- className: `flex items-center gap-4 p-4 border-b ${c || ""}`,
1313
+ className: `flex items-center gap-4 p-4 border-b ${l || ""}`,
1309
1314
  children: [
1310
1315
  /* @__PURE__ */ U("div", {
1311
1316
  className: "flex gap-1 mr-2",
1312
1317
  children: [/* @__PURE__ */ H(n, {
1313
1318
  variant: "ghost",
1314
1319
  size: "icon",
1315
- onClick: d,
1316
- disabled: !v,
1320
+ onClick: f,
1321
+ disabled: !y,
1317
1322
  title: "Undo (Ctrl+Z)",
1318
1323
  children: /* @__PURE__ */ H(B, { className: "h-4 w-4" })
1319
1324
  }), /* @__PURE__ */ H(n, {
1320
1325
  variant: "ghost",
1321
1326
  size: "icon",
1322
- onClick: f,
1327
+ onClick: p,
1323
1328
  disabled: !b,
1324
1329
  title: "Redo (Ctrl+Shift+Z)",
1325
1330
  children: /* @__PURE__ */ H(R, { className: "h-4 w-4" })
@@ -1336,25 +1341,25 @@ var ce = ({ board: e, activeFilters: t, onFiltersChange: r, onClearFilters: a })
1336
1341
  }),
1337
1342
  /* @__PURE__ */ H("div", {
1338
1343
  className: "w-[180px]",
1339
- children: /* @__PURE__ */ U(_, {
1340
- value: l,
1341
- onValueChange: (e) => u?.(e),
1342
- children: [/* @__PURE__ */ H(m, { children: /* @__PURE__ */ H(p, { placeholder: "Select view" }) }), /* @__PURE__ */ U(h, { children: [
1343
- /* @__PURE__ */ H(g, {
1344
+ children: /* @__PURE__ */ U(v, {
1345
+ value: u,
1346
+ onValueChange: (e) => d?.(e),
1347
+ children: [/* @__PURE__ */ H(h, { children: /* @__PURE__ */ H(m, { placeholder: "Select view" }) }), /* @__PURE__ */ U(g, { children: [
1348
+ /* @__PURE__ */ H(_, {
1344
1349
  value: "standard",
1345
1350
  children: /* @__PURE__ */ U("div", {
1346
1351
  className: "flex items-center",
1347
1352
  children: [/* @__PURE__ */ H(I, { className: "h-4 w-4 mr-2" }), E("view_standard")]
1348
1353
  })
1349
1354
  }),
1350
- /* @__PURE__ */ H(g, {
1355
+ /* @__PURE__ */ H(_, {
1351
1356
  value: "swimlane",
1352
1357
  children: /* @__PURE__ */ U("div", {
1353
1358
  className: "flex items-center",
1354
1359
  children: [/* @__PURE__ */ H(F, { className: "h-4 w-4 mr-2" }), E("view_swimlane")]
1355
1360
  })
1356
1361
  }),
1357
- /* @__PURE__ */ H(g, {
1362
+ /* @__PURE__ */ H(_, {
1358
1363
  value: "timeline",
1359
1364
  children: /* @__PURE__ */ U("div", {
1360
1365
  className: "flex items-center",
@@ -1425,8 +1430,9 @@ var fe = T((t, n) => {
1425
1430
  let { className: r, readOnly: i, onCardClick: a, onCardDoubleClick: o } = t, { state: c, actions: l, dir: u, imperativeAPI: d } = Q(t, n), [f, p] = j(!1), [m, h] = j(void 0), [g, _] = j(!1), [v, y] = j(null);
1426
1431
  O(n, () => d, [d]);
1427
1432
  let b = (e) => {
1433
+ let t = e || c.selectedColumnId || c.board.columns[0]?.id;
1428
1434
  h({
1429
- columnId: e || c.selectedColumnId || c.board.columns[0]?.id,
1435
+ columnId: t,
1430
1436
  title: "",
1431
1437
  description: "",
1432
1438
  priority: "medium"