@vuu-ui/vuu-layout 0.8.5 → 0.8.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/cjs/index.js +6 -3
- package/cjs/index.js.map +4 -4
- package/esm/index.js +6 -3
- package/esm/index.js.map +4 -4
- package/index.css +1 -1
- package/index.css.map +3 -3
- package/package.json +6 -6
- package/types/flexbox/flexboxTypes.d.ts +1 -1
- package/types/index.d.ts +1 -0
- package/types/overflow-container/OverflowContainer.d.ts +3 -1
- package/types/overflow-container/overflow-utils.d.ts +2 -1
- package/types/overflow-container/useOverflowContainer.d.ts +3 -1
- package/types/palette/Palette.d.ts +1 -1
- package/types/palette/index.d.ts +0 -1
- package/types/stack/stackTypes.d.ts +3 -1
- package/types/palette/PaletteSalt.d.ts +0 -14
package/esm/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{partition as Hn}from"@vuu-ui/vuu-utils";import ea from"classnames";var Pn={},Mn={},Pe={};function re(e){return Pn[e]===!0}function Xi(e){return Mn[e]===!0}var Ln=e=>re(e)||Xi(e),bd=e=>!!Pe[e];function Y(e,t,o="component"){Pe[e]=t,o==="container"?Pn[e]=!0:o==="view"&&(Mn[e]=!0)}import{Button as In,useControlled as Yi}from"@salt-ds/core";import Cn from"classnames";import{useCallback as ji}from"react";import{jsx as at,jsxs as Qi}from"react/jsx-runtime";var Me="vuuDrawer",On=e=>typeof e=="string"?e:e+"px",Ji=(e,t,o)=>{let n=t!==void 0,r=o!==void 0;if(!(!e&&!r&&!n))return!r&&!n?e:{...e,"--drawer-size":n?On(t):void 0,"--drawer-peek-size":r?On(o):void 0}},An=({children:e,className:t,clickToOpen:o,defaultOpen:n,sizeOpen:r,sizeClosed:s,style:i,open:a,position:l="left",inline:c,onClick:p,peekaboo:d=!1,toggleButton:u,...m})=>{let[h,g]=Yi({controlled:a,default:n!=null?n:!1,name:"Drawer",state:"open"}),b=Cn(Me,t,`${Me}-${l}`,{[`${Me}-open`]:h,[`${Me}-inline`]:c,[`${Me}-over`]:!c,[`${Me}-peekaboo`]:d}),f=ji(()=>{g(!h)},[h,g]),y=Ji(i,r,s),T=o?f:p,x=()=>at("div",{className:Cn("vuuToggleButton-container"),children:h?at(In,{"aria-label":"close",onClick:f,"data-icon":"close",variant:"secondary"}):at(In,{"aria-label":"open",onClick:f,"data-icon":"close",variant:"secondary"})});return Qi("div",{...m,className:b,onClick:T,style:y,children:[u=="start"?x():null,at("div",{className:`${Me}-liner`,children:at("div",{className:`${Me}-content`,children:e})}),u=="end"?x():null]})};An.displayName="Drawer";var xo=An;import{jsx as ra,jsxs as sa}from"react/jsx-runtime";var ta=e=>e.type===xo,oa=({props:{position:e="left"}})=>e.match(/top|bottom/),To=e=>{let{children:t,className:o,id:n,style:r}=e,s="vuuDockLayout",[i,a]=Hn(t,ta),[l,c]=Hn(i,oa),p=l.length===0?"horizontal":c.length===0?"vertical":"both",d=ea(s,o,`${s}-${p}`);return sa("div",{className:d,id:n,style:r,children:[i,ra("div",{className:`${s}-content`,children:a})]})};To.displayName="DockLayout";var na=To;Y("DockLayout",To,"container");import{forwardRef as ia}from"react";import{jsx as aa}from"react/jsx-runtime";var vo=ia(function({resizeable:t,...o},n){return aa("div",{...o,className:"Component",ref:n})});vo.displayName="Component";var Do=vo;Y("Component",vo);import Le,{isValidElement as zn}from"react";var la={},B=(e,t)=>{var n;let o=A(e);return(n=o[t])!=null?n:o[`data-${t}`]},A=e=>(e==null?void 0:e.props)||e||la,kn=e=>{let t=A(e);if(t.children){let{children:[o,...n]}=t;return n.length>0&&console.warn(`getChild expected a single child, found ${n.length+1}`),o}};function $(e){var t;if(e){let o=e.type;if(typeof o=="function"||typeof o=="object"){let n=o.displayName||o.name||((t=o.type)==null?void 0:t.name);if(typeof n=="string")return n}if(typeof e.type=="string")return e.type;if(e.constructor)return e.constructor.displayName;throw Error("typeOf unable to determine type of element")}}var jd=(e,t)=>$(e)===t;var ca=e=>{let t=e.lastIndexOf(".");return t===-1?e:e.slice(0,t)};function De(e,t){let{"data-path":o,path:n=o}=A(e);return t==="0"||t===n?null:ee(e,ca(t),!0)}function we(e,t){let{children:o,...n}=A(e);if(t(n))return e;if(Le.Children.count(o)>0){let r=Le.isValidElement(o)?[o]:o;for(let s of r){let i=we(s,t);if(i)return i}}}function ua(e,t){if(t===e)return null;let{path:o,children:n}=A(e),{idx:r,finalStep:s}=he(o,B(t,"path"));return s?e:n===void 0||n[r]===void 0?null:ua(n[r],t)}var pa=(e,t)=>{if(Le.isValidElement(e)&&t==0)return e;if(Array.isArray(e))return e[t]};function Nn(e,t){let o=t.split("."),n=[e],r=s=>Le.isValidElement(s.props.children)?[s.props.children]:s.props.children;for(let s=0;s<o.length;s++){let i=parseInt(o[s]),a=n[i];if(s===o.length-1)return a;n=r(a)}}var Bn=(e,t,o=!0)=>{let{children:n,id:r}=e.props;if(r===t)return e;if(Le.Children.count(n)>0){let s=zn(n)?[n]:n;for(let i of s)if(zn(i)){let a=Bn(i,t,!1);if(a)return a}}if(o===!0)throw Error(`pathUtils.findTargetById id #${t} not found in source`)};function ee(e,t,o=!1){if(t.startsWith("#"))return Bn(e,t.slice(1),o);let{"data-path":n,path:r=n}=A(e);if(t.indexOf(r)!==0)throw Error(`pathUtils.followPath path ${t} is not within source path ${r}`);let s=t.slice(r.length+1);if(s==="")return e;let i=e,a=s.split(".");for(let l=0;l<a.length;l++){if(Le.Children.count(i.props.children)===0){let c=`element at 0.${a.slice(0,l).join(".")} has no children, so cannot fulfill rest of path ${a.slice(l).join(".")}`;if(o)throw Error(c);console.warn(c);return}if(i=pa(i.props.children,parseInt(a[l])),i===void 0){let c=`model at 0.${a.slice(0,l).join(".")} has no children that fulfill next step of path ${a.slice(l).join(".")}`;if(o)throw Error(c);console.warn(c)}}return i}function rm(e,t){let o=De(e,t),n=t.split(".").map(r=>parseInt(r,10));if(o){let r=n.pop(),{children:s}=o.props;if(s.length-1>r)return Ot(s[r+1]);{let i=n.pop(),a=De(e,B(o,"path"));if(a&&typeof i=="number"&&(n=a.props.path.split(".").map(l=>parseInt(l,10)),a.props.children.length-1>i)){let l=a.props.children[i+1];return re($(l))?Ot(l):l}}}return Ot(e)}function sm(e,t){let o=t.split(".").map(s=>parseInt(s,10)),n=o.pop(),r=De(e,t);if(r!=null&&typeof n=="number"){let{children:s}=r.props;if(n>0)return At(s[n-1]);for(;o.length>1;)if(n=o.pop(),r=De(e,B(r,"path")),n>0){let i=r.props.children[n-1];return re($(i))?At(i):i}}return At(e)}function Ot(e){if(re($(e))){let{children:t}=e.props||e;return Ot(t[0])}return e}function At(e){if(re($(e))){let{children:t}=e.props||e;return At(t[t.length-1])}return e}function he(e,t,o=!1){if(e===t)return{idx:-1,finalStep:!0};let n=`${e}.`;if(!t.startsWith(n))throw Error("pathUtils nextStep has strayed from the path");let r=o?0:1,s=t.replace(n,"").split(".").map(i=>parseInt(i,10));return{idx:s[0],finalStep:s.length===r}}function te(e,t,o){if(B(e,"path")===t)return e;let n=[];Le.Children.forEach(e.props.children,(s,i)=>{B(s,"path")?n.push(te(s,`${t}.${i}`)):n.push(s)});let r=e.props["data-path"]?"data-path":"path";return Le.cloneElement(e,{[r]:t,...o},n)}function am(e,t){typeof e=="function"?e(t):e&&(e.current=t)}import{Children as da,isValidElement as $n,useLayoutEffect as ma,useMemo as fa,useRef as ga}from"react";var ha=[],ba=0,qe=e=>{let t=Array.isArray(e),o=t?e.length:da.count(e);return t&&e.every($n)?e:o===1&&!t&&$n(e)?[e]:o>1?e:ha},Fn=(e,t)=>{let o=ga(!1);ma(()=>{o.current?e():o.current=!0},t)},Ht=e=>fa(()=>e!=null?e:`vuu-${++ba}`,[e]);var wo=e=>{if(typeof e!="number")throw Error(`"no support yet for flex value ${e}`);return{flexBasis:0,flexGrow:1,flexShrink:1}};var Be={north:1,east:2,south:4,west:8,header:16,centre:32,absolute:64},lt={AFTER:"after",BEFORE:"before"},se=Object.freeze({North:Ne("north"),East:Ne("east"),South:Ne("south"),West:Ne("west"),Header:Ne("header"),Centre:Ne("centre"),Absolute:Ne("absolute")});function Ne(e){return Object.freeze({offset:e==="north"||e==="west"?0:e==="south"||e==="east"?1:NaN,valueOf:function(){return Be[e]},toString:function(){return e},North:e==="north",South:e==="south",East:e==="east",West:e==="west",Header:e==="header",Centre:e==="centre",NorthOrSouth:e==="north"||e==="south",EastOrWest:e==="east"||e==="west",NorthOrWest:e==="north"||e==="west",SouthOrEast:e==="east"||e==="south",Absolute:e==="absolute"})}var _n=se.North,Vn=se.South,Ro=se.East,So=se.West,ya=se.Header,Ea=se.Centre,Xe=class{static measure(t,o=[]){let n={};return va(t,n,o),n}static allBoxesContainingPoint(t,o,n,r,s){return Zn(t,o,n,r,s).reverse()}};function Po(e,t,o,n=30){let r=o.right-o.left,s=o.bottom-o.top,i=e-o.left,a=t-o.top,l=0;return i<n&&(l+=8),i>r-n&&(l+=2),a<n&&(l+=1),a>s-n&&(l+=4),{pctX:i/r,pctY:a/s,closeToTheEdge:l}}function Mo(e,t,o,n){let{BEFORE:r,AFTER:s}=lt,{pctX:i,pctY:a,closeToTheEdge:l}=Po(e,t,o),c,p;if(n==="row")c=i<.5?So:Ro;else if(o.header&&kt(o.header,e,t))if(c=ya,o.Stack){let d=o.Stack.length;if(d===0)p={index:-1,left:o.left,positionRelativeToTab:s,width:0};else{let u=o.Stack.find(({left:m,right:h})=>e>=m&&e<=h);if(u){let m=u.right-u.left;p={index:o.Stack.indexOf(u),left:u.left,positionRelativeToTab:(e-u.left)/m<.5?r:s,width:m}}else p={left:o.Stack[d-1].right,width:0,index:d,positionRelativeToTab:s}}}else if(o.header.titleWidth){let d=o.header.titleWidth;p={index:-1,left:o.left,positionRelativeToTab:(e-o.left)/d<.5?r:s,width:d}}else p={left:o.left,width:0,positionRelativeToTab:r,index:-1};else c=xa(e,t,o,i,a);return{position:c,x:e,y:t,closeToTheEdge:l,tab:p}}function xa(e,t,o,n,r){let s=Ta(o,.2);if(kt(s,e,t))return Ea;switch(`${r<.5?"north":"south"}${n<.5?"west":"east"}`){case"northwest":return n>r?_n:So;case"northeast":return 1-n>r?_n:Ro;case"southeast":return n>r?Ro:Vn;case"southwest":return 1-n>r?So:Vn;default:}}function Ta({right:e,left:t,top:o,bottom:n},r){let s=(1-r)/2,i=(e-t)*s,a=(n-o)*s;return{left:t+i,top:o+a,right:e-i,bottom:n-a}}function va(e,t,o){let{id:n,"data-path":r,path:s=r}=A(e),i=$(e);if(n&&s){let[a,l]=Kn(e);Wn(e,a,l,t),re(i)&&Gn(e,t,o)}}function Wn(e,t,o,n){let{"data-path":r,path:s=r,header:i}=A(e);n[s]=t;let a=$(e);if(i||a==="Stack"){let l=o.querySelector(".vuuHeader");if(l){let{top:c,left:p,right:d,bottom:u}=l.getBoundingClientRect();if(n[s].header={top:Math.round(c),left:Math.round(p),right:Math.round(d),bottom:Math.round(u)},a==="Stack")n[s].Stack=Array.from(l.querySelectorAll(".saltTab")).map(m=>m.getBoundingClientRect()).map(({left:m,right:h})=>({left:m,right:h}));else{let m=l.querySelector('[class^="vuuHeader-title"]'),{header:h}=n[s];m&&h&&(h.titleWidth=m.clientWidth)}}}return n[s]}function Gn(e,t,o,n=0,r=0,s=0,i=0){let{children:a,"data-path":l,path:c=l,style:p,active:d=0}=A(e),u=$(e),m=u==="Flexbox",h=u==="Stack",g=m&&p.flexDirection==="column",b=m&&p.flexDirection==="row",y=(h?a.filter((x,v)=>v===d):a.filter(Da)).map(x=>{let[v,E]=Kn(x);return[{...v,top:v.top-s,right:v.right+r,bottom:v.bottom+i,left:v.left-n},E,x]}),T=y.map(([x,v,E],D,P)=>{let k,C,M,w,R,O,I=P.length-1;b?(R=D===0?0:x.left-P[D-1][0].right,O=D===I?0:P[D+1][0].left-x.right,k=D===0||R===0?0:R,C=D===I||O===0?0:O-O/2,x.left-=k,x.right+=C,M=s,w=i):g&&(R=D===0?0:x.top-P[D-1][0].bottom,O=D===I?0:P[D+1][0].top-x.bottom,M=D===0||R===0?0:R,w=D===I||O===0?0:O-O/2,x.top-=M,x.bottom+=w,k=n,C=r);let S=Wn(E,x,v,t),L=$(E);return re(L)&&Gn(E,t,o,k,C,M,w),S});y.length&&(t[c].children=T)}function Da(e){let{id:t}=A(e),o=document.getElementById(t);return o?o.dataset.dragging!=="true":(console.warn(`BoxModel: no element found with id #${t}`),!1)}function Kn(e){let{id:t}=A(e);if(t===void 0)throw Error("`BoxModel.measureComponentElement, component has no id");let o=document.getElementById(t);if(!o)throw Error("BoxModel.measureComponentElement, no DOM element found for component");let{top:n,left:r,right:s,bottom:i,height:a,width:l}=o.getBoundingClientRect(),c,p=$(e);if(re(p)){let d=o.scrollHeight;d>a&&(c={id:t,scrollHeight:d,scrollTop:o.scrollTop})}return[{top:Math.round(n),left:Math.round(r),right:Math.round(s),bottom:Math.round(i),height:Math.round(a),width:Math.round(l),scrolling:c},o,e]}function Zn(e,t,o,n,r,s=[]){let{children:i,"data-path":a,path:l=a}=A(e),c=$(e),p=t[l];if(!kt(p,o,n))return s;if(r&&r.length){if(r.includes(l))s.push(e);else if(!r.some(d=>d.startsWith(l)))return s}else s.push(e);if(!re(c)||p.header&&kt(p.header,o,n))return s;p.scrolling&&wa(p,o,n);for(let d=0;d<i.length;d++){if(c==="Stack"&&e.props.active!==d)continue;let u=Zn(i[d],t,o,n,r);if(u.length)return s.concat(u)}return s}function kt(e,t,o){if(e)return t>=e.left&&t<e.right&&o>=e.top&&o<e.bottom}function wa({top:e,bottom:t,scrolling:o},n,r){if(o){let{id:s,scrollTop:i,scrollHeight:a}=o,l=t-e;if(i===0&&t-r<50){let c=a-l;document.getElementById(s).scrollTo({left:0,top:c,behavior:"smooth"}),o.scrollTop=c}else if(i>0&&r-e<50)document.getElementById(s).scrollTo({left:0,top:0,behavior:"smooth"}),o.scrollTop=0;else return!1}else return!1}var Ra=.4,zt=class{constructor(t,o,n,r,s){this.init(t,o,n,r,s)}init(t,o,n,r,s){let{left:i,top:a}=r,{pctX:l,pctY:c}=Po(o,n,r),p=Ra,d=l*r.width,u=r.width-d,m=c*r.height,h=r.height-m,g=r.width*p,b=r.height*p,f=1-p,y=d*f,T=m*f,x=u*f,v=h*f;this.intrinsicSize=s,this.constraint={zone:{x:{lo:t.left,hi:t.right},y:{lo:t.top,hi:t.bottom}},pos:{x:{lo:t.left-y,hi:t.right-r.width+x},y:{lo:t.top-T,hi:t.bottom-r.height+v}},mouse:{x:{lo:t.left+g*l,hi:t.right-g*(1-l)},y:{lo:t.top+b*c,hi:t.bottom-b*(1-c)}}},this.x={pos:i,lo:!1,hi:!1,mousePos:o,mousePct:l},this.y={pos:a,lo:!1,hi:!1,mousePos:n,mousePct:c}}outOfBounds(){return this.x.lo||this.x.hi||this.y.lo||this.y.hi}inBounds(){return!this.outOfBounds()}dropX(){return this.dropXY("x")}dropY(){return this.dropXY("y")}hasIntrinsicSize(){var t,o;return((t=this==null?void 0:this.intrinsicSize)==null?void 0:t.height)&&((o=this==null?void 0:this.intrinsicSize)==null?void 0:o.width)}update(t,o){let n=this[t],r=this.constraint.mouse[t],s=this.constraint.pos[t],i=n.pos,a=o-n.mousePos;return a<0?n.lo||(o<r.lo?(n.lo=!0,n.pos=s.lo):n.hi?o<r.hi&&(n.hi=!1,n.pos+=a):n.pos+=a):a>0&&(n.hi||(o>r.hi?(n.hi=!0,n.pos=s.hi):n.lo?o>r.lo&&(n.lo=!1,n.pos+=a):n.pos+=a)),n.mousePos=o,i!==n.pos}dropXY(t){let o=this[t],n=this.constraint.zone[t];return o.lo?Math.max(n.lo,o.mousePos):o.hi?Math.min(o.mousePos,Math.round(n.hi)-1):o.mousePos}};var Cm=e=>e.pos.tab&&$(e.component)==="Stack"&&e.pos.position.Header,{north:Sa,south:Pa,east:Ma,west:La}=Be,Ia=Ma+La,Ca=Sa+Pa,Ie=class{constructor({component:t,pos:o,clientRect:n,nextDropTarget:r}){this.component=t,this.pos=o,this.clientRect=n,this.nextDropTarget=r,this.active=!1,this.dropRect=void 0}targetTabPos(t){let{left:o,width:n,positionRelativeToTab:r}=t;return r===lt.BEFORE?o:o+n}getTargetDropOutline(t,o){if(this.pos.tab)return this.getDropTabOutline(t,this.pos.tab);if(o&&o.hasIntrinsicSize())return this.getIntrinsicDropRect(o);{let[n,r,s,i]=this.getDropRectOutline(t,o);return{l:n,t:r,r:s,b:i}}}getDropTabOutline(t,o){var f,y;let{clientRect:{top:n,left:r,right:s,bottom:i,header:a}}=this,l=0,c=Math.round(t/2)+l,p=Math.round(n),d=Math.round(r+c),u=Math.round(s-c),m=Math.round(i-c),h=this.targetTabPos(o),g=60,b=((f=a==null?void 0:a.bottom)!=null?f:0)-((y=a==null?void 0:a.top)!=null?y:0);return{l:d,t:p,r:u,b:m,tabLeft:h,tabWidth:g,tabHeight:b}}getIntrinsicDropRect(t){var g,b,f,y;let{pos:o,clientRect:n}=this,{x:r,y:s}=t,i=(b=(g=t.intrinsicSize)==null?void 0:g.height)!=null?b:0,a=(y=(f=t.intrinsicSize)==null?void 0:f.height)!=null?y:0;i&&i>n.height?(console.log("DropTarget: we're going to blow the gaff"),i=n.height):a&&a>n.width&&(console.log("DropTarget: we're going to blow the gaff"),a=n.width);let l=Math.min(n.right-a,Math.max(n.left,Math.round(o.x-r.mousePct*a))),c=Math.min(n.bottom-i,Math.max(n.top,Math.round(o.y-s.mousePct*i))),[p,d,u,m]=this.dropRect=[l,c,l+a,c+i],h=o.position.EastOrWest?[p,n.top,p,n.bottom,u,n.top,u,n.bottom]:[n.left,d,n.right,d,n.left,m,n.right,m];return{l:p,r:u,t:d,b:m,guideLines:h}}getDropRectOutline(t,o){var y,T,x;let{pos:n,clientRect:r}=this,{width:s,height:i,position:a}=n,{width:l,height:c}=(y=o==null?void 0:o.intrinsicSize)!=null?y:{},p=(T=c!=null?c:i)!=null?T:0,d=(x=l!=null?l:s)!=null?x:0;this.dropRect=void 0;let{top:u,left:m,right:h,bottom:g}=r,b=0,f=Math.round(t/2)+b;switch(a){case se.North:case se.Header:{let v=Math.round((g-u)/2),E=p?Math.min(v,Math.round(p)):v;return d&&m+d<h?[m+f,u+f,m+d-f,u+f+E]:[m+f,u+f,h-f,u+f+E]}case se.West:{let v=Math.round((h-m)/2),E=d?Math.min(v,Math.round(d)):v;return p&&u+p<g?[m+f,u+f,m-f+E,u+p+f]:[m+f,u+f,m-f+E,g-f]}case se.East:{let v=Math.round((h-m)/2),E=d?Math.min(v,Math.round(d)):v;return p&&u+p<g?[h-f-E,u+f,h-f,u+p+f]:[h-f-E,u+f,h-f,g-f]}case se.South:{let v=Math.round((g-u)/2),E=p?Math.min(v,Math.round(p)):v;return d&&m+d<h?[m+f,g-f-E,m+d-f,g-f]:[m+f,g-f-E,h-f,g-f]}case se.Centre:return[m+f,u+f,h-f,g-f];default:return console.warn(`DropTarget does not recognize position ${a}`),null}}activate(){return this.active=!0,this}toArray(){let t=this,o=[t];for(;t=t.nextDropTarget;)o.push(t);return o}static getActiveDropTarget(t){return t===null?null:t!=null&&t.active?t:Ie.getActiveDropTarget(t.nextDropTarget)}};function Lo(e,t,o,n,r,s){var l;let i=null,a=Xe.allBoxesContainingPoint(o,n,e,t,s);if(a.length){let[c,...p]=a,{"data-path":d,path:u=d,"data-row-placeholder":m}=A(c),h=n[u],b=Mo(e,t,h,r&&m?"row":void 0),f=n[u],y=([T,...x])=>{var v,E;if((v=b.position)!=null&&v.Header||b.closeToTheEdge){let D=Oa(T,b,f,n,e,t);if(D){let[P,k]=D;return new Ie({component:T,pos:P,clientRect:k,nextDropTarget:(E=y(x))!=null?E:null})}else if(x.length)return y(x)}};i=new Ie({component:c,pos:b,clientRect:h,nextDropTarget:(l=y(p))!=null?l:null}).activate()}return i}function Oa(e,{closeToTheEdge:t,position:o},n,r,s,i){if(!e||e.type==="DraggableLayout")return;let a=r[e.props.path],l=t&Be.north,c=t&Be.east,p=t&Be.south,d=t&Be.west,u=(l||o.Header)&&Math.round(n.top)===Math.round(a.top),m=c&&Math.round(n.right)===Math.round(a.right),h=p&&Math.round(n.bottom)===Math.round(a.bottom),g=d&&Math.round(n.left)===Math.round(a.left);if(u||m||h||g){let{"data-path":b,path:f=b}=e.props,y=r[f],T=Mo(s,i,y);if((Aa(e)||Un(e))&&t&Ia)return T.width=120,[T,y];if((Ha(e)||Un(e))&&(o.Header||t&Ca))return T.height=120,[T,y]}}function Un(e){return $(e)==="Stack"}function Aa(e){return $(e)==="Flexbox"&&e.props.style.flexDirection==="column"}function Ha(e){return $(e)==="Flexbox"&&e.props.style.flexDirection==="row"}import{PopupService as Co}from"@vuu-ui/vuu-popups";import ka from"classnames";import{jsx as qn}from"react/jsx-runtime";function Xn(e,t=0,o=0){let{pos:n,clientRect:r}=e,s=20;return n.position.West?[r.left-o+s,n.y-t,"left"]:n.position.South?[n.x-o,r.bottom-t-s,"bottom"]:n.position.East?[r.right-o-s,n.y-t,"right"]:[n.x-o,r.top-t+s,"top"]}var Io="vuuDropMenu",Yn=({className:e,dropTarget:t,onHover:o,orientation:n})=>{let r=t.toArray();return qn("div",{className:ka(Io,e,`${Io}-${n}`),onMouseLeave:()=>o(null),children:r.map((s,i)=>qn("div",{className:`${Io}-item`,"data-icon":i===0?"column-2A":"column-2B",onMouseEnter:()=>o(s)},i))})};import{jsx as Va}from"react/jsx-runtime";var Oo=!1,ct=null,be=null,za=e=>ct=e,Na=([e,t])=>`M${e},${t}`,Ba=([e,t])=>`L${e},${t}`,jn=([e,...t])=>`${Na(e)} ${t.map(Ba)}Z`,$a=e=>{if(e){let[t,o,n,r,s,i,a,l]=e;return`M${t},${o} L${n},${r} M${s},${i} L${a},${l}`}else return""};function Fa(){if(document.getElementById("hw-drag-canvas")===null){let e=document.getElementById("root"),t=document.createElement("div");t.id="hw-drag-canvas",t.innerHTML=`
|
|
1
|
+
import{partition as rn}from"@vuu-ui/vuu-utils";import ol from"classnames";var Yr={},jr={},Me={};function ne(e){return Yr[e]===!0}function ja(e){return jr[e]===!0}var Jr=e=>ne(e)||ja(e),Um=e=>!!Me[e];function Q(e,t,o="component"){Me[e]=t,o==="container"?Yr[e]=!0:o==="view"&&(jr[e]=!0)}import{Button as Qr,useControlled as Ja}from"@salt-ds/core";import en from"classnames";import{useCallback as Qa}from"react";import{jsx as dt,jsxs as tl}from"react/jsx-runtime";var Pe="vuuDrawer",tn=e=>typeof e=="string"?e:e+"px",el=(e,t,o)=>{let r=t!==void 0,n=o!==void 0;if(!(!e&&!n&&!r))return!n&&!r?e:{...e,"--drawer-size":r?tn(t):void 0,"--drawer-peek-size":n?tn(o):void 0}},on=({children:e,className:t,clickToOpen:o,defaultOpen:r,sizeOpen:n,sizeClosed:s,style:i,open:a,position:l="left",inline:c,onClick:d,peekaboo:p=!1,toggleButton:u,...m})=>{let[f,g]=Ja({controlled:a,default:r!=null?r:!1,name:"Drawer",state:"open"}),h=en(Pe,t,`${Pe}-${l}`,{[`${Pe}-open`]:f,[`${Pe}-inline`]:c,[`${Pe}-over`]:!c,[`${Pe}-peekaboo`]:p}),b=Qa(()=>{g(!f)},[f,g]),T=el(i,n,s),E=o?b:d,y=()=>dt("div",{className:en("vuuToggleButton-container"),children:f?dt(Qr,{"aria-label":"close",onClick:b,"data-icon":"close",variant:"secondary"}):dt(Qr,{"aria-label":"open",onClick:b,"data-icon":"close",variant:"secondary"})});return tl("div",{...m,className:h,onClick:E,style:T,children:[u=="start"?y():null,dt("div",{className:`${Pe}-liner`,children:dt("div",{className:`${Pe}-content`,children:e})}),u=="end"?y():null]})};on.displayName="Drawer";var ko=on;import{jsx as il,jsxs as al}from"react/jsx-runtime";var rl=e=>e.type===ko,nl=({props:{position:e="left"}})=>e.match(/top|bottom/),zo=e=>{let{children:t,className:o,id:r,style:n}=e,s="vuuDockLayout",[i,a]=rn(t,rl),[l,c]=rn(i,nl),d=l.length===0?"horizontal":c.length===0?"vertical":"both",p=ol(s,o,`${s}-${d}`);return al("div",{className:p,id:r,style:n,children:[i,il("div",{className:`${s}-content`,children:a})]})};zo.displayName="DockLayout";var sl=zo;Q("DockLayout",zo,"container");import{forwardRef as ll}from"react";import{jsx as cl}from"react/jsx-runtime";var Bo=ll(function({resizeable:t,...o},r){return cl("div",{...o,className:"Component",ref:r})});Bo.displayName="Component";var $o=Bo;Q("Component",Bo);import Le,{isValidElement as sn}from"react";var ul={},F=(e,t)=>{var r;let o=A(e);return(r=o[t])!=null?r:o[`data-${t}`]},A=e=>(e==null?void 0:e.props)||e||ul,nn=e=>{let t=A(e);if(t.children){let{children:[o,...r]}=t;return r.length>0&&console.warn(`getChild expected a single child, found ${r.length+1}`),o}};function _(e){var t;if(e){let o=e.type;if(typeof o=="function"||typeof o=="object"){let r=o.displayName||o.name||((t=o.type)==null?void 0:t.name);if(typeof r=="string")return r}if(typeof e.type=="string")return e.type;if(e.constructor)return e.constructor.displayName;throw Error("typeOf unable to determine type of element")}}var Pf=(e,t)=>_(e)===t;var dl=e=>{let t=e.lastIndexOf(".");return t===-1?e:e.slice(0,t)};function we(e,t){let{"data-path":o,path:r=o}=A(e);return t==="0"||t===r?null:ee(e,dl(t),!0)}function De(e,t){let{children:o,...r}=A(e);if(t(r))return e;if(Le.Children.count(o)>0){let n=Le.isValidElement(o)?[o]:o;for(let s of n){let i=De(s,t);if(i)return i}}}function pl(e,t){if(t===e)return null;let{path:o,children:r}=A(e),{idx:n,finalStep:s}=ge(o,F(t,"path"));return s?e:r===void 0||r[n]===void 0?null:pl(r[n],t)}var ml=(e,t)=>{if(Le.isValidElement(e)&&t==0)return e;if(Array.isArray(e))return e[t]};function an(e,t){let o=t.split("."),r=[e],n=s=>Le.isValidElement(s.props.children)?[s.props.children]:s.props.children;for(let s=0;s<o.length;s++){let i=parseInt(o[s]),a=r[i];if(s===o.length-1)return a;r=n(a)}}var ln=(e,t,o=!0)=>{let{children:r,id:n}=e.props;if(n===t)return e;if(Le.Children.count(r)>0){let s=sn(r)?[r]:r;for(let i of s)if(sn(i)){let a=ln(i,t,!1);if(a)return a}}if(o===!0)throw Error(`pathUtils.findTargetById id #${t} not found in source`)};function ee(e,t,o=!1){if(t.startsWith("#"))return ln(e,t.slice(1),o);let{"data-path":r,path:n=r}=A(e);if(t.indexOf(n)!==0)throw Error(`pathUtils.followPath path ${t} is not within source path ${n}`);let s=t.slice(n.length+1);if(s==="")return e;let i=e,a=s.split(".");for(let l=0;l<a.length;l++){if(Le.Children.count(i.props.children)===0){let c=`element at 0.${a.slice(0,l).join(".")} has no children, so cannot fulfill rest of path ${a.slice(l).join(".")}`;if(o)throw Error(c);console.warn(c);return}if(i=ml(i.props.children,parseInt(a[l])),i===void 0){let c=`model at 0.${a.slice(0,l).join(".")} has no children that fulfill next step of path ${a.slice(l).join(".")}`;if(o)throw Error(c);console.warn(c)}}return i}function Of(e,t){let o=we(e,t),r=t.split(".").map(n=>parseInt(n,10));if(o){let n=r.pop(),{children:s}=o.props;if(s.length-1>n)return _t(s[n+1]);{let i=r.pop(),a=we(e,F(o,"path"));if(a&&typeof i=="number"&&(r=a.props.path.split(".").map(l=>parseInt(l,10)),a.props.children.length-1>i)){let l=a.props.children[i+1];return ne(_(l))?_t(l):l}}}return _t(e)}function kf(e,t){let o=t.split(".").map(s=>parseInt(s,10)),r=o.pop(),n=we(e,t);if(n!=null&&typeof r=="number"){let{children:s}=n.props;if(r>0)return Wt(s[r-1]);for(;o.length>1;)if(r=o.pop(),n=we(e,F(n,"path")),r>0){let i=n.props.children[r-1];return ne(_(i))?Wt(i):i}}return Wt(e)}function _t(e){if(ne(_(e))){let{children:t}=e.props||e;return _t(t[0])}return e}function Wt(e){if(ne(_(e))){let{children:t}=e.props||e;return Wt(t[t.length-1])}return e}function ge(e,t,o=!1){if(e===t)return{idx:-1,finalStep:!0};let r=`${e}.`;if(!t.startsWith(r))throw Error("pathUtils nextStep has strayed from the path");let n=o?0:1,s=t.replace(r,"").split(".").map(i=>parseInt(i,10));return{idx:s[0],finalStep:s.length===n}}function te(e,t,o){if(F(e,"path")===t)return e;let r=[];Le.Children.forEach(e.props.children,(s,i)=>{F(s,"path")?r.push(te(s,`${t}.${i}`)):r.push(s)});let n=e.props["data-path"]?"data-path":"path";return Le.cloneElement(e,{[n]:t,...o},r)}function Bf(e,t){typeof e=="function"?e(t):e&&(e.current=t)}import{Children as fl,isValidElement as cn,useLayoutEffect as gl,useMemo as hl,useRef as bl}from"react";var yl=[],xl=0,je=e=>{let t=Array.isArray(e),o=t?e.length:fl.count(e);return t&&e.every(cn)?e:o===1&&!t&&cn(e)?[e]:o>1?e:yl},un=(e,t)=>{let o=bl(!1);gl(()=>{o.current?e():o.current=!0},t)},Vt=e=>hl(()=>e!=null?e:`vuu-${++xl}`,[e]);var Fo=e=>{if(typeof e!="number")throw Error(`"no support yet for flex value ${e}`);return{flexBasis:0,flexGrow:1,flexShrink:1}};var $e={north:1,east:2,south:4,west:8,header:16,centre:32,absolute:64},pt={AFTER:"after",BEFORE:"before"},se=Object.freeze({North:Be("north"),East:Be("east"),South:Be("south"),West:Be("west"),Header:Be("header"),Centre:Be("centre"),Absolute:Be("absolute")});function Be(e){return Object.freeze({offset:e==="north"||e==="west"?0:e==="south"||e==="east"?1:NaN,valueOf:function(){return $e[e]},toString:function(){return e},North:e==="north",South:e==="south",East:e==="east",West:e==="west",Header:e==="header",Centre:e==="centre",NorthOrSouth:e==="north"||e==="south",EastOrWest:e==="east"||e==="west",NorthOrWest:e==="north"||e==="west",SouthOrEast:e==="east"||e==="south",Absolute:e==="absolute"})}var dn=se.North,pn=se.South,_o=se.East,Wo=se.West,El=se.Header,Tl=se.Centre,Je=class{static measure(t,o=[]){let r={};return Dl(t,r,o),r}static allBoxesContainingPoint(t,o,r,n,s){return hn(t,o,r,n,s).reverse()}};function Vo(e,t,o,r=30){let n=o.right-o.left,s=o.bottom-o.top,i=e-o.left,a=t-o.top,l=0;return i<r&&(l+=8),i>n-r&&(l+=2),a<r&&(l+=1),a>s-r&&(l+=4),{pctX:i/n,pctY:a/s,closeToTheEdge:l}}function Ko(e,t,o,r){let{BEFORE:n,AFTER:s}=pt,{pctX:i,pctY:a,closeToTheEdge:l}=Vo(e,t,o),c,d;if(r==="row")c=i<.5?Wo:_o;else if(o.header&&Kt(o.header,e,t))if(c=El,o.Stack){let p=o.Stack.length;if(p===0)d={index:-1,left:o.left,positionRelativeToTab:s,width:0};else{let u=o.Stack.find(({left:m,right:f})=>e>=m&&e<=f);if(u){let m=u.right-u.left;d={index:o.Stack.indexOf(u),left:u.left,positionRelativeToTab:(e-u.left)/m<.5?n:s,width:m}}else d={left:o.Stack[p-1].right,width:0,index:p,positionRelativeToTab:s}}}else if(o.header.titleWidth){let p=o.header.titleWidth;d={index:-1,left:o.left,positionRelativeToTab:(e-o.left)/p<.5?n:s,width:p}}else d={left:o.left,width:0,positionRelativeToTab:n,index:-1};else c=vl(e,t,o,i,a);return{position:c,x:e,y:t,closeToTheEdge:l,tab:d}}function vl(e,t,o,r,n){let s=wl(o,.2);if(Kt(s,e,t))return Tl;switch(`${n<.5?"north":"south"}${r<.5?"west":"east"}`){case"northwest":return r>n?dn:Wo;case"northeast":return 1-r>n?dn:_o;case"southeast":return r>n?_o:pn;case"southwest":return 1-r>n?Wo:pn;default:}}function wl({right:e,left:t,top:o,bottom:r},n){let s=(1-n)/2,i=(e-t)*s,a=(r-o)*s;return{left:t+i,top:o+a,right:e-i,bottom:r-a}}function Dl(e,t,o){let{id:r,"data-path":n,path:s=n}=A(e),i=_(e);if(r&&s){let[a,l]=gn(e);mn(e,a,l,t),ne(i)&&fn(e,t,o)}}function mn(e,t,o,r){let{"data-path":n,path:s=n,header:i}=A(e);r[s]=t;let a=_(e);if(i||a==="Stack"){let l=o.querySelector(".vuuHeader");if(l){let{top:c,left:d,right:p,bottom:u}=l.getBoundingClientRect();if(r[s].header={top:Math.round(c),left:Math.round(d),right:Math.round(p),bottom:Math.round(u)},a==="Stack")r[s].Stack=Array.from(l.querySelectorAll(".saltTab")).map(m=>m.getBoundingClientRect()).map(({left:m,right:f})=>({left:m,right:f}));else{let m=l.querySelector('[class^="vuuHeader-title"]'),{header:f}=r[s];m&&f&&(f.titleWidth=m.clientWidth)}}}return r[s]}function fn(e,t,o,r=0,n=0,s=0,i=0){let{children:a,"data-path":l,path:c=l,style:d,active:p=0}=A(e),u=_(e),m=u==="Flexbox",f=u==="Stack",g=m&&d.flexDirection==="column",h=m&&d.flexDirection==="row",T=(f?a.filter((y,v)=>v===p):a.filter(Sl)).map(y=>{let[v,x]=gn(y);return[{...v,top:v.top-s,right:v.right+n,bottom:v.bottom+i,left:v.left-r},x,y]}),E=T.map(([y,v,x],w,S)=>{let O,H,P,D,I,M,R=S.length-1;h?(I=w===0?0:y.left-S[w-1][0].right,M=w===R?0:S[w+1][0].left-y.right,O=w===0||I===0?0:I,H=w===R||M===0?0:M-M/2,y.left-=O,y.right+=H,P=s,D=i):g&&(I=w===0?0:y.top-S[w-1][0].bottom,M=w===R?0:S[w+1][0].top-y.bottom,P=w===0||I===0?0:I,D=w===R||M===0?0:M-M/2,y.top-=P,y.bottom+=D,O=r,H=n);let L=mn(x,y,v,t),C=_(x);return ne(C)&&fn(x,t,o,O,H,P,D),L});T.length&&(t[c].children=E)}function Sl(e){let{id:t}=A(e),o=document.getElementById(t);return o?o.dataset.dragging!=="true":(console.warn(`BoxModel: no element found with id #${t}`),!1)}function gn(e){let{id:t}=A(e);if(t===void 0)throw Error("`BoxModel.measureComponentElement, component has no id");let o=document.getElementById(t);if(!o)throw Error("BoxModel.measureComponentElement, no DOM element found for component");let{top:r,left:n,right:s,bottom:i,height:a,width:l}=o.getBoundingClientRect(),c,d=_(e);if(ne(d)){let p=o.scrollHeight;p>a&&(c={id:t,scrollHeight:p,scrollTop:o.scrollTop})}return[{top:Math.round(r),left:Math.round(n),right:Math.round(s),bottom:Math.round(i),height:Math.round(a),width:Math.round(l),scrolling:c},o,e]}function hn(e,t,o,r,n,s=[]){let{children:i,"data-path":a,path:l=a}=A(e),c=_(e),d=t[l];if(!Kt(d,o,r))return s;if(n&&n.length){if(n.includes(l))s.push(e);else if(!n.some(p=>p.startsWith(l)))return s}else s.push(e);if(!ne(c)||d.header&&Kt(d.header,o,r))return s;d.scrolling&&Rl(d,o,r);for(let p=0;p<i.length;p++){if(c==="Stack"&&e.props.active!==p)continue;let u=hn(i[p],t,o,r,n);if(u.length)return s.concat(u)}return s}function Kt(e,t,o){if(e)return t>=e.left&&t<e.right&&o>=e.top&&o<e.bottom}function Rl({top:e,bottom:t,scrolling:o},r,n){if(o){let{id:s,scrollTop:i,scrollHeight:a}=o,l=t-e;if(i===0&&t-n<50){let c=a-l;document.getElementById(s).scrollTo({left:0,top:c,behavior:"smooth"}),o.scrollTop=c}else if(i>0&&n-e<50)document.getElementById(s).scrollTo({left:0,top:0,behavior:"smooth"}),o.scrollTop=0;else return!1}else return!1}var Ml=.4,Gt=class{constructor(t,o,r,n,s){this.init(t,o,r,n,s)}init(t,o,r,n,s){let{left:i,top:a}=n,{pctX:l,pctY:c}=Vo(o,r,n),d=Ml,p=l*n.width,u=n.width-p,m=c*n.height,f=n.height-m,g=n.width*d,h=n.height*d,b=1-d,T=p*b,E=m*b,y=u*b,v=f*b;this.intrinsicSize=s,this.constraint={zone:{x:{lo:t.left,hi:t.right},y:{lo:t.top,hi:t.bottom}},pos:{x:{lo:t.left-T,hi:t.right-n.width+y},y:{lo:t.top-E,hi:t.bottom-n.height+v}},mouse:{x:{lo:t.left+g*l,hi:t.right-g*(1-l)},y:{lo:t.top+h*c,hi:t.bottom-h*(1-c)}}},this.x={pos:i,lo:!1,hi:!1,mousePos:o,mousePct:l},this.y={pos:a,lo:!1,hi:!1,mousePos:r,mousePct:c}}outOfBounds(){return this.x.lo||this.x.hi||this.y.lo||this.y.hi}inBounds(){return!this.outOfBounds()}dropX(){return this.dropXY("x")}dropY(){return this.dropXY("y")}hasIntrinsicSize(){var t,o;return((t=this==null?void 0:this.intrinsicSize)==null?void 0:t.height)&&((o=this==null?void 0:this.intrinsicSize)==null?void 0:o.width)}update(t,o){let r=this[t],n=this.constraint.mouse[t],s=this.constraint.pos[t],i=r.pos,a=o-r.mousePos;return a<0?r.lo||(o<n.lo?(r.lo=!0,r.pos=s.lo):r.hi?o<n.hi&&(r.hi=!1,r.pos+=a):r.pos+=a):a>0&&(r.hi||(o>n.hi?(r.hi=!0,r.pos=s.hi):r.lo?o>n.lo&&(r.lo=!1,r.pos+=a):r.pos+=a)),r.mousePos=o,i!==r.pos}dropXY(t){let o=this[t],r=this.constraint.zone[t];return o.lo?Math.max(r.lo,o.mousePos):o.hi?Math.min(o.mousePos,Math.round(r.hi)-1):o.mousePos}};var lg=e=>e.pos.tab&&_(e.component)==="Stack"&&e.pos.position.Header,{north:Pl,south:Ll,east:Il,west:Cl}=$e,Nl=Il+Cl,Hl=Pl+Ll,Ie=class{constructor({component:t,pos:o,clientRect:r,nextDropTarget:n}){this.component=t,this.pos=o,this.clientRect=r,this.nextDropTarget=n,this.active=!1,this.dropRect=void 0}targetTabPos(t){let{left:o,width:r,positionRelativeToTab:n}=t;return n===pt.BEFORE?o:o+r}getTargetDropOutline(t,o){if(this.pos.tab)return this.getDropTabOutline(t,this.pos.tab);if(o&&o.hasIntrinsicSize())return this.getIntrinsicDropRect(o);{let[r,n,s,i]=this.getDropRectOutline(t,o);return{l:r,t:n,r:s,b:i}}}getDropTabOutline(t,o){var b,T;let{clientRect:{top:r,left:n,right:s,bottom:i,header:a}}=this,l=0,c=Math.round(t/2)+l,d=Math.round(r),p=Math.round(n+c),u=Math.round(s-c),m=Math.round(i-c),f=this.targetTabPos(o),g=60,h=((b=a==null?void 0:a.bottom)!=null?b:0)-((T=a==null?void 0:a.top)!=null?T:0);return{l:p,t:d,r:u,b:m,tabLeft:f,tabWidth:g,tabHeight:h}}getIntrinsicDropRect(t){var g,h,b,T;let{pos:o,clientRect:r}=this,{x:n,y:s}=t,i=(h=(g=t.intrinsicSize)==null?void 0:g.height)!=null?h:0,a=(T=(b=t.intrinsicSize)==null?void 0:b.height)!=null?T:0;i&&i>r.height?(console.log("DropTarget: we're going to blow the gaff"),i=r.height):a&&a>r.width&&(console.log("DropTarget: we're going to blow the gaff"),a=r.width);let l=Math.min(r.right-a,Math.max(r.left,Math.round(o.x-n.mousePct*a))),c=Math.min(r.bottom-i,Math.max(r.top,Math.round(o.y-s.mousePct*i))),[d,p,u,m]=this.dropRect=[l,c,l+a,c+i],f=o.position.EastOrWest?[d,r.top,d,r.bottom,u,r.top,u,r.bottom]:[r.left,p,r.right,p,r.left,m,r.right,m];return{l:d,r:u,t:p,b:m,guideLines:f}}getDropRectOutline(t,o){var T,E,y;let{pos:r,clientRect:n}=this,{width:s,height:i,position:a}=r,{width:l,height:c}=(T=o==null?void 0:o.intrinsicSize)!=null?T:{},d=(E=c!=null?c:i)!=null?E:0,p=(y=l!=null?l:s)!=null?y:0;this.dropRect=void 0;let{top:u,left:m,right:f,bottom:g}=n,h=0,b=Math.round(t/2)+h;switch(a){case se.North:case se.Header:{let v=Math.round((g-u)/2),x=d?Math.min(v,Math.round(d)):v;return p&&m+p<f?[m+b,u+b,m+p-b,u+b+x]:[m+b,u+b,f-b,u+b+x]}case se.West:{let v=Math.round((f-m)/2),x=p?Math.min(v,Math.round(p)):v;return d&&u+d<g?[m+b,u+b,m-b+x,u+d+b]:[m+b,u+b,m-b+x,g-b]}case se.East:{let v=Math.round((f-m)/2),x=p?Math.min(v,Math.round(p)):v;return d&&u+d<g?[f-b-x,u+b,f-b,u+d+b]:[f-b-x,u+b,f-b,g-b]}case se.South:{let v=Math.round((g-u)/2),x=d?Math.min(v,Math.round(d)):v;return p&&m+p<f?[m+b,g-b-x,m+p-b,g-b]:[m+b,g-b-x,f-b,g-b]}case se.Centre:return[m+b,u+b,f-b,g-b];default:return console.warn(`DropTarget does not recognize position ${a}`),null}}activate(){return this.active=!0,this}toArray(){let t=this,o=[t];for(;t=t.nextDropTarget;)o.push(t);return o}static getActiveDropTarget(t){return t===null?null:t!=null&&t.active?t:Ie.getActiveDropTarget(t.nextDropTarget)}};function Go(e,t,o,r,n,s){var l;let i=null,a=Je.allBoxesContainingPoint(o,r,e,t,s);if(a.length){let[c,...d]=a,{"data-path":p,path:u=p,"data-row-placeholder":m}=A(c),f=r[u],h=Ko(e,t,f,n&&m?"row":void 0),b=r[u],T=([E,...y])=>{var v,x;if((v=h.position)!=null&&v.Header||h.closeToTheEdge){let w=Al(E,h,b,r,e,t);if(w){let[S,O]=w;return new Ie({component:E,pos:S,clientRect:O,nextDropTarget:(x=T(y))!=null?x:null})}else if(y.length)return T(y)}};i=new Ie({component:c,pos:h,clientRect:f,nextDropTarget:(l=T(d))!=null?l:null}).activate()}return i}function Al(e,{closeToTheEdge:t,position:o},r,n,s,i){if(!e||e.type==="DraggableLayout")return;let a=n[e.props.path],l=t&$e.north,c=t&$e.east,d=t&$e.south,p=t&$e.west,u=(l||o.Header)&&Math.round(r.top)===Math.round(a.top),m=c&&Math.round(r.right)===Math.round(a.right),f=d&&Math.round(r.bottom)===Math.round(a.bottom),g=p&&Math.round(r.left)===Math.round(a.left);if(u||m||f||g){let{"data-path":h,path:b=h}=e.props,T=n[b],E=Ko(s,i,T);if((Ol(e)||bn(e))&&t&Nl)return E.width=120,[E,T];if((kl(e)||bn(e))&&(o.Header||t&Hl))return E.height=120,[E,T]}}function bn(e){return _(e)==="Stack"}function Ol(e){return _(e)==="Flexbox"&&e.props.style.flexDirection==="column"}function kl(e){return _(e)==="Flexbox"&&e.props.style.flexDirection==="row"}import{PopupService as Uo}from"@vuu-ui/vuu-popups";import zl from"classnames";import{jsx as yn}from"react/jsx-runtime";function xn(e,t=0,o=0){let{pos:r,clientRect:n}=e,s=20;return r.position.West?[n.left-o+s,r.y-t,"left"]:r.position.South?[r.x-o,n.bottom-t-s,"bottom"]:r.position.East?[n.right-o-s,r.y-t,"right"]:[r.x-o,n.top-t+s,"top"]}var Zo="vuuDropMenu",En=({className:e,dropTarget:t,onHover:o,orientation:r})=>{let n=t.toArray();return yn("div",{className:zl(Zo,e,`${Zo}-${r}`),onMouseLeave:()=>o(null),children:n.map((s,i)=>yn("div",{className:`${Zo}-item`,"data-icon":i===0?"column-2A":"column-2B",onMouseEnter:()=>o(s)},i))})};import{jsx as Kl}from"react/jsx-runtime";var Xo=!1,mt=null,he=null,Bl=e=>mt=e,$l=([e,t])=>`M${e},${t}`,Fl=([e,t])=>`L${e},${t}`,Tn=([e,...t])=>`${$l(e)} ${t.map(Fl)}Z`,_l=e=>{if(e){let[t,o,r,n,s,i,a,l]=e;return`M${t},${o} L${r},${n} M${s},${i} L${a},${l}`}else return""};function Wl(){if(document.getElementById("hw-drag-canvas")===null){let e=document.getElementById("root"),t=document.createElement("div");t.id="hw-drag-canvas",t.innerHTML=`
|
|
2
2
|
<svg width="100%" height="100%">
|
|
3
3
|
<path id="hw-drop-guides" />
|
|
4
4
|
<path
|
|
@@ -14,7 +14,10 @@ import{partition as Hn}from"@vuu-ui/vuu-utils";import ea from"classnames";var Pn
|
|
|
14
14
|
/>
|
|
15
15
|
</path>
|
|
16
16
|
</svg>
|
|
17
|
-
`,document.body.insertBefore(t,e)}}var ut=class{constructor(){this.currentPath=null;this.tabMode=null;Fa()}prepare(t,o="full-view"){document.body.classList.add("drawing"),this.currentPath=null,this.tabMode=o;let n=this.getPoints(0,0,0,0),r=jn(n),s=document.getElementById("vuu-drop-outline");s==null||s.setAttribute("d",r),this.currentPath=r}clear(){ct=null,Nt(),document.body.classList.remove("drawing"),Co.hidePopup()}get hoverDropTarget(){return ct}getPoints(t,o,n,r,s=0,i=0,a=0){let l=this.tabMode==="tab-only";if(i===0)return[[t,o+a],[t,o+a],[t,o],[t+i,o],[t+i,o],[t+n,o],[t+n,o+r],[t,o+r]];if(l){let c=s;return[[c,o],[c,o],[c+i,o],[c+i,o],[c+i,o+a],[c+i,o+a],[c,o+a],[c,o+a]]}else return s===0?[[t,o+a],[t,o+a],[t,o],[t+i,o],[t+i,o+a],[t+n,o+a],[t+n,o+r],[t,o+r]]:[[t,o+a],[t+s,o+a],[t+s,o],[t+s,o],[t+s,o+a],[t+n,o+a],[t+n,o+r],[t,o+r]]}draw(t,o){let r=Oo;if(ct!==null)this.drawTarget(ct);else if(Oo=t.nextDropTarget!=null,t.pos.tab?_a(t):be&&Nt(),this.drawTarget(t,o),Oo){let[s,i,a]=Xn(t);{let l=Va(Yn,{dropTarget:t,onHover:za,orientation:a});Co.showPopup({left:s,top:i,component:l})}}else Co.hidePopup()}drawTarget(t,o){let r=t.getTargetDropOutline(6,o);if(r){let{l:s,t:i,r:a,b:l,tabLeft:c,tabWidth:p,tabHeight:d,guideLines:u}=r,m=a-s,h=l-i;if(this.currentPath){let T=document.getElementById("vuu-drop-outline");T==null||T.setAttribute("d",this.currentPath)}let g=this.getPoints(s,i,m,h,c,p,d),b=jn(g),f=document.getElementById("hw-drop-outline-animate");f==null||f.setAttribute("to",b),f==null||f.beginElement(),this.currentPath=b;let y=document.getElementById("hw-drop-guides");y==null||y.setAttribute("d",$a(u))}}},Jn="transition:margin-left .4s ease-out;margin-left: 63px",Qn="transition:margin-left .4s ease-out;margin-left: 0px";function _a(e){var a,l;let{AFTER:t,BEFORE:o}=lt,{clientRect:{Stack:n},pos:{tab:r}}=e,{id:s}=e.component.props,i=null;if(n&&r&&r.positionRelativeToTab!==t){let c=r.positionRelativeToTab===o?1:2,p=`:scope .hwTabstrip > .hwTabstrip-inner > .hwTab:nth-child(${r.index+c})`;i=(a=document.getElementById(s))==null?void 0:a.querySelector(p),i?(be===null||be!==i)&&(i.style.cssText=Jn,be&&(be.style.cssText=Qn),be=i):Nt()}else if((r==null?void 0:r.positionRelativeToTab)===o){if(be===null){let c=".vuuHeader-title";i=(l=document.getElementById(s))==null?void 0:l.querySelector(c),i.style.cssText=Jn,be=i}}else Nt()}function Nt(){be&&(be.style.cssText=Qn,be=null)}var Re,pt,Ce,tr,or,Oe,Bt,Ye=null,Ho,nr,dt,rr,Ao,$t=null,Wa=3,Ft=new ut,er=.4;function Ga(e,t){return t?ee(e,t):we(e,o=>o.dropTarget)}var ko={handleMousedown(e,t,o={}){Re=t,nr=o,tr=e.clientX,or=e.clientY,Ao=o.dragThreshold===void 0?Wa:o.dragThreshold,Ao===0?Re(e,0,0):(window.addEventListener("mousemove",_t,!1),window.addEventListener("mouseup",Vt,!1),$t=window.setTimeout(()=>{console.log("mousedownTimer fires"),window.removeEventListener("mousemove",_t,!1),window.removeEventListener("mouseup",Vt,!1),Re==null||Re(e,0,0)},500)),e.preventDefault()},initDrag(e,t,{top:o,left:n,right:r,bottom:s},i,a,l,c){return{drag:pt,drop:Ce}=a,Ka(e,t,{top:o,left:n,right:r,bottom:s},i,l,c)}};function _t(e){let n=e.clientX-tr,r=e.clientY-or;Math.max(Math.abs(n),Math.abs(r))>Ao&&(window.removeEventListener("mousemove",_t,!1),window.removeEventListener("mouseup",Vt,!1),Re==null||Re(e,n,r),Re=null)}function Vt(){$t&&(window.clearTimeout($t),$t=null),window.removeEventListener("mousemove",_t,!1),window.removeEventListener("mouseup",Vt,!1)}function Ka(e,t,o,n,r,s){Oe=Ga(e,t);let{"data-path":i,path:a=i}=A(Oe);s&&(Ho=s.map(u=>we(e,m=>m.id===u)).map(u=>u.props.path)),dt=Xe.measure(Oe,s),console.log({_measurements:dt});let l=dt[a];Bt=new zt(l,n.x,n.y,o,r);let c=Math.round(Bt.x.mousePct*100),p=Math.round(Bt.y.mousePct*100);return window.addEventListener("mousemove",sr,!1),window.addEventListener("mouseup",ir,!1),rr=!1,Ft.prepare(o,"tab-only"),nr.DoNotTransform?"transform:none":`transform:scale(${er},${er});transform-origin:${c}% ${p}%;`}function sr(e){let t=e.clientX,o=e.clientY,n=Bt,r=Ye,s,i,a;n.update("x",t)&&(i=n.x.pos),n.update("y",o)&&(a=n.y.pos),i===void 0&&a===void 0||pt==null||pt(i,a),!(rr||Oe===void 0)&&(n.inBounds()?s=Lo(t,o,Oe,dt,n.hasIntrinsicSize(),Ho):s=Lo(n.dropX(),n.dropY(),Oe,dt),r&&(s==null||s.box!==r.box)&&(Ye=null),s&&(Ft.draw(s,n),Ye=s))}function ir(){Za()}function Za(){if(Ye){let e=Ft.hoverDropTarget||Ie.getActiveDropTarget(Ye);Ce==null||Ce(e),Ye=null}else Ce==null||Ce({component:Oe,pos:{position:se.Absolute}});pt=null,Ce=null,Oe=void 0,Ft.clear(),Ho=void 0,window.removeEventListener("mousemove",sr,!1),window.removeEventListener("mouseup",ir,!1)}import Ua from"classnames";import{forwardRef as qa}from"react";import{jsx as Xa}from"react/jsx-runtime";var ar=qa(function({children:t,className:o,dropTarget:n,resizeable:r,...s},i){let a=Ua("DraggableLayout",o);return Xa("div",{className:a,ref:i,...s,children:t})}),lr="DraggableLayout";ar.displayName=lr;Y(lr,ar,"container");import{useForkRef as yl}from"@salt-ds/core";import El from"classnames";import{forwardRef as xl}from"react";import{getUniqueId as pl}from"@vuu-ui/vuu-utils";import bt,{useCallback as Ut,useMemo as xr,useRef as qt,useState as dl}from"react";import Ya from"classnames";import{jsx as ja}from"react/jsx-runtime";var cr="vuuPlaceholder",Wt=({className:e,closeable:t,flexFill:o,resizeable:n,shim:r,...s})=>ja("div",{className:Ya(cr,e,{[`${cr}-shim`]:r}),...s,"data-placeholder":!0,"data-resizeable":!0});Wt.displayName="Placeholder";Y("Placeholder",Wt);import Ja from"classnames";import Qa,{useCallback as mt,useRef as Gt,useState as el}from"react";import{jsx as ur}from"react/jsx-runtime";var pr=Qa.memo(function({column:t,index:o,onDrag:n,onDragEnd:r,onDragStart:s,style:i}){let a=Gt(),l=Gt(null),c=Gt(0),[p,d]=el(!1),u=mt(({key:E,shiftKey:D})=>{let P=D?10:1;t&&E==="ArrowDown"?n(o,P):t&&E==="ArrowUp"||!t&&E==="ArrowLeft"?n(o,-P):!t&&E==="ArrowRight"&&n(o,P)},[t,o,n]),m=mt(E=>{let{key:D}=E;(t&&(D==="ArrowUp"||D==="ArrowDown")||!t&&(D==="ArrowLeft"||D==="ArrowRIght"))&&(s(o),u(E),h.current=u)},[t,u,o,s]),h=Gt(m),g=E=>h.current(E),b=mt(E=>{a.current=!0;let D=E[t?"clientY":"clientX"],P=D-c.current;D&&D!==c.current&&n(o,P),c.current=D},[t,o,n]),f=mt(()=>{var E;window.removeEventListener("mousemove",b,!1),window.removeEventListener("mouseup",f,!1),r(),d(!1),(E=l.current)==null||E.focus()},[b,r,d]),y=mt(E=>{c.current=t?E.clientY:E.clientX,s(o),window.addEventListener("mousemove",b,!1),window.addEventListener("mouseup",f,!1),E.preventDefault(),d(!0)},[t,b,f,o,s,d]),T=()=>{var E;a.current?a.current=!1:(E=l.current)==null||E.focus()},x=()=>{h.current=m},v=Ja("Splitter","focusable",{active:p,column:t});return ur("div",{className:v,"data-splitter":!0,ref:l,role:"separator",style:i,onBlur:x,onClick:T,onKeyDown:g,onMouseDown:y,tabIndex:0,children:ur("div",{className:"grab-zone"})})});import{uuid as dr}from"@vuu-ui/vuu-utils";import mr from"react";var tl={"data-placeholder":!0,"data-resizeable":!0},Kt={},Ae="auto",zo={flexBasis:0,flexGrow:1,flexShrink:1,height:Ae,width:Ae},fr={height:"width",width:"height"},gr=(e="row")=>e==="row"?["width","height","column"]:["height","width","row"],ol=e=>typeof e=="string"&&e.endsWith("%"),ue=e=>{let{style:{width:t=Ae,height:o=Ae}=Kt}=e.props,n=typeof o=="number",r=typeof t=="number";return n&&r?{height:o,width:t}:n?{height:o}:r?{width:t}:void 0};function No(e,t,o){let n=fr[t],{style:{[n]:r=Ae,...s}=Kt}=e.props;return o&&o[t]?{...s,...zo,flexBasis:o[t],flexGrow:0,flexShrink:0}:{...s,...zo,[n]:r}}function hr(e){let{style:{flex:t,flexGrow:o,flexShrink:n,flexBasis:r}=Kt}=e.props;return typeof t=="number"||r===0&&o===1&&n===1?!0:typeof r!="number"}function Bo(e,t,o){let n=fr[t],{style:{[t]:r=Ae,[n]:s=Ae,...i}=Kt}=e.props;return r!==Ae?ol(r)?{flexBasis:0,flexGrow:1,flexShrink:1,[t]:void 0,[n]:s}:{flexBasis:r,flexGrow:0,flexShrink:0,[t]:r,[n]:s}:o&&o[t]?{...i,...zo,flexBasis:o[t],flexGrow:0,flexShrink:0}:{...i,[n]:s}}function ft(e,t,o,n,r){let s=[],i=0,a;if(n&&r){let p,[d,u,m,h]=r;[p,a]=t==="column"?[u-n.top,n.bottom-h]:[d-n.left,n.right-m],p&&s.push(ye(`${o}.${i++}`,p,{flexGrow:0,flexShrink:0}))}else a=!0;let{version:l=0,style:c}=A(e);return s.push(te(e,`${o}.${i++}`,{version:l+1,style:{...c,flexBasis:"auto",flexGrow:0,flexShrink:0}})),a&&s.push(ye(`${o}.${i++}`,0,void 0,{[`data-${t}-placeholder`]:!0})),$o(t,{resizeable:!1,style:{flexBasis:"auto"}},s,o)}var nl=(e,t)=>{if(!t)return e===0?1:0};function $o(e,t,o,n){let r=dr(),{flexFill:s,style:i,resizeable:a=!0}=t,{flexBasis:l=s?void 0:"auto"}=i,c=nl(l,s);return mr.createElement(Pe.Flexbox,{id:r,key:r,path:n,flexFill:s,style:{...i,flexDirection:e,flexBasis:l,flexGrow:c,flexShrink:c},resizeable:a},o)}var rl={flexGrow:1,flexShrink:1};function ye(e,t,o,n){let r=dr();return mr.createElement("div",{...tl,...n,"data-path":e,id:r,key:r,style:{...rl,...o,flexBasis:t}})}var sl={},gt=1,ht=2,il=e=>typeof e.intrinsicSize=="number",al=(e,t)=>{let o={};return e.forEach(n=>{o[n]=B(t,n)}),o},Zt=(e,t,o)=>e.map((n,r)=>{var l;let s=B(n,"resizeable"),{[t]:i}=(l=ue(n))!=null?l:sl,a=hr(n);return o?{index:r,flexOpen:a,intrinsicSize:i,resizeable:s,...al(o,n)}:{index:r,flexOpen:a,intrinsicSize:i,resizeable:s}}),br=e=>{let t=e.length,o=e.every(il),n=Array(t).fill(0);if(o&&t>0&&(n[0]=ht,n[t-1]=ht),t<2)return n;for(let r=0,s=0;r<t-1;r++)e[r].resizeable&&!s&&(s=gt),n[r]+=s;for(let r=t-1;r>0&&(n[r]>&&(n[r]-=gt),!e[r].resizeable);r--);return n},yr=(e,t)=>{let o=cl(e,t),n=ul(e,t),r=o!==-1&&n!==-1?[o,n]:void 0,s=ll(e,r);return[r,s]};function ll(e,t){if(t){let o=[];for(let n=0;n<e.length;n++)e[n].flexOpen&&!t.includes(n)&&o.push(n);return o}}function cl(e,t){let o=t,n=!1;for(;o>=1&&!n;)o=o-1,n=Er(e,o);return o}function ul(e,t){let o=t,n=!1,r=e.length;for(;o<r-1&&!n;)o=o+1,n=Er(e,o);return o===r?-1:o}function Er(e,t){let{placeholder:o,splitter:n,resizeable:r,intrinsicSize:s}=e[t];return!!(!n&&!s&&(o||r))}var ml=e=>!e.splitter&&!e.placeholder,vr=({children:e,onSplitterMoved:t,style:o})=>{let n=qt(null),r=qt(),s=qt(),i=qt([]),[,a]=dl({}),l=b=>{s.current=b,a({})},c=(o==null?void 0:o.flexDirection)==="column",p=c?"height":"width",d=xr(()=>Array.isArray(e)?e:bt.isValidElement(e)?[e]:[],[e]),u=Ut(b=>{let{current:f}=r;if(f){let[y,T]=yr(f,b);y&&(y.forEach(x=>{var E;let v=(E=n.current)==null?void 0:E.childNodes[x];if(v){let{size:D,minSize:P}=bl(v,p);f[x].currentSize=D,f[x].minSize=P}}),T&&T.forEach(x=>{var E;let v=(E=n.current)==null?void 0:E.childNodes[x];if(v){let{[p]:D}=v.getBoundingClientRect();f[x].flexBasis=D}}))}},[p]),m=Ut((b,f)=>{s.current&&r.current&&l(gl(s.current,r.current,f,p))},[p]),h=Ut(()=>{let b=r.current;b&&(t==null||t(b.filter(ml))),b==null||b.forEach(f=>{f.currentSize=void 0,f.flexBasis=void 0,f.flexOpen=!1})},[t]),g=Ut(b=>bt.createElement(pr,{column:c,index:b,key:`splitter-${b}`,onDrag:m,onDragEnd:h,onDragStart:u}),[m,h,u,c]);return xr(()=>{let[b,f]=fl(d,p,g,i.current);r.current=f,s.current=b},[d,g,p]),{content:s.current||[],rootRef:n}};function fl(e,t,o,n){let r=Zt(e,t),s=br(r),i=[],a=[];for(let l=0;l<e.length;l++){let c=e[l];if(l===0&&s[l]&ht&&(i.push(Tr(l)),a.push({placeholder:!0,shim:!0})),c.key==null){let p=n[l]||(n[l]=pl());i.push(bt.cloneElement(c,{key:p}))}else i.push(c);a.push(r[l]),l>0&&s[l]&ht?(i.push(Tr(l)),a.push({placeholder:!0})):s[l]>&&(i.push(o(i.length)),a.push({splitter:!0}))}return[i,a]}function gl(e,t,o,n){return hl(t,o)?e.map((s,i)=>{let a=t[i],{currentSize:l,flexOpen:c,flexBasis:p}=a,d=l!==void 0;if(d||c){let{flexBasis:u}=s.props.style||{},m=d?a.currentSize:p;return m!==u?bt.cloneElement(s,{style:{...s.props.style,flexBasis:m,[n]:"auto"}}):s}else return s}):e}function hl(e,t){let o=[];e.forEach((p,d)=>{p.currentSize!==void 0&&o.push(d)});let n=t<0?o[0]:o[1],{currentSize:r=0,minSize:s=0}=e[n];if(r===s)return!1;if(Math.abs(t)>r-s){let p=t<0?-1:1;t=Math.max(0,r-s)*p}let i=e[o[0]],{currentSize:a=0}=i;i.currentSize=a+t;let l=e[o[1]],{currentSize:c=0}=l;return l.currentSize=c-t,!0}function Tr(e){return bt.createElement(Wt,{shim:e===0,key:`placeholder-${e}`})}function bl(e,t){let{[t]:o}=e.getBoundingClientRect(),r=getComputedStyle(e).getPropertyValue(`min-${t}`),s=r.endsWith("px")?parseInt(r,10):0;return{size:o,minSize:s}}import{jsx as Tl}from"react/jsx-runtime";var Fo="hwFlexbox",Dr=xl(function(t,o){let{breakPoints:n,children:r,column:s,className:i,flexFill:a,gap:l,fullPage:c,id:p,onSplitterMoved:d,resizeable:u,row:m,spacing:h,splitterSize:g,style:b,...f}=t,{content:y,rootRef:T}=vr({children:r,onSplitterMoved:d,style:b}),x=El(Fo,i,{[`${Fo}-column`]:s,[`${Fo}-row`]:m,"flex-fill":a,"full-page":c});return Tl("div",{...f,className:x,"data-resizeable":u||void 0,id:p,ref:yl(T,o),style:{...b,gap:l,"--spacing":h},children:y})});Dr.displayName="Flexbox";var _o=Dr;import{useCallback as uc}from"react";var je={ADD:"add",BLUR:"blur",BLUR_SPLITTER:"blur-splitter",DRAG_START:"drag-start",DRAG_STARTED:"drag-started",DRAG_DROP:"drag-drop",FOCUS:"focus",FOCUS_SPLITTER:"focus-splitter",INITIALIZE:"initialize",LAYOUT_RESIZE:"layout-resize",MAXIMIZE:"maximize",MINIMIZE:"minimize",REMOVE:"remove",REPLACE:"replace",RESTORE:"restore",SAVE:"save",SET_TITLE:"set-title",SPLITTER_RESIZE:"splitter-resize",SWITCH_TAB:"switch-tab",TEAR_OUT:"tear-out"};import{useCallback as Yo,useContext as ts,useEffect as ic,useRef as Qr,useState as ac}from"react";import qo from"react";import{uuid as Cr}from"@vuu-ui/vuu-utils";import xt from"react";import{uuid as Pr}from"@vuu-ui/vuu-utils";import yt,{cloneElement as vl}from"react";import{useCallback as Je}from"react";var ie=new Map,pe=new Map,wr=e=>ie.get(e),Rr=e=>ie.has(e),Sr=(e,t)=>ie.set(e,t),Qe=()=>{let e=Je((i,a)=>{let l=pe.get(i);if(l)return a!==void 0&&l[a]!==void 0?l[a]:a!==void 0?void 0:l},[]),t=Je((i,a,l)=>{if(a===void 0)pe.set(i,l);else if(pe.has(i)){let c=pe.get(i);pe.set(i,{...c,[a]:l})}else pe.set(i,{[a]:l})},[]),o=Je((i,a)=>{if(pe.has(i)){if(a===void 0)pe.delete(i);else if(pe.get(i)[a]){let{[a]:c,...p}=pe.get(i);Object.keys(p).length>0?pe.set(i,p):pe.delete(i)}}},[]),n=Je((i,a)=>{let l=ie.get(i);if(l)return a!==void 0?l[a]:l},[]),r=Je((i,a,l)=>{if(a===void 0)ie.set(i,l);else if(ie.has(i)){let c=ie.get(i);ie.set(i,{...c,[a]:l})}else ie.set(i,{[a]:l})},[]),s=Je((i,a)=>{if(ie.has(i)){if(a===void 0)ie.delete(i);else if(ie.get(i)[a]){let{[a]:c,...p}=ie.get(i);Object.keys(p).length>0?ie.set(i,p):ie.delete(i)}}},[]);return{loadSessionState:e,loadState:n,saveSessionState:t,saveState:r,purgeState:s,purgeSessionState:o}};var Mr=e=>e.flexDirection==="column"?["height","width"]:["width","height"],Dl={},Et=(e,t="0")=>{let[o,n]=Go($(e),e.props,t);return yt.cloneElement(e,o,n)},Wo=(e,t)=>{let o=$(e),[n,r]=Go(o,e.props,"0",void 0,t);return vl(e,n,r)};function wl(e,t,o="0",n=null,r){var g,b;let{active:s=0,"data-path":i,path:a=i,id:l,style:c}=A(r),p=$(r)===e&&o===a,d=p?l:(g=t.id)!=null?g:Pr(),u=e==="Stack"?(b=t.active)!=null?b:s:void 0,m=d,h=p?c:Sl(e,t,n);return Ln(e)?{id:d,key:m,path:o,style:h,type:e,active:u}:{id:d,key:m,style:h,"data-path":o}}function Go(e,t,o,n=null,r){var c,p;let s=wl(e,t,o,n,r);if(t.layout&&!r)return[s,[Xt(t.layout,`${o}.0`)]];let i=(p=r==null?void 0:r.children)!=null?p:(c=r==null?void 0:r.props)==null?void 0:c.children,l=t.dropTarget&&i?i:Rl(e,t.children,o,i);return[s,l]}function Rl(e,t,o="0",n){let r=Array.isArray(t)?t:yt.isValidElement(t)?[t]:[];return re(e)?r.map((s,i)=>{let a=$(s),l=$(n==null?void 0:n[i]);if(!l||a===l){let[c,p]=Go(a,s.props,`${o}.${i}`,e,n==null?void 0:n[i]);return yt.cloneElement(s,c,p)}return n==null?void 0:n[i]}):t}var Sl=(e,t,o)=>{let{style:n=Dl}=t;if(e==="Flexbox"&&(n={flexDirection:t.column?"column":"row",...n,display:"flex"}),n.flex){let{flex:r,...s}=n;n={...s,...wo(typeof r=="number"?r:0)}}else o==="Stack"?n={...n,...wo(1)}:o==="Flexbox"&&(n.width||n.height)&&n.flexBasis===void 0&&(n={...n,flexBasis:"auto",flexGrow:0,flexShrink:0});return n};function Xt({id:e=Pr(),type:t,children:o,props:n,state:r},s){let i=t.match(/^[a-z]/)?t:Pe[t];if(i===void 0)throw Error(`layoutUtils unable to create component from JSON, unknown type ${t}`);return r&&Sr(e,r),yt.createElement(i,{id:e,...n,key:e,path:s},o?o.map((a,l)=>Xt(a,`${s}.${l}`)):void 0)}function Lr(e){return Ir(e)}function Ir(e){let t=$(e),{id:o,children:n,type:r,...s}=A(e),i=Rr(o)?wr(o):void 0;return{id:o,type:t,props:Pl(s),state:i,children:yt.Children.map(n,Ir)}}function Pl(e){if(e){let{path:t,...o}=e,n={};for(let[r,s]of Object.entries(o))n[r]=Vo(s);return n}}function Vo(e){if(typeof e=="string"||typeof e=="number"||typeof e=="boolean")return e;if(Array.isArray(e))return e.map(Vo);if(typeof e=="object"&&e!==null){let t={};for(let[o,n]of Object.entries(e))t[o]=Vo(n);return t}}function Or(e,t){var i;let o=e.props.children,n=o.length,{index:r=-1,positionRelativeToTab:s="after"}=t.tab||{};return r===-1||r>=n?[o[n-1],"after"]:[(i=o[r])!=null?i:null,s]}function Yt(e,t,o){let{active:n,children:r=[],path:s}=A(e),i=B(t,"path"),{idx:a,finalStep:l}=he(s,i,!0),[c,p]=l?Ml(e,r,o):[n,r==null?void 0:r.map((u,m)=>m===a?Yt(u,t,o):u)],d=$(e)==="Stack"?Array.isArray(c)?c[0]:c:n;return xt.cloneElement(e,{active:d},p)}function Ml(e,t,o){let n=B(e,"path"),r=t==null?void 0:t.length,{id:s=Cr()}=A(o);return r?[r,t.concat(te(o,`${n}.${r}`,{id:s,key:s}))]:[0,[te(o,`${n}.0`,{id:s})]]}function jt(e,t,o,n,r,s,i){let{active:a,children:l,path:c}=A(e),p=B(t,"path"),{idx:d,finalStep:u}=he(c,p),[m,h]=u?Ll(e,l,d,o,n,r,s,i):[a,l.map((b,f)=>f===d?jt(b,t,o,n,r,s,i):b)],g=$(e)==="Stack"?m:a;return xt.cloneElement(e,{active:g},h)}function Ll(e,t,o,n,r,s,i,a){let l=ue(n);return l!=null&&l.width&&(l!=null&&l.height)?Cl(e,t,o,n,r,i,a):Ar(e,t,o,n,r,(s==null?void 0:s.width)||(s==null?void 0:s.height),i)}var Il=(e,t,{top:o,right:n,bottom:r,left:s},[i,a,l,c])=>{if(e==="column"&&t==="before")return a-o;if(e==="column")return r-c;if(e==="row"&&t==="before")return i-s;if(e==="row")return n-l};function Cl(e,t,o,n,r,s,i){let{style:{flexDirection:a}}=A(e),[l,c,p]=gr(a),{[c]:d,[l]:u}=ue(n),m=B(t[o],"path"),h=Il(a,r,s,i),[g,b]=d<s[c]?[ft(n,p,m,s,i),u]:[n,void 0],f=h?ye(m,h,{flexGrow:0,flexShrink:0}):void 0;return d>s[c]&&(t=t.map(y=>{if(B(y,"placeholder"))return y;{let{[c]:T}=ue(y);return T&&T<d?ft(y,p,B(y,"path")):y}})),Ar(e,t,o,g,r,b,s,f)}function Ar(e,t,o,n,r,s,i,a){let l=B(e,"path"),c=0,p=!t||t.length===0?[n]:t.reduce((d,u,m)=>{if(o===m){let[h,g]=Ol(e,u,n,i);r==="before"?a?d.push(a,g,h):d.push(g,h):a?d.push(h,g,a):d.push(h,g),c=d.indexOf(g)}else d.push(u);return d},[]).map((d,u)=>u<c?d:te(d,`${l}.${u}`));return[c,p]}function Ol(e,t,o,n){let r=Cr(),{version:s=0}=A(o);if(s+=1,$(e)==="Flexbox"){let[i]=Mr(e.props.style),a=6,l={[i]:(n[i]-a)/2},c=Bo(t,i,l),p=Bo(o,i,l);return[xt.cloneElement(t,{style:c}),xt.cloneElement(o,{id:r,version:s,style:p})]}else{let{style:{left:i,top:a,flex:l,...c}={left:void 0,top:void 0,flex:void 0}}=A(o);return[t,xt.cloneElement(o,{id:r,version:s,style:c})]}}import{cloneElement as kl}from"react";import Jt from"react";function Hr(e,{target:t,replacement:o}){return Ko(e,t,o)}function Ko(e,t,o){let n=B(t,"path"),r=B(t,"resizeable"),{style:s}=A(t),i=Et(Jt.cloneElement(o,{resizeable:r,style:{...s,...o.props.style}}),n);return ae(e,t,i)}function ae(e,t,o,n){if(e===t)return o;let{idx:r,finalStep:s}=he(B(e,"path"),B(t,"path")),i=e.props.children.slice();return s?n?n===je.MINIMIZE?i[r]=Al(e,i[r]):n===je.RESTORE&&(i[r]=Hl(i[r])):i[r]=o:i[r]=ae(i[r],t,o,n),Jt.cloneElement(e,void 0,i)}function Al(e,t){let{style:o}=A(e),{style:n}=A(t),{width:r,height:s,flexBasis:i,flexShrink:a,flexGrow:l,...c}=n,p={width:r,height:s,flexBasis:i,flexShrink:a,flexGrow:l},d={...c,flexBasis:0,flexGrow:0,flexShrink:0},u=o.flexDirection==="row"?"vertical":o.flexDirection==="column"?"horizontal":!1;return u?Jt.cloneElement(t,{collapsed:u,restoreStyle:p,style:d}):t}function Hl(e){let{style:t,restoreStyle:o}=A(e),{flexBasis:n,flexShrink:r,flexGrow:s,...i}=t,a={...i,...o};return Jt.cloneElement(e,{collapsed:!1,style:a,restoreStyle:void 0})}function kr(e,{fromIndex:t,path:o,toIndex:n}){let r=ee(e,o,!0),{children:s}=A(r),i=zl(s,t,n),a=kl(r,void 0,i);return ae(e,r,a)}function zl(e,t,o){let n=e.slice(),[r]=n.splice(t,1);return o===-1?n.concat(r):(n.splice(o,0,r),n)}var ne={ADD:"add",DRAG_START:"drag-start",DRAG_DROP:"drag-drop",LAYOUT_RESIZE:"layout-resize",MAXIMIZE:"maximize",MINIMIZE:"minimize",MOVE_CHILD:"move-child",REMOVE:"remove",REPLACE:"replace",RESTORE:"restore",SAVE:"save",SET_PROP:"set-prop",SET_PROPS:"set-props",SET_TITLE:"set-title",SPLITTER_RESIZE:"splitter-resize",SWITCH_TAB:"switch-tab",TEAROUT:"tearout"};import $e from"react";function Zo(e,{path:t}){let o=ee(e,t),n=De(e,t);if(n===null)return e;let{children:r}=A(n);if(r.length>1&&Nr(r,t)){let{style:{flexBasis:s,display:i,flexDirection:a,...l}}=A(n),c=B(n,"path"),p=ae(e,n,ye(c,s,l));for(;(n=De(p,c))&&B(n,"path")!=="0";){let{children:d}=A(n);if(Nr(d)){c=B(n,"path");let{style:{flexBasis:u,display:m,flexDirection:h,...g}}=A(n);p=ae(e,n,ye(c,u,g))}else if(Fl(d))p=Fr(e,n);else break}return p}return Br(e,o)}function Br(e,t){let o=A(e),{children:n,path:r,preserve:s}=o,{active:i}=o,{idx:a,finalStep:l}=he(r,B(t,"path")),c=$(e),p=n.slice();if(l){if(p.splice(a,1),i!==void 0&&i>=a&&(i=Math.max(0,i-1)),p.length===1&&!s&&r!=="0"&&c.match(/Flexbox|Stack/))return Nl(e,p[0]);!p.some(Bl)&&p.some($r)&&(p=$l(p))}else p[a]=Br(p[a],t);return p=p.map((d,u)=>te(d,`${r}.${u}`)),$e.cloneElement(e,{active:i},p)}function Nl(e,t){let o=$(e),{path:n,style:{flexBasis:r,flexGrow:s,flexShrink:i,width:a,height:l}}=A(e),c=te(t,n);if(n==="0")c=$e.cloneElement(c,{style:{...t.props.style,width:a,height:l}});else if(o==="Flexbox"){let p=e.props.style.flexDirection==="column"?"height":"width",{style:{[p]:d,...u}}=c.props;c=$e.cloneElement(c,{flexFill:void 0,style:{...u,flexGrow:s,flexShrink:i,flexBasis:r,width:a,height:l}})}return c}var Bl=e=>e.props.style.flexGrow>0,$r=e=>{let{width:t,height:o,flexGrow:n}=e.props.style;return n===0&&typeof t!="number"&&typeof o!="number"},$l=e=>e.map(t=>$r(t)?$e.cloneElement(t,{style:{...t.props.style,flexGrow:1}}):t),Fl=e=>{if(e&&e.length>0){let t=B(e[0],"placeholder"),o=!1;for(let n=1;n<e.length;n++){if(o=B(e[n],"placeholder"),t&&o)return!0;t=o}}},Fr=(e,t)=>{let{children:o,path:n}=A(e),{idx:r,finalStep:s}=he(n,B(t,"path")),i=o.slice();return s?i[r]=_l(t):i[r]=Fr(i[r],t),i=i.map((a,l)=>te(a,`${n}.${l}`)),$e.cloneElement(e,void 0,i)},_l=e=>{let{children:t}=A(e),o=[],n=[];for(let s=0;s<t.length;s++)B(t[s],"placeholder")?n.push(t[s]):(n.length===1?o.push(n.pop()):n.length>0&&(o.push(zr(n)),n.length=0),o.push(t[s]));n.length===1?o.push(n.pop()):n.length>0&&o.push(zr(n));let r=B(e,"path");return $e.cloneElement(e,void 0,o.map((s,i)=>te(s,`${r}.${i}`)))},zr=([e,...t])=>{let o=B(e,"style"),{flexBasis:n,flexGrow:r,flexShrink:s}=o;for(let{props:{style:i}}of t)n+=i.flexBasis,r=Math.max(r,i.flexGrow),s=Math.max(s,i.flexShrink);return $e.cloneElement(e,{style:{...o,flexBasis:n,flexGrow:r,flexShrink:s}})},Nr=(e,t)=>e.every(o=>B(o,"placeholder")||t&&B(o,"path")===t);import Uo from"react";function _r(e,{path:t,size:o}){let n=ee(e,t,!0),{style:r}=A(n),s={...r,width:o},i=Uo.cloneElement(n,{style:s});return ae(e,n,i)}function Vr(e,{path:t,sizes:o}){let n=ee(e,t,!0),{children:r,style:s}=A(n),i=s.flexDirection==="column"?"height":"width",a=Vl(r,o,i),l=Uo.cloneElement(n,void 0,a);return ae(e,n,l)}function Vl(e,t,o){return e.map((n,r)=>{let{style:{[o]:s,flexBasis:i}}=A(n),a=t[r],{currentSize:l,flexBasis:c}=a,d=l!==void 0?a.currentSize:c;return d===void 0||s===d||i===d?n:Uo.cloneElement(n,{style:Wl(n.props.style,o,d)})})}function Wl(e,t,o){let n=typeof e[t]=="number",{flexShrink:r=1,flexGrow:s=1}=e;return{...e,[t]:n?o:"auto",flexBasis:n?"auto":o,flexShrink:r,flexGrow:s}}import{uuid as Gl}from"@vuu-ui/vuu-utils";import Qt from"react";var Wr=e=>{let[t]=$(e);return t===t.toLowerCase()};function Tt(e,t,o,n,r,s){let{children:i,path:a}=A(e),l=B(t,"path"),{idx:c,finalStep:p}=he(a,l),d=p?Kl(e,i,t,o,n,r,s):i.map((u,m)=>m===c?Tt(u,t,o,n,r,s):u);return Qt.cloneElement(e,void 0,d)}function Kl(e,t,o,n,r,s,i){let a=ue(n);if(a!=null&&a.width&&(a!=null&&a.height)){if(s===void 0||i===void 0)throw Error("wrap-layout-element, updateChildren clientRect and dropRect must both be available");return Ul(t,o,n,r,s,i)}return Zl(e,t,o,n,r)}function Zl(e,t,o,n,r){var E;let{version:s=0}=A(n),i=B(o,"path"),{type:a,flexDirection:l,showTabs:c}=Kr(r),[p,d,u]=ql(a,o,n,l,r),m=Gr(r),h=m?1:0,g={resizeable:!0,style:u,version:s+1},f={[Wr(o)?"data-resizeable":"resizeable"]:!0,style:d},y=a==="Stack"?{showTabs:c}:void 0,T=a==="Flexbox"?{splitterSize:(E=$(e)==="Flexbox"&&e.props.splitterSize)!=null?E:void 0}:void 0,x=Gl(),v=Qt.createElement(Pe[a],{active:h,id:x,key:x,path:B(o,"path"),flexFill:B(o,"flexFill"),...T,...y,style:p,resizeable:B(o,"resizeable")},m?[te(o,`${i}.0`,f),Et(Qt.cloneElement(n,g),`${i}.1`)]:[Et(Qt.cloneElement(n,g),`${i}.0`),te(o,`${i}.1`,f)]);return t.map(D=>D===o?v:D)}function Ul(e,t,o,n,r,s){let{flexDirection:i}=Kr(n),a=i==="column"?"row":"column",l=Gr(n),[c,p,d,u]=s,[m,h]=i==="column"?[p-r.top,r.bottom-u]:[c-r.left,r.right-d],g=B(t,"path"),b=0,f=Wr(t)?"data-resizeable":"resizeable",y=[];m&&y.push(l?te(t,`${g}.${b++}`,{[f]:!0,style:{flexBasis:m,flexGrow:1,flexShrink:1}}):ye(`${g}.${b++}`,m,{flexGrow:0,flexShrink:0})),y.push(ft(o,a,`${g}.${b++}`,r,s)),h&&y.push(l?ye(`${g}.${b++}`,0):te(t,`${g}.${b++}`,{[f]:!0,style:{flexBasis:0,flexGrow:1,flexShrink:1}}));let T=$o(i,t.props,y,g);return e.map(x=>x===t?T:x)}function ql(e,t,o,n,r){let s={...t.props.style,flexDirection:n},i=e==="Flexbox"&&n==="column"?"height":"width",a=No(o,i,r),l=No(t,i);return[s,l,a]}var Gr=e=>{var t;return e.position.SouthOrEast?!0:((t=e==null?void 0:e.tab)==null?void 0:t.positionRelativeToTab)==="before"?!1:!!e.position.Header};function Kr(e){return e.position.Header?{type:"Stack",flexDirection:"column",showTabs:!0}:{type:"Flexbox",flexDirection:e.position.EastOrWest?"row":"column"}}var Yr=(e,t)=>{switch(t.type){case ne.ADD:return Ql(e,t);case ne.DRAG_DROP:return Jl(e,t);case ne.MAXIMIZE:return jl(e,t);case ne.REMOVE:return Zo(e,t);case ne.REPLACE:return Hr(e,t);case ne.SET_PROP:return Zr(e,t);case ne.SET_PROPS:return Yl(e,t);case ne.SET_TITLE:return Zr(e,{type:"set-prop",path:t.path,propName:"title",propValue:t.title});case ne.SPLITTER_RESIZE:return Vr(e,t);case ne.LAYOUT_RESIZE:return _r(e,t);case ne.SWITCH_TAB:return Xl(e,t);case ne.MOVE_CHILD:return kr(e,t);default:return e}},Xl=(e,{path:t,nextIdx:o})=>{let n=ee(e,t,!0),r=qo.cloneElement(n,{active:o});return ae(e,n,r)},Zr=(e,{path:t,propName:o,propValue:n})=>{let r=ee(e,t,!0),s=qo.cloneElement(r,{[o]:n});return ae(e,r,s)},Yl=(e,{path:t,props:o})=>{let n=ee(e,t,!0),r=qo.cloneElement(n,o);return ae(e,n,r)},jl=(e,{path:t,type:o})=>{if(t){let n=ee(e,t,!0);return ae(e,n,n,o)}else return e},Jl=(e,t)=>{var h,g;let{draggedReactElement:o,dragInstructions:n,dropTarget:r}=t,s=r.component,{pos:i}=r,a=((h=i==null?void 0:i.position)==null?void 0:h.Header)&&$(s)==="Stack",{id:l,version:c}=A(o),p=ue(o),d;if(a){let[b,f]=Or(s,i);b===void 0?d=Yt(e,s,o):d=jt(e,b,o,f)}else!p&&((g=i==null?void 0:i.position)!=null&&g.Centre)?d=Ko(e,s,o):d=ec(e,r,o);if(n.DoNotRemove)return d;let u=we(d,b=>b.id===l&&b.version===c),m=B(u,"path");return Zo(d,{path:m,type:"remove"})},Ql=(e,{path:t,component:o})=>Yt(e,ee(e,t),o),ec=(e,t,o)=>{let{component:n,pos:r,clientRect:s,dropRect:i}=t,a=B(n,"path");if(a==="0.0")return Tt(e,n,o,r);let l=De(e,a);if(Ur(r,l)){let c=r.position.SouthOrEast?"after":"before";return jt(e,n,o,c,r,s,i)}if(!Ur(r,l))return Tt(e,n,o,r,s,i);if(re($(l)))return Tt(e,n,o,r);throw Error(`no support right now for position = ${r.position}`)},Ur=(e,t)=>e.position.Centre?Xr(t)||qr(t):e.position.NorthOrSouth?qr(t):e.position.EastOrWest?Xr(t):!1,qr=e=>$(e)==="Flexbox"&&e.props.style.flexDirection==="column",Xr=e=>$(e)==="Flexbox"&&e.props.style.flexDirection!=="column";import{createContext as tc}from"react";var oc=e=>console.log(`dispatch ${e.type}, have you forgotten to provide a LayoutProvider ?`),vt=tc({dispatchLayoutProvider:oc,version:-1});import{useCallback as eo,useRef as Xo}from"react";var nc={},jr=[0,0],rc=(e,t,o)=>{let n=document.createElement("div");n.className="vuuSimpleDraggableWrapper",n.classList.add("vuuSimpleDraggableWrapper","salt-theme","salt-density-medium"),n.dataset.dragging="true";let r=o!=null?o:document.createElement("div");r.id=t,n.appendChild(r),document.body.appendChild(n);let s=`top:${e.top}px;left:${e.left}px;width:${e.width}px;height:${e.height}px;`;return[n,s,e.left,e.top]},sc=e=>{let{offsetParent:t}=e;if(t===null)return jr;{let{left:o,top:n}=t.getBoundingClientRect();return[o,n]}},Jr=(e,t)=>{let o=Xo(),n=Xo(),r=Xo(),s=eo((c,p)=>{if(n.current&&r.current){let{dragOffsets:[d,u],targetPosition:m}=n.current,h=typeof c=="number"?c-d:m.left,g=typeof p=="number"?p-u:m.top;(h!==m.left||g!==m.top)&&(n.current.targetPosition.left=h,n.current.targetPosition.top=g,r.current.style.top=g+"px",r.current.style.left=h+"px")}},[]),i=eo(c=>{if(n.current){let{dragInstructions:p,payload:d,originalCSS:u}=n.current;t({type:"drag-drop",draggedReactElement:d,dragInstructions:p,dropTarget:c}),console.log("[useLayoutDragDrop]",{dragInstructions:p}),r.current&&(p.RemoveDraggableOnDragEnd?document.body.removeChild(r.current):(r.current.style.cssText=u,delete r.current.dataset.dragging)),o.current=void 0,n.current=void 0,r.current=void 0}},[t]),a=eo(c=>{if(o.current){let{payload:p,dragContainerPath:d,dragElement:u,dragRect:m,instructions:h=nc,path:g}=o.current,{current:b}=e,f={x:c.clientX,y:c.clientY},y=p!=null?p:ee(b,g,!0),{id:T}=y.props,x=ue(y),v="",E="",D="",P=-1,k=-1,C=jr,M=document.getElementById(T);if(M===null)[M,E,P,k]=rc(m,T,u);else{C=sc(M);let[w,R]=C,{width:O,height:I,left:S,top:L}=M.getBoundingClientRect();P=S-w,k=L-R,E=`width:${O}px;height:${I}px;left:${P}px;top:${k}px;z-index: 100;background-color:#ccc;opacity: 0.6;`,M.dataset.dragging="true",v=M.style.cssText}D=ko.initDrag(e.current,d,m,f,{drag:s,drop:i},x),M.style.cssText=E+D,r.current=M,n.current={payload:y,originalCSS:v,dragRect:m,dragOffsets:C,dragInstructions:h,targetPosition:{left:P,top:k}}}},[s,i,e]);return eo(c=>{let{evt:p,...d}=c;console.log("prepare to drag",{options:d}),o.current={...d,dragContainerPath:""},ko.handleMousedown(p,a,d.instructions)},[a])};import{jsx as os}from"react/jsx-runtime";var es=e=>e.dropTarget,lc=e=>["drag-drop","remove","set-title","splitter-resize","switch-tab"].includes(e.type),ib=()=>{let e=cc();return os("div",{children:`Context: ${e} `})},ab=e=>{let{children:t,layout:o,onLayoutChange:n}=e,r=Qr(void 0),s=Qr(t),[,i]=ac(null),a=Yo(d=>{if(n){let u=we(d,es)||r.current,h=$(u)==="DraggableLayout"?A(u).children[0]:u,g=Lr(h);n(g,"drag-root")}},[n]),l=Yo((d,u=!1)=>{let m=Yr(r.current,d);m!==r.current&&(r.current=m,i({}),!u&&lc(d)&&a(m))},[a]),c=Yo(d=>{switch(d.type){case"drag-start":{p(d);break}case"save":{a(r.current);break}default:{l(d);break}}},[l,a]),p=Jr(r,c);return ic(()=>{if(o){let d=we(r.current,es),u=kn(d),m=Xt(o,`${d.props.path}.0`),h=u?{type:ne.REPLACE,target:u,replacement:m}:{type:ne.ADD,path:d.props.path,component:m};l(h,!0)}},[l,o]),r.current===void 0?r.current=Wo(t):t!==s.current&&(r.current=Wo(t,r.current),s.current=t),os(vt.Provider,{value:{dispatchLayoutProvider:c,version:0},children:r.current})},de=()=>{let{dispatchLayoutProvider:e}=ts(vt);return e},cc=()=>{console.log({LayoutProviderContext:vt});let{version:e}=ts(vt);return e};import{jsx as pc}from"react/jsx-runtime";var ns=function(t){let{path:o}=t,n=de(),r=uc(s=>{n({type:je.SPLITTER_RESIZE,path:o,sizes:s})},[n,o]);return pc(_o,{...t,onSplitterMoved:r})};ns.displayName="Flexbox";Y("Flexbox",ns,"container");import{useForkRef as Cc}from"@salt-ds/core";import Oc from"classnames";import{forwardRef as Ac,useMemo as Hc}from"react";import{useCallback as cs,useEffect as bc,useRef as Qo,useState as yc}from"react";import{useCallback as dc,useLayoutEffect as rs,useRef as mc}from"react";var vb=["height","width"],Db=["height"],wb=["width"],Fe=new WeakMap,is=(e,t,o)=>{switch(o){case"height":return t.height;case"scrollHeight":return e.scrollHeight;case"scrollWidth":return e.scrollWidth;case"width":return t.width;default:return 0}},ss=new ResizeObserver(e=>{for(let t of e){let{target:o,contentRect:n}=t,r=Fe.get(o);if(r){let{onResize:s,measurements:i}=r,a=!1;for(let[l,c]of Object.entries(i)){let p=is(o,n,l);p!==c&&(a=!0,i[l]=p)}a&&s&&s(i)}}});function as(e,t,o,n=!1){console.log("resizeObserver container",{ref:e.current});let r=mc(t),s=dc(i=>{let a=i.getBoundingClientRect();return r.current.reduce((l,c)=>(l[c]=is(i,a,c),l),{})},[]);rs(()=>{let i=e.current,a=!1;async function l(){Fe.set(i,{measurements:{}}),a=!1;let{fonts:c}=document;if(c&&await c.ready,!a){let p=Fe.get(i);if(p){let d=s(i);p.measurements=d,ss.observe(i),n&&o(d)}}}if(i){if(Fe.has(i))throw Error("useResizeObserver attemping to observe same element twice");l()}return()=>{i&&Fe.has(i)&&(ss.unobserve(i),Fe.delete(i),a=!0)}},[e,s,n,o]),rs(()=>{let i=e.current,a=Fe.get(i);if(a){if(r.current!==t){r.current=t;let l=s(i);a.measurements=l}a.onResize=o}},[t,s,e,o])}function fc(e,t){let o=document.body.querySelector(`.${e}`),n={get:function(r,s){let i=r.getPropertyValue(`--${e}-breakpoint-${s}`);return i?parseInt(i):void 0}};return o?new Proxy(getComputedStyle(o),n):t!=null?t:{}}var gc=([,e],[,t])=>t-e,Jo=e=>Object.entries(e).sort(gc).map(([t,o],n,r)=>[t,o,n<r.length-1?r[n+1][1]:9999]),jo=null,hc=(e="salt")=>{let{xs:t,sm:o,md:n,lg:r,xl:s}=fc(e);return Jo({xs:t,sm:o,md:n,lg:r,xl:s})},ls=e=>(jo===null&&(jo=hc(e)),jo);var Ec=[],us=({breakPoints:e,smallerThan:t},o)=>{let[n,r]=yc(t?!1:"lg"),s=Qo(document.body),i=Qo(e?Jo(e):ls()),a=Qo("lg"),l=cs(p=>{if(i.current){for(let[d,u]of i.current)if(p>=u)return d}},[i]),c=cs(p=>{if(t){let d=i.current.find(([u])=>u===t);if(d){let[,,u]=d;return p<u}}else return l(p);return p},[t,l]);return as(o||s,i.current?["width"]:Ec,({width:p})=>{let d=c(p);d!==a.current&&(a.current=d,r(d))},!0),bc(()=>{let p=o||s;if(p.current){let d=a.current;if(i.current){let{clientWidth:u}=p.current,m=c(u);a.current=m,m!==d&&r(m)}}},[r,c,o]),n};var ps="data-collapsible",xc={[ps]:!0,"data-pad-start":!0,"data-pad-end":!0},Tc=e=>{var t;return(t=xc[e])!=null?t:!1},vc=e=>e===ps,Dc={dynamic:"dynamic",instant:"instant",true:"instant"},wc=e=>{var t;return(t=Dc[e])!=null?t:"none"},Ab=e=>Object.keys(e).reduce((t,o)=>{let[n,r]=t;if(Tc(o)){let s=vc(o)?wc(e[o]):e[o];n[o]=s,r[o]=void 0}return t},[{},{}]);import{getUniqueId as Rc}from"@vuu-ui/vuu-utils";import{cloneElement as Sc,isValidElement as Pc,useCallback as Mc,useMemo as ds,useRef as en}from"react";var Lc=["xs","sm","md","lg","xl"],Ic=12,ms=({children:e,cols:t,style:o})=>{let n=en(null),r=en(null),s=en(),i=t!=null?t:Ic,l=(o==null?void 0:o.flexDirection)==="column"?"height":"width",c=ds(()=>Array.isArray(e)?e:Pc(e)?[e]:[],[e]),p=Mc((d,u)=>{let m=Zt(d,u,Lc),h=[],g=[];for(let b=0;b<d.length;b++){let f=d[b],{style:{flex:y,...T}}=f.props;h.push(Sc(f,{key:Rc(),style:{...T,"--parent-col-count":i}})),g.push(m[b])}return[h,g]},[i]);return ds(()=>{let[d,u]=p(c,l);r.current=u,s.current=d},[p,c,l]),{cols:i,content:s.current,rootRef:n}};import{jsx as kc}from"react/jsx-runtime";var to="hwFluidGrid",tn=Ac(function(t,o){let{breakPoints:n,children:r,column:s,cols:i=12,className:a,flexFill:l,gap:c=3,fullPage:p,id:d,onSplitterMoved:u,resizeable:m,row:h,showGrid:g,spacing:b,splitterSize:f,style:y,...T}=t,x=Hc(()=>qe(r),[r]),{cols:v,content:E,rootRef:D}=ms({children:x,cols:i,style:y}),P=us({breakPoints:n},D),k=Oc(to,a,{[`${to}-column`]:s,[`${to}-row`]:h,[`${to}-show-grid`]:g,"flex-fill":l,"full-page":p}),C={...y,"--spacing":b,"--grid-col-count":v,"--grid-gap":c};return kc("div",{...T,className:k,"data-breakpoint":P,"data-cols":v,"data-resizeable":m||void 0,id:d,ref:Cc(D,o),style:C,children:E})});tn.displayName="FluidGrid";import{jsx as zc}from"react/jsx-runtime";var fs=function(t){return zc(tn,{...t})};fs.displayName="FluidGrid";Y("FluidGrid",fs,"container");import mp from"classnames";import bi,{useRef as fp,useState as yi}from"react";import{useCallback as Dt,useState as Nc}from"react";var oo=(e,t,o,n)=>{var b;let{loadSessionState:r,purgeSessionState:s,purgeState:i,saveSessionState:a}=Qe(),[l,c]=Nc((b=r(e,"contributions"))!=null?b:[]),p=de(),d=Dt((f,y)=>{let T=l.concat([{location:f,content:y}]);a(e,"contributions",T),c(T)},[l,e,a]),u=Dt(()=>{s(e,"contributions"),c([])},[e,s]),m=Dt(()=>{let f=r(e,"data-source");f&&f.unsubscribe(),s(e),i(e),p({type:"remove",path:o})},[p,e,r,s,i,o]),h=Dt(async(f,y,T)=>{var v;f.stopPropagation();let x=(v=t.current)==null?void 0:v.getBoundingClientRect();return new Promise((E,D)=>{p({type:"drag-start",evt:f,path:y===void 0?o:`${o}.${y}`,dragRect:x,preDragActivity:T,dropTargets:n,resolveDragStart:E,rejectDragStart:D})})},[t,p,o,n]);return[Dt(async(f,y)=>{var x;let{type:T}=f;switch(T){case"maximize":case"minimize":case"restore":return p({type:T,path:(x=f.path)!=null?x:o});case"remove":return m();case"mousedown":return h(y,f.index,f.preDragActivity);case"add-toolbar-contribution":return d(f.location,f.content);case"remove-toolbar-contribution":return u();default:return}},[p,o,m,h,d,u]),l]};import{useForkRef as Wc,useIdMemo as Gc}from"@salt-ds/core";import Kc from"classnames";import nn,{forwardRef as Zc,useCallback as Uc,useMemo as qc,useRef as vs,useState as Xc}from"react";import{useCallback as _e,useMemo as gs}from"react";var hs=({id:e,rootRef:t,path:o,dropTargets:n,title:r})=>{let s=de(),{loadState:i,loadSessionState:a,purgeState:l,saveState:c,saveSessionState:p}=Qe(),[d,u]=oo(e,t,o,n),m=gs(()=>{var E;return(E=i("view-title"))!=null?E:r},[i,r]),h=_e(E=>{o&&s({type:"set-title",path:o,title:E})},[s,o]),g=gs(()=>i(e),[e,i]),b=_e(E=>i(e,E),[e,i]),f=_e(E=>{l(e,E),s({type:"save"})},[e,s,l]),y=_e((E,D)=>{c(e,D,E),s({type:"save"})},[e,s,c]),T=_e(E=>a(e,E),[e,a]),x=_e((E,D)=>p(e,D,E),[e,p]),v=_e(({type:E,...D})=>{let{[E]:P}=D;y(P,E)},[y]);return{contributions:u,dispatchViewAction:d,load:b,loadSession:T,onConfigChange:v,onEditTitle:h,purge:f,restoredState:g,save:y,saveSession:x,title:m}};import{useResizeObserver as Bc,WidthHeight as $c}from"@heswell/salt-lab";import{useCallback as bs,useRef as ys}from"react";var Fc=[],Es=({mainRef:e,resize:t="responsive",rootRef:o})=>{let n=t==="defer",r=ys({}),s=ys(),i=bs(()=>{e.current&&(e.current.style.height=r.current.height+"px",e.current.style.width=r.current.width+"px"),s.current=void 0},[e]),a=bs(({height:l,width:c})=>{r.current.height=l,r.current.width=c,s.current!==null&&clearTimeout(s.current),s.current=window.setTimeout(i,40)},[i]);Bc(o,n?$c:Fc,a,n)};import _c,{useContext as xs}from"react";var Vc={dispatch:null},no=_c.createContext(Vc),Ts=()=>{var t;let e=xs(no);return(t=e==null?void 0:e.dispatch)!=null?t:null},Oy=()=>xs(no);import{jsx as on,jsxs as jc}from"react/jsx-runtime";var wt="vuuView",Yc=(e,t)=>e&&t?{...e,...t}:e||t,Ds=Zc(function(t,o){let{Header:n=ws,children:r,className:s,collapsed:i,closeable:a,"data-path":l,"data-resizeable":c,dropTargets:p,expanded:d,flexFill:u,id:m,header:h,orientation:g="horizontal",path:b=l,resize:f="responsive",resizeable:y=c,tearOut:T,style:x={},title:v,...E}=t,D=Gc(m),P=vs(null),k=vs(null),[C,M]=Xc(),{contributions:w,dispatchViewAction:R,load:O,loadSession:I,onConfigChange:S,onEditTitle:L,purge:H,restoredState:G,save:_,saveSession:F,title:K}=hs({id:D,rootRef:P,path:b,dropTargets:p,title:v});Es({mainRef:k,resize:f,rootRef:P});let Q=Uc(N=>{M(N)},[]),V=()=>nn.isValidElement(r)&&(G||C)?nn.cloneElement(r,Yc(G,C)):r,q=qc(()=>({dispatch:R,id:D,path:b,title:K,load:O,loadSession:I,onConfigChange:S,purge:H,save:_,saveSession:F,setComponentProps:Q}),[R,D,O,I,S,b,H,_,F,Q,K]),z=typeof h=="object"?h:{};return on("div",{...E,className:Kc(wt,s,{[`${wt}-collapsed`]:i,[`${wt}-expanded`]:d,[`${wt}-resize-defer`]:f==="defer"}),"data-resizeable":y,id:D,ref:Wc(o,P),style:x,tabIndex:-1,children:jc(no.Provider,{value:q,children:[h?on(n,{...z,collapsed:i,contributions:w,expanded:d,closeable:a,onEditTitle:L,orientation:g,tearOut:T,title:K}):null,on("div",{className:`${wt}-main`,ref:k,children:V()})]})})});Ds.displayName="View";var He=nn.memo(Ds);He.displayName="View";Y("View",He,"view");import{Toolbar as gp,ToolbarButton as hp,ToolbarField as bp,Tooltray as Ei}from"@heswell/salt-lab";import{CloseIcon as yp}from"@salt-ds/icons";function Rs(e){var t,o,n="";if(typeof e=="string"||typeof e=="number")n+=e;else if(typeof e=="object")if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(o=Rs(e[t]))&&(n&&(n+=" "),n+=o);else for(t in e)e[t]&&(n&&(n+=" "),n+=t);return n}function ro(){for(var e,t,o=0,n="";o<arguments.length;)(e=arguments[o++])&&(t=Rs(e))&&(n&&(n+=" "),n+=t);return n}import{useCallback as Ss,useLayoutEffect as Jc,forwardRef as Qc,useRef as rn}from"react";import{useControlled as Ps}from"@salt-ds/core";import{Input as eu}from"@heswell/salt-lab";import{jsx as Ms}from"react/jsx-runtime";var sn="vuuEditableLabel",so=Qc(function({className:t,defaultEditing:o,defaultValue:n,editing:r,onChange:s,onEnterEditMode:i,onExitEditMode:a,value:l,...c},p){let d=rn(null),u=rn(!1),[m,h]=Ps({controlled:l,default:n!=null?n:"",name:"EditableLabel",state:"value"}),[g,b]=Ps({controlled:r,default:o!=null?o:!1,name:"EditableLabel",state:"editing"}),f=Ss(C=>{b(u.current=C)},[]),y=rn(m);Jc(()=>{g&&d.current!==null&&(d.current.select(),d.current.focus())},[g,d]);let T=Ss(()=>{f(!0),i&&i()},[i,f]),x=({cancelEdit:C=!1,allowDeactivation:M=!1}={})=>{f(!1);let w=y.current;w!==m&&(C?h(w):y.current=m),a&&a(w,m,M,C)},v=C=>{let{value:M}=C.target;h(M),s&&s(M)},E=()=>{T()},D=()=>{u.current&&x({allowDeactivation:!0})},P=C=>{g&&C.key==="Enter"?(C.stopPropagation(),x()):C.key==="ArrowRight"||C.key==="ArrowLeft"?C.stopPropagation():C.key==="Escape"&&x({cancelEdit:!0})},k=ro(sn,t,{[`${sn}-editing`]:g});return Ms("div",{...c,className:k,onDoubleClick:E,"data-text":m,ref:p,children:g?Ms(eu,{inputProps:{className:`${sn}-input`},value:m,onBlur:D,onChange:v,onKeyDown:P,ref:d,style:{padding:0},textAlign:"left"}):m})});import{Button as qu}from"@salt-ds/core";import Xu from"classnames";import Yu,{useMemo as ju,useRef as Ju}from"react";import{useCallback as ce,useRef as Gu}from"react";import{createContext as tu,useCallback as TE,useContext as ou,useMemo as vE}from"react";import{jsx as wE}from"react/jsx-runtime";var nu={isDragSource:!1,isDropTarget:!1,register:()=>{}},ru=()=>console.log("have you forgotten to provide a DragDrop Provider ?"),su=tu({registerDragDropParty:ru});var Ls=e=>{var r,s;let{dragSources:t,dropTargets:o,registerDragDropParty:n}=ou(su);if(e){let i=(r=t==null?void 0:t.has(e))!=null?r:!1,a=(s=o==null?void 0:o.has(e))!=null?s:!1;return{isDragSource:i,isDropTarget:a,register:n}}else return nu};import{useCallback as St,useMemo as hu,useRef as Ve,useState as bu}from"react";import{useCallback as ot,useMemo as gu,useRef as Bs}from"react";var iu=["left","right"],au=["top","bottom"],io=":not(.wrapped)",Is=':not([aria-hidden="true"])',Cs=e=>{let t=e.cloneNode(!0);return t.removeAttribute("id"),t.dataset.index="-1",t},lu=(e,t="width",o=!1)=>{let n=t==="width"?"left":"top",{[t]:r,[n]:s}=e.getBoundingClientRect(),{padEnd:i=!1,padStart:a=!1}=e.dataset,l=getComputedStyle(e),[c,p]=t==="width"?iu:au,d=a&&!o?0:parseInt(l.getPropertyValue(`margin-${c}`),10),u=i&&!o?0:parseInt(l.getPropertyValue(`margin-${p}`),10),m=r;if(parseInt(l.getPropertyValue("flex-shrink"),10)>0){let g=parseInt(l.getPropertyValue("flex-basis"),10);!isNaN(g)&&g>0&&(m=g)}return[s,d+m+u]},cu={horizontal:{CLIENT_POS:"clientX",CLIENT_SIZE:"clientWidth",CONTRA:"top",CONTRA_CLIENT_POS:"clientY",CONTRA_END:"bottom",CONTRA_POS:"y",DIMENSION:"width",END:"right",POS:"x",SCROLL_POS:"scrollLeft",SCROLL_SIZE:"scrollWidth",START:"left"},vertical:{CLIENT_POS:"clientY",CLIENT_SIZE:"clientHeight",CONTRA:"left",CONTRA_CLIENT_POS:"clientX",CONTRA_END:"right",CONTRA_POS:"x",DIMENSION:"height",END:"bottom",POS:"y",SCROLL_POS:"scrollTop",SCROLL_SIZE:"scrollHeight",START:"top"}},me=e=>cu[e],Os=(e,t)=>{let o=e.find(n=>n.id===t);if(o)return o},As=(e,t)=>{e.splice(t,1);for(let o=t;o<e.length;o++)e[o].currentIndex-=1},et=(e,t,o,n,r)=>{var d;let s=[],{DIMENSION:i}=me(t),a=Array.from(o?e.querySelectorAll(o):e.children),l=a.length,c=typeof(n==null?void 0:n.from)=="number"?n.atEnd?Math.max(0,n.from-1):n.from:0,p=typeof(n==null?void 0:n.to)=="number"?Math.min(n.to+2,l-1):l-1;for(let u=c;u<=p;u++){let m=a[u],[h,g]=lu(m,i),b=u===l-1,f=m.id,y=parseInt((d=m.dataset.index)!=null?d:"-1");s.push({currentIndex:u,dataIndex:isNaN(y)?-1:y,id:f,index:u,isDraggedItem:r===f,isLast:b,isOverflowIndicator:m.dataset.index==="overflow",element:m,start:h,end:h+g,size:g,mid:h+g/2})}return s},Rt=e=>e.findIndex(t=>t.isDraggedItem),an=(e,t)=>{let o=Rt(e),n=t==="fwd"?o+1:o-1;if(n<0||n>=e.length)throw Error("switchDropTargetPosition index out of range");let r=e.at(o),s=e.at(n),i=s.size-r.size;if(t==="fwd"){let a=s.start+i,l=s.end,c={...r,start:a,mid:Math.floor(a+(l-a)/2),end:l},p=r.start,d=r.end+i,u={...s,start:p,mid:Math.floor(p+(d-p)/2),end:d};e.splice(o,2,u,c)}else{let a=s.start,l=s.end-i,c={...r,start:a,mid:Math.floor(a+(l-a)/2),end:l},p=r.start-i,d=r.end,u={...s,start:p,mid:Math.floor(p+(d-p)/2),end:d};e.splice(n,2,c,u)}},tt=(e,t,o)=>{let n=e.length,r=Rt(e),s=e[r];if(o==="fwd"){let i=Math.round(t+s.size);for(let a=n-1;a>=0;a--){let l=e[a];if(i>l.mid)return a<r?s:l}}else{let i=Math.round(t);for(let a=0;a<n;a++){let l=e[a];if(i<l.mid)return a>r?s:l}}throw Error("no dropTraget identified")};function Hs(e,t){let{height:o,left:n,top:r,width:s}=e,{height:i,width:a}=t;return{height:Math.min(o,i),left:n,top:r,width:Math.min(s,a)}}import{useForkRef as uu}from"@salt-ds/core";import{forwardRef as pu,useCallback as du}from"react";import{Portal as mu}from"@vuu-ui/vuu-popups";import{jsx as ks}from"react/jsx-runtime";var fu=e=>e.split(" ").map(t=>`vuuDraggable-${t}`),ao=pu(function({wrapperClassName:t,element:o,onTransitionEnd:n,style:r,scale:s=1},i){let a=du(c=>{c&&(c.innerHTML="",c.appendChild(o),s!==1&&(c.style.transform=`scale(${s},${s})`))},[o,s]),l=uu(i,a);return ks(mu,{children:ks("div",{className:ro("vuuDraggable",...fu(t)),ref:l,onTransitionEnd:n,style:r})})}),ln=e=>{let t=document.createElement("div");return t.className="vuuDraggable-spacer",e&&t.addEventListener("transitionend",()=>{e.current=!1}),t},zs=()=>{let e=document.createElement("div");return e.className="vuuDraggable-dropIndicatorPosition",e},Ns=e=>{let t=document.createElement("div");return t.className="vuuDraggable-dropIndicator",e&&t.addEventListener("transitionend",()=>{e.current=!1}),t};var $s=()=>{let e=Bs(0),t=Bs(!1),o=gu(()=>[ln(t),ln()],[]),n=ot(()=>o.forEach(c=>c.remove()),[o]),r=ot((c,p="width")=>{let[d,u]=o;e.current=requestAnimationFrame(()=>{t.current=!0,d.style.cssText=`${p}: 0px`,u.style.cssText=`${p}: ${c}px`,o[0]=u,o[1]=d})},[o]),s=ot(()=>{e.current&&(cancelAnimationFrame(e.current),e.current=0)},[]),i=ot(()=>{n()},[n]),a=ot((c,p,d,u=!1,m="static",h="horizontal")=>{if(p){let g=h==="horizontal"?"width":"height",[b,f]=o;if(s(),u)t.current?(n(),b.style.cssText=`${g}: ${d}px`,f.style.cssText=`${g}: 0px`,m==="fwd"?(p.element.before(b),p.element.after(f)):(p.element.after(b),p.element.before(f))):m==="fwd"?p.element.after(f):p.element.before(f),r(d,g);else if(m==="static")b.style.cssText=`${g}: ${d}px`,p.element.before(b);else throw Error("useDragDisplacers currently only supports noTransition for static displacement");m!=="static"&&an(c,m)}},[r,s,n,o]),l=ot((c,p,d,u=!1,m="static",h="horizontal")=>{let g=h==="horizontal"?"width":"height",[b,f]=o;s(),u?(t.current?(n(),b.style.cssText=`${g}: ${d}px`,f.style.cssText=`${g}: 0px`,p.element.before(b),p.element.after(f)):m==="fwd"?p.element.after(f):p.element.before(f),r(d,g)):(b.style.cssText=`${g}: ${d}px`,p.element.after(b)),m!=="static"&&an(c,m)},[r,s,n,o]);return{clearDisplacedItem:i,displaceItem:a,displaceLastItem:l,clearSpacers:n}};var Fs=({draggableRef:e,onDrop:t,orientation:o="horizontal",containerRef:n,itemQuery:r="*",selected:s,viewportRange:i})=>{let a=Ve(),l=Ve(!1),c=Ve(-1),p=Ve([]),d=Ve(!1),[u,m]=bu(!1),{clearDisplacedItem:h,clearSpacers:g,displaceItem:b,displaceLastItem:f}=$s(),y=Ve(),T=`:is(${r}${io}${Is},.vuuOverflowContainer-OverflowIndicator)`,x=R=>p.current.findIndex(O=>O.id===R.id),v=Ve();v.current=i;let E=St(()=>{h()},[h]),D=St((R,O,I)=>{let{current:S}=n,{current:L}=y;if(S&&L){p.current=et(S,o,T,v.current);let{size:H}=L,_=c.current+H/2,{current:F}=p,K=tt(F,_,"fwd");if(K){let V=x(K),q=F[V];I&&R==="fwd"?f(F,F[F.length-1],H,!1,"static",o):b(F,q,H,!0,"static",o)}}},[n,b,f,T,o]),P=St(R=>{let I=R.target.closest(r);I.ariaSelected&&Array.isArray(s)&&s.length>1&&console.log("its a selected element, and we have a multi select");let{current:S}=n;if(S&&I){let{SCROLL_SIZE:L,CLIENT_SIZE:H}=me(o),{id:G}=I,{[L]:_,[H]:F}=S;l.current=_>F;let K=p.current=et(S,o,T,i,G);console.log({dropTargets:K});let Q=Rt(K),V=K[Q];V&&S&&(y.current=V,(V.isLast?f:b)(K,V,V.size,!1,"static",o))}},[n,b,f,T,r,o,s,i]),[k,C]=hu(()=>{let R=!1;return[S=>{if(!R){R=!0;let L=S.element.querySelector(".vuuPopupMenu");if(L){let H=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!0});L.dispatchEvent(H)}}},S=>{if(R){R=!1;let L=S.element.querySelector(".vuuPopupMenu");if(L){let H=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!0});L.dispatchEvent(H)}}}]},[]),M=St((R,O)=>{let{current:I}=y;if(I&&e.current&&n.current){c.current=R;let{current:S}=p,L=tt(S,R,O);if(L&&!L.isDraggedItem)if(L.isOverflowIndicator)m(d.current=!0),k(L);else{let{size:H}=I;(x(L)===S.length-1?f:b)(S,L,H,!0,O,o);let F=S.at(-1);C(F),m(d.current=!1)}a.current=O}},[n,b,f,e,C,o,k]),w=St(()=>{var S;g();let{current:R}=p,O=Rt(R),I=R[O];if(I&&(a.current=void 0,d.current?t(I.index,-1):t(I.index,O)),m(!1),n.current){let L=(S=n.current)==null?void 0:S.scrollTop;O<R.length&&(n.current.scrollTop=L)}},[g,n,t]);return{beginDrag:P,drag:M,drop:w,handleScrollStart:E,handleScrollStop:D,revealOverflowedItems:u}};import{useCallback as Pt,useRef as Ee,useState as Ws}from"react";import{useCallback as _s,useMemo as yu}from"react";var Vs=()=>{let e=yu(()=>zs(),[]),t=_s(()=>e.remove(),[e]);return{positionDropIndicator:_s((n,r="end")=>(r==="end"?n.element.after(e):n.element.before(e),e),[e]),clearSpacer:t}};import{jsx as Tu}from"react/jsx-runtime";var Eu=':not([data-overflowed="true"])',xu=':not([aria-hidden="true"])',Gs=({draggableRef:e,onDrop:t,orientation:o="horizontal",containerRef:n,itemQuery:r="*",selected:s,viewportRange:i})=>{let a=Ee(),l=Ee(null),c=Ee(null),p=Ee(""),d=Ee(!1),u=Ee(-1),m=Ee([]),h=Ee(!1),[g,b]=Ws(!1),[f,y]=Ws(),{clearSpacer:T,positionDropIndicator:x}=Vs(),v=Ee(),E=`:is(${r}${Eu}${xu},[data-overflow-indicator])`,D=I=>m.current.findIndex(S=>S.id===I.id),P=(I,S,L)=>{I.start+=S,I.mid+=S,I.end+=S,typeof L=="number"&&(I.currentIndex+=L)},k=Ee();k.current=i;let C=Pt(()=>{T()},[T]),M=Pt((I,S,L)=>{let{current:H}=n,{current:G}=v;if(H&&G){m.current=et(H,o,E,k.current);let{size:_}=G,K=u.current+_/2,{current:Q}=m,V=tt(Q,K,"fwd");V&&x(L&&I==="fwd"?Q[Q.length-1]:V,"start")}},[n,x,E,o]),w=Pt(I=>{let L=I.target.closest(r);L.ariaSelected&&Array.isArray(s)&&s.length>1&&console.log("its a selected element, and we have a multi select");let{current:H}=n;if(H&&L){let{SCROLL_SIZE:G,CLIENT_SIZE:_}=me(o),{id:F}=L,{[G]:K,[_]:Q}=H;d.current=K>Q;let V=m.current=et(H,o,E,i),q=Os(V,F);if(q&&H){let z=D(q);As(V,z),v.current=q;let{current:N}=k;if(N!=null&&N.atEnd)for(let X=0;X<V.length;X++)P(V[X],q.size);for(let X=z;X<V.length;X++)P(V[X],-q.size,-1);let[Z,le]=q.isLast?[V[V.length-1],"end"]:[V[z],"start"];c.current=Z,p.current=le;let Se=x(Z,le),{top:W,left:U,width:j}=Se.getBoundingClientRect(),J={top:q.isLast?N!=null&&N.atEnd&&!N.atStart?W+q.size-2:W-2:W-q.size-2,left:U,width:j,height:2};y(Tu(ao,{wrapperClassName:"dropIndicatorContainer",style:J,ref:l,element:Ns()}))}}},[r,s,n,o,E,i,x]),R=Pt((I,S)=>{let{current:L}=c,{current:H}=v;if(H&&e.current&&n.current){let G=o==="horizontal"?"left":"top";u.current=I;let{current:_}=m,F=tt(_,I,S);if(F&&F.index!==(L==null?void 0:L.index)){if(F.isOverflowIndicator)b(h.current=!0);else if(l.current){if(D(F)===_.length-1){let Q=_[_.length-1],q=x(Q,"start").getBoundingClientRect();l.current.style[G]=`${q.top}px`}else{let V=x(F,"start").getBoundingClientRect();l.current.style[G]=`${V.top}px`}b(h.current=!1)}c.current=F,a.current=S}}},[e,n,o,x]),O=Pt(()=>{T();let{current:I}=v,{current:S}=c,{current:L}=p,{current:H}=k;if(I&&H&&S){let{index:G}=I,_=L==="start",{index:F,currentIndex:K}=S;c.current=null,a.current=void 0,h.current?t(G,-1):G<F?t(G,_?K:K+1):t(G,_?F:F+1),y(void 0)}b(!1)},[T,t]);return{beginDrag:w,drag:R,drop:O,dropIndicator:f,handleScrollStart:C,handleScrollStop:M,revealOverflowedItems:g}};import{useCallback as xe,useLayoutEffect as vu,useRef as fe,useState as Du}from"react";import{useCallback as Ks,useRef as lo}from"react";var Zs=({containerRef:e,onScrollingStopped:t,orientation:o="vertical"})=>{let n=lo(null),r=lo(!1),s=lo(0),i=lo("fwd"),a=Ks((c=!1)=>{console.log("[useAutoScroll] stopScrolling"),n.current!==null&&(clearTimeout(n.current),n.current=null),r.current=!1,t==null||t(i.current,s.current,c)},[t]),l=Ks((c,p,d=30)=>{let{current:u}=e;if(u){let{SCROLL_POS:m,SCROLL_SIZE:h,CLIENT_SIZE:g}=me(o),{[m]:b,[h]:f,[g]:y}=u,T=c==="fwd"?f-y-b:b,x=Math.min(T,d);c==="fwd"?(i.current="fwd",u[m]=s.current=b+x):(i.current="bwd",u[m]=s.current=b-x),x===T?a(!0):(r.current=!0,n.current=window.setTimeout(()=>{l(c,p,d)},100))}},[e,o,a]);return{isScrolling:r,startScrolling:l,stopScrolling:a}};import{jsx as Iu}from"react/jsx-runtime";var wu={beginDrag:()=>{},drag:()=>{},draggableRef:{current:null},drop:()=>{},isDragging:!1,isScrolling:!1,handleScrollStart:()=>{},handleScrollStop:()=>{},revealOverflowedItems:!1},Us={start:0,end:1e3,contraStart:0,contraEnd:1e3},Ru=()=>wu,Su=3,Pu=(e,t)=>e.closest(t),Mu=e=>e.dataset.index==="overflow"&&e.parentElement!==null&&e.parentElement.classList.contains("overflowed"),Lu=(e,t)=>{let o=`:is(${t}${io},.vuuOverflowContainer-OverflowIndicator)`,r=Array.from(e.querySelectorAll(o)).pop();return[r,Mu(r)]},qs=({allowDragDrop:e,containerRef:t,draggableClassName:o,itemQuery:n="*",onDragStart:r,onDrop:s,onDropSettle:i,orientation:a,...l})=>{let c=fe({start:0,end:0,contraStart:0,contraEnd:0}),[p,d]=Du({draggable:void 0,draggedItemIndex:-1,isDragging:!1}),u=fe(null),m=fe(),h=fe(null),g=fe(!1),b=fe({x:0,y:0}),f=fe({x:0,y:0}),y=fe({x:0,y:0}),T=fe(null),x=fe(-1),v=fe(-1),E=fe(),{isDragSource:D,isDropTarget:P,register:k}=Ls(l.id);l.id&&(D||P)&&k(l.id);let C=xe(()=>{var j;let{current:W}=v,U=(j=t.current)==null?void 0:j.querySelector(`${n}[data-index="${W}"]`);U&&U.classList.remove("vuuDropTarget-settling"),v.current=-1,i==null||i(W),d(J=>({...J,draggable:void 0}))},[t,n,i]),M=xe(W=>{if(t.current){let{POS:U,SCROLL_POS:j,SCROLL_SIZE:J,CLIENT_SIZE:X}=me(a),{[j]:ge,[J]:rt,[X]:ke}=t.current,Ge=rt-ke,Ke=ge<Ge,st=c.current.end,Ze=ge>0&&W-b.current[U]<=c.current.start,Ue=Ke&&W-b.current[U]>=st;return Ze?"bwd":Ue?"fwd":""}},[t,a]),w=e===!0||e==="natural-movement"?Fs:e==="drop-indicator"?Gs:Ru,R=xe((W,U,j)=>{var J;(J=E.current)==null||J.call(E,W,U,j)},[]),{isScrolling:O,startScrolling:I,stopScrolling:S}=Zs({containerRef:t,onScrollingStopped:R,orientation:a}),L=xe((W,U)=>{x.current=U,s==null||s(W,U),v.current=U},[s]),{beginDrag:H,drag:G,drop:_,handleScrollStart:F,handleScrollStop:K,...Q}=w({...l,containerRef:t,draggableRef:u,isDragSource:D,isDropTarget:P,itemQuery:n,onDrop:L,orientation:a});E.current=K;let V=xe(W=>{let{CLIENT_POS:U,CONTRA_CLIENT_POS:j,CONTRA_POS:J,POS:X}=me(a),{clientX:ge,clientY:rt}=W,{[U]:ke,[j]:Ge}=W,Ke=f.current[X],st=f.current[J],Ze=Math.abs(Ke-ke);if((D?Math.abs(st-Ge):0)-Ze>5&&(c.current=Us),f.current.x=ge,f.current.y=rt,c.current===Us&&u.current){let it=f.current.x-b.current.x,ze=f.current.y-b.current.y;u.current.style.top=`${ze}px`,u.current.style.left=`${it}px`}else if(Ze>0&&u.current){let it=Ke<ke?"fwd":"bwd",ze=M(ke),yo=f.current[X]-b.current[X];if(ze&&g.current&&!O.current?(F(),I(ze,1)):!ze&&O.current&&S(),!O.current){let It=Math.round(Math.max(c.current.start,Math.min(c.current.end,yo))),ve=a==="horizontal"?"left":"top";u.current.style[ve]=`${It}px`,G(It,it)}}},[G,u,M,F,D,O,a,I,S]),q=xe(()=>{document.removeEventListener("mousemove",V,!1),document.removeEventListener("mouseup",q,!1),T.current=u.current,_(),d(W=>({...W,draggedItemIndex:-1,isDragging:!1})),m.current=void 0},[V,u,_]),z=xe(W=>{let{clientX:U,clientY:j,target:J}=W,X=Pu(J,n),{current:ge}=t;if(ge&&X){let{CONTRA:rt,CONTRA_END:ke,DIMENSION:Ge,END:Ke,SCROLL_SIZE:st,CLIENT_SIZE:Ze,START:Ue}=me(a);m.current=X;let{[st]:it,[Ze]:ze}=ge;g.current=it>ze;let[yo,It]=Lu(ge,n),ve=ge.getBoundingClientRect(),Ct=X.getBoundingClientRect(),Eo=Ct[Ge],{[Ue]:Zi,[Ke]:Ui}=yo.getBoundingClientRect();b.current.x=U-Ct.left,b.current.y=j-Ct.top,c.current.start=ve[Ue],c.current.end=It?Math.max(Zi,ve.right-Eo):g.current?ve[Ue]+ve[Ge]-Eo:Ui-Eo,c.current.contraStart=ve[rt],c.current.contraEnd=ve[ke],H(W);let{dataset:{index:qi="-1"}}=X;d({isDragging:!0,draggable:Iu(ao,{element:Cs(X),onTransitionEnd:C,ref:u,style:Hs(Ct,ve),wrapperClassName:o}),draggedItemIndex:parseInt(qi)}),r==null||r(),document.addEventListener("mousemove",V,!1),document.addEventListener("mouseup",q,!1)}},[H,t,V,q,o,u,n,r,a,C]),N=xe(W=>{let{CLIENT_POS:U,POS:j}=me(a),{[U]:J}=W;Math.abs(J-y.current[j])>Su&&t.current&&(h.current&&(window.clearTimeout(h.current),h.current=null),document.removeEventListener("mousemove",N),document.removeEventListener("mouseup",Z,!1),z(W))},[t,H,a]),Z=xe(()=>{h.current&&(window.clearTimeout(h.current),h.current=null),document.removeEventListener("mousemove",N,!1),document.removeEventListener("mouseup",Z,!1)},[N]),le=xe(W=>{console.log("useDragDropNext onMouseDown");let{current:U}=t;if(U&&!W.defaultPrevented){let{clientX:j,clientY:J}=W;f.current.x=y.current.x=j,f.current.y=y.current.y=J,document.addEventListener("mousemove",N,!1),document.addEventListener("mouseup",Z,!1),W.persist(),h.current=window.setTimeout(()=>{document.removeEventListener("mousemove",N,!1),document.removeEventListener("mouseup",Z,!1),z(W.nativeEvent)},500)}},[t,z,N,Z]),{current:Se}=T;return vu(()=>{if(Se&&t.current){let W=x.current,U=t.current.querySelector(`${n}[data-index="${W}"]`);U?(U.classList.add("vuuDropTarget-settling"),requestAnimationFrame(()=>{let{top:j,left:J}=U.getBoundingClientRect(),{top:X,left:ge}=Se.getBoundingClientRect();ge!==J||X!==j?(Se.classList.add("vuuDraggable-settling"),Se.style.top=`${j}px`,Se.style.left=`${J}px`):C()})):console.log(`dont have the dropped item (at ${W})`),T.current=null}},[t,n,Se,C]),{...Q,...p,isScrolling:O,onMouseDown:e?le:void 0}};var Xs=e=>typeof e=="object"&&e!==null&&"tabIndex"in e&&typeof e.tabIndex=="number",Ys=e=>({label:"Close",location:"tab",action:"close-tab",options:e}),js=e=>({label:"Rename",location:"tab",action:"rename-tab",options:e});var Cu=e=>{if(e){let t=parseInt(e.dataset.index||"");if(!isNaN(t))return t}return-1},Js=(e,t)=>{if(e){let o=e.querySelector(`[data-index]:has(${t})`);return Cu(o)}return-1},cn=e=>Js(e,'[aria-selected="true"]'),Qs=e=>Js(e,".vuuEditableLabel-editing");import{useCallback as un,useMemo as Ou,useRef as ei}from"react";var ti=(e,t)=>{let o=ei(!1),n=un(()=>{o.current=!0},[]),r=un(()=>{o.current=!1},[]),s=un(()=>{var a,l;(a=e.current)==null||a.style.setProperty("--tab-thumb-transition","none"),(l=e.current)==null||l.removeEventListener("transitionend",s)},[e]),i=ei(-1);return Ou(()=>{var c,p;let a=0,l=0;if(i.current!==-1){let d=(c=e.current)==null?void 0:c.querySelector(".vuuTab-selected"),u=(p=e.current)==null?void 0:p.querySelector(`[data-index="${t}"] .vuuTab`);if(d&&u&&!o.current){let{left:m,width:h}=d.getBoundingClientRect(),{left:g}=u.getBoundingClientRect();a=m-g,l=h;let b=Math.abs(a/1100);requestAnimationFrame(()=>{var f,y,T,x;(f=e.current)==null||f.style.setProperty("--tab-thumb-offset","0px"),(y=e.current)==null||y.style.setProperty("--tab-thumb-width","100%"),(T=e.current)==null||T.style.setProperty("--tab-thumb-transition",`all ${b}s ease`),(x=e.current)==null||x.addEventListener("transitionend",s)})}}return i.current=t,o.current?{containerStyle:{"--tab-thumb-offset":"0px","--tab-thumb-width":"100%"},resumeAnimation:r,suspendAnimation:n}:{containerStyle:{"--tab-thumb-offset":`${a}px`,"--tab-thumb-width":l?`${l}px`:void 0},resumeAnimation:r,suspendAnimation:n}},[t,r,n,e,s])};import{useControlled as Au}from"@salt-ds/core";import{getFocusableElement as Hu}from"@vuu-ui/vuu-utils";import{useCallback as Te,useRef as pn,useState as oi}from"react";import{ArrowDown as ii,ArrowUp as ku,ArrowLeft as zu,ArrowRight as Nu,Home as ni,End as ri}from"@vuu-ui/vuu-utils";var ai={horizontal:{[ni]:"start",[ri]:"end",[zu]:"bwd",[Nu]:"fwd"},vertical:{[ni]:"start",[ri]:"end",[ku]:"bwd",[ii]:"fwd"}},Bu=(e,t="horizontal")=>ai[t][e]!==void 0,$u=e=>e===ii;function si(e,t,o){return t==="start"?0:t==="end"?e-1:t==="bwd"?o>0?o-1:o:o===null?0:o===e-1?o:o+1}var Fu=e=>e!==null&&!e.classList.contains("wrapped"),co=(e,t)=>e?e.querySelector(`[data-index="${t}"]`):null,li=({containerRef:e,defaultHighlightedIdx:t=-1,highlightedIdx:o,keyBoardActivation:n,orientation:r,selectedIndex:s=0})=>{let i=n==="manual",a=pn(!1),l=pn(-1),[c,p]=oi(!1),[,d]=oi({}),[u,m]=Au({controlled:o,default:t,name:"UseKeyboardNavigation"}),h=Te(w=>{m(l.current=w)},[m]),g=pn(!1),b=Te((w,R=!1,O,I=70)=>{h(w),O===!0&&!g.current&&(g.current=!0);let S=()=>{let L=co(e.current,w);if(L){let H=Hu(L);H==null||H.focus()}};R?S():setTimeout(S,I)},[e,h]),f=w=>{if(console.log("ONFOCUS"),l.current===-1&&w.target.tabIndex!==-1){let R=Qs(e.current);R!==-1?requestAnimationFrame(()=>{h(R)}):setTimeout(()=>{l.current===-1&&s!==null&&h(s)},200)}},y=Te(()=>{var w,R;return(R=(w=e.current)==null?void 0:w.querySelectorAll("[data-index]").length)!=null?R:0},[e]),T=Te((w="fwd",R)=>{let O=y(),S=si(O,w,typeof R=="number"?R:O),L=w==="start"?"fwd":w==="end"?"bwd":w;for(;(L==="fwd"&&S<O||L==="bwd"&&S>0)&&!Fu(co(e.current,S));){let H=si(O,L,S);if(H===S)break;S=H}return S},[e,y]),x=Te((w,R=!1)=>{let O=ai[r][w.key],I=T(O,u);I!==u?i&&b(I,!0):R&&d({})},[u,i,T,b,r]),v=Te(()=>{let w=co(e.current,u);return w?w.querySelector(".vuuPopupMenu")!=null:!1},[e,u]),E=Te(()=>{let w=co(e.current,u),R=w==null?void 0:w.querySelector(".vuuPopupMenu");if(R){let O=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!0});R.dispatchEvent(O)}return!1},[e,u]),D=Te(w=>{y()>0&&Bu(w.key,r)?(w.preventDefault(),g.current?x(w):(g.current=!0,x(w,!0))):$u(w.key)&&v()&&E()},[E,y,v,x,r]),P=(w,R)=>{h(R)},k=Te(()=>{c||(p(!0),a.current?a.current=!1:g.current=!0)},[c]),C=Te(()=>{c||(a.current=!0),g.current=!1},[c]);return{containerProps:{onBlur:w=>{let R=w.target.closest(".vuuTabstrip"),O=w.relatedTarget;R&&!(R!=null&&R.contains(O))&&(h(-1),p(!1))},onMouseDownCapture:C,onFocus:k,onMouseLeave:()=>{g.current=!0,h(-1),a.current=!1}},focusVisible:g.current?u:-1,focusIsWithinComponent:c,highlightedIdx:u,focusTab:b,onClick:P,onFocus:f,onKeyDown:D,setHighlightedIdx:h}};import{useControlled as _u}from"@salt-ds/core";import{useCallback as uo}from"react";var Vu=["Enter"," "],Wu=e=>e&&e.matches('[class*="vuuTab "]'),ci=({defaultSelected:e,highlightedIdx:t,onSelectionChange:o,selected:n})=>{let[r,s,i]=_u({controlled:n,default:e!=null?e:0,name:"Tabstrip",state:"value"}),a=uo(d=>Vu.includes(d.key),[]),l=uo(d=>{s(d),o==null||o(d)},[o,s]),c=uo(d=>{let u=d.target;a(d)&&t!==r&&Wu(u)&&(d.stopPropagation(),d.preventDefault(),l(t))},[a,t,r,l]),p=uo((d,u)=>{u!==r&&l(u)},[l,r]);return{activateTab:l,isControlled:i,onClick:p,onKeyDown:c,selected:r}};var Ku=new Set(["Enter"," "]),Zu=e=>Ku.has(e),Uu=(e,t)=>e?e.querySelector(`[data-index="${t}"]`):null,ui=({activeTabIndex:e,allowDragDrop:t,animateSelectionThumb:o,containerRef:n,onActiveChange:r,onAddTab:s,onCloseTab:i,onExitEditMode:a,onMoveTab:l,orientation:c,keyBoardActivation:p})=>{let d=Gu(e),{focusTab:u,highlightedIdx:m,onClick:h,onKeyDown:g,setHighlightedIdx:b,...f}=li({containerRef:n,keyBoardActivation:p,orientation:c,selectedIndex:d.current}),{activateTab:y,onClick:T,onKeyDown:x,selected:v}=ci({highlightedIdx:m,onSelectionChange:r,selected:e});d.current=v;let{containerStyle:E,resumeAnimation:D,suspendAnimation:P}=ti(n,o?v:-1),k=ce((z,N)=>{let{current:Z}=d;console.log(`useTabstrip handleDrop ${z} - ${N} ${Z}`),l==null||l(z,N);let le=-1;N!==-1&&(Z===z?le=N:z>Z&&N<=Z?le=Z+1:z<Z&&N>=Z&&(le=Z-1),le!==-1&&(P(),y(le),requestAnimationFrame(D)),u(N,!1,!1,350))},[u,l,D,y,P]),{onMouseDown:C,...M}=qs({allowDragDrop:t,containerRef:n,draggableClassName:`tabstrip-${c}`,onDrop:k,orientation:"horizontal",itemQuery:".vuuOverflowContainer-item"}),w=ce((z,N,Z,le)=>{console.log(`handleExitEditMode ${z} ${N} ${Z} ${le}`),a==null||a(z,N,Z,le),Z||u(le,!1,!0)},[u,a]),R=ce((z,N)=>{h(z,N),T(z,N)},[h,T]),O=ce((z=m)=>{let N=Uu(n.current,z);if(N)return N.querySelector(".vuuEditableLabel")},[n,m]),I=ce((z=m)=>{let N=O(z);return N?N.classList.contains("vuuEditableLabel-editing"):!1},[O,m]),S=ce((z=m)=>{let N=O(z);if(N){let Z=new MouseEvent("dblclick",{view:window,bubbles:!0,cancelable:!0});N.dispatchEvent(Z)}},[O,m]),L=ce(z=>{g(z),z.defaultPrevented||x(z),!z.defaultPrevented&&Zu(z.key)&&S()},[S,g,x]),H=ce(z=>{let N=cn(n.current),Z=N>z?N-1:N===z?0:N;return P(),i==null||i(z,Z),setTimeout(()=>{D()},200),!0},[n,i,D,P]),G=ce(z=>(S(z),!0),[S]),_=ce(z=>{if(Xs(z.options))switch(z.menuId){case"close-tab":return H(z.options.tabIndex);case"rename-tab":return G(z.options.tabIndex);default:console.log(`tab menu action ${z.menuId}`)}return!1},[H,G]),F=ce(()=>{I()?b(m):u(m)},[m,u,b,I]),K=ce(z=>{let N=parseInt(z.index);isNaN(N)||y(N)},[y]),Q={onFocus:f.onFocus,onKeyDown:L},V=ce(()=>{s==null||s(),requestAnimationFrame(()=>{let z=cn(n.current);z!==-1&&u(z)})},[n,u,s]),q={onClick:R,onKeyDown:L,onExitEditMode:w,onMenuAction:_,onMenuClose:F,onMouseDown:C};return{activeTabIndex:v,containerStyle:E,focusVisible:f.focusVisible,containerProps:{...f.containerProps,onSwitchWrappedItemIntoView:K},navigationProps:Q,onClickAddTab:V,tabProps:q,...M}};import{Fragment as tp,jsx as ep,jsxs as op}from"react/jsx-runtime";import{createElement as Qu}from"react";var dn="vuuTabstrip",pi=({activeTabIndex:e,allowAddTab:t,allowCloseTab:o,allowDragDrop:n=!1,allowRenameTab:r=!1,animateSelectionThumb:s=!1,children:i,className:a,id:l,keyBoardActivation:c="manual",location:p,onActiveChange:d,onAddTab:u,onCloseTab:m,onExitEditMode:h,onMoveTab:g,orientation:b="horizontal",showTabMenuButton:f,style:y,...T})=>{let x=Ju(null),{activeTabIndex:v,focusVisible:E,containerStyle:D,draggedItemIndex:P,onClickAddTab:k,tabProps:C,...M}=ui({activeTabIndex:e,allowDragDrop:n,animateSelectionThumb:s,containerRef:x,keyBoardActivation:c,onActiveChange:d,onAddTab:u,onCloseTab:m,onExitEditMode:h,onMoveTab:g,orientation:b}),w=Ht(l),R=Xu(dn,`${dn}-${b}`,a),O=y||D?{...y,...D}:void 0,I=ju(()=>qe(i).map((S,L)=>{let{id:H=`${w}-tab-${L}`,closeable:G=o,editable:_=r,showMenuButton:F=f}=S.props,K=L===v;return Yu.cloneElement(S,{...C,...M.navigationProps,closeable:G,"data-overflow-priority":K?"1":void 0,dragging:P===L,editable:_,focusVisible:E===L,id:H,index:L,location:p,selected:K,showMenuButton:F,tabIndex:K?0:-1})}).concat(t?Qu(qu,{...M.navigationProps,"aria-label":"Create Tab",className:`${dn}-addTabButton`,"data-icon":"add","data-overflow-priority":"1",key:"addButton",onClick:k,variant:"secondary",tabIndex:-1}):[]),[v,t,o,r,i,E,w,p,k,f,C,P,M.navigationProps]);return op(tp,{children:[ep(di,{...T,...M.containerProps,className:R,height:28,id:w,overflowIcon:"more-horiz",ref:x,style:O,children:I}),M.draggable]})};import{useForkRef as lp}from"@salt-ds/core";import cp from"classnames";import{forwardRef as up,useCallback as pp,useRef as fi}from"react";import{PopupMenu as np}from"@vuu-ui/vuu-popups";import{useMemo as rp}from"react";import sp from"classnames";import{jsx as ap}from"react/jsx-runtime";var ip="vuuTabMenu",mi=({allowClose:e,allowRename:t,location:o,onMenuAction:n,onMenuClose:r,index:s})=>{let[i,a]=rp(()=>[(l,c)=>{let p=[];return t&&p.push(js(c)),e&&p.push(Ys(c)),p},{tabIndex:s}],[e,t,s]);return ap(np,{className:ip,menuBuilder:i,menuActionHandler:n,menuLocation:sp("tab",o),menuOptions:a,onMenuClose:r,tabIndex:-1})};import{jsx as po,jsxs as dp}from"react/jsx-runtime";var We="vuuTab",gi=()=>{},hi=up(function({ariaControls:t,children:o,className:n,closeable:r=!1,dragging:s,editable:i=!1,editing:a,focusVisible:l,index:c,label:p,location:d,onClick:u,onClose:m,onEnterEditMode:h=gi,onExitEditMode:g=gi,onFocus:b,onKeyUp:f,onMenuAction:y,onMenuClose:T,orientation:x,selected:v,showMenuButton:E=r||i,tabIndex:D,...P},k){if(E&&typeof y!="function")throw Error("Tab onMenuAction must be provided if showMenuButton is set");let C=fi(null),M=fi(null),w=lp(k,C),R=pp(H=>{a||(H.preventDefault(),u==null||u(H,c))},[a,c,u]),O=(H="",G="",_=!0)=>g(H,G,_,c),I=H=>{switch(H.key){case"Backspace":case"Delete":r&&(H.stopPropagation(),m&&m(c));break;default:f&&f(H,c)}},S=()=>i?po(so,{editing:a,defaultValue:p,onEnterEditMode:h,onExitEditMode:O,ref:M},p):p,L=H=>{if(M.current){let _=M.current.querySelector(".vuuEditableLabel-input");_==null||_.focus()}b==null||b(H)};return dp("div",{...P,"aria-controls":t,"aria-selected":v,className:cp(We,{[`${We}-closeable`]:r,"vuuDraggable-dragAway":s,[`${We}-editing`]:a,[`${We}-selected`]:v||void 0,[`${We}-vertical`]:x==="vertical",saltFocusVisible:l}),onClick:R,onFocus:L,onKeyUp:I,ref:w,role:"tab",tabIndex:D,children:[po("div",{className:`${We}-main`,children:po("span",{className:`${We}-text`,"data-text":i?void 0:p,children:o!=null?o:S()})}),E?po(mi,{allowClose:r,allowRename:i,location:d,onMenuAction:y,onMenuClose:T,index:c}):null]})});import{jsx as nt,jsxs as Ep}from"react/jsx-runtime";var ws=({className:e,contributions:t,collapsed:o,closeable:n,onEditTitle:r,orientation:s="horizontal",style:i,title:a="Untitled"})=>{let l=fp(null),[c,p]=yi(a),[d,u]=yi(!1),m=Ts(),h=M=>m==null?void 0:m({type:"remove"},M),g="vuuHeader",b=()=>{var M;(M=l.current)==null||M.focus()},f=M=>{M.stopPropagation()},T=mp(g,e,`${g}-${o||s}`),x=()=>{u(!0)},v=M=>{M.key==="Enter"&&u(!0)},E=(M="",w="",R=!0,O=!1)=>{var I;u(!1),O?p(M):w!==M&&(p(w),r==null||r(w)),R===!1&&((I=l.current)==null||I.focus())},D=M=>{m==null||m({type:"mousedown"},M)},P=[],k=[],C=[];return t==null||t.forEach((M,w)=>{switch(M.location){case"pre-title":P.push(bi.cloneElement(M.content,{key:w}));break;default:k.push(bi.cloneElement(M.content,{key:w}))}}),a&&P.push(nt(bp,{className:"vuuHeader-title",children:nt(so,{editing:d,value:c,onChange:p,onMouseDownCapture:b,onEnterEditMode:x,onExitEditMode:E,onKeyDown:v,ref:l,tabIndex:0},"title")},"title")),n&&C.push(Ep(hp,{onClick:h,onMouseDown:f,children:[nt(yp,{})," Close"]},"close")),k.length>0&&P.push(nt(Ei,{"data-align-end":!0,children:k},"contributions")),C.length>0&&P.push(nt(Ei,{"data-align-end":!0,children:C},"actions")),nt(gp,{className:T,orientation:s,style:i,onMouseDown:D,children:P})};import kp,{forwardRef as zp}from"react";import hn from"classnames";import{PopupMenu as Np}from"@vuu-ui/vuu-popups";import{useCallback as Li,useMemo as gn,useRef as Ap,useState as Hp}from"react";var xp=".vuuOverflowContainer-item:not(.wrapped)",Tp=e=>e.sort((t,o)=>{let{dataset:{index:n="?"}}=t,{dataset:{index:r="?"}}=o,s=t.classList.contains("wrapped"),i=o.classList.contains("wrapped"),a=n==="overflow",l=r==="overflow";return s&&!i?1:!s&&i?-1:a?1:l?-1:parseInt(n)>parseInt(r)?1:-1}),mn=[],Mt=e=>{let t=[],o=[],n=-1,r=!1,s=Tp(Array.from(e.children));for(let i of s){let a=i,{dataset:{index:l="?",label:c="?",overflowPriority:p="0"}}=a,{left:d}=a.getBoundingClientRect();d<=n?(l==="overflow"?o.push(t.pop()):o.push({index:l,label:c,overflowPriority:p}),r=!0):r?o.push({index:l,label:c,overflowPriority:p}):t.push({index:l,label:c,overflowPriority:p}),n=d}return[t,o]},xi=(e,t)=>{let o=!1;t.find(({index:n})=>n==="overflow")&&t.length===1&&(o=!0);for(let n of e.children){let{dataset:{index:r="?"}}=n;t.length===0||o?e.classList.remove("overflowed"):e.classList.add("overflowed"),r!=="overflow"&&t.find(s=>s.index===r)?n.classList.add("wrapped"):n.classList.remove("wrapped")}},vp=(e,{overflowPriority:t})=>Math.max(e,parseInt(t)),Dp=(e,{overflowPriority:t})=>Math.min(e,parseInt(t)),Ti=e=>{var t;return e.length>1&&((t=e.at(-1))==null?void 0:t.index)==="overflow"},wp=e=>{let[t]=e;for(let o=1;o<e.length;o++){let n=e[o];parseInt(n.overflowPriority)>parseInt(t.overflowPriority)&&(t=n)}return t},vi=(e,t)=>{var r;let o=e.reduce(Dp,Number.MAX_SAFE_INTEGER);return t.reduce(vp,0)>o?!0:t.length>1&&((r=t.at(-1))==null?void 0:r.index)==="overflow"},Di=(e,t)=>new Promise(o=>{requestAnimationFrame(()=>{let[,n]=Mt(e);Pp(t,n).forEach(s=>Rp(e,s)),o(n)})}),wi=(e,t,o)=>new Promise(n=>{requestAnimationFrame(()=>{let[,r]=Mt(e),s=wp(r);if(s){let[i,a]=fn(e,s);n([i,a])}else n([t,o])})}),Ri=(e,t)=>e.querySelector(`[data-index="${t.index}"]`),Rp=(e,t)=>{let o=Ri(e,t);if(o)o.classList.add("wrapped");else throw Error(`markElementAsWrapped element item with index ${t.index} not found`)},Sp=e=>Array.from(e.querySelectorAll(".wrapped")),Pp=(e,t)=>{let o=[];for(let n of t)e.find(({index:r})=>r===n.index)||o.push(n);return o},Mp=(e,t)=>{Sp(e).forEach(n=>{let{dataset:{index:r="?"}}=n;t.find(s=>s.index===r)||n.classList.remove("wrapped")})},Si=e=>e.querySelector('[data-index="overflow"]'),Lp=e=>e.querySelector(".wrapped"),mo=e=>parseInt(getComputedStyle(e).getPropertyValue("width")),Pi=(e,t)=>{let{right:o}=e.getBoundingClientRect(),n=parseInt(getComputedStyle(e).getPropertyValue("padding-right")),{right:r}=t.getBoundingClientRect();return o-n-r},Mi=e=>{let t=Si(e),o=Pi(e,t),n=mo(t),r=Lp(e);return mo(r)<=o+n?(e.classList.remove("overflowed"),r.classList.remove("wrapped"),!0):!1},Ip=(e,t)=>{let{dataset:{index:o="0",overflowPriority:n="0"}}=e,{dataset:{index:r="0",overflowPriority:s="0"}}=t;return n>s?-1:n<s?1:parseInt(o)-parseInt(r)},Cp=e=>Array.from(e.querySelectorAll(xp)).sort(Ip),fn=(e,t)=>{let o=Cp(e),n=Ri(e,t),r=-1,s=o.at(r),i=mo(s),a=mo(n),l=Si(e),c=Pi(e,l)+i;if(c>=a)Op(n,s);else{let{left:u}=s.getBoundingClientRect(),m=c,h=[s];for(;c<a;){r-=1,s=o.at(r),h.push(s);let{left:g}=s.getBoundingClientRect(),b=u-g;c=m+b}n==null||n.classList.remove("wrapped"),h.forEach(g=>{g.classList.add("wrapped")})}let[p,d]=Mt(e);return Mp(e,d),[p,d]},Op=(e,t)=>{if(!e||!t)throw Error("switchWrapOnElements, element undefined");e.classList.remove("wrapped"),t.classList.add("wrapped")};var Ii=({itemCount:e,onSwitchWrappedItemIntoView:t})=>{let[o,n]=Hp(null),r=Ap(mn),s=Li(async()=>{if(o){let[d,u]=Mt(o);for(xi(o,u),Ti(u)&&(u=await Di(o,u));vi(d,u);)[d,u]=await wi(o,d,u);u.length===1&&Mi(o)&&(u=mn),r.current=u}},[o]),i=d=>typeof d=="object"&&d!==null&&"overflowItem"in d,[a,l]=gn(()=>[()=>{let{current:d}=r;return d.map(u=>({label:u.label,action:`activate-item-${u.index}`,options:{overflowItem:u}}))},({options:d})=>{if(o&&i(d)){let[,u]=fn(o,d.overflowItem);r.current=u,t==null||t(d.overflowItem)}return!0}],[o,t]),c=gn(()=>{let d=0;return new ResizeObserver(u=>{for(let m of u){let{width:h}=m.contentRect;d!==h&&(d=h,s())}})},[s]);Fn(()=>{s()},[s,e]),gn(()=>{o&&c.observe(o)},[o,c]);let p=Li(d=>{n(d)},[]);return{menuActionHandler:l,menuBuilder:a,rootRef:p}};import{jsx as Lt,jsxs as Bp}from"react/jsx-runtime";var fo="vuuOverflowContainer",Ci=kp.memo(({children:e,height:t,onSwitchWrappedItemIntoView:o,overflowIcon:n})=>{let r=qe(e),{menuActionHandler:s,menuBuilder:i,rootRef:a}=Ii({itemCount:r.length,onSwitchWrappedItemIntoView:o}),l={"--overflow-container-height":`${t}px`};return Bp("div",{className:`${fo}-wrapContainer`,ref:a,style:l,children:[r.map((c,p)=>{let{"data-overflow-priority":d="0",id:u,label:m=`Item ${p+1}`}=c.props;return Lt("div",{className:hn(`${fo}-item`),"data-index":p,"data-label":m,"data-overflow-priority":d,id:`${u}-wrapper`,children:c},p)}),Lt("div",{className:`${fo}-OverflowIndicator`,"data-index":"overflow",children:Lt(Np,{icon:n,menuBuilder:i,menuActionHandler:s})})]})});Ci.displayName="OverflowContainer.InnerContainer";var di=zp(function({children:t,className:o,height:n=44,onSwitchWrappedItemIntoView:r,overflowIcon:s,...i},a){return Lt("div",{...i,className:hn(hn(fo,o)),ref:a,children:Lt(Ci,{height:n,overflowIcon:s,onSwitchWrappedItemIntoView:r,children:t})})});import{uuid as $p}from"@vuu-ui/vuu-utils";import{List as Fp,ListItem as _p}from"@heswell/salt-lab";import Oi from"classnames";import{cloneElement as Vp,memo as Wp}from"react";import{jsx as bn}from"react/jsx-runtime";var Gp=e=>{let t=e.cloneNode(!0);return t.id="",delete t.dataset.idx,t},Ai=Wp(({className:e,children:t,idx:o,resizeable:n,header:r,closeable:s,...i})=>bn(_p,{className:Oi("vuuPaletteItem",e),"data-draggable":!0,...i}));Ai.displayName="PaletteItem";var Kp=({children:e,className:t,orientation:o="horizontal",ViewProps:n,...r})=>{let s=de(),i="vuuPalette";function a(l){var D;let p=l.target.closest(".vuuPaletteItem"),d=parseInt((D=p.dataset.idx)!=null?D:"-1");d!==-1&&console.log({children:e,idx:d,listItemElement:p});let{props:{caption:u,children:m,template:h,...g}}=e[d],{height:b,left:f,top:y,width:T}=p.getBoundingClientRect(),x=$p(),E=h?m:bn(He,{...n,...{id:x,key:x},...g,title:g.label,children:m});s({dragRect:{left:f,top:y,right:f+T,bottom:y+150,width:T,height:b},dragElement:Gp(p),evt:l.nativeEvent,instructions:{DoNotRemove:!0,DoNotTransform:!0,RemoveDraggableOnDragEnd:!0,dragThreshold:10},path:"*",payload:E,type:"drag-start"})}return bn(Fp,{...r,borderless:!0,className:Oi(i,t,`${i}-${o}`),maxHeight:800,selected:null,children:e.map((l,c)=>l.type===Ai?Vp(l,{key:c,onMouseDown:a}):l)})};Y("Palette",Kp,"view");import{uuid as Zp}from"@vuu-ui/vuu-utils";import{List as Up,ListItem as qp}from"@heswell/salt-lab";import Xp from"classnames";import{jsx as yn}from"react/jsx-runtime";var Yp="vuuPalette",cD=e=>{let{children:t,ViewProps:o,label:n,onMouseDown:r,template:s,...i}=e,a=de();return yn(qp,{onMouseDown:c=>{let{left:p,top:d,width:u}=c.currentTarget.getBoundingClientRect(),m=Zp(),g=s?t:yn(He,{...{id:m,key:m},...o,title:e.label,children:t});a({type:"drag-start",evt:c.nativeEvent,path:"*",payload:g,instructions:{DoNotRemove:!0,DoNotTransform:!0,RemoveDraggableOnDragEnd:!0,dragThreshold:10},dragRect:{left:p,top:d,right:p+u,bottom:d+150,width:u,height:100}})},...i,children:n})},jp=({className:e,...t})=>yn(Up,{...t,className:Xp(Yp,e),height:"100%",selectionStrategy:"none"});Y("PaletteSalt",jp,"view");import Jp from"classnames";import En,{forwardRef as Qp,useCallback as ed}from"react";import{jsx as ki,jsxs as sd}from"react/jsx-runtime";var Hi="Tabs",td=()=>{},od=(e,t)=>{var o,n;return(n=(o=e.props)==null?void 0:o.title)!=null?n:`Tab ${t+1}`},nd=e=>{let t=[];return En.Children.forEach(e,o=>{En.isValidElement(o)?t.push(o):console.warn("Stack has unexpected child element type")}),t},rd={allowAddTab:!1,allowCloseTab:!1,allowRenameTab:!1},xn=Qp(function({active:t=0,children:o,className:n,getTabIcon:r=td,getTabLabel:s=od,id:i,keyBoardActivation:a="manual",onAddTab:l,onMoveTab:c,onTabClose:p,onTabEdit:d,onTabSelectionChanged:u,showTabs:m=!0,style:h,TabstripProps:g=rd},b){var P;let f=Ht(i),{allowCloseTab:y,allowRenameTab:T}=g,x=ed((k,C,M,w)=>{d==null||d(w,C)},[d]),v=()=>{var k;return En.isValidElement(o)?o:Array.isArray(o)&&(k=o[t])!=null?k:null},E=()=>nd(o).map((k,C)=>{let M=`${f}-${C}`,{closeable:w=y,id:R}=k.props;return ki(hi,{ariaControls:`${M}-tab`,"data-icon":r(k,C),id:M,index:C,label:s(k,C),closeable:w,editable:T},R!=null?R:C)}),D=v();return sd("div",{className:Jp(Hi,n,{[`${Hi}-horizontal`]:(g==null?void 0:g.orientation)==="vertical"}),style:h,id:f,ref:b,children:[m?ki(pi,{...g,activeTabIndex:(P=g==null?void 0:g.activeTabIndex)!=null?P:D===null?-1:t,allowDragDrop:g.allowDragDrop!==!1,animateSelectionThumb:!0,className:"vuuTabHeader",keyBoardActivation:a,onActiveChange:u,onAddTab:l,onCloseTab:p,onExitEditMode:x,onMoveTab:c,children:E()}):null,D]})});xn.displayName="Stack";import{useIdMemo as id}from"@salt-ds/core";import ad,{useCallback as Tn,useRef as ld}from"react";import{jsx as vn}from"react/jsx-runtime";var cd=e=>vn(He,{resizeable:!0,title:`Tab ${e}`,style:{flexGrow:1,flexShrink:0,flexBasis:0},header:!0,closeable:!0,children:vn(Do,{style:{flex:1}})}),zi=e=>{let t=ld(null),o=de(),{loadState:n}=Qe(),{createNewChild:r=cd,id:s,onTabSelectionChanged:i,path:a,...l}=e,{children:c}=e,p=id(s),[d]=oo(p,t,a),u=T=>{a&&(o({type:"switch-tab",path:a,nextIdx:T}),i==null||i(T))},m=Tn(T=>{if(Array.isArray(c)){let{props:{"data-path":x,path:v=x}}=c[T];o({type:"remove",path:v})}},[c,o]),h=Tn(()=>{if(a){let T=ad.Children.count(c),x=r(T);o({type:"add",path:a,component:x})}},[c,r,o,a]),g=Tn((T,x)=>{a&&o({fromIndex:T,toIndex:x,path:a,type:"move-child"})},[o,a]);return vn(xn,{...l,id:p,getTabLabel:(T,x)=>{let{id:v,title:E}=T.props;return n(v,"view-title")||E||`Tab ${x+1}`},onMouseDown:async(T,x)=>{let v;await d({type:"mousedown",index:x,preDragActivity:async()=>new Promise(P=>{console.log("preDragActivity: Ok, gonna release the drag"),v=P})},T)&&(v==null||v(void 0))},onMoveTab:g,onAddTab:h,onTabClose:m,onTabEdit:(T,x)=>{o({type:"set-title",path:`${a}.${T}`,title:x})},onTabSelectionChanged:u,ref:t})};zi.displayName="Stack";Y("Stack",zi,"container");import Ni,{useState as Bi}from"react";import{jsx as Dn,jsxs as $i}from"react/jsx-runtime";var XD=({children:e})=>{let[o,n]=Bi(e),[r,s]=Bi(e),i=l=>{let c=Nn(o,l);s(c)},a=(l,c)=>{console.log(`change ${l} -> ${c}`);let p=Ni.cloneElement(r,{style:{...r.props.style,[l]:c}});s(p),n(Ni.cloneElement(o,{},p))};return $i("div",{"data-design-mode":`${!1}`,children:[o,Dn("br",{}),$i("div",{style:{display:"flex"},children:[Dn(Fi,{height:300,managedStyle:r.props.style,width:300,onChange:a,style:void 0}),Dn(_i,{layout:o,onSelect:i,style:{width:300,height:300,backgroundColor:"#ccc"}})]})]})};import{FormField as go,Input as ho}from"@heswell/salt-lab";import{jsx as oe,jsxs as Rn}from"react/jsx-runtime";var Sn={},ud={margin:{top:"marginTop",right:"marginRight",bottom:"marginBottom",left:"marginLeft"},border:{top:"borderTopWidth",right:"borderRightWidth",bottom:"borderBottomWidth",left:"borderLeftWidth"},padding:{top:"paddingTop",right:"paddingRight",bottom:"paddingBottom",left:"paddingLeft"}},wn=({feature:e,children:t,style:o,onChange:n})=>Rn("div",{className:`LayoutBox layout-${e} layout-outer`,children:[Rn("div",{className:"layout-top",children:[oe("span",{className:"layout-title",children:e}),oe(go,{className:"layout-input",style:{width:30},children:oe(ho,{value:o.top,onChange:(r,s)=>n(e,"top",s)})})]}),Rn("div",{className:"layout-inner",children:[oe("div",{className:"layout-left",children:oe(go,{className:"layout-input",style:{width:30},children:oe(ho,{value:o.left,onChange:(r,s)=>n(e,"left",s)})})}),t,oe("div",{className:"layout-right",children:oe(go,{className:"layout-input",style:{width:30},children:oe(ho,{value:o.right,onChange:(r,s)=>n(e,"right",s)})})})]}),oe("div",{className:"layout-bottom",children:oe(go,{className:"layout-input",style:{width:30},children:oe(ho,{value:o.bottom,onChange:(r,s)=>n(e,"bottom",s)})})})]}),rw={margin:!0,marginTop:!0,marginRight:!0,marginBottom:!0,marginLeft:!0},sw={padding:!0,paddingTop:!0,paddingRight:!0,paddingBottom:!0,paddingLeft:!0},iw={border:!0,borderColor:!0,borderWidth:!0,borderTopWidth:!0,borderRightWidth:!0,borderBottomWidth:!0,borderLeftWidth:!0},bo="(\\d+)(?:px)?",pd=`^(?:${bo}(?:\\s${bo}(?:\\s${bo}(?:\\s${bo})?)?)?)$`,Vi=new RegExp(pd),dd=/^(?:(\d+)(?:px)\ssolid\s([a-zA-Z,0-9().]+))$/,Fi=({height:e,managedStyle:t,onChange:o,style:n,width:r})=>{let s=Wi(t),i=(T,x,v)=>{let E=parseInt(v||"0",10),D=ud[T][x];o(D,E)},{marginTop:a=0,marginRight:l=0,marginBottom:c=0,marginLeft:p=0}=s,{borderTopWidth:d=0,borderRightWidth:u=0,borderBottomWidth:m=0,borderLeftWidth:h=0}=s,{paddingTop:g=0,paddingRight:b=0,paddingBottom:f=0,paddingLeft:y=0}=s;return oe("div",{className:"LayoutConfigurator",style:{width:r,height:e,...n},children:oe(wn,{feature:"margin",style:{top:a,right:l,bottom:c,left:p},onChange:i,children:oe(wn,{feature:"border",style:{top:d,right:u,bottom:m,left:h},onChange:i,children:oe(wn,{feature:"padding",style:{top:g,right:b,bottom:f,left:y},onChange:i,children:oe("div",{className:"layout-content"})})})})})};function aw(e=Sn,t=Sn){let{margin:o,marginTop:n,marginRight:r,marginBottom:s,marginLeft:i,padding:a,paddingTop:l,paddingRight:c,paddingBottom:p,paddingLeft:d,...u}=e;if(typeof o=="number")u.marginTop=u.marginRight=u.marginBottom=u.marginLeft=o;else if(typeof o=="string"){let m=Vi.exec(o);if(m===null)console.error(`Invalid css value for margin '${o}'`);else{let[,h,g,b,f]=m,y=h&&g&&b;y&&f?(u.marginTop=parseInt(h,10),u.marginRight=parseInt(g,10),u.marginBottom=parseInt(b,10),u.marginLeft=parseInt(f,10)):y?(u.marginTop=parseInt(h,10),u.marginRight=u.marginLeft=parseInt(g,10),u.marginBottom=parseInt(b,10)):h&&g?(u.marginTop=u.marginBottom=parseInt(h,10),u.marginRight=u.marginLeft=parseInt(g,10)):u.marginTop=u.marginRight=u.marginBottom=u.marginLeft=parseInt(h,10)}}if(typeof n=="number"&&(u.marginTop=n),typeof r=="number"&&(u.marginRight=r),typeof s=="number"&&(u.marginBottom=s),typeof i=="number"&&(u.marginLeft=i),typeof a=="number")u.paddingTop=u.paddingRight=u.paddingBottom=u.paddingLeft=a;else if(typeof a=="string"){let m=Vi.exec(a);if(m===null)console.error(`Invalid css value for padding '${a}'`);else{let[,h,g,b,f]=m,y=h&&g&&b;y&&f?(u.paddingTop=parseInt(h,10),u.paddingRight=parseInt(g,10),u.paddingBottom=parseInt(b,10),u.paddingLeft=parseInt(f,10)):y?(u.paddingTop=parseInt(h,10),u.paddingRight=u.paddingLeft=parseInt(g,10),u.paddingBottom=parseInt(b,10)):h&&g?(u.paddingTop=u.paddingBottom=parseInt(h,10),u.paddingRight=u.paddingLeft=parseInt(g,10)):u.paddingTop=u.paddingRight=u.paddingBottom=u.paddinggLeft=parseInt(h,10)}}return typeof l=="number"&&(u.paddingTop=l),typeof c=="number"&&(u.paddingRight=c),typeof p=="number"&&(u.paddingBottom=p),typeof d=="number"&&(u.paddingLeft=d),Wi(u,t)}function Wi(e=Sn){let t={...e},o,{border:n,borderWidth:r,borderTopWidth:s,borderRightWidth:i,borderBottomWidth:a,borderLeftWidth:l,borderColor:c,margin:p,marginTop:d,marginRight:u,marginBottom:m,marginLeft:h,padding:g,paddingTop:b,paddingRight:f,paddingBottom:y,paddingLeft:T,...x}=t,v={},E={};if(typeof p=="number"&&(t.marginTop=t.marginRight=t.marginBottom=t.marginLeft=p,v={marginTop:p,marginRight:p,marginBottom:p,marginLeft:p}),typeof g=="number"&&(t.paddingTop=t.paddingRight=t.paddingBottom=t.paddingLeft=g,E={paddingTop:g,paddingRight:g,paddingBottom:g,paddingLeft:g}),n||r||s||i||a||l){typeof n=="string"&&(o=dd.exec(n))&&([,r,c]=o,r=parseInt(r,10)),r&&(s=s===void 0?r:s,i=i===void 0?r:i,a=a===void 0?r:a,l=l===void 0?r:l),c=c||"black";let D=`
|
|
17
|
+
`,document.body.insertBefore(t,e)}}var ft=class{constructor(){this.currentPath=null;this.tabMode=null;Wl()}prepare(t,o="full-view"){document.body.classList.add("drawing"),this.currentPath=null,this.tabMode=o;let r=this.getPoints(0,0,0,0),n=Tn(r),s=document.getElementById("vuu-drop-outline");s==null||s.setAttribute("d",n),this.currentPath=n}clear(){mt=null,Zt(),document.body.classList.remove("drawing"),Uo.hidePopup()}get hoverDropTarget(){return mt}getPoints(t,o,r,n,s=0,i=0,a=0){let l=this.tabMode==="tab-only";if(i===0)return[[t,o+a],[t,o+a],[t,o],[t+i,o],[t+i,o],[t+r,o],[t+r,o+n],[t,o+n]];if(l){let c=s;return[[c,o],[c,o],[c+i,o],[c+i,o],[c+i,o+a],[c+i,o+a],[c,o+a],[c,o+a]]}else return s===0?[[t,o+a],[t,o+a],[t,o],[t+i,o],[t+i,o+a],[t+r,o+a],[t+r,o+n],[t,o+n]]:[[t,o+a],[t+s,o+a],[t+s,o],[t+s,o],[t+s,o+a],[t+r,o+a],[t+r,o+n],[t,o+n]]}draw(t,o){let n=Xo;if(mt!==null)this.drawTarget(mt);else if(Xo=t.nextDropTarget!=null,t.pos.tab?Vl(t):he&&Zt(),this.drawTarget(t,o),Xo){let[s,i,a]=xn(t);{let l=Kl(En,{dropTarget:t,onHover:Bl,orientation:a});Uo.showPopup({left:s,top:i,component:l})}}else Uo.hidePopup()}drawTarget(t,o){let n=t.getTargetDropOutline(6,o);if(n){let{l:s,t:i,r:a,b:l,tabLeft:c,tabWidth:d,tabHeight:p,guideLines:u}=n,m=a-s,f=l-i;if(this.currentPath){let E=document.getElementById("vuu-drop-outline");E==null||E.setAttribute("d",this.currentPath)}let g=this.getPoints(s,i,m,f,c,d,p),h=Tn(g),b=document.getElementById("hw-drop-outline-animate");b==null||b.setAttribute("to",h),b==null||b.beginElement(),this.currentPath=h;let T=document.getElementById("hw-drop-guides");T==null||T.setAttribute("d",_l(u))}}},vn="transition:margin-left .4s ease-out;margin-left: 63px",wn="transition:margin-left .4s ease-out;margin-left: 0px";function Vl(e){var a,l;let{AFTER:t,BEFORE:o}=pt,{clientRect:{Stack:r},pos:{tab:n}}=e,{id:s}=e.component.props,i=null;if(r&&n&&n.positionRelativeToTab!==t){let c=n.positionRelativeToTab===o?1:2,d=`:scope .hwTabstrip > .hwTabstrip-inner > .hwTab:nth-child(${n.index+c})`;i=(a=document.getElementById(s))==null?void 0:a.querySelector(d),i?(he===null||he!==i)&&(i.style.cssText=vn,he&&(he.style.cssText=wn),he=i):Zt()}else if((n==null?void 0:n.positionRelativeToTab)===o){if(he===null){let c=".vuuHeader-title";i=(l=document.getElementById(s))==null?void 0:l.querySelector(c),i.style.cssText=vn,he=i}}else Zt()}function Zt(){he&&(he.style.cssText=wn,he=null)}var Se,gt,Ce,Sn,Rn,Ne,Ut,Qe=null,Yo,Mn,ht,Pn,qo,Xt=null,Gl=3,qt=new ft,Dn=.4;function Zl(e,t){return t?ee(e,t):De(e,o=>o.dropTarget)}var jo={handleMousedown(e,t,o={}){Se=t,Mn=o,Sn=e.clientX,Rn=e.clientY,qo=o.dragThreshold===void 0?Gl:o.dragThreshold,qo===0?Se(e,0,0):(window.addEventListener("mousemove",Yt,!1),window.addEventListener("mouseup",jt,!1),Xt=window.setTimeout(()=>{console.log("mousedownTimer fires"),window.removeEventListener("mousemove",Yt,!1),window.removeEventListener("mouseup",jt,!1),Se==null||Se(e,0,0)},500)),e.preventDefault()},initDrag(e,t,{top:o,left:r,right:n,bottom:s},i,a,l,c){return{drag:gt,drop:Ce}=a,Ul(e,t,{top:o,left:r,right:n,bottom:s},i,l,c)}};function Yt(e){let r=e.clientX-Sn,n=e.clientY-Rn;Math.max(Math.abs(r),Math.abs(n))>qo&&(window.removeEventListener("mousemove",Yt,!1),window.removeEventListener("mouseup",jt,!1),Se==null||Se(e,r,n),Se=null)}function jt(){Xt&&(window.clearTimeout(Xt),Xt=null),window.removeEventListener("mousemove",Yt,!1),window.removeEventListener("mouseup",jt,!1)}function Ul(e,t,o,r,n,s){Ne=Zl(e,t);let{"data-path":i,path:a=i}=A(Ne);s&&(Yo=s.map(u=>De(e,m=>m.id===u)).map(u=>u.props.path)),ht=Je.measure(Ne,s),console.log({_measurements:ht});let l=ht[a];Ut=new Gt(l,r.x,r.y,o,n);let c=Math.round(Ut.x.mousePct*100),d=Math.round(Ut.y.mousePct*100);return window.addEventListener("mousemove",Ln,!1),window.addEventListener("mouseup",In,!1),Pn=!1,qt.prepare(o,"tab-only"),Mn.DoNotTransform?"transform:none":`transform:scale(${Dn},${Dn});transform-origin:${c}% ${d}%;`}function Ln(e){let t=e.clientX,o=e.clientY,r=Ut,n=Qe,s,i,a;r.update("x",t)&&(i=r.x.pos),r.update("y",o)&&(a=r.y.pos),i===void 0&&a===void 0||gt==null||gt(i,a),!(Pn||Ne===void 0)&&(r.inBounds()?s=Go(t,o,Ne,ht,r.hasIntrinsicSize(),Yo):s=Go(r.dropX(),r.dropY(),Ne,ht),n&&(s==null||s.box!==n.box)&&(Qe=null),s&&(qt.draw(s,r),Qe=s))}function In(){Xl()}function Xl(){if(Qe){let e=qt.hoverDropTarget||Ie.getActiveDropTarget(Qe);Ce==null||Ce(e),Qe=null}else Ce==null||Ce({component:Ne,pos:{position:se.Absolute}});gt=null,Ce=null,Ne=void 0,qt.clear(),Yo=void 0,window.removeEventListener("mousemove",Ln,!1),window.removeEventListener("mouseup",In,!1)}import ql from"classnames";import{forwardRef as Yl}from"react";import{jsx as jl}from"react/jsx-runtime";var Cn=Yl(function({children:t,className:o,dropTarget:r,resizeable:n,...s},i){let a=ql("DraggableLayout",o);return jl("div",{className:a,ref:i,...s,children:t})}),Nn="DraggableLayout";Cn.displayName=Nn;Q(Nn,Cn,"container");import{useForkRef as Ec}from"@salt-ds/core";import Tc from"classnames";import{forwardRef as vc}from"react";import{getUniqueId as mc}from"@vuu-ui/vuu-utils";import Tt,{useCallback as oo,useMemo as Kn,useRef as ro,useState as fc}from"react";import Jl from"classnames";import{jsx as Ql}from"react/jsx-runtime";var Hn="vuuPlaceholder",Jt=({className:e,closeable:t,flexFill:o,resizeable:r,shim:n,...s})=>Ql("div",{className:Jl(Hn,e,{[`${Hn}-shim`]:n}),...s,"data-placeholder":!0,"data-resizeable":!0});Jt.displayName="Placeholder";Q("Placeholder",Jt);import ec from"classnames";import tc,{useCallback as bt,useRef as Qt,useState as oc}from"react";import{jsx as An}from"react/jsx-runtime";var On=tc.memo(function({column:t,index:o,onDrag:r,onDragEnd:n,onDragStart:s,style:i}){let a=Qt(),l=Qt(null),c=Qt(0),[d,p]=oc(!1),u=bt(({key:x,shiftKey:w})=>{let S=w?10:1;t&&x==="ArrowDown"?r(o,S):t&&x==="ArrowUp"||!t&&x==="ArrowLeft"?r(o,-S):!t&&x==="ArrowRight"&&r(o,S)},[t,o,r]),m=bt(x=>{let{key:w}=x;(t&&(w==="ArrowUp"||w==="ArrowDown")||!t&&(w==="ArrowLeft"||w==="ArrowRIght"))&&(s(o),u(x),f.current=u)},[t,u,o,s]),f=Qt(m),g=x=>f.current(x),h=bt(x=>{a.current=!0;let w=x[t?"clientY":"clientX"],S=w-c.current;w&&w!==c.current&&r(o,S),c.current=w},[t,o,r]),b=bt(()=>{var x;window.removeEventListener("mousemove",h,!1),window.removeEventListener("mouseup",b,!1),n(),p(!1),(x=l.current)==null||x.focus()},[h,n,p]),T=bt(x=>{c.current=t?x.clientY:x.clientX,s(o),window.addEventListener("mousemove",h,!1),window.addEventListener("mouseup",b,!1),x.preventDefault(),p(!0)},[t,h,b,o,s,p]),E=()=>{var x;a.current?a.current=!1:(x=l.current)==null||x.focus()},y=()=>{f.current=m},v=ec("Splitter","focusable",{active:d,column:t});return An("div",{className:v,"data-splitter":!0,ref:l,role:"separator",style:i,onBlur:y,onClick:E,onKeyDown:g,onMouseDown:T,tabIndex:0,children:An("div",{className:"grab-zone"})})});import{uuid as kn}from"@vuu-ui/vuu-utils";import zn from"react";var rc={"data-placeholder":!0,"data-resizeable":!0},eo={},He="auto",Jo={flexBasis:0,flexGrow:1,flexShrink:1,height:He,width:He},Bn={height:"width",width:"height"},$n=(e="row")=>e==="row"?["width","height","column"]:["height","width","row"],nc=e=>typeof e=="string"&&e.endsWith("%"),ue=e=>{let{style:{width:t=He,height:o=He}=eo}=e.props,r=typeof o=="number",n=typeof t=="number";return r&&n?{height:o,width:t}:r?{height:o}:n?{width:t}:void 0};function Qo(e,t,o){let r=Bn[t],{style:{[r]:n=He,...s}=eo}=e.props;return o&&o[t]?{...s,...Jo,flexBasis:o[t],flexGrow:0,flexShrink:0}:{...s,...Jo,[r]:n}}function Fn(e){let{style:{flex:t,flexGrow:o,flexShrink:r,flexBasis:n}=eo}=e.props;return typeof t=="number"||n===0&&o===1&&r===1?!0:typeof n!="number"}function er(e,t,o){let r=Bn[t],{style:{[t]:n=He,[r]:s=He,...i}=eo}=e.props;return n!==He?nc(n)?{flexBasis:0,flexGrow:1,flexShrink:1,[t]:void 0,[r]:s}:{flexBasis:n,flexGrow:0,flexShrink:0,[t]:n,[r]:s}:o&&o[t]?{...i,...Jo,flexBasis:o[t],flexGrow:0,flexShrink:0}:{...i,[r]:s}}function yt(e,t,o,r,n){let s=[],i=0,a;if(r&&n){let d,[p,u,m,f]=n;[d,a]=t==="column"?[u-r.top,r.bottom-f]:[p-r.left,r.right-m],d&&s.push(be(`${o}.${i++}`,d,{flexGrow:0,flexShrink:0}))}else a=!0;let{version:l=0,style:c}=A(e);return s.push(te(e,`${o}.${i++}`,{version:l+1,style:{...c,flexBasis:"auto",flexGrow:0,flexShrink:0}})),a&&s.push(be(`${o}.${i++}`,0,void 0,{[`data-${t}-placeholder`]:!0})),tr(t,{resizeable:!1,style:{flexBasis:"auto"}},s,o)}var sc=(e,t)=>{if(!t)return e===0?1:0};function tr(e,t,o,r){let n=kn(),{flexFill:s,style:i,resizeable:a=!0}=t,{flexBasis:l=s?void 0:"auto"}=i,c=sc(l,s);return zn.createElement(Me.Flexbox,{id:n,key:n,path:r,flexFill:s,style:{...i,flexDirection:e,flexBasis:l,flexGrow:c,flexShrink:c},resizeable:a},o)}var ic={flexGrow:1,flexShrink:1};function be(e,t,o,r){let n=kn();return zn.createElement("div",{...rc,...r,"data-path":e,id:n,key:n,style:{...ic,...o,flexBasis:t}})}var ac={},xt=1,Et=2,lc=e=>typeof e.intrinsicSize=="number",cc=(e,t)=>{let o={};return e.forEach(r=>{o[r]=F(t,r)}),o},to=(e,t,o)=>e.map((r,n)=>{var l;let s=F(r,"resizeable"),{[t]:i}=(l=ue(r))!=null?l:ac,a=Fn(r);return o?{index:n,flexOpen:a,intrinsicSize:i,resizeable:s,...cc(o,r)}:{index:n,flexOpen:a,intrinsicSize:i,resizeable:s}}),_n=e=>{let t=e.length,o=e.every(lc),r=Array(t).fill(0);if(o&&t>0&&(r[0]=Et,r[t-1]=Et),t<2)return r;for(let n=0,s=0;n<t-1;n++)e[n].resizeable&&!s&&(s=xt),r[n]+=s;for(let n=t-1;n>0&&(r[n]&xt&&(r[n]-=xt),!e[n].resizeable);n--);return r},Wn=(e,t)=>{let o=dc(e,t),r=pc(e,t),n=o!==-1&&r!==-1?[o,r]:void 0,s=uc(e,n);return[n,s]};function uc(e,t){if(t){let o=[];for(let r=0;r<e.length;r++)e[r].flexOpen&&!t.includes(r)&&o.push(r);return o}}function dc(e,t){let o=t,r=!1;for(;o>=1&&!r;)o=o-1,r=Vn(e,o);return o}function pc(e,t){let o=t,r=!1,n=e.length;for(;o<n-1&&!r;)o=o+1,r=Vn(e,o);return o===n?-1:o}function Vn(e,t){let{placeholder:o,splitter:r,resizeable:n,intrinsicSize:s}=e[t];return!!(!r&&!s&&(o||n))}var gc=e=>!e.splitter&&!e.placeholder,Zn=({children:e,onSplitterMoved:t,style:o})=>{let r=ro(null),n=ro(),s=ro(),i=ro([]),[,a]=fc({}),l=h=>{s.current=h,a({})},c=(o==null?void 0:o.flexDirection)==="column",d=c?"height":"width",p=Kn(()=>Array.isArray(e)?e:Tt.isValidElement(e)?[e]:[],[e]),u=oo(h=>{let{current:b}=n;if(b){let[T,E]=Wn(b,h);T&&(T.forEach(y=>{var x;let v=(x=r.current)==null?void 0:x.childNodes[y];if(v){let{size:w,minSize:S}=xc(v,d);b[y].currentSize=w,b[y].minSize=S}}),E&&E.forEach(y=>{var x;let v=(x=r.current)==null?void 0:x.childNodes[y];if(v){let{[d]:w}=v.getBoundingClientRect();b[y].flexBasis=w}}))}},[d]),m=oo((h,b)=>{s.current&&n.current&&l(bc(s.current,n.current,b,d))},[d]),f=oo(()=>{let h=n.current;h&&(t==null||t(h.filter(gc))),h==null||h.forEach(b=>{b.currentSize=void 0,b.flexBasis=void 0,b.flexOpen=!1})},[t]),g=oo(h=>Tt.createElement(On,{column:c,index:h,key:`splitter-${h}`,onDrag:m,onDragEnd:f,onDragStart:u}),[m,f,u,c]);return Kn(()=>{let[h,b]=hc(p,d,g,i.current);n.current=b,s.current=h},[p,g,d]),{content:s.current||[],rootRef:r}};function hc(e,t,o,r){let n=to(e,t),s=_n(n),i=[],a=[];for(let l=0;l<e.length;l++){let c=e[l];if(l===0&&s[l]&Et&&(i.push(Gn(l)),a.push({placeholder:!0,shim:!0})),c.key==null){let d=r[l]||(r[l]=mc());i.push(Tt.cloneElement(c,{key:d}))}else i.push(c);a.push(n[l]),l>0&&s[l]&Et?(i.push(Gn(l)),a.push({placeholder:!0})):s[l]&xt&&(i.push(o(i.length)),a.push({splitter:!0}))}return[i,a]}function bc(e,t,o,r){return yc(t,o)?e.map((s,i)=>{let a=t[i],{currentSize:l,flexOpen:c,flexBasis:d}=a,p=l!==void 0;if(p||c){let{flexBasis:u}=s.props.style||{},m=p?a.currentSize:d;return m!==u?Tt.cloneElement(s,{style:{...s.props.style,flexBasis:m,[r]:"auto"}}):s}else return s}):e}function yc(e,t){let o=[];e.forEach((d,p)=>{d.currentSize!==void 0&&o.push(p)});let r=t<0?o[0]:o[1],{currentSize:n=0,minSize:s=0}=e[r];if(n===s)return!1;if(Math.abs(t)>n-s){let d=t<0?-1:1;t=Math.max(0,n-s)*d}let i=e[o[0]],{currentSize:a=0}=i;i.currentSize=a+t;let l=e[o[1]],{currentSize:c=0}=l;return l.currentSize=c-t,!0}function Gn(e){return Tt.createElement(Jt,{shim:e===0,key:`placeholder-${e}`})}function xc(e,t){let{[t]:o}=e.getBoundingClientRect(),n=getComputedStyle(e).getPropertyValue(`min-${t}`),s=n.endsWith("px")?parseInt(n,10):0;return{size:o,minSize:s}}import{jsx as wc}from"react/jsx-runtime";var or="hwFlexbox",Un=vc(function(t,o){let{breakPoints:r,children:n,column:s,className:i,flexFill:a,gap:l,fullPage:c,id:d,onSplitterMoved:p,resizeable:u,row:m,spacing:f,splitterSize:g,style:h,...b}=t,{content:T,rootRef:E}=Zn({children:n,onSplitterMoved:p,style:h}),y=Tc(or,i,{[`${or}-column`]:s,[`${or}-row`]:m,"flex-fill":a,"full-page":c});return wc("div",{...b,className:y,"data-resizeable":u||void 0,id:d,ref:Ec(E,o),style:{...h,gap:l,"--spacing":f},children:T})});Un.displayName="Flexbox";var rr=Un;import{useCallback as pu}from"react";var et={ADD:"add",BLUR:"blur",BLUR_SPLITTER:"blur-splitter",DRAG_START:"drag-start",DRAG_STARTED:"drag-started",DRAG_DROP:"drag-drop",FOCUS:"focus",FOCUS_SPLITTER:"focus-splitter",INITIALIZE:"initialize",LAYOUT_RESIZE:"layout-resize",MAXIMIZE:"maximize",MINIMIZE:"minimize",REMOVE:"remove",REPLACE:"replace",RESTORE:"restore",SAVE:"save",SET_TITLE:"set-title",SPLITTER_RESIZE:"splitter-resize",SWITCH_TAB:"switch-tab",TEAR_OUT:"tear-out"};import{useCallback as dr,useContext as Ss,useEffect as lu,useRef as ws,useState as cu}from"react";import cr from"react";import{uuid as ts}from"@vuu-ui/vuu-utils";import Dt from"react";import{uuid as jn}from"@vuu-ui/vuu-utils";import vt,{cloneElement as Dc}from"react";import{useCallback as tt}from"react";var ie=new Map,de=new Map,Xn=e=>ie.get(e),qn=e=>ie.has(e),Yn=(e,t)=>ie.set(e,t),ot=()=>{let e=tt((i,a)=>{let l=de.get(i);if(l)return a!==void 0&&l[a]!==void 0?l[a]:a!==void 0?void 0:l},[]),t=tt((i,a,l)=>{if(a===void 0)de.set(i,l);else if(de.has(i)){let c=de.get(i);de.set(i,{...c,[a]:l})}else de.set(i,{[a]:l})},[]),o=tt((i,a)=>{if(de.has(i)){if(a===void 0)de.delete(i);else if(de.get(i)[a]){let{[a]:c,...d}=de.get(i);Object.keys(d).length>0?de.set(i,d):de.delete(i)}}},[]),r=tt((i,a)=>{let l=ie.get(i);if(l)return a!==void 0?l[a]:l},[]),n=tt((i,a,l)=>{if(a===void 0)ie.set(i,l);else if(ie.has(i)){let c=ie.get(i);ie.set(i,{...c,[a]:l})}else ie.set(i,{[a]:l})},[]),s=tt((i,a)=>{if(ie.has(i)){if(a===void 0)ie.delete(i);else if(ie.get(i)[a]){let{[a]:c,...d}=ie.get(i);Object.keys(d).length>0?ie.set(i,d):ie.delete(i)}}},[]);return{loadSessionState:e,loadState:r,saveSessionState:t,saveState:n,purgeState:s,purgeSessionState:o}};var Jn=e=>e.flexDirection==="column"?["height","width"]:["width","height"],Sc={},wt=(e,t="0")=>{let[o,r]=no(_(e),e.props,t);return vt.cloneElement(e,o,r)},sr=(e,t)=>{let o=_(e),[r,n]=no(o,e.props,"0",void 0,t);return Dc(e,r,n)},jh=(e,t,o)=>{let[r,n]=no(e,t,"0",void 0,o);return{...t,...r,type:e,children:n}};function Rc(e,t,o="0",r=null,n){var g,h;let{active:s=0,"data-path":i,path:a=i,id:l,style:c}=A(n),d=_(n)===e&&o===a,p=d?l:(g=t.id)!=null?g:jn(),u=e==="Stack"?(h=t.active)!=null?h:s:void 0,m=p,f=d?c:Pc(e,t,r);return Jr(e)?{id:p,key:m,path:o,style:f,type:e,active:u}:{id:p,key:m,style:f,"data-path":o}}function no(e,t,o,r=null,n){var c,d;let s=Rc(e,t,o,r,n);if(t.layout&&!n)return[s,[so(t.layout,`${o}.0`)]];let i=(d=n==null?void 0:n.children)!=null?d:(c=n==null?void 0:n.props)==null?void 0:c.children,l=t.dropTarget&&i?i:Mc(e,t.children,o,i);return[s,l]}function Mc(e,t,o="0",r){let n=Array.isArray(t)?t:vt.isValidElement(t)?[t]:[];return ne(e)?n.map((s,i)=>{let a=_(s),l=_(r==null?void 0:r[i]);if(!l||a===l){let[c,d]=no(a,s.props,`${o}.${i}`,e,r==null?void 0:r[i]);return vt.cloneElement(s,c,d)}return r==null?void 0:r[i]}):t}var Pc=(e,t,o)=>{let{style:r=Sc}=t;if(e==="Flexbox"&&(r={flexDirection:t.column?"column":"row",...r,display:"flex"}),r.flex){let{flex:n,...s}=r;r={...s,...Fo(typeof n=="number"?n:0)}}else o==="Stack"?r={...r,...Fo(1)}:o==="Flexbox"&&(r.width||r.height)&&r.flexBasis===void 0&&(r={...r,flexBasis:"auto",flexGrow:0,flexShrink:0});return r};function so({id:e=jn(),type:t,children:o,props:r,state:n},s){let i=t.match(/^[a-z]/)?t:Me[t];if(i===void 0)throw Error(`layoutUtils unable to create component from JSON, unknown type ${t}`);return n&&Yn(e,n),vt.createElement(i,{id:e,...r,key:e,path:s},o?o.map((a,l)=>so(a,`${s}.${l}`)):void 0)}function Qn(e){return es(e)}function es(e){let t=_(e),{id:o,children:r,type:n,...s}=A(e),i=qn(o)?Xn(o):void 0;return{id:o,type:t,props:Lc(s),state:i,children:vt.Children.map(r,es)}}function Lc(e){if(e){let{path:t,...o}=e,r={};for(let[n,s]of Object.entries(o))r[n]=nr(s);return r}}function nr(e){if(typeof e=="string"||typeof e=="number"||typeof e=="boolean")return e;if(Array.isArray(e))return e.map(nr);if(typeof e=="object"&&e!==null){let t={};for(let[o,r]of Object.entries(e))t[o]=nr(r);return t}}function os(e,t){var i;let o=e.props.children,r=o.length,{index:n=-1,positionRelativeToTab:s="after"}=t.tab||{};return n===-1||n>=r?[o[r-1],"after"]:[(i=o[n])!=null?i:null,s]}function io(e,t,o){let{active:r,children:n=[],path:s}=A(e),i=F(t,"path"),{idx:a,finalStep:l}=ge(s,i,!0),[c,d]=l?Ic(e,n,o):[r,n==null?void 0:n.map((u,m)=>m===a?io(u,t,o):u)],p=_(e)==="Stack"?Array.isArray(c)?c[0]:c:r;return Dt.cloneElement(e,{active:p},d)}function Ic(e,t,o){let r=F(e,"path"),n=t==null?void 0:t.length,{id:s=ts()}=A(o);return n?[n,t.concat(te(o,`${r}.${n}`,{id:s,key:s}))]:[0,[te(o,`${r}.0`,{id:s})]]}function ao(e,t,o,r,n,s,i){let{active:a,children:l,path:c}=A(e),d=F(t,"path"),{idx:p,finalStep:u}=ge(c,d),[m,f]=u?Cc(e,l,p,o,r,n,s,i):[a,l.map((h,b)=>b===p?ao(h,t,o,r,n,s,i):h)],g=_(e)==="Stack"?m:a;return Dt.cloneElement(e,{active:g},f)}function Cc(e,t,o,r,n,s,i,a){let l=ue(r);return l!=null&&l.width&&(l!=null&&l.height)?Hc(e,t,o,r,n,i,a):rs(e,t,o,r,n,(s==null?void 0:s.width)||(s==null?void 0:s.height),i)}var Nc=(e,t,{top:o,right:r,bottom:n,left:s},[i,a,l,c])=>{if(e==="column"&&t==="before")return a-o;if(e==="column")return n-c;if(e==="row"&&t==="before")return i-s;if(e==="row")return r-l};function Hc(e,t,o,r,n,s,i){let{style:{flexDirection:a}}=A(e),[l,c,d]=$n(a),{[c]:p,[l]:u}=ue(r),m=F(t[o],"path"),f=Nc(a,n,s,i),[g,h]=p<s[c]?[yt(r,d,m,s,i),u]:[r,void 0],b=f?be(m,f,{flexGrow:0,flexShrink:0}):void 0;return p>s[c]&&(t=t.map(T=>{if(F(T,"placeholder"))return T;{let{[c]:E}=ue(T);return E&&E<p?yt(T,d,F(T,"path")):T}})),rs(e,t,o,g,n,h,s,b)}function rs(e,t,o,r,n,s,i,a){let l=F(e,"path"),c=0,d=!t||t.length===0?[r]:t.reduce((p,u,m)=>{if(o===m){let[f,g]=Ac(e,u,r,i);n==="before"?a?p.push(a,g,f):p.push(g,f):a?p.push(f,g,a):p.push(f,g),c=p.indexOf(g)}else p.push(u);return p},[]).map((p,u)=>u<c?p:te(p,`${l}.${u}`));return[c,d]}function Ac(e,t,o,r){let n=ts(),{version:s=0}=A(o);if(s+=1,_(e)==="Flexbox"){let[i]=Jn(e.props.style),a=6,l={[i]:(r[i]-a)/2},c=er(t,i,l),d=er(o,i,l);return[Dt.cloneElement(t,{style:c}),Dt.cloneElement(o,{id:n,version:s,style:d})]}else{let{style:{left:i,top:a,flex:l,...c}={left:void 0,top:void 0,flex:void 0}}=A(o);return[t,Dt.cloneElement(o,{id:n,version:s,style:c})]}}import{cloneElement as zc}from"react";import lo from"react";function ns(e,{target:t,replacement:o}){return ir(e,t,o)}function ir(e,t,o){let r=F(t,"path"),n=F(t,"resizeable"),{style:s}=A(t),i=wt(lo.cloneElement(o,{resizeable:n,style:{...s,...o.props.style}}),r);return ae(e,t,i)}function ae(e,t,o,r){if(e===t)return o;let{idx:n,finalStep:s}=ge(F(e,"path"),F(t,"path")),i=e.props.children.slice();return s?r?r===et.MINIMIZE?i[n]=Oc(e,i[n]):r===et.RESTORE&&(i[n]=kc(i[n])):i[n]=o:i[n]=ae(i[n],t,o,r),lo.cloneElement(e,void 0,i)}function Oc(e,t){let{style:o}=A(e),{style:r}=A(t),{width:n,height:s,flexBasis:i,flexShrink:a,flexGrow:l,...c}=r,d={width:n,height:s,flexBasis:i,flexShrink:a,flexGrow:l},p={...c,flexBasis:0,flexGrow:0,flexShrink:0},u=o.flexDirection==="row"?"vertical":o.flexDirection==="column"?"horizontal":!1;return u?lo.cloneElement(t,{collapsed:u,restoreStyle:d,style:p}):t}function kc(e){let{style:t,restoreStyle:o}=A(e),{flexBasis:r,flexShrink:n,flexGrow:s,...i}=t,a={...i,...o};return lo.cloneElement(e,{collapsed:!1,style:a,restoreStyle:void 0})}function ss(e,{fromIndex:t,path:o,toIndex:r}){let n=ee(e,o,!0),{children:s}=A(n),i=Bc(s,t,r),a=zc(n,void 0,i);return ae(e,n,a)}function Bc(e,t,o){let r=e.slice(),[n]=r.splice(t,1);return o===-1?r.concat(n):(r.splice(o,0,n),r)}var re={ADD:"add",DRAG_START:"drag-start",DRAG_DROP:"drag-drop",LAYOUT_RESIZE:"layout-resize",MAXIMIZE:"maximize",MINIMIZE:"minimize",MOVE_CHILD:"move-child",REMOVE:"remove",REPLACE:"replace",RESTORE:"restore",SAVE:"save",SET_PROP:"set-prop",SET_PROPS:"set-props",SET_TITLE:"set-title",SPLITTER_RESIZE:"splitter-resize",SWITCH_TAB:"switch-tab",TEAROUT:"tearout"};import Fe from"react";function ar(e,{path:t}){let o=ee(e,t),r=we(e,t);if(r===null)return e;let{children:n}=A(r);if(n.length>1&&as(n,t)){let{style:{flexBasis:s,display:i,flexDirection:a,...l}}=A(r),c=F(r,"path"),d=ae(e,r,be(c,s,l));for(;(r=we(d,c))&&F(r,"path")!=="0";){let{children:p}=A(r);if(as(p)){c=F(r,"path");let{style:{flexBasis:u,display:m,flexDirection:f,...g}}=A(r);d=ae(e,r,be(c,u,g))}else if(Wc(p))d=us(e,r);else break}return d}return ls(e,o)}function ls(e,t){let o=A(e),{children:r,path:n,preserve:s}=o,{active:i}=o,{idx:a,finalStep:l}=ge(n,F(t,"path")),c=_(e),d=r.slice();if(l){if(d.splice(a,1),i!==void 0&&i>=a&&(i=Math.max(0,i-1)),d.length===1&&!s&&n!=="0"&&c.match(/Flexbox|Stack/))return $c(e,d[0]);!d.some(Fc)&&d.some(cs)&&(d=_c(d))}else d[a]=ls(d[a],t);return d=d.map((p,u)=>te(p,`${n}.${u}`)),Fe.cloneElement(e,{active:i},d)}function $c(e,t){let o=_(e),{path:r,style:{flexBasis:n,flexGrow:s,flexShrink:i,width:a,height:l}}=A(e),c=te(t,r);if(r==="0")c=Fe.cloneElement(c,{style:{...t.props.style,width:a,height:l}});else if(o==="Flexbox"){let d=e.props.style.flexDirection==="column"?"height":"width",{style:{[d]:p,...u}}=c.props;c=Fe.cloneElement(c,{flexFill:void 0,style:{...u,flexGrow:s,flexShrink:i,flexBasis:n,width:a,height:l}})}return c}var Fc=e=>e.props.style.flexGrow>0,cs=e=>{let{width:t,height:o,flexGrow:r}=e.props.style;return r===0&&typeof t!="number"&&typeof o!="number"},_c=e=>e.map(t=>cs(t)?Fe.cloneElement(t,{style:{...t.props.style,flexGrow:1}}):t),Wc=e=>{if(e&&e.length>0){let t=F(e[0],"placeholder"),o=!1;for(let r=1;r<e.length;r++){if(o=F(e[r],"placeholder"),t&&o)return!0;t=o}}},us=(e,t)=>{let{children:o,path:r}=A(e),{idx:n,finalStep:s}=ge(r,F(t,"path")),i=o.slice();return s?i[n]=Vc(t):i[n]=us(i[n],t),i=i.map((a,l)=>te(a,`${r}.${l}`)),Fe.cloneElement(e,void 0,i)},Vc=e=>{let{children:t}=A(e),o=[],r=[];for(let s=0;s<t.length;s++)F(t[s],"placeholder")?r.push(t[s]):(r.length===1?o.push(r.pop()):r.length>0&&(o.push(is(r)),r.length=0),o.push(t[s]));r.length===1?o.push(r.pop()):r.length>0&&o.push(is(r));let n=F(e,"path");return Fe.cloneElement(e,void 0,o.map((s,i)=>te(s,`${n}.${i}`)))},is=([e,...t])=>{let o=F(e,"style"),{flexBasis:r,flexGrow:n,flexShrink:s}=o;for(let{props:{style:i}}of t)r+=i.flexBasis,n=Math.max(n,i.flexGrow),s=Math.max(s,i.flexShrink);return Fe.cloneElement(e,{style:{...o,flexBasis:r,flexGrow:n,flexShrink:s}})},as=(e,t)=>e.every(o=>F(o,"placeholder")||t&&F(o,"path")===t);import lr from"react";function ds(e,{path:t,size:o}){let r=ee(e,t,!0),{style:n}=A(r),s={...n,width:o},i=lr.cloneElement(r,{style:s});return ae(e,r,i)}function ps(e,{path:t,sizes:o}){let r=ee(e,t,!0),{children:n,style:s}=A(r),i=s.flexDirection==="column"?"height":"width",a=Kc(n,o,i),l=lr.cloneElement(r,void 0,a);return ae(e,r,l)}function Kc(e,t,o){return e.map((r,n)=>{let{style:{[o]:s,flexBasis:i}}=A(r),a=t[n],{currentSize:l,flexBasis:c}=a,p=l!==void 0?a.currentSize:c;return p===void 0||s===p||i===p?r:lr.cloneElement(r,{style:Gc(r.props.style,o,p)})})}function Gc(e,t,o){let r=typeof e[t]=="number",{flexShrink:n=1,flexGrow:s=1}=e;return{...e,[t]:r?o:"auto",flexBasis:r?"auto":o,flexShrink:n,flexGrow:s}}import{uuid as Zc}from"@vuu-ui/vuu-utils";import co from"react";var ms=e=>{let[t]=_(e);return t===t.toLowerCase()};function St(e,t,o,r,n,s){let{children:i,path:a}=A(e),l=F(t,"path"),{idx:c,finalStep:d}=ge(a,l),p=d?Uc(e,i,t,o,r,n,s):i.map((u,m)=>m===c?St(u,t,o,r,n,s):u);return co.cloneElement(e,void 0,p)}function Uc(e,t,o,r,n,s,i){let a=ue(r);if(a!=null&&a.width&&(a!=null&&a.height)){if(s===void 0||i===void 0)throw Error("wrap-layout-element, updateChildren clientRect and dropRect must both be available");return qc(t,o,r,n,s,i)}return Xc(e,t,o,r,n)}function Xc(e,t,o,r,n){var x;let{version:s=0}=A(r),i=F(o,"path"),{type:a,flexDirection:l,showTabs:c}=gs(n),[d,p,u]=Yc(a,o,r,l,n),m=fs(n),f=m?1:0,g={resizeable:!0,style:u,version:s+1},b={[ms(o)?"data-resizeable":"resizeable"]:!0,style:p},T=a==="Stack"?{showTabs:c}:void 0,E=a==="Flexbox"?{splitterSize:(x=_(e)==="Flexbox"&&e.props.splitterSize)!=null?x:void 0}:void 0,y=Zc(),v=co.createElement(Me[a],{active:f,id:y,key:y,path:F(o,"path"),flexFill:F(o,"flexFill"),...E,...T,style:d,resizeable:F(o,"resizeable")},m?[te(o,`${i}.0`,b),wt(co.cloneElement(r,g),`${i}.1`)]:[wt(co.cloneElement(r,g),`${i}.0`),te(o,`${i}.1`,b)]);return t.map(w=>w===o?v:w)}function qc(e,t,o,r,n,s){let{flexDirection:i}=gs(r),a=i==="column"?"row":"column",l=fs(r),[c,d,p,u]=s,[m,f]=i==="column"?[d-n.top,n.bottom-u]:[c-n.left,n.right-p],g=F(t,"path"),h=0,b=ms(t)?"data-resizeable":"resizeable",T=[];m&&T.push(l?te(t,`${g}.${h++}`,{[b]:!0,style:{flexBasis:m,flexGrow:1,flexShrink:1}}):be(`${g}.${h++}`,m,{flexGrow:0,flexShrink:0})),T.push(yt(o,a,`${g}.${h++}`,n,s)),f&&T.push(l?be(`${g}.${h++}`,0):te(t,`${g}.${h++}`,{[b]:!0,style:{flexBasis:0,flexGrow:1,flexShrink:1}}));let E=tr(i,t.props,T,g);return e.map(y=>y===t?E:y)}function Yc(e,t,o,r,n){let s={...t.props.style,flexDirection:r},i=e==="Flexbox"&&r==="column"?"height":"width",a=Qo(o,i,n),l=Qo(t,i);return[s,l,a]}var fs=e=>{var t;return e.position.SouthOrEast?!0:((t=e==null?void 0:e.tab)==null?void 0:t.positionRelativeToTab)==="before"?!1:!!e.position.Header};function gs(e){return e.position.Header?{type:"Stack",flexDirection:"column",showTabs:!0}:{type:"Flexbox",flexDirection:e.position.EastOrWest?"row":"column"}}var Es=(e,t)=>{switch(t.type){case re.ADD:return tu(e,t);case re.DRAG_DROP:return eu(e,t);case re.MAXIMIZE:return Qc(e,t);case re.REMOVE:return ar(e,t);case re.REPLACE:return ns(e,t);case re.SET_PROP:return hs(e,t);case re.SET_PROPS:return Jc(e,t);case re.SET_TITLE:return hs(e,{type:"set-prop",path:t.path,propName:"title",propValue:t.title});case re.SPLITTER_RESIZE:return ps(e,t);case re.LAYOUT_RESIZE:return ds(e,t);case re.SWITCH_TAB:return jc(e,t);case re.MOVE_CHILD:return ss(e,t);default:return e}},jc=(e,{path:t,nextIdx:o})=>{let r=ee(e,t,!0),n=cr.cloneElement(r,{active:o});return ae(e,r,n)},hs=(e,{path:t,propName:o,propValue:r})=>{let n=ee(e,t,!0),s=cr.cloneElement(n,{[o]:r});return ae(e,n,s)},Jc=(e,{path:t,props:o})=>{let r=ee(e,t,!0),n=cr.cloneElement(r,o);return ae(e,r,n)},Qc=(e,{path:t,type:o})=>{if(t){let r=ee(e,t,!0);return ae(e,r,r,o)}else return e},eu=(e,t)=>{var f,g;let{draggedReactElement:o,dragInstructions:r,dropTarget:n}=t,s=n.component,{pos:i}=n,a=((f=i==null?void 0:i.position)==null?void 0:f.Header)&&_(s)==="Stack",{id:l,version:c}=A(o),d=ue(o),p;if(a){let[h,b]=os(s,i);h===void 0?p=io(e,s,o):p=ao(e,h,o,b)}else!d&&((g=i==null?void 0:i.position)!=null&&g.Centre)?p=ir(e,s,o):p=ou(e,n,o);if(r.DoNotRemove)return p;let u=De(p,h=>h.id===l&&h.version===c),m=F(u,"path");return ar(p,{path:m,type:"remove"})},tu=(e,{path:t,component:o})=>io(e,ee(e,t),o),ou=(e,t,o)=>{let{component:r,pos:n,clientRect:s,dropRect:i}=t,a=F(r,"path");if(a==="0.0")return St(e,r,o,n);let l=we(e,a);if(bs(n,l)){let c=n.position.SouthOrEast?"after":"before";return ao(e,r,o,c,n,s,i)}if(!bs(n,l))return St(e,r,o,n,s,i);if(ne(_(l)))return St(e,r,o,n);throw Error(`no support right now for position = ${n.position}`)},bs=(e,t)=>e.position.Centre?xs(t)||ys(t):e.position.NorthOrSouth?ys(t):e.position.EastOrWest?xs(t):!1,ys=e=>_(e)==="Flexbox"&&e.props.style.flexDirection==="column",xs=e=>_(e)==="Flexbox"&&e.props.style.flexDirection!=="column";import{createContext as ru}from"react";var nu=e=>console.log(`dispatch ${e.type}, have you forgotten to provide a LayoutProvider ?`),Rt=ru({dispatchLayoutProvider:nu,version:-1});import{useCallback as uo,useRef as ur}from"react";var su={},Ts=[0,0],iu=(e,t,o)=>{let r=document.createElement("div");r.className="vuuSimpleDraggableWrapper",r.classList.add("vuuSimpleDraggableWrapper","salt-theme","salt-density-medium"),r.dataset.dragging="true";let n=o!=null?o:document.createElement("div");n.id=t,r.appendChild(n),document.body.appendChild(r);let s=`top:${e.top}px;left:${e.left}px;width:${e.width}px;height:${e.height}px;`;return[r,s,e.left,e.top]},au=e=>{let{offsetParent:t}=e;if(t===null)return Ts;{let{left:o,top:r}=t.getBoundingClientRect();return[o,r]}},vs=(e,t)=>{let o=ur(),r=ur(),n=ur(),s=uo((c,d)=>{if(r.current&&n.current){let{dragOffsets:[p,u],targetPosition:m}=r.current,f=typeof c=="number"?c-p:m.left,g=typeof d=="number"?d-u:m.top;(f!==m.left||g!==m.top)&&(r.current.targetPosition.left=f,r.current.targetPosition.top=g,n.current.style.top=g+"px",n.current.style.left=f+"px")}},[]),i=uo(c=>{if(r.current){let{dragInstructions:d,payload:p,originalCSS:u}=r.current;t({type:"drag-drop",draggedReactElement:p,dragInstructions:d,dropTarget:c}),console.log("[useLayoutDragDrop]",{dragInstructions:d}),n.current&&(d.RemoveDraggableOnDragEnd?document.body.removeChild(n.current):(n.current.style.cssText=u,delete n.current.dataset.dragging)),o.current=void 0,r.current=void 0,n.current=void 0}},[t]),a=uo(c=>{if(o.current){let{payload:d,dragContainerPath:p,dragElement:u,dragRect:m,instructions:f=su,path:g}=o.current,{current:h}=e,b={x:c.clientX,y:c.clientY},T=d!=null?d:ee(h,g,!0),{id:E}=T.props,y=ue(T),v="",x="",w="",S=-1,O=-1,H=Ts,P=document.getElementById(E);if(P===null)[P,x,S,O]=iu(m,E,u);else{H=au(P);let[D,I]=H,{width:M,height:R,left:L,top:C}=P.getBoundingClientRect();S=L-D,O=C-I,x=`width:${M}px;height:${R}px;left:${S}px;top:${O}px;z-index: 100;background-color:#ccc;opacity: 0.6;`,P.dataset.dragging="true",v=P.style.cssText}w=jo.initDrag(e.current,p,m,b,{drag:s,drop:i},y),P.style.cssText=x+w,n.current=P,r.current={payload:T,originalCSS:v,dragRect:m,dragOffsets:H,dragInstructions:f,targetPosition:{left:S,top:O}}}},[s,i,e]);return uo(c=>{let{evt:d,...p}=c;console.log("prepare to drag",{options:p}),o.current={...p,dragContainerPath:""},jo.handleMousedown(d,a,p.instructions)},[a])};import{jsx as Rs}from"react/jsx-runtime";var Ds=e=>e.dropTarget,uu=e=>["drag-drop","remove","set-title","splitter-resize","switch-tab"].includes(e.type),zy=()=>{let e=du();return Rs("div",{children:`Context: ${e} `})},By=e=>{let{children:t,layout:o,onLayoutChange:r}=e,n=ws(void 0),s=ws(t),[,i]=cu(null),a=dr(p=>{if(r){let u=De(p,Ds)||n.current,f=_(u)==="DraggableLayout"?A(u).children[0]:u,g=Qn(f);r(g,"drag-root")}},[r]),l=dr((p,u=!1)=>{let m=Es(n.current,p);m!==n.current&&(n.current=m,i({}),!u&&uu(p)&&a(m))},[a]),c=dr(p=>{switch(p.type){case"drag-start":{d(p);break}case"save":{a(n.current);break}default:{l(p);break}}},[l,a]),d=vs(n,c);return lu(()=>{if(o){let p=De(n.current,Ds),u=nn(p),m=so(o,`${p.props.path}.0`),f=u?{type:re.REPLACE,target:u,replacement:m}:{type:re.ADD,path:p.props.path,component:m};l(f,!0)}},[l,o]),n.current===void 0?n.current=sr(t):t!==s.current&&(n.current=sr(t,n.current),s.current=t),Rs(Rt.Provider,{value:{dispatchLayoutProvider:c,version:0},children:n.current})},ye=()=>{let{dispatchLayoutProvider:e}=Ss(Rt);return e},du=()=>{console.log({LayoutProviderContext:Rt});let{version:e}=Ss(Rt);return e};import{jsx as mu}from"react/jsx-runtime";var Ms=function(t){let{path:o}=t,r=ye(),n=pu(s=>{r({type:et.SPLITTER_RESIZE,path:o,sizes:s})},[r,o]);return mu(rr,{...t,onSplitterMoved:n})};Ms.displayName="Flexbox";Q("Flexbox",Ms,"container");import{useForkRef as Hu}from"@salt-ds/core";import Au from"classnames";import{forwardRef as Ou,useMemo as ku}from"react";import{useCallback as Hs,useEffect as xu,useRef as fr,useState as Eu}from"react";import{useCallback as fu,useLayoutEffect as Ps,useRef as gu}from"react";var Is=["height","width"],Qy=["height"],ex=["width"],_e=new WeakMap,Cs=(e,t,o)=>{switch(o){case"height":return t.height;case"scrollHeight":return e.scrollHeight;case"scrollWidth":return e.scrollWidth;case"width":return t.width;default:return 0}},Ls=new ResizeObserver(e=>{for(let t of e){let{target:o,contentRect:r}=t,n=_e.get(o);if(n){let{onResize:s,measurements:i}=n,a=!1;for(let[l,c]of Object.entries(i)){let d=Cs(o,r,l);d!==c&&(a=!0,i[l]=d)}a&&s&&s(i)}}});function po(e,t,o,r=!1){console.log("resizeObserver container",{ref:e.current});let n=gu(t),s=fu(i=>{let a=i.getBoundingClientRect();return n.current.reduce((l,c)=>(l[c]=Cs(i,a,c),l),{})},[]);Ps(()=>{let i=e.current,a=!1;async function l(){_e.set(i,{measurements:{}}),a=!1;let{fonts:c}=document;if(c&&await c.ready,!a){let d=_e.get(i);if(d){let p=s(i);d.measurements=p,Ls.observe(i),r&&o(p)}}}if(i){if(_e.has(i))throw Error("useResizeObserver attemping to observe same element twice");l()}return()=>{i&&_e.has(i)&&(Ls.unobserve(i),_e.delete(i),a=!0)}},[e,s,r,o]),Ps(()=>{let i=e.current,a=_e.get(i);if(a){if(n.current!==t){n.current=t;let l=s(i);a.measurements=l}a.onResize=o}},[t,s,e,o])}function hu(e,t){let o=document.body.querySelector(`.${e}`),r={get:function(n,s){let i=n.getPropertyValue(`--${e}-breakpoint-${s}`);return i?parseInt(i):void 0}};return o?new Proxy(getComputedStyle(o),r):t!=null?t:{}}var bu=([,e],[,t])=>t-e,mr=e=>Object.entries(e).sort(bu).map(([t,o],r,n)=>[t,o,r<n.length-1?n[r+1][1]:9999]),pr=null,yu=(e="salt")=>{let{xs:t,sm:o,md:r,lg:n,xl:s}=hu(e);return mr({xs:t,sm:o,md:r,lg:n,xl:s})},Ns=e=>(pr===null&&(pr=yu(e)),pr);var Tu=[],As=({breakPoints:e,smallerThan:t},o)=>{let[r,n]=Eu(t?!1:"lg"),s=fr(document.body),i=fr(e?mr(e):Ns()),a=fr("lg"),l=Hs(d=>{if(i.current){for(let[p,u]of i.current)if(d>=u)return p}},[i]),c=Hs(d=>{if(t){let p=i.current.find(([u])=>u===t);if(p){let[,,u]=p;return d<u}}else return l(d);return d},[t,l]);return po(o||s,i.current?["width"]:Tu,({width:d})=>{let p=c(d);p!==a.current&&(a.current=p,n(p))},!0),xu(()=>{let d=o||s;if(d.current){let p=a.current;if(i.current){let{clientWidth:u}=d.current,m=c(u);a.current=m,m!==p&&n(m)}}},[n,c,o]),r};var Os="data-collapsible",vu={[Os]:!0,"data-pad-start":!0,"data-pad-end":!0},wu=e=>{var t;return(t=vu[e])!=null?t:!1},Du=e=>e===Os,Su={dynamic:"dynamic",instant:"instant",true:"instant"},Ru=e=>{var t;return(t=Su[e])!=null?t:"none"},cx=e=>Object.keys(e).reduce((t,o)=>{let[r,n]=t;if(wu(o)){let s=Du(o)?Ru(e[o]):e[o];r[o]=s,n[o]=void 0}return t},[{},{}]);import{getUniqueId as Mu}from"@vuu-ui/vuu-utils";import{cloneElement as Pu,isValidElement as Lu,useCallback as Iu,useMemo as ks,useRef as gr}from"react";var Cu=["xs","sm","md","lg","xl"],Nu=12,zs=({children:e,cols:t,style:o})=>{let r=gr(null),n=gr(null),s=gr(),i=t!=null?t:Nu,l=(o==null?void 0:o.flexDirection)==="column"?"height":"width",c=ks(()=>Array.isArray(e)?e:Lu(e)?[e]:[],[e]),d=Iu((p,u)=>{let m=to(p,u,Cu),f=[],g=[];for(let h=0;h<p.length;h++){let b=p[h],{style:{flex:T,...E}}=b.props;f.push(Pu(b,{key:Mu(),style:{...E,"--parent-col-count":i}})),g.push(m[h])}return[f,g]},[i]);return ks(()=>{let[p,u]=d(c,l);n.current=u,s.current=p},[d,c,l]),{cols:i,content:s.current,rootRef:r}};import{jsx as zu}from"react/jsx-runtime";var mo="hwFluidGrid",hr=Ou(function(t,o){let{breakPoints:r,children:n,column:s,cols:i=12,className:a,flexFill:l,gap:c=3,fullPage:d,id:p,onSplitterMoved:u,resizeable:m,row:f,showGrid:g,spacing:h,splitterSize:b,style:T,...E}=t,y=ku(()=>je(n),[n]),{cols:v,content:x,rootRef:w}=zs({children:y,cols:i,style:T}),S=As({breakPoints:r},w),O=Au(mo,a,{[`${mo}-column`]:s,[`${mo}-row`]:f,[`${mo}-show-grid`]:g,"flex-fill":l,"full-page":d}),H={...T,"--spacing":h,"--grid-col-count":v,"--grid-gap":c};return zu("div",{...E,className:O,"data-breakpoint":S,"data-cols":v,"data-resizeable":m||void 0,id:p,ref:Hu(w,o),style:H,children:x})});hr.displayName="FluidGrid";import{jsx as Bu}from"react/jsx-runtime";var Bs=function(t){return Bu(hr,{...t})};Bs.displayName="FluidGrid";Q("FluidGrid",Bs,"container");import{createContext as $u,useCallback as Zx,useContext as Fu,useMemo as Ux}from"react";import{jsx as qx}from"react/jsx-runtime";var _u={isDragSource:!1,isDropTarget:!1,register:()=>{}},Wu=()=>console.log("have you forgotten to provide a DragDrop Provider ?"),Vu=$u({registerDragDropParty:Wu});var $s=e=>{var n,s;let{dragSources:t,dropTargets:o,registerDragDropParty:r}=Fu(Vu);if(e){let i=(n=t==null?void 0:t.has(e))!=null?n:!1,a=(s=o==null?void 0:o.has(e))!=null?s:!1;return{isDragSource:i,isDropTarget:a,register:r}}else return _u};import{useCallback as Lt,useMemo as ed,useRef as We,useState as td}from"react";import{useCallback as Pt,useMemo as Qu,useRef as qs}from"react";var Ku=["left","right"],Gu=["top","bottom"],fo=":not(.wrapped)",Fs=':not([aria-hidden="true"])',_s=e=>{let t=e.cloneNode(!0);return t.removeAttribute("id"),t.dataset.index="-1",t},Zu=(e,t="width",o=!1)=>{let r=t==="width"?"left":"top",{[t]:n,[r]:s}=e.getBoundingClientRect(),{padEnd:i=!1,padStart:a=!1}=e.dataset,l=getComputedStyle(e),[c,d]=t==="width"?Ku:Gu,p=a&&!o?0:parseInt(l.getPropertyValue(`margin-${c}`),10),u=i&&!o?0:parseInt(l.getPropertyValue(`margin-${d}`),10),m=n;if(parseInt(l.getPropertyValue("flex-shrink"),10)>0){let g=parseInt(l.getPropertyValue("flex-basis"),10);!isNaN(g)&&g>0&&(m=g)}return[s,p+m+u]},Uu={horizontal:{CLIENT_POS:"clientX",CLIENT_SIZE:"clientWidth",CONTRA:"top",CONTRA_CLIENT_POS:"clientY",CONTRA_END:"bottom",CONTRA_POS:"y",DIMENSION:"width",END:"right",POS:"x",SCROLL_POS:"scrollLeft",SCROLL_SIZE:"scrollWidth",START:"left"},vertical:{CLIENT_POS:"clientY",CLIENT_SIZE:"clientHeight",CONTRA:"left",CONTRA_CLIENT_POS:"clientX",CONTRA_END:"right",CONTRA_POS:"x",DIMENSION:"height",END:"bottom",POS:"y",SCROLL_POS:"scrollTop",SCROLL_SIZE:"scrollHeight",START:"top"}},pe=e=>Uu[e],Ws=(e,t)=>{let o=e.find(r=>r.id===t);if(o)return o},Vs=(e,t)=>{e.splice(t,1);for(let o=t;o<e.length;o++)e[o].currentIndex-=1},rt=(e,t,o,r,n)=>{var p;let s=[],{DIMENSION:i}=pe(t),a=Array.from(o?e.querySelectorAll(o):e.children),l=a.length,c=typeof(r==null?void 0:r.from)=="number"?r.atEnd?Math.max(0,r.from-1):r.from:0,d=typeof(r==null?void 0:r.to)=="number"?Math.min(r.to+2,l-1):l-1;for(let u=c;u<=d;u++){let m=a[u],[f,g]=Zu(m,i),h=u===l-1,b=m.id,T=parseInt((p=m.dataset.index)!=null?p:"-1");s.push({currentIndex:u,dataIndex:isNaN(T)?-1:T,id:b,index:u,isDraggedItem:n===b,isLast:h,isOverflowIndicator:m.dataset.index==="overflow",element:m,start:f,end:f+g,size:g,mid:f+g/2})}return s},Mt=e=>e.findIndex(t=>t.isDraggedItem),br=(e,t)=>{let o=Mt(e),r=t==="fwd"?o+1:o-1;if(r<0||r>=e.length)throw Error("switchDropTargetPosition index out of range");let n=e.at(o),s=e.at(r),i=s.size-n.size;if(t==="fwd"){let a=s.start+i,l=s.end,c={...n,start:a,mid:Math.floor(a+(l-a)/2),end:l},d=n.start,p=n.end+i,u={...s,start:d,mid:Math.floor(d+(p-d)/2),end:p};e.splice(o,2,u,c)}else{let a=s.start,l=s.end-i,c={...n,start:a,mid:Math.floor(a+(l-a)/2),end:l},d=n.start-i,p=n.end,u={...s,start:d,mid:Math.floor(d+(p-d)/2),end:p};e.splice(r,2,c,u)}},nt=(e,t,o)=>{let r=e.length,n=Mt(e),s=e[n];if(o==="fwd"){let i=Math.round(t+s.size);for(let a=r-1;a>=0;a--){let l=e[a];if(i>l.mid)return a<n?s:l}}else{let i=Math.round(t);for(let a=0;a<r;a++){let l=e[a];if(i<l.mid)return a>n?s:l}}throw Error("no dropTraget identified")};function Ks(e,t){let{height:o,left:r,top:n,width:s}=e,{height:i,width:a}=t;return{height:Math.min(o,i),left:r,top:n,width:Math.min(s,a)}}import{useForkRef as Xu}from"@salt-ds/core";function Gs(e){var t,o,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(o=Gs(e[t]))&&(r&&(r+=" "),r+=o);else for(t in e)e[t]&&(r&&(r+=" "),r+=t);return r}function go(){for(var e,t,o=0,r="";o<arguments.length;)(e=arguments[o++])&&(t=Gs(e))&&(r&&(r+=" "),r+=t);return r}import{forwardRef as qu,useCallback as Yu}from"react";import{Portal as ju}from"@vuu-ui/vuu-popups";import{jsx as Zs}from"react/jsx-runtime";var Ju=e=>e.split(" ").map(t=>`vuuDraggable-${t}`),ho=qu(function({wrapperClassName:t,element:o,onTransitionEnd:r,style:n,scale:s=1},i){let a=Yu(c=>{c&&(c.innerHTML="",c.appendChild(o),s!==1&&(c.style.transform=`scale(${s},${s})`))},[o,s]),l=Xu(i,a);return Zs(ju,{children:Zs("div",{className:go("vuuDraggable",...Ju(t)),ref:l,onTransitionEnd:r,style:n})})}),yr=e=>{let t=document.createElement("div");return t.className="vuuDraggable-spacer",e&&t.addEventListener("transitionend",()=>{e.current=!1}),t},Us=()=>{let e=document.createElement("div");return e.className="vuuDraggable-dropIndicatorPosition",e},Xs=e=>{let t=document.createElement("div");return t.className="vuuDraggable-dropIndicator",e&&t.addEventListener("transitionend",()=>{e.current=!1}),t};var Ys=()=>{let e=qs(0),t=qs(!1),o=Qu(()=>[yr(t),yr()],[]),r=Pt(()=>o.forEach(l=>l.remove()),[o]),n=Pt((l,c="width")=>{let[d,p]=o;e.current=requestAnimationFrame(()=>{t.current=!0,d.style.cssText=`${c}: 0px`,p.style.cssText=`${c}: ${l}px`,o[0]=p,o[1]=d})},[o]),s=Pt(()=>{e.current&&(cancelAnimationFrame(e.current),e.current=0)},[]),i=Pt((l,c,d,p=!1,u="static",m="horizontal")=>{if(c){let f=m==="horizontal"?"width":"height",[g,h]=o;if(s(),p)t.current?(r(),g.style.cssText=`${f}: ${d}px`,h.style.cssText=`${f}: 0px`,u==="fwd"?(c.element.before(g),c.element.after(h)):(c.element.after(g),c.element.before(h))):u==="fwd"?c.element.after(h):c.element.before(h),n(d,f);else if(u==="static")g.style.cssText=`${f}: ${d}px`,c.element.before(g);else throw Error("useDragDisplacers currently only supports noTransition for static displacement");u!=="static"&&br(l,u)}},[n,s,r,o]),a=Pt((l,c,d,p=!1,u="static",m="horizontal")=>{let f=m==="horizontal"?"width":"height",[g,h]=o;s(),p?(t.current?(r(),g.style.cssText=`${f}: ${d}px`,h.style.cssText=`${f}: 0px`,c.element.before(g),c.element.after(h)):u==="fwd"?c.element.after(h):c.element.before(h),n(d,f)):(g.style.cssText=`${f}: ${d}px`,c.element.after(g)),u!=="static"&&br(l,u)},[n,s,r,o]);return{displaceItem:i,displaceLastItem:a,clearSpacers:r}};var js=({draggableRef:e,onDrop:t,orientation:o="horizontal",containerRef:r,itemQuery:n="*",selected:s,viewportRange:i})=>{let a=We(),l=We(!1),c=We(-1),d=We([]),p=We(!1),[u,m]=td(!1),{clearSpacers:f,displaceItem:g,displaceLastItem:h}=Ys(),b=We(),T=`:is(${n}${fo}${Fs},.vuuOverflowContainer-OverflowIndicator)`,E=D=>d.current.findIndex(I=>I.id===D.id),y=We();y.current=i;let v=Lt(()=>{f()},[f]),x=Lt((D,I,M)=>{let{current:R}=r,{current:L}=b;if(R&&L){d.current=rt(R,o,T,y.current);let{size:C}=L,$=c.current+C/2,{current:k}=d,W=nt(k,$,"fwd");if(W){let X=E(W),G=k[X];M&&D==="fwd"?h(k,k[k.length-1],C,!1,"static",o):g(k,G,C,!0,"static",o)}}},[r,g,h,T,o]),w=Lt(D=>{let M=D.target.closest(n);M.ariaSelected&&Array.isArray(s)&&s.length>1&&console.log("its a selected element, and we have a multi select");let{current:R}=r;if(R&&M){let{SCROLL_SIZE:L,CLIENT_SIZE:C}=pe(o),{id:N}=M,{[L]:$,[C]:k}=R;l.current=$>k;let W=d.current=rt(R,o,T,i,N);console.log({dropTargets:W});let K=Mt(W),X=W[K];X&&R&&(b.current=X,(X.isLast?h:g)(W,X,X.size,!1,"static",o))}},[r,g,h,T,n,o,s,i]),[S,O]=ed(()=>{let D=!1;return[R=>{if(!D){D=!0;let L=R.element.querySelector(".vuuPopupMenu");if(L){let C=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!0});L.dispatchEvent(C)}}},R=>{if(D){D=!1;let L=R.element.querySelector(".vuuPopupMenu");if(L){let C=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!0});L.dispatchEvent(C)}}}]},[]),H=Lt((D,I)=>{let{current:M}=b;if(M&&e.current&&r.current){c.current=D;let{current:R}=d,L=nt(R,D,I);if(L&&!L.isDraggedItem)if(L.isOverflowIndicator)m(p.current=!0),S(L);else{let{size:C}=M;(E(L)===R.length-1?h:g)(R,L,C,!0,I,o);let k=R.at(-1);O(k),m(p.current=!1)}a.current=I}},[r,g,h,e,O,o,S]),P=Lt(()=>{var R;f();let{current:D}=d,I=Mt(D),M=D[I];if(M&&(a.current=void 0,p.current?t(M.index,-1):t(M.index,I)),m(!1),r.current){let L=(R=r.current)==null?void 0:R.scrollTop;I<D.length&&(r.current.scrollTop=L)}},[f,r,t]);return{beginDrag:w,drag:H,drop:P,handleScrollStart:v,handleScrollStop:x,revealOverflowedItems:u}};import{useCallback as It,useRef as xe,useState as ei}from"react";import{useCallback as Js,useMemo as od}from"react";var Qs=()=>{let e=od(()=>Us(),[]),t=Js(()=>e.remove(),[e]);return{positionDropIndicator:Js((r,n="end")=>(n==="end"?r.element.after(e):r.element.before(e),e),[e]),clearSpacer:t}};import{jsx as sd}from"react/jsx-runtime";var rd=':not([data-overflowed="true"])',nd=':not([aria-hidden="true"])',ti=({draggableRef:e,onDrop:t,orientation:o="horizontal",containerRef:r,itemQuery:n="*",selected:s,viewportRange:i})=>{let a=xe(),l=xe(null),c=xe(null),d=xe(""),p=xe(!1),u=xe(-1),m=xe([]),f=xe(!1),[g,h]=ei(!1),[b,T]=ei(),{clearSpacer:E,positionDropIndicator:y}=Qs(),v=xe(),x=`:is(${n}${rd}${nd},[data-overflow-indicator])`,w=R=>m.current.findIndex(L=>L.id===R.id),S=(R,L,C)=>{R.start+=L,R.mid+=L,R.end+=L,typeof C=="number"&&(R.currentIndex+=C)},O=xe();O.current=i;let H=It(()=>{E()},[E]),P=It((R,L,C)=>{let{current:N}=r,{current:$}=v;if(N&&$){m.current=rt(N,o,x,O.current);let{size:k}=$,K=u.current+k/2,{current:X}=m,G=nt(X,K,"fwd");G&&y(C&&R==="fwd"?X[X.length-1]:G,"start")}},[r,y,x,o]),D=It(R=>{let C=R.target.closest(n);C.ariaSelected&&Array.isArray(s)&&s.length>1&&console.log("its a selected element, and we have a multi select");let{current:N}=r;if(N&&C){let{SCROLL_SIZE:$,CLIENT_SIZE:k}=pe(o),{id:W}=C,{[$]:K,[k]:X}=N;p.current=K>X;let G=m.current=rt(N,o,x,i),Y=Ws(G,W);if(Y&&N){let z=w(Y);Vs(G,z),v.current=Y;let{current:B}=O;if(B!=null&&B.atEnd)for(let q=0;q<G.length;q++)S(G[q],Y.size);for(let q=z;q<G.length;q++)S(G[q],-Y.size,-1);let[Z,le]=Y.isLast?[G[G.length-1],"end"]:[G[z],"start"];c.current=Z,d.current=le;let Re=y(Z,le),{top:V,left:U,width:j}=Re.getBoundingClientRect(),J={top:Y.isLast?B!=null&&B.atEnd&&!B.atStart?V+Y.size-2:V-2:V-Y.size-2,left:U,width:j,height:2};T(sd(ho,{wrapperClassName:"dropIndicatorContainer",style:J,ref:l,element:Xs()}))}}},[n,s,r,o,x,i,y]),I=It((R,L)=>{let{current:C}=c,{current:N}=v;if(N&&e.current&&r.current){let $=o==="horizontal"?"left":"top";u.current=R;let{current:k}=m,W=nt(k,R,L);if(W&&W.index!==(C==null?void 0:C.index)){if(W.isOverflowIndicator)h(f.current=!0);else if(l.current){if(w(W)===k.length-1){let X=k[k.length-1],Y=y(X,"start").getBoundingClientRect();l.current.style[$]=`${Y.top}px`}else{let G=y(W,"start").getBoundingClientRect();l.current.style[$]=`${G.top}px`}h(f.current=!1)}c.current=W,a.current=L}}},[e,r,o,y]),M=It(()=>{E();let{current:R}=v,{current:L}=c,{current:C}=d,{current:N}=O;if(R&&N&&L){let{index:$}=R,k=C==="start",{index:W,currentIndex:K}=L;c.current=null,a.current=void 0,f.current?t($,-1):$<W?t($,k?K:K+1):t($,k?W:W+1),T(void 0)}h(!1)},[E,t]);return{beginDrag:D,drag:I,drop:M,dropIndicator:b,handleScrollStart:H,handleScrollStop:P,revealOverflowedItems:g}};import{useCallback as Ee,useLayoutEffect as id,useRef as me,useState as ad}from"react";import{useCallback as oi,useRef as bo}from"react";var ri=({containerRef:e,onScrollingStopped:t,orientation:o="vertical"})=>{let r=bo(null),n=bo(!1),s=bo(0),i=bo("fwd"),a=oi((c=!1)=>{console.log("[useAutoScroll] stopScrolling"),r.current!==null&&(clearTimeout(r.current),r.current=null),n.current=!1,t==null||t(i.current,s.current,c)},[t]),l=oi((c,d,p=30)=>{let{current:u}=e;if(u){let{SCROLL_POS:m,SCROLL_SIZE:f,CLIENT_SIZE:g}=pe(o),{[m]:h,[f]:b,[g]:T}=u,E=c==="fwd"?b-T-h:h,y=Math.min(E,p);c==="fwd"?(i.current="fwd",u[m]=s.current=h+y):(i.current="bwd",u[m]=s.current=h-y),y===E?a(!0):(n.current=!0,r.current=window.setTimeout(()=>{l(c,d,p)},100))}},[e,o,a]);return{isScrolling:n,startScrolling:l,stopScrolling:a}};import{jsx as fd}from"react/jsx-runtime";var ld={beginDrag:()=>{},drag:()=>{},draggableRef:{current:null},drop:()=>{},isDragging:!1,isScrolling:!1,handleScrollStart:()=>{},handleScrollStop:()=>{},revealOverflowedItems:!1},ni={start:0,end:1e3,contraStart:0,contraEnd:1e3},cd=()=>ld,ud=3,dd=(e,t)=>e.closest(t),pd=e=>e.dataset.index==="overflow"&&e.parentElement!==null&&e.parentElement.classList.contains("overflowed"),md=(e,t)=>{let o=`:is(${t}${fo},.vuuOverflowContainer-OverflowIndicator)`,n=Array.from(e.querySelectorAll(o)).pop();return[n,pd(n)]},si=({allowDragDrop:e,containerRef:t,draggableClassName:o,itemQuery:r="*",onDragStart:n,onDrop:s,onDropSettle:i,orientation:a,...l})=>{let c=me({start:0,end:0,contraStart:0,contraEnd:0}),[d,p]=ad({draggable:void 0,draggedItemIndex:-1,isDragging:!1}),u=me(null),m=me(),f=me(null),g=me(!1),h=me({x:0,y:0}),b=me({x:0,y:0}),T=me({x:0,y:0}),E=me(null),y=me(-1),v=me(-1),x=me(),{isDragSource:w,isDropTarget:S,register:O}=$s(l.id);l.id&&(w||S)&&O(l.id);let H=Ee(()=>{var j;let{current:V}=v,U=(j=t.current)==null?void 0:j.querySelector(`${r}[data-index="${V}"]`);U&&U.classList.remove("vuuDropTarget-settling"),v.current=-1,i==null||i(V),p(J=>({...J,draggable:void 0}))},[t,r,i]),P=Ee(V=>{if(t.current){let{POS:U,SCROLL_POS:j,SCROLL_SIZE:J,CLIENT_SIZE:q}=pe(a),{[j]:fe,[J]:lt,[q]:ke}=t.current,Ue=lt-ke,Xe=fe<Ue,ct=c.current.end,qe=fe>0&&V-h.current[U]<=c.current.start,Ye=Xe&&V-h.current[U]>=ct;return qe?"bwd":Ye?"fwd":""}},[t,a]),D=e===!0||e==="natural-movement"?js:e==="drop-indicator"?ti:cd,I=Ee((V,U,j)=>{var J;(J=x.current)==null||J.call(x,V,U,j)},[]),{isScrolling:M,startScrolling:R,stopScrolling:L}=ri({containerRef:t,onScrollingStopped:I,orientation:a}),C=Ee((V,U)=>{y.current=U,s==null||s(V,U),v.current=U},[s]),{beginDrag:N,drag:$,drop:k,handleScrollStart:W,handleScrollStop:K,...X}=D({...l,containerRef:t,draggableRef:u,isDragSource:w,isDropTarget:S,itemQuery:r,onDrop:C,orientation:a});x.current=K;let G=Ee(V=>{let{CLIENT_POS:U,CONTRA_CLIENT_POS:j,CONTRA_POS:J,POS:q}=pe(a),{clientX:fe,clientY:lt}=V,{[U]:ke,[j]:Ue}=V,Xe=b.current[q],ct=b.current[J],qe=Math.abs(Xe-ke);if((w?Math.abs(ct-Ue):0)-qe>5&&(c.current=ni),b.current.x=fe,b.current.y=lt,c.current===ni&&u.current){let ut=b.current.x-h.current.x,ze=b.current.y-h.current.y;u.current.style.top=`${ze}px`,u.current.style.left=`${ut}px`}else if(qe>0&&u.current){let ut=Xe<ke?"fwd":"bwd",ze=P(ke),Ao=b.current[q]-h.current[q];if(ze&&g.current&&!M.current?(W(),R(ze,1)):!ze&&M.current&&L(),!M.current){let $t=Math.round(Math.max(c.current.start,Math.min(c.current.end,Ao))),ve=a==="horizontal"?"left":"top";u.current.style[ve]=`${$t}px`,$($t,ut)}}},[$,u,P,W,w,M,a,R,L]),Y=Ee(()=>{document.removeEventListener("mousemove",G,!1),document.removeEventListener("mouseup",Y,!1),E.current=u.current,k(),p(V=>({...V,draggedItemIndex:-1,isDragging:!1})),m.current=void 0},[G,u,k]),z=Ee(V=>{let{clientX:U,clientY:j,target:J}=V,q=dd(J,r),{current:fe}=t;if(fe&&q){let{CONTRA:lt,CONTRA_END:ke,DIMENSION:Ue,END:Xe,SCROLL_SIZE:ct,CLIENT_SIZE:qe,START:Ye}=pe(a);m.current=q;let{[ct]:ut,[qe]:ze}=fe;g.current=ut>ze;let[Ao,$t]=md(fe,r),ve=fe.getBoundingClientRect(),Ft=q.getBoundingClientRect(),Oo=Ft[Ue],{[Ye]:Xa,[Xe]:qa}=Ao.getBoundingClientRect();h.current.x=U-Ft.left,h.current.y=j-Ft.top,c.current.start=ve[Ye],c.current.end=$t?Math.max(Xa,ve.right-Oo):g.current?ve[Ye]+ve[Ue]-Oo:qa-Oo,c.current.contraStart=ve[lt],c.current.contraEnd=ve[ke],N(V);let{dataset:{index:Ya="-1"}}=q;p({isDragging:!0,draggable:fd(ho,{element:_s(q),onTransitionEnd:H,ref:u,style:Ks(Ft,ve),wrapperClassName:o}),draggedItemIndex:parseInt(Ya)}),n==null||n(),document.addEventListener("mousemove",G,!1),document.addEventListener("mouseup",Y,!1)}},[N,t,G,Y,o,u,r,n,a,H]),B=Ee(V=>{let{CLIENT_POS:U,POS:j}=pe(a),{[U]:J}=V;Math.abs(J-T.current[j])>ud&&t.current&&(f.current&&(window.clearTimeout(f.current),f.current=null),document.removeEventListener("mousemove",B),document.removeEventListener("mouseup",Z,!1),z(V))},[t,N,a]),Z=Ee(()=>{f.current&&(window.clearTimeout(f.current),f.current=null),document.removeEventListener("mousemove",B,!1),document.removeEventListener("mouseup",Z,!1)},[B]),le=Ee(V=>{console.log("useDragDropNext onMouseDown");let{current:U}=t;if(U&&!V.defaultPrevented){let{clientX:j,clientY:J}=V;b.current.x=T.current.x=j,b.current.y=T.current.y=J,document.addEventListener("mousemove",B,!1),document.addEventListener("mouseup",Z,!1),V.persist(),f.current=window.setTimeout(()=>{document.removeEventListener("mousemove",B,!1),document.removeEventListener("mouseup",Z,!1),z(V.nativeEvent)},500)}},[t,z,B,Z]),{current:Re}=E;return id(()=>{if(Re&&t.current){let V=y.current,U=t.current.querySelector(`${r}[data-index="${V}"]`);U?(U.classList.add("vuuDropTarget-settling"),requestAnimationFrame(()=>{let{top:j,left:J}=U.getBoundingClientRect(),{top:q,left:fe}=Re.getBoundingClientRect();fe!==J||q!==j?(Re.classList.add("vuuDraggable-settling"),Re.style.top=`${j}px`,Re.style.left=`${J}px`):H()})):console.log(`dont have the dropped item (at ${V})`),E.current=null}},[t,r,Re,H]),{...X,...d,isScrolling:M,onMouseDown:e?le:void 0}};import{useCallback as ii,useLayoutEffect as gd,forwardRef as hd,useRef as xr}from"react";import{Input as bd,useControlled as ai}from"@salt-ds/core";import{jsx as li}from"react/jsx-runtime";var Er="vuuEditableLabel",yo=hd(function({className:t,defaultEditing:o,defaultValue:r,editing:n,onChange:s,onEnterEditMode:i,onExitEditMode:a,value:l,...c},d){let p=xr(null),u=xr(!1),[m,f]=ai({controlled:l,default:r!=null?r:"",name:"EditableLabel",state:"value"}),[g,h]=ai({controlled:n,default:o!=null?o:!1,name:"EditableLabel",state:"editing"}),b=ii(H=>{h(u.current=H)},[]),T=xr(m);gd(()=>{g&&p.current!==null&&(p.current.select(),p.current.focus())},[g,p]);let E=ii(()=>{b(!0),i&&i()},[i,b]),y=({cancelEdit:H=!1,allowDeactivation:P=!1}={})=>{b(!1);let D=T.current;D!==m&&(H?f(D):T.current=m),a&&a(D,m,P,H)},v=H=>{let{value:P}=H.target;f(P),s&&s(P)},x=()=>{E()},w=()=>{u.current&&y({allowDeactivation:!0})},S=H=>{g&&H.key==="Enter"?(H.stopPropagation(),y()):H.key==="ArrowRight"||H.key==="ArrowLeft"?H.stopPropagation():H.key==="Escape"&&y({cancelEdit:!0})},O=go(Er,t,{[`${Er}-editing`]:g});return li("div",{...c,className:O,onDoubleClick:x,"data-text":m,ref:d,children:g?li(bd,{inputProps:{className:`${Er}-input`},value:m,onBlur:w,onChange:v,onKeyDown:S,inputRef:p,style:{padding:0},textAlign:"left",variant:"secondary"}):m})});import{Button as kd}from"@salt-ds/core";import zd from"classnames";import Bd,{useMemo as $d,useRef as Fd}from"react";import{useCallback as ce,useRef as Nd}from"react";var ci=e=>typeof e=="object"&&e!==null&&"tabIndex"in e&&typeof e.tabIndex=="number",ui=e=>({label:"Close",location:"tab",action:"close-tab",options:e}),di=e=>({label:"Rename",location:"tab",action:"rename-tab",options:e});var yd=e=>{if(e){let t=parseInt(e.dataset.index||"");if(!isNaN(t))return t}return-1},pi=(e,t)=>{if(e){let o=e.querySelector(`[data-index]:has(${t})`);return yd(o)}return-1},Tr=e=>pi(e,'[aria-selected="true"]'),mi=e=>pi(e,".vuuEditableLabel-editing");import{isValidNumber as vr,MEASURES as xd}from"@vuu-ui/vuu-utils";import{useCallback as wr,useMemo as Ed,useRef as fi}from"react";var gi=(e,t,o="horizontal")=>{let r=fi(!1),n=wr(()=>{r.current=!0},[]),s=wr(()=>{r.current=!1},[]),i=wr(()=>{var l,c;(l=e.current)==null||l.style.setProperty("--tab-thumb-transition","none"),(c=e.current)==null||c.removeEventListener("transitionend",i)},[e]),a=fi(-1);return Ed(()=>{var d,p;let l=0,c=0;if(a.current!==-1){let u=(d=e.current)==null?void 0:d.querySelector(".vuuTab-selected"),m=(p=e.current)==null?void 0:p.querySelector(`[data-index="${t}"] .vuuTab`),{positionProp:f,sizeProp:g}=xd[o];if(u&&m&&!r.current){let{[f]:h,[g]:b}=u.getBoundingClientRect(),{[f]:T}=m.getBoundingClientRect();if(vr(h)&&vr(T)&&vr(b)){console.log({orientation:o,positionProp:f,oldPosition:h,newPosition:T}),l=h-T,c=b;let y=Math.abs(l/(o==="horizontal"?1100:700));requestAnimationFrame(()=>{var v,x,w,S;(v=e.current)==null||v.style.setProperty("--tab-thumb-offset","0px"),(x=e.current)==null||x.style.setProperty("--tab-thumb-size","100%"),(w=e.current)==null||w.style.setProperty("--tab-thumb-transition",`all ${y}s ease`),(S=e.current)==null||S.addEventListener("transitionend",i)})}}}return a.current=t,r.current?{containerStyle:{"--tab-thumb-offset":"0px","--tab-thumb-size":"100%"},resumeAnimation:s,suspendAnimation:n}:{containerStyle:{"--tab-thumb-offset":`${l}px`,"--tab-thumb-size":c?`${c}px`:void 0},resumeAnimation:s,suspendAnimation:n}},[t,e,o,i,s,n])};import{useControlled as Td}from"@salt-ds/core";import{getFocusableElement as vd}from"@vuu-ui/vuu-utils";import{useCallback as Te,useRef as Dr,useState as hi}from"react";import{ArrowDown as Ei,ArrowUp as wd,ArrowLeft as Dd,ArrowRight as Sd,Home as bi,End as yi}from"@vuu-ui/vuu-utils";var Ti={horizontal:{[bi]:"start",[yi]:"end",[Dd]:"bwd",[Sd]:"fwd"},vertical:{[bi]:"start",[yi]:"end",[wd]:"bwd",[Ei]:"fwd"}},Rd=(e,t="horizontal")=>Ti[t][e]!==void 0,Md=e=>e===Ei;function xi(e,t,o){return t==="start"?0:t==="end"?e-1:t==="bwd"?o>0?o-1:o:o===null?0:o===e-1?o:o+1}var Pd=e=>e!==null&&!e.classList.contains("wrapped"),xo=(e,t)=>e?e.querySelector(`[data-index="${t}"]`):null,vi=({containerRef:e,defaultHighlightedIdx:t=-1,highlightedIdx:o,keyBoardActivation:r,orientation:n,selectedIndex:s=0})=>{let i=r==="manual",a=Dr(!1),l=Dr(-1),[c,d]=hi(!1),[,p]=hi({}),[u,m]=Td({controlled:o,default:t,name:"UseKeyboardNavigation"}),f=Te(D=>{m(l.current=D)},[m]),g=Dr(!1),h=Te((D,I=!1,M,R=70)=>{f(D),M===!0&&!g.current&&(g.current=!0);let L=()=>{let C=xo(e.current,D);if(C){let N=vd(C);N==null||N.focus()}};I?L():setTimeout(L,R)},[e,f]),b=D=>{if(l.current===-1&&D.target.tabIndex!==-1){let I=mi(e.current);I!==-1?requestAnimationFrame(()=>{f(I)}):setTimeout(()=>{l.current===-1&&s!==null&&f(s)},200)}},T=Te(()=>{var D,I;return(I=(D=e.current)==null?void 0:D.querySelectorAll("[data-index]").length)!=null?I:0},[e]),E=Te((D="fwd",I)=>{let M=T(),L=xi(M,D,typeof I=="number"?I:M),C=D==="start"?"fwd":D==="end"?"bwd":D;for(;(C==="fwd"&&L<M||C==="bwd"&&L>0)&&!Pd(xo(e.current,L));){let N=xi(M,C,L);if(N===L)break;L=N}return L},[e,T]),y=Te((D,I=!1)=>{let M=Ti[n][D.key],R=E(M,u);R!==u?i&&h(R,!0):I&&p({})},[u,i,E,h,n]),v=Te(()=>{let D=xo(e.current,u);return D?D.querySelector(".vuuPopupMenu")!=null:!1},[e,u]),x=Te(()=>{let D=xo(e.current,u),I=D==null?void 0:D.querySelector(".vuuPopupMenu");if(I){let M=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!0});I.dispatchEvent(M)}return!1},[e,u]),w=Te(D=>{T()>0&&Rd(D.key,n)?(D.preventDefault(),g.current?y(D):(g.current=!0,y(D,!0))):Md(D.key)&&v()&&x()},[x,T,v,y,n]),S=(D,I)=>{f(I)},O=Te(()=>{c||(d(!0),a.current?a.current=!1:g.current=!0)},[c]),H=Te(()=>{c||(a.current=!0),g.current=!1},[c]);return{containerProps:{onBlur:D=>{let I=D.target.closest(".vuuTabstrip"),M=D.relatedTarget;I&&!(I!=null&&I.contains(M))&&(f(-1),d(!1))},onMouseDownCapture:H,onFocus:O,onMouseLeave:()=>{g.current=!0,f(-1),a.current=!1}},focusVisible:g.current?u:-1,focusIsWithinComponent:c,highlightedIdx:u,focusTab:h,onClick:S,onFocus:b,onKeyDown:w,setHighlightedIdx:f}};import{useControlled as Ld}from"@salt-ds/core";import{useCallback as Eo}from"react";var Id=["Enter"," "],Cd=e=>e&&e.matches('[class*="vuuTab "]'),wi=({defaultSelected:e,highlightedIdx:t,onSelectionChange:o,selected:r})=>{let[n,s,i]=Ld({controlled:r,default:e!=null?e:0,name:"Tabstrip",state:"value"}),a=Eo(p=>Id.includes(p.key),[]),l=Eo(p=>{s(p),o==null||o(p)},[o,s]),c=Eo(p=>{let u=p.target;a(p)&&t!==n&&Cd(u)&&(p.stopPropagation(),p.preventDefault(),l(t))},[a,t,n,l]),d=Eo((p,u)=>{u!==n&&l(u)},[l,n]);return{activateTab:l,isControlled:i,onClick:d,onKeyDown:c,selected:n}};var Hd=new Set(["Enter"," "]),Ad=e=>Hd.has(e),Od=(e,t)=>e?e.querySelector(`[data-index="${t}"]`):null,Di=({activeTabIndex:e,allowDragDrop:t,animateSelectionThumb:o,containerRef:r,onActiveChange:n,onAddTab:s,onCloseTab:i,onExitEditMode:a,onMoveTab:l,orientation:c,keyBoardActivation:d})=>{let p=Nd(e),{focusTab:u,highlightedIdx:m,onClick:f,onKeyDown:g,setHighlightedIdx:h,...b}=vi({containerRef:r,keyBoardActivation:d,orientation:c,selectedIndex:p.current}),{activateTab:T,onClick:E,onKeyDown:y,selected:v}=wi({highlightedIdx:m,onSelectionChange:n,selected:e});p.current=v;let{containerStyle:x,resumeAnimation:w,suspendAnimation:S}=gi(r,o?v:-1,c),O=ce((z,B)=>{let{current:Z}=p;console.log(`useTabstrip handleDrop ${z} - ${B} ${Z}`),l==null||l(z,B);let le=-1;B!==-1&&(Z===z?le=B:z>Z&&B<=Z?le=Z+1:z<Z&&B>=Z&&(le=Z-1),le!==-1&&(S(),T(le),requestAnimationFrame(w)),u(B,!1,!1,350))},[u,l,w,T,S]),{onMouseDown:H,...P}=si({allowDragDrop:t,containerRef:r,draggableClassName:`tabstrip-${c}`,onDrop:O,orientation:"horizontal",itemQuery:".vuuOverflowContainer-item"}),D=ce((z,B,Z,le)=>{console.log(`handleExitEditMode ${z} ${B} ${Z} ${le}`),a==null||a(z,B,Z,le),Z||u(le,!1,!0)},[u,a]),I=ce((z,B)=>{f(z,B),E(z,B)},[f,E]),M=ce((z=m)=>{let B=Od(r.current,z);if(B)return B.querySelector(".vuuEditableLabel")},[r,m]),R=ce((z=m)=>{let B=M(z);return B?B.classList.contains("vuuEditableLabel-editing"):!1},[M,m]),L=ce((z=m)=>{let B=M(z);if(B){let Z=new MouseEvent("dblclick",{view:window,bubbles:!0,cancelable:!0});B.dispatchEvent(Z)}},[M,m]),C=ce(z=>{g(z),z.defaultPrevented||y(z),!z.defaultPrevented&&Ad(z.key)&&L()},[L,g,y]),N=ce(z=>{let B=Tr(r.current),Z=B>z?B-1:B===z?0:B;return S(),i==null||i(z,Z),setTimeout(()=>{w()},200),!0},[r,i,w,S]),$=ce(z=>(L(z),!0),[L]),k=ce(z=>{if(ci(z.options))switch(z.menuId){case"close-tab":return N(z.options.tabIndex);case"rename-tab":return $(z.options.tabIndex);default:console.log(`tab menu action ${z.menuId}`)}return!1},[N,$]),W=ce(()=>{R()?h(m):u(m)},[m,u,h,R]),K=ce(z=>{let B=parseInt(z.index);isNaN(B)||T(B)},[T]),X={onFocus:b.onFocus,onKeyDown:C},G=ce(()=>{s==null||s(),requestAnimationFrame(()=>{let z=Tr(r.current);z!==-1&&u(z)})},[r,u,s]),Y={onClick:I,onKeyDown:C,onExitEditMode:D,onMenuAction:k,onMenuClose:W,onMouseDown:H};return{activeTabIndex:v,containerStyle:x,focusVisible:b.focusVisible,containerProps:{...b.containerProps,onSwitchWrappedItemIntoView:K},navigationProps:X,onClickAddTab:G,tabProps:Y,...P}};import{Fragment as Vd,jsx as Wd,jsxs as Kd}from"react/jsx-runtime";import{createElement as _d}from"react";var Sr="vuuTabstrip",Si=({activeTabIndex:e,allowAddTab:t,allowCloseTab:o,allowDragDrop:r=!1,allowRenameTab:n=!1,animateSelectionThumb:s=!1,children:i,className:a,id:l,keyBoardActivation:c="manual",location:d,onActiveChange:p,onAddTab:u,onCloseTab:m,onExitEditMode:f,onMoveTab:g,orientation:h="horizontal",showTabMenuButton:b,style:T,...E})=>{let y=Fd(null),{activeTabIndex:v,focusVisible:x,containerStyle:w,draggedItemIndex:S,onClickAddTab:O,tabProps:H,...P}=Di({activeTabIndex:e,allowDragDrop:r,animateSelectionThumb:s,containerRef:y,keyBoardActivation:c,onActiveChange:p,onAddTab:u,onCloseTab:m,onExitEditMode:f,onMoveTab:g,orientation:h}),D=Vt(l),I=zd(Sr,`${Sr}-${h}`,a),M=T||w?{...T,...w}:void 0,R=$d(()=>je(i).map((L,C)=>{let{id:N=`${D}-tab-${C}`,closeable:$=o,editable:k=n,showMenuButton:W=b}=L.props,K=C===v;return Bd.cloneElement(L,{...H,...P.navigationProps,closeable:$,"data-overflow-priority":K?"1":void 0,dragging:S===C,editable:k,focusVisible:x===C,id:N,index:C,key:C,location:d,selected:K,showMenuButton:W,tabIndex:K?0:-1})}).concat(t?_d(kd,{...P.navigationProps,"aria-label":"Create Tab",className:`${Sr}-addTabButton`,"data-icon":"add","data-overflow-priority":"1",key:"addButton",onClick:O,variant:"secondary",tabIndex:-1}):[]),[v,t,o,n,i,x,D,d,O,b,H,S,P.navigationProps]);return Kd(Vd,{children:[Wd(Ri,{...E,...P.containerProps,className:I,height:28,id:D,orientation:h,overflowIcon:"more-horiz",ref:y,style:M,children:R}),P.draggable]})};import{useForkRef as Yd}from"@salt-ds/core";import jd from"classnames";import{forwardRef as Jd,useCallback as Qd,useRef as Pi}from"react";import{PopupMenu as Gd}from"@vuu-ui/vuu-popups";import{useMemo as Zd}from"react";import Ud from"classnames";import{jsx as qd}from"react/jsx-runtime";var Xd="vuuTabMenu",Mi=({allowClose:e,allowRename:t,location:o,onMenuAction:r,onMenuClose:n,index:s})=>{let[i,a]=Zd(()=>[(l,c)=>{let d=[];return t&&d.push(di(c)),e&&d.push(ui(c)),d},{tabIndex:s}],[e,t,s]);return qd(Gd,{className:Xd,menuBuilder:i,menuActionHandler:r,menuLocation:Ud("tab",o),menuOptions:a,onMenuClose:n,tabIndex:-1})};import{jsx as To,jsxs as ep}from"react/jsx-runtime";var Ve="vuuTab",Li=()=>{},Ii=Jd(function({ariaControls:t,children:o,className:r,closeable:n=!1,dragging:s,editable:i=!1,editing:a,focusVisible:l,index:c=-1,label:d,location:p,onClick:u,onClose:m,onEnterEditMode:f=Li,onExitEditMode:g=Li,onFocus:h,onKeyUp:b,onMenuAction:T,onMenuClose:E,orientation:y,selected:v,showMenuButton:x=n||i,tabIndex:w,...S},O){if(x&&typeof T!="function")throw Error("Tab onMenuAction must be provided if showMenuButton is set");let H=Pi(null),P=Pi(null),D=Yd(O,H),I=Qd(N=>{a||(N.preventDefault(),u==null||u(N,c))},[a,c,u]),M=(N="",$="",k=!0)=>g(N,$,k,c),R=N=>{switch(N.key){case"Backspace":case"Delete":n&&(N.stopPropagation(),m&&m(c));break;default:b&&b(N,c)}},L=()=>i?To(yo,{editing:a,defaultValue:d,onEnterEditMode:f,onExitEditMode:M,ref:P},d):d,C=N=>{if(P.current){let k=P.current.querySelector(".vuuEditableLabel-input");k==null||k.focus()}h==null||h(N)};return ep("div",{...S,"aria-controls":t,"aria-selected":v,className:jd(Ve,{[`${Ve}-closeable`]:n,"vuuDraggable-dragAway":s,[`${Ve}-editing`]:a,[`${Ve}-selected`]:v||void 0,[`${Ve}-vertical`]:y==="vertical",vuuFocusVisible:l}),onClick:I,onFocus:C,onKeyUp:R,ref:D,role:"tab",tabIndex:w,children:[To("div",{className:`${Ve}-main`,children:To("span",{className:`${Ve}-text`,"data-text":i?void 0:d,children:o!=null?o:L()})}),x?To(Mi,{allowClose:n,allowRename:i,location:p,onMenuAction:T,onMenuClose:E,index:c}):null]})});import{useForkRef as Np,useIdMemo as Hp}from"@salt-ds/core";import Ar from"classnames";import{forwardRef as Ap,useRef as Op}from"react";function tp(e){var t;if(e){let o=e.dataset.idx;if(o)return parseInt(o,10);if(o=(t=e.ariaPosInSet)!=null?t:"-1")return parseInt(o,10)-1}}var Rr=e=>e.closest("[data-idx],[aria-posinset]");var Ci=e=>tp(Rr(e));import{useCallback as Mr,useMemo as op}from"react";var rp=new Set(["/","-","."]),np=e=>rp.has(e),Ni=(e,t)=>t.startsWith(e)&&np(t[e.length]),Hi=(e,t="root",{collapsibleHeaders:o=void 0,defaultExpanded:r=!1,revealSelected:n=!1}={})=>{let s=(u,m,f)=>{if(u.childNodes)return u.childNodes.length;if(u.header){let g=f+1,h=0;for(;g<m.length&&!m[g].header;)h++,g++;return h}else return 0},i=Mr(u=>Array.isArray(n)?n.some(m=>Ni(u,m)):r,[r,n]),a=Mr((u,m,f=1,g="",h=[],b=[])=>{let T=0;return u.forEach((E,y,v)=>{var M;let x=E.header&&o,w=E.childNodes&&o===!1,S=!E.childNodes||E.childNodes.length===0,O=w||S&&!x,H=g?`${g}.${y}`:`${y}`,P=(M=E.id)!=null?M:`${t}-${H}`,D=O?void 0:i(P),I={...E,childNodes:void 0,id:P,count:!w&&D===void 0?0:s(E,v,y),expanded:D,index:m.index,level:f};if(h.push(I),b.push(u[y]),T+=1,m.index+=1,E.childNodes){let[R,L]=a(E.childNodes,m,f+1,H,[],b);I.childNodes=L,(D===!0||w)&&(T+=R)}}),[T,h,b]},[o,t,i]),[l,c,d]=op(()=>a(e,{index:0}),[a,e]),p=Mr((u,m=c)=>{let f=m.find(g=>{var h;return g.id===u||((h=g==null?void 0:g.childNodes)==null?void 0:h.length)&&Ni(g.id,u)});if((f==null?void 0:f.id)===u)return d[f.index];if(f)return p(u,f.childNodes)},[d,c]);return[l,c,p]};import{useCallback as Ct,useRef as sp}from"react";import{useControlled as ip}from"@salt-ds/core";var Ai="single",ap="checkbox",lp="multi",cp="extended",up=["Enter"," "],Oi={},dp=e=>e.expanded!==void 0,ki=e=>e&&e!=="none",zi=({defaultSelected:e,highlightedIdx:t,treeNodes:o,onChange:r,selected:n,selection:s=Ai,selectionKeys:i=up})=>{let a=s===Ai,l=s===lp||s.startsWith(ap),c=s===cp,d=sp(-1),p=Ct(y=>i.includes(y.key),[i]),[u,m]=ip({controlled:n,default:e!=null?e:[],name:"selected"}),f=Ct((y,v,x,w,S=!1)=>{let{current:O}=d,H=u==null?void 0:u.includes(x),D=a||c&&!S&&(!w||O===-1),I=l||c&&S&&!w,M=[];if(D&&H)M=[];else if(D)M=[x];else if(I&&H)M=u.filter(R=>R!==x);else if(I)M=u.concat(x);else if(c){let[R,L]=v>O?[O,v]:[v,O];M=u.slice();for(let C=R;C<=L;C++){let{id:N}=o[C];u.includes(N)||M.push(N)}}m(M),r&&r(y,M)},[c,o,l,r,u,m,a]),g=Ct(y=>{if(~t&&p(y)){y.preventDefault();let v=o[t];f(y,t,v.id,!1,y.ctrlKey||y.metaKey),c&&(d.current=t)}},[c,t,o,p,f]),h=Ct((y,v)=>{if(c&&y.shiftKey){let x=o[v];f(y,v,x.id,!0)}},[c,o,f]),b=s==="none"?Oi:{onKeyDown:g,onKeyboardNavigation:h},T=Ct(y=>{if(t!==-1){let v=o[t];dp(v)||(y.preventDefault(),y.stopPropagation(),f(y,t,v.id,y.shiftKey,y.ctrlKey||y.metaKey),c&&(d.current=t))}},[c,t,o,f]);return{listHandlers:b,listItemHandlers:s==="none"?Oi:{onClick:T},selected:u,setSelected:m}};import{useCallback as Pr,useEffect as Wi,useLayoutEffect as fp,useRef as vo}from"react";import{useCallback as pp,useEffect as Bi,useRef as mp}from"react";var Ke=new Map,Fi=(e,t,o)=>{switch(o){case"height":return t.height;case"clientHeight":return e.clientHeight;case"clientWidth":return e.clientWidth;case"contentHeight":return t.contentHeight;case"contentWidth":return t.contentWidth;case"scrollHeight":return Math.ceil(e.scrollHeight);case"scrollWidth":return Math.ceil(e.scrollWidth);case"width":return t.width;default:return 0}};var $i=new ResizeObserver(e=>{for(let t of e){let{target:o,borderBoxSize:r,contentBoxSize:n}=t,s=Ke.get(o);if(s){let[{blockSize:i,inlineSize:a}]=r,[{blockSize:l,inlineSize:c}]=n,{onResize:d,measurements:p}=s,u=!1;for(let[m,f]of Object.entries(p)){let g=Fi(o,{height:i,width:a,contentHeight:l,contentWidth:c},m);g!==f&&(u=!0,p[m]=g)}u&&d&&d(p)}}});function _i(e,t,o,r=!1){let n=mp(t),s=pp(i=>{let{width:a,height:l}=i.getBoundingClientRect(),{clientWidth:c,clientHeight:d}=i;return n.current.reduce((p,u)=>(p[u]=Fi(i,{width:a,height:l,contentHeight:d,contentWidth:c},u),p),{})},[]);Bi(()=>{let i=e.current;async function a(){Ke.set(i,{measurements:{}}),await document.fonts.ready;let l=Ke.get(i);if(l){let c=s(i);l.measurements=c,$i.observe(i),r&&o(c)}else console.log("%cuseResizeObserver an target expected to be under observation wa snot found. This warrants investigation","font-weight:bold; color:red;")}if(i){if(Ke.has(i))throw Error("useResizeObserver attemping to observe same element twice");a()}return()=>{i&&Ke.has(i)&&($i.unobserve(i),Ke.delete(i))}},[s,e]),Bi(()=>{let i=e.current,a=Ke.get(i);if(a){if(n.current!==t){n.current=t;let l=s(i);a.measurements=l}a.onResize=o}},[t,s,e,o])}var gp=["height","scrollHeight"],Vi=(e,t,o=!1)=>{let r=vo(0),n=vo(!1),s=vo(0),i=vo(0),a=Pr(d=>{let p=d.ariaExpanded?d.firstChild:d,u=o?30:0,m=p.offsetTop,f=p.offsetHeight,g=r.current+u,h=g+s.current-u;(m+f>h||m<g)&&(r.current=m+f>h?r.current+(m+f)-h:m-u,n.current=!0,e.current&&(e.current.scrollTop=r.current),setTimeout(()=>{n.current=!1}))},[e,o]),l=Pr(d=>{r.current=d.target.scrollTop},[]);Wi(()=>{let{current:d}=e;return d&&d.addEventListener("scroll",l),()=>{d&&d.removeEventListener("scroll",l)}},[e,l]),fp(()=>{if(t!==-1&&i.current>s.current&&e.current){let d=e.current.querySelector(`
|
|
18
|
+
[data-idx='${t}'],
|
|
19
|
+
[aria-posinset='${t+1}']
|
|
20
|
+
`);d===null?console.log("[useViewportTracking], is this virtualised ? we're going to have to know rowHeight"):a(d)}},[t,e,a]),Wi(()=>{},[o]);let c=Pr(({height:d,scrollHeight:p})=>{s.current=d,i.current=p},[]);return _i(e,gp,c,!0),n};import{useCallback as ia,useRef as Ip}from"react";import{useCallback as Nt,useMemo as Ji,useRef as Qi}from"react";var Ki=({id:e})=>{let t=e.lastIndexOf("-");if(t!==-1){let r=e.slice(t+1).split(".");return r.length===1?null:(r.pop(),`${e.slice(0,t)}-${r.join(".")}`)}else if((t=e.lastIndexOf("/"))!==-1)return e.slice(0,t)},Gi=e=>e.childNodes!==void 0;var Lr=e=>e.header===!0,hp=new Set([".","/"]),Zi=(e,t)=>t.startsWith(e.id)?hp.has(t.charAt(e.id.length)):!1,Ge=(e,t)=>{for(let o of e){if(o.id===t)return o;if(Zi(o,t))return Ge(o.childNodes,t)}},wo=(e,t)=>{let o=typeof t=="string"?t:t.id;for(let r=0;r<e.length;r++)if(e[r].id===o)return r},Do=(e,t,o)=>{let r;return e.map(s=>s.id===t?{...s,...o}:Zi(s,t)?(r=Do(s.childNodes,t,o),{...s,childNodes:r}):s)};import{useControlled as wp}from"@salt-ds/core";function bp(e,...t){let o=new Set(e);for(let r of t)for(let n of r)o.add(n);return o}var Ir="ArrowUp",Ui="ArrowDown",st="ArrowLeft";var Xi="ArrowRight",So="Enter";var yp="Delete",xp=new Set([So,yp]),Ep=new Set(["Tab"]),Tp=new Set(["ArrowRight","ArrowLeft"]),qi=new Set(["Home","End","ArrowDown","ArrowUp"]),Yi=new Set(["Home","End","ArrowRight","ArrowLeft"]),vp=new Set(["F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12"]),ew=bp(xp,Yi,qi,Tp,vp,Ep);var ji=({key:e},t="vertical")=>(t==="vertical"?qi:Yi).has(e);function ea(e,t,o){return t===Ir||t===st?o>0?o-1:o:o===null?0:o===e-1?o:o+1}var Dp=e=>!e.header&&!e.childNodes,Sp=e=>Dp(e)||e.expanded!==void 0,ta=({defaultHighlightedIdx:e=-1,highlightedIdx:t,treeNodes:o,onHighlight:r,onKeyboardNavigation:n,selected:s=[]})=>{let{bwd:i,fwd:a}=Ji(()=>({bwd:Ir,fwd:Ui}),[]),[l,c,d]=wp({controlled:t,default:e,name:"highlightedIdx"}),p=Nt(y=>{r==null||r(y),c(y)},[r,c]),u=Nt((y=a,v=y===a?-1:o.length)=>{let x=ea(o.length,y,v);for(;x!==-1&&(y===a&&x<o.length||y===i&&x>0)&&!Sp(o[x]);)x=ea(o.length,y,x);return x},[i,a,o]),m=Qi(!0),f=Qi(!1),g=y=>f.current=y,h=Nt(()=>{if(f.current)f.current=!1;else if(s.length>0){let y=Ge(o,s[0]);if(y){let v=wo(o,y);p(v)}}else p(u())},[o,u,s,p]),b=Nt(y=>{let v=u(y.key,l);v!==l&&(p(v),n==null||n(y,v))},[l,u,n,p]),T=Nt(y=>{o.length>0&&ji(y,"vertical")&&(y.preventDefault(),y.stopPropagation(),m.current=!0,b(y))},[o,b]),E=Ji(()=>({onBlur:()=>{p(-1)},onFocus:h,onKeyDown:T,onMouseDownCapture:()=>{m.current=!1,g(!0)},onMouseMove:()=>{m.current&&(m.current=!1)},onMouseLeave:()=>{m.current=!0,g(!1),p(-1)}}),[h,T,p]);return{focusVisible:m.current?l:-1,controlledHighlighting:d,highlightedIdx:l,hiliteItemAtIndex:p,keyBoardNavigation:m,listProps:E,setIgnoreFocus:g}};import{useRef as Cr,useState as Rp}from"react";var Ro=(e,t=[],o={value:0})=>{let r=!1;for(let n of e)r&&!Lr(n)||(t[o.value]=n,o.value+=1,r=!1,Lr(n)&&n.expanded===!1?r=!0:Gi(n)&&Nr(n)&&Ro(n.childNodes,t,o));return t},oa=e=>{let t=Cr(e),o=Cr(e),r=Cr(Ro(e)),[,n]=Rp({});e!==t.current&&(t.current=e,o.current=e,r.current=Ro(e));let s=i=>{o.current=i,r.current=Ro(i),n({})};return{data:o.current,indexPositions:r.current,setData:s}};import{useCallback as Ht,useRef as ra}from"react";var Mp={},Pp=e=>e&&e.hasAttribute("aria-expanded"),na=({collapsibleHeaders:e,highlightedIdx:t,treeNodes:o,setVisibleData:r,source:n})=>{let s=ra(n),i=ra(s.current),a=Ht(f=>{r(i.current=f)},[r]),l=Ht((f,{id:g})=>Do(f,g,{expanded:!0}),[]),c=Ht((f,{id:g})=>Do(f,g,{expanded:!1}),[]),d=Ht(f=>{if(f.key===Xi||f.key===So){let g=o[t];g&&g.expanded===!1&&(f.preventDefault(),a(l(i.current,g)))}if(f.key===st||f.key===So){let g=o[t];g&&g.expanded&&(f.preventDefault(),a(c(i.current,g)))}},[c,l,t,o,a]),p=e?{onKeyDown:d}:Mp,m={onClick:Ht(f=>{let g=Rr(f.target);if(Pp(g)){f.stopPropagation(),f.preventDefault();let h=Ge(n,g.id);(h==null?void 0:h.expanded)===!1?a(l(n,h)):(h==null?void 0:h.expanded)===!0&&a(c(n,h))}},[c,l,a,n])};return{listHandlers:p,listItemHandlers:m}};import{useCallback as Lp}from"react";var sa=({highlightedIdx:e,hiliteItemAtIndex:t,indexPositions:o,source:r})=>({listHandlers:{onKeyDown:Lp(i=>{if(i.key===st){let a=o[e],l=Ki(a);if(l){i.preventDefault();let c=Ge(r,l);if(c){let d=wo(o,c);d!==void 0&&t(d)}}}},[e,t,o,r])}});var Cp=[],aa=({defaultSelected:e,sourceWithIds:t,onChange:o,onHighlight:r,selected:n,selection:s})=>{let i=Ip(Cp),a=oa(t),l=(E,y)=>{var v,x;(x=(v=u.listHandlers).onKeyboardNavigation)==null||x.call(v,E,y)},{highlightedIdx:c,...d}=ta({treeNodes:a.indexPositions,onHighlight:r,onKeyboardNavigation:l,selected:i.current}),p=na({collapsibleHeaders:!0,highlightedIdx:c,treeNodes:a.indexPositions,setVisibleData:a.setData,source:a.data}),u=zi({defaultSelected:e,highlightedIdx:c,treeNodes:a.indexPositions,onChange:o,selected:n,selection:s}),m=sa({source:a.data,highlightedIdx:c,hiliteItemAtIndex:d.hiliteItemAtIndex,indexPositions:a.indexPositions}),f=ia(E=>{var y,v,x;(y=p.listItemHandlers)==null||y.onClick(E),E.defaultPrevented||(x=(v=u.listItemHandlers)==null?void 0:v.onClick)==null||x.call(v,E)},[p,u]),g=ia(E=>{var y,v,x,w,S,O,H,P;(v=(y=d.listProps).onKeyDown)==null||v.call(y,E),E.defaultPrevented||(w=(x=u.listHandlers).onKeyDown)==null||w.call(x,E),E.defaultPrevented||(O=(S=p.listHandlers).onKeyDown)==null||O.call(S,E),E.defaultPrevented||(P=(H=m.listHandlers).onKeyDown)==null||P.call(H,E)},[p.listHandlers,d.listProps,u.listHandlers,m.listHandlers]),h=()=>{var E;return c===void 0||c===-1||(E=a.indexPositions[c])==null?void 0:E.id};i.current=u.selected;let b={"aria-activedescendant":h(),onBlur:d.listProps.onBlur,onFocus:d.listProps.onFocus,onKeyDown:g,onMouseDownCapture:d.listProps.onMouseDownCapture,onMouseLeave:d.listProps.onMouseLeave,onMouseMove:d.listProps.onMouseMove},T={onClick:f};return{focusVisible:d.focusVisible,highlightedIdx:c,hiliteItemAtIndex:d.hiliteItemAtIndex,listProps:b,listItemHandlers:T,selected:u.selected,visibleData:a.data}};import{jsx as Oe,jsxs as Hr}from"react/jsx-runtime";import{createElement as zp}from"react";var Ae="vuuTree",Nr=e=>e.expanded===!0,la=({children:e,idx:t,...o})=>Oe("li",{...o,children:e}),ca=Ap(function({allowDragDrop:t,className:o,defaultSelected:r,groupSelection:n="none",id:s,onHighlight:i,onSelectionChange:a,revealSelected:l,selected:c,selection:d="single",source:p,...u},m){var L;let f=Hp(s),g=Op(null),[,h,b]=Hi(p,f,{revealSelected:l?(L=c!=null?c:r)!=null?L:!1:void 0}),T=(C,N)=>{if(a){let $=N.map(k=>b(k)).filter(k=>k!==void 0);a($)}},{focusVisible:E,highlightedIdx:y,hiliteItemAtIndex:v,listProps:x,listItemHandlers:w,selected:S,visibleData:O}=aa({defaultSelected:r,groupSelection:n,onChange:T,onHighlight:i,selected:c,selection:d,sourceWithIds:h});Vi(g,y);let P={...{onMouseEnter:C=>{let N=C.target,$=Ci(N);v($)}},...w,role:"treeitem"},D=ki(n);function I(C,N,$){C.push(Hr(la,{...P,...kp(N,$,y,S,E),children:[N.icon?Oe("span",{className:`${Ae}Node-icon`,"data-icon":N.icon}):null,Oe("span",{children:N.label})]})),$.value+=1}function M(C,N,$,k,W){let{value:K}=$;$.value+=1,C.push(zp(la,{...w,"aria-expanded":N.expanded,"aria-level":N.level,"aria-selected":S.includes(k)||void 0,className:Ar(`${Ae}Node`,{focusVisible:E===K,[`${Ae}Node-toggle`]:!D}),"data-idx":K,"data-highlighted":K===y||void 0,"data-selectable":!0,id:k,key:`header-${K}`},D?Hr("div",{className:`${Ae}Node-label`,children:[Oe("span",{className:`${Ae}Node-toggle`}),W]}):Hr("div",{className:`${Ae}Node-label`,children:[N.icon?Oe("span",{className:`${Ae}Node-icon`,"data-icon":N.icon}):null,Oe("span",{children:W})]}),Oe("ul",{role:"group",children:Nr(N)?R(N.childNodes,$):""})))}function R(C,N={value:0}){if((C==null?void 0:C.length)>0){let $=[];for(let k of C)k.childNodes?M($,k,N,k.id,k.label):I($,k,N);return $}}return Oe("ul",{...u,...x,className:Ar(Ae,o),id:`Tree-${f}`,ref:Np(g,m),role:"tree",tabIndex:0,children:R(O)})}),kp=(e,t,o,r,n,s)=>({id:e.id,key:e.id,"aria-level":e.level,"aria-selected":r.includes(e.id)||void 0,"data-idx":t.value,"data-highlighted":t.value===o||void 0,className:Ar("vuuTreeNode",s,{focusVisible:n===t.value})});ca.displayName="Tree";var Or=ca;import{Button as jp}from"@salt-ds/core";import{default as Jp,default as Qp}from"classnames";import Ea,{useRef as em,useState as Ta}from"react";import{useCallback as At,useState as Bp}from"react";var Mo=(e,t,o,r)=>{var h;let{loadSessionState:n,purgeSessionState:s,purgeState:i,saveSessionState:a}=ot(),[l,c]=Bp((h=n(e,"contributions"))!=null?h:[]),d=ye(),p=At((b,T)=>{let E=l.concat([{location:b,content:T}]);a(e,"contributions",E),c(E)},[l,e,a]),u=At(()=>{s(e,"contributions"),c([])},[e,s]),m=At(()=>{let b=n(e,"data-source");b&&b.unsubscribe(),s(e),i(e),d({type:"remove",path:o})},[d,e,n,s,i,o]),f=At(async(b,T,E)=>{var v;b.stopPropagation();let y=(v=t.current)==null?void 0:v.getBoundingClientRect();return new Promise((x,w)=>{d({type:"drag-start",evt:b,path:T===void 0?o:`${o}.${T}`,dragRect:y,preDragActivity:E,dropTargets:r,resolveDragStart:x,rejectDragStart:w})})},[t,d,o,r]);return[At(async(b,T)=>{var y;let{type:E}=b;switch(E){case"maximize":case"minimize":case"restore":return d({type:E,path:(y=b.path)!=null?y:o});case"remove":return m();case"mousedown":return f(T,b.index,b.preDragActivity);case"add-toolbar-contribution":return p(b.location,b.content);case"remove-toolbar-contribution":return u();default:return}},[d,o,m,f,p,u]),l]};import{useForkRef as Wp,useIdMemo as Vp}from"@salt-ds/core";import Kp from"classnames";import zr,{forwardRef as Gp,useCallback as Zp,useMemo as Up,useRef as ba,useState as Xp}from"react";import{useCallback as Ze,useMemo as ua}from"react";var da=({id:e,rootRef:t,path:o,dropTargets:r,title:n})=>{let s=ye(),{loadState:i,loadSessionState:a,purgeState:l,saveState:c,saveSessionState:d}=ot(),[p,u]=Mo(e,t,o,r),m=ua(()=>{var x;return(x=i("view-title"))!=null?x:n},[i,n]),f=Ze(x=>{o&&s({type:"set-title",path:o,title:x})},[s,o]),g=ua(()=>i(e),[e,i]),h=Ze(x=>i(e,x),[e,i]),b=Ze(x=>{l(e,x),s({type:"save"})},[e,s,l]),T=Ze((x,w)=>{c(e,w,x),s({type:"save"})},[e,s,c]),E=Ze(x=>a(e,x),[e,a]),y=Ze((x,w)=>d(e,w,x),[e,d]),v=Ze(({type:x,...w})=>{let{[x]:S}=w;T(S,x)},[T]);return{contributions:u,dispatchViewAction:p,load:h,loadSession:E,onConfigChange:v,onEditTitle:f,purge:b,restoredState:g,save:T,saveSession:y,title:m}};import{useCallback as pa,useRef as ma}from"react";var $p=[],fa=({mainRef:e,resize:t="responsive",rootRef:o})=>{let r=t==="defer",n=ma({}),s=ma(),i=pa(()=>{e.current&&(e.current.style.height=n.current.height+"px",e.current.style.width=n.current.width+"px"),s.current=void 0},[e]),a=pa(({height:l,width:c})=>{n.current.height=l,n.current.width=c,s.current!==null&&clearTimeout(s.current),s.current=window.setTimeout(i,40)},[i]);po(o,r?Is:$p,a,r)};import Fp,{useContext as ga}from"react";var _p={dispatch:null},Po=Fp.createContext(_p),ha=()=>{var t;let e=ga(Po);return(t=e==null?void 0:e.dispatch)!=null?t:null},LD=()=>ga(Po);import{jsx as kr,jsxs as Yp}from"react/jsx-runtime";var Ot="vuuView",qp=(e,t)=>e&&t?{...e,...t}:e||t,ya=Gp(function(t,o){let{Header:r=xa,children:n,className:s,collapsed:i,closeable:a,"data-path":l,"data-resizeable":c,dropTargets:d,expanded:p,flexFill:u,id:m,header:f,orientation:g="horizontal",path:h=l,resize:b="responsive",resizeable:T=c,tearOut:E,style:y={},title:v,...x}=t,w=Vp(m),S=ba(null),O=ba(null),[H,P]=Xp(),{contributions:D,dispatchViewAction:I,load:M,loadSession:R,onConfigChange:L,onEditTitle:C,purge:N,restoredState:$,save:k,saveSession:W,title:K}=da({id:w,rootRef:S,path:h,dropTargets:d,title:v});fa({mainRef:O,resize:b,rootRef:S});let X=Zp(B=>{P(B)},[]),G=()=>zr.isValidElement(n)&&($||H)?zr.cloneElement(n,qp($,H)):n,Y=Up(()=>({dispatch:I,id:w,path:h,title:K,load:M,loadSession:R,onConfigChange:L,purge:N,save:k,saveSession:W,setComponentProps:X}),[I,w,M,R,L,h,N,k,W,X,K]),z=typeof f=="object"?f:{};return kr("div",{...x,className:Kp(Ot,s,{[`${Ot}-collapsed`]:i,[`${Ot}-expanded`]:p,[`${Ot}-resize-defer`]:b==="defer"}),"data-resizeable":T,id:w,ref:Wp(o,S),style:y,tabIndex:-1,children:Yp(Po.Provider,{value:Y,children:[f?kr(r,{...z,collapsed:i,contributions:D,expanded:p,closeable:a,onEditTitle:C,orientation:g,tearOut:E,title:K}):null,kr("div",{className:`${Ot}-main`,ref:O,children:G()})]})})});ya.displayName="View";var it=zr.memo(ya);it.displayName="View";Q("View",it,"view");import{jsx as kt}from"react/jsx-runtime";var xa=({className:e,contributions:t,collapsed:o,closeable:r,onEditTitle:n,orientation:s="horizontal",style:i,title:a="Untitled"})=>{let l=em(null),[c,d]=Ta(a),[p,u]=Ta(!1),m=ha(),f=P=>m==null?void 0:m({type:"remove"},P),g="vuuHeader",h=()=>{var P;(P=l.current)==null||P.focus()},b=P=>{P.stopPropagation()},E=Jp(g,e,`${g}-${o||s}`),y=()=>{u(!0)},v=P=>{P.key==="Enter"&&u(!0)},x=(P="",D="",I=!0,M=!1)=>{var R;u(!1),M?d(P):D!==P&&(d(D),n==null||n(D)),I===!1&&((R=l.current)==null||R.focus())},w=P=>{m==null||m({type:"mousedown"},P)},S=[],O=[],H=[];return t==null||t.forEach((P,D)=>{switch(P.location){case"pre-title":S.push(Ea.cloneElement(P.content,{key:D}));break;default:O.push(Ea.cloneElement(P.content,{key:D}))}}),a&&S.push(kt(yo,{editing:p,value:c,onChange:d,onMouseDownCapture:h,onEnterEditMode:y,onExitEditMode:x,onKeyDown:v,ref:l,tabIndex:0},"title")),r&&H.push(kt(jp,{"data-icon":"close",onClick:f,onMouseDown:b,variant:"secondary"},"close")),O.length>0&&S.push(kt("div",{className:"vuuTooltrayProxy","data-align":"end",children:O},"contributions")),H.length>0&&S.push(kt("div",{className:"vuuTooltrayProxy","data-align":"end",children:H},"actions")),kt("div",{className:Qp("vuuToolbarProxy",E),style:i,onMouseDown:w,children:S})};import{PopupMenu as ym}from"@vuu-ui/vuu-popups";import Io from"classnames";import xm,{forwardRef as Em}from"react";import{isValidNumber as fm,MEASURES as gm}from"@vuu-ui/vuu-utils";import{useCallback as Ca,useMemo as Fr,useRef as hm,useState as bm}from"react";var tm=".vuuOverflowContainer-item:not(.wrapped)",om=e=>e.sort((t,o)=>{let{dataset:{index:r="?"}}=t,{dataset:{index:n="?"}}=o,s=t.classList.contains("wrapped"),i=o.classList.contains("wrapped"),a=r==="overflow",l=n==="overflow";return s&&!i?1:!s&&i?-1:a?1:l?-1:parseInt(r)>parseInt(n)?1:-1}),Br=[],zt=(e,t="horizontal")=>{let o=[],r=[],n=-1,s=!1,i=om(Array.from(e.children)),a=t==="vertical"?"top":"left";for(let l of i){let c=l,{dataset:{index:d="?",label:p="?",overflowPriority:u="0"}}=c,{[a]:m}=c.getBoundingClientRect();m<=n?(d==="overflow"?r.push(o.pop()):r.push({index:d,label:p,overflowPriority:u}),s=!0):s?r.push({index:d,label:p,overflowPriority:u}):o.push({index:d,label:p,overflowPriority:u}),n=m}return[o,r]},va=(e,t)=>{let o=!1;t.find(({index:r})=>r==="overflow")&&t.length===1&&(o=!0);for(let r of e.children){let{dataset:{index:n="?"}}=r;t.length===0||o?e.classList.remove("overflowed"):e.classList.add("overflowed"),n!=="overflow"&&t.find(s=>s.index===n)?r.classList.add("wrapped"):r.classList.remove("wrapped")}},rm=(e,{overflowPriority:t})=>Math.max(e,parseInt(t)),nm=(e,{overflowPriority:t})=>Math.min(e,parseInt(t)),wa=e=>{var t;return e.length>1&&((t=e.at(-1))==null?void 0:t.index)==="overflow"},sm=e=>{let[t]=e;for(let o=1;o<e.length;o++){let r=e[o];parseInt(r.overflowPriority)>parseInt(t.overflowPriority)&&(t=r)}return t},Da=(e,t)=>{var n;let o=e.reduce(nm,Number.MAX_SAFE_INTEGER);return t.reduce(rm,0)>o?!0:t.length>1&&((n=t.at(-1))==null?void 0:n.index)==="overflow"},Sa=(e,t)=>new Promise(o=>{requestAnimationFrame(()=>{let[,r]=zt(e);lm(t,r).forEach(s=>im(e,s)),o(r)})}),Ra=(e,t,o)=>new Promise(r=>{requestAnimationFrame(()=>{let[,n]=zt(e),s=sm(n);if(s){let[i,a]=$r(e,s);r([i,a])}else r([t,o])})}),Ma=(e,t)=>e.querySelector(`[data-index="${t.index}"]`),im=(e,t)=>{let o=Ma(e,t);if(o)o.classList.add("wrapped");else throw Error(`markElementAsWrapped element item with index ${t.index} not found`)},am=e=>Array.from(e.querySelectorAll(".wrapped")),lm=(e,t)=>{let o=[];for(let r of t)e.find(({index:n})=>n===r.index)||o.push(r);return o},cm=(e,t)=>{am(e).forEach(r=>{let{dataset:{index:n="?"}}=r;t.find(s=>s.index===n)||r.classList.remove("wrapped")})},Pa=e=>e.querySelector('[data-index="overflow"]'),um=e=>e.querySelector(".wrapped"),Lo=e=>parseInt(getComputedStyle(e).getPropertyValue("width")),La=(e,t)=>{let{right:o}=e.getBoundingClientRect(),r=parseInt(getComputedStyle(e).getPropertyValue("padding-right")),{right:n}=t.getBoundingClientRect();return o-r-n},Ia=e=>{let t=Pa(e),o=La(e,t),r=Lo(t),n=um(e);return Lo(n)<=o+r?(e.classList.remove("overflowed"),n.classList.remove("wrapped"),!0):!1},dm=(e,t)=>{let{dataset:{index:o="0",overflowPriority:r="0"}}=e,{dataset:{index:n="0",overflowPriority:s="0"}}=t;return r>s?-1:r<s?1:parseInt(o)-parseInt(n)},pm=e=>Array.from(e.querySelectorAll(tm)).sort(dm),$r=(e,t)=>{let o=pm(e),r=Ma(e,t),n=-1,s=o.at(n),i=Lo(s),a=Lo(r),l=Pa(e),c=La(e,l)+i;if(c>=a)mm(r,s);else{let{left:u}=s.getBoundingClientRect(),m=c,f=[s];for(;c<a;){n-=1,s=o.at(n),f.push(s);let{left:g}=s.getBoundingClientRect(),h=u-g;c=m+h}r==null||r.classList.remove("wrapped"),f.forEach(g=>{g.classList.add("wrapped")})}let[d,p]=zt(e);return cm(e,p),[d,p]},mm=(e,t)=>{if(!e||!t)throw Error("switchWrapOnElements, element undefined");e.classList.remove("wrapped"),t.classList.add("wrapped")};var Na=({itemCount:e,onSwitchWrappedItemIntoView:t,orientation:o="horizontal"})=>{let[r,n]=bm(null),s=hm(Br),i=Ca(async()=>{if(r){let[u,m]=zt(r,o);for(console.log({nonWrapped:u,wrapped:m}),va(r,m),wa(m)&&(m=await Sa(r,m));Da(u,m);)[u,m]=await Ra(r,u,m);m.length===1&&Ia(r)&&(m=Br),s.current=m}},[r,o]),a=u=>typeof u=="object"&&u!==null&&"overflowItem"in u,[l,c]=Fr(()=>[()=>{let{current:u}=s;return u.map(m=>({label:m.label,action:`activate-item-${m.index}`,options:{overflowItem:m}}))},({options:u})=>{if(r&&a(u)){let[,m]=$r(r,u.overflowItem);s.current=m,t==null||t(u.overflowItem)}return!0}],[r,t]),d=Fr(()=>{let{sizeProp:u}=gm[o],m=0;return new ResizeObserver(f=>{for(let g of f){let{[u]:h}=g.contentRect;fm(h)&&m!==h&&(m=h,i())}})},[i,o]);un(()=>{i()},[i,e]),Fr(()=>{r&&d.observe(r)},[r,d]);let p=Ca(u=>{n(u)},[]);return{menuActionHandler:c,menuBuilder:l,rootRef:p}};import{jsx as Bt,jsxs as Tm}from"react/jsx-runtime";var at="vuuOverflowContainer",Ha=xm.memo(({children:e,className:t,height:o,onSwitchWrappedItemIntoView:r,orientation:n="horizontal",overflowIcon:s})=>{let i=je(e),{menuActionHandler:a,menuBuilder:l,rootRef:c}=Na({itemCount:i.length,onSwitchWrappedItemIntoView:r,orientation:n}),p={"--overflow-container-height":`${n==="vertical"?"100%":`${o}px`}`},u=Io(`${at}-wrapContainer`,t,{[`${at}-horizontal`]:n==="horizontal",[`${at}-vertical`]:n==="vertical"});return Tm("div",{className:u,ref:c,style:p,children:[i.map((m,f)=>{let{"data-overflow-priority":g="0",id:h,label:b=`Item ${f+1}`}=m.props;return Bt("div",{className:Io(`${at}-item`),"data-index":f,"data-label":b,"data-overflow-priority":g,id:`${h}-wrapper`,children:m},f)}),Bt("div",{className:`${at}-OverflowIndicator`,"data-index":"overflow",children:Bt(ym,{icon:s,menuBuilder:l,menuActionHandler:a})})]})});Ha.displayName="OverflowContainer.InnerContainer";var Ri=Em(function({children:t,className:o,height:r=44,onSwitchWrappedItemIntoView:n,orientation:s,overflowIcon:i,...a},l){return Bt("div",{...a,className:Io(Io(at,o)),ref:l,children:Bt(Ha,{height:r,orientation:s,overflowIcon:i,onSwitchWrappedItemIntoView:n,children:t})})});import{uuid as vm}from"@vuu-ui/vuu-utils";import{List as wm,ListItem as Dm}from"@salt-ds/lab";import Aa from"classnames";import{cloneElement as Sm,memo as Rm}from"react";import{jsx as _r}from"react/jsx-runtime";var Mm=e=>{let t=e.cloneNode(!0);return t.id="",delete t.dataset.idx,t},Oa=Rm(({className:e,children:t,idx:o,resizeable:r,header:n,closeable:s,...i})=>_r(Dm,{className:Aa("vuuPaletteItem",e),"data-draggable":!0,...i}));Oa.displayName="PaletteItem";var Pm=({children:e,className:t,orientation:o="horizontal",ViewProps:r,...n})=>{let s=ye(),i="vuuPalette";function a(l){var w;let d=l.target.closest(".vuuPaletteItem"),p=parseInt((w=d.dataset.idx)!=null?w:"-1");p!==-1&&console.log({children:e,idx:p,listItemElement:d});let{props:{caption:u,children:m,template:f,...g}}=e[p],{height:h,left:b,top:T,width:E}=d.getBoundingClientRect(),y=vm(),x=f?m:_r(it,{...r,...{id:y,key:y},...g,title:g.label,children:m});s({dragRect:{left:b,top:T,right:b+E,bottom:T+150,width:E,height:h},dragElement:Mm(d),evt:l.nativeEvent,instructions:{DoNotRemove:!0,DoNotTransform:!0,RemoveDraggableOnDragEnd:!0,dragThreshold:10},path:"*",payload:x,type:"drag-start"})}return _r(wm,{...n,borderless:!0,className:Aa(i,t,`${i}-${o}`),maxHeight:800,selected:null,children:e.map((l,c)=>l.type===Oa?Sm(l,{key:c,onMouseDown:a}):l)})};Q("Palette",Pm,"view");import Lm from"classnames";import Wr,{forwardRef as Im,useCallback as Cm}from"react";import{jsx as za,jsxs as km}from"react/jsx-runtime";var ka="Tabs",Nm=()=>{},Hm=(e,t)=>{var o,r;return(r=(o=e.props)==null?void 0:o.title)!=null?r:`Tab ${t+1}`},Am=e=>{let t=[];return Wr.Children.forEach(e,o=>{Wr.isValidElement(o)?t.push(o):console.warn("Stack has unexpected child element type")}),t},Om={allowAddTab:!1,allowCloseTab:!1,allowRenameTab:!1},Vr=Im(function({active:t=0,children:o,className:r,getTabIcon:n=Nm,getTabLabel:s=Hm,id:i,keyBoardActivation:a="manual",onAddTab:l,onMoveTab:c,onTabClose:d,onTabEdit:p,onTabSelectionChanged:u,showTabs:m="top",style:f,TabstripProps:g=Om},h){var H;let b=Vt(i),{allowCloseTab:T,allowRenameTab:E}=g,y=Cm((P,D,I,M)=>{p==null||p(M,D)},[p]),v=()=>{var P;return Wr.isValidElement(o)?o:Array.isArray(o)&&(P=o[t])!=null?P:null},x=()=>Am(o).map((P,D)=>{let I=`${b}-${D}`,{closeable:M=T,id:R}=P.props;return za(Ii,{ariaControls:`${I}-tab`,"data-icon":n(P,D),id:I,index:D,label:s(P,D),closeable:M,editable:E},R!=null?R:D)}),w=v(),S=m==="left"||m==="right",O=S?"vertical":"horizontal";return km("div",{className:Lm(ka,r,{[`${ka}-horizontal`]:S}),style:f,id:b,ref:h,children:[m?za(Si,{...g,activeTabIndex:(H=g==null?void 0:g.activeTabIndex)!=null?H:w===null?-1:t,allowDragDrop:g.allowDragDrop!==!1,animateSelectionThumb:!0,className:"vuuTabHeader",keyBoardActivation:a,onActiveChange:u,onAddTab:l,onCloseTab:d,onExitEditMode:y,onMoveTab:c,orientation:O,children:x()}):null,w]})});Vr.displayName="Stack";import{useIdMemo as zm}from"@salt-ds/core";import Bm,{useCallback as Kr,useRef as $m}from"react";import{jsx as Gr}from"react/jsx-runtime";var Fm=e=>Gr(it,{resizeable:!0,title:`Tab ${e}`,style:{flexGrow:1,flexShrink:0,flexBasis:0},header:!0,closeable:!0,children:Gr($o,{style:{flex:1}})}),Ba=e=>{let t=$m(null),o=ye(),{loadState:r}=ot(),{createNewChild:n=Fm,id:s,onTabSelectionChanged:i,path:a,...l}=e,{children:c}=e,d=zm(s),[p]=Mo(d,t,a),u=E=>{a&&(o({type:"switch-tab",path:a,nextIdx:E}),i==null||i(E))},m=Kr(E=>{if(Array.isArray(c)){let{props:{"data-path":y,path:v=y}}=c[E];o({type:"remove",path:v})}},[c,o]),f=Kr(()=>{if(a){let E=Bm.Children.count(c),y=n(E);o({type:"add",path:a,component:y})}},[c,n,o,a]),g=Kr((E,y)=>{a&&o({fromIndex:E,toIndex:y,path:a,type:"move-child"})},[o,a]);return Gr(Vr,{...l,id:d,getTabLabel:(E,y)=>{let{id:v,title:x}=E.props;return r(v,"view-title")||x||`Tab ${y+1}`},onMouseDown:async(E,y)=>{let v;await p({type:"mousedown",index:y,preDragActivity:async()=>new Promise(S=>{console.log("preDragActivity: Ok, gonna release the drag"),v=S})},E)&&(v==null||v(void 0))},onMoveTab:g,onAddTab:f,onTabClose:m,onTabEdit:(E,y)=>{o({type:"set-title",path:`${a}.${E}`,title:y})},onTabSelectionChanged:u,ref:t})};Ba.displayName="Stack";Q("Stack",Ba,"container");import $a,{useState as Fa}from"react";import{jsx as Zr,jsxs as _a}from"react/jsx-runtime";var BR=({children:e})=>{let[o,r]=Fa(e),[n,s]=Fa(e),i=l=>{let c=an(o,l);s(c)},a=(l,c)=>{console.log(`change ${l} -> ${c}`);let d=$a.cloneElement(n,{style:{...n.props.style,[l]:c}});s(d),r($a.cloneElement(o,{},d))};return _a("div",{"data-design-mode":`${!1}`,children:[o,Zr("br",{}),_a("div",{style:{display:"flex"},children:[Zr(Wa,{height:300,managedStyle:n.props.style,width:300,onChange:a,style:void 0}),Zr(Va,{layout:o,onSelect:i,style:{width:300,height:300,backgroundColor:"#ccc"}})]})]})};import{FormField as Co,Input as No}from"@salt-ds/core";import{jsx as oe,jsxs as Xr}from"react/jsx-runtime";var qr={},_m={margin:{top:"marginTop",right:"marginRight",bottom:"marginBottom",left:"marginLeft"},border:{top:"borderTopWidth",right:"borderRightWidth",bottom:"borderBottomWidth",left:"borderLeftWidth"},padding:{top:"paddingTop",right:"paddingRight",bottom:"paddingBottom",left:"paddingLeft"}},Ur=({feature:e,children:t,style:o,onChange:r})=>Xr("div",{className:`LayoutBox layout-${e} layout-outer`,children:[Xr("div",{className:"layout-top",children:[oe("span",{className:"layout-title",children:e}),oe(Co,{className:"layout-input",style:{width:30},children:oe(No,{value:o.top,onChange:(n,s)=>r(e,"top",s)})})]}),Xr("div",{className:"layout-inner",children:[oe("div",{className:"layout-left",children:oe(Co,{className:"layout-input",style:{width:30},children:oe(No,{value:o.left,onChange:(n,s)=>r(e,"left",s)})})}),t,oe("div",{className:"layout-right",children:oe(Co,{className:"layout-input",style:{width:30},children:oe(No,{value:o.right,onChange:(n,s)=>r(e,"right",s)})})})]}),oe("div",{className:"layout-bottom",children:oe(Co,{className:"layout-input",style:{width:30},children:oe(No,{value:o.bottom,onChange:(n,s)=>r(e,"bottom",s)})})})]}),UR={margin:!0,marginTop:!0,marginRight:!0,marginBottom:!0,marginLeft:!0},XR={padding:!0,paddingTop:!0,paddingRight:!0,paddingBottom:!0,paddingLeft:!0},qR={border:!0,borderColor:!0,borderWidth:!0,borderTopWidth:!0,borderRightWidth:!0,borderBottomWidth:!0,borderLeftWidth:!0},Ho="(\\d+)(?:px)?",Wm=`^(?:${Ho}(?:\\s${Ho}(?:\\s${Ho}(?:\\s${Ho})?)?)?)$`,Ka=new RegExp(Wm),Vm=/^(?:(\d+)(?:px)\ssolid\s([a-zA-Z,0-9().]+))$/,Wa=({height:e,managedStyle:t,onChange:o,style:r,width:n})=>{let s=Ga(t),i=(E,y,v)=>{let x=parseInt(v||"0",10),w=_m[E][y];o(w,x)},{marginTop:a=0,marginRight:l=0,marginBottom:c=0,marginLeft:d=0}=s,{borderTopWidth:p=0,borderRightWidth:u=0,borderBottomWidth:m=0,borderLeftWidth:f=0}=s,{paddingTop:g=0,paddingRight:h=0,paddingBottom:b=0,paddingLeft:T=0}=s;return oe("div",{className:"LayoutConfigurator",style:{width:n,height:e,...r},children:oe(Ur,{feature:"margin",style:{top:a,right:l,bottom:c,left:d},onChange:i,children:oe(Ur,{feature:"border",style:{top:p,right:u,bottom:m,left:f},onChange:i,children:oe(Ur,{feature:"padding",style:{top:g,right:h,bottom:b,left:T},onChange:i,children:oe("div",{className:"layout-content"})})})})})};function YR(e=qr,t=qr){let{margin:o,marginTop:r,marginRight:n,marginBottom:s,marginLeft:i,padding:a,paddingTop:l,paddingRight:c,paddingBottom:d,paddingLeft:p,...u}=e;if(typeof o=="number")u.marginTop=u.marginRight=u.marginBottom=u.marginLeft=o;else if(typeof o=="string"){let m=Ka.exec(o);if(m===null)console.error(`Invalid css value for margin '${o}'`);else{let[,f,g,h,b]=m,T=f&&g&&h;T&&b?(u.marginTop=parseInt(f,10),u.marginRight=parseInt(g,10),u.marginBottom=parseInt(h,10),u.marginLeft=parseInt(b,10)):T?(u.marginTop=parseInt(f,10),u.marginRight=u.marginLeft=parseInt(g,10),u.marginBottom=parseInt(h,10)):f&&g?(u.marginTop=u.marginBottom=parseInt(f,10),u.marginRight=u.marginLeft=parseInt(g,10)):u.marginTop=u.marginRight=u.marginBottom=u.marginLeft=parseInt(f,10)}}if(typeof r=="number"&&(u.marginTop=r),typeof n=="number"&&(u.marginRight=n),typeof s=="number"&&(u.marginBottom=s),typeof i=="number"&&(u.marginLeft=i),typeof a=="number")u.paddingTop=u.paddingRight=u.paddingBottom=u.paddingLeft=a;else if(typeof a=="string"){let m=Ka.exec(a);if(m===null)console.error(`Invalid css value for padding '${a}'`);else{let[,f,g,h,b]=m,T=f&&g&&h;T&&b?(u.paddingTop=parseInt(f,10),u.paddingRight=parseInt(g,10),u.paddingBottom=parseInt(h,10),u.paddingLeft=parseInt(b,10)):T?(u.paddingTop=parseInt(f,10),u.paddingRight=u.paddingLeft=parseInt(g,10),u.paddingBottom=parseInt(h,10)):f&&g?(u.paddingTop=u.paddingBottom=parseInt(f,10),u.paddingRight=u.paddingLeft=parseInt(g,10)):u.paddingTop=u.paddingRight=u.paddingBottom=u.paddinggLeft=parseInt(f,10)}}return typeof l=="number"&&(u.paddingTop=l),typeof c=="number"&&(u.paddingRight=c),typeof d=="number"&&(u.paddingBottom=d),typeof p=="number"&&(u.paddingLeft=p),Ga(u,t)}function Ga(e=qr){let t={...e},o,{border:r,borderWidth:n,borderTopWidth:s,borderRightWidth:i,borderBottomWidth:a,borderLeftWidth:l,borderColor:c,margin:d,marginTop:p,marginRight:u,marginBottom:m,marginLeft:f,padding:g,paddingTop:h,paddingRight:b,paddingBottom:T,paddingLeft:E,...y}=t,v={},x={};if(typeof d=="number"&&(t.marginTop=t.marginRight=t.marginBottom=t.marginLeft=d,v={marginTop:d,marginRight:d,marginBottom:d,marginLeft:d}),typeof g=="number"&&(t.paddingTop=t.paddingRight=t.paddingBottom=t.paddingLeft=g,x={paddingTop:g,paddingRight:g,paddingBottom:g,paddingLeft:g}),r||n||s||i||a||l){typeof r=="string"&&(o=Vm.exec(r))&&([,n,c]=o,n=parseInt(n,10)),n&&(s=s===void 0?n:s,i=i===void 0?n:i,a=a===void 0?n:a,l=l===void 0?n:l),c=c||"black";let w=`
|
|
18
21
|
${c} ${l||0}px ${s||0}px 0 0 inset,
|
|
19
|
-
${c} ${-i||0}px ${-a||0}px 0 0 inset`;return{...
|
|
22
|
+
${c} ${-i||0}px ${-a||0}px 0 0 inset`;return{...y,...v,...x,borderTopWidth:s,borderRightWidth:i,borderBottomWidth:a,borderLeftWidth:l,borderColor:c,borderStyle:"solid",boxShadow:w}}else return t}import Km from"react";import Gm from"classnames";import{jsx as Za}from"react/jsx-runtime";var Zm="hwLayoutTreeViewer",Ua=(e,t="0")=>({label:_(e),path:t,childNodes:Km.Children.map(e.props.children,(o,r)=>Ua(o,t?`${t}.${r}`:`${r}`))}),Va=({layout:e,onSelect:t,style:o})=>{let r=[Ua(e)],n=(s,[{path:i}])=>{t(i)};return Za("div",{className:Gm(Zm),style:o,children:Za(Or,{source:r,groupSelection:"single",onSelectionChange:n})})};export{et as Action,qR as BORDER_STYLES,$o as Component,Me as ComponentRegistry,BR as ConfigWrapper,sl as DockLayout,jo as Draggable,Cn as DraggableLayout,ko as Drawer,En as DropMenu,Ie as DropTarget,rr as Flexbox,Ms as FlexboxLayout,hr as FluidGrid,Bs as FluidGridLayout,xa as Header,Qy as HeightOnly,re as LayoutActionType,Wa as LayoutConfigurator,By as LayoutProvider,Rt as LayoutProviderContext,zy as LayoutProviderVersion,Va as LayoutTreeViewer,UR as MARGIN_STYLES,Br as NO_WRAPPED_ITEMS,Ri as OverflowContainer,XR as PADDING_STYLES,Pm as Palette,Oa as PaletteItem,Jt as Placeholder,Vr as Stack,Ba as StackLayout,it as View,Po as ViewContext,Is as WidthHeight,ex as WidthOnly,YR as XXXnormalizeStyles,jh as applyLayout,wt as applyLayoutProps,va as applyOverflowClassToWrappedItems,je as asReactElements,es as componentToJson,xn as computeMenuPosition,pl as containerOf,Ra as correctForWrappedHighPriorityItems,Sa as correctForWrappedOverflowIndicator,tr as createFlexbox,be as createPlaceHolder,Fo as expandFlex,cx as extractResponsiveProps,De as findTarget,ee as followPath,an as followPathToComponent,we as followPathToParent,ml as getChild,nn as getChildProp,am as getElementsMarkedAsWrapped,$n as getFlexDimensions,er as getFlexOrIntrinsicStyle,Qo as getFlexStyle,ue as getIntrinsicSize,Jn as getManagedDimension,zt as getNonWrappedAndWrappedItems,Xn as getPersistentState,F as getProp,A as getProps,qn as hasPersistentState,Fn as hasUnboundedFlexStyle,Da as highPriorityItemsHaveWrappedButShouldNotHave,Go as identifyDropTarget,ne as isContainer,Jr as isLayoutComponent,Um as isRegistered,wu as isResponsiveAttribute,lg as isTabstrip,Pf as isTypeOf,ja as isView,so as layoutFromJson,Es as layoutReducer,Qn as layoutToJSON,im as markElementAsWrapped,Of as nextLeaf,ge as nextStep,wa as overflowIndicatorHasWrappedButShouldNotHave,kf as previousLeaf,sr as processLayoutElement,Q as registerComponent,Ia as removeOverflowIndicatorIfNoLongerNeeded,te as resetPath,Ls as resizeObserver,Lc as serializeProps,Yn as setPersistentState,Bf as setRef,om as sortByScreenOrder,$r as switchWrappedItemIntoView,_ as typeOf,cm as unmarkItemsWhichAreNoLongerWrapped,As as useBreakpoints,Vt as useId,un as useLayoutEffectSkipFirst,ye as useLayoutProviderDispatch,du as useLayoutProviderVersion,ot as usePersistentState,po as useResizeObserver,Mo as useViewActionDispatcher,LD as useViewContext,ha as useViewDispatch,yt as wrapIntrinsicSizeComponentWithFlexbox};
|
|
20
23
|
//# sourceMappingURL=index.js.map
|