@object-ui/plugin-dashboard 3.0.2 → 3.0.3

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.
@@ -1,9 +1,9 @@
1
- (function(xe,Ye){typeof exports=="object"&&typeof module<"u"?Ye(exports,require("@object-ui/core"),require("react"),require("@object-ui/react"),require("@object-ui/components"),require("lucide-react"),require("react-dom"),require("clsx")):typeof define=="function"&&define.amd?define(["exports","@object-ui/core","react","@object-ui/react","@object-ui/components","lucide-react","react-dom","clsx"],Ye):(xe=typeof globalThis<"u"?globalThis:xe||self,Ye(xe.ObjectUIPluginDashboard={},xe.ObjectUICore,xe.React,xe.ObjectUIReact,xe.ObjectUIComponents,xe.LucideIcons,xe.ReactDOM,xe.clsx))})(this,(function(xe,Ye,E,rt,V,Re,Cr,Gt){"use strict";function Er(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const r in e)if(r!=="default"){const n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:()=>e[r]})}}return t.default=e,Object.freeze(t)}const ke=Er(E),Pr=Er(Re);var St={exports:{}},ct={};var Or;function Nn(){if(Or)return ct;Or=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.fragment");function r(n,o,s){var l=null;if(s!==void 0&&(l=""+s),o.key!==void 0&&(l=""+o.key),"key"in o){s={};for(var d in o)d!=="key"&&(s[d]=o[d])}else s=o;return o=s.ref,{$$typeof:e,type:n,key:l,ref:o!==void 0?o:null,props:s}}return ct.Fragment=t,ct.jsx=r,ct.jsxs=r,ct}var ft={};var Rr;function An(){return Rr||(Rr=1,process.env.NODE_ENV!=="production"&&(function(){function e(f){if(f==null)return null;if(typeof f=="function")return f.$$typeof===q?null:f.displayName||f.name||null;if(typeof f=="string")return f;switch(f){case a:return"Fragment";case g:return"Profiler";case i:return"StrictMode";case w:return"Suspense";case p:return"SuspenseList";case H:return"Activity"}if(typeof f=="object")switch(typeof f.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),f.$$typeof){case y:return"Portal";case S:return f.displayName||"Context";case b:return(f._context.displayName||"Context")+".Consumer";case u:var j=f.render;return f=f.displayName,f||(f=j.displayName||j.name||"",f=f!==""?"ForwardRef("+f+")":"ForwardRef"),f;case x:return j=f.displayName||null,j!==null?j:e(f.type)||"Memo";case R:j=f._payload,f=f._init;try{return e(f(j))}catch{}}return null}function t(f){return""+f}function r(f){try{t(f);var j=!1}catch{j=!0}if(j){j=console;var k=j.error,z=typeof Symbol=="function"&&Symbol.toStringTag&&f[Symbol.toStringTag]||f.constructor.name||"Object";return k.call(j,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",z),t(f)}}function n(f){if(f===a)return"<>";if(typeof f=="object"&&f!==null&&f.$$typeof===R)return"<...>";try{var j=e(f);return j?"<"+j+">":"<...>"}catch{return"<...>"}}function o(){var f=J.A;return f===null?null:f.getOwner()}function s(){return Error("react-stack-top-frame")}function l(f){if(A.call(f,"key")){var j=Object.getOwnPropertyDescriptor(f,"key").get;if(j&&j.isReactWarning)return!1}return f.key!==void 0}function d(f,j){function k(){U||(U=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",j))}k.isReactWarning=!0,Object.defineProperty(f,"key",{get:k,configurable:!0})}function c(){var f=e(this.type);return K[f]||(K[f]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),f=this.props.ref,f!==void 0?f:null}function v(f,j,k,z,X,I){var M=k.ref;return f={$$typeof:D,type:f,key:j,props:k,_owner:z},(M!==void 0?M:null)!==null?Object.defineProperty(f,"ref",{enumerable:!1,get:c}):Object.defineProperty(f,"ref",{enumerable:!1,value:null}),f._store={},Object.defineProperty(f._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(f,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(f,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:X}),Object.defineProperty(f,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:I}),Object.freeze&&(Object.freeze(f.props),Object.freeze(f)),f}function m(f,j,k,z,X,I){var M=j.children;if(M!==void 0)if(z)if(Y(M)){for(z=0;z<M.length;z++)h(M[z]);Object.freeze&&Object.freeze(M)}else console.error("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else h(M);if(A.call(j,"key")){M=e(f);var W=Object.keys(j).filter(function($){return $!=="key"});z=0<W.length?"{key: someKey, "+W.join(": ..., ")+": ...}":"{key: someKey}",O[M+z]||(W=0<W.length?"{"+W.join(": ..., ")+": ...}":"{}",console.error(`A props object containing a "key" prop is being spread into JSX:
1
+ (function(xe,Ye){typeof exports=="object"&&typeof module<"u"?Ye(exports,require("@object-ui/core"),require("react"),require("@object-ui/react"),require("@object-ui/components"),require("lucide-react"),require("react-dom"),require("clsx")):typeof define=="function"&&define.amd?define(["exports","@object-ui/core","react","@object-ui/react","@object-ui/components","lucide-react","react-dom","clsx"],Ye):(xe=typeof globalThis<"u"?globalThis:xe||self,Ye(xe.ObjectUIPluginDashboard={},xe.ObjectUICore,xe.React,xe.ObjectUIReact,xe.ObjectUIComponents,xe.LucideIcons,xe.ReactDOM,xe.clsx))})(this,(function(xe,Ye,C,rt,V,Re,Er,Gt){"use strict";function Cr(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const r in e)if(r!=="default"){const n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:()=>e[r]})}}return t.default=e,Object.freeze(t)}const ke=Cr(C),Pr=Cr(Re);var St={exports:{}},ct={};var Or;function Nn(){if(Or)return ct;Or=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.fragment");function r(n,o,i){var l=null;if(i!==void 0&&(l=""+i),o.key!==void 0&&(l=""+o.key),"key"in o){i={};for(var p in o)p!=="key"&&(i[p]=o[p])}else i=o;return o=i.ref,{$$typeof:e,type:n,key:l,ref:o!==void 0?o:null,props:i}}return ct.Fragment=t,ct.jsx=r,ct.jsxs=r,ct}var ft={};var Rr;function An(){return Rr||(Rr=1,process.env.NODE_ENV!=="production"&&(function(){function e(d){if(d==null)return null;if(typeof d=="function")return d.$$typeof===W?null:d.displayName||d.name||null;if(typeof d=="string")return d;switch(d){case a:return"Fragment";case g:return"Profiler";case s:return"StrictMode";case w:return"Suspense";case f:return"SuspenseList";case q:return"Activity"}if(typeof d=="object")switch(typeof d.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),d.$$typeof){case v:return"Portal";case E:return d.displayName||"Context";case b:return(d._context.displayName||"Context")+".Consumer";case c:var j=d.render;return d=d.displayName,d||(d=j.displayName||j.name||"",d=d!==""?"ForwardRef("+d+")":"ForwardRef"),d;case y:return j=d.displayName||null,j!==null?j:e(d.type)||"Memo";case R:j=d._payload,d=d._init;try{return e(d(j))}catch{}}return null}function t(d){return""+d}function r(d){try{t(d);var j=!1}catch{j=!0}if(j){j=console;var k=j.error,z=typeof Symbol=="function"&&Symbol.toStringTag&&d[Symbol.toStringTag]||d.constructor.name||"Object";return k.call(j,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",z),t(d)}}function n(d){if(d===a)return"<>";if(typeof d=="object"&&d!==null&&d.$$typeof===R)return"<...>";try{var j=e(d);return j?"<"+j+">":"<...>"}catch{return"<...>"}}function o(){var d=J.A;return d===null?null:d.getOwner()}function i(){return Error("react-stack-top-frame")}function l(d){if(A.call(d,"key")){var j=Object.getOwnPropertyDescriptor(d,"key").get;if(j&&j.isReactWarning)return!1}return d.key!==void 0}function p(d,j){function k(){U||(U=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",j))}k.isReactWarning=!0,Object.defineProperty(d,"key",{get:k,configurable:!0})}function u(){var d=e(this.type);return K[d]||(K[d]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),d=this.props.ref,d!==void 0?d:null}function x(d,j,k,z,X,I){var M=k.ref;return d={$$typeof:D,type:d,key:j,props:k,_owner:z},(M!==void 0?M:null)!==null?Object.defineProperty(d,"ref",{enumerable:!1,get:u}):Object.defineProperty(d,"ref",{enumerable:!1,value:null}),d._store={},Object.defineProperty(d._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(d,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(d,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:X}),Object.defineProperty(d,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:I}),Object.freeze&&(Object.freeze(d.props),Object.freeze(d)),d}function m(d,j,k,z,X,I){var M=j.children;if(M!==void 0)if(z)if(Y(M)){for(z=0;z<M.length;z++)h(M[z]);Object.freeze&&Object.freeze(M)}else console.error("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else h(M);if(A.call(j,"key")){M=e(d);var $=Object.keys(j).filter(function(H){return H!=="key"});z=0<$.length?"{key: someKey, "+$.join(": ..., ")+": ...}":"{key: someKey}",O[M+z]||($=0<$.length?"{"+$.join(": ..., ")+": ...}":"{}",console.error(`A props object containing a "key" prop is being spread into JSX:
2
2
  let props = %s;
3
3
  <%s {...props} />
4
4
  React keys must be passed directly to JSX without using spread:
5
5
  let props = %s;
6
- <%s key={someKey} {...props} />`,z,M,W,M),O[M+z]=!0)}if(M=null,k!==void 0&&(r(k),M=""+k),l(j)&&(r(j.key),M=""+j.key),"key"in j){k={};for(var N in j)N!=="key"&&(k[N]=j[N])}else k=j;return M&&d(k,typeof f=="function"?f.displayName||f.name||"Unknown":f),v(f,M,k,o(),X,I)}function h(f){C(f)?f._store&&(f._store.validated=1):typeof f=="object"&&f!==null&&f.$$typeof===R&&(f._payload.status==="fulfilled"?C(f._payload.value)&&f._payload.value._store&&(f._payload.value._store.validated=1):f._store&&(f._store.validated=1))}function C(f){return typeof f=="object"&&f!==null&&f.$$typeof===D}var P=E,D=Symbol.for("react.transitional.element"),y=Symbol.for("react.portal"),a=Symbol.for("react.fragment"),i=Symbol.for("react.strict_mode"),g=Symbol.for("react.profiler"),b=Symbol.for("react.consumer"),S=Symbol.for("react.context"),u=Symbol.for("react.forward_ref"),w=Symbol.for("react.suspense"),p=Symbol.for("react.suspense_list"),x=Symbol.for("react.memo"),R=Symbol.for("react.lazy"),H=Symbol.for("react.activity"),q=Symbol.for("react.client.reference"),J=P.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,A=Object.prototype.hasOwnProperty,Y=Array.isArray,Z=console.createTask?console.createTask:function(){return null};P={react_stack_bottom_frame:function(f){return f()}};var U,K={},le=P.react_stack_bottom_frame.bind(P,s)(),me=Z(n(s)),O={};ft.Fragment=a,ft.jsx=function(f,j,k){var z=1e4>J.recentlyCreatedOwnerStacks++;return m(f,j,k,!1,z?Error("react-stack-top-frame"):le,z?Z(n(f)):me)},ft.jsxs=function(f,j,k){var z=1e4>J.recentlyCreatedOwnerStacks++;return m(f,j,k,!0,z?Error("react-stack-top-frame"):le,z?Z(n(f)):me)}})()),ft}var Dr;function In(){return Dr||(Dr=1,process.env.NODE_ENV==="production"?St.exports=Nn():St.exports=An()),St.exports}var T=In();const Ln=["hsl(var(--chart-1))","hsl(var(--chart-2))","hsl(var(--chart-3))","hsl(var(--chart-4))","hsl(var(--chart-5))"],Vt=E.forwardRef(({schema:e,className:t,dataSource:r,onRefresh:n,...o},s)=>{const l=e.columns||4,d=e.gap||4,[c,v]=E.useState(!1),[m,h]=E.useState(!1),C=E.useRef(null);E.useEffect(()=>{const a=()=>h(window.innerWidth<640);return a(),window.addEventListener("resize",a),()=>window.removeEventListener("resize",a)},[]);const P=E.useCallback(()=>{n&&(v(!0),n(),setTimeout(()=>v(!1),600))},[n]);E.useEffect(()=>{if(!(!e.refreshInterval||e.refreshInterval<=0||!n))return C.current=setInterval(P,e.refreshInterval*1e3),()=>{C.current&&clearInterval(C.current)}},[e.refreshInterval,n,P]);const D=a=>{const g=(()=>{if(a.component)return a.component;const S=a.type;if(S==="bar"||S==="line"||S==="area"||S==="pie"||S==="donut"){const u=Array.isArray(a.data)?a.data:a.data?.items||[],w=a.options||{},p=w.xField||"name",x=w.yField||"value";return{type:"chart",chartType:S,data:u,xAxisKey:p,series:[{dataKey:x}],colors:Ln,className:"h-[200px] sm:h-[250px] md:h-[300px]"}}return S==="table"?{type:"data-table",...a.options,data:a.data?.items||[],searchable:!1,pagination:!1,className:"border-0"}:{...a,...a.options||{}}})();return a.type==="metric"?T.jsx("div",{className:V.cn("h-full w-full",m&&"w-[85vw] shrink-0 snap-center"),style:!m&&a.layout?{gridColumn:`span ${a.layout.w}`,gridRow:`span ${a.layout.h}`}:void 0,children:T.jsx(rt.SchemaRenderer,{schema:g,className:"h-full w-full"})},a.id||a.title):T.jsxs(V.Card,{className:V.cn("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&&a.layout?{gridColumn:`span ${a.layout.w}`,gridRow:`span ${a.layout.h}`}:void 0,children:[a.title&&T.jsx(V.CardHeader,{className:"pb-2 border-b border-border/40 bg-muted/20 px-3 sm:px-6",children:T.jsx(V.CardTitle,{className:"text-sm sm:text-base font-medium tracking-tight truncate",title:a.title,children:a.title})}),T.jsx(V.CardContent,{className:"p-0",children:T.jsx("div",{className:V.cn("h-full w-full","p-3 sm:p-4 md:p-6"),children:T.jsx(rt.SchemaRenderer,{schema:g})})})]},a.id||a.title)},y=n&&T.jsx("div",{className:V.cn(m?"flex justify-end mb-2":"col-span-full flex justify-end mb-2"),children:T.jsxs(V.Button,{variant:"outline",size:"sm",onClick:P,disabled:c,"aria-label":"Refresh dashboard",children:[T.jsx(Re.RefreshCw,{className:V.cn("h-4 w-4 mr-2",c&&"animate-spin")}),c?"Refreshing…":"Refresh All"]})});return m?T.jsxs("div",{ref:s,className:V.cn("flex flex-col",t),...o,children:[y,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(a=>D(a))})]}):T.jsxs("div",{ref:s,className:V.cn("grid auto-rows-min","grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4",t),style:{...l>4&&{gridTemplateColumns:`repeat(${l}, minmax(0, 1fr))`},gap:`${d*.25}rem`},...o,children:[y,e.widgets?.map(a=>D(a))]})});function nt(e){const{margin:t,containerPadding:r,containerWidth:n,cols:o}=e;return(n-t[0]*(o-1)-r[0]*2)/o}function ot(e,t,r){return Number.isFinite(e)?Math.round(t*e+Math.max(0,e-1)*r):e}function dt(e,t,r,n,o,s,l){const{margin:d,containerPadding:c,rowHeight:v}=e,m=nt(e);let h,C,P,D;if(l?(h=Math.round(l.width),C=Math.round(l.height)):(h=ot(n,m,d[0]),C=ot(o,v,d[1])),s?(P=Math.round(s.top),D=Math.round(s.left)):l?(P=Math.round(l.top),D=Math.round(l.left)):(P=Math.round((v+d[1])*r+c[1]),D=Math.round((m+d[0])*t+c[0])),!s&&!l){if(Number.isFinite(n)){const a=Math.round((m+d[0])*(t+n)+c[0])-D-h;a!==d[0]&&(h+=a-d[0])}if(Number.isFinite(o)){const a=Math.round((v+d[1])*(r+o)+c[1])-P-C;a!==d[1]&&(C+=a-d[1])}}return{top:P,left:D,width:h,height:C}}function Wn(e,t,r,n,o){const{margin:s,containerPadding:l,cols:d,rowHeight:c,maxRows:v}=e,m=nt(e);let h=Math.round((r-l[0])/(m+s[0])),C=Math.round((t-l[1])/(c+s[1]));return h=Et(h,0,d-n),C=Et(C,0,v-o),{x:h,y:C}}function Ct(e,t,r){const{margin:n,containerPadding:o,rowHeight:s}=e,l=nt(e),d=Math.round((r-o[0])/(l+n[0])),c=Math.round((t-o[1])/(s+n[1]));return{x:d,y:c}}function qn(e,t,r){const{margin:n,rowHeight:o}=e,s=nt(e),l=Math.max(1,Math.round((t+n[0])/(s+n[0]))),d=Math.max(1,Math.round((r+n[1])/(o+n[1])));return{w:l,h:d}}function Et(e,t,r){return Math.max(Math.min(e,r),t)}function Jt(e,t){return!(e.i===t.i||e.x+e.w<=t.x||e.x>=t.x+t.w||e.y+e.h<=t.y||e.y>=t.y+t.h)}function Ze(e,t){for(let r=0;r<e.length;r++){const n=e[r];if(n!==void 0&&Jt(n,t))return n}}function _r(e,t){return e.filter(r=>Jt(r,t))}function $n(e,t){return t==="horizontal"?jr(e):t==="vertical"||t==="wrap"?Kt(e):[...e]}function Kt(e){return[...e].sort((t,r)=>t.y!==r.y?t.y-r.y:t.x-r.x)}function jr(e){return[...e].sort((t,r)=>t.x!==r.x?t.x-r.x:t.y-r.y)}function Pt(e){let t=0;for(let r=0;r<e.length;r++){const n=e[r];if(n!==void 0){const o=n.y+n.h;o>t&&(t=o)}}return t}function Qe(e,t){for(let r=0;r<e.length;r++){const n=e[r];if(n!==void 0&&n.i===t)return n}}function Ot(e){return e.filter(t=>t.static===!0)}function et(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 Be(e){const t=new Array(e.length);for(let r=0;r<e.length;r++){const n=e[r];n!==void 0&&(t[r]=et(n))}return t}function Hn(e,t){const r=new Array(e.length);for(let n=0;n<e.length;n++){const o=e[n];o!==void 0&&(t.i===o.i?r[n]=t:r[n]=o)}return r}function Yn(e,t,r){let n=Qe(e,t);return n?(n=r(et(n)),[Hn(e,n),n]):[[...e],null]}function Zt(e,t){const r=Ot(e);for(let n=0;n<e.length;n++){const o=e[n];if(o!==void 0)if(o.x+o.w>t.cols&&(o.x=t.cols-o.w),o.x<0&&(o.x=0,o.w=t.cols),!o.static)r.push(o);else for(;Ze(r,o);)o.y++}return e}function tt(e,t,r,n,o,s,l,d,c){if(t.static&&t.isDraggable!==!0)return[...e];if(t.y===n&&t.x===r)return[...e];const v=t.x,m=t.y;typeof r=="number"&&(t.x=r),typeof n=="number"&&(t.y=n),t.moved=!0;let h=$n(e,l);(l==="vertical"&&typeof n=="number"?m>=n:l==="horizontal"&&typeof r=="number"&&v>=r)&&(h=h.reverse());const P=_r(h,t),D=P.length>0;if(D&&c)return Be(e);if(D&&s)return t.x=v,t.y=m,t.moved=!1,e;let y=[...e];for(let a=0;a<P.length;a++){const i=P[a];i!==void 0&&(i.moved||(i.static?y=Tr(y,i,t,o,l):y=Tr(y,t,i,o,l)))}return y}function Tr(e,t,r,n,o,s){const l=o==="horizontal",d=o==="vertical",c=t.static;if(n){n=!1;const h={x:l?Math.max(t.x-r.w,0):r.x,y:d?Math.max(t.y-r.h,0):r.y,w:r.w,h:r.h,i:"-1"},C=Ze(e,h),P=C!==void 0&&C.y+C.h>t.y,D=C!==void 0&&t.x+t.w>C.x;if(!C)return tt(e,r,l?h.x:void 0,d?h.y:void 0,n,c,o);if(P&&d)return tt(e,r,void 0,r.y+1,n,c,o);if(P&&o===null)return t.y=r.y,r.y=r.y+r.h,[...e];if(D&&l)return tt(e,t,r.x,void 0,n,c,o)}const v=l?r.x+1:void 0,m=d?r.y+1:void 0;return v===void 0&&m===void 0?[...e]:tt(e,r,v,m,n,c,o)}function at(e,t,r){return Math.max(t,Math.min(r,e))}var Bn={name:"gridBounds",constrainPosition(e,t,r,{cols:n,maxRows:o}){return{x:at(t,0,Math.max(0,n-e.w)),y:at(r,0,Math.max(0,o-e.h))}},constrainSize(e,t,r,n,{cols:o,maxRows:s}){const l=n==="w"||n==="nw"||n==="sw"?e.x+e.w:o-e.x,d=n==="n"||n==="nw"||n==="ne"?e.y+e.h:s-e.y;return{w:at(t,1,Math.max(1,l)),h:at(r,1,Math.max(1,d))}}},Fn={name:"minMaxSize",constrainSize(e,t,r){return{w:at(t,e.minW??1,e.maxW??1/0),h:at(r,e.minH??1,e.maxH??1/0)}}},Mr=[Bn,Fn];function Rt(e,t,r,n,o){let s={x:r,y:n};for(const l of e)l.constrainPosition&&(s=l.constrainPosition(t,s.x,s.y,o));if(t.constraints)for(const l of t.constraints)l.constrainPosition&&(s=l.constrainPosition(t,s.x,s.y,o));return s}function Xn(e,t,r,n,o,s){let l={w:r,h:n};for(const d of e)d.constrainSize&&(l=d.constrainSize(t,l.w,l.h,o,s));if(t.constraints)for(const d of t.constraints)d.constrainSize&&(l=d.constrainSize(t,l.w,l.h,o,s));return l}function zr({top:e,left:t,width:r,height:n}){const o=`translate(${t}px,${e}px)`;return{transform:o,WebkitTransform:o,MozTransform:o,msTransform:o,OTransform:o,width:`${r}px`,height:`${n}px`,position:"absolute"}}function Un({top:e,left:t,width:r,height:n}){return{top:`${e}px`,left:`${t}px`,width:`${r}px`,height:`${n}px`,position:"absolute"}}function kr(e){return e*100+"%"}function Gn(e,t,r,n){return e+r>n?t:r}function Nr(e,t,r){return e<0?t:r}function Vn(e){return Math.max(0,e)}function Dt(e){return Math.max(0,e)}var Qt=(e,t,r)=>{const{left:n,height:o,width:s}=t,l=e.top-(o-e.height);return{left:n,width:s,height:Nr(l,e.height,o),top:Dt(l)}},er=(e,t,r)=>{const{top:n,left:o,height:s,width:l}=t;return{top:n,height:s,width:Gn(e.left,e.width,l,r),left:Vn(o)}},tr=(e,t,r)=>{const{top:n,height:o,width:s}=t,l=e.left+e.width-s;return l<0?{height:o,width:e.left+e.width,top:Dt(n),left:0}:{height:o,width:s,top:Dt(n),left:l}},rr=(e,t,r)=>{const{top:n,left:o,height:s,width:l}=t;return{width:l,left:o,height:Nr(n,e.height,s),top:Dt(n)}},Jn=(e,t,r)=>Qt(e,er(e,t,r)),Kn=(e,t,r)=>Qt(e,tr(e,t)),Zn=(e,t,r)=>rr(e,er(e,t,r)),Qn=(e,t,r)=>rr(e,tr(e,t)),eo={n:Qt,ne:Jn,e:er,se:Zn,s:rr,sw:Qn,w:tr,nw:Kn};function to(e,t,r,n){const o=eo[e];return o?o(t,{...t,...r},n):r}var ro={type:"transform",scale:1,calcStyle(e){return zr(e)}},no=ro,oo={cols:12,rowHeight:150,margin:[10,10],containerPadding:null,maxRows:1/0},ao={enabled:!0,bounded:!1,threshold:3},so={enabled:!0,handles:["se"]},io={enabled:!1,defaultItem:{w:1,h:1}};function nr(e,t,r,n,o){const s=n==="x"?"w":"h";t[n]+=1;const l=e.findIndex(c=>c.i===t.i),d=o??Ot(e).length>0;for(let c=l+1;c<e.length;c++){const v=e[c];if(v!==void 0&&!v.static){if(!d&&v.y>t.y+t.h)break;Jt(t,v)&&nr(e,v,r+t[s],n,d)}}t[n]=r}function lo(e,t,r,n){for(t.x=Math.max(t.x,0),t.y=Math.max(t.y,0),t.y=Math.min(n,t.y);t.y>0&&!Ze(e,t);)t.y--;let o;for(;(o=Ze(e,t))!==void 0;)nr(r,t,o.y+o.h,"y");return t.y=Math.max(t.y,0),t}function uo(e,t,r,n){for(t.x=Math.max(t.x,0),t.y=Math.max(t.y,0);t.x>0&&!Ze(e,t);)t.x--;let o;for(;(o=Ze(e,t))!==void 0;)if(nr(n,t,o.x+o.w,"x"),t.x+t.w>r)for(t.x=r-t.w,t.y++;t.x>0&&!Ze(e,t);)t.x--;return t.x=Math.max(t.x,0),t}var Ar={type:"vertical",allowOverlap:!1,compact(e,t){const r=Ot(e);let n=Pt(r);const o=Kt(e),s=new Array(e.length);for(let l=0;l<o.length;l++){const d=o[l];if(d===void 0)continue;let c=et(d);c.static||(c=lo(r,c,o,n),n=Math.max(n,c.y+c.h),r.push(c));const v=e.indexOf(d);s[v]=c,c.moved=!1}return s}},Ir={type:"horizontal",allowOverlap:!1,compact(e,t){const r=Ot(e),n=jr(e),o=new Array(e.length);for(let s=0;s<n.length;s++){const l=n[s];if(l===void 0)continue;let d=et(l);d.static||(d=uo(r,d,t,n),r.push(d));const c=e.indexOf(l);o[c]=d,d.moved=!1}return o}},Lr={type:null,allowOverlap:!1,compact(e,t){return Be(e)}},co={...Ar,allowOverlap:!0,compact(e,t){return Be(e)}},fo={...Ir,allowOverlap:!0,compact(e,t){return Be(e)}},po={...Lr,allowOverlap:!0};function or(e,t=!1,r=!1){let n;return t?e==="vertical"?n=co:e==="horizontal"?n=fo:n=po:e==="vertical"?n=Ar:e==="horizontal"?n=Ir:n=Lr,r?{...n,preventCollision:r}:n}function Wr(e){return Object.keys(e).sort((r,n)=>e[r]-e[n])}function qr(e,t){const r=Wr(e);let n=r[0];if(n===void 0)throw new Error("No breakpoints defined");for(let o=1;o<r.length;o++){const s=r[o];if(s===void 0)continue;const l=e[s];t>l&&(n=s)}return n}function $r(e,t){const r=t[e];if(r===void 0)throw new Error(`ResponsiveReactGridLayout: \`cols\` entry for breakpoint ${String(e)} is missing!`);return r}function ar(e,t,r,n,o,s){const l=e[r];if(l)return Be(l);let d=e[n];const c=Wr(t),v=c.slice(c.indexOf(r));for(let P=0;P<v.length;P++){const D=v[P];if(D===void 0)continue;const y=e[D];if(y){d=y;break}}const m=Be(d||[]),h=Zt(m,{cols:o});return(typeof s=="object"&&s!==null?s:or(s)).compact(h,o)}function _t(e,t){if(Array.isArray(e))return e;const r=e,n=r[t];if(n!==void 0)return n;const o=Object.keys(r);for(const s of o){const l=r[s];if(l!==void 0)return l}return[10,10]}function Hr(e){return function(r,n,o,s,l,d,c){return e(r,n,c)}}function jt(e){return function(r,n,o,s){if(!r||!n||typeof r!="object"||typeof n!="object")return e(r,n,o,s);var l=s.get(r),d=s.get(n);if(l&&d)return l===n&&d===r;s.set(r,n),s.set(n,r);var c=e(r,n,o,s);return s.delete(r),s.delete(n),c}}function Yr(e,t){var r={};for(var n in e)r[n]=e[n];for(var n in t)r[n]=t[n];return r}function Br(e){return e.constructor===Object||e.constructor==null}function Fr(e){return typeof e.then=="function"}function Tt(e,t){return e===t||e!==e&&t!==t}var ho="[object Arguments]",go="[object Boolean]",mo="[object Date]",yo="[object RegExp]",vo="[object Map]",bo="[object Number]",xo="[object Object]",wo="[object Set]",So="[object String]",Xr=Object.prototype.toString;function Mt(e){var t=e.areArraysEqual,r=e.areDatesEqual,n=e.areMapsEqual,o=e.areObjectsEqual,s=e.areRegExpsEqual,l=e.areSetsEqual,d=e.createIsNestedEqual,c=d(v);function v(m,h,C){if(m===h)return!0;if(!m||!h||typeof m!="object"||typeof h!="object")return m!==m&&h!==h;if(Br(m)&&Br(h))return o(m,h,c,C);var P=Array.isArray(m),D=Array.isArray(h);if(P||D)return P===D&&t(m,h,c,C);var y=Xr.call(m);return y!==Xr.call(h)?!1:y===mo?r(m,h,c,C):y===yo?s(m,h,c,C):y===vo?n(m,h,c,C):y===wo?l(m,h,c,C):y===xo||y===ho?Fr(m)||Fr(h)?!1:o(m,h,c,C):y===go||y===bo||y===So?Tt(m.valueOf(),h.valueOf()):!1}return v}function Ur(e,t,r,n){var o=e.length;if(t.length!==o)return!1;for(;o-- >0;)if(!r(e[o],t[o],o,o,e,t,n))return!1;return!0}var Co=jt(Ur);function Gr(e,t){return Tt(e.valueOf(),t.valueOf())}function Vr(e,t,r,n){var o=e.size===t.size;if(!o)return!1;if(!e.size)return!0;var s={},l=0;return e.forEach(function(d,c){if(o){var v=!1,m=0;t.forEach(function(h,C){!v&&!s[m]&&(v=r(c,C,l,m,e,t,n)&&r(d,h,c,C,e,t,n))&&(s[m]=!0),m++}),l++,o=v}}),o}var Eo=jt(Vr),Po="_owner",Oo=Object.prototype.hasOwnProperty;function Jr(e,t,r,n){var o=Object.keys(e),s=o.length;if(Object.keys(t).length!==s)return!1;for(var l;s-- >0;){if(l=o[s],l===Po){var d=!!e.$$typeof,c=!!t.$$typeof;if((d||c)&&d!==c)return!1}if(!Oo.call(t,l)||!r(e[l],t[l],l,l,e,t,n))return!1}return!0}var Ro=jt(Jr);function Kr(e,t){return e.source===t.source&&e.flags===t.flags}function Zr(e,t,r,n){var o=e.size===t.size;if(!o)return!1;if(!e.size)return!0;var s={};return e.forEach(function(l,d){if(o){var c=!1,v=0;t.forEach(function(m,h){!c&&!s[v]&&(c=r(l,m,d,h,e,t,n))&&(s[v]=!0),v++}),o=c}}),o}var Do=jt(Zr),Qr=Object.freeze({areArraysEqual:Ur,areDatesEqual:Gr,areMapsEqual:Vr,areObjectsEqual:Jr,areRegExpsEqual:Kr,areSetsEqual:Zr,createIsNestedEqual:Hr}),en=Object.freeze({areArraysEqual:Co,areDatesEqual:Gr,areMapsEqual:Eo,areObjectsEqual:Ro,areRegExpsEqual:Kr,areSetsEqual:Do,createIsNestedEqual:Hr}),_o=Mt(Qr);function qe(e,t){return _o(e,t,void 0)}Mt(Yr(Qr,{createIsNestedEqual:function(){return Tt}})),Mt(en),Mt(Yr(en,{createIsNestedEqual:function(){return Tt}}));function jo(e={}){const{measureBeforeMount:t=!1,initialWidth:r=1280}=e,[n,o]=E.useState(r),[s,l]=E.useState(!t),d=E.useRef(null),c=E.useRef(null),v=E.useCallback(()=>{const m=d.current;if(m){const h=m.offsetWidth;o(h),s||l(!0)}},[s]);return E.useEffect(()=>{const m=d.current;if(m)return v(),typeof ResizeObserver<"u"&&(c.current=new ResizeObserver(h=>{const C=h[0];if(C){const P=C.contentRect.width;o(P)}}),c.current.observe(m)),()=>{c.current&&(c.current.disconnect(),c.current=null)}},[v]),{width:n,mounted:s,containerRef:d,measureWidth:v}}var pt={exports:{}},sr={},zt={exports:{}},kt={exports:{}},ee={};var tn;function To(){if(tn)return ee;tn=1;var e=typeof Symbol=="function"&&Symbol.for,t=e?Symbol.for("react.element"):60103,r=e?Symbol.for("react.portal"):60106,n=e?Symbol.for("react.fragment"):60107,o=e?Symbol.for("react.strict_mode"):60108,s=e?Symbol.for("react.profiler"):60114,l=e?Symbol.for("react.provider"):60109,d=e?Symbol.for("react.context"):60110,c=e?Symbol.for("react.async_mode"):60111,v=e?Symbol.for("react.concurrent_mode"):60111,m=e?Symbol.for("react.forward_ref"):60112,h=e?Symbol.for("react.suspense"):60113,C=e?Symbol.for("react.suspense_list"):60120,P=e?Symbol.for("react.memo"):60115,D=e?Symbol.for("react.lazy"):60116,y=e?Symbol.for("react.block"):60121,a=e?Symbol.for("react.fundamental"):60117,i=e?Symbol.for("react.responder"):60118,g=e?Symbol.for("react.scope"):60119;function b(u){if(typeof u=="object"&&u!==null){var w=u.$$typeof;switch(w){case t:switch(u=u.type,u){case c:case v:case n:case s:case o:case h:return u;default:switch(u=u&&u.$$typeof,u){case d:case m:case D:case P:case l:return u;default:return w}}case r:return w}}}function S(u){return b(u)===v}return ee.AsyncMode=c,ee.ConcurrentMode=v,ee.ContextConsumer=d,ee.ContextProvider=l,ee.Element=t,ee.ForwardRef=m,ee.Fragment=n,ee.Lazy=D,ee.Memo=P,ee.Portal=r,ee.Profiler=s,ee.StrictMode=o,ee.Suspense=h,ee.isAsyncMode=function(u){return S(u)||b(u)===c},ee.isConcurrentMode=S,ee.isContextConsumer=function(u){return b(u)===d},ee.isContextProvider=function(u){return b(u)===l},ee.isElement=function(u){return typeof u=="object"&&u!==null&&u.$$typeof===t},ee.isForwardRef=function(u){return b(u)===m},ee.isFragment=function(u){return b(u)===n},ee.isLazy=function(u){return b(u)===D},ee.isMemo=function(u){return b(u)===P},ee.isPortal=function(u){return b(u)===r},ee.isProfiler=function(u){return b(u)===s},ee.isStrictMode=function(u){return b(u)===o},ee.isSuspense=function(u){return b(u)===h},ee.isValidElementType=function(u){return typeof u=="string"||typeof u=="function"||u===n||u===v||u===s||u===o||u===h||u===C||typeof u=="object"&&u!==null&&(u.$$typeof===D||u.$$typeof===P||u.$$typeof===l||u.$$typeof===d||u.$$typeof===m||u.$$typeof===a||u.$$typeof===i||u.$$typeof===g||u.$$typeof===y)},ee.typeOf=b,ee}var te={};var rn;function Mo(){return rn||(rn=1,process.env.NODE_ENV!=="production"&&(function(){var e=typeof Symbol=="function"&&Symbol.for,t=e?Symbol.for("react.element"):60103,r=e?Symbol.for("react.portal"):60106,n=e?Symbol.for("react.fragment"):60107,o=e?Symbol.for("react.strict_mode"):60108,s=e?Symbol.for("react.profiler"):60114,l=e?Symbol.for("react.provider"):60109,d=e?Symbol.for("react.context"):60110,c=e?Symbol.for("react.async_mode"):60111,v=e?Symbol.for("react.concurrent_mode"):60111,m=e?Symbol.for("react.forward_ref"):60112,h=e?Symbol.for("react.suspense"):60113,C=e?Symbol.for("react.suspense_list"):60120,P=e?Symbol.for("react.memo"):60115,D=e?Symbol.for("react.lazy"):60116,y=e?Symbol.for("react.block"):60121,a=e?Symbol.for("react.fundamental"):60117,i=e?Symbol.for("react.responder"):60118,g=e?Symbol.for("react.scope"):60119;function b(_){return typeof _=="string"||typeof _=="function"||_===n||_===v||_===s||_===o||_===h||_===C||typeof _=="object"&&_!==null&&(_.$$typeof===D||_.$$typeof===P||_.$$typeof===l||_.$$typeof===d||_.$$typeof===m||_.$$typeof===a||_.$$typeof===i||_.$$typeof===g||_.$$typeof===y)}function S(_){if(typeof _=="object"&&_!==null){var ae=_.$$typeof;switch(ae){case t:var je=_.type;switch(je){case c:case v:case n:case s:case o:case h:return je;default:var De=je&&je.$$typeof;switch(De){case d:case m:case D:case P:case l:return De;default:return ae}}case r:return ae}}}var u=c,w=v,p=d,x=l,R=t,H=m,q=n,J=D,A=P,Y=r,Z=s,U=o,K=h,le=!1;function me(_){return le||(le=!0,console.warn("The ReactIs.isAsyncMode() alias has been deprecated, and will be removed in React 17+. Update your code to use ReactIs.isConcurrentMode() instead. It has the exact same API.")),O(_)||S(_)===c}function O(_){return S(_)===v}function f(_){return S(_)===d}function j(_){return S(_)===l}function k(_){return typeof _=="object"&&_!==null&&_.$$typeof===t}function z(_){return S(_)===m}function X(_){return S(_)===n}function I(_){return S(_)===D}function M(_){return S(_)===P}function W(_){return S(_)===r}function N(_){return S(_)===s}function $(_){return S(_)===o}function F(_){return S(_)===h}te.AsyncMode=u,te.ConcurrentMode=w,te.ContextConsumer=p,te.ContextProvider=x,te.Element=R,te.ForwardRef=H,te.Fragment=q,te.Lazy=J,te.Memo=A,te.Portal=Y,te.Profiler=Z,te.StrictMode=U,te.Suspense=K,te.isAsyncMode=me,te.isConcurrentMode=O,te.isContextConsumer=f,te.isContextProvider=j,te.isElement=k,te.isForwardRef=z,te.isFragment=X,te.isLazy=I,te.isMemo=M,te.isPortal=W,te.isProfiler=N,te.isStrictMode=$,te.isSuspense=F,te.isValidElementType=b,te.typeOf=S})()),te}var nn;function on(){return nn||(nn=1,process.env.NODE_ENV==="production"?kt.exports=To():kt.exports=Mo()),kt.exports}var ir,an;function zo(){if(an)return ir;an=1;var e=Object.getOwnPropertySymbols,t=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;function n(s){if(s==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(s)}function o(){try{if(!Object.assign)return!1;var s=new String("abc");if(s[5]="de",Object.getOwnPropertyNames(s)[0]==="5")return!1;for(var l={},d=0;d<10;d++)l["_"+String.fromCharCode(d)]=d;var c=Object.getOwnPropertyNames(l).map(function(m){return l[m]});if(c.join("")!=="0123456789")return!1;var v={};return"abcdefghijklmnopqrst".split("").forEach(function(m){v[m]=m}),Object.keys(Object.assign({},v)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}return ir=o()?Object.assign:function(s,l){for(var d,c=n(s),v,m=1;m<arguments.length;m++){d=Object(arguments[m]);for(var h in d)t.call(d,h)&&(c[h]=d[h]);if(e){v=e(d);for(var C=0;C<v.length;C++)r.call(d,v[C])&&(c[v[C]]=d[v[C]])}}return c},ir}var lr,sn;function ur(){if(sn)return lr;sn=1;var e="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";return lr=e,lr}var cr,ln;function un(){return ln||(ln=1,cr=Function.call.bind(Object.prototype.hasOwnProperty)),cr}var fr,cn;function ko(){if(cn)return fr;cn=1;var e=function(){};if(process.env.NODE_ENV!=="production"){var t=ur(),r={},n=un();e=function(s){var l="Warning: "+s;typeof console<"u"&&console.error(l);try{throw new Error(l)}catch{}}}function o(s,l,d,c,v){if(process.env.NODE_ENV!=="production"){for(var m in s)if(n(s,m)){var h;try{if(typeof s[m]!="function"){var C=Error((c||"React class")+": "+d+" type `"+m+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof s[m]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw C.name="Invariant Violation",C}h=s[m](l,m,c,d,null,t)}catch(D){h=D}if(h&&!(h instanceof Error)&&e((c||"React class")+": type specification of "+d+" `"+m+"` is invalid; the type checker function must return `null` or an `Error` but returned a "+typeof h+". You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument)."),h instanceof Error&&!(h.message in r)){r[h.message]=!0;var P=v?v():"";e("Failed "+d+" type: "+h.message+(P??""))}}}}return o.resetWarningCache=function(){process.env.NODE_ENV!=="production"&&(r={})},fr=o,fr}var dr,fn;function No(){if(fn)return dr;fn=1;var e=on(),t=zo(),r=ur(),n=un(),o=ko(),s=function(){};process.env.NODE_ENV!=="production"&&(s=function(d){var c="Warning: "+d;typeof console<"u"&&console.error(c);try{throw new Error(c)}catch{}});function l(){return null}return dr=function(d,c){var v=typeof Symbol=="function"&&Symbol.iterator,m="@@iterator";function h(O){var f=O&&(v&&O[v]||O[m]);if(typeof f=="function")return f}var C="<<anonymous>>",P={array:i("array"),bigint:i("bigint"),bool:i("boolean"),func:i("function"),number:i("number"),object:i("object"),string:i("string"),symbol:i("symbol"),any:g(),arrayOf:b,element:S(),elementType:u(),instanceOf:w,node:H(),objectOf:x,oneOf:p,oneOfType:R,shape:J,exact:A};function D(O,f){return O===f?O!==0||1/O===1/f:O!==O&&f!==f}function y(O,f){this.message=O,this.data=f&&typeof f=="object"?f:{},this.stack=""}y.prototype=Error.prototype;function a(O){if(process.env.NODE_ENV!=="production")var f={},j=0;function k(X,I,M,W,N,$,F){if(W=W||C,$=$||M,F!==r){if(c){var _=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types");throw _.name="Invariant Violation",_}else if(process.env.NODE_ENV!=="production"&&typeof console<"u"){var ae=W+":"+M;!f[ae]&&j<3&&(s("You are manually calling a React.PropTypes validation function for the `"+$+"` prop on `"+W+"`. This is deprecated and will throw in the standalone `prop-types` package. You may be seeing this warning due to a third-party PropTypes library. See https://fb.me/react-warning-dont-call-proptypes for details."),f[ae]=!0,j++)}}return I[M]==null?X?I[M]===null?new y("The "+N+" `"+$+"` is marked as required "+("in `"+W+"`, but its value is `null`.")):new y("The "+N+" `"+$+"` is marked as required in "+("`"+W+"`, but its value is `undefined`.")):null:O(I,M,W,N,$)}var z=k.bind(null,!1);return z.isRequired=k.bind(null,!0),z}function i(O){function f(j,k,z,X,I,M){var W=j[k],N=U(W);if(N!==O){var $=K(W);return new y("Invalid "+X+" `"+I+"` of type "+("`"+$+"` supplied to `"+z+"`, expected ")+("`"+O+"`."),{expectedType:O})}return null}return a(f)}function g(){return a(l)}function b(O){function f(j,k,z,X,I){if(typeof O!="function")return new y("Property `"+I+"` of component `"+z+"` has invalid PropType notation inside arrayOf.");var M=j[k];if(!Array.isArray(M)){var W=U(M);return new y("Invalid "+X+" `"+I+"` of type "+("`"+W+"` supplied to `"+z+"`, expected an array."))}for(var N=0;N<M.length;N++){var $=O(M,N,z,X,I+"["+N+"]",r);if($ instanceof Error)return $}return null}return a(f)}function S(){function O(f,j,k,z,X){var I=f[j];if(!d(I)){var M=U(I);return new y("Invalid "+z+" `"+X+"` of type "+("`"+M+"` supplied to `"+k+"`, expected a single ReactElement."))}return null}return a(O)}function u(){function O(f,j,k,z,X){var I=f[j];if(!e.isValidElementType(I)){var M=U(I);return new y("Invalid "+z+" `"+X+"` of type "+("`"+M+"` supplied to `"+k+"`, expected a single ReactElement type."))}return null}return a(O)}function w(O){function f(j,k,z,X,I){if(!(j[k]instanceof O)){var M=O.name||C,W=me(j[k]);return new y("Invalid "+X+" `"+I+"` of type "+("`"+W+"` supplied to `"+z+"`, expected ")+("instance of `"+M+"`."))}return null}return a(f)}function p(O){if(!Array.isArray(O))return process.env.NODE_ENV!=="production"&&(arguments.length>1?s("Invalid arguments supplied to oneOf, expected an array, got "+arguments.length+" arguments. A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z])."):s("Invalid argument supplied to oneOf, expected an array.")),l;function f(j,k,z,X,I){for(var M=j[k],W=0;W<O.length;W++)if(D(M,O[W]))return null;var N=JSON.stringify(O,function(F,_){var ae=K(_);return ae==="symbol"?String(_):_});return new y("Invalid "+X+" `"+I+"` of value `"+String(M)+"` "+("supplied to `"+z+"`, expected one of "+N+"."))}return a(f)}function x(O){function f(j,k,z,X,I){if(typeof O!="function")return new y("Property `"+I+"` of component `"+z+"` has invalid PropType notation inside objectOf.");var M=j[k],W=U(M);if(W!=="object")return new y("Invalid "+X+" `"+I+"` of type "+("`"+W+"` supplied to `"+z+"`, expected an object."));for(var N in M)if(n(M,N)){var $=O(M,N,z,X,I+"."+N,r);if($ instanceof Error)return $}return null}return a(f)}function R(O){if(!Array.isArray(O))return process.env.NODE_ENV!=="production"&&s("Invalid argument supplied to oneOfType, expected an instance of array."),l;for(var f=0;f<O.length;f++){var j=O[f];if(typeof j!="function")return s("Invalid argument supplied to oneOfType. Expected an array of check functions, but received "+le(j)+" at index "+f+"."),l}function k(z,X,I,M,W){for(var N=[],$=0;$<O.length;$++){var F=O[$],_=F(z,X,I,M,W,r);if(_==null)return null;_.data&&n(_.data,"expectedType")&&N.push(_.data.expectedType)}var ae=N.length>0?", expected one of type ["+N.join(", ")+"]":"";return new y("Invalid "+M+" `"+W+"` supplied to "+("`"+I+"`"+ae+"."))}return a(k)}function H(){function O(f,j,k,z,X){return Y(f[j])?null:new y("Invalid "+z+" `"+X+"` supplied to "+("`"+k+"`, expected a ReactNode."))}return a(O)}function q(O,f,j,k,z){return new y((O||"React class")+": "+f+" type `"+j+"."+k+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+z+"`.")}function J(O){function f(j,k,z,X,I){var M=j[k],W=U(M);if(W!=="object")return new y("Invalid "+X+" `"+I+"` of type `"+W+"` "+("supplied to `"+z+"`, expected `object`."));for(var N in O){var $=O[N];if(typeof $!="function")return q(z,X,I,N,K($));var F=$(M,N,z,X,I+"."+N,r);if(F)return F}return null}return a(f)}function A(O){function f(j,k,z,X,I){var M=j[k],W=U(M);if(W!=="object")return new y("Invalid "+X+" `"+I+"` of type `"+W+"` "+("supplied to `"+z+"`, expected `object`."));var N=t({},j[k],O);for(var $ in N){var F=O[$];if(n(O,$)&&typeof F!="function")return q(z,X,I,$,K(F));if(!F)return new y("Invalid "+X+" `"+I+"` key `"+$+"` supplied to `"+z+"`.\nBad object: "+JSON.stringify(j[k],null," ")+`
7
- Valid keys: `+JSON.stringify(Object.keys(O),null," "));var _=F(M,$,z,X,I+"."+$,r);if(_)return _}return null}return a(f)}function Y(O){switch(typeof O){case"number":case"string":case"undefined":return!0;case"boolean":return!O;case"object":if(Array.isArray(O))return O.every(Y);if(O===null||d(O))return!0;var f=h(O);if(f){var j=f.call(O),k;if(f!==O.entries){for(;!(k=j.next()).done;)if(!Y(k.value))return!1}else for(;!(k=j.next()).done;){var z=k.value;if(z&&!Y(z[1]))return!1}}else return!1;return!0;default:return!1}}function Z(O,f){return O==="symbol"?!0:f?f["@@toStringTag"]==="Symbol"||typeof Symbol=="function"&&f instanceof Symbol:!1}function U(O){var f=typeof O;return Array.isArray(O)?"array":O instanceof RegExp?"object":Z(f,O)?"symbol":f}function K(O){if(typeof O>"u"||O===null)return""+O;var f=U(O);if(f==="object"){if(O instanceof Date)return"date";if(O instanceof RegExp)return"regexp"}return f}function le(O){var f=K(O);switch(f){case"array":case"object":return"an "+f;case"boolean":case"date":case"regexp":return"a "+f;default:return f}}function me(O){return!O.constructor||!O.constructor.name?C:O.constructor.name}return P.checkPropTypes=o,P.resetWarningCache=o.resetWarningCache,P.PropTypes=P,P},dr}var pr,dn;function Ao(){if(dn)return pr;dn=1;var e=ur();function t(){}function r(){}return r.resetWarningCache=t,pr=function(){function n(l,d,c,v,m,h){if(h!==e){var C=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw C.name="Invariant Violation",C}}n.isRequired=n;function o(){return n}var s={array:n,bigint:n,bool:n,func:n,number:n,object:n,string:n,symbol:n,any:n,arrayOf:o,element:n,elementType:n,instanceOf:o,node:n,objectOf:o,oneOf:o,oneOfType:o,shape:o,exact:o,checkPropTypes:r,resetWarningCache:t};return s.PropTypes=s,s},pr}var pn;function Nt(){if(pn)return zt.exports;if(pn=1,process.env.NODE_ENV!=="production"){var e=on(),t=!0;zt.exports=No()(e.isElement,t)}else zt.exports=Ao()();return zt.exports}var ge={},Fe={},hn;function At(){if(hn)return Fe;hn=1,Object.defineProperty(Fe,"__esModule",{value:!0}),Fe.dontSetMe=o,Fe.findInArray=e,Fe.int=n,Fe.isFunction=t,Fe.isNum=r;function e(s,l){for(let d=0,c=s.length;d<c;d++)if(l.apply(l,[s[d],d,s]))return s[d]}function t(s){return typeof s=="function"||Object.prototype.toString.call(s)==="[object Function]"}function r(s){return typeof s=="number"&&!isNaN(s)}function n(s){return parseInt(s,10)}function o(s,l,d){if(s[l])return new Error(`Invalid prop ${l} passed to ${d} - do not set this, set it on the child.`)}return Fe}var Xe={},gn;function Io(){if(gn)return Xe;gn=1,Object.defineProperty(Xe,"__esModule",{value:!0}),Xe.browserPrefixToKey=r,Xe.browserPrefixToStyle=n,Xe.default=void 0,Xe.getPrefix=t;const e=["Moz","Webkit","O","ms"];function t(){let s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"transform";if(typeof window>"u")return"";const l=window.document?.documentElement?.style;if(!l||s in l)return"";for(let d=0;d<e.length;d++)if(r(s,e[d])in l)return e[d];return""}function r(s,l){return l?`${l}${o(s)}`:s}function n(s,l){return l?`-${l.toLowerCase()}-${s}`:s}function o(s){let l="",d=!0;for(let c=0;c<s.length;c++)d?(l+=s[c].toUpperCase(),d=!1):s[c]==="-"?d=!0:l+=s[c];return l}return Xe.default=t(),Xe}var mn;function hr(){if(mn)return ge;mn=1,Object.defineProperty(ge,"__esModule",{value:!0}),ge.addClassName=u,ge.addEvent=l,ge.addUserSelectStyles=g,ge.createCSSTransform=P,ge.createSVGTransform=D,ge.getTouch=a,ge.getTouchIdentifier=i,ge.getTranslation=y,ge.innerHeight=m,ge.innerWidth=h,ge.matchesSelector=o,ge.matchesSelectorAndParentsTo=s,ge.offsetXYFromParent=C,ge.outerHeight=c,ge.outerWidth=v,ge.removeClassName=w,ge.removeEvent=d,ge.scheduleRemoveUserSelectStyles=b;var e=At(),t=r(Io());function r(p,x){if(typeof WeakMap=="function")var R=new WeakMap,H=new WeakMap;return(r=function(q,J){if(!J&&q&&q.__esModule)return q;var A,Y,Z={__proto__:null,default:q};if(q===null||typeof q!="object"&&typeof q!="function")return Z;if(A=J?H:R){if(A.has(q))return A.get(q);A.set(q,Z)}for(const U in q)U!=="default"&&{}.hasOwnProperty.call(q,U)&&((Y=(A=Object.defineProperty)&&Object.getOwnPropertyDescriptor(q,U))&&(Y.get||Y.set)?A(Z,U,Y):Z[U]=q[U]);return Z})(p,x)}let n="";function o(p,x){return n||(n=(0,e.findInArray)(["matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector"],function(R){return(0,e.isFunction)(p[R])})),(0,e.isFunction)(p[n])?p[n](x):!1}function s(p,x,R){let H=p;do{if(o(H,x))return!0;if(H===R)return!1;H=H.parentNode}while(H);return!1}function l(p,x,R,H){if(!p)return;const q={capture:!0,...H};p.addEventListener?p.addEventListener(x,R,q):p.attachEvent?p.attachEvent("on"+x,R):p["on"+x]=R}function d(p,x,R,H){if(!p)return;const q={capture:!0,...H};p.removeEventListener?p.removeEventListener(x,R,q):p.detachEvent?p.detachEvent("on"+x,R):p["on"+x]=null}function c(p){let x=p.clientHeight;const R=p.ownerDocument.defaultView.getComputedStyle(p);return x+=(0,e.int)(R.borderTopWidth),x+=(0,e.int)(R.borderBottomWidth),x}function v(p){let x=p.clientWidth;const R=p.ownerDocument.defaultView.getComputedStyle(p);return x+=(0,e.int)(R.borderLeftWidth),x+=(0,e.int)(R.borderRightWidth),x}function m(p){let x=p.clientHeight;const R=p.ownerDocument.defaultView.getComputedStyle(p);return x-=(0,e.int)(R.paddingTop),x-=(0,e.int)(R.paddingBottom),x}function h(p){let x=p.clientWidth;const R=p.ownerDocument.defaultView.getComputedStyle(p);return x-=(0,e.int)(R.paddingLeft),x-=(0,e.int)(R.paddingRight),x}function C(p,x,R){const q=x===x.ownerDocument.body?{left:0,top:0}:x.getBoundingClientRect(),J=(p.clientX+x.scrollLeft-q.left)/R,A=(p.clientY+x.scrollTop-q.top)/R;return{x:J,y:A}}function P(p,x){const R=y(p,x,"px");return{[(0,t.browserPrefixToKey)("transform",t.default)]:R}}function D(p,x){return y(p,x,"")}function y(p,x,R){let{x:H,y:q}=p,J=`translate(${H}${R},${q}${R})`;if(x){const A=`${typeof x.x=="string"?x.x:x.x+R}`,Y=`${typeof x.y=="string"?x.y:x.y+R}`;J=`translate(${A}, ${Y})`+J}return J}function a(p,x){return p.targetTouches&&(0,e.findInArray)(p.targetTouches,R=>x===R.identifier)||p.changedTouches&&(0,e.findInArray)(p.changedTouches,R=>x===R.identifier)}function i(p){if(p.targetTouches&&p.targetTouches[0])return p.targetTouches[0].identifier;if(p.changedTouches&&p.changedTouches[0])return p.changedTouches[0].identifier}function g(p){if(!p)return;let x=p.getElementById("react-draggable-style-el");x||(x=p.createElement("style"),x.type="text/css",x.id="react-draggable-style-el",x.innerHTML=`.react-draggable-transparent-selection *::-moz-selection {all: inherit;}
8
- `,x.innerHTML+=`.react-draggable-transparent-selection *::selection {all: inherit;}
9
- `,p.getElementsByTagName("head")[0].appendChild(x)),p.body&&u(p.body,"react-draggable-transparent-selection")}function b(p){window.requestAnimationFrame?window.requestAnimationFrame(()=>{S(p)}):S(p)}function S(p){if(p)try{if(p.body&&w(p.body,"react-draggable-transparent-selection"),p.selection)p.selection.empty();else{const x=(p.defaultView||window).getSelection();x&&x.type!=="Caret"&&x.removeAllRanges()}}catch{}}function u(p,x){p.classList?p.classList.add(x):p.className.match(new RegExp(`(?:^|\\s)${x}(?!\\S)`))||(p.className+=` ${x}`)}function w(p,x){p.classList?p.classList.remove(x):p.className=p.className.replace(new RegExp(`(?:^|\\s)${x}(?!\\S)`,"g"),"")}return ge}var Ie={},yn;function vn(){if(yn)return Ie;yn=1,Object.defineProperty(Ie,"__esModule",{value:!0}),Ie.canDragX=o,Ie.canDragY=s,Ie.createCoreData=d,Ie.createDraggableData=c,Ie.getBoundPosition=r,Ie.getControlPosition=l,Ie.snapToGrid=n;var e=At(),t=hr();function r(h,C,P){if(!h.props.bounds)return[C,P];let{bounds:D}=h.props;D=typeof D=="string"?D:v(D);const y=m(h);if(typeof D=="string"){const{ownerDocument:a}=y,i=a.defaultView;let g;if(D==="parent"?g=y.parentNode:g=y.getRootNode().querySelector(D),!(g instanceof i.HTMLElement))throw new Error('Bounds selector "'+D+'" could not find an element.');const b=g,S=i.getComputedStyle(y),u=i.getComputedStyle(b);D={left:-y.offsetLeft+(0,e.int)(u.paddingLeft)+(0,e.int)(S.marginLeft),top:-y.offsetTop+(0,e.int)(u.paddingTop)+(0,e.int)(S.marginTop),right:(0,t.innerWidth)(b)-(0,t.outerWidth)(y)-y.offsetLeft+(0,e.int)(u.paddingRight)-(0,e.int)(S.marginRight),bottom:(0,t.innerHeight)(b)-(0,t.outerHeight)(y)-y.offsetTop+(0,e.int)(u.paddingBottom)-(0,e.int)(S.marginBottom)}}return(0,e.isNum)(D.right)&&(C=Math.min(C,D.right)),(0,e.isNum)(D.bottom)&&(P=Math.min(P,D.bottom)),(0,e.isNum)(D.left)&&(C=Math.max(C,D.left)),(0,e.isNum)(D.top)&&(P=Math.max(P,D.top)),[C,P]}function n(h,C,P){const D=Math.round(C/h[0])*h[0],y=Math.round(P/h[1])*h[1];return[D,y]}function o(h){return h.props.axis==="both"||h.props.axis==="x"}function s(h){return h.props.axis==="both"||h.props.axis==="y"}function l(h,C,P){const D=typeof C=="number"?(0,t.getTouch)(h,C):null;if(typeof C=="number"&&!D)return null;const y=m(P),a=P.props.offsetParent||y.offsetParent||y.ownerDocument.body;return(0,t.offsetXYFromParent)(D||h,a,P.props.scale)}function d(h,C,P){const D=!(0,e.isNum)(h.lastX),y=m(h);return D?{node:y,deltaX:0,deltaY:0,lastX:C,lastY:P,x:C,y:P}:{node:y,deltaX:C-h.lastX,deltaY:P-h.lastY,lastX:h.lastX,lastY:h.lastY,x:C,y:P}}function c(h,C){const P=h.props.scale;return{node:C.node,x:h.state.x+C.deltaX/P,y:h.state.y+C.deltaY/P,deltaX:C.deltaX/P,deltaY:C.deltaY/P,lastX:h.state.x,lastY:h.state.y}}function v(h){return{left:h.left,top:h.top,right:h.right,bottom:h.bottom}}function m(h){const C=h.findDOMNode();if(!C)throw new Error("<DraggableCore>: Unmounted during event!");return C}return Ie}var ht={},It={},bn;function xn(){if(bn)return It;bn=1,Object.defineProperty(It,"__esModule",{value:!0}),It.default=e;function e(){}return It}var wn;function Lo(){if(wn)return ht;wn=1,Object.defineProperty(ht,"__esModule",{value:!0}),ht.default=void 0;var e=c(E),t=d(Nt()),r=d(Cr),n=hr(),o=vn(),s=At(),l=d(xn());function d(y){return y&&y.__esModule?y:{default:y}}function c(y,a){if(typeof WeakMap=="function")var i=new WeakMap,g=new WeakMap;return(c=function(b,S){if(!S&&b&&b.__esModule)return b;var u,w,p={__proto__:null,default:b};if(b===null||typeof b!="object"&&typeof b!="function")return p;if(u=S?g:i){if(u.has(b))return u.get(b);u.set(b,p)}for(const x in b)x!=="default"&&{}.hasOwnProperty.call(b,x)&&((w=(u=Object.defineProperty)&&Object.getOwnPropertyDescriptor(b,x))&&(w.get||w.set)?u(p,x,w):p[x]=b[x]);return p})(y,a)}function v(y,a,i){return(a=m(a))in y?Object.defineProperty(y,a,{value:i,enumerable:!0,configurable:!0,writable:!0}):y[a]=i,y}function m(y){var a=h(y,"string");return typeof a=="symbol"?a:a+""}function h(y,a){if(typeof y!="object"||!y)return y;var i=y[Symbol.toPrimitive];if(i!==void 0){var g=i.call(y,a);if(typeof g!="object")return g;throw new TypeError("@@toPrimitive must return a primitive value.")}return(a==="string"?String:Number)(y)}const C={touch:{start:"touchstart",move:"touchmove",stop:"touchend"},mouse:{start:"mousedown",move:"mousemove",stop:"mouseup"}};let P=C.mouse,D=class extends e.Component{constructor(){super(...arguments),v(this,"dragging",!1),v(this,"lastX",NaN),v(this,"lastY",NaN),v(this,"touchIdentifier",null),v(this,"mounted",!1),v(this,"handleDragStart",a=>{if(this.props.onMouseDown(a),!this.props.allowAnyClick&&typeof a.button=="number"&&a.button!==0)return!1;const i=this.findDOMNode();if(!i||!i.ownerDocument||!i.ownerDocument.body)throw new Error("<DraggableCore> not mounted on DragStart!");const{ownerDocument:g}=i;if(this.props.disabled||!(a.target instanceof g.defaultView.Node)||this.props.handle&&!(0,n.matchesSelectorAndParentsTo)(a.target,this.props.handle,i)||this.props.cancel&&(0,n.matchesSelectorAndParentsTo)(a.target,this.props.cancel,i))return;a.type==="touchstart"&&!this.props.allowMobileScroll&&a.preventDefault();const b=(0,n.getTouchIdentifier)(a);this.touchIdentifier=b;const S=(0,o.getControlPosition)(a,b,this);if(S==null)return;const{x:u,y:w}=S,p=(0,o.createCoreData)(this,u,w);(0,l.default)("DraggableCore: handleDragStart: %j",p),(0,l.default)("calling",this.props.onStart),!(this.props.onStart(a,p)===!1||this.mounted===!1)&&(this.props.enableUserSelectHack&&(0,n.addUserSelectStyles)(g),this.dragging=!0,this.lastX=u,this.lastY=w,(0,n.addEvent)(g,P.move,this.handleDrag),(0,n.addEvent)(g,P.stop,this.handleDragStop))}),v(this,"handleDrag",a=>{const i=(0,o.getControlPosition)(a,this.touchIdentifier,this);if(i==null)return;let{x:g,y:b}=i;if(Array.isArray(this.props.grid)){let w=g-this.lastX,p=b-this.lastY;if([w,p]=(0,o.snapToGrid)(this.props.grid,w,p),!w&&!p)return;g=this.lastX+w,b=this.lastY+p}const S=(0,o.createCoreData)(this,g,b);if((0,l.default)("DraggableCore: handleDrag: %j",S),this.props.onDrag(a,S)===!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=g,this.lastY=b}),v(this,"handleDragStop",a=>{if(!this.dragging)return;const i=(0,o.getControlPosition)(a,this.touchIdentifier,this);if(i==null)return;let{x:g,y:b}=i;if(Array.isArray(this.props.grid)){let p=g-this.lastX||0,x=b-this.lastY||0;[p,x]=(0,o.snapToGrid)(this.props.grid,p,x),g=this.lastX+p,b=this.lastY+x}const S=(0,o.createCoreData)(this,g,b);if(this.props.onStop(a,S)===!1||this.mounted===!1)return!1;const w=this.findDOMNode();w&&this.props.enableUserSelectHack&&(0,n.scheduleRemoveUserSelectStyles)(w.ownerDocument),(0,l.default)("DraggableCore: handleDragStop: %j",S),this.dragging=!1,this.lastX=NaN,this.lastY=NaN,w&&((0,l.default)("DraggableCore: Removing handlers"),(0,n.removeEvent)(w.ownerDocument,P.move,this.handleDrag),(0,n.removeEvent)(w.ownerDocument,P.stop,this.handleDragStop))}),v(this,"onMouseDown",a=>(P=C.mouse,this.handleDragStart(a))),v(this,"onMouseUp",a=>(P=C.mouse,this.handleDragStop(a))),v(this,"onTouchStart",a=>(P=C.touch,this.handleDragStart(a))),v(this,"onTouchEnd",a=>(P=C.touch,this.handleDragStop(a)))}componentDidMount(){this.mounted=!0;const a=this.findDOMNode();a&&(0,n.addEvent)(a,C.touch.start,this.onTouchStart,{passive:!1})}componentWillUnmount(){this.mounted=!1;const a=this.findDOMNode();if(a){const{ownerDocument:i}=a;(0,n.removeEvent)(i,C.mouse.move,this.handleDrag),(0,n.removeEvent)(i,C.touch.move,this.handleDrag),(0,n.removeEvent)(i,C.mouse.stop,this.handleDragStop),(0,n.removeEvent)(i,C.touch.stop,this.handleDragStop),(0,n.removeEvent)(a,C.touch.start,this.onTouchStart,{passive:!1}),this.props.enableUserSelectHack&&(0,n.scheduleRemoveUserSelectStyles)(i)}}findDOMNode(){return this.props?.nodeRef?this.props?.nodeRef?.current:r.default.findDOMNode(this)}render(){return e.cloneElement(e.Children.only(this.props.children),{onMouseDown:this.onMouseDown,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}};return ht.default=D,v(D,"displayName","DraggableCore"),v(D,"propTypes",{allowAnyClick:t.default.bool,allowMobileScroll:t.default.bool,children:t.default.node.isRequired,disabled:t.default.bool,enableUserSelectHack:t.default.bool,offsetParent:function(y,a){if(y[a]&&y[a].nodeType!==1)throw new Error("Draggable's offsetParent must be a DOM Node.")},grid:t.default.arrayOf(t.default.number),handle:t.default.string,cancel:t.default.string,nodeRef:t.default.object,onStart:t.default.func,onDrag:t.default.func,onStop:t.default.func,onMouseDown:t.default.func,scale:t.default.number,className:s.dontSetMe,style:s.dontSetMe,transform:s.dontSetMe}),v(D,"defaultProps",{allowAnyClick:!1,allowMobileScroll:!1,disabled:!1,enableUserSelectHack:!0,onStart:function(){},onDrag:function(){},onStop:function(){},onMouseDown:function(){},scale:1}),ht}var Sn;function Wo(){return Sn||(Sn=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 t=h(E),r=m(Nt()),n=m(Cr),o=Gt,s=hr(),l=vn(),d=At(),c=m(Lo()),v=m(xn());function m(i){return i&&i.__esModule?i:{default:i}}function h(i,g){if(typeof WeakMap=="function")var b=new WeakMap,S=new WeakMap;return(h=function(u,w){if(!w&&u&&u.__esModule)return u;var p,x,R={__proto__:null,default:u};if(u===null||typeof u!="object"&&typeof u!="function")return R;if(p=w?S:b){if(p.has(u))return p.get(u);p.set(u,R)}for(const H in u)H!=="default"&&{}.hasOwnProperty.call(u,H)&&((x=(p=Object.defineProperty)&&Object.getOwnPropertyDescriptor(u,H))&&(x.get||x.set)?p(R,H,x):R[H]=u[H]);return R})(i,g)}function C(){return C=Object.assign?Object.assign.bind():function(i){for(var g=1;g<arguments.length;g++){var b=arguments[g];for(var S in b)({}).hasOwnProperty.call(b,S)&&(i[S]=b[S])}return i},C.apply(null,arguments)}function P(i,g,b){return(g=D(g))in i?Object.defineProperty(i,g,{value:b,enumerable:!0,configurable:!0,writable:!0}):i[g]=b,i}function D(i){var g=y(i,"string");return typeof g=="symbol"?g:g+""}function y(i,g){if(typeof i!="object"||!i)return i;var b=i[Symbol.toPrimitive];if(b!==void 0){var S=b.call(i,g);if(typeof S!="object")return S;throw new TypeError("@@toPrimitive must return a primitive value.")}return(g==="string"?String:Number)(i)}class a extends t.Component{static getDerivedStateFromProps(g,b){let{position:S}=g,{prevPropsPosition:u}=b;return S&&(!u||S.x!==u.x||S.y!==u.y)?((0,v.default)("Draggable: getDerivedStateFromProps %j",{position:S,prevPropsPosition:u}),{x:S.x,y:S.y,prevPropsPosition:{...S}}):null}constructor(g){super(g),P(this,"onDragStart",(b,S)=>{if((0,v.default)("Draggable: onDragStart: %j",S),this.props.onStart(b,(0,l.createDraggableData)(this,S))===!1)return!1;this.setState({dragging:!0,dragged:!0})}),P(this,"onDrag",(b,S)=>{if(!this.state.dragging)return!1;(0,v.default)("Draggable: onDrag: %j",S);const u=(0,l.createDraggableData)(this,S),w={x:u.x,y:u.y,slackX:0,slackY:0};if(this.props.bounds){const{x,y:R}=w;w.x+=this.state.slackX,w.y+=this.state.slackY;const[H,q]=(0,l.getBoundPosition)(this,w.x,w.y);w.x=H,w.y=q,w.slackX=this.state.slackX+(x-w.x),w.slackY=this.state.slackY+(R-w.y),u.x=w.x,u.y=w.y,u.deltaX=w.x-this.state.x,u.deltaY=w.y-this.state.y}if(this.props.onDrag(b,u)===!1)return!1;this.setState(w)}),P(this,"onDragStop",(b,S)=>{if(!this.state.dragging||this.props.onStop(b,(0,l.createDraggableData)(this,S))===!1)return!1;(0,v.default)("Draggable: onDragStop: %j",S);const w={dragging:!1,slackX:0,slackY:0};if(!!this.props.position){const{x,y:R}=this.props.position;w.x=x,w.y=R}this.setState(w)}),this.state={dragging:!1,dragged:!1,x:g.position?g.position.x:g.defaultPosition.x,y:g.position?g.position.y:g.defaultPosition.y,prevPropsPosition:{...g.position},slackX:0,slackY:0,isElementSVG:!1},g.position&&!(g.onDrag||g.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??n.default.findDOMNode(this)}render(){const{axis:g,bounds:b,children:S,defaultPosition:u,defaultClassName:w,defaultClassNameDragging:p,defaultClassNameDragged:x,position:R,positionOffset:H,scale:q,...J}=this.props;let A={},Y=null;const U=!!!R||this.state.dragging,K=R||u,le={x:(0,l.canDragX)(this)&&U?this.state.x:K.x,y:(0,l.canDragY)(this)&&U?this.state.y:K.y};this.state.isElementSVG?Y=(0,s.createSVGTransform)(le,H):A=(0,s.createCSSTransform)(le,H);const me=(0,o.clsx)(S.props.className||"",w,{[p]:this.state.dragging,[x]:this.state.dragged});return t.createElement(c.default,C({},J,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),t.cloneElement(t.Children.only(S),{className:me,style:{...S.props.style,...A},transform:Y}))}}e.default=a,P(a,"displayName","Draggable"),P(a,"propTypes",{...c.default.propTypes,axis:r.default.oneOf(["both","x","y","none"]),bounds:r.default.oneOfType([r.default.shape({left:r.default.number,right:r.default.number,top:r.default.number,bottom:r.default.number}),r.default.string,r.default.oneOf([!1])]),defaultClassName:r.default.string,defaultClassNameDragging:r.default.string,defaultClassNameDragged:r.default.string,defaultPosition:r.default.shape({x:r.default.number,y:r.default.number}),positionOffset:r.default.shape({x:r.default.oneOfType([r.default.number,r.default.string]),y:r.default.oneOfType([r.default.number,r.default.string])}),position:r.default.shape({x:r.default.number,y:r.default.number}),className:d.dontSetMe,style:d.dontSetMe,transform:d.dontSetMe}),P(a,"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})})(sr)),sr}var Cn;function gr(){if(Cn)return pt.exports;Cn=1;const{default:e,DraggableCore:t}=Wo();return pt.exports=e,pt.exports.default=e,pt.exports.DraggableCore=t,pt.exports}var qo=gr(),gt={exports:{}},mt={},Lt={},En;function $o(){if(En)return Lt;En=1,Lt.__esModule=!0,Lt.cloneElement=d;var e=t(E);function t(c){return c&&c.__esModule?c:{default:c}}function r(c,v){var m=Object.keys(c);if(Object.getOwnPropertySymbols){var h=Object.getOwnPropertySymbols(c);v&&(h=h.filter(function(C){return Object.getOwnPropertyDescriptor(c,C).enumerable})),m.push.apply(m,h)}return m}function n(c){for(var v=1;v<arguments.length;v++){var m=arguments[v]!=null?arguments[v]:{};v%2?r(Object(m),!0).forEach(function(h){o(c,h,m[h])}):Object.getOwnPropertyDescriptors?Object.defineProperties(c,Object.getOwnPropertyDescriptors(m)):r(Object(m)).forEach(function(h){Object.defineProperty(c,h,Object.getOwnPropertyDescriptor(m,h))})}return c}function o(c,v,m){return(v=s(v))in c?Object.defineProperty(c,v,{value:m,enumerable:!0,configurable:!0,writable:!0}):c[v]=m,c}function s(c){var v=l(c,"string");return typeof v=="symbol"?v:v+""}function l(c,v){if(typeof c!="object"||!c)return c;var m=c[Symbol.toPrimitive];if(m!==void 0){var h=m.call(c,v);if(typeof h!="object")return h;throw new TypeError("@@toPrimitive must return a primitive value.")}return(v==="string"?String:Number)(c)}function d(c,v){return v.style&&c.props.style&&(v.style=n(n({},c.props.style),v.style)),v.className&&c.props.className&&(v.className=`${c.props.className} ${v.className}`),e.default.cloneElement(c,v)}return Lt}var yt={},Pn;function On(){if(Pn)return yt;Pn=1,yt.__esModule=!0,yt.resizableProps=void 0;var e=t(Nt());gr();function t(r){return r&&r.__esModule?r:{default:r}}return yt.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 r=arguments.length,n=new Array(r),o=0;o<r;o++)n[o]=arguments[o];const[s]=n;return s.axis==="both"||s.axis==="y"?e.default.number.isRequired(...n):e.default.number(...n)},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 r=arguments.length,n=new Array(r),o=0;o<r;o++)n[o]=arguments[o];const[s]=n;return s.axis==="both"||s.axis==="x"?e.default.number.isRequired(...n):e.default.number(...n)}},yt}var Rn;function Dn(){if(Rn)return mt;Rn=1,mt.__esModule=!0,mt.default=void 0;var e=s(E),t=gr(),r=$o(),n=On();const o=["children","className","draggableOpts","width","height","handle","handleSize","lockAspectRatio","axis","minConstraints","maxConstraints","onResize","onResizeStop","onResizeStart","resizeHandles","transformScale"];function s(y,a){if(typeof WeakMap=="function")var i=new WeakMap,g=new WeakMap;return(s=function(b,S){if(!S&&b&&b.__esModule)return b;var u,w,p={__proto__:null,default:b};if(b===null||typeof b!="object"&&typeof b!="function")return p;if(u=S?g:i){if(u.has(b))return u.get(b);u.set(b,p)}for(const x in b)x!=="default"&&{}.hasOwnProperty.call(b,x)&&((w=(u=Object.defineProperty)&&Object.getOwnPropertyDescriptor(b,x))&&(w.get||w.set)?u(p,x,w):p[x]=b[x]);return p})(y,a)}function l(){return l=Object.assign?Object.assign.bind():function(y){for(var a=1;a<arguments.length;a++){var i=arguments[a];for(var g in i)({}).hasOwnProperty.call(i,g)&&(y[g]=i[g])}return y},l.apply(null,arguments)}function d(y,a){if(y==null)return{};var i,g,b=c(y,a);if(Object.getOwnPropertySymbols){var S=Object.getOwnPropertySymbols(y);for(g=0;g<S.length;g++)i=S[g],a.indexOf(i)===-1&&{}.propertyIsEnumerable.call(y,i)&&(b[i]=y[i])}return b}function c(y,a){if(y==null)return{};var i={};for(var g in y)if({}.hasOwnProperty.call(y,g)){if(a.indexOf(g)!==-1)continue;i[g]=y[g]}return i}function v(y,a){var i=Object.keys(y);if(Object.getOwnPropertySymbols){var g=Object.getOwnPropertySymbols(y);a&&(g=g.filter(function(b){return Object.getOwnPropertyDescriptor(y,b).enumerable})),i.push.apply(i,g)}return i}function m(y){for(var a=1;a<arguments.length;a++){var i=arguments[a]!=null?arguments[a]:{};a%2?v(Object(i),!0).forEach(function(g){h(y,g,i[g])}):Object.getOwnPropertyDescriptors?Object.defineProperties(y,Object.getOwnPropertyDescriptors(i)):v(Object(i)).forEach(function(g){Object.defineProperty(y,g,Object.getOwnPropertyDescriptor(i,g))})}return y}function h(y,a,i){return(a=C(a))in y?Object.defineProperty(y,a,{value:i,enumerable:!0,configurable:!0,writable:!0}):y[a]=i,y}function C(y){var a=P(y,"string");return typeof a=="symbol"?a:a+""}function P(y,a){if(typeof y!="object"||!y)return y;var i=y[Symbol.toPrimitive];if(i!==void 0){var g=i.call(y,a);if(typeof g!="object")return g;throw new TypeError("@@toPrimitive must return a primitive value.")}return(a==="string"?String:Number)(y)}let D=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(a,i){const{minConstraints:g,maxConstraints:b,lockAspectRatio:S}=this.props;if(!g&&!b&&!S)return[a,i];if(S){const R=this.props.width/this.props.height,H=a-this.props.width,q=i-this.props.height;Math.abs(H)>Math.abs(q*R)?i=a/R:a=i*R}const[u,w]=[a,i];let[p,x]=this.slack||[0,0];return a+=p,i+=x,g&&(a=Math.max(g[0],a),i=Math.max(g[1],i)),b&&(a=Math.min(b[0],a),i=Math.min(b[1],i)),this.slack=[p+(u-a),x+(w-i)],[a,i]}resizeHandler(a,i){return(g,b)=>{let{node:S,deltaX:u,deltaY:w}=b;a==="onResizeStart"&&this.resetData();const p=(this.props.axis==="both"||this.props.axis==="x")&&i!=="n"&&i!=="s",x=(this.props.axis==="both"||this.props.axis==="y")&&i!=="e"&&i!=="w";if(!p&&!x)return;const R=i[0],H=i[i.length-1],q=S.getBoundingClientRect();if(this.lastHandleRect!=null){if(H==="w"){const K=q.left-this.lastHandleRect.left;u+=K}if(R==="n"){const K=q.top-this.lastHandleRect.top;w+=K}}this.lastHandleRect=q,H==="w"&&(u=-u),R==="n"&&(w=-w);let J=this.props.width+(p?u/this.props.transformScale:0),A=this.props.height+(x?w/this.props.transformScale:0);[J,A]=this.runConstraints(J,A),a==="onResizeStop"&&this.lastSize&&({width:J,height:A}=this.lastSize);const Y=J!==this.props.width||A!==this.props.height;a!=="onResizeStop"&&(this.lastSize={width:J,height:A});const Z=typeof this.props[a]=="function"?this.props[a]:null;Z&&!(a==="onResize"&&!Y)&&(g.persist?.(),Z(g,{node:S,size:{width:J,height:A},handle:i})),a==="onResizeStop"&&this.resetData()}}renderResizeHandle(a,i){const{handle:g}=this.props;if(!g)return e.createElement("span",{className:`react-resizable-handle react-resizable-handle-${a}`,ref:i});if(typeof g=="function")return g(a,i);const b=typeof g.type=="string",S=m({ref:i},b?{}:{handleAxis:a});return e.cloneElement(g,S)}render(){const a=this.props,{children:i,className:g,draggableOpts:b,width:S,height:u,handle:w,handleSize:p,lockAspectRatio:x,axis:R,minConstraints:H,maxConstraints:q,onResize:J,onResizeStop:A,onResizeStart:Y,resizeHandles:Z,transformScale:U}=a,K=d(a,o);return(0,r.cloneElement)(i,m(m({},K),{},{className:`${g?`${g} `:""}react-resizable`,children:[...e.Children.toArray(i.props.children),...Z.map(le=>{const me=this.handleRefs[le]??(this.handleRefs[le]=e.createRef());return e.createElement(t.DraggableCore,l({},b,{nodeRef:me,key:`resizableHandle-${le}`,onStop:this.resizeHandler("onResizeStop",le),onStart:this.resizeHandler("onResizeStart",le),onDrag:this.resizeHandler("onResize",le)}),this.renderResizeHandle(le,me))})]}))}};return mt.default=D,D.propTypes=n.resizableProps,D.defaultProps={axis:"both",handleSize:[20,20],lockAspectRatio:!1,minConstraints:[20,20],maxConstraints:[1/0,1/0],resizeHandles:["se"],transformScale:1},mt}var vt={},_n;function Ho(){if(_n)return vt;_n=1,vt.__esModule=!0,vt.default=void 0;var e=l(E),t=s(Nt()),r=s(Dn()),n=On();const o=["handle","handleSize","onResize","onResizeStart","onResizeStop","draggableOpts","minConstraints","maxConstraints","lockAspectRatio","axis","width","height","resizeHandles","style","transformScale"];function s(a){return a&&a.__esModule?a:{default:a}}function l(a,i){if(typeof WeakMap=="function")var g=new WeakMap,b=new WeakMap;return(l=function(S,u){if(!u&&S&&S.__esModule)return S;var w,p,x={__proto__:null,default:S};if(S===null||typeof S!="object"&&typeof S!="function")return x;if(w=u?b:g){if(w.has(S))return w.get(S);w.set(S,x)}for(const R in S)R!=="default"&&{}.hasOwnProperty.call(S,R)&&((p=(w=Object.defineProperty)&&Object.getOwnPropertyDescriptor(S,R))&&(p.get||p.set)?w(x,R,p):x[R]=S[R]);return x})(a,i)}function d(){return d=Object.assign?Object.assign.bind():function(a){for(var i=1;i<arguments.length;i++){var g=arguments[i];for(var b in g)({}).hasOwnProperty.call(g,b)&&(a[b]=g[b])}return a},d.apply(null,arguments)}function c(a,i){var g=Object.keys(a);if(Object.getOwnPropertySymbols){var b=Object.getOwnPropertySymbols(a);i&&(b=b.filter(function(S){return Object.getOwnPropertyDescriptor(a,S).enumerable})),g.push.apply(g,b)}return g}function v(a){for(var i=1;i<arguments.length;i++){var g=arguments[i]!=null?arguments[i]:{};i%2?c(Object(g),!0).forEach(function(b){m(a,b,g[b])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(g)):c(Object(g)).forEach(function(b){Object.defineProperty(a,b,Object.getOwnPropertyDescriptor(g,b))})}return a}function m(a,i,g){return(i=h(i))in a?Object.defineProperty(a,i,{value:g,enumerable:!0,configurable:!0,writable:!0}):a[i]=g,a}function h(a){var i=C(a,"string");return typeof i=="symbol"?i:i+""}function C(a,i){if(typeof a!="object"||!a)return a;var g=a[Symbol.toPrimitive];if(g!==void 0){var b=g.call(a,i);if(typeof b!="object")return b;throw new TypeError("@@toPrimitive must return a primitive value.")}return(i==="string"?String:Number)(a)}function P(a,i){if(a==null)return{};var g,b,S=D(a,i);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(a);for(b=0;b<u.length;b++)g=u[b],i.indexOf(g)===-1&&{}.propertyIsEnumerable.call(a,g)&&(S[g]=a[g])}return S}function D(a,i){if(a==null)return{};var g={};for(var b in a)if({}.hasOwnProperty.call(a,b)){if(i.indexOf(b)!==-1)continue;g[b]=a[b]}return g}let y=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=(i,g)=>{const{size:b}=g;this.props.onResize?(i.persist?.(),this.setState(b,()=>this.props.onResize&&this.props.onResize(i,g))):this.setState(b)}}static getDerivedStateFromProps(i,g){return g.propsWidth!==i.width||g.propsHeight!==i.height?{width:i.width,height:i.height,propsWidth:i.width,propsHeight:i.height}:null}render(){const i=this.props,{handle:g,handleSize:b,onResize:S,onResizeStart:u,onResizeStop:w,draggableOpts:p,minConstraints:x,maxConstraints:R,lockAspectRatio:H,axis:q,width:J,height:A,resizeHandles:Y,style:Z,transformScale:U}=i,K=P(i,o);return e.createElement(r.default,{axis:q,draggableOpts:p,handle:g,handleSize:b,height:this.state.height,lockAspectRatio:H,maxConstraints:R,minConstraints:x,onResizeStart:u,onResize:this.onResize,onResizeStop:w,resizeHandles:Y,transformScale:U,width:this.state.width},e.createElement("div",d({},K,{style:v(v({},Z),{},{width:this.state.width+"px",height:this.state.height+"px"})})))}};return vt.default=y,y.propTypes=v(v({},n.resizableProps),{},{children:t.default.element}),vt}var jn;function Yo(){return jn||(jn=1,gt.exports=function(){throw new Error("Don't instantiate Resizable directly! Use require('react-resizable').Resizable")},gt.exports.Resizable=Dn().default,gt.exports.ResizableBox=Ho().default),gt.exports}var Bo=Yo();function Tn(e){const{children:t,cols:r,containerWidth:n,margin:o,containerPadding:s,rowHeight:l,maxRows:d,isDraggable:c,isResizable:v,isBounded:m,static:h,useCSSTransforms:C=!0,usePercentages:P=!1,transformScale:D=1,positionStrategy:y,dragThreshold:a=0,droppingPosition:i,className:g="",style:b,handle:S="",cancel:u="",x:w,y:p,w:x,h:R,minW:H=1,maxW:q=1/0,minH:J=1,maxH:A=1/0,i:Y,resizeHandles:Z,resizeHandle:U,constraints:K=Mr,layoutItem:le,layout:me=[],onDragStart:O,onDrag:f,onDragStop:j,onResizeStart:k,onResize:z,onResizeStop:X}=e,[I,M]=E.useState(!1),[W,N]=E.useState(!1),$=E.useRef(null),F=E.useRef({left:0,top:0}),_=E.useRef({top:0,left:0,width:0,height:0}),ae=E.useRef(void 0),je=E.useRef(me);je.current=me;const De=E.useRef(null),ye=E.useRef(null),Ce=E.useRef(!1),st=E.useRef({x:0,y:0}),de=E.useRef(!1),ue=E.useMemo(()=>({cols:r,containerPadding:s,containerWidth:n,margin:o,maxRows:d,rowHeight:l}),[r,s,n,o,d,l]),Ee=E.useMemo(()=>({cols:r,maxRows:d,containerWidth:n,containerHeight:0,rowHeight:l,margin:o,layout:[]}),[r,d,n,l,o]),we=E.useCallback(()=>({...Ee,layout:je.current}),[Ee]),Ne=E.useMemo(()=>le??{i:Y,x:w,y:p,w:x,h:R,minW:H,maxW:q,minH:J,maxH:A},[le,Y,w,p,x,R,H,q,J,A]),Wt=E.useCallback(re=>{if(y?.calcStyle)return y.calcStyle(re);if(C)return zr(re);const ne=Un(re);return P?{...ne,left:kr(re.left/n),width:kr(re.width/n)}:ne},[y,C,P,n]),Le=E.useCallback((re,{node:ne})=>{if(!O)return;const{offsetParent:he}=ne;if(!he)return;const se=he.getBoundingClientRect(),ve=ne.getBoundingClientRect(),Pe=ve.left/D,_e=se.left/D,Oe=ve.top/D,Me=se.top/D;let ze;if(y?.calcDragPosition){const G=re;ze=y.calcDragPosition(G.clientX,G.clientY,G.clientX-ve.left,G.clientY-ve.top)}else ze={left:Pe-_e+he.scrollLeft,top:Oe-Me+he.scrollTop};if(F.current=ze,a>0){const G=re;st.current={x:G.clientX,y:G.clientY},Ce.current=!0,de.current=!1,M(!0);return}M(!0);const Je=Ct(ue,ze.top,ze.left),{x:Ke,y:L}=Rt(K,Ne,Je.x,Je.y,we());O(Y,Ke,L,{e:re,node:ne,newPosition:ze})},[O,D,ue,y,a,K,Ne,we,Y]),it=E.useCallback((re,{node:ne,deltaX:he,deltaY:se})=>{if(!f||!I)return;const ve=re;if(Ce.current&&!de.current){const Ke=ve.clientX-st.current.x,L=ve.clientY-st.current.y;if(Math.hypot(Ke,L)<a)return;if(de.current=!0,Ce.current=!1,O){const B=Ct(ue,F.current.top,F.current.left),{x:Q,y:ie}=Rt(K,Ne,B.x,B.y,we());O(Y,Q,ie,{e:re,node:ne,newPosition:F.current})}}let Pe=F.current.top+se,_e=F.current.left+he;if(m){const{offsetParent:Ke}=ne;if(Ke){const L=Ke.clientHeight-ot(R,l,o[1]);Pe=Et(Pe,0,L);const G=nt(ue),B=n-ot(x,G,o[0]);_e=Et(_e,0,B)}}const Oe={top:Pe,left:_e};F.current=Oe;const Me=Ct(ue,Pe,_e),{x:ze,y:Je}=Rt(K,Ne,Me.x,Me.y,we());f(Y,ze,Je,{e:re,node:ne,newPosition:Oe})},[f,O,I,a,m,R,l,o,ue,n,x,Y,K,Ne,we]),Ue=E.useCallback((re,{node:ne})=>{if(!j||!I)return;const he=Ce.current;if(Ce.current=!1,de.current=!1,st.current={x:0,y:0},he){M(!1),F.current={left:0,top:0};return}const{left:se,top:ve}=F.current,Pe={top:ve,left:se};M(!1),F.current={left:0,top:0};const _e=Ct(ue,ve,se),{x:Oe,y:Me}=Rt(K,Ne,_e.x,_e.y,we());j(Y,Oe,Me,{e:re,node:ne,newPosition:Pe})},[j,I,ue,K,Ne,we,Y]);De.current=Le,ye.current=it;const Ae=E.useCallback((re,{node:ne,size:he,handle:se},ve,Pe)=>{const _e=Pe==="onResizeStart"?k:Pe==="onResize"?z:X;if(!_e)return;let Oe;ne?Oe=to(se,ve,he,n):Oe={...he,top:ve.top,left:ve.left},_.current=Oe;const Me=qn(ue,Oe.width,Oe.height),{w:ze,h:Je}=Xn(K,Ne,Me.w,Me.h,se,we());_e(Y,ze,Je,{e:re.nativeEvent,node:ne,size:Oe,handle:se})},[k,z,X,n,ue,Y,K,Ne,we]),lt=E.useCallback((re,ne)=>{N(!0);const he=dt(ue,w,p,x,R),se={...ne,handle:ne.handle};Ae(re,se,he,"onResizeStart")},[Ae,ue,w,p,x,R]),ut=E.useCallback((re,ne)=>{const he=dt(ue,w,p,x,R),se={...ne,handle:ne.handle};Ae(re,se,he,"onResize")},[Ae,ue,w,p,x,R]),Ge=E.useCallback((re,ne)=>{N(!1),_.current={top:0,left:0,width:0,height:0};const he=dt(ue,w,p,x,R),se={...ne,handle:ne.handle};Ae(re,se,he,"onResizeStop")},[Ae,ue,w,p,x,R]);E.useEffect(()=>{if(!i)return;const re=$.current;if(!re)return;const ne=ae.current||{left:0,top:0},he=I&&(i.left!==ne.left||i.top!==ne.top);if(I){if(he){const se=i.left-F.current.left,ve=i.top-F.current.top,Pe={node:re,deltaX:se,deltaY:ve,lastX:F.current.left,lastY:F.current.top,x:i.left,y:i.top};ye.current?.(i.e,Pe)}}else{const se={node:re,deltaX:i.left,deltaY:i.top,lastX:0,lastY:0,x:i.left,y:i.top};De.current?.(i.e,se)}ae.current=i},[i,I,Y]);const We=dt(ue,w,p,x,R,I?F.current:null,W?_.current:null),bt=E.Children.only(t),xt=dt(ue,0,0,1,1),qt=[xt.width,xt.height],$t=[1/0,1/0],Te=bt.props,xr=Te.className,Ht=Te.style;let Ve=E.cloneElement(bt,{ref:$,className:Gt("react-grid-item",xr,g,{static:h,resizing:W,"react-draggable":c,"react-draggable-dragging":I,dropping:!!i,cssTransforms:C}),style:{...b,...Ht,...Wt(We)}});const Yt=U;return Ve=T.jsx(Bo.Resizable,{draggableOpts:{disabled:!v},className:v?void 0:"react-resizable-hide",width:We.width,height:We.height,minConstraints:qt,maxConstraints:$t,onResizeStart:lt,onResize:ut,onResizeStop:Ge,transformScale:D,resizeHandles:Z,handle:Yt,children:Ve}),Ve=T.jsx(qo.DraggableCore,{disabled:!c,onStart:Le,onDrag:it,onStop:Ue,handle:S,cancel:".react-resizable-handle"+(u?","+u:""),scale:D,nodeRef:$,children:Ve}),Ve}var $e=()=>{},Mn="react-grid-layout",zn=!1;try{zn=/firefox/i.test(navigator.userAgent)}catch{}function Fo(e,t){const r=E.Children.toArray(e),n=E.Children.toArray(t);if(r.length!==n.length)return!1;for(let o=0;o<r.length;o++){const s=r[o],l=n[o];if(s?.key!==l?.key)return!1}return!0}function kn(e,t,r,n){const o=[],s=new Set;E.Children.forEach(t,d=>{if(!E.isValidElement(d)||d.key===null)return;const c=String(d.key);s.add(c);const v=e.find(m=>m.i===c);if(v)o.push(et(v));else{const h=d.props["data-grid"];h?o.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}):o.push({i:c,x:0,y:Pt(o),w:1,h:1})}});const l=Zt(o,{cols:r});return n.compact(l,r)}function Xo(e){const{children:t,width:r,gridConfig:n,dragConfig:o,resizeConfig:s,dropConfig:l,positionStrategy:d=no,compactor:c,constraints:v=Mr,layout:m=[],droppingItem:h,autoSize:C=!0,className:P="",style:D={},innerRef:y,onLayoutChange:a=$e,onDragStart:i=$e,onDrag:g=$e,onDragStop:b=$e,onResizeStart:S=$e,onResize:u=$e,onResizeStop:w=$e,onDrop:p=$e,onDropDragOver:x=$e}=e,R=E.useMemo(()=>({...oo,...n}),[n]),H=E.useMemo(()=>({...ao,...o}),[o]),q=E.useMemo(()=>({...so,...s}),[s]),J=E.useMemo(()=>({...io,...l}),[l]),{cols:A,rowHeight:Y,maxRows:Z,margin:U,containerPadding:K}=R,{enabled:le,bounded:me,handle:O,cancel:f,threshold:j}=H,{enabled:k,handles:z,handleComponent:X}=q,{enabled:I,defaultItem:M,onDragOver:W}=J,N=c??or("vertical"),$=N.type,F=N.allowOverlap,_=N.preventCollision??!1,ae=E.useMemo(()=>h??{i:"__dropping-elem__",...M},[h,M]),je=d.type==="transform",De=d.scale,ye=K??U,[Ce,st]=E.useState(!1),[de,ue]=E.useState(()=>kn(m,t,A,N)),[Ee,we]=E.useState(null),[Ne,Wt]=E.useState(!1),[Le,it]=E.useState(null),[Ue,Ae]=E.useState(),lt=E.useRef(null),ut=E.useRef(null),Ge=E.useRef(null),We=E.useRef(0),bt=E.useRef(de),xt=E.useRef(m),qt=E.useRef(t),$t=E.useRef($),Te=E.useRef(de);Te.current=de,E.useEffect(()=>{st(!0),qe(de,m)||a(de)},[]),E.useEffect(()=>{if(Ee||Le)return;const L=!qe(m,xt.current),G=!Fo(t,qt.current),B=$!==$t.current;if(L||G||B){const ie=kn(L?m:de,t,A,N);qe(ie,de)||ue(ie)}xt.current=m,qt.current=t,$t.current=$},[m,t,A,$,N,Ee,Le,de]),E.useEffect(()=>{if(!Ee&&!qe(de,bt.current)){bt.current=de;const L=de.filter(G=>G.i!==ae.i);a(L)}},[de,Ee,a,ae.i]);const xr=E.useMemo(()=>{if(!C)return;const L=Pt(de),G=ye[1];return L*Y+(L-1)*U[1]+G*2+"px"},[C,de,Y,U,ye]),Ht=E.useCallback((L,G,B,Q)=>{const ie=Te.current,oe=Qe(ie,L);if(!oe)return;const ce={w:oe.w,h:oe.h,x:oe.x,y:oe.y,i:L};lt.current=et(oe),Ge.current=ie,we(ce),i(ie,oe,oe,null,Q.e,Q.node)},[i]),Ve=E.useCallback((L,G,B,Q)=>{const ie=Te.current,oe=lt.current,ce=Qe(ie,L);if(!ce)return;const be={w:ce.w,h:ce.h,x:ce.x,y:ce.y,i:L},fe=tt(ie,ce,G,B,!0,_,$,A,F);g(fe,oe,ce,be,Q.e,Q.node),ue(N.compact(fe,A)),we(be)},[_,$,A,F,N,g]),Yt=E.useCallback((L,G,B,Q)=>{if(!Ee)return;const ie=Te.current,oe=lt.current,ce=Qe(ie,L);if(!ce)return;const be=tt(ie,ce,G,B,!0,_,$,A,F),fe=N.compact(be,A);b(fe,oe,ce,null,Q.e,Q.node);const Se=Ge.current;lt.current=null,Ge.current=null,we(null),ue(fe),Se&&!qe(Se,fe)&&a(fe)},[Ee,_,$,A,F,N,b,a]),re=E.useCallback((L,G,B,Q)=>{const ie=Te.current,oe=Qe(ie,L);oe&&(ut.current=et(oe),Ge.current=ie,Wt(!0),S(ie,oe,oe,null,Q.e,Q.node))},[S]),ne=E.useCallback((L,G,B,Q)=>{const ie=Te.current,oe=ut.current,{handle:ce}=Q;let be=!1,fe,Se;const[Bt,He]=Yn(ie,L,pe=>(fe=pe.x,Se=pe.y,["sw","w","nw","n","ne"].includes(ce)&&(["sw","nw","w"].includes(ce)&&(fe=pe.x+(pe.w-G),G=pe.x!==fe&&fe<0?pe.w:G,fe=fe<0?0:fe),["ne","n","nw"].includes(ce)&&(Se=pe.y+(pe.h-B),B=pe.y!==Se&&Se<0?pe.h:B,Se=Se<0?0:Se),be=!0),_&&!F&&_r(ie,{...pe,w:G,h:B,x:fe??pe.x,y:Se??pe.y}).filter(Xt=>Xt.i!==pe.i).length>0&&(Se=pe.y,B=pe.h,fe=pe.x,G=pe.w,be=!1),pe.w=G,pe.h=B,pe));if(!He)return;let wt=Bt;be&&fe!==void 0&&Se!==void 0&&(wt=tt(Bt,He,fe,Se,!0,_,$,A,F));const Ft={w:He.w,h:He.h,x:He.x,y:He.y,i:L,static:!0};u(wt,oe,He,Ft,Q.e,Q.node),ue(N.compact(wt,A)),we(Ft)},[_,$,A,F,N,u]),he=E.useCallback((L,G,B,Q)=>{const ie=Te.current,oe=ut.current,ce=Qe(ie,L),be=N.compact(ie,A);w(be,oe,ce??null,null,Q.e,Q.node);const fe=Ge.current;ut.current=null,Ge.current=null,we(null),Wt(!1),ue(be),fe&&!qe(fe,be)&&a(be)},[A,N,w,a]),se=E.useCallback(()=>{const L=Te.current;if(!L.some(Q=>Q.i===ae.i)){it(null),we(null),Ae(void 0);return}const B=N.compact(L.filter(Q=>Q.i!==ae.i),A);ue(B),it(null),we(null),Ae(void 0)},[ae.i,A,N]),ve=E.useCallback(L=>{if(L.preventDefault(),L.stopPropagation(),zn&&!L.nativeEvent.target?.classList.contains(Mn))return!1;const G=W?W(L.nativeEvent):x(L);if(G===!1)return Le&&se(),!1;const{dragOffsetX:B=0,dragOffsetY:Q=0,...ie}=G??{},oe={...ae,...ie},ce=L.currentTarget.getBoundingClientRect(),be={cols:A,margin:U,maxRows:Z,rowHeight:Y,containerWidth:r,containerPadding:ye},fe=nt(be),Se=ot(oe.w,fe,U[0]),Bt=ot(oe.h,Y,U[1]),He=Se/2,wt=Bt/2,Ft=L.clientX-ce.left+B-He,pe=L.clientY-ce.top+Q-wt,wr=Math.max(0,Ft),Xt=Math.max(0,pe),Ut={left:wr/De,top:Xt/De,e:L.nativeEvent};if(Le)Ue&&(Ue.left!==Ut.left||Ue.top!==Ut.top)&&Ae(Ut);else{const Sr=Wn(be,Xt,wr,oe.w,oe.h);it(T.jsx("div",{},oe.i)),Ae(Ut),ue([...Te.current,{...oe,x:Sr.x,y:Sr.y,static:!1,isDraggable:!0}])}},[Le,Ue,ae,W,x,se,De,A,U,Z,Y,r,ye]),Pe=E.useCallback(L=>{L.preventDefault(),L.stopPropagation(),We.current--,We.current<0&&(We.current=0),We.current===0&&se()},[se]),_e=E.useCallback(L=>{L.preventDefault(),L.stopPropagation(),We.current++},[]),Oe=E.useCallback(L=>{L.preventDefault(),L.stopPropagation();const G=Te.current,B=G.find(Q=>Q.i===ae.i);We.current=0,se(),p(G,B,L.nativeEvent)},[ae.i,se,p]),Me=E.useCallback((L,G)=>{if(!L||!L.key)return null;const B=Qe(de,String(L.key));if(!B)return null;const Q=typeof B.isDraggable=="boolean"?B.isDraggable:!B.static&&le,ie=typeof B.isResizable=="boolean"?B.isResizable:!B.static&&k,oe=B.resizeHandles||[...z],ce=Q&&me&&B.isBounded!==!1,be=X;return T.jsx(Tn,{containerWidth:r,cols:A,margin:U,containerPadding:ye,maxRows:Z,rowHeight:Y,cancel:f,handle:O,onDragStart:Ht,onDrag:Ve,onDragStop:Yt,onResizeStart:re,onResize:ne,onResizeStop:he,isDraggable:Q,isResizable:ie,isBounded:ce,useCSSTransforms:je&&Ce,usePercentages:!Ce,transformScale:De,positionStrategy:d,dragThreshold:j,w:B.w,h:B.h,x:B.x,y:B.y,i:B.i,minH:B.minH,minW:B.minW,maxH:B.maxH,maxW:B.maxW,static:B.static,droppingPosition:G?Ue:void 0,resizeHandles:oe,resizeHandle:be,constraints:v,layoutItem:B,layout:de,children:L},B.i)},[de,r,A,U,ye,Z,Y,f,O,Ht,Ve,Yt,re,ne,he,le,k,me,je,Ce,De,d,j,Ue,z,X,v]),ze=()=>Ee?T.jsx(Tn,{w:Ee.w,h:Ee.h,x:Ee.x,y:Ee.y,i:Ee.i,className:`react-grid-placeholder ${Ne?"placeholder-resizing":""}`,containerWidth:r,cols:A,margin:U,containerPadding:ye,maxRows:Z,rowHeight:Y,isDraggable:!1,isResizable:!1,isBounded:!1,useCSSTransforms:je,transformScale:De,constraints:v,layout:de,children:T.jsx("div",{})}):null,Je=Gt(Mn,P),Ke={height:xr,...D};return T.jsxs("div",{ref:y,className:Je,style:Ke,onDrop:I?Oe:void 0,onDragLeave:I?Pe:void 0,onDragEnter:I?_e:void 0,onDragOver:I?ve:void 0,children:[E.Children.map(t,L=>E.isValidElement(L)?Me(L):null),I&&Le&&Me(Le,!0),ze()]})}var Uo={lg:1200,md:996,sm:768,xs:480,xxs:0},Go={lg:12,md:10,sm:6,xs:4,xxs:2},mr=()=>{};function Vo(e,t,r,n){const o=[];E.Children.forEach(t,l=>{if(!E.isValidElement(l)||l.key===null)return;const d=String(l.key),c=e.find(v=>v.i===d);if(c)o.push({...c,i:d});else{const m=l.props["data-grid"];m?o.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}):o.push({i:d,x:0,y:Pt(o),w:1,h:1})}});const s=Zt(o,{cols:r});return n.compact(s,r)}function Jo(e){const{children:t,width:r,breakpoint:n,breakpoints:o=Uo,cols:s=Go,layouts:l={},rowHeight:d=150,maxRows:c=1/0,margin:v=[10,10],containerPadding:m=null,compactor:h,onBreakpointChange:C=mr,onLayoutChange:P=mr,onWidthChange:D=mr,...y}=e,a=h??or("vertical"),i=a.type,g=a.allowOverlap,b=E.useMemo(()=>n??qr(o,r),[]),S=E.useMemo(()=>$r(b,s),[b,s]),u=E.useMemo(()=>ar(l,o,b,b,S,i),[]),[w,p]=E.useState(b),[x,R]=E.useState(S),[H,q]=E.useState(u),[J,A]=E.useState(l),Y=E.useRef(r),Z=E.useRef(n),U=E.useRef(o),K=E.useRef(s),le=E.useRef(l),me=E.useRef(i),O=E.useRef(J);E.useEffect(()=>{O.current=J},[J]);const f=E.useMemo(()=>qe(l,le.current)?null:ar(l,o,w,w,x,a),[l,o,w,x,a]),j=f??H;E.useEffect(()=>{f!==null&&(q(f),A(l),O.current=l,le.current=l)},[f,l]),E.useEffect(()=>{if(i!==me.current){const M=a.compact(Be(j),x),W={...O.current,[w]:M};q(M),A(W),O.current=W,P(M,W),me.current=i}},[i,a,j,x,g,w,P]),E.useEffect(()=>{const M=r!==Y.current,W=n!==Z.current,N=!qe(o,U.current),$=!qe(s,K.current);if(M||W||N||$){const F=n??qr(o,r),_=$r(F,s),ae=w;if(ae!==F||N||$){const ye={...O.current};ye[ae]||(ye[ae]=Be(H));let Ce=ar(ye,o,F,ae,_,a);Ce=Vo(Ce,t,_,a),ye[F]=Ce,p(F),R(_),q(Ce),A(ye),O.current=ye,C(F,_),P(Ce,ye)}const je=_t(v,F),De=m?_t(m,F):null;D(r,je,_,De),Y.current=r,Z.current=n,U.current=o,K.current=s}},[r,n,o,s,w,x,H,t,a,i,g,v,m,C,P,D]);const k=E.useCallback(M=>{const N={...O.current,[w]:M};q(M),A(N),O.current=N,P(M,N)},[w,P]),z=E.useMemo(()=>_t(v,w),[v,w]),X=E.useMemo(()=>m===null?null:_t(m,w),[m,w]),I=E.useMemo(()=>({cols:x,rowHeight:d,maxRows:c,margin:z,containerPadding:X}),[x,d,c,z,X]);return T.jsx(Xo,{...y,width:r,gridConfig:I,compactor:a,onLayoutChange:k,layout:j,children:t})}function Ko({editMode:e}){const t=rt.useDnd();return ke.useEffect(()=>{if(e)return t.startDrag({id:"dashboard-layout",type:"dashboard-widget",data:{}}),()=>{t.endDrag()};t.endDrag("dashboard")},[e,t]),null}const Zo=["hsl(var(--chart-1))","hsl(var(--chart-2))","hsl(var(--chart-3))","hsl(var(--chart-4))","hsl(var(--chart-5))"],yr=({schema:e,className:t,onLayoutChange:r,persistLayoutKey:n="dashboard-layout",onRefresh:o})=>{const{width:s,containerRef:l,mounted:d}=jo(),[c,v]=ke.useState(!1),[m,h]=ke.useState(!1),C=rt.useHasDndProvider(),P=ke.useRef(null),D=ke.useCallback(()=>{o&&(h(!0),o(),setTimeout(()=>h(!1),600))},[o]);ke.useEffect(()=>{if(!(!e.refreshInterval||e.refreshInterval<=0||!o))return P.current=setInterval(D,e.refreshInterval*1e3),()=>{P.current&&clearInterval(P.current)}},[e.refreshInterval,o,D]);const[y,a]=ke.useState(()=>{if(typeof window<"u"&&n){const u=localStorage.getItem(n);if(u)try{return JSON.parse(u)}catch(w){console.error("Failed to parse saved layout:",w)}}return{lg:e.widgets?.map((u,w)=>({i:u.id||`widget-${w}`,x:u.layout?.x||w%4*3,y:u.layout?.y||Math.floor(w/4)*4,w:u.layout?.w||3,h:u.layout?.h||4}))||[]}}),i=ke.useCallback((u,w)=>{a(w),r?.(u)},[r]),g=ke.useCallback(()=>{typeof window<"u"&&n&&localStorage.setItem(n,JSON.stringify(y)),v(!1)},[y,n]),b=ke.useCallback(()=>{const u={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}))||[]};a(u),typeof window<"u"&&n&&localStorage.removeItem(n)},[e.widgets,n]),S=ke.useCallback(u=>{if(u.component)return u.component;const w=u.type;if(w==="bar"||w==="line"||w==="area"||w==="pie"||w==="donut"){const p=Array.isArray(u.data)?u.data:u.data?.items||[],x=u.options||{},R=x.xField||"name",H=x.yField||"value";return{type:"chart",chartType:w,data:p,xAxisKey:R,series:[{dataKey:H}],colors:Zo,className:"h-full"}}return w==="table"?{type:"data-table",...u.options,data:u.data?.items||[],searchable:!1,pagination:!1,className:"border-0"}:u},[]);return T.jsxs("div",{ref:l,className:V.cn("w-full",t),"data-testid":"grid-layout",children:[C&&T.jsx(Ko,{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(V.Button,{onClick:g,size:"sm",variant:"default",children:[T.jsx(Re.Save,{className:"h-4 w-4 mr-2"}),"Save Layout"]}),T.jsxs(V.Button,{onClick:b,size:"sm",variant:"outline",children:[T.jsx(Re.X,{className:"h-4 w-4 mr-2"}),"Reset"]}),T.jsx(V.Button,{onClick:()=>v(!1),size:"sm",variant:"ghost",children:"Cancel"})]}):T.jsxs(T.Fragment,{children:[o&&T.jsxs(V.Button,{onClick:D,size:"sm",variant:"outline",disabled:m,"aria-label":"Refresh dashboard",children:[T.jsx(Re.RefreshCw,{className:V.cn("h-4 w-4 mr-2",m&&"animate-spin")}),m?"Refreshing…":"Refresh All"]}),T.jsxs(V.Button,{onClick:()=>v(!0),size:"sm",variant:"outline",children:[T.jsx(Re.Edit,{className:"h-4 w-4 mr-2"}),"Edit Layout"]})]})})]}),d&&T.jsx(Jo,{className:"layout",width:s,layouts:y,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:i,children:e.widgets?.map((u,w)=>{const p=u.id||`widget-${w}`,x=S(u),R=u.type==="metric";return T.jsx("div",{className:"h-full",children:R?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(Re.GripVertical,{className:"h-4 w-4"})}),T.jsx(rt.SchemaRenderer,{schema:x,className:"h-full w-full"})]}):T.jsxs(V.Card,{className:V.cn("h-full overflow-hidden border-border/50 shadow-sm transition-all","bg-card/50 backdrop-blur-sm",c&&"ring-2 ring-primary/20"),children:[u.title&&T.jsxs(V.CardHeader,{className:"pb-2 border-b border-border/40 bg-muted/20 flex flex-row items-center justify-between",children:[T.jsx(V.CardTitle,{className:"text-base font-medium tracking-tight truncate",title:u.title,children:u.title}),c&&T.jsx("div",{className:"drag-handle cursor-move p-1 hover:bg-muted/40 rounded",children:T.jsx(Re.GripVertical,{className:"h-4 w-4"})})]}),T.jsx(V.CardContent,{className:"p-0 h-full",children:T.jsx("div",{className:V.cn("h-full w-full overflow-auto p-4"),children:T.jsx(rt.SchemaRenderer,{schema:x})})})]})},p)})})]})},vr=({label:e,value:t,trend:r,icon:n,className:o,description:s,...l})=>{const d=E.useMemo(()=>{if(typeof n=="string"){const c=Pr[n];return c?T.jsx(c,{className:"h-4 w-4 text-muted-foreground"}):null}return n},[n]);return T.jsxs(V.Card,{className:V.cn("h-full",o),...l,children:[T.jsxs(V.CardHeader,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[T.jsx(V.CardTitle,{className:"text-sm font-medium",children:e}),d&&T.jsx("div",{className:"h-4 w-4 text-muted-foreground",children:d})]}),T.jsxs(V.CardContent,{children:[T.jsx("div",{className:"text-2xl font-bold",children:t}),(r||s)&&T.jsxs("p",{className:"text-xs text-muted-foreground flex items-center mt-1",children:[r&&T.jsxs("span",{className:V.cn("flex items-center mr-2",r.direction==="up"&&"text-green-500",r.direction==="down"&&"text-red-500",r.direction==="neutral"&&"text-yellow-500"),children:[r.direction==="up"&&T.jsx(Re.ArrowUpIcon,{className:"h-3 w-3 mr-1"}),r.direction==="down"&&T.jsx(Re.ArrowDownIcon,{className:"h-3 w-3 mr-1"}),r.direction==="neutral"&&T.jsx(Re.MinusIcon,{className:"h-3 w-3 mr-1"}),r.value,"%"]}),s||r?.label]})]})]})},br=({title:e,value:t,icon:r,trend:n,trendValue:o,description:s,className:l,...d})=>{const c=r&&Pr[r];return T.jsxs(V.Card,{className:V.cn("h-full",l),...d,children:[T.jsxs(V.CardHeader,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[T.jsx(V.CardTitle,{className:"text-sm font-medium",children:e}),c&&T.jsx(c,{className:"h-4 w-4 text-muted-foreground"})]}),T.jsxs(V.CardContent,{children:[T.jsx("div",{className:"text-2xl font-bold",children:t}),(n||o||s)&&T.jsxs("p",{className:"text-xs text-muted-foreground flex items-center mt-1",children:[n&&o&&T.jsxs("span",{className:V.cn("flex items-center mr-2",n==="up"&&"text-green-500",n==="down"&&"text-red-500",n==="neutral"&&"text-yellow-500"),children:[n==="up"&&T.jsx(Re.ArrowUpIcon,{className:"h-3 w-3 mr-1"}),n==="down"&&T.jsx(Re.ArrowDownIcon,{className:"h-3 w-3 mr-1"}),n==="neutral"&&T.jsx(Re.MinusIcon,{className:"h-3 w-3 mr-1"}),o]}),s]})]})]})};Ye.ComponentRegistry.register("dashboard",Vt,{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:[]}}),Ye.ComponentRegistry.register("metric",vr,{namespace:"plugin-dashboard",label:"Metric Widget",category:"Dashboard",inputs:[{name:"label",type:"string",label:"Label"},{name:"value",type:"string",label:"Value"}]}),Ye.ComponentRegistry.register("metric-card",br,{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"}}),Ye.ComponentRegistry.register("dashboard-grid",yr,{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 Qo={DashboardRenderer:Vt,DashboardGridLayout:yr,MetricWidget:vr,MetricCard:br};xe.DashboardGridLayout=yr,xe.DashboardRenderer=Vt,xe.MetricCard=br,xe.MetricWidget=vr,xe.dashboardComponents=Qo,Object.defineProperty(xe,Symbol.toStringTag,{value:"Module"})}));
6
+ <%s key={someKey} {...props} />`,z,M,$,M),O[M+z]=!0)}if(M=null,k!==void 0&&(r(k),M=""+k),l(j)&&(r(j.key),M=""+j.key),"key"in j){k={};for(var N in j)N!=="key"&&(k[N]=j[N])}else k=j;return M&&p(k,typeof d=="function"?d.displayName||d.name||"Unknown":d),x(d,M,k,o(),X,I)}function h(d){S(d)?d._store&&(d._store.validated=1):typeof d=="object"&&d!==null&&d.$$typeof===R&&(d._payload.status==="fulfilled"?S(d._payload.value)&&d._payload.value._store&&(d._payload.value._store.validated=1):d._store&&(d._store.validated=1))}function S(d){return typeof d=="object"&&d!==null&&d.$$typeof===D}var P=C,D=Symbol.for("react.transitional.element"),v=Symbol.for("react.portal"),a=Symbol.for("react.fragment"),s=Symbol.for("react.strict_mode"),g=Symbol.for("react.profiler"),b=Symbol.for("react.consumer"),E=Symbol.for("react.context"),c=Symbol.for("react.forward_ref"),w=Symbol.for("react.suspense"),f=Symbol.for("react.suspense_list"),y=Symbol.for("react.memo"),R=Symbol.for("react.lazy"),q=Symbol.for("react.activity"),W=Symbol.for("react.client.reference"),J=P.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,A=Object.prototype.hasOwnProperty,Y=Array.isArray,Z=console.createTask?console.createTask:function(){return null};P={react_stack_bottom_frame:function(d){return d()}};var U,K={},le=P.react_stack_bottom_frame.bind(P,i)(),me=Z(n(i)),O={};ft.Fragment=a,ft.jsx=function(d,j,k){var z=1e4>J.recentlyCreatedOwnerStacks++;return m(d,j,k,!1,z?Error("react-stack-top-frame"):le,z?Z(n(d)):me)},ft.jsxs=function(d,j,k){var z=1e4>J.recentlyCreatedOwnerStacks++;return m(d,j,k,!0,z?Error("react-stack-top-frame"):le,z?Z(n(d)):me)}})()),ft}var Dr;function In(){return Dr||(Dr=1,process.env.NODE_ENV==="production"?St.exports=Nn():St.exports=An()),St.exports}var T=In();const Ln=["hsl(var(--chart-1))","hsl(var(--chart-2))","hsl(var(--chart-3))","hsl(var(--chart-4))","hsl(var(--chart-5))"],Vt=C.forwardRef(({schema:e,className:t,dataSource:r,onRefresh:n,...o},i)=>{const l=e.columns||4,p=e.gap||4,[u,x]=C.useState(!1),[m,h]=C.useState(!1),S=C.useRef(null);C.useEffect(()=>{const a=()=>h(window.innerWidth<640);return a(),window.addEventListener("resize",a),()=>window.removeEventListener("resize",a)},[]);const P=C.useCallback(()=>{n&&(x(!0),n(),setTimeout(()=>x(!1),600))},[n]);C.useEffect(()=>{if(!(!e.refreshInterval||e.refreshInterval<=0||!n))return S.current=setInterval(P,e.refreshInterval*1e3),()=>{S.current&&clearInterval(S.current)}},[e.refreshInterval,n,P]);const D=(a,s)=>{const b=(()=>{if(a.component)return a.component;const w=a.type,f=a.options||{};if(w==="bar"||w==="line"||w==="area"||w==="pie"||w==="donut"){const y=a.data||f.data,R=Array.isArray(y)?y:y?.items||[],q=f.xField||"name",W=f.yField||"value";return{type:"chart",chartType:w,data:R,xAxisKey:q,series:[{dataKey:W}],colors:Ln,className:"h-[200px] sm:h-[250px] md:h-[300px]"}}if(w==="table"){const y=a.data||f.data;return{type:"data-table",...f,data:y?.items||[],searchable:!1,pagination:!1,className:"border-0"}}return{...a,...f}})(),E=a.type==="metric",c=a.id||a.title||`widget-${s}`;return E?T.jsx("div",{className:V.cn("h-full w-full",m&&"w-[85vw] shrink-0 snap-center"),style:!m&&a.layout?{gridColumn:`span ${a.layout.w}`,gridRow:`span ${a.layout.h}`}:void 0,children:T.jsx(rt.SchemaRenderer,{schema:b,className:"h-full w-full"})},c):T.jsxs(V.Card,{className:V.cn("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&&a.layout?{gridColumn:`span ${a.layout.w}`,gridRow:`span ${a.layout.h}`}:void 0,children:[a.title&&T.jsx(V.CardHeader,{className:"pb-2 border-b border-border/40 bg-muted/20 px-3 sm:px-6",children:T.jsx(V.CardTitle,{className:"text-sm sm:text-base font-medium tracking-tight truncate",title:a.title,children:a.title})}),T.jsx(V.CardContent,{className:"p-0",children:T.jsx("div",{className:V.cn("h-full w-full","p-3 sm:p-4 md:p-6"),children:T.jsx(rt.SchemaRenderer,{schema:b})})})]},c)},v=n&&T.jsx("div",{className:V.cn(m?"flex justify-end mb-2":"col-span-full flex justify-end mb-2"),children:T.jsxs(V.Button,{variant:"outline",size:"sm",onClick:P,disabled:u,"aria-label":"Refresh dashboard",children:[T.jsx(Re.RefreshCw,{className:V.cn("h-4 w-4 mr-2",u&&"animate-spin")}),u?"Refreshing…":"Refresh All"]})});return m?T.jsxs("div",{ref:i,className:V.cn("flex flex-col",t),...o,children:[v,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((a,s)=>D(a,s))})]}):T.jsxs("div",{ref:i,className:V.cn("grid auto-rows-min","grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4",t),style:{...l>4&&{gridTemplateColumns:`repeat(${l}, minmax(0, 1fr))`},gap:`${p*.25}rem`},...o,children:[v,e.widgets?.map((a,s)=>D(a,s))]})});function nt(e){const{margin:t,containerPadding:r,containerWidth:n,cols:o}=e;return(n-t[0]*(o-1)-r[0]*2)/o}function ot(e,t,r){return Number.isFinite(e)?Math.round(t*e+Math.max(0,e-1)*r):e}function dt(e,t,r,n,o,i,l){const{margin:p,containerPadding:u,rowHeight:x}=e,m=nt(e);let h,S,P,D;if(l?(h=Math.round(l.width),S=Math.round(l.height)):(h=ot(n,m,p[0]),S=ot(o,x,p[1])),i?(P=Math.round(i.top),D=Math.round(i.left)):l?(P=Math.round(l.top),D=Math.round(l.left)):(P=Math.round((x+p[1])*r+u[1]),D=Math.round((m+p[0])*t+u[0])),!i&&!l){if(Number.isFinite(n)){const a=Math.round((m+p[0])*(t+n)+u[0])-D-h;a!==p[0]&&(h+=a-p[0])}if(Number.isFinite(o)){const a=Math.round((x+p[1])*(r+o)+u[1])-P-S;a!==p[1]&&(S+=a-p[1])}}return{top:P,left:D,width:h,height:S}}function Wn(e,t,r,n,o){const{margin:i,containerPadding:l,cols:p,rowHeight:u,maxRows:x}=e,m=nt(e);let h=Math.round((r-l[0])/(m+i[0])),S=Math.round((t-l[1])/(u+i[1]));return h=Ct(h,0,p-n),S=Ct(S,0,x-o),{x:h,y:S}}function Et(e,t,r){const{margin:n,containerPadding:o,rowHeight:i}=e,l=nt(e),p=Math.round((r-o[0])/(l+n[0])),u=Math.round((t-o[1])/(i+n[1]));return{x:p,y:u}}function qn(e,t,r){const{margin:n,rowHeight:o}=e,i=nt(e),l=Math.max(1,Math.round((t+n[0])/(i+n[0]))),p=Math.max(1,Math.round((r+n[1])/(o+n[1])));return{w:l,h:p}}function Ct(e,t,r){return Math.max(Math.min(e,r),t)}function Jt(e,t){return!(e.i===t.i||e.x+e.w<=t.x||e.x>=t.x+t.w||e.y+e.h<=t.y||e.y>=t.y+t.h)}function Ze(e,t){for(let r=0;r<e.length;r++){const n=e[r];if(n!==void 0&&Jt(n,t))return n}}function _r(e,t){return e.filter(r=>Jt(r,t))}function $n(e,t){return t==="horizontal"?jr(e):t==="vertical"||t==="wrap"?Kt(e):[...e]}function Kt(e){return[...e].sort((t,r)=>t.y!==r.y?t.y-r.y:t.x-r.x)}function jr(e){return[...e].sort((t,r)=>t.x!==r.x?t.x-r.x:t.y-r.y)}function Pt(e){let t=0;for(let r=0;r<e.length;r++){const n=e[r];if(n!==void 0){const o=n.y+n.h;o>t&&(t=o)}}return t}function Qe(e,t){for(let r=0;r<e.length;r++){const n=e[r];if(n!==void 0&&n.i===t)return n}}function Ot(e){return e.filter(t=>t.static===!0)}function et(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 Be(e){const t=new Array(e.length);for(let r=0;r<e.length;r++){const n=e[r];n!==void 0&&(t[r]=et(n))}return t}function Hn(e,t){const r=new Array(e.length);for(let n=0;n<e.length;n++){const o=e[n];o!==void 0&&(t.i===o.i?r[n]=t:r[n]=o)}return r}function Yn(e,t,r){let n=Qe(e,t);return n?(n=r(et(n)),[Hn(e,n),n]):[[...e],null]}function Zt(e,t){const r=Ot(e);for(let n=0;n<e.length;n++){const o=e[n];if(o!==void 0)if(o.x+o.w>t.cols&&(o.x=t.cols-o.w),o.x<0&&(o.x=0,o.w=t.cols),!o.static)r.push(o);else for(;Ze(r,o);)o.y++}return e}function tt(e,t,r,n,o,i,l,p,u){if(t.static&&t.isDraggable!==!0)return[...e];if(t.y===n&&t.x===r)return[...e];const x=t.x,m=t.y;typeof r=="number"&&(t.x=r),typeof n=="number"&&(t.y=n),t.moved=!0;let h=$n(e,l);(l==="vertical"&&typeof n=="number"?m>=n:l==="horizontal"&&typeof r=="number"&&x>=r)&&(h=h.reverse());const P=_r(h,t),D=P.length>0;if(D&&u)return Be(e);if(D&&i)return t.x=x,t.y=m,t.moved=!1,e;let v=[...e];for(let a=0;a<P.length;a++){const s=P[a];s!==void 0&&(s.moved||(s.static?v=Tr(v,s,t,o,l):v=Tr(v,t,s,o,l)))}return v}function Tr(e,t,r,n,o,i){const l=o==="horizontal",p=o==="vertical",u=t.static;if(n){n=!1;const h={x:l?Math.max(t.x-r.w,0):r.x,y:p?Math.max(t.y-r.h,0):r.y,w:r.w,h:r.h,i:"-1"},S=Ze(e,h),P=S!==void 0&&S.y+S.h>t.y,D=S!==void 0&&t.x+t.w>S.x;if(!S)return tt(e,r,l?h.x:void 0,p?h.y:void 0,n,u,o);if(P&&p)return tt(e,r,void 0,r.y+1,n,u,o);if(P&&o===null)return t.y=r.y,r.y=r.y+r.h,[...e];if(D&&l)return tt(e,t,r.x,void 0,n,u,o)}const x=l?r.x+1:void 0,m=p?r.y+1:void 0;return x===void 0&&m===void 0?[...e]:tt(e,r,x,m,n,u,o)}function at(e,t,r){return Math.max(t,Math.min(r,e))}var Bn={name:"gridBounds",constrainPosition(e,t,r,{cols:n,maxRows:o}){return{x:at(t,0,Math.max(0,n-e.w)),y:at(r,0,Math.max(0,o-e.h))}},constrainSize(e,t,r,n,{cols:o,maxRows:i}){const l=n==="w"||n==="nw"||n==="sw"?e.x+e.w:o-e.x,p=n==="n"||n==="nw"||n==="ne"?e.y+e.h:i-e.y;return{w:at(t,1,Math.max(1,l)),h:at(r,1,Math.max(1,p))}}},Fn={name:"minMaxSize",constrainSize(e,t,r){return{w:at(t,e.minW??1,e.maxW??1/0),h:at(r,e.minH??1,e.maxH??1/0)}}},Mr=[Bn,Fn];function Rt(e,t,r,n,o){let i={x:r,y:n};for(const l of e)l.constrainPosition&&(i=l.constrainPosition(t,i.x,i.y,o));if(t.constraints)for(const l of t.constraints)l.constrainPosition&&(i=l.constrainPosition(t,i.x,i.y,o));return i}function Xn(e,t,r,n,o,i){let l={w:r,h:n};for(const p of e)p.constrainSize&&(l=p.constrainSize(t,l.w,l.h,o,i));if(t.constraints)for(const p of t.constraints)p.constrainSize&&(l=p.constrainSize(t,l.w,l.h,o,i));return l}function zr({top:e,left:t,width:r,height:n}){const o=`translate(${t}px,${e}px)`;return{transform:o,WebkitTransform:o,MozTransform:o,msTransform:o,OTransform:o,width:`${r}px`,height:`${n}px`,position:"absolute"}}function Un({top:e,left:t,width:r,height:n}){return{top:`${e}px`,left:`${t}px`,width:`${r}px`,height:`${n}px`,position:"absolute"}}function kr(e){return e*100+"%"}function Gn(e,t,r,n){return e+r>n?t:r}function Nr(e,t,r){return e<0?t:r}function Vn(e){return Math.max(0,e)}function Dt(e){return Math.max(0,e)}var Qt=(e,t,r)=>{const{left:n,height:o,width:i}=t,l=e.top-(o-e.height);return{left:n,width:i,height:Nr(l,e.height,o),top:Dt(l)}},er=(e,t,r)=>{const{top:n,left:o,height:i,width:l}=t;return{top:n,height:i,width:Gn(e.left,e.width,l,r),left:Vn(o)}},tr=(e,t,r)=>{const{top:n,height:o,width:i}=t,l=e.left+e.width-i;return l<0?{height:o,width:e.left+e.width,top:Dt(n),left:0}:{height:o,width:i,top:Dt(n),left:l}},rr=(e,t,r)=>{const{top:n,left:o,height:i,width:l}=t;return{width:l,left:o,height:Nr(n,e.height,i),top:Dt(n)}},Jn=(e,t,r)=>Qt(e,er(e,t,r)),Kn=(e,t,r)=>Qt(e,tr(e,t)),Zn=(e,t,r)=>rr(e,er(e,t,r)),Qn=(e,t,r)=>rr(e,tr(e,t)),eo={n:Qt,ne:Jn,e:er,se:Zn,s:rr,sw:Qn,w:tr,nw:Kn};function to(e,t,r,n){const o=eo[e];return o?o(t,{...t,...r},n):r}var ro={type:"transform",scale:1,calcStyle(e){return zr(e)}},no=ro,oo={cols:12,rowHeight:150,margin:[10,10],containerPadding:null,maxRows:1/0},ao={enabled:!0,bounded:!1,threshold:3},so={enabled:!0,handles:["se"]},io={enabled:!1,defaultItem:{w:1,h:1}};function nr(e,t,r,n,o){const i=n==="x"?"w":"h";t[n]+=1;const l=e.findIndex(u=>u.i===t.i),p=o??Ot(e).length>0;for(let u=l+1;u<e.length;u++){const x=e[u];if(x!==void 0&&!x.static){if(!p&&x.y>t.y+t.h)break;Jt(t,x)&&nr(e,x,r+t[i],n,p)}}t[n]=r}function lo(e,t,r,n){for(t.x=Math.max(t.x,0),t.y=Math.max(t.y,0),t.y=Math.min(n,t.y);t.y>0&&!Ze(e,t);)t.y--;let o;for(;(o=Ze(e,t))!==void 0;)nr(r,t,o.y+o.h,"y");return t.y=Math.max(t.y,0),t}function uo(e,t,r,n){for(t.x=Math.max(t.x,0),t.y=Math.max(t.y,0);t.x>0&&!Ze(e,t);)t.x--;let o;for(;(o=Ze(e,t))!==void 0;)if(nr(n,t,o.x+o.w,"x"),t.x+t.w>r)for(t.x=r-t.w,t.y++;t.x>0&&!Ze(e,t);)t.x--;return t.x=Math.max(t.x,0),t}var Ar={type:"vertical",allowOverlap:!1,compact(e,t){const r=Ot(e);let n=Pt(r);const o=Kt(e),i=new Array(e.length);for(let l=0;l<o.length;l++){const p=o[l];if(p===void 0)continue;let u=et(p);u.static||(u=lo(r,u,o,n),n=Math.max(n,u.y+u.h),r.push(u));const x=e.indexOf(p);i[x]=u,u.moved=!1}return i}},Ir={type:"horizontal",allowOverlap:!1,compact(e,t){const r=Ot(e),n=jr(e),o=new Array(e.length);for(let i=0;i<n.length;i++){const l=n[i];if(l===void 0)continue;let p=et(l);p.static||(p=uo(r,p,t,n),r.push(p));const u=e.indexOf(l);o[u]=p,p.moved=!1}return o}},Lr={type:null,allowOverlap:!1,compact(e,t){return Be(e)}},co={...Ar,allowOverlap:!0,compact(e,t){return Be(e)}},fo={...Ir,allowOverlap:!0,compact(e,t){return Be(e)}},po={...Lr,allowOverlap:!0};function or(e,t=!1,r=!1){let n;return t?e==="vertical"?n=co:e==="horizontal"?n=fo:n=po:e==="vertical"?n=Ar:e==="horizontal"?n=Ir:n=Lr,r?{...n,preventCollision:r}:n}function Wr(e){return Object.keys(e).sort((r,n)=>e[r]-e[n])}function qr(e,t){const r=Wr(e);let n=r[0];if(n===void 0)throw new Error("No breakpoints defined");for(let o=1;o<r.length;o++){const i=r[o];if(i===void 0)continue;const l=e[i];t>l&&(n=i)}return n}function $r(e,t){const r=t[e];if(r===void 0)throw new Error(`ResponsiveReactGridLayout: \`cols\` entry for breakpoint ${String(e)} is missing!`);return r}function ar(e,t,r,n,o,i){const l=e[r];if(l)return Be(l);let p=e[n];const u=Wr(t),x=u.slice(u.indexOf(r));for(let P=0;P<x.length;P++){const D=x[P];if(D===void 0)continue;const v=e[D];if(v){p=v;break}}const m=Be(p||[]),h=Zt(m,{cols:o});return(typeof i=="object"&&i!==null?i:or(i)).compact(h,o)}function _t(e,t){if(Array.isArray(e))return e;const r=e,n=r[t];if(n!==void 0)return n;const o=Object.keys(r);for(const i of o){const l=r[i];if(l!==void 0)return l}return[10,10]}function Hr(e){return function(r,n,o,i,l,p,u){return e(r,n,u)}}function jt(e){return function(r,n,o,i){if(!r||!n||typeof r!="object"||typeof n!="object")return e(r,n,o,i);var l=i.get(r),p=i.get(n);if(l&&p)return l===n&&p===r;i.set(r,n),i.set(n,r);var u=e(r,n,o,i);return i.delete(r),i.delete(n),u}}function Yr(e,t){var r={};for(var n in e)r[n]=e[n];for(var n in t)r[n]=t[n];return r}function Br(e){return e.constructor===Object||e.constructor==null}function Fr(e){return typeof e.then=="function"}function Tt(e,t){return e===t||e!==e&&t!==t}var ho="[object Arguments]",go="[object Boolean]",mo="[object Date]",yo="[object RegExp]",vo="[object Map]",bo="[object Number]",xo="[object Object]",wo="[object Set]",So="[object String]",Xr=Object.prototype.toString;function Mt(e){var t=e.areArraysEqual,r=e.areDatesEqual,n=e.areMapsEqual,o=e.areObjectsEqual,i=e.areRegExpsEqual,l=e.areSetsEqual,p=e.createIsNestedEqual,u=p(x);function x(m,h,S){if(m===h)return!0;if(!m||!h||typeof m!="object"||typeof h!="object")return m!==m&&h!==h;if(Br(m)&&Br(h))return o(m,h,u,S);var P=Array.isArray(m),D=Array.isArray(h);if(P||D)return P===D&&t(m,h,u,S);var v=Xr.call(m);return v!==Xr.call(h)?!1:v===mo?r(m,h,u,S):v===yo?i(m,h,u,S):v===vo?n(m,h,u,S):v===wo?l(m,h,u,S):v===xo||v===ho?Fr(m)||Fr(h)?!1:o(m,h,u,S):v===go||v===bo||v===So?Tt(m.valueOf(),h.valueOf()):!1}return x}function Ur(e,t,r,n){var o=e.length;if(t.length!==o)return!1;for(;o-- >0;)if(!r(e[o],t[o],o,o,e,t,n))return!1;return!0}var Eo=jt(Ur);function Gr(e,t){return Tt(e.valueOf(),t.valueOf())}function Vr(e,t,r,n){var o=e.size===t.size;if(!o)return!1;if(!e.size)return!0;var i={},l=0;return e.forEach(function(p,u){if(o){var x=!1,m=0;t.forEach(function(h,S){!x&&!i[m]&&(x=r(u,S,l,m,e,t,n)&&r(p,h,u,S,e,t,n))&&(i[m]=!0),m++}),l++,o=x}}),o}var Co=jt(Vr),Po="_owner",Oo=Object.prototype.hasOwnProperty;function Jr(e,t,r,n){var o=Object.keys(e),i=o.length;if(Object.keys(t).length!==i)return!1;for(var l;i-- >0;){if(l=o[i],l===Po){var p=!!e.$$typeof,u=!!t.$$typeof;if((p||u)&&p!==u)return!1}if(!Oo.call(t,l)||!r(e[l],t[l],l,l,e,t,n))return!1}return!0}var Ro=jt(Jr);function Kr(e,t){return e.source===t.source&&e.flags===t.flags}function Zr(e,t,r,n){var o=e.size===t.size;if(!o)return!1;if(!e.size)return!0;var i={};return e.forEach(function(l,p){if(o){var u=!1,x=0;t.forEach(function(m,h){!u&&!i[x]&&(u=r(l,m,p,h,e,t,n))&&(i[x]=!0),x++}),o=u}}),o}var Do=jt(Zr),Qr=Object.freeze({areArraysEqual:Ur,areDatesEqual:Gr,areMapsEqual:Vr,areObjectsEqual:Jr,areRegExpsEqual:Kr,areSetsEqual:Zr,createIsNestedEqual:Hr}),en=Object.freeze({areArraysEqual:Eo,areDatesEqual:Gr,areMapsEqual:Co,areObjectsEqual:Ro,areRegExpsEqual:Kr,areSetsEqual:Do,createIsNestedEqual:Hr}),_o=Mt(Qr);function qe(e,t){return _o(e,t,void 0)}Mt(Yr(Qr,{createIsNestedEqual:function(){return Tt}})),Mt(en),Mt(Yr(en,{createIsNestedEqual:function(){return Tt}}));function jo(e={}){const{measureBeforeMount:t=!1,initialWidth:r=1280}=e,[n,o]=C.useState(r),[i,l]=C.useState(!t),p=C.useRef(null),u=C.useRef(null),x=C.useCallback(()=>{const m=p.current;if(m){const h=m.offsetWidth;o(h),i||l(!0)}},[i]);return C.useEffect(()=>{const m=p.current;if(m)return x(),typeof ResizeObserver<"u"&&(u.current=new ResizeObserver(h=>{const S=h[0];if(S){const P=S.contentRect.width;o(P)}}),u.current.observe(m)),()=>{u.current&&(u.current.disconnect(),u.current=null)}},[x]),{width:n,mounted:i,containerRef:p,measureWidth:x}}var pt={exports:{}},sr={},zt={exports:{}},kt={exports:{}},ee={};var tn;function To(){if(tn)return ee;tn=1;var e=typeof Symbol=="function"&&Symbol.for,t=e?Symbol.for("react.element"):60103,r=e?Symbol.for("react.portal"):60106,n=e?Symbol.for("react.fragment"):60107,o=e?Symbol.for("react.strict_mode"):60108,i=e?Symbol.for("react.profiler"):60114,l=e?Symbol.for("react.provider"):60109,p=e?Symbol.for("react.context"):60110,u=e?Symbol.for("react.async_mode"):60111,x=e?Symbol.for("react.concurrent_mode"):60111,m=e?Symbol.for("react.forward_ref"):60112,h=e?Symbol.for("react.suspense"):60113,S=e?Symbol.for("react.suspense_list"):60120,P=e?Symbol.for("react.memo"):60115,D=e?Symbol.for("react.lazy"):60116,v=e?Symbol.for("react.block"):60121,a=e?Symbol.for("react.fundamental"):60117,s=e?Symbol.for("react.responder"):60118,g=e?Symbol.for("react.scope"):60119;function b(c){if(typeof c=="object"&&c!==null){var w=c.$$typeof;switch(w){case t:switch(c=c.type,c){case u:case x:case n:case i:case o:case h:return c;default:switch(c=c&&c.$$typeof,c){case p:case m:case D:case P:case l:return c;default:return w}}case r:return w}}}function E(c){return b(c)===x}return ee.AsyncMode=u,ee.ConcurrentMode=x,ee.ContextConsumer=p,ee.ContextProvider=l,ee.Element=t,ee.ForwardRef=m,ee.Fragment=n,ee.Lazy=D,ee.Memo=P,ee.Portal=r,ee.Profiler=i,ee.StrictMode=o,ee.Suspense=h,ee.isAsyncMode=function(c){return E(c)||b(c)===u},ee.isConcurrentMode=E,ee.isContextConsumer=function(c){return b(c)===p},ee.isContextProvider=function(c){return b(c)===l},ee.isElement=function(c){return typeof c=="object"&&c!==null&&c.$$typeof===t},ee.isForwardRef=function(c){return b(c)===m},ee.isFragment=function(c){return b(c)===n},ee.isLazy=function(c){return b(c)===D},ee.isMemo=function(c){return b(c)===P},ee.isPortal=function(c){return b(c)===r},ee.isProfiler=function(c){return b(c)===i},ee.isStrictMode=function(c){return b(c)===o},ee.isSuspense=function(c){return b(c)===h},ee.isValidElementType=function(c){return typeof c=="string"||typeof c=="function"||c===n||c===x||c===i||c===o||c===h||c===S||typeof c=="object"&&c!==null&&(c.$$typeof===D||c.$$typeof===P||c.$$typeof===l||c.$$typeof===p||c.$$typeof===m||c.$$typeof===a||c.$$typeof===s||c.$$typeof===g||c.$$typeof===v)},ee.typeOf=b,ee}var te={};var rn;function Mo(){return rn||(rn=1,process.env.NODE_ENV!=="production"&&(function(){var e=typeof Symbol=="function"&&Symbol.for,t=e?Symbol.for("react.element"):60103,r=e?Symbol.for("react.portal"):60106,n=e?Symbol.for("react.fragment"):60107,o=e?Symbol.for("react.strict_mode"):60108,i=e?Symbol.for("react.profiler"):60114,l=e?Symbol.for("react.provider"):60109,p=e?Symbol.for("react.context"):60110,u=e?Symbol.for("react.async_mode"):60111,x=e?Symbol.for("react.concurrent_mode"):60111,m=e?Symbol.for("react.forward_ref"):60112,h=e?Symbol.for("react.suspense"):60113,S=e?Symbol.for("react.suspense_list"):60120,P=e?Symbol.for("react.memo"):60115,D=e?Symbol.for("react.lazy"):60116,v=e?Symbol.for("react.block"):60121,a=e?Symbol.for("react.fundamental"):60117,s=e?Symbol.for("react.responder"):60118,g=e?Symbol.for("react.scope"):60119;function b(_){return typeof _=="string"||typeof _=="function"||_===n||_===x||_===i||_===o||_===h||_===S||typeof _=="object"&&_!==null&&(_.$$typeof===D||_.$$typeof===P||_.$$typeof===l||_.$$typeof===p||_.$$typeof===m||_.$$typeof===a||_.$$typeof===s||_.$$typeof===g||_.$$typeof===v)}function E(_){if(typeof _=="object"&&_!==null){var ae=_.$$typeof;switch(ae){case t:var je=_.type;switch(je){case u:case x:case n:case i:case o:case h:return je;default:var De=je&&je.$$typeof;switch(De){case p:case m:case D:case P:case l:return De;default:return ae}}case r:return ae}}}var c=u,w=x,f=p,y=l,R=t,q=m,W=n,J=D,A=P,Y=r,Z=i,U=o,K=h,le=!1;function me(_){return le||(le=!0,console.warn("The ReactIs.isAsyncMode() alias has been deprecated, and will be removed in React 17+. Update your code to use ReactIs.isConcurrentMode() instead. It has the exact same API.")),O(_)||E(_)===u}function O(_){return E(_)===x}function d(_){return E(_)===p}function j(_){return E(_)===l}function k(_){return typeof _=="object"&&_!==null&&_.$$typeof===t}function z(_){return E(_)===m}function X(_){return E(_)===n}function I(_){return E(_)===D}function M(_){return E(_)===P}function $(_){return E(_)===r}function N(_){return E(_)===i}function H(_){return E(_)===o}function F(_){return E(_)===h}te.AsyncMode=c,te.ConcurrentMode=w,te.ContextConsumer=f,te.ContextProvider=y,te.Element=R,te.ForwardRef=q,te.Fragment=W,te.Lazy=J,te.Memo=A,te.Portal=Y,te.Profiler=Z,te.StrictMode=U,te.Suspense=K,te.isAsyncMode=me,te.isConcurrentMode=O,te.isContextConsumer=d,te.isContextProvider=j,te.isElement=k,te.isForwardRef=z,te.isFragment=X,te.isLazy=I,te.isMemo=M,te.isPortal=$,te.isProfiler=N,te.isStrictMode=H,te.isSuspense=F,te.isValidElementType=b,te.typeOf=E})()),te}var nn;function on(){return nn||(nn=1,process.env.NODE_ENV==="production"?kt.exports=To():kt.exports=Mo()),kt.exports}var ir,an;function zo(){if(an)return ir;an=1;var e=Object.getOwnPropertySymbols,t=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;function n(i){if(i==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(i)}function o(){try{if(!Object.assign)return!1;var i=new String("abc");if(i[5]="de",Object.getOwnPropertyNames(i)[0]==="5")return!1;for(var l={},p=0;p<10;p++)l["_"+String.fromCharCode(p)]=p;var u=Object.getOwnPropertyNames(l).map(function(m){return l[m]});if(u.join("")!=="0123456789")return!1;var x={};return"abcdefghijklmnopqrst".split("").forEach(function(m){x[m]=m}),Object.keys(Object.assign({},x)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}return ir=o()?Object.assign:function(i,l){for(var p,u=n(i),x,m=1;m<arguments.length;m++){p=Object(arguments[m]);for(var h in p)t.call(p,h)&&(u[h]=p[h]);if(e){x=e(p);for(var S=0;S<x.length;S++)r.call(p,x[S])&&(u[x[S]]=p[x[S]])}}return u},ir}var lr,sn;function ur(){if(sn)return lr;sn=1;var e="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";return lr=e,lr}var cr,ln;function un(){return ln||(ln=1,cr=Function.call.bind(Object.prototype.hasOwnProperty)),cr}var fr,cn;function ko(){if(cn)return fr;cn=1;var e=function(){};if(process.env.NODE_ENV!=="production"){var t=ur(),r={},n=un();e=function(i){var l="Warning: "+i;typeof console<"u"&&console.error(l);try{throw new Error(l)}catch{}}}function o(i,l,p,u,x){if(process.env.NODE_ENV!=="production"){for(var m in i)if(n(i,m)){var h;try{if(typeof i[m]!="function"){var S=Error((u||"React class")+": "+p+" type `"+m+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof i[m]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw S.name="Invariant Violation",S}h=i[m](l,m,u,p,null,t)}catch(D){h=D}if(h&&!(h instanceof Error)&&e((u||"React class")+": type specification of "+p+" `"+m+"` is invalid; the type checker function must return `null` or an `Error` but returned a "+typeof h+". You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument)."),h instanceof Error&&!(h.message in r)){r[h.message]=!0;var P=x?x():"";e("Failed "+p+" type: "+h.message+(P??""))}}}}return o.resetWarningCache=function(){process.env.NODE_ENV!=="production"&&(r={})},fr=o,fr}var dr,fn;function No(){if(fn)return dr;fn=1;var e=on(),t=zo(),r=ur(),n=un(),o=ko(),i=function(){};process.env.NODE_ENV!=="production"&&(i=function(p){var u="Warning: "+p;typeof console<"u"&&console.error(u);try{throw new Error(u)}catch{}});function l(){return null}return dr=function(p,u){var x=typeof Symbol=="function"&&Symbol.iterator,m="@@iterator";function h(O){var d=O&&(x&&O[x]||O[m]);if(typeof d=="function")return d}var S="<<anonymous>>",P={array:s("array"),bigint:s("bigint"),bool:s("boolean"),func:s("function"),number:s("number"),object:s("object"),string:s("string"),symbol:s("symbol"),any:g(),arrayOf:b,element:E(),elementType:c(),instanceOf:w,node:q(),objectOf:y,oneOf:f,oneOfType:R,shape:J,exact:A};function D(O,d){return O===d?O!==0||1/O===1/d:O!==O&&d!==d}function v(O,d){this.message=O,this.data=d&&typeof d=="object"?d:{},this.stack=""}v.prototype=Error.prototype;function a(O){if(process.env.NODE_ENV!=="production")var d={},j=0;function k(X,I,M,$,N,H,F){if($=$||S,H=H||M,F!==r){if(u){var _=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types");throw _.name="Invariant Violation",_}else if(process.env.NODE_ENV!=="production"&&typeof console<"u"){var ae=$+":"+M;!d[ae]&&j<3&&(i("You are manually calling a React.PropTypes validation function for the `"+H+"` prop on `"+$+"`. This is deprecated and will throw in the standalone `prop-types` package. You may be seeing this warning due to a third-party PropTypes library. See https://fb.me/react-warning-dont-call-proptypes for details."),d[ae]=!0,j++)}}return I[M]==null?X?I[M]===null?new v("The "+N+" `"+H+"` is marked as required "+("in `"+$+"`, but its value is `null`.")):new v("The "+N+" `"+H+"` is marked as required in "+("`"+$+"`, but its value is `undefined`.")):null:O(I,M,$,N,H)}var z=k.bind(null,!1);return z.isRequired=k.bind(null,!0),z}function s(O){function d(j,k,z,X,I,M){var $=j[k],N=U($);if(N!==O){var H=K($);return new v("Invalid "+X+" `"+I+"` of type "+("`"+H+"` supplied to `"+z+"`, expected ")+("`"+O+"`."),{expectedType:O})}return null}return a(d)}function g(){return a(l)}function b(O){function d(j,k,z,X,I){if(typeof O!="function")return new v("Property `"+I+"` of component `"+z+"` has invalid PropType notation inside arrayOf.");var M=j[k];if(!Array.isArray(M)){var $=U(M);return new v("Invalid "+X+" `"+I+"` of type "+("`"+$+"` supplied to `"+z+"`, expected an array."))}for(var N=0;N<M.length;N++){var H=O(M,N,z,X,I+"["+N+"]",r);if(H instanceof Error)return H}return null}return a(d)}function E(){function O(d,j,k,z,X){var I=d[j];if(!p(I)){var M=U(I);return new v("Invalid "+z+" `"+X+"` of type "+("`"+M+"` supplied to `"+k+"`, expected a single ReactElement."))}return null}return a(O)}function c(){function O(d,j,k,z,X){var I=d[j];if(!e.isValidElementType(I)){var M=U(I);return new v("Invalid "+z+" `"+X+"` of type "+("`"+M+"` supplied to `"+k+"`, expected a single ReactElement type."))}return null}return a(O)}function w(O){function d(j,k,z,X,I){if(!(j[k]instanceof O)){var M=O.name||S,$=me(j[k]);return new v("Invalid "+X+" `"+I+"` of type "+("`"+$+"` supplied to `"+z+"`, expected ")+("instance of `"+M+"`."))}return null}return a(d)}function f(O){if(!Array.isArray(O))return process.env.NODE_ENV!=="production"&&(arguments.length>1?i("Invalid arguments supplied to oneOf, expected an array, got "+arguments.length+" arguments. A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z])."):i("Invalid argument supplied to oneOf, expected an array.")),l;function d(j,k,z,X,I){for(var M=j[k],$=0;$<O.length;$++)if(D(M,O[$]))return null;var N=JSON.stringify(O,function(F,_){var ae=K(_);return ae==="symbol"?String(_):_});return new v("Invalid "+X+" `"+I+"` of value `"+String(M)+"` "+("supplied to `"+z+"`, expected one of "+N+"."))}return a(d)}function y(O){function d(j,k,z,X,I){if(typeof O!="function")return new v("Property `"+I+"` of component `"+z+"` has invalid PropType notation inside objectOf.");var M=j[k],$=U(M);if($!=="object")return new v("Invalid "+X+" `"+I+"` of type "+("`"+$+"` supplied to `"+z+"`, expected an object."));for(var N in M)if(n(M,N)){var H=O(M,N,z,X,I+"."+N,r);if(H instanceof Error)return H}return null}return a(d)}function R(O){if(!Array.isArray(O))return process.env.NODE_ENV!=="production"&&i("Invalid argument supplied to oneOfType, expected an instance of array."),l;for(var d=0;d<O.length;d++){var j=O[d];if(typeof j!="function")return i("Invalid argument supplied to oneOfType. Expected an array of check functions, but received "+le(j)+" at index "+d+"."),l}function k(z,X,I,M,$){for(var N=[],H=0;H<O.length;H++){var F=O[H],_=F(z,X,I,M,$,r);if(_==null)return null;_.data&&n(_.data,"expectedType")&&N.push(_.data.expectedType)}var ae=N.length>0?", expected one of type ["+N.join(", ")+"]":"";return new v("Invalid "+M+" `"+$+"` supplied to "+("`"+I+"`"+ae+"."))}return a(k)}function q(){function O(d,j,k,z,X){return Y(d[j])?null:new v("Invalid "+z+" `"+X+"` supplied to "+("`"+k+"`, expected a ReactNode."))}return a(O)}function W(O,d,j,k,z){return new v((O||"React class")+": "+d+" type `"+j+"."+k+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+z+"`.")}function J(O){function d(j,k,z,X,I){var M=j[k],$=U(M);if($!=="object")return new v("Invalid "+X+" `"+I+"` of type `"+$+"` "+("supplied to `"+z+"`, expected `object`."));for(var N in O){var H=O[N];if(typeof H!="function")return W(z,X,I,N,K(H));var F=H(M,N,z,X,I+"."+N,r);if(F)return F}return null}return a(d)}function A(O){function d(j,k,z,X,I){var M=j[k],$=U(M);if($!=="object")return new v("Invalid "+X+" `"+I+"` of type `"+$+"` "+("supplied to `"+z+"`, expected `object`."));var N=t({},j[k],O);for(var H in N){var F=O[H];if(n(O,H)&&typeof F!="function")return W(z,X,I,H,K(F));if(!F)return new v("Invalid "+X+" `"+I+"` key `"+H+"` supplied to `"+z+"`.\nBad object: "+JSON.stringify(j[k],null," ")+`
7
+ Valid keys: `+JSON.stringify(Object.keys(O),null," "));var _=F(M,H,z,X,I+"."+H,r);if(_)return _}return null}return a(d)}function Y(O){switch(typeof O){case"number":case"string":case"undefined":return!0;case"boolean":return!O;case"object":if(Array.isArray(O))return O.every(Y);if(O===null||p(O))return!0;var d=h(O);if(d){var j=d.call(O),k;if(d!==O.entries){for(;!(k=j.next()).done;)if(!Y(k.value))return!1}else for(;!(k=j.next()).done;){var z=k.value;if(z&&!Y(z[1]))return!1}}else return!1;return!0;default:return!1}}function Z(O,d){return O==="symbol"?!0:d?d["@@toStringTag"]==="Symbol"||typeof Symbol=="function"&&d instanceof Symbol:!1}function U(O){var d=typeof O;return Array.isArray(O)?"array":O instanceof RegExp?"object":Z(d,O)?"symbol":d}function K(O){if(typeof O>"u"||O===null)return""+O;var d=U(O);if(d==="object"){if(O instanceof Date)return"date";if(O instanceof RegExp)return"regexp"}return d}function le(O){var d=K(O);switch(d){case"array":case"object":return"an "+d;case"boolean":case"date":case"regexp":return"a "+d;default:return d}}function me(O){return!O.constructor||!O.constructor.name?S:O.constructor.name}return P.checkPropTypes=o,P.resetWarningCache=o.resetWarningCache,P.PropTypes=P,P},dr}var pr,dn;function Ao(){if(dn)return pr;dn=1;var e=ur();function t(){}function r(){}return r.resetWarningCache=t,pr=function(){function n(l,p,u,x,m,h){if(h!==e){var S=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw S.name="Invariant Violation",S}}n.isRequired=n;function o(){return n}var i={array:n,bigint:n,bool:n,func:n,number:n,object:n,string:n,symbol:n,any:n,arrayOf:o,element:n,elementType:n,instanceOf:o,node:n,objectOf:o,oneOf:o,oneOfType:o,shape:o,exact:o,checkPropTypes:r,resetWarningCache:t};return i.PropTypes=i,i},pr}var pn;function Nt(){if(pn)return zt.exports;if(pn=1,process.env.NODE_ENV!=="production"){var e=on(),t=!0;zt.exports=No()(e.isElement,t)}else zt.exports=Ao()();return zt.exports}var ge={},Fe={},hn;function At(){if(hn)return Fe;hn=1,Object.defineProperty(Fe,"__esModule",{value:!0}),Fe.dontSetMe=o,Fe.findInArray=e,Fe.int=n,Fe.isFunction=t,Fe.isNum=r;function e(i,l){for(let p=0,u=i.length;p<u;p++)if(l.apply(l,[i[p],p,i]))return i[p]}function t(i){return typeof i=="function"||Object.prototype.toString.call(i)==="[object Function]"}function r(i){return typeof i=="number"&&!isNaN(i)}function n(i){return parseInt(i,10)}function o(i,l,p){if(i[l])return new Error(`Invalid prop ${l} passed to ${p} - do not set this, set it on the child.`)}return Fe}var Xe={},gn;function Io(){if(gn)return Xe;gn=1,Object.defineProperty(Xe,"__esModule",{value:!0}),Xe.browserPrefixToKey=r,Xe.browserPrefixToStyle=n,Xe.default=void 0,Xe.getPrefix=t;const e=["Moz","Webkit","O","ms"];function t(){let i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"transform";if(typeof window>"u")return"";const l=window.document?.documentElement?.style;if(!l||i in l)return"";for(let p=0;p<e.length;p++)if(r(i,e[p])in l)return e[p];return""}function r(i,l){return l?`${l}${o(i)}`:i}function n(i,l){return l?`-${l.toLowerCase()}-${i}`:i}function o(i){let l="",p=!0;for(let u=0;u<i.length;u++)p?(l+=i[u].toUpperCase(),p=!1):i[u]==="-"?p=!0:l+=i[u];return l}return Xe.default=t(),Xe}var mn;function hr(){if(mn)return ge;mn=1,Object.defineProperty(ge,"__esModule",{value:!0}),ge.addClassName=c,ge.addEvent=l,ge.addUserSelectStyles=g,ge.createCSSTransform=P,ge.createSVGTransform=D,ge.getTouch=a,ge.getTouchIdentifier=s,ge.getTranslation=v,ge.innerHeight=m,ge.innerWidth=h,ge.matchesSelector=o,ge.matchesSelectorAndParentsTo=i,ge.offsetXYFromParent=S,ge.outerHeight=u,ge.outerWidth=x,ge.removeClassName=w,ge.removeEvent=p,ge.scheduleRemoveUserSelectStyles=b;var e=At(),t=r(Io());function r(f,y){if(typeof WeakMap=="function")var R=new WeakMap,q=new WeakMap;return(r=function(W,J){if(!J&&W&&W.__esModule)return W;var A,Y,Z={__proto__:null,default:W};if(W===null||typeof W!="object"&&typeof W!="function")return Z;if(A=J?q:R){if(A.has(W))return A.get(W);A.set(W,Z)}for(const U in W)U!=="default"&&{}.hasOwnProperty.call(W,U)&&((Y=(A=Object.defineProperty)&&Object.getOwnPropertyDescriptor(W,U))&&(Y.get||Y.set)?A(Z,U,Y):Z[U]=W[U]);return Z})(f,y)}let n="";function o(f,y){return n||(n=(0,e.findInArray)(["matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector"],function(R){return(0,e.isFunction)(f[R])})),(0,e.isFunction)(f[n])?f[n](y):!1}function i(f,y,R){let q=f;do{if(o(q,y))return!0;if(q===R)return!1;q=q.parentNode}while(q);return!1}function l(f,y,R,q){if(!f)return;const W={capture:!0,...q};f.addEventListener?f.addEventListener(y,R,W):f.attachEvent?f.attachEvent("on"+y,R):f["on"+y]=R}function p(f,y,R,q){if(!f)return;const W={capture:!0,...q};f.removeEventListener?f.removeEventListener(y,R,W):f.detachEvent?f.detachEvent("on"+y,R):f["on"+y]=null}function u(f){let y=f.clientHeight;const R=f.ownerDocument.defaultView.getComputedStyle(f);return y+=(0,e.int)(R.borderTopWidth),y+=(0,e.int)(R.borderBottomWidth),y}function x(f){let y=f.clientWidth;const R=f.ownerDocument.defaultView.getComputedStyle(f);return y+=(0,e.int)(R.borderLeftWidth),y+=(0,e.int)(R.borderRightWidth),y}function m(f){let y=f.clientHeight;const R=f.ownerDocument.defaultView.getComputedStyle(f);return y-=(0,e.int)(R.paddingTop),y-=(0,e.int)(R.paddingBottom),y}function h(f){let y=f.clientWidth;const R=f.ownerDocument.defaultView.getComputedStyle(f);return y-=(0,e.int)(R.paddingLeft),y-=(0,e.int)(R.paddingRight),y}function S(f,y,R){const W=y===y.ownerDocument.body?{left:0,top:0}:y.getBoundingClientRect(),J=(f.clientX+y.scrollLeft-W.left)/R,A=(f.clientY+y.scrollTop-W.top)/R;return{x:J,y:A}}function P(f,y){const R=v(f,y,"px");return{[(0,t.browserPrefixToKey)("transform",t.default)]:R}}function D(f,y){return v(f,y,"")}function v(f,y,R){let{x:q,y:W}=f,J=`translate(${q}${R},${W}${R})`;if(y){const A=`${typeof y.x=="string"?y.x:y.x+R}`,Y=`${typeof y.y=="string"?y.y:y.y+R}`;J=`translate(${A}, ${Y})`+J}return J}function a(f,y){return f.targetTouches&&(0,e.findInArray)(f.targetTouches,R=>y===R.identifier)||f.changedTouches&&(0,e.findInArray)(f.changedTouches,R=>y===R.identifier)}function s(f){if(f.targetTouches&&f.targetTouches[0])return f.targetTouches[0].identifier;if(f.changedTouches&&f.changedTouches[0])return f.changedTouches[0].identifier}function g(f){if(!f)return;let y=f.getElementById("react-draggable-style-el");y||(y=f.createElement("style"),y.type="text/css",y.id="react-draggable-style-el",y.innerHTML=`.react-draggable-transparent-selection *::-moz-selection {all: inherit;}
8
+ `,y.innerHTML+=`.react-draggable-transparent-selection *::selection {all: inherit;}
9
+ `,f.getElementsByTagName("head")[0].appendChild(y)),f.body&&c(f.body,"react-draggable-transparent-selection")}function b(f){window.requestAnimationFrame?window.requestAnimationFrame(()=>{E(f)}):E(f)}function E(f){if(f)try{if(f.body&&w(f.body,"react-draggable-transparent-selection"),f.selection)f.selection.empty();else{const y=(f.defaultView||window).getSelection();y&&y.type!=="Caret"&&y.removeAllRanges()}}catch{}}function c(f,y){f.classList?f.classList.add(y):f.className.match(new RegExp(`(?:^|\\s)${y}(?!\\S)`))||(f.className+=` ${y}`)}function w(f,y){f.classList?f.classList.remove(y):f.className=f.className.replace(new RegExp(`(?:^|\\s)${y}(?!\\S)`,"g"),"")}return ge}var Ie={},yn;function vn(){if(yn)return Ie;yn=1,Object.defineProperty(Ie,"__esModule",{value:!0}),Ie.canDragX=o,Ie.canDragY=i,Ie.createCoreData=p,Ie.createDraggableData=u,Ie.getBoundPosition=r,Ie.getControlPosition=l,Ie.snapToGrid=n;var e=At(),t=hr();function r(h,S,P){if(!h.props.bounds)return[S,P];let{bounds:D}=h.props;D=typeof D=="string"?D:x(D);const v=m(h);if(typeof D=="string"){const{ownerDocument:a}=v,s=a.defaultView;let g;if(D==="parent"?g=v.parentNode:g=v.getRootNode().querySelector(D),!(g instanceof s.HTMLElement))throw new Error('Bounds selector "'+D+'" could not find an element.');const b=g,E=s.getComputedStyle(v),c=s.getComputedStyle(b);D={left:-v.offsetLeft+(0,e.int)(c.paddingLeft)+(0,e.int)(E.marginLeft),top:-v.offsetTop+(0,e.int)(c.paddingTop)+(0,e.int)(E.marginTop),right:(0,t.innerWidth)(b)-(0,t.outerWidth)(v)-v.offsetLeft+(0,e.int)(c.paddingRight)-(0,e.int)(E.marginRight),bottom:(0,t.innerHeight)(b)-(0,t.outerHeight)(v)-v.offsetTop+(0,e.int)(c.paddingBottom)-(0,e.int)(E.marginBottom)}}return(0,e.isNum)(D.right)&&(S=Math.min(S,D.right)),(0,e.isNum)(D.bottom)&&(P=Math.min(P,D.bottom)),(0,e.isNum)(D.left)&&(S=Math.max(S,D.left)),(0,e.isNum)(D.top)&&(P=Math.max(P,D.top)),[S,P]}function n(h,S,P){const D=Math.round(S/h[0])*h[0],v=Math.round(P/h[1])*h[1];return[D,v]}function o(h){return h.props.axis==="both"||h.props.axis==="x"}function i(h){return h.props.axis==="both"||h.props.axis==="y"}function l(h,S,P){const D=typeof S=="number"?(0,t.getTouch)(h,S):null;if(typeof S=="number"&&!D)return null;const v=m(P),a=P.props.offsetParent||v.offsetParent||v.ownerDocument.body;return(0,t.offsetXYFromParent)(D||h,a,P.props.scale)}function p(h,S,P){const D=!(0,e.isNum)(h.lastX),v=m(h);return D?{node:v,deltaX:0,deltaY:0,lastX:S,lastY:P,x:S,y:P}:{node:v,deltaX:S-h.lastX,deltaY:P-h.lastY,lastX:h.lastX,lastY:h.lastY,x:S,y:P}}function u(h,S){const P=h.props.scale;return{node:S.node,x:h.state.x+S.deltaX/P,y:h.state.y+S.deltaY/P,deltaX:S.deltaX/P,deltaY:S.deltaY/P,lastX:h.state.x,lastY:h.state.y}}function x(h){return{left:h.left,top:h.top,right:h.right,bottom:h.bottom}}function m(h){const S=h.findDOMNode();if(!S)throw new Error("<DraggableCore>: Unmounted during event!");return S}return Ie}var ht={},It={},bn;function xn(){if(bn)return It;bn=1,Object.defineProperty(It,"__esModule",{value:!0}),It.default=e;function e(){}return It}var wn;function Lo(){if(wn)return ht;wn=1,Object.defineProperty(ht,"__esModule",{value:!0}),ht.default=void 0;var e=u(C),t=p(Nt()),r=p(Er),n=hr(),o=vn(),i=At(),l=p(xn());function p(v){return v&&v.__esModule?v:{default:v}}function u(v,a){if(typeof WeakMap=="function")var s=new WeakMap,g=new WeakMap;return(u=function(b,E){if(!E&&b&&b.__esModule)return b;var c,w,f={__proto__:null,default:b};if(b===null||typeof b!="object"&&typeof b!="function")return f;if(c=E?g:s){if(c.has(b))return c.get(b);c.set(b,f)}for(const y in b)y!=="default"&&{}.hasOwnProperty.call(b,y)&&((w=(c=Object.defineProperty)&&Object.getOwnPropertyDescriptor(b,y))&&(w.get||w.set)?c(f,y,w):f[y]=b[y]);return f})(v,a)}function x(v,a,s){return(a=m(a))in v?Object.defineProperty(v,a,{value:s,enumerable:!0,configurable:!0,writable:!0}):v[a]=s,v}function m(v){var a=h(v,"string");return typeof a=="symbol"?a:a+""}function h(v,a){if(typeof v!="object"||!v)return v;var s=v[Symbol.toPrimitive];if(s!==void 0){var g=s.call(v,a);if(typeof g!="object")return g;throw new TypeError("@@toPrimitive must return a primitive value.")}return(a==="string"?String:Number)(v)}const S={touch:{start:"touchstart",move:"touchmove",stop:"touchend"},mouse:{start:"mousedown",move:"mousemove",stop:"mouseup"}};let P=S.mouse,D=class extends e.Component{constructor(){super(...arguments),x(this,"dragging",!1),x(this,"lastX",NaN),x(this,"lastY",NaN),x(this,"touchIdentifier",null),x(this,"mounted",!1),x(this,"handleDragStart",a=>{if(this.props.onMouseDown(a),!this.props.allowAnyClick&&typeof a.button=="number"&&a.button!==0)return!1;const s=this.findDOMNode();if(!s||!s.ownerDocument||!s.ownerDocument.body)throw new Error("<DraggableCore> not mounted on DragStart!");const{ownerDocument:g}=s;if(this.props.disabled||!(a.target instanceof g.defaultView.Node)||this.props.handle&&!(0,n.matchesSelectorAndParentsTo)(a.target,this.props.handle,s)||this.props.cancel&&(0,n.matchesSelectorAndParentsTo)(a.target,this.props.cancel,s))return;a.type==="touchstart"&&!this.props.allowMobileScroll&&a.preventDefault();const b=(0,n.getTouchIdentifier)(a);this.touchIdentifier=b;const E=(0,o.getControlPosition)(a,b,this);if(E==null)return;const{x:c,y:w}=E,f=(0,o.createCoreData)(this,c,w);(0,l.default)("DraggableCore: handleDragStart: %j",f),(0,l.default)("calling",this.props.onStart),!(this.props.onStart(a,f)===!1||this.mounted===!1)&&(this.props.enableUserSelectHack&&(0,n.addUserSelectStyles)(g),this.dragging=!0,this.lastX=c,this.lastY=w,(0,n.addEvent)(g,P.move,this.handleDrag),(0,n.addEvent)(g,P.stop,this.handleDragStop))}),x(this,"handleDrag",a=>{const s=(0,o.getControlPosition)(a,this.touchIdentifier,this);if(s==null)return;let{x:g,y:b}=s;if(Array.isArray(this.props.grid)){let w=g-this.lastX,f=b-this.lastY;if([w,f]=(0,o.snapToGrid)(this.props.grid,w,f),!w&&!f)return;g=this.lastX+w,b=this.lastY+f}const E=(0,o.createCoreData)(this,g,b);if((0,l.default)("DraggableCore: handleDrag: %j",E),this.props.onDrag(a,E)===!1||this.mounted===!1){try{this.handleDragStop(new MouseEvent("mouseup"))}catch{const f=document.createEvent("MouseEvents");f.initMouseEvent("mouseup",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),this.handleDragStop(f)}return}this.lastX=g,this.lastY=b}),x(this,"handleDragStop",a=>{if(!this.dragging)return;const s=(0,o.getControlPosition)(a,this.touchIdentifier,this);if(s==null)return;let{x:g,y:b}=s;if(Array.isArray(this.props.grid)){let f=g-this.lastX||0,y=b-this.lastY||0;[f,y]=(0,o.snapToGrid)(this.props.grid,f,y),g=this.lastX+f,b=this.lastY+y}const E=(0,o.createCoreData)(this,g,b);if(this.props.onStop(a,E)===!1||this.mounted===!1)return!1;const w=this.findDOMNode();w&&this.props.enableUserSelectHack&&(0,n.scheduleRemoveUserSelectStyles)(w.ownerDocument),(0,l.default)("DraggableCore: handleDragStop: %j",E),this.dragging=!1,this.lastX=NaN,this.lastY=NaN,w&&((0,l.default)("DraggableCore: Removing handlers"),(0,n.removeEvent)(w.ownerDocument,P.move,this.handleDrag),(0,n.removeEvent)(w.ownerDocument,P.stop,this.handleDragStop))}),x(this,"onMouseDown",a=>(P=S.mouse,this.handleDragStart(a))),x(this,"onMouseUp",a=>(P=S.mouse,this.handleDragStop(a))),x(this,"onTouchStart",a=>(P=S.touch,this.handleDragStart(a))),x(this,"onTouchEnd",a=>(P=S.touch,this.handleDragStop(a)))}componentDidMount(){this.mounted=!0;const a=this.findDOMNode();a&&(0,n.addEvent)(a,S.touch.start,this.onTouchStart,{passive:!1})}componentWillUnmount(){this.mounted=!1;const a=this.findDOMNode();if(a){const{ownerDocument:s}=a;(0,n.removeEvent)(s,S.mouse.move,this.handleDrag),(0,n.removeEvent)(s,S.touch.move,this.handleDrag),(0,n.removeEvent)(s,S.mouse.stop,this.handleDragStop),(0,n.removeEvent)(s,S.touch.stop,this.handleDragStop),(0,n.removeEvent)(a,S.touch.start,this.onTouchStart,{passive:!1}),this.props.enableUserSelectHack&&(0,n.scheduleRemoveUserSelectStyles)(s)}}findDOMNode(){return this.props?.nodeRef?this.props?.nodeRef?.current:r.default.findDOMNode(this)}render(){return e.cloneElement(e.Children.only(this.props.children),{onMouseDown:this.onMouseDown,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}};return ht.default=D,x(D,"displayName","DraggableCore"),x(D,"propTypes",{allowAnyClick:t.default.bool,allowMobileScroll:t.default.bool,children:t.default.node.isRequired,disabled:t.default.bool,enableUserSelectHack:t.default.bool,offsetParent:function(v,a){if(v[a]&&v[a].nodeType!==1)throw new Error("Draggable's offsetParent must be a DOM Node.")},grid:t.default.arrayOf(t.default.number),handle:t.default.string,cancel:t.default.string,nodeRef:t.default.object,onStart:t.default.func,onDrag:t.default.func,onStop:t.default.func,onMouseDown:t.default.func,scale:t.default.number,className:i.dontSetMe,style:i.dontSetMe,transform:i.dontSetMe}),x(D,"defaultProps",{allowAnyClick:!1,allowMobileScroll:!1,disabled:!1,enableUserSelectHack:!0,onStart:function(){},onDrag:function(){},onStop:function(){},onMouseDown:function(){},scale:1}),ht}var Sn;function Wo(){return Sn||(Sn=1,(function(e){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"DraggableCore",{enumerable:!0,get:function(){return u.default}}),e.default=void 0;var t=h(C),r=m(Nt()),n=m(Er),o=Gt,i=hr(),l=vn(),p=At(),u=m(Lo()),x=m(xn());function m(s){return s&&s.__esModule?s:{default:s}}function h(s,g){if(typeof WeakMap=="function")var b=new WeakMap,E=new WeakMap;return(h=function(c,w){if(!w&&c&&c.__esModule)return c;var f,y,R={__proto__:null,default:c};if(c===null||typeof c!="object"&&typeof c!="function")return R;if(f=w?E:b){if(f.has(c))return f.get(c);f.set(c,R)}for(const q in c)q!=="default"&&{}.hasOwnProperty.call(c,q)&&((y=(f=Object.defineProperty)&&Object.getOwnPropertyDescriptor(c,q))&&(y.get||y.set)?f(R,q,y):R[q]=c[q]);return R})(s,g)}function S(){return S=Object.assign?Object.assign.bind():function(s){for(var g=1;g<arguments.length;g++){var b=arguments[g];for(var E in b)({}).hasOwnProperty.call(b,E)&&(s[E]=b[E])}return s},S.apply(null,arguments)}function P(s,g,b){return(g=D(g))in s?Object.defineProperty(s,g,{value:b,enumerable:!0,configurable:!0,writable:!0}):s[g]=b,s}function D(s){var g=v(s,"string");return typeof g=="symbol"?g:g+""}function v(s,g){if(typeof s!="object"||!s)return s;var b=s[Symbol.toPrimitive];if(b!==void 0){var E=b.call(s,g);if(typeof E!="object")return E;throw new TypeError("@@toPrimitive must return a primitive value.")}return(g==="string"?String:Number)(s)}class a extends t.Component{static getDerivedStateFromProps(g,b){let{position:E}=g,{prevPropsPosition:c}=b;return E&&(!c||E.x!==c.x||E.y!==c.y)?((0,x.default)("Draggable: getDerivedStateFromProps %j",{position:E,prevPropsPosition:c}),{x:E.x,y:E.y,prevPropsPosition:{...E}}):null}constructor(g){super(g),P(this,"onDragStart",(b,E)=>{if((0,x.default)("Draggable: onDragStart: %j",E),this.props.onStart(b,(0,l.createDraggableData)(this,E))===!1)return!1;this.setState({dragging:!0,dragged:!0})}),P(this,"onDrag",(b,E)=>{if(!this.state.dragging)return!1;(0,x.default)("Draggable: onDrag: %j",E);const c=(0,l.createDraggableData)(this,E),w={x:c.x,y:c.y,slackX:0,slackY:0};if(this.props.bounds){const{x:y,y:R}=w;w.x+=this.state.slackX,w.y+=this.state.slackY;const[q,W]=(0,l.getBoundPosition)(this,w.x,w.y);w.x=q,w.y=W,w.slackX=this.state.slackX+(y-w.x),w.slackY=this.state.slackY+(R-w.y),c.x=w.x,c.y=w.y,c.deltaX=w.x-this.state.x,c.deltaY=w.y-this.state.y}if(this.props.onDrag(b,c)===!1)return!1;this.setState(w)}),P(this,"onDragStop",(b,E)=>{if(!this.state.dragging||this.props.onStop(b,(0,l.createDraggableData)(this,E))===!1)return!1;(0,x.default)("Draggable: onDragStop: %j",E);const w={dragging:!1,slackX:0,slackY:0};if(!!this.props.position){const{x:y,y:R}=this.props.position;w.x=y,w.y=R}this.setState(w)}),this.state={dragging:!1,dragged:!1,x:g.position?g.position.x:g.defaultPosition.x,y:g.position?g.position.y:g.defaultPosition.y,prevPropsPosition:{...g.position},slackX:0,slackY:0,isElementSVG:!1},g.position&&!(g.onDrag||g.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??n.default.findDOMNode(this)}render(){const{axis:g,bounds:b,children:E,defaultPosition:c,defaultClassName:w,defaultClassNameDragging:f,defaultClassNameDragged:y,position:R,positionOffset:q,scale:W,...J}=this.props;let A={},Y=null;const U=!!!R||this.state.dragging,K=R||c,le={x:(0,l.canDragX)(this)&&U?this.state.x:K.x,y:(0,l.canDragY)(this)&&U?this.state.y:K.y};this.state.isElementSVG?Y=(0,i.createSVGTransform)(le,q):A=(0,i.createCSSTransform)(le,q);const me=(0,o.clsx)(E.props.className||"",w,{[f]:this.state.dragging,[y]:this.state.dragged});return t.createElement(u.default,S({},J,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),t.cloneElement(t.Children.only(E),{className:me,style:{...E.props.style,...A},transform:Y}))}}e.default=a,P(a,"displayName","Draggable"),P(a,"propTypes",{...u.default.propTypes,axis:r.default.oneOf(["both","x","y","none"]),bounds:r.default.oneOfType([r.default.shape({left:r.default.number,right:r.default.number,top:r.default.number,bottom:r.default.number}),r.default.string,r.default.oneOf([!1])]),defaultClassName:r.default.string,defaultClassNameDragging:r.default.string,defaultClassNameDragged:r.default.string,defaultPosition:r.default.shape({x:r.default.number,y:r.default.number}),positionOffset:r.default.shape({x:r.default.oneOfType([r.default.number,r.default.string]),y:r.default.oneOfType([r.default.number,r.default.string])}),position:r.default.shape({x:r.default.number,y:r.default.number}),className:p.dontSetMe,style:p.dontSetMe,transform:p.dontSetMe}),P(a,"defaultProps",{...u.default.defaultProps,axis:"both",bounds:!1,defaultClassName:"react-draggable",defaultClassNameDragging:"react-draggable-dragging",defaultClassNameDragged:"react-draggable-dragged",defaultPosition:{x:0,y:0},scale:1})})(sr)),sr}var En;function gr(){if(En)return pt.exports;En=1;const{default:e,DraggableCore:t}=Wo();return pt.exports=e,pt.exports.default=e,pt.exports.DraggableCore=t,pt.exports}var qo=gr(),gt={exports:{}},mt={},Lt={},Cn;function $o(){if(Cn)return Lt;Cn=1,Lt.__esModule=!0,Lt.cloneElement=p;var e=t(C);function t(u){return u&&u.__esModule?u:{default:u}}function r(u,x){var m=Object.keys(u);if(Object.getOwnPropertySymbols){var h=Object.getOwnPropertySymbols(u);x&&(h=h.filter(function(S){return Object.getOwnPropertyDescriptor(u,S).enumerable})),m.push.apply(m,h)}return m}function n(u){for(var x=1;x<arguments.length;x++){var m=arguments[x]!=null?arguments[x]:{};x%2?r(Object(m),!0).forEach(function(h){o(u,h,m[h])}):Object.getOwnPropertyDescriptors?Object.defineProperties(u,Object.getOwnPropertyDescriptors(m)):r(Object(m)).forEach(function(h){Object.defineProperty(u,h,Object.getOwnPropertyDescriptor(m,h))})}return u}function o(u,x,m){return(x=i(x))in u?Object.defineProperty(u,x,{value:m,enumerable:!0,configurable:!0,writable:!0}):u[x]=m,u}function i(u){var x=l(u,"string");return typeof x=="symbol"?x:x+""}function l(u,x){if(typeof u!="object"||!u)return u;var m=u[Symbol.toPrimitive];if(m!==void 0){var h=m.call(u,x);if(typeof h!="object")return h;throw new TypeError("@@toPrimitive must return a primitive value.")}return(x==="string"?String:Number)(u)}function p(u,x){return x.style&&u.props.style&&(x.style=n(n({},u.props.style),x.style)),x.className&&u.props.className&&(x.className=`${u.props.className} ${x.className}`),e.default.cloneElement(u,x)}return Lt}var yt={},Pn;function On(){if(Pn)return yt;Pn=1,yt.__esModule=!0,yt.resizableProps=void 0;var e=t(Nt());gr();function t(r){return r&&r.__esModule?r:{default:r}}return yt.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 r=arguments.length,n=new Array(r),o=0;o<r;o++)n[o]=arguments[o];const[i]=n;return i.axis==="both"||i.axis==="y"?e.default.number.isRequired(...n):e.default.number(...n)},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 r=arguments.length,n=new Array(r),o=0;o<r;o++)n[o]=arguments[o];const[i]=n;return i.axis==="both"||i.axis==="x"?e.default.number.isRequired(...n):e.default.number(...n)}},yt}var Rn;function Dn(){if(Rn)return mt;Rn=1,mt.__esModule=!0,mt.default=void 0;var e=i(C),t=gr(),r=$o(),n=On();const o=["children","className","draggableOpts","width","height","handle","handleSize","lockAspectRatio","axis","minConstraints","maxConstraints","onResize","onResizeStop","onResizeStart","resizeHandles","transformScale"];function i(v,a){if(typeof WeakMap=="function")var s=new WeakMap,g=new WeakMap;return(i=function(b,E){if(!E&&b&&b.__esModule)return b;var c,w,f={__proto__:null,default:b};if(b===null||typeof b!="object"&&typeof b!="function")return f;if(c=E?g:s){if(c.has(b))return c.get(b);c.set(b,f)}for(const y in b)y!=="default"&&{}.hasOwnProperty.call(b,y)&&((w=(c=Object.defineProperty)&&Object.getOwnPropertyDescriptor(b,y))&&(w.get||w.set)?c(f,y,w):f[y]=b[y]);return f})(v,a)}function l(){return l=Object.assign?Object.assign.bind():function(v){for(var a=1;a<arguments.length;a++){var s=arguments[a];for(var g in s)({}).hasOwnProperty.call(s,g)&&(v[g]=s[g])}return v},l.apply(null,arguments)}function p(v,a){if(v==null)return{};var s,g,b=u(v,a);if(Object.getOwnPropertySymbols){var E=Object.getOwnPropertySymbols(v);for(g=0;g<E.length;g++)s=E[g],a.indexOf(s)===-1&&{}.propertyIsEnumerable.call(v,s)&&(b[s]=v[s])}return b}function u(v,a){if(v==null)return{};var s={};for(var g in v)if({}.hasOwnProperty.call(v,g)){if(a.indexOf(g)!==-1)continue;s[g]=v[g]}return s}function x(v,a){var s=Object.keys(v);if(Object.getOwnPropertySymbols){var g=Object.getOwnPropertySymbols(v);a&&(g=g.filter(function(b){return Object.getOwnPropertyDescriptor(v,b).enumerable})),s.push.apply(s,g)}return s}function m(v){for(var a=1;a<arguments.length;a++){var s=arguments[a]!=null?arguments[a]:{};a%2?x(Object(s),!0).forEach(function(g){h(v,g,s[g])}):Object.getOwnPropertyDescriptors?Object.defineProperties(v,Object.getOwnPropertyDescriptors(s)):x(Object(s)).forEach(function(g){Object.defineProperty(v,g,Object.getOwnPropertyDescriptor(s,g))})}return v}function h(v,a,s){return(a=S(a))in v?Object.defineProperty(v,a,{value:s,enumerable:!0,configurable:!0,writable:!0}):v[a]=s,v}function S(v){var a=P(v,"string");return typeof a=="symbol"?a:a+""}function P(v,a){if(typeof v!="object"||!v)return v;var s=v[Symbol.toPrimitive];if(s!==void 0){var g=s.call(v,a);if(typeof g!="object")return g;throw new TypeError("@@toPrimitive must return a primitive value.")}return(a==="string"?String:Number)(v)}let D=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(a,s){const{minConstraints:g,maxConstraints:b,lockAspectRatio:E}=this.props;if(!g&&!b&&!E)return[a,s];if(E){const R=this.props.width/this.props.height,q=a-this.props.width,W=s-this.props.height;Math.abs(q)>Math.abs(W*R)?s=a/R:a=s*R}const[c,w]=[a,s];let[f,y]=this.slack||[0,0];return a+=f,s+=y,g&&(a=Math.max(g[0],a),s=Math.max(g[1],s)),b&&(a=Math.min(b[0],a),s=Math.min(b[1],s)),this.slack=[f+(c-a),y+(w-s)],[a,s]}resizeHandler(a,s){return(g,b)=>{let{node:E,deltaX:c,deltaY:w}=b;a==="onResizeStart"&&this.resetData();const f=(this.props.axis==="both"||this.props.axis==="x")&&s!=="n"&&s!=="s",y=(this.props.axis==="both"||this.props.axis==="y")&&s!=="e"&&s!=="w";if(!f&&!y)return;const R=s[0],q=s[s.length-1],W=E.getBoundingClientRect();if(this.lastHandleRect!=null){if(q==="w"){const K=W.left-this.lastHandleRect.left;c+=K}if(R==="n"){const K=W.top-this.lastHandleRect.top;w+=K}}this.lastHandleRect=W,q==="w"&&(c=-c),R==="n"&&(w=-w);let J=this.props.width+(f?c/this.props.transformScale:0),A=this.props.height+(y?w/this.props.transformScale:0);[J,A]=this.runConstraints(J,A),a==="onResizeStop"&&this.lastSize&&({width:J,height:A}=this.lastSize);const Y=J!==this.props.width||A!==this.props.height;a!=="onResizeStop"&&(this.lastSize={width:J,height:A});const Z=typeof this.props[a]=="function"?this.props[a]:null;Z&&!(a==="onResize"&&!Y)&&(g.persist?.(),Z(g,{node:E,size:{width:J,height:A},handle:s})),a==="onResizeStop"&&this.resetData()}}renderResizeHandle(a,s){const{handle:g}=this.props;if(!g)return e.createElement("span",{className:`react-resizable-handle react-resizable-handle-${a}`,ref:s});if(typeof g=="function")return g(a,s);const b=typeof g.type=="string",E=m({ref:s},b?{}:{handleAxis:a});return e.cloneElement(g,E)}render(){const a=this.props,{children:s,className:g,draggableOpts:b,width:E,height:c,handle:w,handleSize:f,lockAspectRatio:y,axis:R,minConstraints:q,maxConstraints:W,onResize:J,onResizeStop:A,onResizeStart:Y,resizeHandles:Z,transformScale:U}=a,K=p(a,o);return(0,r.cloneElement)(s,m(m({},K),{},{className:`${g?`${g} `:""}react-resizable`,children:[...e.Children.toArray(s.props.children),...Z.map(le=>{const me=this.handleRefs[le]??(this.handleRefs[le]=e.createRef());return e.createElement(t.DraggableCore,l({},b,{nodeRef:me,key:`resizableHandle-${le}`,onStop:this.resizeHandler("onResizeStop",le),onStart:this.resizeHandler("onResizeStart",le),onDrag:this.resizeHandler("onResize",le)}),this.renderResizeHandle(le,me))})]}))}};return mt.default=D,D.propTypes=n.resizableProps,D.defaultProps={axis:"both",handleSize:[20,20],lockAspectRatio:!1,minConstraints:[20,20],maxConstraints:[1/0,1/0],resizeHandles:["se"],transformScale:1},mt}var vt={},_n;function Ho(){if(_n)return vt;_n=1,vt.__esModule=!0,vt.default=void 0;var e=l(C),t=i(Nt()),r=i(Dn()),n=On();const o=["handle","handleSize","onResize","onResizeStart","onResizeStop","draggableOpts","minConstraints","maxConstraints","lockAspectRatio","axis","width","height","resizeHandles","style","transformScale"];function i(a){return a&&a.__esModule?a:{default:a}}function l(a,s){if(typeof WeakMap=="function")var g=new WeakMap,b=new WeakMap;return(l=function(E,c){if(!c&&E&&E.__esModule)return E;var w,f,y={__proto__:null,default:E};if(E===null||typeof E!="object"&&typeof E!="function")return y;if(w=c?b:g){if(w.has(E))return w.get(E);w.set(E,y)}for(const R in E)R!=="default"&&{}.hasOwnProperty.call(E,R)&&((f=(w=Object.defineProperty)&&Object.getOwnPropertyDescriptor(E,R))&&(f.get||f.set)?w(y,R,f):y[R]=E[R]);return y})(a,s)}function p(){return p=Object.assign?Object.assign.bind():function(a){for(var s=1;s<arguments.length;s++){var g=arguments[s];for(var b in g)({}).hasOwnProperty.call(g,b)&&(a[b]=g[b])}return a},p.apply(null,arguments)}function u(a,s){var g=Object.keys(a);if(Object.getOwnPropertySymbols){var b=Object.getOwnPropertySymbols(a);s&&(b=b.filter(function(E){return Object.getOwnPropertyDescriptor(a,E).enumerable})),g.push.apply(g,b)}return g}function x(a){for(var s=1;s<arguments.length;s++){var g=arguments[s]!=null?arguments[s]:{};s%2?u(Object(g),!0).forEach(function(b){m(a,b,g[b])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(g)):u(Object(g)).forEach(function(b){Object.defineProperty(a,b,Object.getOwnPropertyDescriptor(g,b))})}return a}function m(a,s,g){return(s=h(s))in a?Object.defineProperty(a,s,{value:g,enumerable:!0,configurable:!0,writable:!0}):a[s]=g,a}function h(a){var s=S(a,"string");return typeof s=="symbol"?s:s+""}function S(a,s){if(typeof a!="object"||!a)return a;var g=a[Symbol.toPrimitive];if(g!==void 0){var b=g.call(a,s);if(typeof b!="object")return b;throw new TypeError("@@toPrimitive must return a primitive value.")}return(s==="string"?String:Number)(a)}function P(a,s){if(a==null)return{};var g,b,E=D(a,s);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(a);for(b=0;b<c.length;b++)g=c[b],s.indexOf(g)===-1&&{}.propertyIsEnumerable.call(a,g)&&(E[g]=a[g])}return E}function D(a,s){if(a==null)return{};var g={};for(var b in a)if({}.hasOwnProperty.call(a,b)){if(s.indexOf(b)!==-1)continue;g[b]=a[b]}return g}let v=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=(s,g)=>{const{size:b}=g;this.props.onResize?(s.persist?.(),this.setState(b,()=>this.props.onResize&&this.props.onResize(s,g))):this.setState(b)}}static getDerivedStateFromProps(s,g){return g.propsWidth!==s.width||g.propsHeight!==s.height?{width:s.width,height:s.height,propsWidth:s.width,propsHeight:s.height}:null}render(){const s=this.props,{handle:g,handleSize:b,onResize:E,onResizeStart:c,onResizeStop:w,draggableOpts:f,minConstraints:y,maxConstraints:R,lockAspectRatio:q,axis:W,width:J,height:A,resizeHandles:Y,style:Z,transformScale:U}=s,K=P(s,o);return e.createElement(r.default,{axis:W,draggableOpts:f,handle:g,handleSize:b,height:this.state.height,lockAspectRatio:q,maxConstraints:R,minConstraints:y,onResizeStart:c,onResize:this.onResize,onResizeStop:w,resizeHandles:Y,transformScale:U,width:this.state.width},e.createElement("div",p({},K,{style:x(x({},Z),{},{width:this.state.width+"px",height:this.state.height+"px"})})))}};return vt.default=v,v.propTypes=x(x({},n.resizableProps),{},{children:t.default.element}),vt}var jn;function Yo(){return jn||(jn=1,gt.exports=function(){throw new Error("Don't instantiate Resizable directly! Use require('react-resizable').Resizable")},gt.exports.Resizable=Dn().default,gt.exports.ResizableBox=Ho().default),gt.exports}var Bo=Yo();function Tn(e){const{children:t,cols:r,containerWidth:n,margin:o,containerPadding:i,rowHeight:l,maxRows:p,isDraggable:u,isResizable:x,isBounded:m,static:h,useCSSTransforms:S=!0,usePercentages:P=!1,transformScale:D=1,positionStrategy:v,dragThreshold:a=0,droppingPosition:s,className:g="",style:b,handle:E="",cancel:c="",x:w,y:f,w:y,h:R,minW:q=1,maxW:W=1/0,minH:J=1,maxH:A=1/0,i:Y,resizeHandles:Z,resizeHandle:U,constraints:K=Mr,layoutItem:le,layout:me=[],onDragStart:O,onDrag:d,onDragStop:j,onResizeStart:k,onResize:z,onResizeStop:X}=e,[I,M]=C.useState(!1),[$,N]=C.useState(!1),H=C.useRef(null),F=C.useRef({left:0,top:0}),_=C.useRef({top:0,left:0,width:0,height:0}),ae=C.useRef(void 0),je=C.useRef(me);je.current=me;const De=C.useRef(null),ye=C.useRef(null),Ee=C.useRef(!1),st=C.useRef({x:0,y:0}),de=C.useRef(!1),ue=C.useMemo(()=>({cols:r,containerPadding:i,containerWidth:n,margin:o,maxRows:p,rowHeight:l}),[r,i,n,o,p,l]),Ce=C.useMemo(()=>({cols:r,maxRows:p,containerWidth:n,containerHeight:0,rowHeight:l,margin:o,layout:[]}),[r,p,n,l,o]),we=C.useCallback(()=>({...Ce,layout:je.current}),[Ce]),Ne=C.useMemo(()=>le??{i:Y,x:w,y:f,w:y,h:R,minW:q,maxW:W,minH:J,maxH:A},[le,Y,w,f,y,R,q,W,J,A]),Wt=C.useCallback(re=>{if(v?.calcStyle)return v.calcStyle(re);if(S)return zr(re);const ne=Un(re);return P?{...ne,left:kr(re.left/n),width:kr(re.width/n)}:ne},[v,S,P,n]),Le=C.useCallback((re,{node:ne})=>{if(!O)return;const{offsetParent:he}=ne;if(!he)return;const se=he.getBoundingClientRect(),ve=ne.getBoundingClientRect(),Pe=ve.left/D,_e=se.left/D,Oe=ve.top/D,Me=se.top/D;let ze;if(v?.calcDragPosition){const G=re;ze=v.calcDragPosition(G.clientX,G.clientY,G.clientX-ve.left,G.clientY-ve.top)}else ze={left:Pe-_e+he.scrollLeft,top:Oe-Me+he.scrollTop};if(F.current=ze,a>0){const G=re;st.current={x:G.clientX,y:G.clientY},Ee.current=!0,de.current=!1,M(!0);return}M(!0);const Je=Et(ue,ze.top,ze.left),{x:Ke,y:L}=Rt(K,Ne,Je.x,Je.y,we());O(Y,Ke,L,{e:re,node:ne,newPosition:ze})},[O,D,ue,v,a,K,Ne,we,Y]),it=C.useCallback((re,{node:ne,deltaX:he,deltaY:se})=>{if(!d||!I)return;const ve=re;if(Ee.current&&!de.current){const Ke=ve.clientX-st.current.x,L=ve.clientY-st.current.y;if(Math.hypot(Ke,L)<a)return;if(de.current=!0,Ee.current=!1,O){const B=Et(ue,F.current.top,F.current.left),{x:Q,y:ie}=Rt(K,Ne,B.x,B.y,we());O(Y,Q,ie,{e:re,node:ne,newPosition:F.current})}}let Pe=F.current.top+se,_e=F.current.left+he;if(m){const{offsetParent:Ke}=ne;if(Ke){const L=Ke.clientHeight-ot(R,l,o[1]);Pe=Ct(Pe,0,L);const G=nt(ue),B=n-ot(y,G,o[0]);_e=Ct(_e,0,B)}}const Oe={top:Pe,left:_e};F.current=Oe;const Me=Et(ue,Pe,_e),{x:ze,y:Je}=Rt(K,Ne,Me.x,Me.y,we());d(Y,ze,Je,{e:re,node:ne,newPosition:Oe})},[d,O,I,a,m,R,l,o,ue,n,y,Y,K,Ne,we]),Ue=C.useCallback((re,{node:ne})=>{if(!j||!I)return;const he=Ee.current;if(Ee.current=!1,de.current=!1,st.current={x:0,y:0},he){M(!1),F.current={left:0,top:0};return}const{left:se,top:ve}=F.current,Pe={top:ve,left:se};M(!1),F.current={left:0,top:0};const _e=Et(ue,ve,se),{x:Oe,y:Me}=Rt(K,Ne,_e.x,_e.y,we());j(Y,Oe,Me,{e:re,node:ne,newPosition:Pe})},[j,I,ue,K,Ne,we,Y]);De.current=Le,ye.current=it;const Ae=C.useCallback((re,{node:ne,size:he,handle:se},ve,Pe)=>{const _e=Pe==="onResizeStart"?k:Pe==="onResize"?z:X;if(!_e)return;let Oe;ne?Oe=to(se,ve,he,n):Oe={...he,top:ve.top,left:ve.left},_.current=Oe;const Me=qn(ue,Oe.width,Oe.height),{w:ze,h:Je}=Xn(K,Ne,Me.w,Me.h,se,we());_e(Y,ze,Je,{e:re.nativeEvent,node:ne,size:Oe,handle:se})},[k,z,X,n,ue,Y,K,Ne,we]),lt=C.useCallback((re,ne)=>{N(!0);const he=dt(ue,w,f,y,R),se={...ne,handle:ne.handle};Ae(re,se,he,"onResizeStart")},[Ae,ue,w,f,y,R]),ut=C.useCallback((re,ne)=>{const he=dt(ue,w,f,y,R),se={...ne,handle:ne.handle};Ae(re,se,he,"onResize")},[Ae,ue,w,f,y,R]),Ge=C.useCallback((re,ne)=>{N(!1),_.current={top:0,left:0,width:0,height:0};const he=dt(ue,w,f,y,R),se={...ne,handle:ne.handle};Ae(re,se,he,"onResizeStop")},[Ae,ue,w,f,y,R]);C.useEffect(()=>{if(!s)return;const re=H.current;if(!re)return;const ne=ae.current||{left:0,top:0},he=I&&(s.left!==ne.left||s.top!==ne.top);if(I){if(he){const se=s.left-F.current.left,ve=s.top-F.current.top,Pe={node:re,deltaX:se,deltaY:ve,lastX:F.current.left,lastY:F.current.top,x:s.left,y:s.top};ye.current?.(s.e,Pe)}}else{const se={node:re,deltaX:s.left,deltaY:s.top,lastX:0,lastY:0,x:s.left,y:s.top};De.current?.(s.e,se)}ae.current=s},[s,I,Y]);const We=dt(ue,w,f,y,R,I?F.current:null,$?_.current:null),bt=C.Children.only(t),xt=dt(ue,0,0,1,1),qt=[xt.width,xt.height],$t=[1/0,1/0],Te=bt.props,xr=Te.className,Ht=Te.style;let Ve=C.cloneElement(bt,{ref:H,className:Gt("react-grid-item",xr,g,{static:h,resizing:$,"react-draggable":u,"react-draggable-dragging":I,dropping:!!s,cssTransforms:S}),style:{...b,...Ht,...Wt(We)}});const Yt=U;return Ve=T.jsx(Bo.Resizable,{draggableOpts:{disabled:!x},className:x?void 0:"react-resizable-hide",width:We.width,height:We.height,minConstraints:qt,maxConstraints:$t,onResizeStart:lt,onResize:ut,onResizeStop:Ge,transformScale:D,resizeHandles:Z,handle:Yt,children:Ve}),Ve=T.jsx(qo.DraggableCore,{disabled:!u,onStart:Le,onDrag:it,onStop:Ue,handle:E,cancel:".react-resizable-handle"+(c?","+c:""),scale:D,nodeRef:H,children:Ve}),Ve}var $e=()=>{},Mn="react-grid-layout",zn=!1;try{zn=/firefox/i.test(navigator.userAgent)}catch{}function Fo(e,t){const r=C.Children.toArray(e),n=C.Children.toArray(t);if(r.length!==n.length)return!1;for(let o=0;o<r.length;o++){const i=r[o],l=n[o];if(i?.key!==l?.key)return!1}return!0}function kn(e,t,r,n){const o=[],i=new Set;C.Children.forEach(t,p=>{if(!C.isValidElement(p)||p.key===null)return;const u=String(p.key);i.add(u);const x=e.find(m=>m.i===u);if(x)o.push(et(x));else{const h=p.props["data-grid"];h?o.push({i:u,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}):o.push({i:u,x:0,y:Pt(o),w:1,h:1})}});const l=Zt(o,{cols:r});return n.compact(l,r)}function Xo(e){const{children:t,width:r,gridConfig:n,dragConfig:o,resizeConfig:i,dropConfig:l,positionStrategy:p=no,compactor:u,constraints:x=Mr,layout:m=[],droppingItem:h,autoSize:S=!0,className:P="",style:D={},innerRef:v,onLayoutChange:a=$e,onDragStart:s=$e,onDrag:g=$e,onDragStop:b=$e,onResizeStart:E=$e,onResize:c=$e,onResizeStop:w=$e,onDrop:f=$e,onDropDragOver:y=$e}=e,R=C.useMemo(()=>({...oo,...n}),[n]),q=C.useMemo(()=>({...ao,...o}),[o]),W=C.useMemo(()=>({...so,...i}),[i]),J=C.useMemo(()=>({...io,...l}),[l]),{cols:A,rowHeight:Y,maxRows:Z,margin:U,containerPadding:K}=R,{enabled:le,bounded:me,handle:O,cancel:d,threshold:j}=q,{enabled:k,handles:z,handleComponent:X}=W,{enabled:I,defaultItem:M,onDragOver:$}=J,N=u??or("vertical"),H=N.type,F=N.allowOverlap,_=N.preventCollision??!1,ae=C.useMemo(()=>h??{i:"__dropping-elem__",...M},[h,M]),je=p.type==="transform",De=p.scale,ye=K??U,[Ee,st]=C.useState(!1),[de,ue]=C.useState(()=>kn(m,t,A,N)),[Ce,we]=C.useState(null),[Ne,Wt]=C.useState(!1),[Le,it]=C.useState(null),[Ue,Ae]=C.useState(),lt=C.useRef(null),ut=C.useRef(null),Ge=C.useRef(null),We=C.useRef(0),bt=C.useRef(de),xt=C.useRef(m),qt=C.useRef(t),$t=C.useRef(H),Te=C.useRef(de);Te.current=de,C.useEffect(()=>{st(!0),qe(de,m)||a(de)},[]),C.useEffect(()=>{if(Ce||Le)return;const L=!qe(m,xt.current),G=!Fo(t,qt.current),B=H!==$t.current;if(L||G||B){const ie=kn(L?m:de,t,A,N);qe(ie,de)||ue(ie)}xt.current=m,qt.current=t,$t.current=H},[m,t,A,H,N,Ce,Le,de]),C.useEffect(()=>{if(!Ce&&!qe(de,bt.current)){bt.current=de;const L=de.filter(G=>G.i!==ae.i);a(L)}},[de,Ce,a,ae.i]);const xr=C.useMemo(()=>{if(!S)return;const L=Pt(de),G=ye[1];return L*Y+(L-1)*U[1]+G*2+"px"},[S,de,Y,U,ye]),Ht=C.useCallback((L,G,B,Q)=>{const ie=Te.current,oe=Qe(ie,L);if(!oe)return;const ce={w:oe.w,h:oe.h,x:oe.x,y:oe.y,i:L};lt.current=et(oe),Ge.current=ie,we(ce),s(ie,oe,oe,null,Q.e,Q.node)},[s]),Ve=C.useCallback((L,G,B,Q)=>{const ie=Te.current,oe=lt.current,ce=Qe(ie,L);if(!ce)return;const be={w:ce.w,h:ce.h,x:ce.x,y:ce.y,i:L},fe=tt(ie,ce,G,B,!0,_,H,A,F);g(fe,oe,ce,be,Q.e,Q.node),ue(N.compact(fe,A)),we(be)},[_,H,A,F,N,g]),Yt=C.useCallback((L,G,B,Q)=>{if(!Ce)return;const ie=Te.current,oe=lt.current,ce=Qe(ie,L);if(!ce)return;const be=tt(ie,ce,G,B,!0,_,H,A,F),fe=N.compact(be,A);b(fe,oe,ce,null,Q.e,Q.node);const Se=Ge.current;lt.current=null,Ge.current=null,we(null),ue(fe),Se&&!qe(Se,fe)&&a(fe)},[Ce,_,H,A,F,N,b,a]),re=C.useCallback((L,G,B,Q)=>{const ie=Te.current,oe=Qe(ie,L);oe&&(ut.current=et(oe),Ge.current=ie,Wt(!0),E(ie,oe,oe,null,Q.e,Q.node))},[E]),ne=C.useCallback((L,G,B,Q)=>{const ie=Te.current,oe=ut.current,{handle:ce}=Q;let be=!1,fe,Se;const[Bt,He]=Yn(ie,L,pe=>(fe=pe.x,Se=pe.y,["sw","w","nw","n","ne"].includes(ce)&&(["sw","nw","w"].includes(ce)&&(fe=pe.x+(pe.w-G),G=pe.x!==fe&&fe<0?pe.w:G,fe=fe<0?0:fe),["ne","n","nw"].includes(ce)&&(Se=pe.y+(pe.h-B),B=pe.y!==Se&&Se<0?pe.h:B,Se=Se<0?0:Se),be=!0),_&&!F&&_r(ie,{...pe,w:G,h:B,x:fe??pe.x,y:Se??pe.y}).filter(Xt=>Xt.i!==pe.i).length>0&&(Se=pe.y,B=pe.h,fe=pe.x,G=pe.w,be=!1),pe.w=G,pe.h=B,pe));if(!He)return;let wt=Bt;be&&fe!==void 0&&Se!==void 0&&(wt=tt(Bt,He,fe,Se,!0,_,H,A,F));const Ft={w:He.w,h:He.h,x:He.x,y:He.y,i:L,static:!0};c(wt,oe,He,Ft,Q.e,Q.node),ue(N.compact(wt,A)),we(Ft)},[_,H,A,F,N,c]),he=C.useCallback((L,G,B,Q)=>{const ie=Te.current,oe=ut.current,ce=Qe(ie,L),be=N.compact(ie,A);w(be,oe,ce??null,null,Q.e,Q.node);const fe=Ge.current;ut.current=null,Ge.current=null,we(null),Wt(!1),ue(be),fe&&!qe(fe,be)&&a(be)},[A,N,w,a]),se=C.useCallback(()=>{const L=Te.current;if(!L.some(Q=>Q.i===ae.i)){it(null),we(null),Ae(void 0);return}const B=N.compact(L.filter(Q=>Q.i!==ae.i),A);ue(B),it(null),we(null),Ae(void 0)},[ae.i,A,N]),ve=C.useCallback(L=>{if(L.preventDefault(),L.stopPropagation(),zn&&!L.nativeEvent.target?.classList.contains(Mn))return!1;const G=$?$(L.nativeEvent):y(L);if(G===!1)return Le&&se(),!1;const{dragOffsetX:B=0,dragOffsetY:Q=0,...ie}=G??{},oe={...ae,...ie},ce=L.currentTarget.getBoundingClientRect(),be={cols:A,margin:U,maxRows:Z,rowHeight:Y,containerWidth:r,containerPadding:ye},fe=nt(be),Se=ot(oe.w,fe,U[0]),Bt=ot(oe.h,Y,U[1]),He=Se/2,wt=Bt/2,Ft=L.clientX-ce.left+B-He,pe=L.clientY-ce.top+Q-wt,wr=Math.max(0,Ft),Xt=Math.max(0,pe),Ut={left:wr/De,top:Xt/De,e:L.nativeEvent};if(Le)Ue&&(Ue.left!==Ut.left||Ue.top!==Ut.top)&&Ae(Ut);else{const Sr=Wn(be,Xt,wr,oe.w,oe.h);it(T.jsx("div",{},oe.i)),Ae(Ut),ue([...Te.current,{...oe,x:Sr.x,y:Sr.y,static:!1,isDraggable:!0}])}},[Le,Ue,ae,$,y,se,De,A,U,Z,Y,r,ye]),Pe=C.useCallback(L=>{L.preventDefault(),L.stopPropagation(),We.current--,We.current<0&&(We.current=0),We.current===0&&se()},[se]),_e=C.useCallback(L=>{L.preventDefault(),L.stopPropagation(),We.current++},[]),Oe=C.useCallback(L=>{L.preventDefault(),L.stopPropagation();const G=Te.current,B=G.find(Q=>Q.i===ae.i);We.current=0,se(),f(G,B,L.nativeEvent)},[ae.i,se,f]),Me=C.useCallback((L,G)=>{if(!L||!L.key)return null;const B=Qe(de,String(L.key));if(!B)return null;const Q=typeof B.isDraggable=="boolean"?B.isDraggable:!B.static&&le,ie=typeof B.isResizable=="boolean"?B.isResizable:!B.static&&k,oe=B.resizeHandles||[...z],ce=Q&&me&&B.isBounded!==!1,be=X;return T.jsx(Tn,{containerWidth:r,cols:A,margin:U,containerPadding:ye,maxRows:Z,rowHeight:Y,cancel:d,handle:O,onDragStart:Ht,onDrag:Ve,onDragStop:Yt,onResizeStart:re,onResize:ne,onResizeStop:he,isDraggable:Q,isResizable:ie,isBounded:ce,useCSSTransforms:je&&Ee,usePercentages:!Ee,transformScale:De,positionStrategy:p,dragThreshold:j,w:B.w,h:B.h,x:B.x,y:B.y,i:B.i,minH:B.minH,minW:B.minW,maxH:B.maxH,maxW:B.maxW,static:B.static,droppingPosition:G?Ue:void 0,resizeHandles:oe,resizeHandle:be,constraints:x,layoutItem:B,layout:de,children:L},B.i)},[de,r,A,U,ye,Z,Y,d,O,Ht,Ve,Yt,re,ne,he,le,k,me,je,Ee,De,p,j,Ue,z,X,x]),ze=()=>Ce?T.jsx(Tn,{w:Ce.w,h:Ce.h,x:Ce.x,y:Ce.y,i:Ce.i,className:`react-grid-placeholder ${Ne?"placeholder-resizing":""}`,containerWidth:r,cols:A,margin:U,containerPadding:ye,maxRows:Z,rowHeight:Y,isDraggable:!1,isResizable:!1,isBounded:!1,useCSSTransforms:je,transformScale:De,constraints:x,layout:de,children:T.jsx("div",{})}):null,Je=Gt(Mn,P),Ke={height:xr,...D};return T.jsxs("div",{ref:v,className:Je,style:Ke,onDrop:I?Oe:void 0,onDragLeave:I?Pe:void 0,onDragEnter:I?_e:void 0,onDragOver:I?ve:void 0,children:[C.Children.map(t,L=>C.isValidElement(L)?Me(L):null),I&&Le&&Me(Le,!0),ze()]})}var Uo={lg:1200,md:996,sm:768,xs:480,xxs:0},Go={lg:12,md:10,sm:6,xs:4,xxs:2},mr=()=>{};function Vo(e,t,r,n){const o=[];C.Children.forEach(t,l=>{if(!C.isValidElement(l)||l.key===null)return;const p=String(l.key),u=e.find(x=>x.i===p);if(u)o.push({...u,i:p});else{const m=l.props["data-grid"];m?o.push({i:p,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}):o.push({i:p,x:0,y:Pt(o),w:1,h:1})}});const i=Zt(o,{cols:r});return n.compact(i,r)}function Jo(e){const{children:t,width:r,breakpoint:n,breakpoints:o=Uo,cols:i=Go,layouts:l={},rowHeight:p=150,maxRows:u=1/0,margin:x=[10,10],containerPadding:m=null,compactor:h,onBreakpointChange:S=mr,onLayoutChange:P=mr,onWidthChange:D=mr,...v}=e,a=h??or("vertical"),s=a.type,g=a.allowOverlap,b=C.useMemo(()=>n??qr(o,r),[]),E=C.useMemo(()=>$r(b,i),[b,i]),c=C.useMemo(()=>ar(l,o,b,b,E,s),[]),[w,f]=C.useState(b),[y,R]=C.useState(E),[q,W]=C.useState(c),[J,A]=C.useState(l),Y=C.useRef(r),Z=C.useRef(n),U=C.useRef(o),K=C.useRef(i),le=C.useRef(l),me=C.useRef(s),O=C.useRef(J);C.useEffect(()=>{O.current=J},[J]);const d=C.useMemo(()=>qe(l,le.current)?null:ar(l,o,w,w,y,a),[l,o,w,y,a]),j=d??q;C.useEffect(()=>{d!==null&&(W(d),A(l),O.current=l,le.current=l)},[d,l]),C.useEffect(()=>{if(s!==me.current){const M=a.compact(Be(j),y),$={...O.current,[w]:M};W(M),A($),O.current=$,P(M,$),me.current=s}},[s,a,j,y,g,w,P]),C.useEffect(()=>{const M=r!==Y.current,$=n!==Z.current,N=!qe(o,U.current),H=!qe(i,K.current);if(M||$||N||H){const F=n??qr(o,r),_=$r(F,i),ae=w;if(ae!==F||N||H){const ye={...O.current};ye[ae]||(ye[ae]=Be(q));let Ee=ar(ye,o,F,ae,_,a);Ee=Vo(Ee,t,_,a),ye[F]=Ee,f(F),R(_),W(Ee),A(ye),O.current=ye,S(F,_),P(Ee,ye)}const je=_t(x,F),De=m?_t(m,F):null;D(r,je,_,De),Y.current=r,Z.current=n,U.current=o,K.current=i}},[r,n,o,i,w,y,q,t,a,s,g,x,m,S,P,D]);const k=C.useCallback(M=>{const N={...O.current,[w]:M};W(M),A(N),O.current=N,P(M,N)},[w,P]),z=C.useMemo(()=>_t(x,w),[x,w]),X=C.useMemo(()=>m===null?null:_t(m,w),[m,w]),I=C.useMemo(()=>({cols:y,rowHeight:p,maxRows:u,margin:z,containerPadding:X}),[y,p,u,z,X]);return T.jsx(Xo,{...v,width:r,gridConfig:I,compactor:a,onLayoutChange:k,layout:j,children:t})}function Ko({editMode:e}){const t=rt.useDnd();return ke.useEffect(()=>{if(e)return t.startDrag({id:"dashboard-layout",type:"dashboard-widget",data:{}}),()=>{t.endDrag()};t.endDrag("dashboard")},[e,t]),null}const Zo=["hsl(var(--chart-1))","hsl(var(--chart-2))","hsl(var(--chart-3))","hsl(var(--chart-4))","hsl(var(--chart-5))"],yr=({schema:e,className:t,onLayoutChange:r,persistLayoutKey:n="dashboard-layout",onRefresh:o})=>{const{width:i,containerRef:l,mounted:p}=jo(),[u,x]=ke.useState(!1),[m,h]=ke.useState(!1),S=rt.useHasDndProvider(),P=ke.useRef(null),D=ke.useCallback(()=>{o&&(h(!0),o(),setTimeout(()=>h(!1),600))},[o]);ke.useEffect(()=>{if(!(!e.refreshInterval||e.refreshInterval<=0||!o))return P.current=setInterval(D,e.refreshInterval*1e3),()=>{P.current&&clearInterval(P.current)}},[e.refreshInterval,o,D]);const[v,a]=ke.useState(()=>{if(typeof window<"u"&&n){const c=localStorage.getItem(n);if(c)try{return JSON.parse(c)}catch(w){console.error("Failed to parse saved layout:",w)}}return{lg:e.widgets?.map((c,w)=>({i:c.id||`widget-${w}`,x:c.layout?.x||w%4*3,y:c.layout?.y||Math.floor(w/4)*4,w:c.layout?.w||3,h:c.layout?.h||4}))||[]}}),s=ke.useCallback((c,w)=>{a(w),r?.(c)},[r]),g=ke.useCallback(()=>{typeof window<"u"&&n&&localStorage.setItem(n,JSON.stringify(v)),x(!1)},[v,n]),b=ke.useCallback(()=>{const c={lg:e.widgets?.map((w,f)=>({i:w.id||`widget-${f}`,x:w.layout?.x||f%4*3,y:w.layout?.y||Math.floor(f/4)*4,w:w.layout?.w||3,h:w.layout?.h||4}))||[]};a(c),typeof window<"u"&&n&&localStorage.removeItem(n)},[e.widgets,n]),E=ke.useCallback(c=>{if(c.component)return c.component;const w=c.type,f=c.options||{};if(w==="bar"||w==="line"||w==="area"||w==="pie"||w==="donut"){const y=c.data||f.data,R=Array.isArray(y)?y:y?.items||[],q=f.xField||"name",W=f.yField||"value";return{type:"chart",chartType:w,data:R,xAxisKey:q,series:[{dataKey:W}],colors:Zo,className:"h-full"}}if(w==="table"){const y=c.data||f.data;return{type:"data-table",...f,data:y?.items||[],searchable:!1,pagination:!1,className:"border-0"}}return{...c,...f}},[]);return T.jsxs("div",{ref:l,className:V.cn("w-full",t),"data-testid":"grid-layout",children:[S&&T.jsx(Ko,{editMode:u}),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:u?T.jsxs(T.Fragment,{children:[T.jsxs(V.Button,{onClick:g,size:"sm",variant:"default",children:[T.jsx(Re.Save,{className:"h-4 w-4 mr-2"}),"Save Layout"]}),T.jsxs(V.Button,{onClick:b,size:"sm",variant:"outline",children:[T.jsx(Re.X,{className:"h-4 w-4 mr-2"}),"Reset"]}),T.jsx(V.Button,{onClick:()=>x(!1),size:"sm",variant:"ghost",children:"Cancel"})]}):T.jsxs(T.Fragment,{children:[o&&T.jsxs(V.Button,{onClick:D,size:"sm",variant:"outline",disabled:m,"aria-label":"Refresh dashboard",children:[T.jsx(Re.RefreshCw,{className:V.cn("h-4 w-4 mr-2",m&&"animate-spin")}),m?"Refreshing…":"Refresh All"]}),T.jsxs(V.Button,{onClick:()=>x(!0),size:"sm",variant:"outline",children:[T.jsx(Re.Edit,{className:"h-4 w-4 mr-2"}),"Edit Layout"]})]})})]}),p&&T.jsx(Jo,{className:"layout",width:i,layouts:v,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:u,handle:".drag-handle"},resizeConfig:{enabled:u},onLayoutChange:s,children:e.widgets?.map((c,w)=>{const f=c.id||`widget-${w}`,y=E(c),R=c.type==="metric";return T.jsx("div",{className:"h-full",children:R?T.jsxs("div",{className:"h-full w-full relative",children:[u&&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(Re.GripVertical,{className:"h-4 w-4"})}),T.jsx(rt.SchemaRenderer,{schema:y,className:"h-full w-full"})]}):T.jsxs(V.Card,{className:V.cn("h-full overflow-hidden border-border/50 shadow-sm transition-all","bg-card/50 backdrop-blur-sm",u&&"ring-2 ring-primary/20"),children:[c.title&&T.jsxs(V.CardHeader,{className:"pb-2 border-b border-border/40 bg-muted/20 flex flex-row items-center justify-between",children:[T.jsx(V.CardTitle,{className:"text-base font-medium tracking-tight truncate",title:c.title,children:c.title}),u&&T.jsx("div",{className:"drag-handle cursor-move p-1 hover:bg-muted/40 rounded",children:T.jsx(Re.GripVertical,{className:"h-4 w-4"})})]}),T.jsx(V.CardContent,{className:"p-0 h-full",children:T.jsx("div",{className:V.cn("h-full w-full overflow-auto p-4"),children:T.jsx(rt.SchemaRenderer,{schema:y})})})]})},f)})})]})},vr=({label:e,value:t,trend:r,icon:n,className:o,description:i,...l})=>{const p=C.useMemo(()=>{if(typeof n=="string"){const u=Pr[n];return u?T.jsx(u,{className:"h-4 w-4 text-muted-foreground"}):null}return n},[n]);return T.jsxs(V.Card,{className:V.cn("h-full",o),...l,children:[T.jsxs(V.CardHeader,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[T.jsx(V.CardTitle,{className:"text-sm font-medium",children:e}),p&&T.jsx("div",{className:"h-4 w-4 text-muted-foreground",children:p})]}),T.jsxs(V.CardContent,{children:[T.jsx("div",{className:"text-2xl font-bold",children:t}),(r||i)&&T.jsxs("p",{className:"text-xs text-muted-foreground flex items-center mt-1",children:[r&&T.jsxs("span",{className:V.cn("flex items-center mr-2",r.direction==="up"&&"text-green-500",r.direction==="down"&&"text-red-500",r.direction==="neutral"&&"text-yellow-500"),children:[r.direction==="up"&&T.jsx(Re.ArrowUpIcon,{className:"h-3 w-3 mr-1"}),r.direction==="down"&&T.jsx(Re.ArrowDownIcon,{className:"h-3 w-3 mr-1"}),r.direction==="neutral"&&T.jsx(Re.MinusIcon,{className:"h-3 w-3 mr-1"}),r.value,"%"]}),i||r?.label]})]})]})},br=({title:e,value:t,icon:r,trend:n,trendValue:o,description:i,className:l,...p})=>{const u=r&&Pr[r];return T.jsxs(V.Card,{className:V.cn("h-full",l),...p,children:[T.jsxs(V.CardHeader,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[T.jsx(V.CardTitle,{className:"text-sm font-medium",children:e}),u&&T.jsx(u,{className:"h-4 w-4 text-muted-foreground"})]}),T.jsxs(V.CardContent,{children:[T.jsx("div",{className:"text-2xl font-bold",children:t}),(n||o||i)&&T.jsxs("p",{className:"text-xs text-muted-foreground flex items-center mt-1",children:[n&&o&&T.jsxs("span",{className:V.cn("flex items-center mr-2",n==="up"&&"text-green-500",n==="down"&&"text-red-500",n==="neutral"&&"text-yellow-500"),children:[n==="up"&&T.jsx(Re.ArrowUpIcon,{className:"h-3 w-3 mr-1"}),n==="down"&&T.jsx(Re.ArrowDownIcon,{className:"h-3 w-3 mr-1"}),n==="neutral"&&T.jsx(Re.MinusIcon,{className:"h-3 w-3 mr-1"}),o]}),i]})]})]})};Ye.ComponentRegistry.register("dashboard",Vt,{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:[]}}),Ye.ComponentRegistry.register("metric",vr,{namespace:"plugin-dashboard",label:"Metric Widget",category:"Dashboard",inputs:[{name:"label",type:"string",label:"Label"},{name:"value",type:"string",label:"Value"}]}),Ye.ComponentRegistry.register("metric-card",br,{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"}}),Ye.ComponentRegistry.register("dashboard-grid",yr,{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 Qo={DashboardRenderer:Vt,DashboardGridLayout:yr,MetricWidget:vr,MetricCard:br};xe.DashboardGridLayout=yr,xe.DashboardRenderer=Vt,xe.MetricCard=br,xe.MetricWidget=vr,xe.dashboardComponents=Qo,Object.defineProperty(xe,Symbol.toStringTag,{value:"Module"})}));
@@ -1 +1 @@
1
- {"version":3,"file":"DashboardGridLayout.d.ts","sourceRoot":"","sources":["../../src/DashboardGridLayout.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAA2C,KAAK,UAAU,IAAI,SAAS,EAAuC,MAAM,mBAAmB,CAAC;AAC/I,OAAO,kCAAkC,CAAC;AAI1C,OAAO,KAAK,EAAE,eAAe,EAAyB,MAAM,kBAAkB,CAAC;AA0B/E,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,eAAe,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,IAAI,CAAC;IAC/C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,CA8NlE,CAAC"}
1
+ {"version":3,"file":"DashboardGridLayout.d.ts","sourceRoot":"","sources":["../../src/DashboardGridLayout.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAA2C,KAAK,UAAU,IAAI,SAAS,EAAuC,MAAM,mBAAmB,CAAC;AAC/I,OAAO,kCAAkC,CAAC;AAI1C,OAAO,KAAK,EAAE,eAAe,EAAyB,MAAM,kBAAkB,CAAC;AA0B/E,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,eAAe,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,IAAI,CAAC;IAC/C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,CAmOlE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"DashboardRenderer.d.ts","sourceRoot":"","sources":["../../src/DashboardRenderer.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAyB,MAAM,kBAAkB,CAAC;AAe/E,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,eAAe,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,eAAO,MAAM,iBAAiB,gIAuK7B,CAAC"}
1
+ {"version":3,"file":"DashboardRenderer.d.ts","sourceRoot":"","sources":["../../src/DashboardRenderer.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAyB,MAAM,kBAAkB,CAAC;AAe/E,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,eAAe,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,eAAO,MAAM,iBAAiB,gIA4K7B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@object-ui/plugin-dashboard",
3
- "version": "3.0.2",
3
+ "version": "3.0.3",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "description": "Dashboard plugin for Object UI",
@@ -21,10 +21,10 @@
21
21
  "react-dom": "19.2.4",
22
22
  "react-grid-layout": "^2.2.2",
23
23
  "tailwind-merge": "^2.6.1",
24
- "@object-ui/components": "3.0.2",
25
- "@object-ui/core": "3.0.2",
26
- "@object-ui/react": "3.0.2",
27
- "@object-ui/types": "3.0.2"
24
+ "@object-ui/components": "3.0.3",
25
+ "@object-ui/core": "3.0.3",
26
+ "@object-ui/react": "3.0.3",
27
+ "@object-ui/types": "3.0.3"
28
28
  },
29
29
  "peerDependencies": {
30
30
  "react": "^18.0.0",
@@ -126,10 +126,11 @@ export const DashboardGridLayout: React.FC<DashboardGridLayoutProps> = ({
126
126
  const getComponentSchema = React.useCallback((widget: DashboardWidgetSchema) => {
127
127
  if (widget.component) return widget.component;
128
128
 
129
- const widgetType = (widget as any).type;
129
+ const widgetType = widget.type;
130
+ const options = (widget.options || {}) as Record<string, any>;
130
131
  if (widgetType === 'bar' || widgetType === 'line' || widgetType === 'area' || widgetType === 'pie' || widgetType === 'donut') {
131
- const dataItems = Array.isArray((widget as any).data) ? (widget as any).data : (widget as any).data?.items || [];
132
- const options = (widget as any).options || {};
132
+ const widgetData = (widget as any).data || options.data;
133
+ const dataItems = Array.isArray(widgetData) ? widgetData : widgetData?.items || [];
133
134
  const xAxisKey = options.xField || 'name';
134
135
  const yField = options.yField || 'value';
135
136
 
@@ -145,17 +146,21 @@ export const DashboardGridLayout: React.FC<DashboardGridLayoutProps> = ({
145
146
  }
146
147
 
147
148
  if (widgetType === 'table') {
149
+ const widgetData = (widget as any).data || options.data;
148
150
  return {
149
151
  type: 'data-table',
150
- ...(widget as any).options,
151
- data: (widget as any).data?.items || [],
152
+ ...options,
153
+ data: widgetData?.items || [],
152
154
  searchable: false,
153
155
  pagination: false,
154
156
  className: "border-0"
155
157
  };
156
158
  }
157
159
 
158
- return widget;
160
+ return {
161
+ ...widget,
162
+ ...options
163
+ };
159
164
  }, []);
160
165
 
161
166
  return (
@@ -216,7 +221,7 @@ export const DashboardGridLayout: React.FC<DashboardGridLayoutProps> = ({
216
221
  {schema.widgets?.map((widget, index) => {
217
222
  const widgetId = widget.id || `widget-${index}`;
218
223
  const componentSchema = getComponentSchema(widget);
219
- const isSelfContained = (widget as any).type === 'metric';
224
+ const isSelfContained = widget.type === 'metric';
220
225
 
221
226
  return (
222
227
  <div key={widgetId} className="h-full">