@vuu-ui/vuu-layout 0.8.7 → 0.8.8
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/cjs/index.js +5 -4
- package/cjs/index.js.map +4 -4
- package/esm/index.js +5 -4
- package/esm/index.js.map +4 -4
- package/index.css +1 -1
- package/index.css.map +3 -3
- package/package.json +5 -5
- package/types/registry/ComponentRegistry.d.ts +0 -1
package/esm/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
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=`
|
|
1
|
+
import{partition as xs}from"@vuu-ui/vuu-utils";import pu from"classnames";var ms={},ps={},it={};function he(e){return ms[e]===!0}function lu(e){return ps[e]===!0}var fs=e=>he(e)||lu(e);function ae(e,t,o="component"){it[e]=t,o==="container"?ms[e]=!0:o==="view"&&(ps[e]=!0)}import{Button as gs,useControlled as cu}from"@salt-ds/core";import hs from"classnames";import{useCallback as uu}from"react";import{jsx as zt,jsxs as mu}from"react/jsx-runtime";var Ye="vuuDrawer",bs=e=>typeof e=="string"?e:e+"px",du=(e,t,o)=>{let n=t!==void 0,r=o!==void 0;if(!(!e&&!r&&!n))return!r&&!n?e:{...e,"--drawer-size":n?bs(t):void 0,"--drawer-peek-size":r?bs(o):void 0}},ys=({children:e,className:t,clickToOpen:o,defaultOpen:n,sizeOpen:r,sizeClosed:s,style:i,open:a,position:l="left",inline:c,onClick:d,peekaboo:m=!1,toggleButton:u,...p})=>{let[f,g]=cu({controlled:a,default:n!=null?n:!1,name:"Drawer",state:"open"}),h=hs(Ye,t,`${Ye}-${l}`,{[`${Ye}-open`]:f,[`${Ye}-inline`]:c,[`${Ye}-over`]:!c,[`${Ye}-peekaboo`]:m}),b=uu(()=>{g(!f)},[f,g]),x=du(i,r,s),I=o?b:d,y=()=>zt("div",{className:hs("vuuToggleButton-container"),children:f?zt(gs,{"aria-label":"close",onClick:b,"data-icon":"close",variant:"secondary"}):zt(gs,{"aria-label":"open",onClick:b,"data-icon":"close",variant:"secondary"})});return mu("div",{...p,className:h,onClick:I,style:x,children:[u=="start"?y():null,zt("div",{className:`${Ye}-liner`,children:zt("div",{className:`${Ye}-content`,children:e})}),u=="end"?y():null]})};ys.displayName="Drawer";var Cn=ys;import{jsx as bu,jsxs as yu}from"react/jsx-runtime";var fu=e=>e.type===Cn,gu=({props:{position:e="left"}})=>e.match(/top|bottom/),Hn=e=>{let{children:t,className:o,id:n,style:r}=e,s="vuuDockLayout",[i,a]=xs(t,fu),[l,c]=xs(i,gu),d=l.length===0?"horizontal":c.length===0?"vertical":"both",m=pu(s,o,`${s}-${d}`);return yu("div",{className:m,id:n,style:r,children:[i,bu("div",{className:`${s}-content`,children:a})]})};Hn.displayName="DockLayout";var hu=Hn;ae("DockLayout",Hn,"container");import{forwardRef as xu}from"react";import{jsx as Eu}from"react/jsx-runtime";var Nn=xu(function({resizeable:t,...o},n){return Eu("div",{...o,className:"Component",ref:n})});Nn.displayName="Component";var kn=Nn;ae("Component",Nn);import qe,{isValidElement as Is}from"react";var Iu={},G=(e,t)=>{var n;let o=$(e);return(n=o[t])!=null?n:o[`data-${t}`]},$=e=>(e==null?void 0:e.props)||e||Iu,Es=e=>{let t=$(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 U(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 dy=(e,t)=>U(e)===t;var Su=e=>{let t=e.lastIndexOf(".");return t===-1?e:e.slice(0,t)};function Ge(e,t){let{"data-path":o,path:n=o}=$(e);return t==="0"||t===n?null:le(e,Su(t),!0)}function Ue(e,t){let{children:o,...n}=$(e);if(t(n))return e;if(qe.Children.count(o)>0){let r=qe.isValidElement(o)?[o]:o;for(let s of r){let i=Ue(s,t);if(i)return i}}}function Tu(e,t){if(t===e)return null;let{path:o,children:n}=$(e),{idx:r,finalStep:s}=Ne(o,G(t,"path"));return s?e:n===void 0||n[r]===void 0?null:Tu(n[r],t)}var vu=(e,t)=>{if(qe.isValidElement(e)&&t==0)return e;if(Array.isArray(e))return e[t]};function Ss(e,t){let o=t.split("."),n=[e],r=s=>qe.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 Ts=(e,t,o=!0)=>{let{children:n,id:r}=e.props;if(r===t)return e;if(qe.Children.count(n)>0){let s=Is(n)?[n]:n;for(let i of s)if(Is(i)){let a=Ts(i,t,!1);if(a)return a}}if(o===!0)throw Error(`pathUtils.findTargetById id #${t} not found in source`)};function le(e,t,o=!1){if(t.startsWith("#"))return Ts(e,t.slice(1),o);let{"data-path":n,path:r=n}=$(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(qe.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=vu(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 yy(e,t){let o=Ge(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 Eo(s[r+1]);{let i=n.pop(),a=Ge(e,G(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 he(U(l))?Eo(l):l}}}return Eo(e)}function xy(e,t){let o=t.split(".").map(s=>parseInt(s,10)),n=o.pop(),r=Ge(e,t);if(r!=null&&typeof n=="number"){let{children:s}=r.props;if(n>0)return Io(s[n-1]);for(;o.length>1;)if(n=o.pop(),r=Ge(e,G(r,"path")),n>0){let i=r.props.children[n-1];return he(U(i))?Io(i):i}}return Io(e)}function Eo(e){if(he(U(e))){let{children:t}=e.props||e;return Eo(t[0])}return e}function Io(e){if(he(U(e))){let{children:t}=e.props||e;return Io(t[t.length-1])}return e}function Ne(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 ue(e,t,o){if(G(e,"path")===t)return e;let n=[];qe.Children.forEach(e.props.children,(s,i)=>{G(s,"path")?n.push(ue(s,`${t}.${i}`)):n.push(s)});let r=e.props["data-path"]?"data-path":"path";return qe.cloneElement(e,{[r]:t,...o},n)}function Iy(e,t){typeof e=="function"?e(t):e&&(e.current=t)}import{Children as wu,isValidElement as vs,useLayoutEffect as Du,useMemo as Ru,useRef as Lu}from"react";var Mu=[],Pu=0,bt=e=>{let t=Array.isArray(e),o=t?e.length:wu.count(e);return t&&e.every(vs)?e:o===1&&!t&&vs(e)?[e]:o>1?e:Mu},ws=(e,t)=>{let o=Lu(!1);Du(()=>{o.current?e():o.current=!0},t)},yt=e=>Ru(()=>e!=null?e:`vuu-${++Pu}`,[e]);var An=e=>{if(typeof e!="number")throw Error(`"no support yet for flex value ${e}`);return{flexBasis:0,flexGrow:1,flexShrink:1}};var lt={north:1,east:2,south:4,west:8,header:16,centre:32,absolute:64},Ft={AFTER:"after",BEFORE:"before"},be=Object.freeze({North:at("north"),East:at("east"),South:at("south"),West:at("west"),Header:at("header"),Centre:at("centre"),Absolute:at("absolute")});function at(e){return Object.freeze({offset:e==="north"||e==="west"?0:e==="south"||e==="east"?1:NaN,valueOf:function(){return lt[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 Ds=be.North,Rs=be.South,On=be.East,zn=be.West,Cu=be.Header,Hu=be.Centre,xt=class{static measure(t,o=[]){let n={};return Au(t,n,o),n}static allBoxesContainingPoint(t,o,n,r,s){return Cs(t,o,n,r,s).reverse()}};function Fn(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 Bn(e,t,o,n){let{BEFORE:r,AFTER:s}=Ft,{pctX:i,pctY:a,closeToTheEdge:l}=Fn(e,t,o),c,d;if(n==="row")c=i<.5?zn:On;else if(o.header&&So(o.header,e,t))if(c=Cu,o.Stack){let m=o.Stack.length;if(m===0)d={index:-1,left:o.left,positionRelativeToTab:s,width:0};else{let u=o.Stack.find(({left:p,right:f})=>e>=p&&e<=f);if(u){let p=u.right-u.left;d={index:o.Stack.indexOf(u),left:u.left,positionRelativeToTab:(e-u.left)/p<.5?r:s,width:p}}else d={left:o.Stack[m-1].right,width:0,index:m,positionRelativeToTab:s}}}else if(o.header.titleWidth){let m=o.header.titleWidth;d={index:-1,left:o.left,positionRelativeToTab:(e-o.left)/m<.5?r:s,width:m}}else d={left:o.left,width:0,positionRelativeToTab:r,index:-1};else c=Nu(e,t,o,i,a);return{position:c,x:e,y:t,closeToTheEdge:l,tab:d}}function Nu(e,t,o,n,r){let s=ku(o,.2);if(So(s,e,t))return Hu;switch(`${r<.5?"north":"south"}${n<.5?"west":"east"}`){case"northwest":return n>r?Ds:zn;case"northeast":return 1-n>r?Ds:On;case"southeast":return n>r?On:Rs;case"southwest":return 1-n>r?zn:Rs;default:}}function ku({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 Au(e,t,o){let{id:n,"data-path":r,path:s=r}=$(e),i=U(e);if(n&&s){let[a,l]=Ps(e);Ls(e,a,l,t),he(i)&&Ms(e,t,o)}}function Ls(e,t,o,n){let{"data-path":r,path:s=r,header:i}=$(e);n[s]=t;let a=U(e);if(i||a==="Stack"){let l=o.querySelector(".vuuHeader");if(l){let{top:c,left:d,right:m,bottom:u}=l.getBoundingClientRect();if(n[s].header={top:Math.round(c),left:Math.round(d),right:Math.round(m),bottom:Math.round(u)},a==="Stack")n[s].Stack=Array.from(l.querySelectorAll(".saltTab")).map(p=>p.getBoundingClientRect()).map(({left:p,right:f})=>({left:p,right:f}));else{let p=l.querySelector('[class^="vuuHeader-title"]'),{header:f}=n[s];p&&f&&(f.titleWidth=p.clientWidth)}}}return n[s]}function Ms(e,t,o,n=0,r=0,s=0,i=0){let{children:a,"data-path":l,path:c=l,style:d,active:m=0}=$(e),u=U(e),p=u==="Flexbox",f=u==="Stack",g=p&&d.flexDirection==="column",h=p&&d.flexDirection==="row",x=(f?a.filter((y,S)=>S===m):a.filter(Ou)).map(y=>{let[S,E]=Ps(y);return[{...S,top:S.top-s,right:S.right+r,bottom:S.bottom+i,left:S.left-n},E,y]}),I=x.map(([y,S,E],v,D)=>{let P,A,C,T,R,L,H=D.length-1;h?(R=v===0?0:y.left-D[v-1][0].right,L=v===H?0:D[v+1][0].left-y.right,P=v===0||R===0?0:R,A=v===H||L===0?0:L-L/2,y.left-=P,y.right+=A,C=s,T=i):g&&(R=v===0?0:y.top-D[v-1][0].bottom,L=v===H?0:D[v+1][0].top-y.bottom,C=v===0||R===0?0:R,T=v===H||L===0?0:L-L/2,y.top-=C,y.bottom+=T,P=n,A=r);let N=Ls(E,y,S,t),w=U(E);return he(w)&&Ms(E,t,o,P,A,C,T),N});x.length&&(t[c].children=I)}function Ou(e){let{id:t}=$(e),o=document.getElementById(t);return o?o.dataset.dragging!=="true":(console.warn(`BoxModel: no element found with id #${t}`),!1)}function Ps(e){let{id:t}=$(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,d=U(e);if(he(d)){let m=o.scrollHeight;m>a&&(c={id:t,scrollHeight:m,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 Cs(e,t,o,n,r,s=[]){let{children:i,"data-path":a,path:l=a}=$(e),c=U(e),d=t[l];if(!So(d,o,n))return s;if(r&&r.length){if(r.includes(l))s.push(e);else if(!r.some(m=>m.startsWith(l)))return s}else s.push(e);if(!he(c)||d.header&&So(d.header,o,n))return s;d.scrolling&&zu(d,o,n);for(let m=0;m<i.length;m++){if(c==="Stack"&&e.props.active!==m)continue;let u=Cs(i[m],t,o,n,r);if(u.length)return s.concat(u)}return s}function So(e,t,o){if(e)return t>=e.left&&t<e.right&&o>=e.top&&o<e.bottom}function zu({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 Fu=.4,To=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}=Fn(o,n,r),d=Fu,m=l*r.width,u=r.width-m,p=c*r.height,f=r.height-p,g=r.width*d,h=r.height*d,b=1-d,x=m*b,I=p*b,y=u*b,S=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-x,hi:t.right-r.width+y},y:{lo:t.top-I,hi:t.bottom-r.height+S}},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: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 Gy=e=>e.pos.tab&&U(e.component)==="Stack"&&e.pos.position.Header,{north:Bu,south:$u,east:Ku,west:Vu}=lt,_u=Ku+Vu,Wu=Bu+$u,Je=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===Ft.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 b,x;let{clientRect:{top:n,left:r,right:s,bottom:i,header:a}}=this,l=0,c=Math.round(t/2)+l,d=Math.round(n),m=Math.round(r+c),u=Math.round(s-c),p=Math.round(i-c),f=this.targetTabPos(o),g=60,h=((b=a==null?void 0:a.bottom)!=null?b:0)-((x=a==null?void 0:a.top)!=null?x:0);return{l:m,t:d,r:u,b:p,tabLeft:f,tabWidth:g,tabHeight:h}}getIntrinsicDropRect(t){var g,h,b,x;let{pos:o,clientRect:n}=this,{x:r,y:s}=t,i=(h=(g=t.intrinsicSize)==null?void 0:g.height)!=null?h:0,a=(x=(b=t.intrinsicSize)==null?void 0:b.height)!=null?x: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))),[d,m,u,p]=this.dropRect=[l,c,l+a,c+i],f=o.position.EastOrWest?[d,n.top,d,n.bottom,u,n.top,u,n.bottom]:[n.left,m,n.right,m,n.left,p,n.right,p];return{l:d,r:u,t:m,b:p,guideLines:f}}getDropRectOutline(t,o){var x,I,y;let{pos:n,clientRect:r}=this,{width:s,height:i,position:a}=n,{width:l,height:c}=(x=o==null?void 0:o.intrinsicSize)!=null?x:{},d=(I=c!=null?c:i)!=null?I:0,m=(y=l!=null?l:s)!=null?y:0;this.dropRect=void 0;let{top:u,left:p,right:f,bottom:g}=r,h=0,b=Math.round(t/2)+h;switch(a){case be.North:case be.Header:{let S=Math.round((g-u)/2),E=d?Math.min(S,Math.round(d)):S;return m&&p+m<f?[p+b,u+b,p+m-b,u+b+E]:[p+b,u+b,f-b,u+b+E]}case be.West:{let S=Math.round((f-p)/2),E=m?Math.min(S,Math.round(m)):S;return d&&u+d<g?[p+b,u+b,p-b+E,u+d+b]:[p+b,u+b,p-b+E,g-b]}case be.East:{let S=Math.round((f-p)/2),E=m?Math.min(S,Math.round(m)):S;return d&&u+d<g?[f-b-E,u+b,f-b,u+d+b]:[f-b-E,u+b,f-b,g-b]}case be.South:{let S=Math.round((g-u)/2),E=d?Math.min(S,Math.round(d)):S;return m&&p+m<f?[p+b,g-b-E,p+m-b,g-b]:[p+b,g-b-E,f-b,g-b]}case be.Centre:return[p+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:Je.getActiveDropTarget(t.nextDropTarget)}};function $n(e,t,o,n,r,s){var l;let i=null,a=xt.allBoxesContainingPoint(o,n,e,t,s);if(a.length){let[c,...d]=a,{"data-path":m,path:u=m,"data-row-placeholder":p}=$(c),f=n[u],h=Bn(e,t,f,r&&p?"row":void 0),b=n[u],x=([I,...y])=>{var S,E;if((S=h.position)!=null&&S.Header||h.closeToTheEdge){let v=Gu(I,h,b,n,e,t);if(v){let[D,P]=v;return new Je({component:I,pos:D,clientRect:P,nextDropTarget:(E=x(y))!=null?E:null})}else if(y.length)return x(y)}};i=new Je({component:c,pos:h,clientRect:f,nextDropTarget:(l=x(d))!=null?l:null}).activate()}return i}function Gu(e,{closeToTheEdge:t,position:o},n,r,s,i){if(!e||e.type==="DraggableLayout")return;let a=r[e.props.path],l=t<.north,c=t<.east,d=t<.south,m=t<.west,u=(l||o.Header)&&Math.round(n.top)===Math.round(a.top),p=c&&Math.round(n.right)===Math.round(a.right),f=d&&Math.round(n.bottom)===Math.round(a.bottom),g=m&&Math.round(n.left)===Math.round(a.left);if(u||p||f||g){let{"data-path":h,path:b=h}=e.props,x=r[b],I=Bn(s,i,x);if((Uu(e)||Hs(e))&&t&_u)return I.width=120,[I,x];if((Zu(e)||Hs(e))&&(o.Header||t&Wu))return I.height=120,[I,x]}}function Hs(e){return U(e)==="Stack"}function Uu(e){return U(e)==="Flexbox"&&e.props.style.flexDirection==="column"}function Zu(e){return U(e)==="Flexbox"&&e.props.style.flexDirection==="row"}import{PopupService as Vn}from"@vuu-ui/vuu-popups";import Xu from"classnames";import{jsx as Ns}from"react/jsx-runtime";function ks(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 Kn="vuuDropMenu",As=({className:e,dropTarget:t,onHover:o,orientation:n})=>{let r=t.toArray();return Ns("div",{className:Xu(Kn,e,`${Kn}-${n}`),onMouseLeave:()=>o(null),children:r.map((s,i)=>Ns("div",{className:`${Kn}-item`,"data-icon":i===0?"column-2A":"column-2B",onMouseEnter:()=>o(s)},i))})};import{jsx as td}from"react/jsx-runtime";var _n=!1,Bt=null,ke=null,ju=e=>Bt=e,Yu=([e,t])=>`M${e},${t}`,qu=([e,t])=>`L${e},${t}`,Os=([e,...t])=>`${Yu(e)} ${t.map(qu)}Z`,Ju=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 Qu(){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,10 +14,11 @@ import{partition as rn}from"@vuu-ui/vuu-utils";import ol from"classnames";var Yr
|
|
|
14
14
|
/>
|
|
15
15
|
</path>
|
|
16
16
|
</svg>
|
|
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(`
|
|
17
|
+
`,document.body.insertBefore(t,e)}}var $t=class{constructor(){this.currentPath=null;this.tabMode=null;Qu()}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=Os(n),s=document.getElementById("vuu-drop-outline");s==null||s.setAttribute("d",r),this.currentPath=r}clear(){Bt=null,vo(),document.body.classList.remove("drawing"),Vn.hidePopup()}get hoverDropTarget(){return Bt}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=_n;if(Bt!==null)this.drawTarget(Bt);else if(_n=t.nextDropTarget!=null,t.pos.tab?ed(t):ke&&vo(),this.drawTarget(t,o),_n){let[s,i,a]=ks(t);{let l=td(As,{dropTarget:t,onHover:ju,orientation:a});Vn.showPopup({left:s,top:i,component:l})}}else Vn.hidePopup()}drawTarget(t,o){let r=t.getTargetDropOutline(6,o);if(r){let{l:s,t:i,r:a,b:l,tabLeft:c,tabWidth:d,tabHeight:m,guideLines:u}=r,p=a-s,f=l-i;if(this.currentPath){let I=document.getElementById("vuu-drop-outline");I==null||I.setAttribute("d",this.currentPath)}let g=this.getPoints(s,i,p,f,c,d,m),h=Os(g),b=document.getElementById("hw-drop-outline-animate");b==null||b.setAttribute("to",h),b==null||b.beginElement(),this.currentPath=h;let x=document.getElementById("hw-drop-guides");x==null||x.setAttribute("d",Ju(u))}}},zs="transition:margin-left .4s ease-out;margin-left: 63px",Fs="transition:margin-left .4s ease-out;margin-left: 0px";function ed(e){var a,l;let{AFTER:t,BEFORE:o}=Ft,{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,d=`:scope .hwTabstrip > .hwTabstrip-inner > .hwTab:nth-child(${r.index+c})`;i=(a=document.getElementById(s))==null?void 0:a.querySelector(d),i?(ke===null||ke!==i)&&(i.style.cssText=zs,ke&&(ke.style.cssText=Fs),ke=i):vo()}else if((r==null?void 0:r.positionRelativeToTab)===o){if(ke===null){let c=".vuuHeader-title";i=(l=document.getElementById(s))==null?void 0:l.querySelector(c),i.style.cssText=zs,ke=i}}else vo()}function vo(){ke&&(ke.style.cssText=Fs,ke=null)}var Ze,Kt,Qe,$s,Ks,et,wo,Et=null,Gn,Vs,Vt,_s,Wn,Do=null,od=3,Ro=new $t,Bs=.4;function nd(e,t){return t?le(e,t):Ue(e,o=>o.dropTarget)}var Un={handleMousedown(e,t,o={}){Ze=t,Vs=o,$s=e.clientX,Ks=e.clientY,Wn=o.dragThreshold===void 0?od:o.dragThreshold,Wn===0?Ze(e,0,0):(window.addEventListener("mousemove",Lo,!1),window.addEventListener("mouseup",Mo,!1),Do=window.setTimeout(()=>{console.log("mousedownTimer fires"),window.removeEventListener("mousemove",Lo,!1),window.removeEventListener("mouseup",Mo,!1),Ze==null||Ze(e,0,0)},500)),e.preventDefault()},initDrag(e,t,{top:o,left:n,right:r,bottom:s},i,a,l,c){return{drag:Kt,drop:Qe}=a,rd(e,t,{top:o,left:n,right:r,bottom:s},i,l,c)}};function Lo(e){let n=e.clientX-$s,r=e.clientY-Ks;Math.max(Math.abs(n),Math.abs(r))>Wn&&(window.removeEventListener("mousemove",Lo,!1),window.removeEventListener("mouseup",Mo,!1),Ze==null||Ze(e,n,r),Ze=null)}function Mo(){Do&&(window.clearTimeout(Do),Do=null),window.removeEventListener("mousemove",Lo,!1),window.removeEventListener("mouseup",Mo,!1)}function rd(e,t,o,n,r,s){et=nd(e,t);let{"data-path":i,path:a=i}=$(et);s&&(Gn=s.map(u=>Ue(e,p=>p.id===u)).map(u=>u.props.path)),Vt=xt.measure(et,s),console.log({_measurements:Vt});let l=Vt[a];wo=new To(l,n.x,n.y,o,r);let c=Math.round(wo.x.mousePct*100),d=Math.round(wo.y.mousePct*100);return window.addEventListener("mousemove",Ws,!1),window.addEventListener("mouseup",Gs,!1),_s=!1,Ro.prepare(o,"tab-only"),Vs.DoNotTransform?"transform:none":`transform:scale(${Bs},${Bs});transform-origin:${c}% ${d}%;`}function Ws(e){let t=e.clientX,o=e.clientY,n=wo,r=Et,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||Kt==null||Kt(i,a),!(_s||et===void 0)&&(n.inBounds()?s=$n(t,o,et,Vt,n.hasIntrinsicSize(),Gn):s=$n(n.dropX(),n.dropY(),et,Vt),r&&(s==null||s.box!==r.box)&&(Et=null),s&&(Ro.draw(s,n),Et=s))}function Gs(){sd()}function sd(){if(Et){let e=Ro.hoverDropTarget||Je.getActiveDropTarget(Et);Qe==null||Qe(e),Et=null}else Qe==null||Qe({component:et,pos:{position:be.Absolute}});Kt=null,Qe=null,et=void 0,Ro.clear(),Gn=void 0,window.removeEventListener("mousemove",Ws,!1),window.removeEventListener("mouseup",Gs,!1)}import id from"classnames";import{forwardRef as ad}from"react";import{jsx as ld}from"react/jsx-runtime";var Us=ad(function({children:t,className:o,dropTarget:n,resizeable:r,...s},i){let a=id("DraggableLayout",o);return ld("div",{className:a,ref:i,...s,children:t})}),Zs="DraggableLayout";Us.displayName=Zs;ae(Zs,Us,"container");import{useForkRef as Cd}from"@salt-ds/core";import Hd from"classnames";import{forwardRef as Nd}from"react";import{getUniqueId as vd}from"@vuu-ui/vuu-utils";import Zt,{useCallback as ko,useMemo as si,useRef as Ao,useState as wd}from"react";import cd from"classnames";import{jsx as ud}from"react/jsx-runtime";var Xs="vuuPlaceholder",Po=({className:e,closeable:t,flexFill:o,resizeable:n,shim:r,...s})=>ud("div",{className:cd(Xs,e,{[`${Xs}-shim`]:r}),...s,"data-placeholder":!0,"data-resizeable":!0});Po.displayName="Placeholder";ae("Placeholder",Po);import dd from"classnames";import md,{useCallback as _t,useRef as Co,useState as pd}from"react";import{jsx as js}from"react/jsx-runtime";var Ys=md.memo(function({column:t,index:o,onDrag:n,onDragEnd:r,onDragStart:s,style:i}){let a=Co(),l=Co(null),c=Co(0),[d,m]=pd(!1),u=_t(({key:E,shiftKey:v})=>{let D=v?10:1;t&&E==="ArrowDown"?n(o,D):t&&E==="ArrowUp"||!t&&E==="ArrowLeft"?n(o,-D):!t&&E==="ArrowRight"&&n(o,D)},[t,o,n]),p=_t(E=>{let{key:v}=E;(t&&(v==="ArrowUp"||v==="ArrowDown")||!t&&(v==="ArrowLeft"||v==="ArrowRIght"))&&(s(o),u(E),f.current=u)},[t,u,o,s]),f=Co(p),g=E=>f.current(E),h=_t(E=>{a.current=!0;let v=E[t?"clientY":"clientX"],D=v-c.current;v&&v!==c.current&&n(o,D),c.current=v},[t,o,n]),b=_t(()=>{var E;window.removeEventListener("mousemove",h,!1),window.removeEventListener("mouseup",b,!1),r(),m(!1),(E=l.current)==null||E.focus()},[h,r,m]),x=_t(E=>{c.current=t?E.clientY:E.clientX,s(o),window.addEventListener("mousemove",h,!1),window.addEventListener("mouseup",b,!1),E.preventDefault(),m(!0)},[t,h,b,o,s,m]),I=()=>{var E;a.current?a.current=!1:(E=l.current)==null||E.focus()},y=()=>{f.current=p},S=dd("Splitter","focusable",{active:d,column:t});return js("div",{className:S,"data-splitter":!0,ref:l,role:"separator",style:i,onBlur:y,onClick:I,onKeyDown:g,onMouseDown:x,tabIndex:0,children:js("div",{className:"grab-zone"})})});import{uuid as qs}from"@vuu-ui/vuu-utils";import Js from"react";var fd={"data-placeholder":!0,"data-resizeable":!0},Ho={},tt="auto",Zn={flexBasis:0,flexGrow:1,flexShrink:1,height:tt,width:tt},Qs={height:"width",width:"height"},ei=(e="row")=>e==="row"?["width","height","column"]:["height","width","row"],gd=e=>typeof e=="string"&&e.endsWith("%"),Le=e=>{let{style:{width:t=tt,height:o=tt}=Ho}=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 Xn(e,t,o){let n=Qs[t],{style:{[n]:r=tt,...s}=Ho}=e.props;return o&&o[t]?{...s,...Zn,flexBasis:o[t],flexGrow:0,flexShrink:0}:{...s,...Zn,[n]:r}}function ti(e){let{style:{flex:t,flexGrow:o,flexShrink:n,flexBasis:r}=Ho}=e.props;return typeof t=="number"||r===0&&o===1&&n===1?!0:typeof r!="number"}function jn(e,t,o){let n=Qs[t],{style:{[t]:r=tt,[n]:s=tt,...i}=Ho}=e.props;return r!==tt?gd(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,...Zn,flexBasis:o[t],flexGrow:0,flexShrink:0}:{...i,[n]:s}}function Wt(e,t,o,n,r){let s=[],i=0,a;if(n&&r){let d,[m,u,p,f]=r;[d,a]=t==="column"?[u-n.top,n.bottom-f]:[m-n.left,n.right-p],d&&s.push(Fe(`${o}.${i++}`,d,{flexGrow:0,flexShrink:0}))}else a=!0;let{version:l=0,style:c}=$(e);return s.push(ue(e,`${o}.${i++}`,{version:l+1,style:{...c,flexBasis:"auto",flexGrow:0,flexShrink:0}})),a&&s.push(Fe(`${o}.${i++}`,0,void 0,{[`data-${t}-placeholder`]:!0})),Yn(t,{resizeable:!1,style:{flexBasis:"auto"}},s,o)}var hd=(e,t)=>{if(!t)return e===0?1:0};function Yn(e,t,o,n){let r=qs(),{flexFill:s,style:i,resizeable:a=!0}=t,{flexBasis:l=s?void 0:"auto"}=i,c=hd(l,s);return Js.createElement(it.Flexbox,{id:r,key:r,path:n,flexFill:s,style:{...i,flexDirection:e,flexBasis:l,flexGrow:c,flexShrink:c},resizeable:a},o)}var bd={flexGrow:1,flexShrink:1};function Fe(e,t,o,n){let r=qs();return Js.createElement("div",{...fd,...n,"data-path":e,id:r,key:r,style:{...bd,...o,flexBasis:t}})}var yd={},Gt=1,Ut=2,xd=e=>typeof e.intrinsicSize=="number",Ed=(e,t)=>{let o={};return e.forEach(n=>{o[n]=G(t,n)}),o},No=(e,t,o)=>e.map((n,r)=>{var l;let s=G(n,"resizeable"),{[t]:i}=(l=Le(n))!=null?l:yd,a=ti(n);return o?{index:r,flexOpen:a,intrinsicSize:i,resizeable:s,...Ed(o,n)}:{index:r,flexOpen:a,intrinsicSize:i,resizeable:s}}),oi=e=>{let t=e.length,o=e.every(xd),n=Array(t).fill(0);if(o&&t>0&&(n[0]=Ut,n[t-1]=Ut),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]&Gt&&(n[r]-=Gt),!e[r].resizeable);r--);return n},ni=(e,t)=>{let o=Sd(e,t),n=Td(e,t),r=o!==-1&&n!==-1?[o,n]:void 0,s=Id(e,r);return[r,s]};function Id(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 Sd(e,t){let o=t,n=!1;for(;o>=1&&!n;)o=o-1,n=ri(e,o);return o}function Td(e,t){let o=t,n=!1,r=e.length;for(;o<r-1&&!n;)o=o+1,n=ri(e,o);return o===r?-1:o}function ri(e,t){let{placeholder:o,splitter:n,resizeable:r,intrinsicSize:s}=e[t];return!!(!n&&!s&&(o||r))}var Dd=e=>!e.splitter&&!e.placeholder,ai=({children:e,onSplitterMoved:t,style:o})=>{let n=Ao(null),r=Ao(),s=Ao(),i=Ao([]),[,a]=wd({}),l=h=>{s.current=h,a({})},c=(o==null?void 0:o.flexDirection)==="column",d=c?"height":"width",m=si(()=>Array.isArray(e)?e:Zt.isValidElement(e)?[e]:[],[e]),u=ko(h=>{let{current:b}=r;if(b){let[x,I]=ni(b,h);x&&(x.forEach(y=>{var E;let S=(E=n.current)==null?void 0:E.childNodes[y];if(S){let{size:v,minSize:D}=Pd(S,d);b[y].currentSize=v,b[y].minSize=D}}),I&&I.forEach(y=>{var E;let S=(E=n.current)==null?void 0:E.childNodes[y];if(S){let{[d]:v}=S.getBoundingClientRect();b[y].flexBasis=v}}))}},[d]),p=ko((h,b)=>{s.current&&r.current&&l(Ld(s.current,r.current,b,d))},[d]),f=ko(()=>{let h=r.current;h&&(t==null||t(h.filter(Dd))),h==null||h.forEach(b=>{b.currentSize=void 0,b.flexBasis=void 0,b.flexOpen=!1})},[t]),g=ko(h=>Zt.createElement(Ys,{column:c,index:h,key:`splitter-${h}`,onDrag:p,onDragEnd:f,onDragStart:u}),[p,f,u,c]);return si(()=>{let[h,b]=Rd(m,d,g,i.current);r.current=b,s.current=h},[m,g,d]),{content:s.current||[],rootRef:n}};function Rd(e,t,o,n){let r=No(e,t),s=oi(r),i=[],a=[];for(let l=0;l<e.length;l++){let c=e[l];if(l===0&&s[l]&Ut&&(i.push(ii(l)),a.push({placeholder:!0,shim:!0})),c.key==null){let d=n[l]||(n[l]=vd());i.push(Zt.cloneElement(c,{key:d}))}else i.push(c);a.push(r[l]),l>0&&s[l]&Ut?(i.push(ii(l)),a.push({placeholder:!0})):s[l]&Gt&&(i.push(o(i.length)),a.push({splitter:!0}))}return[i,a]}function Ld(e,t,o,n){return Md(t,o)?e.map((s,i)=>{let a=t[i],{currentSize:l,flexOpen:c,flexBasis:d}=a,m=l!==void 0;if(m||c){let{flexBasis:u}=s.props.style||{},p=m?a.currentSize:d;return p!==u?Zt.cloneElement(s,{style:{...s.props.style,flexBasis:p,[n]:"auto"}}):s}else return s}):e}function Md(e,t){let o=[];e.forEach((d,m)=>{d.currentSize!==void 0&&o.push(m)});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 d=t<0?-1:1;t=Math.max(0,r-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 ii(e){return Zt.createElement(Po,{shim:e===0,key:`placeholder-${e}`})}function Pd(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 kd}from"react/jsx-runtime";var qn="hwFlexbox",li=Nd(function(t,o){let{breakPoints:n,children:r,column:s,className:i,flexFill:a,gap:l,fullPage:c,id:d,onSplitterMoved:m,resizeable:u,row:p,spacing:f,splitterSize:g,style:h,...b}=t,{content:x,rootRef:I}=ai({children:r,onSplitterMoved:m,style:h}),y=Hd(qn,i,{[`${qn}-column`]:s,[`${qn}-row`]:p,"flex-fill":a,"full-page":c});return kd("div",{...b,className:y,"data-resizeable":u||void 0,id:d,ref:Cd(I,o),style:{...h,gap:l,"--spacing":f},children:x})});li.displayName="Flexbox";var Jn=li;import{useCallback as Tm}from"react";var It={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 ir,useContext as $i,useEffect as xm,useRef as Fi,useState as Em}from"react";import rr from"react";import{uuid as hi}from"@vuu-ui/vuu-utils";import Yt from"react";import{uuid as mi}from"@vuu-ui/vuu-utils";import Xt,{cloneElement as Ad}from"react";import{useCallback as St}from"react";var ye=new Map,Me=new Map,ci=e=>ye.get(e),ui=e=>ye.has(e),di=(e,t)=>ye.set(e,t),Tt=()=>{let e=St((i,a)=>{let l=Me.get(i);if(l)return a!==void 0&&l[a]!==void 0?l[a]:a!==void 0?void 0:l},[]),t=St((i,a,l)=>{if(a===void 0)Me.set(i,l);else if(Me.has(i)){let c=Me.get(i);Me.set(i,{...c,[a]:l})}else Me.set(i,{[a]:l})},[]),o=St((i,a)=>{if(Me.has(i)){if(a===void 0)Me.delete(i);else if(Me.get(i)[a]){let{[a]:c,...d}=Me.get(i);Object.keys(d).length>0?Me.set(i,d):Me.delete(i)}}},[]),n=St((i,a)=>{let l=ye.get(i);if(l)return a!==void 0?l[a]:l},[]),r=St((i,a,l)=>{if(a===void 0)ye.set(i,l);else if(ye.has(i)){let c=ye.get(i);ye.set(i,{...c,[a]:l})}else ye.set(i,{[a]:l})},[]),s=St((i,a)=>{if(ye.has(i)){if(a===void 0)ye.delete(i);else if(ye.get(i)[a]){let{[a]:c,...d}=ye.get(i);Object.keys(d).length>0?ye.set(i,d):ye.delete(i)}}},[]);return{loadSessionState:e,loadState:n,saveSessionState:t,saveState:r,purgeState:s,purgeSessionState:o}};var pi=e=>e.flexDirection==="column"?["height","width"]:["width","height"],Od={},jt=(e,t="0")=>{let[o,n]=Oo(U(e),e.props,t);return Xt.cloneElement(e,o,n)},er=(e,t)=>{let o=U(e),[n,r]=Oo(o,e.props,"0",void 0,t);return Ad(e,n,r)},kE=(e,t,o)=>{let[n,r]=Oo(e,t,"0",void 0,o);return{...t,...n,type:e,children:r}};function zd(e,t,o="0",n=null,r){var g,h;let{active:s=0,"data-path":i,path:a=i,id:l,style:c}=$(r),d=U(r)===e&&o===a,m=d?l:(g=t.id)!=null?g:mi(),u=e==="Stack"?(h=t.active)!=null?h:s:void 0,p=m,f=d?c:Bd(e,t,n);return fs(e)?{id:m,key:p,path:o,style:f,type:e,active:u}:{id:m,key:p,style:f,"data-path":o}}function Oo(e,t,o,n=null,r){var c,d;let s=zd(e,t,o,n,r);if(t.layout&&!r)return[s,[zo(t.layout,`${o}.0`)]];let i=(d=r==null?void 0:r.children)!=null?d:(c=r==null?void 0:r.props)==null?void 0:c.children,l=t.dropTarget&&i?i:Fd(e,t.children,o,i);return[s,l]}function Fd(e,t,o="0",n){let r=Array.isArray(t)?t:Xt.isValidElement(t)?[t]:[];return he(e)?r.map((s,i)=>{let a=U(s),l=U(n==null?void 0:n[i]);if(!l||a===l){let[c,d]=Oo(a,s.props,`${o}.${i}`,e,n==null?void 0:n[i]);return Xt.cloneElement(s,c,d)}return n==null?void 0:n[i]}):t}var Bd=(e,t,o)=>{let{style:n=Od}=t;if(e==="Flexbox"&&(n={flexDirection:t.column?"column":"row",...n,display:"flex"}),n.flex){let{flex:r,...s}=n;n={...s,...An(typeof r=="number"?r:0)}}else o==="Stack"?n={...n,...An(1)}:o==="Flexbox"&&(n.width||n.height)&&n.flexBasis===void 0&&(n={...n,flexBasis:"auto",flexGrow:0,flexShrink:0});return n};function zo({id:e=mi(),type:t,children:o,props:n,state:r},s){let i=t.match(/^[a-z]/)?t:it[t];if(i===void 0)throw Error(`layoutUtils unable to create component from JSON, unknown type ${t}`);return r&&di(e,r),Xt.createElement(i,{id:e,...n,key:e,path:s},o?o.map((a,l)=>zo(a,`${s}.${l}`)):void 0)}function fi(e){return gi(e)}function gi(e){let t=U(e),{id:o,children:n,type:r,...s}=$(e),i=ui(o)?ci(o):void 0;return{id:o,type:t,props:$d(s),state:i,children:Xt.Children.map(n,gi)}}function $d(e){if(e){let{path:t,...o}=e,n={};for(let[r,s]of Object.entries(o))n[r]=Qn(s);return n}}function Qn(e){if(typeof e=="string"||typeof e=="number"||typeof e=="boolean")return e;if(Array.isArray(e))return e.map(Qn);if(typeof e=="object"&&e!==null){let t={};for(let[o,n]of Object.entries(e))t[o]=Qn(n);return t}}function bi(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 Fo(e,t,o){let{active:n,children:r=[],path:s}=$(e),i=G(t,"path"),{idx:a,finalStep:l}=Ne(s,i,!0),[c,d]=l?Kd(e,r,o):[n,r==null?void 0:r.map((u,p)=>p===a?Fo(u,t,o):u)],m=U(e)==="Stack"?Array.isArray(c)?c[0]:c:n;return Yt.cloneElement(e,{active:m},d)}function Kd(e,t,o){let n=G(e,"path"),r=t==null?void 0:t.length,{id:s=hi()}=$(o);return r?[r,t.concat(ue(o,`${n}.${r}`,{id:s,key:s}))]:[0,[ue(o,`${n}.0`,{id:s})]]}function Bo(e,t,o,n,r,s,i){let{active:a,children:l,path:c}=$(e),d=G(t,"path"),{idx:m,finalStep:u}=Ne(c,d),[p,f]=u?Vd(e,l,m,o,n,r,s,i):[a,l.map((h,b)=>b===m?Bo(h,t,o,n,r,s,i):h)],g=U(e)==="Stack"?p:a;return Yt.cloneElement(e,{active:g},f)}function Vd(e,t,o,n,r,s,i,a){let l=Le(n);return l!=null&&l.width&&(l!=null&&l.height)?Wd(e,t,o,n,r,i,a):yi(e,t,o,n,r,(s==null?void 0:s.width)||(s==null?void 0:s.height),i)}var _d=(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 Wd(e,t,o,n,r,s,i){let{style:{flexDirection:a}}=$(e),[l,c,d]=ei(a),{[c]:m,[l]:u}=Le(n),p=G(t[o],"path"),f=_d(a,r,s,i),[g,h]=m<s[c]?[Wt(n,d,p,s,i),u]:[n,void 0],b=f?Fe(p,f,{flexGrow:0,flexShrink:0}):void 0;return m>s[c]&&(t=t.map(x=>{if(G(x,"placeholder"))return x;{let{[c]:I}=Le(x);return I&&I<m?Wt(x,d,G(x,"path")):x}})),yi(e,t,o,g,r,h,s,b)}function yi(e,t,o,n,r,s,i,a){let l=G(e,"path"),c=0,d=!t||t.length===0?[n]:t.reduce((m,u,p)=>{if(o===p){let[f,g]=Gd(e,u,n,i);r==="before"?a?m.push(a,g,f):m.push(g,f):a?m.push(f,g,a):m.push(f,g),c=m.indexOf(g)}else m.push(u);return m},[]).map((m,u)=>u<c?m:ue(m,`${l}.${u}`));return[c,d]}function Gd(e,t,o,n){let r=hi(),{version:s=0}=$(o);if(s+=1,U(e)==="Flexbox"){let[i]=pi(e.props.style),a=6,l={[i]:(n[i]-a)/2},c=jn(t,i,l),d=jn(o,i,l);return[Yt.cloneElement(t,{style:c}),Yt.cloneElement(o,{id:r,version:s,style:d})]}else{let{style:{left:i,top:a,flex:l,...c}={left:void 0,top:void 0,flex:void 0}}=$(o);return[t,Yt.cloneElement(o,{id:r,version:s,style:c})]}}import{cloneElement as Xd}from"react";import $o from"react";function xi(e,{target:t,replacement:o}){return tr(e,t,o)}function tr(e,t,o){let n=G(t,"path"),r=G(t,"resizeable"),{style:s}=$(t),i=jt($o.cloneElement(o,{resizeable:r,style:{...s,...o.props.style}}),n);return xe(e,t,i)}function xe(e,t,o,n){if(e===t)return o;let{idx:r,finalStep:s}=Ne(G(e,"path"),G(t,"path")),i=e.props.children.slice();return s?n?n===It.MINIMIZE?i[r]=Ud(e,i[r]):n===It.RESTORE&&(i[r]=Zd(i[r])):i[r]=o:i[r]=xe(i[r],t,o,n),$o.cloneElement(e,void 0,i)}function Ud(e,t){let{style:o}=$(e),{style:n}=$(t),{width:r,height:s,flexBasis:i,flexShrink:a,flexGrow:l,...c}=n,d={width:r,height:s,flexBasis:i,flexShrink:a,flexGrow:l},m={...c,flexBasis:0,flexGrow:0,flexShrink:0},u=o.flexDirection==="row"?"vertical":o.flexDirection==="column"?"horizontal":!1;return u?$o.cloneElement(t,{collapsed:u,restoreStyle:d,style:m}):t}function Zd(e){let{style:t,restoreStyle:o}=$(e),{flexBasis:n,flexShrink:r,flexGrow:s,...i}=t,a={...i,...o};return $o.cloneElement(e,{collapsed:!1,style:a,restoreStyle:void 0})}function Ei(e,{fromIndex:t,path:o,toIndex:n}){let r=le(e,o,!0),{children:s}=$(r),i=jd(s,t,n),a=Xd(r,void 0,i);return xe(e,r,a)}function jd(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 pe={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 ct from"react";function or(e,{path:t}){let o=le(e,t),n=Ge(e,t);if(n===null)return e;let{children:r}=$(n);if(r.length>1&&Si(r,t)){let{style:{flexBasis:s,display:i,flexDirection:a,...l}}=$(n),c=G(n,"path"),d=xe(e,n,Fe(c,s,l));for(;(n=Ge(d,c))&&G(n,"path")!=="0";){let{children:m}=$(n);if(Si(m)){c=G(n,"path");let{style:{flexBasis:u,display:p,flexDirection:f,...g}}=$(n);d=xe(e,n,Fe(c,u,g))}else if(Qd(m))d=wi(e,n);else break}return d}return Ti(e,o)}function Ti(e,t){let o=$(e),{children:n,path:r,preserve:s}=o,{active:i}=o,{idx:a,finalStep:l}=Ne(r,G(t,"path")),c=U(e),d=n.slice();if(l){if(d.splice(a,1),i!==void 0&&i>=a&&(i=Math.max(0,i-1)),d.length===1&&!s&&r!=="0"&&c.match(/Flexbox|Stack/))return Yd(e,d[0]);!d.some(qd)&&d.some(vi)&&(d=Jd(d))}else d[a]=Ti(d[a],t);return d=d.map((m,u)=>ue(m,`${r}.${u}`)),ct.cloneElement(e,{active:i},d)}function Yd(e,t){let o=U(e),{path:n,style:{flexBasis:r,flexGrow:s,flexShrink:i,width:a,height:l}}=$(e),c=ue(t,n);if(n==="0")c=ct.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]:m,...u}}=c.props;c=ct.cloneElement(c,{flexFill:void 0,style:{...u,flexGrow:s,flexShrink:i,flexBasis:r,width:a,height:l}})}return c}var qd=e=>e.props.style.flexGrow>0,vi=e=>{let{width:t,height:o,flexGrow:n}=e.props.style;return n===0&&typeof t!="number"&&typeof o!="number"},Jd=e=>e.map(t=>vi(t)?ct.cloneElement(t,{style:{...t.props.style,flexGrow:1}}):t),Qd=e=>{if(e&&e.length>0){let t=G(e[0],"placeholder"),o=!1;for(let n=1;n<e.length;n++){if(o=G(e[n],"placeholder"),t&&o)return!0;t=o}}},wi=(e,t)=>{let{children:o,path:n}=$(e),{idx:r,finalStep:s}=Ne(n,G(t,"path")),i=o.slice();return s?i[r]=em(t):i[r]=wi(i[r],t),i=i.map((a,l)=>ue(a,`${n}.${l}`)),ct.cloneElement(e,void 0,i)},em=e=>{let{children:t}=$(e),o=[],n=[];for(let s=0;s<t.length;s++)G(t[s],"placeholder")?n.push(t[s]):(n.length===1?o.push(n.pop()):n.length>0&&(o.push(Ii(n)),n.length=0),o.push(t[s]));n.length===1?o.push(n.pop()):n.length>0&&o.push(Ii(n));let r=G(e,"path");return ct.cloneElement(e,void 0,o.map((s,i)=>ue(s,`${r}.${i}`)))},Ii=([e,...t])=>{let o=G(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 ct.cloneElement(e,{style:{...o,flexBasis:n,flexGrow:r,flexShrink:s}})},Si=(e,t)=>e.every(o=>G(o,"placeholder")||t&&G(o,"path")===t);import nr from"react";function Di(e,{path:t,size:o}){let n=le(e,t,!0),{style:r}=$(n),s={...r,width:o},i=nr.cloneElement(n,{style:s});return xe(e,n,i)}function Ri(e,{path:t,sizes:o}){let n=le(e,t,!0),{children:r,style:s}=$(n),i=s.flexDirection==="column"?"height":"width",a=tm(r,o,i),l=nr.cloneElement(n,void 0,a);return xe(e,n,l)}function tm(e,t,o){return e.map((n,r)=>{let{style:{[o]:s,flexBasis:i}}=$(n),a=t[r],{currentSize:l,flexBasis:c}=a,m=l!==void 0?a.currentSize:c;return m===void 0||s===m||i===m?n:nr.cloneElement(n,{style:om(n.props.style,o,m)})})}function om(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 nm}from"@vuu-ui/vuu-utils";import Ko from"react";var Li=e=>{let[t]=U(e);return t===t.toLowerCase()};function qt(e,t,o,n,r,s){let{children:i,path:a}=$(e),l=G(t,"path"),{idx:c,finalStep:d}=Ne(a,l),m=d?rm(e,i,t,o,n,r,s):i.map((u,p)=>p===c?qt(u,t,o,n,r,s):u);return Ko.cloneElement(e,void 0,m)}function rm(e,t,o,n,r,s,i){let a=Le(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 im(t,o,n,r,s,i)}return sm(e,t,o,n,r)}function sm(e,t,o,n,r){var E;let{version:s=0}=$(n),i=G(o,"path"),{type:a,flexDirection:l,showTabs:c}=Pi(r),[d,m,u]=am(a,o,n,l,r),p=Mi(r),f=p?1:0,g={resizeable:!0,style:u,version:s+1},b={[Li(o)?"data-resizeable":"resizeable"]:!0,style:m},x=a==="Stack"?{showTabs:c}:void 0,I=a==="Flexbox"?{splitterSize:(E=U(e)==="Flexbox"&&e.props.splitterSize)!=null?E:void 0}:void 0,y=nm(),S=Ko.createElement(it[a],{active:f,id:y,key:y,path:G(o,"path"),flexFill:G(o,"flexFill"),...I,...x,style:d,resizeable:G(o,"resizeable")},p?[ue(o,`${i}.0`,b),jt(Ko.cloneElement(n,g),`${i}.1`)]:[jt(Ko.cloneElement(n,g),`${i}.0`),ue(o,`${i}.1`,b)]);return t.map(v=>v===o?S:v)}function im(e,t,o,n,r,s){let{flexDirection:i}=Pi(n),a=i==="column"?"row":"column",l=Mi(n),[c,d,m,u]=s,[p,f]=i==="column"?[d-r.top,r.bottom-u]:[c-r.left,r.right-m],g=G(t,"path"),h=0,b=Li(t)?"data-resizeable":"resizeable",x=[];p&&x.push(l?ue(t,`${g}.${h++}`,{[b]:!0,style:{flexBasis:p,flexGrow:1,flexShrink:1}}):Fe(`${g}.${h++}`,p,{flexGrow:0,flexShrink:0})),x.push(Wt(o,a,`${g}.${h++}`,r,s)),f&&x.push(l?Fe(`${g}.${h++}`,0):ue(t,`${g}.${h++}`,{[b]:!0,style:{flexBasis:0,flexGrow:1,flexShrink:1}}));let I=Yn(i,t.props,x,g);return e.map(y=>y===t?I:y)}function am(e,t,o,n,r){let s={...t.props.style,flexDirection:n},i=e==="Flexbox"&&n==="column"?"height":"width",a=Xn(o,i,r),l=Xn(t,i);return[s,l,a]}var Mi=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 Pi(e){return e.position.Header?{type:"Stack",flexDirection:"column",showTabs:!0}:{type:"Flexbox",flexDirection:e.position.EastOrWest?"row":"column"}}var Ai=(e,t)=>{switch(t.type){case pe.ADD:return mm(e,t);case pe.DRAG_DROP:return dm(e,t);case pe.MAXIMIZE:return um(e,t);case pe.REMOVE:return or(e,t);case pe.REPLACE:return xi(e,t);case pe.SET_PROP:return Ci(e,t);case pe.SET_PROPS:return cm(e,t);case pe.SET_TITLE:return Ci(e,{type:"set-prop",path:t.path,propName:"title",propValue:t.title});case pe.SPLITTER_RESIZE:return Ri(e,t);case pe.LAYOUT_RESIZE:return Di(e,t);case pe.SWITCH_TAB:return lm(e,t);case pe.MOVE_CHILD:return Ei(e,t);default:return e}},lm=(e,{path:t,nextIdx:o})=>{let n=le(e,t,!0),r=rr.cloneElement(n,{active:o});return xe(e,n,r)},Ci=(e,{path:t,propName:o,propValue:n})=>{let r=le(e,t,!0),s=rr.cloneElement(r,{[o]:n});return xe(e,r,s)},cm=(e,{path:t,props:o})=>{let n=le(e,t,!0),r=rr.cloneElement(n,o);return xe(e,n,r)},um=(e,{path:t,type:o})=>{if(t){let n=le(e,t,!0);return xe(e,n,n,o)}else return e},dm=(e,t)=>{var f,g;let{draggedReactElement:o,dragInstructions:n,dropTarget:r}=t,s=r.component,{pos:i}=r,a=((f=i==null?void 0:i.position)==null?void 0:f.Header)&&U(s)==="Stack",{id:l,version:c}=$(o),d=Le(o),m;if(a){let[h,b]=bi(s,i);h===void 0?m=Fo(e,s,o):m=Bo(e,h,o,b)}else!d&&((g=i==null?void 0:i.position)!=null&&g.Centre)?m=tr(e,s,o):m=pm(e,r,o);if(n.DoNotRemove)return m;let u=Ue(m,h=>h.id===l&&h.version===c),p=G(u,"path");return or(m,{path:p,type:"remove"})},mm=(e,{path:t,component:o})=>Fo(e,le(e,t),o),pm=(e,t,o)=>{let{component:n,pos:r,clientRect:s,dropRect:i}=t,a=G(n,"path");if(a==="0.0")return qt(e,n,o,r);let l=Ge(e,a);if(Hi(r,l)){let c=r.position.SouthOrEast?"after":"before";return Bo(e,n,o,c,r,s,i)}if(!Hi(r,l))return qt(e,n,o,r,s,i);if(he(U(l)))return qt(e,n,o,r);throw Error(`no support right now for position = ${r.position}`)},Hi=(e,t)=>e.position.Centre?ki(t)||Ni(t):e.position.NorthOrSouth?Ni(t):e.position.EastOrWest?ki(t):!1,Ni=e=>U(e)==="Flexbox"&&e.props.style.flexDirection==="column",ki=e=>U(e)==="Flexbox"&&e.props.style.flexDirection!=="column";import{createContext as fm}from"react";var gm=e=>console.log(`dispatch ${e.type}, have you forgotten to provide a LayoutProvider ?`),Jt=fm({dispatchLayoutProvider:gm,version:-1});import{useCallback as Vo,useRef as sr}from"react";var hm={},Oi=[0,0],bm=(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]},ym=e=>{let{offsetParent:t}=e;if(t===null)return Oi;{let{left:o,top:n}=t.getBoundingClientRect();return[o,n]}},zi=(e,t)=>{let o=sr(),n=sr(),r=sr(),s=Vo((c,d)=>{if(n.current&&r.current){let{dragOffsets:[m,u],targetPosition:p}=n.current,f=typeof c=="number"?c-m:p.left,g=typeof d=="number"?d-u:p.top;(f!==p.left||g!==p.top)&&(n.current.targetPosition.left=f,n.current.targetPosition.top=g,r.current.style.top=g+"px",r.current.style.left=f+"px")}},[]),i=Vo(c=>{if(n.current){let{dragInstructions:d,payload:m,originalCSS:u}=n.current;t({type:"drag-drop",draggedReactElement:m,dragInstructions:d,dropTarget:c}),console.log("[useLayoutDragDrop]",{dragInstructions:d}),r.current&&(d.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=Vo(c=>{if(o.current){let{payload:d,dragContainerPath:m,dragElement:u,dragRect:p,instructions:f=hm,path:g}=o.current,{current:h}=e,b={x:c.clientX,y:c.clientY},x=d!=null?d:le(h,g,!0),{id:I}=x.props,y=Le(x),S="",E="",v="",D=-1,P=-1,A=Oi,C=document.getElementById(I);if(C===null)[C,E,D,P]=bm(p,I,u);else{A=ym(C);let[T,R]=A,{width:L,height:H,left:N,top:w}=C.getBoundingClientRect();D=N-T,P=w-R,E=`width:${L}px;height:${H}px;left:${D}px;top:${P}px;z-index: 100;background-color:#ccc;opacity: 0.6;`,C.dataset.dragging="true",S=C.style.cssText}v=Un.initDrag(e.current,m,p,b,{drag:s,drop:i},y),C.style.cssText=E+v,r.current=C,n.current={payload:x,originalCSS:S,dragRect:p,dragOffsets:A,dragInstructions:f,targetPosition:{left:D,top:P}}}},[s,i,e]);return Vo(c=>{let{evt:d,...m}=c;console.log("prepare to drag",{options:m}),o.current={...m,dragContainerPath:""},Un.handleMousedown(d,a,m.instructions)},[a])};import{jsx as Ki}from"react/jsx-runtime";var Bi=e=>e.dropTarget,Im=e=>["drag-drop","remove","set-title","splitter-resize","switch-tab"].includes(e.type),ES=()=>{let e=Sm();return Ki("div",{children:`Context: ${e} `})},IS=e=>{let{children:t,layout:o,onLayoutChange:n}=e,r=Fi(void 0),s=Fi(t),[,i]=Em(null),a=ir(m=>{if(n){let u=Ue(m,Bi)||r.current,f=U(u)==="DraggableLayout"?$(u).children[0]:u,g=fi(f);n(g,"drag-root")}},[n]),l=ir((m,u=!1)=>{let p=Ai(r.current,m);p!==r.current&&(r.current=p,i({}),!u&&Im(m)&&a(p))},[a]),c=ir(m=>{switch(m.type){case"drag-start":{d(m);break}case"save":{a(r.current);break}default:{l(m);break}}},[l,a]),d=zi(r,c);return xm(()=>{if(o){let m=Ue(r.current,Bi),u=Es(m),p=zo(o,`${m.props.path}.0`),f=u?{type:pe.REPLACE,target:u,replacement:p}:{type:pe.ADD,path:m.props.path,component:p};l(f,!0)}},[l,o]),r.current===void 0?r.current=er(t):t!==s.current&&(r.current=er(t,r.current),s.current=t),Ki(Jt.Provider,{value:{dispatchLayoutProvider:c,version:0},children:r.current})},Be=()=>{let{dispatchLayoutProvider:e}=$i(Jt);return e},Sm=()=>{console.log({LayoutProviderContext:Jt});let{version:e}=$i(Jt);return e};import{jsx as vm}from"react/jsx-runtime";var Vi=function(t){let{path:o}=t,n=Be(),r=Tm(s=>{n({type:It.SPLITTER_RESIZE,path:o,sizes:s})},[n,o]);return vm(Jn,{...t,onSplitterMoved:r})};Vi.displayName="Flexbox";ae("Flexbox",Vi,"container");import{useForkRef as Wm}from"@salt-ds/core";import Gm from"classnames";import{forwardRef as Um,useMemo as Zm}from"react";import{useCallback as Xi,useEffect as Pm,useRef as cr,useState as Cm}from"react";import{useCallback as wm,useLayoutEffect as _i,useRef as Dm}from"react";var Gi=["height","width"],OS=["height"],zS=["width"],ut=new WeakMap,Ui=(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}},Wi=new ResizeObserver(e=>{for(let t of e){let{target:o,contentRect:n}=t,r=ut.get(o);if(r){let{onResize:s,measurements:i}=r,a=!1;for(let[l,c]of Object.entries(i)){let d=Ui(o,n,l);d!==c&&(a=!0,i[l]=d)}a&&s&&s(i)}}});function _o(e,t,o,n=!1){console.log("resizeObserver container",{ref:e.current});let r=Dm(t),s=wm(i=>{let a=i.getBoundingClientRect();return r.current.reduce((l,c)=>(l[c]=Ui(i,a,c),l),{})},[]);_i(()=>{let i=e.current,a=!1;async function l(){ut.set(i,{measurements:{}}),a=!1;let{fonts:c}=document;if(c&&await c.ready,!a){let d=ut.get(i);if(d){let m=s(i);d.measurements=m,Wi.observe(i),n&&o(m)}}}if(i){if(ut.has(i))throw Error("useResizeObserver attemping to observe same element twice");l()}return()=>{i&&ut.has(i)&&(Wi.unobserve(i),ut.delete(i),a=!0)}},[e,s,n,o]),_i(()=>{let i=e.current,a=ut.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 Rm(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 Lm=([,e],[,t])=>t-e,lr=e=>Object.entries(e).sort(Lm).map(([t,o],n,r)=>[t,o,n<r.length-1?r[n+1][1]:9999]),ar=null,Mm=(e="salt")=>{let{xs:t,sm:o,md:n,lg:r,xl:s}=Rm(e);return lr({xs:t,sm:o,md:n,lg:r,xl:s})},Zi=e=>(ar===null&&(ar=Mm(e)),ar);var Hm=[],ji=({breakPoints:e,smallerThan:t},o)=>{let[n,r]=Cm(t?!1:"lg"),s=cr(document.body),i=cr(e?lr(e):Zi()),a=cr("lg"),l=Xi(d=>{if(i.current){for(let[m,u]of i.current)if(d>=u)return m}},[i]),c=Xi(d=>{if(t){let m=i.current.find(([u])=>u===t);if(m){let[,,u]=m;return d<u}}else return l(d);return d},[t,l]);return _o(o||s,i.current?["width"]:Hm,({width:d})=>{let m=c(d);m!==a.current&&(a.current=m,r(m))},!0),Pm(()=>{let d=o||s;if(d.current){let m=a.current;if(i.current){let{clientWidth:u}=d.current,p=c(u);a.current=p,p!==m&&r(p)}}},[r,c,o]),n};var Yi="data-collapsible",Nm={[Yi]:!0,"data-pad-start":!0,"data-pad-end":!0},km=e=>{var t;return(t=Nm[e])!=null?t:!1},Am=e=>e===Yi,Om={dynamic:"dynamic",instant:"instant",true:"instant"},zm=e=>{var t;return(t=Om[e])!=null?t:"none"},US=e=>Object.keys(e).reduce((t,o)=>{let[n,r]=t;if(km(o)){let s=Am(o)?zm(e[o]):e[o];n[o]=s,r[o]=void 0}return t},[{},{}]);import{getUniqueId as Fm}from"@vuu-ui/vuu-utils";import{cloneElement as Bm,isValidElement as $m,useCallback as Km,useMemo as qi,useRef as ur}from"react";var Vm=["xs","sm","md","lg","xl"],_m=12,Ji=({children:e,cols:t,style:o})=>{let n=ur(null),r=ur(null),s=ur(),i=t!=null?t:_m,l=(o==null?void 0:o.flexDirection)==="column"?"height":"width",c=qi(()=>Array.isArray(e)?e:$m(e)?[e]:[],[e]),d=Km((m,u)=>{let p=No(m,u,Vm),f=[],g=[];for(let h=0;h<m.length;h++){let b=m[h],{style:{flex:x,...I}}=b.props;f.push(Bm(b,{key:Fm(),style:{...I,"--parent-col-count":i}})),g.push(p[h])}return[f,g]},[i]);return qi(()=>{let[m,u]=d(c,l);r.current=u,s.current=m},[d,c,l]),{cols:i,content:s.current,rootRef:n}};import{jsx as Xm}from"react/jsx-runtime";var Wo="hwFluidGrid",dr=Um(function(t,o){let{breakPoints:n,children:r,column:s,cols:i=12,className:a,flexFill:l,gap:c=3,fullPage:d,id:m,onSplitterMoved:u,resizeable:p,row:f,showGrid:g,spacing:h,splitterSize:b,style:x,...I}=t,y=Zm(()=>bt(r),[r]),{cols:S,content:E,rootRef:v}=Ji({children:y,cols:i,style:x}),D=ji({breakPoints:n},v),P=Gm(Wo,a,{[`${Wo}-column`]:s,[`${Wo}-row`]:f,[`${Wo}-show-grid`]:g,"flex-fill":l,"full-page":d}),A={...x,"--spacing":h,"--grid-col-count":S,"--grid-gap":c};return Xm("div",{...I,className:P,"data-breakpoint":D,"data-cols":S,"data-resizeable":p||void 0,id:m,ref:Wm(v,o),style:A,children:E})});dr.displayName="FluidGrid";import{jsx as jm}from"react/jsx-runtime";var Qi=function(t){return jm(dr,{...t})};Qi.displayName="FluidGrid";ae("FluidGrid",Qi,"container");import{createContext as Ym,useCallback as PT,useContext as qm,useMemo as CT}from"react";import{jsx as NT}from"react/jsx-runtime";var Jm={isDragSource:!1,isDropTarget:!1,register:()=>{}},Qm=()=>console.log("have you forgotten to provide a DragDrop Provider ?"),ep=Ym({registerDragDropParty:Qm});var ea=e=>{var r,s;let{dragSources:t,dropTargets:o,registerDragDropParty:n}=qm(ep);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 Jm};import{useCallback as eo,useMemo as mp,useRef as dt,useState as pp}from"react";import{useCallback as Qt,useMemo as dp,useRef as ca}from"react";var tp=["left","right"],op=["top","bottom"],Go=":not(.wrapped)",ta=':not([aria-hidden="true"])',oa=e=>{let t=e.cloneNode(!0);return t.removeAttribute("id"),t.dataset.index="-1",t},np=(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,d]=t==="width"?tp:op,m=a&&!o?0:parseInt(l.getPropertyValue(`margin-${c}`),10),u=i&&!o?0:parseInt(l.getPropertyValue(`margin-${d}`),10),p=r;if(parseInt(l.getPropertyValue("flex-shrink"),10)>0){let g=parseInt(l.getPropertyValue("flex-basis"),10);!isNaN(g)&&g>0&&(p=g)}return[s,m+p+u]},rp={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=>rp[e],na=(e,t)=>{let o=e.find(n=>n.id===t);if(o)return o},ra=(e,t)=>{e.splice(t,1);for(let o=t;o<e.length;o++)e[o].currentIndex-=1},vt=(e,t,o,n,r)=>{var m;let s=[],{DIMENSION:i}=Pe(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,d=typeof(n==null?void 0:n.to)=="number"?Math.min(n.to+2,l-1):l-1;for(let u=c;u<=d;u++){let p=a[u],[f,g]=np(p,i),h=u===l-1,b=p.id,x=parseInt((m=p.dataset.index)!=null?m:"-1");s.push({currentIndex:u,dataIndex:isNaN(x)?-1:x,id:b,index:u,isDraggedItem:r===b,isLast:h,isOverflowIndicator:p.dataset.index==="overflow",element:p,start:f,end:f+g,size:g,mid:f+g/2})}return s},wt=(e,t=!1)=>{let o=e.findIndex(r=>r.isDraggedItem),{index:n}=e[o];if(t){let r=e.filter(i=>!i.isDraggedItem).reduce((i,a)=>Math.min(i,a.index),Number.MAX_SAFE_INTEGER);if(r>0&&!(n===0&&r===1))return r+o}return o},mr=(e,t)=>{let o=wt(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},d=r.start,m=r.end+i,u={...s,start:d,mid:Math.floor(d+(m-d)/2),end:m};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},d=r.start-i,m=r.end,u={...s,start:d,mid:Math.floor(d+(m-d)/2),end:m};e.splice(n,2,c,u)}},Dt=(e,t,o)=>{let n=e.length,r=wt(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 sa(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 sp}from"@salt-ds/core";import ip from"classnames";import{forwardRef as ap,useCallback as lp}from"react";import{Portal as cp}from"@vuu-ui/vuu-popups";import{jsx as ia}from"react/jsx-runtime";var up=e=>e.split(" ").map(t=>`vuuDraggable-${t}`),Uo=ap(function({wrapperClassName:t,element:o,onTransitionEnd:n,style:r,scale:s=1},i){let a=lp(c=>{c&&(c.innerHTML="",c.appendChild(o),s!==1&&(c.style.transform=`scale(${s},${s})`))},[o,s]),l=sp(i,a);return ia(cp,{children:ia("div",{className:ip("vuuDraggable",...up(t)),ref:l,onTransitionEnd:n,style:r})})}),pr=e=>{let t=document.createElement("div");return t.className="vuuDraggable-spacer",e&&t.addEventListener("transitionend",()=>{e.current=!1}),t},aa=()=>{let e=document.createElement("div");return e.className="vuuDraggable-dropIndicatorPosition",e},la=e=>{let t=document.createElement("div");return t.className="vuuDraggable-dropIndicator",e&&t.addEventListener("transitionend",()=>{e.current=!1}),t};var ua=()=>{let e=ca(0),t=ca(!1),o=dp(()=>[pr(t),pr()],[]),n=Qt(()=>o.forEach(l=>l.remove()),[o]),r=Qt((l,c="width")=>{let[d,m]=o;e.current=requestAnimationFrame(()=>{t.current=!0,d.style.cssText=`${c}: 0px`,m.style.cssText=`${c}: ${l}px`,o[0]=m,o[1]=d})},[o]),s=Qt(()=>{e.current&&(cancelAnimationFrame(e.current),e.current=0)},[]),i=Qt((l,c,d,m=!1,u="static",p="horizontal")=>{if(c){let f=p==="horizontal"?"width":"height",[g,h]=o;if(s(),m)t.current?(n(),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),r(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"&&mr(l,u)}},[r,s,n,o]),a=Qt((l,c,d,m=!1,u="static",p="horizontal")=>{let f=p==="horizontal"?"width":"height",[g,h]=o;s(),m?(t.current?(n(),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),r(d,f)):(g.style.cssText=`${f}: ${d}px`,c.element.after(g)),u!=="static"&&mr(l,u)},[r,s,n,o]);return{displaceItem:i,displaceLastItem:a,clearSpacers:n}};var da=({draggableRef:e,onDrop:t,orientation:o="horizontal",containerRef:n,itemQuery:r="*",selected:s,viewportRange:i})=>{let a=dt(),l=dt(!1),c=dt(-1),d=dt([]),m=dt(!1),[u,p]=pp(!1),{clearSpacers:f,displaceItem:g,displaceLastItem:h}=ua(),b=dt(),x=`:is(${r}${Go}${ta},.vuuOverflowContainer-OverflowIndicator)`,I=T=>d.current.findIndex(R=>R.id===T.id),y=dt();y.current=i;let S=eo(()=>{f()},[f]),E=eo((T,R,L)=>{let{current:H}=n,{current:N}=b;if(H&&N){d.current=vt(H,o,x,y.current),T==="fwd"?d.current.push(N):d.current.unshift(N);let{size:w}=N,O=c.current+w/2,{current:k}=d,z=Dt(k,O,"fwd");if(z){let Z=I(z),V=k[Z];L&&T==="fwd"?h(k,k[k.length-1],w,!1,"static",o):g(k,V,w,!0,"static",o)}}},[n,g,h,x,o]),v=eo(T=>{let L=T.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:N,CLIENT_SIZE:w}=Pe(o),{id:M}=L,{[N]:O,[w]:k}=H;l.current=O>k;let z=d.current=vt(H,o,x,i,M),K=wt(z),Z=z[K];if(Z&&H){b.current=Z;let V=Z.isLast?h:g;console.log({indexOfDraggedItem:K,draggedItem:Z}),V(z,Z,Z.size,!1,"static",o)}}},[n,g,h,x,r,o,s,i]),[D,P]=mp(()=>{let T=!1;return[H=>{if(!T){T=!0;let N=H.element.querySelector(".vuuPopupMenu");if(N){let w=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!0});N.dispatchEvent(w)}}},H=>{if(T){T=!1;let N=H.element.querySelector(".vuuPopupMenu");if(N){let w=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!0});N.dispatchEvent(w)}}}]},[]),A=eo((T,R)=>{let{current:L}=b;if(L&&e.current&&n.current){c.current=T;let{current:H}=d,N=Dt(H,T,R);if(N&&!N.isDraggedItem)if(N.isOverflowIndicator)p(m.current=!0),D(N);else{let{size:w}=L;(I(N)===H.length-1?h:g)(H,N,w,!0,R,o);let k=H.at(-1);P(k),p(m.current=!1)}a.current=R}},[n,g,h,e,P,o,D]),C=eo(()=>{var H;f();let{current:T}=d,R=wt(T),L=T[R];if(L)if(a.current=void 0,m.current)t(L.index,-1);else{let N=wt(T,!0);t(L.index,N)}if(p(!1),n.current){let N=(H=n.current)==null?void 0:H.scrollTop;R<T.length&&(n.current.scrollTop=N)}},[f,n,t]);return{beginDrag:v,drag:A,drop:C,handleScrollStart:S,handleScrollStop:E,revealOverflowedItems:u}};import{useCallback as to,useRef as $e,useState as fa}from"react";import{useCallback as ma,useMemo as fp}from"react";var pa=()=>{let e=fp(()=>aa(),[]),t=ma(()=>e.remove(),[e]);return{positionDropIndicator:ma((n,r="end")=>(r==="end"?n.element.after(e):n.element.before(e),e),[e]),clearSpacer:t}};import{jsx as bp}from"react/jsx-runtime";var gp=':not([data-overflowed="true"])',hp=':not([aria-hidden="true"])',ga=({draggableRef:e,onDrop:t,orientation:o="horizontal",containerRef:n,itemQuery:r="*",selected:s,viewportRange:i})=>{let a=$e(),l=$e(null),c=$e(null),d=$e(""),m=$e(!1),u=$e(-1),p=$e([]),f=$e(!1),[g,h]=fa(!1),[b,x]=fa(),{clearSpacer:I,positionDropIndicator:y}=pa(),S=$e(),E=`:is(${r}${gp}${hp},[data-overflow-indicator])`,v=H=>p.current.findIndex(N=>N.id===H.id),D=(H,N,w)=>{H.start+=N,H.mid+=N,H.end+=N,typeof w=="number"&&(H.currentIndex+=w)},P=$e();P.current=i;let A=to(()=>{I()},[I]),C=to((H,N,w)=>{let{current:M}=n,{current:O}=S;if(M&&O){p.current=vt(M,o,E,P.current);let{size:k}=O,K=u.current+k/2,{current:Z}=p,V=Dt(Z,K,"fwd");V&&y(w&&H==="fwd"?Z[Z.length-1]:V,"start")}},[n,y,E,o]),T=to(H=>{let w=H.target.closest(r);w.ariaSelected&&Array.isArray(s)&&s.length>1&&console.log("its a selected element, and we have a multi select");let{current:M}=n;if(M&&w){let{SCROLL_SIZE:O,CLIENT_SIZE:k}=Pe(o),{id:z}=w,{[O]:K,[k]:Z}=M;m.current=K>Z;let V=p.current=vt(M,o,E,i),j=na(V,z);if(j&&M){let F=v(j);ra(V,F),S.current=j;let{current:B}=P;if(B!=null&&B.atEnd)for(let J=0;J<V.length;J++)D(V[J],j.size);for(let J=F;J<V.length;J++)D(V[J],-j.size,-1);let[q,Q]=j.isLast?[V[V.length-1],"end"]:[V[F],"start"];c.current=q,d.current=Q;let ie=y(q,Q),{top:X,left:Y,width:ee}=ie.getBoundingClientRect(),oe={top:j.isLast?B!=null&&B.atEnd&&!B.atStart?X+j.size-2:X-2:X-j.size-2,left:Y,width:ee,height:2};x(bp(Uo,{wrapperClassName:"dropIndicatorContainer",style:oe,ref:l,element:la()}))}}},[r,s,n,o,E,i,y]),R=to((H,N)=>{let{current:w}=c,{current:M}=S;if(M&&e.current&&n.current){let O=o==="horizontal"?"left":"top";u.current=H;let{current:k}=p,z=Dt(k,H,N);if(z&&z.index!==(w==null?void 0:w.index)){if(z.isOverflowIndicator)h(f.current=!0);else if(l.current){if(v(z)===k.length-1){let Z=k[k.length-1],j=y(Z,"start").getBoundingClientRect();l.current.style[O]=`${j.top}px`}else{let V=y(z,"start").getBoundingClientRect();l.current.style[O]=`${V.top}px`}h(f.current=!1)}c.current=z,a.current=N}}},[e,n,o,y]),L=to(()=>{I();let{current:H}=S,{current:N}=c,{current:w}=d,{current:M}=P;if(H&&M&&N){let{index:O}=H,k=w==="start",{index:z,currentIndex:K}=N;c.current=null,a.current=void 0,f.current?t(O,-1):O<z?t(O,k?K:K+1):t(O,k?z:z+1),x(void 0)}h(!1)},[I,t]);return{beginDrag:T,drag:R,drop:L,dropIndicator:b,handleScrollStart:A,handleScrollStop:C,revealOverflowedItems:g}};import{useCallback as Ke,useLayoutEffect as yp,useRef as Ce,useState as xp}from"react";import{useCallback as ha,useRef as Zo}from"react";var ba=({containerRef:e,onScrollingStopped:t,orientation:o="vertical"})=>{let n=Zo(null),r=Zo(!1),s=Zo(0),i=Zo("fwd"),a=ha((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=ha((c,d,m=30)=>{let{current:u}=e;if(u){let{SCROLL_POS:p,SCROLL_SIZE:f,CLIENT_SIZE:g}=Pe(o),{[p]:h,[f]:b,[g]:x}=u,I=c==="fwd"?b-x-h:h,y=Math.min(I,m);c==="fwd"?(i.current="fwd",u[p]=s.current=h+y):(i.current="bwd",u[p]=s.current=h-y),y===I?a(!0):(r.current=!0,n.current=window.setTimeout(()=>{l(c,d,m)},100))}},[e,o,a]);return{isScrolling:r,startScrolling:l,stopScrolling:a}};import{jsx as Dp}from"react/jsx-runtime";var Ep={beginDrag:()=>{},drag:()=>{},draggableRef:{current:null},drop:()=>{},isDragging:!1,isScrolling:!1,handleScrollStart:()=>{},handleScrollStop:()=>{},revealOverflowedItems:!1},ya={start:0,end:1e3,contraStart:0,contraEnd:1e3},Ip=()=>Ep,Sp=3,Tp=(e,t)=>e.closest(t),vp=e=>e.dataset.index==="overflow"&&e.parentElement!==null&&e.parentElement.classList.contains("overflowed"),wp=(e,t)=>{let o=`:is(${t}${Go},.vuuOverflowContainer-OverflowIndicator)`,r=Array.from(e.querySelectorAll(o)).pop();return[r,vp(r)]},Xo=({allowDragDrop:e,containerRef:t,draggableClassName:o,itemQuery:n="*",onDragStart:r,onDrop:s,onDropSettle:i,orientation:a,...l})=>{let c=Ce({start:0,end:0,contraStart:0,contraEnd:0}),[d,m]=xp({draggable:void 0,draggedItemIndex:-1,isDragging:!1}),u=Ce(null),p=Ce(),f=Ce(null),g=Ce(!1),h=Ce({x:0,y:0}),b=Ce({x:0,y:0}),x=Ce({x:0,y:0}),I=Ce(null),y=Ce(-1),S=Ce(-1),E=Ce(),{isDragSource:v,isDropTarget:D,register:P}=ea(l.id);l.id&&(v||D)&&P(l.id);let A=Ke(()=>{var ee;let{current:X}=S,Y=(ee=t.current)==null?void 0:ee.querySelector(`${n}[data-index="${X}"]`);Y&&Y.classList.remove("vuuDropTarget-settling"),S.current=-1,i==null||i(X),m(oe=>({...oe,draggable:void 0}))},[t,n,i]),C=Ke(X=>{if(t.current){let{POS:Y,SCROLL_POS:ee,SCROLL_SIZE:oe,CLIENT_SIZE:J}=Pe(a),{[ee]:ne,[oe]:fe,[J]:ge}=t.current,Ie=fe-ge,Se=ne<Ie,we=c.current.end,De=ne>0&&X-h.current[Y]<=c.current.start,Re=Se&&X-h.current[Y]>=we;return De?"bwd":Re?"fwd":""}},[t,a]),T=e===!0||e==="natural-movement"?da:e==="drop-indicator"?ga:Ip,R=Ke((X,Y,ee)=>{var oe;(oe=E.current)==null||oe.call(E,X,Y,ee)},[]),{isScrolling:L,startScrolling:H,stopScrolling:N}=ba({containerRef:t,onScrollingStopped:R,orientation:a}),w=Ke((X,Y)=>{y.current=Y,s==null||s(X,Y),S.current=Y},[s]),{beginDrag:M,drag:O,drop:k,handleScrollStart:z,handleScrollStop:K,...Z}=T({...l,containerRef:t,draggableRef:u,isDragSource:v,isDropTarget:D,itemQuery:n,onDrop:w,orientation:a});E.current=K;let V=Ke(X=>{let{CLIENT_POS:Y,CONTRA_CLIENT_POS:ee,CONTRA_POS:oe,POS:J}=Pe(a),{clientX:ne,clientY:fe}=X,{[Y]:ge,[ee]:Ie}=X,Se=b.current[J],we=b.current[oe],De=Math.abs(Se-ge);if((v?Math.abs(we-Ie):0)-De>5&&(c.current=ya),b.current.x=ne,b.current.y=fe,c.current===ya&&u.current){let _=b.current.x-h.current.x,W=b.current.y-h.current.y;u.current.style.top=`${W}px`,u.current.style.left=`${_}px`}else if(De>0&&u.current){let _=Se<ge?"fwd":"bwd",W=C(ge),te=b.current[J]-h.current[J];if(W&&g.current&&!L.current?(z(),H(W,1)):!W&&L.current&&N(),!L.current){let re=Math.round(Math.max(c.current.start,Math.min(c.current.end,te))),ce=a==="horizontal"?"left":"top";u.current.style[ce]=`${re}px`,O(re,_)}}},[O,u,C,z,v,L,a,H,N]),j=Ke(()=>{document.removeEventListener("mousemove",V,!1),document.removeEventListener("mouseup",j,!1),I.current=u.current,k(),m(X=>({...X,draggedItemIndex:-1,isDragging:!1})),p.current=void 0},[V,u,k]),F=Ke(X=>{let{clientX:Y,clientY:ee,target:oe}=X,J=Tp(oe,n),{current:ne}=t;if(ne&&J){let{CONTRA:fe,CONTRA_END:ge,DIMENSION:Ie,END:Se,SCROLL_SIZE:we,CLIENT_SIZE:De,START:Re}=Pe(a);p.current=J;let{[we]:_,[De]:W}=ne;g.current=_>W;let[te,re]=wp(ne,n),ce=ne.getBoundingClientRect(),Oe=J.getBoundingClientRect(),ze=Oe[Ie],{[Re]:je,[Se]:rt}=te.getBoundingClientRect();h.current.x=Y-Oe.left,h.current.y=ee-Oe.top,c.current.start=ce[Re],c.current.end=re?Math.max(je,ce.right-ze):g.current?ce[Re]+ce[Ie]-ze:rt-ze,c.current.contraStart=ce[fe],c.current.contraEnd=ce[ge],M(X);let{dataset:{index:_e="-1"}}=J;m({isDragging:!0,draggable:Dp(Uo,{element:oa(J),onTransitionEnd:A,ref:u,style:sa(Oe,ce),wrapperClassName:o}),draggedItemIndex:parseInt(_e)}),r==null||r(),document.addEventListener("mousemove",V,!1),document.addEventListener("mouseup",j,!1)}},[M,t,V,j,o,u,n,r,a,A]),B=Ke(X=>{let{CLIENT_POS:Y,POS:ee}=Pe(a),{[Y]:oe}=X;Math.abs(oe-x.current[ee])>Sp&&t.current&&(f.current&&(window.clearTimeout(f.current),f.current=null),document.removeEventListener("mousemove",B),document.removeEventListener("mouseup",q,!1),F(X))},[t,M,a]),q=Ke(()=>{f.current&&(window.clearTimeout(f.current),f.current=null),document.removeEventListener("mousemove",B,!1),document.removeEventListener("mouseup",q,!1)},[B]),Q=Ke(X=>{let{current:Y}=t;if(Y&&!X.defaultPrevented){let{clientX:ee,clientY:oe}=X;b.current.x=x.current.x=ee,b.current.y=x.current.y=oe,document.addEventListener("mousemove",B,!1),document.addEventListener("mouseup",q,!1),X.persist(),f.current=window.setTimeout(()=>{document.removeEventListener("mousemove",B,!1),document.removeEventListener("mouseup",q,!1),F(X.nativeEvent)},500)}},[t,F,B,q]),{current:ie}=I;return yp(()=>{if(ie&&t.current){let X=y.current,Y=t.current.querySelector(`${n}[data-index="${X}"]`);Y?(Y.classList.add("vuuDropTarget-settling"),requestAnimationFrame(()=>{let{top:ee,left:oe}=Y.getBoundingClientRect(),{top:J,left:ne}=ie.getBoundingClientRect();ne!==oe||J!==ee?(ie.classList.add("vuuDraggable-settling"),ie.style.top=`${ee}px`,ie.style.left=`${oe}px`):A()})):console.log(`dont have the dropped item (at ${X})`),I.current=null}},[t,n,ie,A]),{...Z,...d,isScrolling:L,onMouseDown:e?Q:void 0}};import Rp from"classnames";import{useCallback as xa,useLayoutEffect as Lp,forwardRef as Mp,useRef as fr}from"react";import{Input as Pp,useControlled as Ea}from"@salt-ds/core";import{jsx as Ia}from"react/jsx-runtime";var gr="vuuEditableLabel",jo=Mp(function({className:t,defaultEditing:o,defaultValue:n,editing:r,onChange:s,onEnterEditMode:i,onExitEditMode:a,value:l,...c},d){let m=fr(null),u=fr(!1),[p,f]=Ea({controlled:l,default:n!=null?n:"",name:"EditableLabel",state:"value"}),[g,h]=Ea({controlled:r,default:o!=null?o:!1,name:"EditableLabel",state:"editing"}),b=xa(A=>{h(u.current=A)},[]),x=fr(p);Lp(()=>{g&&m.current!==null&&(m.current.select(),m.current.focus())},[g,m]);let I=xa(()=>{b(!0),i&&i()},[i,b]),y=({cancelEdit:A=!1,allowDeactivation:C=!1}={})=>{b(!1);let T=x.current;T!==p&&(A?f(T):x.current=p),a&&a(T,p,C,A)},S=A=>{let{value:C}=A.target;f(C),s&&s(C)},E=()=>{I()},v=()=>{u.current&&y({allowDeactivation:!0})},D=A=>{g&&A.key==="Enter"?(A.stopPropagation(),y()):A.key==="ArrowRight"||A.key==="ArrowLeft"?A.stopPropagation():A.key==="Escape"&&y({cancelEdit:!0})},P=Rp(gr,t,{[`${gr}-editing`]:g});return Ia("div",{...c,className:P,onDoubleClick:E,"data-text":p,ref:d,children:g?Ia(Pp,{inputProps:{className:`${gr}-input`},value:p,onBlur:v,onChange:S,onKeyDown:D,inputRef:m,style:{padding:0},textAlign:"left",variant:"secondary"}):p})});import{makePrefixer as Hp}from"@salt-ds/core";var Cp=/[.*+?^${}()|[\]\\]/g;function Yo(e){return e.replace(Cp,"\\$&")}import{Fragment as kp,jsx as hr}from"react/jsx-runtime";var Np=Hp("saltHighlighter"),Sa=e=>{let{matchPattern:t,text:o=""}=e,n=typeof t=="string"?new RegExp(`(${Yo(t)})`,"gi"):t;return n===void 0?hr(kp,{children:o}):hr("span",{children:o.split(n).map((r,s)=>r.match(n)?hr("strong",{className:Np("highlight"),children:r},`${s}-${r}`):r)})};import{forwardRef as wa}from"react";import Da from"classnames";import Ap from"classnames";import{jsx as Op}from"react/jsx-runtime";var Ta="vuuCheckboxIcon",va=({checked:e=!1,...t})=>Op("span",{...t,className:Ap(Ta,{[`${Ta}-checked`]:e})});import{jsx as qo,jsxs as zp}from"react/jsx-runtime";var oo="vuuListItem",Jo=wa(function(t,o){return qo("div",{"aria-hidden":!0,className:Da(oo,`${oo}-proxy`),ref:o})}),Qo=wa(function({children:t,className:o,disabled:n,tabIndex:r,item:s,itemHeight:i,itemTextHighlightPattern:a,label:l,selectable:c,selected:d,showCheckbox:m,style:u,...p},f){let g=Da(oo,o,{vuuDisabled:n,[`${oo}-checkbox`]:m}),h=i!==void 0?{...u,height:i}:u;return zp("div",{className:g,...p,"aria-disabled":n||void 0,"aria-selected":d||void 0,ref:f,style:h,children:[m&&qo(va,{"aria-hidden":!0,checked:d}),t&&typeof t!="string"?t:a==null?qo("span",{className:`${oo}-textWrapper`,children:l||t}):qo(Sa,{matchPattern:a,text:l||t})]})});import{useForkRef as Vf}from"@salt-ds/core";import Hr from"classnames";import{cloneElement as _f,forwardRef as Wf,isValidElement as Gf,useRef as Nr}from"react";import{cloneElement as vw,createContext as Fp,useContext as Bp}from"react";import{jsx as Rw}from"react/jsx-runtime";var $p=Fp(void 0);function Ra(){let e=Bp($p);if(e)return e}var Kp=e=>Object.prototype.toString.call(e)==="[object Object]";function Rt(e){return typeof e=="string"?e:Kp(e)?Object.prototype.hasOwnProperty.call(e,"label")?String(e.label):(console.warn(["itemToString: you've likely forgotten to set the label prop on the item object.","You can also provide your own `itemToString` implementation."].join(`
|
|
18
|
+
`)),""):String(e)}function Vp(e,...t){let o=new Set(e);for(let n of t)for(let r of n)o.add(r);return o}var no="ArrowUp",ro="ArrowDown",La="ArrowLeft",Ma="ArrowRight",br="Enter";var en="Home",so="End",yr="PageUp",tn="PageDown",Pa=" ";var _p=new Set(["Enter","Delete"," "]),Wp=new Set(["Tab"]),Gp=new Set(["ArrowRight","ArrowLeft"]),Ca=new Set([en,so,yr,tn,ro,no]),Up=new Set(["F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12"]),Zp=Vp(_p,Ca,Gp,Up,Wp),on=e=>Zp.has(e.key)?!1:e.key.length===1&&!e.ctrlKey&&!e.metaKey&&!e.altKey,Ha=({key:e})=>Ca.has(e);import{useCallback as Na}from"react";var Xp={},jp=e=>Array.isArray(e.childNodes),Yp=e=>!0,qp=e=>e.closest("[data-toggle],[aria-expanded]").dataset.toggle==="true",ka=({collapsibleHeaders:e,collectionHook:t,highlightedIdx:o,onToggle:n})=>{let r=Na(a=>{if(a.key===Ma||a.key===br){let l=t.data[o];l&&l.expanded===!1&&l.value&&(a.preventDefault(),t.expandGroupItem(l),n==null||n(l.value))}if(a.key===La||a.key===br){let l=t.data[o];l&&l.expanded&&l.value&&(a.preventDefault(),t.collapseGroupItem(l),n==null||n(l.value))}},[t.collapseGroupItem,t.data,t.expandGroupItem,o]),i={onClick:Na(a=>{console.log(`useCollapsibleGroups idx=${o}`);let l=t.data[o];console.log(a.target,a.currentTarget),l&&jp(l)&&(!Yp(l)||qp(a.target))&&(a.stopPropagation(),a.preventDefault(),l.expanded===!1&&l.value?(t.expandGroupItem(l),n==null||n(l.value)):l.expanded===!0&&l.value&&(t.collapseGroupItem(l),n==null||n(l.value)))},[t.collapseGroupItem,t.data,t.expandGroupItem,o]),onKeyDown:r};return e?i:Xp};function Jp(e){if(e){let t=e.dataset.idx;if(t)return parseInt(t,10);if(t=e.ariaPosInSet)return parseInt(t,10)-1}return-1}var Qp=e=>e.closest("[data-idx],[aria-posinset]");var Aa=e=>Jp(Qp(e));var Oa=e=>e==="none",Lt=e=>Array.isArray(e)?e.length>0:e!=null,za=e=>Array.isArray(e)?e[0]:e;import{useCallback as He,useMemo as sn,useRef as an,useState as df,isValidElement as Xa}from"react";import{isValidElement as xr,Children as ef}from"react";var Fa=e=>null;var Ba=e=>null;var Er=(e,t)=>e!==null&&Object.prototype.hasOwnProperty.call(e,t),Ir=e=>Er(e,"header"),$a=e=>Er(e,"childNodes"),io=(e,t)=>e&&Object.prototype.hasOwnProperty.call(e.props,t),Ka=e=>{if(xr(e)){if(io(e,"disabled"))return e.props.disabled===!0}else if(Er(e,"disabled"))return e.disabled===!0;return!1},Va=e=>xr(e)&&io(e,"focusable")?e.props.focusable:!0,_a=(e,t,o)=>{if(e.childNodes)return e.childNodes.length;if(e.header){let n=o+1,r=0;for(;n<t.length&&!t[n].header;)r++,n++;return r}else return 0},tf=e=>{if(typeof e.props.children=="string")return e.props.children;if(e.props.title)return e.props.title;if(e.props.label)return e.props.label},Wa=e=>e.type===Ba||io(e,"data-header"),Ga=e=>e.type===Fa||io(e,"data-group"),of=e=>io(e,"selectable")?e.props.selectable===!0:!Ga(e)&&!Wa(e),nf=e=>{if(Ga(e)){let{props:{children:t}}=e;if(typeof t!="string")return Tr(t)}},rf=(e,t)=>{let o=[];return ef.forEach(e,n=>{xr(n)&&o.push(t(n))}),o},Sr=(e,t)=>{if(Array.isArray(e))return e.length===0&&(t!=null&&t.noChildrenLabel)?[{label:t.noChildrenLabel,value:null}]:e.map((o,n)=>{var r,s;return{childNodes:Sr(o.childNodes,t),description:o.description,expanded:o.expanded,value:o,label:(s=(r=t==null?void 0:t.itemToString)==null?void 0:r.call(t,o))!=null?s:Rt(o)}});if(e)throw Error("list-child-items expects source to be an array")},Tr=e=>{if(e)return rf(e,t=>{let{"data-id":o,disabled:n,id:r=o,"data-expanded":s,expanded:i=s}=t.props;return{childNodes:nf(t),disabled:n,expanded:i,header:Wa(t),id:r,label:tf(t),selectable:of(t),value:t}})},sf=new Set(["/","-","."]),af=e=>sf.has(e),Ua=(e,t)=>t.startsWith(e)&&af(t[e.length]),lf=new Set([".","/"]);function cf(e,t){return t.startsWith(e)?lf.has(t.charAt(e.length)):!1}function nn(e,t,o){let n;return e.map(s=>s.id===t?{...s,...o}:cf(s.id,t)&&s.childNodes?(n=nn(s.childNodes,t,o),{...s,childNodes:n}):s)}var uf=e=>e&&e.replace(/^\s+/g,""),vr=e=>new RegExp(`(${Yo(uf(e))})`,"gi"),Za=(e="",t=vr)=>(o="")=>!!o.length&&!!e.length&&o.match(t(e))!==null;function rn(e,t){return Array.isArray(e)?e.includes(t):e===t}var mf={},ln=({children:e,id:t,label:o="",options:n=mf,source:r})=>{var N;let{getItemId:s}=n,[,i]=df(null),a=Ra(),l=an([]),c=an([]),d=sn(()=>[],[]),m=an((N=n.filterPattern)!=null?N:""),{getFilterRegex:u=vr,noChildrenLabel:p,itemToString:f=Rt}=n,g=He(w=>n.defaultExpanded||!1,[n.defaultExpanded]),h=He((w,M,O=1,k="",z=[],K=[],Z=[])=>(w.forEach((V,j,F)=>{var J,ne;let B=V.header&&n.collapsibleHeaders,q=V.childNodes&&n.collapsibleHeaders===!1,Q=!V.childNodes||V.childNodes.length===0,ie=q||Q&&!B,X=k?`${k}.${j}`:`item-${j}`,Y=(J=V.id)!=null?J:s?s(j):`${t}-${X}`,ee=ie?void 0:(ne=V.expanded)!=null?ne:g(Y),oe={...V,childNodes:void 0,count:!q&&ee===void 0?0:_a(V,F,j),description:V.description,disabled:Ka(V.value),focusable:Va(V.value)?void 0:!1,id:Y,index:M.value,expanded:ee,level:O};if(z.push(oe),K.push(oe),Z.push(w[j].value),M.value+=1,V.childNodes){let[fe]=h(V.childNodes,M,O+1,X,[],K,Z);oe.childNodes=fe}}),[z,Z,K]),[n.collapsibleHeaders,s,t,g]),b=He(()=>m.current?Za(m.current,u):null,[u]),x=He((w,M=b(),O=[],k={value:0})=>{let z=!1;for(let K of w)z&&!Ir(K)||(K.value!==null&&(M===null||M(f(K.value)))&&(O[k.value]=K,k.value+=1),z=!1,Ir(K)&&K.expanded===!1?z=!0:$a(K)&&K.expanded!==!1&&K.childNodes&&x(K.childNodes,M,O,k));return O},[b,f]),I=sn(()=>a?d:Sr(r,{itemToString:f,noChildrenLabel:p})||Tr(e)||[],[a,d,r,f,p,e]),[y,S,E]=sn(()=>a?[d,d,d]:h(I,{value:0}),[d,h,a,I]);c.current=E,sn(()=>a?d:l.current=x(y),[d,x,y,a]);let v=an(y),D=He((w="")=>{typeof w=="string"&&(m.current=w,l.current=x(y),i({}))},[y,x]),P=He((w,M=y)=>{let O=M.find(k=>{var z;return k.id===w||((z=k==null?void 0:k.childNodes)==null?void 0:z.length)&&Ua(k.id,w)});if((O==null?void 0:O.id)===w)return S==null?void 0:S[O.index];if(O)return P(w,O.childNodes);throw Error(`useCollectionData itemById, id ${w} not found `)},[S,y]),A=He(w=>{let M=c.current.find(O=>Xa(O.value)?O.label===w:O.value===w);if(M)return M;throw Error("useCollectionData toCollectionItem, item not found ")},[]),C=He(w=>{if(w===null)return null;if(Array.isArray(w)){let M=[];for(let O of w){let k=A(O);M.push(k)}return M}else if(w!==void 0)return A(w)},[A]),T=He(w=>{let M=O=>{let k=c.current.find(z=>Xa(z.value)?z.label===O:z.value!==null&&f(z.value)===O);if(k)return k};if(w===null)return null;if(Array.isArray(w)){let O=[];for(let k of w){let z=M(k);z&&O.push(z)}return O}else if(w!==void 0)return M(w)},[f]),R=He(w=>{for(let M of v.current)if(w===M.value)return M.id;throw Error("useCollectionData itemToId, item not found")},[]),L=He(w=>{v.current=nn(v.current,w.id,{expanded:!1}),l.current=x(v.current),i({})},[x]),H=He(w=>{v.current=nn(v.current,w.id,{expanded:!0}),l.current=x(v.current),i({})},[x]);return a||{collapseGroupItem:L,data:l.current,expandGroupItem:H,setFilterPattern:D,itemById:P,itemToId:R,toCollectionItem:A,itemToCollectionItem:C,stringToCollectionItem:T}};import{useImperativeHandle as pf,useMemo as ff}from"react";var gf={scrollToIndex:e=>{},scrollToItem:e=>{},scrollTo:e=>{}},cn=({collectionHook:e,forwardedRef:t,scrollableRef:o,scrollIntoView:n})=>{let r=ff(()=>({scrollToIndex:s=>{let i=e.data[s];i&&(n==null||n(i))},scrollToItem:s=>{let i=e.toCollectionItem(s);i&&(n==null||n(i))},scrollTo:s=>{o!=null&&o.current&&(o.current.scrollTop=s)}}),[e.data,e.toCollectionItem,n]);pf(t,()=>o.current?r:gf,[r])};import{useControlled as hf}from"@salt-ds/core";import{useCallback as Mt,useMemo as bf,useRef as wr,useState as yf}from"react";var Rr=-2;function ja(e,t,o){return t===no||t===so?o>0?o-1:o:o===null?0:o===e-1?o:o+1}var Dr=(e,t)=>{let o=za(t);return o?e.indexOf(o):-1},xf=(e,t,o,n)=>e===so?n:e===en?-1:t!==-1?t:o,qa=e=>{let t=document.getElementById(e.id);if(t)return t.getBoundingClientRect();throw Error(`useKeyboardNavigation.getItemRect no element found for item #${e==null?void 0:e.id}`)},Ef=(e,t,o,n)=>{let{top:r}=t.getBoundingClientRect(),{scrollTop:s,clientHeight:i,scrollHeight:a}=e,l=o.length-1,c=Math.min(s+i,a-i);if(c!==s&&n<l){e.scrollTo(0,c);let d=n,m;do d+=1,m=qa(o[d]);while(m.top<r&&d<l);return d}},If=async(e,t,o,n)=>{let{top:r}=t.getBoundingClientRect(),{scrollTop:s,clientHeight:i}=e,a=Math.max(s-i,0);if(a!==s&&n>0)return e.scrollTo(0,a),new Promise(l=>{requestAnimationFrame(()=>{let c=n,d;do c-=1,d=qa(o[c]);while(d.top>r&&c>0);l(c)})})},Sf=e=>!e.header&&!e.childNodes,Ya=e=>Sf(e)||e.expanded!==void 0,Ja=({containerRef:e,defaultHighlightedIndex:t=-1,disableHighlightOnFocus:o,highlightedIndex:n,indexPositions:r,onHighlight:s,onKeyboardNavigation:i,restoreLastFocus:a,selected:l})=>{let c=wr(-1),[,d]=yf({}),[m,u,p]=hf({controlled:n,default:t,name:"UseKeyboardNavigation"}),f=Mt((D,P=!1)=>{s==null||s(D),u(D),P&&(c.current=D)},[s,u]),g=Mt(async(D,P)=>{let{id:A}=r[P],C;if(A){let T=document.getElementById(A),{current:R}=e;T&&R&&(C=D.key===tn?Ef(R,T,r,P):await If(R,T,r,P))}return C!=null?C:P},[e,r]),h=Mt((D=ro,P=D===ro?-1:r.length)=>{if(r.length===0)return-1;{let A=Dr(r,l),C=xf(D,P,A,r.length),T=ja(r.length,D,C);if(T===0&&D===no&&!Ya(r[0]))return P;for(;((D===ro||D===en)&&T<r.length||(D===no||D===so)&&T>0)&&!Ya(r[T]);)T=ja(r.length,D,T);return T}},[r,l]),b=wr(!1),x=wr(!1),I=D=>x.current=D,y=Mt(D=>{if(x.current)x.current=!1;else if(b.current=!0,r.length===0)f(Rr);else if(m!==-1)d({});else if(a)if(c.current!==-1)f(c.current);else{let P=Dr(r,l);f(P!==-1?P:0)}else if(Lt(l)){let P=Dr(r,l);f(P)}else o!==!0&&f(h())},[o,m,r,h,a,l,f]),S=Mt(async D=>{let P=D.key===tn||D.key===yr?await g(D,m):h(D.key,m);P!==m&&f(P,!0),i==null||i(D,P)},[m,h,g,i,f]),E=Mt(D=>{r.length>0&&Ha(D)?(D.preventDefault(),D.stopPropagation(),b.current=!0,S(D)):on(D)&&(b.current=!0)},[r,S]),v=bf(()=>({onBlur:D=>{let P=D.target.closest(".saltList"),A=D.relatedTarget;P&&!(P!=null&&P.contains(A))&&(b.current=!1,u(-1),a||(c.current=-1))},onFocus:y,onKeyDown:E,onMouseDownCapture:()=>{b.current=!1,I(!0)},onMouseMove:()=>{b.current&&(b.current=!1)},onMouseLeave:()=>{b.current=!1,I(!1),f(-1)}}),[y,E,a,u,f]);return{focusVisible:b.current?m:-1,controlledHighlighting:p,highlightedIndex:m,setHighlightedIndex:f,keyboardNavigation:b,listProps:v,setIgnoreFocus:I}};import{useControlled as Tf}from"@salt-ds/core";import{useCallback as Ae,useRef as vf}from"react";var wf={},Df=["Enter"," "],Lr=e=>e&&e.disabled!==!0&&e.selectable!==!1,Qa=(e,t)=>{var o,n;return((o=e.index)!=null?o:0)-((n=t.index)!=null?n:0)};var el=({defaultSelected:e,disableSelection:t=!1,highlightedIdx:o,indexPositions:n,onSelect:r,onSelectionChange:s,selected:i,selectionStrategy:a,selectionKeys:l=Df,tabToSelect:c})=>{let d=a==="deselectable",m=a==="multiple",u=a==="extended",p=vf(-1),f=Ae(T=>l.includes(T.key),[l]),g=Ae(()=>m||u?[]:null,[m,u]),[h,b]=Tf({controlled:i,default:e!=null?e:g(),name:"UseSelection",state:"selected"}),x=Ae(T=>Array.isArray(h)?h.includes(T):h===T,[h]),I=Ae(T=>T,[]),y=Ae(T=>x(T)?null:T,[x]),S=Ae(T=>{let R=x(T)?h.filter(L=>L!==T):h.concat(T);return R.sort(Qa),R},[x,h]),E=Ae((T,R)=>{let L=R?h:[],[H]=h.slice(-1),N=H?n.indexOf(H):0,w=Math.min(T,N),M=Math.max(T,N),O=n.slice(w,M+1),k=[...new Set([...L,...O])];return k.sort(Qa),k},[n,h]),v=Ae((T,R,L,H,N)=>{let w;m?w=S(L):u?N&&!H?w=S(L):H?w=E(R,N):w=[L]:d?w=y(L):w=I(L),w!==h&&b(w),r==null||r(T,L),w!==h&&s&&s(T,w)},[m,u,d,h,r,S,E,y,I,b,s]),D=Ae(T=>{let R=n[o];Lr(R)&&(f(T)||c&&T.key==="Tab")&&(T.key!=="Tab"&&T.preventDefault(),v(T,o,R,!1,T.ctrlKey||T.metaKey),u&&(p.current=o))},[n,o,f,c,v,u]),P=Ae((T,R)=>{if(u&&T.shiftKey){let L=n[R];Lr(L)&&v(T,R,L,!0)}},[u,n,v]),A=Ae(T=>{let R=n[o];!t&&Lr(R)&&(T.preventDefault(),T.stopPropagation(),v(T,o,R,T.shiftKey,T.ctrlKey||T.metaKey),u&&(p.current=o))},[t,u,o,n,v]);return{listHandlers:Oa(a)?wf:{onClick:A,onKeyDown:D,onKeyboardNavigation:P},selected:h,setSelected:b}};import{useCallback as tl,useRef as Mr}from"react";var ol=({disableTypeToSelect:e,highlightedIdx:t,highlightItemAtIndex:o,typeToNavigate:n,items:r,applyIncrementalSearch:s=!0})=>{let i=Mr(null),a=Mr(""),l=Mr(-1),c=tl(m=>{if(m||!s){let u=new RegExp(`^${a.current}`,"i"),p=r.findIndex(({label:f},g)=>g>l.current&&u.test(f));p===-1&&(p=r.findIndex(({label:f},g)=>g<=l.current&&u.test(f))),p!==-1&&o(p)}else a.current="",i.current=null,l.current=-1},[s,o,r]),d=tl(m=>{let u=l.current!==-1;(on(m)||u&&m.key===Pa)&&n&&(m.preventDefault(),m.stopPropagation(),(l.current===-1||m.key===a.current)&&(l.current=t),i.current!==null&&(clearTimeout(i.current),i.current=null),m.key!==a.current&&(a.current+=m.key),s&&c(!0),i.current=window.setTimeout(()=>{c()},100))},[n,s,t,c]);return{onKeyDown:e?void 0:d}};import{useCallback as Pt,useRef as al}from"react";import{useCallback as Rf,useEffect as nl,useRef as Lf}from"react";var sl=["height"],mt=new Map,il=(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 rl=new ResizeObserver(e=>{for(let t of e){let{target:o,borderBoxSize:n,contentBoxSize:r}=t,s=mt.get(o);if(s){let[{blockSize:i,inlineSize:a}]=n,[{blockSize:l,inlineSize:c}]=r,{onResize:d,measurements:m}=s,u=!1;for(let[p,f]of Object.entries(m)){let g=il(o,{height:i,width:a,contentHeight:l,contentWidth:c},p);g!==f&&(u=!0,m[p]=g)}u&&d&&d(m)}}});function pt(e,t,o,n=!1){let r=Lf(t),s=Rf(i=>{let{width:a,height:l}=i.getBoundingClientRect(),{clientWidth:c,clientHeight:d}=i;return r.current.reduce((m,u)=>(m[u]=il(i,{width:a,height:l,contentHeight:d,contentWidth:c},u),m),{})},[]);nl(()=>{let i=e.current;async function a(){mt.set(i,{measurements:{}}),await document.fonts.ready;let l=mt.get(i);if(l){let c=s(i);l.measurements=c,rl.observe(i),n&&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(mt.has(i))throw Error("useResizeObserver attemping to observe same element twice");a()}return()=>{i&&mt.has(i)&&(rl.unobserve(i),mt.delete(i))}},[s,e]),nl(()=>{let i=e.current,a=mt.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])}import{useIsomorphicLayoutEffect as Mf}from"@salt-ds/core";var ll=["height"],Pf=["height","scrollHeight"],Cf=[],cl={containerOnly:[Pf,Cf],withContent:[ll,ll]},Hf=e=>e?cl.containerOnly:cl.withContent,ul={current:null},Nf=(e,t)=>{let{transform:o="none"}=getComputedStyle(e);if(o.startsWith("matrix")){let n=o.lastIndexOf(",");return parseInt(o.slice(n+1))}else{let n=e.offsetParent;if(n===t||t===null)return e.offsetTop;{let r=e.offsetTop;for(;n!==null&&n!==t;)r+=n.offsetTop,n=n.offsetParent;return r}}},dl=({containerRef:e,contentRef:t=ul,highlightedIdx:o=-1,indexPositions:n,stickyHeaders:r=!1})=>{let s=al(!1),i=al({height:0,contentHeight:0}),a=Pt(g=>{s.current=!0,e.current&&(e.current.scrollTop=g),setTimeout(()=>{s.current=!1})},[]),l=Pt(()=>a(0),[a]),c=Pt(()=>{a(i.current.contentHeight-i.current.height)},[a]),d=Pt(g=>{let h=t.current||e.current;if(g.id){let b=document.getElementById(g.id);if(b&&e.current){let{height:x}=i.current,I=b.ariaExpanded&&b.firstChild?b.firstChild:b,y=r?36:0,S=Nf(I,h),E=I.offsetHeight,{scrollTop:v}=e.current,D=v+y,P=D+x-y;if(S+E>P||S<D){let A=S+E>P?v+(S+E)-P:S-y;a(A)}}}},[e,t,a,r]);Mf(()=>{let{height:g,contentHeight:h}=i.current,b=n[o];if(h>g&&b){let[x]=n,[I]=n.slice(-1);b===x?l():b===I?c():d(n[o])}},[o,n,d,c,l]);let m=Pt(({height:g,scrollHeight:h})=>{typeof g=="number"&&(i.current.height=g),typeof h=="number"&&(i.current.contentHeight=h)},[]),u=Pt(({height:g})=>{typeof g=="number"&&(i.current.contentHeight=g)},[]),[p,f]=Hf(t===ul);return pt(e,p,m,!0),pt(t,f,u,!0),{isScrolling:s,scrollIntoView:d}};import{isValidElement as Pr,useCallback as Xe,useEffect as ml,useRef as pl}from"react";var un=({allowDragDrop:e=!1,collapsibleHeaders:t,collectionHook:o,containerRef:n,contentRef:r,defaultHighlightedIndex:s,defaultSelected:i,disabled:a,disableAriaActiveDescendant:l,disableHighlightOnFocus:c,disableTypeToSelect:d,highlightedIndex:m,id:u,label:p="",listHandlers:f,onHighlight:g,onKeyboardNavigation:h,onKeyDown:b,onMoveListItem:x,onSelect:I,onSelectionChange:y,restoreLastFocus:S,selected:E,selectionStrategy:v,selectionKeys:D,stickyHeaders:P,tabToSelect:A,viewportRange:C})=>{let T=pl(null),R=pl(E||i),L=(_,W)=>{var te,re;(re=(te=j.listHandlers).onKeyboardNavigation)==null||re.call(te,_,W),h==null||h(_,W)},H=Xe((_,W)=>{I&&(Pr(W.value)?I(_,W.label):W.value!==null&&I(_,W.value))},[I]),N=Xe((_,W)=>{y&&y(_,Array.isArray(W)?W.map(te=>Pr(te.value)?te.label:te.value):W&&(Pr(W.value)?W.label:W.value))},[y]),{highlightedIndex:w,listProps:{onKeyDown:M,onMouseMove:O,...k},setHighlightedIndex:z,...K}=Ja({containerRef:n,defaultHighlightedIndex:s,disableHighlightOnFocus:c,highlightedIndex:m,indexPositions:o.data,label:p,onHighlight:g,onKeyboardNavigation:L,restoreLastFocus:S,selected:R.current}),Z=ka({collapsibleHeaders:t,highlightedIdx:w,collectionHook:o}),V=Xe(()=>{z(-1)},[z]),j=el({defaultSelected:i,highlightedIdx:w,indexPositions:o.data,label:p,onSelect:H,onSelectionChange:N,selected:E,selectionStrategy:v,selectionKeys:D,tabToSelect:A}),F=Xe((_,W,te)=>{let re=o.data.indexOf(_);return re===W?te:re<Math.min(W,te)||re>Math.max(W,te)?re:W<re?re-1:re+1},[o.data]),B=Xe((_,W,te)=>Array.isArray(_)?_.map(re=>F(re,W,te)):F(_,W,te),[F]),q=Xe((_,W)=>{Lt(j.selected)&&(T.current=B(j.selected,_,W)),x==null||x(_,W),z(-1)},[j.selected,x,z,B]),Q=Xe(_=>{z(_)},[z]),{setSelected:ie}=j;ml(()=>{let{current:_}=T;if(Lt(_)){let W=Array.isArray(_)?_.map(te=>o.data[te]):o.data[_];ie(W)}},[o.data,ie]),ml(()=>{Lt(R.current)&&ie(Array.isArray(R.current)?[]:null)},[ie,o.data]);let{onMouseDown:X,isDragging:Y,isScrolling:ee,...oe}=Xo({allowDragDrop:e,draggableClassName:"list-item",orientation:"vertical",containerRef:n,id:u,itemQuery:".vuuListItem",onDragStart:V,onDrop:q,onDropSettle:Q,viewportRange:C}),{onKeyDown:J}=ol({disableTypeToSelect:d,highlightedIdx:w,highlightItemAtIndex:z,typeToNavigate:!0,items:o.data}),ne=Xe(_=>{var W,te,re;_.defaultPrevented||J==null||J(_),M(_),_.defaultPrevented||(te=(W=j.listHandlers).onKeyDown)==null||te.call(W,_),_.defaultPrevented||(re=Z==null?void 0:Z.onKeyDown)==null||re.call(Z,_),_.defaultPrevented||b==null||b(_)},[Z,M,b,j.listHandlers,J]),{isScrolling:fe,scrollIntoView:ge}=dl({containerRef:n,contentRef:r,highlightedIdx:w,indexPositions:o.data,stickyHeaders:P}),Ie=fe.current||ee.current,Se=Xe(_=>{if(!Ie&&!a&&!Y){O();let W=Aa(_.target);if(W!==-1&&W!==w){let te=o.data[W];!te||te.disabled?z(-1):z(W)}}},[Y,Ie,a,z,O,w,o.data]),we=()=>{var _;return w===void 0||w===-1||l||(_=o.data[w])==null?void 0:_.id};R.current=j.selected;let De={"aria-activedescendant":we(),onBlur:k.onBlur,onFocus:k.onFocus,onKeyDown:ne,onMouseDown:X,onMouseDownCapture:k.onMouseDownCapture,onMouseLeave:k.onMouseLeave},Re=f||{onClick:j.listHandlers.onClick,onMouseMove:Se};return{focusVisible:K.focusVisible,controlledHighlighting:K.controlledHighlighting,highlightedIndex:w,keyboardNavigation:K.keyboardNavigation,listHandlers:Re,listItemHeaderHandlers:Z,listControlProps:De,scrollIntoView:ge,selected:j.selected,setHighlightedIndex:z,setIgnoreFocus:K.setIgnoreFocus,setSelected:j.setSelected,...oe}};import{useIsomorphicLayoutEffect as kf}from"@salt-ds/core";import{useCallback as Af,useMemo as Of,useState as fl}from"react";var zf=(e,t,o=0)=>e===0?0:o===0?e*t:e-1*(t+o)+t,dn=({borderless:e,displayedItemCount:t,getItemHeight:o,height:n,itemCount:r,itemGapSize:s,itemHeight:i,rootRef:a,rowHeightRef:l})=>{let[c,d]=fl(36),[m,u]=fl(),[p,f]=Of(()=>{let h=e?0:2,b=i!=null?i:c,x=zf(r,b,s);if(n!==void 0&&typeof n=="number"||typeof n=="string")return[x,n];let I=Math.min(t,r)||t;return typeof o=="function"?h+=Array(I).fill(0).reduce((S,E,v)=>S+o(v)+s,0)-s:h+=I*Number(b)+(I-1)*s,[x,h,m]},[e,m,t,o,n,r,s,i,c]);kf(()=>{if(a.current){let{clientHeight:h}=a.current;u(h)}},[a]);let g=Af(({height:h})=>{typeof h=="number"&&d(h)},[]);return pt(l,sl,g,!0),{contentHeight:p,listClientHeight:m,listItemHeight:c,listHeight:f}};import{useIsomorphicLayoutEffect as Ff}from"@salt-ds/core";import{useCallback as Bf,useMemo as $f,useRef as Cr,useState as Kf}from"react";var gl=(e,t,o,n)=>{let r=Math.ceil(t/n),s=Math.floor(e/n),i=Math.ceil(s+r-1);return{atStart:s===0,atEnd:i===o-1,from:s,to:i}},mn=({containerSize:e,itemCount:t,itemGapSize:o=0,itemSize:n,onViewportScroll:r})=>{let s=Cr(0),i=Cr(0),a=Cr(0),l=$f(()=>gl(a.current,e,t,n+o),[e,t,n,o]),[c,d]=Kf(l);return Ff(()=>{d(l)},[l]),{onVerticalScroll:Bf(u=>{let p=u.target.scrollTop;if(p!==a.current){a.current=p;let f=n+o,g=gl(p,e,t,f);(g.from!==s.current||g.to!==i.current)&&(s.current=g.from,i.current=g.to,r==null||r(g.from,g.to),d(g))}},[n,o,e,t,r]),viewportRange:c}};import{Fragment as Xf,jsx as Ct,jsxs as hl}from"react/jsx-runtime";import{createElement as Zf}from"react";var Uf="No data to display",ao="vuuList",GR=Wf(function({ListItem:t=Qo,ListPlaceholder:o,allowDragDrop:n,borderless:r,children:s,className:i,collapsibleHeaders:a=!1,defaultHighlightedIndex:l,defaultSelected:c,disabled:d=!1,disableFocus:m=!1,disableTypeToSelect:u,displayedItemCount:p=10,emptyMessage:f,focusVisible:g,getItemHeight:h,getItemId:b,height:x,highlightedIndex:I,id:y,itemGapSize:S=0,itemHeight:E,itemTextHighlightPattern:v,itemToString:D=Rt,listHandlers:P,maxHeight:A,maxWidth:C,minHeight:T,minWidth:R,onMoveListItem:L,onSelect:H,onSelectionChange:N,onHighlight:w,restoreLastFocus:M,selected:O,selectionStrategy:k,checkable:z=k==="multiple",scrollingApiRef:K,selectionKeys:Z,showEmptyMessage:V=!1,source:j,style:F,stickyHeaders:B,tabToSelect:q,width:Q,...ie},X){let Y=yt(y),ee=Nr(null),oe=Nr(null),J=Nr(null),ne=ln({id:Y,label:"List",source:j,children:s,options:{collapsibleHeaders:a,getItemId:b,itemToString:D}}),{listClientHeight:fe,listHeight:ge,listItemHeight:Ie}=dn({borderless:r,displayedItemCount:p,getItemHeight:h,height:x,itemCount:ne.data.length,itemGapSize:S,itemHeight:E,rootRef:ee,rowHeightRef:J}),{onVerticalScroll:Se,viewportRange:we}=mn({containerSize:fe!=null?fe:typeof ge=="number"?ge:0,itemCount:ne.data.length,itemGapSize:S,itemSize:Ie}),{draggable:De,draggedItemIndex:Re,dropIndicator:_,focusVisible:W,highlightedIndex:te,listControlProps:re,listHandlers:ce,listItemHeaderHandlers:Oe,scrollIntoView:ze,selected:je}=un({allowDragDrop:n,collapsibleHeaders:a,collectionHook:ne,containerRef:ee,contentRef:oe,defaultHighlightedIndex:l,defaultSelected:ne.itemToCollectionItem(c),disabled:d,disableTypeToSelect:u,highlightedIndex:I,id:Y,label:Y,listHandlers:P,onMoveListItem:L,onSelect:H,onSelectionChange:N,onHighlight:w,restoreLastFocus:M,selected:ne.itemToCollectionItem(O),selectionStrategy:k,selectionKeys:Z,stickyHeaders:B,tabToSelect:q,viewportRange:we});cn({collectionHook:ne,forwardedRef:K,scrollableRef:ee,scrollIntoView:ze});let rt=g!=null?g:W,_e=function(se,Ee,Te,me){let st=Zf(t,{...Oe,className:Hr(`${ao}Header`,{focusVisible:a&&rt===se.value}),"aria-expanded":me,"data-idx":a?se.value:void 0,"data-index":a?se.value:void 0,"data-highlighted":se.value===te||void 0,"data-sticky":B,"data-selectable":!1,id:Ee,key:`header-${se.value}`,label:Te});return se.value+=1,st},At=h===void 0?()=>E:h;function ou(We,se,Ee){var xo,ds;let{disabled:Te,value:me,id:st,label:bo}=se,yo=Gf(me),Ot={className:Hr((xo=me==null?void 0:me.props)==null?void 0:xo.className,{vuuHighlighted:Ee.value===te,vuuFocusVisible:rt===Ee.value,["vuuDraggable-dragAway"]:Re===Ee.value}),disabled:Te||d,id:st,item:yo?void 0:(ds=se==null?void 0:se.value)!=null?ds:void 0,itemHeight:At(Ee.value),itemTextHighlightPattern:v,key:st,"data-idx":Ee.value,"data-index":Ee.value,label:bo,role:"option",selected:rn(je,se),showCheckbox:z};We.push(yo?_f(me,Ot):Ct(t,{...Ot})),Ee.value+=1}let nu=function(se,Ee,Te){let{count:me=0,id:st,expanded:bo,label:yo=""}=Ee[Te.value],Ot=_e(Te,st,yo,bo),xo=bo!==!1?[Ot].concat(us(Ee,Te,Te.value+me)||[]):Ot;se.push(Ct("div",{role:"group",children:xo},st))},us=(We,se={value:0},Ee=We.length)=>{let Te=[];for(;se.value<Ee;){let me=We[se.value];me.header?Te.push(_e(se,me.id,me.label,me.expanded===!1)):me.childNodes?nu(Te,We,se):ou(Te,me,se)}return Te};function ru(){return f||V?Ct("span",{className:`${ao}-empty-message`,children:f!=null?f:Uf}):null}let su=()=>{if(ne.data.length){let We=ne.data;return us(We)}else ru()},iu="auto",au={"--list-item-gap":S?`${S}px`:void 0,minWidth:R,minHeight:T,width:Q!=null?Q:"100%",height:x!=null?x:"100%",maxWidth:C!=null?C:Q,maxHeight:A!=null?A:ge};return hl("div",{"aria-multiselectable":k==="multiple"||k==="extended"||k==="extended-multi-range"||void 0,...ie,...ce,...re,className:Hr(ao,i,{[`${ao}-collapsible`]:a,vuuFocusVisible:te===Rr}),id:`${Y}`,ref:Vf(ee,X),role:"listbox",onScroll:Se,style:{...F,...au},tabIndex:d||m?void 0:0,children:[Ct(Jo,{ref:J}),ne.data.length===0&&o!==void 0?Ct(Xf,{children:Ct(o,{})}):hl("div",{className:`${ao}-scrollingContentContainer`,ref:oe,style:{height:iu},children:[su(),_,De]})]})});import{makePrefixer as qf,useForkRef as Jf,useIdMemo as Qf}from"@salt-ds/core";function bl(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=bl(e[t]))&&(n&&(n+=" "),n+=o);else for(t in e)e[t]&&(n&&(n+=" "),n+=t);return n}function kr(){for(var e,t,o=0,n="";o<arguments.length;)(e=arguments[o++])&&(t=bl(e))&&(n&&(n+=" "),n+=t);return n}import{forwardRef as eg,memo as tg,useRef as El}from"react";import{useMemo as jf}from"react";var pn=class{constructor(t=0,o=0){this.keys=new Map,this.free=[],this.nextKeyValue=0,this.reset(t,o)}next(){return this.free.length?this.free.pop():this.nextKeyValue++}reset(t,o){this.keys.forEach((r,s)=>{(s<t||s>=o)&&(this.free.push(r),this.keys.delete(s))});let n=o-t;this.keys.size+this.free.length>n&&(this.free.length=n-this.keys.size);for(let r=t;r<o;r++)if(!this.keys.has(r)){let s=this.next();this.keys.set(r,s)}}keyFor(t){return this.keys.get(t)}};var Yf=([e],[t])=>e-t,yl=5,xl=({data:e,listItemGapSize:t=0,listItemHeight:o,viewportRange:n})=>{let r=jf(()=>new pn(0,1),[]),s=o+t,i=Math.max(0,n.from-yl),a=Math.min(e.length,n.to+yl);return r.reset(i,a),e.slice(i,a).map((c,d)=>[r.keyFor(d+i),(d+i)*s,d+i+1,c]).sort(Yf)};import{jsx as gn,jsxs as rg}from"react/jsx-runtime";var og="No data to display",fn=qf("saltList"),ng=tg(Qo),gL=eg(function({borderless:t,children:o,className:n,collapsibleHeaders:r=!1,defaultHighlightedIndex:s,defaultSelected:i,disabled:a=!1,disableFocus:l=!1,disableTypeToSelect:c,displayedItemCount:d=10,emptyMessage:m,getItemHeight:u,getItemId:p,height:f,highlightedIndex:g,id:h,itemGapSize:b=0,itemHeight:x,itemTextHighlightPattern:I,itemToString:y,maxHeight:S,maxWidth:E,minHeight:v,minWidth:D,onSelect:P,onSelectionChange:A,onViewportScroll:C,onHighlight:T,restoreLastFocus:R,selected:L,selectionStrategy:H,scrollingApiRef:N,selectionKeys:w,showEmptyMessage:M=!1,source:O,style:k,stickyHeaders:z,tabToSelect:K,width:Z,...V},j){let F=Qf(h),B=El(null),q=El(null),Q=ln({id:F,label:"List",source:O,children:o,options:{collapsibleHeaders:r,getItemId:p,itemToString:y}}),{contentHeight:ie,listItemHeight:X,listHeight:Y}=dn({borderless:t,displayedItemCount:d,height:f,itemCount:Q.data.length,itemGapSize:b,itemHeight:x,rootRef:B,rowHeightRef:q}),{focusVisible:ee,highlightedIndex:oe,listControlProps:J,listHandlers:ne,scrollIntoView:fe,selected:ge}=un({collapsibleHeaders:r,collectionHook:Q,containerRef:B,defaultHighlightedIndex:s,defaultSelected:Q.itemToCollectionItem(i),disabled:a,disableTypeToSelect:c,highlightedIndex:g,label:F,onSelect:P,onSelectionChange:A,onHighlight:T,restoreLastFocus:R,selected:Q.itemToCollectionItem(L),selectionStrategy:H,selectionKeys:w,stickyHeaders:z,tabToSelect:K}),{onVerticalScroll:Ie,viewportRange:Se}=mn({containerSize:typeof Y=="number"?Y:0,itemCount:Q.data.length,itemGapSize:b,itemSize:X});console.log({viewPortRange:Se});let we=xl({data:Q.data,listItemGapSize:b,listItemHeight:X,viewportRange:Se});cn({collectionHook:Q,forwardedRef:N,scrollableRef:B,scrollIntoView:fe});function De(re,ce,Oe){let[ze,je,rt,_e]=ce,At=rt-1;re.push(gn(ng,{"aria-setsize":Q.data.length,"aria-posinset":rt,className:kr(n,{saltHighlighted:At===oe,saltFocusVisible:ee===At}),"data-idx":At,item:_e,label:_e.label,"data-offset":je,role:"option",selected:rn(ge,_e),id:_e.id,translate3d:je},ze)),Oe.value+=1}function Re(re,ce={value:0},Oe=re.length){let ze=[];for(;ce.value<Oe;){let je=re[ce.value];De(ze,je,ce)}return ze}function _(){return m||M?gn("span",{className:fn("empty-message"),children:m!=null?m:og}):null}let W=()=>{if(we.length)return Re(we);_()},te={"--list-item-gap":b?`${b}px`:void 0,minWidth:D,minHeight:v,width:Z!=null?Z:"100%",height:f!=null?f:"100%",maxWidth:E!=null?E:Z,maxHeight:S!=null?S:Y};return gn("div",{...V,...ne,...J,className:kr(fn(),n,fn("virtualized")),id:`${F}`,ref:Jf(B,j),role:"listbox",onScroll:Ie,style:{...k,...te},tabIndex:a||l?void 0:0,children:rg("div",{className:fn("scrollingContentContainer"),style:{height:ie},children:[gn(Jo,{ref:q}),W()]})})});import{Button as Tg}from"@salt-ds/core";import vg from"classnames";import wg,{useMemo as Dg,useRef as Rg}from"react";import{useCallback as ve,useRef as xg}from"react";var Il=e=>typeof e=="object"&&e!==null&&"tabIndex"in e&&typeof e.tabIndex=="number",Sl=e=>({label:"Close",location:"tab",action:"close-tab",options:e}),Tl=e=>({label:"Rename",location:"tab",action:"rename-tab",options:e});var sg=e=>{if(e){let t=parseInt(e.dataset.index||"");if(!isNaN(t))return t}return-1},vl=(e,t)=>{if(e){let o=e.querySelector(`[data-index]:has(${t})`);return sg(o)}return-1},Ar=e=>vl(e,'[aria-selected="true"]'),wl=e=>vl(e,".vuuEditableLabel-editing");import{isValidNumber as Or,MEASURES as ig}from"@vuu-ui/vuu-utils";import{useCallback as zr,useMemo as ag,useRef as Dl}from"react";var Rl=(e,t,o="horizontal")=>{let n=Dl(!1),r=zr(()=>{n.current=!0},[]),s=zr(()=>{n.current=!1},[]),i=zr(()=>{var l,c;(l=e.current)==null||l.style.setProperty("--tab-thumb-transition","none"),(c=e.current)==null||c.removeEventListener("transitionend",i)},[e]),a=Dl(-1);return ag(()=>{var d,m;let l=0,c=0;if(a.current!==-1){let u=(d=e.current)==null?void 0:d.querySelector(".vuuTab-selected"),p=(m=e.current)==null?void 0:m.querySelector(`[data-index="${t}"] .vuuTab`),{positionProp:f,sizeProp:g}=ig[o];if(u&&p&&!n.current){let{[f]:h,[g]:b}=u.getBoundingClientRect(),{[f]:x}=p.getBoundingClientRect();if(Or(h)&&Or(x)&&Or(b)){console.log({orientation:o,positionProp:f,oldPosition:h,newPosition:x}),l=h-x,c=b;let y=Math.abs(l/(o==="horizontal"?1100:700));requestAnimationFrame(()=>{var S,E,v,D;(S=e.current)==null||S.style.setProperty("--tab-thumb-offset","0px"),(E=e.current)==null||E.style.setProperty("--tab-thumb-size","100%"),(v=e.current)==null||v.style.setProperty("--tab-thumb-transition",`all ${y}s ease`),(D=e.current)==null||D.addEventListener("transitionend",i)})}}}return a.current=t,n.current?{containerStyle:{"--tab-thumb-offset":"0px","--tab-thumb-size":"100%"},resumeAnimation:s,suspendAnimation:r}:{containerStyle:{"--tab-thumb-offset":`${l}px`,"--tab-thumb-size":c?`${c}px`:void 0},resumeAnimation:s,suspendAnimation:r}},[t,e,o,i,s,r])};import{useControlled as lg}from"@salt-ds/core";import{getFocusableElement as cg}from"@vuu-ui/vuu-utils";import{useCallback as Ve,useRef as Fr,useState as Ll}from"react";import{ArrowDown as Hl,ArrowUp as ug,ArrowLeft as dg,ArrowRight as mg,Home as Ml,End as Pl}from"@vuu-ui/vuu-utils";var Nl={horizontal:{[Ml]:"start",[Pl]:"end",[dg]:"bwd",[mg]:"fwd"},vertical:{[Ml]:"start",[Pl]:"end",[ug]:"bwd",[Hl]:"fwd"}},pg=(e,t="horizontal")=>Nl[t][e]!==void 0,fg=e=>e===Hl;function Cl(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 gg=e=>e!==null&&!e.classList.contains("wrapped"),hn=(e,t)=>e?e.querySelector(`[data-index="${t}"]`):null,kl=({containerRef:e,defaultHighlightedIdx:t=-1,highlightedIdx:o,keyBoardActivation:n,orientation:r,selectedIndex:s=0})=>{let i=n==="manual",a=Fr(!1),l=Fr(-1),[c,d]=Ll(!1),[,m]=Ll({}),[u,p]=lg({controlled:o,default:t,name:"UseKeyboardNavigation"}),f=Ve(T=>{p(l.current=T)},[p]),g=Fr(!1),h=Ve((T,R=!1,L,H=70)=>{f(T),L===!0&&!g.current&&(g.current=!0);let N=()=>{let w=hn(e.current,T);if(w){let M=cg(w);M==null||M.focus()}};R?N():setTimeout(N,H)},[e,f]),b=T=>{if(l.current===-1&&T.target.tabIndex!==-1){let R=wl(e.current);R!==-1?requestAnimationFrame(()=>{f(R)}):setTimeout(()=>{l.current===-1&&s!==null&&f(s)},200)}},x=Ve(()=>{var T,R;return(R=(T=e.current)==null?void 0:T.querySelectorAll("[data-index]").length)!=null?R:0},[e]),I=Ve((T="fwd",R)=>{let L=x(),N=Cl(L,T,typeof R=="number"?R:L),w=T==="start"?"fwd":T==="end"?"bwd":T;for(;(w==="fwd"&&N<L||w==="bwd"&&N>0)&&!gg(hn(e.current,N));){let M=Cl(L,w,N);if(M===N)break;N=M}return N},[e,x]),y=Ve((T,R=!1)=>{let L=Nl[r][T.key],H=I(L,u);H!==u?i&&h(H,!0):R&&m({})},[u,i,I,h,r]),S=Ve(()=>{let T=hn(e.current,u);return T?T.querySelector(".vuuPopupMenu")!=null:!1},[e,u]),E=Ve(()=>{let T=hn(e.current,u),R=T==null?void 0:T.querySelector(".vuuPopupMenu");if(R){let L=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!0});R.dispatchEvent(L)}return!1},[e,u]),v=Ve(T=>{x()>0&&pg(T.key,r)?(T.preventDefault(),g.current?y(T):(g.current=!0,y(T,!0))):fg(T.key)&&S()&&E()},[E,x,S,y,r]),D=(T,R)=>{f(R)},P=Ve(()=>{c||(d(!0),a.current?a.current=!1:g.current=!0)},[c]),A=Ve(()=>{c||(a.current=!0),g.current=!1},[c]);return{containerProps:{onBlur:T=>{let R=T.target.closest(".vuuTabstrip"),L=T.relatedTarget;R&&!(R!=null&&R.contains(L))&&(f(-1),d(!1))},onMouseDownCapture:A,onFocus:P,onMouseLeave:()=>{g.current=!0,f(-1),a.current=!1}},focusVisible:g.current?u:-1,focusIsWithinComponent:c,highlightedIdx:u,focusTab:h,onClick:D,onFocus:b,onKeyDown:v,setHighlightedIdx:f}};import{useControlled as hg}from"@salt-ds/core";import{useCallback as bn}from"react";var bg=["Enter"," "],yg=e=>e&&e.matches('[class*="vuuTab "]'),Al=({defaultSelected:e,highlightedIdx:t,onSelectionChange:o,selected:n})=>{let[r,s,i]=hg({controlled:n,default:e!=null?e:0,name:"Tabstrip",state:"value"}),a=bn(m=>bg.includes(m.key),[]),l=bn(m=>{s(m),o==null||o(m)},[o,s]),c=bn(m=>{let u=m.target;a(m)&&t!==r&&yg(u)&&(m.stopPropagation(),m.preventDefault(),l(t))},[a,t,r,l]),d=bn((m,u)=>{u!==r&&l(u)},[l,r]);return{activateTab:l,isControlled:i,onClick:d,onKeyDown:c,selected:r}};var Eg=new Set(["Enter"," "]),Ig=e=>Eg.has(e),Sg=(e,t)=>e?e.querySelector(`[data-index="${t}"]`):null,Ol=({activeTabIndex:e,allowDragDrop:t,animateSelectionThumb:o,containerRef:n,onActiveChange:r,onAddTab:s,onCloseTab:i,onExitEditMode:a,onMoveTab:l,orientation:c,keyBoardActivation:d})=>{let m=xg(e),{focusTab:u,highlightedIdx:p,onClick:f,onKeyDown:g,setHighlightedIdx:h,...b}=kl({containerRef:n,keyBoardActivation:d,orientation:c,selectedIndex:m.current}),{activateTab:x,onClick:I,onKeyDown:y,selected:S}=Al({highlightedIdx:p,onSelectionChange:r,selected:e});m.current=S;let{containerStyle:E,resumeAnimation:v,suspendAnimation:D}=Rl(n,o?S:-1,c),P=ve((F,B)=>{let{current:q}=m;console.log(`useTabstrip handleDrop ${F} - ${B} ${q}`),l==null||l(F,B);let Q=-1;B!==-1&&(q===F?Q=B:F>q&&B<=q?Q=q+1:F<q&&B>=q&&(Q=q-1),Q!==-1&&(D(),x(Q),requestAnimationFrame(v)),u(B,!1,!1,350))},[u,l,v,x,D]),{onMouseDown:A,...C}=Xo({allowDragDrop:t,containerRef:n,draggableClassName:`tabstrip-${c}`,onDrop:P,orientation:"horizontal",itemQuery:".vuuOverflowContainer-item"}),T=ve((F,B,q,Q)=>{console.log(`handleExitEditMode ${F} ${B} ${q} ${Q}`),a==null||a(F,B,q,Q),q||u(Q,!1,!0)},[u,a]),R=ve((F,B)=>{f(F,B),I(F,B)},[f,I]),L=ve((F=p)=>{let B=Sg(n.current,F);if(B)return B.querySelector(".vuuEditableLabel")},[n,p]),H=ve((F=p)=>{let B=L(F);return B?B.classList.contains("vuuEditableLabel-editing"):!1},[L,p]),N=ve((F=p)=>{let B=L(F);if(B){let q=new MouseEvent("dblclick",{view:window,bubbles:!0,cancelable:!0});B.dispatchEvent(q)}},[L,p]),w=ve(F=>{g(F),F.defaultPrevented||y(F),!F.defaultPrevented&&Ig(F.key)&&N()},[N,g,y]),M=ve(F=>{let B=Ar(n.current),q=B>F?B-1:B===F?0:B;return D(),i==null||i(F,q),setTimeout(()=>{v()},200),!0},[n,i,v,D]),O=ve(F=>(N(F),!0),[N]),k=ve(F=>{if(Il(F.options))switch(F.menuId){case"close-tab":return M(F.options.tabIndex);case"rename-tab":return O(F.options.tabIndex);default:console.log(`tab menu action ${F.menuId}`)}return!1},[M,O]),z=ve(()=>{H()?h(p):u(p)},[p,u,h,H]),K=ve(F=>{let B=parseInt(F.index);isNaN(B)||x(B)},[x]),Z={onFocus:b.onFocus,onKeyDown:w},V=ve(()=>{s==null||s(),requestAnimationFrame(()=>{let F=Ar(n.current);F!==-1&&u(F)})},[n,u,s]),j={onClick:R,onKeyDown:w,onExitEditMode:T,onMenuAction:k,onMenuClose:z,onMouseDown:A};return{activeTabIndex:S,containerStyle:E,focusVisible:b.focusVisible,containerProps:{...b.containerProps,onSwitchWrappedItemIntoView:K},navigationProps:Z,onClickAddTab:V,tabProps:j,...C}};import{Fragment as Pg,jsx as Mg,jsxs as Cg}from"react/jsx-runtime";import{createElement as Lg}from"react";var Br="vuuTabstrip",zl=({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:d,onActiveChange:m,onAddTab:u,onCloseTab:p,onExitEditMode:f,onMoveTab:g,orientation:h="horizontal",showTabMenuButton:b,style:x,...I})=>{let y=Rg(null),{activeTabIndex:S,focusVisible:E,containerStyle:v,draggedItemIndex:D,onClickAddTab:P,tabProps:A,...C}=Ol({activeTabIndex:e,allowDragDrop:n,animateSelectionThumb:s,containerRef:y,keyBoardActivation:c,onActiveChange:m,onAddTab:u,onCloseTab:p,onExitEditMode:f,onMoveTab:g,orientation:h}),T=yt(l),R=vg(Br,`${Br}-${h}`,a),L=x||v?{...x,...v}:void 0,H=Dg(()=>bt(i).map((N,w)=>{let{id:M=`${T}-tab-${w}`,closeable:O=o,editable:k=r,showMenuButton:z=b}=N.props,K=w===S;return wg.cloneElement(N,{...A,...C.navigationProps,closeable:O,"data-overflow-priority":K?"1":void 0,dragging:D===w,editable:k,focusVisible:E===w,id:M,index:w,key:w,location:d,selected:K,showMenuButton:z,tabIndex:K?0:-1})}).concat(t?Lg(Tg,{...C.navigationProps,"aria-label":"Create Tab",className:`${Br}-addTabButton`,"data-icon":"add","data-overflow-priority":"1",key:"addButton",onClick:P,variant:"secondary",tabIndex:-1}):[]),[S,t,o,r,i,E,T,d,P,b,A,D,C.navigationProps]);return Cg(Pg,{children:[Mg(Fl,{...I,...C.containerProps,className:R,height:28,id:T,orientation:h,overflowIcon:"more-horiz",ref:y,style:L,children:H}),C.draggable]})};import{useForkRef as zg}from"@salt-ds/core";import Fg from"classnames";import{forwardRef as Bg,useCallback as $g,useRef as $l}from"react";import{PopupMenu as Hg}from"@vuu-ui/vuu-popups";import{useMemo as Ng}from"react";import kg from"classnames";import{jsx as Og}from"react/jsx-runtime";var Ag="vuuTabMenu",Bl=({allowClose:e,allowRename:t,location:o,onMenuAction:n,onMenuClose:r,index:s})=>{let[i,a]=Ng(()=>[(l,c)=>{let d=[];return t&&d.push(Tl(c)),e&&d.push(Sl(c)),d},{tabIndex:s}],[e,t,s]);return Og(Hg,{className:Ag,menuBuilder:i,menuActionHandler:n,menuLocation:kg("tab",o),menuOptions:a,onMenuClose:r,tabIndex:-1})};import{jsx as yn,jsxs as Kg}from"react/jsx-runtime";var ft="vuuTab",Kl=()=>{},Vl=Bg(function({ariaControls:t,children:o,className:n,closeable:r=!1,dragging:s,editable:i=!1,editing:a,focusVisible:l,index:c=-1,label:d,location:m,onClick:u,onClose:p,onEnterEditMode:f=Kl,onExitEditMode:g=Kl,onFocus:h,onKeyUp:b,onMenuAction:x,onMenuClose:I,orientation:y,selected:S,showMenuButton:E=r||i,tabIndex:v,...D},P){if(E&&typeof x!="function")throw Error("Tab onMenuAction must be provided if showMenuButton is set");let A=$l(null),C=$l(null),T=zg(P,A),R=$g(M=>{a||(M.preventDefault(),u==null||u(M,c))},[a,c,u]),L=(M="",O="",k=!0)=>g(M,O,k,c),H=M=>{switch(M.key){case"Backspace":case"Delete":r&&(M.stopPropagation(),p&&p(c));break;default:b&&b(M,c)}},N=()=>i?yn(jo,{editing:a,defaultValue:d,onEnterEditMode:f,onExitEditMode:L,ref:C},d):d,w=M=>{if(C.current){let k=C.current.querySelector(".vuuEditableLabel-input");k==null||k.focus()}h==null||h(M)};return Kg("div",{...D,"aria-controls":t,"aria-selected":S,className:Fg(ft,{[`${ft}-closeable`]:r,"vuuDraggable-dragAway":s,[`${ft}-editing`]:a,[`${ft}-selected`]:S||void 0,[`${ft}-vertical`]:y==="vertical",vuuFocusVisible:l}),onClick:R,onFocus:w,onKeyUp:H,ref:T,role:"tab",tabIndex:v,children:[yn("div",{className:`${ft}-main`,children:yn("span",{className:`${ft}-text`,"data-text":i?void 0:d,children:o!=null?o:N()})}),E?yn(Bl,{allowClose:r,allowRename:i,location:m,onMenuAction:x,onMenuClose:I,index:c}):null]})});import{useForkRef as bh,useIdMemo as yh}from"@salt-ds/core";import Xr from"classnames";import{forwardRef as xh,useRef as Eh}from"react";function Vg(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 $r=e=>e.closest("[data-idx],[aria-posinset]");var _l=e=>Vg($r(e));import{useCallback as Kr,useMemo as _g}from"react";var Wg=new Set(["/","-","."]),Gg=e=>Wg.has(e),Wl=(e,t)=>t.startsWith(e)&&Gg(t[e.length]),Gl=(e,t="root",{collapsibleHeaders:o=void 0,defaultExpanded:n=!1,revealSelected:r=!1}={})=>{let s=(u,p,f)=>{if(u.childNodes)return u.childNodes.length;if(u.header){let g=f+1,h=0;for(;g<p.length&&!p[g].header;)h++,g++;return h}else return 0},i=Kr(u=>Array.isArray(r)?r.some(p=>Wl(u,p)):n,[n,r]),a=Kr((u,p,f=1,g="",h=[],b=[])=>{let x=0;return u.forEach((I,y,S)=>{var L;let E=I.header&&o,v=I.childNodes&&o===!1,D=!I.childNodes||I.childNodes.length===0,P=v||D&&!E,A=g?`${g}.${y}`:`${y}`,C=(L=I.id)!=null?L:`${t}-${A}`,T=P?void 0:i(C),R={...I,childNodes:void 0,id:C,count:!v&&T===void 0?0:s(I,S,y),expanded:T,index:p.index,level:f};if(h.push(R),b.push(u[y]),x+=1,p.index+=1,I.childNodes){let[H,N]=a(I.childNodes,p,f+1,A,[],b);R.childNodes=N,(T===!0||v)&&(x+=H)}}),[x,h,b]},[o,t,i]),[l,c,d]=_g(()=>a(e,{index:0}),[a,e]),m=Kr((u,p=c)=>{let f=p.find(g=>{var h;return g.id===u||((h=g==null?void 0:g.childNodes)==null?void 0:h.length)&&Wl(g.id,u)});if((f==null?void 0:f.id)===u)return d[f.index];if(f)return m(u,f.childNodes)},[d,c]);return[l,c,m]};import{useCallback as lo,useRef as Ug}from"react";import{useControlled as Zg}from"@salt-ds/core";var Ul="single",Xg="checkbox",jg="multi",Yg="extended",qg=["Enter"," "],Zl={},Jg=e=>e.expanded!==void 0,Xl=e=>e&&e!=="none",jl=({defaultSelected:e,highlightedIdx:t,treeNodes:o,onChange:n,selected:r,selection:s=Ul,selectionKeys:i=qg})=>{let a=s===Ul,l=s===jg||s.startsWith(Xg),c=s===Yg,d=Ug(-1),m=lo(y=>i.includes(y.key),[i]),[u,p]=Zg({controlled:r,default:e!=null?e:[],name:"selected"}),f=lo((y,S,E,v,D=!1)=>{let{current:P}=d,A=u==null?void 0:u.includes(E),T=a||c&&!D&&(!v||P===-1),R=l||c&&D&&!v,L=[];if(T&&A)L=[];else if(T)L=[E];else if(R&&A)L=u.filter(H=>H!==E);else if(R)L=u.concat(E);else if(c){let[H,N]=S>P?[P,S]:[S,P];L=u.slice();for(let w=H;w<=N;w++){let{id:M}=o[w];u.includes(M)||L.push(M)}}p(L),n&&n(y,L)},[c,o,l,n,u,p,a]),g=lo(y=>{if(~t&&m(y)){y.preventDefault();let S=o[t];f(y,t,S.id,!1,y.ctrlKey||y.metaKey),c&&(d.current=t)}},[c,t,o,m,f]),h=lo((y,S)=>{if(c&&y.shiftKey){let E=o[S];f(y,S,E.id,!0)}},[c,o,f]),b=s==="none"?Zl:{onKeyDown:g,onKeyboardNavigation:h},x=lo(y=>{if(t!==-1){let S=o[t];Jg(S)||(y.preventDefault(),y.stopPropagation(),f(y,t,S.id,y.shiftKey,y.ctrlKey||y.metaKey),c&&(d.current=t))}},[c,t,o,f]);return{listHandlers:b,listItemHandlers:s==="none"?Zl:{onClick:x},selected:u,setSelected:p}};import{useCallback as Vr,useEffect as Yl,useLayoutEffect as Qg,useRef as xn}from"react";var eh=["height","scrollHeight"],ql=(e,t,o=!1)=>{let n=xn(0),r=xn(!1),s=xn(0),i=xn(0),a=Vr(d=>{let m=d.ariaExpanded?d.firstChild:d,u=o?30:0,p=m.offsetTop,f=m.offsetHeight,g=n.current+u,h=g+s.current-u;(p+f>h||p<g)&&(n.current=p+f>h?n.current+(p+f)-h:p-u,r.current=!0,e.current&&(e.current.scrollTop=n.current),setTimeout(()=>{r.current=!1}))},[e,o]),l=Vr(d=>{n.current=d.target.scrollTop},[]);Yl(()=>{let{current:d}=e;return d&&d.addEventListener("scroll",l),()=>{d&&d.removeEventListener("scroll",l)}},[e,l]),Qg(()=>{if(t!==-1&&i.current>s.current&&e.current){let d=e.current.querySelector(`
|
|
18
19
|
[data-idx='${t}'],
|
|
19
20
|
[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=`
|
|
21
|
+
`);d===null?console.log("[useViewportTracking], is this virtualised ? we're going to have to know rowHeight"):a(d)}},[t,e,a]),Yl(()=>{},[o]);let c=Vr(({height:d,scrollHeight:m})=>{s.current=d,i.current=m},[]);return pt(e,eh,c,!0),r};import{useCallback as fc,useRef as gh}from"react";import{useCallback as co,useMemo as ic,useRef as ac}from"react";var Jl=({id:e})=>{let t=e.lastIndexOf("-");if(t!==-1){let n=e.slice(t+1).split(".");return n.length===1?null:(n.pop(),`${e.slice(0,t)}-${n.join(".")}`)}else if((t=e.lastIndexOf("/"))!==-1)return e.slice(0,t)},Ql=e=>e.childNodes!==void 0;var _r=e=>e.header===!0,th=new Set([".","/"]),ec=(e,t)=>t.startsWith(e.id)?th.has(t.charAt(e.id.length)):!1,gt=(e,t)=>{for(let o of e){if(o.id===t)return o;if(ec(o,t))return gt(o.childNodes,t)}},En=(e,t)=>{let o=typeof t=="string"?t:t.id;for(let n=0;n<e.length;n++)if(e[n].id===o)return n},In=(e,t,o)=>{let n;return e.map(s=>s.id===t?{...s,...o}:ec(s,t)?(n=In(s.childNodes,t,o),{...s,childNodes:n}):s)};import{useControlled as lh}from"@salt-ds/core";function oh(e,...t){let o=new Set(e);for(let n of t)for(let r of n)o.add(r);return o}var Wr="ArrowUp",tc="ArrowDown",Ht="ArrowLeft";var oc="ArrowRight",Sn="Enter";var nh="Delete",rh=new Set([Sn,nh]),sh=new Set(["Tab"]),ih=new Set(["ArrowRight","ArrowLeft"]),nc=new Set(["Home","End","ArrowDown","ArrowUp"]),rc=new Set(["Home","End","ArrowRight","ArrowLeft"]),ah=new Set(["F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12"]),mP=oh(rh,rc,nc,ih,ah,sh);var sc=({key:e},t="vertical")=>(t==="vertical"?nc:rc).has(e);function lc(e,t,o){return t===Wr||t===Ht?o>0?o-1:o:o===null?0:o===e-1?o:o+1}var ch=e=>!e.header&&!e.childNodes,uh=e=>ch(e)||e.expanded!==void 0,cc=({defaultHighlightedIdx:e=-1,highlightedIdx:t,treeNodes:o,onHighlight:n,onKeyboardNavigation:r,selected:s=[]})=>{let{bwd:i,fwd:a}=ic(()=>({bwd:Wr,fwd:tc}),[]),[l,c,d]=lh({controlled:t,default:e,name:"highlightedIdx"}),m=co(y=>{n==null||n(y),c(y)},[n,c]),u=co((y=a,S=y===a?-1:o.length)=>{let E=lc(o.length,y,S);for(;E!==-1&&(y===a&&E<o.length||y===i&&E>0)&&!uh(o[E]);)E=lc(o.length,y,E);return E},[i,a,o]),p=ac(!0),f=ac(!1),g=y=>f.current=y,h=co(()=>{if(f.current)f.current=!1;else if(s.length>0){let y=gt(o,s[0]);if(y){let S=En(o,y);m(S)}}else m(u())},[o,u,s,m]),b=co(y=>{let S=u(y.key,l);S!==l&&(m(S),r==null||r(y,S))},[l,u,r,m]),x=co(y=>{o.length>0&&sc(y,"vertical")&&(y.preventDefault(),y.stopPropagation(),p.current=!0,b(y))},[o,b]),I=ic(()=>({onBlur:()=>{m(-1)},onFocus:h,onKeyDown:x,onMouseDownCapture:()=>{p.current=!1,g(!0)},onMouseMove:()=>{p.current&&(p.current=!1)},onMouseLeave:()=>{p.current=!0,g(!1),m(-1)}}),[h,x,m]);return{focusVisible:p.current?l:-1,controlledHighlighting:d,highlightedIdx:l,hiliteItemAtIndex:m,keyBoardNavigation:p,listProps:I,setIgnoreFocus:g}};import{useRef as Gr,useState as dh}from"react";var Tn=(e,t=[],o={value:0})=>{let n=!1;for(let r of e)n&&!_r(r)||(t[o.value]=r,o.value+=1,n=!1,_r(r)&&r.expanded===!1?n=!0:Ql(r)&&Ur(r)&&Tn(r.childNodes,t,o));return t},uc=e=>{let t=Gr(e),o=Gr(e),n=Gr(Tn(e)),[,r]=dh({});e!==t.current&&(t.current=e,o.current=e,n.current=Tn(e));let s=i=>{o.current=i,n.current=Tn(i),r({})};return{data:o.current,indexPositions:n.current,setData:s}};import{useCallback as uo,useRef as dc}from"react";var mh={},ph=e=>e&&e.hasAttribute("aria-expanded"),mc=({collapsibleHeaders:e,highlightedIdx:t,treeNodes:o,setVisibleData:n,source:r})=>{let s=dc(r),i=dc(s.current),a=uo(f=>{n(i.current=f)},[n]),l=uo((f,{id:g})=>In(f,g,{expanded:!0}),[]),c=uo((f,{id:g})=>In(f,g,{expanded:!1}),[]),d=uo(f=>{if(f.key===oc||f.key===Sn){let g=o[t];g&&g.expanded===!1&&(f.preventDefault(),a(l(i.current,g)))}if(f.key===Ht||f.key===Sn){let g=o[t];g&&g.expanded&&(f.preventDefault(),a(c(i.current,g)))}},[c,l,t,o,a]),m=e?{onKeyDown:d}:mh,p={onClick:uo(f=>{let g=$r(f.target);if(ph(g)){f.stopPropagation(),f.preventDefault();let h=gt(r,g.id);(h==null?void 0:h.expanded)===!1?a(l(r,h)):(h==null?void 0:h.expanded)===!0&&a(c(r,h))}},[c,l,a,r])};return{listHandlers:m,listItemHandlers:p}};import{useCallback as fh}from"react";var pc=({highlightedIdx:e,hiliteItemAtIndex:t,indexPositions:o,source:n})=>({listHandlers:{onKeyDown:fh(i=>{if(i.key===Ht){let a=o[e],l=Jl(a);if(l){i.preventDefault();let c=gt(n,l);if(c){let d=En(o,c);d!==void 0&&t(d)}}}},[e,t,o,n])}});var hh=[],gc=({defaultSelected:e,sourceWithIds:t,onChange:o,onHighlight:n,selected:r,selection:s})=>{let i=gh(hh),a=uc(t),l=(I,y)=>{var S,E;(E=(S=u.listHandlers).onKeyboardNavigation)==null||E.call(S,I,y)},{highlightedIdx:c,...d}=cc({treeNodes:a.indexPositions,onHighlight:n,onKeyboardNavigation:l,selected:i.current}),m=mc({collapsibleHeaders:!0,highlightedIdx:c,treeNodes:a.indexPositions,setVisibleData:a.setData,source:a.data}),u=jl({defaultSelected:e,highlightedIdx:c,treeNodes:a.indexPositions,onChange:o,selected:r,selection:s}),p=pc({source:a.data,highlightedIdx:c,hiliteItemAtIndex:d.hiliteItemAtIndex,indexPositions:a.indexPositions}),f=fc(I=>{var y,S,E;(y=m.listItemHandlers)==null||y.onClick(I),I.defaultPrevented||(E=(S=u.listItemHandlers)==null?void 0:S.onClick)==null||E.call(S,I)},[m,u]),g=fc(I=>{var y,S,E,v,D,P,A,C;(S=(y=d.listProps).onKeyDown)==null||S.call(y,I),I.defaultPrevented||(v=(E=u.listHandlers).onKeyDown)==null||v.call(E,I),I.defaultPrevented||(P=(D=m.listHandlers).onKeyDown)==null||P.call(D,I),I.defaultPrevented||(C=(A=p.listHandlers).onKeyDown)==null||C.call(A,I)},[m.listHandlers,d.listProps,u.listHandlers,p.listHandlers]),h=()=>{var I;return c===void 0||c===-1||(I=a.indexPositions[c])==null?void 0:I.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},x={onClick:f};return{focusVisible:d.focusVisible,highlightedIdx:c,hiliteItemAtIndex:d.hiliteItemAtIndex,listProps:b,listItemHandlers:x,selected:u.selected,visibleData:a.data}};import{jsx as nt,jsxs as Zr}from"react/jsx-runtime";import{createElement as Sh}from"react";var ot="vuuTree",Ur=e=>e.expanded===!0,hc=({children:e,idx:t,...o})=>nt("li",{...o,children:e}),bc=xh(function({allowDragDrop:t,className:o,defaultSelected:n,groupSelection:r="none",id:s,onHighlight:i,onSelectionChange:a,revealSelected:l,selected:c,selection:d="single",source:m,...u},p){var N;let f=yh(s),g=Eh(null),[,h,b]=Gl(m,f,{revealSelected:l?(N=c!=null?c:n)!=null?N:!1:void 0}),x=(w,M)=>{if(a){let O=M.map(k=>b(k)).filter(k=>k!==void 0);a(O)}},{focusVisible:I,highlightedIdx:y,hiliteItemAtIndex:S,listProps:E,listItemHandlers:v,selected:D,visibleData:P}=gc({defaultSelected:n,groupSelection:r,onChange:x,onHighlight:i,selected:c,selection:d,sourceWithIds:h});ql(g,y);let C={...{onMouseEnter:w=>{let M=w.target,O=_l(M);S(O)}},...v,role:"treeitem"},T=Xl(r);function R(w,M,O){w.push(Zr(hc,{...C,...Ih(M,O,y,D,I),children:[M.icon?nt("span",{className:`${ot}Node-icon`,"data-icon":M.icon}):null,nt("span",{children:M.label})]})),O.value+=1}function L(w,M,O,k,z){let{value:K}=O;O.value+=1,w.push(Sh(hc,{...v,"aria-expanded":M.expanded,"aria-level":M.level,"aria-selected":D.includes(k)||void 0,className:Xr(`${ot}Node`,{focusVisible:I===K,[`${ot}Node-toggle`]:!T}),"data-idx":K,"data-highlighted":K===y||void 0,"data-selectable":!0,id:k,key:`header-${K}`},T?Zr("div",{className:`${ot}Node-label`,children:[nt("span",{className:`${ot}Node-toggle`}),z]}):Zr("div",{className:`${ot}Node-label`,children:[M.icon?nt("span",{className:`${ot}Node-icon`,"data-icon":M.icon}):null,nt("span",{children:z})]}),nt("ul",{role:"group",children:Ur(M)?H(M.childNodes,O):""})))}function H(w,M={value:0}){if((w==null?void 0:w.length)>0){let O=[];for(let k of w)k.childNodes?L(O,k,M,k.id,k.label):R(O,k,M);return O}}return nt("ul",{...u,...E,className:Xr(ot,o),id:`Tree-${f}`,ref:bh(g,p),role:"tree",tabIndex:0,children:H(P)})}),Ih=(e,t,o,n,r,s)=>({id:e.id,key:e.id,"aria-level":e.level,"aria-selected":n.includes(e.id)||void 0,"data-idx":t.value,"data-highlighted":t.value===o||void 0,className:Xr("vuuTreeNode",s,{focusVisible:r===t.value})});bc.displayName="Tree";var jr=bc;import{Button as Oh}from"@salt-ds/core";import{default as zh,default as Fh}from"classnames";import Lc,{useRef as Bh,useState as Mc}from"react";import{useCallback as mo,useState as Th}from"react";var vn=(e,t,o,n)=>{var h;let{loadSessionState:r,purgeSessionState:s,purgeState:i,saveSessionState:a}=Tt(),[l,c]=Th((h=r(e,"contributions"))!=null?h:[]),d=Be(),m=mo((b,x)=>{let I=l.concat([{location:b,content:x}]);a(e,"contributions",I),c(I)},[l,e,a]),u=mo(()=>{s(e,"contributions"),c([])},[e,s]),p=mo(()=>{let b=r(e,"data-source");b&&b.unsubscribe(),s(e),i(e),d({type:"remove",path:o})},[d,e,r,s,i,o]),f=mo(async(b,x,I)=>{var S;b.stopPropagation();let y=(S=t.current)==null?void 0:S.getBoundingClientRect();return new Promise((E,v)=>{d({type:"drag-start",evt:b,path:x===void 0?o:`${o}.${x}`,dragRect:y,preDragActivity:I,dropTargets:n,resolveDragStart:E,rejectDragStart:v})})},[t,d,o,n]);return[mo(async(b,x)=>{var y;let{type:I}=b;switch(I){case"maximize":case"minimize":case"restore":return d({type:I,path:(y=b.path)!=null?y:o});case"remove":return p();case"mousedown":return f(x,b.index,b.preDragActivity);case"add-toolbar-contribution":return m(b.location,b.content);case"remove-toolbar-contribution":return u();default:return}},[d,o,p,f,m,u]),l]};import{useForkRef as Rh,useIdMemo as Lh}from"@salt-ds/core";import Mh from"classnames";import qr,{forwardRef as Ph,useCallback as Ch,useMemo as Hh,useRef as wc,useState as Nh}from"react";import{useCallback as ht,useMemo as yc}from"react";var xc=({id:e,rootRef:t,path:o,dropTargets:n,title:r})=>{let s=Be(),{loadState:i,loadSessionState:a,purgeState:l,saveState:c,saveSessionState:d}=Tt(),[m,u]=vn(e,t,o,n),p=yc(()=>{var E;return(E=i("view-title"))!=null?E:r},[i,r]),f=ht(E=>{o&&s({type:"set-title",path:o,title:E})},[s,o]),g=yc(()=>i(e),[e,i]),h=ht(E=>i(e,E),[e,i]),b=ht(E=>{l(e,E),s({type:"save"})},[e,s,l]),x=ht((E,v)=>{c(e,v,E),s({type:"save"})},[e,s,c]),I=ht(E=>a(e,E),[e,a]),y=ht((E,v)=>d(e,v,E),[e,d]),S=ht(({type:E,...v})=>{let{[E]:D}=v;x(D,E)},[x]);return{contributions:u,dispatchViewAction:m,load:h,loadSession:I,onConfigChange:S,onEditTitle:f,purge:b,restoredState:g,save:x,saveSession:y,title:p}};import{useCallback as Ec,useRef as Ic}from"react";var vh=[],Sc=({mainRef:e,resize:t="responsive",rootRef:o})=>{let n=t==="defer",r=Ic({}),s=Ic(),i=Ec(()=>{e.current&&(e.current.style.height=r.current.height+"px",e.current.style.width=r.current.width+"px"),s.current=void 0},[e]),a=Ec(({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]);_o(o,n?Gi:vh,a,n)};import wh,{useContext as Tc}from"react";var Dh={dispatch:null},wn=wh.createContext(Dh),vc=()=>{var t;let e=Tc(wn);return(t=e==null?void 0:e.dispatch)!=null?t:null},VC=()=>Tc(wn);import{jsx as Yr,jsxs as Ah}from"react/jsx-runtime";var po="vuuView",kh=(e,t)=>e&&t?{...e,...t}:e||t,Dc=Ph(function(t,o){let{Header:n=Rc,children:r,className:s,collapsed:i,closeable:a,"data-path":l,"data-resizeable":c,dropTargets:d,expanded:m,flexFill:u,id:p,header:f,orientation:g="horizontal",path:h=l,resize:b="responsive",resizeable:x=c,tearOut:I,style:y={},title:S,...E}=t,v=Lh(p),D=wc(null),P=wc(null),[A,C]=Nh(),{contributions:T,dispatchViewAction:R,load:L,loadSession:H,onConfigChange:N,onEditTitle:w,purge:M,restoredState:O,save:k,saveSession:z,title:K}=xc({id:v,rootRef:D,path:h,dropTargets:d,title:S});Sc({mainRef:P,resize:b,rootRef:D});let Z=Ch(B=>{C(B)},[]),V=()=>qr.isValidElement(r)&&(O||A)?qr.cloneElement(r,kh(O,A)):r,j=Hh(()=>({dispatch:R,id:v,path:h,title:K,load:L,loadSession:H,onConfigChange:N,purge:M,save:k,saveSession:z,setComponentProps:Z}),[R,v,L,H,N,h,M,k,z,Z,K]),F=typeof f=="object"?f:{};return Yr("div",{...E,className:Mh(po,s,{[`${po}-collapsed`]:i,[`${po}-expanded`]:m,[`${po}-resize-defer`]:b==="defer"}),"data-resizeable":x,id:v,ref:Rh(o,D),style:y,tabIndex:-1,children:Ah(wn.Provider,{value:j,children:[f?Yr(n,{...F,collapsed:i,contributions:T,expanded:m,closeable:a,onEditTitle:w,orientation:g,tearOut:I,title:K}):null,Yr("div",{className:`${po}-main`,ref:P,children:V()})]})})});Dc.displayName="View";var Nt=qr.memo(Dc);Nt.displayName="View";ae("View",Nt,"view");import{jsx as fo}from"react/jsx-runtime";var Rc=({className:e,contributions:t,collapsed:o,closeable:n,onEditTitle:r,orientation:s="horizontal",style:i,title:a="Untitled"})=>{let l=Bh(null),[c,d]=Mc(a),[m,u]=Mc(!1),p=vc(),f=C=>p==null?void 0:p({type:"remove"},C),g="vuuHeader",h=()=>{var C;(C=l.current)==null||C.focus()},b=C=>{C.stopPropagation()},I=zh(g,e,`${g}-${o||s}`),y=()=>{u(!0)},S=C=>{C.key==="Enter"&&u(!0)},E=(C="",T="",R=!0,L=!1)=>{var H;u(!1),L?d(C):T!==C&&(d(T),r==null||r(T)),R===!1&&((H=l.current)==null||H.focus())},v=C=>{p==null||p({type:"mousedown"},C)},D=[],P=[],A=[];return t==null||t.forEach((C,T)=>{switch(C.location){case"pre-title":D.push(Lc.cloneElement(C.content,{key:T}));break;default:P.push(Lc.cloneElement(C.content,{key:T}))}}),a&&D.push(fo(jo,{editing:m,value:c,onChange:d,onMouseDownCapture:h,onEnterEditMode:y,onExitEditMode:E,onKeyDown:S,ref:l,tabIndex:0},"title")),n&&A.push(fo(Oh,{"data-icon":"close",onClick:f,onMouseDown:b,variant:"secondary"},"close")),P.length>0&&D.push(fo("div",{className:"vuuTooltrayProxy","data-align":"end",children:P},"contributions")),A.length>0&&D.push(fo("div",{className:"vuuTooltrayProxy","data-align":"end",children:A},"actions")),fo("div",{className:Fh("vuuToolbarProxy",I),style:i,onMouseDown:v,children:D})};import{PopupMenu as nb}from"@vuu-ui/vuu-popups";import Rn from"classnames";import rb,{forwardRef as sb}from"react";import{isValidNumber as Qh,MEASURES as eb}from"@vuu-ui/vuu-utils";import{useCallback as Bc,useMemo as es,useRef as tb,useState as ob}from"react";var $h=".vuuOverflowContainer-item:not(.wrapped)",Kh=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}),Jr=[],go=(e,t="horizontal")=>{let o=[],n=[],r=-1,s=!1,i=Kh(Array.from(e.children)),a=t==="vertical"?"top":"left";for(let l of i){let c=l,{dataset:{index:d="?",label:m="?",overflowPriority:u="0"}}=c,{[a]:p}=c.getBoundingClientRect();p<=r?(d==="overflow"?n.push(o.pop()):n.push({index:d,label:m,overflowPriority:u}),s=!0):s?n.push({index:d,label:m,overflowPriority:u}):o.push({index:d,label:m,overflowPriority:u}),r=p}return[o,n]},Pc=(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")}},Vh=(e,{overflowPriority:t})=>Math.max(e,parseInt(t)),_h=(e,{overflowPriority:t})=>Math.min(e,parseInt(t)),Cc=e=>{var t;return e.length>1&&((t=e.at(-1))==null?void 0:t.index)==="overflow"},Wh=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},Hc=(e,t)=>{var r;let o=e.reduce(_h,Number.MAX_SAFE_INTEGER);return t.reduce(Vh,0)>o?!0:t.length>1&&((r=t.at(-1))==null?void 0:r.index)==="overflow"},Nc=(e,t)=>new Promise(o=>{requestAnimationFrame(()=>{let[,n]=go(e);Zh(t,n).forEach(s=>Gh(e,s)),o(n)})}),kc=(e,t,o)=>new Promise(n=>{requestAnimationFrame(()=>{let[,r]=go(e),s=Wh(r);if(s){let[i,a]=Qr(e,s);n([i,a])}else n([t,o])})}),Ac=(e,t)=>e.querySelector(`[data-index="${t.index}"]`),Gh=(e,t)=>{let o=Ac(e,t);if(o)o.classList.add("wrapped");else throw Error(`markElementAsWrapped element item with index ${t.index} not found`)},Uh=e=>Array.from(e.querySelectorAll(".wrapped")),Zh=(e,t)=>{let o=[];for(let n of t)e.find(({index:r})=>r===n.index)||o.push(n);return o},Xh=(e,t)=>{Uh(e).forEach(n=>{let{dataset:{index:r="?"}}=n;t.find(s=>s.index===r)||n.classList.remove("wrapped")})},Oc=e=>e.querySelector('[data-index="overflow"]'),jh=e=>e.querySelector(".wrapped"),Dn=e=>parseInt(getComputedStyle(e).getPropertyValue("width")),zc=(e,t)=>{let{right:o}=e.getBoundingClientRect(),n=parseInt(getComputedStyle(e).getPropertyValue("padding-right")),{right:r}=t.getBoundingClientRect();return o-n-r},Fc=e=>{let t=Oc(e),o=zc(e,t),n=Dn(t),r=jh(e);return Dn(r)<=o+n?(e.classList.remove("overflowed"),r.classList.remove("wrapped"),!0):!1},Yh=(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)},qh=e=>Array.from(e.querySelectorAll($h)).sort(Yh),Qr=(e,t)=>{let o=qh(e),n=Ac(e,t),r=-1,s=o.at(r),i=Dn(s),a=Dn(n),l=Oc(e),c=zc(e,l)+i;if(c>=a)Jh(n,s);else{let{left:u}=s.getBoundingClientRect(),p=c,f=[s];for(;c<a;){r-=1,s=o.at(r),f.push(s);let{left:g}=s.getBoundingClientRect(),h=u-g;c=p+h}n==null||n.classList.remove("wrapped"),f.forEach(g=>{g.classList.add("wrapped")})}let[d,m]=go(e);return Xh(e,m),[d,m]},Jh=(e,t)=>{if(!e||!t)throw Error("switchWrapOnElements, element undefined");e.classList.remove("wrapped"),t.classList.add("wrapped")};var $c=({itemCount:e,onSwitchWrappedItemIntoView:t,orientation:o="horizontal"})=>{let[n,r]=ob(null),s=tb(Jr),i=Bc(async()=>{if(n){let[u,p]=go(n,o);for(Pc(n,p),Cc(p)&&(p=await Nc(n,p));Hc(u,p);)[u,p]=await kc(n,u,p);p.length===1&&Fc(n)&&(p=Jr),s.current=p}},[n,o]),a=u=>typeof u=="object"&&u!==null&&"overflowItem"in u,[l,c]=es(()=>[()=>{let{current:u}=s;return u.map(p=>({label:p.label,action:`activate-item-${p.index}`,options:{overflowItem:p}}))},({options:u})=>{if(n&&a(u)){let[,p]=Qr(n,u.overflowItem);s.current=p,t==null||t(u.overflowItem)}return!0}],[n,t]),d=es(()=>{let{sizeProp:u}=eb[o],p=0;return new ResizeObserver(f=>{for(let g of f){let{[u]:h}=g.contentRect;Qh(h)&&p!==h&&(p=h,i())}})},[i,o]);ws(()=>{i()},[i,e]),es(()=>{n&&d.observe(n)},[n,d]);let m=Bc(u=>{r(u)},[]);return{menuActionHandler:c,menuBuilder:l,rootRef:m}};import{jsx as ho,jsxs as ib}from"react/jsx-runtime";var kt="vuuOverflowContainer",Kc=rb.memo(({children:e,className:t,height:o,onSwitchWrappedItemIntoView:n,orientation:r="horizontal",overflowIcon:s})=>{let i=bt(e),{menuActionHandler:a,menuBuilder:l,rootRef:c}=$c({itemCount:i.length,onSwitchWrappedItemIntoView:n,orientation:r}),m={"--overflow-container-height":`${r==="vertical"?"100%":`${o}px`}`},u=Rn(`${kt}-wrapContainer`,t,{[`${kt}-horizontal`]:r==="horizontal",[`${kt}-vertical`]:r==="vertical"});return ib("div",{className:u,ref:c,style:m,children:[i.map((p,f)=>{let{"data-overflow-priority":g="0",id:h,label:b=`Item ${f+1}`}=p.props;return ho("div",{className:Rn(`${kt}-item`),"data-index":f,"data-label":b,"data-overflow-priority":g,id:`${h}-wrapper`,children:p},f)}),ho("div",{className:`${kt}-OverflowIndicator`,"data-index":"overflow",children:ho(nb,{icon:s,menuBuilder:l,menuActionHandler:a})})]})});Kc.displayName="OverflowContainer.InnerContainer";var Fl=sb(function({children:t,className:o,height:n=44,onSwitchWrappedItemIntoView:r,orientation:s,overflowIcon:i,...a},l){return ho("div",{...a,className:Rn(Rn(kt,o)),ref:l,children:ho(Kc,{height:n,orientation:s,overflowIcon:i,onSwitchWrappedItemIntoView:r,children:t})})});import{uuid as ab}from"@vuu-ui/vuu-utils";import{List as lb,ListItem as cb}from"@salt-ds/lab";import Vc from"classnames";import{cloneElement as ub,memo as db}from"react";import{jsx as ts}from"react/jsx-runtime";var mb=e=>{let t=e.cloneNode(!0);return t.id="",delete t.dataset.idx,t},_c=db(({className:e,children:t,idx:o,resizeable:n,header:r,closeable:s,...i})=>ts(cb,{className:Vc("vuuPaletteItem",e),"data-draggable":!0,...i}));_c.displayName="PaletteItem";var pb=({children:e,className:t,orientation:o="horizontal",ViewProps:n,...r})=>{let s=Be(),i="vuuPalette";function a(l){var v;let d=l.target.closest(".vuuPaletteItem"),m=parseInt((v=d.dataset.idx)!=null?v:"-1");m!==-1&&console.log({children:e,idx:m,listItemElement:d});let{props:{caption:u,children:p,template:f,...g}}=e[m],{height:h,left:b,top:x,width:I}=d.getBoundingClientRect(),y=ab(),E=f?p:ts(Nt,{...n,...{id:y,key:y},...g,title:g.label,children:p});s({dragRect:{left:b,top:x,right:b+I,bottom:x+150,width:I,height:h},dragElement:mb(d),evt:l.nativeEvent,instructions:{DoNotRemove:!0,DoNotTransform:!0,RemoveDraggableOnDragEnd:!0,dragThreshold:10},path:"*",payload:E,type:"drag-start"})}return ts(lb,{...r,borderless:!0,className:Vc(i,t,`${i}-${o}`),maxHeight:800,selected:null,children:e.map((l,c)=>l.type===_c?ub(l,{key:c,onMouseDown:a}):l)})};ae("Palette",pb,"view");import fb from"classnames";import os,{forwardRef as gb,useCallback as hb}from"react";import{jsx as Gc,jsxs as Ib}from"react/jsx-runtime";var Wc="Tabs",bb=()=>{},yb=(e,t)=>{var o,n;return(n=(o=e.props)==null?void 0:o.title)!=null?n:`Tab ${t+1}`},xb=e=>{let t=[];return os.Children.forEach(e,o=>{os.isValidElement(o)?t.push(o):console.warn("Stack has unexpected child element type")}),t},Eb={allowAddTab:!1,allowCloseTab:!1,allowRenameTab:!1},ns=gb(function({active:t=0,children:o,className:n,getTabIcon:r=bb,getTabLabel:s=yb,id:i,keyBoardActivation:a="manual",onAddTab:l,onMoveTab:c,onTabClose:d,onTabEdit:m,onTabSelectionChanged:u,showTabs:p="top",style:f,TabstripProps:g=Eb},h){var A;let b=yt(i),{allowCloseTab:x,allowRenameTab:I}=g,y=hb((C,T,R,L)=>{m==null||m(L,T)},[m]),S=()=>{var C;return os.isValidElement(o)?o:Array.isArray(o)&&(C=o[t])!=null?C:null},E=()=>xb(o).map((C,T)=>{let R=`${b}-${T}`,{closeable:L=x,id:H}=C.props;return Gc(Vl,{ariaControls:`${R}-tab`,"data-icon":r(C,T),id:R,index:T,label:s(C,T),closeable:L,editable:I},H!=null?H:T)}),v=S(),D=p==="left"||p==="right",P=D?"vertical":"horizontal";return Ib("div",{className:fb(Wc,n,{[`${Wc}-horizontal`]:D}),style:f,id:b,ref:h,children:[p?Gc(zl,{...g,activeTabIndex:(A=g==null?void 0:g.activeTabIndex)!=null?A:v===null?-1:t,allowDragDrop:g.allowDragDrop!==!1,animateSelectionThumb:!0,className:"vuuTabHeader",keyBoardActivation:a,onActiveChange:u,onAddTab:l,onCloseTab:d,onExitEditMode:y,onMoveTab:c,orientation:P,children:E()}):null,v]})});ns.displayName="Stack";import{useIdMemo as Sb}from"@salt-ds/core";import Tb,{useCallback as rs,useRef as vb}from"react";import{jsx as ss}from"react/jsx-runtime";var wb=e=>ss(Nt,{resizeable:!0,title:`Tab ${e}`,style:{flexGrow:1,flexShrink:0,flexBasis:0},header:!0,closeable:!0,children:ss(kn,{style:{flex:1}})}),Uc=e=>{let t=vb(null),o=Be(),{loadState:n}=Tt(),{createNewChild:r=wb,id:s,onTabSelectionChanged:i,path:a,...l}=e,{children:c}=e,d=Sb(s),[m]=vn(d,t,a),u=I=>{a&&(o({type:"switch-tab",path:a,nextIdx:I}),i==null||i(I))},p=rs(I=>{if(Array.isArray(c)){let{props:{"data-path":y,path:S=y}}=c[I];o({type:"remove",path:S})}},[c,o]),f=rs(()=>{if(a){let I=Tb.Children.count(c),y=r(I);o({type:"add",path:a,component:y})}},[c,r,o,a]),g=rs((I,y)=>{a&&o({fromIndex:I,toIndex:y,path:a,type:"move-child"})},[o,a]);return ss(ns,{...l,id:d,getTabLabel:(I,y)=>{let{id:S,title:E}=I.props;return n(S,"view-title")||E||`Tab ${y+1}`},onMouseDown:async(I,y)=>{let S;await m({type:"mousedown",index:y,preDragActivity:async()=>new Promise(D=>{console.log("preDragActivity: Ok, gonna release the drag"),S=D})},I)&&(S==null||S(void 0))},onMoveTab:g,onAddTab:f,onTabClose:p,onTabEdit:(I,y)=>{o({type:"set-title",path:`${a}.${I}`,title:y})},onTabSelectionChanged:u,ref:t})};Uc.displayName="Stack";ae("Stack",Uc,"container");import Zc,{useState as Xc}from"react";import{jsx as is,jsxs as jc}from"react/jsx-runtime";var qN=({children:e})=>{let[o,n]=Xc(e),[r,s]=Xc(e),i=l=>{let c=Ss(o,l);s(c)},a=(l,c)=>{console.log(`change ${l} -> ${c}`);let d=Zc.cloneElement(r,{style:{...r.props.style,[l]:c}});s(d),n(Zc.cloneElement(o,{},d))};return jc("div",{"data-design-mode":`${!1}`,children:[o,is("br",{}),jc("div",{style:{display:"flex"},children:[is(Yc,{height:300,managedStyle:r.props.style,width:300,onChange:a,style:void 0}),is(qc,{layout:o,onSelect:i,style:{width:300,height:300,backgroundColor:"#ccc"}})]})]})};import{FormField as Ln,Input as Mn}from"@salt-ds/core";import{jsx as de,jsxs as ls}from"react/jsx-runtime";var cs={},Db={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"}},as=({feature:e,children:t,style:o,onChange:n})=>ls("div",{className:`LayoutBox layout-${e} layout-outer`,children:[ls("div",{className:"layout-top",children:[de("span",{className:"layout-title",children:e}),de(Ln,{className:"layout-input",style:{width:30},children:de(Mn,{value:o.top,onChange:(r,s)=>n(e,"top",s)})})]}),ls("div",{className:"layout-inner",children:[de("div",{className:"layout-left",children:de(Ln,{className:"layout-input",style:{width:30},children:de(Mn,{value:o.left,onChange:(r,s)=>n(e,"left",s)})})}),t,de("div",{className:"layout-right",children:de(Ln,{className:"layout-input",style:{width:30},children:de(Mn,{value:o.right,onChange:(r,s)=>n(e,"right",s)})})})]}),de("div",{className:"layout-bottom",children:de(Ln,{className:"layout-input",style:{width:30},children:de(Mn,{value:o.bottom,onChange:(r,s)=>n(e,"bottom",s)})})})]}),ik={margin:!0,marginTop:!0,marginRight:!0,marginBottom:!0,marginLeft:!0},ak={padding:!0,paddingTop:!0,paddingRight:!0,paddingBottom:!0,paddingLeft:!0},lk={border:!0,borderColor:!0,borderWidth:!0,borderTopWidth:!0,borderRightWidth:!0,borderBottomWidth:!0,borderLeftWidth:!0},Pn="(\\d+)(?:px)?",Rb=`^(?:${Pn}(?:\\s${Pn}(?:\\s${Pn}(?:\\s${Pn})?)?)?)$`,Jc=new RegExp(Rb),Lb=/^(?:(\d+)(?:px)\ssolid\s([a-zA-Z,0-9().]+))$/,Yc=({height:e,managedStyle:t,onChange:o,style:n,width:r})=>{let s=Qc(t),i=(I,y,S)=>{let E=parseInt(S||"0",10),v=Db[I][y];o(v,E)},{marginTop:a=0,marginRight:l=0,marginBottom:c=0,marginLeft:d=0}=s,{borderTopWidth:m=0,borderRightWidth:u=0,borderBottomWidth:p=0,borderLeftWidth:f=0}=s,{paddingTop:g=0,paddingRight:h=0,paddingBottom:b=0,paddingLeft:x=0}=s;return de("div",{className:"LayoutConfigurator",style:{width:r,height:e,...n},children:de(as,{feature:"margin",style:{top:a,right:l,bottom:c,left:d},onChange:i,children:de(as,{feature:"border",style:{top:m,right:u,bottom:p,left:f},onChange:i,children:de(as,{feature:"padding",style:{top:g,right:h,bottom:b,left:x},onChange:i,children:de("div",{className:"layout-content"})})})})})};function ck(e=cs,t=cs){let{margin:o,marginTop:n,marginRight:r,marginBottom:s,marginLeft:i,padding:a,paddingTop:l,paddingRight:c,paddingBottom:d,paddingLeft:m,...u}=e;if(typeof o=="number")u.marginTop=u.marginRight=u.marginBottom=u.marginLeft=o;else if(typeof o=="string"){let p=Jc.exec(o);if(p===null)console.error(`Invalid css value for margin '${o}'`);else{let[,f,g,h,b]=p,x=f&&g&&h;x&&b?(u.marginTop=parseInt(f,10),u.marginRight=parseInt(g,10),u.marginBottom=parseInt(h,10),u.marginLeft=parseInt(b,10)):x?(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 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 p=Jc.exec(a);if(p===null)console.error(`Invalid css value for padding '${a}'`);else{let[,f,g,h,b]=p,x=f&&g&&h;x&&b?(u.paddingTop=parseInt(f,10),u.paddingRight=parseInt(g,10),u.paddingBottom=parseInt(h,10),u.paddingLeft=parseInt(b,10)):x?(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 m=="number"&&(u.paddingLeft=m),Qc(u,t)}function Qc(e=cs){let t={...e},o,{border:n,borderWidth:r,borderTopWidth:s,borderRightWidth:i,borderBottomWidth:a,borderLeftWidth:l,borderColor:c,margin:d,marginTop:m,marginRight:u,marginBottom:p,marginLeft:f,padding:g,paddingTop:h,paddingRight:b,paddingBottom:x,paddingLeft:I,...y}=t,S={},E={};if(typeof d=="number"&&(t.marginTop=t.marginRight=t.marginBottom=t.marginLeft=d,S={marginTop:d,marginRight:d,marginBottom:d,marginLeft:d}),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=Lb.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 v=`
|
|
21
22
|
${c} ${l||0}px ${s||0}px 0 0 inset,
|
|
22
|
-
${c} ${-i||0}px ${-a||0}px 0 0 inset`;return{...y,...
|
|
23
|
+
${c} ${-i||0}px ${-a||0}px 0 0 inset`;return{...y,...S,...E,borderTopWidth:s,borderRightWidth:i,borderBottomWidth:a,borderLeftWidth:l,borderColor:c,borderStyle:"solid",boxShadow:v}}else return t}import Mb from"react";import Pb from"classnames";import{jsx as eu}from"react/jsx-runtime";var Cb="hwLayoutTreeViewer",tu=(e,t="0")=>({label:U(e),path:t,childNodes:Mb.Children.map(e.props.children,(o,n)=>tu(o,t?`${t}.${n}`:`${n}`))}),qc=({layout:e,onSelect:t,style:o})=>{let n=[tu(e)],r=(s,[{path:i}])=>{t(i)};return eu("div",{className:Pb(Cb),style:o,children:eu(jr,{source:n,groupSelection:"single",onSelectionChange:r})})};export{It as Action,lk as BORDER_STYLES,kn as Component,it as ComponentRegistry,qN as ConfigWrapper,hu as DockLayout,Un as Draggable,Us as DraggableLayout,Cn as Drawer,As as DropMenu,Je as DropTarget,Jn as Flexbox,Vi as FlexboxLayout,dr as FluidGrid,Qi as FluidGridLayout,Rc as Header,OS as HeightOnly,pe as LayoutActionType,Yc as LayoutConfigurator,IS as LayoutProvider,Jt as LayoutProviderContext,ES as LayoutProviderVersion,qc as LayoutTreeViewer,ik as MARGIN_STYLES,Jr as NO_WRAPPED_ITEMS,Fl as OverflowContainer,ak as PADDING_STYLES,pb as Palette,_c as PaletteItem,Po as Placeholder,ns as Stack,Uc as StackLayout,Nt as View,wn as ViewContext,Gi as WidthHeight,zS as WidthOnly,ck as XXXnormalizeStyles,kE as applyLayout,jt as applyLayoutProps,Pc as applyOverflowClassToWrappedItems,bt as asReactElements,gi as componentToJson,ks as computeMenuPosition,Tu as containerOf,kc as correctForWrappedHighPriorityItems,Nc as correctForWrappedOverflowIndicator,Yn as createFlexbox,Fe as createPlaceHolder,An as expandFlex,US as extractResponsiveProps,Ue as findTarget,le as followPath,Ss as followPathToComponent,Ge as followPathToParent,vu as getChild,Es as getChildProp,Uh as getElementsMarkedAsWrapped,ei as getFlexDimensions,jn as getFlexOrIntrinsicStyle,Xn as getFlexStyle,Le as getIntrinsicSize,pi as getManagedDimension,go as getNonWrappedAndWrappedItems,ci as getPersistentState,G as getProp,$ as getProps,ui as hasPersistentState,ti as hasUnboundedFlexStyle,Hc as highPriorityItemsHaveWrappedButShouldNotHave,$n as identifyDropTarget,he as isContainer,fs as isLayoutComponent,km as isResponsiveAttribute,Gy as isTabstrip,dy as isTypeOf,lu as isView,zo as layoutFromJson,Ai as layoutReducer,fi as layoutToJSON,Gh as markElementAsWrapped,yy as nextLeaf,Ne as nextStep,Cc as overflowIndicatorHasWrappedButShouldNotHave,xy as previousLeaf,er as processLayoutElement,ae as registerComponent,Fc as removeOverflowIndicatorIfNoLongerNeeded,ue as resetPath,Wi as resizeObserver,$d as serializeProps,di as setPersistentState,Iy as setRef,Kh as sortByScreenOrder,Qr as switchWrappedItemIntoView,U as typeOf,Xh as unmarkItemsWhichAreNoLongerWrapped,ji as useBreakpoints,yt as useId,ws as useLayoutEffectSkipFirst,Be as useLayoutProviderDispatch,Sm as useLayoutProviderVersion,Tt as usePersistentState,_o as useResizeObserver,vn as useViewActionDispatcher,VC as useViewContext,vc as useViewDispatch,Wt as wrapIntrinsicSizeComponentWithFlexbox};
|
|
23
24
|
//# sourceMappingURL=index.js.map
|