@vuu-ui/vuu-ui-controls 0.8.11 → 0.8.12

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 CHANGED
@@ -1,7 +1,7 @@
1
- "use strict";var vi=Object.create;var ko=Object.defineProperty;var Di=Object.getOwnPropertyDescriptor;var Hi=Object.getOwnPropertyNames;var wi=Object.getPrototypeOf,Mi=Object.prototype.hasOwnProperty;var Li=(e,t)=>{for(var o in t)ko(e,o,{get:t[o],enumerable:!0})},On=(e,t,o,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of Hi(t))!Mi.call(e,s)&&s!==o&&ko(e,s,{get:()=>t[s],enumerable:!(r=Di(t,s))||r.enumerable});return e};var ge=(e,t,o)=>(o=e!=null?vi(wi(e)):{},On(t||!e||!e.__esModule?ko(o,"default",{value:e,enumerable:!0}):o,e)),Ri=e=>On(ko({},"__esModule",{value:!0}),e);var qc={};Li(qc,{ArrowDown:()=>At,ArrowLeft:()=>Gr,ArrowRight:()=>Wr,ArrowUp:()=>Ot,BWD:()=>ya,CHECKBOX:()=>da,Checkbox:()=>ec,CheckboxIcon:()=>xo,CollectionContext:()=>wr,CollectionProvider:()=>no,ComboBox:()=>Za,DragDropProvider:()=>wa,Dropdown:()=>Wa,DropdownBase:()=>St,DropdownButton:()=>Ur,EditableLabel:()=>xn,End:()=>Ft,Enter:()=>Uo,Escape:()=>qi,ExpandoInput:()=>Qa,FWD:()=>Ea,GROUP_SELECTION_CASCADE:()=>pa,GROUP_SELECTION_NONE:()=>ts,GROUP_SELECTION_SINGLE:()=>ma,HeightOnly:()=>Rr,Highlighter:()=>rn,Home:()=>go,InstrumentPicker:()=>sc,InstrumentSearch:()=>pl,LIST_FOCUS_VISIBLE:()=>qo,List:()=>Ho,ListItem:()=>Eo,ListItemGroup:()=>kr,ListItemHeader:()=>Or,ListItemProxy:()=>To,NOT_HIDDEN:()=>cn,NOT_OVERFLOWED:()=>yo,PageDown:()=>bo,PageUp:()=>Go,PriceTicker:()=>gl,RadioButton:()=>tc,RadioIcon:()=>bn,Space:()=>jr,Tab:()=>yc,Tabstrip:()=>Tc,Tree:()=>di,TreeNode:()=>Ln,VirtualizedList:()=>Ga,VuuInput:()=>jc,WidthHeight:()=>Pi,WidthOnly:()=>Lr,allowMultipleSelection:()=>Ni,buildValidationChecker:()=>Xa,childIsGroup:()=>$r,childItems:()=>Ko,cloneElement:()=>un,closestListItemId:()=>sa,closestListItemIndex:()=>Yr,constrainRect:()=>pn,countChildItems:()=>Br,deselectionIsAllowed:()=>ki,dimensions:()=>He,dispatchCommitEvent:()=>hn,dropTargetsDebugString:()=>er,escapeRegExp:()=>io,forwardCallbackProps:()=>ao,getChildLabel:()=>Bn,getChildNodes:()=>Vn,getDefaultFilter:()=>Vr,getDefaultFilterRegex:()=>$o,getFirstSelectedItem:()=>Nr,getIndexOfDraggedItem:()=>vt,getIndexOfEditedItem:()=>En,getIndexOfSelectedTab:()=>gr,getItemById:()=>dn,getNextDropTarget:()=>ct,groupSelectionEnabled:()=>ba,hasSelection:()=>Ze,isCharacterKey:()=>Io,isDisabled:()=>Fr,isExpanded:()=>Er,isFocusable:()=>Kr,isGroupNode:()=>Ar,isHeader:()=>Ao,isMultiSelection:()=>xt,isNavigationKey:()=>qr,isParentPath:()=>Bo,isSelected:()=>co,isSingleSelection:()=>Cr,itemToString:()=>ve,listItemElement:()=>na,listItemId:()=>Xn,listItemIndex:()=>Zn,measureDropTargets:()=>yt,measureElementSizeAndPosition:()=>hs,mutateDropTargetsSwitchDropTargetPosition:()=>Qo,removeDraggedItem:()=>mn,replaceCollectionItem:()=>lo,selectionIsDisallowed:()=>Pr,sourceItemHasProp:()=>Oo,sourceItems:()=>Fo,useCollapsibleGroups:()=>Xr,useCollection:()=>Mr,useCollectionItems:()=>tt,useControlled:()=>uo,useDragDropNext:()=>Do,useDragDropProvider:()=>ln,useDropdownBase:()=>zr,useEditableText:()=>Ja,useImperativeScrollingAPI:()=>ho,useItemsWithIds:()=>Hn,useKeyboardNavigation:()=>Qr,useList:()=>nt,useResizeObserver:()=>qe,useSelection:()=>en,useTypeahead:()=>tn,useViewportTracking:()=>on});module.exports=Ri(qc);var Zs=require("@vuu-ui/vuu-layout"),Xs=require("@salt-ds/core"),_t=require("react");var Pt=require("react"),An=require("react/jsx-runtime"),wr=(0,Pt.createContext)(void 0);function no({children:e,collectionHook:t,...o}){return(0,An.jsx)(wr.Provider,{value:t,children:Object.keys(o).length>0?(0,Pt.cloneElement)(e,o):e})}function Mr(){let e=(0,Pt.useContext)(wr);if(e)return e}var Ci=e=>Object.prototype.toString.call(e)==="[object Object]";function ve(e){return typeof e=="string"?e:Ci(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(`
2
- `)),""):String(e)}var at=require("react"),Pi=["height","width"],Lr=["width"],Rr=["height"],ht=new Map,Kn=(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 Fn=new ResizeObserver(e=>{for(let t of e){let{target:o,borderBoxSize:r,contentBoxSize:s}=t,n=ht.get(o);if(n){let[{blockSize:a,inlineSize:c}]=r,[{blockSize:i,inlineSize:l}]=s,{onResize:d,measurements:f}=n,m=!1;for(let[u,p]of Object.entries(f)){let g=Kn(o,{height:a,width:c,contentHeight:i,contentWidth:l},u);g!==p&&(m=!0,f[u]=g)}m&&d&&d(f)}}});function qe(e,t,o,r=!1){let s=(0,at.useRef)(t),n=e.current,a=(0,at.useCallback)(c=>{let{width:i,height:l}=c.getBoundingClientRect(),{clientWidth:d,clientHeight:f}=c;return s.current.reduce((m,u)=>(m[u]=Kn(c,{width:i,height:l,contentHeight:f,contentWidth:d},u),m),{})},[]);(0,at.useLayoutEffect)(()=>{async function c(){ht.set(n,{measurements:{}}),await document.fonts.ready;let i=ht.get(n);if(i){let l=a(n);i.measurements=l,Fn.observe(n),r&&o(l)}else console.log("%cuseResizeObserver an target expected to be under observation wa snot found. This warrants investigation","font-weight:bold; color:red;")}return n&&(ht.has(n)&&console.log("useResizeObserver attemping to observe same element twice",{target:n}),c()),()=>{n&&ht.has(n)&&(Fn.unobserve(n),ht.delete(n))}},[a,n]),(0,at.useEffect)(()=>{let c=e.current,i=ht.get(c);if(i){if(s.current!==t){s.current=t;let l=a(c);i.measurements=l}i.onResize=o}},[t,a,e,o])}var Cr=e=>e===void 0||e==="default"||e==="deselectable",xt=e=>e==="multiple"||(e==null?void 0:e.startsWith("extended"))===!0,Pr=e=>e==="none",Ni=(e,t=!1)=>e==="multiple"||e==="multiple-special-key"&&t,ki=e=>e!=="none"&&e!=="default",Ze=e=>e!==void 0&&e.length>0,Nr=e=>e[0];var te=require("react");var Nt=require("react");var kr=e=>null;var Or=e=>null;var Oo=(e,t)=>e!==null&&Object.prototype.hasOwnProperty.call(e,t),Ao=e=>Oo(e,"header"),Ar=e=>Oo(e,"childNodes"),so=(e,t)=>e&&Object.prototype.hasOwnProperty.call(e.props,t),Fr=e=>{if((0,Nt.isValidElement)(e)){if(so(e,"disabled"))return e.props.disabled===!0}else if(Oo(e,"disabled"))return e.disabled===!0;return!1},Kr=e=>(0,Nt.isValidElement)(e)&&so(e,"focusable")?e.props.focusable:!0,Br=(e,t,o)=>{if(e.childNodes)return e.childNodes.length;if(e.header){let r=o+1,s=0;for(;r<t.length&&!t[r].header;)s++,r++;return s}else return 0},Bn=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},$n=e=>e.type===Or||so(e,"data-header"),$r=e=>e.type===kr||so(e,"data-group"),Oi=e=>so(e,"selectable")?e.props.selectable===!0:!$r(e)&&!$n(e),Vn=e=>{if($r(e)){let{props:{children:t}}=e;if(typeof t!="string")return Ko(t)}},Ai=(e,t)=>{let o=[];return Nt.Children.forEach(e,r=>{(0,Nt.isValidElement)(r)&&o.push(t(r))}),o},Fo=(e,t)=>{if(Array.isArray(e))return e.length===0&&(t!=null&&t.noChildrenLabel)?[{label:t.noChildrenLabel,value:null}]:e.map((o,r)=>{var s,n;return{childNodes:Fo(o.childNodes,t),description:o.description,expanded:o.expanded,value:o,label:(n=(s=t==null?void 0:t.itemToString)==null?void 0:s.call(t,o))!=null?n:ve(o)}});if(e)throw Error("list-child-items expects source to be an array")},Ko=e=>{if(e)return Ai(e,t=>{let{"data-id":o,disabled:r,id:s=o,"data-expanded":n,expanded:a=n}=t.props;return{childNodes:Vn(t),disabled:r,expanded:a,header:$n(t),id:s,label:Bn(t),selectable:Oi(t),value:t}})},Fi=new Set(["/","-","."]),Ki=e=>Fi.has(e),Bo=(e,t)=>t.startsWith(e)&&Ki(t[e.length]),Bi=new Set([".","/"]);function $i(e,t){return t.startsWith(e)?Bi.has(t.charAt(e.length)):!1}function lo(e,t,o){let r;return e.map(n=>n.id===t?{...n,...o}:$i(n.id,t)&&n.childNodes?(r=lo(n.childNodes,t,o),{...n,childNodes:r}):n)}var Vi=/[.*+?^${}()|[\]\\]/g;function io(e){return e.replace(Vi,"\\$&")}var ao=(e,t)=>Object.keys(e).reduce((r,s)=>{let n=e[s],a=t[s];return typeof n=="function"&&typeof a=="function"&&(r[s]=(...c)=>{n(...c),a(...c)}),r},{...t});var zi=e=>e&&e.replace(/^\s+/g,""),$o=e=>new RegExp(`(${io(zi(e))})`,"gi"),Vr=(e="",t=$o)=>(o="")=>!!o.length&&!!e.length&&o.match(t(e))!==null;function co(e,t){return Array.isArray(e)?e.includes(t.id):e===t.id}var Ke=require("react");function uo({controlled:e,default:t,name:o,state:r="value"}){let{current:s}=(0,Ke.useRef)(e!==void 0),[n,a]=(0,Ke.useState)(t),c=e!==void 0?e:n,{current:i}=(0,Ke.useRef)(t);(0,Ke.useEffect)(()=>{},[r,o,e]),(0,Ke.useEffect)(()=>{},[JSON.stringify(t,_i)]);let l=(0,Ke.useCallback)(d=>{s||a(d)},[s]);return[c,l,s]}function _i(e,t){return(0,Ke.isValidElement)(t)?null:t}var Ui={},tt=({children:e,id:t,options:o=Ui,source:r})=>{var y;let{getItemId:s}=o,[,n]=(0,te.useState)(null),a=Mr(),c=(0,te.useRef)([]),i=(0,te.useRef)([]),l=(0,te.useMemo)(()=>[],[]),d=(0,te.useRef)((y=o.filterPattern)!=null?y:""),{getFilterRegex:f=$o,noChildrenLabel:m,itemToString:u=ve}=o,p=(0,te.useCallback)(()=>o.defaultExpanded||!1,[o.defaultExpanded]),g=(0,te.useCallback)((x,N,E=1,F="",K=[],$=[],X=[])=>(x.forEach((G,B,W)=>{var ie,ne;let q=G.header&&o.collapsibleHeaders,Y=G.childNodes&&o.collapsibleHeaders===!1,se=!G.childNodes||G.childNodes.length===0,oe=Y||se&&!q,le=F?`${F}.${B}`:`item-${B}`,ee=(ie=G.id)!=null?ie:s?s(B):`${t}-${le}`,ue=oe?void 0:(ne=G.expanded)!=null?ne:p(),Ie={...G,childNodes:void 0,count:!Y&&ue===void 0?0:Br(G,W,B),description:G.description,disabled:Fr(G.value),focusable:Kr(G.value)?void 0:!1,id:ee,index:N.value,expanded:ue,level:E};if(K.push(Ie),$.push(Ie),X.push(x[B].value),N.value+=1,G.childNodes){let[ye]=g(G.childNodes,N,E+1,le,[],$,X);Ie.childNodes=ye}}),[K,X,$]),[o.collapsibleHeaders,s,t,p]),b=(0,te.useCallback)(()=>d.current?Vr(d.current,f):null,[f]),S=(0,te.useCallback)((x,N=b(),E=[],F={value:0})=>{let K=!1;for(let $ of x)K&&!Ao($)||($.value!==null&&(N===null||N(u($.value)))&&(E[F.value]=$,F.value+=1),K=!1,Ao($)&&$.expanded===!1?K=!0:Ar($)&&$.expanded!==!1&&$.childNodes&&S($.childNodes,N,E,F));return E},[b,u]),v=(0,te.useMemo)(()=>a?l:Fo(r,{itemToString:u,noChildrenLabel:m})||Ko(e)||[],[a,l,r,u,m,e]),[T,I,w]=(0,te.useMemo)(()=>a?[l,l,l]:g(v,{value:0}),[l,g,a,v]);i.current=w,(0,te.useMemo)(()=>a?l:c.current=S(T),[l,S,T,a]);let D=(0,te.useRef)(T),k=(0,te.useCallback)((x="")=>{typeof x=="string"&&(d.current=x,c.current=S(T),n({}))},[T,S]),O=(0,te.useCallback)((x,N=T)=>{let E=N.find(F=>{var K;return F.id===x||((K=F==null?void 0:F.childNodes)==null?void 0:K.length)&&Bo(F.id,x)});if((E==null?void 0:E.id)===x)return I==null?void 0:I[E.index];if(E)return O(x,E.childNodes);throw Error(`useCollectionData itemById, id ${x} not found `)},[I,T]),V=(0,te.useCallback)((x,N=T)=>{let E=N.find(K=>{var $;return K.id===x||(($=K==null?void 0:K.childNodes)==null?void 0:$.length)&&Bo(K.id,x)}),F=E?c.current.indexOf(E):-1;if(F!==-1)return F;throw Error(`useCollectionData indexOfItemById, id ${x} not found `)},[T]),M=(0,te.useCallback)(x=>{let N=i.current.find(E=>(0,te.isValidElement)(E.value)?E.label===x:E.value===x);if(N)return N;throw Error("useCollectionData toCollectionItem, item not found ")},[]),L=(0,te.useCallback)(x=>{if(x===null)return null;if(Array.isArray(x)){let N=[];for(let E of x){let F=M(E);N.push(F)}return N}else if(x!==void 0)return M(x)},[M]),h=(0,te.useCallback)(x=>{if(x===void 0)return;let N=L(x);return Array.isArray(N)?N.map(E=>E.id):N?[N.id]:[]},[L]),P=(0,te.useCallback)(x=>{let N=E=>{let F=i.current.find(K=>(0,te.isValidElement)(K.value)?K.label===E:K.value!==null&&u(K.value)===E);if(F)return F};if(x===null)return null;if(Array.isArray(x)){let E=[];for(let F of x){let K=N(F);K&&E.push(K)}return E}else if(x!==void 0)return N(x)},[u]),R=(0,te.useCallback)(x=>{for(let N of D.current)if(x===N.value)return N.id;throw Error("useCollectionData itemToId, item not found")},[]),C=(0,te.useCallback)(x=>{D.current=lo(D.current,x.id,{expanded:!1}),c.current=S(D.current),n({})},[S]),H=(0,te.useCallback)(x=>{D.current=lo(D.current,x.id,{expanded:!0}),c.current=S(D.current),n({})},[S]);return a||{collapseGroupItem:C,data:c.current,expandGroupItem:H,setFilterPattern:k,indexOfItemById:V,itemById:O,itemToId:R,toCollectionItem:M,itemToCollectionItem:L,itemToCollectionItemId:h,stringToCollectionItem:P}};var _r=ge(require("classnames")),_n=require("@salt-ds/core"),ot=require("react");var Vo=require("@salt-ds/core"),Ne=require("react");var mo=require("react"),Gi=[],zn=({popperRef:e,rootRef:t,isOpen:o,onClose:r})=>{let s=(0,mo.useRef)(o);(0,mo.useEffect)(()=>{s.current=o},[o]),(0,mo.useEffect)(()=>{let[n,a]=o?[c=>{var l,d;let i=c.target;!((l=e.current)!=null&&l.contains(i))&&!((d=t.current)!=null&&d.contains(i))&&r("click-away")},c=>{c.key==="Escape"&&s.current&&(r("Escape"),c.stopPropagation())}]:Gi;return n&&a&&(document.body.addEventListener("mousedown",n,!0),document.body.addEventListener("keydown",a,!0)),()=>{n&&a&&(document.body.removeEventListener("mousedown",n,!0),document.body.removeEventListener("keydown",a,!0))}},[o,r,e,t])};var Wi=[],zr=({defaultIsOpen:e,disabled:t,fullWidth:o,id:r,isOpen:s,onOpenChange:n,onKeyDown:a,openKeys:c=["Enter","ArrowDown"," "],openOnFocus:i,popupComponent:l,popupWidth:d,rootRef:f,width:m})=>{var H;let u=(0,Ne.useRef)(null),p=(0,Ne.useRef)(null),g=(0,Ne.useCallback)(y=>{p.current=y},[]),[b,S]=(0,Vo.useControlled)({controlled:s,default:!!e,name:"useDropdown",state:"isOpen"}),[v,T]=(0,Ne.useState)({width:(H=d!=null?d:m)!=null?H:0}),I=(0,Ne.useCallback)(()=>{S(!0),n==null||n(!0)},[n,S]),w=(0,Ne.useCallback)(y=>{S(!1),n==null||n(!1,y)},[n,S]);zn({popperRef:p,rootRef:f,isOpen:b,onClose:w});let D=(0,Ne.useCallback)(()=>{t||i&&(S(!0),n==null||n(!0),u.current=window.setTimeout(()=>{u.current=null},1e3))},[t,n,i,S]),k=(0,Ne.useCallback)(y=>{if(["Enter"," "].indexOf(y.key)===-1){let x=!b;S(x),n==null||n(x)}},[b,S,n]),O=(0,Ne.useCallback)(y=>{y.key==="Escape"&&b?(y.key==="Escape"&&(y.stopPropagation(),y.preventDefault()),w(y.key)):c.includes(y.key)&&!b?(y.preventDefault(),I()):a==null||a(y)},[w,b,a,c,I]),V=(0,Ne.useCallback)(y=>{var x;console.log("useDropdownBase blur",{popperRef:p.current,relatedTarget:y.relatedTarget}),b&&((x=p.current)!=null&&x.contains(y.relatedTarget)||(console.log("hide dropdown"),w("blur")))},[w,b]),M=o!=null?o:!1;qe(f,M?Lr:Wi,T,M);let h=`${r}-dropdown`,P={"aria-expanded":b,"aria-owns":b?h:void 0,id:`${r}-control`,onClick:t||i?void 0:k,onFocus:D,role:"listbox",onBlur:V,onKeyDown:t?void 0:O,style:{width:M?void 0:m}},R={id:h,width:v.width},C=(0,Vo.useForkRef)(g,l.ref);return{componentProps:R,popupComponentRef:C,isOpen:b,label:"Dropdown Button",triggerProps:P}};var Un=require("@vuu-ui/vuu-layout"),_o=require("@vuu-ui/vuu-popups");var po=require("react/jsx-runtime"),zo="vuuDropdown",St=(0,ot.forwardRef)(function({PopupProps:t,"aria-labelledby":o,children:r,className:s,defaultIsOpen:n,disabled:a,fullWidth:c,id:i,isOpen:l,onKeyDown:d,onOpenChange:f,openKeys:m,openOnFocus:u,placement:p="below-full-width",popupWidth:g,width:b,...S},v){let T=(0,ot.useRef)(null),I=(0,_r.default)(zo,s,{[`${zo}-fullWidth`]:c,[`${zo}-disabled`]:a}),[w,D]=ot.Children.toArray(r),k=(0,Un.useId)(i),{componentProps:O,isOpen:V,popupComponentRef:M,triggerProps:L}=zr({ariaLabelledBy:o,defaultIsOpen:n,disabled:a,fullWidth:c,id:k,isOpen:l,onOpenChange:f,onKeyDown:d,openKeys:m,openOnFocus:u,popupComponent:D,popupWidth:g,rootRef:T,width:b}),h=()=>{let{id:C,role:H,...y}=L,{id:x=C,role:N=H,...E}=w.props;return(0,ot.cloneElement)(w,ao(E,{...y,id:x,role:N}))},P=()=>{let{id:C,width:H,...y}=O,{className:x,id:N=C,width:E,...F}=D.props;return(0,ot.cloneElement)(D,{...F,...y,className:(0,_r.default)(x,`${zo}-popup-component`),id:N,ref:M,width:p.endsWith("full-width")?"100%":E!=null?E:H})},R=(0,_n.useForkRef)(T,v);return(0,po.jsxs)("div",{...S,className:I,id:i,ref:R,children:[h(),V&&(0,po.jsx)(_o.Portal,{children:(0,po.jsx)(_o.PopupComponent,{...t,anchorElement:T,placement:p,children:P()})})]})});var Gn=require("@salt-ds/core"),Wn=ge(require("classnames")),jn=require("react");var kt=require("react/jsx-runtime"),fo="vuuDropdownButton",Ur=(0,jn.forwardRef)(function({ariaHideOptionRole:t,className:o,disabled:r,icon:s="chevron-down",isOpen:n,label:a,labelId:c,fullWidth:i,posInSet:l,setSize:d,labelAriaAttributes:f,...m},u){return(0,kt.jsx)(Gn.Button,{className:(0,Wn.default)(fo,{[`${fo}-fullWidth`]:i},o),disabled:r,variant:"secondary",...m,ref:u,children:(0,kt.jsxs)("div",{className:`${fo}-content`,children:[(0,kt.jsx)("span",{"aria-hidden":t?"true":void 0,...f,className:`${fo}-buttonLabel`,id:c,role:"option",children:a}),(0,kt.jsx)("span",{className:`${fo}-buttonIcon`,"data-icon":s,"aria-hidden":"true"})]})})});var zs=require("@salt-ds/core"),st=require("react"),_s=require("@vuu-ui/vuu-layout");function ji(e,...t){let o=new Set(e);for(let r of t)for(let s of r)o.add(s);return o}var Ot="ArrowUp",At="ArrowDown",Gr="ArrowLeft",Wr="ArrowRight",Uo="Enter",qi="Escape",go="Home",Ft="End",Go="PageUp",bo="PageDown",jr=" ",Zi=new Set(["Enter","Delete"," "]),Xi=new Set(["Tab"]),Yi=new Set(["ArrowRight","ArrowLeft"]),qn=new Set([go,Ft,Go,bo,At,Ot]),Ji=new Set(["F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12"]),Qi=ji(Zi,qn,Yi,Ji,Xi),Io=e=>Qi.has(e.key)?!1:e.key.length===1&&!e.ctrlKey&&!e.metaKey&&!e.altKey,qr=({key:e})=>qn.has(e);var Zr=require("react");var ea={},ta=e=>Array.isArray(e.childNodes),oa=e=>!0,ra=e=>e.closest("[data-toggle],[aria-expanded]").dataset.toggle==="true",Xr=({collapsibleHeaders:e,collectionHook:t,highlightedIdx:o,onToggle:r})=>{let s=(0,Zr.useCallback)(c=>{if(c.key===Wr||c.key===Uo){let i=t.data[o];i&&i.expanded===!1&&i.value&&(c.preventDefault(),t.expandGroupItem(i),r==null||r(i.value))}if(c.key===Gr||c.key===Uo){let i=t.data[o];i&&i.expanded&&i.value&&(c.preventDefault(),t.collapseGroupItem(i),r==null||r(i.value))}},[t.collapseGroupItem,t.data,t.expandGroupItem,o]),a={onClick:(0,Zr.useCallback)(c=>{console.log(`useCollapsibleGroups idx=${o}`);let i=t.data[o];console.log(c.target,c.currentTarget),i&&ta(i)&&(!oa(i)||ra(c.target))&&(c.stopPropagation(),c.preventDefault(),i.expanded===!1&&i.value?(t.expandGroupItem(i),r==null||r(i.value)):i.expanded===!0&&i.value&&(t.collapseGroupItem(i),r==null||r(i.value)))},[t.collapseGroupItem,t.data,t.expandGroupItem,o]),onKeyDown:s};return e?a:ea};var na=(e,t)=>e.querySelector(`:scope > [data-idx="${t}"]`);function Zn(e){if(e){let t=e.dataset.index;if(t)return parseInt(t,10);if(t=e.ariaPosInSet)return parseInt(t,10)-1}return-1}var Xn=e=>e==null?void 0:e.id,Yn=e=>e.closest("[data-index],[aria-posinset]"),sa=e=>Xn(Yn(e)),Yr=e=>Zn(Yn(e));var Wo=require("react"),la={scrollToIndex:()=>{},scrollToItem:()=>{},scrollTo:()=>{}},ho=({collectionHook:e,forwardedRef:t,scrollableRef:o,scrollIntoView:r})=>{let s=(0,Wo.useMemo)(()=>({scrollToIndex:n=>{let a=e.data[n];a&&(r==null||r(a))},scrollToItem:n=>{let a=e.toCollectionItem(n);a&&(r==null||r(a))},scrollTo:n=>{o!=null&&o.current&&(o.current.scrollTop=n)}}),[e,r,o]);(0,Wo.useImperativeHandle)(t,()=>o.current?s:la,[s,o])};var es=require("@salt-ds/core"),De=require("react");var jo=require("@vuu-ui/vuu-utils"),qo=-2;function Jn(e,t,o){return t===Ot||t===Ft?o>0?o-1:o:o===null?0:o===e-1?o:o+1}var Jr=(e,t)=>{let o=Array.isArray(t)?Nr(t):void 0;return o?e.findIndex(r=>r.id===o):-1},ia=(e,t,o,r)=>e===Ft?r:e===go?-1:t!==-1?t:o,aa=(e,t,o,r)=>{let{top:s}=t.getBoundingClientRect(),{scrollTop:n,clientHeight:a,scrollHeight:c}=e,i=o-1,l=Math.min(n+a,c-a);if(l!==n&&r<i){e.scrollTo(0,l);let d=r,f;do d+=1,f=(0,jo.getElementByDataIndex)(e,d,!0).getBoundingClientRect();while(f.top<s&&d<i);return d}},ca=async(e,t,o)=>{let{top:r}=t.getBoundingClientRect(),{scrollTop:s,clientHeight:n}=e,a=Math.max(s-n,0);if(a!==s&&o>0)return e.scrollTo(0,a),new Promise(c=>{requestAnimationFrame(()=>{let i=o,l;do i-=1,l=(0,jo.getElementByDataIndex)(e,i,!0).getBoundingClientRect();while(l.top>r&&i>0);c(i)})})},ua=e=>!e.header&&!e.childNodes,Qn=e=>ua(e)||e.expanded!==void 0,Qr=({containerRef:e,defaultHighlightedIndex:t=-1,disableHighlightOnFocus:o,highlightedIndex:r,indexPositions:s,itemCount:n,onHighlight:a,onKeyboardNavigation:c,restoreLastFocus:i,selected:l,viewportItemCount:d})=>{let f=(0,De.useRef)(-1),[,m]=(0,De.useState)({}),[u,p,g]=(0,es.useControlled)({controlled:r,default:t,name:"UseKeyboardNavigation"}),b=(0,De.useCallback)((M,L=!1)=>{a==null||a(M),p(M),L&&(f.current=M)},[a,p]),S=(0,De.useCallback)(async(M,L)=>{let h=(0,jo.getElementByDataIndex)(e.current,L,!0),P;if(h){let{current:R}=e;h&&R&&(P=M===bo?aa(R,h,n,L):await ca(R,h,L))}return P!=null?P:L},[e,n]),v=(0,De.useCallback)((M=At,L=M===At?-1:n)=>{if(n===0)return-1;{let h=Jr(s,l),P=ia(M,L,h,n),R=Jn(n,M,P);if(R===0&&M===Ot&&!Qn(s[0]))return L;for(;((M===At||M===go)&&R<n||(M===Ot||M===Ft)&&R>0)&&!Qn(s[R]);)R=Jn(n,M,R);return R}},[s,n,l]),T=(0,De.useRef)(!1),I=(0,De.useRef)(!1),w=M=>I.current=M,D=(0,De.useCallback)(()=>{if(console.trace("List useKeyboard focus"),I.current)I.current=!1;else if(T.current=!0,s.length===0)b(qo);else if(u!==-1)m({});else if(i)if(f.current!==-1)b(f.current);else{let M=Jr(s,l);b(M!==-1?M:0)}else if(Ze(l)){let M=Jr(s,l);b(M)}else o!==!0&&b(v())},[o,u,s,v,i,l,b]),k=(0,De.useCallback)(async M=>{let L=M.key===bo||M.key===Go?await S(M.key,u):v(M.key,u);L!==u&&b(L,!0),c==null||c(M,L)},[u,v,S,c,b]),O=(0,De.useCallback)(M=>{console.log("handleKeyDown"),n>0&&qr(M)?(M.preventDefault(),M.stopPropagation(),T.current=!0,k(M)):Io(M)&&(T.current=!0)},[n,k]),V=(0,De.useMemo)(()=>({onBlur:M=>{let L=M.target.closest(".vuuList"),h=M.relatedTarget;L&&!(L!=null&&L.contains(h))&&(T.current=!1,p(-1),i||(f.current=-1))},onFocus:D,onKeyDown:O,onMouseDownCapture:()=>{T.current=!1,w(!0)},onMouseMove:()=>{T.current&&(T.current=!1)},onMouseLeave:()=>{T.current=!1,w(!1),b(-1)}}),[D,O,i,p,b]);return{focusVisible:T.current?u:-1,controlledHighlighting:g,highlightedIndex:u,setHighlightedIndex:b,keyboardNavigation:T,containerProps:V,setIgnoreFocus:w}};var ze=require("@vuu-ui/vuu-utils"),Be=require("react");var da="checkbox",ts="none",ma="single",pa="cascade",fa={},ga=["Enter"," "],ba=e=>e&&e!==ts,en=({containerRef:e,defaultSelected:t,disableSelection:o=!1,highlightedIdx:r,itemQuery:s,onSelect:n,onSelectionChange:a,selected:c,selectionStrategy:i,selectionKeys:l=ga,tabToSelect:d})=>{let f=i==="deselectable",m=i==="multiple",u=i==="extended",p=(0,Be.useRef)(-1),g=(0,Be.useCallback)(L=>l.includes(L.key),[l]),[b,S]=uo({controlled:c,default:t!=null?t:[],name:"UseSelection",state:"selected"}),v=(0,Be.useCallback)(L=>b.includes(L),[b]),T=(0,Be.useCallback)(L=>v(L)?[]:[L],[v]),I=(0,Be.useCallback)(L=>{let h=v(L)?b.filter(P=>P!==L):b.concat(L);return h.sort(),h},[v,b]),w=(0,Be.useCallback)((L,h)=>{let P=h?b:[],[R]=b.slice(-1),C=R?(0,ze.getElementDataIndex)(document.getElementById(R)):0,H=Math.min(L,C),y=Math.max(L,C),x=e.current,E=Array.from(x.querySelectorAll(s)).slice(H,y+1).map(K=>K.id),F=[...new Set([...P,...E])];return F.sort(),F},[e,s,b]),D=(0,Be.useCallback)((L,h,P,R)=>{let{current:C}=e,{id:H}=(0,ze.getElementByDataIndex)(C,h,!0),y;m?y=I(H):u?R&&!P?y=I(H):P?y=w(h,R):y=[H]:f?y=T(H):y=[H],y!==b&&S(y),n==null||n(L,H),y!==b&&a&&a(L,y)},[e,m,u,f,b,n,I,w,T,S,a]),k=(0,Be.useCallback)(L=>{let{current:h}=e,P=(0,ze.getElementByDataIndex)(h,r);(0,ze.isSelectableElement)(P)&&(g(L)||d&&L.key==="Tab")&&(L.key!=="Tab"&&L.preventDefault(),D(L,r,!1,L.ctrlKey||L.metaKey),u&&(p.current=r))},[r,e,g,d,D,u]),O=(0,Be.useCallback)((L,h)=>{if(u&&L.shiftKey){let{current:P}=e,R=(0,ze.getElementByDataIndex)(P,h);(0,ze.isSelectableElement)(R)&&D(L,h,!0)}},[u,e,D]),V=(0,Be.useCallback)(L=>{let{current:h}=e,P=(0,ze.getElementByDataIndex)(h,r);!o&&(0,ze.isSelectableElement)(P)&&(L.preventDefault(),L.stopPropagation(),D(L,r,L.shiftKey,L.ctrlKey||L.metaKey),u&&(p.current=r))},[e,r,o,D,u]);return{listHandlers:Pr(i)?fa:{onClick:V,onKeyDown:k,onKeyboardNavigation:O},selected:b,setSelected:S}};var Tt=require("react");var tn=({disableTypeToSelect:e,highlightedIdx:t,highlightItemAtIndex:o,typeToNavigate:r,items:s,applyIncrementalSearch:n=!0})=>{let a=(0,Tt.useRef)(null),c=(0,Tt.useRef)(""),i=(0,Tt.useRef)(-1),l=(0,Tt.useCallback)(f=>{if(f||!n){let m=new RegExp(`^${c.current}`,"i"),u=s.findIndex(({label:p},g)=>g>i.current&&m.test(p));u===-1&&(u=s.findIndex(({label:p},g)=>g<=i.current&&m.test(p))),u!==-1&&o(u)}else c.current="",a.current=null,i.current=-1},[n,o,s]),d=(0,Tt.useCallback)(f=>{let m=i.current!==-1;(Io(f)||m&&f.key===jr)&&r&&(f.preventDefault(),f.stopPropagation(),(i.current===-1||f.key===c.current)&&(i.current=t),a.current!==null&&(clearTimeout(a.current),a.current=null),f.key!==c.current&&(c.current+=f.key),n&&l(!0),a.current=window.setTimeout(()=>{l()},100))},[r,n,t,l]);return{onKeyDown:e?void 0:d}};var Xe=require("react");var ss=require("@salt-ds/core"),os=["height"],Ia=["height","scrollHeight"],ha=[],rs={containerOnly:[Ia,ha],withContent:[os,os]},xa=e=>e?rs.containerOnly:rs.withContent,ns={current:null},Sa=(e,t)=>{let{transform:o="none"}=getComputedStyle(e);if(o.startsWith("matrix")){let r=o.lastIndexOf(",");return parseInt(o.slice(r+1))}else{let r=e.offsetParent;if(r===t||t===null)return e.offsetTop;{let s=e.offsetTop;for(;r!==null&&r!==t;)s+=r.offsetTop,r=r.offsetParent;return s}}},on=({containerRef:e,contentRef:t=ns,highlightedIdx:o=-1,indexPositions:r,stickyHeaders:s=!1})=>{let n=(0,Xe.useRef)(!1),a=(0,Xe.useRef)({height:0,contentHeight:0}),c=(0,Xe.useCallback)(g=>{n.current=!0,e.current&&(e.current.scrollTop=g),setTimeout(()=>{n.current=!1})},[]),i=(0,Xe.useCallback)(()=>c(0),[c]),l=(0,Xe.useCallback)(()=>{c(a.current.contentHeight-a.current.height)},[c]),d=(0,Xe.useCallback)(g=>{let b=t.current||e.current;if(g.id){let S=document.getElementById(g.id);if(S&&e.current){let{height:v}=a.current,T=S.ariaExpanded&&S.firstChild?S.firstChild:S,I=s?36:0,w=Sa(T,b),D=T.offsetHeight,{scrollTop:k}=e.current,O=k+I,V=O+v-I;if(w+D>V||w<O){let M=w+D>V?k+(w+D)-V:w-I;c(M)}}}},[e,t,c,s]);(0,ss.useIsomorphicLayoutEffect)(()=>{let{height:g,contentHeight:b}=a.current,S=r[o];if(b>g&&S){let[v]=r,[T]=r.slice(-1);S===v?i():S===T?l():d(r[o])}},[o,r,d,l,i]);let f=(0,Xe.useCallback)(({height:g,scrollHeight:b})=>{typeof g=="number"&&(a.current.height=g),typeof b=="number"&&(a.current.contentHeight=b)},[]),m=(0,Xe.useCallback)(({height:g})=>{typeof g=="number"&&(a.current.contentHeight=g)},[]),[u,p]=xa(t===ns);return qe(e,u,f,!0),qe(t,p,m,!0),{isScrolling:n,scrollIntoView:d}};var ls=require("@salt-ds/core");var Kt=require("react/jsx-runtime"),Ta=(0,ls.makePrefixer)("saltHighlighter"),rn=e=>{let{matchPattern:t,text:o=""}=e,r=typeof t=="string"?new RegExp(`(${io(t)})`,"gi"):t;return r===void 0?(0,Kt.jsx)(Kt.Fragment,{children:o}):(0,Kt.jsx)("span",{children:o.split(r).map((s,n)=>s.match(r)?(0,Kt.jsx)("strong",{className:Ta("highlight"),children:s},`${n}-${s}`):s)})};var nn=require("react"),sn=ge(require("classnames"));var as=ge(require("react")),cs=ge(require("classnames"));var is="vuuCheckboxIcon",xo=({checked:e=!1,...t})=>as.default.createElement("span",{...t,className:(0,cs.default)(is,{[`${is}-checked`]:e})});var Et=require("react/jsx-runtime"),So="vuuListItem",To=(0,nn.forwardRef)(function({height:t,...o},r){return(0,Et.jsx)("div",{...o,"aria-hidden":!0,className:(0,sn.default)(So,`${So}-proxy`),ref:r,style:{height:t}})}),Eo=(0,nn.forwardRef)(function({children:t,className:o,disabled:r,tabIndex:s,item:n,itemHeight:a,itemTextHighlightPattern:c,label:i,selectable:l,selected:d,showCheckbox:f,style:m,...u},p){let g=(0,sn.default)(So,o,{vuuDisabled:r,[`${So}-checkbox`]:f}),b=a!==void 0?{...m,height:a}:m;return(0,Et.jsxs)("div",{className:g,...u,"aria-disabled":r||void 0,"aria-selected":d||void 0,ref:p,style:b,children:[f&&(0,Et.jsx)(xo,{"aria-hidden":!0,checked:d}),t&&typeof t!="string"?t:c==null?(0,Et.jsx)("span",{className:`${So}-textWrapper`,children:i||t}):(0,Et.jsx)(rn,{matchPattern:c,text:i||t})]})});var nr=require("@vuu-ui/vuu-layout"),Cs=require("@salt-ds/core"),rr=ge(require("classnames")),Le=require("react");var Ms=require("@vuu-ui/vuu-layout"),Je=require("react");var Ea="fwd",ya="bwd";var ke=require("react");var us=require("@vuu-ui/vuu-utils"),rt=require("react"),ds=({onDragOverDropTarget:e})=>{let t=(0,rt.useRef)(),o=(0,rt.useRef)(null),r=(0,rt.useRef)({x:0,y:0}),s=(0,rt.useCallback)((i,l)=>{let{current:d}=t;if(d){for(let[f,m]of Object.entries(d))if((0,us.boxContainsPoint)(m,i,l))return f}},[]),n=(0,rt.useCallback)(i=>{let{clientX:l,clientY:d}=i,{current:f}=o;if(r.current.x=l,r.current.y=d,f!=null&&f.draggableElement){let{draggableElement:m,mouseOffset:u}=f,p=r.current.x-u.x,g=r.current.y-u.y;m.style.top=`${g}px`,m.style.left=`${p}px`;let b=s(p,g);b&&e(b,f)&&(document.removeEventListener("mousemove",n,!1),document.removeEventListener("mouseup",a,!1),o.current=null)}},[]),a=(0,rt.useCallback)(()=>{document.removeEventListener("mousemove",n,!1),document.removeEventListener("mouseup",a,!1)},[n]),c=(0,rt.useCallback)(i=>(console.log("resume drag of ",{el:i.draggableElement}),o.current=i,document.addEventListener("mousemove",n,!1),document.addEventListener("mouseup",a,!1),!0),[n,a]);return{measuredDropTargetsRef:t,resumeDrag:c}};var ps=require("react/jsx-runtime"),va={isDragSource:!1,isDropTarget:!1,register:()=>{}},Da=()=>console.log("have you forgotten to provide a DragDrop Provider ?"),ms=(0,ke.createContext)({registerDragDropParty:Da}),Ha=(e=[])=>e.reduce((t,o)=>{let r=document.getElementById(o);if(r){let{top:s,right:n,bottom:a,left:c}=r.getBoundingClientRect();t[o]={top:s,right:n,bottom:a,left:c}}return t},{}),wa=({children:e,dragSources:t})=>{let o=(0,ke.useMemo)(()=>new Map,[]),r=(0,ke.useCallback)((m,u)=>{let p=o.get(m);return p?p(u):!1},[o]),{measuredDropTargetsRef:s,resumeDrag:n}=ds({onDragOverDropTarget:r}),[a,c]=(0,ke.useMemo)(()=>{let m=new Map,u=new Map;for(let[p,{dropTargets:g}]of Object.entries(t)){let b=m.get(p),S=Array.isArray(g)?g:[g];b?b.push(...S):m.set(p,S);for(let v of S){let T=u.get(v);T?T.push(p):u.set(v,[p])}}return[m,u]},[t]);console.log({dragSources:a,dropTargets:c});let i=(0,ke.useCallback)((m,u)=>(s.current=Ha(a.get(m)),n(u),!0),[a,s,n]),l=(0,ke.useCallback)(m=>{console.log(`end of drag operation, id= ${m}`)},[]),d=(0,ke.useCallback)((m,u)=>{u&&o.set(m,u)},[o]),f=(0,ke.useMemo)(()=>({dragSources:a,dropTargets:c,onDragOut:i,onEndOfDragOperation:l,registerDragDropParty:d}),[a,c,i,l,d]);return(0,ps.jsx)(ms.Provider,{value:f,children:e})},ln=e=>{var a,c;let{dragSources:t,dropTargets:o,onDragOut:r,onEndOfDragOperation:s,registerDragDropParty:n}=(0,ke.useContext)(ms);if(e){let i=(a=t==null?void 0:t.has(e))!=null?a:!1,l=(c=o==null?void 0:o.has(e))!=null?c:!1;return{isDragSource:i,isDropTarget:l,onDragOut:r,onEndOfDragOperation:s,register:n}}else return va};var Zo=class{constructor(t,o){this.draggableElement=null;this.payload=null;this.setDraggable=t=>{this.draggableElement=t};this.initialDragElement=o,this.mouseOffset=this.getMouseOffset(t,o)}setPayload(t){this.payload=t}getMouseOffset(t,o){let{clientX:r,clientY:s}=t,n=o.getBoundingClientRect();return{x:r-n.left,y:s-n.top}}};var be=require("react");var _e=require("react");var fs=require("@salt-ds/core"),gs=ge(require("classnames")),Bt=require("react"),Yo=require("@vuu-ui/vuu-popups");var Xo=require("react/jsx-runtime"),Ma=e=>e.split(" ").map(t=>`vuuDraggable-${t}`),Jo=(0,Bt.forwardRef)(function({wrapperClassName:t,element:o,onTransitionEnd:r,style:s,scale:n=1},a){let c=(0,Bt.useCallback)(d=>{d&&(d.innerHTML="",d.appendChild(o),n!==1&&(d.style.transform=`scale(${n},${n})`))},[o,n]),i=(0,fs.useForkRef)(a,c),l=(0,Bt.useMemo)(()=>({left:0,top:0}),[]);return(0,Xo.jsx)(Yo.Portal,{children:(0,Xo.jsx)(Yo.PopupComponent,{anchorElement:{current:document.body},placement:"absolute",position:l,children:(0,Xo.jsx)("div",{className:(0,gs.default)("vuuDraggable",...Ma(t)),ref:i,onTransitionEnd:r,style:s})})})}),an=e=>{let t=document.createElement("div");return t.className="vuuDraggable-spacer",e&&t.addEventListener("transitionend",()=>{e.current=!1}),t},bs=()=>{let e=document.createElement("div");return e.className="vuuDraggable-dropIndicatorPosition",e},Is=e=>{let t=document.createElement("div");return t.className="vuuDraggable-dropIndicator",e&&t.addEventListener("transitionend",()=>{e.current=!1}),t};var La=["left","right"],Ra=["top","bottom"],yo=":not(.wrapped)",cn=':not([aria-hidden="true"])',un=e=>{let t=e.cloneNode(!0);return t.removeAttribute("id"),t.dataset.index="-1",t},hs=(e,t="width",o=!1)=>{let r=t==="width"?"left":"top",{[t]:s,[r]:n}=e.getBoundingClientRect(),{padEnd:a=!1,padStart:c=!1}=e.dataset,i=getComputedStyle(e),[l,d]=t==="width"?La:Ra,f=c&&!o?0:parseInt(i.getPropertyValue(`margin-${l}`),10),m=a&&!o?0:parseInt(i.getPropertyValue(`margin-${d}`),10),u=s;if(parseInt(i.getPropertyValue("flex-shrink"),10)>0){let g=parseInt(i.getPropertyValue("flex-basis"),10);!isNaN(g)&&g>0&&(u=g)}return[n,f+u+m]},Ca={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"}},He=e=>Ca[e],dn=(e,t)=>{let o=e.find(r=>r.id===t);if(o)return o},mn=(e,t)=>{e.splice(t,1);for(let o=t;o<e.length;o++)e[o].currentIndex-=1},yt=(e,t,o,r,s)=>{let n=[],{DIMENSION:a}=He(t),c=Array.from(o?e.querySelectorAll(o):e.children),i=c.length,l=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,i-1):i-1;for(let f=l;f<=d;f++){let m=c[f],[u,p]=hs(m,a),g=f===i-1,b=m.id;n.push({currentIndex:f,id:b,index:f,isDraggedItem:s===b,isLast:g,isOverflowIndicator:m.dataset.index==="overflow",element:m,start:u,end:u+p,size:p,mid:u+p/2})}return n},vt=(e,t=!1)=>{let o=e.findIndex(r=>r.isDraggedItem);if(t){let{index:r}=e[o],s=e.filter(a=>!a.isDraggedItem).reduce((a,c)=>Math.min(a,c.index),Number.MAX_SAFE_INTEGER);if(s>0&&!(r===0&&s===1))return s+o}return o},Qo=(e,t)=>{let o=vt(e),r=t==="fwd"?o+1:o-1;if(r<0||r>=e.length)throw Error("switchDropTargetPosition index out of range");let s=e.at(o),n=e.at(r),a=n.size-s.size;if(t==="fwd"){let c=n.start+a,i=n.end,l={...s,start:c,mid:Math.floor(c+(i-c)/2),end:i},d=s.start,f=s.end+a,m={...n,start:d,mid:Math.floor(d+(f-d)/2),end:f};e.splice(o,2,m,l)}else{let c=n.start,i=n.end-a,l={...s,start:c,mid:Math.floor(c+(i-c)/2),end:i},d=s.start-a,f=s.end,m={...n,start:d,mid:Math.floor(d+(f-d)/2),end:f};e.splice(r,2,l,m)}},ct=(e,t,o,r)=>{let s=e.length,n=vt(e),a=e[n];if(r==="fwd"){let c=Math.round(t+o);for(let i=s-1;i>=0;i--){let l=e[i];if(c>l.mid)return a&&i<n?a:l}}else{let c=Math.round(t);for(let i=0;i<s;i++){let l=e[i];if(c<l.mid)return i>n?a:l}}throw Error("no dropTraget identified")};function pn(e,t){let{height:o,left:r,top:s,width:n}=e,{height:a,width:c}=t;return{height:Math.min(o,a),left:r,top:s,width:Math.min(n,c)}}var er=e=>e.map((t,o)=>{var r;return`
3
- ${t.isDraggedItem?"*":" "}[${o}] width : ${Math.floor(t.size)} ${Math.floor(t.start)} - ${Math.floor(t.end)} (mid ${Math.floor(t.mid)}) ${(r=t.element)==null?void 0:r.textContent} `}).join("");var xs=(e="horizontal")=>{let t=(0,_e.useRef)(0),o=(0,_e.useRef)(!1),r=(0,_e.useMemo)(()=>[an(o),an()],[]),s=(0,_e.useCallback)((l,d="width")=>{let[f,m]=r;t.current=requestAnimationFrame(()=>{o.current=!0,f.style.cssText=`${d}: 0px`,m.style.cssText=`${d}: ${l}px`,r[0]=m,r[1]=f})},[r]),n=(0,_e.useCallback)((l=!1)=>{if(l===!0){let[d]=r,f=()=>{d.removeEventListener("transitionend",f),n()},m=e==="horizontal"?"width":"height";d.addEventListener("transitionend",f),s(0,m)}else r.forEach(d=>d.remove())},[s,e,r]),a=(0,_e.useCallback)(()=>{t.current&&(cancelAnimationFrame(t.current),t.current=0)},[]),c=(0,_e.useCallback)((l,d,f,m=!1,u="static")=>{if(d){let p=e==="horizontal"?"width":"height",[g,b]=r;if(a(),m)o.current?(n(),g.style.cssText=`${p}: ${f}px`,b.style.cssText=`${p}: 0px`,u==="fwd"?(d.element.before(g),d.element.after(b)):(d.element.after(g),d.element.before(b))):u==="fwd"?d.element.after(b):d.element.before(b),s(f,p);else if(u==="static")g.style.cssText=`${p}: ${f}px`,d.element.before(g);else throw Error("useDragDisplacers currently only supports noTransition for static displacement");u!=="static"&&Qo(l,u)}},[s,a,n,e,r]),i=(0,_e.useCallback)((l,d,f,m=!1,u="static")=>{let p=e==="horizontal"?"width":"height",[g,b]=r;a(),m?(o.current?(n(),g.style.cssText=`${p}: ${f}px`,b.style.cssText=`${p}: 0px`,d.element.before(g),d.element.after(b)):u==="fwd"?d.element.after(b):d.element.before(b),s(f,p)):(g.style.cssText=`${p}: ${f}px`,d.element.after(g)),u!=="static"&&Qo(l,u)},[s,a,n,e,r]);return{displaceItem:c,displaceLastItem:i,clearSpacers:n}};var fn=require("@vuu-ui/vuu-utils");var Ss=({onDrop:e,orientation:t="horizontal",containerRef:o,itemQuery:r="*",selected:s,viewportRange:n})=>{let a=(0,be.useRef)(),c=(0,be.useRef)(!1),i=(0,be.useRef)(-1),l=(0,be.useRef)([]),d=(0,be.useRef)(!1),[f,m]=(0,be.useState)(!1),{clearSpacers:u,displaceItem:p,displaceLastItem:g}=xs(t),b=(0,be.useRef)(),S=`:is(${r}${yo}${cn},.vuuOverflowContainer-OverflowIndicator)`,v=h=>l.current.findIndex(P=>P.id===h.id),T=(0,be.useRef)();T.current=n;let I=(0,be.useCallback)(()=>{u()},[u]),w=(0,be.useCallback)((h,P,R)=>{let{current:C}=o,{current:H}=b;if(C&&H){l.current=yt(C,t,S,T.current),h==="fwd"?l.current.push(H):l.current.unshift(H);let{size:y}=H,N=i.current+y/2,{current:E}=l,F=ct(E,N,y,"fwd");if(F){let $=v(F),X=E[$];R&&h==="fwd"?g(E,E[E.length-1],y,!1,"static"):p(E,X,y,!0,"static")}}},[o,p,g,S,t]),D=(0,be.useCallback)(h=>{h.ariaSelected&&Array.isArray(s)&&s.length>1&&console.log("its a selected element, and we have a multi select");let{current:P}=o;if(P&&h){let R=P.contains(h),{SCROLL_SIZE:C,CLIENT_SIZE:H}=He(t),{id:y}=h,{[C]:x,[H]:N}=P;c.current=x>N;let E=l.current=yt(P,t,S,n,y);if(R){console.log(er(E));let F=vt(E),K=E[F];K&&P&&(b.current=K,(K.isLast?g:p)(E,K,K.size,!1,"static"))}else{let{top:F,height:K}=h.getBoundingClientRect(),$=ct(E,F,K,"fwd"),X=E.indexOf($),{start:G,end:B,mid:W}=$;console.log(`nextDropTarget ${$.element.textContent}`);let q=b.current={end:B,mid:W,start:G,isDraggedItem:!0,isExternal:!0,size:K},Y=E.indexOf($);console.log({indexOfDropTarget:Y}),E.splice(Y,0,q);for(let oe=X+1;oe<E.length;oe++){let le=E[oe];le.mid+=K,le.end+=K,le.start+=K}console.log(er(E)),($.isLast?g:p)(E,$,$.size,!0,"static")}}},[o,p,g,S,t,s,n]),[k,O]=(0,be.useMemo)(()=>{let h=!1;return[C=>{if(!h){h=!0;let H=C.element.querySelector(".vuuPopupMenu");H&&(0,fn.dispatchMouseEvent)(H,"click")}},C=>{if(h){h=!1;let H=C.element.querySelector(".vuuPopupMenu");H&&(0,fn.dispatchMouseEvent)(H,"click")}}]},[]),V=(0,be.useCallback)((h,P)=>{let{current:R}=b;if(R&&o.current){i.current=h;let{current:C}=l,H=ct(C,h,R.size,P);if(H&&!H.isDraggedItem)if(H.isOverflowIndicator)m(d.current=!0),k(H);else{let{size:y}=R;(v(H)===C.length-1?g:p)(C,H,y,!0,P);let E=C.at(-1);O(E),m(d.current=!1)}a.current=P}},[o,p,g,O,k]),M=(0,be.useCallback)(()=>{var C;u();let{current:h}=l,P=vt(h),R=h[P];if(R)if(a.current=void 0,d.current)e(R.index,-1,{fromIndex:R.index,toIndex:-1,isExternal:R.isExternal});else{let H=vt(h,!0);e(R.index,H,{fromIndex:R.index,toIndex:H,isExternal:R.isExternal})}if(m(!1),o.current){let H=(C=o.current)==null?void 0:C.scrollTop;P<h.length&&(o.current.scrollTop=H)}},[u,o,e]),L=(0,be.useCallback)(()=>{u(!0)},[u]);return{beginDrag:D,drag:V,drop:M,handleScrollStart:I,handleScrollStop:w,releaseDrag:L,revealOverflowedItems:f}};var ae=require("react");var vo=require("react");var Ts=()=>{let e=(0,vo.useMemo)(()=>bs(),[]),t=(0,vo.useCallback)(()=>e.remove(),[e]);return{positionDropIndicator:(0,vo.useCallback)((r,s="end")=>(s==="end"?r.element.after(e):r.element.before(e),e),[e]),clearSpacer:t}};var ys=require("react/jsx-runtime"),Pa=':not([data-overflowed="true"])',Na=':not([aria-hidden="true"])',Es=({onDrop:e,orientation:t="horizontal",containerRef:o,itemQuery:r="*",selected:s,viewportRange:n})=>{let a=(0,ae.useRef)(),c=(0,ae.useRef)(null),i=(0,ae.useRef)(null),l=(0,ae.useRef)(""),d=(0,ae.useRef)(!1),f=(0,ae.useRef)(-1),m=(0,ae.useRef)([]),u=(0,ae.useRef)(!1),[p,g]=(0,ae.useState)(!1),[b,S]=(0,ae.useState)(),{clearSpacer:v,positionDropIndicator:T}=Ts(),I=(0,ae.useRef)(),w=`:is(${r}${Pa}${Na},[data-overflow-indicator])`,D=C=>m.current.findIndex(H=>H.id===C.id),k=(C,H,y)=>{C.start+=H,C.mid+=H,C.end+=H,typeof y=="number"&&(C.currentIndex+=y)},O=(0,ae.useRef)();O.current=n;let V=(0,ae.useCallback)(()=>{v()},[v]),M=(0,ae.useCallback)((C,H,y)=>{let{current:x}=o,{current:N}=I;if(x&&N){m.current=yt(x,t,w,O.current);let{size:E}=N,K=f.current+E/2,{current:$}=m,X=ct($,K,E,"fwd");X&&T(y&&C==="fwd"?$[$.length-1]:X,"start")}},[o,T,w,t]),L=(0,ae.useCallback)(C=>{C.ariaSelected&&Array.isArray(s)&&s.length>1&&console.log("its a selected element, and we have a multi select");let{current:H}=o;if(H&&C){let{SCROLL_SIZE:y,CLIENT_SIZE:x}=He(t),{id:N}=C,{[y]:E,[x]:F}=H;d.current=E>F;let K=m.current=yt(H,t,w,n),$=dn(K,N);if($&&H){let X=D($);mn(K,X),I.current=$;let{current:G}=O;if(G!=null&&G.atEnd)for(let ee=0;ee<K.length;ee++)k(K[ee],$.size);for(let ee=X;ee<K.length;ee++)k(K[ee],-$.size,-1);let[B,W]=$.isLast?[K[K.length-1],"end"]:[K[X],"start"];i.current=B,l.current=W;let q=T(B,W),{top:Y,left:se,width:oe}=q.getBoundingClientRect(),le={top:$.isLast?G!=null&&G.atEnd&&!G.atStart?Y+$.size-2:Y-2:Y-$.size-2,left:se,width:oe,height:2};S((0,ys.jsx)(Jo,{wrapperClassName:"dropIndicatorContainer",style:le,ref:c,element:Is()}))}}},[s,o,t,w,n,T]),h=(0,ae.useCallback)((C,H)=>{let{current:y}=i,{current:x}=I;if(x&&o.current){let N=t==="horizontal"?"left":"top";f.current=C;let{current:E}=m,F=ct(E,C,x.size,H);if(F&&F.index!==(y==null?void 0:y.index)){if(F.isOverflowIndicator)g(u.current=!0);else if(c.current){if(D(F)===E.length-1){let $=E[E.length-1],G=T($,"start").getBoundingClientRect();c.current.style[N]=`${G.top}px`}else{let X=T(F,"start").getBoundingClientRect();c.current.style[N]=`${X.top}px`}g(u.current=!1)}i.current=F,a.current=H}}},[o,t,T]),P=(0,ae.useCallback)(()=>{v();let{current:C}=I,{current:H}=i,{current:y}=l,{current:x}=O;if(C&&x&&H){let{index:N}=C,E=y==="start",{index:F,currentIndex:K}=H;i.current=null,a.current=void 0,u.current?e(N,-1,{fromIndex:N,toIndex:-1}):N<F?e(N,E?K:K+1,{fromIndex:N,toIndex:E?K:K+1}):e(N,E?F:F+1,{fromIndex:N,toIndex:E?F:F+1}),S(void 0)}g(!1)},[v,e]),R=(0,ae.useCallback)(()=>{},[]);return{beginDrag:L,drag:h,drop:P,dropIndicator:b,handleScrollStart:V,handleScrollStop:M,releaseDrag:R,revealOverflowedItems:p}};var Q=require("react");var ut=require("react");var vs=({containerRef:e,onScrollingStopped:t,orientation:o="vertical"})=>{let r=(0,ut.useRef)(null),s=(0,ut.useRef)(!1),n=(0,ut.useRef)(0),a=(0,ut.useRef)("fwd"),c=(0,ut.useCallback)((l=!1)=>{console.log("[useAutoScroll] stopScrolling"),r.current!==null&&(clearTimeout(r.current),r.current=null),s.current=!1,t==null||t(a.current,n.current,l)},[t]),i=(0,ut.useCallback)((l,d,f=30)=>{let{current:m}=e;if(m){let{SCROLL_POS:u,SCROLL_SIZE:p,CLIENT_SIZE:g}=He(o),{[u]:b,[p]:S,[g]:v}=m,T=l==="fwd"?S-v-b:b,I=Math.min(T,f);l==="fwd"?(a.current="fwd",m[u]=n.current=b+I):(a.current="bwd",m[u]=n.current=b-I),I===T?c(!0):(s.current=!0,r.current=window.setTimeout(()=>{i(l,d,f)},100))}},[e,o,c]);return{isScrolling:s,startScrolling:i,stopScrolling:c}};var Hs=require("react/jsx-runtime"),ka={beginDrag:()=>{},drag:()=>{},draggableRef:{current:null},drop:()=>{},isDragging:!1,isScrolling:!1,handleScrollStart:()=>{},handleScrollStop:()=>{},revealOverflowedItems:!1},Ds={start:0,end:1e3,contraStart:0,contraEnd:1e3},Oa=()=>ka,Aa=3,Fa=(e,t)=>e.closest(t),Ka=e=>e.dataset.index==="overflow"&&e.parentElement!==null&&e.parentElement.classList.contains("overflowed"),Ba=(e,t)=>{let o=`:is(${t}${yo},.vuuOverflowContainer-OverflowIndicator)`,s=Array.from(e.querySelectorAll(o)).pop();return[s,Ka(s)]},Do=({allowDragDrop:e,containerRef:t,draggableClassName:o,getDragPayload:r,id:s,itemQuery:n="*",onDragStart:a,onDrop:c,onDropSettle:i,orientation:l,...d})=>{let f=(0,Q.useRef)({start:0,end:0,contraStart:0,contraEnd:0}),[m,u]=(0,Q.useState)({draggable:void 0,draggedItemIndex:-1,isDragging:!1}),p=(0,Q.useRef)(null),g=(0,Q.useRef)(null),b=(0,Q.useRef)(!1),S=(0,Q.useRef)({x:0,y:0}),v=(0,Q.useRef)({x:0,y:0}),T=(0,Q.useRef)(null),I=(0,Q.useRef)(-1),w=(0,Q.useRef)(-1),D=(0,Q.useRef)(),{isDragSource:k,isDropTarget:O,onDragOut:V,onEndOfDragOperation:M,register:L}=ln(s),h=(0,Q.useRef)(),P=(0,Q.useRef)(),R=(0,Q.useCallback)(()=>{console.log("attach drag handlers");let{current:_}=h,{current:U}=P;_&&U&&(document.addEventListener("mousemove",_,!1),document.addEventListener("mouseup",U,!1))},[]),C=(0,Q.useCallback)(()=>{console.log("remove drag handlers");let{current:_}=h,{current:U}=P;_&&U&&(console.log("... we have both handlers"),document.removeEventListener("mousemove",_,!1),document.removeEventListener("mouseup",U,!1))},[]),H=(0,Q.useCallback)((_,U)=>{let{current:Z}=t;if(Z){let[J,j]=Ba(Z,n),{CONTRA:A,CONTRA_END:z,DIMENSION:de,END:Se,START:pe}=He(l),fe=U[de],{[pe]:he,[Se]:Me}=J.getBoundingClientRect();f.current.start=_[pe],f.current.end=j?Math.max(he,_.right-fe):b.current?_[pe]+_[de]-fe:Me-fe,f.current.contraStart=_[A],f.current.contraEnd=_[z]}},[t,n,l]),y=(0,Q.useCallback)(()=>{var Z;let{current:_}=w,U=(Z=t.current)==null?void 0:Z.querySelector(`${n}[data-index="${_}"]`);U&&U.classList.remove("vuuDropTarget-settling"),w.current=-1,i==null||i(_),u(J=>({...J,draggable:void 0}))},[t,n,i]),x=(0,Q.useCallback)(_=>{if(t.current&&p.current){let{mouseOffset:U}=p.current,{POS:Z,SCROLL_POS:J,SCROLL_SIZE:j,CLIENT_SIZE:A}=He(l),{[J]:z,[j]:de,[A]:Se}=t.current,pe=de-Se,fe=z<pe,he=f.current.end,Me=z>0&&_-U[Z]<=f.current.start,je=fe&&_-U[Z]>=he;return Me?"bwd":je?"fwd":""}},[t,l]),N=e===!0||e==="natural-movement"?Ss:e==="drop-indicator"?Es:Oa,E=(0,Q.useCallback)((_,U,Z)=>{var J;(J=D.current)==null||J.call(D,_,U,Z)},[]),{isScrolling:F,startScrolling:K,stopScrolling:$}=vs({containerRef:t,onScrollingStopped:E,orientation:l}),X=(0,Q.useCallback)((_,U,Z)=>{var J;I.current=U,Z.isExternal?c==null||c(_,U,{...Z,payload:(J=p.current)==null?void 0:J.payload}):c==null||c(_,U,Z),w.current=U,s&&(M==null||M(s)),p.current=null},[s,c,M]),{beginDrag:G,drag:B,drop:W,handleScrollStart:q,handleScrollStop:Y,releaseDrag:se,...oe}=N({...d,containerRef:t,isDragSource:k,isDropTarget:O,itemQuery:n,onDrop:X,orientation:l});D.current=Y;let le=(0,Q.useCallback)((_,U)=>{let{CONTRA_POS:Z}=He(l),J=S.current[Z],j=k?Math.abs(J-U):0;if(p.current&&j-_>5)return V!=null&&V(s,p.current)&&(C(),se==null||se(),p.current=null),f.current=Ds,!0},[s,k,V,l,se,C]),ee=(0,Q.useCallback)(_=>{let{CLIENT_POS:U,CONTRA_CLIENT_POS:Z,POS:J}=He(l),{clientX:j,clientY:A}=_,{[U]:z,[Z]:de}=_,Se=S.current[J],pe=Math.abs(Se-z),{current:fe}=p;if(le(pe,de)){console.log("drag handed over to provider");return}if(S.current.x=j,S.current.y=A,fe){let{draggableElement:he,mouseOffset:Me}=fe;if(f.current===Ds&&he){let je=S.current.x-Me.x,Fe=S.current.y-Me.y;he.style.top=`${Fe}px`,he.style.left=`${je}px`}else if(pe>0&&he){let je=Se<z?"fwd":"bwd",Fe=x(z),bt=S.current[J]-Me[J];if(Fe&&b.current&&!F.current?(q(),K(Fe,1)):!Fe&&F.current&&$(),!F.current){let oo=Math.round(Math.max(f.current.start,Math.min(f.current.end,bt))),Ro=l==="horizontal"?"left":"top";he.style[Ro]=`${oo}px`,B(oo,je)}}}},[B,x,q,s,k,F,V,l,K,$]),ue=(0,Q.useCallback)(()=>{C(),p.current&&(T.current=p.current.draggableElement),W(),u(_=>({..._,draggedItemIndex:-1,isDragging:!1}))},[W,C]);h.current=ee,P.current=ue;let Ie=(0,Q.useCallback)(_=>{p.current=_;let{draggableElement:U,mouseOffset:Z,initialDragElement:J}=_,{current:j}=t;if(j&&U){let A=j.getBoundingClientRect(),z=U.getBoundingClientRect();return H(A,z),S.current.x=z.left+Z.x,S.current.y=z.top+Z.y,G(U),R(),!0}else return!1},[R,G,t,H]),ie=(0,Q.useCallback)(_=>{let{target:U}=_,Z=Fa(U,n),{current:J}=t;if(J&&Z){let{SCROLL_SIZE:j,CLIENT_SIZE:A}=He(l),{[j]:z,[A]:de}=J;b.current=z>de;let Se=J.getBoundingClientRect(),pe=Z.getBoundingClientRect(),fe=p.current=new Zo(_,Z);H(Se,pe),G(Z);let{dataset:{index:he="-1"}}=Z;u({isDragging:!0,draggable:(0,Hs.jsx)(Jo,{element:un(Z),onTransitionEnd:y,ref:fe.setDraggable,style:pn(pe,Se),wrapperClassName:o}),draggedItemIndex:parseInt(he)}),a==null||a(fe),R()}},[R,G,t,o,n,a,l,H,y]),ne=(0,Q.useCallback)(_=>{let{CLIENT_POS:U,POS:Z}=He(l),{[U]:J}=_;Math.abs(J-v.current[Z])>Aa&&t.current&&(g.current&&(window.clearTimeout(g.current),g.current=null),document.removeEventListener("mousemove",ne),document.removeEventListener("mouseup",ye,!1),ie(_))},[t,G,l]),ye=(0,Q.useCallback)(()=>{g.current&&(window.clearTimeout(g.current),g.current=null),document.removeEventListener("mousemove",ne,!1),document.removeEventListener("mouseup",ye,!1)},[ne]),We=(0,Q.useCallback)(_=>{let{current:U}=t;if(_.stopPropagation(),U&&!_.defaultPrevented){let{clientX:Z,clientY:J}=_;S.current.x=v.current.x=Z,S.current.y=v.current.y=J,document.addEventListener("mousemove",ne,!1),document.addEventListener("mouseup",ye,!1),_.persist(),g.current=window.setTimeout(()=>{document.removeEventListener("mousemove",ne,!1),document.removeEventListener("mouseup",ye,!1),ie(_.nativeEvent)},500)}},[t,ie,ne,ye]),{current:re}=T;return(0,Q.useLayoutEffect)(()=>{if(re&&t.current){let _=I.current,U=t.current.querySelector(`${n}[data-index="${_}"]`);U?(U.classList.add("vuuDropTarget-settling"),requestAnimationFrame(()=>{let{top:Z,left:J}=U.getBoundingClientRect(),{top:j,left:A}=re.getBoundingClientRect();A!==J||j!==Z?(re.classList.add("vuuDraggable-settling"),re.style.top=`${Z}px`,re.style.left=`${J}px`):y()})):console.log(`dont have the dropped item (at ${_})`),T.current=null}},[t,n,re,y]),(0,Q.useEffect)(()=>{s&&(k||O)&&L(s,Ie)},[s,k,O,L,Ie]),{...oe,...m,isScrolling:F,onMouseDown:e?We:void 0}};var Ye=require("react");var ws=({dataHook:e,onDrop:t,onMoveListItem:o,selected:r,setHighlightedIndex:s,setSelected:n})=>{let a=(0,Ye.useRef)([]),c=(0,Ye.useRef)(e);c.current=e;let i=(0,Ye.useCallback)((m,u,p)=>m===u?p:m<Math.min(u,p)||m>Math.max(u,p)?m:u<m?m-1:m+1,[]),l=(0,Ye.useCallback)((m,u,p)=>m.map(b=>c.current.indexOfItemById(b)).map(b=>i(b,u,p)),[i]),d=(0,Ye.useCallback)((m,u,p)=>{Ze(r)&&(a.current=l(r,m,u)),p.isExternal?t==null||t(m,u,p):o==null||o(m,u),s(-1)},[r,s,l,t,o]),f=(0,Ye.useCallback)(m=>{s(m)},[s]);return(0,Ye.useEffect)(()=>{let{current:m}=a;if(Ze(m)){a.current=[];let u=Array.isArray(m)?m.map(p=>e.data[p].id):e.data[m].id;a.current=[],n(u)}},[e.data,n]),{handleDrop:d,onDropSettle:f}};var nt=({allowDragDrop:e=!1,collapsibleHeaders:t,collectionHook:o,containerRef:r,contentRef:s,defaultHighlightedIndex:n,defaultSelected:a,disabled:c,disableAriaActiveDescendant:i,disableHighlightOnFocus:l,disableTypeToSelect:d,highlightedIndex:f,id:m,label:u="",listHandlers:p,onDragStart:g,onDrop:b,onHighlight:S,onKeyboardNavigation:v,onKeyDown:T,onMoveListItem:I,onSelect:w,onSelectionChange:D,restoreLastFocus:k,scrollContainerRef:O,selected:V,selectionStrategy:M,selectionKeys:L,stickyHeaders:h,tabToSelect:P,viewportRange:R})=>{let C=(0,Je.useRef)(V||a),H=(j,A)=>{var z,de;(de=(z=q.listHandlers).onKeyboardNavigation)==null||de.call(z,j,A),v==null||v(j,A)},y=(0,Je.useCallback)((j,A)=>{w&&A!==null&&w(j,o.itemById(A))},[o,w]),x=(0,Je.useMemo)(()=>{var j,A;return O||{current:(A=(j=r.current)==null?void 0:j.querySelector(".vuuList-scrollContainer"))!=null?A:null}},[r,O]),N=(0,Je.useCallback)((j,A)=>{if(D){if(Cr(M)){let[z]=A;D(j,o.itemById(z))}else if(xt(M)){let z=A.map(de=>o.itemById(de));D(j,z)}}},[o,D,M]),{highlightedIndex:E,containerProps:{onKeyDown:F,onMouseMove:K,...$},setHighlightedIndex:X,...G}=Qr({containerRef:x,defaultHighlightedIndex:n,disableHighlightOnFocus:l,highlightedIndex:f,indexPositions:o.data,itemCount:o.data.length,label:u,onHighlight:S,onKeyboardNavigation:H,restoreLastFocus:k,selected:C.current,viewportItemCount:10}),B=Xr({collapsibleHeaders:t,highlightedIdx:E,collectionHook:o}),W=(0,Je.useCallback)(j=>{X(-1),g==null||g(j)},[g,X]),q=en({containerRef:r,defaultSelected:a,highlightedIdx:E,itemQuery:".vuuListItem",label:`${u}:useList`,onSelect:y,onSelectionChange:N,selected:V,selectionStrategy:M,selectionKeys:L,tabToSelect:P}),{handleDrop:Y,onDropSettle:se}=ws({dataHook:o,onDrop:b,onMoveListItem:I,selected:q.selected,setHighlightedIndex:X,setSelected:q.setSelected}),{setSelected:oe}=q;(0,Ms.useLayoutEffectSkipFirst)(()=>{Ze(C.current)&&oe([])},[V,o.data,oe]);let{onMouseDown:le,isDragging:ee,isScrolling:ue,...Ie}=Do({allowDragDrop:e,draggableClassName:"list-item",orientation:"vertical",containerRef:r,id:m,itemQuery:".vuuListItem",onDragStart:W,onDrop:Y,onDropSettle:se,viewportRange:R}),{onKeyDown:ie}=tn({disableTypeToSelect:d,highlightedIdx:E,highlightItemAtIndex:X,typeToNavigate:!0,items:o.data}),ne=(0,Je.useCallback)(j=>{var A,z,de;j.defaultPrevented||ie==null||ie(j),F(j),j.defaultPrevented||(z=(A=q.listHandlers).onKeyDown)==null||z.call(A,j),j.defaultPrevented||(de=B==null?void 0:B.onKeyDown)==null||de.call(B,j),j.defaultPrevented||T==null||T(j)},[B,F,T,q.listHandlers,ie]),{isScrolling:ye,scrollIntoView:We}=on({containerRef:x,contentRef:s,highlightedIdx:E,indexPositions:o.data,stickyHeaders:h}),re=ye.current||ue.current,_=(0,Je.useCallback)(j=>{if(!re&&!c&&!ee){K();let A=Yr(j.target);if(A!==-1&&A!==E){let z=o.data[A];!z||z.disabled?X(-1):X(A)}}},[ee,re,c,X,K,E,o.data]),U=()=>{var j;return E===void 0||E===-1||i||(j=o.data[E])==null?void 0:j.id};C.current=q.selected;let Z={"aria-activedescendant":U(),onBlur:$.onBlur,onFocus:$.onFocus,onKeyDown:ne,onMouseDown:le,onMouseDownCapture:$.onMouseDownCapture,onMouseLeave:$.onMouseLeave},J=p||{onClick:q.listHandlers.onClick,onMouseMove:_};return{focusVisible:G.focusVisible,controlledHighlighting:G.controlledHighlighting,highlightedIndex:E,keyboardNavigation:G.keyboardNavigation,listHandlers:J,listItemHeaderHandlers:B,listControlProps:Z,scrollIntoView:We,selected:q.selected,setHighlightedIndex:X,setIgnoreFocus:G.setIgnoreFocus,setSelected:q.setSelected,...Ie}};var Qe=require("react");var $a=(e,t,o=0)=>e===0?0:o===0?e*t:e-1*(t+o)+t,tr=({displayedItemCount:e,getItemHeight:t,height:o,itemCount:r,itemGapSize:s,itemHeight:n=36,size:a})=>{let[c,i]=(0,Qe.useState)(n),[,l]=(0,Qe.useState)({}),d=(0,Qe.useRef)(null),[f,m]=(0,Qe.useMemo)(()=>{let g=0,b=c!=null?c:n,S=$a(r,b,s);if(o!==void 0)return[S,void 0];let v=Math.min(e,r)||e;return typeof t=="function"?g+=Array(v).fill(0).reduce((I,w,D)=>I+t(D)+s,0)-s:g+=v*Number(b)+(v-1)*s,[S,g]},[e,t,o,r,s,n,c]),u=(0,Qe.useCallback)(({height:g})=>{typeof g=="number"&&i(g)},[]),p=(0,Qe.useCallback)(g=>{d.current=g,l({})},[]);return qe(d,Rr,u,!0),{computedListHeight:m,contentHeight:f,listClientHeight:a==null?void 0:a.height,listItemHeight:c,rowHeightProxyRef:p}};var Rs=require("@salt-ds/core"),et=require("react"),Ls=(e,t,o,r)=>{let s=Math.ceil(t/r),n=Math.floor(e/r),a=Math.ceil(n+s-1);return{atStart:n===0,atEnd:a===o-1,from:n,to:a}},or=({containerSize:e,itemCount:t,itemGapSize:o=0,itemSize:r,onViewportScroll:s})=>{let n=(0,et.useRef)(0),a=(0,et.useRef)(0),c=(0,et.useRef)(0),i=(0,et.useMemo)(()=>Ls(c.current,e,t,r+o),[e,t,r,o]),[l,d]=(0,et.useState)(i);return(0,Rs.useIsomorphicLayoutEffect)(()=>{d(i)},[i]),{onVerticalScroll:(0,et.useCallback)(m=>{let u=m.target.scrollTop;if(u!==c.current){c.current=u;let p=r+o,g=Ls(u,e,t,p);(g.from!==n.current||g.to!==a.current)&&(n.current=g.from,a.current=g.to,s==null||s(g.from,g.to),d(g))}},[r,o,e,t,s]),viewportRange:l}};var Oe=require("react/jsx-runtime"),Ps=require("react"),Va="No data to display",dt="vuuList",Ho=(0,Le.forwardRef)(function({ListItem:t=Eo,ListPlaceholder:o,allowDragDrop:r,children:s,className:n,collapsibleHeaders:a=!1,defaultHighlightedIndex:c,defaultSelected:i,disabled:l=!1,disableFocus:d=!1,disableTypeToSelect:f,displayedItemCount:m=10,emptyMessage:u,focusVisible:p,getItemHeight:g,getItemId:b,height:S,highlightedIndex:v,id:T,itemGapSize:I=0,itemHeight:w,itemTextHighlightPattern:D,itemToString:k=ve,listHandlers:O,maxHeight:V,maxWidth:M,minHeight:L,minWidth:h,onDragStart:P,onDrop:R,onMoveListItem:C,onSelect:H,onSelectionChange:y,onHighlight:x,restoreLastFocus:N,selected:E,selectionStrategy:F,checkable:K=F==="multiple",scrollingApiRef:$,selectionKeys:X,showEmptyMessage:G=!1,source:B,style:W,stickyHeaders:q,tabIndex:Y=0,tabToSelect:se,...oe},le){var Pn,Nn;let ee=(0,nr.useId)(T),ue=(0,Le.useRef)(null),Ie=(0,Le.useRef)(null),ie=(0,Le.useRef)(null),[ne,ye]=(0,Le.useState)(),We=(0,Le.useCallback)(Ve=>{ye(Ve)},[]),re=tt({id:ee,label:"List",source:B,children:s,options:{collapsibleHeaders:a,getItemId:b,itemToString:k}}),{listClientHeight:_,computedListHeight:U,listItemHeight:Z,rowHeightProxyRef:J}=tr({displayedItemCount:m,getItemHeight:g,height:S,itemCount:re.data.length,itemGapSize:I,itemHeight:w,rootRef:ue,size:ne}),{onVerticalScroll:j,viewportRange:A}=or({containerSize:(Nn=(Pn=_!=null?_:U)!=null?Pn:ne==null?void 0:ne.height)!=null?Nn:0,itemCount:re.data.length,itemGapSize:I,itemSize:Z}),{draggable:z,draggedItemIndex:de,dropIndicator:Se,focusVisible:pe,highlightedIndex:fe,listControlProps:he,listHandlers:Me,listItemHeaderHandlers:je,scrollIntoView:Fe,selected:bt}=nt({allowDragDrop:r,collapsibleHeaders:a,collectionHook:re,containerRef:ue,contentRef:ie,defaultHighlightedIndex:c,defaultSelected:re.itemToCollectionItemId(i),disabled:l,disableTypeToSelect:f,highlightedIndex:v,id:ee,label:"List",listHandlers:O,onDragStart:P,onDrop:R,onMoveListItem:C,onSelect:H,onSelectionChange:y,onHighlight:x,restoreLastFocus:N,scrollContainerRef:Ie,selected:re.itemToCollectionItemId(E),selectionStrategy:F,selectionKeys:X,stickyHeaders:q,tabToSelect:se,viewportRange:A});ho({collectionHook:re,forwardedRef:$,scrollableRef:ue,scrollIntoView:Fe});let oo=p!=null?p:pe,Ro=function(me,Ce,Pe,Te){let It=(0,Ps.createElement)(t,{...je,className:(0,rr.default)(`${dt}Header`,{focusVisible:a&&oo===me.value}),"aria-expanded":Te,"data-idx":a?me.value:void 0,"data-index":a?me.value:void 0,"data-highlighted":me.value===fe||void 0,"data-sticky":q,"data-selectable":!1,id:Ce,key:`header-${me.value}`,label:Pe});return me.value+=1,It},Ii=g===void 0?()=>w:g;function hi(Ve,me,Ce){var No,kn;let{disabled:Pe,value:Te,id:It,label:Co}=me,Po=(0,Le.isValidElement)(Te),ro={className:(0,rr.default)((No=Te==null?void 0:Te.props)==null?void 0:No.className,{vuuHighlighted:Ce.value===fe,vuuFocusVisible:oo===Ce.value,["vuuDraggable-dragAway"]:de===Ce.value}),disabled:Pe||l,id:It,item:Po?void 0:(kn=me==null?void 0:me.value)!=null?kn:void 0,itemHeight:Ii(Ce.value),itemTextHighlightPattern:D,key:It,"data-index":Ce.value,label:Co,role:"option",selected:co(bt,me),showCheckbox:K};Ve.push(Po?(0,Le.cloneElement)(Te,ro):(0,Oe.jsx)(t,{...ro})),Ce.value+=1}let xi=function(me,Ce,Pe){let{count:Te=0,id:It,expanded:Co,label:Po=""}=Ce[Pe.value],ro=Ro(Pe,It,Po,Co),No=Co!==!1?[ro].concat(Rn(Ce,Pe,Pe.value+Te)||[]):ro;me.push((0,Oe.jsx)("div",{role:"group",children:No},It))},Rn=(Ve,me={value:0},Ce=Ve.length)=>{let Pe=[];for(;me.value<Ce;){let Te=Ve[me.value];Te.header?Pe.push(Ro(me,Te.id,Te.label,Te.expanded===!1)):Te.childNodes?xi(Pe,Ve,me):hi(Pe,Te,me)}return Pe};function Si(){return u||G?(0,Oe.jsx)("span",{className:`${dt}-empty-message`,children:u!=null?u:Va}):null}let Cn=re.data.length===0,Ti=()=>{if(Cn)Si();else{let Ve=re.data;return Rn(Ve)}},Ei="auto",yi={"--list-borderWidth":"var(--vuuList-borderWidth, var(--salt-size-border, 0))","--list-item-gap":I?`${I}px`:void 0,"--computed-list-height":U===void 0?void 0:`${U}px`,minWidth:h,minHeight:L,maxWidth:M,maxHeight:V};return(0,Oe.jsxs)(nr.MeasuredContainer,{"aria-multiselectable":F==="multiple"||F==="extended"||F==="extended-multi-range"||void 0,...oe,...Me,...he,className:(0,rr.default)(dt,n,{[`${dt}-collapsible`]:a,[`${dt}-contentSized`]:U!==void 0,[`${dt}-empty`]:Cn,vuuFocusVisible:fe===qo}),height:U!=null?U:S,id:`${ee}`,onResize:We,ref:(0,Cs.useForkRef)(ue,le),role:"listbox",onScroll:j,style:{...W,...yi},tabIndex:l||d?void 0:Y,children:[(0,Oe.jsx)(To,{ref:J,height:w}),re.data.length===0&&o!==void 0?(0,Oe.jsx)(Oe.Fragment,{children:(0,Oe.jsx)(o,{})}):(0,Oe.jsx)("div",{className:`${dt}-viewport`,ref:Ie,children:(0,Oe.jsxs)("div",{className:`${dt}-scrollingContentContainer`,ref:ie,style:{height:Ei},children:[Ti(),Se,z]})})]})});var $t=require("@salt-ds/core");function Ns(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=Ns(e[t]))&&(r&&(r+=" "),r+=o);else for(t in e)e[t]&&(r&&(r+=" "),r+=t);return r}function gn(){for(var e,t,o=0,r="";o<arguments.length;)(e=arguments[o++])&&(t=Ns(e))&&(r&&(r+=" "),r+=t);return r}var Ht=require("react");var Os=require("react");var sr=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((s,n)=>{(n<t||n>=o)&&(this.free.push(s),this.keys.delete(n))});let r=o-t;this.keys.size+this.free.length>r&&(this.free.length=r-this.keys.size);for(let s=t;s<o;s++)if(!this.keys.has(s)){let n=this.next();this.keys.set(s,n)}}keyFor(t){return this.keys.get(t)}};var za=([e],[t])=>e-t,ks=5,As=({data:e,listItemGapSize:t=0,listItemHeight:o,viewportRange:r})=>{let s=(0,Os.useMemo)(()=>new sr(0,1),[]),n=o+t,a=Math.max(0,r.from-ks),c=Math.min(e.length,r.to+ks);return s.reset(a,c),e.slice(a,c).map((l,d)=>[s.keyFor(d+a),(d+a)*n,d+a+1,l]).sort(za)};var Dt=require("react/jsx-runtime"),_a="No data to display",lr=(0,$t.makePrefixer)("saltList"),Ua=(0,Ht.memo)(Eo),Ga=(0,Ht.forwardRef)(function({borderless:t,children:o,className:r,collapsibleHeaders:s=!1,defaultHighlightedIndex:n,defaultSelected:a,disabled:c=!1,disableFocus:i=!1,disableTypeToSelect:l,displayedItemCount:d=10,emptyMessage:f,getItemHeight:m,getItemId:u,height:p,highlightedIndex:g,id:b,itemGapSize:S=0,itemHeight:v,itemTextHighlightPattern:T,itemToString:I,maxHeight:w,maxWidth:D,minHeight:k,minWidth:O,onDragStart:V,onDrop:M,onSelect:L,onSelectionChange:h,onViewportScroll:P,onHighlight:R,restoreLastFocus:C,selected:H,selectionStrategy:y,scrollingApiRef:x,selectionKeys:N,showEmptyMessage:E=!1,source:F,style:K,stickyHeaders:$,tabToSelect:X,width:G,...B},W){let q=(0,$t.useIdMemo)(b),Y=(0,Ht.useRef)(null),se=(0,Ht.useRef)(null),oe=tt({id:q,label:"List",source:F,children:o,options:{collapsibleHeaders:s,getItemId:u,itemToString:I}}),{contentHeight:le,listItemHeight:ee,listHeight:ue}=tr({borderless:t,displayedItemCount:d,height:p,itemCount:oe.data.length,itemGapSize:S,itemHeight:v,rootRef:Y,rowHeightRef:se}),{focusVisible:Ie,highlightedIndex:ie,listControlProps:ne,listHandlers:ye,scrollIntoView:We,selected:re}=nt({collapsibleHeaders:s,collectionHook:oe,containerRef:Y,defaultHighlightedIndex:n,defaultSelected:oe.itemToCollectionItemId(a),disabled:c,disableTypeToSelect:l,highlightedIndex:g,label:q,onSelect:L,onSelectionChange:h,onHighlight:R,restoreLastFocus:C,selected:oe.itemToCollectionItemId(H),selectionStrategy:y,selectionKeys:N,stickyHeaders:$,tabToSelect:X}),{onVerticalScroll:_,viewportRange:U}=or({containerSize:typeof ue=="number"?ue:0,itemCount:oe.data.length,itemGapSize:S,itemSize:ee});console.log({viewPortRange:U});let Z=As({data:oe.data,listItemGapSize:S,listItemHeight:ee,viewportRange:U});ho({collectionHook:oe,forwardedRef:x,scrollableRef:Y,scrollIntoView:We});function J(Se,pe,fe){let[he,Me,je,Fe]=pe,bt=je-1;Se.push((0,Dt.jsx)(Ua,{"aria-setsize":oe.data.length,"aria-posinset":je,className:gn(r,{saltHighlighted:bt===ie,saltFocusVisible:Ie===bt}),"data-idx":bt,item:Fe,label:Fe.label,"data-offset":Me,role:"option",selected:co(re,Fe),id:Fe.id,translate3d:Me},he)),fe.value+=1}function j(Se,pe={value:0},fe=Se.length){let he=[];for(;pe.value<fe;){let Me=Se[pe.value];J(he,Me,pe)}return he}function A(){return f||E?(0,Dt.jsx)("span",{className:lr("empty-message"),children:f!=null?f:_a}):null}let z=()=>{if(Z.length)return j(Z);A()},de={"--list-item-gap":S?`${S}px`:void 0,minWidth:O,minHeight:k,width:G!=null?G:"100%",height:p!=null?p:"100%",maxWidth:D!=null?D:G,maxHeight:w!=null?w:ue};return(0,Dt.jsx)("div",{...B,...ye,...ne,className:gn(lr(),r,lr("virtualized")),id:`${q}`,ref:(0,$t.useForkRef)(Y,W),role:"listbox",onScroll:_,style:{...K,...de},tabIndex:c||i?void 0:0,children:(0,Dt.jsxs)("div",{className:lr("scrollingContentContainer"),style:{height:le},children:[(0,Dt.jsx)(To,{ref:se}),z()]})})});var Ks=ge(require("classnames"));var Bs=require("react/jsx-runtime"),Fs="vuuRadioIcon",bn=({checked:e=!1,...t})=>(0,Bs.jsx)("span",{...t,className:(0,Ks.default)(Fs,{[`${Fs}-checked`]:e})});var $s=require("@salt-ds/core"),Vt=require("react");var Vs=({collectionHook:e,defaultHighlightedIndex:t,defaultIsOpen:o,defaultSelected:r,highlightedIndex:s,isOpen:n,itemToString:a=ve,listRef:c,onHighlight:i,onOpenChange:l,onSelectionChange:d,onSelect:f,selected:m,selectionStrategy:u})=>{let p=xt(u),[g,b]=(0,$s.useControlled)({controlled:n,default:o!=null?o:!1,name:"useDropdownList"}),S=(0,Vt.useCallback)((D,k)=>{console.log("useDropdown onSelectionChange",{selected:k}),p||(b(!1),l==null||l(!1)),(Array.isArray(k)||k)&&(d==null||d(null,k))},[p,l,d,b]),v=(0,Vt.useCallback)((D,k)=>{p||(b(!1),l==null||l(!1)),f==null||f(D,k)},[p,l,f,b]),T=nt({collectionHook:e,defaultHighlightedIndex:(t!=null?t:s===void 0)?0:void 0,defaultSelected:r,label:"DropDown",onSelectionChange:S,onSelect:v,containerRef:c,highlightedIndex:s,onHighlight:i,selected:m,selectionStrategy:u,tabToSelect:!p}),I=(0,Vt.useCallback)(D=>{b(D),l==null||l(D)},[l,b]),w=(0,Vt.useMemo)(()=>{if(Array.isArray(T.selected)){let D=T.selected.map(k=>e.itemById(k));if(D.length===0)return;if(D.length===1){let[k]=D;return k===null?void 0:a(k)}else return`${D.length} items selected`}},[e,a,T.selected]);return{isOpen:g,onOpenChange:I,triggerLabel:w,...T}};var zt=require("react/jsx-runtime"),Wa=(0,st.forwardRef)(function({"aria-label":t,children:o,defaultIsOpen:r,defaultSelected:s,id:n,isOpen:a,itemToString:c=ve,onOpenChange:i,onSelectionChange:l,onSelect:d,selected:f,selectionStrategy:m,source:u,triggerComponent:p,ListItem:g,ListProps:b,width:S=180,...v},T){let I=(0,_s.useId)(n),w=(0,st.useRef)(null),D=(0,st.useRef)(null),k=(0,zs.useForkRef)(w,T),O=tt({id:I,source:u,children:o,options:{itemToString:c}}),{highlightedIndex:V,triggerLabel:M,listHandlers:L,listControlProps:h,selected:P,...R}=Vs({collectionHook:O,defaultHighlightedIndex:b==null?void 0:b.defaultHighlightedIndex,defaultIsOpen:r,defaultSelected:O.itemToCollectionItemId(s),highlightedIndex:b==null?void 0:b.highlightedIndex,isOpen:a,itemToString:c,listRef:D,onHighlight:b==null?void 0:b.onHighlight,onOpenChange:i,onSelectionChange:l,onSelect:d,selected:O.itemToCollectionItemId(f),selectionStrategy:m}),C=(0,st.useCallback)(y=>Array.isArray(y)?y.map(N=>O.itemById(N)):O.itemById(y),[O]),H=()=>{let y={"aria-activedescendant":R.isOpen?h==null?void 0:h["aria-activedescendant"]:void 0,"aria-label":t};if(p){let x=p.props;return(0,st.cloneElement)(p,ao(x,{...R.isOpen?h:{},...y}))}else return(0,zt.jsx)(Ur,{label:M,...R.isOpen?h:{},...y})};return(0,zt.jsx)(no,{collectionHook:O,children:(0,zt.jsxs)(St,{...v,id:I,isOpen:R.isOpen,onOpenChange:R.onOpenChange,placement:(b==null?void 0:b.width)===void 0?"below-full-width":"below",ref:k,width:S,children:[H(),(0,zt.jsx)(Ho,{ListItem:g,itemToString:c,...b,highlightedIndex:V,listHandlers:L,onSelectionChange:l,onSelect:d,ref:D,selected:P===void 0?void 0:C(P),selectionStrategy:m})]})})});var In=require("@salt-ds/core"),Us=require("@vuu-ui/vuu-layout"),ce=require("react");var ja=["Enter"],Gs=({allowFreeText:e,ariaLabel:t,collectionHook:o,defaultIsOpen:r,defaultSelected:s,defaultValue:n,onBlur:a,onFocus:c,onChange:i,onSelect:l,id:d,initialHighlightedIndex:f=-1,isOpen:m,itemCount:u,itemsToString:p,itemToString:g=ve,listRef:b,onOpenChange:S,onSelectionChange:v,onSetSelectedText:T,selected:I,selectionStrategy:w,value:D,InputProps:k={onBlur:a,onFocus:c,onChange:i,onSelect:l}})=>{let O=xt(w),{setFilterPattern:V}=o,M=(0,ce.useRef)(null),L=(0,ce.useRef)(O?[]:null),h=(0,ce.useRef)(!0),[P,R]=(0,In.useControlled)({controlled:m,default:r!=null?r:!1,name:"useDropdownList"}),[C,H]=(0,In.useControlled)({controlled:void 0,default:n!=null?n:D,name:"ComboBox",state:"value"}),[y,x]=(0,ce.useState)(!0),N=(0,ce.useCallback)(A=>{var z;Array.isArray(A)?console.log("TODO multi selection"):A==null&&((z=M.current)==null||z.call(M,-1))},[]),E=(0,ce.useCallback)((A,z=!0)=>{H(A),z&&V(A===""?void 0:A)},[V,H]),F=(0,ce.useCallback)(A=>{let z=e&&C!=null?C:"";return Array.isArray(A)?A.length===1?z=g(A[0]):A.length>1&&(z=(p==null?void 0:p(A))||""):A&&(z=g(A)),z!==C?(E(z,!O),T==null||T(z),!0):!1},[e,O,g,p,T,E,C]),K=(0,ce.useCallback)(()=>{let{current:A}=L;F(A)&&A&&(Array.isArray(A)||A)&&(v==null||v(null,A))},[v,F]),$=(0,ce.useCallback)(()=>{if(e){let A=C==null?void 0:C.trim(),{current:z}=L;if(A){if(u===0&&A)return O?v==null||v(null,[A]):v==null||v(null,A),L.current=null,!0;z&&!O&&z&&!Array.isArray(z)&&g(z)}}return!1},[e,C,u,O,v,g]),X=(0,ce.useCallback)((A,z)=>{A&&O&&E("",!1),R(A),S==null||S(A),!A&&z!=="Escape"&&($()||K())},[K,O,S,$,R,E]),G=(0,ce.useCallback)((A,z)=>{L.current=z,O||X(!1,"select")},[X,O]),B=(0,ce.useCallback)(()=>{x(!1)},[]),{focusVisible:W,setHighlightedIndex:q,highlightedIndex:Y,listControlProps:se,listHandlers:oe,selected:le}=nt({collectionHook:o,containerRef:b,defaultHighlightedIndex:f,defaultSelected:o.itemToCollectionItemId(s),disableAriaActiveDescendant:y,disableHighlightOnFocus:!0,disableTypeToSelect:!0,onKeyboardNavigation:B,onSelectionChange:G,selected:o.itemToCollectionItemId(I),selectionKeys:ja,selectionStrategy:w,tabToSelect:!O});M.current=q;let{onClick:ee}=oe,ue=(0,ce.useCallback)(A=>{var z;(z=document.getElementById(`${d}-input`))==null||z.focus(),ee==null||ee(A)},[d,ee]),Ie=(0,ce.useCallback)(A=>{let z=A.target.value;H(z),z&&z.trim().length?V(z):V(void 0),R(!0)},[V,R,H]),{onFocus:ie=c}=k,{onFocus:ne}=se,ye=(0,ce.useCallback)(A=>{x(!1),ne==null||ne(A),ie==null||ie(A)},[ie,ne]),We=(0,ce.useCallback)(A=>{let z=A.relatedTarget;return(z==null?void 0:z.id)===`${d}-list`},[d]),{onBlur:re=a}=k,{onBlur:_}=se,U=(0,ce.useCallback)(A=>{We(A)||(_==null||_(A),re==null||re(A),x(!0),h.current=!0)},[We,_,re]),{onSelect:Z}=k,J=(0,ce.useCallback)(A=>{h.current?h.current=!1:x(!0),Z==null||Z(A)},[Z]);(0,Us.useLayoutEffectSkipFirst)(()=>{Ze(le)?N(le):q(f)},[N,u,f,le,q,R]);let j={...k.inputProps,"aria-label":t,autoComplete:"off"};return{focusVisible:W,highlightedIndex:Y,isOpen:P,onOpenChange:X,inputProps:{...k,id:`${d}-input`,inputProps:j,onChange:Ie,onSelect:J,role:"combobox",value:C},listControlProps:{...se,onBlur:U,onFocus:ye},listHandlers:{...oe,onClick:ue},selected:L.current}};var Ws=ge(require("classnames"));var qs=require("react/jsx-runtime"),qa="vuuChevronIcon",js=e=>{let{direction:t,...o}=e;return(0,qs.jsx)("span",{...o,className:(0,Ws.default)(qa,t)})};var wt=require("react/jsx-runtime"),Za=(0,_t.forwardRef)(function({InputProps:t,ListProps:o,PopupProps:r,ListItem:s,"aria-label":n,allowFreeText:a,children:c,defaultIsOpen:i,defaultSelected:l,defaultValue:d,disabled:f,onBlur:m,onFocus:u,onChange:p,onSelect:g,onSetSelectedText:b,getFilterRegex:S,id:v,initialHighlightedIndex:T=-1,isOpen:I,itemToString:w=ve,itemsToString:D,onOpenChange:k,onSelectionChange:O,selected:V,selectionStrategy:M,source:L,value:h,width:P=180,...R},C){let H=(0,Zs.useId)(v),y=(0,_t.useRef)(null),x=ee=>Array.isArray(ee)&&ee.length>0?ee[0]:void 0,E=((ee,ue)=>{let Ie=ee?x(ee):ue?x(ue):void 0;return Ie?w(Ie):""})(V,l),F=tt({id:H,source:L,children:c,options:{filterPattern:E,getFilterRegex:S,itemToString:w}}),{focusVisible:K,highlightedIndex:$,inputProps:{endAdornment:X,...G},isOpen:B,listHandlers:W,listControlProps:q,onOpenChange:Y,selected:se}=Gs({InputProps:t,allowFreeText:a,ariaLabel:n,collectionHook:F,defaultIsOpen:i,defaultSelected:l,defaultValue:d,disabled:f,initialHighlightedIndex:T,itemCount:F.data.length,label:R.title,listRef:y,onBlur:m,onFocus:u,onChange:p,onSelect:g,id:H,isOpen:I,itemToString:w,itemsToString:D,onOpenChange:k,onSelectionChange:O,onSetSelectedText:b,selected:V,selectionStrategy:M,value:E}),oe=(0,_t.useCallback)(()=>{B?Y(!1,"toggle"):Y(!0)},[B,Y]);return(0,wt.jsx)(no,{collectionHook:F,children:(0,wt.jsxs)(St,{...R,PopupProps:r,id:H,isOpen:B,onOpenChange:Y,openOnFocus:!0,ref:C,width:P,children:[(0,wt.jsx)(Xs.Input,{...G,disabled:f,...q,endAdornment:X===null?null:(0,wt.jsx)(js,{direction:B?"up":"down",onClick:oe})}),(0,wt.jsx)(Ho,{...o,ListItem:s,defaultSelected:void 0,focusVisible:K,highlightedIndex:$,itemTextHighlightPattern:String(G.value)||void 0,id:`${H}-list`,listHandlers:W,onSelectionChange:O,ref:y,selected:se,selectionStrategy:M,tabIndex:-1})]})})});var Ys=require("@vuu-ui/vuu-utils"),Xa=e=>t=>Ya(e,t);function Ya(e,t){console.log(`apply rules to ${t}`);let o;for(let r of e){let s=(0,Ys.getEditRuleValidator)(r.name);if(s){let n=s(r,t);switch(n){case!0:break;case!1:o===void 0&&(o=!1);break;default:o===void 0||o===!1?o=n:o+=`::${n}`}}else throw Error(`editable-utils applyRules, no validator registered for rule '${r.name}'`)}return console.log(o),o}var Ue=require("react"),hn=e=>{let t=new Event("vuu-commit");e.dispatchEvent(t)},Ja=({clientSideEditValidationCheck:e,initialValue:t,onCommit:o})=>{let[r,s]=(0,Ue.useState)(),[n,a]=(0,Ue.useState)(t),c=(0,Ue.useRef)(t),i=(0,Ue.useRef)(!1),l=(0,Ue.useRef)(!1),d=(0,Ue.useCallback)(()=>{console.log("blur")},[]),f=(0,Ue.useCallback)(u=>{if(u.key==="Enter")if(u.stopPropagation(),i.current){l.current=!0;let p=e==null?void 0:e(n);p?s(p):(s(void 0),o(n)&&(i.current=!1,hn(u.target)))}else hn(u.target),l.current=!1;else u.key==="ArrowRight"||u.key==="ArrowLeft"||u.key==="ArrowUp"||u.key==="ArrowDown"?u.stopPropagation():u.key==="Escape"&&i.current&&(i.current=!1,s(void 0),a(c.current))},[e,o,n]),m=(0,Ue.useCallback)(u=>{let{value:p}=u.target;if(i.current=p!==c.current,a(p),console.log(`value changes to ${p} message ${r}`),l.current){let g=e==null?void 0:e(p);console.log({warningMessage:g}),g!==r&&g!==!1&&s(g)}},[e,r]);return{onBlur:d,onChange:m,onKeyDown:f,value:n,warningMessage:r}};var Js=ge(require("classnames")),Ge=require("react"),wo=require("@salt-ds/core");var ar=require("react/jsx-runtime"),ir="vuuEditableLabel",xn=(0,Ge.forwardRef)(function({className:t,defaultEditing:o,defaultValue:r,editing:s,onChange:n,onEnterEditMode:a,onExitEditMode:c,value:i,...l},d){let f=(0,Ge.useRef)(null),m=(0,Ge.useRef)(!1),[u,p]=(0,wo.useControlled)({controlled:i,default:r!=null?r:"",name:"EditableLabel",state:"value"}),[g,b]=(0,wo.useControlled)({controlled:s,default:o!=null?o:!1,name:"EditableLabel",state:"editing"}),S=(0,Ge.useCallback)(M=>{b(m.current=M)},[b]),v=(0,Ge.useRef)(u);(0,Ge.useLayoutEffect)(()=>{g&&f.current!==null&&(f.current.select(),f.current.focus())},[g,f]);let T=(0,Ge.useCallback)(()=>{S(!0),a&&a()},[a,S]),I=({cancelEdit:M=!1,allowDeactivation:L=!1}={})=>{S(!1);let h=v.current;h!==u&&(M?p(h):v.current=u),c&&c(h,u,L,M)},w=M=>{let{value:L}=M.target;p(L),n&&n(L)},D=()=>{T()},k=()=>{m.current&&I({allowDeactivation:!0})},O=M=>{g&&M.key==="Enter"?(M.stopPropagation(),I()):M.key==="ArrowRight"||M.key==="ArrowLeft"?M.stopPropagation():M.key==="Escape"&&I({cancelEdit:!0})},V=(0,Js.default)(ir,t,{[`${ir}-editing`]:g});return(0,ar.jsx)("div",{...l,className:V,onDoubleClick:D,"data-text":u,ref:d,children:g?(0,ar.jsx)(wo.Input,{inputProps:{className:`${ir}-input`,spellCheck:!1},value:u,onBlur:k,onChange:w,onKeyDown:O,inputRef:f,style:{padding:0},textAlign:"left",variant:"secondary"}):(0,ar.jsx)("span",{className:`${ir}-label`,children:u})})});var el=require("@salt-ds/core"),tl=ge(require("classnames")),ol=require("react");var Sn=require("react/jsx-runtime"),Qs="vuuExpandoInput",Qa=(0,ol.forwardRef)(function({className:t,value:o,inputProps:r,...s},n){return(0,Sn.jsx)("div",{className:(0,tl.default)(Qs,t),"data-text":o,children:(0,Sn.jsx)(el.Input,{...s,inputProps:{...r,className:`${Qs}-input`},ref:n,style:{padding:0},textAlign:"left",value:o,variant:"secondary"})})});var cr=require("react/jsx-runtime"),ec=e=>{let{onToggle:t,checked:o,label:r}=e;return(0,cr.jsxs)("div",{className:"vuuCheckbox",onClick:t,onKeyUp:s=>s.key===" "&&t(),children:[(0,cr.jsx)(xo,{tabIndex:0,checked:o}),r]})};var Ut=require("react/jsx-runtime"),tc=e=>{let{onClick:t,checked:o,label:r,groupName:s}=e;return(0,Ut.jsxs)("div",{className:"vuuRadioButton",onClick:t,children:[(0,Ut.jsxs)("div",{className:"radio",children:[(0,Ut.jsx)("input",{type:"radio",name:s}),(0,Ut.jsx)(bn,{checked:o})]}),r]})};var sl=require("@vuu-ui/vuu-layout"),ll=require("@vuu-ui/vuu-table"),il=require("@salt-ds/core"),dr=require("react");var rl=require("@vuu-ui/vuu-utils");var ur=require("react/jsx-runtime"),oc="vuuSearchCell",rc=({column:e,columnMap:t,row:o})=>{let r=t[e.name],s=o[r];return(0,ur.jsxs)("div",{className:oc,tabIndex:-1,children:[(0,ur.jsx)("span",{"data-icon":"draggable"}),s]})};console.log("register SearchCell");(0,rl.registerComponent)("search-cell",rc,"cell-renderer",{serverDataType:"private"});var mt=require("react");var nl=({columnMap:e,dataSource:t,defaultIsOpen:o,isOpen:r,onSelect:s,searchColumns:n})=>{let[a,c]=(0,mt.useState)(""),[i,l]=uo({controlled:r,default:o!=null?o:!1,name:"useDropdownList"});console.log({dataSource:t});let d=(0,mt.useMemo)(()=>n.map(S=>`${S} starts "__VALUE__"`).join(" or "),[n]),f=(0,mt.useCallback)(S=>{l(S)},[l]),m=(0,mt.useCallback)(S=>{let{value:v}=S.target;if(c(v),v&&v.trim().length){let T=d.replaceAll("__VALUE__",v);t.filter={filter:T}}else t.filter={filter:""};l(!0)},[d,t,l]),u=(0,mt.useCallback)(S=>{let{name:v}=e,{[v]:T}=S;c(T),l(!1),s(S)},[e,s,l]);return{controlProps:{},inputProps:{onChange:m},isOpen:i,onOpenChange:f,tableHandlers:{onSelect:u},value:a}};var Gt=require("react/jsx-runtime"),nc="vuuInstrumentPicker",sc=(0,dr.forwardRef)(function({TableProps:{dataSource:t,...o},className:r,columnMap:s,disabled:n,id:a,onSelect:c,schema:i,searchColumns:l,width:d,...f},m){let u=(0,sl.useId)(a),{controlProps:p,inputProps:g,isOpen:b,onOpenChange:S,tableHandlers:v,value:T}=nl({columnMap:s,dataSource:t,onSelect:c,searchColumns:l}),I=(0,dr.useMemo)(()=>(0,Gt.jsx)("span",{"data-icon":"chevron-down"}),[]);return(0,Gt.jsxs)(St,{...f,fullWidth:!0,id:u,isOpen:b,onOpenChange:S,openOnFocus:!0,placement:"below-full-width",ref:m,width:d,children:[(0,Gt.jsx)(il.Input,{...g,disabled:n,...p,endAdornment:I,value:T}),(0,Gt.jsx)(ll.TableNext,{rowHeight:25,renderBufferSize:100,...o,...v,className:`${nc}-list`,height:200,dataSource:t,showColumnHeaders:!1})]})});var ul=require("@vuu-ui/vuu-layout"),dl=require("@vuu-ui/vuu-table"),Wt=require("@salt-ds/core"),ml=ge(require("classnames")),pr=require("react");var al=require("@vuu-ui/vuu-utils");var mr=require("react/jsx-runtime"),lc="vuuSearchCell",ic=({column:e,columnMap:t,row:o})=>{let r=t[e.name],s=o[r];return(0,mr.jsxs)("div",{className:lc,tabIndex:-1,children:[(0,mr.jsx)("span",{"data-icon":"draggable"}),s]})};console.log("register SearchCell");(0,al.registerComponent)("search-cell",ic,"cell-renderer",{serverDataType:"private"});var pt=require("react/jsx-runtime"),Tn="vuuInstrumentSearch",ac={columns:[{name:"bbg",hidden:!0},{name:"description",width:200,type:{name:"string",renderer:{name:"search-cell"}}}],rowSeparators:!0},cc=(0,pt.jsx)("span",{"data-icon":"search"}),pl=({TableProps:e,className:t,dataSource:o,searchColumn:r="description",...s})=>{let[n,a]=(0,pr.useState)({searchText:"",filter:""}),c=(0,pr.useCallback)(i=>{let{value:l}=i.target,d=`name starts "${l}"`;a({searchText:l,filter:d}),o.filter={filter:d,filterStruct:{op:"starts",column:r,value:l}}},[o,r]);return(0,pt.jsxs)("div",{...s,className:(0,ml.default)(Tn,t),children:[(0,pt.jsxs)(Wt.FormField,{className:`${Tn}-inputField`,children:[(0,pt.jsx)(Wt.FormFieldLabel,{}),(0,pt.jsx)(Wt.Input,{endAdornment:cc,value:n.searchText,onChange:c})]}),(0,pt.jsx)(dl.TableNext,{rowHeight:25,config:ac,renderBufferSize:100,...e,className:`${Tn}-list`,dataSource:o,showColumnHeaders:!1})]})},cl;(cl=ul.registerComponent)==null||cl("InstrumentSearch",pl,"view");var jt=require("@vuu-ui/vuu-utils"),qt=require("react"),fl=ge(require("classnames"));var fr=require("react/jsx-runtime"),uc="vuuPriceTicker",dc=e=>(0,jt.numericFormatter)({type:{name:"number",formatting:{decimals:e,zeroPad:!0}}}),mc=[void 0,void 0],gl=(0,qt.memo)(({className:e,decimals:t=2,price:o,showArrow:r,...s})=>{let n=(0,qt.useRef)(mc),[a,c]=n.current,i=(0,qt.useMemo)(()=>dc(t),[t]),l=(0,jt.isValidNumber)(a)?(0,jt.getMovingValueDirection)(o,c,a,t):"";return n.current=[o,l],(0,fr.jsxs)("div",{...s,className:(0,fl.default)(uc,e,l),children:[i(o),r?(0,fr.jsx)("span",{"data-icon":"price-arrow"}):null]})});gl.displayName="PriceTicker";var Xt=require("@vuu-ui/vuu-layout"),Rl=require("@salt-ds/core"),vn=ge(require("classnames")),Yt=ge(require("react"));var Ml=require("@vuu-ui/vuu-utils"),Ee=require("react");var bl=e=>typeof e=="object"&&e!==null&&"tabIndex"in e&&typeof e.tabIndex=="number",Il=e=>({label:"Close",location:"tab",action:"close-tab",options:e}),hl=e=>({label:"Rename",location:"tab",action:"rename-tab",options:e});var xl=require("@vuu-ui/vuu-utils"),Sl=(e,t)=>{if(e){let o=e.querySelector(`[data-index]:has(${t})`);return(0,xl.getElementDataIndex)(o)}return-1},gr=e=>Sl(e,'[aria-selected="true"]'),En=e=>Sl(e,".vuuEditableLabel-editing");var Zt=require("@vuu-ui/vuu-utils"),lt=require("react"),Tl=(e,t,o="horizontal")=>{let r=(0,lt.useRef)(!1),s=(0,lt.useCallback)(()=>{r.current=!0},[]),n=(0,lt.useCallback)(()=>{r.current=!1},[]),a=(0,lt.useCallback)(()=>{var i,l;(i=e.current)==null||i.style.setProperty("--tab-thumb-transition","none"),(l=e.current)==null||l.removeEventListener("transitionend",a)},[e]),c=(0,lt.useRef)(-1);return(0,lt.useMemo)(()=>{var d,f;let i=0,l=0;if(c.current!==-1){let m=(d=e.current)==null?void 0:d.querySelector(".vuuTab-selected"),u=(f=e.current)==null?void 0:f.querySelector(`[data-index="${t}"] .vuuTab`),{positionProp:p,sizeProp:g}=Zt.MEASURES[o];if(m&&u&&!r.current){let{[p]:b,[g]:S}=m.getBoundingClientRect(),{[p]:v}=u.getBoundingClientRect();if((0,Zt.isValidNumber)(b)&&(0,Zt.isValidNumber)(v)&&(0,Zt.isValidNumber)(S)){console.log({orientation:o,positionProp:p,oldPosition:b,newPosition:v}),i=b-v,l=S;let I=Math.abs(i/(o==="horizontal"?1100:700));requestAnimationFrame(()=>{var w,D,k,O;(w=e.current)==null||w.style.setProperty("--tab-thumb-offset","0px"),(D=e.current)==null||D.style.setProperty("--tab-thumb-size","100%"),(k=e.current)==null||k.style.setProperty("--tab-thumb-transition",`all ${I}s ease`),(O=e.current)==null||O.addEventListener("transitionend",a)})}}}return c.current=t,r.current?{containerStyle:{"--tab-thumb-offset":"0px","--tab-thumb-size":"100%"},resumeAnimation:n,suspendAnimation:s}:{containerStyle:{"--tab-thumb-offset":`${i}px`,"--tab-thumb-size":l?`${l}px`:void 0},resumeAnimation:n,suspendAnimation:s}},[t,e,o,a,n,s])};var yl=require("@salt-ds/core"),Ir=require("@vuu-ui/vuu-utils"),xe=require("react"),we=require("@vuu-ui/vuu-utils");var vl={horizontal:{[we.Home]:"start",[we.End]:"end",[we.ArrowLeft]:"bwd",[we.ArrowRight]:"fwd"},vertical:{[we.Home]:"start",[we.End]:"end",[we.ArrowUp]:"bwd",[we.ArrowDown]:"fwd"}},pc=(e,t="horizontal")=>vl[t][e]!==void 0,fc=e=>e===we.ArrowDown;function El(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 gc=e=>e!==null&&!e.classList.contains("wrapped"),br=(e,t)=>e?e.querySelector(`[data-index="${t}"]`):null,Dl=({containerRef:e,defaultHighlightedIdx:t=-1,highlightedIdx:o,keyBoardActivation:r,orientation:s,selectedIndex:n=0})=>{let a=r==="manual",c=(0,xe.useRef)(!1),i=(0,xe.useRef)(-1),[l,d]=(0,xe.useState)(!1),[,f]=(0,xe.useState)({}),[m,u]=(0,yl.useControlled)({controlled:o,default:t,name:"UseKeyboardNavigation"}),p=(0,xe.useCallback)(h=>{u(i.current=h)},[u]),g=(0,xe.useRef)(!1),b=(0,xe.useCallback)((h,P=!1,R,C=70)=>{p(h),R===!0&&!g.current&&(g.current=!0);let H=()=>{let y=br(e.current,h);if(y){let x=(0,Ir.getFocusableElement)(y);x==null||x.focus()}};P?H():setTimeout(H,C)},[e,p]),S=h=>{if(i.current===-1&&h.target.tabIndex!==-1){let P=En(e.current);P!==-1?requestAnimationFrame(()=>{p(P)}):setTimeout(()=>{i.current===-1&&n!==null&&p(n)},200)}},v=(0,xe.useCallback)(()=>{var h,P;return(P=(h=e.current)==null?void 0:h.querySelectorAll("[data-index]").length)!=null?P:0},[e]),T=(0,xe.useCallback)((h="fwd",P)=>{let R=v(),H=El(R,h,typeof P=="number"?P:R),y=h==="start"?"fwd":h==="end"?"bwd":h;for(;(y==="fwd"&&H<R||y==="bwd"&&H>0)&&!gc(br(e.current,H));){let x=El(R,y,H);if(x===H)break;H=x}return H},[e,v]),I=(0,xe.useCallback)((h,P=!1)=>{let R=vl[s][h.key],C=T(R,m);C!==m?a&&b(C,!0):P&&f({})},[m,a,T,b,s]),w=(0,xe.useCallback)(()=>{let h=br(e.current,m);return h?h.querySelector(".vuuPopupMenu")!=null:!1},[e,m]),D=(0,xe.useCallback)(()=>{let h=br(e.current,m),P=h==null?void 0:h.querySelector(".vuuPopupMenu");return P&&(0,Ir.dispatchMouseEvent)(P,"click"),!1},[e,m]),k=(0,xe.useCallback)(h=>{v()>0&&pc(h.key,s)?(h.preventDefault(),g.current?I(h):(g.current=!0,I(h,!0))):fc(h.key)&&w()&&D()},[D,v,w,I,s]),O=(h,P)=>{p(P)},V=(0,xe.useCallback)(()=>{l||(d(!0),c.current?c.current=!1:g.current=!0)},[l]),M=(0,xe.useCallback)(()=>{l||(c.current=!0),g.current=!1},[l]);return{containerProps:{onBlur:h=>{let P=h.target.closest(".vuuTabstrip"),R=h.relatedTarget;P&&!(P!=null&&P.contains(R))&&(p(-1),d(!1))},onMouseDownCapture:M,onFocus:V,onMouseLeave:()=>{g.current=!0,p(-1),c.current=!1}},focusVisible:g.current?m:-1,focusIsWithinComponent:l,highlightedIdx:m,focusTab:b,onClick:O,onFocus:S,onKeyDown:k,setHighlightedIdx:p}};var Hl=require("@salt-ds/core"),Mo=require("react"),bc=["Enter"," "],Ic=e=>e&&e.matches('[class*="vuuTab "]'),wl=({defaultSelected:e,highlightedIdx:t,onSelectionChange:o,selected:r})=>{let[s,n,a]=(0,Hl.useControlled)({controlled:r,default:e!=null?e:0,name:"Tabstrip",state:"value"}),c=(0,Mo.useCallback)(f=>bc.includes(f.key),[]),i=(0,Mo.useCallback)(f=>{n(f),o==null||o(f)},[o,n]),l=(0,Mo.useCallback)(f=>{let m=f.target;c(f)&&t!==s&&Ic(m)&&(f.stopPropagation(),f.preventDefault(),i(t))},[c,t,s,i]),d=(0,Mo.useCallback)((f,m)=>{m!==s&&i(m)},[i,s]);return{activateTab:i,isControlled:a,onClick:d,onKeyDown:l,selected:s}};var hc=new Set(["Enter"," "]),xc=e=>hc.has(e),Sc=(e,t)=>e?e.querySelector(`[data-index="${t}"]`):null,Ll=({activeTabIndex:e,allowDragDrop:t,animateSelectionThumb:o,containerRef:r,onActiveChange:s,onAddTab:n,onCloseTab:a,onExitEditMode:c,onMoveTab:i,orientation:l,keyBoardActivation:d})=>{let f=(0,Ee.useRef)(e),{focusTab:m,highlightedIdx:u,onClick:p,onKeyDown:g,setHighlightedIdx:b,...S}=Dl({containerRef:r,keyBoardActivation:d,orientation:l,selectedIndex:f.current}),{activateTab:v,onClick:T,onKeyDown:I,selected:w}=wl({highlightedIdx:u,onSelectionChange:s,selected:e});f.current=w;let{containerStyle:D,resumeAnimation:k,suspendAnimation:O}=Tl(r,o?w:-1,l),V=(0,Ee.useCallback)((B,W)=>{let{current:q}=f;console.log(`useTabstrip handleDrop ${B} - ${W} ${q}`),i==null||i(B,W);let Y=-1;W!==-1&&(q===B?Y=W:B>q&&W<=q?Y=q+1:B<q&&W>=q&&(Y=q-1),Y!==-1&&(O(),v(Y),requestAnimationFrame(k)),m(W,!1,!1,350))},[m,i,k,v,O]),{onMouseDown:M,...L}=Do({allowDragDrop:t,containerRef:r,draggableClassName:`tabstrip-${l}`,onDrop:V,orientation:"horizontal",itemQuery:".vuuOverflowContainer-item"}),h=(0,Ee.useCallback)((B,W,q,Y)=>{console.log(`handleExitEditMode ${B} ${W} ${q} ${Y}`),c==null||c(B,W,q,Y),q||m(Y,!1,!0)},[m,c]),P=(0,Ee.useCallback)((B,W)=>{p(B,W),T(B,W)},[p,T]),R=(0,Ee.useCallback)((B=u)=>{let W=Sc(r.current,B);if(W)return W.querySelector(".vuuEditableLabel")},[r,u]),C=(0,Ee.useCallback)((B=u)=>{let W=R(B);return W?W.classList.contains("vuuEditableLabel-editing"):!1},[R,u]),H=(0,Ee.useCallback)((B=u)=>{let W=R(B);W&&(0,Ml.dispatchMouseEvent)(W,"dblclick")},[R,u]),y=(0,Ee.useCallback)(B=>{g(B),B.defaultPrevented||I(B),!B.defaultPrevented&&xc(B.key)&&H()},[H,g,I]),x=(0,Ee.useCallback)(B=>{let W=gr(r.current),q=W>B?W-1:W===B?0:W;return O(),a==null||a(B,q),setTimeout(()=>{k()},200),!0},[r,a,k,O]),N=(0,Ee.useCallback)(B=>(H(B),!0),[H]),E=(0,Ee.useCallback)(B=>{if(bl(B.options))switch(B.menuId){case"close-tab":return x(B.options.tabIndex);case"rename-tab":return N(B.options.tabIndex);default:console.log(`tab menu action ${B.menuId}`)}return!1},[x,N]),F=(0,Ee.useCallback)(()=>{C()?b(u):m(u)},[u,m,b,C]),K=(0,Ee.useCallback)(B=>{let W=parseInt(B.index);isNaN(W)||v(W)},[v]),$={onFocus:S.onFocus,onKeyDown:y},X=(0,Ee.useCallback)(()=>{n==null||n(),requestAnimationFrame(()=>{let B=gr(r.current);B!==-1&&m(B)})},[r,m,n]),G={onClick:P,onKeyDown:y,onExitEditMode:h,onMenuAction:E,onMenuClose:F,onMouseDown:M};return{activeTabIndex:w,containerStyle:D,focusVisible:S.focusVisible,containerProps:{...S.containerProps,onSwitchWrappedItemIntoView:K},navigationProps:$,onClickAddTab:X,tabProps:G,...L}};var Jt=require("react/jsx-runtime"),Cl=require("react"),yn="vuuTabstrip",Tc=({activeTabIndex:e,allowAddTab:t,allowCloseTab:o,allowDragDrop:r=!1,allowRenameTab:s=!1,animateSelectionThumb:n=!1,children:a,className:c,id:i,keyBoardActivation:l="manual",location:d,onActiveChange:f,onAddTab:m,onCloseTab:u,onExitEditMode:p,onMoveTab:g,orientation:b="horizontal",showTabMenuButton:S,style:v,...T})=>{let I=(0,Yt.useRef)(null),{activeTabIndex:w,focusVisible:D,containerStyle:k,draggedItemIndex:O,onClickAddTab:V,tabProps:M,...L}=Ll({activeTabIndex:e,allowDragDrop:r,animateSelectionThumb:n,containerRef:I,keyBoardActivation:l,onActiveChange:f,onAddTab:m,onCloseTab:u,onExitEditMode:p,onMoveTab:g,orientation:b}),h=(0,Xt.useId)(i),P=(0,vn.default)(yn,`${yn}-${b}`,c),R=v||k?{...v,...k}:void 0,C=(0,Yt.useMemo)(()=>(0,Xt.asReactElements)(a).map((H,y)=>{let{id:x=`${h}-tab-${y}`,closeable:N=o,editable:E=s,location:F,showMenuButton:K=S}=H.props,$=y===w;return Yt.default.cloneElement(H,{...M,...L.navigationProps,closeable:N,"data-overflow-priority":$?"1":void 0,dragging:O===y,editable:E,focusVisible:D===y,id:x,index:y,key:y,location:(0,vn.default)(d,F),selected:$,showMenuButton:K,tabIndex:$?0:-1})}).concat(t?(0,Cl.createElement)(Rl.Button,{...L.navigationProps,"aria-label":"Create Tab",className:`${yn}-addTabButton`,"data-icon":"add","data-overflow-priority":"1",key:"addButton",onClick:V,variant:"secondary",tabIndex:-1}):[]),[w,t,o,s,a,D,h,d,V,S,M,O,L.navigationProps]);return(0,Jt.jsxs)(Jt.Fragment,{children:[(0,Jt.jsx)(Xt.OverflowContainer,{...T,...L.containerProps,className:P,height:28,id:h,orientation:b,overflowIcon:"more-horiz",ref:I,style:R,children:C}),L.draggable]})};var Kl=require("@salt-ds/core"),Bl=ge(require("classnames")),Rt=require("react");var Pl=require("@vuu-ui/vuu-popups"),Nl=require("react"),kl=ge(require("classnames"));var Al=require("react/jsx-runtime"),Ec="vuuTabMenu",Ol=({allowClose:e,allowRename:t,controlledComponentId:o,location:r,onMenuAction:s,onMenuClose:n,index:a})=>{let[c,i]=(0,Nl.useMemo)(()=>[(l,d)=>{let f=[];return t&&f.push(hl(d)),e&&f.push(Il(d)),f},{controlledComponentId:o,tabIndex:a}],[e,t,o,a]);return(0,Al.jsx)(Pl.PopupMenu,{className:Ec,menuBuilder:c,menuActionHandler:s,menuLocation:(0,kl.default)("tab",r),menuOptions:i,onMenuClose:n,tabIndex:-1})};var Lt=require("react/jsx-runtime"),Mt="vuuTab",Fl=()=>{},yc=(0,Rt.forwardRef)(function({ariaControls:t,children:o,className:r,closeable:s=!1,dragging:n,editable:a=!1,editing:c,focusVisible:i,index:l=-1,label:d,location:f,onClick:m,onClose:u,onEnterEditMode:p=Fl,onExitEditMode:g=Fl,onFocus:b,onKeyUp:S,onMenuAction:v,onMenuClose:T,orientation:I,selected:w,showMenuButton:D=s||a||!!f,tabIndex:k,...O},V){if(D&&typeof v!="function")throw Error("Tab onMenuAction must be provided if showMenuButton is set");let M=(0,Rt.useRef)(null),L=(0,Rt.useRef)(null),h=(0,Kl.useForkRef)(V,M),P=(0,Rt.useCallback)(x=>{c||(x.preventDefault(),m==null||m(x,l))},[c,l,m]),R=(x="",N="",E=!0)=>g(x,N,E,l),C=x=>{switch(x.key){case"Backspace":case"Delete":s&&(x.stopPropagation(),u&&u(l));break;default:S&&S(x,l)}},H=()=>a?(0,Lt.jsx)(xn,{editing:c,defaultValue:d,onEnterEditMode:p,onExitEditMode:R,ref:L},d):d,y=x=>{if(L.current){let E=L.current.querySelector(".vuuEditableLabel-input");E==null||E.focus()}b==null||b(x)};return(0,Lt.jsxs)("div",{...O,"aria-controls":t,"aria-selected":w,className:(0,Bl.default)(Mt,{[`${Mt}-closeable`]:s,"vuuDraggable-dragAway":n,[`${Mt}-editing`]:c,[`${Mt}-selected`]:w||void 0,[`${Mt}-vertical`]:I==="vertical",vuuFocusVisible:i}),onClick:P,onFocus:y,onKeyUp:C,ref:h,role:"tab",tabIndex:k,children:[(0,Lt.jsx)("div",{className:`${Mt}-main`,children:(0,Lt.jsx)("span",{className:`${Mt}-text`,"data-text":a?void 0:d,children:o!=null?o:H()})}),D?(0,Lt.jsx)(Ol,{allowClose:s,allowRename:a,controlledComponentId:t,location:f,onMenuAction:v,onMenuClose:T,index:l}):null]})});var vr=require("@salt-ds/core"),yr=ge(require("classnames")),Dr=require("react");function vc(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 Dn=e=>e.closest("[data-idx],[aria-posinset]");var $l=e=>vc(Dn(e));var Qt=require("react"),Dc=new Set(["/","-","."]),Hc=e=>Dc.has(e),Vl=(e,t)=>t.startsWith(e)&&Hc(t[e.length]),Hn=(e,t="root",{collapsibleHeaders:o=void 0,defaultExpanded:r=!1,revealSelected:s=!1}={})=>{let n=(m,u,p)=>{if(m.childNodes)return m.childNodes.length;if(m.header){let g=p+1,b=0;for(;g<u.length&&!u[g].header;)b++,g++;return b}else return 0},a=(0,Qt.useCallback)(m=>Array.isArray(s)?s.some(u=>Vl(m,u)):r,[r,s]),c=(0,Qt.useCallback)((m,u,p=1,g="",b=[],S=[])=>{let v=0;return m.forEach((T,I,w)=>{var R;let D=T.header&&o,k=T.childNodes&&o===!1,O=!T.childNodes||T.childNodes.length===0,V=k||O&&!D,M=g?`${g}.${I}`:`${I}`,L=(R=T.id)!=null?R:`${t}-${M}`,h=V?void 0:a(L),P={...T,childNodes:void 0,id:L,count:!k&&h===void 0?0:n(T,w,I),expanded:h,index:u.index,level:p};if(b.push(P),S.push(m[I]),v+=1,u.index+=1,T.childNodes){let[C,H]=c(T.childNodes,u,p+1,M,[],S);P.childNodes=H,(h===!0||k)&&(v+=C)}}),[v,b,S]},[o,t,a]),[i,l,d]=(0,Qt.useMemo)(()=>c(e,{index:0}),[c,e]),f=(0,Qt.useCallback)((m,u=l)=>{let p=u.find(g=>{var b;return g.id===m||((b=g==null?void 0:g.childNodes)==null?void 0:b.length)&&Vl(g.id,m)});if((p==null?void 0:p.id)===m)return d[p.index];if(p)return f(m,p.childNodes)},[d,l]);return[i,l,f]};var ft=require("react"),Ul=require("@salt-ds/core"),zl="single",wc="checkbox",Mc="multi",Lc="extended",Rc=["Enter"," "],_l={},Cc=e=>e.expanded!==void 0,Gl=e=>e&&e!=="none",Wl=({defaultSelected:e,highlightedIdx:t,treeNodes:o,onChange:r,selected:s,selection:n=zl,selectionKeys:a=Rc})=>{let c=n===zl,i=n===Mc||n.startsWith(wc),l=n===Lc,d=(0,ft.useRef)(-1),f=(0,ft.useCallback)(I=>a.includes(I.key),[a]),[m,u]=(0,Ul.useControlled)({controlled:s,default:e!=null?e:[],name:"selected"}),p=(0,ft.useCallback)((I,w,D,k,O=!1)=>{let{current:V}=d,M=m==null?void 0:m.includes(D),h=c||l&&!O&&(!k||V===-1),P=i||l&&O&&!k,R=[];if(h&&M)R=[];else if(h)R=[D];else if(P&&M)R=m.filter(C=>C!==D);else if(P)R=m.concat(D);else if(l){let[C,H]=w>V?[V,w]:[w,V];R=m.slice();for(let y=C;y<=H;y++){let{id:x}=o[y];m.includes(x)||R.push(x)}}u(R),r&&r(I,R)},[l,o,i,r,m,u,c]),g=(0,ft.useCallback)(I=>{if(~t&&f(I)){I.preventDefault();let w=o[t];p(I,t,w.id,!1,I.ctrlKey||I.metaKey),l&&(d.current=t)}},[l,t,o,f,p]),b=(0,ft.useCallback)((I,w)=>{if(l&&I.shiftKey){let D=o[w];p(I,w,D.id,!0)}},[l,o,p]),S=n==="none"?_l:{onKeyDown:g,onKeyboardNavigation:b},v=(0,ft.useCallback)(I=>{if(t!==-1){let w=o[t];Cc(w)||(I.preventDefault(),I.stopPropagation(),p(I,t,w.id,I.shiftKey,I.ctrlKey||I.metaKey),l&&(d.current=t))}},[l,t,o,p]);return{listHandlers:S,listItemHandlers:n==="none"?_l:{onClick:v},selected:m,setSelected:u}};var Re=require("react");var Pc=["height","scrollHeight"],jl=(e,t,o=!1)=>{let r=(0,Re.useRef)(0),s=(0,Re.useRef)(!1),n=(0,Re.useRef)(0),a=(0,Re.useRef)(0),c=(0,Re.useCallback)(d=>{let f=d.ariaExpanded?d.firstChild:d,m=o?30:0,u=f.offsetTop,p=f.offsetHeight,g=r.current+m,b=g+n.current-m;(u+p>b||u<g)&&(r.current=u+p>b?r.current+(u+p)-b:u-m,s.current=!0,e.current&&(e.current.scrollTop=r.current),setTimeout(()=>{s.current=!1}))},[e,o]),i=(0,Re.useCallback)(d=>{r.current=d.target.scrollTop},[]);(0,Re.useEffect)(()=>{let{current:d}=e;return d&&d.addEventListener("scroll",i),()=>{d&&d.removeEventListener("scroll",i)}},[e,i]),(0,Re.useLayoutEffect)(()=>{if(t!==-1&&a.current>n.current&&e.current){let d=e.current.querySelector(`
1
+ "use strict";var Hi=Object.create;var ko=Object.defineProperty;var wi=Object.getOwnPropertyDescriptor;var Mi=Object.getOwnPropertyNames;var Li=Object.getPrototypeOf,Ri=Object.prototype.hasOwnProperty;var Ci=(e,t)=>{for(var o in t)ko(e,o,{get:t[o],enumerable:!0})},Fn=(e,t,o,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of Mi(t))!Ri.call(e,n)&&n!==o&&ko(e,n,{get:()=>t[n],enumerable:!(r=wi(t,n))||r.enumerable});return e};var ge=(e,t,o)=>(o=e!=null?Hi(Li(e)):{},Fn(t||!e||!e.__esModule?ko(o,"default",{value:e,enumerable:!0}):o,e)),Pi=e=>Fn(ko({},"__esModule",{value:!0}),e);var Zc={};Ci(Zc,{ArrowDown:()=>Ft,ArrowLeft:()=>Wr,ArrowRight:()=>jr,ArrowUp:()=>At,BWD:()=>va,CHECKBOX:()=>pa,Checkbox:()=>ec,CheckboxIcon:()=>ho,CollectionContext:()=>Mr,CollectionProvider:()=>ro,ComboBox:()=>Za,DragDropProvider:()=>Ma,Dropdown:()=>Wa,DropdownBase:()=>St,DropdownButton:()=>Gr,EditableLabel:()=>Sn,End:()=>fo,Enter:()=>Uo,Escape:()=>Xi,ExpandoInput:()=>Qa,FWD:()=>ya,GROUP_SELECTION_CASCADE:()=>ga,GROUP_SELECTION_NONE:()=>rs,GROUP_SELECTION_SINGLE:()=>fa,HeightOnly:()=>Cr,Highlighter:()=>nn,Home:()=>Go,InstrumentPicker:()=>lc,InstrumentSearch:()=>bl,LIST_FOCUS_VISIBLE:()=>qo,List:()=>Do,ListItem:()=>Eo,ListItemGroup:()=>Or,ListItemHeader:()=>Ar,ListItemProxy:()=>So,NOT_HIDDEN:()=>un,NOT_OVERFLOWED:()=>To,PageDown:()=>go,PageUp:()=>Wo,PriceTicker:()=>hl,RadioButton:()=>tc,RadioIcon:()=>In,Space:()=>qr,Tab:()=>vc,Tabstrip:()=>Tc,Tree:()=>fi,TreeNode:()=>Ln,VirtualizedList:()=>Ga,VuuInput:()=>qc,WidthHeight:()=>ki,WidthOnly:()=>Rr,allowMultipleSelection:()=>Oi,buildValidationChecker:()=>Xa,childIsGroup:()=>Vr,childItems:()=>Ko,cloneElement:()=>dn,closestListItemId:()=>ia,closestListItemIndex:()=>Jr,constrainRect:()=>fn,countChildItems:()=>$r,deselectionIsAllowed:()=>Ai,dimensions:()=>He,dispatchCommitEvent:()=>xn,dropTargetsDebugString:()=>er,escapeRegExp:()=>lo,forwardCallbackProps:()=>io,getChildLabel:()=>Vn,getChildNodes:()=>_n,getDefaultFilter:()=>zr,getDefaultFilterRegex:()=>$o,getFirstSelectedItem:()=>kr,getIndexOfDraggedItem:()=>Dt,getIndexOfEditedItem:()=>yn,getIndexOfSelectedTab:()=>gr,getItemById:()=>mn,getNextDropTarget:()=>ct,groupSelectionEnabled:()=>Ia,hasSelection:()=>Ze,isCharacterKey:()=>bo,isDisabled:()=>Kr,isExpanded:()=>yr,isFocusable:()=>Br,isGroupNode:()=>Fr,isHeader:()=>Ao,isMultiSelection:()=>xt,isNavigationKey:()=>Zr,isParentPath:()=>Bo,isSelected:()=>ao,isSingleSelection:()=>Pr,itemToString:()=>ve,listItemElement:()=>la,listItemId:()=>Jn,listItemIndex:()=>Yn,measureDropTargets:()=>vt,measureElementSizeAndPosition:()=>Ss,mutateDropTargetsSwitchDropTargetPosition:()=>Qo,removeDraggedItem:()=>pn,replaceCollectionItem:()=>so,selectionIsDisallowed:()=>Nr,sourceItemHasProp:()=>Oo,sourceItems:()=>Fo,useCollapsibleGroups:()=>Yr,useCollection:()=>Lr,useCollectionItems:()=>tt,useControlled:()=>co,useDragDropNext:()=>vo,useDragDropProvider:()=>an,useDropdownBase:()=>_r,useEditableText:()=>Ja,useImperativeScrollingAPI:()=>Io,useItemsWithIds:()=>Hn,useKeyboardNavigation:()=>en,useList:()=>nt,useResizeObserver:()=>qe,useSelection:()=>tn,useTypeahead:()=>on,useViewportTracking:()=>rn});module.exports=Pi(Zc);var Js=require("@vuu-ui/vuu-layout"),Qs=require("@salt-ds/core"),_t=require("react");var Nt=require("react"),Kn=require("react/jsx-runtime"),Mr=(0,Nt.createContext)(void 0);function ro({children:e,collectionHook:t,...o}){return(0,Kn.jsx)(Mr.Provider,{value:t,children:Object.keys(o).length>0?(0,Nt.cloneElement)(e,o):e})}function Lr(){let e=(0,Nt.useContext)(Mr);if(e)return e}var Ni=e=>Object.prototype.toString.call(e)==="[object Object]";function ve(e){return typeof e=="string"?e:Ni(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(`
2
+ `)),""):String(e)}var at=require("react"),ki=["height","width"],Rr=["width"],Cr=["height"],ht=new Map,$n=(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 Bn=new ResizeObserver(e=>{for(let t of e){let{target:o,borderBoxSize:r,contentBoxSize:n}=t,s=ht.get(o);if(s){let[{blockSize:l,inlineSize:c}]=r,[{blockSize:i,inlineSize:a}]=n,{onResize:d,measurements:g}=s,u=!1;for(let[m,p]of Object.entries(g)){let f=$n(o,{height:l,width:c,contentHeight:i,contentWidth:a},m);f!==p&&(u=!0,g[m]=f)}u&&d&&d(g)}}});function qe(e,t,o,r=!1){let n=(0,at.useRef)(t),s=e.current,l=(0,at.useCallback)(c=>{let{width:i,height:a}=c.getBoundingClientRect(),{clientWidth:d,clientHeight:g}=c;return n.current.reduce((u,m)=>(u[m]=$n(c,{width:i,height:a,contentHeight:g,contentWidth:d},m),u),{})},[]);(0,at.useLayoutEffect)(()=>{async function c(){ht.set(s,{measurements:{}}),await document.fonts.ready;let i=ht.get(s);if(i){let a=l(s);i.measurements=a,Bn.observe(s),r&&o(a)}else console.log("%cuseResizeObserver an target expected to be under observation wa snot found. This warrants investigation","font-weight:bold; color:red;")}return s&&(ht.has(s)&&console.log("useResizeObserver attemping to observe same element twice",{target:s}),c()),()=>{s&&ht.has(s)&&(Bn.unobserve(s),ht.delete(s))}},[l,s]),(0,at.useEffect)(()=>{let c=e.current,i=ht.get(c);if(i){if(n.current!==t){n.current=t;let a=l(c);i.measurements=a}i.onResize=o}},[t,l,e,o])}var Pr=e=>e===void 0||e==="default"||e==="deselectable",xt=e=>e==="multiple"||(e==null?void 0:e.startsWith("extended"))===!0,Nr=e=>e==="none",Oi=(e,t=!1)=>e==="multiple"||e==="multiple-special-key"&&t,Ai=e=>e!=="none"&&e!=="default",Ze=e=>e!==void 0&&e.length>0,kr=e=>e[0];var ee=require("react");var kt=require("react");var Or=e=>null;var Ar=e=>null;var Oo=(e,t)=>e!==null&&Object.prototype.hasOwnProperty.call(e,t),Ao=e=>Oo(e,"header"),Fr=e=>Oo(e,"childNodes"),no=(e,t)=>e&&Object.prototype.hasOwnProperty.call(e.props,t),Kr=e=>{if((0,kt.isValidElement)(e)){if(no(e,"disabled"))return e.props.disabled===!0}else if(Oo(e,"disabled"))return e.disabled===!0;return!1},Br=e=>(0,kt.isValidElement)(e)&&no(e,"focusable")?e.props.focusable:!0,$r=(e,t,o)=>{if(e.childNodes)return e.childNodes.length;if(e.header){let r=o+1,n=0;for(;r<t.length&&!t[r].header;)n++,r++;return n}else return 0},Vn=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},zn=e=>e.type===Ar||no(e,"data-header"),Vr=e=>e.type===Or||no(e,"data-group"),Fi=e=>no(e,"selectable")?e.props.selectable===!0:!Vr(e)&&!zn(e),_n=e=>{if(Vr(e)){let{props:{children:t}}=e;if(typeof t!="string")return Ko(t)}},Ki=(e,t)=>{let o=[];return kt.Children.forEach(e,r=>{(0,kt.isValidElement)(r)&&o.push(t(r))}),o},Fo=(e,t)=>{if(Array.isArray(e))return e.length===0&&(t!=null&&t.noChildrenLabel)?[{label:t.noChildrenLabel,value:null}]:e.map((o,r)=>{var n,s;return{childNodes:Fo(o.childNodes,t),description:o.description,expanded:o.expanded,value:o,label:(s=(n=t==null?void 0:t.itemToString)==null?void 0:n.call(t,o))!=null?s:ve(o)}});if(e)throw Error("list-child-items expects source to be an array")},Ko=e=>{if(e)return Ki(e,t=>{let{"data-id":o,disabled:r,id:n=o,"data-expanded":s,expanded:l=s}=t.props;return{childNodes:_n(t),disabled:r,expanded:l,header:zn(t),id:n,label:Vn(t),selectable:Fi(t),value:t}})},Bi=new Set(["/","-","."]),$i=e=>Bi.has(e),Bo=(e,t)=>t.startsWith(e)&&$i(t[e.length]),Vi=new Set([".","/"]);function zi(e,t){return t.startsWith(e)?Vi.has(t.charAt(e.length)):!1}function so(e,t,o){let r;return e.map(s=>s.id===t?{...s,...o}:zi(s.id,t)&&s.childNodes?(r=so(s.childNodes,t,o),{...s,childNodes:r}):s)}var _i=/[.*+?^${}()|[\]\\]/g;function lo(e){return e.replace(_i,"\\$&")}var io=(e,t)=>Object.keys(e).reduce((r,n)=>{let s=e[n],l=t[n];return typeof s=="function"&&typeof l=="function"&&(r[n]=(...c)=>{s(...c),l(...c)}),r},{...t});var Ui=e=>e&&e.replace(/^\s+/g,""),$o=e=>new RegExp(`(${lo(Ui(e))})`,"gi"),zr=(e="",t=$o)=>(o="")=>!!o.length&&!!e.length&&o.match(t(e))!==null;function ao(e,t){return Array.isArray(e)?e.includes(t.id):e===t.id}var Ke=require("react");function co({controlled:e,default:t,name:o,state:r="value"}){let{current:n}=(0,Ke.useRef)(e!==void 0),[s,l]=(0,Ke.useState)(t),c=e!==void 0?e:s,{current:i}=(0,Ke.useRef)(t);(0,Ke.useEffect)(()=>{},[r,o,e]),(0,Ke.useEffect)(()=>{},[JSON.stringify(t,Gi)]);let a=(0,Ke.useCallback)(d=>{n||l(d)},[n]);return[c,a,n]}function Gi(e,t){return(0,Ke.isValidElement)(t)?null:t}var Wi={},tt=({children:e,id:t,options:o=Wi,source:r})=>{var w;let{getItemId:n}=o,[,s]=(0,ee.useState)(null),l=Lr(),c=(0,ee.useRef)([]),i=(0,ee.useRef)([]),a=(0,ee.useMemo)(()=>[],[]),d=(0,ee.useRef)((w=o.filterPattern)!=null?w:""),{getFilterRegex:g=$o,noChildrenLabel:u,itemToString:m=ve}=o,p=(0,ee.useCallback)(()=>o.defaultExpanded||!1,[o.defaultExpanded]),f=(0,ee.useCallback)((h,k,v=1,F="",A=[],_=[],Z=[])=>(h.forEach((U,$,G)=>{var Ie,re;let Y=U.header&&o.collapsibleHeaders,q=U.childNodes&&o.collapsibleHeaders===!1,le=!U.childNodes||U.childNodes.length===0,te=q||le&&!Y,ie=F?`${F}.${$}`:`item-${$}`,Q=(Ie=U.id)!=null?Ie:n?n($):`${t}-${ie}`,ue=te?void 0:(re=U.expanded)!=null?re:p(),de={...U,childNodes:void 0,count:!q&&ue===void 0?0:$r(U,G,$),description:U.description,disabled:Kr(U.value),focusable:Br(U.value)?void 0:!1,id:Q,index:k.value,expanded:ue,level:v};if(A.push(de),_.push(de),Z.push(h[$].value),k.value+=1,U.childNodes){let[he]=f(U.childNodes,k,v+1,ie,[],_,Z);de.childNodes=he}}),[A,Z,_]),[o.collapsibleHeaders,n,t,p]),b=(0,ee.useCallback)(()=>d.current?zr(d.current,g):null,[g]),S=(0,ee.useCallback)((h,k=b(),v=[],F={value:0})=>{let A=!1;for(let _ of h)A&&!Ao(_)||(_.value!==null&&(k===null||k(m(_.value)))&&(v[F.value]=_,F.value+=1),A=!1,Ao(_)&&_.expanded===!1?A=!0:Fr(_)&&_.expanded!==!1&&_.childNodes&&S(_.childNodes,k,v,F));return v},[b,m]),D=(0,ee.useMemo)(()=>l?a:Fo(r,{itemToString:m,noChildrenLabel:u})||Ko(e)||[],[l,a,r,m,u,e]),[E,x,T]=(0,ee.useMemo)(()=>l?[a,a,a]:f(D,{value:0}),[a,f,l,D]);i.current=T,(0,ee.useMemo)(()=>l?a:c.current=S(E),[a,S,E,l]);let H=(0,ee.useRef)(E),P=(0,ee.useCallback)((h="")=>{typeof h=="string"&&(d.current=h,c.current=S(E),s({}))},[E,S]),K=(0,ee.useCallback)((h,k=E)=>{let v=k.find(F=>{var A;return F.id===h||((A=F==null?void 0:F.childNodes)==null?void 0:A.length)&&Bo(F.id,h)});if((v==null?void 0:v.id)===h)return x==null?void 0:x[v.index];if(v)return K(h,v.childNodes);throw Error(`useCollectionData itemById, id ${h} not found `)},[x,E]),L=(0,ee.useCallback)((h,k=E)=>{let v=k.find(A=>{var _;return A.id===h||((_=A==null?void 0:A.childNodes)==null?void 0:_.length)&&Bo(A.id,h)}),F=v?c.current.indexOf(v):-1;if(F!==-1)return F;throw Error(`useCollectionData indexOfItemById, id ${h} not found `)},[E]),N=(0,ee.useCallback)(h=>{let k=i.current.find(v=>(0,ee.isValidElement)(v.value)?v.label===h:v.value===h);if(k)return k;throw Error("useCollectionData toCollectionItem, item not found ")},[]),z=(0,ee.useCallback)(h=>{if(h===null)return null;if(Array.isArray(h)){let k=[];for(let v of h){let F=N(v);k.push(F)}return k}else if(h!==void 0)return N(h)},[N]),I=(0,ee.useCallback)(h=>{if(h===void 0)return;let k=z(h);return Array.isArray(k)?k.map(v=>v.id):k?[k.id]:[]},[z]),R=(0,ee.useCallback)(h=>{let k=v=>{let F=i.current.find(A=>(0,ee.isValidElement)(A.value)?A.label===v:A.value!==null&&m(A.value)===v);if(F)return F};if(h===null)return null;if(Array.isArray(h)){let v=[];for(let F of h){let A=k(F);A&&v.push(A)}return v}else if(h!==void 0)return k(h)},[m]),C=(0,ee.useCallback)(h=>{for(let k of H.current)if(h===k.value)return k.id;throw Error("useCollectionData itemToId, item not found")},[]),M=(0,ee.useCallback)(h=>{H.current=so(H.current,h.id,{expanded:!1}),c.current=S(H.current),s({})},[S]),y=(0,ee.useCallback)(h=>{H.current=so(H.current,h.id,{expanded:!0}),c.current=S(H.current),s({})},[S]);return l||{collapseGroupItem:M,data:c.current,expandGroupItem:y,setFilterPattern:P,indexOfItemById:L,itemById:K,itemToId:C,toCollectionItem:N,itemToCollectionItem:z,itemToCollectionItemId:I,stringToCollectionItem:R}};var Ur=ge(require("classnames")),Gn=require("@salt-ds/core"),ot=require("react");var Vo=require("@salt-ds/core"),Ne=require("react");var uo=require("react"),ji=[],Un=({popperRef:e,rootRef:t,isOpen:o,onClose:r})=>{let n=(0,uo.useRef)(o);(0,uo.useEffect)(()=>{n.current=o},[o]),(0,uo.useEffect)(()=>{let[s,l]=o?[c=>{var a,d;let i=c.target;!((a=e.current)!=null&&a.contains(i))&&!((d=t.current)!=null&&d.contains(i))&&r("click-away")},c=>{c.key==="Escape"&&n.current&&(r("Escape"),c.stopPropagation())}]:ji;return s&&l&&(document.body.addEventListener("mousedown",s,!0),document.body.addEventListener("keydown",l,!0)),()=>{s&&l&&(document.body.removeEventListener("mousedown",s,!0),document.body.removeEventListener("keydown",l,!0))}},[o,r,e,t])};var qi=[],_r=({defaultIsOpen:e,disabled:t,fullWidth:o,id:r,isOpen:n,onOpenChange:s,onKeyDown:l,openKeys:c=["Enter","ArrowDown"," "],openOnFocus:i,popupComponent:a,popupWidth:d,rootRef:g,width:u})=>{var y;let m=(0,Ne.useRef)(null),p=(0,Ne.useRef)(null),f=(0,Ne.useCallback)(w=>{p.current=w},[]),[b,S]=(0,Vo.useControlled)({controlled:n,default:!!e,name:"useDropdown",state:"isOpen"}),[D,E]=(0,Ne.useState)({width:(y=d!=null?d:u)!=null?y:0}),x=(0,Ne.useCallback)(()=>{S(!0),s==null||s(!0)},[s,S]),T=(0,Ne.useCallback)(w=>{S(!1),s==null||s(!1,w)},[s,S]);Un({popperRef:p,rootRef:g,isOpen:b,onClose:T});let H=(0,Ne.useCallback)(()=>{t||i&&(S(!0),s==null||s(!0),m.current=window.setTimeout(()=>{m.current=null},1e3))},[t,s,i,S]),P=(0,Ne.useCallback)(w=>{if(["Enter"," "].indexOf(w.key)===-1){let h=!b;S(h),s==null||s(h)}},[b,S,s]),K=(0,Ne.useCallback)(w=>{w.key==="Escape"&&b?(w.key==="Escape"&&(w.stopPropagation(),w.preventDefault()),T(w.key)):c.includes(w.key)&&!b?(w.preventDefault(),x()):l==null||l(w)},[T,b,l,c,x]),L=(0,Ne.useCallback)(w=>{var h;console.log("useDropdownBase blur",{popperRef:p.current,relatedTarget:w.relatedTarget}),b&&((h=p.current)!=null&&h.contains(w.relatedTarget)||(console.log("hide dropdown"),T("blur")))},[T,b]),N=o!=null?o:!1;qe(g,N?Rr:qi,E,N);let I=`${r}-dropdown`,R={"aria-expanded":b,"aria-owns":b?I:void 0,id:`${r}-control`,onClick:t||i?void 0:P,onFocus:H,role:"listbox",onBlur:L,onKeyDown:t?void 0:K,style:{width:N?void 0:u}},C={id:I,width:D.width},M=(0,Vo.useForkRef)(f,a.ref);return{componentProps:C,popupComponentRef:M,isOpen:b,label:"Dropdown Button",triggerProps:R}};var Wn=require("@vuu-ui/vuu-layout"),_o=require("@vuu-ui/vuu-popups");var mo=require("react/jsx-runtime"),zo="vuuDropdown",St=(0,ot.forwardRef)(function({PopupProps:t,"aria-labelledby":o,children:r,className:n,defaultIsOpen:s,disabled:l,fullWidth:c,id:i,isOpen:a,onKeyDown:d,onOpenChange:g,openKeys:u,openOnFocus:m,placement:p="below-full-width",popupWidth:f,width:b,...S},D){let E=(0,ot.useRef)(null),x=(0,Ur.default)(zo,n,{[`${zo}-fullWidth`]:c,[`${zo}-disabled`]:l}),[T,H]=ot.Children.toArray(r),P=(0,Wn.useId)(i),{componentProps:K,isOpen:L,popupComponentRef:N,triggerProps:z}=_r({ariaLabelledBy:o,defaultIsOpen:s,disabled:l,fullWidth:c,id:P,isOpen:a,onOpenChange:g,onKeyDown:d,openKeys:u,openOnFocus:m,popupComponent:H,popupWidth:f,rootRef:E,width:b}),I=()=>{let{id:M,role:y,...w}=z,{id:h=M,role:k=y,...v}=T.props;return(0,ot.cloneElement)(T,io(v,{...w,id:h,role:k}))},R=()=>{let{id:M,width:y,...w}=K,{className:h,id:k=M,width:v,...F}=H.props;return(0,ot.cloneElement)(H,{...F,...w,className:(0,Ur.default)(h,`${zo}-popup-component`),id:k,ref:N,width:p.endsWith("full-width")?"100%":v!=null?v:y})},C=(0,Gn.useForkRef)(E,D);return(0,mo.jsxs)("div",{...S,className:x,id:i,ref:C,children:[I(),L&&(0,mo.jsx)(_o.Portal,{children:(0,mo.jsx)(_o.PopupComponent,{...t,anchorElement:E,placement:p,children:R()})})]})});var jn=require("@salt-ds/core"),qn=ge(require("classnames")),Zn=require("react");var Ot=require("react/jsx-runtime"),po="vuuDropdownButton",Gr=(0,Zn.forwardRef)(function({ariaHideOptionRole:t,className:o,disabled:r,icon:n="chevron-down",isOpen:s,label:l,labelId:c,fullWidth:i,posInSet:a,setSize:d,labelAriaAttributes:g,...u},m){return(0,Ot.jsx)(jn.Button,{className:(0,qn.default)(po,{[`${po}-fullWidth`]:i},o),disabled:r,variant:"secondary",...u,ref:m,children:(0,Ot.jsxs)("div",{className:`${po}-content`,children:[(0,Ot.jsx)("span",{"aria-hidden":t?"true":void 0,...g,className:`${po}-buttonLabel`,id:c,role:"option",children:l}),(0,Ot.jsx)("span",{className:`${po}-buttonIcon`,"data-icon":n,"aria-hidden":"true"})]})})});var Gs=require("@salt-ds/core"),st=require("react"),Ws=require("@vuu-ui/vuu-layout");function Zi(e,...t){let o=new Set(e);for(let r of t)for(let n of r)o.add(n);return o}var At="ArrowUp",Ft="ArrowDown",Wr="ArrowLeft",jr="ArrowRight",Uo="Enter",Xi="Escape",Go="Home",fo="End",Wo="PageUp",go="PageDown",qr=" ",Yi=new Set(["Enter","Delete"," "]),Ji=new Set(["Tab"]),Qi=new Set(["ArrowRight","ArrowLeft"]),Xn=new Set([Go,fo,Wo,go,Ft,At]),ea=new Set(["F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12"]),ta=Zi(Yi,Xn,Qi,ea,Ji),bo=e=>ta.has(e.key)?!1:e.key.length===1&&!e.ctrlKey&&!e.metaKey&&!e.altKey,Zr=({key:e})=>Xn.has(e);var Xr=require("react");var oa={},ra=e=>Array.isArray(e.childNodes),na=e=>!0,sa=e=>e.closest("[data-toggle],[aria-expanded]").dataset.toggle==="true",Yr=({collapsibleHeaders:e,collectionHook:t,highlightedIdx:o,onToggle:r})=>{let n=(0,Xr.useCallback)(c=>{if(c.key===jr||c.key===Uo){let i=t.data[o];i&&i.expanded===!1&&i.value&&(c.preventDefault(),t.expandGroupItem(i),r==null||r(i.value))}if(c.key===Wr||c.key===Uo){let i=t.data[o];i&&i.expanded&&i.value&&(c.preventDefault(),t.collapseGroupItem(i),r==null||r(i.value))}},[t.collapseGroupItem,t.data,t.expandGroupItem,o]),l={onClick:(0,Xr.useCallback)(c=>{console.log(`useCollapsibleGroups idx=${o}`);let i=t.data[o];console.log(c.target,c.currentTarget),i&&ra(i)&&(!na(i)||sa(c.target))&&(c.stopPropagation(),c.preventDefault(),i.expanded===!1&&i.value?(t.expandGroupItem(i),r==null||r(i.value)):i.expanded===!0&&i.value&&(t.collapseGroupItem(i),r==null||r(i.value)))},[t.collapseGroupItem,t.data,t.expandGroupItem,o]),onKeyDown:n};return e?l:oa};var la=(e,t)=>e.querySelector(`:scope > [data-idx="${t}"]`);function Yn(e){if(e){let t=e.dataset.index;if(t)return parseInt(t,10);if(t=e.ariaPosInSet)return parseInt(t,10)-1}return-1}var Jn=e=>e==null?void 0:e.id,Qn=e=>e.closest("[data-index],[aria-posinset]"),ia=e=>Jn(Qn(e)),Jr=e=>Yn(Qn(e));var jo=require("react"),aa={scrollToIndex:()=>{},scrollToItem:()=>{},scrollTo:()=>{}},Io=({collectionHook:e,forwardedRef:t,scrollableRef:o,scrollIntoView:r})=>{let n=(0,jo.useMemo)(()=>({scrollToIndex:s=>{let l=e.data[s];l&&(r==null||r(l))},scrollToItem:s=>{let l=e.toCollectionItem(s);l&&(r==null||r(l))},scrollTo:s=>{o!=null&&o.current&&(o.current.scrollTop=s)}}),[e,r,o]);(0,jo.useImperativeHandle)(t,()=>o.current?n:aa,[n,o])};var os=require("@salt-ds/core"),De=require("react");var Et=require("@vuu-ui/vuu-utils"),qo=-2;function es(e,t,o){return t===At||t===fo?o>0?o-1:o:o===null?0:o===e-1?o:o+1}var Qr=e=>{var o;let t=Array.isArray(e)?kr(e):void 0;if(t){let r=document.getElementById(t);if(r){let n=parseInt((o=r.dataset.index)!=null?o:"-1");if((0,Et.isValidNumber)(n))return n}}return-1},ca=(e,t,o,r)=>e===fo?r:e===Go?-1:t!==-1?t:o,ua=(e,t,o,r)=>{let{top:n}=t.getBoundingClientRect(),{scrollTop:s,clientHeight:l,scrollHeight:c}=e,i=o-1,a=Math.min(s+l,c-l);if(a!==s&&r<i){e.scrollTo(0,a);let d=r,g;do d+=1,g=(0,Et.getElementByDataIndex)(e,d,!0).getBoundingClientRect();while(g.top<n&&d<i);return d}},da=async(e,t,o)=>{let{top:r}=t.getBoundingClientRect(),{scrollTop:n,clientHeight:s}=e,l=Math.max(n-s,0);if(l!==n&&o>0)return e.scrollTo(0,l),new Promise(c=>{requestAnimationFrame(()=>{let i=o,a;do i-=1,a=(0,Et.getElementByDataIndex)(e,i,!0).getBoundingClientRect();while(a.top>r&&i>0);c(i)})})},ma=e=>e!==void 0,ts=(e,t)=>{let o=(0,Et.getElementByDataIndex)(e,t);return ma(o)},en=({containerRef:e,defaultHighlightedIndex:t=-1,disableHighlightOnFocus:o,highlightedIndex:r,itemCount:n,onHighlight:s,onKeyboardNavigation:l,restoreLastFocus:c,selected:i,viewportItemCount:a})=>{let d=(0,De.useRef)(-1),[,g]=(0,De.useState)({}),[u,m,p]=(0,os.useControlled)({controlled:r,default:t,name:"UseKeyboardNavigation"}),f=(0,De.useCallback)((L,N=!1)=>{s==null||s(L),m(L),N&&(d.current=L)},[s,m]),b=(0,De.useCallback)(async(L,N)=>{let z=(0,Et.getElementByDataIndex)(e.current,N,!0),I;if(z){let{current:R}=e;z&&R&&(I=L===go?ua(R,z,n,N):await da(R,z,N))}return I!=null?I:N},[e,n]),S=(0,De.useCallback)((L=Ft,N=L===Ft?-1:n)=>{if(n===0)return-1;{let z=L==="End",I=L==="Home",R=z||I||N===-1?-1:Qr(i),C=ca(L,N,R,n),M=es(n,L,C),{current:y}=e;if(M===0&&L===At&&y&&!ts(y,0))return N;for(;((L===Ft||I)&&M<n||(L===At||z)&&M>0)&&y&&!ts(y,M);)M=es(n,L,M);return M}},[e,n,i]),D=(0,De.useRef)(!1),E=(0,De.useRef)(!1),x=L=>E.current=L,T=(0,De.useCallback)(()=>{if(E.current)E.current=!1;else if(D.current=!0,n===0)f(qo);else if(u!==-1)g({});else if(c)if(d.current!==-1)f(d.current);else{let L=Qr(i);f(L!==-1?L:0)}else if(Ze(i)){let L=Qr(i);f(L)}else o!==!0&&f(S())},[o,u,n,S,c,i,f]),H=(0,De.useCallback)(async L=>{let N=L.key===go||L.key===Wo?await b(L.key,u):S(L.key,u);N!==u&&f(N,!0),l==null||l(L,N)},[u,S,b,l,f]),P=(0,De.useCallback)(L=>{n>0&&Zr(L)?(L.preventDefault(),L.stopPropagation(),D.current=!0,H(L)):bo(L)&&(D.current=!0)},[n,H]),K=(0,De.useMemo)(()=>({onBlur:L=>{let N=L.target.closest(".vuuList"),z=L.relatedTarget;N&&!(N!=null&&N.contains(z))&&(D.current=!1,m(-1),c||(d.current=-1))},onFocus:T,onKeyDown:P,onMouseDownCapture:()=>{D.current=!1,x(!0)},onMouseMove:()=>{D.current&&(D.current=!1)},onMouseLeave:()=>{D.current=!1,x(!1),f(-1)}}),[T,P,c,m,f]);return{focusVisible:D.current?u:-1,controlledHighlighting:p,highlightedIndex:u,setHighlightedIndex:f,keyboardNavigation:D,containerProps:K,setIgnoreFocus:x}};var ze=require("@vuu-ui/vuu-utils"),Be=require("react");var pa="checkbox",rs="none",fa="single",ga="cascade";var ba=["Enter"," "],Ia=e=>e&&e!==rs,tn=({containerRef:e,defaultSelected:t,disableSelection:o=!1,highlightedIdx:r,itemQuery:n,onClick:s,onSelect:l,onSelectionChange:c,selected:i,selectionStrategy:a,selectionKeys:d=ba,tabToSelect:g})=>{let u=a==="deselectable",m=a==="multiple",p=a==="extended",f=(0,Be.useRef)(-1),b=(0,Be.useCallback)(I=>d.includes(I.key),[d]),[S,D]=co({controlled:i,default:t!=null?t:[],name:"UseSelection",state:"selected"}),E=(0,Be.useCallback)(I=>S.includes(I),[S]),x=(0,Be.useCallback)(I=>E(I)?[]:[I],[E]),T=(0,Be.useCallback)(I=>{let R=E(I)?S.filter(C=>C!==I):S.concat(I);return R.sort(),R},[E,S]),H=(0,Be.useCallback)((I,R)=>{let C=R?S:[],[M]=S.slice(-1),y=M?(0,ze.getElementDataIndex)(document.getElementById(M)):0,w=Math.min(I,y),h=Math.max(I,y),k=e.current,F=Array.from(k.querySelectorAll(n)).slice(w,h+1).map(_=>_.id),A=[...new Set([...C,...F])];return A.sort(),A},[e,n,S]),P=(0,Be.useCallback)((I,R,C,M)=>{let{current:y}=e,{id:w}=(0,ze.getElementByDataIndex)(y,R,!0),h;m?h=T(w):p?M&&!C?h=T(w):C?h=H(R,M):h=[w]:u?h=x(w):h=[w],h!==S&&D(h),l==null||l(I,w),h!==S&&c&&c(I,h)},[e,m,p,u,S,l,T,H,x,D,c]),K=(0,Be.useCallback)(I=>{let{current:R}=e,C=(0,ze.getElementByDataIndex)(R,r);(0,ze.isSelectableElement)(C)&&(b(I)||g&&I.key==="Tab")&&(I.key!=="Tab"&&I.preventDefault(),P(I,r,!1,I.ctrlKey||I.metaKey),p&&(f.current=r))},[r,e,b,g,P,p]),L=(0,Be.useCallback)((I,R)=>{if(p&&I.shiftKey){let{current:C}=e,M=(0,ze.getElementByDataIndex)(C,R);(0,ze.isSelectableElement)(M)&&P(I,R,!0)}},[p,e,P]),N=(0,Be.useCallback)(I=>{let{current:R}=e,C=(0,ze.getElementByDataIndex)(R,r);!o&&(0,ze.isSelectableElement)(C)&&(I.preventDefault(),I.stopPropagation(),P(I,r,I.shiftKey,I.ctrlKey||I.metaKey),p&&(f.current=r)),s==null||s(I)},[e,r,o,s,P,p]);return{listHandlers:Nr(a)?{onClick:s}:{onClick:N,onKeyDown:K,onKeyboardNavigation:L},selected:S,setSelected:D}};var Tt=require("react");var on=({disableTypeToSelect:e,highlightedIdx:t,highlightItemAtIndex:o,typeToNavigate:r,items:n,applyIncrementalSearch:s=!0})=>{let l=(0,Tt.useRef)(null),c=(0,Tt.useRef)(""),i=(0,Tt.useRef)(-1),a=(0,Tt.useCallback)(g=>{if(g||!s){let u=new RegExp(`^${c.current}`,"i"),m=n.findIndex(({label:p},f)=>f>i.current&&u.test(p));m===-1&&(m=n.findIndex(({label:p},f)=>f<=i.current&&u.test(p))),m!==-1&&o(m)}else c.current="",l.current=null,i.current=-1},[s,o,n]),d=(0,Tt.useCallback)(g=>{let u=i.current!==-1;(bo(g)||u&&g.key===qr)&&r&&(g.preventDefault(),g.stopPropagation(),(i.current===-1||g.key===c.current)&&(i.current=t),l.current!==null&&(clearTimeout(l.current),l.current=null),g.key!==c.current&&(c.current+=g.key),s&&a(!0),l.current=window.setTimeout(()=>{a()},100))},[r,s,t,a]);return{onKeyDown:e?void 0:d}};var Xe=require("react");var is=require("@salt-ds/core"),ns=["height"],ha=["height","scrollHeight"],xa=[],ss={containerOnly:[ha,xa],withContent:[ns,ns]},Sa=e=>e?ss.containerOnly:ss.withContent,ls={current:null},Ea=(e,t)=>{let{transform:o="none"}=getComputedStyle(e);if(o.startsWith("matrix")){let r=o.lastIndexOf(",");return parseInt(o.slice(r+1))}else{let r=e.offsetParent;if(r===t||t===null)return e.offsetTop;{let n=e.offsetTop;for(;r!==null&&r!==t;)n+=r.offsetTop,r=r.offsetParent;return n}}},rn=({containerRef:e,contentRef:t=ls,highlightedIdx:o=-1,indexPositions:r,stickyHeaders:n=!1})=>{let s=(0,Xe.useRef)(!1),l=(0,Xe.useRef)({height:0,contentHeight:0}),c=(0,Xe.useCallback)(f=>{s.current=!0,e.current&&(e.current.scrollTop=f),setTimeout(()=>{s.current=!1})},[]),i=(0,Xe.useCallback)(()=>c(0),[c]),a=(0,Xe.useCallback)(()=>{c(l.current.contentHeight-l.current.height)},[c]),d=(0,Xe.useCallback)(f=>{let b=t.current||e.current;if(f.id){let S=document.getElementById(f.id);if(S&&e.current){let{height:D}=l.current,E=S.ariaExpanded&&S.firstChild?S.firstChild:S,x=n?36:0,T=Ea(E,b),H=E.offsetHeight,{scrollTop:P}=e.current,K=P+x,L=K+D-x;if(T+H>L||T<K){let N=T+H>L?P+(T+H)-L:T-x;c(N)}}}},[e,t,c,n]);(0,is.useIsomorphicLayoutEffect)(()=>{let{height:f,contentHeight:b}=l.current,S=r[o];if(b>f&&S){let[D]=r,[E]=r.slice(-1);S===D?i():S===E?a():d(r[o])}},[o,r,d,a,i]);let g=(0,Xe.useCallback)(({height:f,scrollHeight:b})=>{typeof f=="number"&&(l.current.height=f),typeof b=="number"&&(l.current.contentHeight=b)},[]),u=(0,Xe.useCallback)(({height:f})=>{typeof f=="number"&&(l.current.contentHeight=f)},[]),[m,p]=Sa(t===ls);return qe(e,m,g,!0),qe(t,p,u,!0),{isScrolling:s,scrollIntoView:d}};var as=require("@salt-ds/core");var Kt=require("react/jsx-runtime"),Ta=(0,as.makePrefixer)("saltHighlighter"),nn=e=>{let{matchPattern:t,text:o=""}=e,r=typeof t=="string"?new RegExp(`(${lo(t)})`,"gi"):t;return r===void 0?(0,Kt.jsx)(Kt.Fragment,{children:o}):(0,Kt.jsx)("span",{children:o.split(r).map((n,s)=>n.match(r)?(0,Kt.jsx)("strong",{className:Ta("highlight"),children:n},`${s}-${n}`):n)})};var sn=require("react"),ln=ge(require("classnames"));var us=ge(require("react")),ds=ge(require("classnames"));var cs="vuuCheckboxIcon",ho=({checked:e=!1,...t})=>us.default.createElement("span",{...t,className:(0,ds.default)(cs,{[`${cs}-checked`]:e})});var yt=require("react/jsx-runtime"),xo="vuuListItem",So=(0,sn.forwardRef)(function({height:t,...o},r){return(0,yt.jsx)("div",{...o,"aria-hidden":!0,className:(0,ln.default)(xo,`${xo}-proxy`),ref:r,style:{height:t}})}),Eo=(0,sn.forwardRef)(function({children:t,className:o,disabled:r,tabIndex:n,item:s,itemHeight:l,itemTextHighlightPattern:c,label:i,selectable:a,selected:d,showCheckbox:g,style:u,...m},p){let f=(0,ln.default)(xo,o,{vuuDisabled:r,[`${xo}-checkbox`]:g}),b=l!==void 0?{...u,height:l}:u;return(0,yt.jsxs)("div",{className:f,...m,"aria-disabled":r||void 0,"aria-selected":d||void 0,ref:p,style:b,children:[g&&(0,yt.jsx)(ho,{"aria-hidden":!0,checked:d}),t&&typeof t!="string"?t:c==null?(0,yt.jsx)("span",{className:`${xo}-textWrapper`,children:i||t}):(0,yt.jsx)(nn,{matchPattern:c,text:i||t})]})});var nr=require("@vuu-ui/vuu-layout"),ks=require("@salt-ds/core"),rr=ge(require("classnames")),Le=require("react");var Cs=require("@vuu-ui/vuu-layout"),Je=require("react");var ya="fwd",va="bwd";var ke=require("react");var ms=require("@vuu-ui/vuu-utils"),rt=require("react"),ps=({onDragOverDropTarget:e})=>{let t=(0,rt.useRef)(),o=(0,rt.useRef)(null),r=(0,rt.useRef)({x:0,y:0}),n=(0,rt.useCallback)((i,a)=>{let{current:d}=t;if(d){for(let[g,u]of Object.entries(d))if((0,ms.boxContainsPoint)(u,i,a))return g}},[]),s=(0,rt.useCallback)(i=>{let{clientX:a,clientY:d}=i,{current:g}=o;if(r.current.x=a,r.current.y=d,g!=null&&g.draggableElement){let{draggableElement:u,mouseOffset:m}=g,p=r.current.x-m.x,f=r.current.y-m.y;u.style.top=`${f}px`,u.style.left=`${p}px`;let b=n(p,f);b&&e(b,g)&&(document.removeEventListener("mousemove",s,!1),document.removeEventListener("mouseup",l,!1),o.current=null)}},[]),l=(0,rt.useCallback)(()=>{document.removeEventListener("mousemove",s,!1),document.removeEventListener("mouseup",l,!1)},[s]),c=(0,rt.useCallback)(i=>(console.log("resume drag of ",{el:i.draggableElement}),o.current=i,document.addEventListener("mousemove",s,!1),document.addEventListener("mouseup",l,!1),!0),[s,l]);return{measuredDropTargetsRef:t,resumeDrag:c}};var gs=require("react/jsx-runtime"),Da={isDragSource:!1,isDropTarget:!1,register:()=>{}},Ha=()=>console.log("have you forgotten to provide a DragDrop Provider ?"),fs=(0,ke.createContext)({registerDragDropParty:Ha}),wa=(e=[])=>e.reduce((t,o)=>{let r=document.getElementById(o);if(r){let{top:n,right:s,bottom:l,left:c}=r.getBoundingClientRect();t[o]={top:n,right:s,bottom:l,left:c}}return t},{}),Ma=({children:e,dragSources:t})=>{let o=(0,ke.useMemo)(()=>new Map,[]),r=(0,ke.useCallback)((u,m)=>{let p=o.get(u);return p?p(m):!1},[o]),{measuredDropTargetsRef:n,resumeDrag:s}=ps({onDragOverDropTarget:r}),[l,c]=(0,ke.useMemo)(()=>{let u=new Map,m=new Map;for(let[p,{dropTargets:f}]of Object.entries(t)){let b=u.get(p),S=Array.isArray(f)?f:[f];b?b.push(...S):u.set(p,S);for(let D of S){let E=m.get(D);E?E.push(p):m.set(D,[p])}}return[u,m]},[t]);console.log({dragSources:l,dropTargets:c});let i=(0,ke.useCallback)((u,m)=>(n.current=wa(l.get(u)),s(m),!0),[l,n,s]),a=(0,ke.useCallback)(u=>{console.log(`end of drag operation, id= ${u}`)},[]),d=(0,ke.useCallback)((u,m)=>{m&&o.set(u,m)},[o]),g=(0,ke.useMemo)(()=>({dragSources:l,dropTargets:c,onDragOut:i,onEndOfDragOperation:a,registerDragDropParty:d}),[l,c,i,a,d]);return(0,gs.jsx)(fs.Provider,{value:g,children:e})},an=e=>{var l,c;let{dragSources:t,dropTargets:o,onDragOut:r,onEndOfDragOperation:n,registerDragDropParty:s}=(0,ke.useContext)(fs);if(e){let i=(l=t==null?void 0:t.has(e))!=null?l:!1,a=(c=o==null?void 0:o.has(e))!=null?c:!1;return{isDragSource:i,isDropTarget:a,onDragOut:r,onEndOfDragOperation:n,register:s}}else return Da};var Ms=require("@vuu-ui/vuu-layout"),J=require("react");var Zo=class{constructor(t,o){this.draggableElement=null;this.payload=null;this.setDraggable=t=>{this.draggableElement=t};this.initialDragElement=o,this.mouseOffset=this.getMouseOffset(t,o)}setPayload(t){this.payload=t}getMouseOffset(t,o){let{clientX:r,clientY:n}=t,s=o.getBoundingClientRect();return{x:r-s.left,y:n-s.top}}};var bs=require("@salt-ds/core"),Is=ge(require("classnames")),Bt=require("react"),Yo=require("@vuu-ui/vuu-popups");var Xo=require("react/jsx-runtime"),La=e=>e.split(" ").map(t=>`vuuDraggable-${t}`),Jo=(0,Bt.forwardRef)(function({wrapperClassName:t,element:o,onTransitionEnd:r,style:n,scale:s=1},l){let c=(0,Bt.useCallback)(d=>{d&&(d.innerHTML="",d.appendChild(o),s!==1&&(d.style.transform=`scale(${s},${s})`))},[o,s]),i=(0,bs.useForkRef)(l,c),a=(0,Bt.useMemo)(()=>({left:0,top:0}),[]);return(0,Xo.jsx)(Yo.Portal,{children:(0,Xo.jsx)(Yo.PopupComponent,{anchorElement:{current:document.body},placement:"absolute",position:a,children:(0,Xo.jsx)("div",{className:(0,Is.default)("vuuDraggable",...La(t)),ref:i,onTransitionEnd:r,style:n})})})}),cn=e=>{let t=document.createElement("div");return t.className="vuuDraggable-spacer",e&&t.addEventListener("transitionend",()=>{e.current=!1}),t},hs=()=>{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 Ra=["left","right"],Ca=["top","bottom"],To=":not(.wrapped)",un=':not([aria-hidden="true"])',dn=e=>{let t=e.cloneNode(!0);return t.removeAttribute("id"),t.dataset.index="-1",t},Ss=(e,t="width",o=!1)=>{let r=t==="width"?"left":"top",{[t]:n,[r]:s}=e.getBoundingClientRect(),{padEnd:l=!1,padStart:c=!1}=e.dataset,i=getComputedStyle(e),[a,d]=t==="width"?Ra:Ca,g=c&&!o?0:parseInt(i.getPropertyValue(`margin-${a}`),10),u=l&&!o?0:parseInt(i.getPropertyValue(`margin-${d}`),10),m=n;if(parseInt(i.getPropertyValue("flex-shrink"),10)>0){let f=parseInt(i.getPropertyValue("flex-basis"),10);!isNaN(f)&&f>0&&(m=f)}return[s,g+m+u]},Pa={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"}},He=e=>Pa[e],mn=(e,t)=>{let o=e.find(r=>r.id===t);if(o)return o},pn=(e,t)=>{e.splice(t,1);for(let o=t;o<e.length;o++)e[o].currentIndex-=1},vt=(e,t,o,r,n)=>{let s=[],{DIMENSION:l}=He(t),c=Array.from(o?e.querySelectorAll(o):e.children),i=c.length,a=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,i-1):i-1;for(let g=a;g<=d;g++){let u=c[g],[m,p]=Ss(u,l),f=g===i-1,b=u.id;s.push({currentIndex:g,id:b,index:g,isDraggedItem:n===b,isLast:f,isOverflowIndicator:u.dataset.index==="overflow",element:u,start:m,end:m+p,size:p,mid:m+p/2})}return s},Dt=(e,t=!1)=>{let o=e.findIndex(r=>r.isDraggedItem);if(t){let{index:r}=e[o],n=e.filter(l=>!l.isDraggedItem).reduce((l,c)=>Math.min(l,c.index),Number.MAX_SAFE_INTEGER);if(n>0&&!(r===0&&n===1))return n+o}return o},Qo=(e,t)=>{let o=Dt(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),l=s.size-n.size;if(t==="fwd"){let c=s.start+l,i=s.end,a={...n,start:c,mid:Math.floor(c+(i-c)/2),end:i},d=n.start,g=n.end+l,u={...s,start:d,mid:Math.floor(d+(g-d)/2),end:g};e.splice(o,2,u,a)}else{let c=s.start,i=s.end-l,a={...n,start:c,mid:Math.floor(c+(i-c)/2),end:i},d=n.start-l,g=n.end,u={...s,start:d,mid:Math.floor(d+(g-d)/2),end:g};e.splice(r,2,a,u)}},ct=(e,t,o,r)=>{let n=e.length,s=Dt(e),l=e[s];if(r==="fwd"){let c=Math.round(t+o);for(let i=n-1;i>=0;i--){let a=e[i];if(c>a.mid)return l&&i<s?l:a}}else{let c=Math.round(t);for(let i=0;i<n;i++){let a=e[i];if(c<a.mid)return i>s?l:a}}throw Error("no dropTraget identified")};function fn(e,t){let{height:o,left:r,top:n,width:s}=e,{height:l,width:c}=t;return{height:Math.min(o,l),left:r,top:n,width:Math.min(s,c)}}var er=e=>e.map((t,o)=>{var r;return`
3
+ ${t.isDraggedItem?"*":" "}[${o}] width : ${Math.floor(t.size)} ${Math.floor(t.start)} - ${Math.floor(t.end)} (mid ${Math.floor(t.mid)}) ${(r=t.element)==null?void 0:r.textContent} `}).join("");var ut=require("react");var Es=({containerRef:e,onScrollingStopped:t,orientation:o="vertical"})=>{let r=(0,ut.useRef)(null),n=(0,ut.useRef)(!1),s=(0,ut.useRef)(0),l=(0,ut.useRef)("fwd"),c=(0,ut.useCallback)((a=!1)=>{console.log("[useAutoScroll] stopScrolling"),r.current!==null&&(clearTimeout(r.current),r.current=null),n.current=!1,t==null||t(l.current,s.current,a)},[t]),i=(0,ut.useCallback)((a,d,g=30)=>{let{current:u}=e;if(u){let{SCROLL_POS:m,SCROLL_SIZE:p,CLIENT_SIZE:f}=He(o),{[m]:b,[p]:S,[f]:D}=u,E=a==="fwd"?S-D-b:b,x=Math.min(E,g);a==="fwd"?(l.current="fwd",u[m]=s.current=b+x):(l.current="bwd",u[m]=s.current=b-x),x===E?c(!0):(n.current=!0,r.current=window.setTimeout(()=>{i(a,d,g)},100))}},[e,o,c]);return{isScrolling:n,startScrolling:i,stopScrolling:c}};var ae=require("react");var yo=require("react");var Ts=()=>{let e=(0,yo.useMemo)(()=>hs(),[]),t=(0,yo.useCallback)(()=>e.remove(),[e]);return{positionDropIndicator:(0,yo.useCallback)((r,n="end")=>(n==="end"?r.element.after(e):r.element.before(e),e),[e]),clearSpacer:t}};var vs=require("react/jsx-runtime"),Na=':not([data-overflowed="true"])',ka=':not([aria-hidden="true"])',ys=({onDrop:e,orientation:t="horizontal",containerRef:o,itemQuery:r="*",selected:n,viewportRange:s})=>{let l=(0,ae.useRef)(),c=(0,ae.useRef)(null),i=(0,ae.useRef)(null),a=(0,ae.useRef)(""),d=(0,ae.useRef)(!1),g=(0,ae.useRef)(-1),u=(0,ae.useRef)([]),m=(0,ae.useRef)(!1),[p,f]=(0,ae.useState)(!1),[b,S]=(0,ae.useState)(),{clearSpacer:D,positionDropIndicator:E}=Ts(),x=(0,ae.useRef)(),T=`:is(${r}${Na}${ka},[data-overflow-indicator])`,H=M=>u.current.findIndex(y=>y.id===M.id),P=(M,y,w)=>{M.start+=y,M.mid+=y,M.end+=y,typeof w=="number"&&(M.currentIndex+=w)},K=(0,ae.useRef)();K.current=s;let L=(0,ae.useCallback)(()=>{D()},[D]),N=(0,ae.useCallback)((M,y,w)=>{let{current:h}=o,{current:k}=x;if(h&&k){u.current=vt(h,t,T,K.current);let{size:v}=k,A=g.current+v/2,{current:_}=u,Z=ct(_,A,v,"fwd");Z&&E(w&&M==="fwd"?_[_.length-1]:Z,"start")}},[o,E,T,t]),z=(0,ae.useCallback)(M=>{M.ariaSelected&&Array.isArray(n)&&n.length>1&&console.log("its a selected element, and we have a multi select");let{current:y}=o;if(y&&M){let{SCROLL_SIZE:w,CLIENT_SIZE:h}=He(t),{id:k}=M,{[w]:v,[h]:F}=y;d.current=v>F;let A=u.current=vt(y,t,T,s),_=mn(A,k);if(_&&y){let Z=H(_);pn(A,Z),x.current=_;let{current:U}=K;if(U!=null&&U.atEnd)for(let Q=0;Q<A.length;Q++)P(A[Q],_.size);for(let Q=Z;Q<A.length;Q++)P(A[Q],-_.size,-1);let[$,G]=_.isLast?[A[A.length-1],"end"]:[A[Z],"start"];i.current=$,a.current=G;let Y=E($,G),{top:q,left:le,width:te}=Y.getBoundingClientRect(),ie={top:_.isLast?U!=null&&U.atEnd&&!U.atStart?q+_.size-2:q-2:q-_.size-2,left:le,width:te,height:2};S((0,vs.jsx)(Jo,{wrapperClassName:"dropIndicatorContainer",style:ie,ref:c,element:xs()}))}}},[n,o,t,T,s,E]),I=(0,ae.useCallback)((M,y)=>{let{current:w}=i,{current:h}=x;if(h&&o.current){let k=t==="horizontal"?"left":"top";g.current=M;let{current:v}=u,F=ct(v,M,h.size,y);if(F&&F.index!==(w==null?void 0:w.index)){if(F.isOverflowIndicator)f(m.current=!0);else if(c.current){if(H(F)===v.length-1){let _=v[v.length-1],U=E(_,"start").getBoundingClientRect();c.current.style[k]=`${U.top}px`}else{let Z=E(F,"start").getBoundingClientRect();c.current.style[k]=`${Z.top}px`}f(m.current=!1)}i.current=F,l.current=y}}},[o,t,E]),R=(0,ae.useCallback)(()=>{D();let{current:M}=x,{current:y}=i,{current:w}=a,{current:h}=K;if(M&&h&&y){let{index:k}=M,v=w==="start",{index:F,currentIndex:A}=y;i.current=null,l.current=void 0,m.current?e(k,-1,{fromIndex:k,toIndex:-1}):k<F?e(k,v?A:A+1,{fromIndex:k,toIndex:v?A:A+1}):e(k,v?F:F+1,{fromIndex:k,toIndex:v?F:F+1}),S(void 0)}f(!1)},[D,e]),C=(0,ae.useCallback)(()=>{},[]);return{beginDrag:z,drag:I,drop:R,dropIndicator:b,handleScrollStart:L,handleScrollStop:N,releaseDrag:C,revealOverflowedItems:p}};var be=require("react");var _e=require("react");var Ds=(e="horizontal")=>{let t=(0,_e.useRef)(0),o=(0,_e.useRef)(!1),r=(0,_e.useMemo)(()=>[cn(o),cn()],[]),n=(0,_e.useCallback)((a,d="width")=>{let[g,u]=r;t.current=requestAnimationFrame(()=>{o.current=!0,g.style.cssText=`${d}: 0px`,u.style.cssText=`${d}: ${a}px`,r[0]=u,r[1]=g})},[r]),s=(0,_e.useCallback)((a=!1)=>{if(a===!0){let[d]=r,g=()=>{d.removeEventListener("transitionend",g),s()},u=e==="horizontal"?"width":"height";d.addEventListener("transitionend",g),n(0,u)}else r.forEach(d=>d.remove())},[n,e,r]),l=(0,_e.useCallback)(()=>{t.current&&(cancelAnimationFrame(t.current),t.current=0)},[]),c=(0,_e.useCallback)((a,d,g,u=!1,m="static")=>{if(d){let p=e==="horizontal"?"width":"height",[f,b]=r;if(l(),u)o.current?(s(),f.style.cssText=`${p}: ${g}px`,b.style.cssText=`${p}: 0px`,m==="fwd"?(d.element.before(f),d.element.after(b)):(d.element.after(f),d.element.before(b))):m==="fwd"?d.element.after(b):d.element.before(b),n(g,p);else if(m==="static")f.style.cssText=`${p}: ${g}px`,d.element.before(f);else throw Error("useDragDisplacers currently only supports noTransition for static displacement");m!=="static"&&Qo(a,m)}},[n,l,s,e,r]),i=(0,_e.useCallback)((a,d,g,u=!1,m="static")=>{let p=e==="horizontal"?"width":"height",[f,b]=r;l(),u?(o.current?(s(),f.style.cssText=`${p}: ${g}px`,b.style.cssText=`${p}: 0px`,d.element.before(f),d.element.after(b)):m==="fwd"?d.element.after(b):d.element.before(b),n(g,p)):(f.style.cssText=`${p}: ${g}px`,d.element.after(f)),m!=="static"&&Qo(a,m)},[n,l,s,e,r]);return{displaceItem:c,displaceLastItem:i,clearSpacers:s}};var gn=require("@vuu-ui/vuu-utils");var Hs=({onDrop:e,orientation:t="horizontal",containerRef:o,itemQuery:r="*",selected:n,viewportRange:s})=>{let l=(0,be.useRef)(),c=(0,be.useRef)(!1),i=(0,be.useRef)(-1),a=(0,be.useRef)([]),d=(0,be.useRef)(!1),[g,u]=(0,be.useState)(!1),{clearSpacers:m,displaceItem:p,displaceLastItem:f}=Ds(t),b=(0,be.useRef)(),S=`:is(${r}${To}${un},.vuuOverflowContainer-OverflowIndicator)`,D=I=>a.current.findIndex(R=>R.id===I.id),E=(0,be.useRef)();E.current=s;let x=(0,be.useCallback)(()=>{m()},[m]),T=(0,be.useCallback)((I,R,C)=>{let{current:M}=o,{current:y}=b;if(M&&y){a.current=vt(M,t,S,E.current),I==="fwd"?a.current.push(y):a.current.unshift(y);let{size:w}=y,k=i.current+w/2,{current:v}=a,F=ct(v,k,w,"fwd");if(F){let _=D(F),Z=v[_];C&&I==="fwd"?f(v,v[v.length-1],w,!1,"static"):p(v,Z,w,!0,"static")}}},[o,p,f,S,t]),H=(0,be.useCallback)(I=>{I.ariaSelected&&Array.isArray(n)&&n.length>1&&console.log("its a selected element, and we have a multi select");let{current:R}=o;if(R&&I){let C=R.contains(I),{SCROLL_SIZE:M,CLIENT_SIZE:y}=He(t),{id:w}=I,{[M]:h,[y]:k}=R;c.current=h>k;let v=a.current=vt(R,t,S,s,w);if(C){console.log(er(v));let F=Dt(v),A=v[F];A&&R&&(b.current=A,(A.isLast?f:p)(v,A,A.size,!1,"static"))}else{let{top:F,height:A}=I.getBoundingClientRect(),_=ct(v,F,A,"fwd"),Z=v.indexOf(_),{start:U,end:$,mid:G}=_;console.log(`nextDropTarget ${_.element.textContent}`);let Y=b.current={end:$,mid:G,start:U,isDraggedItem:!0,isExternal:!0,size:A},q=v.indexOf(_);v.splice(q,0,Y);for(let te=Z+1;te<v.length;te++){let ie=v[te];ie.mid+=A,ie.end+=A,ie.start+=A}console.log(er(v)),(_.isLast?f:p)(v,_,_.size,!0,"static")}}},[o,p,f,S,t,n,s]),[P,K]=(0,be.useMemo)(()=>{let I=!1;return[M=>{if(!I){I=!0;let y=M.element.querySelector(".vuuPopupMenu");y&&(0,gn.dispatchMouseEvent)(y,"click")}},M=>{if(I){I=!1;let y=M.element.querySelector(".vuuPopupMenu");y&&(0,gn.dispatchMouseEvent)(y,"click")}}]},[]),L=(0,be.useCallback)((I,R)=>{let{current:C}=b;if(C&&o.current){i.current=I;let{current:M}=a,y=ct(M,I,C.size,R);if(y&&!y.isDraggedItem)if(y.isOverflowIndicator)u(d.current=!0),P(y);else{let{size:w}=C;(D(y)===M.length-1?f:p)(M,y,w,!0,R);let v=M.at(-1);K(v),u(d.current=!1)}l.current=R}},[o,p,f,K,P]),N=(0,be.useCallback)(()=>{var M;m();let{current:I}=a,R=Dt(I),C=I[R];if(C)if(l.current=void 0,d.current)e(C.index,-1,{fromIndex:C.index,toIndex:-1,isExternal:C.isExternal});else{let y=Dt(I,!0);e(C.index,y,{fromIndex:C.index,toIndex:y,isExternal:C.isExternal})}if(u(!1),o.current){let y=(M=o.current)==null?void 0:M.scrollTop;R<I.length&&(o.current.scrollTop=y)}},[m,o,e]),z=(0,be.useCallback)(()=>{m(!0)},[m]);return{beginDrag:H,drag:L,drop:N,handleScrollStart:x,handleScrollStop:T,releaseDrag:z,revealOverflowedItems:g}};var Ls=require("react/jsx-runtime"),Oa={beginDrag:()=>{},drag:()=>{},draggableRef:{current:null},drop:()=>{},isDragging:!1,isScrolling:!1,handleScrollStart:()=>{},handleScrollStop:()=>{},revealOverflowedItems:!1},ws={start:0,end:1e3,contraStart:0,contraEnd:1e3},Aa=()=>Oa,Fa=3,Ka=(e,t)=>e.closest(t),Ba=(e,t)=>{let o=`:is(${t}${To},.vuuOverflowContainer-OverflowIndicator)`,n=Array.from(e.querySelectorAll(o)).pop();return[n,(0,Ms.isOverflowElement)(n)]},vo=({allowDragDrop:e,containerRef:t,draggableClassName:o,getDragPayload:r,id:n,itemQuery:s="*",onDragStart:l,onDrop:c,onDropSettle:i,orientation:a,...d})=>{let g=(0,J.useRef)({start:0,end:0,contraStart:0,contraEnd:0}),[u,m]=(0,J.useState)({draggable:void 0,draggedItemIndex:-1,isDragging:!1}),p=(0,J.useRef)(null),f=(0,J.useRef)(null),b=(0,J.useRef)(!1),S=(0,J.useRef)({x:0,y:0}),D=(0,J.useRef)({x:0,y:0}),E=(0,J.useRef)(null),x=(0,J.useRef)(-1),T=(0,J.useRef)(-1),H=(0,J.useRef)(),{isDragSource:P,isDropTarget:K,onDragOut:L,onEndOfDragOperation:N,register:z}=an(n),I=(0,J.useRef)(),R=(0,J.useRef)(),C=(0,J.useCallback)(()=>{let{current:V}=I,{current:j}=R;V&&j&&(document.addEventListener("mousemove",V,!1),document.addEventListener("mouseup",j,!1))},[]),M=(0,J.useCallback)(()=>{let{current:V}=I,{current:j}=R;V&&j&&(document.removeEventListener("mousemove",V,!1),document.removeEventListener("mouseup",j,!1))},[]),y=(0,J.useCallback)((V,j)=>{let{current:W}=t;if(W){let[X,ne]=Ba(W,s),{CONTRA:O,CONTRA_END:B,DIMENSION:oe,END:se,START:fe}=He(a),Ee=j[oe],{[fe]:me,[se]:Me}=X.getBoundingClientRect();g.current.start=V[fe],g.current.end=ne?Math.max(me,V.right-Ee):b.current?V[fe]+V[oe]-Ee:Me-Ee,g.current.contraStart=V[O],g.current.contraEnd=V[B]}},[t,s,a]),w=(0,J.useCallback)(()=>{var W;let{current:V}=T,j=(W=t.current)==null?void 0:W.querySelector(`${s}[data-index="${V}"]`);j&&j.classList.remove("vuuDropTarget-settling"),T.current=-1,i==null||i(V),m(X=>({...X,draggable:void 0}))},[t,s,i]),h=(0,J.useCallback)(V=>{if(t.current&&p.current){let{mouseOffset:j}=p.current,{POS:W,SCROLL_POS:X,SCROLL_SIZE:ne,CLIENT_SIZE:O}=He(a),{[X]:B,[ne]:oe,[O]:se}=t.current,fe=oe-se,Ee=B<fe,me=g.current.end,Me=B>0&&V-j[W]<=g.current.start,je=Ee&&V-j[W]>=me;return Me?"bwd":je?"fwd":""}},[t,a]),k=e===!0||e==="natural-movement"?Hs:e==="drop-indicator"?ys:Aa,v=(0,J.useCallback)((V,j,W)=>{var X;(X=H.current)==null||X.call(H,V,j,W)},[]),{isScrolling:F,startScrolling:A,stopScrolling:_}=Es({containerRef:t,onScrollingStopped:v,orientation:a}),Z=(0,J.useCallback)((V,j,W)=>{var X;x.current=j,W.isExternal?c==null||c(V,j,{...W,payload:(X=p.current)==null?void 0:X.payload}):c==null||c(V,j,W),T.current=j,n&&(N==null||N(n)),p.current=null},[n,c,N]),{beginDrag:U,drag:$,drop:G,handleScrollStart:Y,handleScrollStop:q,releaseDrag:le,...te}=k({...d,containerRef:t,isDragSource:P,isDropTarget:K,itemQuery:s,onDrop:Z,orientation:a});H.current=q;let ie=(0,J.useCallback)((V,j)=>{let{CONTRA_POS:W}=He(a),X=S.current[W],ne=P?Math.abs(X-j):0;if(p.current&&ne-V>5)return L!=null&&L(n,p.current)&&(M(),le==null||le(),p.current=null),g.current=ws,!0},[n,P,L,a,le,M]),Q=(0,J.useCallback)(V=>{let{CLIENT_POS:j,CONTRA_CLIENT_POS:W,POS:X}=He(a),{clientX:ne,clientY:O}=V,{[j]:B,[W]:oe}=V,se=S.current[X],fe=Math.abs(se-B),{current:Ee}=p;if(ie(fe,oe)){console.log("drag handed over to provider");return}if(S.current.x=ne,S.current.y=O,Ee){let{draggableElement:me,mouseOffset:Me}=Ee;if(g.current===ws&&me){let je=S.current.x-Me.x,Fe=S.current.y-Me.y;me.style.top=`${Fe}px`,me.style.left=`${je}px`}else if(fe>0&&me){let je=se<B?"fwd":"bwd",Fe=h(B),bt=S.current[X]-Me[X];if(Fe&&b.current&&!F.current?(Y(),A(Fe,1)):!Fe&&F.current&&_(),!F.current){let Lo=Math.round(Math.max(g.current.start,Math.min(g.current.end,bt))),Ro=a==="horizontal"?"left":"top";me.style[Ro]=`${Lo}px`,$(Lo,je)}}}},[$,h,Y,n,P,F,L,a,A,_]),ue=(0,J.useCallback)(()=>{M(),p.current&&(E.current=p.current.draggableElement),G(),m(V=>({...V,draggedItemIndex:-1,isDragging:!1}))},[G,M]);I.current=Q,R.current=ue;let de=(0,J.useCallback)(V=>{p.current=V;let{draggableElement:j,mouseOffset:W,initialDragElement:X}=V,{current:ne}=t;if(console.log({container:ne,draggableElement:j,initialDragElement:X}),ne&&j){let O=ne.getBoundingClientRect(),B=j.getBoundingClientRect();return y(O,B),S.current.x=B.left+W.x,S.current.y=B.top+W.y,U(j),C(),!0}else return!1},[C,U,t,y]),Ie=(0,J.useCallback)(V=>{let{target:j}=V,W=Ka(j,s),{current:X}=t;if(X&&W){let{SCROLL_SIZE:ne,CLIENT_SIZE:O}=He(a),{[ne]:B,[O]:oe}=X;b.current=B>oe;let se=X.getBoundingClientRect(),fe=W.getBoundingClientRect(),Ee=p.current=new Zo(V,W);y(se,fe),U(W);let{dataset:{index:me="-1"}}=W;m({isDragging:!0,draggable:(0,Ls.jsx)(Jo,{element:dn(W),onTransitionEnd:w,ref:Ee.setDraggable,style:fn(fe,se),wrapperClassName:o}),draggedItemIndex:parseInt(me)}),l==null||l(Ee),C()}},[C,U,t,o,s,l,a,y,w]),re=(0,J.useCallback)(V=>{let{CLIENT_POS:j,POS:W}=He(a),{[j]:X}=V;Math.abs(X-D.current[W])>Fa&&t.current&&(f.current&&(window.clearTimeout(f.current),f.current=null),document.removeEventListener("mousemove",re),document.removeEventListener("mouseup",he,!1),Ie(V))},[t,U,a]),he=(0,J.useCallback)(()=>{f.current&&(window.clearTimeout(f.current),f.current=null),document.removeEventListener("mousemove",re,!1),document.removeEventListener("mouseup",he,!1)},[re]),We=(0,J.useCallback)(V=>{let{current:j}=t;if(V.stopPropagation(),j&&!V.defaultPrevented){let{clientX:W,clientY:X}=V;S.current.x=D.current.x=W,S.current.y=D.current.y=X,document.addEventListener("mousemove",re,!1),document.addEventListener("mouseup",he,!1),V.persist(),f.current=window.setTimeout(()=>{document.removeEventListener("mousemove",re,!1),document.removeEventListener("mouseup",he,!1),Ie(V.nativeEvent)},500)}},[t,Ie,re,he]),{current:Se}=E;return(0,J.useLayoutEffect)(()=>{if(Se&&t.current){let V=x.current,j=t.current.querySelector(`${s}[data-index="${V}"]`);j?(j.classList.add("vuuDropTarget-settling"),requestAnimationFrame(()=>{let{top:W,left:X}=j.getBoundingClientRect(),{top:ne,left:O}=Se.getBoundingClientRect();O!==X||ne!==W?(Se.classList.add("vuuDraggable-settling"),Se.style.top=`${W}px`,Se.style.left=`${X}px`):w()})):console.log(`dont have the dropped item (at ${V})`),E.current=null}},[t,s,Se,w]),(0,J.useEffect)(()=>{n&&(P||K)&&z(n,de)},[n,P,K,z,de]),{...te,...u,isScrolling:F,onMouseDown:e?We:void 0}};var Ye=require("react");var Rs=({dataHook:e,onDrop:t,onMoveListItem:o,selected:r,setHighlightedIndex:n,setSelected:s})=>{let l=(0,Ye.useRef)([]),c=(0,Ye.useRef)(e);c.current=e;let i=(0,Ye.useCallback)((u,m,p)=>u===m?p:u<Math.min(m,p)||u>Math.max(m,p)?u:m<u?u-1:u+1,[]),a=(0,Ye.useCallback)((u,m,p)=>u.map(b=>c.current.indexOfItemById(b)).map(b=>i(b,m,p)),[i]),d=(0,Ye.useCallback)((u,m,p)=>{Ze(r)&&(l.current=a(r,u,m)),p.isExternal?t==null||t(u,m,p):o==null||o(u,m),n(-1)},[r,n,a,t,o]),g=(0,Ye.useCallback)(u=>{n(u)},[n]);return(0,Ye.useEffect)(()=>{let{current:u}=l;if(Ze(u)){l.current=[];let m=Array.isArray(u)?u.map(p=>e.data[p].id):e.data[u].id;l.current=[],s(m)}},[e.data,s]),{handleDrop:d,onDropSettle:g}};var nt=({allowDragDrop:e=!1,collapsibleHeaders:t,collectionHook:o,containerRef:r,contentRef:n,defaultHighlightedIndex:s,defaultSelected:l,disabled:c,disableAriaActiveDescendant:i,disableHighlightOnFocus:a,disableTypeToSelect:d,highlightedIndex:g,id:u,label:m="",listHandlers:p,onClick:f,onDragStart:b,onDrop:S,onHighlight:D,onKeyboardNavigation:E,onKeyDown:x,onMoveListItem:T,onSelect:H,onSelectionChange:P,restoreLastFocus:K,scrollContainerRef:L,selected:N,selectionStrategy:z,selectionKeys:I,stickyHeaders:R,tabToSelect:C,viewportRange:M})=>{let y=(0,Je.useRef)(N||l),w=(O,B)=>{var oe,se;(se=(oe=q.listHandlers).onKeyboardNavigation)==null||se.call(oe,O,B),E==null||E(O,B)},h=(0,Je.useCallback)((O,B)=>{H&&B!==null&&H(O,o.itemById(B))},[o,H]),k=(0,Je.useMemo)(()=>{var O,B;return L||{current:(B=(O=r.current)==null?void 0:O.querySelector(".vuuList-scrollContainer"))!=null?B:null}},[r,L]),v=(0,Je.useCallback)((O,B)=>{if(P){if(Pr(z)){let[oe]=B;P(O,o.itemById(oe))}else if(xt(z)){let oe=B.map(se=>o.itemById(se));P(O,oe)}}},[o,P,z]),{highlightedIndex:F,containerProps:{onKeyDown:A,onMouseMove:_,...Z},setHighlightedIndex:U,...$}=en({containerRef:k,defaultHighlightedIndex:s,disableHighlightOnFocus:a,highlightedIndex:g,itemCount:o.data.length,label:m,onHighlight:D,onKeyboardNavigation:w,restoreLastFocus:K,selected:y.current,viewportItemCount:10}),G=Yr({collapsibleHeaders:t,highlightedIdx:F,collectionHook:o}),Y=(0,Je.useCallback)(O=>{U(-1),b==null||b(O)},[b,U]),q=tn({containerRef:r,defaultSelected:l,highlightedIdx:F,itemQuery:".vuuListItem",label:`${m}:useList`,onClick:f,onSelect:h,onSelectionChange:v,selected:N,selectionStrategy:z,selectionKeys:I,tabToSelect:C}),{handleDrop:le,onDropSettle:te}=Rs({dataHook:o,onDrop:S,onMoveListItem:T,selected:q.selected,setHighlightedIndex:U,setSelected:q.setSelected}),{setSelected:ie}=q;(0,Cs.useLayoutEffectSkipFirst)(()=>{Ze(y.current)&&ie([])},[N,o.data,ie]);let{onMouseDown:Q,isDragging:ue,isScrolling:de,...Ie}=vo({allowDragDrop:e,draggableClassName:"list-item",orientation:"vertical",containerRef:r,id:u,itemQuery:".vuuListItem",onDragStart:Y,onDrop:le,onDropSettle:te,viewportRange:M}),{onKeyDown:re}=on({disableTypeToSelect:d,highlightedIdx:F,highlightItemAtIndex:U,typeToNavigate:!0,items:o.data}),he=(0,Je.useCallback)(O=>{var B,oe,se;O.defaultPrevented||re==null||re(O),A(O),O.defaultPrevented||(oe=(B=q.listHandlers).onKeyDown)==null||oe.call(B,O),O.defaultPrevented||(se=G==null?void 0:G.onKeyDown)==null||se.call(G,O),O.defaultPrevented||x==null||x(O)},[G,A,x,q.listHandlers,re]),{isScrolling:We,scrollIntoView:Se}=rn({containerRef:k,contentRef:n,highlightedIdx:F,indexPositions:o.data,stickyHeaders:R}),V=We.current||de.current,j=(0,Je.useCallback)(O=>{if(!V&&!c&&!ue){_();let B=Jr(O.target);if(B!==-1&&B!==F){let oe=o.data[B];!oe||oe.disabled?U(-1):U(B)}}},[ue,V,c,U,_,F,o.data]),W=()=>{var O;return F===void 0||F===-1||i||(O=o.data[F])==null?void 0:O.id};y.current=q.selected;let X={"aria-activedescendant":W(),onBlur:Z.onBlur,onFocus:Z.onFocus,onKeyDown:he,onMouseDown:Q,onMouseDownCapture:Z.onMouseDownCapture,onMouseLeave:Z.onMouseLeave},ne=p||{onClick:q.listHandlers.onClick,onMouseMove:j};return{focusVisible:$.focusVisible,controlledHighlighting:$.controlledHighlighting,highlightedIndex:F,keyboardNavigation:$.keyboardNavigation,listHandlers:ne,listItemHeaderHandlers:G,listControlProps:X,scrollIntoView:Se,selected:q.selected,setHighlightedIndex:U,setIgnoreFocus:$.setIgnoreFocus,setSelected:q.setSelected,...Ie}};var Qe=require("react");var $a=(e,t,o=0)=>e===0?0:o===0?e*t:e-1*(t+o)+t,tr=({displayedItemCount:e,getItemHeight:t,height:o,itemCount:r,itemGapSize:n,itemHeight:s=36,size:l})=>{let[c,i]=(0,Qe.useState)(s),[,a]=(0,Qe.useState)({}),d=(0,Qe.useRef)(null),[g,u]=(0,Qe.useMemo)(()=>{let f=0,b=c!=null?c:s,S=$a(r,b,n);if(o!==void 0)return[S,void 0];let D=Math.min(e,r)||e;return typeof t=="function"?f+=Array(D).fill(0).reduce((x,T,H)=>x+t(H)+n,0)-n:f+=D*Number(b)+(D-1)*n,[S,f]},[e,t,o,r,n,s,c]),m=(0,Qe.useCallback)(({height:f})=>{typeof f=="number"&&i(f)},[]),p=(0,Qe.useCallback)(f=>{d.current=f,a({})},[]);return qe(d,Cr,m,!0),{computedListHeight:u,contentHeight:g,listClientHeight:l==null?void 0:l.height,listItemHeight:c,rowHeightProxyRef:p}};var Ns=require("@salt-ds/core"),et=require("react"),Ps=(e,t,o,r)=>{let n=Math.ceil(t/r),s=Math.floor(e/r),l=Math.ceil(s+n-1);return{atStart:s===0,atEnd:l===o-1,from:s,to:l}},or=({containerSize:e,itemCount:t,itemGapSize:o=0,itemSize:r,onViewportScroll:n})=>{let s=(0,et.useRef)(0),l=(0,et.useRef)(0),c=(0,et.useRef)(0),i=(0,et.useMemo)(()=>Ps(c.current,e,t,r+o),[e,t,r,o]),[a,d]=(0,et.useState)(i);return(0,Ns.useIsomorphicLayoutEffect)(()=>{d(i)},[i]),{onVerticalScroll:(0,et.useCallback)(u=>{let m=u.target.scrollTop;if(m!==c.current){c.current=m;let p=r+o,f=Ps(m,e,t,p);(f.from!==s.current||f.to!==l.current)&&(s.current=f.from,l.current=f.to,n==null||n(f.from,f.to),d(f))}},[r,o,e,t,n]),viewportRange:a}};var Oe=require("react/jsx-runtime"),Os=require("react"),Va="No data to display",dt="vuuList",Do=(0,Le.forwardRef)(function({ListItem:t=Eo,ListPlaceholder:o,allowDragDrop:r,children:n,className:s,collapsibleHeaders:l=!1,defaultHighlightedIndex:c,defaultSelected:i,disabled:a=!1,disableFocus:d=!1,disableTypeToSelect:g,displayedItemCount:u=10,emptyMessage:m,focusVisible:p,getItemHeight:f,getItemId:b,height:S,highlightedIndex:D,id:E,itemGapSize:x=0,itemHeight:T,itemTextHighlightPattern:H,itemToString:P=ve,listHandlers:K,maxHeight:L,maxWidth:N,minHeight:z,minWidth:I,onClick:R,onDragStart:C,onDrop:M,onMoveListItem:y,onSelect:w,onSelectionChange:h,onHighlight:k,restoreLastFocus:v,selected:F,selectionStrategy:A,checkable:_=A==="multiple",scrollingApiRef:Z,selectionKeys:U,showEmptyMessage:$=!1,source:G,style:Y,stickyHeaders:q,tabIndex:le=0,tabToSelect:te,...ie},Q){var kn,On;let ue=(0,nr.useId)(E),de=(0,Le.useRef)(null),Ie=(0,Le.useRef)(null),re=(0,Le.useRef)(null),[he,We]=(0,Le.useState)(),Se=(0,Le.useCallback)(Ve=>{We(Ve)},[]),V=tt({id:ue,label:"List",source:G,children:n,options:{collapsibleHeaders:l,getItemId:b,itemToString:P}}),{listClientHeight:j,computedListHeight:W,listItemHeight:X,rowHeightProxyRef:ne}=tr({displayedItemCount:u,getItemHeight:f,height:S,itemCount:V.data.length,itemGapSize:x,itemHeight:T,rootRef:de,size:he}),{onVerticalScroll:O,viewportRange:B}=or({containerSize:(On=(kn=j!=null?j:W)!=null?kn:he==null?void 0:he.height)!=null?On:0,itemCount:V.data.length,itemGapSize:x,itemSize:X}),{draggable:oe,draggedItemIndex:se,dropIndicator:fe,focusVisible:Ee,highlightedIndex:me,listControlProps:Me,listHandlers:je,listItemHeaderHandlers:Fe,scrollIntoView:bt,selected:Lo}=nt({allowDragDrop:r,collapsibleHeaders:l,collectionHook:V,containerRef:de,contentRef:re,defaultHighlightedIndex:c,defaultSelected:V.itemToCollectionItemId(i),disabled:a,disableTypeToSelect:g,highlightedIndex:D,id:ue,label:"List",listHandlers:K,onClick:R,onDragStart:C,onDrop:M,onMoveListItem:y,onSelect:w,onSelectionChange:h,onHighlight:k,restoreLastFocus:v,scrollContainerRef:Ie,selected:V.itemToCollectionItemId(F),selectionStrategy:A,selectionKeys:U,stickyHeaders:q,tabToSelect:te,viewportRange:B});Io({collectionHook:V,forwardedRef:Z,scrollableRef:de,scrollIntoView:bt});let Ro=p!=null?p:Ee,Rn=function(pe,Ce,Pe,Te){let It=(0,Os.createElement)(t,{...Fe,className:(0,rr.default)(`${dt}Header`,{focusVisible:l&&Ro===pe.value}),"aria-expanded":Te,"data-index":l?pe.value:void 0,"data-highlighted":pe.value===me||void 0,"data-sticky":q,"data-selectable":!1,id:Ce,itemHeight:Cn(pe.value),key:`header-${pe.value}`,label:Pe});return pe.value+=1,It},Cn=f===void 0?()=>T:f;function Si(Ve,pe,Ce){var No,An;let{disabled:Pe,value:Te,id:It,label:Co}=pe,Po=(0,Le.isValidElement)(Te),oo={className:(0,rr.default)((No=Te==null?void 0:Te.props)==null?void 0:No.className,{vuuHighlighted:Ce.value===me,vuuFocusVisible:Ro===Ce.value,["vuuDraggable-dragAway"]:se===Ce.value}),disabled:Pe||a,id:It,item:Po?void 0:(An=pe==null?void 0:pe.value)!=null?An:void 0,itemHeight:Cn(Ce.value),itemTextHighlightPattern:H,key:It,"data-index":Ce.value,label:Co,role:"option",selected:ao(Lo,pe),showCheckbox:_};Ve.push(Po?(0,Le.cloneElement)(Te,oo):(0,Oe.jsx)(t,{...oo})),Ce.value+=1}let Ei=function(pe,Ce,Pe){let{count:Te=0,id:It,expanded:Co,label:Po=""}=Ce[Pe.value],oo=Rn(Pe,It,Po,Co),No=Co!==!1?[oo].concat(Pn(Ce,Pe,Pe.value+Te)||[]):oo;pe.push((0,Oe.jsx)("div",{role:"group",children:No},It))},Pn=(Ve,pe={value:0},Ce=Ve.length)=>{let Pe=[];for(;pe.value<Ce;){let Te=Ve[pe.value];Te.header?Pe.push(Rn(pe,Te.id,Te.label,Te.expanded===!1)):Te.childNodes?Ei(Pe,Ve,pe):Si(Pe,Te,pe)}return Pe};function Ti(){return m||$?(0,Oe.jsx)("span",{className:`${dt}-empty-message`,children:m!=null?m:Va}):null}let Nn=V.data.length===0,yi=()=>{if(Nn)Ti();else{let Ve=V.data;return Pn(Ve)}},vi="auto",Di={"--list-borderWidth":"var(--vuuList-borderWidth, var(--salt-size-border, 0))","--list-item-gap":x?`${x}px`:void 0,"--computed-list-height":W===void 0?void 0:`${W}px`,minWidth:I,minHeight:z,maxWidth:N,maxHeight:L};return(0,Oe.jsxs)(nr.MeasuredContainer,{"aria-multiselectable":A==="multiple"||A==="extended"||A==="extended-multi-range"||void 0,...ie,...je,...Me,className:(0,rr.default)(dt,s,{[`${dt}-collapsible`]:l,[`${dt}-contentSized`]:W!==void 0,[`${dt}-empty`]:Nn,vuuFocusVisible:me===qo}),height:W!=null?W:S,id:`${ue}`,onResize:Se,ref:(0,ks.useForkRef)(de,Q),role:"listbox",onScroll:O,style:{...Y,...Di},tabIndex:a||d?void 0:le,children:[(0,Oe.jsx)(So,{ref:ne,height:T}),V.data.length===0&&o!==void 0?(0,Oe.jsx)(Oe.Fragment,{children:(0,Oe.jsx)(o,{})}):(0,Oe.jsx)("div",{className:`${dt}-viewport`,ref:Ie,children:(0,Oe.jsxs)("div",{className:`${dt}-scrollingContentContainer`,ref:re,style:{height:vi},children:[yi(),fe,oe]})})]})});var $t=require("@salt-ds/core");function As(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=As(e[t]))&&(r&&(r+=" "),r+=o);else for(t in e)e[t]&&(r&&(r+=" "),r+=t);return r}function bn(){for(var e,t,o=0,r="";o<arguments.length;)(e=arguments[o++])&&(t=As(e))&&(r&&(r+=" "),r+=t);return r}var wt=require("react");var Ks=require("react");var sr=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((n,s)=>{(s<t||s>=o)&&(this.free.push(n),this.keys.delete(s))});let r=o-t;this.keys.size+this.free.length>r&&(this.free.length=r-this.keys.size);for(let n=t;n<o;n++)if(!this.keys.has(n)){let s=this.next();this.keys.set(n,s)}}keyFor(t){return this.keys.get(t)}};var za=([e],[t])=>e-t,Fs=5,Bs=({data:e,listItemGapSize:t=0,listItemHeight:o,viewportRange:r})=>{let n=(0,Ks.useMemo)(()=>new sr(0,1),[]),s=o+t,l=Math.max(0,r.from-Fs),c=Math.min(e.length,r.to+Fs);return n.reset(l,c),e.slice(l,c).map((a,d)=>[n.keyFor(d+l),(d+l)*s,d+l+1,a]).sort(za)};var Ht=require("react/jsx-runtime"),_a="No data to display",lr=(0,$t.makePrefixer)("saltList"),Ua=(0,wt.memo)(Eo),Ga=(0,wt.forwardRef)(function({borderless:t,children:o,className:r,collapsibleHeaders:n=!1,defaultHighlightedIndex:s,defaultSelected:l,disabled:c=!1,disableFocus:i=!1,disableTypeToSelect:a,displayedItemCount:d=10,emptyMessage:g,getItemHeight:u,getItemId:m,height:p,highlightedIndex:f,id:b,itemGapSize:S=0,itemHeight:D,itemTextHighlightPattern:E,itemToString:x,maxHeight:T,maxWidth:H,minHeight:P,minWidth:K,onDragStart:L,onDrop:N,onSelect:z,onSelectionChange:I,onViewportScroll:R,onHighlight:C,restoreLastFocus:M,selected:y,selectionStrategy:w,scrollingApiRef:h,selectionKeys:k,showEmptyMessage:v=!1,source:F,style:A,stickyHeaders:_,tabToSelect:Z,width:U,...$},G){let Y=(0,$t.useIdMemo)(b),q=(0,wt.useRef)(null),le=(0,wt.useRef)(null),te=tt({id:Y,label:"List",source:F,children:o,options:{collapsibleHeaders:n,getItemId:m,itemToString:x}}),{contentHeight:ie,listItemHeight:Q,listHeight:ue}=tr({borderless:t,displayedItemCount:d,height:p,itemCount:te.data.length,itemGapSize:S,itemHeight:D,rootRef:q,rowHeightRef:le}),{focusVisible:de,highlightedIndex:Ie,listControlProps:re,listHandlers:he,scrollIntoView:We,selected:Se}=nt({collapsibleHeaders:n,collectionHook:te,containerRef:q,defaultHighlightedIndex:s,defaultSelected:te.itemToCollectionItemId(l),disabled:c,disableTypeToSelect:a,highlightedIndex:f,label:Y,onSelect:z,onSelectionChange:I,onHighlight:C,restoreLastFocus:M,selected:te.itemToCollectionItemId(y),selectionStrategy:w,selectionKeys:k,stickyHeaders:_,tabToSelect:Z}),{onVerticalScroll:V,viewportRange:j}=or({containerSize:typeof ue=="number"?ue:0,itemCount:te.data.length,itemGapSize:S,itemSize:Q});console.log({viewPortRange:j});let W=Bs({data:te.data,listItemGapSize:S,listItemHeight:Q,viewportRange:j});Io({collectionHook:te,forwardedRef:h,scrollableRef:q,scrollIntoView:We});function X(se,fe,Ee){let[me,Me,je,Fe]=fe,bt=je-1;se.push((0,Ht.jsx)(Ua,{"aria-setsize":te.data.length,"aria-posinset":je,className:bn(r,{saltHighlighted:bt===Ie,saltFocusVisible:de===bt}),"data-idx":bt,item:Fe,label:Fe.label,"data-offset":Me,role:"option",selected:ao(Se,Fe),id:Fe.id,translate3d:Me},me)),Ee.value+=1}function ne(se,fe={value:0},Ee=se.length){let me=[];for(;fe.value<Ee;){let Me=se[fe.value];X(me,Me,fe)}return me}function O(){return g||v?(0,Ht.jsx)("span",{className:lr("empty-message"),children:g!=null?g:_a}):null}let B=()=>{if(W.length)return ne(W);O()},oe={"--list-item-gap":S?`${S}px`:void 0,minWidth:K,minHeight:P,width:U!=null?U:"100%",height:p!=null?p:"100%",maxWidth:H!=null?H:U,maxHeight:T!=null?T:ue};return(0,Ht.jsx)("div",{...$,...he,...re,className:bn(lr(),r,lr("virtualized")),id:`${Y}`,ref:(0,$t.useForkRef)(q,G),role:"listbox",onScroll:V,style:{...A,...oe},tabIndex:c||i?void 0:0,children:(0,Ht.jsxs)("div",{className:lr("scrollingContentContainer"),style:{height:ie},children:[(0,Ht.jsx)(So,{ref:le}),B()]})})});var Vs=ge(require("classnames"));var zs=require("react/jsx-runtime"),$s="vuuRadioIcon",In=({checked:e=!1,...t})=>(0,zs.jsx)("span",{...t,className:(0,Vs.default)($s,{[`${$s}-checked`]:e})});var _s=require("@salt-ds/core"),Vt=require("react");var Us=({collectionHook:e,defaultHighlightedIndex:t,defaultIsOpen:o,defaultSelected:r,highlightedIndex:n,isOpen:s,itemToString:l=ve,listRef:c,onHighlight:i,onOpenChange:a,onSelectionChange:d,onSelect:g,selected:u,selectionStrategy:m})=>{let p=xt(m),[f,b]=(0,_s.useControlled)({controlled:s,default:o!=null?o:!1,name:"useDropdownList"}),S=(0,Vt.useCallback)((H,P)=>{console.log("useDropdown onSelectionChange",{selected:P}),p||(b(!1),a==null||a(!1)),(Array.isArray(P)||P)&&(d==null||d(null,P))},[p,a,d,b]),D=(0,Vt.useCallback)((H,P)=>{p||(b(!1),a==null||a(!1)),g==null||g(H,P)},[p,a,g,b]),E=nt({collectionHook:e,defaultHighlightedIndex:(t!=null?t:n===void 0)?0:void 0,defaultSelected:r,label:"DropDown",onSelectionChange:S,onSelect:D,containerRef:c,highlightedIndex:n,onHighlight:i,selected:u,selectionStrategy:m,tabToSelect:!p}),x=(0,Vt.useCallback)(H=>{b(H),a==null||a(H)},[a,b]),T=(0,Vt.useMemo)(()=>{if(Array.isArray(E.selected)){let H=E.selected.map(P=>e.itemById(P));if(H.length===0)return;if(H.length===1){let[P]=H;return P===null?void 0:l(P)}else return`${H.length} items selected`}},[e,l,E.selected]);return{isOpen:f,onOpenChange:x,triggerLabel:T,...E}};var zt=require("react/jsx-runtime"),Wa=(0,st.forwardRef)(function({"aria-label":t,children:o,defaultIsOpen:r,defaultSelected:n,id:s,isOpen:l,itemToString:c=ve,onOpenChange:i,onSelectionChange:a,onSelect:d,selected:g,selectionStrategy:u,source:m,triggerComponent:p,ListItem:f,ListProps:b,width:S=180,...D},E){let x=(0,Ws.useId)(s),T=(0,st.useRef)(null),H=(0,st.useRef)(null),P=(0,Gs.useForkRef)(T,E),K=tt({id:x,source:m,children:o,options:{itemToString:c}}),{highlightedIndex:L,triggerLabel:N,listHandlers:z,listControlProps:I,selected:R,...C}=Us({collectionHook:K,defaultHighlightedIndex:b==null?void 0:b.defaultHighlightedIndex,defaultIsOpen:r,defaultSelected:K.itemToCollectionItemId(n),highlightedIndex:b==null?void 0:b.highlightedIndex,isOpen:l,itemToString:c,listRef:H,onHighlight:b==null?void 0:b.onHighlight,onOpenChange:i,onSelectionChange:a,onSelect:d,selected:K.itemToCollectionItemId(g),selectionStrategy:u}),M=(0,st.useCallback)(w=>Array.isArray(w)?w.map(k=>K.itemById(k)):K.itemById(w),[K]),y=()=>{let w={"aria-activedescendant":C.isOpen?I==null?void 0:I["aria-activedescendant"]:void 0,"aria-label":t};if(p){let h=p.props;return(0,st.cloneElement)(p,io(h,{...C.isOpen?I:{},...w}))}else return(0,zt.jsx)(Gr,{label:N,...C.isOpen?I:{},...w})};return(0,zt.jsx)(ro,{collectionHook:K,children:(0,zt.jsxs)(St,{...D,id:x,isOpen:C.isOpen,onOpenChange:C.onOpenChange,placement:(b==null?void 0:b.width)===void 0?"below-full-width":"below",ref:P,width:S,children:[y(),(0,zt.jsx)(Do,{ListItem:f,itemToString:c,...b,highlightedIndex:L,listHandlers:z,onSelectionChange:a,onSelect:d,ref:H,selected:R===void 0?void 0:M(R),selectionStrategy:u})]})})});var hn=require("@salt-ds/core"),js=require("@vuu-ui/vuu-layout"),ce=require("react");var ja=["Enter"],qs=({allowFreeText:e,ariaLabel:t,collectionHook:o,defaultIsOpen:r,defaultSelected:n,defaultValue:s,onBlur:l,onFocus:c,onChange:i,onSelect:a,id:d,initialHighlightedIndex:g=-1,isOpen:u,itemCount:m,itemsToString:p,itemToString:f=ve,listRef:b,onOpenChange:S,onSelectionChange:D,onSetSelectedText:E,selected:x,selectionStrategy:T,value:H,InputProps:P={onBlur:l,onFocus:c,onChange:i,onSelect:a}})=>{let K=xt(T),{setFilterPattern:L}=o,N=(0,ce.useRef)(null),z=(0,ce.useRef)(K?[]:null),I=(0,ce.useRef)(!0),[R,C]=(0,hn.useControlled)({controlled:u,default:r!=null?r:!1,name:"useDropdownList"}),[M,y]=(0,hn.useControlled)({controlled:void 0,default:s!=null?s:H,name:"ComboBox",state:"value"}),[w,h]=(0,ce.useState)(!0),k=(0,ce.useCallback)(O=>{var B;Array.isArray(O)?console.log("TODO multi selection"):O==null&&((B=N.current)==null||B.call(N,-1))},[]),v=(0,ce.useCallback)((O,B=!0)=>{y(O),B&&L(O===""?void 0:O)},[L,y]),F=(0,ce.useCallback)(O=>{let B=e&&M!=null?M:"";return Array.isArray(O)?O.length===1?B=f(O[0]):O.length>1&&(B=(p==null?void 0:p(O))||""):O&&(B=f(O)),B!==M?(v(B,!K),E==null||E(B),!0):!1},[e,K,f,p,E,v,M]),A=(0,ce.useCallback)(()=>{let{current:O}=z;F(O)&&O&&(Array.isArray(O)||O)&&(D==null||D(null,O))},[D,F]),_=(0,ce.useCallback)(()=>{if(e){let O=M==null?void 0:M.trim(),{current:B}=z;if(O){if(m===0&&O)return K?D==null||D(null,[O]):D==null||D(null,O),z.current=null,!0;B&&!K&&B&&!Array.isArray(B)&&f(B)}}return!1},[e,M,m,K,D,f]),Z=(0,ce.useCallback)((O,B)=>{O&&K&&v("",!1),C(O),S==null||S(O),!O&&B!=="Escape"&&(_()||A())},[A,K,S,_,C,v]),U=(0,ce.useCallback)((O,B)=>{z.current=B,K||Z(!1,"select")},[Z,K]),$=(0,ce.useCallback)(()=>{h(!1)},[]),{focusVisible:G,setHighlightedIndex:Y,highlightedIndex:q,listControlProps:le,listHandlers:te,selected:ie}=nt({collectionHook:o,containerRef:b,defaultHighlightedIndex:g,defaultSelected:o.itemToCollectionItemId(n),disableAriaActiveDescendant:w,disableHighlightOnFocus:!0,disableTypeToSelect:!0,onKeyboardNavigation:$,onSelectionChange:U,selected:o.itemToCollectionItemId(x),selectionKeys:ja,selectionStrategy:T,tabToSelect:!K});N.current=Y;let{onClick:Q}=te,ue=(0,ce.useCallback)(O=>{var B;(B=document.getElementById(`${d}-input`))==null||B.focus(),Q==null||Q(O)},[d,Q]),de=(0,ce.useCallback)(O=>{let B=O.target.value;y(B),B&&B.trim().length?L(B):L(void 0),C(!0)},[L,C,y]),{onFocus:Ie=c}=P,{onFocus:re}=le,he=(0,ce.useCallback)(O=>{h(!1),re==null||re(O),Ie==null||Ie(O)},[Ie,re]),We=(0,ce.useCallback)(O=>{let B=O.relatedTarget;return(B==null?void 0:B.id)===`${d}-list`},[d]),{onBlur:Se=l}=P,{onBlur:V}=le,j=(0,ce.useCallback)(O=>{We(O)||(V==null||V(O),Se==null||Se(O),h(!0),I.current=!0)},[We,V,Se]),{onSelect:W}=P,X=(0,ce.useCallback)(O=>{I.current?I.current=!1:h(!0),W==null||W(O)},[W]);(0,js.useLayoutEffectSkipFirst)(()=>{Ze(ie)?k(ie):Y(g)},[k,m,g,ie,Y,C]);let ne={...P.inputProps,"aria-label":t,autoComplete:"off"};return{focusVisible:G,highlightedIndex:q,isOpen:R,onOpenChange:Z,inputProps:{...P,id:`${d}-input`,inputProps:ne,onChange:de,onSelect:X,role:"combobox",value:M},listControlProps:{...le,onBlur:j,onFocus:he},listHandlers:{...te,onClick:ue},selected:z.current}};var Zs=ge(require("classnames"));var Ys=require("react/jsx-runtime"),qa="vuuChevronIcon",Xs=e=>{let{direction:t,...o}=e;return(0,Ys.jsx)("span",{...o,className:(0,Zs.default)(qa,t)})};var Mt=require("react/jsx-runtime"),Za=(0,_t.forwardRef)(function({InputProps:t,ListProps:o,PopupProps:r,ListItem:n,"aria-label":s,allowFreeText:l,children:c,defaultIsOpen:i,defaultSelected:a,defaultValue:d,disabled:g,onBlur:u,onFocus:m,onChange:p,onSelect:f,onSetSelectedText:b,getFilterRegex:S,id:D,initialHighlightedIndex:E=-1,isOpen:x,itemToString:T=ve,itemsToString:H,onOpenChange:P,onSelectionChange:K,selected:L,selectionStrategy:N,source:z,value:I,width:R=180,...C},M){let y=(0,Js.useId)(D),w=(0,_t.useRef)(null),h=Q=>Array.isArray(Q)&&Q.length>0?Q[0]:void 0,v=((Q,ue)=>{let de=Q?h(Q):ue?h(ue):void 0;return de?T(de):""})(L,a),F=tt({id:y,source:z,children:c,options:{filterPattern:v,getFilterRegex:S,itemToString:T}}),{focusVisible:A,highlightedIndex:_,inputProps:{endAdornment:Z,...U},isOpen:$,listHandlers:G,listControlProps:Y,onOpenChange:q,selected:le}=qs({InputProps:t,allowFreeText:l,ariaLabel:s,collectionHook:F,defaultIsOpen:i,defaultSelected:a,defaultValue:d,disabled:g,initialHighlightedIndex:E,itemCount:F.data.length,label:C.title,listRef:w,onBlur:u,onFocus:m,onChange:p,onSelect:f,id:y,isOpen:x,itemToString:T,itemsToString:H,onOpenChange:P,onSelectionChange:K,onSetSelectedText:b,selected:L,selectionStrategy:N,value:v}),te=(0,_t.useCallback)(()=>{$?q(!1,"toggle"):q(!0)},[$,q]);return(0,Mt.jsx)(ro,{collectionHook:F,children:(0,Mt.jsxs)(St,{...C,PopupProps:r,id:y,isOpen:$,onOpenChange:q,openOnFocus:!0,ref:M,width:R,children:[(0,Mt.jsx)(Qs.Input,{...U,disabled:g,...Y,endAdornment:Z===null?null:(0,Mt.jsx)(Xs,{direction:$?"up":"down",onClick:te})}),(0,Mt.jsx)(Do,{...o,ListItem:n,defaultSelected:void 0,focusVisible:A,highlightedIndex:_,itemTextHighlightPattern:String(U.value)||void 0,id:`${y}-list`,listHandlers:G,onSelectionChange:K,ref:w,selected:le,selectionStrategy:N,tabIndex:-1})]})})});var el=require("@vuu-ui/vuu-utils"),Xa=e=>t=>Ya(e,t);function Ya(e,t){console.log(`apply rules to ${t}`);let o;for(let r of e){let n=(0,el.getEditRuleValidator)(r.name);if(n){let s=n(r,t);switch(s){case!0:break;case!1:o===void 0&&(o=!1);break;default:o===void 0||o===!1?o=s:o+=`::${s}`}}else throw Error(`editable-utils applyRules, no validator registered for rule '${r.name}'`)}return console.log(o),o}var Ue=require("react"),xn=e=>{let t=new Event("vuu-commit");e.dispatchEvent(t)},Ja=({clientSideEditValidationCheck:e,initialValue:t,onCommit:o})=>{let[r,n]=(0,Ue.useState)(),[s,l]=(0,Ue.useState)(t),c=(0,Ue.useRef)(t),i=(0,Ue.useRef)(!1),a=(0,Ue.useRef)(!1),d=(0,Ue.useCallback)(()=>{console.log("blur")},[]),g=(0,Ue.useCallback)(m=>{if(m.key==="Enter")if(m.stopPropagation(),i.current){a.current=!0;let p=e==null?void 0:e(s);p?n(p):(n(void 0),o(s)&&(i.current=!1,xn(m.target)))}else xn(m.target),a.current=!1;else m.key==="ArrowRight"||m.key==="ArrowLeft"||m.key==="ArrowUp"||m.key==="ArrowDown"?m.stopPropagation():m.key==="Escape"&&i.current&&(i.current=!1,n(void 0),l(c.current))},[e,o,s]),u=(0,Ue.useCallback)(m=>{let{value:p}=m.target;if(i.current=p!==c.current,l(p),console.log(`value changes to ${p} message ${r}`),a.current){let f=e==null?void 0:e(p);console.log({warningMessage:f}),f!==r&&f!==!1&&n(f)}},[e,r]);return{onBlur:d,onChange:u,onKeyDown:g,value:s,warningMessage:r}};var tl=ge(require("classnames")),Ge=require("react"),Ho=require("@salt-ds/core");var ar=require("react/jsx-runtime"),ir="vuuEditableLabel",Sn=(0,Ge.forwardRef)(function({className:t,defaultEditing:o,defaultValue:r,editing:n,onChange:s,onEnterEditMode:l,onExitEditMode:c,value:i,...a},d){let g=(0,Ge.useRef)(null),u=(0,Ge.useRef)(!1),[m,p]=(0,Ho.useControlled)({controlled:i,default:r!=null?r:"",name:"EditableLabel",state:"value"}),[f,b]=(0,Ho.useControlled)({controlled:n,default:o!=null?o:!1,name:"EditableLabel",state:"editing"}),S=(0,Ge.useCallback)(N=>{b(u.current=N)},[b]),D=(0,Ge.useRef)(m);(0,Ge.useLayoutEffect)(()=>{f&&g.current!==null&&(g.current.select(),g.current.focus())},[f,g]);let E=(0,Ge.useCallback)(()=>{S(!0),l&&l()},[l,S]),x=({cancelEdit:N=!1,allowDeactivation:z=!1}={})=>{S(!1);let I=D.current;I!==m&&(N?p(I):D.current=m),c&&c(I,m,z,N)},T=N=>{let{value:z}=N.target;p(z),s&&s(z)},H=()=>{E()},P=()=>{u.current&&x({allowDeactivation:!0})},K=N=>{f&&N.key==="Enter"?(N.stopPropagation(),x()):N.key==="ArrowRight"||N.key==="ArrowLeft"?N.stopPropagation():N.key==="Escape"&&x({cancelEdit:!0})},L=(0,tl.default)(ir,t,{[`${ir}-editing`]:f});return(0,ar.jsx)("div",{...a,className:L,onDoubleClick:H,"data-text":m,ref:d,children:f?(0,ar.jsx)(Ho.Input,{inputProps:{className:`${ir}-input`,spellCheck:!1},value:m,onBlur:P,onChange:T,onKeyDown:K,inputRef:g,style:{padding:0},textAlign:"left",variant:"secondary"}):(0,ar.jsx)("span",{className:`${ir}-label`,children:m})})});var rl=require("@salt-ds/core"),nl=ge(require("classnames")),sl=require("react");var En=require("react/jsx-runtime"),ol="vuuExpandoInput",Qa=(0,sl.forwardRef)(function({className:t,value:o,inputProps:r,...n},s){return(0,En.jsx)("div",{className:(0,nl.default)(ol,t),"data-text":o,children:(0,En.jsx)(rl.Input,{...n,inputProps:{...r,className:`${ol}-input`},ref:s,style:{padding:0},textAlign:"left",value:o,variant:"secondary"})})});var cr=require("react/jsx-runtime"),ec=e=>{let{onToggle:t,checked:o,label:r}=e;return(0,cr.jsxs)("div",{className:"vuuCheckbox",onClick:t,onKeyUp:n=>n.key===" "&&t(),children:[(0,cr.jsx)(ho,{tabIndex:0,checked:o}),r]})};var Ut=require("react/jsx-runtime"),tc=e=>{let{onClick:t,checked:o,label:r,groupName:n}=e;return(0,Ut.jsxs)("div",{className:"vuuRadioButton",onClick:t,children:[(0,Ut.jsxs)("div",{className:"radio",children:[(0,Ut.jsx)("input",{type:"radio",name:n}),(0,Ut.jsx)(In,{checked:o})]}),r]})};var al=require("@vuu-ui/vuu-layout"),cl=require("@vuu-ui/vuu-table"),ul=require("@salt-ds/core"),dr=require("react");var ll=require("@vuu-ui/vuu-utils");var ur=require("react/jsx-runtime"),oc="vuuSearchCell",rc=({column:e,columnMap:t,row:o})=>{let r=t[e.name],n=o[r];return(0,ur.jsxs)("div",{className:oc,tabIndex:-1,children:[(0,ur.jsx)("span",{"data-icon":"draggable"}),n]})};console.log("register SearchCell");(0,ll.registerComponent)("search-cell",rc,"cell-renderer",{serverDataType:"private"});var mt=require("react");var nc=(e,t)=>o=>e.map(({name:r})=>o[t[r]]).join(" "),il=({columnMap:e,columns:t,dataSource:o,defaultIsOpen:r,isOpen:n,itemToString:s=nc(t,e),onOpenChange:l,onSelect:c,searchColumns:i})=>{let[a,d]=(0,mt.useState)(""),[g,u]=co({controlled:n,default:r!=null?r:!1,name:"useDropdownList"}),m=(0,mt.useMemo)(()=>i.map(x=>`${x} starts "__VALUE__"`).join(" or "),[i]),p=(0,mt.useCallback)((x,T)=>{u(x),l==null||l(x,T)},[l,u]),f=(0,mt.useCallback)(x=>{let{value:T}=x.target;if(d(T),T&&T.trim().length){let H=m.replaceAll("__VALUE__",T);o.filter={filter:H}}else o.filter={filter:""};u(!0)},[m,o,u]),b=(0,mt.useCallback)(x=>{let T=s(x);d(T),u(!1),c(x),l==null||l(!1,"select")},[s,l,c,u]);return{controlProps:{},inputProps:{onChange:f},isOpen:g,onOpenChange:p,tableHandlers:{onSelect:b},value:a}};var Gt=require("react/jsx-runtime"),sc="vuuInstrumentPicker",lc=(0,dr.forwardRef)(function({TableProps:{dataSource:t,...o},className:r,columnMap:n,disabled:s,id:l,itemToString:c,onOpenChange:i,onSelect:a,schema:d,searchColumns:g,width:u,...m},p){let f=(0,al.useId)(l),{controlProps:b,inputProps:S,isOpen:D,onOpenChange:E,tableHandlers:x,value:T}=il({columnMap:n,columns:o.config.columns,dataSource:t,itemToString:c,onOpenChange:i,onSelect:a,searchColumns:g}),H=(0,dr.useMemo)(()=>(0,Gt.jsx)("span",{"data-icon":"chevron-down"}),[]),P={...o,config:{...o.config,showHighlightedRow:!0}};return(0,Gt.jsxs)(St,{...m,fullWidth:!0,id:f,isOpen:D,onOpenChange:E,openOnFocus:!0,placement:"below-full-width",ref:p,width:u,children:[(0,Gt.jsx)(ul.Input,{...S,disabled:s,...b,endAdornment:H,value:T}),(0,Gt.jsx)(cl.TableNext,{rowHeight:25,renderBufferSize:100,...P,...x,className:`${sc}-list`,height:200,dataSource:t,navigationStyle:"row",showColumnHeaders:!1})]})});var pl=require("@vuu-ui/vuu-layout"),fl=require("@vuu-ui/vuu-table"),Wt=require("@salt-ds/core"),gl=ge(require("classnames")),pr=require("react");var dl=require("@vuu-ui/vuu-utils");var mr=require("react/jsx-runtime"),ic="vuuSearchCell",ac=({column:e,columnMap:t,row:o})=>{let r=t[e.name],n=o[r];return(0,mr.jsxs)("div",{className:ic,tabIndex:-1,children:[(0,mr.jsx)("span",{"data-icon":"draggable"}),n]})};console.log("register SearchCell");(0,dl.registerComponent)("search-cell",ac,"cell-renderer",{serverDataType:"private"});var pt=require("react/jsx-runtime"),Tn="vuuInstrumentSearch",cc={columns:[{name:"bbg",hidden:!0},{name:"description",width:200,type:{name:"string",renderer:{name:"search-cell"}}}],rowSeparators:!0},uc=(0,pt.jsx)("span",{"data-icon":"search"}),bl=({TableProps:e,className:t,dataSource:o,searchColumn:r="description",...n})=>{let[s,l]=(0,pr.useState)({searchText:"",filter:""}),c=(0,pr.useCallback)(i=>{let{value:a}=i.target,d=`name starts "${a}"`;l({searchText:a,filter:d}),o.filter={filter:d,filterStruct:{op:"starts",column:r,value:a}}},[o,r]);return(0,pt.jsxs)("div",{...n,className:(0,gl.default)(Tn,t),children:[(0,pt.jsxs)(Wt.FormField,{className:`${Tn}-inputField`,children:[(0,pt.jsx)(Wt.FormFieldLabel,{}),(0,pt.jsx)(Wt.Input,{endAdornment:uc,value:s.searchText,onChange:c})]}),(0,pt.jsx)(fl.TableNext,{rowHeight:25,config:cc,renderBufferSize:100,...e,className:`${Tn}-list`,dataSource:o,showColumnHeaders:!1})]})},ml;(ml=pl.registerComponent)==null||ml("InstrumentSearch",bl,"view");var jt=require("@vuu-ui/vuu-utils"),qt=require("react"),Il=ge(require("classnames"));var fr=require("react/jsx-runtime"),dc="vuuPriceTicker",mc=e=>(0,jt.numericFormatter)({type:{name:"number",formatting:{decimals:e,zeroPad:!0}}}),pc=[void 0,void 0],hl=(0,qt.memo)(({className:e,decimals:t=2,price:o,showArrow:r,...n})=>{let s=(0,qt.useRef)(pc),[l,c]=s.current,i=(0,qt.useMemo)(()=>mc(t),[t]),a=(0,jt.isValidNumber)(l)?(0,jt.getMovingValueDirection)(o,c,l,t):"";return s.current=[o,a],(0,fr.jsxs)("div",{...n,className:(0,Il.default)(dc,e,a),children:[i(o),r?(0,fr.jsx)("span",{"data-icon":"price-arrow"}):null]})});hl.displayName="PriceTicker";var Xt=require("@vuu-ui/vuu-layout"),Nl=require("@salt-ds/core"),hr=ge(require("classnames")),Yt=ge(require("react"));var Cl=require("@vuu-ui/vuu-utils"),ye=require("react");var xl=e=>typeof e=="object"&&e!==null&&"tabIndex"in e&&typeof e.tabIndex=="number",Sl=e=>({label:"Close",location:"tab",action:"close-tab",options:e}),El=e=>({label:"Rename",location:"tab",action:"rename-tab",options:e});var Tl=require("@vuu-ui/vuu-utils"),yl=(e,t)=>{if(e){let o=e.querySelector(`[data-index]:has(${t})`);return(0,Tl.getElementDataIndex)(o)}return-1},gr=e=>yl(e,'[aria-selected="true"]'),yn=e=>yl(e,".vuuEditableLabel-editing");var Zt=require("@vuu-ui/vuu-utils"),lt=require("react"),vl=(e,t,o="horizontal")=>{let r=(0,lt.useRef)(!1),n=(0,lt.useCallback)(()=>{r.current=!0},[]),s=(0,lt.useCallback)(()=>{r.current=!1},[]),l=(0,lt.useCallback)(()=>{var i,a;(i=e.current)==null||i.style.setProperty("--tab-thumb-transition","none"),(a=e.current)==null||a.removeEventListener("transitionend",l)},[e]),c=(0,lt.useRef)(-1);return(0,lt.useMemo)(()=>{var d,g;let i=0,a=0;if(c.current!==-1){let u=(d=e.current)==null?void 0:d.querySelector(".vuuTab-selected"),m=(g=e.current)==null?void 0:g.querySelector(`[data-index="${t}"] .vuuTab`),{positionProp:p,sizeProp:f}=Zt.MEASURES[o];if(u&&m&&!r.current){let{[p]:b,[f]:S}=u.getBoundingClientRect(),{[p]:D}=m.getBoundingClientRect();if((0,Zt.isValidNumber)(b)&&(0,Zt.isValidNumber)(D)&&(0,Zt.isValidNumber)(S)){console.log({orientation:o,positionProp:p,oldPosition:b,newPosition:D}),i=b-D,a=S;let x=Math.abs(i/(o==="horizontal"?1100:700));requestAnimationFrame(()=>{var T,H,P,K;(T=e.current)==null||T.style.setProperty("--tab-thumb-offset","0px"),(H=e.current)==null||H.style.setProperty("--tab-thumb-size","100%"),(P=e.current)==null||P.style.setProperty("--tab-thumb-transition",`all ${x}s ease`),(K=e.current)==null||K.addEventListener("transitionend",l)})}}}return c.current=t,r.current?{containerStyle:{"--tab-thumb-offset":"0px","--tab-thumb-size":"100%"},resumeAnimation:s,suspendAnimation:n}:{containerStyle:{"--tab-thumb-offset":`${i}px`,"--tab-thumb-size":a?`${a}px`:void 0},resumeAnimation:s,suspendAnimation:n}},[t,e,o,l,s,n])};var Hl=require("@salt-ds/core"),Ir=require("@vuu-ui/vuu-utils"),xe=require("react"),we=require("@vuu-ui/vuu-utils");var wl={horizontal:{[we.Home]:"start",[we.End]:"end",[we.ArrowLeft]:"bwd",[we.ArrowRight]:"fwd"},vertical:{[we.Home]:"start",[we.End]:"end",[we.ArrowUp]:"bwd",[we.ArrowDown]:"fwd"}},fc=(e,t="horizontal")=>wl[t][e]!==void 0,gc=e=>e===we.ArrowDown;function Dl(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 bc=e=>e!==null&&!e.classList.contains("wrapped"),br=(e,t)=>e?e.querySelector(`[data-index="${t}"]`):null,Ml=({containerRef:e,defaultHighlightedIdx:t=-1,highlightedIdx:o,keyBoardActivation:r,orientation:n,selectedIndex:s=0})=>{let l=r==="manual",c=(0,xe.useRef)(!1),i=(0,xe.useRef)(-1),[a,d]=(0,xe.useState)(!1),[,g]=(0,xe.useState)({}),[u,m]=(0,Hl.useControlled)({controlled:o,default:t,name:"UseKeyboardNavigation"}),p=(0,xe.useCallback)(I=>{m(i.current=I)},[m]),f=(0,xe.useRef)(!1),b=(0,xe.useCallback)((I,R=!1,C,M=70)=>{p(I),C===!0&&!f.current&&(f.current=!0);let y=()=>{let w=br(e.current,I);if(w){let h=(0,Ir.getFocusableElement)(w);h==null||h.focus()}};R?y():setTimeout(y,M)},[e,p]),S=I=>{if(i.current===-1&&I.target.tabIndex!==-1){let R=yn(e.current);R!==-1?requestAnimationFrame(()=>{p(R)}):setTimeout(()=>{i.current===-1&&s!==null&&p(s)},200)}},D=(0,xe.useCallback)(()=>{var I,R;return(R=(I=e.current)==null?void 0:I.querySelectorAll("[data-index]").length)!=null?R:0},[e]),E=(0,xe.useCallback)((I="fwd",R)=>{let C=D(),y=Dl(C,I,typeof R=="number"?R:C),w=I==="start"?"fwd":I==="end"?"bwd":I;for(;(w==="fwd"&&y<C||w==="bwd"&&y>0)&&!bc(br(e.current,y));){let h=Dl(C,w,y);if(h===y)break;y=h}return y},[e,D]),x=(0,xe.useCallback)((I,R=!1)=>{let C=wl[n][I.key],M=E(C,u);M!==u?l&&b(M,!0):R&&g({})},[u,l,E,b,n]),T=(0,xe.useCallback)(()=>{let I=br(e.current,u);return I?I.querySelector(".vuuPopupMenu")!=null:!1},[e,u]),H=(0,xe.useCallback)(()=>{let I=br(e.current,u),R=I==null?void 0:I.querySelector(".vuuPopupMenu");return R&&(0,Ir.dispatchMouseEvent)(R,"click"),!1},[e,u]),P=(0,xe.useCallback)(I=>{D()>0&&fc(I.key,n)?(I.preventDefault(),f.current?x(I):(f.current=!0,x(I,!0))):gc(I.key)&&T()&&H()},[H,D,T,x,n]),K=(I,R)=>{p(R)},L=(0,xe.useCallback)(()=>{a||(d(!0),c.current?c.current=!1:f.current=!0)},[a]),N=(0,xe.useCallback)(()=>{a||(c.current=!0),f.current=!1},[a]);return{containerProps:{onBlur:I=>{let R=I.target.closest(".vuuTabstrip"),C=I.relatedTarget;R&&!(R!=null&&R.contains(C))&&(p(-1),d(!1))},onMouseDownCapture:N,onFocus:L,onMouseLeave:()=>{f.current=!0,p(-1),c.current=!1}},focusVisible:f.current?u:-1,focusIsWithinComponent:a,highlightedIdx:u,focusTab:b,onClick:K,onFocus:S,onKeyDown:P,setHighlightedIdx:p}};var Ll=require("@salt-ds/core"),wo=require("react"),Ic=["Enter"," "],hc=e=>e&&e.matches('[class*="vuuTab "]'),Rl=({defaultSelected:e,highlightedIdx:t,onSelectionChange:o,selected:r})=>{let[n,s,l]=(0,Ll.useControlled)({controlled:r,default:e!=null?e:0,name:"Tabstrip",state:"value"}),c=(0,wo.useCallback)(g=>Ic.includes(g.key),[]),i=(0,wo.useCallback)(g=>{s(g),o==null||o(g)},[o,s]),a=(0,wo.useCallback)(g=>{let u=g.target;c(g)&&t!==n&&hc(u)&&(g.stopPropagation(),g.preventDefault(),i(t))},[c,t,n,i]),d=(0,wo.useCallback)((g,u)=>{u!==n&&i(u)},[i,n]);return{activateTab:i,isControlled:l,onClick:d,onKeyDown:a,selected:n}};var xc=new Set(["Enter"," "]),Sc=e=>xc.has(e),Ec=(e,t)=>e?e.querySelector(`[data-index="${t}"]`):null,Pl=({activeTabIndex:e,allowDragDrop:t,animateSelectionThumb:o,containerRef:r,onActiveChange:n,onAddTab:s,onCloseTab:l,onExitEditMode:c,onMoveTab:i,orientation:a,keyBoardActivation:d})=>{let g=(0,ye.useRef)(e),{focusTab:u,highlightedIdx:m,onClick:p,onKeyDown:f,setHighlightedIdx:b,...S}=Ml({containerRef:r,keyBoardActivation:d,orientation:a,selectedIndex:g.current}),{activateTab:D,onClick:E,onKeyDown:x,selected:T}=Rl({highlightedIdx:m,onSelectionChange:n,selected:e});g.current=T;let{containerStyle:H,resumeAnimation:P,suspendAnimation:K}=vl(r,o?T:-1,a),L=(0,ye.useCallback)(($,G)=>{let{current:Y}=g;console.log(`useTabstrip handleDrop ${$} - ${G} ${Y}`),i==null||i($,G);let q=-1;G!==-1&&(Y===$?q=G:$>Y&&G<=Y?q=Y+1:$<Y&&G>=Y&&(q=Y-1),q!==-1&&(K(),D(q),requestAnimationFrame(P)),u(G,!1,!1,350))},[u,i,P,D,K]),{onMouseDown:N,...z}=vo({allowDragDrop:t,containerRef:r,draggableClassName:`tabstrip-${a}`,onDrop:L,orientation:"horizontal",itemQuery:".vuuOverflowContainer-item"}),I=(0,ye.useCallback)(($,G,Y,q)=>{console.log(`handleExitEditMode ${$} ${G} ${Y} ${q}`),c==null||c($,G,Y,q),Y||u(q,!1,!0)},[u,c]),R=(0,ye.useCallback)(($,G)=>{p($,G),E($,G)},[p,E]),C=(0,ye.useCallback)(($=m)=>{let G=Ec(r.current,$);if(G)return G.querySelector(".vuuEditableLabel")},[r,m]),M=(0,ye.useCallback)(($=m)=>{let G=C($);return G?G.classList.contains("vuuEditableLabel-editing"):!1},[C,m]),y=(0,ye.useCallback)(($=m)=>{let G=C($);G&&(0,Cl.dispatchMouseEvent)(G,"dblclick")},[C,m]),w=(0,ye.useCallback)($=>{f($),$.defaultPrevented||x($),!$.defaultPrevented&&Sc($.key)&&y()},[y,f,x]),h=(0,ye.useCallback)($=>{let G=gr(r.current),Y=G>$?G-1:G===$?0:G;return K(),l==null||l($,Y),setTimeout(()=>{P()},200),!0},[r,l,P,K]),k=(0,ye.useCallback)($=>(y($),!0),[y]),v=(0,ye.useCallback)($=>{if(xl($.options))switch($.menuId){case"close-tab":return h($.options.tabIndex);case"rename-tab":return k($.options.tabIndex);default:console.log(`tab menu action ${$.menuId}`)}return!1},[h,k]),F=(0,ye.useCallback)(()=>{M()?b(m):u(m)},[m,u,b,M]),A=(0,ye.useCallback)($=>{let G=parseInt($.index);isNaN(G)||D(G)},[D]),_={onFocus:S.onFocus,onKeyDown:w},Z=(0,ye.useCallback)(()=>{s==null||s(),requestAnimationFrame(()=>{let $=gr(r.current);$!==-1&&u($)})},[r,u,s]),U={onClick:R,onKeyDown:w,onExitEditMode:I,onMenuAction:v,onMenuClose:F,onMouseDown:N};return{activeTabIndex:T,containerStyle:H,focusVisible:S.focusVisible,containerProps:{...S.containerProps,onSwitchWrappedItemIntoView:A},navigationProps:_,onClickAddTab:Z,tabProps:U,...z}};var Jt=require("react/jsx-runtime"),kl=require("react"),vn="vuuTabstrip",Tc=({activeTabIndex:e,allowAddTab:t,allowCloseTab:o,allowDragDrop:r=!1,allowRenameTab:n=!1,animateSelectionThumb:s=!1,children:l,className:c,id:i,keyBoardActivation:a="manual",location:d,onActiveChange:g,onAddTab:u,onCloseTab:m,onExitEditMode:p,onMoveTab:f,orientation:b="horizontal",showTabMenuButton:S,style:D,tabClassName:E,...x})=>{let T=(0,Yt.useRef)(null),{activeTabIndex:H,focusVisible:P,containerStyle:K,draggedItemIndex:L,onClickAddTab:N,tabProps:z,...I}=Pl({activeTabIndex:e,allowDragDrop:r,animateSelectionThumb:s,containerRef:T,keyBoardActivation:a,onActiveChange:g,onAddTab:u,onCloseTab:m,onExitEditMode:p,onMoveTab:f,orientation:b}),R=(0,Xt.useId)(i),C=(0,hr.default)(vn,`${vn}-${b}`,c),M=D||K?{...D,...K}:void 0,y=(0,Yt.useMemo)(()=>(0,Xt.asReactElements)(l).map((w,h)=>{let{id:k=`${R}-tab-${h}`,className:v,closeable:F=o,editable:A=n,location:_,showMenuButton:Z=S}=w.props,U=h===H;return Yt.default.cloneElement(w,{...z,...I.navigationProps,className:(0,hr.default)(v,E),closeable:F,"data-overflow-priority":U?"1":void 0,dragging:L===h,editable:A,focusVisible:P===h,id:k,index:h,key:h,location:(0,hr.default)(d,_),selected:U,showMenuButton:Z,tabIndex:U?0:-1})}).concat(t?(0,kl.createElement)(Nl.Button,{...I.navigationProps,"aria-label":"Create Tab",className:`${vn}-addTabButton`,"data-icon":"add","data-overflow-priority":"1",key:"addButton",onClick:N,variant:"secondary",tabIndex:-1}):[]),[l,t,I.navigationProps,N,R,o,n,S,H,z,E,L,P,d]);return(0,Jt.jsxs)(Jt.Fragment,{children:[(0,Jt.jsx)(Xt.OverflowContainer,{...x,...I.containerProps,className:C,height:28,id:R,orientation:b,overflowIcon:"more-horiz",ref:T,style:M,children:y}),I.draggable]})};var Vl=require("@salt-ds/core"),zl=ge(require("classnames")),Ct=require("react");var Ol=require("@vuu-ui/vuu-popups"),Al=require("react"),Fl=ge(require("classnames"));var Bl=require("react/jsx-runtime"),yc="vuuTabMenu",Kl=({allowClose:e,allowRename:t,controlledComponentId:o,location:r,onMenuAction:n,onMenuClose:s,index:l})=>{let[c,i]=(0,Al.useMemo)(()=>[(a,d)=>{let g=[];return t&&g.push(El(d)),e&&g.push(Sl(d)),g},{controlledComponentId:o,tabIndex:l}],[e,t,o,l]);return(0,Bl.jsx)(Ol.PopupMenu,{className:yc,menuBuilder:c,menuActionHandler:n,menuLocation:(0,Fl.default)("tab",r),menuOptions:i,onMenuClose:s,tabIndex:-1})};var Rt=require("react/jsx-runtime"),Lt="vuuTab",$l=()=>{},vc=(0,Ct.forwardRef)(function({ariaControls:t,children:o,className:r,closeable:n=!1,dragging:s,editable:l=!1,editing:c,focusVisible:i,index:a=-1,label:d,location:g,onClick:u,onClose:m,onEnterEditMode:p=$l,onExitEditMode:f=$l,onFocus:b,onKeyUp:S,onMenuAction:D,onMenuClose:E,orientation:x,selected:T,showMenuButton:H=n||l||!!g,tabIndex:P,...K},L){if(H&&typeof D!="function")throw Error("Tab onMenuAction must be provided if showMenuButton is set");let N=(0,Ct.useRef)(null),z=(0,Ct.useRef)(null),I=(0,Vl.useForkRef)(L,N),R=(0,Ct.useCallback)(h=>{c||(h.preventDefault(),u==null||u(h,a))},[c,a,u]),C=(h="",k="",v=!0)=>f(h,k,v,a),M=h=>{switch(h.key){case"Backspace":case"Delete":n&&(h.stopPropagation(),m&&m(a));break;default:S&&S(h,a)}},y=()=>l?(0,Rt.jsx)(Sn,{editing:c,defaultValue:d,onEnterEditMode:p,onExitEditMode:C,ref:z},d):d,w=h=>{if(z.current){let v=z.current.querySelector(".vuuEditableLabel-input");v==null||v.focus()}b==null||b(h)};return(0,Rt.jsxs)("div",{...K,"aria-controls":t,"aria-selected":T,className:(0,zl.default)(Lt,r,{[`${Lt}-closeable`]:n,"vuuDraggable-dragAway":s,[`${Lt}-editing`]:c,[`${Lt}-selected`]:T||void 0,[`${Lt}-vertical`]:x==="vertical",vuuFocusVisible:i}),onClick:R,onFocus:w,onKeyUp:M,ref:I,role:"tab",tabIndex:P,children:[(0,Rt.jsx)("div",{className:`${Lt}-main`,children:(0,Rt.jsx)("span",{className:`${Lt}-text`,"data-text":l?void 0:d,children:o!=null?o:y()})}),H?(0,Rt.jsx)(Kl,{allowClose:n,allowRename:l,controlledComponentId:t,location:g,onMenuAction:D,onMenuClose:E,index:a}):null]})});var Dr=require("@salt-ds/core"),vr=ge(require("classnames")),Hr=require("react");function Dc(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 Dn=e=>e.closest("[data-idx],[aria-posinset]");var _l=e=>Dc(Dn(e));var Qt=require("react"),Hc=new Set(["/","-","."]),wc=e=>Hc.has(e),Ul=(e,t)=>t.startsWith(e)&&wc(t[e.length]),Hn=(e,t="root",{collapsibleHeaders:o=void 0,defaultExpanded:r=!1,revealSelected:n=!1}={})=>{let s=(u,m,p)=>{if(u.childNodes)return u.childNodes.length;if(u.header){let f=p+1,b=0;for(;f<m.length&&!m[f].header;)b++,f++;return b}else return 0},l=(0,Qt.useCallback)(u=>Array.isArray(n)?n.some(m=>Ul(u,m)):r,[r,n]),c=(0,Qt.useCallback)((u,m,p=1,f="",b=[],S=[])=>{let D=0;return u.forEach((E,x,T)=>{var C;let H=E.header&&o,P=E.childNodes&&o===!1,K=!E.childNodes||E.childNodes.length===0,L=P||K&&!H,N=f?`${f}.${x}`:`${x}`,z=(C=E.id)!=null?C:`${t}-${N}`,I=L?void 0:l(z),R={...E,childNodes:void 0,id:z,count:!P&&I===void 0?0:s(E,T,x),expanded:I,index:m.index,level:p};if(b.push(R),S.push(u[x]),D+=1,m.index+=1,E.childNodes){let[M,y]=c(E.childNodes,m,p+1,N,[],S);R.childNodes=y,(I===!0||P)&&(D+=M)}}),[D,b,S]},[o,t,l]),[i,a,d]=(0,Qt.useMemo)(()=>c(e,{index:0}),[c,e]),g=(0,Qt.useCallback)((u,m=a)=>{let p=m.find(f=>{var b;return f.id===u||((b=f==null?void 0:f.childNodes)==null?void 0:b.length)&&Ul(f.id,u)});if((p==null?void 0:p.id)===u)return d[p.index];if(p)return g(u,p.childNodes)},[d,a]);return[i,a,g]};var ft=require("react"),jl=require("@salt-ds/core"),Gl="single",Mc="checkbox",Lc="multi",Rc="extended",Cc=["Enter"," "],Wl={},Pc=e=>e.expanded!==void 0,ql=e=>e&&e!=="none",Zl=({defaultSelected:e,highlightedIdx:t,treeNodes:o,onChange:r,selected:n,selection:s=Gl,selectionKeys:l=Cc})=>{let c=s===Gl,i=s===Lc||s.startsWith(Mc),a=s===Rc,d=(0,ft.useRef)(-1),g=(0,ft.useCallback)(x=>l.includes(x.key),[l]),[u,m]=(0,jl.useControlled)({controlled:n,default:e!=null?e:[],name:"selected"}),p=(0,ft.useCallback)((x,T,H,P,K=!1)=>{let{current:L}=d,N=u==null?void 0:u.includes(H),I=c||a&&!K&&(!P||L===-1),R=i||a&&K&&!P,C=[];if(I&&N)C=[];else if(I)C=[H];else if(R&&N)C=u.filter(M=>M!==H);else if(R)C=u.concat(H);else if(a){let[M,y]=T>L?[L,T]:[T,L];C=u.slice();for(let w=M;w<=y;w++){let{id:h}=o[w];u.includes(h)||C.push(h)}}m(C),r&&r(x,C)},[a,o,i,r,u,m,c]),f=(0,ft.useCallback)(x=>{if(~t&&g(x)){x.preventDefault();let T=o[t];p(x,t,T.id,!1,x.ctrlKey||x.metaKey),a&&(d.current=t)}},[a,t,o,g,p]),b=(0,ft.useCallback)((x,T)=>{if(a&&x.shiftKey){let H=o[T];p(x,T,H.id,!0)}},[a,o,p]),S=s==="none"?Wl:{onKeyDown:f,onKeyboardNavigation:b},D=(0,ft.useCallback)(x=>{if(t!==-1){let T=o[t];Pc(T)||(x.preventDefault(),x.stopPropagation(),p(x,t,T.id,x.shiftKey,x.ctrlKey||x.metaKey),a&&(d.current=t))}},[a,t,o,p]);return{listHandlers:S,listItemHandlers:s==="none"?Wl:{onClick:D},selected:u,setSelected:m}};var Re=require("react");var Nc=["height","scrollHeight"],Xl=(e,t,o=!1)=>{let r=(0,Re.useRef)(0),n=(0,Re.useRef)(!1),s=(0,Re.useRef)(0),l=(0,Re.useRef)(0),c=(0,Re.useCallback)(d=>{let g=d.ariaExpanded?d.firstChild:d,u=o?30:0,m=g.offsetTop,p=g.offsetHeight,f=r.current+u,b=f+s.current-u;(m+p>b||m<f)&&(r.current=m+p>b?r.current+(m+p)-b:m-u,n.current=!0,e.current&&(e.current.scrollTop=r.current),setTimeout(()=>{n.current=!1}))},[e,o]),i=(0,Re.useCallback)(d=>{r.current=d.target.scrollTop},[]);(0,Re.useEffect)(()=>{let{current:d}=e;return d&&d.addEventListener("scroll",i),()=>{d&&d.removeEventListener("scroll",i)}},[e,i]),(0,Re.useLayoutEffect)(()=>{if(t!==-1&&l.current>s.current&&e.current){let d=e.current.querySelector(`
4
4
  [data-idx='${t}'],
5
5
  [aria-posinset='${t+1}']
6
- `);d===null?console.log("[useViewportTracking], is this virtualised ? we're going to have to know rowHeight"):c(d)}},[t,e,c]),(0,Re.useEffect)(()=>{},[o]);let l=(0,Re.useCallback)(({height:d,scrollHeight:f})=>{n.current=d,a.current=f},[]);return qe(e,Pc,l,!0),s};var Lo=require("react");var $e=require("react");var ql=({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)},Zl=e=>e.childNodes!==void 0;var wn=e=>e.header===!0,Nc=new Set([".","/"]),Xl=(e,t)=>t.startsWith(e.id)?Nc.has(t.charAt(e.id.length)):!1,Ct=(e,t)=>{for(let o of e){if(o.id===t)return o;if(Xl(o,t))return Ct(o.childNodes,t)}},hr=(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},xr=(e,t,o)=>{let r;return e.map(n=>n.id===t?{...n,...o}:Xl(n,t)?(r=xr(n.childNodes,t,o),{...n,childNodes:r}):n)};var ri=require("@salt-ds/core");function kc(e,...t){let o=new Set(e);for(let r of t)for(let s of r)o.add(s);return o}var Mn="ArrowUp",Yl="ArrowDown",eo="ArrowLeft";var Jl="ArrowRight",Sr="Enter";var Oc="Delete",Ac=new Set([Sr,Oc]),Fc=new Set(["Tab"]),Kc=new Set(["ArrowRight","ArrowLeft"]),Ql=new Set(["Home","End","ArrowDown","ArrowUp"]),ei=new Set(["Home","End","ArrowRight","ArrowLeft"]),Bc=new Set(["F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12"]),Hh=kc(Ac,ei,Ql,Kc,Bc,Fc);var ti=({key:e},t="vertical")=>(t==="vertical"?Ql:ei).has(e);function oi(e,t,o){return t===Mn||t===eo?o>0?o-1:o:o===null?0:o===e-1?o:o+1}var $c=e=>!e.header&&!e.childNodes,Vc=e=>$c(e)||e.expanded!==void 0,ni=({defaultHighlightedIdx:e=-1,highlightedIdx:t,treeNodes:o,onHighlight:r,onKeyboardNavigation:s,selected:n=[]})=>{let{bwd:a,fwd:c}=(0,$e.useMemo)(()=>({bwd:Mn,fwd:Yl}),[]),[i,l,d]=(0,ri.useControlled)({controlled:t,default:e,name:"highlightedIdx"}),f=(0,$e.useCallback)(I=>{r==null||r(I),l(I)},[r,l]),m=(0,$e.useCallback)((I=c,w=I===c?-1:o.length)=>{let D=oi(o.length,I,w);for(;D!==-1&&(I===c&&D<o.length||I===a&&D>0)&&!Vc(o[D]);)D=oi(o.length,I,D);return D},[a,c,o]),u=(0,$e.useRef)(!0),p=(0,$e.useRef)(!1),g=I=>p.current=I,b=(0,$e.useCallback)(()=>{if(p.current)p.current=!1;else if(n.length>0){let I=Ct(o,n[0]);if(I){let w=hr(o,I);f(w)}}else f(m())},[o,m,n,f]),S=(0,$e.useCallback)(I=>{let w=m(I.key,i);w!==i&&(f(w),s==null||s(I,w))},[i,m,s,f]),v=(0,$e.useCallback)(I=>{o.length>0&&ti(I,"vertical")&&(I.preventDefault(),I.stopPropagation(),u.current=!0,S(I))},[o,S]),T=(0,$e.useMemo)(()=>({onBlur:()=>{f(-1)},onFocus:b,onKeyDown:v,onMouseDownCapture:()=>{u.current=!1,g(!0)},onMouseMove:()=>{u.current&&(u.current=!1)},onMouseLeave:()=>{u.current=!0,g(!1),f(-1)}}),[b,v,f]);return{focusVisible:u.current?i:-1,controlledHighlighting:d,highlightedIdx:i,hiliteItemAtIndex:f,keyBoardNavigation:u,listProps:T,setIgnoreFocus:g}};var to=require("react");var Tr=(e,t=[],o={value:0})=>{let r=!1;for(let s of e)r&&!wn(s)||(t[o.value]=s,o.value+=1,r=!1,wn(s)&&s.expanded===!1?r=!0:Zl(s)&&Er(s)&&Tr(s.childNodes,t,o));return t},si=e=>{let t=(0,to.useRef)(e),o=(0,to.useRef)(e),r=(0,to.useRef)(Tr(e)),[,s]=(0,to.useState)({});e!==t.current&&(t.current=e,o.current=e,r.current=Tr(e));let n=a=>{o.current=a,r.current=Tr(a),s({})};return{data:o.current,indexPositions:r.current,setData:n}};var it=require("react");var zc={},_c=e=>e&&e.hasAttribute("aria-expanded"),li=({collapsibleHeaders:e,highlightedIdx:t,treeNodes:o,setVisibleData:r,source:s})=>{let n=(0,it.useRef)(s),a=(0,it.useRef)(n.current),c=(0,it.useCallback)(p=>{r(a.current=p)},[r]),i=(0,it.useCallback)((p,{id:g})=>xr(p,g,{expanded:!0}),[]),l=(0,it.useCallback)((p,{id:g})=>xr(p,g,{expanded:!1}),[]),d=(0,it.useCallback)(p=>{if(p.key===Jl||p.key===Sr){let g=o[t];g&&g.expanded===!1&&(p.preventDefault(),c(i(a.current,g)))}if(p.key===eo||p.key===Sr){let g=o[t];g&&g.expanded&&(p.preventDefault(),c(l(a.current,g)))}},[l,i,t,o,c]),f=e?{onKeyDown:d}:zc,u={onClick:(0,it.useCallback)(p=>{let g=Dn(p.target);if(_c(g)){p.stopPropagation(),p.preventDefault();let b=Ct(s,g.id);(b==null?void 0:b.expanded)===!1?c(i(s,b)):(b==null?void 0:b.expanded)===!0&&c(l(s,b))}},[l,i,c,s])};return{listHandlers:f,listItemHandlers:u}};var ii=require("react");var ai=({highlightedIdx:e,hiliteItemAtIndex:t,indexPositions:o,source:r})=>({listHandlers:{onKeyDown:(0,ii.useCallback)(a=>{if(a.key===eo){let c=o[e],i=ql(c);if(i){a.preventDefault();let l=Ct(r,i);if(l){let d=hr(o,l);d!==void 0&&t(d)}}}},[e,t,o,r])}});var Uc=[],ci=({defaultSelected:e,sourceWithIds:t,onChange:o,onHighlight:r,selected:s,selection:n})=>{let a=(0,Lo.useRef)(Uc),c=si(t),i=(T,I)=>{var w,D;(D=(w=m.listHandlers).onKeyboardNavigation)==null||D.call(w,T,I)},{highlightedIdx:l,...d}=ni({treeNodes:c.indexPositions,onHighlight:r,onKeyboardNavigation:i,selected:a.current}),f=li({collapsibleHeaders:!0,highlightedIdx:l,treeNodes:c.indexPositions,setVisibleData:c.setData,source:c.data}),m=Wl({defaultSelected:e,highlightedIdx:l,treeNodes:c.indexPositions,onChange:o,selected:s,selection:n}),u=ai({source:c.data,highlightedIdx:l,hiliteItemAtIndex:d.hiliteItemAtIndex,indexPositions:c.indexPositions}),p=(0,Lo.useCallback)(T=>{var I,w,D;(I=f.listItemHandlers)==null||I.onClick(T),T.defaultPrevented||(D=(w=m.listItemHandlers)==null?void 0:w.onClick)==null||D.call(w,T)},[f,m]),g=(0,Lo.useCallback)(T=>{var I,w,D,k,O,V,M,L;(w=(I=d.listProps).onKeyDown)==null||w.call(I,T),T.defaultPrevented||(k=(D=m.listHandlers).onKeyDown)==null||k.call(D,T),T.defaultPrevented||(V=(O=f.listHandlers).onKeyDown)==null||V.call(O,T),T.defaultPrevented||(L=(M=u.listHandlers).onKeyDown)==null||L.call(M,T)},[f.listHandlers,d.listProps,m.listHandlers,u.listHandlers]),b=()=>{var T;return l===void 0||l===-1||(T=c.indexPositions[l])==null?void 0:T.id};a.current=m.selected;let S={"aria-activedescendant":b(),onBlur:d.listProps.onBlur,onFocus:d.listProps.onFocus,onKeyDown:g,onMouseDownCapture:d.listProps.onMouseDownCapture,onMouseLeave:d.listProps.onMouseLeave,onMouseMove:d.listProps.onMouseMove},v={onClick:p};return{focusVisible:d.focusVisible,highlightedIdx:l,hiliteItemAtIndex:d.hiliteItemAtIndex,listProps:S,listItemHandlers:v,selected:m.selected,visibleData:c.data}};var Ae=require("react/jsx-runtime"),mi=require("react"),gt="vuuTree",Er=e=>e.expanded===!0,Ln=({children:e,idx:t,...o})=>(0,Ae.jsx)("li",{...o,children:e}),ui=(0,Dr.forwardRef)(function({allowDragDrop:t,className:o,defaultSelected:r,groupSelection:s="none",id:n,onHighlight:a,onSelectionChange:c,revealSelected:i,selected:l,selection:d="single",source:f,...m},u){var H;let p=(0,vr.useIdMemo)(n),g=(0,Dr.useRef)(null),[,b,S]=Hn(f,p,{revealSelected:i?(H=l!=null?l:r)!=null?H:!1:void 0}),v=(y,x)=>{if(c){let N=x.map(E=>S(E)).filter(E=>E!==void 0);c(N)}},{focusVisible:T,highlightedIdx:I,hiliteItemAtIndex:w,listProps:D,listItemHandlers:k,selected:O,visibleData:V}=ci({defaultSelected:r,groupSelection:s,onChange:v,onHighlight:a,selected:l,selection:d,sourceWithIds:b});jl(g,I);let L={...{onMouseEnter:y=>{let x=y.target,N=$l(x);w(N)}},...k,role:"treeitem"},h=Gl(s);function P(y,x,N){y.push((0,Ae.jsxs)(Ln,{...L,...Gc(x,N,I,O,T),children:[x.icon?(0,Ae.jsx)("span",{className:`${gt}Node-icon`,"data-icon":x.icon}):null,(0,Ae.jsx)("span",{children:x.label})]})),N.value+=1}function R(y,x,N,E,F){let{value:K}=N;N.value+=1,y.push((0,mi.createElement)(Ln,{...k,"aria-expanded":x.expanded,"aria-level":x.level,"aria-selected":O.includes(E)||void 0,className:(0,yr.default)(`${gt}Node`,{focusVisible:T===K,[`${gt}Node-toggle`]:!h}),"data-idx":K,"data-highlighted":K===I||void 0,"data-selectable":!0,id:E,key:`header-${K}`},h?(0,Ae.jsxs)("div",{className:`${gt}Node-label`,children:[(0,Ae.jsx)("span",{className:`${gt}Node-toggle`}),F]}):(0,Ae.jsxs)("div",{className:`${gt}Node-label`,children:[x.icon?(0,Ae.jsx)("span",{className:`${gt}Node-icon`,"data-icon":x.icon}):null,(0,Ae.jsx)("span",{children:F})]}),(0,Ae.jsx)("ul",{role:"group",children:Er(x)?C(x.childNodes,N):""})))}function C(y,x={value:0}){if((y==null?void 0:y.length)>0){let N=[];for(let E of y)E.childNodes?R(N,E,x,E.id,E.label):P(N,E,x);return N}}return(0,Ae.jsx)("ul",{...m,...D,className:(0,yr.default)(gt,o),id:`Tree-${p}`,ref:(0,vr.useForkRef)(g,u),role:"tree",tabIndex:0,children:C(V)})}),Gc=(e,t,o,r,s,n)=>({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:(0,yr.default)("vuuTreeNode",n,{focusVisible:s===t.value})});ui.displayName="Tree";var di=ui;var pi=require("@vuu-ui/vuu-utils"),fi=require("@salt-ds/core"),gi=ge(require("classnames")),Hr=require("react"),bi=require("react/jsx-runtime"),Wc="vuuInput",jc=({className:e,onCommit:t,onKeyDown:o,type:r,...s})=>{let n=(0,Hr.useCallback)((i,l)=>{if(console.log(`commit value ${l}`),r==="number"){let d=parseFloat(l);if((0,pi.isValidNumber)(d))t(i,d);else throw Error("Invalid value")}else r==="boolean"?t(i,!!l):t(i,l)},[t,r]),a=(0,Hr.useCallback)(i=>{if(i.key==="Enter"){i.preventDefault(),i.stopPropagation();let{value:l}=i.target;n(i,l)}o==null||o(i)},[n,o]),c=(0,Hr.useCallback)(i=>{let{value:l}=i.target;n(i,l)},[n]);return(0,bi.jsx)(fi.Input,{...s,className:(0,gi.default)(Wc,e),onBlur:c,onKeyDown:a})};
6
+ `);d===null?console.log("[useViewportTracking], is this virtualised ? we're going to have to know rowHeight"):c(d)}},[t,e,c]),(0,Re.useEffect)(()=>{},[o]);let a=(0,Re.useCallback)(({height:d,scrollHeight:g})=>{s.current=d,l.current=g},[]);return qe(e,Nc,a,!0),n};var Mo=require("react");var $e=require("react");var Yl=({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)},Jl=e=>e.childNodes!==void 0;var wn=e=>e.header===!0,kc=new Set([".","/"]),Ql=(e,t)=>t.startsWith(e.id)?kc.has(t.charAt(e.id.length)):!1,Pt=(e,t)=>{for(let o of e){if(o.id===t)return o;if(Ql(o,t))return Pt(o.childNodes,t)}},xr=(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},Sr=(e,t,o)=>{let r;return e.map(s=>s.id===t?{...s,...o}:Ql(s,t)?(r=Sr(s.childNodes,t,o),{...s,childNodes:r}):s)};var li=require("@salt-ds/core");function Oc(e,...t){let o=new Set(e);for(let r of t)for(let n of r)o.add(n);return o}var Mn="ArrowUp",ei="ArrowDown",eo="ArrowLeft";var ti="ArrowRight",Er="Enter";var Ac="Delete",Fc=new Set([Er,Ac]),Kc=new Set(["Tab"]),Bc=new Set(["ArrowRight","ArrowLeft"]),oi=new Set(["Home","End","ArrowDown","ArrowUp"]),ri=new Set(["Home","End","ArrowRight","ArrowLeft"]),$c=new Set(["F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12"]),Hh=Oc(Fc,ri,oi,Bc,$c,Kc);var ni=({key:e},t="vertical")=>(t==="vertical"?oi:ri).has(e);function si(e,t,o){return t===Mn||t===eo?o>0?o-1:o:o===null?0:o===e-1?o:o+1}var Vc=e=>!e.header&&!e.childNodes,zc=e=>Vc(e)||e.expanded!==void 0,ii=({defaultHighlightedIdx:e=-1,highlightedIdx:t,treeNodes:o,onHighlight:r,onKeyboardNavigation:n,selected:s=[]})=>{let{bwd:l,fwd:c}=(0,$e.useMemo)(()=>({bwd:Mn,fwd:ei}),[]),[i,a,d]=(0,li.useControlled)({controlled:t,default:e,name:"highlightedIdx"}),g=(0,$e.useCallback)(x=>{r==null||r(x),a(x)},[r,a]),u=(0,$e.useCallback)((x=c,T=x===c?-1:o.length)=>{let H=si(o.length,x,T);for(;H!==-1&&(x===c&&H<o.length||x===l&&H>0)&&!zc(o[H]);)H=si(o.length,x,H);return H},[l,c,o]),m=(0,$e.useRef)(!0),p=(0,$e.useRef)(!1),f=x=>p.current=x,b=(0,$e.useCallback)(()=>{if(p.current)p.current=!1;else if(s.length>0){let x=Pt(o,s[0]);if(x){let T=xr(o,x);g(T)}}else g(u())},[o,u,s,g]),S=(0,$e.useCallback)(x=>{let T=u(x.key,i);T!==i&&(g(T),n==null||n(x,T))},[i,u,n,g]),D=(0,$e.useCallback)(x=>{o.length>0&&ni(x,"vertical")&&(x.preventDefault(),x.stopPropagation(),m.current=!0,S(x))},[o,S]),E=(0,$e.useMemo)(()=>({onBlur:()=>{g(-1)},onFocus:b,onKeyDown:D,onMouseDownCapture:()=>{m.current=!1,f(!0)},onMouseMove:()=>{m.current&&(m.current=!1)},onMouseLeave:()=>{m.current=!0,f(!1),g(-1)}}),[b,D,g]);return{focusVisible:m.current?i:-1,controlledHighlighting:d,highlightedIdx:i,hiliteItemAtIndex:g,keyBoardNavigation:m,listProps:E,setIgnoreFocus:f}};var to=require("react");var Tr=(e,t=[],o={value:0})=>{let r=!1;for(let n of e)r&&!wn(n)||(t[o.value]=n,o.value+=1,r=!1,wn(n)&&n.expanded===!1?r=!0:Jl(n)&&yr(n)&&Tr(n.childNodes,t,o));return t},ai=e=>{let t=(0,to.useRef)(e),o=(0,to.useRef)(e),r=(0,to.useRef)(Tr(e)),[,n]=(0,to.useState)({});e!==t.current&&(t.current=e,o.current=e,r.current=Tr(e));let s=l=>{o.current=l,r.current=Tr(l),n({})};return{data:o.current,indexPositions:r.current,setData:s}};var it=require("react");var _c={},Uc=e=>e&&e.hasAttribute("aria-expanded"),ci=({collapsibleHeaders:e,highlightedIdx:t,treeNodes:o,setVisibleData:r,source:n})=>{let s=(0,it.useRef)(n),l=(0,it.useRef)(s.current),c=(0,it.useCallback)(p=>{r(l.current=p)},[r]),i=(0,it.useCallback)((p,{id:f})=>Sr(p,f,{expanded:!0}),[]),a=(0,it.useCallback)((p,{id:f})=>Sr(p,f,{expanded:!1}),[]),d=(0,it.useCallback)(p=>{if(p.key===ti||p.key===Er){let f=o[t];f&&f.expanded===!1&&(p.preventDefault(),c(i(l.current,f)))}if(p.key===eo||p.key===Er){let f=o[t];f&&f.expanded&&(p.preventDefault(),c(a(l.current,f)))}},[a,i,t,o,c]),g=e?{onKeyDown:d}:_c,m={onClick:(0,it.useCallback)(p=>{let f=Dn(p.target);if(Uc(f)){p.stopPropagation(),p.preventDefault();let b=Pt(n,f.id);(b==null?void 0:b.expanded)===!1?c(i(n,b)):(b==null?void 0:b.expanded)===!0&&c(a(n,b))}},[a,i,c,n])};return{listHandlers:g,listItemHandlers:m}};var ui=require("react");var di=({highlightedIdx:e,hiliteItemAtIndex:t,indexPositions:o,source:r})=>({listHandlers:{onKeyDown:(0,ui.useCallback)(l=>{if(l.key===eo){let c=o[e],i=Yl(c);if(i){l.preventDefault();let a=Pt(r,i);if(a){let d=xr(o,a);d!==void 0&&t(d)}}}},[e,t,o,r])}});var Gc=[],mi=({defaultSelected:e,sourceWithIds:t,onChange:o,onHighlight:r,selected:n,selection:s})=>{let l=(0,Mo.useRef)(Gc),c=ai(t),i=(E,x)=>{var T,H;(H=(T=u.listHandlers).onKeyboardNavigation)==null||H.call(T,E,x)},{highlightedIdx:a,...d}=ii({treeNodes:c.indexPositions,onHighlight:r,onKeyboardNavigation:i,selected:l.current}),g=ci({collapsibleHeaders:!0,highlightedIdx:a,treeNodes:c.indexPositions,setVisibleData:c.setData,source:c.data}),u=Zl({defaultSelected:e,highlightedIdx:a,treeNodes:c.indexPositions,onChange:o,selected:n,selection:s}),m=di({source:c.data,highlightedIdx:a,hiliteItemAtIndex:d.hiliteItemAtIndex,indexPositions:c.indexPositions}),p=(0,Mo.useCallback)(E=>{var x,T,H;(x=g.listItemHandlers)==null||x.onClick(E),E.defaultPrevented||(H=(T=u.listItemHandlers)==null?void 0:T.onClick)==null||H.call(T,E)},[g,u]),f=(0,Mo.useCallback)(E=>{var x,T,H,P,K,L,N,z;(T=(x=d.listProps).onKeyDown)==null||T.call(x,E),E.defaultPrevented||(P=(H=u.listHandlers).onKeyDown)==null||P.call(H,E),E.defaultPrevented||(L=(K=g.listHandlers).onKeyDown)==null||L.call(K,E),E.defaultPrevented||(z=(N=m.listHandlers).onKeyDown)==null||z.call(N,E)},[g.listHandlers,d.listProps,u.listHandlers,m.listHandlers]),b=()=>{var E;return a===void 0||a===-1||(E=c.indexPositions[a])==null?void 0:E.id};l.current=u.selected;let S={"aria-activedescendant":b(),onBlur:d.listProps.onBlur,onFocus:d.listProps.onFocus,onKeyDown:f,onMouseDownCapture:d.listProps.onMouseDownCapture,onMouseLeave:d.listProps.onMouseLeave,onMouseMove:d.listProps.onMouseMove},D={onClick:p};return{focusVisible:d.focusVisible,highlightedIdx:a,hiliteItemAtIndex:d.hiliteItemAtIndex,listProps:S,listItemHandlers:D,selected:u.selected,visibleData:c.data}};var Ae=require("react/jsx-runtime"),gi=require("react"),gt="vuuTree",yr=e=>e.expanded===!0,Ln=({children:e,idx:t,...o})=>(0,Ae.jsx)("li",{...o,children:e}),pi=(0,Hr.forwardRef)(function({allowDragDrop:t,className:o,defaultSelected:r,groupSelection:n="none",id:s,onHighlight:l,onSelectionChange:c,revealSelected:i,selected:a,selection:d="single",source:g,...u},m){var y;let p=(0,Dr.useIdMemo)(s),f=(0,Hr.useRef)(null),[,b,S]=Hn(g,p,{revealSelected:i?(y=a!=null?a:r)!=null?y:!1:void 0}),D=(w,h)=>{if(c){let k=h.map(v=>S(v)).filter(v=>v!==void 0);c(k)}},{focusVisible:E,highlightedIdx:x,hiliteItemAtIndex:T,listProps:H,listItemHandlers:P,selected:K,visibleData:L}=mi({defaultSelected:r,groupSelection:n,onChange:D,onHighlight:l,selected:a,selection:d,sourceWithIds:b});Xl(f,x);let z={...{onMouseEnter:w=>{let h=w.target,k=_l(h);T(k)}},...P,role:"treeitem"},I=ql(n);function R(w,h,k){w.push((0,Ae.jsxs)(Ln,{...z,...Wc(h,k,x,K,E),children:[h.icon?(0,Ae.jsx)("span",{className:`${gt}Node-icon`,"data-icon":h.icon}):null,(0,Ae.jsx)("span",{children:h.label})]})),k.value+=1}function C(w,h,k,v,F){let{value:A}=k;k.value+=1,w.push((0,gi.createElement)(Ln,{...P,"aria-expanded":h.expanded,"aria-level":h.level,"aria-selected":K.includes(v)||void 0,className:(0,vr.default)(`${gt}Node`,{focusVisible:E===A,[`${gt}Node-toggle`]:!I}),"data-idx":A,"data-highlighted":A===x||void 0,"data-selectable":!0,id:v,key:`header-${A}`},I?(0,Ae.jsxs)("div",{className:`${gt}Node-label`,children:[(0,Ae.jsx)("span",{className:`${gt}Node-toggle`}),F]}):(0,Ae.jsxs)("div",{className:`${gt}Node-label`,children:[h.icon?(0,Ae.jsx)("span",{className:`${gt}Node-icon`,"data-icon":h.icon}):null,(0,Ae.jsx)("span",{children:F})]}),(0,Ae.jsx)("ul",{role:"group",children:yr(h)?M(h.childNodes,k):""})))}function M(w,h={value:0}){if((w==null?void 0:w.length)>0){let k=[];for(let v of w)v.childNodes?C(k,v,h,v.id,v.label):R(k,v,h);return k}}return(0,Ae.jsx)("ul",{...u,...H,className:(0,vr.default)(gt,o),id:`Tree-${p}`,ref:(0,Dr.useForkRef)(f,m),role:"tree",tabIndex:0,children:M(L)})}),Wc=(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:(0,vr.default)("vuuTreeNode",s,{focusVisible:n===t.value})});pi.displayName="Tree";var fi=pi;var bi=require("@vuu-ui/vuu-utils"),Ii=require("@salt-ds/core"),hi=ge(require("classnames")),wr=require("react"),xi=require("react/jsx-runtime"),jc="vuuInput",qc=({className:e,onCommit:t,onKeyDown:o,type:r,...n})=>{let s=(0,wr.useCallback)((i,a)=>{if(console.log(`commit value ${a}`),r==="number"){let d=parseFloat(a);if((0,bi.isValidNumber)(d))t(i,d);else throw Error("Invalid value")}else r==="boolean"?t(i,!!a):t(i,a)},[t,r]),l=(0,wr.useCallback)(i=>{if(i.key==="Enter"){i.preventDefault(),i.stopPropagation();let{value:a}=i.target;s(i,a)}o==null||o(i)},[s,o]),c=(0,wr.useCallback)(i=>{let{value:a}=i.target;s(i,a)},[s]);return(0,xi.jsx)(Ii.Input,{...n,className:(0,hi.default)(jc,e),onBlur:c,onKeyDown:l})};
7
7
  //# sourceMappingURL=index.js.map