@object-ui/console 3.0.3 → 3.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (168) hide show
  1. package/README.md +1 -1
  2. package/dist/assets/AdvancedChartImpl-D711bBuO.js +7 -0
  3. package/dist/assets/AppManagementPage-D_71FpIH.js +1 -0
  4. package/dist/assets/AuditLogPage-D3g_VEdE.js +1 -0
  5. package/dist/assets/AuthPageLayout-9l5xWV_-.js +1 -0
  6. package/dist/assets/{ChartImpl-2ivTljUi.js → ChartImpl-B9B4Fnbe.js} +1 -1
  7. package/dist/assets/CreateAppPage-mqt5j4rK.js +1 -0
  8. package/dist/assets/DashboardDesignPage-Cijb3jeF.js +1 -0
  9. package/dist/assets/DashboardView-DjhlMHLV.js +1 -0
  10. package/dist/assets/EditAppPage-BiK_DWcO.js +1 -0
  11. package/dist/assets/ForgotPasswordPage-Bzady8r_.js +1 -0
  12. package/dist/assets/KanbanEnhanced-OvdpYe81.js +1 -0
  13. package/dist/assets/KanbanImpl-EcxwmGw7.js +1 -0
  14. package/dist/assets/LoginPage-valW4Wu1.js +1 -0
  15. package/dist/assets/{MarkdownImpl-BshtTFK2.js → MarkdownImpl-C0wRapHT.js} +2 -2
  16. package/dist/assets/OrgManagementPage-D0d52PdP.js +1 -0
  17. package/dist/assets/PageDesignPage-hpFLdWCR.js +1 -0
  18. package/dist/assets/PageView-DxIAf-SB.js +2 -0
  19. package/dist/assets/PermissionManagementPage-ELCC8HyK.js +1 -0
  20. package/dist/assets/ProfilePage-Dj1N0mY3.js +1 -0
  21. package/dist/assets/RecordDetailView-DS9tEr5f.js +1 -0
  22. package/dist/assets/RegisterPage-DqUU8oW-.js +1 -0
  23. package/dist/assets/ReportView-CNi0A66t.js +1 -0
  24. package/dist/assets/RoleManagementPage-DRvuG53j.js +1 -0
  25. package/dist/assets/SearchResultsPage-nMlMQCb8.js +1 -0
  26. package/dist/assets/SystemHubPage-CAY-YvG2.js +1 -0
  27. package/dist/assets/UserManagementPage-fzvfJxav.js +1 -0
  28. package/dist/assets/data-adapter-rvE3xy2B.js +1 -0
  29. package/dist/assets/framework-BM176iet.js +10 -0
  30. package/dist/assets/index-B6cpm7bF.css +1 -0
  31. package/dist/assets/index-CTBPkbPG.js +9 -0
  32. package/dist/assets/index-Dv78M4Xq.js +1 -0
  33. package/dist/assets/infrastructure-n1j_TN6w.js +1 -0
  34. package/dist/assets/maplibre-gl-DVmJFhI2.js +811 -0
  35. package/dist/assets/plugins-core-qwgXbAqa.js +8 -0
  36. package/dist/assets/plugins-views-CveFN6PV.js +62 -0
  37. package/dist/assets/ui-components-BxvihT61.js +36 -0
  38. package/dist/assets/ui-components-CRV2BvKI.css +1 -0
  39. package/dist/assets/ui-layout-C6KWQtRO.js +1 -0
  40. package/dist/assets/{vendor-charts-CSvoW-yB.js → vendor-charts-BLNOCZWl.js} +2 -2
  41. package/dist/assets/vendor-dndkit-CX1oDZqy.js +5 -0
  42. package/dist/assets/vendor-i18n-E3-WitRV.js +9 -0
  43. package/dist/assets/{vendor-icons-CQ8b-fGy.js → vendor-icons-ndICq8DC.js} +3425 -3535
  44. package/dist/assets/vendor-objectstack-YKtcdalX.js +34 -0
  45. package/dist/assets/{vendor-radix-BbeYj_o4.js → vendor-radix-C6qchjxv.js} +1 -1
  46. package/dist/assets/vendor-react-9M-xu2bR.js +60 -0
  47. package/dist/assets/vendor-ui-utils-3tkeUVaX.js +1 -0
  48. package/dist/assets/vendor-zod-DxQVy2_o.js +39 -0
  49. package/dist/index.html +23 -22
  50. package/package.json +49 -46
  51. package/plugin.d.ts +1 -2
  52. package/plugin.js +1 -2
  53. package/plugin.ts +1 -2
  54. package/dist/assets/AdvancedChartImpl-DAS1mU9o.js +0 -7
  55. package/dist/assets/AdvancedChartImpl-DAS1mU9o.js.br +0 -0
  56. package/dist/assets/AdvancedChartImpl-DAS1mU9o.js.gz +0 -0
  57. package/dist/assets/AuditLogPage-CyY7VZJW.js +0 -1
  58. package/dist/assets/AuditLogPage-CyY7VZJW.js.br +0 -0
  59. package/dist/assets/AuditLogPage-CyY7VZJW.js.gz +0 -0
  60. package/dist/assets/ChartImpl-2ivTljUi.js.br +0 -0
  61. package/dist/assets/ChartImpl-2ivTljUi.js.gz +0 -0
  62. package/dist/assets/DashboardView-DSh9LYBb.js +0 -1
  63. package/dist/assets/DashboardView-DSh9LYBb.js.br +0 -0
  64. package/dist/assets/DashboardView-DSh9LYBb.js.gz +0 -0
  65. package/dist/assets/ForgotPasswordPage-DUfjj-wh.js +0 -1
  66. package/dist/assets/KanbanEnhanced-ZOndyXyg.js +0 -1
  67. package/dist/assets/KanbanEnhanced-ZOndyXyg.js.br +0 -0
  68. package/dist/assets/KanbanEnhanced-ZOndyXyg.js.gz +0 -0
  69. package/dist/assets/KanbanImpl-BsMtStI7.js +0 -1
  70. package/dist/assets/KanbanImpl-BsMtStI7.js.br +0 -0
  71. package/dist/assets/KanbanImpl-BsMtStI7.js.gz +0 -0
  72. package/dist/assets/LoginPage-2CoFvwsL.js +0 -1
  73. package/dist/assets/MarkdownImpl-BshtTFK2.js.br +0 -0
  74. package/dist/assets/MarkdownImpl-BshtTFK2.js.gz +0 -0
  75. package/dist/assets/OrgManagementPage-BJt5Iiun.js +0 -1
  76. package/dist/assets/OrgManagementPage-BJt5Iiun.js.br +0 -0
  77. package/dist/assets/OrgManagementPage-BJt5Iiun.js.gz +0 -0
  78. package/dist/assets/PageView-bHvRhycc.js +0 -1
  79. package/dist/assets/PageView-bHvRhycc.js.br +0 -0
  80. package/dist/assets/PageView-bHvRhycc.js.gz +0 -0
  81. package/dist/assets/ProfilePage-MVUfKMrp.js +0 -1
  82. package/dist/assets/ProfilePage-MVUfKMrp.js.br +0 -0
  83. package/dist/assets/ProfilePage-MVUfKMrp.js.gz +0 -0
  84. package/dist/assets/RecordDetailView-Sm8_iQw_.js +0 -1
  85. package/dist/assets/RecordDetailView-Sm8_iQw_.js.br +0 -0
  86. package/dist/assets/RecordDetailView-Sm8_iQw_.js.gz +0 -0
  87. package/dist/assets/RegisterPage-B9itUVYp.js +0 -1
  88. package/dist/assets/ReportView-B0D9jx4v.js +0 -1
  89. package/dist/assets/ReportView-B0D9jx4v.js.br +0 -0
  90. package/dist/assets/ReportView-B0D9jx4v.js.gz +0 -0
  91. package/dist/assets/RoleManagementPage-BRqaeF_L.js +0 -1
  92. package/dist/assets/RoleManagementPage-BRqaeF_L.js.br +0 -0
  93. package/dist/assets/RoleManagementPage-BRqaeF_L.js.gz +0 -0
  94. package/dist/assets/SearchResultsPage-wlC0eLLr.js +0 -1
  95. package/dist/assets/SearchResultsPage-wlC0eLLr.js.br +0 -0
  96. package/dist/assets/SearchResultsPage-wlC0eLLr.js.gz +0 -0
  97. package/dist/assets/UserManagementPage-DOH6ql6-.js +0 -1
  98. package/dist/assets/UserManagementPage-DOH6ql6-.js.br +0 -0
  99. package/dist/assets/UserManagementPage-DOH6ql6-.js.gz +0 -0
  100. package/dist/assets/ViewDesignerPage-TCaXYb43.js +0 -1
  101. package/dist/assets/ViewDesignerPage-TCaXYb43.js.br +0 -0
  102. package/dist/assets/ViewDesignerPage-TCaXYb43.js.gz +0 -0
  103. package/dist/assets/data-adapter-D15yh-pb.js +0 -1
  104. package/dist/assets/data-adapter-D15yh-pb.js.br +0 -0
  105. package/dist/assets/data-adapter-D15yh-pb.js.gz +0 -0
  106. package/dist/assets/framework-mHWN965c.js +0 -10
  107. package/dist/assets/framework-mHWN965c.js.br +0 -0
  108. package/dist/assets/framework-mHWN965c.js.gz +0 -0
  109. package/dist/assets/index-CUnVdETN.css +0 -1
  110. package/dist/assets/index-CUnVdETN.css.br +0 -0
  111. package/dist/assets/index-CUnVdETN.css.gz +0 -0
  112. package/dist/assets/index-RAPqkKVL.js +0 -9
  113. package/dist/assets/index-RAPqkKVL.js.br +0 -0
  114. package/dist/assets/index-RAPqkKVL.js.gz +0 -0
  115. package/dist/assets/infrastructure-Di0WqY4l.js +0 -1
  116. package/dist/assets/infrastructure-Di0WqY4l.js.br +0 -0
  117. package/dist/assets/infrastructure-Di0WqY4l.js.gz +0 -0
  118. package/dist/assets/maplibre-gl-D2AsLM0J.js +0 -811
  119. package/dist/assets/maplibre-gl-D2AsLM0J.js.br +0 -0
  120. package/dist/assets/maplibre-gl-D2AsLM0J.js.gz +0 -0
  121. package/dist/assets/plugins-core-Cv2TPt86.js +0 -4
  122. package/dist/assets/plugins-core-Cv2TPt86.js.br +0 -0
  123. package/dist/assets/plugins-core-Cv2TPt86.js.gz +0 -0
  124. package/dist/assets/plugins-views-P3eB-els.css.br +0 -0
  125. package/dist/assets/plugins-views-P3eB-els.css.gz +0 -0
  126. package/dist/assets/plugins-views-divN-xXs.js +0 -60
  127. package/dist/assets/plugins-views-divN-xXs.js.br +0 -0
  128. package/dist/assets/plugins-views-divN-xXs.js.gz +0 -0
  129. package/dist/assets/systemObjects-DSpePIIy.js.br +0 -2
  130. package/dist/assets/systemObjects-DSpePIIy.js.gz +0 -0
  131. package/dist/assets/ui-components-CseD2Dpn.js +0 -31
  132. package/dist/assets/ui-components-CseD2Dpn.js.br +0 -0
  133. package/dist/assets/ui-components-CseD2Dpn.js.gz +0 -0
  134. package/dist/assets/ui-components-GrNdJOi1.css +0 -1
  135. package/dist/assets/ui-components-GrNdJOi1.css.br +0 -0
  136. package/dist/assets/ui-components-GrNdJOi1.css.gz +0 -0
  137. package/dist/assets/ui-layout-CF_1bNSv.js +0 -1
  138. package/dist/assets/ui-layout-CF_1bNSv.js.br +0 -0
  139. package/dist/assets/ui-layout-CF_1bNSv.js.gz +0 -0
  140. package/dist/assets/vendor-charts-CSvoW-yB.js.br +0 -0
  141. package/dist/assets/vendor-charts-CSvoW-yB.js.gz +0 -0
  142. package/dist/assets/vendor-dndkit-DRGpK6sP.js +0 -5
  143. package/dist/assets/vendor-dndkit-DRGpK6sP.js.br +0 -0
  144. package/dist/assets/vendor-dndkit-DRGpK6sP.js.gz +0 -0
  145. package/dist/assets/vendor-i18n-D5KbMT7w.js +0 -9
  146. package/dist/assets/vendor-i18n-D5KbMT7w.js.br +0 -0
  147. package/dist/assets/vendor-i18n-D5KbMT7w.js.gz +0 -0
  148. package/dist/assets/vendor-icons-CQ8b-fGy.js.br +0 -0
  149. package/dist/assets/vendor-icons-CQ8b-fGy.js.gz +0 -0
  150. package/dist/assets/vendor-objectstack-Bifvxvds.js +0 -1
  151. package/dist/assets/vendor-objectstack-Bifvxvds.js.br +0 -0
  152. package/dist/assets/vendor-objectstack-Bifvxvds.js.gz +0 -0
  153. package/dist/assets/vendor-radix-BbeYj_o4.js.br +0 -0
  154. package/dist/assets/vendor-radix-BbeYj_o4.js.gz +0 -0
  155. package/dist/assets/vendor-react-Dy_xkBQQ.js +0 -60
  156. package/dist/assets/vendor-react-Dy_xkBQQ.js.br +0 -0
  157. package/dist/assets/vendor-react-Dy_xkBQQ.js.gz +0 -0
  158. package/dist/assets/vendor-ui-utils-h6yAcIi9.js +0 -1
  159. package/dist/assets/vendor-ui-utils-h6yAcIi9.js.br +0 -0
  160. package/dist/assets/vendor-ui-utils-h6yAcIi9.js.gz +0 -0
  161. package/dist/assets/vendor-zod-UZPqlszj.js +0 -39
  162. package/dist/assets/vendor-zod-UZPqlszj.js.br +0 -0
  163. package/dist/assets/vendor-zod-UZPqlszj.js.gz +0 -0
  164. package/dist/index.html.br +0 -0
  165. package/dist/index.html.gz +0 -0
  166. package/dist/mockServiceWorker.js.br +0 -0
  167. package/dist/mockServiceWorker.js.gz +0 -0
  168. package/dist/stats.html +0 -4949
@@ -1,60 +0,0 @@
1
- import{r as g,j as t,a as Ot,f as nn,R as Ge}from"./vendor-react-Dy_xkBQQ.js";import{f as Jn,S as De,C as he,g as Zn,c as Qn,i as es,j as ts}from"./framework-mHWN965c.js";import{c as G,B,P as Pr,J as Er,K as Or,X as rs,Q as ns,M as Ee,N as ss,Y as Ne,Z as Ce,$ as Me,a0 as Fe,a1 as pr,a2 as as,a3 as is,a4 as os,a5 as sn,a6 as mt,a7 as gt,a8 as xt,T as an,a as on,d as nt,e as st,a9 as or,t as ls,u as cs,v as ds,w as qt,aa as us,ab as br,L as $}from"./ui-components-CseD2Dpn.js";import{r as fs,c as ln}from"./vendor-ui-utils-h6yAcIi9.js";import{Z as hs,a6 as ps,_ as ms,j as gs,a7 as xs,$ as bs,a0 as ys,y as vs,a3 as js,a8 as ws,a9 as Ns,aa as Cs,ab as Ss,S as zr,X as cn,a as Ds,C as Rs,d as ks,V as dn,A as Ps,H as Es,ac as Os,ad as zs,v as un,E as Ms,u as Fs,ae as Ts,l as Ls,af as fn,t as _s,G as Mr,r as hn,a4 as pn,a5 as mn,M as gn,ag as As,ah as Is,ai as lr,aj as xn,ak as Bs,al as qs,am as Hs,an as cr,ao as Ws,ap as pt,aq as Ht,ar as $s}from"./vendor-icons-CQ8b-fGy.js";import{r as Kt}from"./vendor-charts-CSvoW-yB.js";const Gs={grid:t.jsx(ys,{className:"h-4 w-4"}),kanban:t.jsx(bs,{className:"h-4 w-4"}),gallery:t.jsx(xs,{className:"h-4 w-4"}),calendar:t.jsx(gs,{className:"h-4 w-4"}),timeline:t.jsx(ms,{className:"h-4 w-4"}),gantt:t.jsx(ps,{className:"h-4 w-4"}),map:t.jsx(hs,{className:"h-4 w-4"})},dr={grid:"Grid",kanban:"Kanban",gallery:"Gallery",calendar:"Calendar",timeline:"Timeline",gantt:"Gantt",map:"Map"},Vs=({currentView:e,availableViews:r=["grid","kanban"],onViewChange:n,className:s,animated:a=!0})=>{const u=g.useCallback(l=>{if(!a||l===e){n(l);return}typeof document<"u"&&"startViewTransition"in document?document.startViewTransition(()=>n(l)):n(l)},[a,e,n]);return t.jsx("div",{className:G("flex items-center gap-1 bg-transparent oui-view-switcher",s),children:r.map(l=>{const d=e===l;return t.jsxs("button",{type:"button",onClick:()=>u(l),"aria-label":dr[l],title:dr[l],"aria-pressed":d,"data-state":d?"on":"off",className:G("inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50","hover:bg-muted hover:text-muted-foreground","gap-2 px-3 py-2","data-[state=on]:bg-background data-[state=on]:text-foreground data-[state=on]:shadow-sm border-transparent border data-[state=on]:border-border/50"),children:[Gs[l],t.jsx("span",{className:"hidden sm:inline-block text-xs font-medium",children:dr[l]})]},l)})})},mr={xs:0,sm:640,md:768,lg:1024,xl:1280,"2xl":1536},it=["xs","sm","md","lg","xl","2xl"];function Ys(e){for(let r=it.length-1;r>=0;r--){const n=it[r];if(e>=mr[n])return n}return"xs"}function Xs(){const[e,r]=g.useState(()=>typeof window<"u"?window.innerWidth:1024);g.useEffect(()=>{if(typeof window>"u")return;let a;const u=()=>{clearTimeout(a),a=setTimeout(()=>{r(window.innerWidth)},100)};return window.addEventListener("resize",u),()=>{clearTimeout(a),window.removeEventListener("resize",u)}},[]);const n=Ys(e),s=it.indexOf(n);return{breakpoint:n,width:e,isMobile:s<it.indexOf("md"),isTablet:s>=it.indexOf("md")&&s<it.indexOf("lg"),isDesktop:s>=it.indexOf("lg"),isAbove:a=>e>=mr[a],isBelow:a=>e<mr[a]}}function Us(e){const{onRefresh:r,threshold:n=80,enabled:s=!0}=e,a=g.useRef(null),[u,l]=g.useState(!1),[d,c]=g.useState(0),o=g.useRef(0),m=g.useCallback(C=>{if(!s||u)return;const S=a.current;S&&S.scrollTop===0&&(o.current=C.touches[0].clientY)},[s,u]),h=g.useCallback(C=>{if(!s||u||!o.current)return;const b=C.touches[0].clientY-o.current;b>0&&c(Math.min(b,n*1.5))},[s,u,n]),y=g.useCallback(async()=>{if(!(!s||u)){if(d>=n){l(!0);try{await r()}finally{l(!1)}}c(0),o.current=0}},[s,u,d,n,r]);return g.useEffect(()=>{const C=a.current;if(!(!C||!s))return C.addEventListener("touchstart",m,{passive:!0}),C.addEventListener("touchmove",h,{passive:!0}),C.addEventListener("touchend",y,{passive:!0}),()=>{C.removeEventListener("touchstart",m),C.removeEventListener("touchmove",h),C.removeEventListener("touchend",y)}},[m,h,y,s]),{ref:a,isRefreshing:u,pullDistance:d}}const bn=g.createContext(null);bn.displayName="MobileContext";function ki({pwa:e,offline:r,children:n}){const s=Xs(),a=g.useMemo(()=>({...s,pwa:e,offline:r}),[s,e,r]);return t.jsx(bn.Provider,{value:a,children:n})}function Ks(e){switch(e){case"equals":return"=";case"notEquals":return"!=";case"contains":return"contains";case"notContains":return"notcontains";case"greaterThan":return">";case"greaterOrEqual":return">=";case"lessThan":return"<";case"lessOrEqual":return"<=";case"in":return"in";case"notIn":return"not in";case"before":return"<";case"after":return">";default:return"="}}function Js(e){if(!e||!e.conditions||e.conditions.length===0)return[];const r=e.conditions.map(n=>n.operator==="isEmpty"?[n.field,"=",null]:n.operator==="isNotEmpty"?[n.field,"!=",null]:[n.field,Ks(n.operator),n.value]);return r.length===1?r[0]:[e.logic,...r]}const yn=({schema:e,className:r,onViewChange:n,onFilterChange:s,onSortChange:a,onSearchChange:u,onRowClick:l,showViewSwitcher:d=!1,...c})=>{const o=g.useMemo(()=>({...e,viewType:e.viewType||"grid"}),[e]),[m,h]=g.useState(o.viewType),[y,C]=g.useState(""),[S,b]=g.useState(!1),[i,f]=g.useState(()=>o.sort&&o.sort.length>0?o.sort.map(O=>({id:crypto.randomUUID(),field:O.field,order:O.order||"asc"})):[]),[x,j]=g.useState(!1),[N,D]=g.useState({id:"root",logic:"and",conditions:[]}),w=c.dataSource,[p,v]=g.useState([]),[k,T]=g.useState(!1),[F,q]=g.useState(null),[M,A]=g.useState(0),R=g.useCallback(async()=>{A(O=>O+1)},[]),{ref:P,isRefreshing:E,pullDistance:H}=Us({onRefresh:R,enabled:!!w&&!!o.objectName}),be=g.useMemo(()=>o.id?`listview-${o.objectName}-${o.id}-view`:`listview-${o.objectName}-view`,[o.objectName,o.id]);g.useEffect(()=>{let O=!0;return(async()=>{if(!(!w||!o.objectName))try{const _=await w.getObjectSchema(o.objectName);O&&q(_)}catch(_){console.warn("Failed to fetch object schema for ListView:",_)}})(),()=>{O=!1}},[o.objectName,w]),g.useEffect(()=>{let O=!0;return(async()=>{if(!(!w||!o.objectName)){T(!0);try{let _=[];const ie=o.filters||[],se=Js(N);ie.length>0&&se.length>0?_=["and",ie,se]:se.length>0?_=se:_=ie;const Be=i.length>0?i.filter(ue=>ue.field).map(ue=>({field:ue.field,order:ue.order})):void 0,de=await w.find(o.objectName,{$filter:_,$orderby:Be,$top:100});let te=[];Array.isArray(de)?te=de:de&&typeof de=="object"&&(Array.isArray(de.data)?te=de.data:Array.isArray(de.records)&&(te=de.records)),O&&v(te)}catch(_){console.error("ListView data fetch error:",_)}finally{O&&T(!1)}}})(),()=>{O=!1}},[o.objectName,w,o.filters,i,N,M]);const le=g.useMemo(()=>{const O=["grid"];return o.options?.kanban?.groupField&&O.push("kanban"),o.options?.gallery?.imageField&&O.push("gallery"),o.options?.calendar?.startDateField&&O.push("calendar"),(o.options?.timeline?.dateField||o.options?.calendar?.startDateField)&&O.push("timeline"),o.options?.gantt?.startDateField&&O.push("gantt"),(o.options?.map?.locationField||o.options?.map?.latitudeField&&o.options?.map?.longitudeField)&&O.push("map"),o.viewType&&!O.includes(o.viewType)&&["grid","kanban","calendar","timeline","gantt","map","gallery"].includes(o.viewType)&&O.push(o.viewType),O},[o.options,o.viewType]);g.useEffect(()=>{o.viewType&&h(o.viewType)},[o.viewType]);const Re=g.useCallback(O=>{h(O);try{localStorage.setItem(be,O)}catch(U){console.warn("Failed to save view preference to localStorage:",U)}n?.(O)},[be,n]),ke=g.useCallback(O=>{C(O),u?.(O)},[u]),Te=Jn({navigation:o.navigation,objectName:o.objectName,onNavigate:o.onNavigate,onRowClick:l}),Ie=g.useMemo(()=>{const O={objectName:o.objectName,fields:o.fields,filters:o.filters,sort:i,className:"h-full w-full",showSearch:!1,onRowClick:Te.handleClick};switch(m){case"grid":return{type:"object-grid",...O,columns:o.fields,...o.options?.grid||{}};case"kanban":return{type:"object-kanban",...O,groupBy:o.options?.kanban?.groupField||"status",groupField:o.options?.kanban?.groupField||"status",titleField:o.options?.kanban?.titleField||"name",cardFields:o.fields||[],...o.options?.kanban||{}};case"calendar":return{type:"object-calendar",...O,startDateField:o.options?.calendar?.startDateField||"start_date",endDateField:o.options?.calendar?.endDateField||"end_date",titleField:o.options?.calendar?.titleField||"name",...o.options?.calendar||{}};case"gallery":return{type:"object-gallery",...O,imageField:o.options?.gallery?.imageField,titleField:o.options?.gallery?.titleField||"name",subtitleField:o.options?.gallery?.subtitleField,...o.options?.gallery||{}};case"timeline":return{type:"object-timeline",...O,dateField:o.options?.timeline?.dateField||"created_at",titleField:o.options?.timeline?.titleField||"name",...o.options?.timeline||{}};case"gantt":return{type:"object-gantt",...O,startDateField:o.options?.gantt?.startDateField||"start_date",endDateField:o.options?.gantt?.endDateField||"end_date",progressField:o.options?.gantt?.progressField||"progress",dependenciesField:o.options?.gantt?.dependenciesField||"dependencies",...o.options?.gantt||{}};case"map":return{type:"object-map",...O,locationField:o.options?.map?.locationField||"location",...o.options?.map||{}};default:return O}},[m,o,i]),Le=N.conditions&&N.conditions.length>0,ce=g.useMemo(()=>F?.fields?Object.entries(F.fields).map(([O,U])=>({value:O,label:U.label||O,type:U.type||"text",options:U.options})):(o.fields||[]).map(O=>typeof O=="string"?{value:O,label:O,type:"text"}:{value:O.name||O.fieldName,label:O.label||O.name,type:O.type||"text",options:O.options}),[F,o.fields]),[fe,ge]=g.useState(!1);return t.jsxs("div",{ref:P,className:G("flex flex-col h-full bg-background relative",r),children:[H>0&&t.jsx("div",{className:"flex items-center justify-center text-xs text-muted-foreground",style:{height:H},children:E?"Refreshing…":"Pull to refresh"}),d&&t.jsx("div",{className:"border-b px-4 py-1 flex items-center bg-background",children:t.jsx(Vs,{currentView:m,availableViews:le,onViewChange:Re})}),t.jsxs("div",{className:"border-b px-2 sm:px-4 py-1 flex items-center justify-between gap-1 sm:gap-2 bg-background",children:[t.jsxs("div",{className:"flex items-center gap-0.5 overflow-hidden flex-1 min-w-0",children:[t.jsxs(B,{variant:"ghost",size:"sm",className:"h-7 px-2 text-muted-foreground hover:text-primary text-xs",disabled:!0,children:[t.jsx(vs,{className:"h-3.5 w-3.5 mr-1.5"}),t.jsx("span",{className:"hidden sm:inline",children:"Hide fields"})]}),t.jsxs(Pr,{open:x,onOpenChange:j,children:[t.jsx(Er,{asChild:!0,children:t.jsxs(B,{variant:"ghost",size:"sm",className:G("h-7 px-2 text-muted-foreground hover:text-primary text-xs",Le&&"text-primary"),children:[t.jsx(js,{className:"h-3.5 w-3.5 mr-1.5"}),t.jsx("span",{className:"hidden sm:inline",children:"Filter"}),Le&&t.jsx("span",{className:"ml-1 flex h-4 min-w-[16px] items-center justify-center rounded-full bg-primary/10 text-[10px] font-medium text-primary",children:N.conditions?.length||0})]})}),t.jsx(Or,{align:"start",className:"w-[calc(100vw-2rem)] sm:w-[600px] max-w-[600px] p-3 sm:p-4",children:t.jsxs("div",{className:"space-y-4",children:[t.jsx("div",{className:"flex items-center justify-between border-b pb-2",children:t.jsx("h4",{className:"font-medium text-sm",children:"Filter Records"})}),t.jsx(rs,{fields:ce,value:N,onChange:O=>{D(O),s&&s(O)}})]})})]}),t.jsxs(B,{variant:"ghost",size:"sm",className:"h-7 px-2 text-muted-foreground hover:text-primary text-xs",disabled:!0,children:[t.jsx(ws,{className:"h-3.5 w-3.5 mr-1.5"}),t.jsx("span",{className:"hidden sm:inline",children:"Group"})]}),t.jsxs(Pr,{open:S,onOpenChange:b,children:[t.jsx(Er,{asChild:!0,children:t.jsxs(B,{variant:"ghost",size:"sm",className:G("h-7 px-2 text-muted-foreground hover:text-primary text-xs",i.length>0&&"text-primary"),children:[t.jsx(Ns,{className:"h-3.5 w-3.5 mr-1.5"}),t.jsx("span",{className:"hidden sm:inline",children:"Sort"}),i.length>0&&t.jsx("span",{className:"ml-1 flex h-4 min-w-[16px] items-center justify-center rounded-full bg-primary/10 text-[10px] font-medium text-primary",children:i.length})]})}),t.jsx(Or,{align:"start",className:"w-[calc(100vw-2rem)] sm:w-[600px] max-w-[600px] p-3 sm:p-4",children:t.jsxs("div",{className:"space-y-4",children:[t.jsx("div",{className:"flex items-center justify-between border-b pb-2",children:t.jsx("h4",{className:"font-medium text-sm",children:"Sort Records"})}),t.jsx(ns,{fields:ce,value:i,onChange:O=>{f(O),a&&a(O)}})]})})]}),t.jsxs(B,{variant:"ghost",size:"sm",className:"h-7 px-2 text-muted-foreground hover:text-primary text-xs",disabled:!0,children:[t.jsx(Cs,{className:"h-3.5 w-3.5 mr-1.5"}),t.jsx("span",{className:"hidden sm:inline",children:"Color"})]}),t.jsxs(B,{variant:"ghost",size:"sm",className:"h-7 px-2 text-muted-foreground hover:text-primary text-xs hidden lg:flex",disabled:!0,children:[t.jsx(Ss,{className:"h-3.5 w-3.5 mr-1.5"}),t.jsx("span",{className:"hidden sm:inline",children:"Row height"})]})]}),t.jsx("div",{className:"flex items-center gap-1",children:fe?t.jsxs("div",{className:"relative w-36 sm:w-48 lg:w-64",children:[t.jsx(zr,{className:"absolute left-2 top-1/2 -translate-y-1/2 h-3.5 w-3.5 text-muted-foreground"}),t.jsx(Ee,{placeholder:"Find...",value:y,onChange:O=>ke(O.target.value),className:"pl-7 h-7 text-xs bg-muted/50 border-transparent hover:bg-muted focus:bg-background focus:border-input transition-colors",autoFocus:!0,onBlur:()=>{y||ge(!1)}}),t.jsx(B,{variant:"ghost",size:"sm",className:"absolute right-0.5 top-1/2 -translate-y-1/2 h-5 w-5 p-0 hover:bg-muted-foreground/20",onClick:()=>{ke(""),ge(!1)},children:t.jsx(cn,{className:"h-3 w-3"})})]}):t.jsxs(B,{variant:"ghost",size:"sm",className:"h-7 px-2 text-muted-foreground hover:text-primary text-xs",onClick:()=>ge(!0),children:[t.jsx(zr,{className:"h-3.5 w-3.5 mr-1.5"}),t.jsx("span",{className:"hidden sm:inline",children:"Search"})]})})]}),t.jsx("div",{className:"flex-1 min-h-0 bg-background relative overflow-hidden animate-in fade-in-0 duration-200",children:t.jsx(De,{schema:Ie,...c,data:p,loading:k})},m),Te.isOverlay&&t.jsx(ss,{...Te,title:o.label?`${o.label} Detail`:o.objectName?`${o.objectName.charAt(0).toUpperCase()+o.objectName.slice(1)} Detail`:"Record Detail",children:O=>t.jsx("div",{className:"space-y-3",children:Object.entries(O).map(([U,_])=>t.jsxs("div",{className:"flex flex-col",children:[t.jsx("span",{className:"text-xs font-medium text-muted-foreground uppercase tracking-wide",children:U.replace(/_/g," ")}),t.jsx("span",{className:"text-sm",children:String(_??"—")})]},U))})})]})},Zs={small:"grid-cols-2 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 xl:grid-cols-6",medium:"grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4",large:"grid-cols-1 sm:grid-cols-1 md:grid-cols-2 lg:grid-cols-3"},Qs={small:"aspect-square",medium:"aspect-[4/3]",large:"aspect-[16/10]"},ea=e=>{const{schema:r}=e,n=Zn(),s=e.dataSource||n.dataSource,a=Qn(r.bind),[u,l]=g.useState([]),[d,c]=g.useState(!1),o=r.gallery,m=o?.coverField??r.imageField??"image",h=o?.coverFit??"cover",y=o?.cardSize??"medium",C=o?.titleField??r.titleField??"name",S=o?.visibleFields;g.useEffect(()=>{let i=!0;if(e.data&&Array.isArray(e.data)){l(e.data);return}const f=async()=>{if(!(!s||!r.objectName)){i&&c(!0);try{const x=await s.find(r.objectName,{$filter:r.filter});let j=[];if(Array.isArray(x))j=x;else if(x&&typeof x=="object"){const N=x;Array.isArray(N.records)?j=N.records:Array.isArray(N.data)&&(j=N.data)}i&&l(j)}catch(x){console.error("[ObjectGallery] Fetch error:",x)}finally{i&&c(!1)}}};return r.objectName&&!a&&!r.data&&!e.data&&f(),()=>{i=!1}},[r.objectName,s,a,r.data,r.filter,e.data]);const b=e.data||a||r.data||u||[];return d&&!b.length?t.jsx("div",{className:"p-4 text-sm text-muted-foreground",children:"Loading Gallery..."}):b.length?t.jsx("div",{className:G("grid gap-4 p-4",Zs[y],r.className),role:"list",children:b.map((i,f)=>{const x=i._id??i.id??f,j=String(i[C]??"Untitled"),N=i[m];return t.jsxs(Ne,{role:"listitem",className:G("group overflow-hidden transition-all hover:shadow-md",e.onCardClick&&"cursor-pointer"),onClick:e.onCardClick?()=>e.onCardClick(i):void 0,children:[t.jsx("div",{className:G("w-full overflow-hidden bg-muted relative",Qs[y]),children:N?t.jsx("img",{src:N,alt:j,className:G("h-full w-full transition-transform group-hover:scale-105",h==="cover"&&"object-cover",h==="contain"&&"object-contain")}):t.jsx("div",{className:"flex h-full w-full items-center justify-center bg-secondary/50 text-muted-foreground",children:t.jsx("span",{className:"text-4xl font-light opacity-20",children:j[0]?.toUpperCase()})})}),t.jsxs(Ce,{className:"p-3 border-t",children:[t.jsx("h3",{className:"font-medium truncate text-sm",title:j,children:j}),S&&S.length>0&&t.jsx("div",{className:"mt-1 space-y-0.5",children:S.map(D=>{const w=i[D];return w==null?null:t.jsx("p",{className:"text-xs text-muted-foreground truncate",children:String(w)},D)})})]})]},x)})}):t.jsx("div",{className:"p-4 text-sm text-muted-foreground",children:"No items to display"})};he.register("object-gallery",ea,{namespace:"plugin-list",label:"Gallery View",category:"view"});he.register("list-view",yn,{namespace:"plugin-list",label:"List View",category:"Views",icon:"LayoutList",inputs:[{name:"objectName",type:"string",label:"Object Name",required:!0},{name:"viewType",type:"enum",label:"Default View",enum:[{label:"Grid",value:"grid"},{label:"List",value:"list"},{label:"Kanban",value:"kanban"},{label:"Calendar",value:"calendar"},{label:"Chart",value:"chart"}],defaultValue:"grid"},{name:"fields",type:"array",label:"Fields"},{name:"filters",type:"array",label:"Filters"},{name:"sort",type:"array",label:"Sort"},{name:"options",type:"object",label:"View Options"}],defaultProps:{objectName:"",viewType:"grid",fields:[],filters:[],sort:[],options:{}}});he.register("list",yn,{namespace:"view",category:"view",label:"List",icon:"LayoutList",inputs:[{name:"objectName",type:"string",label:"Object Name",required:!0},{name:"viewType",type:"enum",label:"Default View",enum:[{label:"Grid",value:"grid"},{label:"List",value:"list"},{label:"Kanban",value:"kanban"},{label:"Calendar",value:"calendar"},{label:"Chart",value:"chart"}],defaultValue:"grid"},{name:"fields",type:"array",label:"Fields"},{name:"filters",type:"array",label:"Filters"},{name:"sort",type:"array",label:"Sort"},{name:"options",type:"object",label:"View Options"}]});const gr=({section:e,data:r,className:n})=>{const[s,a]=g.useState(e.defaultCollapsed??!1),[u,l]=g.useState(null),d=g.useCallback((m,h)=>{const y=h!=null?String(h):"";navigator.clipboard.writeText(y).then(()=>{l(m),setTimeout(()=>l(null),2e3)})},[]),c=m=>{const h=r?.[m.name]??m.value;if(m.render)return t.jsx(De,{schema:m.render,data:{...r,value:h}});const y=m.span===1?"col-span-1":m.span===2?"col-span-2":m.span===3?"col-span-3":m.span===4?"col-span-4":m.span===5?"col-span-5":m.span===6?"col-span-6":"",C=h!=null?String(h):"-",S=h!=null&&h!=="",b=u===m.name;return t.jsxs("div",{className:G("space-y-1.5 group",y),children:[t.jsx("div",{className:"text-xs font-medium text-muted-foreground uppercase tracking-wide",children:m.label||m.name}),t.jsxs("div",{className:G("flex items-start justify-between gap-2 min-h-[44px] sm:min-h-0 rounded-md",S&&"cursor-pointer active:bg-muted/60 transition-colors"),onClick:S?()=>d(m.name,h):void 0,onKeyDown:S?i=>{(i.key==="Enter"||i.key===" ")&&(i.preventDefault(),d(m.name,h))}:void 0,role:S?"button":void 0,tabIndex:S?0:void 0,children:[t.jsx("div",{className:"text-sm flex-1 break-words py-1",children:C}),S&&t.jsx(sn,{children:t.jsxs(mt,{children:[t.jsx(gt,{asChild:!0,children:t.jsx(B,{variant:"ghost",size:"icon",className:"h-6 w-6 opacity-0 group-hover:opacity-100 transition-opacity shrink-0",onClick:i=>{i.stopPropagation(),d(m.name,h)},children:b?t.jsx(ks,{className:"h-3 w-3 text-green-600"}):t.jsx(dn,{className:"h-3 w-3"})})}),t.jsx(xt,{children:b?"Copied!":"Copy to clipboard"})]})})]})]},m.name)},o=t.jsx("div",{className:G("grid gap-3 sm:gap-4",e.columns===1?"grid-cols-1":e.columns===2?"grid-cols-1 sm:grid-cols-2":(e.columns===3,"grid-cols-1 sm:grid-cols-2 md:grid-cols-3")),children:e.fields.map(c)});return e.collapsible?t.jsx(as,{open:!s,onOpenChange:m=>a(!m),className:n,children:t.jsxs(Ne,{children:[t.jsx(is,{asChild:!0,children:t.jsxs(Me,{className:G("cursor-pointer hover:bg-muted/50 transition-colors",e.headerColor&&`bg-${e.headerColor}`),children:[t.jsxs(Fe,{className:"flex items-center justify-between",children:[t.jsxs("div",{className:"flex items-center gap-2",children:[e.icon&&t.jsx("span",{className:"text-muted-foreground",children:e.icon}),t.jsx("span",{children:e.title}),e.fields&&t.jsx(pr,{variant:"secondary",className:"ml-2 text-xs",children:e.fields.length})]}),t.jsx("div",{className:"flex items-center gap-2",children:s?t.jsx(Ds,{className:"h-4 w-4 text-muted-foreground"}):t.jsx(Rs,{className:"h-4 w-4 text-muted-foreground"})})]}),e.description&&!s&&t.jsx("p",{className:"text-sm text-muted-foreground mt-1.5",children:e.description})]})}),t.jsx(os,{children:t.jsx(Ce,{className:"pt-4 sm:pt-6 px-3 sm:px-6",children:o})})]})}):t.jsxs(Ne,{className:G(e.showBorder===!1?"border-none shadow-none":"",n),children:[e.title&&t.jsxs(Me,{className:G(e.headerColor&&`bg-${e.headerColor}`),children:[t.jsx(Fe,{className:"flex items-center justify-between",children:t.jsxs("div",{className:"flex items-center gap-2",children:[e.icon&&t.jsx("span",{className:"text-muted-foreground",children:e.icon}),t.jsx("span",{children:e.title}),e.fields&&t.jsx(pr,{variant:"secondary",className:"ml-2 text-xs",children:e.fields.length})]})}),e.description&&t.jsx("p",{className:"text-sm text-muted-foreground mt-1.5",children:e.description})]}),t.jsx(Ce,{className:"pt-4 sm:pt-6 px-3 sm:px-6",children:o})]})},ta=({tabs:e,data:r,className:n})=>{const[s,a]=g.useState(e[0]?.key),u=e.filter(l=>typeof l.visible=="boolean"?l.visible:(typeof l.visible=="string",!0));return t.jsxs(an,{value:s,onValueChange:a,className:n,children:[t.jsx(on,{className:"w-full justify-start border-b rounded-none bg-transparent p-0",children:u.map(l=>t.jsx(nt,{value:l.key,className:"relative rounded-none border-b-2 border-transparent data-[state=active]:border-primary data-[state=active]:bg-transparent",children:t.jsxs("div",{className:"flex items-center gap-2",children:[l.icon&&t.jsx("span",{children:l.icon}),t.jsx("span",{children:l.label}),l.badge&&t.jsx(pr,{variant:"secondary",className:"ml-1",children:l.badge})]})},l.key))}),u.map(l=>t.jsx(st,{value:l.key,className:"mt-4",children:Array.isArray(l.content)?t.jsx("div",{className:"space-y-4",children:l.content.map((d,c)=>t.jsx(De,{schema:d,data:r},c))}):t.jsx(De,{schema:l.content,data:r})},l.key))]})},vn=({title:e,type:r,api:n,data:s=[],schema:a,columns:u,className:l,dataSource:d})=>{const[c,o]=g.useState(s),[m,h]=g.useState(!1);g.useEffect(()=>{n&&!s.length&&(h(!0),d?d.find(n).then(C=>{const S=Array.isArray(C)?C:Array.isArray(C?.data)?C.data:[];o(S),h(!1)}).catch(C=>{console.error("Failed to fetch related data:",C),h(!1)}):fetch(n).then(C=>C.json()).then(C=>{const S=Array.isArray(C)?C:C?.data||[];o(S)}).catch(C=>{console.error("Failed to fetch related data:",C)}).finally(()=>h(!1)))},[n,s,d]);const y=g.useMemo(()=>{if(a)return a;switch(r){case"grid":case"table":return{type:"data-table",data:c,columns:u||[],pagination:c.length>10,pageSize:10};case"list":return{type:"data-list",data:c};default:return{type:"div",children:"No view configured"}}},[r,c,u,a]);return t.jsxs(Ne,{className:l,children:[t.jsx(Me,{children:t.jsxs(Fe,{className:"flex items-center justify-between",children:[t.jsx("span",{children:e}),t.jsxs("span",{className:"text-sm font-normal text-muted-foreground",children:[c.length," record",c.length!==1?"s":""]})]})}),t.jsx(Ce,{children:m?t.jsx("div",{className:"flex items-center justify-center py-8 text-muted-foreground",children:"Loading..."}):c.length===0?t.jsx("div",{className:"flex items-center justify-center py-8 text-muted-foreground text-sm",children:"No related records found"}):t.jsx(De,{schema:y})})]})},jn=({schema:e,dataSource:r,className:n,onEdit:s,onDelete:a,onBack:u})=>{const[l,d]=g.useState(e.data),[c,o]=g.useState(!e.data&&!!(e.api&&e.resourceId||r&&e.objectName&&e.resourceId)),[m,h]=g.useState(!1);g.useEffect(()=>{if(e.data){d(e.data),o(!1);return}r&&e.objectName&&e.resourceId?(o(!0),r.findOne(e.objectName,e.resourceId).then(N=>{d(N),o(!1)}).catch(N=>{console.error("Failed to fetch detail data:",N),o(!1)})):e.api&&e.resourceId&&(o(!0),fetch(`${e.api}/${e.resourceId}`).then(N=>N.json()).then(N=>{d(N?.data||N)}).catch(N=>{console.error("Failed to fetch detail data:",N)}).finally(()=>o(!1)))},[e.api,e.resourceId]);const y=g.useCallback(()=>{if(u)u();else if(e.onNavigate){const N=e.backUrl||(e.objectName?`/${e.objectName}`:"/");e.onNavigate(N,{replace:!0})}else e.backUrl?window.location.href=e.backUrl:window.history.back()},[u,e]),C=g.useCallback(()=>{s?s():e.onNavigate&&e.editUrl?e.onNavigate(e.editUrl):e.onNavigate&&e.objectName&&e.resourceId?e.onNavigate(`/${e.objectName}/${e.resourceId}/edit`):e.editUrl&&(window.location.href=e.editUrl)},[s,e]),S=g.useCallback(()=>{const N=e.deleteConfirmation||"Are you sure you want to delete this record?";window.confirm(N)&&(a?.(),e.onNavigate&&e.objectName&&e.onNavigate(`/${e.objectName}`,{replace:!0}))},[a,e]),b=g.useCallback(()=>{navigator.share&&e.objectName&&e.resourceId?navigator.share({title:e.title||"Record Details",text:`${e.objectName} #${e.resourceId}`,url:window.location.href}).catch(N=>console.log("Share failed:",N)):navigator.clipboard.writeText(window.location.href).then(()=>{console.log("Link copied to clipboard")})},[e]),i=g.useCallback(()=>{console.log("Duplicate record:",l)},[l]),f=g.useCallback(()=>{console.log("Export record:",l)},[l]),x=g.useCallback(()=>{console.log("View history for record:",e.resourceId)},[e]),j=g.useCallback(()=>{h(!m)},[m]);return c||e.loading?t.jsxs("div",{className:G("space-y-4",n),children:[t.jsx(or,{className:"h-10 w-full"}),t.jsx(or,{className:"h-64 w-full"}),t.jsx(or,{className:"h-48 w-full"})]}):t.jsx(sn,{children:t.jsxs("div",{className:G("space-y-6",n),children:[t.jsxs("div",{className:"flex flex-col sm:flex-row items-start justify-between gap-3 sm:gap-4 pb-4 border-b",children:[t.jsxs("div",{className:"flex items-start gap-2 sm:gap-3 flex-1 min-w-0",children:[(e.showBack??!0)&&t.jsxs(mt,{children:[t.jsx(gt,{asChild:!0,children:t.jsx(B,{variant:"ghost",size:"icon",onClick:y,className:"shrink-0 mt-1",children:t.jsx(Ps,{className:"h-4 w-4"})})}),t.jsx(xt,{children:"Back"})]}),t.jsxs("div",{className:"flex-1 min-w-0",children:[t.jsxs("div",{className:"flex items-center gap-2",children:[t.jsx("h1",{className:"text-xl sm:text-2xl font-bold truncate",children:e.title||"Details"}),t.jsxs(mt,{children:[t.jsx(gt,{asChild:!0,children:t.jsx(B,{variant:"ghost",size:"icon",className:"h-6 w-6 shrink-0",onClick:j,children:m?t.jsx(Es,{className:"h-4 w-4 fill-yellow-400 text-yellow-400"}):t.jsx(Os,{className:"h-4 w-4 text-muted-foreground"})})}),t.jsx(xt,{children:m?"Remove from favorites":"Add to favorites"})]})]}),e.objectName&&t.jsxs("p",{className:"text-sm text-muted-foreground mt-1 flex items-center gap-1.5",children:[t.jsx("span",{className:"font-medium",children:e.objectName}),t.jsx("span",{className:"text-muted-foreground/60",children:"•"}),t.jsxs("span",{children:["#",e.resourceId]})]})]})]}),t.jsxs("div",{className:"flex flex-wrap items-center gap-1.5 shrink-0 w-full sm:w-auto",children:[e.actions?.map((N,D)=>t.jsx(De,{schema:N,data:l},D)),t.jsxs(mt,{children:[t.jsx(gt,{asChild:!0,children:t.jsx(B,{variant:"outline",size:"icon",onClick:b,children:t.jsx(zs,{className:"h-4 w-4"})})}),t.jsx(xt,{children:"Share"})]}),e.showEdit&&t.jsxs(mt,{children:[t.jsx(gt,{asChild:!0,children:t.jsxs(B,{variant:"default",onClick:C,className:"gap-2",children:[t.jsx(un,{className:"h-4 w-4"}),t.jsx("span",{className:"hidden sm:inline",children:"Edit"})]})}),t.jsx(xt,{children:"Edit record"})]}),t.jsxs(ls,{children:[t.jsxs(mt,{children:[t.jsx(gt,{asChild:!0,children:t.jsx(cs,{asChild:!0,children:t.jsx(B,{variant:"ghost",size:"icon",children:t.jsx(Ms,{className:"h-4 w-4"})})})}),t.jsx(xt,{children:"More actions"})]}),t.jsxs(ds,{align:"end",className:"w-[calc(100vw-2rem)] sm:w-48 max-h-[60vh] overflow-y-auto",children:[t.jsxs(qt,{onClick:i,children:[t.jsx(dn,{className:"h-4 w-4 mr-2"}),"Duplicate"]}),t.jsxs(qt,{onClick:f,children:[t.jsx(Fs,{className:"h-4 w-4 mr-2"}),"Export"]}),t.jsxs(qt,{onClick:x,children:[t.jsx(Ts,{className:"h-4 w-4 mr-2"}),"View history"]}),e.showDelete&&t.jsxs(t.Fragment,{children:[t.jsx(us,{}),t.jsxs(qt,{onClick:S,className:"text-destructive focus:text-destructive",children:[t.jsx(Ls,{className:"h-4 w-4 mr-2"}),"Delete"]})]})]})]})]})]}),e.header&&t.jsx("div",{children:t.jsx(De,{schema:e.header,data:l})}),e.sections&&e.sections.length>0&&t.jsx("div",{className:"space-y-3 sm:space-y-4",children:e.sections.map((N,D)=>t.jsx(gr,{section:N,data:l},D))}),e.fields&&e.fields.length>0&&!e.sections?.length&&t.jsx(gr,{section:{fields:e.fields,columns:e.columns||2},data:l}),e.tabs&&e.tabs.length>0&&t.jsx(ta,{tabs:e.tabs,data:l}),e.related&&e.related.length>0&&t.jsxs("div",{className:"space-y-4",children:[t.jsx("h2",{className:"text-xl font-semibold",children:"Related"}),e.related.map((N,D)=>t.jsx(vn,{title:N.title,type:N.type,api:N.api,data:N.data,columns:N.columns,dataSource:r},D))]}),e.footer&&t.jsx("div",{children:t.jsx(De,{schema:e.footer,data:l})})]})})};he.register("detail-view",jn,{namespace:"plugin-detail",label:"Detail View",category:"Views",icon:"FileText",inputs:[{name:"title",type:"string",label:"Title"},{name:"objectName",type:"string",label:"Object Name"},{name:"resourceId",type:"string",label:"Resource ID"},{name:"api",type:"string",label:"API Endpoint"},{name:"data",type:"object",label:"Data"},{name:"sections",type:"array",label:"Sections"},{name:"fields",type:"array",label:"Fields"},{name:"tabs",type:"array",label:"Tabs"},{name:"related",type:"array",label:"Related Lists"},{name:"actions",type:"array",label:"Actions"},{name:"showBack",type:"boolean",label:"Show Back Button",defaultValue:!0},{name:"showEdit",type:"boolean",label:"Show Edit Button",defaultValue:!1},{name:"showDelete",type:"boolean",label:"Show Delete Button",defaultValue:!1}],defaultProps:{title:"Detail View",showBack:!0,showEdit:!1,showDelete:!1,sections:[],fields:[],tabs:[],related:[]}});he.register("detail-section",gr,{namespace:"plugin-detail",label:"Detail Section",category:"Detail Components",inputs:[{name:"title",type:"string",label:"Title"},{name:"description",type:"string",label:"Description"},{name:"fields",type:"array",label:"Fields",required:!0},{name:"collapsible",type:"boolean",label:"Collapsible",defaultValue:!1},{name:"defaultCollapsed",type:"boolean",label:"Default Collapsed",defaultValue:!1},{name:"columns",type:"number",label:"Columns",defaultValue:2}]});he.register("related-list",vn,{namespace:"plugin-detail",label:"Related List",category:"Detail Components",inputs:[{name:"title",type:"string",label:"Title",required:!0},{name:"type",type:"enum",label:"Type",enum:[{label:"List",value:"list"},{label:"Grid",value:"grid"},{label:"Table",value:"table"}],defaultValue:"table"},{name:"api",type:"string",label:"API Endpoint"},{name:"data",type:"array",label:"Data"},{name:"columns",type:"array",label:"Columns"}]});he.register("detail",jn,{namespace:"view",category:"view",label:"Detail",icon:"FileText",inputs:[{name:"objectName",type:"string",label:"Object Name",required:!0},{name:"recordId",type:"string",label:"Record ID"},{name:"fields",type:"array",label:"Fields"}]});const ra=["hsl(var(--chart-1))","hsl(var(--chart-2))","hsl(var(--chart-3))","hsl(var(--chart-4))","hsl(var(--chart-5))"],na=g.forwardRef(({schema:e,className:r,dataSource:n,onRefresh:s,...a},u)=>{const l=e.columns||4,d=e.gap||4,[c,o]=g.useState(!1),[m,h]=g.useState(!1),y=g.useRef(null);g.useEffect(()=>{const i=()=>h(window.innerWidth<640);return i(),window.addEventListener("resize",i),()=>window.removeEventListener("resize",i)},[]);const C=g.useCallback(()=>{s&&(o(!0),s(),setTimeout(()=>o(!1),600))},[s]);g.useEffect(()=>{if(!(!e.refreshInterval||e.refreshInterval<=0||!s))return y.current=setInterval(C,e.refreshInterval*1e3),()=>{y.current&&clearInterval(y.current)}},[e.refreshInterval,s,C]);const S=(i,f)=>{const j=(()=>{if(i.component)return i.component;const w=i.type,p=i.options||{};if(w==="bar"||w==="line"||w==="area"||w==="pie"||w==="donut"){const v=i.data||p.data,k=Array.isArray(v)?v:v?.items||[],T=p.xField||"name",F=p.yField||"value";return{type:"chart",chartType:w,data:k,xAxisKey:T,series:[{dataKey:F}],colors:ra,className:"h-[200px] sm:h-[250px] md:h-[300px]"}}if(w==="table"){const v=i.data||p.data;return{type:"data-table",...p,data:v?.items||[],searchable:!1,pagination:!1,className:"border-0"}}return{...i,...p}})(),N=i.type==="metric",D=i.id||i.title||`widget-${f}`;return N?t.jsx("div",{className:G("h-full w-full",m&&"w-[85vw] shrink-0 snap-center"),style:!m&&i.layout?{gridColumn:`span ${i.layout.w}`,gridRow:`span ${i.layout.h}`}:void 0,children:t.jsx(De,{schema:j,className:"h-full w-full"})},D):t.jsxs(Ne,{className:G("overflow-hidden border-border/50 shadow-sm transition-all hover:shadow-md","bg-card/50 backdrop-blur-sm",m&&"w-[85vw] shrink-0 snap-center"),style:!m&&i.layout?{gridColumn:`span ${i.layout.w}`,gridRow:`span ${i.layout.h}`}:void 0,children:[i.title&&t.jsx(Me,{className:"pb-2 border-b border-border/40 bg-muted/20 px-3 sm:px-6",children:t.jsx(Fe,{className:"text-sm sm:text-base font-medium tracking-tight truncate",title:i.title,children:i.title})}),t.jsx(Ce,{className:"p-0",children:t.jsx("div",{className:G("h-full w-full","p-3 sm:p-4 md:p-6"),children:t.jsx(De,{schema:j})})})]},D)},b=s&&t.jsx("div",{className:G(m?"flex justify-end mb-2":"col-span-full flex justify-end mb-2"),children:t.jsxs(B,{variant:"outline",size:"sm",onClick:C,disabled:c,"aria-label":"Refresh dashboard",children:[t.jsx(fn,{className:G("h-4 w-4 mr-2",c&&"animate-spin")}),c?"Refreshing…":"Refresh All"]})});return m?t.jsxs("div",{ref:u,className:G("flex flex-col",r),...a,children:[b,t.jsx("div",{className:"flex overflow-x-auto snap-x snap-mandatory gap-3 pb-4 [-webkit-overflow-scrolling:touch]",style:{scrollPaddingLeft:"0.75rem"},children:e.widgets?.map((i,f)=>S(i,f))})]}):t.jsxs("div",{ref:u,className:G("grid auto-rows-min","grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4",r),style:{...l>4&&{gridTemplateColumns:`repeat(${l}, minmax(0, 1fr))`},gap:`${d*.25}rem`},...a,children:[b,e.widgets?.map((i,f)=>S(i,f))]})});function vt(e){const{margin:r,containerPadding:n,containerWidth:s,cols:a}=e;return(s-r[0]*(a-1)-n[0]*2)/a}function yt(e,r,n){return Number.isFinite(e)?Math.round(r*e+Math.max(0,e-1)*n):e}function Ct(e,r,n,s,a,u,l){const{margin:d,containerPadding:c,rowHeight:o}=e,m=vt(e);let h,y,C,S;if(l?(h=Math.round(l.width),y=Math.round(l.height)):(h=yt(s,m,d[0]),y=yt(a,o,d[1])),u?(C=Math.round(u.top),S=Math.round(u.left)):l?(C=Math.round(l.top),S=Math.round(l.left)):(C=Math.round((o+d[1])*n+c[1]),S=Math.round((m+d[0])*r+c[0])),!u&&!l){if(Number.isFinite(s)){const i=Math.round((m+d[0])*(r+s)+c[0])-S-h;i!==d[0]&&(h+=i-d[0])}if(Number.isFinite(a)){const i=Math.round((o+d[1])*(n+a)+c[1])-C-y;i!==d[1]&&(y+=i-d[1])}}return{top:C,left:S,width:h,height:y}}function sa(e,r,n,s,a){const{margin:u,containerPadding:l,cols:d,rowHeight:c,maxRows:o}=e,m=vt(e);let h=Math.round((n-l[0])/(m+u[0])),y=Math.round((r-l[1])/(c+u[1]));return h=Xt(h,0,d-s),y=Xt(y,0,o-a),{x:h,y}}function Wt(e,r,n){const{margin:s,containerPadding:a,rowHeight:u}=e,l=vt(e),d=Math.round((n-a[0])/(l+s[0])),c=Math.round((r-a[1])/(u+s[1]));return{x:d,y:c}}function aa(e,r,n){const{margin:s,rowHeight:a}=e,u=vt(e),l=Math.max(1,Math.round((r+s[0])/(u+s[0]))),d=Math.max(1,Math.round((n+s[1])/(a+s[1])));return{w:l,h:d}}function Xt(e,r,n){return Math.max(Math.min(e,n),r)}function yr(e,r){return!(e.i===r.i||e.x+e.w<=r.x||e.x>=r.x+r.w||e.y+e.h<=r.y||e.y>=r.y+r.h)}function lt(e,r){for(let n=0;n<e.length;n++){const s=e[n];if(s!==void 0&&yr(s,r))return s}}function wn(e,r){return e.filter(n=>yr(n,r))}function ia(e,r){return r==="horizontal"?Nn(e):r==="vertical"||r==="wrap"?xr(e):[...e]}function xr(e){return[...e].sort((r,n)=>r.y!==n.y?r.y-n.y:r.x-n.x)}function Nn(e){return[...e].sort((r,n)=>r.x!==n.x?r.x-n.x:r.y-n.y)}function Jt(e){let r=0;for(let n=0;n<e.length;n++){const s=e[n];if(s!==void 0){const a=s.y+s.h;a>r&&(r=a)}}return r}function at(e,r){for(let n=0;n<e.length;n++){const s=e[n];if(s!==void 0&&s.i===r)return s}}function Zt(e){return e.filter(r=>r.static===!0)}function ct(e){return{i:e.i,x:e.x,y:e.y,w:e.w,h:e.h,minW:e.minW,maxW:e.maxW,minH:e.minH,maxH:e.maxH,moved:!!e.moved,static:!!e.static,isDraggable:e.isDraggable,isResizable:e.isResizable,resizeHandles:e.resizeHandles,constraints:e.constraints,isBounded:e.isBounded}}function rt(e){const r=new Array(e.length);for(let n=0;n<e.length;n++){const s=e[n];s!==void 0&&(r[n]=ct(s))}return r}function oa(e,r){const n=new Array(e.length);for(let s=0;s<e.length;s++){const a=e[s];a!==void 0&&(r.i===a.i?n[s]=r:n[s]=a)}return n}function la(e,r,n){let s=at(e,r);return s?(s=n(ct(s)),[oa(e,s),s]):[[...e],null]}function vr(e,r){const n=Zt(e);for(let s=0;s<e.length;s++){const a=e[s];if(a!==void 0)if(a.x+a.w>r.cols&&(a.x=r.cols-a.w),a.x<0&&(a.x=0,a.w=r.cols),!a.static)n.push(a);else for(;lt(n,a);)a.y++}return e}function ot(e,r,n,s,a,u,l,d,c){if(r.static&&r.isDraggable!==!0)return[...e];if(r.y===s&&r.x===n)return[...e];const o=r.x,m=r.y;typeof n=="number"&&(r.x=n),typeof s=="number"&&(r.y=s),r.moved=!0;let h=ia(e,l);(l==="vertical"&&typeof s=="number"?m>=s:l==="horizontal"&&typeof n=="number"?o>=n:!1)&&(h=h.reverse());const C=wn(h,r),S=C.length>0;if(S&&c)return rt(e);if(S&&u)return r.x=o,r.y=m,r.moved=!1,e;let b=[...e];for(let i=0;i<C.length;i++){const f=C[i];f!==void 0&&(f.moved||(f.static?b=Fr(b,f,r,a,l):b=Fr(b,r,f,a,l)))}return b}function Fr(e,r,n,s,a,u){const l=a==="horizontal",d=a==="vertical",c=r.static;if(s){s=!1;const h={x:l?Math.max(r.x-n.w,0):n.x,y:d?Math.max(r.y-n.h,0):n.y,w:n.w,h:n.h,i:"-1"},y=lt(e,h),C=y!==void 0&&y.y+y.h>r.y,S=y!==void 0&&r.x+r.w>y.x;if(!y)return ot(e,n,l?h.x:void 0,d?h.y:void 0,s,c,a);if(C&&d)return ot(e,n,void 0,n.y+1,s,c,a);if(C&&a===null)return r.y=n.y,n.y=n.y+n.h,[...e];if(S&&l)return ot(e,r,n.x,void 0,s,c,a)}const o=l?n.x+1:void 0,m=d?n.y+1:void 0;return o===void 0&&m===void 0?[...e]:ot(e,n,o,m,s,c,a)}function bt(e,r,n){return Math.max(r,Math.min(n,e))}var ca={name:"gridBounds",constrainPosition(e,r,n,{cols:s,maxRows:a}){return{x:bt(r,0,Math.max(0,s-e.w)),y:bt(n,0,Math.max(0,a-e.h))}},constrainSize(e,r,n,s,{cols:a,maxRows:u}){const l=s==="w"||s==="nw"||s==="sw"?e.x+e.w:a-e.x,d=s==="n"||s==="nw"||s==="ne"?e.y+e.h:u-e.y;return{w:bt(r,1,Math.max(1,l)),h:bt(n,1,Math.max(1,d))}}},da={name:"minMaxSize",constrainSize(e,r,n){return{w:bt(r,e.minW??1,e.maxW??1/0),h:bt(n,e.minH??1,e.maxH??1/0)}}},Cn=[ca,da];function $t(e,r,n,s,a){let u={x:n,y:s};for(const l of e)l.constrainPosition&&(u=l.constrainPosition(r,u.x,u.y,a));if(r.constraints)for(const l of r.constraints)l.constrainPosition&&(u=l.constrainPosition(r,u.x,u.y,a));return u}function ua(e,r,n,s,a,u){let l={w:n,h:s};for(const d of e)d.constrainSize&&(l=d.constrainSize(r,l.w,l.h,a,u));if(r.constraints)for(const d of r.constraints)d.constrainSize&&(l=d.constrainSize(r,l.w,l.h,a,u));return l}function Sn({top:e,left:r,width:n,height:s}){const a=`translate(${r}px,${e}px)`;return{transform:a,WebkitTransform:a,MozTransform:a,msTransform:a,OTransform:a,width:`${n}px`,height:`${s}px`,position:"absolute"}}function fa({top:e,left:r,width:n,height:s}){return{top:`${e}px`,left:`${r}px`,width:`${n}px`,height:`${s}px`,position:"absolute"}}function Tr(e){return e*100+"%"}function ha(e,r,n,s){return e+n>s?r:n}function Dn(e,r,n){return e<0?r:n}function pa(e){return Math.max(0,e)}function Ut(e){return Math.max(0,e)}var jr=(e,r,n)=>{const{left:s,height:a,width:u}=r,l=e.top-(a-e.height);return{left:s,width:u,height:Dn(l,e.height,a),top:Ut(l)}},wr=(e,r,n)=>{const{top:s,left:a,height:u,width:l}=r;return{top:s,height:u,width:ha(e.left,e.width,l,n),left:pa(a)}},Nr=(e,r,n)=>{const{top:s,height:a,width:u}=r,l=e.left+e.width-u;return l<0?{height:a,width:e.left+e.width,top:Ut(s),left:0}:{height:a,width:u,top:Ut(s),left:l}},Cr=(e,r,n)=>{const{top:s,left:a,height:u,width:l}=r;return{width:l,left:a,height:Dn(s,e.height,u),top:Ut(s)}},ma=(e,r,n)=>jr(e,wr(e,r,n)),ga=(e,r,n)=>jr(e,Nr(e,r)),xa=(e,r,n)=>Cr(e,wr(e,r,n)),ba=(e,r,n)=>Cr(e,Nr(e,r)),ya={n:jr,ne:ma,e:wr,se:xa,s:Cr,sw:ba,w:Nr,nw:ga};function va(e,r,n,s){const a=ya[e];return a?a(r,{...r,...n},s):n}var ja={type:"transform",scale:1,calcStyle(e){return Sn(e)}},wa=ja,Na={cols:12,rowHeight:150,margin:[10,10],containerPadding:null,maxRows:1/0},Ca={enabled:!0,bounded:!1,threshold:3},Sa={enabled:!0,handles:["se"]},Da={enabled:!1,defaultItem:{w:1,h:1}};function Sr(e,r,n,s,a){const u=s==="x"?"w":"h";r[s]+=1;const l=e.findIndex(c=>c.i===r.i),d=a??Zt(e).length>0;for(let c=l+1;c<e.length;c++){const o=e[c];if(o!==void 0&&!o.static){if(!d&&o.y>r.y+r.h)break;yr(r,o)&&Sr(e,o,n+r[u],s,d)}}r[s]=n}function Ra(e,r,n,s){for(r.x=Math.max(r.x,0),r.y=Math.max(r.y,0),r.y=Math.min(s,r.y);r.y>0&&!lt(e,r);)r.y--;let a;for(;(a=lt(e,r))!==void 0;)Sr(n,r,a.y+a.h,"y");return r.y=Math.max(r.y,0),r}function ka(e,r,n,s){for(r.x=Math.max(r.x,0),r.y=Math.max(r.y,0);r.x>0&&!lt(e,r);)r.x--;let a;for(;(a=lt(e,r))!==void 0;)if(Sr(s,r,a.x+a.w,"x"),r.x+r.w>n)for(r.x=n-r.w,r.y++;r.x>0&&!lt(e,r);)r.x--;return r.x=Math.max(r.x,0),r}var Rn={type:"vertical",allowOverlap:!1,compact(e,r){const n=Zt(e);let s=Jt(n);const a=xr(e),u=new Array(e.length);for(let l=0;l<a.length;l++){const d=a[l];if(d===void 0)continue;let c=ct(d);c.static||(c=Ra(n,c,a,s),s=Math.max(s,c.y+c.h),n.push(c));const o=e.indexOf(d);u[o]=c,c.moved=!1}return u}},kn={type:"horizontal",allowOverlap:!1,compact(e,r){const n=Zt(e),s=Nn(e),a=new Array(e.length);for(let u=0;u<s.length;u++){const l=s[u];if(l===void 0)continue;let d=ct(l);d.static||(d=ka(n,d,r,s),n.push(d));const c=e.indexOf(l);a[c]=d,d.moved=!1}return a}},Pn={type:null,allowOverlap:!1,compact(e,r){return rt(e)}},Pa={...Rn,allowOverlap:!0,compact(e,r){return rt(e)}},Ea={...kn,allowOverlap:!0,compact(e,r){return rt(e)}},Oa={...Pn,allowOverlap:!0};function Dr(e,r=!1,n=!1){let s;return r?e==="vertical"?s=Pa:e==="horizontal"?s=Ea:s=Oa:e==="vertical"?s=Rn:e==="horizontal"?s=kn:s=Pn,n?{...s,preventCollision:n}:s}function En(e){return Object.keys(e).sort((n,s)=>e[n]-e[s])}function Lr(e,r){const n=En(e);let s=n[0];if(s===void 0)throw new Error("No breakpoints defined");for(let a=1;a<n.length;a++){const u=n[a];if(u===void 0)continue;const l=e[u];r>l&&(s=u)}return s}function _r(e,r){const n=r[e];if(n===void 0)throw new Error(`ResponsiveReactGridLayout: \`cols\` entry for breakpoint ${String(e)} is missing!`);return n}function ur(e,r,n,s,a,u){const l=e[n];if(l)return rt(l);let d=e[s];const c=En(r),o=c.slice(c.indexOf(n));for(let C=0;C<o.length;C++){const S=o[C];if(S===void 0)continue;const b=e[S];if(b){d=b;break}}const m=rt(d||[]),h=vr(m,{cols:a});return(typeof u=="object"&&u!==null?u:Dr(u)).compact(h,a)}function Gt(e,r){if(Array.isArray(e))return e;const n=e,s=n[r];if(s!==void 0)return s;const a=Object.keys(n);for(const u of a){const l=n[u];if(l!==void 0)return l}return[10,10]}function On(e){return function(n,s,a,u,l,d,c){return e(n,s,c)}}function Qt(e){return function(n,s,a,u){if(!n||!s||typeof n!="object"||typeof s!="object")return e(n,s,a,u);var l=u.get(n),d=u.get(s);if(l&&d)return l===s&&d===n;u.set(n,s),u.set(s,n);var c=e(n,s,a,u);return u.delete(n),u.delete(s),c}}function zn(e,r){var n={};for(var s in e)n[s]=e[s];for(var s in r)n[s]=r[s];return n}function Ar(e){return e.constructor===Object||e.constructor==null}function Ir(e){return typeof e.then=="function"}function er(e,r){return e===r||e!==e&&r!==r}var za="[object Arguments]",Ma="[object Boolean]",Fa="[object Date]",Ta="[object RegExp]",La="[object Map]",_a="[object Number]",Aa="[object Object]",Ia="[object Set]",Ba="[object String]",Br=Object.prototype.toString;function tr(e){var r=e.areArraysEqual,n=e.areDatesEqual,s=e.areMapsEqual,a=e.areObjectsEqual,u=e.areRegExpsEqual,l=e.areSetsEqual,d=e.createIsNestedEqual,c=d(o);function o(m,h,y){if(m===h)return!0;if(!m||!h||typeof m!="object"||typeof h!="object")return m!==m&&h!==h;if(Ar(m)&&Ar(h))return a(m,h,c,y);var C=Array.isArray(m),S=Array.isArray(h);if(C||S)return C===S&&r(m,h,c,y);var b=Br.call(m);return b!==Br.call(h)?!1:b===Fa?n(m,h,c,y):b===Ta?u(m,h,c,y):b===La?s(m,h,c,y):b===Ia?l(m,h,c,y):b===Aa||b===za?Ir(m)||Ir(h)?!1:a(m,h,c,y):b===Ma||b===_a||b===Ba?er(m.valueOf(),h.valueOf()):!1}return o}function Mn(e,r,n,s){var a=e.length;if(r.length!==a)return!1;for(;a-- >0;)if(!n(e[a],r[a],a,a,e,r,s))return!1;return!0}var qa=Qt(Mn);function Fn(e,r){return er(e.valueOf(),r.valueOf())}function Tn(e,r,n,s){var a=e.size===r.size;if(!a)return!1;if(!e.size)return!0;var u={},l=0;return e.forEach(function(d,c){if(a){var o=!1,m=0;r.forEach(function(h,y){!o&&!u[m]&&(o=n(c,y,l,m,e,r,s)&&n(d,h,c,y,e,r,s))&&(u[m]=!0),m++}),l++,a=o}}),a}var Ha=Qt(Tn),Wa="_owner",$a=Object.prototype.hasOwnProperty;function Ln(e,r,n,s){var a=Object.keys(e),u=a.length;if(Object.keys(r).length!==u)return!1;for(var l;u-- >0;){if(l=a[u],l===Wa){var d=!!e.$$typeof,c=!!r.$$typeof;if((d||c)&&d!==c)return!1}if(!$a.call(r,l)||!n(e[l],r[l],l,l,e,r,s))return!1}return!0}var Ga=Qt(Ln);function _n(e,r){return e.source===r.source&&e.flags===r.flags}function An(e,r,n,s){var a=e.size===r.size;if(!a)return!1;if(!e.size)return!0;var u={};return e.forEach(function(l,d){if(a){var c=!1,o=0;r.forEach(function(m,h){!c&&!u[o]&&(c=n(l,m,d,h,e,r,s))&&(u[o]=!0),o++}),a=c}}),a}var Va=Qt(An),In=Object.freeze({areArraysEqual:Mn,areDatesEqual:Fn,areMapsEqual:Tn,areObjectsEqual:Ln,areRegExpsEqual:_n,areSetsEqual:An,createIsNestedEqual:On}),Bn=Object.freeze({areArraysEqual:qa,areDatesEqual:Fn,areMapsEqual:Ha,areObjectsEqual:Ga,areRegExpsEqual:_n,areSetsEqual:Va,createIsNestedEqual:On}),Ya=tr(In);function Xe(e,r){return Ya(e,r,void 0)}tr(zn(In,{createIsNestedEqual:function(){return er}}));tr(Bn);tr(zn(Bn,{createIsNestedEqual:function(){return er}}));function Xa(e={}){const{measureBeforeMount:r=!1,initialWidth:n=1280}=e,[s,a]=g.useState(n),[u,l]=g.useState(!r),d=g.useRef(null),c=g.useRef(null),o=g.useCallback(()=>{const m=d.current;if(m){const h=m.offsetWidth;a(h),u||l(!0)}},[u]);return g.useEffect(()=>{const m=d.current;if(m)return o(),typeof ResizeObserver<"u"&&(c.current=new ResizeObserver(h=>{const y=h[0];if(y){const C=y.contentRect.width;a(C)}}),c.current.observe(m)),()=>{c.current&&(c.current.disconnect(),c.current=null)}},[o]),{width:s,mounted:u,containerRef:d,measureWidth:o}}var St={exports:{}},fr={},oe={},et={},qr;function rr(){if(qr)return et;qr=1,Object.defineProperty(et,"__esModule",{value:!0}),et.dontSetMe=a,et.findInArray=e,et.int=s,et.isFunction=r,et.isNum=n;function e(u,l){for(let d=0,c=u.length;d<c;d++)if(l.apply(l,[u[d],d,u]))return u[d]}function r(u){return typeof u=="function"||Object.prototype.toString.call(u)==="[object Function]"}function n(u){return typeof u=="number"&&!isNaN(u)}function s(u){return parseInt(u,10)}function a(u,l,d){if(u[l])return new Error(`Invalid prop ${l} passed to ${d} - do not set this, set it on the child.`)}return et}var tt={},Hr;function Ua(){if(Hr)return tt;Hr=1,Object.defineProperty(tt,"__esModule",{value:!0}),tt.browserPrefixToKey=n,tt.browserPrefixToStyle=s,tt.default=void 0,tt.getPrefix=r;const e=["Moz","Webkit","O","ms"];function r(){let u=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"transform";if(typeof window>"u")return"";const l=window.document?.documentElement?.style;if(!l||u in l)return"";for(let d=0;d<e.length;d++)if(n(u,e[d])in l)return e[d];return""}function n(u,l){return l?`${l}${a(u)}`:u}function s(u,l){return l?`-${l.toLowerCase()}-${u}`:u}function a(u){let l="",d=!0;for(let c=0;c<u.length;c++)d?(l+=u[c].toUpperCase(),d=!1):u[c]==="-"?d=!0:l+=u[c];return l}return tt.default=r(),tt}var Wr;function Rr(){if(Wr)return oe;Wr=1,Object.defineProperty(oe,"__esModule",{value:!0}),oe.addClassName=D,oe.addEvent=l,oe.addUserSelectStyles=x,oe.createCSSTransform=C,oe.createSVGTransform=S,oe.getTouch=i,oe.getTouchIdentifier=f,oe.getTranslation=b,oe.innerHeight=m,oe.innerWidth=h,oe.matchesSelector=a,oe.matchesSelectorAndParentsTo=u,oe.offsetXYFromParent=y,oe.outerHeight=c,oe.outerWidth=o,oe.removeClassName=w,oe.removeEvent=d,oe.scheduleRemoveUserSelectStyles=j;var e=rr(),r=n(Ua());function n(p,v){if(typeof WeakMap=="function")var k=new WeakMap,T=new WeakMap;return(n=function(F,q){if(!q&&F&&F.__esModule)return F;var M,A,R={__proto__:null,default:F};if(F===null||typeof F!="object"&&typeof F!="function")return R;if(M=q?T:k){if(M.has(F))return M.get(F);M.set(F,R)}for(const P in F)P!=="default"&&{}.hasOwnProperty.call(F,P)&&((A=(M=Object.defineProperty)&&Object.getOwnPropertyDescriptor(F,P))&&(A.get||A.set)?M(R,P,A):R[P]=F[P]);return R})(p,v)}let s="";function a(p,v){return s||(s=(0,e.findInArray)(["matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector"],function(k){return(0,e.isFunction)(p[k])})),(0,e.isFunction)(p[s])?p[s](v):!1}function u(p,v,k){let T=p;do{if(a(T,v))return!0;if(T===k)return!1;T=T.parentNode}while(T);return!1}function l(p,v,k,T){if(!p)return;const F={capture:!0,...T};p.addEventListener?p.addEventListener(v,k,F):p.attachEvent?p.attachEvent("on"+v,k):p["on"+v]=k}function d(p,v,k,T){if(!p)return;const F={capture:!0,...T};p.removeEventListener?p.removeEventListener(v,k,F):p.detachEvent?p.detachEvent("on"+v,k):p["on"+v]=null}function c(p){let v=p.clientHeight;const k=p.ownerDocument.defaultView.getComputedStyle(p);return v+=(0,e.int)(k.borderTopWidth),v+=(0,e.int)(k.borderBottomWidth),v}function o(p){let v=p.clientWidth;const k=p.ownerDocument.defaultView.getComputedStyle(p);return v+=(0,e.int)(k.borderLeftWidth),v+=(0,e.int)(k.borderRightWidth),v}function m(p){let v=p.clientHeight;const k=p.ownerDocument.defaultView.getComputedStyle(p);return v-=(0,e.int)(k.paddingTop),v-=(0,e.int)(k.paddingBottom),v}function h(p){let v=p.clientWidth;const k=p.ownerDocument.defaultView.getComputedStyle(p);return v-=(0,e.int)(k.paddingLeft),v-=(0,e.int)(k.paddingRight),v}function y(p,v,k){const F=v===v.ownerDocument.body?{left:0,top:0}:v.getBoundingClientRect(),q=(p.clientX+v.scrollLeft-F.left)/k,M=(p.clientY+v.scrollTop-F.top)/k;return{x:q,y:M}}function C(p,v){const k=b(p,v,"px");return{[(0,r.browserPrefixToKey)("transform",r.default)]:k}}function S(p,v){return b(p,v,"")}function b(p,v,k){let{x:T,y:F}=p,q=`translate(${T}${k},${F}${k})`;if(v){const M=`${typeof v.x=="string"?v.x:v.x+k}`,A=`${typeof v.y=="string"?v.y:v.y+k}`;q=`translate(${M}, ${A})`+q}return q}function i(p,v){return p.targetTouches&&(0,e.findInArray)(p.targetTouches,k=>v===k.identifier)||p.changedTouches&&(0,e.findInArray)(p.changedTouches,k=>v===k.identifier)}function f(p){if(p.targetTouches&&p.targetTouches[0])return p.targetTouches[0].identifier;if(p.changedTouches&&p.changedTouches[0])return p.changedTouches[0].identifier}function x(p){if(!p)return;let v=p.getElementById("react-draggable-style-el");v||(v=p.createElement("style"),v.type="text/css",v.id="react-draggable-style-el",v.innerHTML=`.react-draggable-transparent-selection *::-moz-selection {all: inherit;}
2
- `,v.innerHTML+=`.react-draggable-transparent-selection *::selection {all: inherit;}
3
- `,p.getElementsByTagName("head")[0].appendChild(v)),p.body&&D(p.body,"react-draggable-transparent-selection")}function j(p){window.requestAnimationFrame?window.requestAnimationFrame(()=>{N(p)}):N(p)}function N(p){if(p)try{if(p.body&&w(p.body,"react-draggable-transparent-selection"),p.selection)p.selection.empty();else{const v=(p.defaultView||window).getSelection();v&&v.type!=="Caret"&&v.removeAllRanges()}}catch{}}function D(p,v){p.classList?p.classList.add(v):p.className.match(new RegExp(`(?:^|\\s)${v}(?!\\S)`))||(p.className+=` ${v}`)}function w(p,v){p.classList?p.classList.remove(v):p.className=p.className.replace(new RegExp(`(?:^|\\s)${v}(?!\\S)`,"g"),"")}return oe}var We={},$r;function qn(){if($r)return We;$r=1,Object.defineProperty(We,"__esModule",{value:!0}),We.canDragX=a,We.canDragY=u,We.createCoreData=d,We.createDraggableData=c,We.getBoundPosition=n,We.getControlPosition=l,We.snapToGrid=s;var e=rr(),r=Rr();function n(h,y,C){if(!h.props.bounds)return[y,C];let{bounds:S}=h.props;S=typeof S=="string"?S:o(S);const b=m(h);if(typeof S=="string"){const{ownerDocument:i}=b,f=i.defaultView;let x;if(S==="parent"?x=b.parentNode:x=b.getRootNode().querySelector(S),!(x instanceof f.HTMLElement))throw new Error('Bounds selector "'+S+'" could not find an element.');const j=x,N=f.getComputedStyle(b),D=f.getComputedStyle(j);S={left:-b.offsetLeft+(0,e.int)(D.paddingLeft)+(0,e.int)(N.marginLeft),top:-b.offsetTop+(0,e.int)(D.paddingTop)+(0,e.int)(N.marginTop),right:(0,r.innerWidth)(j)-(0,r.outerWidth)(b)-b.offsetLeft+(0,e.int)(D.paddingRight)-(0,e.int)(N.marginRight),bottom:(0,r.innerHeight)(j)-(0,r.outerHeight)(b)-b.offsetTop+(0,e.int)(D.paddingBottom)-(0,e.int)(N.marginBottom)}}return(0,e.isNum)(S.right)&&(y=Math.min(y,S.right)),(0,e.isNum)(S.bottom)&&(C=Math.min(C,S.bottom)),(0,e.isNum)(S.left)&&(y=Math.max(y,S.left)),(0,e.isNum)(S.top)&&(C=Math.max(C,S.top)),[y,C]}function s(h,y,C){const S=Math.round(y/h[0])*h[0],b=Math.round(C/h[1])*h[1];return[S,b]}function a(h){return h.props.axis==="both"||h.props.axis==="x"}function u(h){return h.props.axis==="both"||h.props.axis==="y"}function l(h,y,C){const S=typeof y=="number"?(0,r.getTouch)(h,y):null;if(typeof y=="number"&&!S)return null;const b=m(C),i=C.props.offsetParent||b.offsetParent||b.ownerDocument.body;return(0,r.offsetXYFromParent)(S||h,i,C.props.scale)}function d(h,y,C){const S=!(0,e.isNum)(h.lastX),b=m(h);return S?{node:b,deltaX:0,deltaY:0,lastX:y,lastY:C,x:y,y:C}:{node:b,deltaX:y-h.lastX,deltaY:C-h.lastY,lastX:h.lastX,lastY:h.lastY,x:y,y:C}}function c(h,y){const C=h.props.scale;return{node:y.node,x:h.state.x+y.deltaX/C,y:h.state.y+y.deltaY/C,deltaX:y.deltaX/C,deltaY:y.deltaY/C,lastX:h.state.x,lastY:h.state.y}}function o(h){return{left:h.left,top:h.top,right:h.right,bottom:h.bottom}}function m(h){const y=h.findDOMNode();if(!y)throw new Error("<DraggableCore>: Unmounted during event!");return y}return We}var Dt={},Vt={},Gr;function Hn(){if(Gr)return Vt;Gr=1,Object.defineProperty(Vt,"__esModule",{value:!0}),Vt.default=e;function e(){}return Vt}var Vr;function Ka(){if(Vr)return Dt;Vr=1,Object.defineProperty(Dt,"__esModule",{value:!0}),Dt.default=void 0;var e=c(Ot()),r=d(Kt()),n=d(nn()),s=Rr(),a=qn(),u=rr(),l=d(Hn());function d(b){return b&&b.__esModule?b:{default:b}}function c(b,i){if(typeof WeakMap=="function")var f=new WeakMap,x=new WeakMap;return(c=function(j,N){if(!N&&j&&j.__esModule)return j;var D,w,p={__proto__:null,default:j};if(j===null||typeof j!="object"&&typeof j!="function")return p;if(D=N?x:f){if(D.has(j))return D.get(j);D.set(j,p)}for(const v in j)v!=="default"&&{}.hasOwnProperty.call(j,v)&&((w=(D=Object.defineProperty)&&Object.getOwnPropertyDescriptor(j,v))&&(w.get||w.set)?D(p,v,w):p[v]=j[v]);return p})(b,i)}function o(b,i,f){return(i=m(i))in b?Object.defineProperty(b,i,{value:f,enumerable:!0,configurable:!0,writable:!0}):b[i]=f,b}function m(b){var i=h(b,"string");return typeof i=="symbol"?i:i+""}function h(b,i){if(typeof b!="object"||!b)return b;var f=b[Symbol.toPrimitive];if(f!==void 0){var x=f.call(b,i);if(typeof x!="object")return x;throw new TypeError("@@toPrimitive must return a primitive value.")}return(i==="string"?String:Number)(b)}const y={touch:{start:"touchstart",move:"touchmove",stop:"touchend"},mouse:{start:"mousedown",move:"mousemove",stop:"mouseup"}};let C=y.mouse,S=class extends e.Component{constructor(){super(...arguments),o(this,"dragging",!1),o(this,"lastX",NaN),o(this,"lastY",NaN),o(this,"touchIdentifier",null),o(this,"mounted",!1),o(this,"handleDragStart",i=>{if(this.props.onMouseDown(i),!this.props.allowAnyClick&&typeof i.button=="number"&&i.button!==0)return!1;const f=this.findDOMNode();if(!f||!f.ownerDocument||!f.ownerDocument.body)throw new Error("<DraggableCore> not mounted on DragStart!");const{ownerDocument:x}=f;if(this.props.disabled||!(i.target instanceof x.defaultView.Node)||this.props.handle&&!(0,s.matchesSelectorAndParentsTo)(i.target,this.props.handle,f)||this.props.cancel&&(0,s.matchesSelectorAndParentsTo)(i.target,this.props.cancel,f))return;i.type==="touchstart"&&!this.props.allowMobileScroll&&i.preventDefault();const j=(0,s.getTouchIdentifier)(i);this.touchIdentifier=j;const N=(0,a.getControlPosition)(i,j,this);if(N==null)return;const{x:D,y:w}=N,p=(0,a.createCoreData)(this,D,w);(0,l.default)("DraggableCore: handleDragStart: %j",p),(0,l.default)("calling",this.props.onStart),!(this.props.onStart(i,p)===!1||this.mounted===!1)&&(this.props.enableUserSelectHack&&(0,s.addUserSelectStyles)(x),this.dragging=!0,this.lastX=D,this.lastY=w,(0,s.addEvent)(x,C.move,this.handleDrag),(0,s.addEvent)(x,C.stop,this.handleDragStop))}),o(this,"handleDrag",i=>{const f=(0,a.getControlPosition)(i,this.touchIdentifier,this);if(f==null)return;let{x,y:j}=f;if(Array.isArray(this.props.grid)){let w=x-this.lastX,p=j-this.lastY;if([w,p]=(0,a.snapToGrid)(this.props.grid,w,p),!w&&!p)return;x=this.lastX+w,j=this.lastY+p}const N=(0,a.createCoreData)(this,x,j);if((0,l.default)("DraggableCore: handleDrag: %j",N),this.props.onDrag(i,N)===!1||this.mounted===!1){try{this.handleDragStop(new MouseEvent("mouseup"))}catch{const p=document.createEvent("MouseEvents");p.initMouseEvent("mouseup",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),this.handleDragStop(p)}return}this.lastX=x,this.lastY=j}),o(this,"handleDragStop",i=>{if(!this.dragging)return;const f=(0,a.getControlPosition)(i,this.touchIdentifier,this);if(f==null)return;let{x,y:j}=f;if(Array.isArray(this.props.grid)){let p=x-this.lastX||0,v=j-this.lastY||0;[p,v]=(0,a.snapToGrid)(this.props.grid,p,v),x=this.lastX+p,j=this.lastY+v}const N=(0,a.createCoreData)(this,x,j);if(this.props.onStop(i,N)===!1||this.mounted===!1)return!1;const w=this.findDOMNode();w&&this.props.enableUserSelectHack&&(0,s.scheduleRemoveUserSelectStyles)(w.ownerDocument),(0,l.default)("DraggableCore: handleDragStop: %j",N),this.dragging=!1,this.lastX=NaN,this.lastY=NaN,w&&((0,l.default)("DraggableCore: Removing handlers"),(0,s.removeEvent)(w.ownerDocument,C.move,this.handleDrag),(0,s.removeEvent)(w.ownerDocument,C.stop,this.handleDragStop))}),o(this,"onMouseDown",i=>(C=y.mouse,this.handleDragStart(i))),o(this,"onMouseUp",i=>(C=y.mouse,this.handleDragStop(i))),o(this,"onTouchStart",i=>(C=y.touch,this.handleDragStart(i))),o(this,"onTouchEnd",i=>(C=y.touch,this.handleDragStop(i)))}componentDidMount(){this.mounted=!0;const i=this.findDOMNode();i&&(0,s.addEvent)(i,y.touch.start,this.onTouchStart,{passive:!1})}componentWillUnmount(){this.mounted=!1;const i=this.findDOMNode();if(i){const{ownerDocument:f}=i;(0,s.removeEvent)(f,y.mouse.move,this.handleDrag),(0,s.removeEvent)(f,y.touch.move,this.handleDrag),(0,s.removeEvent)(f,y.mouse.stop,this.handleDragStop),(0,s.removeEvent)(f,y.touch.stop,this.handleDragStop),(0,s.removeEvent)(i,y.touch.start,this.onTouchStart,{passive:!1}),this.props.enableUserSelectHack&&(0,s.scheduleRemoveUserSelectStyles)(f)}}findDOMNode(){return this.props?.nodeRef?this.props?.nodeRef?.current:n.default.findDOMNode(this)}render(){return e.cloneElement(e.Children.only(this.props.children),{onMouseDown:this.onMouseDown,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}};return Dt.default=S,o(S,"displayName","DraggableCore"),o(S,"propTypes",{allowAnyClick:r.default.bool,allowMobileScroll:r.default.bool,children:r.default.node.isRequired,disabled:r.default.bool,enableUserSelectHack:r.default.bool,offsetParent:function(b,i){if(b[i]&&b[i].nodeType!==1)throw new Error("Draggable's offsetParent must be a DOM Node.")},grid:r.default.arrayOf(r.default.number),handle:r.default.string,cancel:r.default.string,nodeRef:r.default.object,onStart:r.default.func,onDrag:r.default.func,onStop:r.default.func,onMouseDown:r.default.func,scale:r.default.number,className:u.dontSetMe,style:u.dontSetMe,transform:u.dontSetMe}),o(S,"defaultProps",{allowAnyClick:!1,allowMobileScroll:!1,disabled:!1,enableUserSelectHack:!0,onStart:function(){},onDrag:function(){},onStop:function(){},onMouseDown:function(){},scale:1}),Dt}var Yr;function Ja(){return Yr||(Yr=1,(function(e){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"DraggableCore",{enumerable:!0,get:function(){return c.default}}),e.default=void 0;var r=h(Ot()),n=m(Kt()),s=m(nn()),a=fs(),u=Rr(),l=qn(),d=rr(),c=m(Ka()),o=m(Hn());function m(f){return f&&f.__esModule?f:{default:f}}function h(f,x){if(typeof WeakMap=="function")var j=new WeakMap,N=new WeakMap;return(h=function(D,w){if(!w&&D&&D.__esModule)return D;var p,v,k={__proto__:null,default:D};if(D===null||typeof D!="object"&&typeof D!="function")return k;if(p=w?N:j){if(p.has(D))return p.get(D);p.set(D,k)}for(const T in D)T!=="default"&&{}.hasOwnProperty.call(D,T)&&((v=(p=Object.defineProperty)&&Object.getOwnPropertyDescriptor(D,T))&&(v.get||v.set)?p(k,T,v):k[T]=D[T]);return k})(f,x)}function y(){return y=Object.assign?Object.assign.bind():function(f){for(var x=1;x<arguments.length;x++){var j=arguments[x];for(var N in j)({}).hasOwnProperty.call(j,N)&&(f[N]=j[N])}return f},y.apply(null,arguments)}function C(f,x,j){return(x=S(x))in f?Object.defineProperty(f,x,{value:j,enumerable:!0,configurable:!0,writable:!0}):f[x]=j,f}function S(f){var x=b(f,"string");return typeof x=="symbol"?x:x+""}function b(f,x){if(typeof f!="object"||!f)return f;var j=f[Symbol.toPrimitive];if(j!==void 0){var N=j.call(f,x);if(typeof N!="object")return N;throw new TypeError("@@toPrimitive must return a primitive value.")}return(x==="string"?String:Number)(f)}class i extends r.Component{static getDerivedStateFromProps(x,j){let{position:N}=x,{prevPropsPosition:D}=j;return N&&(!D||N.x!==D.x||N.y!==D.y)?((0,o.default)("Draggable: getDerivedStateFromProps %j",{position:N,prevPropsPosition:D}),{x:N.x,y:N.y,prevPropsPosition:{...N}}):null}constructor(x){super(x),C(this,"onDragStart",(j,N)=>{if((0,o.default)("Draggable: onDragStart: %j",N),this.props.onStart(j,(0,l.createDraggableData)(this,N))===!1)return!1;this.setState({dragging:!0,dragged:!0})}),C(this,"onDrag",(j,N)=>{if(!this.state.dragging)return!1;(0,o.default)("Draggable: onDrag: %j",N);const D=(0,l.createDraggableData)(this,N),w={x:D.x,y:D.y,slackX:0,slackY:0};if(this.props.bounds){const{x:v,y:k}=w;w.x+=this.state.slackX,w.y+=this.state.slackY;const[T,F]=(0,l.getBoundPosition)(this,w.x,w.y);w.x=T,w.y=F,w.slackX=this.state.slackX+(v-w.x),w.slackY=this.state.slackY+(k-w.y),D.x=w.x,D.y=w.y,D.deltaX=w.x-this.state.x,D.deltaY=w.y-this.state.y}if(this.props.onDrag(j,D)===!1)return!1;this.setState(w)}),C(this,"onDragStop",(j,N)=>{if(!this.state.dragging||this.props.onStop(j,(0,l.createDraggableData)(this,N))===!1)return!1;(0,o.default)("Draggable: onDragStop: %j",N);const w={dragging:!1,slackX:0,slackY:0};if(!!this.props.position){const{x:v,y:k}=this.props.position;w.x=v,w.y=k}this.setState(w)}),this.state={dragging:!1,dragged:!1,x:x.position?x.position.x:x.defaultPosition.x,y:x.position?x.position.y:x.defaultPosition.y,prevPropsPosition:{...x.position},slackX:0,slackY:0,isElementSVG:!1},x.position&&!(x.onDrag||x.onStop)&&console.warn("A `position` was applied to this <Draggable>, without drag handlers. This will make this component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the `position` of this element.")}componentDidMount(){typeof window.SVGElement<"u"&&this.findDOMNode()instanceof window.SVGElement&&this.setState({isElementSVG:!0})}componentWillUnmount(){this.state.dragging&&this.setState({dragging:!1})}findDOMNode(){return this.props?.nodeRef?.current??s.default.findDOMNode(this)}render(){const{axis:x,bounds:j,children:N,defaultPosition:D,defaultClassName:w,defaultClassNameDragging:p,defaultClassNameDragged:v,position:k,positionOffset:T,scale:F,...q}=this.props;let M={},A=null;const P=!!!k||this.state.dragging,E=k||D,H={x:(0,l.canDragX)(this)&&P?this.state.x:E.x,y:(0,l.canDragY)(this)&&P?this.state.y:E.y};this.state.isElementSVG?A=(0,u.createSVGTransform)(H,T):M=(0,u.createCSSTransform)(H,T);const be=(0,a.clsx)(N.props.className||"",w,{[p]:this.state.dragging,[v]:this.state.dragged});return r.createElement(c.default,y({},q,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),r.cloneElement(r.Children.only(N),{className:be,style:{...N.props.style,...M},transform:A}))}}e.default=i,C(i,"displayName","Draggable"),C(i,"propTypes",{...c.default.propTypes,axis:n.default.oneOf(["both","x","y","none"]),bounds:n.default.oneOfType([n.default.shape({left:n.default.number,right:n.default.number,top:n.default.number,bottom:n.default.number}),n.default.string,n.default.oneOf([!1])]),defaultClassName:n.default.string,defaultClassNameDragging:n.default.string,defaultClassNameDragged:n.default.string,defaultPosition:n.default.shape({x:n.default.number,y:n.default.number}),positionOffset:n.default.shape({x:n.default.oneOfType([n.default.number,n.default.string]),y:n.default.oneOfType([n.default.number,n.default.string])}),position:n.default.shape({x:n.default.number,y:n.default.number}),className:d.dontSetMe,style:d.dontSetMe,transform:d.dontSetMe}),C(i,"defaultProps",{...c.default.defaultProps,axis:"both",bounds:!1,defaultClassName:"react-draggable",defaultClassNameDragging:"react-draggable-dragging",defaultClassNameDragged:"react-draggable-dragged",defaultPosition:{x:0,y:0},scale:1})})(fr)),fr}var Xr;function kr(){if(Xr)return St.exports;Xr=1;const{default:e,DraggableCore:r}=Ja();return St.exports=e,St.exports.default=e,St.exports.DraggableCore=r,St.exports}var Za=kr(),Rt={exports:{}},kt={},Yt={},Ur;function Qa(){if(Ur)return Yt;Ur=1,Yt.__esModule=!0,Yt.cloneElement=d;var e=r(Ot());function r(c){return c&&c.__esModule?c:{default:c}}function n(c,o){var m=Object.keys(c);if(Object.getOwnPropertySymbols){var h=Object.getOwnPropertySymbols(c);o&&(h=h.filter(function(y){return Object.getOwnPropertyDescriptor(c,y).enumerable})),m.push.apply(m,h)}return m}function s(c){for(var o=1;o<arguments.length;o++){var m=arguments[o]!=null?arguments[o]:{};o%2?n(Object(m),!0).forEach(function(h){a(c,h,m[h])}):Object.getOwnPropertyDescriptors?Object.defineProperties(c,Object.getOwnPropertyDescriptors(m)):n(Object(m)).forEach(function(h){Object.defineProperty(c,h,Object.getOwnPropertyDescriptor(m,h))})}return c}function a(c,o,m){return(o=u(o))in c?Object.defineProperty(c,o,{value:m,enumerable:!0,configurable:!0,writable:!0}):c[o]=m,c}function u(c){var o=l(c,"string");return typeof o=="symbol"?o:o+""}function l(c,o){if(typeof c!="object"||!c)return c;var m=c[Symbol.toPrimitive];if(m!==void 0){var h=m.call(c,o);if(typeof h!="object")return h;throw new TypeError("@@toPrimitive must return a primitive value.")}return(o==="string"?String:Number)(c)}function d(c,o){return o.style&&c.props.style&&(o.style=s(s({},c.props.style),o.style)),o.className&&c.props.className&&(o.className=`${c.props.className} ${o.className}`),e.default.cloneElement(c,o)}return Yt}var Pt={},Kr;function Wn(){if(Kr)return Pt;Kr=1,Pt.__esModule=!0,Pt.resizableProps=void 0;var e=r(Kt());kr();function r(n){return n&&n.__esModule?n:{default:n}}return Pt.resizableProps={axis:e.default.oneOf(["both","x","y","none"]),className:e.default.string,children:e.default.element.isRequired,draggableOpts:e.default.shape({allowAnyClick:e.default.bool,cancel:e.default.string,children:e.default.node,disabled:e.default.bool,enableUserSelectHack:e.default.bool,offsetParent:typeof Element<"u"?e.default.instanceOf(Element):e.default.any,grid:e.default.arrayOf(e.default.number),handle:e.default.string,nodeRef:e.default.object,onStart:e.default.func,onDrag:e.default.func,onStop:e.default.func,onMouseDown:e.default.func,scale:e.default.number}),height:function(){for(var n=arguments.length,s=new Array(n),a=0;a<n;a++)s[a]=arguments[a];const[u]=s;return u.axis==="both"||u.axis==="y"?e.default.number.isRequired(...s):e.default.number(...s)},handle:e.default.oneOfType([e.default.node,e.default.func]),handleSize:e.default.arrayOf(e.default.number),lockAspectRatio:e.default.bool,maxConstraints:e.default.arrayOf(e.default.number),minConstraints:e.default.arrayOf(e.default.number),onResizeStop:e.default.func,onResizeStart:e.default.func,onResize:e.default.func,resizeHandles:e.default.arrayOf(e.default.oneOf(["s","w","e","n","sw","nw","se","ne"])),transformScale:e.default.number,width:function(){for(var n=arguments.length,s=new Array(n),a=0;a<n;a++)s[a]=arguments[a];const[u]=s;return u.axis==="both"||u.axis==="x"?e.default.number.isRequired(...s):e.default.number(...s)}},Pt}var Jr;function $n(){if(Jr)return kt;Jr=1,kt.__esModule=!0,kt.default=void 0;var e=u(Ot()),r=kr(),n=Qa(),s=Wn();const a=["children","className","draggableOpts","width","height","handle","handleSize","lockAspectRatio","axis","minConstraints","maxConstraints","onResize","onResizeStop","onResizeStart","resizeHandles","transformScale"];function u(b,i){if(typeof WeakMap=="function")var f=new WeakMap,x=new WeakMap;return(u=function(j,N){if(!N&&j&&j.__esModule)return j;var D,w,p={__proto__:null,default:j};if(j===null||typeof j!="object"&&typeof j!="function")return p;if(D=N?x:f){if(D.has(j))return D.get(j);D.set(j,p)}for(const v in j)v!=="default"&&{}.hasOwnProperty.call(j,v)&&((w=(D=Object.defineProperty)&&Object.getOwnPropertyDescriptor(j,v))&&(w.get||w.set)?D(p,v,w):p[v]=j[v]);return p})(b,i)}function l(){return l=Object.assign?Object.assign.bind():function(b){for(var i=1;i<arguments.length;i++){var f=arguments[i];for(var x in f)({}).hasOwnProperty.call(f,x)&&(b[x]=f[x])}return b},l.apply(null,arguments)}function d(b,i){if(b==null)return{};var f,x,j=c(b,i);if(Object.getOwnPropertySymbols){var N=Object.getOwnPropertySymbols(b);for(x=0;x<N.length;x++)f=N[x],i.indexOf(f)===-1&&{}.propertyIsEnumerable.call(b,f)&&(j[f]=b[f])}return j}function c(b,i){if(b==null)return{};var f={};for(var x in b)if({}.hasOwnProperty.call(b,x)){if(i.indexOf(x)!==-1)continue;f[x]=b[x]}return f}function o(b,i){var f=Object.keys(b);if(Object.getOwnPropertySymbols){var x=Object.getOwnPropertySymbols(b);i&&(x=x.filter(function(j){return Object.getOwnPropertyDescriptor(b,j).enumerable})),f.push.apply(f,x)}return f}function m(b){for(var i=1;i<arguments.length;i++){var f=arguments[i]!=null?arguments[i]:{};i%2?o(Object(f),!0).forEach(function(x){h(b,x,f[x])}):Object.getOwnPropertyDescriptors?Object.defineProperties(b,Object.getOwnPropertyDescriptors(f)):o(Object(f)).forEach(function(x){Object.defineProperty(b,x,Object.getOwnPropertyDescriptor(f,x))})}return b}function h(b,i,f){return(i=y(i))in b?Object.defineProperty(b,i,{value:f,enumerable:!0,configurable:!0,writable:!0}):b[i]=f,b}function y(b){var i=C(b,"string");return typeof i=="symbol"?i:i+""}function C(b,i){if(typeof b!="object"||!b)return b;var f=b[Symbol.toPrimitive];if(f!==void 0){var x=f.call(b,i);if(typeof x!="object")return x;throw new TypeError("@@toPrimitive must return a primitive value.")}return(i==="string"?String:Number)(b)}let S=class extends e.Component{constructor(){super(...arguments),this.handleRefs={},this.lastHandleRect=null,this.slack=null,this.lastSize=null}componentWillUnmount(){this.resetData()}resetData(){this.lastHandleRect=this.slack=this.lastSize=null}runConstraints(i,f){const{minConstraints:x,maxConstraints:j,lockAspectRatio:N}=this.props;if(!x&&!j&&!N)return[i,f];if(N){const k=this.props.width/this.props.height,T=i-this.props.width,F=f-this.props.height;Math.abs(T)>Math.abs(F*k)?f=i/k:i=f*k}const[D,w]=[i,f];let[p,v]=this.slack||[0,0];return i+=p,f+=v,x&&(i=Math.max(x[0],i),f=Math.max(x[1],f)),j&&(i=Math.min(j[0],i),f=Math.min(j[1],f)),this.slack=[p+(D-i),v+(w-f)],[i,f]}resizeHandler(i,f){return(x,j)=>{let{node:N,deltaX:D,deltaY:w}=j;i==="onResizeStart"&&this.resetData();const p=(this.props.axis==="both"||this.props.axis==="x")&&f!=="n"&&f!=="s",v=(this.props.axis==="both"||this.props.axis==="y")&&f!=="e"&&f!=="w";if(!p&&!v)return;const k=f[0],T=f[f.length-1],F=N.getBoundingClientRect();if(this.lastHandleRect!=null){if(T==="w"){const E=F.left-this.lastHandleRect.left;D+=E}if(k==="n"){const E=F.top-this.lastHandleRect.top;w+=E}}this.lastHandleRect=F,T==="w"&&(D=-D),k==="n"&&(w=-w);let q=this.props.width+(p?D/this.props.transformScale:0),M=this.props.height+(v?w/this.props.transformScale:0);[q,M]=this.runConstraints(q,M),i==="onResizeStop"&&this.lastSize&&({width:q,height:M}=this.lastSize);const A=q!==this.props.width||M!==this.props.height;i!=="onResizeStop"&&(this.lastSize={width:q,height:M});const R=typeof this.props[i]=="function"?this.props[i]:null;R&&!(i==="onResize"&&!A)&&(x.persist?.(),R(x,{node:N,size:{width:q,height:M},handle:f})),i==="onResizeStop"&&this.resetData()}}renderResizeHandle(i,f){const{handle:x}=this.props;if(!x)return e.createElement("span",{className:`react-resizable-handle react-resizable-handle-${i}`,ref:f});if(typeof x=="function")return x(i,f);const j=typeof x.type=="string",N=m({ref:f},j?{}:{handleAxis:i});return e.cloneElement(x,N)}render(){const i=this.props,{children:f,className:x,draggableOpts:j,width:N,height:D,handle:w,handleSize:p,lockAspectRatio:v,axis:k,minConstraints:T,maxConstraints:F,onResize:q,onResizeStop:M,onResizeStart:A,resizeHandles:R,transformScale:P}=i,E=d(i,a);return(0,n.cloneElement)(f,m(m({},E),{},{className:`${x?`${x} `:""}react-resizable`,children:[...e.Children.toArray(f.props.children),...R.map(H=>{const be=this.handleRefs[H]??(this.handleRefs[H]=e.createRef());return e.createElement(r.DraggableCore,l({},j,{nodeRef:be,key:`resizableHandle-${H}`,onStop:this.resizeHandler("onResizeStop",H),onStart:this.resizeHandler("onResizeStart",H),onDrag:this.resizeHandler("onResize",H)}),this.renderResizeHandle(H,be))})]}))}};return kt.default=S,S.propTypes=s.resizableProps,S.defaultProps={axis:"both",handleSize:[20,20],lockAspectRatio:!1,minConstraints:[20,20],maxConstraints:[1/0,1/0],resizeHandles:["se"],transformScale:1},kt}var Et={},Zr;function ei(){if(Zr)return Et;Zr=1,Et.__esModule=!0,Et.default=void 0;var e=l(Ot()),r=u(Kt()),n=u($n()),s=Wn();const a=["handle","handleSize","onResize","onResizeStart","onResizeStop","draggableOpts","minConstraints","maxConstraints","lockAspectRatio","axis","width","height","resizeHandles","style","transformScale"];function u(i){return i&&i.__esModule?i:{default:i}}function l(i,f){if(typeof WeakMap=="function")var x=new WeakMap,j=new WeakMap;return(l=function(N,D){if(!D&&N&&N.__esModule)return N;var w,p,v={__proto__:null,default:N};if(N===null||typeof N!="object"&&typeof N!="function")return v;if(w=D?j:x){if(w.has(N))return w.get(N);w.set(N,v)}for(const k in N)k!=="default"&&{}.hasOwnProperty.call(N,k)&&((p=(w=Object.defineProperty)&&Object.getOwnPropertyDescriptor(N,k))&&(p.get||p.set)?w(v,k,p):v[k]=N[k]);return v})(i,f)}function d(){return d=Object.assign?Object.assign.bind():function(i){for(var f=1;f<arguments.length;f++){var x=arguments[f];for(var j in x)({}).hasOwnProperty.call(x,j)&&(i[j]=x[j])}return i},d.apply(null,arguments)}function c(i,f){var x=Object.keys(i);if(Object.getOwnPropertySymbols){var j=Object.getOwnPropertySymbols(i);f&&(j=j.filter(function(N){return Object.getOwnPropertyDescriptor(i,N).enumerable})),x.push.apply(x,j)}return x}function o(i){for(var f=1;f<arguments.length;f++){var x=arguments[f]!=null?arguments[f]:{};f%2?c(Object(x),!0).forEach(function(j){m(i,j,x[j])}):Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(x)):c(Object(x)).forEach(function(j){Object.defineProperty(i,j,Object.getOwnPropertyDescriptor(x,j))})}return i}function m(i,f,x){return(f=h(f))in i?Object.defineProperty(i,f,{value:x,enumerable:!0,configurable:!0,writable:!0}):i[f]=x,i}function h(i){var f=y(i,"string");return typeof f=="symbol"?f:f+""}function y(i,f){if(typeof i!="object"||!i)return i;var x=i[Symbol.toPrimitive];if(x!==void 0){var j=x.call(i,f);if(typeof j!="object")return j;throw new TypeError("@@toPrimitive must return a primitive value.")}return(f==="string"?String:Number)(i)}function C(i,f){if(i==null)return{};var x,j,N=S(i,f);if(Object.getOwnPropertySymbols){var D=Object.getOwnPropertySymbols(i);for(j=0;j<D.length;j++)x=D[j],f.indexOf(x)===-1&&{}.propertyIsEnumerable.call(i,x)&&(N[x]=i[x])}return N}function S(i,f){if(i==null)return{};var x={};for(var j in i)if({}.hasOwnProperty.call(i,j)){if(f.indexOf(j)!==-1)continue;x[j]=i[j]}return x}let b=class extends e.Component{constructor(){super(...arguments),this.state={width:this.props.width,height:this.props.height,propsWidth:this.props.width,propsHeight:this.props.height},this.onResize=(f,x)=>{const{size:j}=x;this.props.onResize?(f.persist?.(),this.setState(j,()=>this.props.onResize&&this.props.onResize(f,x))):this.setState(j)}}static getDerivedStateFromProps(f,x){return x.propsWidth!==f.width||x.propsHeight!==f.height?{width:f.width,height:f.height,propsWidth:f.width,propsHeight:f.height}:null}render(){const f=this.props,{handle:x,handleSize:j,onResize:N,onResizeStart:D,onResizeStop:w,draggableOpts:p,minConstraints:v,maxConstraints:k,lockAspectRatio:T,axis:F,width:q,height:M,resizeHandles:A,style:R,transformScale:P}=f,E=C(f,a);return e.createElement(n.default,{axis:F,draggableOpts:p,handle:x,handleSize:j,height:this.state.height,lockAspectRatio:T,maxConstraints:k,minConstraints:v,onResizeStart:D,onResize:this.onResize,onResizeStop:w,resizeHandles:A,transformScale:P,width:this.state.width},e.createElement("div",d({},E,{style:o(o({},R),{},{width:this.state.width+"px",height:this.state.height+"px"})})))}};return Et.default=b,b.propTypes=o(o({},s.resizableProps),{},{children:r.default.element}),Et}var Qr;function ti(){return Qr||(Qr=1,Rt.exports=function(){throw new Error("Don't instantiate Resizable directly! Use require('react-resizable').Resizable")},Rt.exports.Resizable=$n().default,Rt.exports.ResizableBox=ei().default),Rt.exports}var ri=ti();function en(e){const{children:r,cols:n,containerWidth:s,margin:a,containerPadding:u,rowHeight:l,maxRows:d,isDraggable:c,isResizable:o,isBounded:m,static:h,useCSSTransforms:y=!0,usePercentages:C=!1,transformScale:S=1,positionStrategy:b,dragThreshold:i=0,droppingPosition:f,className:x="",style:j,handle:N="",cancel:D="",x:w,y:p,w:v,h:k,minW:T=1,maxW:F=1/0,minH:q=1,maxH:M=1/0,i:A,resizeHandles:R,resizeHandle:P,constraints:E=Cn,layoutItem:H,layout:be=[],onDragStart:le,onDrag:Re,onDragStop:ke,onResizeStart:Te,onResize:Ie,onResizeStop:Le}=e,[ce,fe]=g.useState(!1),[ge,O]=g.useState(!1),U=g.useRef(null),_=g.useRef({left:0,top:0}),ie=g.useRef({top:0,left:0,width:0,height:0}),se=g.useRef(void 0),Be=g.useRef(be);Be.current=be;const de=g.useRef(null),te=g.useRef(null),ue=g.useRef(!1),dt=g.useRef({x:0,y:0}),re=g.useRef(!1),Z=g.useMemo(()=>({cols:n,containerPadding:u,containerWidth:s,margin:a,maxRows:d,rowHeight:l}),[n,u,s,a,d,l]),ve=g.useMemo(()=>({cols:n,maxRows:d,containerWidth:s,containerHeight:0,rowHeight:l,margin:a,layout:[]}),[n,d,s,l,a]),xe=g.useCallback(()=>({...ve,layout:Be.current}),[ve]),_e=g.useMemo(()=>H??{i:A,x:w,y:p,w:v,h:k,minW:T,maxW:F,minH:q,maxH:M},[H,A,w,p,v,k,T,F,q,M]),zt=g.useCallback(V=>{if(b?.calcStyle)return b.calcStyle(V);if(y)return Sn(V);const Y=fa(V);return C?{...Y,left:Tr(V.left/s),width:Tr(V.width/s)}:Y},[b,y,C,s]),qe=g.useCallback((V,{node:Y})=>{if(!le)return;const{offsetParent:ae}=Y;if(!ae)return;const K=ae.getBoundingClientRect(),pe=Y.getBoundingClientRect(),je=pe.left/S,Se=K.left/S,we=pe.top/S,Oe=K.top/S;let ze;if(b?.calcDragPosition){const I=V;ze=b.calcDragPosition(I.clientX,I.clientY,I.clientX-pe.left,I.clientY-pe.top)}else ze={left:je-Se+ae.scrollLeft,top:we-Oe+ae.scrollTop};if(_.current=ze,i>0){const I=V;dt.current={x:I.clientX,y:I.clientY},ue.current=!0,re.current=!1,fe(!0);return}fe(!0);const Ze=Wt(Z,ze.top,ze.left),{x:Qe,y:z}=$t(E,_e,Ze.x,Ze.y,xe());le(A,Qe,z,{e:V,node:Y,newPosition:ze})},[le,S,Z,b,i,E,_e,xe,A]),ut=g.useCallback((V,{node:Y,deltaX:ae,deltaY:K})=>{if(!Re||!ce)return;const pe=V;if(ue.current&&!re.current){const Qe=pe.clientX-dt.current.x,z=pe.clientY-dt.current.y;if(Math.hypot(Qe,z)<i)return;if(re.current=!0,ue.current=!1,le){const L=Wt(Z,_.current.top,_.current.left),{x:W,y:J}=$t(E,_e,L.x,L.y,xe());le(A,W,J,{e:V,node:Y,newPosition:_.current})}}let je=_.current.top+K,Se=_.current.left+ae;if(m){const{offsetParent:Qe}=Y;if(Qe){const z=Qe.clientHeight-yt(k,l,a[1]);je=Xt(je,0,z);const I=vt(Z),L=s-yt(v,I,a[0]);Se=Xt(Se,0,L)}}const we={top:je,left:Se};_.current=we;const Oe=Wt(Z,je,Se),{x:ze,y:Ze}=$t(E,_e,Oe.x,Oe.y,xe());Re(A,ze,Ze,{e:V,node:Y,newPosition:we})},[Re,le,ce,i,m,k,l,a,Z,s,v,A,E,_e,xe]),Ue=g.useCallback((V,{node:Y})=>{if(!ke||!ce)return;const ae=ue.current;if(ue.current=!1,re.current=!1,dt.current={x:0,y:0},ae){fe(!1),_.current={left:0,top:0};return}const{left:K,top:pe}=_.current,je={top:pe,left:K};fe(!1),_.current={left:0,top:0};const Se=Wt(Z,pe,K),{x:we,y:Oe}=$t(E,_e,Se.x,Se.y,xe());ke(A,we,Oe,{e:V,node:Y,newPosition:je})},[ke,ce,Z,E,_e,xe,A]);de.current=qe,te.current=ut;const Ae=g.useCallback((V,{node:Y,size:ae,handle:K},pe,je)=>{const Se=je==="onResizeStart"?Te:je==="onResize"?Ie:Le;if(!Se)return;let we;Y?we=va(K,pe,ae,s):we={...ae,top:pe.top,left:pe.left},ie.current=we;const Oe=aa(Z,we.width,we.height),{w:ze,h:Ze}=ua(E,_e,Oe.w,Oe.h,K,xe());Se(A,ze,Ze,{e:V.nativeEvent,node:Y,size:we,handle:K})},[Te,Ie,Le,s,Z,A,E,_e,xe]),ft=g.useCallback((V,Y)=>{O(!0);const ae=Ct(Z,w,p,v,k),K={...Y,handle:Y.handle};Ae(V,K,ae,"onResizeStart")},[Ae,Z,w,p,v,k]),ht=g.useCallback((V,Y)=>{const ae=Ct(Z,w,p,v,k),K={...Y,handle:Y.handle};Ae(V,K,ae,"onResize")},[Ae,Z,w,p,v,k]),Ke=g.useCallback((V,Y)=>{O(!1),ie.current={top:0,left:0,width:0,height:0};const ae=Ct(Z,w,p,v,k),K={...Y,handle:Y.handle};Ae(V,K,ae,"onResizeStop")},[Ae,Z,w,p,v,k]);g.useEffect(()=>{if(!f)return;const V=U.current;if(!V)return;const Y=se.current||{left:0,top:0},ae=ce&&(f.left!==Y.left||f.top!==Y.top);if(ce){if(ae){const K=f.left-_.current.left,pe=f.top-_.current.top,je={node:V,deltaX:K,deltaY:pe,lastX:_.current.left,lastY:_.current.top,x:f.left,y:f.top};te.current?.(f.e,je)}}else{const K={node:V,deltaX:f.left,deltaY:f.top,lastX:0,lastY:0,x:f.left,y:f.top};de.current?.(f.e,K)}se.current=f},[f,ce,A]);const He=Ct(Z,w,p,v,k,ce?_.current:null,ge?ie.current:null),jt=Ge.Children.only(r),wt=Ct(Z,0,0,1,1),Mt=[wt.width,wt.height],Ft=[1/0,1/0],Pe=jt.props,sr=Pe.className,Tt=Pe.style;let Je=Ge.cloneElement(jt,{ref:U,className:ln("react-grid-item",sr,x,{static:h,resizing:ge,"react-draggable":c,"react-draggable-dragging":ce,dropping:!!f,cssTransforms:y}),style:{...j,...Tt,...zt(He)}});const Lt=P;return Je=t.jsx(ri.Resizable,{draggableOpts:{disabled:!o},className:o?void 0:"react-resizable-hide",width:He.width,height:He.height,minConstraints:Mt,maxConstraints:Ft,onResizeStart:ft,onResize:ht,onResizeStop:Ke,transformScale:S,resizeHandles:R,handle:Lt,children:Je}),Je=t.jsx(Za.DraggableCore,{disabled:!c,onStart:qe,onDrag:ut,onStop:Ue,handle:N,cancel:".react-resizable-handle"+(D?","+D:""),scale:S,nodeRef:U,children:Je}),Je}var Ye=()=>{},tn="react-grid-layout",Gn=!1;try{Gn=/firefox/i.test(navigator.userAgent)}catch{}function ni(e,r){const n=Ge.Children.toArray(e),s=Ge.Children.toArray(r);if(n.length!==s.length)return!1;for(let a=0;a<n.length;a++){const u=n[a],l=s[a];if(u?.key!==l?.key)return!1}return!0}function rn(e,r,n,s){const a=[],u=new Set;Ge.Children.forEach(r,d=>{if(!Ge.isValidElement(d)||d.key===null)return;const c=String(d.key);u.add(c);const o=e.find(m=>m.i===c);if(o)a.push(ct(o));else{const h=d.props["data-grid"];h?a.push({i:c,x:h.x??0,y:h.y??0,w:h.w??1,h:h.h??1,minW:h.minW,maxW:h.maxW,minH:h.minH,maxH:h.maxH,static:h.static,isDraggable:h.isDraggable,isResizable:h.isResizable,resizeHandles:h.resizeHandles,isBounded:h.isBounded}):a.push({i:c,x:0,y:Jt(a),w:1,h:1})}});const l=vr(a,{cols:n});return s.compact(l,n)}function si(e){const{children:r,width:n,gridConfig:s,dragConfig:a,resizeConfig:u,dropConfig:l,positionStrategy:d=wa,compactor:c,constraints:o=Cn,layout:m=[],droppingItem:h,autoSize:y=!0,className:C="",style:S={},innerRef:b,onLayoutChange:i=Ye,onDragStart:f=Ye,onDrag:x=Ye,onDragStop:j=Ye,onResizeStart:N=Ye,onResize:D=Ye,onResizeStop:w=Ye,onDrop:p=Ye,onDropDragOver:v=Ye}=e,k=g.useMemo(()=>({...Na,...s}),[s]),T=g.useMemo(()=>({...Ca,...a}),[a]),F=g.useMemo(()=>({...Sa,...u}),[u]),q=g.useMemo(()=>({...Da,...l}),[l]),{cols:M,rowHeight:A,maxRows:R,margin:P,containerPadding:E}=k,{enabled:H,bounded:be,handle:le,cancel:Re,threshold:ke}=T,{enabled:Te,handles:Ie,handleComponent:Le}=F,{enabled:ce,defaultItem:fe,onDragOver:ge}=q,O=c??Dr("vertical"),U=O.type,_=O.allowOverlap,ie=O.preventCollision??!1,se=g.useMemo(()=>h??{i:"__dropping-elem__",...fe},[h,fe]),Be=d.type==="transform",de=d.scale,te=E??P,[ue,dt]=g.useState(!1),[re,Z]=g.useState(()=>rn(m,r,M,O)),[ve,xe]=g.useState(null),[_e,zt]=g.useState(!1),[qe,ut]=g.useState(null),[Ue,Ae]=g.useState(),ft=g.useRef(null),ht=g.useRef(null),Ke=g.useRef(null),He=g.useRef(0),jt=g.useRef(re),wt=g.useRef(m),Mt=g.useRef(r),Ft=g.useRef(U),Pe=g.useRef(re);Pe.current=re,g.useEffect(()=>{dt(!0),Xe(re,m)||i(re)},[]),g.useEffect(()=>{if(ve||qe)return;const z=!Xe(m,wt.current),I=!ni(r,Mt.current),L=U!==Ft.current;if(z||I||L){const J=rn(z?m:re,r,M,O);Xe(J,re)||Z(J)}wt.current=m,Mt.current=r,Ft.current=U},[m,r,M,U,O,ve,qe,re]),g.useEffect(()=>{if(!ve&&!Xe(re,jt.current)){jt.current=re;const z=re.filter(I=>I.i!==se.i);i(z)}},[re,ve,i,se.i]);const sr=g.useMemo(()=>{if(!y)return;const z=Jt(re),I=te[1];return z*A+(z-1)*P[1]+I*2+"px"},[y,re,A,P,te]),Tt=g.useCallback((z,I,L,W)=>{const J=Pe.current,X=at(J,z);if(!X)return;const Q={w:X.w,h:X.h,x:X.x,y:X.y,i:z};ft.current=ct(X),Ke.current=J,xe(Q),f(J,X,X,null,W.e,W.node)},[f]),Je=g.useCallback((z,I,L,W)=>{const J=Pe.current,X=ft.current,Q=at(J,z);if(!Q)return;const me={w:Q.w,h:Q.h,x:Q.x,y:Q.y,i:z},ee=ot(J,Q,I,L,!0,ie,U,M,_);x(ee,X,Q,me,W.e,W.node),Z(O.compact(ee,M)),xe(me)},[ie,U,M,_,O,x]),Lt=g.useCallback((z,I,L,W)=>{if(!ve)return;const J=Pe.current,X=ft.current,Q=at(J,z);if(!Q)return;const me=ot(J,Q,I,L,!0,ie,U,M,_),ee=O.compact(me,M);j(ee,X,Q,null,W.e,W.node);const ye=Ke.current;ft.current=null,Ke.current=null,xe(null),Z(ee),ye&&!Xe(ye,ee)&&i(ee)},[ve,ie,U,M,_,O,j,i]),V=g.useCallback((z,I,L,W)=>{const J=Pe.current,X=at(J,z);X&&(ht.current=ct(X),Ke.current=J,zt(!0),N(J,X,X,null,W.e,W.node))},[N]),Y=g.useCallback((z,I,L,W)=>{const J=Pe.current,X=ht.current,{handle:Q}=W;let me=!1,ee,ye;const[_t,Ve]=la(J,z,ne=>(ee=ne.x,ye=ne.y,["sw","w","nw","n","ne"].includes(Q)&&(["sw","nw","w"].includes(Q)&&(ee=ne.x+(ne.w-I),I=ne.x!==ee&&ee<0?ne.w:I,ee=ee<0?0:ee),["ne","n","nw"].includes(Q)&&(ye=ne.y+(ne.h-L),L=ne.y!==ye&&ye<0?ne.h:L,ye=ye<0?0:ye),me=!0),ie&&!_&&wn(J,{...ne,w:I,h:L,x:ee??ne.x,y:ye??ne.y}).filter(It=>It.i!==ne.i).length>0&&(ye=ne.y,L=ne.h,ee=ne.x,I=ne.w,me=!1),ne.w=I,ne.h=L,ne));if(!Ve)return;let Nt=_t;me&&ee!==void 0&&ye!==void 0&&(Nt=ot(_t,Ve,ee,ye,!0,ie,U,M,_));const At={w:Ve.w,h:Ve.h,x:Ve.x,y:Ve.y,i:z,static:!0};D(Nt,X,Ve,At,W.e,W.node),Z(O.compact(Nt,M)),xe(At)},[ie,U,M,_,O,D]),ae=g.useCallback((z,I,L,W)=>{const J=Pe.current,X=ht.current,Q=at(J,z),me=O.compact(J,M);w(me,X,Q??null,null,W.e,W.node);const ee=Ke.current;ht.current=null,Ke.current=null,xe(null),zt(!1),Z(me),ee&&!Xe(ee,me)&&i(me)},[M,O,w,i]),K=g.useCallback(()=>{const z=Pe.current;if(!z.some(W=>W.i===se.i)){ut(null),xe(null),Ae(void 0);return}const L=O.compact(z.filter(W=>W.i!==se.i),M);Z(L),ut(null),xe(null),Ae(void 0)},[se.i,M,O]),pe=g.useCallback(z=>{if(z.preventDefault(),z.stopPropagation(),Gn&&!z.nativeEvent.target?.classList.contains(tn))return!1;const I=ge?ge(z.nativeEvent):v(z);if(I===!1)return qe&&K(),!1;const{dragOffsetX:L=0,dragOffsetY:W=0,...J}=I??{},X={...se,...J},Q=z.currentTarget.getBoundingClientRect(),me={cols:M,margin:P,maxRows:R,rowHeight:A,containerWidth:n,containerPadding:te},ee=vt(me),ye=yt(X.w,ee,P[0]),_t=yt(X.h,A,P[1]),Ve=ye/2,Nt=_t/2,At=z.clientX-Q.left+L-Ve,ne=z.clientY-Q.top+W-Nt,ar=Math.max(0,At),It=Math.max(0,ne),Bt={left:ar/de,top:It/de,e:z.nativeEvent};if(qe)Ue&&(Ue.left!==Bt.left||Ue.top!==Bt.top)&&Ae(Bt);else{const ir=sa(me,It,ar,X.w,X.h);ut(t.jsx("div",{},X.i)),Ae(Bt),Z([...Pe.current,{...X,x:ir.x,y:ir.y,static:!1,isDraggable:!0}])}},[qe,Ue,se,ge,v,K,de,M,P,R,A,n,te]),je=g.useCallback(z=>{z.preventDefault(),z.stopPropagation(),He.current--,He.current<0&&(He.current=0),He.current===0&&K()},[K]),Se=g.useCallback(z=>{z.preventDefault(),z.stopPropagation(),He.current++},[]),we=g.useCallback(z=>{z.preventDefault(),z.stopPropagation();const I=Pe.current,L=I.find(W=>W.i===se.i);He.current=0,K(),p(I,L,z.nativeEvent)},[se.i,K,p]),Oe=g.useCallback((z,I)=>{if(!z||!z.key)return null;const L=at(re,String(z.key));if(!L)return null;const W=typeof L.isDraggable=="boolean"?L.isDraggable:!L.static&&H,J=typeof L.isResizable=="boolean"?L.isResizable:!L.static&&Te,X=L.resizeHandles||[...Ie],Q=W&&be&&L.isBounded!==!1,me=Le;return t.jsx(en,{containerWidth:n,cols:M,margin:P,containerPadding:te,maxRows:R,rowHeight:A,cancel:Re,handle:le,onDragStart:Tt,onDrag:Je,onDragStop:Lt,onResizeStart:V,onResize:Y,onResizeStop:ae,isDraggable:W,isResizable:J,isBounded:Q,useCSSTransforms:Be&&ue,usePercentages:!ue,transformScale:de,positionStrategy:d,dragThreshold:ke,w:L.w,h:L.h,x:L.x,y:L.y,i:L.i,minH:L.minH,minW:L.minW,maxH:L.maxH,maxW:L.maxW,static:L.static,droppingPosition:I?Ue:void 0,resizeHandles:X,resizeHandle:me,constraints:o,layoutItem:L,layout:re,children:z},L.i)},[re,n,M,P,te,R,A,Re,le,Tt,Je,Lt,V,Y,ae,H,Te,be,Be,ue,de,d,ke,Ue,Ie,Le,o]),ze=()=>ve?t.jsx(en,{w:ve.w,h:ve.h,x:ve.x,y:ve.y,i:ve.i,className:`react-grid-placeholder ${_e?"placeholder-resizing":""}`,containerWidth:n,cols:M,margin:P,containerPadding:te,maxRows:R,rowHeight:A,isDraggable:!1,isResizable:!1,isBounded:!1,useCSSTransforms:Be,transformScale:de,constraints:o,layout:re,children:t.jsx("div",{})}):null,Ze=ln(tn,C),Qe={height:sr,...S};return t.jsxs("div",{ref:b,className:Ze,style:Qe,onDrop:ce?we:void 0,onDragLeave:ce?je:void 0,onDragEnter:ce?Se:void 0,onDragOver:ce?pe:void 0,children:[Ge.Children.map(r,z=>Ge.isValidElement(z)?Oe(z):null),ce&&qe&&Oe(qe,!0),ze()]})}var ai={lg:1200,md:996,sm:768,xs:480,xxs:0},ii={lg:12,md:10,sm:6,xs:4,xxs:2},hr=()=>{};function oi(e,r,n,s){const a=[];Ge.Children.forEach(r,l=>{if(!Ge.isValidElement(l)||l.key===null)return;const d=String(l.key),c=e.find(o=>o.i===d);if(c)a.push({...c,i:d});else{const m=l.props["data-grid"];m?a.push({i:d,x:m.x??0,y:m.y??0,w:m.w??1,h:m.h??1,minW:m.minW,maxW:m.maxW,minH:m.minH,maxH:m.maxH,static:m.static,isDraggable:m.isDraggable,isResizable:m.isResizable,resizeHandles:m.resizeHandles,isBounded:m.isBounded}):a.push({i:d,x:0,y:Jt(a),w:1,h:1})}});const u=vr(a,{cols:n});return s.compact(u,n)}function li(e){const{children:r,width:n,breakpoint:s,breakpoints:a=ai,cols:u=ii,layouts:l={},rowHeight:d=150,maxRows:c=1/0,margin:o=[10,10],containerPadding:m=null,compactor:h,onBreakpointChange:y=hr,onLayoutChange:C=hr,onWidthChange:S=hr,...b}=e,i=h??Dr("vertical"),f=i.type,x=i.allowOverlap,j=g.useMemo(()=>s??Lr(a,n),[]),N=g.useMemo(()=>_r(j,u),[j,u]),D=g.useMemo(()=>ur(l,a,j,j,N,f),[]),[w,p]=g.useState(j),[v,k]=g.useState(N),[T,F]=g.useState(D),[q,M]=g.useState(l),A=g.useRef(n),R=g.useRef(s),P=g.useRef(a),E=g.useRef(u),H=g.useRef(l),be=g.useRef(f),le=g.useRef(q);g.useEffect(()=>{le.current=q},[q]);const Re=g.useMemo(()=>Xe(l,H.current)?null:ur(l,a,w,w,v,i),[l,a,w,v,i]),ke=Re??T;g.useEffect(()=>{Re!==null&&(F(Re),M(l),le.current=l,H.current=l)},[Re,l]),g.useEffect(()=>{if(f!==be.current){const fe=i.compact(rt(ke),v),ge={...le.current,[w]:fe};F(fe),M(ge),le.current=ge,C(fe,ge),be.current=f}},[f,i,ke,v,x,w,C]),g.useEffect(()=>{const fe=n!==A.current,ge=s!==R.current,O=!Xe(a,P.current),U=!Xe(u,E.current);if(fe||ge||O||U){const _=s??Lr(a,n),ie=_r(_,u),se=w;if(se!==_||O||U){const te={...le.current};te[se]||(te[se]=rt(T));let ue=ur(te,a,_,se,ie,i);ue=oi(ue,r,ie,i),te[_]=ue,p(_),k(ie),F(ue),M(te),le.current=te,y(_,ie),C(ue,te)}const Be=Gt(o,_),de=m?Gt(m,_):null;S(n,Be,ie,de),A.current=n,R.current=s,P.current=a,E.current=u}},[n,s,a,u,w,v,T,r,i,f,x,o,m,y,C,S]);const Te=g.useCallback(fe=>{const O={...le.current,[w]:fe};F(fe),M(O),le.current=O,C(fe,O)},[w,C]),Ie=g.useMemo(()=>Gt(o,w),[o,w]),Le=g.useMemo(()=>m===null?null:Gt(m,w),[m,w]),ce=g.useMemo(()=>({cols:v,rowHeight:d,maxRows:c,margin:Ie,containerPadding:Le}),[v,d,c,Ie,Le]);return t.jsx(si,{...b,width:n,gridConfig:ce,compactor:i,onLayoutChange:Te,layout:ke,children:r})}function ci({editMode:e}){const r=ts();return g.useEffect(()=>{if(e)return r.startDrag({id:"dashboard-layout",type:"dashboard-widget",data:{}}),()=>{r.endDrag()};r.endDrag("dashboard")},[e,r]),null}const di=["hsl(var(--chart-1))","hsl(var(--chart-2))","hsl(var(--chart-3))","hsl(var(--chart-4))","hsl(var(--chart-5))"],ui=({schema:e,className:r,onLayoutChange:n,persistLayoutKey:s="dashboard-layout",onRefresh:a})=>{const{width:u,containerRef:l,mounted:d}=Xa(),[c,o]=g.useState(!1),[m,h]=g.useState(!1),y=es(),C=g.useRef(null),S=g.useCallback(()=>{a&&(h(!0),a(),setTimeout(()=>h(!1),600))},[a]);g.useEffect(()=>{if(!(!e.refreshInterval||e.refreshInterval<=0||!a))return C.current=setInterval(S,e.refreshInterval*1e3),()=>{C.current&&clearInterval(C.current)}},[e.refreshInterval,a,S]);const[b,i]=g.useState(()=>{if(typeof window<"u"&&s){const D=localStorage.getItem(s);if(D)try{return JSON.parse(D)}catch(w){console.error("Failed to parse saved layout:",w)}}return{lg:e.widgets?.map((D,w)=>({i:D.id||`widget-${w}`,x:D.layout?.x||w%4*3,y:D.layout?.y||Math.floor(w/4)*4,w:D.layout?.w||3,h:D.layout?.h||4}))||[]}}),f=g.useCallback((D,w)=>{i(w),n?.(D)},[n]),x=g.useCallback(()=>{typeof window<"u"&&s&&localStorage.setItem(s,JSON.stringify(b)),o(!1)},[b,s]),j=g.useCallback(()=>{const D={lg:e.widgets?.map((w,p)=>({i:w.id||`widget-${p}`,x:w.layout?.x||p%4*3,y:w.layout?.y||Math.floor(p/4)*4,w:w.layout?.w||3,h:w.layout?.h||4}))||[]};i(D),typeof window<"u"&&s&&localStorage.removeItem(s)},[e.widgets,s]),N=g.useCallback(D=>{if(D.component)return D.component;const w=D.type,p=D.options||{};if(w==="bar"||w==="line"||w==="area"||w==="pie"||w==="donut"){const v=D.data||p.data,k=Array.isArray(v)?v:v?.items||[],T=p.xField||"name",F=p.yField||"value";return{type:"chart",chartType:w,data:k,xAxisKey:T,series:[{dataKey:F}],colors:di,className:"h-full"}}if(w==="table"){const v=D.data||p.data;return{type:"data-table",...p,data:v?.items||[],searchable:!1,pagination:!1,className:"border-0"}}return{...D,...p}},[]);return t.jsxs("div",{ref:l,className:G("w-full",r),"data-testid":"grid-layout",children:[y&&t.jsx(ci,{editMode:c}),t.jsxs("div",{className:"mb-4 flex items-center justify-between",children:[t.jsx("h2",{className:"text-2xl font-bold",children:e.title||"Dashboard"}),t.jsx("div",{className:"flex gap-2",children:c?t.jsxs(t.Fragment,{children:[t.jsxs(B,{onClick:x,size:"sm",variant:"default",children:[t.jsx(_s,{className:"h-4 w-4 mr-2"}),"Save Layout"]}),t.jsxs(B,{onClick:j,size:"sm",variant:"outline",children:[t.jsx(cn,{className:"h-4 w-4 mr-2"}),"Reset"]}),t.jsx(B,{onClick:()=>o(!1),size:"sm",variant:"ghost",children:"Cancel"})]}):t.jsxs(t.Fragment,{children:[a&&t.jsxs(B,{onClick:S,size:"sm",variant:"outline",disabled:m,"aria-label":"Refresh dashboard",children:[t.jsx(fn,{className:G("h-4 w-4 mr-2",m&&"animate-spin")}),m?"Refreshing…":"Refresh All"]}),t.jsxs(B,{onClick:()=>o(!0),size:"sm",variant:"outline",children:[t.jsx(un,{className:"h-4 w-4 mr-2"}),"Edit Layout"]})]})})]}),d&&t.jsx(li,{className:"layout",width:u,layouts:b,breakpoints:{lg:1200,md:996,sm:768,xs:480,xxs:0},cols:{lg:12,md:10,sm:6,xs:4,xxs:2},rowHeight:60,dragConfig:{enabled:c,handle:".drag-handle"},resizeConfig:{enabled:c},onLayoutChange:f,children:e.widgets?.map((D,w)=>{const p=D.id||`widget-${w}`,v=N(D),k=D.type==="metric";return t.jsx("div",{className:"h-full",children:k?t.jsxs("div",{className:"h-full w-full relative",children:[c&&t.jsx("div",{className:"drag-handle absolute top-2 right-2 z-10 cursor-move p-1 bg-background/80 rounded border border-border",children:t.jsx(Mr,{className:"h-4 w-4"})}),t.jsx(De,{schema:v,className:"h-full w-full"})]}):t.jsxs(Ne,{className:G("h-full overflow-hidden border-border/50 shadow-sm transition-all","bg-card/50 backdrop-blur-sm",c&&"ring-2 ring-primary/20"),children:[D.title&&t.jsxs(Me,{className:"pb-2 border-b border-border/40 bg-muted/20 flex flex-row items-center justify-between",children:[t.jsx(Fe,{className:"text-base font-medium tracking-tight truncate",title:D.title,children:D.title}),c&&t.jsx("div",{className:"drag-handle cursor-move p-1 hover:bg-muted/40 rounded",children:t.jsx(Mr,{className:"h-4 w-4"})})]}),t.jsx(Ce,{className:"p-0 h-full",children:t.jsx("div",{className:G("h-full w-full overflow-auto p-4"),children:t.jsx(De,{schema:v})})})]})},p)})})]})},fi=({label:e,value:r,trend:n,icon:s,className:a,description:u,...l})=>{const d=g.useMemo(()=>{if(typeof s=="string"){const c=hn[s];return c?t.jsx(c,{className:"h-4 w-4 text-muted-foreground"}):null}return s},[s]);return t.jsxs(Ne,{className:G("h-full",a),...l,children:[t.jsxs(Me,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[t.jsx(Fe,{className:"text-sm font-medium",children:e}),d&&t.jsx("div",{className:"h-4 w-4 text-muted-foreground",children:d})]}),t.jsxs(Ce,{children:[t.jsx("div",{className:"text-2xl font-bold",children:r}),(n||u)&&t.jsxs("p",{className:"text-xs text-muted-foreground flex items-center mt-1",children:[n&&t.jsxs("span",{className:G("flex items-center mr-2",n.direction==="up"&&"text-green-500",n.direction==="down"&&"text-red-500",n.direction==="neutral"&&"text-yellow-500"),children:[n.direction==="up"&&t.jsx(pn,{className:"h-3 w-3 mr-1"}),n.direction==="down"&&t.jsx(mn,{className:"h-3 w-3 mr-1"}),n.direction==="neutral"&&t.jsx(gn,{className:"h-3 w-3 mr-1"}),n.value,"%"]}),u||n?.label]})]})]})},hi=({title:e,value:r,icon:n,trend:s,trendValue:a,description:u,className:l,...d})=>{const c=n&&hn[n];return t.jsxs(Ne,{className:G("h-full",l),...d,children:[t.jsxs(Me,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[t.jsx(Fe,{className:"text-sm font-medium",children:e}),c&&t.jsx(c,{className:"h-4 w-4 text-muted-foreground"})]}),t.jsxs(Ce,{children:[t.jsx("div",{className:"text-2xl font-bold",children:r}),(s||a||u)&&t.jsxs("p",{className:"text-xs text-muted-foreground flex items-center mt-1",children:[s&&a&&t.jsxs("span",{className:G("flex items-center mr-2",s==="up"&&"text-green-500",s==="down"&&"text-red-500",s==="neutral"&&"text-yellow-500"),children:[s==="up"&&t.jsx(pn,{className:"h-3 w-3 mr-1"}),s==="down"&&t.jsx(mn,{className:"h-3 w-3 mr-1"}),s==="neutral"&&t.jsx(gn,{className:"h-3 w-3 mr-1"}),a]}),u]})]})]})};he.register("dashboard",na,{namespace:"view",label:"Dashboard",category:"Complex",icon:"layout-dashboard",inputs:[{name:"columns",type:"number",label:"Columns",defaultValue:3},{name:"gap",type:"number",label:"Gap",defaultValue:4},{name:"className",type:"string",label:"CSS Class"}],defaultProps:{columns:3,widgets:[]}});he.register("metric",fi,{namespace:"plugin-dashboard",label:"Metric Widget",category:"Dashboard",inputs:[{name:"label",type:"string",label:"Label"},{name:"value",type:"string",label:"Value"}]});he.register("metric-card",hi,{namespace:"plugin-dashboard",label:"Metric Card",category:"Dashboard",inputs:[{name:"title",type:"string",label:"Title"},{name:"value",type:"string",label:"Value",required:!0},{name:"icon",type:"string",label:"Icon (Lucide name)"},{name:"trend",type:"enum",label:"Trend",enum:[{label:"Up",value:"up"},{label:"Down",value:"down"},{label:"Neutral",value:"neutral"}]},{name:"trendValue",type:"string",label:"Trend Value (e.g., +12%)"},{name:"description",type:"string",label:"Description"}],defaultProps:{title:"Metric",value:"0"}});he.register("dashboard-grid",ui,{namespace:"plugin-dashboard",label:"Dashboard Grid (Editable)",category:"Complex",icon:"layout-grid",inputs:[{name:"title",type:"string",label:"Title"},{name:"persistLayoutKey",type:"string",label:"Layout Storage Key",defaultValue:"dashboard-layout"},{name:"className",type:"string",label:"CSS Class"}],defaultProps:{title:"Dashboard",widgets:[],persistLayoutKey:"dashboard-layout"}});const pi=({schema:e})=>{const{title:r,description:n,data:s,columns:a}=e;e.chart?.type;const u=!!e.chart;return t.jsxs(Ne,{className:`h-full flex flex-col ${e.className||""}`,children:[t.jsxs(Me,{children:[r&&t.jsx(Fe,{children:r}),n&&t.jsx(br,{children:n})]}),t.jsxs(Ce,{className:"flex-1 overflow-auto space-y-4",children:[u&&(()=>{const l=e.chart?.type;let d=l?he.get(l):null;return d||(d=he.get("chart")),d?t.jsx("div",{className:"min-h-[300px] border rounded-md p-4 bg-white/50",children:t.jsx(d,{schema:{...e.chart,data:e.chart.data||s}})}):t.jsxs("div",{className:"min-h-[100px] border rounded-md p-4 bg-muted/20 text-muted-foreground flex items-center justify-center",children:["Unknown component type: ",l||"chart"]})})(),s&&s.length>0&&t.jsx("div",{className:"border rounded-md",children:(()=>{const l=he.get("aggrid")||he.get("table");return l?t.jsx(l,{schema:{type:"aggrid",rowData:s,columnDefs:a,domLayout:"autoHeight"}}):t.jsx("div",{className:"overflow-x-auto",children:t.jsxs("table",{className:"w-full text-sm text-left",children:[t.jsx("thead",{className:"text-xs uppercase bg-gray-50",children:t.jsx("tr",{children:a?.map(d=>t.jsx("th",{className:"px-6 py-3",children:d.headerName||d.label||d.field},d.field))})}),t.jsx("tbody",{children:s.map((d,c)=>t.jsx("tr",{className:"bg-white border-b",children:a?.map(o=>t.jsx("td",{className:"px-6 py-4",children:d[o.field]},o.field))},c))})]})})})()})]})]})};function mi(e,r,n){const s=e.fields||[],a=s.map(d=>d.label||d.name),u=r.map(d=>s.map(c=>{let o=d[c.name];return o=Yn(o),typeof o=="string"&&(o.includes(",")||o.includes('"')||o.includes(`
4
- `))?`"${o.replace(/"/g,'""')}"`:o??""})),l=[...n?.includeHeaders!==!1?[a.join(",")]:[],...u.map(d=>d.join(","))].join(`
5
- `);nr(l,n?.filename||`${e.title||"report"}.csv`,"text/csv")}function gi(e,r,n){const s={title:e.title,description:e.description,generatedAt:new Date().toISOString(),data:r},a=JSON.stringify(s,null,2);nr(a,n?.filename||`${e.title||"report"}.json`,"application/json")}function Vn(e,r,n){const s=e.fields||[],a=Un(n?.orientation),u=Xn(n?.pageSize),l=`<!DOCTYPE html>
6
- <html>
7
- <head>
8
- <meta charset="utf-8">
9
- <title>${$e(e.title||"Report")}</title>
10
- <style>
11
- @page { size: ${u} ${a}; margin: 20mm; }
12
- body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; color: #333; }
13
- h1 { font-size: 24px; margin-bottom: 8px; }
14
- .description { color: #666; margin-bottom: 24px; }
15
- .meta { color: #999; font-size: 12px; margin-bottom: 16px; }
16
- table { width: 100%; border-collapse: collapse; margin-top: 16px; }
17
- th { background: #f5f5f5; text-align: left; padding: 8px 12px; border: 1px solid #ddd; font-weight: 600; }
18
- td { padding: 8px 12px; border: 1px solid #ddd; }
19
- tr:nth-child(even) { background: #fafafa; }
20
- </style>
21
- </head>
22
- <body>
23
- <h1>${$e(e.title||"Report")}</h1>
24
- ${e.description?`<p class="description">${$e(e.description)}</p>`:""}
25
- <p class="meta">Generated: ${new Date().toLocaleString()}</p>
26
- <table>
27
- <thead><tr>${s.map(d=>`<th>${$e(d.label||d.name)}</th>`).join("")}</tr></thead>
28
- <tbody>${r.map(d=>`<tr>${s.map(c=>`<td>${$e(String(d[c.name]??""))}</td>`).join("")}</tr>`).join("")}</tbody>
29
- </table>
30
- </body>
31
- </html>`;nr(l,n?.filename||`${e.title||"report"}.html`,"text/html")}function xi(e,r,n){const s=e.fields||[],a=Un(n?.orientation),u=Xn(n?.pageSize),l=window.open("","_blank");if(!l){const d={...n,filename:n?.filename?.replace(/\.pdf$/,".html")||`${e.title||"report"}.html`};Vn(e,r,d);return}l.document.write(`<!DOCTYPE html>
32
- <html>
33
- <head>
34
- <meta charset="utf-8">
35
- <title>${$e(e.title||"Report")}</title>
36
- <style>
37
- @page { size: ${u} ${a}; margin: 20mm; }
38
- @media print { .no-print { display: none; } }
39
- body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; color: #333; }
40
- h1 { font-size: 24px; margin-bottom: 8px; }
41
- .description { color: #666; margin-bottom: 24px; }
42
- .meta { color: #999; font-size: 12px; margin-bottom: 16px; }
43
- table { width: 100%; border-collapse: collapse; margin-top: 16px; }
44
- th { background: #f5f5f5; text-align: left; padding: 8px 12px; border: 1px solid #ddd; font-weight: 600; }
45
- td { padding: 8px 12px; border: 1px solid #ddd; }
46
- tr:nth-child(even) { background: #fafafa; }
47
- </style>
48
- </head>
49
- <body>
50
- <h1>${$e(e.title||"Report")}</h1>
51
- ${e.description?`<p class="description">${$e(e.description)}</p>`:""}
52
- <p class="meta">Generated: ${new Date().toLocaleString()}</p>
53
- <table>
54
- <thead><tr>${s.map(d=>`<th>${$e(d.label||d.name)}</th>`).join("")}</tr></thead>
55
- <tbody>${r.map(d=>`<tr>${s.map(c=>`<td>${$e(String(d[c.name]??""))}</td>`).join("")}</tr>`).join("")}</tbody>
56
- </table>
57
- </body>
58
- </html>`),l.document.close(),l.onload=()=>{l.print()}}function bi(e,r,n){const s=e.fields||[],a=s.map(d=>d.label||d.name),u=r.map(d=>s.map(c=>{let o=d[c.name];return o=Yn(o),typeof o=="string"&&(o.includes(",")||o.includes('"')||o.includes(`
59
- `)||o.includes(" "))?`"${o.replace(/"/g,'""')}"`:o??""})),l="\uFEFF"+[...n?.includeHeaders!==!1?[a.join(" ")]:[],...u.map(d=>d.join(" "))].join(`
60
- `);nr(l,n?.filename||`${e.title||"report"}.tsv`,"text/tab-separated-values")}function yi(e,r,n,s){switch(e){case"csv":mi(r,n,s);break;case"json":gi(r,n,s);break;case"html":Vn(r,n,s);break;case"pdf":xi(r,n,s);break;case"excel":bi(r,n,s);break;default:console.warn(`Unsupported export format: ${e}`)}}function $e(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#039;")}function Yn(e){if(typeof e=="string"&&e.length>0){const r=e.charAt(0);if(r==="="||r==="+"||r==="-"||r==="@"||r==="|")return` ${e}`}return e}function Xn(e){return["A4","A3","Letter","Legal"].includes(e||"")?e:"A4"}function Un(e){return e==="landscape"?"landscape":"portrait"}function nr(e,r,n){const s=new Blob([e],{type:`${n};charset=utf-8`}),a=URL.createObjectURL(s),u=document.createElement("a");u.href=a,u.download=r,document.body.appendChild(u),u.click(),document.body.removeChild(u),URL.revokeObjectURL(a)}const Kn=({schema:e,onRefresh:r})=>{const{report:n,data:s,showToolbar:a=!0,allowExport:u=!0,allowPrint:l=!0,loading:d=!1}=e,c=y=>{if(!n){console.warn("ReportViewer: Cannot export, no report defined");return}yi(y,n,s||[],n.exportConfigs?.[y])},o=()=>{window.print()},m=()=>{r?.()},h=(y,C)=>{if(!s)return 0;const S=s.map(b=>Number(b[y])||0);switch(C){case"count":return s.length;case"sum":return S.reduce((b,i)=>b+i,0);case"avg":return S.length>0?(S.reduce((b,i)=>b+i,0)/S.length).toFixed(2):0;case"min":return S.length>0?Math.min(...S):0;case"max":return S.length>0?Math.max(...S):0;default:return""}};return n?t.jsxs("div",{className:"space-y-4",children:[a&&t.jsxs("div",{className:"flex items-center justify-between gap-2 p-4 bg-card rounded-lg border",children:[t.jsxs("div",{children:[t.jsx("h2",{className:"text-lg font-semibold",children:n.title}),n.description&&t.jsx("p",{className:"text-sm text-muted-foreground",children:n.description})]}),t.jsxs("div",{className:"flex items-center gap-2",children:[n.refreshInterval&&t.jsxs(B,{variant:"outline",size:"sm",onClick:m,children:[t.jsx(As,{className:"h-4 w-4 mr-2"}),"Refresh"]}),l&&t.jsxs(B,{variant:"outline",size:"sm",onClick:o,children:[t.jsx(Is,{className:"h-4 w-4 mr-2"}),"Print"]}),u&&n.showExportButtons&&t.jsxs("div",{className:"flex items-center gap-1",children:[t.jsxs(B,{variant:"outline",size:"sm",onClick:()=>c("pdf"),children:[t.jsx(lr,{className:"h-4 w-4 mr-2"}),"PDF"]}),t.jsxs(B,{variant:"outline",size:"sm",onClick:()=>c("excel"),children:[t.jsx(lr,{className:"h-4 w-4 mr-2"}),"Excel"]}),t.jsxs(B,{variant:"outline",size:"sm",onClick:()=>c("csv"),children:[t.jsx(lr,{className:"h-4 w-4 mr-2"}),"CSV"]})]})]})]}),t.jsxs(Ne,{children:[t.jsxs(Me,{children:[!a&&n.title&&t.jsx(Fe,{children:n.title}),!a&&n.description&&t.jsx(br,{children:n.description})]}),t.jsxs(Ce,{className:"space-y-6",children:[d&&t.jsx("div",{className:"text-center py-8 text-muted-foreground",children:"Loading report data..."}),!d&&n.sections?.map((y,C)=>y.visible===!1?null:t.jsxs("div",{className:"space-y-2",children:[y.title&&t.jsx("h3",{className:"text-lg font-semibold border-b pb-2",children:y.title}),y.type==="header"&&y.title&&t.jsx("div",{className:"text-2xl font-bold py-4",children:y.title}),y.type==="summary"&&t.jsx("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4",children:n.fields?.filter(S=>S.showInSummary).map((S,b)=>t.jsx(Ne,{children:t.jsxs(Ce,{className:"p-4",children:[t.jsx("div",{className:"text-sm text-muted-foreground",children:S.label||S.name}),t.jsx("div",{className:"text-2xl font-bold",children:h(S.name,S.aggregation)})]})},b))}),y.type==="chart"&&y.chart&&t.jsx("div",{className:"min-h-[300px]",children:(()=>{let S=y.chart.type;const b=!!y.chart.chartType;!S&&b&&(S="chart"),S&&!!he.get(S)||(S="chart");const x=S==="chart"?{xAxisKey:y.chart.xAxisKey||y.chart.xAxisField||"name",series:y.chart.series||(y.chart.yAxisFields?y.chart.yAxisFields.map(N=>({dataKey:N})):[]),chartType:y.chart.chartType||"bar"}:{},j={...y.chart,type:S,...x,data:s||y.chart.data,className:y.chart.className||"w-full h-[350px]"};return t.jsx(De,{schema:j})})()}),y.type==="table"&&t.jsx("div",{className:"border rounded-lg overflow-hidden",children:t.jsxs("table",{className:"w-full text-sm",children:[t.jsx("thead",{className:"bg-muted",children:t.jsx("tr",{children:y.columns?.map((S,b)=>t.jsx("th",{className:"px-4 py-2 text-left font-medium",children:S.label||S.name},b))})}),t.jsx("tbody",{children:s?.map((S,b)=>t.jsx("tr",{className:"border-t",children:y.columns?.map((i,f)=>t.jsx("td",{className:"px-4 py-2",children:S[i.name]},f))},b))})]})}),y.type==="text"&&y.text&&t.jsx("div",{className:"prose max-w-none",children:t.jsx("p",{children:y.text})}),y.type==="page-break"&&t.jsx("div",{className:"border-t-2 border-dashed my-8 print:page-break-after-always"}),y.content&&t.jsx(De,{schema:y.content})]},C)),!n.sections&&s&&s.length>0&&t.jsx("div",{className:"border rounded-lg overflow-hidden",children:t.jsxs("table",{className:"w-full text-sm",children:[t.jsx("thead",{className:"bg-muted",children:t.jsx("tr",{children:n.fields?.map((y,C)=>t.jsx("th",{className:"px-4 py-2 text-left font-medium",children:y.label||y.name},C))})}),t.jsx("tbody",{children:s.map((y,C)=>t.jsx("tr",{className:"border-t",children:n.fields?.map((S,b)=>t.jsx("td",{className:"px-4 py-2",children:y[S.name]},b))},C))})]})})]})]})]}):t.jsx(Ne,{children:t.jsx(Ce,{className:"p-8 text-center text-muted-foreground",children:"No report to display"})})},vi=({schedule:e,onChange:r})=>{const[n,s]=g.useState(e||{enabled:!1,frequency:"weekly",time:"09:00",timezone:Intl.DateTimeFormat().resolvedOptions().timeZone,recipients:[],formats:["pdf"]}),a=c=>{const o={...n,...c};s(o),r?.(o)},u=[{value:"once",label:"Once"},{value:"daily",label:"Daily"},{value:"weekly",label:"Weekly"},{value:"monthly",label:"Monthly"},{value:"quarterly",label:"Quarterly"},{value:"yearly",label:"Yearly"}],l=[{value:"pdf",label:"PDF"},{value:"excel",label:"Excel"},{value:"csv",label:"CSV"},{value:"html",label:"HTML"}],d=[{value:0,label:"Sunday"},{value:1,label:"Monday"},{value:2,label:"Tuesday"},{value:3,label:"Wednesday"},{value:4,label:"Thursday"},{value:5,label:"Friday"},{value:6,label:"Saturday"}];return t.jsxs(Ne,{children:[t.jsx(Me,{children:t.jsxs(Fe,{className:"flex items-center gap-2",children:[t.jsx(xn,{className:"h-5 w-5"}),"Schedule Configuration"]})}),t.jsxs(Ce,{className:"space-y-4",children:[t.jsxs("div",{className:"flex items-center gap-2",children:[t.jsx("input",{type:"checkbox",id:"schedule-enabled",checked:n.enabled||!1,onChange:c=>a({enabled:c.target.checked}),className:"rounded"}),t.jsx($,{htmlFor:"schedule-enabled",children:"Enable Scheduled Report"})]}),n.enabled&&t.jsxs(t.Fragment,{children:[t.jsxs("div",{className:"space-y-2",children:[t.jsx($,{children:"Frequency"}),t.jsx("select",{className:"w-full border rounded-md p-2 bg-background",value:n.frequency||"weekly",onChange:c=>a({frequency:c.target.value}),children:u.map(c=>t.jsx("option",{value:c.value,children:c.label},c.value))})]}),n.frequency==="weekly"&&t.jsxs("div",{className:"space-y-2",children:[t.jsx($,{children:"Day of Week"}),t.jsx("select",{className:"w-full border rounded-md p-2 bg-background",value:n.dayOfWeek??1,onChange:c=>a({dayOfWeek:Number(c.target.value)}),children:d.map(c=>t.jsx("option",{value:c.value,children:c.label},c.value))})]}),n.frequency==="monthly"&&t.jsxs("div",{className:"space-y-2",children:[t.jsx($,{children:"Day of Month"}),t.jsx(Ee,{type:"number",min:1,max:31,value:n.dayOfMonth??1,onChange:c=>a({dayOfMonth:Number(c.target.value)})})]}),t.jsxs("div",{className:"space-y-2",children:[t.jsxs($,{className:"flex items-center gap-2",children:[t.jsx(Bs,{className:"h-4 w-4"}),"Time"]}),t.jsx(Ee,{type:"time",value:n.time||"09:00",onChange:c=>a({time:c.target.value})})]}),t.jsxs("div",{className:"space-y-2",children:[t.jsx($,{children:"Timezone"}),t.jsx(Ee,{value:n.timezone||"",onChange:c=>a({timezone:c.target.value}),placeholder:"e.g. America/New_York"})]}),t.jsxs("div",{className:"space-y-2",children:[t.jsx($,{children:"Export Formats"}),t.jsx("div",{className:"flex flex-wrap gap-2",children:l.map(c=>t.jsxs("label",{className:"flex items-center gap-1.5 px-3 py-1.5 border rounded-md cursor-pointer hover:bg-muted/50",children:[t.jsx("input",{type:"checkbox",checked:n.formats?.includes(c.value)||!1,onChange:o=>{const m=n.formats||[];a({formats:o.target.checked?[...m,c.value]:m.filter(h=>h!==c.value)})},className:"rounded"}),t.jsx("span",{className:"text-sm",children:c.label})]},c.value))})]}),t.jsxs("div",{className:"space-y-2",children:[t.jsxs($,{className:"flex items-center gap-2",children:[t.jsx(qs,{className:"h-4 w-4"}),"Email Recipients"]}),t.jsx(Ee,{placeholder:"email1@example.com, email2@example.com",value:n.recipients?.join(", ")||"",onChange:c=>a({recipients:c.target.value.split(",").map(o=>o.trim()).filter(Boolean)})})]}),t.jsxs("div",{className:"space-y-2",children:[t.jsx($,{children:"Email Subject"}),t.jsx(Ee,{value:n.subject||"",onChange:c=>a({subject:c.target.value}),placeholder:"Scheduled Report: {report_title}"})]})]})]})]})},ji=({schema:e})=>{const{report:r,dataSources:n=[],availableFields:s=[],showPreview:a=!0,onSave:u,onCancel:l}=e,[d,c]=g.useState(r||{type:"report",title:"New Report",fields:[],filters:[],groupBy:[],sections:[],showExportButtons:!0,showPrintButton:!0}),[o,m]=g.useState(d.fields||[]),[h,y]=g.useState(d.filters||[]),[C,S]=g.useState(d.groupBy||[]),[b,i]=g.useState(d.sections||[]),f=()=>{if(s.length>0&&o.length<s.length){const R=s.find(P=>!o.some(E=>E.name===P.name));if(R){const P=[...o,R];m(P),c({...d,fields:P})}}},x=R=>{const P=o.filter((E,H)=>H!==R);m(P),c({...d,fields:P})},j=(R,P)=>{const E=[...o];E[R]=P,m(E),c({...d,fields:E})},N=()=>{const R={field:s[0]?.name||"",operator:"equals",value:""},P=[...h,R];y(P),c({...d,filters:P})},D=R=>{const P=h.filter((E,H)=>H!==R);y(P),c({...d,filters:P})},w=(R,P)=>{const E=[...h];E[R]=P,y(E),c({...d,filters:E})},p=()=>{const R={field:s[0]?.name||"",sort:"asc"},P=[...C,R];S(P),c({...d,groupBy:P})},v=R=>{const P=C.filter((E,H)=>H!==R);S(P),c({...d,groupBy:P})},k=(R,P)=>{const E=[...C];E[R]=P,S(E),c({...d,groupBy:E})},T=R=>{const P={type:R,title:`New ${R} Section`},E=[...b,P];i(E),c({...d,sections:E})},F=R=>{const P=b.filter((E,H)=>H!==R);i(P),c({...d,sections:P})},q=(R,P)=>{const E=[...b];E[R]=P,i(E),c({...d,sections:E})},M=()=>{console.log("Saving report:",d),u&&alert("Report saved! (Handler: "+u+")")},A=()=>{l&&console.log("Report cancelled:",l)};return t.jsxs("div",{className:"space-y-4",children:[t.jsxs(Ne,{children:[t.jsxs(Me,{children:[t.jsx(Fe,{children:"Report Builder"}),t.jsx(br,{children:"Configure your report settings, fields, filters, and sections"})]}),t.jsxs(Ce,{children:[t.jsxs(an,{defaultValue:"basic",className:"w-full",children:[t.jsxs(on,{className:"grid w-full grid-cols-6",children:[t.jsxs(nt,{value:"basic",children:[t.jsx(Hs,{className:"h-4 w-4 mr-2"}),"Basic"]}),t.jsxs(nt,{value:"fields",children:[t.jsx(cr,{className:"h-4 w-4 mr-2"}),"Fields"]}),t.jsxs(nt,{value:"filters",children:[t.jsx(Ws,{className:"h-4 w-4 mr-2"}),"Filters"]}),t.jsxs(nt,{value:"grouping",children:[t.jsx(cr,{className:"h-4 w-4 mr-2"}),"Group By"]}),t.jsxs(nt,{value:"sections",children:[t.jsx(cr,{className:"h-4 w-4 mr-2"}),"Sections"]}),t.jsxs(nt,{value:"schedule",children:[t.jsx(xn,{className:"h-4 w-4 mr-2"}),"Schedule"]})]}),t.jsx(st,{value:"basic",className:"space-y-4 mt-4",children:t.jsxs("div",{className:"space-y-4",children:[t.jsxs("div",{className:"space-y-2",children:[t.jsx($,{htmlFor:"report-title",children:"Report Title"}),t.jsx(Ee,{id:"report-title",value:d.title||"",onChange:R=>c({...d,title:R.target.value}),placeholder:"Enter report title"})]}),t.jsxs("div",{className:"space-y-2",children:[t.jsx($,{htmlFor:"report-description",children:"Description"}),t.jsx(Ee,{id:"report-description",value:d.description||"",onChange:R=>c({...d,description:R.target.value}),placeholder:"Enter report description"})]}),n.length>0&&t.jsxs("div",{className:"space-y-2",children:[t.jsx($,{children:"Data Source"}),t.jsxs("select",{className:"w-full border rounded-md p-2",children:[t.jsx("option",{value:"",children:"Select a data source"}),n.map((R,P)=>t.jsxs("option",{value:P,children:["Data Source ",P+1]},P))]})]}),t.jsxs("div",{className:"space-y-2",children:[t.jsx($,{children:"Export Options"}),t.jsxs("div",{className:"flex items-center gap-4",children:[t.jsxs("label",{className:"flex items-center gap-2",children:[t.jsx("input",{type:"checkbox",checked:d.showExportButtons||!1,onChange:R=>c({...d,showExportButtons:R.target.checked})}),t.jsx("span",{className:"text-sm",children:"Show Export Buttons"})]}),t.jsxs("label",{className:"flex items-center gap-2",children:[t.jsx("input",{type:"checkbox",checked:d.showPrintButton||!1,onChange:R=>c({...d,showPrintButton:R.target.checked})}),t.jsx("span",{className:"text-sm",children:"Show Print Button"})]})]})]}),t.jsxs("div",{className:"space-y-2",children:[t.jsx($,{htmlFor:"export-format",children:"Default Export Format"}),t.jsxs("select",{id:"export-format",className:"w-full border rounded-md p-2",value:d.defaultExportFormat||"pdf",onChange:R=>c({...d,defaultExportFormat:R.target.value}),children:[t.jsx("option",{value:"pdf",children:"PDF"}),t.jsx("option",{value:"excel",children:"Excel"}),t.jsx("option",{value:"csv",children:"CSV"}),t.jsx("option",{value:"json",children:"JSON"}),t.jsx("option",{value:"html",children:"HTML"})]})]})]})}),t.jsxs(st,{value:"fields",className:"space-y-4 mt-4",children:[t.jsxs("div",{className:"flex items-center justify-between",children:[t.jsx($,{children:"Report Fields"}),t.jsxs(B,{size:"sm",variant:"outline",onClick:f,disabled:o.length>=s.length,children:[t.jsx(pt,{className:"h-4 w-4 mr-2"}),"Add Field"]})]}),t.jsxs("div",{className:"space-y-2",children:[o.map((R,P)=>t.jsx("div",{className:"flex items-center gap-2 p-3 border rounded-lg",children:t.jsxs("div",{className:"flex-1 grid grid-cols-4 gap-2",children:[t.jsxs("div",{children:[t.jsx($,{className:"text-xs",children:"Field Name"}),t.jsx("div",{className:"text-sm font-medium",children:R.name})]}),t.jsxs("div",{children:[t.jsx($,{className:"text-xs",children:"Label"}),t.jsx(Ee,{className:"h-8 text-sm",value:R.label||R.name,onChange:E=>j(P,{...R,label:E.target.value})})]}),t.jsxs("div",{children:[t.jsx($,{className:"text-xs",children:"Aggregation"}),t.jsxs("select",{className:"w-full border rounded-md h-8 text-sm px-2",value:R.aggregation||"",onChange:E=>j(P,{...R,aggregation:E.target.value}),children:[t.jsx("option",{value:"",children:"None"}),t.jsx("option",{value:"sum",children:"Sum"}),t.jsx("option",{value:"count",children:"Count"}),t.jsx("option",{value:"avg",children:"Average"}),t.jsx("option",{value:"min",children:"Min"}),t.jsx("option",{value:"max",children:"Max"})]})]}),t.jsx("div",{className:"flex items-end justify-end",children:t.jsx(B,{size:"sm",variant:"ghost",className:"text-red-500 hover:text-red-700 hover:bg-red-50",onClick:()=>x(P),children:t.jsx(Ht,{className:"h-4 w-4"})})})]})},P)),o.length===0&&t.jsx("div",{className:"text-center py-8 text-muted-foreground border-2 border-dashed rounded-lg",children:'No fields selected. Click "Add Field" to begin.'})]})]}),t.jsxs(st,{value:"filters",className:"space-y-4 mt-4",children:[t.jsxs("div",{className:"flex items-center justify-between",children:[t.jsx($,{children:"Report Filters"}),t.jsxs(B,{size:"sm",variant:"outline",onClick:N,children:[t.jsx(pt,{className:"h-4 w-4 mr-2"}),"Add Filter"]})]}),t.jsxs("div",{className:"space-y-2",children:[h.map((R,P)=>t.jsxs("div",{className:"flex items-center gap-2 p-3 border rounded-lg",children:[t.jsxs("div",{className:"flex-1 grid grid-cols-3 gap-2",children:[t.jsxs("div",{children:[t.jsx($,{className:"text-xs",children:"Field"}),t.jsx("select",{className:"w-full border rounded-md h-8 text-sm px-2",value:R.field,onChange:E=>w(P,{...R,field:E.target.value}),children:s.map((E,H)=>t.jsx("option",{value:E.name,children:E.label||E.name},H))})]}),t.jsxs("div",{children:[t.jsx($,{className:"text-xs",children:"Operator"}),t.jsxs("select",{className:"w-full border rounded-md h-8 text-sm px-2",value:R.operator,onChange:E=>w(P,{...R,operator:E.target.value}),children:[t.jsx("option",{value:"equals",children:"Equals"}),t.jsx("option",{value:"contains",children:"Contains"}),t.jsx("option",{value:"gt",children:"Greater Than"}),t.jsx("option",{value:"lt",children:"Less Than"}),t.jsx("option",{value:"between",children:"Between"})]})]}),t.jsxs("div",{children:[t.jsx($,{className:"text-xs",children:"Value"}),t.jsx(Ee,{className:"h-8 text-sm",value:String(R.value),onChange:E=>w(P,{...R,value:E.target.value})})]})]}),t.jsx(B,{size:"sm",variant:"ghost",className:"text-red-500 hover:text-red-700 hover:bg-red-50 self-end",onClick:()=>D(P),children:t.jsx(Ht,{className:"h-4 w-4"})})]},P)),h.length===0&&t.jsx("div",{className:"text-center py-8 text-muted-foreground border-2 border-dashed rounded-lg",children:"No filters defined."})]})]}),t.jsxs(st,{value:"grouping",className:"space-y-4 mt-4",children:[t.jsxs("div",{className:"flex items-center justify-between",children:[t.jsx($,{children:"Grouping Rules"}),t.jsxs(B,{size:"sm",variant:"outline",onClick:p,children:[t.jsx(pt,{className:"h-4 w-4 mr-2"}),"Add Group"]})]}),t.jsxs("div",{className:"space-y-2",children:[C.map((R,P)=>t.jsxs("div",{className:"flex items-center gap-2 p-3 border rounded-lg",children:[t.jsxs("div",{className:"flex-1 grid grid-cols-2 gap-2",children:[t.jsxs("div",{children:[t.jsx($,{className:"text-xs",children:"Field"}),t.jsx("select",{className:"w-full border rounded-md h-8 text-sm px-2",value:R.field,onChange:E=>k(P,{...R,field:E.target.value}),children:s.map((E,H)=>t.jsx("option",{value:E.name,children:E.label||E.name},H))})]}),t.jsxs("div",{children:[t.jsx($,{className:"text-xs",children:"Sort Order"}),t.jsxs("select",{className:"w-full border rounded-md h-8 text-sm px-2",value:R.sort||"asc",onChange:E=>k(P,{...R,sort:E.target.value}),children:[t.jsx("option",{value:"asc",children:"Ascending"}),t.jsx("option",{value:"desc",children:"Descending"})]})]})]}),t.jsx(B,{size:"sm",variant:"ghost",className:"text-red-500 hover:text-red-700 hover:bg-red-50 self-end",onClick:()=>v(P),children:t.jsx(Ht,{className:"h-4 w-4"})})]},P)),C.length===0&&t.jsx("div",{className:"text-center py-8 text-muted-foreground border-2 border-dashed rounded-lg",children:"No grouping rules applied."})]})]}),t.jsxs(st,{value:"sections",className:"space-y-4 mt-4",children:[t.jsxs("div",{className:"flex items-center justify-between",children:[t.jsx($,{children:"Report Sections"}),t.jsxs("div",{className:"flex gap-2",children:[t.jsxs(B,{size:"sm",variant:"outline",onClick:()=>T("header"),children:[t.jsx(pt,{className:"h-4 w-4 mr-2"}),"Header"]}),t.jsxs(B,{size:"sm",variant:"outline",onClick:()=>T("chart"),children:[t.jsx(pt,{className:"h-4 w-4 mr-2"}),"Chart"]}),t.jsxs(B,{size:"sm",variant:"outline",onClick:()=>T("table"),children:[t.jsx(pt,{className:"h-4 w-4 mr-2"}),"Table"]})]})]}),t.jsxs("div",{className:"space-y-2",children:[b.map((R,P)=>t.jsxs("div",{className:"p-3 border rounded-lg space-y-2",children:[t.jsxs("div",{className:"flex items-center justify-between",children:[t.jsxs("div",{className:"font-medium flex items-center gap-2",children:[t.jsx("div",{className:"text-xs bg-muted px-2 py-0.5 rounded uppercase",children:R.type}),R.title]}),t.jsx(B,{size:"sm",variant:"ghost",className:"text-red-500 hover:text-red-700 hover:bg-red-50",onClick:()=>F(P),children:t.jsx(Ht,{className:"h-4 w-4"})})]}),t.jsxs("div",{className:"grid grid-cols-2 gap-2",children:[t.jsxs("div",{children:[t.jsx($,{className:"text-xs",children:"Title"}),t.jsx(Ee,{className:"h-8 text-sm",value:R.title||"",onChange:E=>q(P,{...R,title:E.target.value})})]}),R.type==="text"&&t.jsxs("div",{className:"col-span-2",children:[t.jsx($,{className:"text-xs",children:"Content"}),t.jsx(Ee,{className:"h-8 text-sm",value:R.text||"",onChange:E=>q(P,{...R,text:E.target.value})})]}),R.type==="chart"&&t.jsxs("div",{className:"col-span-2 grid grid-cols-2 gap-2 mt-2 p-2 bg-muted/20 rounded",children:[t.jsx("div",{className:"col-span-2",children:t.jsx($,{className:"text-xs font-semibold",children:"Chart Configuration"})}),t.jsxs("div",{children:[t.jsx($,{className:"text-xs",children:"Chart Type"}),t.jsxs("select",{className:"flex h-8 w-full rounded-md border border-input bg-background px-3 py-1 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",value:R.chart?.chartType||"bar",onChange:E=>q(P,{...R,chart:{...R.chart,type:"chart",chartType:E.target.value}}),children:[t.jsx("option",{value:"bar",children:"Bar"}),t.jsx("option",{value:"line",children:"Line"}),t.jsx("option",{value:"area",children:"Area"}),t.jsx("option",{value:"pie",children:"Pie"})]})]}),t.jsxs("div",{children:[t.jsx($,{className:"text-xs",children:"X-Axis Field"}),t.jsxs("select",{className:"flex h-8 w-full rounded-md border border-input bg-background px-3 py-1 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",value:R.chart?.xAxisField||"",onChange:E=>q(P,{...R,chart:{...R.chart,type:"chart",xAxisField:E.target.value}}),children:[t.jsx("option",{value:"",children:"Select Field..."}),s.map(E=>t.jsx("option",{value:E.name,children:E.label||E.name},E.name)),s.length===0&&t.jsxs(t.Fragment,{children:[t.jsx("option",{value:"name",children:"Name"}),t.jsx("option",{value:"month",children:"Month"})]})]})]}),t.jsxs("div",{className:"col-span-2",children:[t.jsx($,{className:"text-xs",children:"Y-Axis Fields (comma separated)"}),t.jsx(Ee,{className:"h-8 text-sm",placeholder:"e.g. value, count",value:R.chart?.yAxisFields?.join(", ")||"",onChange:E=>q(P,{...R,chart:{...R.chart,type:"chart",yAxisFields:E.target.value.split(",").map(H=>H.trim()).filter(Boolean)}})})]})]})]})]},P)),b.length===0&&t.jsx("div",{className:"text-center py-8 text-muted-foreground border-2 border-dashed rounded-lg",children:"No customized sections. The default report layout will be used."})]})]}),t.jsx(st,{value:"schedule",className:"space-y-4 mt-4",children:t.jsx(vi,{schedule:d.schedule,onChange:R=>c({...d,schedule:R})})})]}),t.jsxs("div",{className:"flex items-center justify-end gap-2 mt-6 pt-4 border-t",children:[t.jsx(B,{variant:"outline",onClick:A,children:"Cancel"}),t.jsxs(B,{onClick:M,children:[t.jsx($s,{className:"h-4 w-4 mr-2"}),"Save Report"]})]})]})]}),a&&t.jsxs(Ne,{className:"mt-8 border-2 border-blue-100",children:[t.jsx(Me,{className:"bg-blue-50/50",children:t.jsx(Fe,{className:"text-blue-900 text-sm uppercase tracking-wide",children:"Live Preview"})}),t.jsx(Ce,{className:"pt-6",children:t.jsx(Kn,{schema:{type:"report-viewer",report:{...d,fields:o,filters:h,groupBy:C,sections:b},data:[{id:1,name:"Sample Item A",value:100,status:"New"},{id:2,name:"Sample Item B",value:250,status:"Active"},{id:3,name:"Sample Item C",value:75,status:"Closed"}]}})})]})]})};he.register("report",pi,{namespace:"report",label:"Report",category:"Report",inputs:[{name:"title",type:"string",label:"Title"},{name:"description",type:"string",label:"Description"},{name:"chart",type:"code",label:"Chart Configuration"}]});he.register("report-viewer",Kn,{namespace:"report",label:"Report Viewer",category:"Report",inputs:[{name:"report",type:"code",label:"Report Definition"},{name:"showToolbar",type:"boolean",label:"Show Toolbar"}]});he.register("report-builder",ji,{namespace:"report",label:"Report Builder",category:"Report",inputs:[{name:"report",type:"code",label:"Initial Report"}]});export{jn as D,yn as L,ki as M,ji as R,na as a,Kn as b,Us as u};
@@ -1,2 +0,0 @@
1
- r
2
  v�΋�4fݰN���>U��=�i��7aj�ҵӷE�B���&�9w�d�&�~�9Z�l�|J���P_bA1Fsݠ/,�?�|hV]Բ�����s����˓�P����u-pj�Q�k�����AG�kKc�XM�
3
- ��8.(�Y��͓oR5"�|D>��Rsrw}�+�E�[�;;���+ �p���X0ls�dP�EAx�c���