@object-ui/plugin-view 3.1.3 → 3.1.4

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