@object-ui/plugin-view 3.1.1 → 3.1.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.
- package/.turbo/turbo-build.log +5 -5
- package/CHANGELOG.md +22 -0
- package/dist/index.js +240 -239
- package/dist/index.umd.cjs +3 -3
- package/package.json +8 -8
- package/src/ObjectView.tsx +7 -6
- package/src/__tests__/ObjectView.test.tsx +41 -1
- package/src/__tests__/config-sync-integration.test.tsx +1 -1
- package/src/__tests__/registration.test.tsx +0 -32
package/dist/index.umd.cjs
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
(function(ae,o){typeof exports=="object"&&typeof module<"u"?o(exports,require("react"),require("@object-ui/core"),require("@object-ui/plugin-grid"),require("@object-ui/plugin-form"),require("@object-ui/components"),require("lucide-react"),require("@object-ui/react"),require("react-dom")):typeof define=="function"&&define.amd?define(["exports","react","@object-ui/core","@object-ui/plugin-grid","@object-ui/plugin-form","@object-ui/components","lucide-react","@object-ui/react","react-dom"],o):(ae=typeof globalThis<"u"?globalThis:ae||self,o(ae.ObjectUIPluginView={},ae.React,ae.core,ae.pluginGrid,ae.pluginForm,ae.components,ae.lucideReact,ae.react,ae.ReactDOM))})(this,(function(ae,o,Ve,Zn,At,h,F,rn,Je){"use strict";function er(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:()=>e[n]})}}return t.default=e,Object.freeze(t)}const X=er(o);var bt={exports:{}},Qe={};var sn;function tr(){if(sn)return Qe;sn=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.fragment");function n(r,s,l){var c=null;if(l!==void 0&&(c=""+l),s.key!==void 0&&(c=""+s.key),"key"in s){l={};for(var a in s)a!=="key"&&(l[a]=s[a])}else l=s;return s=l.ref,{$$typeof:e,type:r,key:c,ref:s!==void 0?s:null,props:l}}return Qe.Fragment=t,Qe.jsx=n,Qe.jsxs=n,Qe}var Ze={};var ln;function nr(){return ln||(ln=1,process.env.NODE_ENV!=="production"&&(function(){function e(b){if(b==null)return null;if(typeof b=="function")return b.$$typeof===z?null:b.displayName||b.name||null;if(typeof b=="string")return b;switch(b){case S:return"Fragment";case w:return"Profiler";case E:return"StrictMode";case L:return"Suspense";case y:return"SuspenseList";case _:return"Activity"}if(typeof b=="object")switch(typeof b.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),b.$$typeof){case p:return"Portal";case I:return b.displayName||"Context";case N:return(b._context.displayName||"Context")+".Consumer";case M:var
|
|
1
|
+
(function(ae,o){typeof exports=="object"&&typeof module<"u"?o(exports,require("react"),require("@object-ui/core"),require("@object-ui/plugin-grid"),require("@object-ui/plugin-form"),require("@object-ui/components"),require("lucide-react"),require("@object-ui/react"),require("react-dom")):typeof define=="function"&&define.amd?define(["exports","react","@object-ui/core","@object-ui/plugin-grid","@object-ui/plugin-form","@object-ui/components","lucide-react","@object-ui/react","react-dom"],o):(ae=typeof globalThis<"u"?globalThis:ae||self,o(ae.ObjectUIPluginView={},ae.React,ae.core,ae.pluginGrid,ae.pluginForm,ae.components,ae.lucideReact,ae.react,ae.ReactDOM))})(this,(function(ae,o,Ve,Zn,At,h,F,rn,Je){"use strict";function er(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:()=>e[n]})}}return t.default=e,Object.freeze(t)}const X=er(o);var bt={exports:{}},Qe={};var sn;function tr(){if(sn)return Qe;sn=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.fragment");function n(r,s,l){var c=null;if(l!==void 0&&(c=""+l),s.key!==void 0&&(c=""+s.key),"key"in s){l={};for(var a in s)a!=="key"&&(l[a]=s[a])}else l=s;return s=l.ref,{$$typeof:e,type:r,key:c,ref:s!==void 0?s:null,props:l}}return Qe.Fragment=t,Qe.jsx=n,Qe.jsxs=n,Qe}var Ze={};var ln;function nr(){return ln||(ln=1,process.env.NODE_ENV!=="production"&&(function(){function e(b){if(b==null)return null;if(typeof b=="function")return b.$$typeof===z?null:b.displayName||b.name||null;if(typeof b=="string")return b;switch(b){case S:return"Fragment";case w:return"Profiler";case E:return"StrictMode";case L:return"Suspense";case y:return"SuspenseList";case _:return"Activity"}if(typeof b=="object")switch(typeof b.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),b.$$typeof){case p:return"Portal";case I:return b.displayName||"Context";case N:return(b._context.displayName||"Context")+".Consumer";case M:var u=b.render;return b=b.displayName,b||(b=u.displayName||u.name||"",b=b!==""?"ForwardRef("+b+")":"ForwardRef"),b;case k:return u=b.displayName||null,u!==null?u:e(b.type)||"Memo";case P:u=b._payload,b=b._init;try{return e(b(u))}catch{}}return null}function t(b){return""+b}function n(b){try{t(b);var u=!1}catch{u=!0}if(u){u=console;var V=u.error,O=typeof Symbol=="function"&&Symbol.toStringTag&&b[Symbol.toStringTag]||b.constructor.name||"Object";return V.call(u,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",O),t(b)}}function r(b){if(b===S)return"<>";if(typeof b=="object"&&b!==null&&b.$$typeof===P)return"<...>";try{var u=e(b);return u?"<"+u+">":"<...>"}catch{return"<...>"}}function s(){var b=U.A;return b===null?null:b.getOwner()}function l(){return Error("react-stack-top-frame")}function c(b){if(te.call(b,"key")){var u=Object.getOwnPropertyDescriptor(b,"key").get;if(u&&u.isReactWarning)return!1}return b.key!==void 0}function a(b,u){function V(){he||(he=!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)",u))}V.isReactWarning=!0,Object.defineProperty(b,"key",{get:V,configurable:!0})}function f(){var b=e(this.type);return ee[b]||(ee[b]=!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.")),b=this.props.ref,b!==void 0?b:null}function g(b,u,V,O,le,q){var G=V.ref;return b={$$typeof:D,type:b,key:u,props:V,_owner:O},(G!==void 0?G:null)!==null?Object.defineProperty(b,"ref",{enumerable:!1,get:f}):Object.defineProperty(b,"ref",{enumerable:!1,value:null}),b._store={},Object.defineProperty(b._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(b,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(b,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:le}),Object.defineProperty(b,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:q}),Object.freeze&&(Object.freeze(b.props),Object.freeze(b)),b}function x(b,u,V,O,le,q){var G=u.children;if(G!==void 0)if(O)if(Q(G)){for(O=0;O<G.length;O++)d(G[O]);Object.freeze&&Object.freeze(G)}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 d(G);if(te.call(u,"key")){G=e(b);var oe=Object.keys(u).filter(function(v){return v!=="key"});O=0<oe.length?"{key: someKey, "+oe.join(": ..., ")+": ...}":"{key: someKey}",ye[G+O]||(oe=0<oe.length?"{"+oe.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} />`,O,G,oe,G),ye[G+O]=!0)}if(G=null,V!==void 0&&(n(V),G=""+V),c(f)&&(n(f.key),G=""+f.key),"key"in f){V={};for(var de in f)de!=="key"&&(V[de]=f[de])}else V=f;return G&&a(V,typeof b=="function"?b.displayName||b.name||"Unknown":b),g(b,G,V,s(),le,q)}function d(b){C(b)?b._store&&(b._store.validated=1):typeof b=="object"&&b!==null&&b.$$typeof===P&&(b._payload.status==="fulfilled"?C(b._payload.value)&&b._payload.value._store&&(b._payload.value._store.validated=1):b._store&&(b._store.validated=1))}function C(b){return typeof b=="object"&&b!==null&&b.$$typeof===D}var m=o,D=Symbol.for("react.transitional.element"),p=Symbol.for("react.portal"),S=Symbol.for("react.fragment"),E=Symbol.for("react.strict_mode"),w=Symbol.for("react.profiler"),N=Symbol.for("react.consumer"),I=Symbol.for("react.context"),M=Symbol.for("react.forward_ref"),L=Symbol.for("react.suspense"),y=Symbol.for("react.suspense_list"),k=Symbol.for("react.memo"),P=Symbol.for("react.lazy"),_=Symbol.for("react.activity"),z=Symbol.for("react.client.reference"),U=m.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,te=Object.prototype.hasOwnProperty,Q=Array.isArray,fe=console.createTask?console.createTask:function(){return null};m={react_stack_bottom_frame:function(b){return b()}};var he,ee={},R=m.react_stack_bottom_frame.bind(m,l)(),W=fe(r(l)),ye={};Ze.Fragment=S,Ze.jsx=function(b,f,V){var O=1e4>U.recentlyCreatedOwnerStacks++;return x(b,f,V,!1,O?Error("react-stack-top-frame"):R,O?fe(r(b)):W)},Ze.jsxs=function(b,f,V){var O=1e4>U.recentlyCreatedOwnerStacks++;return x(b,f,V,!0,O?Error("react-stack-top-frame"):R,O?fe(r(b)):W)}})()),Ze}var on;function rr(){return on||(on=1,process.env.NODE_ENV==="production"?bt.exports=tr():bt.exports=nr()),bt.exports}var i=rr();function an(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var s=e.length;for(t=0;t<s;t++)e[t]&&(n=an(e[t]))&&(r&&(r+=" "),r+=n)}else for(n in e)e[n]&&(r&&(r+=" "),r+=n);return r}function ir(){for(var e,t,n=0,r="",s=arguments.length;n<s;n++)(e=arguments[n])&&(t=an(e))&&(r&&(r+=" "),r+=t);return r}const cn=e=>typeof e=="boolean"?`${e}`:e===0?"0":e,dn=ir,Ye=(e,t)=>n=>{var r;if(t?.variants==null)return dn(e,n?.class,n?.className);const{variants:s,defaultVariants:l}=t,c=Object.keys(s).map(g=>{const x=n?.[g],d=l?.[g];if(x===null)return null;const C=cn(x)||cn(d);return s[g][C]}),a=n&&Object.entries(n).reduce((g,x)=>{let[d,C]=x;return C===void 0||(g[d]=C),g},{}),u=t==null||(r=t.compoundVariants)===null||r===void 0?void 0:r.reduce((g,x)=>{let{class:d,className:C,...m}=x;return Object.entries(m).every(D=>{let[p,S]=D;return Array.isArray(S)?S.includes({...l,...a}[p]):{...l,...a}[p]===S})?[...g,d,C]:g},[]);return dn(e,c,u,n?.class,n?.className)},sr={list:"List",detail:"Detail",grid:"Grid",kanban:"Kanban",calendar:"Calendar",timeline:"Timeline",map:"Map",gallery:"Gallery",gantt:"Gantt"},lr={list:F.List,detail:F.FileText,grid:F.Grid,kanban:F.LayoutGrid,calendar:F.Calendar,timeline:F.Activity,map:F.Map,gallery:F.Images,gantt:F.GanttChartSquare},or=Ye("flex gap-4",{variants:{position:{top:"flex-col",bottom:"flex-col-reverse",left:"flex-row",right:"flex-row-reverse"}},defaultVariants:{position:"top"}}),ar=Ye("w-full",{variants:{orientation:{horizontal:"w-full",vertical:"w-48"}},defaultVariants:{orientation:"horizontal"}}),cr=Ye("flex gap-2",{variants:{orientation:{horizontal:"flex-row flex-wrap",vertical:"flex-col"}},defaultVariants:{orientation:"horizontal"}}),dr=Ye("",{variants:{orientation:{horizontal:"",vertical:"flex h-auto flex-col items-stretch"}},defaultVariants:{orientation:"horizontal"}});function ur(e){return e.split("-").map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join("")}const fr={Home:"House"};function un(e){if(!e)return null;const t=ur(e),n=fr[t]||t;return F.icons[n]||null}function It(e){return e.label?e.label:sr[e.type]||e.type}function fn(e){return e.icon?un(e.icon):lr[e.type]||null}function hr(e){return e.activeView?e.activeView:e.defaultView?e.defaultView:e.views?.[0]?.type}const hn={share:F.Share2,settings:F.Settings,duplicate:F.Copy,delete:F.Trash2},pr={share:"Share",settings:"Settings",duplicate:"Duplicate",delete:"Delete"},Ot=({schema:e,className:t,onViewChange:n,onCreateView:r,onViewAction:s,createViewLabel:l="Create view",...c})=>{const a=X.useMemo(()=>e.storageKey?e.storageKey:`view-switcher${e.id?`-${e.id}`:""}`,[e.id,e.storageKey]),[u,g]=X.useState(()=>hr(e));X.useEffect(()=>{if(e.activeView){g(e.activeView);return}if(e.persistPreference)try{const y=localStorage.getItem(a);if(y){const k=e.views.find(P=>P.type===y)?.type;k&&g(k)}}catch{}},[e.activeView,e.persistPreference,e.views,a]),X.useEffect(()=>{if(!(!e.persistPreference||!u||e.activeView))try{localStorage.setItem(a,u)}catch{}},[u,e.activeView,e.persistPreference,a]);const x=X.useCallback(y=>{n?.(y),e.onViewChange&&typeof window<"u"&&window.dispatchEvent(new CustomEvent(e.onViewChange,{detail:{view:y}}))},[n,e.onViewChange]),d=X.useCallback(y=>{g(y),x(y)},[x]),C=u||e.views?.[0]?.type,m=C||"",D=e.views.find(y=>y.type===C)||e.views?.[0],p=e.variant||"tabs",S=e.position||"top",E=S==="left"||S==="right",w=E?"vertical":"horizontal",N=e.viewActions&&e.viewActions.length>0?i.jsx("div",{className:"flex items-center gap-1",children:e.viewActions.map((y,k)=>{const P=y.icon&&un(y.icon)||hn[y.type];return i.jsx(h.Button,{type:"button",variant:"ghost",size:"icon-sm",onClick:()=>s?.(y.type,C),title:pr[y.type]||y.type,children:P?i.jsx(P,{className:"h-3.5 w-3.5"}):null},`action-${y.type}-${k}`)})}):null,I=e.allowCreateView?i.jsx(h.Button,{type:"button",variant:"ghost",size:"icon-sm",onClick:()=>r?.(),title:l,children:i.jsx(F.Plus,{className:"h-3.5 w-3.5"})}):null,M=i.jsxs("div",{className:h.cn(ar({orientation:w}),"flex items-center gap-1"),children:[p==="dropdown"&&i.jsxs(h.Select,{value:m,onValueChange:y=>d(y),children:[i.jsx(h.SelectTrigger,{className:h.cn("w-full",E?"h-10":"h-9"),children:i.jsx(h.SelectValue,{placeholder:"Select view"})}),i.jsx(h.SelectContent,{children:e.views.map((y,k)=>i.jsx(h.SelectItem,{value:y.type,children:It(y)},`${y.type}-${k}`))})]}),p==="buttons"&&i.jsx("div",{className:h.cn(cr({orientation:w})),children:e.views.map((y,k)=>{const P=y.type===C,_=fn(y);return i.jsxs(h.Button,{type:"button",size:"sm",variant:P?"secondary":"ghost",className:h.cn("justify-start gap-2",E?"w-full":""),onClick:()=>d(y.type),children:[_?i.jsx(_,{className:"h-4 w-4"}):null,i.jsx("span",{children:It(y)})]},`${y.type}-${k}`)})}),p==="tabs"&&i.jsx(h.Tabs,{value:m,onValueChange:y=>d(y),children:i.jsx(h.TabsList,{className:h.cn(dr({orientation:w})),children:e.views.map((y,k)=>{const P=fn(y);return i.jsxs(h.TabsTrigger,{value:y.type,className:h.cn("gap-2",E?"justify-start":""),children:[P?i.jsx(P,{className:"h-4 w-4"}):null,i.jsx("span",{children:It(y)})]},`${y.type}-${k}`)})})}),N,I]}),L=D?.schema?Array.isArray(D.schema)?i.jsx("div",{className:"space-y-4",children:D.schema.map((y,k)=>i.jsx(rn.SchemaRenderer,{schema:y,...c},`${D.type}-${k}`))}):i.jsx(rn.SchemaRenderer,{schema:D.schema,...c}):null;return i.jsxs("div",{className:h.cn(or({position:S}),t),children:[i.jsx("div",{className:h.cn("shrink-0",E?"flex flex-col":"flex"),children:M}),i.jsx("div",{className:"flex-1 min-w-0",children:L})]})};let vt=null;try{vt=require("@object-ui/react").SchemaRenderer||null}catch{}const pn=({schema:e,dataSource:t,className:n,views:r,activeViewId:s,onViewChange:l,onRowClick:c,onEdit:a,renderListView:u,toolbarAddon:g,onCreateView:x,onViewAction:d})=>{const[C,m]=o.useState(null),[D,p]=o.useState(!1),[S,E]=o.useState("create"),[w,N]=o.useState(null),[I,M]=o.useState(0),[L,y]=o.useState([]),[k,P]=o.useState(!1),[_,z]=o.useState({}),[U,te]=o.useState([]),Q=e.listViews,fe=Q!=null&&Object.keys(Q).length>0,[he,ee]=o.useState(()=>e.defaultListView&&Q?.[e.defaultListView]?e.defaultListView:Q&&Object.keys(Q)[0]||""),R=o.useMemo(()=>!fe||!he?null:Q[he]||null,[fe,he,Q]),W=o.useMemo(()=>r&&r.length>0?r:null,[r]),ye=W!=null&&W.length>0,b=s||W?.[0]?.id,f=W?.find(j=>j.id===b)||W?.[0],V=o.useMemo(()=>R?.type?R.type:f?.type?f.type:e.defaultViewType||"grid",[R,f,e.defaultViewType]),O=e.navigation;o.useEffect(()=>{let j=!0;const T=async()=>{try{const A=await t.getObjectSchema(e.objectName);j&&m(A)}catch(A){console.error("Failed to fetch object schema:",A)}};return e.objectName&&t&&T(),()=>{j=!1}},[e.objectName,t]),o.useEffect(()=>{let j=!0;return(async()=>{if(!(V==="grid"&&!u)&&!(!t||!e.objectName)){P(!0);try{const A=R?.filter||f?.filter||e.table?.defaultFilters||[],ve=Object.entries(_).filter(([,$])=>$!==void 0&&$!==""&&$!==null).map(([$,me])=>[$,"=",me]);let ie=[];A.length>0&&ve.length>0?ie=["and",...A,...ve]:ve.length===1?ie=ve[0]:ve.length>1?ie=["and",...ve]:ie=A;const xe=U.length>0?U.map($=>({field:$.field,order:$.direction})):R?.sort||f?.sort||e.table?.defaultSort||void 0,se=Ve.buildExpandFields(C?.fields),ge=await t.find(e.objectName,{$filter:ie.length>0?ie:void 0,$orderby:xe,$top:100,...se.length>0?{$expand:se}:{}});let J=[];Array.isArray(ge)?J=ge:ge&&typeof ge=="object"&&(Array.isArray(ge.data)?J=ge.data:Array.isArray(ge.records)&&(J=ge.records)),j&&y(J)}catch(A){console.error("ObjectView data fetch error:",A)}finally{j&&P(!1)}}})(),()=>{j=!1}},[e.objectName,t,V,_,U,I,R,f,u,C]);const le=e.layout||"drawer",q=e.operations||e.table?.operations||{create:!0,read:!0,update:!0,delete:!0},G=o.useCallback(()=>{le==="page"&&e.onNavigate?e.onNavigate("new","edit"):(E("create"),N(null),p(!0))},[le,e]),oe=o.useCallback(j=>{if(a){a(j);return}if(le==="page"&&e.onNavigate){const T=j._id||j.id;e.onNavigate(T,"edit")}else E("edit"),N(j),p(!0)},[le,e,a]),de=o.useCallback(j=>{if(le==="page"&&e.onNavigate){const T=j._id||j.id;e.onNavigate(T,"view")}else E("view"),N(j),p(!0)},[le,e]),v=o.useCallback(j=>{if(c){c(j);return}if(O){if(O.mode==="none"||O.preventNavigation)return;if(O.mode==="new_window"||O.openNewTab){const T=j._id||j.id,A=`/${e.objectName}/${T}`;window.open(A,"_blank");return}if(O.mode==="drawer"){E("view"),N(j),p(!0);return}if(O.mode==="modal"){E("view"),N(j),p(!0);return}if(O.mode==="page"){const T=j._id||j.id;e.onNavigate&&e.onNavigate(T,"view");return}if(O.mode==="split"||O.mode==="popover"){E("view"),N(j),p(!0);return}}q.read!==!1&&de(j)},[c,O,q.read,de,e]),Z=o.useCallback(j=>{M(T=>T+1)},[]),K=o.useCallback(j=>{M(T=>T+1)},[]),ne=o.useCallback(()=>{p(!1),N(null),M(j=>j+1)},[]),Y=o.useCallback(()=>{p(!1),N(null)},[]);o.useCallback(()=>{M(j=>j+1)},[]);const Ce=o.useMemo(()=>!ye||!W||W.length<=1?null:{type:"view-switcher",variant:"tabs",position:"top",persistPreference:!0,storageKey:`view-pref-${e.objectName}`,defaultView:f?.type||"grid",activeView:f?.type||"grid",views:W.map(j=>{const T={kanban:"kanban",calendar:"calendar",map:"map",gallery:"layout-grid",timeline:"activity",gantt:"gantt-chart",grid:"table",list:"list",detail:"file-text"};return{type:j.type,label:j.label,icon:T[j.type]||"table"}}),allowCreateView:e.allowCreateView,viewActions:e.viewActions},[ye,W,f,e.objectName,e.allowCreateView,e.viewActions]),pe=o.useCallback(j=>{if(!W)return;const T=W.find(A=>A.type===j);T&&l&&l(T.id)},[W,l]),ct=o.useCallback(j=>{ee(j)},[]);o.useMemo(()=>{if(e.showFilters===!1)return null;const j=e.filterableFields,T=C?.fields||{},ve=(j?j.map(ie=>[ie,T[ie]||{label:ie}]):Object.entries(T).filter(([,ie])=>!ie.hidden).slice(0,8)).map(([ie,xe])=>{const se=xe.type||"text";let ge="text",J;return se==="number"||se==="currency"||se==="percent"?ge="number":se==="boolean"||se==="toggle"?ge="boolean":se==="date"||se==="datetime"?ge="date":se==="select"||se==="status"||xe.options?(ge="select",J=(xe.options||[]).map($=>typeof $=="string"?{label:$,value:$}:{label:$.label,value:$.value})):(se==="lookup"||se==="master_detail"||se==="user"||se==="owner")&&xe.options&&xe.options.length>0&&(ge="multi-select",J=(xe.options||[]).map($=>typeof $=="string"?{label:$,value:$}:{label:$.label,value:$.value})),{field:ie,label:xe.label||ie,type:ge,placeholder:`Filter ${xe.label||ie}...`,...J?{options:J}:{}}});return ve.length===0?null:{type:"filter-ui",layout:"popover",showClear:!0,showApply:!0,filters:ve,values:_}},[e.showFilters,e.filterableFields,C,_]);const Re=e.showSort;o.useMemo(()=>{if(Re===!1)return null;const j=C?.fields||{},T=Object.entries(j).filter(([,A])=>!A.hidden).slice(0,10).map(([A,ve])=>({field:A,label:ve.label||A}));return T.length===0?null:{type:"sort-ui",variant:"dropdown",multiple:!1,fields:T,sort:U}},[C,U,Re]);const Le=o.useCallback(j=>{const T={objectName:e.objectName,fields:R?.columns||f?.columns||e.table?.fields,className:"h-full w-full",showSearch:f?.showSearch??e.showSearch??!1,showSort:f?.showSort??e.showSort??!1,showFilters:f?.showFilters??e.showFilters??!1,striped:f?.striped??!1,bordered:f?.bordered??!1,color:f?.color},A=R?.options||f||{};if(process.env.NODE_ENV==="development"){const ve=["startDateField","endDateField","dateField","groupBy","groupField","locationField","imageField","dependenciesField","progressField","titleField","subtitleField","latitudeField","longitudeField"],ie=A[j]||{},xe=ve.filter(se=>se in A&&!(se in ie));xe.length>0&&console.warn(`[Spec Compliance] View options use flat properties ${JSON.stringify(xe)}. Move them under options.${j} per @objectstack/spec protocol.`)}switch(j){case"kanban":return{type:"object-kanban",...T,groupBy:A.kanban?.groupField||"status",groupField:A.kanban?.groupField||"status",titleField:A.kanban?.titleField||"name",cardFields:T.fields||[],...A.kanban||{}};case"calendar":return{type:"object-calendar",...T,startDateField:A.calendar?.startDateField||"start_date",endDateField:A.calendar?.endDateField||"end_date",titleField:A.calendar?.titleField||"name",...A.calendar||{}};case"gallery":return{type:"object-gallery",...T,imageField:A.gallery?.imageField,titleField:A.gallery?.titleField||"name",subtitleField:A.gallery?.subtitleField,...A.gallery||{}};case"timeline":return{type:"object-timeline",...T,dateField:A.timeline?.dateField||"created_at",titleField:A.timeline?.titleField||"name",...A.timeline||{}};case"gantt":return{type:"object-gantt",...T,startDateField:A.gantt?.startDateField||"start_date",endDateField:A.gantt?.endDateField||"end_date",progressField:A.gantt?.progressField||"progress",dependenciesField:A.gantt?.dependenciesField||"dependencies",...A.gantt||{}};case"map":return{type:"object-map",...T,locationField:A.map?.locationField||"location",...A.map||{}};default:return null}},[e.objectName,e.table?.fields,R,f]),je=o.useMemo(()=>({type:"object-grid",objectName:e.objectName,title:e.table?.title,description:e.table?.description,fields:R?.columns||f?.columns||e.table?.fields,columns:R?.columns||f?.columns||e.table?.columns,operations:{...q,create:!1},defaultFilters:R?.filter||f?.filter||e.table?.defaultFilters,defaultSort:R?.sort||f?.sort||e.table?.defaultSort,pageSize:e.table?.pageSize,selectable:e.table?.selectable,striped:f?.striped??e.table?.striped,bordered:f?.bordered??e.table?.bordered,className:e.table?.className}),[e,q,R,f]),re=()=>{const j=w?w._id||w.id:void 0;return{type:"object-form",objectName:e.objectName,mode:S,recordId:j,title:e.form?.title,description:e.form?.description,fields:e.form?.fields,customFields:e.form?.customFields,groups:e.form?.groups,layout:e.form?.layout,columns:e.form?.columns,showSubmit:e.form?.showSubmit,submitText:e.form?.submitText,showCancel:e.form?.showCancel,cancelText:e.form?.cancelText,showReset:e.form?.showReset,initialValues:e.form?.initialValues,readOnly:e.form?.readOnly||S==="view",className:e.form?.className,onSuccess:ne,onCancel:Y}},H=()=>{if(e.form?.title)return e.form.title;const j=C?.label||e.objectName;switch(S){case"create":return`Create ${j}`;case"edit":return`Edit ${j}`;case"view":return`View ${j}`;default:return j}},Fe=o.useMemo(()=>{const j=O?.width;return j?typeof j=="number"?`max-w-[${j}px]`:`max-w-[${j}]`:""},[O]),Xe=()=>i.jsx(h.Drawer,{open:D,onOpenChange:p,direction:"right",children:i.jsxs(h.DrawerContent,{className:h.cn("w-full sm:max-w-2xl",Fe),children:[i.jsxs(h.DrawerHeader,{children:[i.jsx(h.DrawerTitle,{children:H()}),e.form?.description&&i.jsx(h.DrawerDescription,{children:e.form.description})]}),i.jsx("div",{className:"flex-1 overflow-y-auto px-4 pb-4",children:i.jsx(At.ObjectForm,{schema:re(),dataSource:t})})]})}),dt=()=>i.jsx(h.Dialog,{open:D,onOpenChange:p,children:i.jsxs(h.DialogContent,{className:h.cn("max-w-2xl max-h-[90vh] overflow-y-auto",Fe),children:[i.jsxs(h.DialogHeader,{children:[i.jsx(h.DialogTitle,{children:H()}),e.form?.description&&i.jsx(h.DialogDescription,{children:e.form.description})]}),i.jsx(At.ObjectForm,{schema:re(),dataSource:t})]})}),tn=o.useMemo(()=>Object.keys(_).some(T=>_[T]!==void 0&&_[T]!==""&&_[T]!==null)?Object.entries(_).filter(([,T])=>T!==void 0&&T!==""&&T!==null).map(([T,A])=>({field:T,operator:"equals",value:A})):R?.filter||f?.filter||e.table?.defaultFilters,[_,R,f,e.table?.defaultFilters]),_e=o.useMemo(()=>U.length>0?U:R?.sort||f?.sort||e.table?.defaultSort,[U,R,f,e.table?.defaultSort]),Ae=()=>{const j=`${e.objectName}-${he||f?.id||"default"}-${V}-${I}`;if(u)return u({schema:{type:"list-view",objectName:e.objectName,viewType:V,fields:R?.columns||f?.columns||e.table?.fields,filters:tn,sort:_e,rowHeight:f?.rowHeight,densityMode:f?.densityMode,groupBy:f?.groupBy,options:R?.options||f,showSearch:f?.showSearch??e.showSearch,showFilters:f?.showFilters??e.showFilters,showSort:f?.showSort??e.showSort,showHideFields:f?.showHideFields??e.showHideFields,showGroup:f?.showGroup??e.showGroup,showColor:f?.showColor??e.showColor,showDensity:f?.showDensity??e.showDensity,allowExport:f?.allowExport??e.allowExport,striped:f?.striped??e.striped,bordered:f?.bordered??e.bordered,color:f?.color??e.color,inlineEdit:f?.inlineEdit??e.inlineEdit,wrapHeaders:f?.wrapHeaders??e.wrapHeaders,clickIntoRecordDetails:f?.clickIntoRecordDetails??e.clickIntoRecordDetails,addRecordViaForm:f?.addRecordViaForm??e.addRecordViaForm,addDeleteRecordsInline:f?.addDeleteRecordsInline??e.addDeleteRecordsInline,collapseAllByDefault:f?.collapseAllByDefault??e.collapseAllByDefault,fieldTextColor:f?.fieldTextColor??e.fieldTextColor,prefixField:f?.prefixField??e.prefixField,showDescription:f?.showDescription??e.showDescription,navigation:f?.navigation??e.navigation,selection:f?.selection??e.selection,pagination:f?.pagination??e.pagination,searchableFields:f?.searchableFields??e.searchableFields,filterableFields:f?.filterableFields??e.filterableFields,resizable:f?.resizable??e.resizable,hiddenFields:f?.hiddenFields??e.hiddenFields,rowActions:f?.rowActions??e.rowActions,bulkActions:f?.bulkActions??e.bulkActions,sharing:f?.sharing??e.sharing,addRecord:f?.addRecord??e.addRecord,conditionalFormatting:f?.conditionalFormatting??e.conditionalFormatting,quickFilters:f?.quickFilters??e.quickFilters,showRecordCount:f?.showRecordCount??e.showRecordCount,allowPrinting:f?.allowPrinting??e.allowPrinting,virtualScroll:f?.virtualScroll??e.virtualScroll,emptyState:f?.emptyState??e.emptyState,aria:f?.aria??e.aria,tabs:e.tabs},dataSource:t,onEdit:oe,onRowClick:v,className:"h-full"});if(V!=="grid"){const T=Le(V);if(T&&vt)return i.jsx(vt,{schema:T,dataSource:t,data:L,loading:k},j);if(!vt)return i.jsx("div",{className:"flex items-center justify-center h-40 text-muted-foreground",children:i.jsxs("p",{children:["SchemaRenderer not available. Install @object-ui/react to render ",V," views."]})})}return i.jsx(Zn.ObjectGrid,{schema:je,dataSource:t,onRowClick:v,onEdit:q.update!==!1?oe:void 0,onDelete:q.delete!==!1?Z:void 0,onBulkDelete:q.delete!==!1?K:void 0},j)},Ue=()=>{if(!fe)return null;const j=Object.entries(Q);return j.length<=1?null:i.jsx(h.Tabs,{value:he,onValueChange:ct,className:"w-full",children:i.jsx(h.TabsList,{className:"w-auto",children:j.map(([T,A])=>i.jsx(h.TabsTrigger,{value:T,className:"text-sm",children:A.label||T},T))})})},ut=()=>{const j=e.showCreate!==!1&&q.create!==!1,T=e.showViewSwitcher===!0,A=Ue();return!A&&!T&&!j&&!g?null:i.jsxs("div",{className:"flex flex-col gap-3",children:[A,(T||j||g)&&i.jsxs("div",{className:"flex items-center justify-between gap-4",children:[i.jsx("div",{className:"flex items-center gap-2",children:T&&Ce&&i.jsx(Ot,{schema:Ce,onViewChange:pe,onCreateView:x,onViewAction:d,className:"overflow-x-auto"})}),i.jsxs("div",{className:"flex items-center gap-2",children:[g,j&&i.jsxs(h.Button,{size:"sm",onClick:G,children:[i.jsx(F.Plus,{className:"h-4 w-4"}),"Create"]})]})]})]})},Se=O?.mode==="modal"?"modal":O?.mode==="drawer"?"drawer":O?.mode==="split"?"split":O?.mode==="popover"?"popover":le,ft=j=>i.jsx("div",{className:"space-y-3",children:i.jsx(At.ObjectForm,{schema:re(),dataSource:t})}),kt=o.useCallback(j=>{j||Y()},[Y]);if(Se==="split"){const j=C?.label||e.objectName;return i.jsxs("div",{className:h.cn("flex flex-col h-full min-w-0 overflow-hidden",n),children:[(e.title||e.description)&&i.jsxs("div",{className:"mb-4 shrink-0",children:[e.title&&i.jsx("h2",{className:"text-2xl font-bold tracking-tight",children:e.title}),e.description&&i.jsx("p",{className:"text-muted-foreground mt-1",children:e.description})]}),i.jsx("div",{className:"mb-4 shrink-0",children:ut()}),i.jsx("div",{className:"flex-1 min-h-0 min-w-0 overflow-hidden",children:D&&w?i.jsx(h.NavigationOverlay,{isOpen:D,selectedRecord:w,mode:"split",close:Y,setIsOpen:kt,width:O?.width,isOverlay:!0,title:`${j} Detail`,mainContent:i.jsx("div",{className:"h-full overflow-auto",children:Ae()}),children:ft}):Ae()})]})}return i.jsxs("div",{className:h.cn("flex flex-col h-full min-w-0 overflow-hidden",n),children:[(e.title||e.description)&&i.jsxs("div",{className:"mb-4 shrink-0",children:[e.title&&i.jsx("h2",{className:"text-2xl font-bold tracking-tight",children:e.title}),e.description&&i.jsx("p",{className:"text-muted-foreground mt-1",children:e.description})]}),i.jsx("div",{className:"mb-4 shrink-0",children:ut()}),i.jsx("div",{className:"flex-1 min-h-0 min-w-0 overflow-hidden",children:Ae()}),Se==="drawer"&&Xe(),Se==="modal"&&dt(),Se==="popover"&&D&&w&&i.jsx(h.NavigationOverlay,{isOpen:D,selectedRecord:w,mode:"popover",close:Y,setIsOpen:kt,width:O?.width,isOverlay:!0,title:H(),children:ft})]})},Ft=Ye("flex",{variants:{layout:{inline:"flex-col space-y-4",popover:"items-center",drawer:"items-center"}},defaultVariants:{layout:"inline"}}),gr=e=>e==null||e===""?!0:Array.isArray(e)?e.length===0:typeof e=="object"?Object.values(e).every(t=>t==null||t===""):!1,br=e=>Array.isArray(e)?{start:e[0]||"",end:e[1]||""}:e&&typeof e=="object"?{start:e.start||"",end:e.end||""}:{start:"",end:""},gn=({schema:e,className:t,onChange:n})=>{const[r,s]=X.useState(e.values||{}),[l,c]=X.useState(!1);X.useEffect(()=>{e.values&&s(e.values)},[e.values]);const a=X.useCallback(p=>{n?.(p),e.onChange&&typeof window<"u"&&window.dispatchEvent(new CustomEvent(e.onChange,{detail:{values:p}}))},[n,e.onChange]),u=X.useCallback((p,S)=>{const E={...r,[p]:S};s(E),e.showApply||a(E)},[a,e.showApply,r]),g=X.useCallback(()=>{const p={};if(s(p),e.showApply){a(p);return}a(p)},[a,e.showApply]),x=X.useCallback(()=>{a(r),c(!1)},[a,r]),d=X.useMemo(()=>Object.values(r).filter(p=>!gr(p)).length,[r]),C=p=>{const S=p.label||p.field,E=p.placeholder||`Filter by ${S}`;switch(p.type){case"number":return i.jsx(h.Input,{type:"number",value:r[p.field]??"",placeholder:E,onChange:w=>{const N=w.target.value,I=N===""?"":Number(N);u(p.field,I)}});case"select":return i.jsxs(h.Select,{value:r[p.field]!==void 0?String(r[p.field]):"",onValueChange:w=>{const N=p.options?.find(I=>String(I.value)===w);u(p.field,N?N.value:w)},children:[i.jsx(h.SelectTrigger,{children:i.jsx(h.SelectValue,{placeholder:E})}),i.jsx(h.SelectContent,{children:p.options?.map(w=>i.jsx(h.SelectItem,{value:String(w.value),children:w.label},String(w.value)))})]});case"multi-select":{const w=r[p.field],N=Array.isArray(w)?w:w?[w]:[];return i.jsx("div",{className:"max-h-40 overflow-y-auto space-y-0.5 border rounded-md p-2",children:p.options?.map(I=>{const M=N.map(String).includes(String(I.value));return i.jsxs("label",{className:h.cn("flex items-center gap-2 text-sm py-1 px-1.5 rounded cursor-pointer",M?"bg-primary/5 text-primary":"hover:bg-muted"),children:[i.jsx(h.Checkbox,{checked:M,onCheckedChange:L=>{const y=L?[...N,I.value]:N.filter(k=>String(k)!==String(I.value));u(p.field,y)}}),i.jsx("span",{className:"truncate",children:I.label})]},String(I.value))})})}case"date":return i.jsx(h.Input,{type:"date",value:r[p.field]??"",onChange:w=>u(p.field,w.target.value)});case"date-range":{const w=br(r[p.field]);return i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(h.Input,{type:"date",value:w.start??"",onChange:N=>{u(p.field,{...w,start:N.target.value})}}),i.jsx(h.Input,{type:"date",value:w.end??"",onChange:N=>{u(p.field,{...w,end:N.target.value})}})]})}case"boolean":return i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(h.Checkbox,{checked:!!r[p.field],onCheckedChange:w=>u(p.field,!!w)}),i.jsx("span",{className:"text-sm text-muted-foreground",children:"Enabled"})]});default:return i.jsx(h.Input,{value:r[p.field]??"",placeholder:E,onChange:w=>u(p.field,w.target.value)})}},m=i.jsxs("div",{className:"space-y-4",children:[i.jsx("div",{className:"grid gap-4 sm:grid-cols-2",children:e.filters.map(p=>i.jsxs("div",{className:"space-y-2",children:[i.jsx(h.Label,{className:"text-xs text-muted-foreground",children:p.label||p.field}),C(p)]},p.field))}),(e.showApply||e.showClear)&&i.jsxs("div",{className:"flex items-center justify-end gap-2 border-t pt-3",children:[e.showClear&&i.jsx(h.Button,{type:"button",variant:"ghost",size:"sm",onClick:g,children:"Clear"}),e.showApply&&i.jsx(h.Button,{type:"button",size:"sm",onClick:x,children:"Apply"})]})]}),D=e.layout||"inline";return D==="popover"?i.jsx("div",{className:h.cn(Ft({layout:D}),t),children:i.jsxs(h.Popover,{open:l,onOpenChange:c,children:[i.jsx(h.PopoverTrigger,{asChild:!0,children:i.jsxs(h.Button,{type:"button",variant:d>0?"secondary":"outline",size:"sm",className:"gap-2",children:[i.jsx(F.SlidersHorizontal,{className:"h-4 w-4"}),"Filters",d>0&&i.jsx("span",{className:"inline-flex h-5 min-w-[20px] items-center justify-center rounded-full bg-primary/10 px-1 text-xs font-medium text-primary",children:d})]})}),i.jsx(h.PopoverContent,{align:"start",className:"w-[520px] p-4",children:m})]})}):D==="drawer"?i.jsxs("div",{className:h.cn(Ft({layout:D}),t),children:[i.jsxs(h.Button,{type:"button",variant:d>0?"secondary":"outline",size:"sm",className:"gap-2",onClick:()=>c(!0),children:[i.jsx(F.SlidersHorizontal,{className:"h-4 w-4"}),"Filters",d>0&&i.jsx("span",{className:"inline-flex h-5 min-w-[20px] items-center justify-center rounded-full bg-primary/10 px-1 text-xs font-medium text-primary",children:d})]}),i.jsx(h.Drawer,{open:l,onOpenChange:c,children:i.jsxs(h.DrawerContent,{children:[i.jsxs(h.DrawerHeader,{children:[i.jsx(h.DrawerTitle,{children:"Filters"}),i.jsx(h.DrawerDescription,{children:"Refine the data with advanced filters."})]}),i.jsx("div",{className:"px-4 pb-6",children:m})]})})]}):i.jsxs("div",{className:h.cn(Ft({layout:D}),t),children:[m,!e.showApply&&e.showClear&&i.jsxs(h.Button,{type:"button",variant:"ghost",size:"sm",className:"gap-2",onClick:g,children:[i.jsx(F.X,{className:"h-3.5 w-3.5"}),"Clear filters"]})]})},Mt=Ye("",{variants:{variant:{buttons:"flex flex-wrap gap-2",dropdown:"flex flex-wrap items-center gap-3",builder:"space-y-3"}},defaultVariants:{variant:"dropdown"}}),Vt=e=>e?e.map(t=>({field:t.field,direction:t.direction})):[],bn=e=>e.map(t=>({id:`${t.field}-${t.direction}`,field:t.field,order:t.direction})),vr=e=>e.filter(t=>t.field).map(t=>({field:t.field,direction:t.order})),vn=({schema:e,className:t,onChange:n})=>{const[r,s]=X.useState(()=>Vt(e.sort)),[l,c]=X.useState(()=>bn(Vt(e.sort)));X.useEffect(()=>{const d=Vt(e.sort);s(d),c(bn(d))},[e.sort]);const a=X.useCallback(d=>{s(d),n?.(d),e.onChange&&typeof window<"u"&&window.dispatchEvent(new CustomEvent(e.onChange,{detail:{sort:d}}))},[n,e.onChange]),u=X.useCallback(d=>{const C=r.find(p=>p.field===d),m=!!e.multiple;if(!C){const p=m?[...r,{field:d,direction:"asc"}]:[{field:d,direction:"asc"}];a(p);return}if(C.direction==="asc"){const p=r.map(S=>S.field===d?{...S,direction:"desc"}:S);a(p);return}const D=r.filter(p=>p.field!==d);a(D)},[a,e.multiple,r]);if((e.variant||"dropdown")==="buttons")return i.jsx("div",{className:h.cn(Mt({variant:"buttons"}),t),children:e.fields.map(d=>{const C=r.find(D=>D.field===d.field),m=C?.direction==="asc"?F.ArrowUp:F.ArrowDown;return i.jsxs(h.Button,{type:"button",variant:C?"secondary":"outline",size:"sm",onClick:()=>u(d.field),className:"gap-2",children:[i.jsx("span",{children:d.label||d.field}),C&&i.jsx(m,{className:"h-3.5 w-3.5"})]},d.field)})});if(e.multiple)return i.jsx("div",{className:h.cn(Mt({variant:"builder"}),t),children:i.jsx(h.SortBuilder,{fields:e.fields.map(d=>({value:d.field,label:d.label||d.field})),value:l,onChange:d=>{c(d),a(vr(d))}})});const x=r[0];return i.jsxs("div",{className:h.cn(Mt({variant:"dropdown"}),t),children:[i.jsxs(h.Select,{value:x?.field||"",onValueChange:d=>{if(!d){a([]);return}a([{field:d,direction:x?.direction||"asc"}])},children:[i.jsx(h.SelectTrigger,{className:"w-56",children:i.jsx(h.SelectValue,{placeholder:"Select field"})}),i.jsx(h.SelectContent,{children:e.fields.map(d=>i.jsx(h.SelectItem,{value:d.field,children:d.label||d.field},d.field))})]}),i.jsxs(h.Select,{value:x?.direction||"asc",onValueChange:d=>{x?.field&&a([{field:x.field,direction:d}])},children:[i.jsx(h.SelectTrigger,{className:"w-36",children:i.jsx(h.SelectValue,{})}),i.jsxs(h.SelectContent,{children:[i.jsx(h.SelectItem,{value:"asc",children:"Ascending"}),i.jsx(h.SelectItem,{value:"desc",children:"Descending"})]})]})]})};function xr(){if(typeof crypto<"u"&&typeof crypto.randomUUID=="function")return crypto.randomUUID();if(typeof crypto<"u"&&typeof crypto.getRandomValues=="function"){const e=new Uint8Array(16);return crypto.getRandomValues(e),Array.from(e,t=>t.toString(16).padStart(2,"0")).join("")}return Math.random().toString(36).slice(2)+Math.random().toString(36).slice(2)}function mr(e,t,n,r){return`${e}/share/${t}/${n}?mode=readonly&token=${r}`}const xn=({objectName:e,viewId:t="default",baseUrl:n,onShare:r,className:s})=>{const[l,c]=X.useState(null),[a,u]=X.useState(!1),[g,x]=X.useState(!1),[d,C]=X.useState(""),[m,D]=X.useState(""),p=n??(typeof window<"u"?window.location.origin:""),S=X.useCallback(()=>{const w=xr(),N=mr(p,e,t,w);c(N),u(!1);const I=m?new Date(Date.now()+parseInt(m,10)*864e5).toISOString():void 0;r?.(N,{password:d||void 0,expiresAt:I})},[p,e,t,r,d,m]),E=X.useCallback(async()=>{if(l)try{await navigator.clipboard.writeText(l),u(!0),setTimeout(()=>u(!1),2e3)}catch{const w=document.createElement("textarea");w.value=l,document.body.appendChild(w),w.select(),document.execCommand("copy"),document.body.removeChild(w),u(!0),setTimeout(()=>u(!1),2e3)}},[l]);return i.jsxs(h.Popover,{open:g,onOpenChange:x,children:[i.jsx(h.PopoverTrigger,{asChild:!0,children:i.jsxs(h.Button,{variant:"outline",size:"sm",className:h.cn("gap-2",s),children:[i.jsx(F.Share2,{className:"h-4 w-4"}),"Share"]})}),i.jsxs(h.PopoverContent,{className:"w-96 space-y-4",align:"end",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx("h4",{className:"text-sm font-medium",children:"Share View"}),i.jsx(h.Badge,{variant:"secondary",className:"text-xs",children:"Read-only"})]}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"Generate a public link to share this view. Recipients can view data without logging in."})]}),l?i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(h.Input,{value:l,readOnly:!0,className:"h-8 text-xs",onClick:w=>w.target.select()}),i.jsx(h.Button,{variant:"outline",size:"sm",onClick:E,className:"shrink-0 gap-1",children:a?i.jsx(F.Check,{className:"h-4 w-4 text-green-500"}):i.jsx(F.Copy,{className:"h-4 w-4"})})]}),(d||m)&&i.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[d&&i.jsxs(h.Badge,{variant:"outline",className:"text-xs gap-1",children:[i.jsx(F.Lock,{className:"h-3 w-3"}),"Password protected"]}),m&&i.jsxs(h.Badge,{variant:"outline",className:"text-xs gap-1",children:[i.jsx(F.Calendar,{className:"h-3 w-3"}),"Expires in ",m," day",m!=="1"?"s":""]})]})]}):i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"space-y-1.5",children:[i.jsxs("label",{className:"flex items-center gap-1.5 text-xs font-medium text-foreground",children:[i.jsx(F.Lock,{className:"h-3.5 w-3.5"}),"Password protection (optional)"]}),i.jsx(h.Input,{type:"password",value:d,onChange:w=>C(w.target.value),placeholder:"Enter password...",className:"h-8 text-xs"})]}),i.jsxs("div",{className:"space-y-1.5",children:[i.jsxs("label",{className:"flex items-center gap-1.5 text-xs font-medium text-foreground",children:[i.jsx(F.Calendar,{className:"h-3.5 w-3.5"}),"Expires after (optional)"]}),i.jsxs("select",{value:m,onChange:w=>D(w.target.value),className:"w-full h-8 text-xs rounded-md border border-input bg-background px-3",children:[i.jsx("option",{value:"",children:"Never"}),i.jsx("option",{value:"1",children:"1 day"}),i.jsx("option",{value:"7",children:"7 days"}),i.jsx("option",{value:"30",children:"30 days"}),i.jsx("option",{value:"90",children:"90 days"})]})]}),i.jsxs(h.Button,{onClick:S,className:"w-full gap-2",size:"sm",children:[i.jsx(F.Share2,{className:"h-4 w-4"}),"Generate Link"]})]})]})]})};function wr(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return o.useMemo(()=>r=>{t.forEach(s=>s(r))},t)}const xt=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function qe(e){const t=Object.prototype.toString.call(e);return t==="[object Window]"||t==="[object global]"}function Pt(e){return"nodeType"in e}function we(e){var t,n;return e?qe(e)?e:Pt(e)&&(t=(n=e.ownerDocument)==null?void 0:n.defaultView)!=null?t:window:window}function Lt(e){const{Document:t}=we(e);return e instanceof t}function et(e){return qe(e)?!1:e instanceof we(e).HTMLElement}function mn(e){return e instanceof we(e).SVGElement}function We(e){return e?qe(e)?e.document:Pt(e)?Lt(e)?e:et(e)||mn(e)?e.ownerDocument:document:document:document}const ke=xt?o.useLayoutEffect:o.useEffect;function _t(e){const t=o.useRef(e);return ke(()=>{t.current=e}),o.useCallback(function(){for(var n=arguments.length,r=new Array(n),s=0;s<n;s++)r[s]=arguments[s];return t.current==null?void 0:t.current(...r)},[])}function yr(){const e=o.useRef(null),t=o.useCallback((r,s)=>{e.current=setInterval(r,s)},[]),n=o.useCallback(()=>{e.current!==null&&(clearInterval(e.current),e.current=null)},[]);return[t,n]}function tt(e,t){t===void 0&&(t=[e]);const n=o.useRef(e);return ke(()=>{n.current!==e&&(n.current=e)},t),n}function nt(e,t){const n=o.useRef();return o.useMemo(()=>{const r=e(n.current);return n.current=r,r},[...t])}function mt(e){const t=_t(e),n=o.useRef(null),r=o.useCallback(s=>{s!==n.current&&t?.(s,n.current),n.current=s},[]);return[n,r]}function $t(e){const t=o.useRef();return o.useEffect(()=>{t.current=e},[e]),t.current}let Bt={};function rt(e,t){return o.useMemo(()=>{if(t)return t;const n=Bt[e]==null?0:Bt[e]+1;return Bt[e]=n,e+"-"+n},[e,t])}function wn(e){return function(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),s=1;s<n;s++)r[s-1]=arguments[s];return r.reduce((l,c)=>{const a=Object.entries(c);for(const[u,g]of a){const x=l[u];x!=null&&(l[u]=x+e*g)}return l},{...t})}}const Ge=wn(1),wt=wn(-1);function Cr(e){return"clientX"in e&&"clientY"in e}function zt(e){if(!e)return!1;const{KeyboardEvent:t}=we(e.target);return t&&e instanceof t}function jr(e){if(!e)return!1;const{TouchEvent:t}=we(e.target);return t&&e instanceof t}function Rt(e){if(jr(e)){if(e.touches&&e.touches.length){const{clientX:t,clientY:n}=e.touches[0];return{x:t,y:n}}else if(e.changedTouches&&e.changedTouches.length){const{clientX:t,clientY:n}=e.changedTouches[0];return{x:t,y:n}}}return Cr(e)?{x:e.clientX,y:e.clientY}:null}const it=Object.freeze({Translate:{toString(e){if(!e)return;const{x:t,y:n}=e;return"translate3d("+(t?Math.round(t):0)+"px, "+(n?Math.round(n):0)+"px, 0)"}},Scale:{toString(e){if(!e)return;const{scaleX:t,scaleY:n}=e;return"scaleX("+t+") scaleY("+n+")"}},Transform:{toString(e){if(e)return[it.Translate.toString(e),it.Scale.toString(e)].join(" ")}},Transition:{toString(e){let{property:t,duration:n,easing:r}=e;return t+" "+n+"ms "+r}}}),yn="a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]";function Sr(e){return e.matches(yn)?e:e.querySelector(yn)}const Nr={display:"none"};function Dr(e){let{id:t,value:n}=e;return o.createElement("div",{id:t,style:Nr},n)}function Er(e){let{id:t,announcement:n,ariaLiveType:r="assertive"}=e;const s={position:"fixed",top:0,left:0,width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0 0 0 0)",clipPath:"inset(100%)",whiteSpace:"nowrap"};return o.createElement("div",{id:t,style:s,role:"status","aria-live":r,"aria-atomic":!0},n)}function Tr(){const[e,t]=o.useState("");return{announce:o.useCallback(r=>{r!=null&&t(r)},[]),announcement:e}}const Cn=o.createContext(null);function kr(e){const t=o.useContext(Cn);o.useEffect(()=>{if(!t)throw new Error("useDndMonitor must be used within a children of <DndContext>");return t(e)},[e,t])}function Ar(){const[e]=o.useState(()=>new Set),t=o.useCallback(r=>(e.add(r),()=>e.delete(r)),[e]);return[o.useCallback(r=>{let{type:s,event:l}=r;e.forEach(c=>{var a;return(a=c[s])==null?void 0:a.call(c,l)})},[e]),t]}const Ir={draggable:`
|
|
6
|
+
<%s key={someKey} {...props} />`,O,G,oe,G),ye[G+O]=!0)}if(G=null,V!==void 0&&(n(V),G=""+V),c(u)&&(n(u.key),G=""+u.key),"key"in u){V={};for(var de in u)de!=="key"&&(V[de]=u[de])}else V=u;return G&&a(V,typeof b=="function"?b.displayName||b.name||"Unknown":b),g(b,G,V,s(),le,q)}function d(b){C(b)?b._store&&(b._store.validated=1):typeof b=="object"&&b!==null&&b.$$typeof===P&&(b._payload.status==="fulfilled"?C(b._payload.value)&&b._payload.value._store&&(b._payload.value._store.validated=1):b._store&&(b._store.validated=1))}function C(b){return typeof b=="object"&&b!==null&&b.$$typeof===D}var m=o,D=Symbol.for("react.transitional.element"),p=Symbol.for("react.portal"),S=Symbol.for("react.fragment"),E=Symbol.for("react.strict_mode"),w=Symbol.for("react.profiler"),N=Symbol.for("react.consumer"),I=Symbol.for("react.context"),M=Symbol.for("react.forward_ref"),L=Symbol.for("react.suspense"),y=Symbol.for("react.suspense_list"),k=Symbol.for("react.memo"),P=Symbol.for("react.lazy"),_=Symbol.for("react.activity"),z=Symbol.for("react.client.reference"),U=m.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,te=Object.prototype.hasOwnProperty,Q=Array.isArray,fe=console.createTask?console.createTask:function(){return null};m={react_stack_bottom_frame:function(b){return b()}};var he,ee={},R=m.react_stack_bottom_frame.bind(m,l)(),W=fe(r(l)),ye={};Ze.Fragment=S,Ze.jsx=function(b,u,V){var O=1e4>U.recentlyCreatedOwnerStacks++;return x(b,u,V,!1,O?Error("react-stack-top-frame"):R,O?fe(r(b)):W)},Ze.jsxs=function(b,u,V){var O=1e4>U.recentlyCreatedOwnerStacks++;return x(b,u,V,!0,O?Error("react-stack-top-frame"):R,O?fe(r(b)):W)}})()),Ze}var on;function rr(){return on||(on=1,process.env.NODE_ENV==="production"?bt.exports=tr():bt.exports=nr()),bt.exports}var i=rr();function an(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var s=e.length;for(t=0;t<s;t++)e[t]&&(n=an(e[t]))&&(r&&(r+=" "),r+=n)}else for(n in e)e[n]&&(r&&(r+=" "),r+=n);return r}function ir(){for(var e,t,n=0,r="",s=arguments.length;n<s;n++)(e=arguments[n])&&(t=an(e))&&(r&&(r+=" "),r+=t);return r}const cn=e=>typeof e=="boolean"?`${e}`:e===0?"0":e,dn=ir,Ye=(e,t)=>n=>{var r;if(t?.variants==null)return dn(e,n?.class,n?.className);const{variants:s,defaultVariants:l}=t,c=Object.keys(s).map(g=>{const x=n?.[g],d=l?.[g];if(x===null)return null;const C=cn(x)||cn(d);return s[g][C]}),a=n&&Object.entries(n).reduce((g,x)=>{let[d,C]=x;return C===void 0||(g[d]=C),g},{}),f=t==null||(r=t.compoundVariants)===null||r===void 0?void 0:r.reduce((g,x)=>{let{class:d,className:C,...m}=x;return Object.entries(m).every(D=>{let[p,S]=D;return Array.isArray(S)?S.includes({...l,...a}[p]):{...l,...a}[p]===S})?[...g,d,C]:g},[]);return dn(e,c,f,n?.class,n?.className)},sr={list:"List",detail:"Detail",grid:"Grid",kanban:"Kanban",calendar:"Calendar",timeline:"Timeline",map:"Map",gallery:"Gallery",gantt:"Gantt"},lr={list:F.List,detail:F.FileText,grid:F.Grid,kanban:F.LayoutGrid,calendar:F.Calendar,timeline:F.Activity,map:F.Map,gallery:F.Images,gantt:F.GanttChartSquare},or=Ye("flex gap-4",{variants:{position:{top:"flex-col",bottom:"flex-col-reverse",left:"flex-row",right:"flex-row-reverse"}},defaultVariants:{position:"top"}}),ar=Ye("w-full",{variants:{orientation:{horizontal:"w-full",vertical:"w-48"}},defaultVariants:{orientation:"horizontal"}}),cr=Ye("flex gap-2",{variants:{orientation:{horizontal:"flex-row flex-wrap",vertical:"flex-col"}},defaultVariants:{orientation:"horizontal"}}),dr=Ye("",{variants:{orientation:{horizontal:"",vertical:"flex h-auto flex-col items-stretch"}},defaultVariants:{orientation:"horizontal"}});function ur(e){return e.split("-").map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join("")}const fr={Home:"House"};function un(e){if(!e)return null;const t=ur(e),n=fr[t]||t;return F.icons[n]||null}function It(e){return e.label?e.label:sr[e.type]||e.type}function fn(e){return e.icon?un(e.icon):lr[e.type]||null}function hr(e){return e.activeView?e.activeView:e.defaultView?e.defaultView:e.views?.[0]?.type}const hn={share:F.Share2,settings:F.Settings,duplicate:F.Copy,delete:F.Trash2},pr={share:"Share",settings:"Settings",duplicate:"Duplicate",delete:"Delete"},Ot=({schema:e,className:t,onViewChange:n,onCreateView:r,onViewAction:s,createViewLabel:l="Create view",...c})=>{const a=X.useMemo(()=>e.storageKey?e.storageKey:`view-switcher${e.id?`-${e.id}`:""}`,[e.id,e.storageKey]),[f,g]=X.useState(()=>hr(e));X.useEffect(()=>{if(e.activeView){g(e.activeView);return}if(e.persistPreference)try{const y=localStorage.getItem(a);if(y){const k=e.views.find(P=>P.type===y)?.type;k&&g(k)}}catch{}},[e.activeView,e.persistPreference,e.views,a]),X.useEffect(()=>{if(!(!e.persistPreference||!f||e.activeView))try{localStorage.setItem(a,f)}catch{}},[f,e.activeView,e.persistPreference,a]);const x=X.useCallback(y=>{n?.(y),e.onViewChange&&typeof window<"u"&&window.dispatchEvent(new CustomEvent(e.onViewChange,{detail:{view:y}}))},[n,e.onViewChange]),d=X.useCallback(y=>{g(y),x(y)},[x]),C=f||e.views?.[0]?.type,m=C||"",D=e.views.find(y=>y.type===C)||e.views?.[0],p=e.variant||"tabs",S=e.position||"top",E=S==="left"||S==="right",w=E?"vertical":"horizontal",N=e.viewActions&&e.viewActions.length>0?i.jsx("div",{className:"flex items-center gap-1",children:e.viewActions.map((y,k)=>{const P=y.icon&&un(y.icon)||hn[y.type];return i.jsx(h.Button,{type:"button",variant:"ghost",size:"icon-sm",onClick:()=>s?.(y.type,C),title:pr[y.type]||y.type,children:P?i.jsx(P,{className:"h-3.5 w-3.5"}):null},`action-${y.type}-${k}`)})}):null,I=e.allowCreateView?i.jsx(h.Button,{type:"button",variant:"ghost",size:"icon-sm",onClick:()=>r?.(),title:l,children:i.jsx(F.Plus,{className:"h-3.5 w-3.5"})}):null,M=i.jsxs("div",{className:h.cn(ar({orientation:w}),"flex items-center gap-1"),children:[p==="dropdown"&&i.jsxs(h.Select,{value:m,onValueChange:y=>d(y),children:[i.jsx(h.SelectTrigger,{className:h.cn("w-full",E?"h-10":"h-9"),children:i.jsx(h.SelectValue,{placeholder:"Select view"})}),i.jsx(h.SelectContent,{children:e.views.map((y,k)=>i.jsx(h.SelectItem,{value:y.type,children:It(y)},`${y.type}-${k}`))})]}),p==="buttons"&&i.jsx("div",{className:h.cn(cr({orientation:w})),children:e.views.map((y,k)=>{const P=y.type===C,_=fn(y);return i.jsxs(h.Button,{type:"button",size:"sm",variant:P?"secondary":"ghost",className:h.cn("justify-start gap-2",E?"w-full":""),onClick:()=>d(y.type),children:[_?i.jsx(_,{className:"h-4 w-4"}):null,i.jsx("span",{children:It(y)})]},`${y.type}-${k}`)})}),p==="tabs"&&i.jsx(h.Tabs,{value:m,onValueChange:y=>d(y),children:i.jsx(h.TabsList,{className:h.cn(dr({orientation:w})),children:e.views.map((y,k)=>{const P=fn(y);return i.jsxs(h.TabsTrigger,{value:y.type,className:h.cn("gap-2",E?"justify-start":""),children:[P?i.jsx(P,{className:"h-4 w-4"}):null,i.jsx("span",{children:It(y)})]},`${y.type}-${k}`)})})}),N,I]}),L=D?.schema?Array.isArray(D.schema)?i.jsx("div",{className:"space-y-4",children:D.schema.map((y,k)=>i.jsx(rn.SchemaRenderer,{schema:y,...c},`${D.type}-${k}`))}):i.jsx(rn.SchemaRenderer,{schema:D.schema,...c}):null;return i.jsxs("div",{className:h.cn(or({position:S}),t),children:[i.jsx("div",{className:h.cn("shrink-0",E?"flex flex-col":"flex"),children:M}),i.jsx("div",{className:"flex-1 min-w-0",children:L})]})};let vt=null;try{vt=require("@object-ui/react").SchemaRenderer||null}catch{}const pn=({schema:e,dataSource:t,className:n,views:r,activeViewId:s,onViewChange:l,onRowClick:c,onEdit:a,renderListView:f,toolbarAddon:g,onCreateView:x,onViewAction:d})=>{const[C,m]=o.useState(null),[D,p]=o.useState(!1),[S,E]=o.useState("create"),[w,N]=o.useState(null),[I,M]=o.useState(0),[L,y]=o.useState([]),[k,P]=o.useState(!1),[_,z]=o.useState({}),[U,te]=o.useState([]),Q=e.listViews,fe=Q!=null&&Object.keys(Q).length>0,[he,ee]=o.useState(()=>e.defaultListView&&Q?.[e.defaultListView]?e.defaultListView:Q&&Object.keys(Q)[0]||""),R=o.useMemo(()=>!fe||!he?null:Q[he]||null,[fe,he,Q]),W=o.useMemo(()=>r&&r.length>0?r:null,[r]),ye=W!=null&&W.length>0,b=s||W?.[0]?.id,u=W?.find(j=>j.id===b)||W?.[0],V=o.useMemo(()=>R?.type?R.type:u?.type?u.type:e.defaultViewType||"grid",[R,u,e.defaultViewType]),O=e.navigation;o.useEffect(()=>{let j=!0;const T=async()=>{try{const A=await t.getObjectSchema(e.objectName);j&&m(A)}catch(A){console.error("Failed to fetch object schema:",A)}};return e.objectName&&t&&T(),()=>{j=!1}},[e.objectName,t]),o.useEffect(()=>{let j=!0;return(async()=>{if(!(V==="grid"&&!f)&&!(!t||!e.objectName)){P(!0);try{const A=R?.filter||u?.filter||e.table?.defaultFilters||[],ve=Object.entries(_).filter(([,$])=>$!==void 0&&$!==""&&$!==null).map(([$,me])=>[$,"=",me]);let ie=[];A.length>0&&ve.length>0?ie=["and",...A,...ve]:ve.length===1?ie=ve[0]:ve.length>1?ie=["and",...ve]:ie=A;const xe=U.length>0?U.map($=>({field:$.field,order:$.direction})):R?.sort||u?.sort||e.table?.defaultSort||void 0,se=Ve.buildExpandFields(C?.fields),ge=await t.find(e.objectName,{$filter:ie.length>0?ie:void 0,$orderby:xe,$top:100,...se.length>0?{$expand:se}:{}});let J=[];Array.isArray(ge)?J=ge:ge&&typeof ge=="object"&&(Array.isArray(ge.data)?J=ge.data:Array.isArray(ge.records)&&(J=ge.records)),j&&y(J)}catch(A){console.error("ObjectView data fetch error:",A)}finally{j&&P(!1)}}})(),()=>{j=!1}},[e.objectName,t,V,_,U,I,R,u,f,C]);const le=e.layout||"drawer",q=e.operations||e.table?.operations||{create:!0,read:!0,update:!0,delete:!0},G=o.useCallback(()=>{le==="page"&&e.onNavigate?e.onNavigate("new","edit"):(E("create"),N(null),p(!0))},[le,e]),oe=o.useCallback(j=>{if(a){a(j);return}if(le==="page"&&e.onNavigate){const T=j.id||j._id;e.onNavigate(T,"edit")}else E("edit"),N(j),p(!0)},[le,e,a]),de=o.useCallback(j=>{if(le==="page"&&e.onNavigate){const T=j.id||j._id;e.onNavigate(T,"view")}else E("view"),N(j),p(!0)},[le,e]),v=o.useCallback(j=>{if(c){c(j);return}if(O){if(O.mode==="none"||O.preventNavigation)return;if(O.mode==="new_window"||O.openNewTab){const T=j.id||j._id,A=`/${e.objectName}/${encodeURIComponent(String(T))}`;window.open(A,"_blank");return}if(O.mode==="drawer"){E("view"),N(j),p(!0);return}if(O.mode==="modal"){E("view"),N(j),p(!0);return}if(O.mode==="page"){const T=j.id||j._id;e.onNavigate&&e.onNavigate(T,"view");return}if(O.mode==="split"||O.mode==="popover"){E("view"),N(j),p(!0);return}}q.read!==!1&&de(j)},[c,O,q.read,de,e]),Z=o.useCallback(j=>{M(T=>T+1)},[]),K=o.useCallback(j=>{M(T=>T+1)},[]),ne=o.useCallback(()=>{p(!1),N(null),M(j=>j+1)},[]),Y=o.useCallback(()=>{p(!1),N(null)},[]);o.useCallback(()=>{M(j=>j+1)},[]);const Ce=o.useMemo(()=>!ye||!W||W.length<=1?null:{type:"view-switcher",variant:"tabs",position:"top",persistPreference:!0,storageKey:`view-pref-${e.objectName}`,defaultView:u?.type||"grid",activeView:u?.type||"grid",views:W.map(j=>{const T={kanban:"kanban",calendar:"calendar",map:"map",gallery:"layout-grid",timeline:"activity",gantt:"gantt-chart",grid:"table",list:"list",detail:"file-text"};return{type:j.type,label:j.label,icon:T[j.type]||"table"}}),allowCreateView:e.allowCreateView,viewActions:e.viewActions},[ye,W,u,e.objectName,e.allowCreateView,e.viewActions]),pe=o.useCallback(j=>{if(!W)return;const T=W.find(A=>A.type===j);T&&l&&l(T.id)},[W,l]),ct=o.useCallback(j=>{ee(j)},[]);o.useMemo(()=>{if(e.showFilters===!1)return null;const j=e.filterableFields,T=C?.fields||{},ve=(j?j.map(ie=>[ie,T[ie]||{label:ie}]):Object.entries(T).filter(([,ie])=>!ie.hidden).slice(0,8)).map(([ie,xe])=>{const se=xe.type||"text";let ge="text",J;return se==="number"||se==="currency"||se==="percent"?ge="number":se==="boolean"||se==="toggle"?ge="boolean":se==="date"||se==="datetime"?ge="date":se==="select"||se==="status"||xe.options?(ge="select",J=(xe.options||[]).map($=>typeof $=="string"?{label:$,value:$}:{label:$.label,value:$.value})):(se==="lookup"||se==="master_detail"||se==="user"||se==="owner")&&xe.options&&xe.options.length>0&&(ge="multi-select",J=(xe.options||[]).map($=>typeof $=="string"?{label:$,value:$}:{label:$.label,value:$.value})),{field:ie,label:xe.label||ie,type:ge,placeholder:`Filter ${xe.label||ie}...`,...J?{options:J}:{}}});return ve.length===0?null:{type:"filter-ui",layout:"popover",showClear:!0,showApply:!0,filters:ve,values:_}},[e.showFilters,e.filterableFields,C,_]);const Re=e.showSort;o.useMemo(()=>{if(Re===!1)return null;const j=C?.fields||{},T=Object.entries(j).filter(([,A])=>!A.hidden).slice(0,10).map(([A,ve])=>({field:A,label:ve.label||A}));return T.length===0?null:{type:"sort-ui",variant:"dropdown",multiple:!1,fields:T,sort:U}},[C,U,Re]);const Le=o.useCallback(j=>{const T={objectName:e.objectName,fields:R?.columns||u?.columns||e.table?.fields,className:"h-full w-full",showSearch:u?.showSearch??e.showSearch??!1,showSort:u?.showSort??e.showSort??!1,showFilters:u?.showFilters??e.showFilters??!1,striped:u?.striped??!1,bordered:u?.bordered??!1,color:u?.color},A=R?.options||u||{};if(process.env.NODE_ENV==="development"){const ve=["startDateField","endDateField","dateField","groupBy","groupField","locationField","imageField","dependenciesField","progressField","titleField","subtitleField","latitudeField","longitudeField"],ie=A[j]||{},xe=ve.filter(se=>se in A&&!(se in ie));xe.length>0&&console.warn(`[Spec Compliance] View options use flat properties ${JSON.stringify(xe)}. Move them under options.${j} per @objectstack/spec protocol.`)}switch(j){case"kanban":return{type:"object-kanban",...T,groupBy:A.kanban?.groupField||"status",groupField:A.kanban?.groupField||"status",titleField:A.kanban?.titleField||"name",cardFields:T.fields||[],...A.kanban||{}};case"calendar":return{type:"object-calendar",...T,startDateField:A.calendar?.startDateField||"start_date",endDateField:A.calendar?.endDateField||"end_date",titleField:A.calendar?.titleField||"name",...A.calendar||{}};case"gallery":return{type:"object-gallery",...T,imageField:A.gallery?.imageField,titleField:A.gallery?.titleField||"name",subtitleField:A.gallery?.subtitleField,...A.gallery||{}};case"timeline":return{type:"object-timeline",...T,dateField:A.timeline?.dateField||"created_at",titleField:A.timeline?.titleField||"name",...A.timeline||{}};case"gantt":return{type:"object-gantt",...T,startDateField:A.gantt?.startDateField||"start_date",endDateField:A.gantt?.endDateField||"end_date",progressField:A.gantt?.progressField||"progress",dependenciesField:A.gantt?.dependenciesField||"dependencies",...A.gantt||{}};case"map":return{type:"object-map",...T,locationField:A.map?.locationField||"location",...A.map||{}};default:return null}},[e.objectName,e.table?.fields,R,u]),je=o.useMemo(()=>({type:"object-grid",objectName:e.objectName,title:e.table?.title,description:e.table?.description,fields:R?.columns||u?.columns||e.table?.fields,columns:R?.columns||u?.columns||e.table?.columns,operations:{...q,create:!1},defaultFilters:R?.filter||u?.filter||e.table?.defaultFilters,defaultSort:R?.sort||u?.sort||e.table?.defaultSort,pageSize:e.table?.pageSize,selectable:e.table?.selectable,striped:u?.striped??e.table?.striped,bordered:u?.bordered??e.table?.bordered,className:e.table?.className}),[e,q,R,u]),re=()=>{const j=w?w.id||w._id:void 0;return{type:"object-form",objectName:e.objectName,mode:S,recordId:j,title:e.form?.title,description:e.form?.description,fields:e.form?.fields,customFields:e.form?.customFields,groups:e.form?.groups,layout:e.form?.layout,columns:e.form?.columns,showSubmit:e.form?.showSubmit,submitText:e.form?.submitText,showCancel:e.form?.showCancel,cancelText:e.form?.cancelText,showReset:e.form?.showReset,initialValues:e.form?.initialValues,readOnly:e.form?.readOnly||S==="view",className:e.form?.className,onSuccess:ne,onCancel:Y}},H=()=>{if(e.form?.title)return e.form.title;const j=C?.label||e.objectName;switch(S){case"create":return`Create ${j}`;case"edit":return`Edit ${j}`;case"view":return`View ${j}`;default:return j}},Fe=o.useMemo(()=>{const j=O?.width;return j?typeof j=="number"?`max-w-[${j}px]`:`max-w-[${j}]`:""},[O]),Xe=()=>i.jsx(h.Drawer,{open:D,onOpenChange:p,direction:"right",children:i.jsxs(h.DrawerContent,{className:h.cn("w-full sm:max-w-2xl",Fe),children:[i.jsxs(h.DrawerHeader,{children:[i.jsx(h.DrawerTitle,{children:H()}),e.form?.description&&i.jsx(h.DrawerDescription,{children:e.form.description})]}),i.jsx("div",{className:"flex-1 overflow-y-auto px-4 pb-4",children:i.jsx(At.ObjectForm,{schema:re(),dataSource:t})})]})}),dt=()=>i.jsx(h.Dialog,{open:D,onOpenChange:p,children:i.jsxs(h.DialogContent,{className:h.cn("max-w-2xl max-h-[90vh] overflow-y-auto",Fe),children:[i.jsxs(h.DialogHeader,{children:[i.jsx(h.DialogTitle,{children:H()}),e.form?.description&&i.jsx(h.DialogDescription,{children:e.form.description})]}),i.jsx(At.ObjectForm,{schema:re(),dataSource:t})]})}),tn=o.useMemo(()=>Object.keys(_).some(T=>_[T]!==void 0&&_[T]!==""&&_[T]!==null)?Object.entries(_).filter(([,T])=>T!==void 0&&T!==""&&T!==null).map(([T,A])=>({field:T,operator:"equals",value:A})):R?.filter||u?.filter||e.table?.defaultFilters,[_,R,u,e.table?.defaultFilters]),_e=o.useMemo(()=>U.length>0?U:R?.sort||u?.sort||e.table?.defaultSort,[U,R,u,e.table?.defaultSort]),Ae=()=>{const j=`${e.objectName}-${he||u?.id||"default"}-${V}-${I}`;if(f)return f({schema:{type:"list-view",objectName:e.objectName,viewType:V,fields:R?.columns||u?.columns||e.table?.fields,filters:tn,sort:_e,rowHeight:u?.rowHeight,densityMode:u?.densityMode,groupBy:u?.groupBy,options:R?.options||u,showSearch:u?.showSearch??e.showSearch,showFilters:u?.showFilters??e.showFilters,showSort:u?.showSort??e.showSort,showHideFields:u?.showHideFields??e.showHideFields,showGroup:u?.showGroup??e.showGroup,showColor:u?.showColor??e.showColor,showDensity:u?.showDensity??e.showDensity,allowExport:u?.allowExport??e.allowExport,striped:u?.striped??e.striped,bordered:u?.bordered??e.bordered,color:u?.color??e.color,inlineEdit:u?.inlineEdit??e.inlineEdit,wrapHeaders:u?.wrapHeaders??e.wrapHeaders,clickIntoRecordDetails:u?.clickIntoRecordDetails??e.clickIntoRecordDetails,addRecordViaForm:u?.addRecordViaForm??e.addRecordViaForm,addDeleteRecordsInline:u?.addDeleteRecordsInline??e.addDeleteRecordsInline,collapseAllByDefault:u?.collapseAllByDefault??e.collapseAllByDefault,fieldTextColor:u?.fieldTextColor??e.fieldTextColor,prefixField:u?.prefixField??e.prefixField,showDescription:u?.showDescription??e.showDescription,navigation:u?.navigation??e.navigation,selection:u?.selection??e.selection,pagination:u?.pagination??e.pagination,searchableFields:u?.searchableFields??e.searchableFields,filterableFields:u?.filterableFields??e.filterableFields,resizable:u?.resizable??e.resizable,hiddenFields:u?.hiddenFields??e.hiddenFields,rowActions:u?.rowActions??e.rowActions,bulkActions:u?.bulkActions??e.bulkActions,sharing:u?.sharing??e.sharing,addRecord:u?.addRecord??e.addRecord,conditionalFormatting:u?.conditionalFormatting??e.conditionalFormatting,quickFilters:u?.quickFilters??e.quickFilters,userFilters:u?.userFilters??e.userFilters,showRecordCount:u?.showRecordCount??e.showRecordCount,allowPrinting:u?.allowPrinting??e.allowPrinting,virtualScroll:u?.virtualScroll??e.virtualScroll,emptyState:u?.emptyState??e.emptyState,aria:u?.aria??e.aria,tabs:e.tabs},dataSource:t,onEdit:oe,onRowClick:v,className:"h-full"});if(V!=="grid"){const T=Le(V);if(T&&vt)return i.jsx(vt,{schema:T,dataSource:t,data:L,loading:k},j);if(!vt)return i.jsx("div",{className:"flex items-center justify-center h-40 text-muted-foreground",children:i.jsxs("p",{children:["SchemaRenderer not available. Install @object-ui/react to render ",V," views."]})})}return i.jsx(Zn.ObjectGrid,{schema:je,dataSource:t,onRowClick:v,onEdit:q.update!==!1?oe:void 0,onDelete:q.delete!==!1?Z:void 0,onBulkDelete:q.delete!==!1?K:void 0},j)},Ue=()=>{if(!fe)return null;const j=Object.entries(Q);return j.length<=1?null:i.jsx(h.Tabs,{value:he,onValueChange:ct,className:"w-full",children:i.jsx(h.TabsList,{className:"w-auto",children:j.map(([T,A])=>i.jsx(h.TabsTrigger,{value:T,className:"text-sm",children:A.label||T},T))})})},ut=()=>{const j=e.showCreate!==!1&&q.create!==!1,T=e.showViewSwitcher===!0,A=Ue();return!A&&!T&&!j&&!g?null:i.jsxs("div",{className:"flex flex-col gap-3",children:[A,(T||j||g)&&i.jsxs("div",{className:"flex items-center justify-between gap-4",children:[i.jsx("div",{className:"flex items-center gap-2",children:T&&Ce&&i.jsx(Ot,{schema:Ce,onViewChange:pe,onCreateView:x,onViewAction:d,className:"overflow-x-auto"})}),i.jsxs("div",{className:"flex items-center gap-2",children:[g,j&&i.jsxs(h.Button,{size:"sm",onClick:G,children:[i.jsx(F.Plus,{className:"h-4 w-4"}),"Create"]})]})]})]})},Se=O?.mode==="modal"?"modal":O?.mode==="drawer"?"drawer":O?.mode==="split"?"split":O?.mode==="popover"?"popover":le,ft=j=>i.jsx("div",{className:"space-y-3",children:i.jsx(At.ObjectForm,{schema:re(),dataSource:t})}),kt=o.useCallback(j=>{j||Y()},[Y]);if(Se==="split"){const j=C?.label||e.objectName;return i.jsxs("div",{className:h.cn("flex flex-col h-full min-w-0 overflow-hidden",n),children:[(e.title||e.description)&&i.jsxs("div",{className:"mb-4 shrink-0",children:[e.title&&i.jsx("h2",{className:"text-2xl font-bold tracking-tight",children:e.title}),e.description&&i.jsx("p",{className:"text-muted-foreground mt-1",children:e.description})]}),i.jsx("div",{className:"mb-4 shrink-0",children:ut()}),i.jsx("div",{className:"flex-1 min-h-0 min-w-0 overflow-hidden",children:D&&w?i.jsx(h.NavigationOverlay,{isOpen:D,selectedRecord:w,mode:"split",close:Y,setIsOpen:kt,width:O?.width,isOverlay:!0,title:`${j} Detail`,mainContent:i.jsx("div",{className:"h-full overflow-auto",children:Ae()}),children:ft}):Ae()})]})}return i.jsxs("div",{className:h.cn("flex flex-col h-full min-w-0 overflow-hidden",n),children:[(e.title||e.description)&&i.jsxs("div",{className:"mb-4 shrink-0",children:[e.title&&i.jsx("h2",{className:"text-2xl font-bold tracking-tight",children:e.title}),e.description&&i.jsx("p",{className:"text-muted-foreground mt-1",children:e.description})]}),i.jsx("div",{className:"mb-4 shrink-0",children:ut()}),i.jsx("div",{className:"flex-1 min-h-0 min-w-0 overflow-hidden",children:Ae()}),Se==="drawer"&&Xe(),Se==="modal"&&dt(),Se==="popover"&&D&&w&&i.jsx(h.NavigationOverlay,{isOpen:D,selectedRecord:w,mode:"popover",close:Y,setIsOpen:kt,width:O?.width,isOverlay:!0,title:H(),children:ft})]})},Ft=Ye("flex",{variants:{layout:{inline:"flex-col space-y-4",popover:"items-center",drawer:"items-center"}},defaultVariants:{layout:"inline"}}),gr=e=>e==null||e===""?!0:Array.isArray(e)?e.length===0:typeof e=="object"?Object.values(e).every(t=>t==null||t===""):!1,br=e=>Array.isArray(e)?{start:e[0]||"",end:e[1]||""}:e&&typeof e=="object"?{start:e.start||"",end:e.end||""}:{start:"",end:""},gn=({schema:e,className:t,onChange:n})=>{const[r,s]=X.useState(e.values||{}),[l,c]=X.useState(!1);X.useEffect(()=>{e.values&&s(e.values)},[e.values]);const a=X.useCallback(p=>{n?.(p),e.onChange&&typeof window<"u"&&window.dispatchEvent(new CustomEvent(e.onChange,{detail:{values:p}}))},[n,e.onChange]),f=X.useCallback((p,S)=>{const E={...r,[p]:S};s(E),e.showApply||a(E)},[a,e.showApply,r]),g=X.useCallback(()=>{const p={};if(s(p),e.showApply){a(p);return}a(p)},[a,e.showApply]),x=X.useCallback(()=>{a(r),c(!1)},[a,r]),d=X.useMemo(()=>Object.values(r).filter(p=>!gr(p)).length,[r]),C=p=>{const S=p.label||p.field,E=p.placeholder||`Filter by ${S}`;switch(p.type){case"number":return i.jsx(h.Input,{type:"number",value:r[p.field]??"",placeholder:E,onChange:w=>{const N=w.target.value,I=N===""?"":Number(N);f(p.field,I)}});case"select":return i.jsxs(h.Select,{value:r[p.field]!==void 0?String(r[p.field]):"",onValueChange:w=>{const N=p.options?.find(I=>String(I.value)===w);f(p.field,N?N.value:w)},children:[i.jsx(h.SelectTrigger,{children:i.jsx(h.SelectValue,{placeholder:E})}),i.jsx(h.SelectContent,{children:p.options?.map(w=>i.jsx(h.SelectItem,{value:String(w.value),children:w.label},String(w.value)))})]});case"multi-select":{const w=r[p.field],N=Array.isArray(w)?w:w?[w]:[];return i.jsx("div",{className:"max-h-40 overflow-y-auto space-y-0.5 border rounded-md p-2",children:p.options?.map(I=>{const M=N.map(String).includes(String(I.value));return i.jsxs("label",{className:h.cn("flex items-center gap-2 text-sm py-1 px-1.5 rounded cursor-pointer",M?"bg-primary/5 text-primary":"hover:bg-muted"),children:[i.jsx(h.Checkbox,{checked:M,onCheckedChange:L=>{const y=L?[...N,I.value]:N.filter(k=>String(k)!==String(I.value));f(p.field,y)}}),i.jsx("span",{className:"truncate",children:I.label})]},String(I.value))})})}case"date":return i.jsx(h.Input,{type:"date",value:r[p.field]??"",onChange:w=>f(p.field,w.target.value)});case"date-range":{const w=br(r[p.field]);return i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(h.Input,{type:"date",value:w.start??"",onChange:N=>{f(p.field,{...w,start:N.target.value})}}),i.jsx(h.Input,{type:"date",value:w.end??"",onChange:N=>{f(p.field,{...w,end:N.target.value})}})]})}case"boolean":return i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(h.Checkbox,{checked:!!r[p.field],onCheckedChange:w=>f(p.field,!!w)}),i.jsx("span",{className:"text-sm text-muted-foreground",children:"Enabled"})]});default:return i.jsx(h.Input,{value:r[p.field]??"",placeholder:E,onChange:w=>f(p.field,w.target.value)})}},m=i.jsxs("div",{className:"space-y-4",children:[i.jsx("div",{className:"grid gap-4 sm:grid-cols-2",children:e.filters.map(p=>i.jsxs("div",{className:"space-y-2",children:[i.jsx(h.Label,{className:"text-xs text-muted-foreground",children:p.label||p.field}),C(p)]},p.field))}),(e.showApply||e.showClear)&&i.jsxs("div",{className:"flex items-center justify-end gap-2 border-t pt-3",children:[e.showClear&&i.jsx(h.Button,{type:"button",variant:"ghost",size:"sm",onClick:g,children:"Clear"}),e.showApply&&i.jsx(h.Button,{type:"button",size:"sm",onClick:x,children:"Apply"})]})]}),D=e.layout||"inline";return D==="popover"?i.jsx("div",{className:h.cn(Ft({layout:D}),t),children:i.jsxs(h.Popover,{open:l,onOpenChange:c,children:[i.jsx(h.PopoverTrigger,{asChild:!0,children:i.jsxs(h.Button,{type:"button",variant:d>0?"secondary":"outline",size:"sm",className:"gap-2",children:[i.jsx(F.SlidersHorizontal,{className:"h-4 w-4"}),"Filters",d>0&&i.jsx("span",{className:"inline-flex h-5 min-w-[20px] items-center justify-center rounded-full bg-primary/10 px-1 text-xs font-medium text-primary",children:d})]})}),i.jsx(h.PopoverContent,{align:"start",className:"w-[520px] p-4",children:m})]})}):D==="drawer"?i.jsxs("div",{className:h.cn(Ft({layout:D}),t),children:[i.jsxs(h.Button,{type:"button",variant:d>0?"secondary":"outline",size:"sm",className:"gap-2",onClick:()=>c(!0),children:[i.jsx(F.SlidersHorizontal,{className:"h-4 w-4"}),"Filters",d>0&&i.jsx("span",{className:"inline-flex h-5 min-w-[20px] items-center justify-center rounded-full bg-primary/10 px-1 text-xs font-medium text-primary",children:d})]}),i.jsx(h.Drawer,{open:l,onOpenChange:c,children:i.jsxs(h.DrawerContent,{children:[i.jsxs(h.DrawerHeader,{children:[i.jsx(h.DrawerTitle,{children:"Filters"}),i.jsx(h.DrawerDescription,{children:"Refine the data with advanced filters."})]}),i.jsx("div",{className:"px-4 pb-6",children:m})]})})]}):i.jsxs("div",{className:h.cn(Ft({layout:D}),t),children:[m,!e.showApply&&e.showClear&&i.jsxs(h.Button,{type:"button",variant:"ghost",size:"sm",className:"gap-2",onClick:g,children:[i.jsx(F.X,{className:"h-3.5 w-3.5"}),"Clear filters"]})]})},Mt=Ye("",{variants:{variant:{buttons:"flex flex-wrap gap-2",dropdown:"flex flex-wrap items-center gap-3",builder:"space-y-3"}},defaultVariants:{variant:"dropdown"}}),Vt=e=>e?e.map(t=>({field:t.field,direction:t.direction})):[],bn=e=>e.map(t=>({id:`${t.field}-${t.direction}`,field:t.field,order:t.direction})),vr=e=>e.filter(t=>t.field).map(t=>({field:t.field,direction:t.order})),vn=({schema:e,className:t,onChange:n})=>{const[r,s]=X.useState(()=>Vt(e.sort)),[l,c]=X.useState(()=>bn(Vt(e.sort)));X.useEffect(()=>{const d=Vt(e.sort);s(d),c(bn(d))},[e.sort]);const a=X.useCallback(d=>{s(d),n?.(d),e.onChange&&typeof window<"u"&&window.dispatchEvent(new CustomEvent(e.onChange,{detail:{sort:d}}))},[n,e.onChange]),f=X.useCallback(d=>{const C=r.find(p=>p.field===d),m=!!e.multiple;if(!C){const p=m?[...r,{field:d,direction:"asc"}]:[{field:d,direction:"asc"}];a(p);return}if(C.direction==="asc"){const p=r.map(S=>S.field===d?{...S,direction:"desc"}:S);a(p);return}const D=r.filter(p=>p.field!==d);a(D)},[a,e.multiple,r]);if((e.variant||"dropdown")==="buttons")return i.jsx("div",{className:h.cn(Mt({variant:"buttons"}),t),children:e.fields.map(d=>{const C=r.find(D=>D.field===d.field),m=C?.direction==="asc"?F.ArrowUp:F.ArrowDown;return i.jsxs(h.Button,{type:"button",variant:C?"secondary":"outline",size:"sm",onClick:()=>f(d.field),className:"gap-2",children:[i.jsx("span",{children:d.label||d.field}),C&&i.jsx(m,{className:"h-3.5 w-3.5"})]},d.field)})});if(e.multiple)return i.jsx("div",{className:h.cn(Mt({variant:"builder"}),t),children:i.jsx(h.SortBuilder,{fields:e.fields.map(d=>({value:d.field,label:d.label||d.field})),value:l,onChange:d=>{c(d),a(vr(d))}})});const x=r[0];return i.jsxs("div",{className:h.cn(Mt({variant:"dropdown"}),t),children:[i.jsxs(h.Select,{value:x?.field||"",onValueChange:d=>{if(!d){a([]);return}a([{field:d,direction:x?.direction||"asc"}])},children:[i.jsx(h.SelectTrigger,{className:"w-56",children:i.jsx(h.SelectValue,{placeholder:"Select field"})}),i.jsx(h.SelectContent,{children:e.fields.map(d=>i.jsx(h.SelectItem,{value:d.field,children:d.label||d.field},d.field))})]}),i.jsxs(h.Select,{value:x?.direction||"asc",onValueChange:d=>{x?.field&&a([{field:x.field,direction:d}])},children:[i.jsx(h.SelectTrigger,{className:"w-36",children:i.jsx(h.SelectValue,{})}),i.jsxs(h.SelectContent,{children:[i.jsx(h.SelectItem,{value:"asc",children:"Ascending"}),i.jsx(h.SelectItem,{value:"desc",children:"Descending"})]})]})]})};function xr(){if(typeof crypto<"u"&&typeof crypto.randomUUID=="function")return crypto.randomUUID();if(typeof crypto<"u"&&typeof crypto.getRandomValues=="function"){const e=new Uint8Array(16);return crypto.getRandomValues(e),Array.from(e,t=>t.toString(16).padStart(2,"0")).join("")}return Math.random().toString(36).slice(2)+Math.random().toString(36).slice(2)}function mr(e,t,n,r){return`${e}/share/${t}/${n}?mode=readonly&token=${r}`}const xn=({objectName:e,viewId:t="default",baseUrl:n,onShare:r,className:s})=>{const[l,c]=X.useState(null),[a,f]=X.useState(!1),[g,x]=X.useState(!1),[d,C]=X.useState(""),[m,D]=X.useState(""),p=n??(typeof window<"u"?window.location.origin:""),S=X.useCallback(()=>{const w=xr(),N=mr(p,e,t,w);c(N),f(!1);const I=m?new Date(Date.now()+parseInt(m,10)*864e5).toISOString():void 0;r?.(N,{password:d||void 0,expiresAt:I})},[p,e,t,r,d,m]),E=X.useCallback(async()=>{if(l)try{await navigator.clipboard.writeText(l),f(!0),setTimeout(()=>f(!1),2e3)}catch{const w=document.createElement("textarea");w.value=l,document.body.appendChild(w),w.select(),document.execCommand("copy"),document.body.removeChild(w),f(!0),setTimeout(()=>f(!1),2e3)}},[l]);return i.jsxs(h.Popover,{open:g,onOpenChange:x,children:[i.jsx(h.PopoverTrigger,{asChild:!0,children:i.jsxs(h.Button,{variant:"outline",size:"sm",className:h.cn("gap-2",s),children:[i.jsx(F.Share2,{className:"h-4 w-4"}),"Share"]})}),i.jsxs(h.PopoverContent,{className:"w-96 space-y-4",align:"end",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx("h4",{className:"text-sm font-medium",children:"Share View"}),i.jsx(h.Badge,{variant:"secondary",className:"text-xs",children:"Read-only"})]}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"Generate a public link to share this view. Recipients can view data without logging in."})]}),l?i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(h.Input,{value:l,readOnly:!0,className:"h-8 text-xs",onClick:w=>w.target.select()}),i.jsx(h.Button,{variant:"outline",size:"sm",onClick:E,className:"shrink-0 gap-1",children:a?i.jsx(F.Check,{className:"h-4 w-4 text-green-500"}):i.jsx(F.Copy,{className:"h-4 w-4"})})]}),(d||m)&&i.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[d&&i.jsxs(h.Badge,{variant:"outline",className:"text-xs gap-1",children:[i.jsx(F.Lock,{className:"h-3 w-3"}),"Password protected"]}),m&&i.jsxs(h.Badge,{variant:"outline",className:"text-xs gap-1",children:[i.jsx(F.Calendar,{className:"h-3 w-3"}),"Expires in ",m," day",m!=="1"?"s":""]})]})]}):i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"space-y-1.5",children:[i.jsxs("label",{className:"flex items-center gap-1.5 text-xs font-medium text-foreground",children:[i.jsx(F.Lock,{className:"h-3.5 w-3.5"}),"Password protection (optional)"]}),i.jsx(h.Input,{type:"password",value:d,onChange:w=>C(w.target.value),placeholder:"Enter password...",className:"h-8 text-xs"})]}),i.jsxs("div",{className:"space-y-1.5",children:[i.jsxs("label",{className:"flex items-center gap-1.5 text-xs font-medium text-foreground",children:[i.jsx(F.Calendar,{className:"h-3.5 w-3.5"}),"Expires after (optional)"]}),i.jsxs("select",{value:m,onChange:w=>D(w.target.value),className:"w-full h-8 text-xs rounded-md border border-input bg-background px-3",children:[i.jsx("option",{value:"",children:"Never"}),i.jsx("option",{value:"1",children:"1 day"}),i.jsx("option",{value:"7",children:"7 days"}),i.jsx("option",{value:"30",children:"30 days"}),i.jsx("option",{value:"90",children:"90 days"})]})]}),i.jsxs(h.Button,{onClick:S,className:"w-full gap-2",size:"sm",children:[i.jsx(F.Share2,{className:"h-4 w-4"}),"Generate Link"]})]})]})]})};function wr(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return o.useMemo(()=>r=>{t.forEach(s=>s(r))},t)}const xt=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function qe(e){const t=Object.prototype.toString.call(e);return t==="[object Window]"||t==="[object global]"}function Pt(e){return"nodeType"in e}function we(e){var t,n;return e?qe(e)?e:Pt(e)&&(t=(n=e.ownerDocument)==null?void 0:n.defaultView)!=null?t:window:window}function Lt(e){const{Document:t}=we(e);return e instanceof t}function et(e){return qe(e)?!1:e instanceof we(e).HTMLElement}function mn(e){return e instanceof we(e).SVGElement}function We(e){return e?qe(e)?e.document:Pt(e)?Lt(e)?e:et(e)||mn(e)?e.ownerDocument:document:document:document}const ke=xt?o.useLayoutEffect:o.useEffect;function _t(e){const t=o.useRef(e);return ke(()=>{t.current=e}),o.useCallback(function(){for(var n=arguments.length,r=new Array(n),s=0;s<n;s++)r[s]=arguments[s];return t.current==null?void 0:t.current(...r)},[])}function yr(){const e=o.useRef(null),t=o.useCallback((r,s)=>{e.current=setInterval(r,s)},[]),n=o.useCallback(()=>{e.current!==null&&(clearInterval(e.current),e.current=null)},[]);return[t,n]}function tt(e,t){t===void 0&&(t=[e]);const n=o.useRef(e);return ke(()=>{n.current!==e&&(n.current=e)},t),n}function nt(e,t){const n=o.useRef();return o.useMemo(()=>{const r=e(n.current);return n.current=r,r},[...t])}function mt(e){const t=_t(e),n=o.useRef(null),r=o.useCallback(s=>{s!==n.current&&t?.(s,n.current),n.current=s},[]);return[n,r]}function $t(e){const t=o.useRef();return o.useEffect(()=>{t.current=e},[e]),t.current}let Bt={};function rt(e,t){return o.useMemo(()=>{if(t)return t;const n=Bt[e]==null?0:Bt[e]+1;return Bt[e]=n,e+"-"+n},[e,t])}function wn(e){return function(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),s=1;s<n;s++)r[s-1]=arguments[s];return r.reduce((l,c)=>{const a=Object.entries(c);for(const[f,g]of a){const x=l[f];x!=null&&(l[f]=x+e*g)}return l},{...t})}}const Ge=wn(1),wt=wn(-1);function Cr(e){return"clientX"in e&&"clientY"in e}function zt(e){if(!e)return!1;const{KeyboardEvent:t}=we(e.target);return t&&e instanceof t}function jr(e){if(!e)return!1;const{TouchEvent:t}=we(e.target);return t&&e instanceof t}function Rt(e){if(jr(e)){if(e.touches&&e.touches.length){const{clientX:t,clientY:n}=e.touches[0];return{x:t,y:n}}else if(e.changedTouches&&e.changedTouches.length){const{clientX:t,clientY:n}=e.changedTouches[0];return{x:t,y:n}}}return Cr(e)?{x:e.clientX,y:e.clientY}:null}const it=Object.freeze({Translate:{toString(e){if(!e)return;const{x:t,y:n}=e;return"translate3d("+(t?Math.round(t):0)+"px, "+(n?Math.round(n):0)+"px, 0)"}},Scale:{toString(e){if(!e)return;const{scaleX:t,scaleY:n}=e;return"scaleX("+t+") scaleY("+n+")"}},Transform:{toString(e){if(e)return[it.Translate.toString(e),it.Scale.toString(e)].join(" ")}},Transition:{toString(e){let{property:t,duration:n,easing:r}=e;return t+" "+n+"ms "+r}}}),yn="a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]";function Sr(e){return e.matches(yn)?e:e.querySelector(yn)}const Nr={display:"none"};function Dr(e){let{id:t,value:n}=e;return o.createElement("div",{id:t,style:Nr},n)}function Er(e){let{id:t,announcement:n,ariaLiveType:r="assertive"}=e;const s={position:"fixed",top:0,left:0,width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0 0 0 0)",clipPath:"inset(100%)",whiteSpace:"nowrap"};return o.createElement("div",{id:t,style:s,role:"status","aria-live":r,"aria-atomic":!0},n)}function Tr(){const[e,t]=o.useState("");return{announce:o.useCallback(r=>{r!=null&&t(r)},[]),announcement:e}}const Cn=o.createContext(null);function kr(e){const t=o.useContext(Cn);o.useEffect(()=>{if(!t)throw new Error("useDndMonitor must be used within a children of <DndContext>");return t(e)},[e,t])}function Ar(){const[e]=o.useState(()=>new Set),t=o.useCallback(r=>(e.add(r),()=>e.delete(r)),[e]);return[o.useCallback(r=>{let{type:s,event:l}=r;e.forEach(c=>{var a;return(a=c[s])==null?void 0:a.call(c,l)})},[e]),t]}const Ir={draggable:`
|
|
7
7
|
To pick up a draggable item, press the space bar.
|
|
8
8
|
While dragging, use the arrow keys to move the item.
|
|
9
9
|
Press space again to drop the item in its new position, or press escape to cancel.
|
|
10
|
-
`},Or={onDragStart(e){let{active:t}=e;return"Picked up draggable item "+t.id+"."},onDragOver(e){let{active:t,over:n}=e;return n?"Draggable item "+t.id+" was moved over droppable area "+n.id+".":"Draggable item "+t.id+" is no longer over a droppable area."},onDragEnd(e){let{active:t,over:n}=e;return n?"Draggable item "+t.id+" was dropped over droppable area "+n.id:"Draggable item "+t.id+" was dropped."},onDragCancel(e){let{active:t}=e;return"Dragging was cancelled. Draggable item "+t.id+" was dropped."}};function Fr(e){let{announcements:t=Or,container:n,hiddenTextDescribedById:r,screenReaderInstructions:s=Ir}=e;const{announce:l,announcement:c}=Tr(),a=rt("DndLiveRegion"),[u,g]=o.useState(!1);if(o.useEffect(()=>{g(!0)},[]),kr(o.useMemo(()=>({onDragStart(d){let{active:C}=d;l(t.onDragStart({active:C}))},onDragMove(d){let{active:C,over:m}=d;t.onDragMove&&l(t.onDragMove({active:C,over:m}))},onDragOver(d){let{active:C,over:m}=d;l(t.onDragOver({active:C,over:m}))},onDragEnd(d){let{active:C,over:m}=d;l(t.onDragEnd({active:C,over:m}))},onDragCancel(d){let{active:C,over:m}=d;l(t.onDragCancel({active:C,over:m}))}}),[l,t])),!u)return null;const x=o.createElement(o.Fragment,null,o.createElement(Dr,{id:r,value:s.draggable}),o.createElement(Er,{id:a,announcement:c}));return n?Je.createPortal(x,n):x}var ce;(function(e){e.DragStart="dragStart",e.DragMove="dragMove",e.DragEnd="dragEnd",e.DragCancel="dragCancel",e.DragOver="dragOver",e.RegisterDroppable="registerDroppable",e.SetDroppableDisabled="setDroppableDisabled",e.UnregisterDroppable="unregisterDroppable"})(ce||(ce={}));function yt(){}function jn(e,t){return o.useMemo(()=>({sensor:e,options:t??{}}),[e,t])}function Mr(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return o.useMemo(()=>[...t].filter(r=>r!=null),[...t])}const Te=Object.freeze({x:0,y:0});function Vr(e,t){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))}function Pr(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return n-r}function Lr(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return r-n}function _r(e,t){if(!e||e.length===0)return null;const[n]=e;return n[t]}function Sn(e,t,n){return t===void 0&&(t=e.left),n===void 0&&(n=e.top),{x:t+e.width*.5,y:n+e.height*.5}}const $r=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e;const s=Sn(t,t.left,t.top),l=[];for(const c of r){const{id:a}=c,u=n.get(a);if(u){const g=Vr(Sn(u),s);l.push({id:a,data:{droppableContainer:c,value:g}})}}return l.sort(Pr)};function Br(e,t){const n=Math.max(t.top,e.top),r=Math.max(t.left,e.left),s=Math.min(t.left+t.width,e.left+e.width),l=Math.min(t.top+t.height,e.top+e.height),c=s-r,a=l-n;if(r<s&&n<l){const u=t.width*t.height,g=e.width*e.height,x=c*a,d=x/(u+g-x);return Number(d.toFixed(4))}return 0}const zr=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e;const s=[];for(const l of r){const{id:c}=l,a=n.get(c);if(a){const u=Br(a,t);u>0&&s.push({id:c,data:{droppableContainer:l,value:u}})}}return s.sort(Lr)};function Rr(e,t,n){return{...e,scaleX:t&&n?t.width/n.width:1,scaleY:t&&n?t.height/n.height:1}}function Nn(e,t){return e&&t?{x:e.left-t.left,y:e.top-t.top}:Te}function Ur(e){return function(n){for(var r=arguments.length,s=new Array(r>1?r-1:0),l=1;l<r;l++)s[l-1]=arguments[l];return s.reduce((c,a)=>({...c,top:c.top+e*a.y,bottom:c.bottom+e*a.y,left:c.left+e*a.x,right:c.right+e*a.x}),{...n})}}const Yr=Ur(1);function qr(e){if(e.startsWith("matrix3d(")){const t=e.slice(9,-1).split(/, /);return{x:+t[12],y:+t[13],scaleX:+t[0],scaleY:+t[5]}}else if(e.startsWith("matrix(")){const t=e.slice(7,-1).split(/, /);return{x:+t[4],y:+t[5],scaleX:+t[0],scaleY:+t[3]}}return null}function Wr(e,t,n){const r=qr(t);if(!r)return e;const{scaleX:s,scaleY:l,x:c,y:a}=r,u=e.left-c-(1-s)*parseFloat(n),g=e.top-a-(1-l)*parseFloat(n.slice(n.indexOf(" ")+1)),x=s?e.width/s:e.width,d=l?e.height/l:e.height;return{width:x,height:d,top:g,right:u+x,bottom:g+d,left:u}}const Gr={ignoreTransform:!1};function He(e,t){t===void 0&&(t=Gr);let n=e.getBoundingClientRect();if(t.ignoreTransform){const{transform:g,transformOrigin:x}=we(e).getComputedStyle(e);g&&(n=Wr(n,g,x))}const{top:r,left:s,width:l,height:c,bottom:a,right:u}=n;return{top:r,left:s,width:l,height:c,bottom:a,right:u}}function Dn(e){return He(e,{ignoreTransform:!0})}function Hr(e){const t=e.innerWidth,n=e.innerHeight;return{top:0,left:0,right:t,bottom:n,width:t,height:n}}function Xr(e,t){return t===void 0&&(t=we(e).getComputedStyle(e)),t.position==="fixed"}function Kr(e,t){t===void 0&&(t=we(e).getComputedStyle(e));const n=/(auto|scroll|overlay)/;return["overflow","overflowX","overflowY"].some(s=>{const l=t[s];return typeof l=="string"?n.test(l):!1})}function Ut(e,t){const n=[];function r(s){if(t!=null&&n.length>=t||!s)return n;if(Lt(s)&&s.scrollingElement!=null&&!n.includes(s.scrollingElement))return n.push(s.scrollingElement),n;if(!et(s)||mn(s)||n.includes(s))return n;const l=we(e).getComputedStyle(s);return s!==e&&Kr(s,l)&&n.push(s),Xr(s,l)?n:r(s.parentNode)}return e?r(e):n}function En(e){const[t]=Ut(e,1);return t??null}function Yt(e){return!xt||!e?null:qe(e)?e:Pt(e)?Lt(e)||e===We(e).scrollingElement?window:et(e)?e:null:null}function Tn(e){return qe(e)?e.scrollX:e.scrollLeft}function kn(e){return qe(e)?e.scrollY:e.scrollTop}function qt(e){return{x:Tn(e),y:kn(e)}}var ue;(function(e){e[e.Forward=1]="Forward",e[e.Backward=-1]="Backward"})(ue||(ue={}));function An(e){return!xt||!e?!1:e===document.scrollingElement}function In(e){const t={x:0,y:0},n=An(e)?{height:window.innerHeight,width:window.innerWidth}:{height:e.clientHeight,width:e.clientWidth},r={x:e.scrollWidth-n.width,y:e.scrollHeight-n.height},s=e.scrollTop<=t.y,l=e.scrollLeft<=t.x,c=e.scrollTop>=r.y,a=e.scrollLeft>=r.x;return{isTop:s,isLeft:l,isBottom:c,isRight:a,maxScroll:r,minScroll:t}}const Jr={x:.2,y:.2};function Qr(e,t,n,r,s){let{top:l,left:c,right:a,bottom:u}=n;r===void 0&&(r=10),s===void 0&&(s=Jr);const{isTop:g,isBottom:x,isLeft:d,isRight:C}=In(e),m={x:0,y:0},D={x:0,y:0},p={height:t.height*s.y,width:t.width*s.x};return!g&&l<=t.top+p.height?(m.y=ue.Backward,D.y=r*Math.abs((t.top+p.height-l)/p.height)):!x&&u>=t.bottom-p.height&&(m.y=ue.Forward,D.y=r*Math.abs((t.bottom-p.height-u)/p.height)),!C&&a>=t.right-p.width?(m.x=ue.Forward,D.x=r*Math.abs((t.right-p.width-a)/p.width)):!d&&c<=t.left+p.width&&(m.x=ue.Backward,D.x=r*Math.abs((t.left+p.width-c)/p.width)),{direction:m,speed:D}}function Zr(e){if(e===document.scrollingElement){const{innerWidth:l,innerHeight:c}=window;return{top:0,left:0,right:l,bottom:c,width:l,height:c}}const{top:t,left:n,right:r,bottom:s}=e.getBoundingClientRect();return{top:t,left:n,right:r,bottom:s,width:e.clientWidth,height:e.clientHeight}}function On(e){return e.reduce((t,n)=>Ge(t,qt(n)),Te)}function ei(e){return e.reduce((t,n)=>t+Tn(n),0)}function ti(e){return e.reduce((t,n)=>t+kn(n),0)}function ni(e,t){if(t===void 0&&(t=He),!e)return;const{top:n,left:r,bottom:s,right:l}=t(e);En(e)&&(s<=0||l<=0||n>=window.innerHeight||r>=window.innerWidth)&&e.scrollIntoView({block:"center",inline:"center"})}const ri=[["x",["left","right"],ei],["y",["top","bottom"],ti]];class Wt{constructor(t,n){this.rect=void 0,this.width=void 0,this.height=void 0,this.top=void 0,this.bottom=void 0,this.right=void 0,this.left=void 0;const r=Ut(n),s=On(r);this.rect={...t},this.width=t.width,this.height=t.height;for(const[l,c,a]of ri)for(const u of c)Object.defineProperty(this,u,{get:()=>{const g=a(r),x=s[l]-g;return this.rect[u]+x},enumerable:!0});Object.defineProperty(this,"rect",{enumerable:!1})}}class st{constructor(t){this.target=void 0,this.listeners=[],this.removeAll=()=>{this.listeners.forEach(n=>{var r;return(r=this.target)==null?void 0:r.removeEventListener(...n)})},this.target=t}add(t,n,r){var s;(s=this.target)==null||s.addEventListener(t,n,r),this.listeners.push([t,n,r])}}function ii(e){const{EventTarget:t}=we(e);return e instanceof t?e:We(e)}function Gt(e,t){const n=Math.abs(e.x),r=Math.abs(e.y);return typeof t=="number"?Math.sqrt(n**2+r**2)>t:"x"in t&&"y"in t?n>t.x&&r>t.y:"x"in t?n>t.x:"y"in t?r>t.y:!1}var De;(function(e){e.Click="click",e.DragStart="dragstart",e.Keydown="keydown",e.ContextMenu="contextmenu",e.Resize="resize",e.SelectionChange="selectionchange",e.VisibilityChange="visibilitychange"})(De||(De={}));function Fn(e){e.preventDefault()}function si(e){e.stopPropagation()}var B;(function(e){e.Space="Space",e.Down="ArrowDown",e.Right="ArrowRight",e.Left="ArrowLeft",e.Up="ArrowUp",e.Esc="Escape",e.Enter="Enter",e.Tab="Tab"})(B||(B={}));const Mn={start:[B.Space,B.Enter],cancel:[B.Esc],end:[B.Space,B.Enter,B.Tab]},li=(e,t)=>{let{currentCoordinates:n}=t;switch(e.code){case B.Right:return{...n,x:n.x+25};case B.Left:return{...n,x:n.x-25};case B.Down:return{...n,y:n.y+25};case B.Up:return{...n,y:n.y-25}}};class Ht{constructor(t){this.props=void 0,this.autoScrollEnabled=!1,this.referenceCoordinates=void 0,this.listeners=void 0,this.windowListeners=void 0,this.props=t;const{event:{target:n}}=t;this.props=t,this.listeners=new st(We(n)),this.windowListeners=new st(we(n)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(De.Resize,this.handleCancel),this.windowListeners.add(De.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(De.Keydown,this.handleKeyDown))}handleStart(){const{activeNode:t,onStart:n}=this.props,r=t.node.current;r&&ni(r),n(Te)}handleKeyDown(t){if(zt(t)){const{active:n,context:r,options:s}=this.props,{keyboardCodes:l=Mn,coordinateGetter:c=li,scrollBehavior:a="smooth"}=s,{code:u}=t;if(l.end.includes(u)){this.handleEnd(t);return}if(l.cancel.includes(u)){this.handleCancel(t);return}const{collisionRect:g}=r.current,x=g?{x:g.left,y:g.top}:Te;this.referenceCoordinates||(this.referenceCoordinates=x);const d=c(t,{active:n,context:r.current,currentCoordinates:x});if(d){const C=wt(d,x),m={x:0,y:0},{scrollableAncestors:D}=r.current;for(const p of D){const S=t.code,{isTop:E,isRight:w,isLeft:N,isBottom:I,maxScroll:M,minScroll:L}=In(p),y=Zr(p),k={x:Math.min(S===B.Right?y.right-y.width/2:y.right,Math.max(S===B.Right?y.left:y.left+y.width/2,d.x)),y:Math.min(S===B.Down?y.bottom-y.height/2:y.bottom,Math.max(S===B.Down?y.top:y.top+y.height/2,d.y))},P=S===B.Right&&!w||S===B.Left&&!N,_=S===B.Down&&!I||S===B.Up&&!E;if(P&&k.x!==d.x){const z=p.scrollLeft+C.x,U=S===B.Right&&z<=M.x||S===B.Left&&z>=L.x;if(U&&!C.y){p.scrollTo({left:z,behavior:a});return}U?m.x=p.scrollLeft-z:m.x=S===B.Right?p.scrollLeft-M.x:p.scrollLeft-L.x,m.x&&p.scrollBy({left:-m.x,behavior:a});break}else if(_&&k.y!==d.y){const z=p.scrollTop+C.y,U=S===B.Down&&z<=M.y||S===B.Up&&z>=L.y;if(U&&!C.x){p.scrollTo({top:z,behavior:a});return}U?m.y=p.scrollTop-z:m.y=S===B.Down?p.scrollTop-M.y:p.scrollTop-L.y,m.y&&p.scrollBy({top:-m.y,behavior:a});break}}this.handleMove(t,Ge(wt(d,this.referenceCoordinates),m))}}}handleMove(t,n){const{onMove:r}=this.props;t.preventDefault(),r(n)}handleEnd(t){const{onEnd:n}=this.props;t.preventDefault(),this.detach(),n()}handleCancel(t){const{onCancel:n}=this.props;t.preventDefault(),this.detach(),n()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}}Ht.activators=[{eventName:"onKeyDown",handler:(e,t,n)=>{let{keyboardCodes:r=Mn,onActivation:s}=t,{active:l}=n;const{code:c}=e.nativeEvent;if(r.start.includes(c)){const a=l.activatorNode.current;return a&&e.target!==a?!1:(e.preventDefault(),s?.({event:e.nativeEvent}),!0)}return!1}}];function Vn(e){return!!(e&&"distance"in e)}function Pn(e){return!!(e&&"delay"in e)}class Xt{constructor(t,n,r){var s;r===void 0&&(r=ii(t.event.target)),this.props=void 0,this.events=void 0,this.autoScrollEnabled=!0,this.document=void 0,this.activated=!1,this.initialCoordinates=void 0,this.timeoutId=null,this.listeners=void 0,this.documentListeners=void 0,this.windowListeners=void 0,this.props=t,this.events=n;const{event:l}=t,{target:c}=l;this.props=t,this.events=n,this.document=We(c),this.documentListeners=new st(this.document),this.listeners=new st(r),this.windowListeners=new st(we(c)),this.initialCoordinates=(s=Rt(l))!=null?s:Te,this.handleStart=this.handleStart.bind(this),this.handleMove=this.handleMove.bind(this),this.handleEnd=this.handleEnd.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.removeTextSelection=this.removeTextSelection.bind(this),this.attach()}attach(){const{events:t,props:{options:{activationConstraint:n,bypassActivationConstraint:r}}}=this;if(this.listeners.add(t.move.name,this.handleMove,{passive:!1}),this.listeners.add(t.end.name,this.handleEnd),t.cancel&&this.listeners.add(t.cancel.name,this.handleCancel),this.windowListeners.add(De.Resize,this.handleCancel),this.windowListeners.add(De.DragStart,Fn),this.windowListeners.add(De.VisibilityChange,this.handleCancel),this.windowListeners.add(De.ContextMenu,Fn),this.documentListeners.add(De.Keydown,this.handleKeydown),n){if(r!=null&&r({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(Pn(n)){this.timeoutId=setTimeout(this.handleStart,n.delay),this.handlePending(n);return}if(Vn(n)){this.handlePending(n);return}}this.handleStart()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll(),setTimeout(this.documentListeners.removeAll,50),this.timeoutId!==null&&(clearTimeout(this.timeoutId),this.timeoutId=null)}handlePending(t,n){const{active:r,onPending:s}=this.props;s(r,t,this.initialCoordinates,n)}handleStart(){const{initialCoordinates:t}=this,{onStart:n}=this.props;t&&(this.activated=!0,this.documentListeners.add(De.Click,si,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(De.SelectionChange,this.removeTextSelection),n(t))}handleMove(t){var n;const{activated:r,initialCoordinates:s,props:l}=this,{onMove:c,options:{activationConstraint:a}}=l;if(!s)return;const u=(n=Rt(t))!=null?n:Te,g=wt(s,u);if(!r&&a){if(Vn(a)){if(a.tolerance!=null&&Gt(g,a.tolerance))return this.handleCancel();if(Gt(g,a.distance))return this.handleStart()}if(Pn(a)&&Gt(g,a.tolerance))return this.handleCancel();this.handlePending(a,g);return}t.cancelable&&t.preventDefault(),c(u)}handleEnd(){const{onAbort:t,onEnd:n}=this.props;this.detach(),this.activated||t(this.props.active),n()}handleCancel(){const{onAbort:t,onCancel:n}=this.props;this.detach(),this.activated||t(this.props.active),n()}handleKeydown(t){t.code===B.Esc&&this.handleCancel()}removeTextSelection(){var t;(t=this.document.getSelection())==null||t.removeAllRanges()}}const oi={cancel:{name:"pointercancel"},move:{name:"pointermove"},end:{name:"pointerup"}};class Kt extends Xt{constructor(t){const{event:n}=t,r=We(n.target);super(t,oi,r)}}Kt.activators=[{eventName:"onPointerDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return!n.isPrimary||n.button!==0?!1:(r?.({event:n}),!0)}}];const ai={move:{name:"mousemove"},end:{name:"mouseup"}};var Jt;(function(e){e[e.RightClick=2]="RightClick"})(Jt||(Jt={}));class ci extends Xt{constructor(t){super(t,ai,We(t.event.target))}}ci.activators=[{eventName:"onMouseDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return n.button===Jt.RightClick?!1:(r?.({event:n}),!0)}}];const Qt={cancel:{name:"touchcancel"},move:{name:"touchmove"},end:{name:"touchend"}};class di extends Xt{constructor(t){super(t,Qt)}static setup(){return window.addEventListener(Qt.move.name,t,{capture:!1,passive:!1}),function(){window.removeEventListener(Qt.move.name,t)};function t(){}}}di.activators=[{eventName:"onTouchStart",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;const{touches:s}=n;return s.length>1?!1:(r?.({event:n}),!0)}}];var lt;(function(e){e[e.Pointer=0]="Pointer",e[e.DraggableRect=1]="DraggableRect"})(lt||(lt={}));var Ct;(function(e){e[e.TreeOrder=0]="TreeOrder",e[e.ReversedTreeOrder=1]="ReversedTreeOrder"})(Ct||(Ct={}));function ui(e){let{acceleration:t,activator:n=lt.Pointer,canScroll:r,draggingRect:s,enabled:l,interval:c=5,order:a=Ct.TreeOrder,pointerCoordinates:u,scrollableAncestors:g,scrollableAncestorRects:x,delta:d,threshold:C}=e;const m=hi({delta:d,disabled:!l}),[D,p]=yr(),S=o.useRef({x:0,y:0}),E=o.useRef({x:0,y:0}),w=o.useMemo(()=>{switch(n){case lt.Pointer:return u?{top:u.y,bottom:u.y,left:u.x,right:u.x}:null;case lt.DraggableRect:return s}},[n,s,u]),N=o.useRef(null),I=o.useCallback(()=>{const L=N.current;if(!L)return;const y=S.current.x*E.current.x,k=S.current.y*E.current.y;L.scrollBy(y,k)},[]),M=o.useMemo(()=>a===Ct.TreeOrder?[...g].reverse():g,[a,g]);o.useEffect(()=>{if(!l||!g.length||!w){p();return}for(const L of M){if(r?.(L)===!1)continue;const y=g.indexOf(L),k=x[y];if(!k)continue;const{direction:P,speed:_}=Qr(L,k,w,t,C);for(const z of["x","y"])m[z][P[z]]||(_[z]=0,P[z]=0);if(_.x>0||_.y>0){p(),N.current=L,D(I,c),S.current=_,E.current=P;return}}S.current={x:0,y:0},E.current={x:0,y:0},p()},[t,I,r,p,l,c,JSON.stringify(w),JSON.stringify(m),D,g,M,x,JSON.stringify(C)])}const fi={x:{[ue.Backward]:!1,[ue.Forward]:!1},y:{[ue.Backward]:!1,[ue.Forward]:!1}};function hi(e){let{delta:t,disabled:n}=e;const r=$t(t);return nt(s=>{if(n||!r||!s)return fi;const l={x:Math.sign(t.x-r.x),y:Math.sign(t.y-r.y)};return{x:{[ue.Backward]:s.x[ue.Backward]||l.x===-1,[ue.Forward]:s.x[ue.Forward]||l.x===1},y:{[ue.Backward]:s.y[ue.Backward]||l.y===-1,[ue.Forward]:s.y[ue.Forward]||l.y===1}}},[n,t,r])}function pi(e,t){const n=t!=null?e.get(t):void 0,r=n?n.node.current:null;return nt(s=>{var l;return t==null?null:(l=r??s)!=null?l:null},[r,t])}function gi(e,t){return o.useMemo(()=>e.reduce((n,r)=>{const{sensor:s}=r,l=s.activators.map(c=>({eventName:c.eventName,handler:t(c.handler,r)}));return[...n,...l]},[]),[e,t])}var ot;(function(e){e[e.Always=0]="Always",e[e.BeforeDragging=1]="BeforeDragging",e[e.WhileDragging=2]="WhileDragging"})(ot||(ot={}));var Zt;(function(e){e.Optimized="optimized"})(Zt||(Zt={}));const Ln=new Map;function bi(e,t){let{dragging:n,dependencies:r,config:s}=t;const[l,c]=o.useState(null),{frequency:a,measure:u,strategy:g}=s,x=o.useRef(e),d=S(),C=tt(d),m=o.useCallback(function(E){E===void 0&&(E=[]),!C.current&&c(w=>w===null?E:w.concat(E.filter(N=>!w.includes(N))))},[C]),D=o.useRef(null),p=nt(E=>{if(d&&!n)return Ln;if(!E||E===Ln||x.current!==e||l!=null){const w=new Map;for(let N of e){if(!N)continue;if(l&&l.length>0&&!l.includes(N.id)&&N.rect.current){w.set(N.id,N.rect.current);continue}const I=N.node.current,M=I?new Wt(u(I),I):null;N.rect.current=M,M&&w.set(N.id,M)}return w}return E},[e,l,n,d,u]);return o.useEffect(()=>{x.current=e},[e]),o.useEffect(()=>{d||m()},[n,d]),o.useEffect(()=>{l&&l.length>0&&c(null)},[JSON.stringify(l)]),o.useEffect(()=>{d||typeof a!="number"||D.current!==null||(D.current=setTimeout(()=>{m(),D.current=null},a))},[a,d,m,...r]),{droppableRects:p,measureDroppableContainers:m,measuringScheduled:l!=null};function S(){switch(g){case ot.Always:return!1;case ot.BeforeDragging:return n;default:return!n}}}function _n(e,t){return nt(n=>e?n||(typeof t=="function"?t(e):e):null,[t,e])}function vi(e,t){return _n(e,t)}function xi(e){let{callback:t,disabled:n}=e;const r=_t(t),s=o.useMemo(()=>{if(n||typeof window>"u"||typeof window.MutationObserver>"u")return;const{MutationObserver:l}=window;return new l(r)},[r,n]);return o.useEffect(()=>()=>s?.disconnect(),[s]),s}function jt(e){let{callback:t,disabled:n}=e;const r=_t(t),s=o.useMemo(()=>{if(n||typeof window>"u"||typeof window.ResizeObserver>"u")return;const{ResizeObserver:l}=window;return new l(r)},[n]);return o.useEffect(()=>()=>s?.disconnect(),[s]),s}function mi(e){return new Wt(He(e),e)}function $n(e,t,n){t===void 0&&(t=mi);const[r,s]=o.useState(null);function l(){s(u=>{if(!e)return null;if(e.isConnected===!1){var g;return(g=u??n)!=null?g:null}const x=t(e);return JSON.stringify(u)===JSON.stringify(x)?u:x})}const c=xi({callback(u){if(e)for(const g of u){const{type:x,target:d}=g;if(x==="childList"&&d instanceof HTMLElement&&d.contains(e)){l();break}}}}),a=jt({callback:l});return ke(()=>{l(),e?(a?.observe(e),c?.observe(document.body,{childList:!0,subtree:!0})):(a?.disconnect(),c?.disconnect())},[e]),r}function wi(e){const t=_n(e);return Nn(e,t)}const Bn=[];function yi(e){const t=o.useRef(e),n=nt(r=>e?r&&r!==Bn&&e&&t.current&&e.parentNode===t.current.parentNode?r:Ut(e):Bn,[e]);return o.useEffect(()=>{t.current=e},[e]),n}function Ci(e){const[t,n]=o.useState(null),r=o.useRef(e),s=o.useCallback(l=>{const c=Yt(l.target);c&&n(a=>a?(a.set(c,qt(c)),new Map(a)):null)},[]);return o.useEffect(()=>{const l=r.current;if(e!==l){c(l);const a=e.map(u=>{const g=Yt(u);return g?(g.addEventListener("scroll",s,{passive:!0}),[g,qt(g)]):null}).filter(u=>u!=null);n(a.length?new Map(a):null),r.current=e}return()=>{c(e),c(l)};function c(a){a.forEach(u=>{const g=Yt(u);g?.removeEventListener("scroll",s)})}},[s,e]),o.useMemo(()=>e.length?t?Array.from(t.values()).reduce((l,c)=>Ge(l,c),Te):On(e):Te,[e,t])}function zn(e,t){t===void 0&&(t=[]);const n=o.useRef(null);return o.useEffect(()=>{n.current=null},t),o.useEffect(()=>{const r=e!==Te;r&&!n.current&&(n.current=e),!r&&n.current&&(n.current=null)},[e]),n.current?wt(e,n.current):Te}function ji(e){o.useEffect(()=>{if(!xt)return;const t=e.map(n=>{let{sensor:r}=n;return r.setup==null?void 0:r.setup()});return()=>{for(const n of t)n?.()}},e.map(t=>{let{sensor:n}=t;return n}))}function Si(e,t){return o.useMemo(()=>e.reduce((n,r)=>{let{eventName:s,handler:l}=r;return n[s]=c=>{l(c,t)},n},{}),[e,t])}function Rn(e){return o.useMemo(()=>e?Hr(e):null,[e])}const Un=[];function Ni(e,t){t===void 0&&(t=He);const[n]=e,r=Rn(n?we(n):null),[s,l]=o.useState(Un);function c(){l(()=>e.length?e.map(u=>An(u)?r:new Wt(t(u),u)):Un)}const a=jt({callback:c});return ke(()=>{a?.disconnect(),c(),e.forEach(u=>a?.observe(u))},[e]),s}function Di(e){if(!e)return null;if(e.children.length>1)return e;const t=e.children[0];return et(t)?t:e}function Ei(e){let{measure:t}=e;const[n,r]=o.useState(null),s=o.useCallback(g=>{for(const{target:x}of g)if(et(x)){r(d=>{const C=t(x);return d?{...d,width:C.width,height:C.height}:C});break}},[t]),l=jt({callback:s}),c=o.useCallback(g=>{const x=Di(g);l?.disconnect(),x&&l?.observe(x),r(x?t(x):null)},[t,l]),[a,u]=mt(c);return o.useMemo(()=>({nodeRef:a,rect:n,setRef:u}),[n,a,u])}const Ti=[{sensor:Kt,options:{}},{sensor:Ht,options:{}}],ki={current:{}},St={draggable:{measure:Dn},droppable:{measure:Dn,strategy:ot.WhileDragging,frequency:Zt.Optimized},dragOverlay:{measure:He}};class at extends Map{get(t){var n;return t!=null&&(n=super.get(t))!=null?n:void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter(t=>{let{disabled:n}=t;return!n})}getNodeFor(t){var n,r;return(n=(r=this.get(t))==null?void 0:r.node.current)!=null?n:void 0}}const Ai={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new at,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:yt},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:St,measureDroppableContainers:yt,windowRect:null,measuringScheduled:!1},Ii={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:""},dispatch:yt,draggableNodes:new Map,over:null,measureDroppableContainers:yt},Nt=o.createContext(Ii),Yn=o.createContext(Ai);function Oi(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new at}}}function Fi(e,t){switch(t.type){case ce.DragStart:return{...e,draggable:{...e.draggable,initialCoordinates:t.initialCoordinates,active:t.active}};case ce.DragMove:return e.draggable.active==null?e:{...e,draggable:{...e.draggable,translate:{x:t.coordinates.x-e.draggable.initialCoordinates.x,y:t.coordinates.y-e.draggable.initialCoordinates.y}}};case ce.DragEnd:case ce.DragCancel:return{...e,draggable:{...e.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case ce.RegisterDroppable:{const{element:n}=t,{id:r}=n,s=new at(e.droppable.containers);return s.set(r,n),{...e,droppable:{...e.droppable,containers:s}}}case ce.SetDroppableDisabled:{const{id:n,key:r,disabled:s}=t,l=e.droppable.containers.get(n);if(!l||r!==l.key)return e;const c=new at(e.droppable.containers);return c.set(n,{...l,disabled:s}),{...e,droppable:{...e.droppable,containers:c}}}case ce.UnregisterDroppable:{const{id:n,key:r}=t,s=e.droppable.containers.get(n);if(!s||r!==s.key)return e;const l=new at(e.droppable.containers);return l.delete(n),{...e,droppable:{...e.droppable,containers:l}}}default:return e}}function Mi(e){let{disabled:t}=e;const{active:n,activatorEvent:r,draggableNodes:s}=o.useContext(Nt),l=$t(r),c=$t(n?.id);return o.useEffect(()=>{if(!t&&!r&&l&&c!=null){if(!zt(l)||document.activeElement===l.target)return;const a=s.get(c);if(!a)return;const{activatorNode:u,node:g}=a;if(!u.current&&!g.current)return;requestAnimationFrame(()=>{for(const x of[u.current,g.current]){if(!x)continue;const d=Sr(x);if(d){d.focus();break}}})}},[r,t,s,c,l]),null}function Vi(e,t){let{transform:n,...r}=t;return e!=null&&e.length?e.reduce((s,l)=>l({transform:s,...r}),n):n}function Pi(e){return o.useMemo(()=>({draggable:{...St.draggable,...e?.draggable},droppable:{...St.droppable,...e?.droppable},dragOverlay:{...St.dragOverlay,...e?.dragOverlay}}),[e?.draggable,e?.droppable,e?.dragOverlay])}function Li(e){let{activeNode:t,measure:n,initialRect:r,config:s=!0}=e;const l=o.useRef(!1),{x:c,y:a}=typeof s=="boolean"?{x:s,y:s}:s;ke(()=>{if(!c&&!a||!t){l.current=!1;return}if(l.current||!r)return;const g=t?.node.current;if(!g||g.isConnected===!1)return;const x=n(g),d=Nn(x,r);if(c||(d.x=0),a||(d.y=0),l.current=!0,Math.abs(d.x)>0||Math.abs(d.y)>0){const C=En(g);C&&C.scrollBy({top:d.y,left:d.x})}},[t,c,a,r,n])}const qn=o.createContext({...Te,scaleX:1,scaleY:1});var Pe;(function(e){e[e.Uninitialized=0]="Uninitialized",e[e.Initializing=1]="Initializing",e[e.Initialized=2]="Initialized"})(Pe||(Pe={}));const _i=o.memo(function(t){var n,r,s,l;let{id:c,accessibility:a,autoScroll:u=!0,children:g,sensors:x=Ti,collisionDetection:d=zr,measuring:C,modifiers:m,...D}=t;const p=o.useReducer(Fi,void 0,Oi),[S,E]=p,[w,N]=Ar(),[I,M]=o.useState(Pe.Uninitialized),L=I===Pe.Initialized,{draggable:{active:y,nodes:k,translate:P},droppable:{containers:_}}=S,z=y!=null?k.get(y):null,U=o.useRef({initial:null,translated:null}),te=o.useMemo(()=>{var J;return y!=null?{id:y,data:(J=z?.data)!=null?J:ki,rect:U}:null},[y,z]),Q=o.useRef(null),[fe,he]=o.useState(null),[ee,R]=o.useState(null),W=tt(D,Object.values(D)),ye=rt("DndDescribedBy",c),b=o.useMemo(()=>_.getEnabled(),[_]),f=Pi(C),{droppableRects:V,measureDroppableContainers:O,measuringScheduled:le}=bi(b,{dragging:L,dependencies:[P.x,P.y],config:f.droppable}),q=pi(k,y),G=o.useMemo(()=>ee?Rt(ee):null,[ee]),oe=ge(),de=vi(q,f.draggable.measure);Li({activeNode:y!=null?k.get(y):null,config:oe.layoutShiftCompensation,initialRect:de,measure:f.draggable.measure});const v=$n(q,f.draggable.measure,de),Z=$n(q?q.parentElement:null),K=o.useRef({activatorEvent:null,active:null,activeNode:q,collisionRect:null,collisions:null,droppableRects:V,draggableNodes:k,draggingNode:null,draggingNodeRect:null,droppableContainers:_,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),ne=_.getNodeFor((n=K.current.over)==null?void 0:n.id),Y=Ei({measure:f.dragOverlay.measure}),Ce=(r=Y.nodeRef.current)!=null?r:q,pe=L?(s=Y.rect)!=null?s:v:null,ct=!!(Y.nodeRef.current&&Y.rect),Re=wi(ct?null:v),Le=Rn(Ce?we(Ce):null),je=yi(L?ne??q:null),re=Ni(je),H=Vi(m,{transform:{x:P.x-Re.x,y:P.y-Re.y,scaleX:1,scaleY:1},activatorEvent:ee,active:te,activeNodeRect:v,containerNodeRect:Z,draggingNodeRect:pe,over:K.current.over,overlayNodeRect:Y.rect,scrollableAncestors:je,scrollableAncestorRects:re,windowRect:Le}),Fe=G?Ge(G,P):null,Xe=Ci(je),dt=zn(Xe),tn=zn(Xe,[v]),_e=Ge(H,dt),Ae=pe?Yr(pe,H):null,Ue=te&&Ae?d({active:te,collisionRect:Ae,droppableRects:V,droppableContainers:b,pointerCoordinates:Fe}):null,ut=_r(Ue,"id"),[Se,ft]=o.useState(null),kt=ct?H:Ge(H,tn),j=Rr(kt,(l=Se?.rect)!=null?l:null,v),T=o.useRef(null),A=o.useCallback((J,$)=>{let{sensor:me,options:$e}=$;if(Q.current==null)return;const Ee=k.get(Q.current);if(!Ee)return;const Ne=J.nativeEvent,Ie=new me({active:Q.current,activeNode:Ee,event:Ne,options:$e,context:K,onAbort(be){if(!k.get(be))return;const{onDragAbort:Oe}=W.current,Me={id:be};Oe?.(Me),w({type:"onDragAbort",event:Me})},onPending(be,Be,Oe,Me){if(!k.get(be))return;const{onDragPending:pt}=W.current,ze={id:be,constraint:Be,initialCoordinates:Oe,offset:Me};pt?.(ze),w({type:"onDragPending",event:ze})},onStart(be){const Be=Q.current;if(Be==null)return;const Oe=k.get(Be);if(!Oe)return;const{onDragStart:Me}=W.current,ht={activatorEvent:Ne,active:{id:Be,data:Oe.data,rect:U}};Je.unstable_batchedUpdates(()=>{Me?.(ht),M(Pe.Initializing),E({type:ce.DragStart,initialCoordinates:be,active:Be}),w({type:"onDragStart",event:ht}),he(T.current),R(Ne)})},onMove(be){E({type:ce.DragMove,coordinates:be})},onEnd:Ke(ce.DragEnd),onCancel:Ke(ce.DragCancel)});T.current=Ie;function Ke(be){return async function(){const{active:Oe,collisions:Me,over:ht,scrollAdjustedTranslate:pt}=K.current;let ze=null;if(Oe&&pt){const{cancelDrop:gt}=W.current;ze={activatorEvent:Ne,active:Oe,collisions:Me,delta:pt,over:ht},be===ce.DragEnd&&typeof gt=="function"&&await Promise.resolve(gt(ze))&&(be=ce.DragCancel)}Q.current=null,Je.unstable_batchedUpdates(()=>{E({type:be}),M(Pe.Uninitialized),ft(null),he(null),R(null),T.current=null;const gt=be===ce.DragEnd?"onDragEnd":"onDragCancel";if(ze){const nn=W.current[gt];nn?.(ze),w({type:gt,event:ze})}})}}},[k]),ve=o.useCallback((J,$)=>(me,$e)=>{const Ee=me.nativeEvent,Ne=k.get($e);if(Q.current!==null||!Ne||Ee.dndKit||Ee.defaultPrevented)return;const Ie={active:Ne};J(me,$.options,Ie)===!0&&(Ee.dndKit={capturedBy:$.sensor},Q.current=$e,A(me,$))},[k,A]),ie=gi(x,ve);ji(x),ke(()=>{v&&I===Pe.Initializing&&M(Pe.Initialized)},[v,I]),o.useEffect(()=>{const{onDragMove:J}=W.current,{active:$,activatorEvent:me,collisions:$e,over:Ee}=K.current;if(!$||!me)return;const Ne={active:$,activatorEvent:me,collisions:$e,delta:{x:_e.x,y:_e.y},over:Ee};Je.unstable_batchedUpdates(()=>{J?.(Ne),w({type:"onDragMove",event:Ne})})},[_e.x,_e.y]),o.useEffect(()=>{const{active:J,activatorEvent:$,collisions:me,droppableContainers:$e,scrollAdjustedTranslate:Ee}=K.current;if(!J||Q.current==null||!$||!Ee)return;const{onDragOver:Ne}=W.current,Ie=$e.get(ut),Ke=Ie&&Ie.rect.current?{id:Ie.id,rect:Ie.rect.current,data:Ie.data,disabled:Ie.disabled}:null,be={active:J,activatorEvent:$,collisions:me,delta:{x:Ee.x,y:Ee.y},over:Ke};Je.unstable_batchedUpdates(()=>{ft(Ke),Ne?.(be),w({type:"onDragOver",event:be})})},[ut]),ke(()=>{K.current={activatorEvent:ee,active:te,activeNode:q,collisionRect:Ae,collisions:Ue,droppableRects:V,draggableNodes:k,draggingNode:Ce,draggingNodeRect:pe,droppableContainers:_,over:Se,scrollableAncestors:je,scrollAdjustedTranslate:_e},U.current={initial:pe,translated:Ae}},[te,q,Ue,Ae,k,Ce,pe,V,_,Se,je,_e]),ui({...oe,delta:P,draggingRect:Ae,pointerCoordinates:Fe,scrollableAncestors:je,scrollableAncestorRects:re});const xe=o.useMemo(()=>({active:te,activeNode:q,activeNodeRect:v,activatorEvent:ee,collisions:Ue,containerNodeRect:Z,dragOverlay:Y,draggableNodes:k,droppableContainers:_,droppableRects:V,over:Se,measureDroppableContainers:O,scrollableAncestors:je,scrollableAncestorRects:re,measuringConfiguration:f,measuringScheduled:le,windowRect:Le}),[te,q,v,ee,Ue,Z,Y,k,_,V,Se,O,je,re,f,le,Le]),se=o.useMemo(()=>({activatorEvent:ee,activators:ie,active:te,activeNodeRect:v,ariaDescribedById:{draggable:ye},dispatch:E,draggableNodes:k,over:Se,measureDroppableContainers:O}),[ee,ie,te,v,E,ye,k,Se,O]);return o.createElement(Cn.Provider,{value:N},o.createElement(Nt.Provider,{value:se},o.createElement(Yn.Provider,{value:xe},o.createElement(qn.Provider,{value:j},g)),o.createElement(Mi,{disabled:a?.restoreFocus===!1})),o.createElement(Fr,{...a,hiddenTextDescribedById:ye}));function ge(){const J=fe?.autoScrollEnabled===!1,$=typeof u=="object"?u.enabled===!1:u===!1,me=L&&!J&&!$;return typeof u=="object"?{...u,enabled:me}:{enabled:me}}}),$i=o.createContext(null),Wn="button",Bi="Draggable";function zi(e){let{id:t,data:n,disabled:r=!1,attributes:s}=e;const l=rt(Bi),{activators:c,activatorEvent:a,active:u,activeNodeRect:g,ariaDescribedById:x,draggableNodes:d,over:C}=o.useContext(Nt),{role:m=Wn,roleDescription:D="draggable",tabIndex:p=0}=s??{},S=u?.id===t,E=o.useContext(S?qn:$i),[w,N]=mt(),[I,M]=mt(),L=Si(c,t),y=tt(n);ke(()=>(d.set(t,{id:t,key:l,node:w,activatorNode:I,data:y}),()=>{const P=d.get(t);P&&P.key===l&&d.delete(t)}),[d,t]);const k=o.useMemo(()=>({role:m,tabIndex:p,"aria-disabled":r,"aria-pressed":S&&m===Wn?!0:void 0,"aria-roledescription":D,"aria-describedby":x.draggable}),[r,m,p,S,D,x.draggable]);return{active:u,activatorEvent:a,activeNodeRect:g,attributes:k,isDragging:S,listeners:r?void 0:L,node:w,over:C,setNodeRef:N,setActivatorNodeRef:M,transform:E}}function Ri(){return o.useContext(Yn)}const Ui="Droppable",Yi={timeout:25};function qi(e){let{data:t,disabled:n=!1,id:r,resizeObserverConfig:s}=e;const l=rt(Ui),{active:c,dispatch:a,over:u,measureDroppableContainers:g}=o.useContext(Nt),x=o.useRef({disabled:n}),d=o.useRef(!1),C=o.useRef(null),m=o.useRef(null),{disabled:D,updateMeasurementsFor:p,timeout:S}={...Yi,...s},E=tt(p??r),w=o.useCallback(()=>{if(!d.current){d.current=!0;return}m.current!=null&&clearTimeout(m.current),m.current=setTimeout(()=>{g(Array.isArray(E.current)?E.current:[E.current]),m.current=null},S)},[S]),N=jt({callback:w,disabled:D||!c}),I=o.useCallback((k,P)=>{N&&(P&&(N.unobserve(P),d.current=!1),k&&N.observe(k))},[N]),[M,L]=mt(I),y=tt(t);return o.useEffect(()=>{!N||!M.current||(N.disconnect(),d.current=!1,N.observe(M.current))},[M,N]),o.useEffect(()=>(a({type:ce.RegisterDroppable,element:{id:r,key:l,disabled:n,node:M,rect:C,data:y}}),()=>a({type:ce.UnregisterDroppable,key:l,id:r})),[r]),o.useEffect(()=>{n!==x.current.disabled&&(a({type:ce.SetDroppableDisabled,id:r,key:l,disabled:n}),x.current.disabled=n)},[r,l,n,a]),{active:c,rect:C,isOver:u?.id===r,node:M,over:u,setNodeRef:L}}function en(e,t,n){const r=e.slice();return r.splice(n<0?r.length+n:n,0,r.splice(t,1)[0]),r}function Wi(e,t){return e.reduce((n,r,s)=>{const l=t.get(r);return l&&(n[s]=l),n},Array(e.length))}function Dt(e){return e!==null&&e>=0}function Gi(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}function Hi(e){return typeof e=="boolean"?{draggable:e,droppable:e}:e}const Et={scaleX:1,scaleY:1},Xi=e=>{var t;let{rects:n,activeNodeRect:r,activeIndex:s,overIndex:l,index:c}=e;const a=(t=n[s])!=null?t:r;if(!a)return null;const u=Ki(n,c,s);if(c===s){const g=n[l];return g?{x:s<l?g.left+g.width-(a.left+a.width):g.left-a.left,y:0,...Et}:null}return c>s&&c<=l?{x:-a.width-u,y:0,...Et}:c<s&&c>=l?{x:a.width+u,y:0,...Et}:{x:0,y:0,...Et}};function Ki(e,t,n){const r=e[t],s=e[t-1],l=e[t+1];return!r||!s&&!l?0:n<t?s?r.left-(s.left+s.width):l.left-(r.left+r.width):l?l.left-(r.left+r.width):r.left-(s.left+s.width)}const Gn=e=>{let{rects:t,activeIndex:n,overIndex:r,index:s}=e;const l=en(t,r,n),c=t[s],a=l[s];return!a||!c?null:{x:a.left-c.left,y:a.top-c.top,scaleX:a.width/c.width,scaleY:a.height/c.height}},Hn="Sortable",Xn=o.createContext({activeIndex:-1,containerId:Hn,disableTransforms:!1,items:[],overIndex:-1,useDragOverlay:!1,sortedRects:[],strategy:Gn,disabled:{draggable:!1,droppable:!1}});function Ji(e){let{children:t,id:n,items:r,strategy:s=Gn,disabled:l=!1}=e;const{active:c,dragOverlay:a,droppableRects:u,over:g,measureDroppableContainers:x}=Ri(),d=rt(Hn,n),C=a.rect!==null,m=o.useMemo(()=>r.map(L=>typeof L=="object"&&"id"in L?L.id:L),[r]),D=c!=null,p=c?m.indexOf(c.id):-1,S=g?m.indexOf(g.id):-1,E=o.useRef(m),w=!Gi(m,E.current),N=S!==-1&&p===-1||w,I=Hi(l);ke(()=>{w&&D&&x(m)},[w,m,D,x]),o.useEffect(()=>{E.current=m},[m]);const M=o.useMemo(()=>({activeIndex:p,containerId:d,disabled:I,disableTransforms:N,items:m,overIndex:S,useDragOverlay:C,sortedRects:Wi(m,u),strategy:s}),[p,d,I.draggable,I.droppable,N,m,S,u,C,s]);return o.createElement(Xn.Provider,{value:M},t)}const Qi=e=>{let{id:t,items:n,activeIndex:r,overIndex:s}=e;return en(n,r,s).indexOf(t)},Zi=e=>{let{containerId:t,isSorting:n,wasDragging:r,index:s,items:l,newIndex:c,previousItems:a,previousContainerId:u,transition:g}=e;return!g||!r||a!==l&&s===c?!1:n?!0:c!==s&&t===u},es={duration:200,easing:"ease"},Kn="transform",ts=it.Transition.toString({property:Kn,duration:0,easing:"linear"}),ns={roleDescription:"sortable"};function rs(e){let{disabled:t,index:n,node:r,rect:s}=e;const[l,c]=o.useState(null),a=o.useRef(n);return ke(()=>{if(!t&&n!==a.current&&r.current){const u=s.current;if(u){const g=He(r.current,{ignoreTransform:!0}),x={x:u.left-g.left,y:u.top-g.top,scaleX:u.width/g.width,scaleY:u.height/g.height};(x.x||x.y)&&c(x)}}n!==a.current&&(a.current=n)},[t,n,r,s]),o.useEffect(()=>{l&&c(null)},[l]),l}function is(e){let{animateLayoutChanges:t=Zi,attributes:n,disabled:r,data:s,getNewIndex:l=Qi,id:c,strategy:a,resizeObserverConfig:u,transition:g=es}=e;const{items:x,containerId:d,activeIndex:C,disabled:m,disableTransforms:D,sortedRects:p,overIndex:S,useDragOverlay:E,strategy:w}=o.useContext(Xn),N=ss(r,m),I=x.indexOf(c),M=o.useMemo(()=>({sortable:{containerId:d,index:I,items:x},...s}),[d,s,I,x]),L=o.useMemo(()=>x.slice(x.indexOf(c)),[x,c]),{rect:y,node:k,isOver:P,setNodeRef:_}=qi({id:c,data:M,disabled:N.droppable,resizeObserverConfig:{updateMeasurementsFor:L,...u}}),{active:z,activatorEvent:U,activeNodeRect:te,attributes:Q,setNodeRef:fe,listeners:he,isDragging:ee,over:R,setActivatorNodeRef:W,transform:ye}=zi({id:c,data:M,attributes:{...ns,...n},disabled:N.draggable}),b=wr(_,fe),f=!!z,V=f&&!D&&Dt(C)&&Dt(S),O=!E&&ee,le=O&&V?ye:null,G=V?le??(a??w)({rects:p,activeNodeRect:te,activeIndex:C,overIndex:S,index:I}):null,oe=Dt(C)&&Dt(S)?l({id:c,items:x,activeIndex:C,overIndex:S}):I,de=z?.id,v=o.useRef({activeId:de,items:x,newIndex:oe,containerId:d}),Z=x!==v.current.items,K=t({active:z,containerId:d,isDragging:ee,isSorting:f,id:c,index:I,items:x,newIndex:v.current.newIndex,previousItems:v.current.items,previousContainerId:v.current.containerId,transition:g,wasDragging:v.current.activeId!=null}),ne=rs({disabled:!K,index:I,node:k,rect:y});return o.useEffect(()=>{f&&v.current.newIndex!==oe&&(v.current.newIndex=oe),d!==v.current.containerId&&(v.current.containerId=d),x!==v.current.items&&(v.current.items=x)},[f,oe,d,x]),o.useEffect(()=>{if(de===v.current.activeId)return;if(de!=null&&v.current.activeId==null){v.current.activeId=de;return}const Ce=setTimeout(()=>{v.current.activeId=de},50);return()=>clearTimeout(Ce)},[de]),{active:z,activeIndex:C,attributes:Q,data:M,rect:y,index:I,newIndex:oe,items:x,isOver:P,isSorting:f,isDragging:ee,listeners:he,node:k,overIndex:S,over:R,setNodeRef:b,setActivatorNodeRef:W,setDroppableNodeRef:_,setDraggableNodeRef:fe,transform:ne??G,transition:Y()};function Y(){if(ne||Z&&v.current.newIndex===I)return ts;if(!(O&&!zt(U)||!g)&&(f||K))return it.Transition.toString({...g,property:Kn})}}function ss(e,t){var n,r;return typeof e=="boolean"?{draggable:e,droppable:!1}:{draggable:(n=e?.draggable)!=null?n:t.draggable,droppable:(r=e?.droppable)!=null?r:t.droppable}}B.Down,B.Right,B.Up,B.Left;const Tt={private:0,team:1,organization:2,public:3},ls=5,os=({id:e,disabled:t,children:n})=>{const{attributes:r,listeners:s,setNodeRef:l,transform:c,transition:a,isDragging:u}=is({id:e,disabled:t}),g={transform:it.Transform.toString(c),transition:a,zIndex:u?10:void 0,opacity:u?.5:void 0};return i.jsx(i.Fragment,{children:n({setNodeRef:l,style:g,listeners:s,attributes:r,isDragging:u})})},as=({views:e,activeViewId:t,onViewChange:n,viewTypeIcons:r={},config:s={},onAddView:l,onRenameView:c,onDuplicateView:a,onDeleteView:u,onSetDefaultView:g,onShareView:x,onSaveAsView:d,onPinView:C,onReorderViews:m,onChangeViewType:D,onConfigView:p,availableViewTypes:S,hasUnsavedChanges:E=!1,onResetChanges:w,className:N})=>{const{showAddButton:I=!0,inlineRename:M=!0,contextMenu:L=!0,reorderable:y=!1,maxVisibleTabs:k=6,showIndicators:P=!0,showSaveAsView:_=!0,showPinnedSection:z=!0,showVisibilityGroups:U=!1}=s,[te,Q]=o.useState(null),[fe,he]=o.useState(""),ee=o.useRef(null);o.useEffect(()=>{te&&ee.current&&(ee.current.focus(),ee.current.select())},[te]);const R=o.useCallback(v=>{if(!M||!c)return;const Z=e.find(K=>K.id===v);Z&&(Q(v),he(Z.label))},[M,c,e]),W=o.useCallback(()=>{te&&fe.trim()&&c&&c(te,fe.trim()),Q(null),he("")},[te,fe,c]),ye=o.useCallback(()=>{Q(null),he("")},[]),b=o.useMemo(()=>{const v=[...e];return v.sort((Z,K)=>{if(z){const ne=Z.isPinned?1:0,Y=K.isPinned?1:0;if(ne!==Y)return Y-ne}if(U){const ne=Tt[Z.visibility||"public"]??Tt.public,Y=Tt[K.visibility||"public"]??Tt.public;if(ne!==Y)return ne-Y}return 0}),v},[e,z,U]),f=b.slice(0,k),V=b.slice(k),O=Mr(jn(Kt,{activationConstraint:{distance:ls}}),jn(Ht)),le=o.useCallback(v=>{const{active:Z,over:K}=v;if(!K||Z.id===K.id||!m)return;const ne=b.findIndex(pe=>pe.id===Z.id),Y=b.findIndex(pe=>pe.id===K.id);if(ne===-1||Y===-1)return;const Ce=en(b,ne,Y);m(Ce.map(pe=>pe.id))},[b,m]),q=F.Table,G=o.useCallback(v=>{if(!U||v===0)return!1;const Z=f[v-1],K=f[v],ne=Y=>Y.visibility==="private";return ne(Z)&&!ne(K)},[U,f]),oe=(v,Z)=>{const K=v.id===t,ne=r[v.type]||q,Y=te===v.id,Ce=P&&(v.hasActiveFilters||v.hasActiveSort),pe=G(Z),Re=(re=>U?re.visibility==="private"?i.jsx(F.Lock,{"data-testid":`view-tab-visibility-${re.id}`,className:"h-3 w-3 text-muted-foreground shrink-0"}):re.visibility?i.jsx(F.Globe,{"data-testid":`view-tab-visibility-${re.id}`,className:"h-3 w-3 text-muted-foreground shrink-0"}):null:null)(v),Le=re=>i.jsxs("button",{"data-testid":`view-tab-${v.id}`,onClick:()=>!Y&&n(v.id),onDoubleClick:()=>R(v.id),className:h.cn("inline-flex items-center gap-1.5 px-3 py-2 text-sm font-medium border-b-2 transition-colors whitespace-nowrap relative",K?"border-primary text-primary":"border-transparent text-muted-foreground hover:text-foreground hover:border-border"),children:[y&&m&&i.jsx("span",{"data-testid":`view-tab-drag-handle-${v.id}`,className:"cursor-grab active:cursor-grabbing text-muted-foreground hover:text-foreground",...re?.listeners??{},...re?.attributes??{},children:i.jsx(F.GripVertical,{className:"h-3 w-3"})}),z&&v.isPinned&&i.jsx(F.Pin,{"data-testid":`view-tab-pin-indicator-${v.id}`,className:"h-3 w-3 text-primary shrink-0"}),Re,i.jsx(ne,{className:"h-3.5 w-3.5"}),Y?i.jsx(h.Input,{ref:ee,"data-testid":`view-tab-rename-input-${v.id}`,value:fe,onChange:H=>he(H.target.value),onBlur:W,onKeyDown:H=>{H.key==="Enter"&&W(),H.key==="Escape"&&ye()},className:"h-5 w-24 px-1 py-0 text-sm border-none focus-visible:ring-1",onClick:H=>H.stopPropagation()}):i.jsx("span",{children:v.label}),Ce&&i.jsxs(h.Tooltip,{children:[i.jsx(h.TooltipTrigger,{asChild:!0,children:i.jsx("span",{"data-testid":`view-tab-indicator-${v.id}`,className:"ml-1 inline-flex items-center justify-center h-4 min-w-[16px] rounded-full bg-primary/15 text-[10px] font-medium text-primary px-1 shrink-0",children:[v.hasActiveFilters&&"F",v.hasActiveSort&&"S"].filter(Boolean).join("")})}),i.jsx(h.TooltipContent,{side:"bottom",className:"text-xs",children:[v.hasActiveFilters&&"Active filters",v.hasActiveSort&&"Active sort"].filter(Boolean).join(", ")})]}),v.isDefault&&i.jsx(F.Star,{className:"h-3 w-3 text-amber-500 fill-amber-500 shrink-0"}),K&&p&&i.jsx("button",{type:"button","data-testid":`view-tab-config-${v.id}`,className:"ml-0.5 h-4 w-4 flex items-center justify-center rounded hover:bg-accent shrink-0 opacity-60 hover:opacity-100 transition-opacity",onClick:H=>{H.stopPropagation(),p(v.id)},"aria-label":`Configure ${v.label}`,children:i.jsx(F.Settings2,{className:"h-3 w-3"})})]}),je=re=>!L||Y?re:i.jsxs(h.ContextMenu,{children:[i.jsx(h.ContextMenuTrigger,{asChild:!0,children:re}),i.jsxs(h.ContextMenuContent,{children:[c&&i.jsxs(h.ContextMenuItem,{"data-testid":`context-menu-rename-${v.id}`,onClick:()=>R(v.id),children:[i.jsx(F.Pencil,{className:"h-4 w-4 mr-2"})," Rename"]}),a&&i.jsxs(h.ContextMenuItem,{"data-testid":`context-menu-duplicate-${v.id}`,onClick:()=>a(v.id),children:[i.jsx(F.Copy,{className:"h-4 w-4 mr-2"})," Duplicate View"]}),x&&i.jsxs(h.ContextMenuItem,{"data-testid":`context-menu-share-${v.id}`,onClick:()=>x(v.id),children:[i.jsx(F.Share2,{className:"h-4 w-4 mr-2"})," Share View"]}),g&&i.jsxs(h.ContextMenuItem,{"data-testid":`context-menu-default-${v.id}`,onClick:()=>g(v.id),children:[i.jsx(F.Star,{className:"h-4 w-4 mr-2"})," Set as Default"]}),C&&i.jsx(h.ContextMenuItem,{"data-testid":`context-menu-pin-${v.id}`,onClick:()=>C(v.id,!v.isPinned),children:v.isPinned?i.jsxs(i.Fragment,{children:[i.jsx(F.PinOff,{className:"h-4 w-4 mr-2"})," Unpin View"]}):i.jsxs(i.Fragment,{children:[i.jsx(F.Pin,{className:"h-4 w-4 mr-2"})," Pin View"]})}),D&&S&&S.length>0&&i.jsxs(i.Fragment,{children:[i.jsx(h.ContextMenuSeparator,{}),i.jsxs(h.ContextMenuSub,{children:[i.jsxs(h.ContextMenuSubTrigger,{"data-testid":`context-menu-change-type-${v.id}`,children:[i.jsx(F.LayoutGrid,{className:"h-4 w-4 mr-2"})," Change View Type"]}),i.jsx(h.ContextMenuSubContent,{"data-testid":`context-menu-type-submenu-${v.id}`,children:S.map(H=>{const Fe=r[H.type]||q;return i.jsxs(h.ContextMenuItem,{"data-testid":`context-menu-type-${v.id}-${H.type}`,disabled:H.type===v.type,onClick:()=>D(v.id,H.type),children:[i.jsx(Fe,{className:"h-4 w-4 mr-2"}),i.jsxs("div",{className:"flex flex-col",children:[i.jsx("span",{children:H.label}),H.description&&i.jsx("span",{className:"text-xs text-muted-foreground",children:H.description})]})]},H.type)})})]})]}),u&&i.jsxs(i.Fragment,{children:[i.jsx(h.ContextMenuSeparator,{}),i.jsxs(h.ContextMenuItem,{"data-testid":`context-menu-delete-${v.id}`,onClick:()=>u(v.id),className:"text-destructive focus:text-destructive",children:[i.jsx(F.Trash2,{className:"h-4 w-4 mr-2"})," Delete View"]})]})]})]});return y&&m?i.jsxs(o.Fragment,{children:[pe&&i.jsx("div",{"data-testid":"view-tab-visibility-separator",className:"w-px h-5 bg-border mx-1 self-center shrink-0"}),i.jsx(os,{id:v.id,children:({setNodeRef:re,style:H,listeners:Fe,attributes:Xe,isDragging:dt})=>i.jsx("div",{ref:re,style:H,className:h.cn("flex",dt&&"z-10"),children:je(Le({listeners:Fe,attributes:Xe}))})})]},v.id):i.jsxs(o.Fragment,{children:[pe&&i.jsx("div",{"data-testid":"view-tab-visibility-separator",className:"w-px h-5 bg-border mx-1 self-center shrink-0"}),je(Le())]},v.id)},de=i.jsx(i.Fragment,{children:f.map((v,Z)=>oe(v,Z))});return i.jsx(h.TooltipProvider,{children:i.jsxs("div",{"data-testid":"view-tab-bar",className:h.cn("flex items-center gap-0.5 -mb-px",N),children:[y&&m?i.jsx(_i,{sensors:O,collisionDetection:$r,onDragEnd:le,children:i.jsx(Ji,{items:f.map(v=>v.id),strategy:Xi,children:i.jsx("div",{"data-testid":"view-tab-sortable-container",className:"flex items-center gap-0.5",children:de})})}):de,V.length>0&&i.jsxs(h.DropdownMenu,{children:[i.jsx(h.DropdownMenuTrigger,{asChild:!0,children:i.jsxs("button",{"data-testid":"view-tab-overflow",className:"inline-flex items-center gap-1 px-2 py-2 text-sm text-muted-foreground hover:text-foreground transition-colors",children:[i.jsx(F.MoreHorizontal,{className:"h-4 w-4"}),i.jsxs("span",{className:"text-xs",children:[V.length," more"]})]})}),i.jsx(h.DropdownMenuContent,{align:"end",children:V.map(v=>{const Z=r[v.type]||q;return i.jsxs(h.DropdownMenuItem,{"data-testid":`view-tab-overflow-${v.id}`,onClick:()=>n(v.id),children:[v.isPinned&&i.jsx(F.Pin,{className:"h-3 w-3 mr-1 text-primary shrink-0"}),i.jsx(Z,{className:"h-4 w-4 mr-2"}),v.label,P&&(v.hasActiveFilters||v.hasActiveSort)&&i.jsx("span",{className:"ml-auto inline-flex items-center justify-center h-4 min-w-[16px] rounded-full bg-primary/15 text-[10px] font-medium text-primary px-1",children:[v.hasActiveFilters&&"F",v.hasActiveSort&&"S"].filter(Boolean).join("")})]},v.id)})})]}),I&&l&&i.jsxs(h.Tooltip,{children:[i.jsx(h.TooltipTrigger,{asChild:!0,children:i.jsx("button",{"data-testid":"view-tab-add",onClick:l,className:"inline-flex items-center px-2 py-2 text-muted-foreground hover:text-foreground transition-colors",children:i.jsx(F.Plus,{className:"h-4 w-4"})})}),i.jsx(h.TooltipContent,{children:"Add View"})]}),_&&E&&i.jsxs("div",{"data-testid":"view-tab-save-as",className:"flex items-center gap-1 ml-2 text-xs text-amber-600 dark:text-amber-400",children:[i.jsx(F.Save,{className:"h-3.5 w-3.5"}),i.jsx("span",{className:"hidden sm:inline",children:"Unsaved changes"}),d&&i.jsx(h.Button,{variant:"ghost",size:"sm","data-testid":"view-tab-save-as-btn",className:"h-6 px-2 text-xs",onClick:d,children:"Save as View"}),w&&i.jsx(h.Button,{variant:"ghost",size:"sm","data-testid":"view-tab-reset-btn",className:"h-6 px-2 text-xs",onClick:w,children:"Reset"})]})]})})};let Jn=o.createContext(null);try{const e=require("@object-ui/react");e.SchemaRendererContext&&(Jn=e.SchemaRendererContext)}catch{}const Qn=({schema:e})=>{const n=o.useContext(Jn)?.dataSource??null;return i.jsx(pn,{schema:e,dataSource:n})};Ve.ComponentRegistry.register("object-view",Qn,{namespace:"plugin-view",label:"Object View",category:"view",icon:"LayoutDashboard",inputs:[{name:"objectName",type:"string",label:"Object Name",required:!0},{name:"title",type:"string",label:"Title"},{name:"description",type:"string",label:"Description"},{name:"layout",type:"enum",label:"Form Layout",enum:["drawer","modal","page"]},{name:"defaultViewType",type:"enum",label:"Default View Type",enum:["grid","kanban","gallery","calendar","timeline","gantt","map"]},{name:"defaultListView",type:"string",label:"Default Named View"},{name:"showSearch",type:"boolean",label:"Show Search"},{name:"showFilters",type:"boolean",label:"Show Filters"},{name:"showCreate",type:"boolean",label:"Show Create Button"},{name:"showRefresh",type:"boolean",label:"Show Refresh Button"},{name:"showViewSwitcher",type:"boolean",label:"Show View Switcher"},{name:"listViews",type:"object",label:"Named List Views"},{name:"navigation",type:"object",label:"Navigation Config"},{name:"searchableFields",type:"array",label:"Searchable Fields"},{name:"filterableFields",type:"array",label:"Filterable Fields"}],defaultProps:{layout:"drawer",defaultViewType:"grid",showSearch:!0,showFilters:!0,showCreate:!0,showRefresh:!0,showViewSwitcher:!0}}),Ve.ComponentRegistry.register("view",Qn,{namespace:"plugin-view",label:"View",category:"view"}),Ve.ComponentRegistry.register("view-switcher",Ot,{namespace:"view",label:"View Switcher",category:"view",icon:"LayoutGrid",inputs:[{name:"views",type:"array",label:"Views",required:!0},{name:"defaultView",type:"string",label:"Default View"},{name:"activeView",type:"string",label:"Active View"},{name:"variant",type:"enum",label:"Variant",enum:["tabs","buttons","dropdown"]},{name:"position",type:"enum",label:"Position",enum:["top","bottom","left","right"]},{name:"persistPreference",type:"boolean",label:"Persist Preference"},{name:"storageKey",type:"string",label:"Storage Key"},{name:"onViewChange",type:"string",label:"On View Change Event"}],defaultProps:{variant:"tabs",position:"top",defaultView:"grid",views:[{type:"grid",label:"Grid",schema:{type:"text",content:"Grid view"}},{type:"list",label:"List",schema:{type:"text",content:"List view"}}]}}),Ve.ComponentRegistry.register("filter-ui",gn,{namespace:"view",label:"Filter UI",category:"view",icon:"SlidersHorizontal",inputs:[{name:"filters",type:"array",label:"Filters",required:!0},{name:"values",type:"object",label:"Values"},{name:"onChange",type:"string",label:"On Change Event"},{name:"showClear",type:"boolean",label:"Show Clear Button"},{name:"showApply",type:"boolean",label:"Show Apply Button"},{name:"layout",type:"enum",label:"Layout",enum:["inline","popover","drawer"]}],defaultProps:{layout:"inline",showApply:!1,showClear:!0,filters:[{field:"name",label:"Name",type:"text",placeholder:"Search name"},{field:"status",label:"Status",type:"select",options:[{label:"Open",value:"open"},{label:"Closed",value:"closed"}]},{field:"created_at",label:"Created",type:"date"}]}}),Ve.ComponentRegistry.register("sort-ui",vn,{namespace:"view",label:"Sort UI",category:"view",icon:"ArrowUpDown",inputs:[{name:"fields",type:"array",label:"Fields",required:!0},{name:"sort",type:"array",label:"Sort"},{name:"onChange",type:"string",label:"On Change Event"},{name:"multiple",type:"boolean",label:"Allow Multiple"},{name:"variant",type:"enum",label:"Variant",enum:["dropdown","buttons"]}],defaultProps:{variant:"dropdown",multiple:!0,fields:[{field:"name",label:"Name"},{field:"created_at",label:"Created At"}],sort:[{field:"name",direction:"asc"}]}}),Ve.ComponentRegistry.register("shared-view-link",xn,{namespace:"view",label:"Shared View Link",category:"view",icon:"Share2",inputs:[{name:"objectName",type:"string",label:"Object Name",required:!0},{name:"viewId",type:"string",label:"View ID"},{name:"baseUrl",type:"string",label:"Base URL"}],defaultProps:{objectName:"objects",viewId:"default"}});const cs=({schema:e,className:t,children:n,dataSource:r,...s})=>{const l=e.props?.columns?{display:"grid",gridTemplateColumns:`repeat(${e.props.columns}, 1fr)`,gap:"1rem"}:void 0;return i.jsx("div",{className:t,style:l,...s,children:n})};Ve.ComponentRegistry.register("view:simple",cs,{namespace:"plugin-view",label:"Simple View",category:"view"}),ae.FilterUI=gn,ae.ObjectView=pn,ae.SharedViewLink=xn,ae.SortUI=vn,ae.ViewSwitcher=Ot,ae.ViewTabBar=as,Object.defineProperty(ae,Symbol.toStringTag,{value:"Module"})}));
|
|
10
|
+
`},Or={onDragStart(e){let{active:t}=e;return"Picked up draggable item "+t.id+"."},onDragOver(e){let{active:t,over:n}=e;return n?"Draggable item "+t.id+" was moved over droppable area "+n.id+".":"Draggable item "+t.id+" is no longer over a droppable area."},onDragEnd(e){let{active:t,over:n}=e;return n?"Draggable item "+t.id+" was dropped over droppable area "+n.id:"Draggable item "+t.id+" was dropped."},onDragCancel(e){let{active:t}=e;return"Dragging was cancelled. Draggable item "+t.id+" was dropped."}};function Fr(e){let{announcements:t=Or,container:n,hiddenTextDescribedById:r,screenReaderInstructions:s=Ir}=e;const{announce:l,announcement:c}=Tr(),a=rt("DndLiveRegion"),[f,g]=o.useState(!1);if(o.useEffect(()=>{g(!0)},[]),kr(o.useMemo(()=>({onDragStart(d){let{active:C}=d;l(t.onDragStart({active:C}))},onDragMove(d){let{active:C,over:m}=d;t.onDragMove&&l(t.onDragMove({active:C,over:m}))},onDragOver(d){let{active:C,over:m}=d;l(t.onDragOver({active:C,over:m}))},onDragEnd(d){let{active:C,over:m}=d;l(t.onDragEnd({active:C,over:m}))},onDragCancel(d){let{active:C,over:m}=d;l(t.onDragCancel({active:C,over:m}))}}),[l,t])),!f)return null;const x=o.createElement(o.Fragment,null,o.createElement(Dr,{id:r,value:s.draggable}),o.createElement(Er,{id:a,announcement:c}));return n?Je.createPortal(x,n):x}var ce;(function(e){e.DragStart="dragStart",e.DragMove="dragMove",e.DragEnd="dragEnd",e.DragCancel="dragCancel",e.DragOver="dragOver",e.RegisterDroppable="registerDroppable",e.SetDroppableDisabled="setDroppableDisabled",e.UnregisterDroppable="unregisterDroppable"})(ce||(ce={}));function yt(){}function jn(e,t){return o.useMemo(()=>({sensor:e,options:t??{}}),[e,t])}function Mr(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return o.useMemo(()=>[...t].filter(r=>r!=null),[...t])}const Te=Object.freeze({x:0,y:0});function Vr(e,t){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))}function Pr(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return n-r}function Lr(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return r-n}function _r(e,t){if(!e||e.length===0)return null;const[n]=e;return n[t]}function Sn(e,t,n){return t===void 0&&(t=e.left),n===void 0&&(n=e.top),{x:t+e.width*.5,y:n+e.height*.5}}const $r=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e;const s=Sn(t,t.left,t.top),l=[];for(const c of r){const{id:a}=c,f=n.get(a);if(f){const g=Vr(Sn(f),s);l.push({id:a,data:{droppableContainer:c,value:g}})}}return l.sort(Pr)};function Br(e,t){const n=Math.max(t.top,e.top),r=Math.max(t.left,e.left),s=Math.min(t.left+t.width,e.left+e.width),l=Math.min(t.top+t.height,e.top+e.height),c=s-r,a=l-n;if(r<s&&n<l){const f=t.width*t.height,g=e.width*e.height,x=c*a,d=x/(f+g-x);return Number(d.toFixed(4))}return 0}const zr=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e;const s=[];for(const l of r){const{id:c}=l,a=n.get(c);if(a){const f=Br(a,t);f>0&&s.push({id:c,data:{droppableContainer:l,value:f}})}}return s.sort(Lr)};function Rr(e,t,n){return{...e,scaleX:t&&n?t.width/n.width:1,scaleY:t&&n?t.height/n.height:1}}function Nn(e,t){return e&&t?{x:e.left-t.left,y:e.top-t.top}:Te}function Ur(e){return function(n){for(var r=arguments.length,s=new Array(r>1?r-1:0),l=1;l<r;l++)s[l-1]=arguments[l];return s.reduce((c,a)=>({...c,top:c.top+e*a.y,bottom:c.bottom+e*a.y,left:c.left+e*a.x,right:c.right+e*a.x}),{...n})}}const Yr=Ur(1);function qr(e){if(e.startsWith("matrix3d(")){const t=e.slice(9,-1).split(/, /);return{x:+t[12],y:+t[13],scaleX:+t[0],scaleY:+t[5]}}else if(e.startsWith("matrix(")){const t=e.slice(7,-1).split(/, /);return{x:+t[4],y:+t[5],scaleX:+t[0],scaleY:+t[3]}}return null}function Wr(e,t,n){const r=qr(t);if(!r)return e;const{scaleX:s,scaleY:l,x:c,y:a}=r,f=e.left-c-(1-s)*parseFloat(n),g=e.top-a-(1-l)*parseFloat(n.slice(n.indexOf(" ")+1)),x=s?e.width/s:e.width,d=l?e.height/l:e.height;return{width:x,height:d,top:g,right:f+x,bottom:g+d,left:f}}const Gr={ignoreTransform:!1};function He(e,t){t===void 0&&(t=Gr);let n=e.getBoundingClientRect();if(t.ignoreTransform){const{transform:g,transformOrigin:x}=we(e).getComputedStyle(e);g&&(n=Wr(n,g,x))}const{top:r,left:s,width:l,height:c,bottom:a,right:f}=n;return{top:r,left:s,width:l,height:c,bottom:a,right:f}}function Dn(e){return He(e,{ignoreTransform:!0})}function Hr(e){const t=e.innerWidth,n=e.innerHeight;return{top:0,left:0,right:t,bottom:n,width:t,height:n}}function Xr(e,t){return t===void 0&&(t=we(e).getComputedStyle(e)),t.position==="fixed"}function Kr(e,t){t===void 0&&(t=we(e).getComputedStyle(e));const n=/(auto|scroll|overlay)/;return["overflow","overflowX","overflowY"].some(s=>{const l=t[s];return typeof l=="string"?n.test(l):!1})}function Ut(e,t){const n=[];function r(s){if(t!=null&&n.length>=t||!s)return n;if(Lt(s)&&s.scrollingElement!=null&&!n.includes(s.scrollingElement))return n.push(s.scrollingElement),n;if(!et(s)||mn(s)||n.includes(s))return n;const l=we(e).getComputedStyle(s);return s!==e&&Kr(s,l)&&n.push(s),Xr(s,l)?n:r(s.parentNode)}return e?r(e):n}function En(e){const[t]=Ut(e,1);return t??null}function Yt(e){return!xt||!e?null:qe(e)?e:Pt(e)?Lt(e)||e===We(e).scrollingElement?window:et(e)?e:null:null}function Tn(e){return qe(e)?e.scrollX:e.scrollLeft}function kn(e){return qe(e)?e.scrollY:e.scrollTop}function qt(e){return{x:Tn(e),y:kn(e)}}var ue;(function(e){e[e.Forward=1]="Forward",e[e.Backward=-1]="Backward"})(ue||(ue={}));function An(e){return!xt||!e?!1:e===document.scrollingElement}function In(e){const t={x:0,y:0},n=An(e)?{height:window.innerHeight,width:window.innerWidth}:{height:e.clientHeight,width:e.clientWidth},r={x:e.scrollWidth-n.width,y:e.scrollHeight-n.height},s=e.scrollTop<=t.y,l=e.scrollLeft<=t.x,c=e.scrollTop>=r.y,a=e.scrollLeft>=r.x;return{isTop:s,isLeft:l,isBottom:c,isRight:a,maxScroll:r,minScroll:t}}const Jr={x:.2,y:.2};function Qr(e,t,n,r,s){let{top:l,left:c,right:a,bottom:f}=n;r===void 0&&(r=10),s===void 0&&(s=Jr);const{isTop:g,isBottom:x,isLeft:d,isRight:C}=In(e),m={x:0,y:0},D={x:0,y:0},p={height:t.height*s.y,width:t.width*s.x};return!g&&l<=t.top+p.height?(m.y=ue.Backward,D.y=r*Math.abs((t.top+p.height-l)/p.height)):!x&&f>=t.bottom-p.height&&(m.y=ue.Forward,D.y=r*Math.abs((t.bottom-p.height-f)/p.height)),!C&&a>=t.right-p.width?(m.x=ue.Forward,D.x=r*Math.abs((t.right-p.width-a)/p.width)):!d&&c<=t.left+p.width&&(m.x=ue.Backward,D.x=r*Math.abs((t.left+p.width-c)/p.width)),{direction:m,speed:D}}function Zr(e){if(e===document.scrollingElement){const{innerWidth:l,innerHeight:c}=window;return{top:0,left:0,right:l,bottom:c,width:l,height:c}}const{top:t,left:n,right:r,bottom:s}=e.getBoundingClientRect();return{top:t,left:n,right:r,bottom:s,width:e.clientWidth,height:e.clientHeight}}function On(e){return e.reduce((t,n)=>Ge(t,qt(n)),Te)}function ei(e){return e.reduce((t,n)=>t+Tn(n),0)}function ti(e){return e.reduce((t,n)=>t+kn(n),0)}function ni(e,t){if(t===void 0&&(t=He),!e)return;const{top:n,left:r,bottom:s,right:l}=t(e);En(e)&&(s<=0||l<=0||n>=window.innerHeight||r>=window.innerWidth)&&e.scrollIntoView({block:"center",inline:"center"})}const ri=[["x",["left","right"],ei],["y",["top","bottom"],ti]];class Wt{constructor(t,n){this.rect=void 0,this.width=void 0,this.height=void 0,this.top=void 0,this.bottom=void 0,this.right=void 0,this.left=void 0;const r=Ut(n),s=On(r);this.rect={...t},this.width=t.width,this.height=t.height;for(const[l,c,a]of ri)for(const f of c)Object.defineProperty(this,f,{get:()=>{const g=a(r),x=s[l]-g;return this.rect[f]+x},enumerable:!0});Object.defineProperty(this,"rect",{enumerable:!1})}}class st{constructor(t){this.target=void 0,this.listeners=[],this.removeAll=()=>{this.listeners.forEach(n=>{var r;return(r=this.target)==null?void 0:r.removeEventListener(...n)})},this.target=t}add(t,n,r){var s;(s=this.target)==null||s.addEventListener(t,n,r),this.listeners.push([t,n,r])}}function ii(e){const{EventTarget:t}=we(e);return e instanceof t?e:We(e)}function Gt(e,t){const n=Math.abs(e.x),r=Math.abs(e.y);return typeof t=="number"?Math.sqrt(n**2+r**2)>t:"x"in t&&"y"in t?n>t.x&&r>t.y:"x"in t?n>t.x:"y"in t?r>t.y:!1}var De;(function(e){e.Click="click",e.DragStart="dragstart",e.Keydown="keydown",e.ContextMenu="contextmenu",e.Resize="resize",e.SelectionChange="selectionchange",e.VisibilityChange="visibilitychange"})(De||(De={}));function Fn(e){e.preventDefault()}function si(e){e.stopPropagation()}var B;(function(e){e.Space="Space",e.Down="ArrowDown",e.Right="ArrowRight",e.Left="ArrowLeft",e.Up="ArrowUp",e.Esc="Escape",e.Enter="Enter",e.Tab="Tab"})(B||(B={}));const Mn={start:[B.Space,B.Enter],cancel:[B.Esc],end:[B.Space,B.Enter,B.Tab]},li=(e,t)=>{let{currentCoordinates:n}=t;switch(e.code){case B.Right:return{...n,x:n.x+25};case B.Left:return{...n,x:n.x-25};case B.Down:return{...n,y:n.y+25};case B.Up:return{...n,y:n.y-25}}};class Ht{constructor(t){this.props=void 0,this.autoScrollEnabled=!1,this.referenceCoordinates=void 0,this.listeners=void 0,this.windowListeners=void 0,this.props=t;const{event:{target:n}}=t;this.props=t,this.listeners=new st(We(n)),this.windowListeners=new st(we(n)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(De.Resize,this.handleCancel),this.windowListeners.add(De.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(De.Keydown,this.handleKeyDown))}handleStart(){const{activeNode:t,onStart:n}=this.props,r=t.node.current;r&&ni(r),n(Te)}handleKeyDown(t){if(zt(t)){const{active:n,context:r,options:s}=this.props,{keyboardCodes:l=Mn,coordinateGetter:c=li,scrollBehavior:a="smooth"}=s,{code:f}=t;if(l.end.includes(f)){this.handleEnd(t);return}if(l.cancel.includes(f)){this.handleCancel(t);return}const{collisionRect:g}=r.current,x=g?{x:g.left,y:g.top}:Te;this.referenceCoordinates||(this.referenceCoordinates=x);const d=c(t,{active:n,context:r.current,currentCoordinates:x});if(d){const C=wt(d,x),m={x:0,y:0},{scrollableAncestors:D}=r.current;for(const p of D){const S=t.code,{isTop:E,isRight:w,isLeft:N,isBottom:I,maxScroll:M,minScroll:L}=In(p),y=Zr(p),k={x:Math.min(S===B.Right?y.right-y.width/2:y.right,Math.max(S===B.Right?y.left:y.left+y.width/2,d.x)),y:Math.min(S===B.Down?y.bottom-y.height/2:y.bottom,Math.max(S===B.Down?y.top:y.top+y.height/2,d.y))},P=S===B.Right&&!w||S===B.Left&&!N,_=S===B.Down&&!I||S===B.Up&&!E;if(P&&k.x!==d.x){const z=p.scrollLeft+C.x,U=S===B.Right&&z<=M.x||S===B.Left&&z>=L.x;if(U&&!C.y){p.scrollTo({left:z,behavior:a});return}U?m.x=p.scrollLeft-z:m.x=S===B.Right?p.scrollLeft-M.x:p.scrollLeft-L.x,m.x&&p.scrollBy({left:-m.x,behavior:a});break}else if(_&&k.y!==d.y){const z=p.scrollTop+C.y,U=S===B.Down&&z<=M.y||S===B.Up&&z>=L.y;if(U&&!C.x){p.scrollTo({top:z,behavior:a});return}U?m.y=p.scrollTop-z:m.y=S===B.Down?p.scrollTop-M.y:p.scrollTop-L.y,m.y&&p.scrollBy({top:-m.y,behavior:a});break}}this.handleMove(t,Ge(wt(d,this.referenceCoordinates),m))}}}handleMove(t,n){const{onMove:r}=this.props;t.preventDefault(),r(n)}handleEnd(t){const{onEnd:n}=this.props;t.preventDefault(),this.detach(),n()}handleCancel(t){const{onCancel:n}=this.props;t.preventDefault(),this.detach(),n()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}}Ht.activators=[{eventName:"onKeyDown",handler:(e,t,n)=>{let{keyboardCodes:r=Mn,onActivation:s}=t,{active:l}=n;const{code:c}=e.nativeEvent;if(r.start.includes(c)){const a=l.activatorNode.current;return a&&e.target!==a?!1:(e.preventDefault(),s?.({event:e.nativeEvent}),!0)}return!1}}];function Vn(e){return!!(e&&"distance"in e)}function Pn(e){return!!(e&&"delay"in e)}class Xt{constructor(t,n,r){var s;r===void 0&&(r=ii(t.event.target)),this.props=void 0,this.events=void 0,this.autoScrollEnabled=!0,this.document=void 0,this.activated=!1,this.initialCoordinates=void 0,this.timeoutId=null,this.listeners=void 0,this.documentListeners=void 0,this.windowListeners=void 0,this.props=t,this.events=n;const{event:l}=t,{target:c}=l;this.props=t,this.events=n,this.document=We(c),this.documentListeners=new st(this.document),this.listeners=new st(r),this.windowListeners=new st(we(c)),this.initialCoordinates=(s=Rt(l))!=null?s:Te,this.handleStart=this.handleStart.bind(this),this.handleMove=this.handleMove.bind(this),this.handleEnd=this.handleEnd.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.removeTextSelection=this.removeTextSelection.bind(this),this.attach()}attach(){const{events:t,props:{options:{activationConstraint:n,bypassActivationConstraint:r}}}=this;if(this.listeners.add(t.move.name,this.handleMove,{passive:!1}),this.listeners.add(t.end.name,this.handleEnd),t.cancel&&this.listeners.add(t.cancel.name,this.handleCancel),this.windowListeners.add(De.Resize,this.handleCancel),this.windowListeners.add(De.DragStart,Fn),this.windowListeners.add(De.VisibilityChange,this.handleCancel),this.windowListeners.add(De.ContextMenu,Fn),this.documentListeners.add(De.Keydown,this.handleKeydown),n){if(r!=null&&r({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(Pn(n)){this.timeoutId=setTimeout(this.handleStart,n.delay),this.handlePending(n);return}if(Vn(n)){this.handlePending(n);return}}this.handleStart()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll(),setTimeout(this.documentListeners.removeAll,50),this.timeoutId!==null&&(clearTimeout(this.timeoutId),this.timeoutId=null)}handlePending(t,n){const{active:r,onPending:s}=this.props;s(r,t,this.initialCoordinates,n)}handleStart(){const{initialCoordinates:t}=this,{onStart:n}=this.props;t&&(this.activated=!0,this.documentListeners.add(De.Click,si,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(De.SelectionChange,this.removeTextSelection),n(t))}handleMove(t){var n;const{activated:r,initialCoordinates:s,props:l}=this,{onMove:c,options:{activationConstraint:a}}=l;if(!s)return;const f=(n=Rt(t))!=null?n:Te,g=wt(s,f);if(!r&&a){if(Vn(a)){if(a.tolerance!=null&&Gt(g,a.tolerance))return this.handleCancel();if(Gt(g,a.distance))return this.handleStart()}if(Pn(a)&&Gt(g,a.tolerance))return this.handleCancel();this.handlePending(a,g);return}t.cancelable&&t.preventDefault(),c(f)}handleEnd(){const{onAbort:t,onEnd:n}=this.props;this.detach(),this.activated||t(this.props.active),n()}handleCancel(){const{onAbort:t,onCancel:n}=this.props;this.detach(),this.activated||t(this.props.active),n()}handleKeydown(t){t.code===B.Esc&&this.handleCancel()}removeTextSelection(){var t;(t=this.document.getSelection())==null||t.removeAllRanges()}}const oi={cancel:{name:"pointercancel"},move:{name:"pointermove"},end:{name:"pointerup"}};class Kt extends Xt{constructor(t){const{event:n}=t,r=We(n.target);super(t,oi,r)}}Kt.activators=[{eventName:"onPointerDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return!n.isPrimary||n.button!==0?!1:(r?.({event:n}),!0)}}];const ai={move:{name:"mousemove"},end:{name:"mouseup"}};var Jt;(function(e){e[e.RightClick=2]="RightClick"})(Jt||(Jt={}));class ci extends Xt{constructor(t){super(t,ai,We(t.event.target))}}ci.activators=[{eventName:"onMouseDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return n.button===Jt.RightClick?!1:(r?.({event:n}),!0)}}];const Qt={cancel:{name:"touchcancel"},move:{name:"touchmove"},end:{name:"touchend"}};class di extends Xt{constructor(t){super(t,Qt)}static setup(){return window.addEventListener(Qt.move.name,t,{capture:!1,passive:!1}),function(){window.removeEventListener(Qt.move.name,t)};function t(){}}}di.activators=[{eventName:"onTouchStart",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;const{touches:s}=n;return s.length>1?!1:(r?.({event:n}),!0)}}];var lt;(function(e){e[e.Pointer=0]="Pointer",e[e.DraggableRect=1]="DraggableRect"})(lt||(lt={}));var Ct;(function(e){e[e.TreeOrder=0]="TreeOrder",e[e.ReversedTreeOrder=1]="ReversedTreeOrder"})(Ct||(Ct={}));function ui(e){let{acceleration:t,activator:n=lt.Pointer,canScroll:r,draggingRect:s,enabled:l,interval:c=5,order:a=Ct.TreeOrder,pointerCoordinates:f,scrollableAncestors:g,scrollableAncestorRects:x,delta:d,threshold:C}=e;const m=hi({delta:d,disabled:!l}),[D,p]=yr(),S=o.useRef({x:0,y:0}),E=o.useRef({x:0,y:0}),w=o.useMemo(()=>{switch(n){case lt.Pointer:return f?{top:f.y,bottom:f.y,left:f.x,right:f.x}:null;case lt.DraggableRect:return s}},[n,s,f]),N=o.useRef(null),I=o.useCallback(()=>{const L=N.current;if(!L)return;const y=S.current.x*E.current.x,k=S.current.y*E.current.y;L.scrollBy(y,k)},[]),M=o.useMemo(()=>a===Ct.TreeOrder?[...g].reverse():g,[a,g]);o.useEffect(()=>{if(!l||!g.length||!w){p();return}for(const L of M){if(r?.(L)===!1)continue;const y=g.indexOf(L),k=x[y];if(!k)continue;const{direction:P,speed:_}=Qr(L,k,w,t,C);for(const z of["x","y"])m[z][P[z]]||(_[z]=0,P[z]=0);if(_.x>0||_.y>0){p(),N.current=L,D(I,c),S.current=_,E.current=P;return}}S.current={x:0,y:0},E.current={x:0,y:0},p()},[t,I,r,p,l,c,JSON.stringify(w),JSON.stringify(m),D,g,M,x,JSON.stringify(C)])}const fi={x:{[ue.Backward]:!1,[ue.Forward]:!1},y:{[ue.Backward]:!1,[ue.Forward]:!1}};function hi(e){let{delta:t,disabled:n}=e;const r=$t(t);return nt(s=>{if(n||!r||!s)return fi;const l={x:Math.sign(t.x-r.x),y:Math.sign(t.y-r.y)};return{x:{[ue.Backward]:s.x[ue.Backward]||l.x===-1,[ue.Forward]:s.x[ue.Forward]||l.x===1},y:{[ue.Backward]:s.y[ue.Backward]||l.y===-1,[ue.Forward]:s.y[ue.Forward]||l.y===1}}},[n,t,r])}function pi(e,t){const n=t!=null?e.get(t):void 0,r=n?n.node.current:null;return nt(s=>{var l;return t==null?null:(l=r??s)!=null?l:null},[r,t])}function gi(e,t){return o.useMemo(()=>e.reduce((n,r)=>{const{sensor:s}=r,l=s.activators.map(c=>({eventName:c.eventName,handler:t(c.handler,r)}));return[...n,...l]},[]),[e,t])}var ot;(function(e){e[e.Always=0]="Always",e[e.BeforeDragging=1]="BeforeDragging",e[e.WhileDragging=2]="WhileDragging"})(ot||(ot={}));var Zt;(function(e){e.Optimized="optimized"})(Zt||(Zt={}));const Ln=new Map;function bi(e,t){let{dragging:n,dependencies:r,config:s}=t;const[l,c]=o.useState(null),{frequency:a,measure:f,strategy:g}=s,x=o.useRef(e),d=S(),C=tt(d),m=o.useCallback(function(E){E===void 0&&(E=[]),!C.current&&c(w=>w===null?E:w.concat(E.filter(N=>!w.includes(N))))},[C]),D=o.useRef(null),p=nt(E=>{if(d&&!n)return Ln;if(!E||E===Ln||x.current!==e||l!=null){const w=new Map;for(let N of e){if(!N)continue;if(l&&l.length>0&&!l.includes(N.id)&&N.rect.current){w.set(N.id,N.rect.current);continue}const I=N.node.current,M=I?new Wt(f(I),I):null;N.rect.current=M,M&&w.set(N.id,M)}return w}return E},[e,l,n,d,f]);return o.useEffect(()=>{x.current=e},[e]),o.useEffect(()=>{d||m()},[n,d]),o.useEffect(()=>{l&&l.length>0&&c(null)},[JSON.stringify(l)]),o.useEffect(()=>{d||typeof a!="number"||D.current!==null||(D.current=setTimeout(()=>{m(),D.current=null},a))},[a,d,m,...r]),{droppableRects:p,measureDroppableContainers:m,measuringScheduled:l!=null};function S(){switch(g){case ot.Always:return!1;case ot.BeforeDragging:return n;default:return!n}}}function _n(e,t){return nt(n=>e?n||(typeof t=="function"?t(e):e):null,[t,e])}function vi(e,t){return _n(e,t)}function xi(e){let{callback:t,disabled:n}=e;const r=_t(t),s=o.useMemo(()=>{if(n||typeof window>"u"||typeof window.MutationObserver>"u")return;const{MutationObserver:l}=window;return new l(r)},[r,n]);return o.useEffect(()=>()=>s?.disconnect(),[s]),s}function jt(e){let{callback:t,disabled:n}=e;const r=_t(t),s=o.useMemo(()=>{if(n||typeof window>"u"||typeof window.ResizeObserver>"u")return;const{ResizeObserver:l}=window;return new l(r)},[n]);return o.useEffect(()=>()=>s?.disconnect(),[s]),s}function mi(e){return new Wt(He(e),e)}function $n(e,t,n){t===void 0&&(t=mi);const[r,s]=o.useState(null);function l(){s(f=>{if(!e)return null;if(e.isConnected===!1){var g;return(g=f??n)!=null?g:null}const x=t(e);return JSON.stringify(f)===JSON.stringify(x)?f:x})}const c=xi({callback(f){if(e)for(const g of f){const{type:x,target:d}=g;if(x==="childList"&&d instanceof HTMLElement&&d.contains(e)){l();break}}}}),a=jt({callback:l});return ke(()=>{l(),e?(a?.observe(e),c?.observe(document.body,{childList:!0,subtree:!0})):(a?.disconnect(),c?.disconnect())},[e]),r}function wi(e){const t=_n(e);return Nn(e,t)}const Bn=[];function yi(e){const t=o.useRef(e),n=nt(r=>e?r&&r!==Bn&&e&&t.current&&e.parentNode===t.current.parentNode?r:Ut(e):Bn,[e]);return o.useEffect(()=>{t.current=e},[e]),n}function Ci(e){const[t,n]=o.useState(null),r=o.useRef(e),s=o.useCallback(l=>{const c=Yt(l.target);c&&n(a=>a?(a.set(c,qt(c)),new Map(a)):null)},[]);return o.useEffect(()=>{const l=r.current;if(e!==l){c(l);const a=e.map(f=>{const g=Yt(f);return g?(g.addEventListener("scroll",s,{passive:!0}),[g,qt(g)]):null}).filter(f=>f!=null);n(a.length?new Map(a):null),r.current=e}return()=>{c(e),c(l)};function c(a){a.forEach(f=>{const g=Yt(f);g?.removeEventListener("scroll",s)})}},[s,e]),o.useMemo(()=>e.length?t?Array.from(t.values()).reduce((l,c)=>Ge(l,c),Te):On(e):Te,[e,t])}function zn(e,t){t===void 0&&(t=[]);const n=o.useRef(null);return o.useEffect(()=>{n.current=null},t),o.useEffect(()=>{const r=e!==Te;r&&!n.current&&(n.current=e),!r&&n.current&&(n.current=null)},[e]),n.current?wt(e,n.current):Te}function ji(e){o.useEffect(()=>{if(!xt)return;const t=e.map(n=>{let{sensor:r}=n;return r.setup==null?void 0:r.setup()});return()=>{for(const n of t)n?.()}},e.map(t=>{let{sensor:n}=t;return n}))}function Si(e,t){return o.useMemo(()=>e.reduce((n,r)=>{let{eventName:s,handler:l}=r;return n[s]=c=>{l(c,t)},n},{}),[e,t])}function Rn(e){return o.useMemo(()=>e?Hr(e):null,[e])}const Un=[];function Ni(e,t){t===void 0&&(t=He);const[n]=e,r=Rn(n?we(n):null),[s,l]=o.useState(Un);function c(){l(()=>e.length?e.map(f=>An(f)?r:new Wt(t(f),f)):Un)}const a=jt({callback:c});return ke(()=>{a?.disconnect(),c(),e.forEach(f=>a?.observe(f))},[e]),s}function Di(e){if(!e)return null;if(e.children.length>1)return e;const t=e.children[0];return et(t)?t:e}function Ei(e){let{measure:t}=e;const[n,r]=o.useState(null),s=o.useCallback(g=>{for(const{target:x}of g)if(et(x)){r(d=>{const C=t(x);return d?{...d,width:C.width,height:C.height}:C});break}},[t]),l=jt({callback:s}),c=o.useCallback(g=>{const x=Di(g);l?.disconnect(),x&&l?.observe(x),r(x?t(x):null)},[t,l]),[a,f]=mt(c);return o.useMemo(()=>({nodeRef:a,rect:n,setRef:f}),[n,a,f])}const Ti=[{sensor:Kt,options:{}},{sensor:Ht,options:{}}],ki={current:{}},St={draggable:{measure:Dn},droppable:{measure:Dn,strategy:ot.WhileDragging,frequency:Zt.Optimized},dragOverlay:{measure:He}};class at extends Map{get(t){var n;return t!=null&&(n=super.get(t))!=null?n:void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter(t=>{let{disabled:n}=t;return!n})}getNodeFor(t){var n,r;return(n=(r=this.get(t))==null?void 0:r.node.current)!=null?n:void 0}}const Ai={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new at,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:yt},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:St,measureDroppableContainers:yt,windowRect:null,measuringScheduled:!1},Ii={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:""},dispatch:yt,draggableNodes:new Map,over:null,measureDroppableContainers:yt},Nt=o.createContext(Ii),Yn=o.createContext(Ai);function Oi(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new at}}}function Fi(e,t){switch(t.type){case ce.DragStart:return{...e,draggable:{...e.draggable,initialCoordinates:t.initialCoordinates,active:t.active}};case ce.DragMove:return e.draggable.active==null?e:{...e,draggable:{...e.draggable,translate:{x:t.coordinates.x-e.draggable.initialCoordinates.x,y:t.coordinates.y-e.draggable.initialCoordinates.y}}};case ce.DragEnd:case ce.DragCancel:return{...e,draggable:{...e.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case ce.RegisterDroppable:{const{element:n}=t,{id:r}=n,s=new at(e.droppable.containers);return s.set(r,n),{...e,droppable:{...e.droppable,containers:s}}}case ce.SetDroppableDisabled:{const{id:n,key:r,disabled:s}=t,l=e.droppable.containers.get(n);if(!l||r!==l.key)return e;const c=new at(e.droppable.containers);return c.set(n,{...l,disabled:s}),{...e,droppable:{...e.droppable,containers:c}}}case ce.UnregisterDroppable:{const{id:n,key:r}=t,s=e.droppable.containers.get(n);if(!s||r!==s.key)return e;const l=new at(e.droppable.containers);return l.delete(n),{...e,droppable:{...e.droppable,containers:l}}}default:return e}}function Mi(e){let{disabled:t}=e;const{active:n,activatorEvent:r,draggableNodes:s}=o.useContext(Nt),l=$t(r),c=$t(n?.id);return o.useEffect(()=>{if(!t&&!r&&l&&c!=null){if(!zt(l)||document.activeElement===l.target)return;const a=s.get(c);if(!a)return;const{activatorNode:f,node:g}=a;if(!f.current&&!g.current)return;requestAnimationFrame(()=>{for(const x of[f.current,g.current]){if(!x)continue;const d=Sr(x);if(d){d.focus();break}}})}},[r,t,s,c,l]),null}function Vi(e,t){let{transform:n,...r}=t;return e!=null&&e.length?e.reduce((s,l)=>l({transform:s,...r}),n):n}function Pi(e){return o.useMemo(()=>({draggable:{...St.draggable,...e?.draggable},droppable:{...St.droppable,...e?.droppable},dragOverlay:{...St.dragOverlay,...e?.dragOverlay}}),[e?.draggable,e?.droppable,e?.dragOverlay])}function Li(e){let{activeNode:t,measure:n,initialRect:r,config:s=!0}=e;const l=o.useRef(!1),{x:c,y:a}=typeof s=="boolean"?{x:s,y:s}:s;ke(()=>{if(!c&&!a||!t){l.current=!1;return}if(l.current||!r)return;const g=t?.node.current;if(!g||g.isConnected===!1)return;const x=n(g),d=Nn(x,r);if(c||(d.x=0),a||(d.y=0),l.current=!0,Math.abs(d.x)>0||Math.abs(d.y)>0){const C=En(g);C&&C.scrollBy({top:d.y,left:d.x})}},[t,c,a,r,n])}const qn=o.createContext({...Te,scaleX:1,scaleY:1});var Pe;(function(e){e[e.Uninitialized=0]="Uninitialized",e[e.Initializing=1]="Initializing",e[e.Initialized=2]="Initialized"})(Pe||(Pe={}));const _i=o.memo(function(t){var n,r,s,l;let{id:c,accessibility:a,autoScroll:f=!0,children:g,sensors:x=Ti,collisionDetection:d=zr,measuring:C,modifiers:m,...D}=t;const p=o.useReducer(Fi,void 0,Oi),[S,E]=p,[w,N]=Ar(),[I,M]=o.useState(Pe.Uninitialized),L=I===Pe.Initialized,{draggable:{active:y,nodes:k,translate:P},droppable:{containers:_}}=S,z=y!=null?k.get(y):null,U=o.useRef({initial:null,translated:null}),te=o.useMemo(()=>{var J;return y!=null?{id:y,data:(J=z?.data)!=null?J:ki,rect:U}:null},[y,z]),Q=o.useRef(null),[fe,he]=o.useState(null),[ee,R]=o.useState(null),W=tt(D,Object.values(D)),ye=rt("DndDescribedBy",c),b=o.useMemo(()=>_.getEnabled(),[_]),u=Pi(C),{droppableRects:V,measureDroppableContainers:O,measuringScheduled:le}=bi(b,{dragging:L,dependencies:[P.x,P.y],config:u.droppable}),q=pi(k,y),G=o.useMemo(()=>ee?Rt(ee):null,[ee]),oe=ge(),de=vi(q,u.draggable.measure);Li({activeNode:y!=null?k.get(y):null,config:oe.layoutShiftCompensation,initialRect:de,measure:u.draggable.measure});const v=$n(q,u.draggable.measure,de),Z=$n(q?q.parentElement:null),K=o.useRef({activatorEvent:null,active:null,activeNode:q,collisionRect:null,collisions:null,droppableRects:V,draggableNodes:k,draggingNode:null,draggingNodeRect:null,droppableContainers:_,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),ne=_.getNodeFor((n=K.current.over)==null?void 0:n.id),Y=Ei({measure:u.dragOverlay.measure}),Ce=(r=Y.nodeRef.current)!=null?r:q,pe=L?(s=Y.rect)!=null?s:v:null,ct=!!(Y.nodeRef.current&&Y.rect),Re=wi(ct?null:v),Le=Rn(Ce?we(Ce):null),je=yi(L?ne??q:null),re=Ni(je),H=Vi(m,{transform:{x:P.x-Re.x,y:P.y-Re.y,scaleX:1,scaleY:1},activatorEvent:ee,active:te,activeNodeRect:v,containerNodeRect:Z,draggingNodeRect:pe,over:K.current.over,overlayNodeRect:Y.rect,scrollableAncestors:je,scrollableAncestorRects:re,windowRect:Le}),Fe=G?Ge(G,P):null,Xe=Ci(je),dt=zn(Xe),tn=zn(Xe,[v]),_e=Ge(H,dt),Ae=pe?Yr(pe,H):null,Ue=te&&Ae?d({active:te,collisionRect:Ae,droppableRects:V,droppableContainers:b,pointerCoordinates:Fe}):null,ut=_r(Ue,"id"),[Se,ft]=o.useState(null),kt=ct?H:Ge(H,tn),j=Rr(kt,(l=Se?.rect)!=null?l:null,v),T=o.useRef(null),A=o.useCallback((J,$)=>{let{sensor:me,options:$e}=$;if(Q.current==null)return;const Ee=k.get(Q.current);if(!Ee)return;const Ne=J.nativeEvent,Ie=new me({active:Q.current,activeNode:Ee,event:Ne,options:$e,context:K,onAbort(be){if(!k.get(be))return;const{onDragAbort:Oe}=W.current,Me={id:be};Oe?.(Me),w({type:"onDragAbort",event:Me})},onPending(be,Be,Oe,Me){if(!k.get(be))return;const{onDragPending:pt}=W.current,ze={id:be,constraint:Be,initialCoordinates:Oe,offset:Me};pt?.(ze),w({type:"onDragPending",event:ze})},onStart(be){const Be=Q.current;if(Be==null)return;const Oe=k.get(Be);if(!Oe)return;const{onDragStart:Me}=W.current,ht={activatorEvent:Ne,active:{id:Be,data:Oe.data,rect:U}};Je.unstable_batchedUpdates(()=>{Me?.(ht),M(Pe.Initializing),E({type:ce.DragStart,initialCoordinates:be,active:Be}),w({type:"onDragStart",event:ht}),he(T.current),R(Ne)})},onMove(be){E({type:ce.DragMove,coordinates:be})},onEnd:Ke(ce.DragEnd),onCancel:Ke(ce.DragCancel)});T.current=Ie;function Ke(be){return async function(){const{active:Oe,collisions:Me,over:ht,scrollAdjustedTranslate:pt}=K.current;let ze=null;if(Oe&&pt){const{cancelDrop:gt}=W.current;ze={activatorEvent:Ne,active:Oe,collisions:Me,delta:pt,over:ht},be===ce.DragEnd&&typeof gt=="function"&&await Promise.resolve(gt(ze))&&(be=ce.DragCancel)}Q.current=null,Je.unstable_batchedUpdates(()=>{E({type:be}),M(Pe.Uninitialized),ft(null),he(null),R(null),T.current=null;const gt=be===ce.DragEnd?"onDragEnd":"onDragCancel";if(ze){const nn=W.current[gt];nn?.(ze),w({type:gt,event:ze})}})}}},[k]),ve=o.useCallback((J,$)=>(me,$e)=>{const Ee=me.nativeEvent,Ne=k.get($e);if(Q.current!==null||!Ne||Ee.dndKit||Ee.defaultPrevented)return;const Ie={active:Ne};J(me,$.options,Ie)===!0&&(Ee.dndKit={capturedBy:$.sensor},Q.current=$e,A(me,$))},[k,A]),ie=gi(x,ve);ji(x),ke(()=>{v&&I===Pe.Initializing&&M(Pe.Initialized)},[v,I]),o.useEffect(()=>{const{onDragMove:J}=W.current,{active:$,activatorEvent:me,collisions:$e,over:Ee}=K.current;if(!$||!me)return;const Ne={active:$,activatorEvent:me,collisions:$e,delta:{x:_e.x,y:_e.y},over:Ee};Je.unstable_batchedUpdates(()=>{J?.(Ne),w({type:"onDragMove",event:Ne})})},[_e.x,_e.y]),o.useEffect(()=>{const{active:J,activatorEvent:$,collisions:me,droppableContainers:$e,scrollAdjustedTranslate:Ee}=K.current;if(!J||Q.current==null||!$||!Ee)return;const{onDragOver:Ne}=W.current,Ie=$e.get(ut),Ke=Ie&&Ie.rect.current?{id:Ie.id,rect:Ie.rect.current,data:Ie.data,disabled:Ie.disabled}:null,be={active:J,activatorEvent:$,collisions:me,delta:{x:Ee.x,y:Ee.y},over:Ke};Je.unstable_batchedUpdates(()=>{ft(Ke),Ne?.(be),w({type:"onDragOver",event:be})})},[ut]),ke(()=>{K.current={activatorEvent:ee,active:te,activeNode:q,collisionRect:Ae,collisions:Ue,droppableRects:V,draggableNodes:k,draggingNode:Ce,draggingNodeRect:pe,droppableContainers:_,over:Se,scrollableAncestors:je,scrollAdjustedTranslate:_e},U.current={initial:pe,translated:Ae}},[te,q,Ue,Ae,k,Ce,pe,V,_,Se,je,_e]),ui({...oe,delta:P,draggingRect:Ae,pointerCoordinates:Fe,scrollableAncestors:je,scrollableAncestorRects:re});const xe=o.useMemo(()=>({active:te,activeNode:q,activeNodeRect:v,activatorEvent:ee,collisions:Ue,containerNodeRect:Z,dragOverlay:Y,draggableNodes:k,droppableContainers:_,droppableRects:V,over:Se,measureDroppableContainers:O,scrollableAncestors:je,scrollableAncestorRects:re,measuringConfiguration:u,measuringScheduled:le,windowRect:Le}),[te,q,v,ee,Ue,Z,Y,k,_,V,Se,O,je,re,u,le,Le]),se=o.useMemo(()=>({activatorEvent:ee,activators:ie,active:te,activeNodeRect:v,ariaDescribedById:{draggable:ye},dispatch:E,draggableNodes:k,over:Se,measureDroppableContainers:O}),[ee,ie,te,v,E,ye,k,Se,O]);return o.createElement(Cn.Provider,{value:N},o.createElement(Nt.Provider,{value:se},o.createElement(Yn.Provider,{value:xe},o.createElement(qn.Provider,{value:j},g)),o.createElement(Mi,{disabled:a?.restoreFocus===!1})),o.createElement(Fr,{...a,hiddenTextDescribedById:ye}));function ge(){const J=fe?.autoScrollEnabled===!1,$=typeof f=="object"?f.enabled===!1:f===!1,me=L&&!J&&!$;return typeof f=="object"?{...f,enabled:me}:{enabled:me}}}),$i=o.createContext(null),Wn="button",Bi="Draggable";function zi(e){let{id:t,data:n,disabled:r=!1,attributes:s}=e;const l=rt(Bi),{activators:c,activatorEvent:a,active:f,activeNodeRect:g,ariaDescribedById:x,draggableNodes:d,over:C}=o.useContext(Nt),{role:m=Wn,roleDescription:D="draggable",tabIndex:p=0}=s??{},S=f?.id===t,E=o.useContext(S?qn:$i),[w,N]=mt(),[I,M]=mt(),L=Si(c,t),y=tt(n);ke(()=>(d.set(t,{id:t,key:l,node:w,activatorNode:I,data:y}),()=>{const P=d.get(t);P&&P.key===l&&d.delete(t)}),[d,t]);const k=o.useMemo(()=>({role:m,tabIndex:p,"aria-disabled":r,"aria-pressed":S&&m===Wn?!0:void 0,"aria-roledescription":D,"aria-describedby":x.draggable}),[r,m,p,S,D,x.draggable]);return{active:f,activatorEvent:a,activeNodeRect:g,attributes:k,isDragging:S,listeners:r?void 0:L,node:w,over:C,setNodeRef:N,setActivatorNodeRef:M,transform:E}}function Ri(){return o.useContext(Yn)}const Ui="Droppable",Yi={timeout:25};function qi(e){let{data:t,disabled:n=!1,id:r,resizeObserverConfig:s}=e;const l=rt(Ui),{active:c,dispatch:a,over:f,measureDroppableContainers:g}=o.useContext(Nt),x=o.useRef({disabled:n}),d=o.useRef(!1),C=o.useRef(null),m=o.useRef(null),{disabled:D,updateMeasurementsFor:p,timeout:S}={...Yi,...s},E=tt(p??r),w=o.useCallback(()=>{if(!d.current){d.current=!0;return}m.current!=null&&clearTimeout(m.current),m.current=setTimeout(()=>{g(Array.isArray(E.current)?E.current:[E.current]),m.current=null},S)},[S]),N=jt({callback:w,disabled:D||!c}),I=o.useCallback((k,P)=>{N&&(P&&(N.unobserve(P),d.current=!1),k&&N.observe(k))},[N]),[M,L]=mt(I),y=tt(t);return o.useEffect(()=>{!N||!M.current||(N.disconnect(),d.current=!1,N.observe(M.current))},[M,N]),o.useEffect(()=>(a({type:ce.RegisterDroppable,element:{id:r,key:l,disabled:n,node:M,rect:C,data:y}}),()=>a({type:ce.UnregisterDroppable,key:l,id:r})),[r]),o.useEffect(()=>{n!==x.current.disabled&&(a({type:ce.SetDroppableDisabled,id:r,key:l,disabled:n}),x.current.disabled=n)},[r,l,n,a]),{active:c,rect:C,isOver:f?.id===r,node:M,over:f,setNodeRef:L}}function en(e,t,n){const r=e.slice();return r.splice(n<0?r.length+n:n,0,r.splice(t,1)[0]),r}function Wi(e,t){return e.reduce((n,r,s)=>{const l=t.get(r);return l&&(n[s]=l),n},Array(e.length))}function Dt(e){return e!==null&&e>=0}function Gi(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}function Hi(e){return typeof e=="boolean"?{draggable:e,droppable:e}:e}const Et={scaleX:1,scaleY:1},Xi=e=>{var t;let{rects:n,activeNodeRect:r,activeIndex:s,overIndex:l,index:c}=e;const a=(t=n[s])!=null?t:r;if(!a)return null;const f=Ki(n,c,s);if(c===s){const g=n[l];return g?{x:s<l?g.left+g.width-(a.left+a.width):g.left-a.left,y:0,...Et}:null}return c>s&&c<=l?{x:-a.width-f,y:0,...Et}:c<s&&c>=l?{x:a.width+f,y:0,...Et}:{x:0,y:0,...Et}};function Ki(e,t,n){const r=e[t],s=e[t-1],l=e[t+1];return!r||!s&&!l?0:n<t?s?r.left-(s.left+s.width):l.left-(r.left+r.width):l?l.left-(r.left+r.width):r.left-(s.left+s.width)}const Gn=e=>{let{rects:t,activeIndex:n,overIndex:r,index:s}=e;const l=en(t,r,n),c=t[s],a=l[s];return!a||!c?null:{x:a.left-c.left,y:a.top-c.top,scaleX:a.width/c.width,scaleY:a.height/c.height}},Hn="Sortable",Xn=o.createContext({activeIndex:-1,containerId:Hn,disableTransforms:!1,items:[],overIndex:-1,useDragOverlay:!1,sortedRects:[],strategy:Gn,disabled:{draggable:!1,droppable:!1}});function Ji(e){let{children:t,id:n,items:r,strategy:s=Gn,disabled:l=!1}=e;const{active:c,dragOverlay:a,droppableRects:f,over:g,measureDroppableContainers:x}=Ri(),d=rt(Hn,n),C=a.rect!==null,m=o.useMemo(()=>r.map(L=>typeof L=="object"&&"id"in L?L.id:L),[r]),D=c!=null,p=c?m.indexOf(c.id):-1,S=g?m.indexOf(g.id):-1,E=o.useRef(m),w=!Gi(m,E.current),N=S!==-1&&p===-1||w,I=Hi(l);ke(()=>{w&&D&&x(m)},[w,m,D,x]),o.useEffect(()=>{E.current=m},[m]);const M=o.useMemo(()=>({activeIndex:p,containerId:d,disabled:I,disableTransforms:N,items:m,overIndex:S,useDragOverlay:C,sortedRects:Wi(m,f),strategy:s}),[p,d,I.draggable,I.droppable,N,m,S,f,C,s]);return o.createElement(Xn.Provider,{value:M},t)}const Qi=e=>{let{id:t,items:n,activeIndex:r,overIndex:s}=e;return en(n,r,s).indexOf(t)},Zi=e=>{let{containerId:t,isSorting:n,wasDragging:r,index:s,items:l,newIndex:c,previousItems:a,previousContainerId:f,transition:g}=e;return!g||!r||a!==l&&s===c?!1:n?!0:c!==s&&t===f},es={duration:200,easing:"ease"},Kn="transform",ts=it.Transition.toString({property:Kn,duration:0,easing:"linear"}),ns={roleDescription:"sortable"};function rs(e){let{disabled:t,index:n,node:r,rect:s}=e;const[l,c]=o.useState(null),a=o.useRef(n);return ke(()=>{if(!t&&n!==a.current&&r.current){const f=s.current;if(f){const g=He(r.current,{ignoreTransform:!0}),x={x:f.left-g.left,y:f.top-g.top,scaleX:f.width/g.width,scaleY:f.height/g.height};(x.x||x.y)&&c(x)}}n!==a.current&&(a.current=n)},[t,n,r,s]),o.useEffect(()=>{l&&c(null)},[l]),l}function is(e){let{animateLayoutChanges:t=Zi,attributes:n,disabled:r,data:s,getNewIndex:l=Qi,id:c,strategy:a,resizeObserverConfig:f,transition:g=es}=e;const{items:x,containerId:d,activeIndex:C,disabled:m,disableTransforms:D,sortedRects:p,overIndex:S,useDragOverlay:E,strategy:w}=o.useContext(Xn),N=ss(r,m),I=x.indexOf(c),M=o.useMemo(()=>({sortable:{containerId:d,index:I,items:x},...s}),[d,s,I,x]),L=o.useMemo(()=>x.slice(x.indexOf(c)),[x,c]),{rect:y,node:k,isOver:P,setNodeRef:_}=qi({id:c,data:M,disabled:N.droppable,resizeObserverConfig:{updateMeasurementsFor:L,...f}}),{active:z,activatorEvent:U,activeNodeRect:te,attributes:Q,setNodeRef:fe,listeners:he,isDragging:ee,over:R,setActivatorNodeRef:W,transform:ye}=zi({id:c,data:M,attributes:{...ns,...n},disabled:N.draggable}),b=wr(_,fe),u=!!z,V=u&&!D&&Dt(C)&&Dt(S),O=!E&&ee,le=O&&V?ye:null,G=V?le??(a??w)({rects:p,activeNodeRect:te,activeIndex:C,overIndex:S,index:I}):null,oe=Dt(C)&&Dt(S)?l({id:c,items:x,activeIndex:C,overIndex:S}):I,de=z?.id,v=o.useRef({activeId:de,items:x,newIndex:oe,containerId:d}),Z=x!==v.current.items,K=t({active:z,containerId:d,isDragging:ee,isSorting:u,id:c,index:I,items:x,newIndex:v.current.newIndex,previousItems:v.current.items,previousContainerId:v.current.containerId,transition:g,wasDragging:v.current.activeId!=null}),ne=rs({disabled:!K,index:I,node:k,rect:y});return o.useEffect(()=>{u&&v.current.newIndex!==oe&&(v.current.newIndex=oe),d!==v.current.containerId&&(v.current.containerId=d),x!==v.current.items&&(v.current.items=x)},[u,oe,d,x]),o.useEffect(()=>{if(de===v.current.activeId)return;if(de!=null&&v.current.activeId==null){v.current.activeId=de;return}const Ce=setTimeout(()=>{v.current.activeId=de},50);return()=>clearTimeout(Ce)},[de]),{active:z,activeIndex:C,attributes:Q,data:M,rect:y,index:I,newIndex:oe,items:x,isOver:P,isSorting:u,isDragging:ee,listeners:he,node:k,overIndex:S,over:R,setNodeRef:b,setActivatorNodeRef:W,setDroppableNodeRef:_,setDraggableNodeRef:fe,transform:ne??G,transition:Y()};function Y(){if(ne||Z&&v.current.newIndex===I)return ts;if(!(O&&!zt(U)||!g)&&(u||K))return it.Transition.toString({...g,property:Kn})}}function ss(e,t){var n,r;return typeof e=="boolean"?{draggable:e,droppable:!1}:{draggable:(n=e?.draggable)!=null?n:t.draggable,droppable:(r=e?.droppable)!=null?r:t.droppable}}B.Down,B.Right,B.Up,B.Left;const Tt={private:0,team:1,organization:2,public:3},ls=5,os=({id:e,disabled:t,children:n})=>{const{attributes:r,listeners:s,setNodeRef:l,transform:c,transition:a,isDragging:f}=is({id:e,disabled:t}),g={transform:it.Transform.toString(c),transition:a,zIndex:f?10:void 0,opacity:f?.5:void 0};return i.jsx(i.Fragment,{children:n({setNodeRef:l,style:g,listeners:s,attributes:r,isDragging:f})})},as=({views:e,activeViewId:t,onViewChange:n,viewTypeIcons:r={},config:s={},onAddView:l,onRenameView:c,onDuplicateView:a,onDeleteView:f,onSetDefaultView:g,onShareView:x,onSaveAsView:d,onPinView:C,onReorderViews:m,onChangeViewType:D,onConfigView:p,availableViewTypes:S,hasUnsavedChanges:E=!1,onResetChanges:w,className:N})=>{const{showAddButton:I=!0,inlineRename:M=!0,contextMenu:L=!0,reorderable:y=!1,maxVisibleTabs:k=6,showIndicators:P=!0,showSaveAsView:_=!0,showPinnedSection:z=!0,showVisibilityGroups:U=!1}=s,[te,Q]=o.useState(null),[fe,he]=o.useState(""),ee=o.useRef(null);o.useEffect(()=>{te&&ee.current&&(ee.current.focus(),ee.current.select())},[te]);const R=o.useCallback(v=>{if(!M||!c)return;const Z=e.find(K=>K.id===v);Z&&(Q(v),he(Z.label))},[M,c,e]),W=o.useCallback(()=>{te&&fe.trim()&&c&&c(te,fe.trim()),Q(null),he("")},[te,fe,c]),ye=o.useCallback(()=>{Q(null),he("")},[]),b=o.useMemo(()=>{const v=[...e];return v.sort((Z,K)=>{if(z){const ne=Z.isPinned?1:0,Y=K.isPinned?1:0;if(ne!==Y)return Y-ne}if(U){const ne=Tt[Z.visibility||"public"]??Tt.public,Y=Tt[K.visibility||"public"]??Tt.public;if(ne!==Y)return ne-Y}return 0}),v},[e,z,U]),u=b.slice(0,k),V=b.slice(k),O=Mr(jn(Kt,{activationConstraint:{distance:ls}}),jn(Ht)),le=o.useCallback(v=>{const{active:Z,over:K}=v;if(!K||Z.id===K.id||!m)return;const ne=b.findIndex(pe=>pe.id===Z.id),Y=b.findIndex(pe=>pe.id===K.id);if(ne===-1||Y===-1)return;const Ce=en(b,ne,Y);m(Ce.map(pe=>pe.id))},[b,m]),q=F.Table,G=o.useCallback(v=>{if(!U||v===0)return!1;const Z=u[v-1],K=u[v],ne=Y=>Y.visibility==="private";return ne(Z)&&!ne(K)},[U,u]),oe=(v,Z)=>{const K=v.id===t,ne=r[v.type]||q,Y=te===v.id,Ce=P&&(v.hasActiveFilters||v.hasActiveSort),pe=G(Z),Re=(re=>U?re.visibility==="private"?i.jsx(F.Lock,{"data-testid":`view-tab-visibility-${re.id}`,className:"h-3 w-3 text-muted-foreground shrink-0"}):re.visibility?i.jsx(F.Globe,{"data-testid":`view-tab-visibility-${re.id}`,className:"h-3 w-3 text-muted-foreground shrink-0"}):null:null)(v),Le=re=>i.jsxs("button",{"data-testid":`view-tab-${v.id}`,onClick:()=>!Y&&n(v.id),onDoubleClick:()=>R(v.id),className:h.cn("inline-flex items-center gap-1.5 px-3 py-2 text-sm font-medium border-b-2 transition-colors whitespace-nowrap relative",K?"border-primary text-primary":"border-transparent text-muted-foreground hover:text-foreground hover:border-border"),children:[y&&m&&i.jsx("span",{"data-testid":`view-tab-drag-handle-${v.id}`,className:"cursor-grab active:cursor-grabbing text-muted-foreground hover:text-foreground",...re?.listeners??{},...re?.attributes??{},children:i.jsx(F.GripVertical,{className:"h-3 w-3"})}),z&&v.isPinned&&i.jsx(F.Pin,{"data-testid":`view-tab-pin-indicator-${v.id}`,className:"h-3 w-3 text-primary shrink-0"}),Re,i.jsx(ne,{className:"h-3.5 w-3.5"}),Y?i.jsx(h.Input,{ref:ee,"data-testid":`view-tab-rename-input-${v.id}`,value:fe,onChange:H=>he(H.target.value),onBlur:W,onKeyDown:H=>{H.key==="Enter"&&W(),H.key==="Escape"&&ye()},className:"h-5 w-24 px-1 py-0 text-sm border-none focus-visible:ring-1",onClick:H=>H.stopPropagation()}):i.jsx("span",{children:v.label}),Ce&&i.jsxs(h.Tooltip,{children:[i.jsx(h.TooltipTrigger,{asChild:!0,children:i.jsx("span",{"data-testid":`view-tab-indicator-${v.id}`,className:"ml-1 inline-flex items-center justify-center h-4 min-w-[16px] rounded-full bg-primary/15 text-[10px] font-medium text-primary px-1 shrink-0",children:[v.hasActiveFilters&&"F",v.hasActiveSort&&"S"].filter(Boolean).join("")})}),i.jsx(h.TooltipContent,{side:"bottom",className:"text-xs",children:[v.hasActiveFilters&&"Active filters",v.hasActiveSort&&"Active sort"].filter(Boolean).join(", ")})]}),v.isDefault&&i.jsx(F.Star,{className:"h-3 w-3 text-amber-500 fill-amber-500 shrink-0"}),K&&p&&i.jsx("button",{type:"button","data-testid":`view-tab-config-${v.id}`,className:"ml-0.5 h-4 w-4 flex items-center justify-center rounded hover:bg-accent shrink-0 opacity-60 hover:opacity-100 transition-opacity",onClick:H=>{H.stopPropagation(),p(v.id)},"aria-label":`Configure ${v.label}`,children:i.jsx(F.Settings2,{className:"h-3 w-3"})})]}),je=re=>!L||Y?re:i.jsxs(h.ContextMenu,{children:[i.jsx(h.ContextMenuTrigger,{asChild:!0,children:re}),i.jsxs(h.ContextMenuContent,{children:[c&&i.jsxs(h.ContextMenuItem,{"data-testid":`context-menu-rename-${v.id}`,onClick:()=>R(v.id),children:[i.jsx(F.Pencil,{className:"h-4 w-4 mr-2"})," Rename"]}),a&&i.jsxs(h.ContextMenuItem,{"data-testid":`context-menu-duplicate-${v.id}`,onClick:()=>a(v.id),children:[i.jsx(F.Copy,{className:"h-4 w-4 mr-2"})," Duplicate View"]}),x&&i.jsxs(h.ContextMenuItem,{"data-testid":`context-menu-share-${v.id}`,onClick:()=>x(v.id),children:[i.jsx(F.Share2,{className:"h-4 w-4 mr-2"})," Share View"]}),g&&i.jsxs(h.ContextMenuItem,{"data-testid":`context-menu-default-${v.id}`,onClick:()=>g(v.id),children:[i.jsx(F.Star,{className:"h-4 w-4 mr-2"})," Set as Default"]}),C&&i.jsx(h.ContextMenuItem,{"data-testid":`context-menu-pin-${v.id}`,onClick:()=>C(v.id,!v.isPinned),children:v.isPinned?i.jsxs(i.Fragment,{children:[i.jsx(F.PinOff,{className:"h-4 w-4 mr-2"})," Unpin View"]}):i.jsxs(i.Fragment,{children:[i.jsx(F.Pin,{className:"h-4 w-4 mr-2"})," Pin View"]})}),D&&S&&S.length>0&&i.jsxs(i.Fragment,{children:[i.jsx(h.ContextMenuSeparator,{}),i.jsxs(h.ContextMenuSub,{children:[i.jsxs(h.ContextMenuSubTrigger,{"data-testid":`context-menu-change-type-${v.id}`,children:[i.jsx(F.LayoutGrid,{className:"h-4 w-4 mr-2"})," Change View Type"]}),i.jsx(h.ContextMenuSubContent,{"data-testid":`context-menu-type-submenu-${v.id}`,children:S.map(H=>{const Fe=r[H.type]||q;return i.jsxs(h.ContextMenuItem,{"data-testid":`context-menu-type-${v.id}-${H.type}`,disabled:H.type===v.type,onClick:()=>D(v.id,H.type),children:[i.jsx(Fe,{className:"h-4 w-4 mr-2"}),i.jsxs("div",{className:"flex flex-col",children:[i.jsx("span",{children:H.label}),H.description&&i.jsx("span",{className:"text-xs text-muted-foreground",children:H.description})]})]},H.type)})})]})]}),f&&i.jsxs(i.Fragment,{children:[i.jsx(h.ContextMenuSeparator,{}),i.jsxs(h.ContextMenuItem,{"data-testid":`context-menu-delete-${v.id}`,onClick:()=>f(v.id),className:"text-destructive focus:text-destructive",children:[i.jsx(F.Trash2,{className:"h-4 w-4 mr-2"})," Delete View"]})]})]})]});return y&&m?i.jsxs(o.Fragment,{children:[pe&&i.jsx("div",{"data-testid":"view-tab-visibility-separator",className:"w-px h-5 bg-border mx-1 self-center shrink-0"}),i.jsx(os,{id:v.id,children:({setNodeRef:re,style:H,listeners:Fe,attributes:Xe,isDragging:dt})=>i.jsx("div",{ref:re,style:H,className:h.cn("flex",dt&&"z-10"),children:je(Le({listeners:Fe,attributes:Xe}))})})]},v.id):i.jsxs(o.Fragment,{children:[pe&&i.jsx("div",{"data-testid":"view-tab-visibility-separator",className:"w-px h-5 bg-border mx-1 self-center shrink-0"}),je(Le())]},v.id)},de=i.jsx(i.Fragment,{children:u.map((v,Z)=>oe(v,Z))});return i.jsx(h.TooltipProvider,{children:i.jsxs("div",{"data-testid":"view-tab-bar",className:h.cn("flex items-center gap-0.5 -mb-px",N),children:[y&&m?i.jsx(_i,{sensors:O,collisionDetection:$r,onDragEnd:le,children:i.jsx(Ji,{items:u.map(v=>v.id),strategy:Xi,children:i.jsx("div",{"data-testid":"view-tab-sortable-container",className:"flex items-center gap-0.5",children:de})})}):de,V.length>0&&i.jsxs(h.DropdownMenu,{children:[i.jsx(h.DropdownMenuTrigger,{asChild:!0,children:i.jsxs("button",{"data-testid":"view-tab-overflow",className:"inline-flex items-center gap-1 px-2 py-2 text-sm text-muted-foreground hover:text-foreground transition-colors",children:[i.jsx(F.MoreHorizontal,{className:"h-4 w-4"}),i.jsxs("span",{className:"text-xs",children:[V.length," more"]})]})}),i.jsx(h.DropdownMenuContent,{align:"end",children:V.map(v=>{const Z=r[v.type]||q;return i.jsxs(h.DropdownMenuItem,{"data-testid":`view-tab-overflow-${v.id}`,onClick:()=>n(v.id),children:[v.isPinned&&i.jsx(F.Pin,{className:"h-3 w-3 mr-1 text-primary shrink-0"}),i.jsx(Z,{className:"h-4 w-4 mr-2"}),v.label,P&&(v.hasActiveFilters||v.hasActiveSort)&&i.jsx("span",{className:"ml-auto inline-flex items-center justify-center h-4 min-w-[16px] rounded-full bg-primary/15 text-[10px] font-medium text-primary px-1",children:[v.hasActiveFilters&&"F",v.hasActiveSort&&"S"].filter(Boolean).join("")})]},v.id)})})]}),I&&l&&i.jsxs(h.Tooltip,{children:[i.jsx(h.TooltipTrigger,{asChild:!0,children:i.jsx("button",{"data-testid":"view-tab-add",onClick:l,className:"inline-flex items-center px-2 py-2 text-muted-foreground hover:text-foreground transition-colors",children:i.jsx(F.Plus,{className:"h-4 w-4"})})}),i.jsx(h.TooltipContent,{children:"Add View"})]}),_&&E&&i.jsxs("div",{"data-testid":"view-tab-save-as",className:"flex items-center gap-1 ml-2 text-xs text-amber-600 dark:text-amber-400",children:[i.jsx(F.Save,{className:"h-3.5 w-3.5"}),i.jsx("span",{className:"hidden sm:inline",children:"Unsaved changes"}),d&&i.jsx(h.Button,{variant:"ghost",size:"sm","data-testid":"view-tab-save-as-btn",className:"h-6 px-2 text-xs",onClick:d,children:"Save as View"}),w&&i.jsx(h.Button,{variant:"ghost",size:"sm","data-testid":"view-tab-reset-btn",className:"h-6 px-2 text-xs",onClick:w,children:"Reset"})]})]})})};let Jn=o.createContext(null);try{const e=require("@object-ui/react");e.SchemaRendererContext&&(Jn=e.SchemaRendererContext)}catch{}const Qn=({schema:e})=>{const n=o.useContext(Jn)?.dataSource??null;return i.jsx(pn,{schema:e,dataSource:n})};Ve.ComponentRegistry.register("object-view",Qn,{namespace:"plugin-view",label:"Object View",category:"view",icon:"LayoutDashboard",inputs:[{name:"objectName",type:"string",label:"Object Name",required:!0},{name:"title",type:"string",label:"Title"},{name:"description",type:"string",label:"Description"},{name:"layout",type:"enum",label:"Form Layout",enum:["drawer","modal","page"]},{name:"defaultViewType",type:"enum",label:"Default View Type",enum:["grid","kanban","gallery","calendar","timeline","gantt","map"]},{name:"defaultListView",type:"string",label:"Default Named View"},{name:"showSearch",type:"boolean",label:"Show Search"},{name:"showFilters",type:"boolean",label:"Show Filters"},{name:"showCreate",type:"boolean",label:"Show Create Button"},{name:"showRefresh",type:"boolean",label:"Show Refresh Button"},{name:"showViewSwitcher",type:"boolean",label:"Show View Switcher"},{name:"listViews",type:"object",label:"Named List Views"},{name:"navigation",type:"object",label:"Navigation Config"},{name:"searchableFields",type:"array",label:"Searchable Fields"},{name:"filterableFields",type:"array",label:"Filterable Fields"}],defaultProps:{layout:"drawer",defaultViewType:"grid",showSearch:!0,showFilters:!0,showCreate:!0,showRefresh:!0,showViewSwitcher:!0}}),Ve.ComponentRegistry.register("view",Qn,{namespace:"plugin-view",label:"View",category:"view"}),Ve.ComponentRegistry.register("view-switcher",Ot,{namespace:"view",label:"View Switcher",category:"view",icon:"LayoutGrid",inputs:[{name:"views",type:"array",label:"Views",required:!0},{name:"defaultView",type:"string",label:"Default View"},{name:"activeView",type:"string",label:"Active View"},{name:"variant",type:"enum",label:"Variant",enum:["tabs","buttons","dropdown"]},{name:"position",type:"enum",label:"Position",enum:["top","bottom","left","right"]},{name:"persistPreference",type:"boolean",label:"Persist Preference"},{name:"storageKey",type:"string",label:"Storage Key"},{name:"onViewChange",type:"string",label:"On View Change Event"}],defaultProps:{variant:"tabs",position:"top",defaultView:"grid",views:[{type:"grid",label:"Grid",schema:{type:"text",content:"Grid view"}},{type:"list",label:"List",schema:{type:"text",content:"List view"}}]}}),Ve.ComponentRegistry.register("filter-ui",gn,{namespace:"view",label:"Filter UI",category:"view",icon:"SlidersHorizontal",inputs:[{name:"filters",type:"array",label:"Filters",required:!0},{name:"values",type:"object",label:"Values"},{name:"onChange",type:"string",label:"On Change Event"},{name:"showClear",type:"boolean",label:"Show Clear Button"},{name:"showApply",type:"boolean",label:"Show Apply Button"},{name:"layout",type:"enum",label:"Layout",enum:["inline","popover","drawer"]}],defaultProps:{layout:"inline",showApply:!1,showClear:!0,filters:[{field:"name",label:"Name",type:"text",placeholder:"Search name"},{field:"status",label:"Status",type:"select",options:[{label:"Open",value:"open"},{label:"Closed",value:"closed"}]},{field:"created_at",label:"Created",type:"date"}]}}),Ve.ComponentRegistry.register("sort-ui",vn,{namespace:"view",label:"Sort UI",category:"view",icon:"ArrowUpDown",inputs:[{name:"fields",type:"array",label:"Fields",required:!0},{name:"sort",type:"array",label:"Sort"},{name:"onChange",type:"string",label:"On Change Event"},{name:"multiple",type:"boolean",label:"Allow Multiple"},{name:"variant",type:"enum",label:"Variant",enum:["dropdown","buttons"]}],defaultProps:{variant:"dropdown",multiple:!0,fields:[{field:"name",label:"Name"},{field:"created_at",label:"Created At"}],sort:[{field:"name",direction:"asc"}]}}),Ve.ComponentRegistry.register("shared-view-link",xn,{namespace:"view",label:"Shared View Link",category:"view",icon:"Share2",inputs:[{name:"objectName",type:"string",label:"Object Name",required:!0},{name:"viewId",type:"string",label:"View ID"},{name:"baseUrl",type:"string",label:"Base URL"}],defaultProps:{objectName:"objects",viewId:"default"}});const cs=({schema:e,className:t,children:n,dataSource:r,...s})=>{const l=e.props?.columns?{display:"grid",gridTemplateColumns:`repeat(${e.props.columns}, 1fr)`,gap:"1rem"}:void 0;return i.jsx("div",{className:t,style:l,...s,children:n})};Ve.ComponentRegistry.register("view:simple",cs,{namespace:"plugin-view",label:"Simple View",category:"view"}),ae.FilterUI=gn,ae.ObjectView=pn,ae.SharedViewLink=xn,ae.SortUI=vn,ae.ViewSwitcher=Ot,ae.ViewTabBar=as,Object.defineProperty(ae,Symbol.toStringTag,{value:"Module"})}));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@object-ui/plugin-view",
|
|
3
|
-
"version": "3.1.
|
|
3
|
+
"version": "3.1.3",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"description": "Object View plugin for Object UI",
|
|
@@ -19,13 +19,13 @@
|
|
|
19
19
|
"@dnd-kit/sortable": "^10.0.0",
|
|
20
20
|
"@dnd-kit/utilities": "^3.2.2",
|
|
21
21
|
"class-variance-authority": "^0.7.1",
|
|
22
|
-
"lucide-react": "^0.
|
|
23
|
-
"@object-ui/components": "3.1.
|
|
24
|
-
"@object-ui/core": "3.1.
|
|
25
|
-
"@object-ui/plugin-form": "3.1.
|
|
26
|
-
"@object-ui/plugin-grid": "3.1.
|
|
27
|
-
"@object-ui/react": "3.1.
|
|
28
|
-
"@object-ui/types": "3.1.
|
|
22
|
+
"lucide-react": "^0.577.0",
|
|
23
|
+
"@object-ui/components": "3.1.3",
|
|
24
|
+
"@object-ui/core": "3.1.3",
|
|
25
|
+
"@object-ui/plugin-form": "3.1.3",
|
|
26
|
+
"@object-ui/plugin-grid": "3.1.3",
|
|
27
|
+
"@object-ui/react": "3.1.3",
|
|
28
|
+
"@object-ui/types": "3.1.3"
|
|
29
29
|
},
|
|
30
30
|
"peerDependencies": {
|
|
31
31
|
"react": "^18.0.0 || ^19.0.0",
|