ezux 1.1.13 → 1.1.15

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 (201) hide show
  1. package/README.md +22 -0
  2. package/dist/EzContextMenu-9STA_8UL.cjs +1 -0
  3. package/dist/EzContextMenu-vcwZjlYv.js +288 -0
  4. package/dist/EzErrorBoundary-C7R4h7QH.cjs +1 -0
  5. package/dist/EzErrorBoundary-b-fGQvjw.js +74 -0
  6. package/dist/EzEventModal-C1ItJBxp.cjs +1 -0
  7. package/dist/EzEventModal-MDtx4Gwd.js +720 -0
  8. package/dist/EzFlow-B3oi5QvJ.js +2533 -0
  9. package/dist/EzFlow-BeiFmX7h.cjs +5 -0
  10. package/dist/EzGroupingPanel-B1B2B3Sc.js +107 -0
  11. package/dist/EzGroupingPanel-BGHywLsj.cjs +1 -0
  12. package/dist/EzKanban-CEPmBCZV.js +1589 -0
  13. package/dist/EzKanban-CsnJ80LW.cjs +2 -0
  14. package/dist/EzLayout-DYRKNOrI.cjs +1 -0
  15. package/dist/EzLayout-DyMI9A92.js +6986 -0
  16. package/dist/EzProvider-Df2qgeDn.js +975 -0
  17. package/dist/EzProvider-DntSad5M.cjs +1 -0
  18. package/dist/EzScheduler-CTYXyOG8.js +2737 -0
  19. package/dist/EzScheduler-CzL68fTe.cjs +1 -0
  20. package/dist/EzSchedulerQuickAdd-CPSPAjdk.cjs +1 -0
  21. package/dist/EzSchedulerQuickAdd-wXGn1L1c.js +124 -0
  22. package/dist/EzSchedulerToolbar-B5iXsdn2.cjs +1 -0
  23. package/dist/EzSchedulerToolbar-NdKzGgMo.js +306 -0
  24. package/dist/EzSignature-Bg9jJvHp.cjs +1 -0
  25. package/dist/EzSignature-CZk-iAb3.js +375 -0
  26. package/dist/EzTable-Bde5BUoE.cjs +3 -0
  27. package/dist/EzTable-CaCyWXNv.js +4291 -0
  28. package/dist/EzTableEditDialog-5CJ-i5FI.js +84 -0
  29. package/dist/EzTableEditDialog-DAPhmWxI.cjs +1 -0
  30. package/dist/EzTableFooter-B347PRkZ.js +35 -0
  31. package/dist/EzTableFooter-ZqHoQKYB.cjs +1 -0
  32. package/dist/EzTableToolbar-D4Qw-fwb.js +161 -0
  33. package/dist/EzTableToolbar-DNxAgMdI.cjs +1 -0
  34. package/dist/EzTreeView-ChsTltti.js +819 -0
  35. package/dist/EzTreeView-D8k-Wmxa.cjs +1 -0
  36. package/dist/HighlightText-BZ_1jMaA.js +56 -0
  37. package/dist/HighlightText-V5NgtV18.cjs +1 -0
  38. package/dist/KanbanBoard-BzIhmn-2.cjs +1 -0
  39. package/dist/KanbanBoard-DTsy_GAc.js +1698 -0
  40. package/dist/NotificationPanel-B0pVgPcO.js +55 -0
  41. package/dist/NotificationPanel-ulIs4r-0.cjs +1 -0
  42. package/dist/TooltipWrapper-66yWxRSD.js +44 -0
  43. package/dist/TooltipWrapper-QRc3qTIG.cjs +1 -0
  44. package/dist/advanced.cjs +10 -0
  45. package/dist/advanced.d.ts +2616 -0
  46. package/dist/advanced.es.js +401 -0
  47. package/dist/avatar-DOjSWi4R.js +24 -0
  48. package/dist/avatar-hWg4zkh7.cjs +1 -0
  49. package/dist/button-BN0DK137.js +42 -0
  50. package/dist/button-CfngAt_5.cjs +1 -0
  51. package/dist/calendar-DEtDSI0W.js +112 -0
  52. package/dist/calendar-DroJGSPS.cjs +1 -0
  53. package/dist/card-CswobLmE.cjs +1 -0
  54. package/dist/card-vtDNxeL3.js +50 -0
  55. package/dist/checkbox-BpxQa4HQ.cjs +1 -0
  56. package/dist/checkbox-CS_BOaA6.js +22 -0
  57. package/dist/chunk-D-qHiVGv.cjs +1 -0
  58. package/dist/date-time-picker-C6i4TdP7.js +127 -0
  59. package/dist/date-time-picker-CfHnqJDm.cjs +1 -0
  60. package/dist/dropdown-menu-HrOgNiFv.js +78 -0
  61. package/dist/dropdown-menu-Xjuk1Xa-.cjs +1 -0
  62. package/dist/ezux.css +2 -1
  63. package/dist/flow.cjs +1 -0
  64. package/dist/flow.d.ts +539 -0
  65. package/dist/flow.es.js +2 -0
  66. package/dist/index.cjs +3 -12
  67. package/dist/index.d.ts +385 -1368
  68. package/dist/index.es.js +230 -1041
  69. package/dist/input-BE8Mmo8X.js +13 -0
  70. package/dist/input-DPWRzn7K.cjs +1 -0
  71. package/dist/kanban.cjs +1 -1
  72. package/dist/kanban.es.js +4 -17
  73. package/dist/label-4cHst7uN.cjs +1 -0
  74. package/dist/label-BLMeK8-Z.js +14 -0
  75. package/dist/layout.cjs +1 -1
  76. package/dist/layout.d.ts +4 -0
  77. package/dist/layout.es.js +2 -20
  78. package/dist/mock-services.cjs +1 -0
  79. package/dist/mock-services.d.ts +273 -0
  80. package/dist/mock-services.es.js +161 -0
  81. package/dist/popover--Cf3FJ0g.cjs +1 -0
  82. package/dist/popover-CbakOivq.js +15 -0
  83. package/dist/rolldown-runtime-CAFD8bLK.js +11 -0
  84. package/dist/scheduler.cjs +1 -1
  85. package/dist/scheduler.d.ts +78 -3
  86. package/dist/scheduler.es.js +2 -11
  87. package/dist/scroll-area-CBllCk9n.js +35 -0
  88. package/dist/scroll-area-COOakfzY.cjs +1 -0
  89. package/dist/select-1vYIUsge.cjs +1 -0
  90. package/dist/select-Bes3Q6zL.js +43 -0
  91. package/dist/signature.cjs +1 -1
  92. package/dist/signature.es.js +2 -4
  93. package/dist/table.cjs +1 -1
  94. package/dist/table.d.ts +78 -24
  95. package/dist/table.es.js +2 -17
  96. package/dist/theme-vars.css +143 -135
  97. package/dist/tooltip-BRCnO0kH.cjs +1 -0
  98. package/dist/tooltip-CrhCAu6_.js +14 -0
  99. package/dist/treeview.cjs +1 -1
  100. package/dist/treeview.es.js +2 -954
  101. package/dist/useComponentState-CYR9x36s.js +57 -0
  102. package/dist/useComponentState-DqA-gi3-.cjs +1 -0
  103. package/dist/useImperativeAPI-CPRA9SCj.js +7 -0
  104. package/dist/useImperativeAPI-KOlk1Cvt.cjs +1 -0
  105. package/dist/useInitCoreServices-CRq0kPGA.cjs +1 -0
  106. package/dist/useInitCoreServices-lkTv2its.js +40 -0
  107. package/dist/useService-BkqWkhiU.js +10 -0
  108. package/dist/useService-CKITee_1.cjs +1 -0
  109. package/dist/useServiceState-BDTGXKyx.cjs +1 -0
  110. package/dist/useServiceState-CInpkGt2.js +21 -0
  111. package/dist/utils-DyS9jpam.cjs +1 -0
  112. package/dist/utils-hFRduYmq.js +8 -0
  113. package/package.json +42 -16
  114. package/dist/EzContextMenu-B6HBUjWv.cjs +0 -5
  115. package/dist/EzContextMenu-BSA_B6Pr.js +0 -3500
  116. package/dist/EzErrorBoundary-CEdz_hDo.cjs +0 -41
  117. package/dist/EzErrorBoundary-D4NBadES.js +0 -3727
  118. package/dist/EzEventModal-BUMp_BFi.js +0 -689
  119. package/dist/EzEventModal-xzHfzi0O.cjs +0 -1
  120. package/dist/EzGroupingPanel-BUsIYDRi.js +0 -143
  121. package/dist/EzGroupingPanel-D0HdSomF.cjs +0 -1
  122. package/dist/EzSchedulerQuickAdd-C653LTGh.js +0 -118
  123. package/dist/EzSchedulerQuickAdd-UnOWCpJd.cjs +0 -1
  124. package/dist/EzSchedulerToolbar-C-5OdRY6.cjs +0 -1
  125. package/dist/EzSchedulerToolbar-CO5jjDQg.js +0 -240
  126. package/dist/EzSignature-BaNesxwC.cjs +0 -1
  127. package/dist/EzSignature-D4EYwo9W.js +0 -419
  128. package/dist/EzTableEditDialog-Cd948V1C.js +0 -63
  129. package/dist/EzTableEditDialog-NiOubaMT.cjs +0 -1
  130. package/dist/EzTableFooter-CWjfGCjL.cjs +0 -1
  131. package/dist/EzTableFooter-DveD12RC.js +0 -54
  132. package/dist/EzTableToolbar-Bz8UWv6j.js +0 -246
  133. package/dist/EzTableToolbar-DHE7Bb1R.cjs +0 -1
  134. package/dist/HighlightText-8D6KEyBw.js +0 -68
  135. package/dist/HighlightText-LtZmzCle.cjs +0 -1
  136. package/dist/NotificationPanel-D2Y-_ahk.js +0 -68
  137. package/dist/NotificationPanel-zLxrtTGf.cjs +0 -1
  138. package/dist/TooltipWrapper-BrRTi5EJ.js +0 -2021
  139. package/dist/TooltipWrapper-DWts4bAI.cjs +0 -1
  140. package/dist/avatar-BeK0E4mn.js +0 -41
  141. package/dist/avatar-DZAaTK2f.cjs +0 -1
  142. package/dist/bell-DAz8P0BR.js +0 -14
  143. package/dist/bell-DOX2y38e.cjs +0 -1
  144. package/dist/calendar-BMZ8ddOf.cjs +0 -1
  145. package/dist/calendar-Dy3rVMW2.js +0 -90
  146. package/dist/checkbox-B0lGHUyy.cjs +0 -1
  147. package/dist/checkbox-boJRxICT.js +0 -46
  148. package/dist/chevron-down-C3s8jU6B.js +0 -5
  149. package/dist/chevron-down-DZVL7VHW.cjs +0 -1
  150. package/dist/chevron-left-BFr8XZyF.js +0 -5
  151. package/dist/chevron-left-HWhRo6IH.cjs +0 -1
  152. package/dist/circle-alert-77QqFR-z.cjs +0 -1
  153. package/dist/circle-alert-B2AMDd8N.js +0 -9
  154. package/dist/circle-x-Cv7bfIC_.js +0 -9
  155. package/dist/circle-x-DwVXxhXr.cjs +0 -1
  156. package/dist/date-time-picker-DTxHdPgQ.cjs +0 -1
  157. package/dist/date-time-picker-Dj2eftJI.js +0 -1636
  158. package/dist/download-0ZhO2XaW.cjs +0 -1
  159. package/dist/download-panVHmk6.js +0 -9
  160. package/dist/ellipsis-CuqNthAj.js +0 -9
  161. package/dist/ellipsis-CzlqJf-i.cjs +0 -1
  162. package/dist/grip-vertical-CSyDKBul.js +0 -12
  163. package/dist/grip-vertical-DZNBW1Dn.cjs +0 -1
  164. package/dist/index-B3ipEEhH.cjs +0 -2
  165. package/dist/index-BPPb7bcs.js +0 -3220
  166. package/dist/index-BQKw_Vho.js +0 -9604
  167. package/dist/index-C5STgBSy.js +0 -5203
  168. package/dist/index-C6NfgycP.js +0 -4644
  169. package/dist/index-D4f2ZdrG.cjs +0 -2
  170. package/dist/index-DUY1SqMo.cjs +0 -1
  171. package/dist/index-c1Zg--dt.cjs +0 -7
  172. package/dist/input-BgM_la4k.cjs +0 -1
  173. package/dist/input-jYQ5VKNR.js +0 -21
  174. package/dist/isBefore-C3Y_wbk3.js +0 -15
  175. package/dist/isBefore-Cp1ttk6q.cjs +0 -1
  176. package/dist/label-ClOW9UCt.js +0 -55
  177. package/dist/label-Dx6oDB-X.cjs +0 -1
  178. package/dist/layers-BA4i1fYX.js +0 -27
  179. package/dist/layers-xSPd-hz3.cjs +0 -1
  180. package/dist/popover-BJq1CKmi.cjs +0 -1
  181. package/dist/popover-Cmlb7w3R.js +0 -341
  182. package/dist/scroll-area-9fwpVNxT.js +0 -573
  183. package/dist/scroll-area-CwwZSSA4.cjs +0 -1
  184. package/dist/select-GxA46anr.cjs +0 -1
  185. package/dist/select-mDCun_IR.js +0 -35
  186. package/dist/settings-CvyjK75A.js +0 -31
  187. package/dist/settings-DKPknrt8.cjs +0 -1
  188. package/dist/sortable.esm-CsRPuXyD.cjs +0 -1
  189. package/dist/sortable.esm-CzMCDPet.js +0 -477
  190. package/dist/tooltip-B41iztKT.cjs +0 -1
  191. package/dist/tooltip-BCtrEe0z.js +0 -490
  192. package/dist/useComponentState-C87xXa5d.js +0 -64
  193. package/dist/useComponentState-DDgGbBXv.cjs +0 -1
  194. package/dist/useImperativeAPI-DXmCQvPL.js +0 -7
  195. package/dist/useImperativeAPI-DbZ3owSV.cjs +0 -1
  196. package/dist/useInitCoreServices-CwXv2p4S.cjs +0 -1
  197. package/dist/useInitCoreServices-D1WaWlaI.js +0 -3929
  198. package/dist/useService-8OoezWr8.cjs +0 -1
  199. package/dist/useService-BUi3uAqE.js +0 -10
  200. package/dist/useServiceState-BjpCjUn2.cjs +0 -1
  201. package/dist/useServiceState-VE-viK8b.js +0 -24
package/README.md CHANGED
@@ -21,6 +21,7 @@
21
21
  - **EzScheduler**: Drag-and-drop timeline management with resource grouping.
22
22
  - **EzKanban**: Trello-like board with swimlanes and timeline views.
23
23
  - **EzTreeView**: Virtualized tree handling unlimited nesting.
24
+ - **EzFlow**: Production workflow builder with typed nodes, validation, import/export, and service-backed save/publish.
24
25
  - **EzLayout**: A fluid orchestration engine for complex interfaces.
25
26
 
26
27
  ## Prerequisites
@@ -54,6 +55,27 @@ function App() {
54
55
  }
55
56
  ```
56
57
 
58
+ ### EzFlow Workflow Builder
59
+
60
+ ```tsx
61
+ import { EzWorkflow, approvalWorkflowExample, createLocalEzWorkflowService } from 'ezux/flow';
62
+
63
+ const workflowService = createLocalEzWorkflowService({
64
+ approval: approvalWorkflowExample,
65
+ });
66
+
67
+ function WorkflowDesigner() {
68
+ return (
69
+ <EzWorkflow
70
+ workflowId="approval"
71
+ service={workflowService}
72
+ defaultWorkflow={approvalWorkflowExample}
73
+ onValidationChange={(result) => console.log(result.valid)}
74
+ />
75
+ );
76
+ }
77
+ ```
78
+
57
79
  ## Documentation
58
80
 
59
81
  Visit the [Live Showcase](https://ezux-showcase.vercel.app) for full documentation and interactive examples.
@@ -0,0 +1 @@
1
+ const e=require(`./chunk-D-qHiVGv.cjs`),t=require(`./utils-DyS9jpam.cjs`),n=require(`./EzProvider-DntSad5M.cjs`),r=require(`./EzErrorBoundary-C7R4h7QH.cjs`);let i=require(`react`);i=e.n(i,1);let a=require(`lucide-react`),o=require(`react/jsx-runtime`),s=require(`@tanstack/react-virtual`),c=require(`@tanstack/virtual-core`),l=require(`@radix-ui/react-context-menu`);l=e.n(l,1);var u=class{name=`VirtualizationService`;virtualizers=new Map;createVirtualizer(e,t){let n=new c.Virtualizer({count:t.count,getScrollElement:t.getScrollElement,estimateSize:t.estimateSize,overscan:t.overscan??5,horizontal:t.horizontal??!1,scrollToFn:c.elementScroll,observeElementRect:(e,t)=>{let n=e.scrollElement;if(!n||n===window)return;let r=new ResizeObserver(e=>{t(e[0].contentRect)});return r.observe(n),()=>r.disconnect()},observeElementOffset:(e,t)=>{let n=e.scrollElement;if(!n)return;let r=()=>{t(n===window?window.scrollY:n.scrollTop,!0)};return n.addEventListener(`scroll`,r,{passive:!0}),t(n===window?window.scrollY:n.scrollTop,!1),()=>n.removeEventListener(`scroll`,r)}});return this.virtualizers.set(e,n),n}registerVirtualizer(e,t){this.virtualizers.set(e,t)}getVirtualizer(e){return this.virtualizers.get(e)}cleanup(){this.virtualizers.clear()}},d=e=>{let{rowCount:t,rowHeight:a=48,overscanCount:o=5,enableRowVirtualization:c=!0,columnCount:l=0,columnWidth:d=150,enableColumnVirtualization:f=!1,scrollMargin:p=0,scrollPaddingStart:m=0,scrollPaddingEnd:h=0,progressiveRendering:g=!1,prefetchDistance:_=5,adaptiveSizing:v=!1,languageDirection:y=`ltr`,debug:b=!1,customRangeExtractor:x,onScroll:S,onScrollStart:C,onScrollStop:w}=e,T=(0,i.useRef)(null),[E,D]=(0,i.useState)(g?1:o||_),O=(0,i.useRef)(null),k=(0,i.useRef)(null),A=(0,i.useRef)(!1),j=`lanugageDirection`;(0,i.useEffect)(()=>{if(!g)return;let e,t=()=>{D(1),clearTimeout(e),e=setTimeout(()=>{D(o||_)},150)},n=T.current;if(n)return n.addEventListener(`scroll`,t,{passive:!0}),()=>{n.removeEventListener(`scroll`,t),clearTimeout(e)}},[g,o,_]);let M=(0,i.useMemo)(()=>x||(e=>{let t=(0,s.defaultRangeExtractor)(e);return t.length===0&&e.count>0?[0]:t}),[x]),N=(0,i.useCallback)((e,t,n)=>{(0,s.elementScroll)(e,t,n)},[]),P=(0,s.useVirtualizer)((0,i.useMemo)(()=>({count:t,getScrollElement:()=>T.current,estimateSize:typeof a==`function`?a:()=>a,overscan:E,scrollMargin:p,scrollPaddingStart:m,scrollPaddingEnd:h,rangeExtractor:M,scrollToFn:N,measureElement:v?e=>e.getBoundingClientRect().height:void 0,[j]:y,onChange:e=>{let t=e.scrollOffset??0;k.current!==null&&cancelAnimationFrame(k.current),k.current=requestAnimationFrame(()=>{S?.(t),k.current=null}),e.isScrolling?A.current||(A.current=!0,C?.()):A.current&&(A.current=!1,w?.())}}),[t,a,E,v,p,m,h,M,N,y,S,C,w]));(0,i.useEffect)(()=>{b&&console.log(`[DEBUG_VIRTUAL] Virtualizer instance changed`)},[P,b]);let F=n.n(),I=(0,i.useMemo)(()=>r.i(F,`VirtualizationService`,()=>new u),[]);(0,i.useEffect)(()=>{e.id&&I&&I.registerVirtualizer(e.id,P)},[e.id,P,I]);let L=(0,s.useVirtualizer)((0,i.useMemo)(()=>({horizontal:!0,count:f&&l?l:0,getScrollElement:()=>T.current,estimateSize:typeof d==`function`?d:()=>d,overscan:E,rangeExtractor:M,[j]:y}),[f,l,d,E,M])),R=f&&l?L:void 0;(0,i.useEffect)(()=>()=>{O.current&&clearTimeout(O.current),k.current!==null&&cancelAnimationFrame(k.current)},[]),(0,i.useEffect)(()=>{b&&process.env.NODE_ENV!==`production`&&console.log(`Virtualization Debug:`,{rowCount:t,visibleRows:P.getVirtualItems().length,activeOverscan:E,scrollOffset:P.scrollOffset})},[b,t,P,E]);let z=(e,t)=>{P.scrollToIndex(e,t)};return{parentRef:T,rowVirtualizer:P,columnVirtualizer:R,scrollToIndex:z,scrollToRow:z,scrollToColumn:R?(e,t)=>{R.scrollToIndex(e,t)}:void 0,getVirtualItems:()=>P.getVirtualItems(),scrollOffset:P.scrollOffset??0}},f=l.Root,p=l.Trigger,m=l.Group,h=l.Portal,g=l.Sub,_=l.RadioGroup,v=i.forwardRef(({className:e,inset:n,children:r,...i},s)=>(0,o.jsxs)(l.SubTrigger,{ref:s,className:t.t(`flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-zinc-100 focus:text-zinc-900 data-[state=open]:bg-zinc-100 data-[state=open]:text-zinc-900 dark:focus:bg-zinc-800 dark:focus:text-zinc-50 dark:data-[state=open]:bg-zinc-800 dark:data-[state=open]:text-zinc-50`,n&&`pl-8`,e),...i,children:[r,(0,o.jsx)(a.ChevronRight,{className:`ml-auto h-4 w-4`})]}));v.displayName=l.SubTrigger.displayName;var y=i.forwardRef(({className:e,...n},r)=>(0,o.jsx)(l.SubContent,{ref:r,className:t.t(`z-50 min-w-[8rem] overflow-hidden rounded-md border border-zinc-200 bg-white p-1 text-zinc-950 shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 dark:border-zinc-800 dark:bg-zinc-950 dark:text-zinc-50`,e),...n}));y.displayName=l.SubContent.displayName;var b=i.forwardRef(({className:e,...n},r)=>(0,o.jsx)(l.Portal,{children:(0,o.jsx)(l.Content,{ref:r,className:t.t(`z-50 min-w-[8rem] overflow-hidden rounded-md border border-zinc-200 bg-white p-1 text-zinc-950 shadow-md animate-in fade-in-80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 dark:border-zinc-800 dark:bg-zinc-950 dark:text-zinc-50`,e),...n})}));b.displayName=l.Content.displayName;var x=i.forwardRef(({className:e,inset:n,...r},i)=>(0,o.jsx)(l.Item,{ref:i,className:t.t(`relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-zinc-100 focus:text-zinc-900 data-[disabled]:pointer-events-none data-[disabled]:opacity-50 dark:focus:bg-zinc-800 dark:focus:text-zinc-50`,n&&`pl-8`,e),...r}));x.displayName=l.Item.displayName;var S=i.forwardRef(({className:e,children:n,checked:r,...i},s)=>(0,o.jsxs)(l.CheckboxItem,{ref:s,className:t.t(`relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-zinc-100 focus:text-zinc-900 data-[disabled]:pointer-events-none data-[disabled]:opacity-50 dark:focus:bg-zinc-800 dark:focus:text-zinc-50`,e),checked:r,...i,children:[(0,o.jsx)(`span`,{className:`absolute left-2 flex h-3.5 w-3.5 items-center justify-center`,children:(0,o.jsx)(l.ItemIndicator,{children:(0,o.jsx)(a.Check,{className:`h-4 w-4`})})}),n]}));S.displayName=l.CheckboxItem.displayName;var C=i.forwardRef(({className:e,children:n,...r},i)=>(0,o.jsxs)(l.RadioItem,{ref:i,className:t.t(`relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-zinc-100 focus:text-zinc-900 data-[disabled]:pointer-events-none data-[disabled]:opacity-50 dark:focus:bg-zinc-800 dark:focus:text-zinc-50`,e),...r,children:[(0,o.jsx)(`span`,{className:`absolute left-2 flex h-3.5 w-3.5 items-center justify-center`,children:(0,o.jsx)(l.ItemIndicator,{children:(0,o.jsx)(a.Circle,{className:`h-2 w-2 fill-current`})})}),n]}));C.displayName=l.RadioItem.displayName;var w=i.forwardRef(({className:e,inset:n,...r},i)=>(0,o.jsx)(l.Label,{ref:i,className:t.t(`px-2 py-1.5 text-sm font-semibold text-zinc-950 dark:text-zinc-50`,n&&`pl-8`,e),...r}));w.displayName=l.Label.displayName;var T=i.forwardRef(({className:e,...n},r)=>(0,o.jsx)(l.Separator,{ref:r,className:t.t(`-mx-1 my-1 h-px bg-zinc-200 dark:bg-zinc-800`,e),...n}));T.displayName=l.Separator.displayName;var E=({className:e,...n})=>(0,o.jsx)(`span`,{className:t.t(`ml-auto text-xs tracking-widest text-zinc-500 dark:text-zinc-400`,e),...n});E.displayName=`ContextMenuShortcut`;var D=({row:e,data:t,contextId:r,children:a,enabled:s=!0,onAction:c})=>{let l=n.n();if(!s)return(0,o.jsx)(o.Fragment,{children:a});let u=t||e?.original,d=(()=>{if(!r)return[];let e=l.get(`ContextMenuService`);return e?e.getItems(r,u):[]})(),m=d.length>0,h=e=>{c?.(e,u)};return(0,o.jsxs)(f,{children:[(0,o.jsx)(p,{asChild:!0,children:(0,o.jsx)(`span`,{className:`contents`,children:a})}),(0,o.jsx)(b,{className:`w-64`,children:m?d.map((e,t)=>(0,o.jsx)(i.default.Fragment,{children:e.isSeparator?(0,o.jsx)(T,{}):(0,o.jsxs)(x,{inset:!0,onSelect:()=>{e.onClick?e.onClick(u):h(e.action)},disabled:e.disabled,className:e.className,children:[e.label,e.shortcut&&(0,o.jsx)(E,{children:e.shortcut})]})},e.id||t)):(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(x,{inset:!0,onSelect:()=>h(`copy`),children:[`Copy Data`,(0,o.jsx)(E,{children:`⌘C`})]}),(0,o.jsx)(T,{}),e&&(0,o.jsxs)(o.Fragment,{children:[e.getIsPinned()!==`top`&&(0,o.jsx)(x,{inset:!0,onSelect:()=>h(`pin-top`),children:`Pin to Top`}),e.getIsPinned()!==`bottom`&&(0,o.jsx)(x,{inset:!0,onSelect:()=>h(`pin-bottom`),children:`Pin to Bottom`}),e.getIsPinned()&&(0,o.jsx)(x,{inset:!0,onSelect:()=>h(`unpin`),children:`Unpin Row`}),(0,o.jsx)(T,{})]}),(0,o.jsxs)(x,{inset:!0,className:`text-red-600 focus:text-red-600 focus:bg-red-50 dark:focus:bg-red-950/50`,onSelect:()=>h(`delete`),children:[`Delete Row`,(0,o.jsx)(E,{children:`⌘⌫`})]})]})})]})};Object.defineProperty(exports,`_`,{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,`g`,{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,`h`,{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,`m`,{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return C}});
@@ -0,0 +1,288 @@
1
+ import { t as e } from "./utils-hFRduYmq.js";
2
+ import { n as t } from "./EzProvider-Df2qgeDn.js";
3
+ import { i as n } from "./EzErrorBoundary-b-fGQvjw.js";
4
+ import * as r from "react";
5
+ import i, { useCallback as a, useEffect as o, useMemo as s, useRef as c, useState as l } from "react";
6
+ import { Check as u, ChevronRight as d, Circle as f } from "lucide-react";
7
+ import { Fragment as p, jsx as m, jsxs as h } from "react/jsx-runtime";
8
+ import { defaultRangeExtractor as g, elementScroll as _, useVirtualizer as v } from "@tanstack/react-virtual";
9
+ import { Virtualizer as y, elementScroll as b } from "@tanstack/virtual-core";
10
+ import * as x from "@radix-ui/react-context-menu";
11
+ //#region src/shared/services/VirtualizationService.ts
12
+ var S = class {
13
+ name = "VirtualizationService";
14
+ virtualizers = /* @__PURE__ */ new Map();
15
+ createVirtualizer(e, t) {
16
+ let n = new y({
17
+ count: t.count,
18
+ getScrollElement: t.getScrollElement,
19
+ estimateSize: t.estimateSize,
20
+ overscan: t.overscan ?? 5,
21
+ horizontal: t.horizontal ?? !1,
22
+ scrollToFn: b,
23
+ observeElementRect: (e, t) => {
24
+ let n = e.scrollElement;
25
+ if (!n || n === window) return;
26
+ let r = new ResizeObserver((e) => {
27
+ t(e[0].contentRect);
28
+ });
29
+ return r.observe(n), () => r.disconnect();
30
+ },
31
+ observeElementOffset: (e, t) => {
32
+ let n = e.scrollElement;
33
+ if (!n) return;
34
+ let r = () => {
35
+ t(n === window ? window.scrollY : n.scrollTop, !0);
36
+ };
37
+ return n.addEventListener("scroll", r, { passive: !0 }), t(n === window ? window.scrollY : n.scrollTop, !1), () => n.removeEventListener("scroll", r);
38
+ }
39
+ });
40
+ return this.virtualizers.set(e, n), n;
41
+ }
42
+ registerVirtualizer(e, t) {
43
+ this.virtualizers.set(e, t);
44
+ }
45
+ getVirtualizer(e) {
46
+ return this.virtualizers.get(e);
47
+ }
48
+ cleanup() {
49
+ this.virtualizers.clear();
50
+ }
51
+ }, C = (e) => {
52
+ let { rowCount: r, rowHeight: i = 48, overscanCount: u = 5, enableRowVirtualization: d = !0, columnCount: f = 0, columnWidth: p = 150, enableColumnVirtualization: m = !1, scrollMargin: h = 0, scrollPaddingStart: y = 0, scrollPaddingEnd: b = 0, progressiveRendering: x = !1, prefetchDistance: C = 5, adaptiveSizing: w = !1, languageDirection: T = "ltr", debug: E = !1, customRangeExtractor: D, onScroll: O, onScrollStart: k, onScrollStop: A } = e, j = c(null), [M, N] = l(x ? 1 : u || C), P = c(null), F = c(null), I = c(!1), L = "lanugageDirection";
53
+ o(() => {
54
+ if (!x) return;
55
+ let e, t = () => {
56
+ N(1), clearTimeout(e), e = setTimeout(() => {
57
+ N(u || C);
58
+ }, 150);
59
+ }, n = j.current;
60
+ if (n) return n.addEventListener("scroll", t, { passive: !0 }), () => {
61
+ n.removeEventListener("scroll", t), clearTimeout(e);
62
+ };
63
+ }, [
64
+ x,
65
+ u,
66
+ C
67
+ ]);
68
+ let R = s(() => D || ((e) => {
69
+ let t = g(e);
70
+ return t.length === 0 && e.count > 0 ? [0] : t;
71
+ }), [D]), z = a((e, t, n) => {
72
+ _(e, t, n);
73
+ }, []), B = v(s(() => ({
74
+ count: r,
75
+ getScrollElement: () => j.current,
76
+ estimateSize: typeof i == "function" ? i : () => i,
77
+ overscan: M,
78
+ scrollMargin: h,
79
+ scrollPaddingStart: y,
80
+ scrollPaddingEnd: b,
81
+ rangeExtractor: R,
82
+ scrollToFn: z,
83
+ measureElement: w ? (e) => e.getBoundingClientRect().height : void 0,
84
+ [L]: T,
85
+ onChange: (e) => {
86
+ let t = e.scrollOffset ?? 0;
87
+ F.current !== null && cancelAnimationFrame(F.current), F.current = requestAnimationFrame(() => {
88
+ O?.(t), F.current = null;
89
+ }), e.isScrolling ? I.current || (I.current = !0, k?.()) : I.current && (I.current = !1, A?.());
90
+ }
91
+ }), [
92
+ r,
93
+ i,
94
+ M,
95
+ w,
96
+ h,
97
+ y,
98
+ b,
99
+ R,
100
+ z,
101
+ T,
102
+ O,
103
+ k,
104
+ A
105
+ ]));
106
+ o(() => {
107
+ E && console.log("[DEBUG_VIRTUAL] Virtualizer instance changed");
108
+ }, [B, E]);
109
+ let V = t(), H = s(() => n(V, "VirtualizationService", () => new S()), []);
110
+ o(() => {
111
+ e.id && H && H.registerVirtualizer(e.id, B);
112
+ }, [
113
+ e.id,
114
+ B,
115
+ H
116
+ ]);
117
+ let U = v(s(() => ({
118
+ horizontal: !0,
119
+ count: m && f ? f : 0,
120
+ getScrollElement: () => j.current,
121
+ estimateSize: typeof p == "function" ? p : () => p,
122
+ overscan: M,
123
+ rangeExtractor: R,
124
+ [L]: T
125
+ }), [
126
+ m,
127
+ f,
128
+ p,
129
+ M,
130
+ R
131
+ ])), W = m && f ? U : void 0;
132
+ o(() => () => {
133
+ P.current && clearTimeout(P.current), F.current !== null && cancelAnimationFrame(F.current);
134
+ }, []), o(() => {
135
+ E && process.env.NODE_ENV !== "production" && console.log("Virtualization Debug:", {
136
+ rowCount: r,
137
+ visibleRows: B.getVirtualItems().length,
138
+ activeOverscan: M,
139
+ scrollOffset: B.scrollOffset
140
+ });
141
+ }, [
142
+ E,
143
+ r,
144
+ B,
145
+ M
146
+ ]);
147
+ let G = (e, t) => {
148
+ B.scrollToIndex(e, t);
149
+ };
150
+ return {
151
+ parentRef: j,
152
+ rowVirtualizer: B,
153
+ columnVirtualizer: W,
154
+ scrollToIndex: G,
155
+ scrollToRow: G,
156
+ scrollToColumn: W ? (e, t) => {
157
+ W.scrollToIndex(e, t);
158
+ } : void 0,
159
+ getVirtualItems: () => B.getVirtualItems(),
160
+ scrollOffset: B.scrollOffset ?? 0
161
+ };
162
+ }, w = x.Root, T = x.Trigger, E = x.Group, D = x.Portal, O = x.Sub, k = x.RadioGroup, A = r.forwardRef(({ className: t, inset: n, children: r, ...i }, a) => /* @__PURE__ */ h(x.SubTrigger, {
163
+ ref: a,
164
+ className: e("flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-zinc-100 focus:text-zinc-900 data-[state=open]:bg-zinc-100 data-[state=open]:text-zinc-900 dark:focus:bg-zinc-800 dark:focus:text-zinc-50 dark:data-[state=open]:bg-zinc-800 dark:data-[state=open]:text-zinc-50", n && "pl-8", t),
165
+ ...i,
166
+ children: [r, /* @__PURE__ */ m(d, { className: "ml-auto h-4 w-4" })]
167
+ }));
168
+ A.displayName = x.SubTrigger.displayName;
169
+ var j = r.forwardRef(({ className: t, ...n }, r) => /* @__PURE__ */ m(x.SubContent, {
170
+ ref: r,
171
+ className: e("z-50 min-w-[8rem] overflow-hidden rounded-md border border-zinc-200 bg-white p-1 text-zinc-950 shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 dark:border-zinc-800 dark:bg-zinc-950 dark:text-zinc-50", t),
172
+ ...n
173
+ }));
174
+ j.displayName = x.SubContent.displayName;
175
+ var M = r.forwardRef(({ className: t, ...n }, r) => /* @__PURE__ */ m(x.Portal, { children: /* @__PURE__ */ m(x.Content, {
176
+ ref: r,
177
+ className: e("z-50 min-w-[8rem] overflow-hidden rounded-md border border-zinc-200 bg-white p-1 text-zinc-950 shadow-md animate-in fade-in-80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 dark:border-zinc-800 dark:bg-zinc-950 dark:text-zinc-50", t),
178
+ ...n
179
+ }) }));
180
+ M.displayName = x.Content.displayName;
181
+ var N = r.forwardRef(({ className: t, inset: n, ...r }, i) => /* @__PURE__ */ m(x.Item, {
182
+ ref: i,
183
+ className: e("relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-zinc-100 focus:text-zinc-900 data-[disabled]:pointer-events-none data-[disabled]:opacity-50 dark:focus:bg-zinc-800 dark:focus:text-zinc-50", n && "pl-8", t),
184
+ ...r
185
+ }));
186
+ N.displayName = x.Item.displayName;
187
+ var P = r.forwardRef(({ className: t, children: n, checked: r, ...i }, a) => /* @__PURE__ */ h(x.CheckboxItem, {
188
+ ref: a,
189
+ className: e("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-zinc-100 focus:text-zinc-900 data-[disabled]:pointer-events-none data-[disabled]:opacity-50 dark:focus:bg-zinc-800 dark:focus:text-zinc-50", t),
190
+ checked: r,
191
+ ...i,
192
+ children: [/* @__PURE__ */ m("span", {
193
+ className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center",
194
+ children: /* @__PURE__ */ m(x.ItemIndicator, { children: /* @__PURE__ */ m(u, { className: "h-4 w-4" }) })
195
+ }), n]
196
+ }));
197
+ P.displayName = x.CheckboxItem.displayName;
198
+ var F = r.forwardRef(({ className: t, children: n, ...r }, i) => /* @__PURE__ */ h(x.RadioItem, {
199
+ ref: i,
200
+ className: e("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-zinc-100 focus:text-zinc-900 data-[disabled]:pointer-events-none data-[disabled]:opacity-50 dark:focus:bg-zinc-800 dark:focus:text-zinc-50", t),
201
+ ...r,
202
+ children: [/* @__PURE__ */ m("span", {
203
+ className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center",
204
+ children: /* @__PURE__ */ m(x.ItemIndicator, { children: /* @__PURE__ */ m(f, { className: "h-2 w-2 fill-current" }) })
205
+ }), n]
206
+ }));
207
+ F.displayName = x.RadioItem.displayName;
208
+ var I = r.forwardRef(({ className: t, inset: n, ...r }, i) => /* @__PURE__ */ m(x.Label, {
209
+ ref: i,
210
+ className: e("px-2 py-1.5 text-sm font-semibold text-zinc-950 dark:text-zinc-50", n && "pl-8", t),
211
+ ...r
212
+ }));
213
+ I.displayName = x.Label.displayName;
214
+ var L = r.forwardRef(({ className: t, ...n }, r) => /* @__PURE__ */ m(x.Separator, {
215
+ ref: r,
216
+ className: e("-mx-1 my-1 h-px bg-zinc-200 dark:bg-zinc-800", t),
217
+ ...n
218
+ }));
219
+ L.displayName = x.Separator.displayName;
220
+ var R = ({ className: t, ...n }) => /* @__PURE__ */ m("span", {
221
+ className: e("ml-auto text-xs tracking-widest text-zinc-500 dark:text-zinc-400", t),
222
+ ...n
223
+ });
224
+ R.displayName = "ContextMenuShortcut";
225
+ //#endregion
226
+ //#region src/shared/components/EzContextMenu.tsx
227
+ var z = ({ row: e, data: n, contextId: r, children: a, enabled: o = !0, onAction: s }) => {
228
+ let c = t();
229
+ if (!o) return /* @__PURE__ */ m(p, { children: a });
230
+ let l = n || e?.original, u = (() => {
231
+ if (!r) return [];
232
+ let e = c.get("ContextMenuService");
233
+ return e ? e.getItems(r, l) : [];
234
+ })(), d = u.length > 0, f = (e) => {
235
+ s?.(e, l);
236
+ };
237
+ return /* @__PURE__ */ h(w, { children: [/* @__PURE__ */ m(T, {
238
+ asChild: !0,
239
+ children: /* @__PURE__ */ m("span", {
240
+ className: "contents",
241
+ children: a
242
+ })
243
+ }), /* @__PURE__ */ m(M, {
244
+ className: "w-64",
245
+ children: d ? u.map((e, t) => /* @__PURE__ */ m(i.Fragment, { children: e.isSeparator ? /* @__PURE__ */ m(L, {}) : /* @__PURE__ */ h(N, {
246
+ inset: !0,
247
+ onSelect: () => {
248
+ e.onClick ? e.onClick(l) : f(e.action);
249
+ },
250
+ disabled: e.disabled,
251
+ className: e.className,
252
+ children: [e.label, e.shortcut && /* @__PURE__ */ m(R, { children: e.shortcut })]
253
+ }) }, e.id || t)) : /* @__PURE__ */ h(p, { children: [
254
+ /* @__PURE__ */ h(N, {
255
+ inset: !0,
256
+ onSelect: () => f("copy"),
257
+ children: ["Copy Data", /* @__PURE__ */ m(R, { children: "⌘C" })]
258
+ }),
259
+ /* @__PURE__ */ m(L, {}),
260
+ e && /* @__PURE__ */ h(p, { children: [
261
+ e.getIsPinned() !== "top" && /* @__PURE__ */ m(N, {
262
+ inset: !0,
263
+ onSelect: () => f("pin-top"),
264
+ children: "Pin to Top"
265
+ }),
266
+ e.getIsPinned() !== "bottom" && /* @__PURE__ */ m(N, {
267
+ inset: !0,
268
+ onSelect: () => f("pin-bottom"),
269
+ children: "Pin to Bottom"
270
+ }),
271
+ e.getIsPinned() && /* @__PURE__ */ m(N, {
272
+ inset: !0,
273
+ onSelect: () => f("unpin"),
274
+ children: "Unpin Row"
275
+ }),
276
+ /* @__PURE__ */ m(L, {})
277
+ ] }),
278
+ /* @__PURE__ */ h(N, {
279
+ inset: !0,
280
+ className: "text-red-600 focus:text-red-600 focus:bg-red-50 dark:focus:bg-red-950/50",
281
+ onSelect: () => f("delete"),
282
+ children: ["Delete Row", /* @__PURE__ */ m(R, { children: "⌘⌫" })]
283
+ })
284
+ ] })
285
+ })] });
286
+ };
287
+ //#endregion
288
+ export { C as _, E as a, D as c, L as d, R as f, T as g, A as h, M as i, k as l, j as m, w as n, N as o, O as p, P as r, I as s, z as t, F as u };
@@ -0,0 +1 @@
1
+ require(`./chunk-D-qHiVGv.cjs`);let e=require(`react`),t=require(`lucide-react`),n=require(`react/jsx-runtime`);var r=(e,t,n)=>{let r=e.get(t);return r||(r=n(),e.register(t,r)),r},i=(e,t)=>{Object.entries(t).forEach(([t,n])=>{e.get(t)||e.register(t,n())})},a=(t,n,r)=>{let i=(0,e.useMemo)(()=>r?{...n,...r}:n,[n,r]);(0,e.useImperativeHandle)(t,()=>i,[i])},o=class extends e.Component{constructor(e){super(e),this.state={hasError:!1,error:null,errorInfo:null}}static getDerivedStateFromError(e){return{hasError:!0,error:e,errorInfo:null}}componentDidCatch(e,t){console.error(`Error caught by ErrorBoundary:`,e,t),this.setState({errorInfo:t})}handleReset=()=>{this.setState({hasError:!1,error:null,errorInfo:null})};render(){return this.state.hasError?this.props.fallback?this.props.fallback:(0,n.jsx)(`div`,{className:`flex flex-col items-center justify-center min-h-screen p-4`,children:(0,n.jsxs)(`div`,{className:`flex flex-col items-center gap-4 max-w-md w-full`,children:[(0,n.jsx)(`div`,{className:`flex items-center justify-center w-16 h-16 rounded-full bg-destructive/10`,children:(0,n.jsx)(t.AlertTriangle,{className:`w-8 h-8 text-destructive`})}),(0,n.jsxs)(`div`,{className:`flex flex-col items-center gap-2 text-center`,children:[(0,n.jsx)(`h2`,{className:`text-lg font-semibold`,children:`Something went wrong`}),(0,n.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`An unexpected error occurred. Please try again.`})]}),(0,n.jsxs)(`button`,{onClick:this.handleReset,className:`flex items-center gap-2 px-4 py-2 text-sm font-medium text-primary hover:bg-primary/10 rounded-md transition-colors`,children:[(0,n.jsx)(t.RefreshCw,{className:`w-4 h-4`}),`Try Again`]})]})}):this.props.children}};Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return o}});
@@ -0,0 +1,74 @@
1
+ import { Component as e, useImperativeHandle as t, useMemo as n } from "react";
2
+ import { AlertTriangle as r, RefreshCw as i } from "lucide-react";
3
+ import { jsx as a, jsxs as o } from "react/jsx-runtime";
4
+ //#region src/shared/utils/serviceUtils.ts
5
+ var s = (e, t, n) => {
6
+ let r = e.get(t);
7
+ return r || (r = n(), e.register(t, r)), r;
8
+ }, c = (e, t) => {
9
+ Object.entries(t).forEach(([t, n]) => {
10
+ e.get(t) || e.register(t, n());
11
+ });
12
+ }, l = (e, r, i) => {
13
+ let a = n(() => i ? {
14
+ ...r,
15
+ ...i
16
+ } : r, [r, i]);
17
+ t(e, () => a, [a]);
18
+ }, u = class extends e {
19
+ constructor(e) {
20
+ super(e), this.state = {
21
+ hasError: !1,
22
+ error: null,
23
+ errorInfo: null
24
+ };
25
+ }
26
+ static getDerivedStateFromError(e) {
27
+ return {
28
+ hasError: !0,
29
+ error: e,
30
+ errorInfo: null
31
+ };
32
+ }
33
+ componentDidCatch(e, t) {
34
+ console.error("Error caught by ErrorBoundary:", e, t), this.setState({ errorInfo: t });
35
+ }
36
+ handleReset = () => {
37
+ this.setState({
38
+ hasError: !1,
39
+ error: null,
40
+ errorInfo: null
41
+ });
42
+ };
43
+ render() {
44
+ return this.state.hasError ? this.props.fallback ? this.props.fallback : /* @__PURE__ */ a("div", {
45
+ className: "flex flex-col items-center justify-center min-h-screen p-4",
46
+ children: /* @__PURE__ */ o("div", {
47
+ className: "flex flex-col items-center gap-4 max-w-md w-full",
48
+ children: [
49
+ /* @__PURE__ */ a("div", {
50
+ className: "flex items-center justify-center w-16 h-16 rounded-full bg-destructive/10",
51
+ children: /* @__PURE__ */ a(r, { className: "w-8 h-8 text-destructive" })
52
+ }),
53
+ /* @__PURE__ */ o("div", {
54
+ className: "flex flex-col items-center gap-2 text-center",
55
+ children: [/* @__PURE__ */ a("h2", {
56
+ className: "text-lg font-semibold",
57
+ children: "Something went wrong"
58
+ }), /* @__PURE__ */ a("p", {
59
+ className: "text-sm text-muted-foreground",
60
+ children: "An unexpected error occurred. Please try again."
61
+ })]
62
+ }),
63
+ /* @__PURE__ */ o("button", {
64
+ onClick: this.handleReset,
65
+ className: "flex items-center gap-2 px-4 py-2 text-sm font-medium text-primary hover:bg-primary/10 rounded-md transition-colors",
66
+ children: [/* @__PURE__ */ a(i, { className: "w-4 h-4" }), "Try Again"]
67
+ })
68
+ ]
69
+ })
70
+ }) : this.props.children;
71
+ }
72
+ };
73
+ //#endregion
74
+ export { s as i, l as n, c as r, u as t };
@@ -0,0 +1 @@
1
+ const e=require(`./chunk-D-qHiVGv.cjs`),t=require(`./utils-DyS9jpam.cjs`),n=require(`./button-CfngAt_5.cjs`),r=require(`./input-DPWRzn7K.cjs`),i=require(`./label-4cHst7uN.cjs`),a=require(`./date-time-picker-CfHnqJDm.cjs`);let o=require(`react`);o=e.n(o,1);let s=require(`lucide-react`),c=require(`react/jsx-runtime`),l=require(`@tanstack/react-form`),u=require(`react-dom`);var d=e.t({EzEventModal:()=>p}),f=[{label:`S`,value:`SU`},{label:`M`,value:`MO`},{label:`T`,value:`TU`},{label:`W`,value:`WE`},{label:`T`,value:`TH`},{label:`F`,value:`FR`},{label:`S`,value:`SA`}],p=({isOpen:e,onClose:d,mode:p,event:m,onSave:h,onDelete:g,locale:_,editorTemplate:v,headerTemplate:y,footerTemplate:b})=>{let x=(0,l.useForm)({defaultValues:{title:m?.title||``,start:m?.start,end:m?.end,resourceIds:m?.resourceIds||(m?.resourceId?[m.resourceId]:[])||[],location:m?.location||``,isAllDay:!!m?.allDay||!!m?.isAllDay||!1,description:m?.description||``,isTimezoneEnabled:!!m?.timezone,startTimezone:m?.timezone?.start||`Asia/Calcutta`,endTimezone:m?.timezone?.end||`Asia/Calcutta`,repeatFrequency:m?.recurrence?.frequency||`Never`,repeatInterval:m?.recurrence?.interval||1,repeatDays:m?.recurrence?.days||[],repeatBy:m?.recurrence?.repeatBy||`day`,repeatEndLevel:m?.recurrence?.end||`Never`,repeatEndCount:m?.recurrence?.endCount||1,repeatEndUntil:m?.recurrence?.endUntil,attachments:m?.attachments||[]},onSubmit:async({value:e})=>{h({...m,title:e.title,start:e.start,end:e.end,resourceId:e.resourceIds[0],resourceIds:e.resourceIds,location:e.location,allDay:e.isAllDay,description:e.description,timezone:e.isTimezoneEnabled?{start:e.startTimezone,end:e.endTimezone}:void 0,recurrence:e.repeatFrequency===`Never`?void 0:{frequency:e.repeatFrequency,interval:e.repeatInterval,unit:e.repeatFrequency.replace(`ly`,``)+`(s)`,end:e.repeatEndLevel,endCount:e.repeatEndLevel===`Count`?e.repeatEndCount:void 0,endUntil:e.repeatEndLevel===`Until`?e.repeatEndUntil:void 0,days:e.repeatFrequency===`Weekly`?e.repeatDays:void 0,repeatBy:e.repeatFrequency===`Monthly`||e.repeatFrequency===`Yearly`?e.repeatBy:void 0},attachments:e.attachments}),d()}});if((0,o.useEffect)(()=>{e&&x.reset()},[e,m,x]),!e)return null;let S=e=>{e.preventDefault(),e.stopPropagation(),x.handleSubmit()},C=p===`view`;return(0,u.createPortal)((0,c.jsxs)(`div`,{"data-testid":`ez-event-modal`,style:{position:`fixed`,top:0,left:0,width:`100vw`,height:`100vh`,zIndex:1e4,backgroundColor:`rgba(0, 0, 0, 0.4)`,backdropFilter:`blur(2px)`,pointerEvents:`auto`},children:[(0,c.jsx)(`div`,{style:{position:`absolute`,inset:0},onClick:d}),(0,c.jsxs)(`div`,{className:t.t(`bg-background rounded-xl shadow-2xl flex flex-col border border-border overflow-hidden`,`animate-in zoom-in-95 fade-in duration-300 ease-out`),style:{backgroundColor:`white`,width:`650px`,maxWidth:`95vw`,maxHeight:`92vh`,position:`absolute`,top:`50%`,left:`50%`,transform:`translate(-50%, -50%)`,zIndex:10001},children:[(0,c.jsx)(`div`,{className:`flex items-center justify-between shrink-0 bg-background`,style:{padding:`16px 40px`},children:y?y(m||{},p):(0,c.jsxs)(c.Fragment,{children:[(0,c.jsxs)(`h2`,{className:`text-xl font-bold tracking-tight text-foreground`,children:[p===`create`&&`New Event`,p===`edit`&&`Edit Event`,p===`view`&&`Event Details`]}),(0,c.jsx)(n.t,{variant:`ghost`,size:`icon`,className:`h-9 w-9 rounded-full hover:bg-muted text-muted-foreground mr-[-8px]`,onClick:d,children:(0,c.jsx)(s.X,{className:`w-5 h-5`})})]})}),v?(0,c.jsx)(`div`,{className:`overflow-y-auto custom-scrollbar flex-1 bg-background`,style:{padding:`8px 40px 32px 40px`},children:v(m||{})}):(0,c.jsxs)(`form`,{onSubmit:S,className:`space-y-6 overflow-y-auto custom-scrollbar flex-1 bg-background`,style:{padding:`8px 40px 32px 40px`},children:[(0,c.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-6`,children:[(0,c.jsx)(x.Field,{name:`title`,validators:{onChange:({value:e})=>e?void 0:`Title is required`},children:e=>(0,c.jsxs)(`div`,{className:`space-y-2`,children:[(0,c.jsx)(i.t,{htmlFor:`title`,className:`text-[13px] font-semibold text-foreground/70`,children:`Title`}),(0,c.jsx)(r.t,{id:`title`,placeholder:`Add title`,value:e.state.value,onChange:t=>e.handleChange(t.target.value),onBlur:e.handleBlur,disabled:C,className:t.t(`h-10 rounded-md border-border focus-visible:border-primary focus-visible:ring-1 focus-visible:ring-primary/20 bg-background transition-all`,e.state.meta.errors.length>0&&`border-destructive focus-visible:border-destructive ring-destructive/20`)}),e.state.meta.errors.length>0&&(0,c.jsx)(`p`,{className:`text-[12px] font-medium text-destructive mt-1.5 animate-in fade-in slide-in-from-top-1`,children:e.state.meta.errors.join(`, `)})]})}),(0,c.jsx)(x.Field,{name:`location`,children:e=>(0,c.jsxs)(`div`,{className:`space-y-2`,children:[(0,c.jsx)(i.t,{htmlFor:`location`,className:`text-[13px] font-semibold text-foreground/70`,children:`Location`}),(0,c.jsx)(r.t,{id:`location`,placeholder:`Add location`,value:e.state.value,onChange:t=>e.handleChange(t.target.value),disabled:C,className:`h-10 rounded-md border-border focus-visible:border-primary focus-visible:ring-1 focus-visible:ring-primary/20 bg-background transition-all`})]})})]}),(0,c.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-6`,children:[(0,c.jsx)(x.Field,{name:`start`,validators:{onChange:({value:e})=>e?void 0:`Start date is required`},children:e=>(0,c.jsxs)(`div`,{className:`space-y-2`,children:[(0,c.jsx)(i.t,{className:`text-[13px] font-semibold text-foreground/70`,children:`Start`}),(0,c.jsx)(a.t,{date:e.state.value,setDate:t=>e.handleChange(t),disabled:C,required:!0,locale:_,mode:x.getFieldValue(`isAllDay`)?`date`:`datetime`,className:`border-border focus-visible:border-primary focus-visible:ring-1 focus-visible:ring-primary/20`}),e.state.meta.errors.length>0&&(0,c.jsx)(`p`,{className:`text-[12px] font-medium text-destructive mt-1.5`,children:e.state.meta.errors.join(`, `)})]})}),(0,c.jsx)(x.Field,{name:`end`,validators:{onChange:({value:e,fieldApi:t})=>{if(!e)return`End date is required`;let n=t.form.getFieldValue(`start`);if(n&&e<=n)return`End time must be after start time`}},children:e=>(0,c.jsxs)(`div`,{className:`space-y-2`,children:[(0,c.jsx)(i.t,{className:`text-[13px] font-semibold text-foreground/70`,children:`End`}),(0,c.jsx)(a.t,{date:e.state.value,setDate:t=>e.handleChange(t),disabled:C,required:!0,locale:_,mode:x.getFieldValue(`isAllDay`)?`date`:`datetime`,minDate:x.getFieldValue(`start`),className:t.t(`border-border focus-visible:border-primary focus-visible:ring-1 focus-visible:ring-primary/20`,e.state.meta.errors.length>0&&`border-destructive focus-visible:border-destructive ring-destructive/20`)}),e.state.meta.errors.length>0&&(0,c.jsx)(`p`,{className:`text-[12px] font-medium text-destructive mt-1.5 animate-in fade-in slide-in-from-top-1`,children:e.state.meta.errors.join(`, `)})]})})]}),(0,c.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-6`,children:[(0,c.jsx)(x.Field,{name:`isAllDay`,children:e=>(0,c.jsx)(`div`,{className:`flex items-center h-10`,children:(0,c.jsxs)(`label`,{className:`flex items-center space-x-3 cursor-pointer group select-none`,children:[(0,c.jsx)(`input`,{type:`checkbox`,checked:e.state.value,onChange:t=>e.handleChange(t.target.checked),disabled:C,className:`h-4 w-4 rounded border-border/50 text-primary focus:ring-primary/30 accent-primary transition-all cursor-pointer`}),(0,c.jsx)(`span`,{className:`text-[14px] font-medium text-foreground/70 group-hover:text-foreground`,children:`All day event`})]})})}),(0,c.jsx)(x.Field,{name:`isTimezoneEnabled`,children:e=>(0,c.jsx)(`div`,{className:`flex items-center h-10`,children:(0,c.jsxs)(`label`,{className:`flex items-center space-x-3 cursor-pointer group select-none`,children:[(0,c.jsx)(`input`,{type:`checkbox`,checked:e.state.value,onChange:t=>e.handleChange(t.target.checked),disabled:C,className:`h-4 w-4 rounded border-border/50 text-primary focus:ring-primary/30 accent-primary transition-all cursor-pointer`}),(0,c.jsx)(`span`,{className:`text-[14px] font-medium text-foreground/70 group-hover:text-foreground`,children:`Enable timezone`})]})})})]}),(0,c.jsx)(x.Subscribe,{selector:e=>[e.values.isTimezoneEnabled],children:([e])=>e&&(0,c.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-6 p-6 bg-highlight/50 rounded-lg border border-border animate-in slide-in-from-top-2 duration-300`,children:[(0,c.jsx)(x.Field,{name:`startTimezone`,children:e=>(0,c.jsxs)(`div`,{className:`space-y-2`,children:[(0,c.jsx)(i.t,{className:`text-[13px] font-semibold text-foreground/70`,children:`Start Timezone`}),(0,c.jsxs)(`select`,{className:`w-full h-10 px-3 rounded-md border-border bg-background text-sm focus:outline-none focus-visible:ring-1 focus-visible:ring-primary/20 focus-visible:border-primary appearance-none bg-[url('data:image/svg+xml;charset=utf-8,%3Csvg%20xlmns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20fill%3D%27none%27%20viewBox%3D%270%200%2020%2020%27%3E%3Cpath%20stroke%3D%27%236b7280%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%20stroke-width%3D%271.5%27%20d%3D%27m6%208%204%204%204-4%27%2F%3E%3C%2Fsvg%3E')] bg-[length:20px] bg-[right_8px_center] bg-no-repeat transition-all`,value:e.state.value,onChange:t=>e.handleChange(t.target.value),children:[(0,c.jsx)(`option`,{value:`Asia/Calcutta`,children:`Asia/Calcutta`}),(0,c.jsx)(`option`,{value:`UTC`,children:`UTC`}),(0,c.jsx)(`option`,{value:`America/New_York`,children:`America/New_York`})]})]})}),(0,c.jsx)(x.Field,{name:`endTimezone`,children:e=>(0,c.jsxs)(`div`,{className:`space-y-2`,children:[(0,c.jsx)(i.t,{className:`text-[13px] font-semibold text-foreground/70`,children:`End Timezone`}),(0,c.jsxs)(`select`,{className:`w-full h-10 px-3 rounded-md border-border bg-background text-sm focus:outline-none focus-visible:ring-1 focus-visible:ring-primary/20 focus-visible:border-primary appearance-none bg-[url('data:image/svg+xml;charset=utf-8,%3Csvg%20xlmns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20fill%3D%27none%27%20viewBox%3D%270%200%2020%2020%27%3E%3Cpath%20stroke%3D%27%236b7280%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%20stroke-width%3D%271.5%27%20d%3D%27m6%208%204%204%204-4%27%2F%3E%3C%2Fsvg%3E')] bg-[length:20px] bg-[right_8px_center] bg-no-repeat transition-all`,value:e.state.value,onChange:t=>e.handleChange(t.target.value),children:[(0,c.jsx)(`option`,{value:`Asia/Calcutta`,children:`Asia/Calcutta`}),(0,c.jsx)(`option`,{value:`UTC`,children:`UTC`}),(0,c.jsx)(`option`,{value:`America/New_York`,children:`America/New_York`})]})]})})]})}),(0,c.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-6`,children:[(0,c.jsx)(x.Field,{name:`repeatFrequency`,children:e=>(0,c.jsxs)(`div`,{className:`space-y-2`,children:[(0,c.jsx)(i.t,{className:`text-[13px] font-semibold text-foreground/70`,children:`Repeat`}),(0,c.jsxs)(`select`,{className:`w-full h-10 px-3 rounded-md border-border bg-background text-sm focus:outline-none focus-visible:ring-1 focus-visible:ring-primary/20 focus-visible:border-primary appearance-none bg-[url('data:image/svg+xml;charset=utf-8,%3Csvg%20xlmns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20fill%3D%27none%27%20viewBox%3D%270%200%2020%2020%27%3E%3Cpath%20stroke%3D%27%236b7280%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%20stroke-width%3D%271.5%27%20d%3D%27m6%208%204%204%204-4%27%2F%3E%3C%2Fsvg%3E')] bg-[length:20px] bg-[right_8px_center] bg-no-repeat transition-all`,value:e.state.value,onChange:t=>e.handleChange(t.target.value),children:[(0,c.jsx)(`option`,{value:`Never`,children:`Never`}),(0,c.jsx)(`option`,{value:`Daily`,children:`Daily`}),(0,c.jsx)(`option`,{value:`Weekly`,children:`Weekly`}),(0,c.jsx)(`option`,{value:`Monthly`,children:`Monthly`}),(0,c.jsx)(`option`,{value:`Yearly`,children:`Yearly`})]})]})}),(0,c.jsx)(x.Subscribe,{selector:e=>[e.values.repeatFrequency],children:([e])=>e!==`Never`&&(0,c.jsx)(x.Field,{name:`repeatEndLevel`,children:e=>(0,c.jsxs)(`div`,{className:`space-y-2 animate-in slide-in-from-top-2 duration-300`,children:[(0,c.jsx)(i.t,{className:`text-[13px] font-semibold text-foreground/70`,children:`End`}),(0,c.jsxs)(`select`,{className:`w-full h-10 px-3 rounded-md border-border bg-background text-sm focus:outline-none focus-visible:ring-1 focus-visible:ring-primary/20 focus-visible:border-primary appearance-none bg-[url('data:image/svg+xml;charset=utf-8,%3Csvg%20xlmns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20fill%3D%27none%27%20viewBox%3D%270%200%2020%2020%27%3E%3Cpath%20stroke%3D%27%236b7280%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%20stroke-width%3D%271.5%27%20d%3D%27m6%208%204%204%204-4%27%2F%3E%3C%2Fsvg%3E')] bg-[length:20px] bg-[right_8px_center] bg-no-repeat transition-all`,value:e.state.value,onChange:t=>e.handleChange(t.target.value),children:[(0,c.jsx)(`option`,{value:`Never`,children:`Never`}),(0,c.jsx)(`option`,{value:`Until`,children:`Until`}),(0,c.jsx)(`option`,{value:`Count`,children:`Count`})]})]})})})]}),(0,c.jsx)(x.Subscribe,{selector:e=>[e.values.repeatFrequency,e.values.repeatEndLevel],children:([e,t])=>e!==`Never`&&(0,c.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-6 animate-in slide-in-from-top-2 duration-300`,children:[(0,c.jsx)(x.Field,{name:`repeatInterval`,children:t=>(0,c.jsxs)(`div`,{className:`space-y-2`,children:[(0,c.jsx)(i.t,{className:`text-[13px] font-semibold text-foreground/70`,children:`Repeat every`}),(0,c.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,c.jsx)(`select`,{className:`flex-1 h-10 px-3 rounded-md border-border bg-background text-sm focus:outline-none focus-visible:ring-1 focus-visible:ring-primary/20 focus-visible:border-primary appearance-none bg-[url('data:image/svg+xml;charset=utf-8,%3Csvg%20xlmns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20fill%3D%27none%27%20viewBox%3D%270%200%2020%2020%27%3E%3Cpath%20stroke%3D%27%236b7280%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%20stroke-width%3D%271.5%27%20d%3D%27m6%208%204%204%204-4%27%2F%3E%3C%2Fsvg%3E')] bg-[length:20px] bg-[right_8px_center] bg-no-repeat transition-all`,value:t.state.value,onChange:e=>t.handleChange(parseInt(e.target.value)),children:[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,20,30].map(e=>(0,c.jsx)(`option`,{value:e,children:e},e))}),(0,c.jsx)(`span`,{className:`text-sm font-medium text-muted-foreground whitespace-nowrap`,children:e===`Daily`?`Day(s)`:e.replace(`ly`,``)+`(s)`})]})]})}),t===`Until`&&(0,c.jsx)(x.Field,{name:`repeatEndUntil`,children:e=>(0,c.jsxs)(`div`,{className:`space-y-2 animate-in slide-in-from-top-1`,children:[(0,c.jsx)(i.t,{className:`text-[13px] font-semibold text-foreground/70`,children:`Until`}),(0,c.jsx)(a.t,{date:e.state.value,setDate:t=>e.handleChange(t),disabled:C,locale:_,mode:`date`,minDate:x.getFieldValue(`start`),className:`border-border focus:border-primary`})]})}),t===`Count`&&(0,c.jsx)(x.Field,{name:`repeatEndCount`,children:e=>(0,c.jsxs)(`div`,{className:`space-y-2 animate-in slide-in-from-top-1`,children:[(0,c.jsx)(i.t,{className:`text-[13px] font-semibold text-foreground/70`,children:`Occurrences`}),(0,c.jsx)(r.t,{type:`number`,min:1,value:e.state.value,onChange:t=>e.handleChange(parseInt(t.target.value)),className:`h-10 rounded-md border-border focus-visible:border-primary focus-visible:ring-1 focus-visible:ring-primary/20 bg-background transition-all`})]})})]})}),(0,c.jsx)(x.Subscribe,{selector:e=>[e.values.repeatFrequency],children:([e])=>e===`Weekly`&&(0,c.jsx)(x.Field,{name:`repeatDays`,children:e=>(0,c.jsxs)(`div`,{className:`space-y-3 animate-in fade-in duration-300`,children:[(0,c.jsx)(i.t,{className:`text-[13px] font-semibold text-foreground/70`,children:`Repeat On`}),(0,c.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:f.map(n=>(0,c.jsx)(`button`,{type:`button`,onClick:()=>{let t=e.state.value||[];t.includes(n.value)?e.handleChange(t.filter(e=>e!==n.value)):e.handleChange([...t,n.value])},className:t.t(`w-9 h-9 rounded-full flex items-center justify-center text-sm font-bold transition-all border`,(e.state.value||[]).includes(n.value)?`bg-primary text-white border-primary shadow-sm`:`bg-background text-foreground/60 border-border/60 hover:border-primary/40 hover:text-primary`),children:n.label},n.value))})]})})}),(0,c.jsx)(x.Subscribe,{selector:e=>[e.values.repeatFrequency],children:([e])=>(e===`Monthly`||e===`Yearly`)&&(0,c.jsx)(x.Field,{name:`repeatBy`,children:e=>(0,c.jsxs)(`div`,{className:`space-y-4 animate-in fade-in duration-300`,children:[(0,c.jsx)(i.t,{className:`text-[13px] font-semibold text-foreground/70`,children:`Repeat On`}),(0,c.jsxs)(`div`,{className:`space-y-3`,children:[(0,c.jsxs)(`label`,{className:`flex items-center space-x-3 cursor-pointer group`,children:[(0,c.jsx)(`input`,{type:`radio`,name:`repeatBy`,checked:e.state.value===`day`,onChange:()=>e.handleChange(`day`),className:`h-4 w-4 border-border text-primary focus:ring-primary`}),(0,c.jsx)(`span`,{className:`text-sm text-foreground/80`,children:`Day of the month`})]}),(0,c.jsxs)(`label`,{className:`flex items-center space-x-3 cursor-pointer group`,children:[(0,c.jsx)(`input`,{type:`radio`,name:`repeatBy`,checked:e.state.value===`ordinal`,onChange:()=>e.handleChange(`ordinal`),className:`h-4 w-4 border-border text-primary focus:ring-primary`}),(0,c.jsx)(`span`,{className:`text-sm text-foreground/80`,children:`Ordinal position`})]})]})]})})}),(0,c.jsx)(x.Field,{name:`description`,children:e=>(0,c.jsxs)(`div`,{className:`space-y-2`,children:[(0,c.jsx)(i.t,{htmlFor:`description`,className:`text-[13px] font-semibold text-foreground/70`,children:`Description`}),(0,c.jsx)(`textarea`,{id:`description`,placeholder:`Add description`,className:`flex min-h-[100px] w-full rounded-md border-border bg-background px-4 py-3 text-sm placeholder:text-muted-foreground focus:outline-none focus-visible:ring-1 focus-visible:ring-primary/20 focus-visible:border-primary disabled:cursor-not-allowed disabled:opacity-50 resize-none transition-all hover:border-border`,value:e.state.value,onChange:t=>e.handleChange(t.target.value),disabled:C})]})}),(0,c.jsx)(x.Field,{name:`attachments`,children:e=>(0,c.jsxs)(`div`,{className:`space-y-4 pt-4 pb-2`,children:[(0,c.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,c.jsxs)(i.t,{className:`text-[13px] font-semibold text-foreground/70 flex items-center gap-2`,children:[(0,c.jsx)(s.Paperclip,{className:`w-4 h-4`}),` Attachments`]}),(0,c.jsx)(`input`,{type:`file`,id:`file-upload`,multiple:!0,className:`hidden`,onChange:t=>{t.target.files&&e.handleChange([...e.state.value||[],...Array.from(t.target.files)])}}),(0,c.jsxs)(n.t,{type:`button`,variant:`outline`,size:`sm`,className:`h-8 text-xs font-semibold gap-2 border-dashed border-border/50 hover:border-primary/40 hover:text-primary transition-all`,onClick:()=>document.getElementById(`file-upload`)?.click(),children:[(0,c.jsx)(s.Paperclip,{className:`w-3 h-3`}),` Add Files`]})]}),(e.state.value||[]).length>0&&(0,c.jsx)(`div`,{className:`grid grid-cols-1 gap-3`,children:(e.state.value||[]).map((t,r)=>(0,c.jsxs)(`div`,{className:`flex items-center justify-between p-3 rounded-lg bg-highlight border border-border group hover:border-border transition-all`,children:[(0,c.jsxs)(`div`,{className:`flex items-center gap-3 overflow-hidden`,children:[(0,c.jsx)(`div`,{className:`w-9 h-9 rounded-md bg-white border border-border flex items-center justify-center shrink-0 shadow-sm`,children:(0,c.jsx)(s.Paperclip,{className:`w-4 h-4 text-muted-foreground`})}),(0,c.jsxs)(`div`,{className:`flex flex-col overflow-hidden`,children:[(0,c.jsx)(`span`,{className:`text-[13px] font-medium text-foreground truncate`,children:t.name}),(0,c.jsx)(`span`,{className:`text-[11px] text-muted-foreground font-medium`,children:typeof t.size==`number`?`${(t.size/1024).toFixed(1)} KB`:`Attachment`})]})]}),(0,c.jsx)(n.t,{type:`button`,variant:`ghost`,size:`icon`,className:`h-8 w-8 text-muted-foreground/50 hover:text-destructive hover:bg-destructive/10 opacity-0 group-hover:opacity-100 transition-all`,onClick:()=>e.handleChange((e.state.value||[]).filter((e,t)=>t!==r)),children:(0,c.jsx)(s.Trash2,{className:`w-4 h-4`})})]},r))})]})})]}),b?b(m||{},p,()=>S({}),d):(0,c.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`flex-end`,padding:`24px 40px`,backgroundColor:`var(--highlight)`,gap:`12px`,width:`100%`,flexShrink:0},children:[!C&&g&&p===`edit`&&(0,c.jsx)(n.t,{type:`button`,variant:`ghost`,className:`text-destructive hover:bg-destructive/10 hover:text-destructive h-10 px-5 font-bold mr-auto`,onClick:()=>{g(m?.id),d()},children:`Delete`}),(0,c.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`12px`},children:[!C&&(0,c.jsx)(x.Subscribe,{selector:e=>[e.canSubmit,e.isSubmitting],children:([e,t])=>(0,c.jsx)(n.t,{type:`submit`,variant:`default`,className:`h-10 px-10 font-bold rounded-md shrink-0 flex items-center justify-center transition-all hover:opacity-90`,style:{minWidth:`120px`},disabled:!e||t,onClick:e=>{e.preventDefault(),e.stopPropagation(),x.handleSubmit()},children:t?`Saving...`:`Save`})}),(0,c.jsx)(n.t,{type:`button`,variant:`outline`,className:`h-10 px-8 font-bold border border-border hover:bg-highlight text-foreground shrink-0 rounded-md transition-all`,style:{minWidth:`100px`},onClick:d,children:`Cancel`})]})]})]})]}),document.body)};Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return p}});