@skdx/react 0.38.0 → 0.39.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- "use strict";var Qe=Object.create;var O=Object.defineProperty;var We=Object.getOwnPropertyDescriptor;var Xe=Object.getOwnPropertyNames;var Ze=Object.getPrototypeOf,et=Object.prototype.hasOwnProperty;var tt=(t,e)=>{for(var n in e)O(t,n,{get:e[n],enumerable:!0})},de=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Xe(e))!et.call(t,o)&&o!==n&&O(t,o,{get:()=>e[o],enumerable:!(r=We(e,o))||r.enumerable});return t};var $=(t,e,n)=>(n=t!=null?Qe(Ze(t)):{},de(e||!t||!t.__esModule?O(n,"default",{value:t,enumerable:!0}):n,t)),nt=t=>de(O({},"__esModule",{value:!0}),t);var Nt={};tt(Nt,{Tree:()=>ee,TreeAmbientContext:()=>P,TreeGroup:()=>M,TreeItem:()=>H,TreeItemIndicator:()=>z,TreeItemProvider:()=>fe,TreeProvider:()=>Ee,defaultGetLoadedLabel:()=>ke,expandStateAttr:()=>G,useTreeContext:()=>D,useTreeItemContext:()=>K});module.exports=nt(Nt);var f=$(require("react"),1),xe=require("../utils/createContext.cjs"),q=require("../utils/direction.cjs"),Ie=require("../utils/liveAnnouncer.cjs"),Se=require("../utils/part.cjs"),N=require("../utils/primitive.cjs"),be=require("../utils/useCallbackRef.cjs"),Re=require("../utils/useControllableState.cjs"),ve=require("../utils/useRovingFocus.cjs"),F=require("../utils/useTypeahead.cjs");var ye=require("../utils/Glyph.cjs");var ge=$(require("react"),1),me=require("../utils/part.cjs"),he=require("../utils/primitive.cjs");var R=$(require("react"),1),ce=require("../utils/createContext.cjs"),le=require("../utils/part.cjs"),w=require("../utils/primitive.cjs"),ue=require("../utils/useRovingFocus.cjs");var j=require("react/jsx-runtime"),[fe,K]=(0,ce.createSafeContext)("TreeItem");function se(t){return t.target.closest('[role="treeitem"]')!==t.currentTarget}function G(t,e){if(t)return e?"expanded":"collapsed"}function rt(t,e,n){if(!(t==="none"||e))return n}function ot(t){if(t!==void 0)return t==="mixed"?"mixed":t}function at(t){if(t!==void 0)return t==="mixed"?"indeterminate":t?"checked":"unchecked"}function pe(t){return R.Children.toArray(t).some(e=>R.isValidElement(e)?e.type===M?!0:e.type===H?!1:pe(e.props.children):!1)}var H=({nodeId:t,disabled:e=!1,hasChildren:n,textValue:r,children:o,ref:i,...c})=>{let l=D("TreeItem"),g=R.useContext(P),m=e&&l.disabledBehavior==="all",s=n??pe(o),d=l.expandedIds.has(t),a=l.selectedIds.has(t),u=l.loadingIds.has(t),p=(0,ue.rovingTabIndex)(l.activeNodeId!==null,l.activeNodeId===t,m),{registerNode:h,unregisterNode:C}=l,S=g.parentId;R.useEffect(()=>(h(t,S),()=>C(t)),[t,S,h,C]);let T=l.selectionPropagation==="descendants"?l.checkedState(t):void 0,b=T!==void 0,y=l.positionOf(t);return(0,j.jsx)(fe,{nodeId:t,depth:g.depth,expanded:d,selected:a,disabled:e,hasChildren:s,loading:u,children:(0,j.jsx)(w.Primitive.div,{role:"treeitem","aria-level":g.depth,"aria-posinset":y?.posinset,"aria-setsize":y?.setsize,"aria-selected":rt(l.selectionMode,b,a),"aria-expanded":s?d:void 0,"aria-checked":ot(T),"aria-busy":u||void 0,"aria-disabled":e||void 0,"data-state":G(s,d),"data-checked":at(T),"data-loading":u?"":void 0,"data-disabled":e?"":void 0,"data-text-value":r,"data-skdx-tree-node-id":t,"data-skdx-tree-parent-id":g.parentId??void 0,tabIndex:p,...c,...(0,le.skdxPart)("tree","item",c.className),style:{"--skdx-tree-node-depth":g.depth,...c.style},ref:i,onClick:(0,w.composeEventHandlers)(c.onClick,x=>{e||se(x)||(l.onSelectedChange(t),l.onActivate(t),s&&l.expandOnClick&&l.onExpandedChange(t,!d))}),onFocus:(0,w.composeEventHandlers)(c.onFocus,x=>{!m&&!se(x)&&l.setActiveNodeId(t)}),children:o})})};H.displayName="TreeItem";var J=require("react/jsx-runtime"),M=({forceMount:t,children:e,ref:n,...r})=>{let o=K("TreeGroup"),i=ge.useMemo(()=>({depth:o.depth+1,parentId:o.nodeId}),[o.depth,o.nodeId]);return t||o.expanded?(0,J.jsx)(P.Provider,{value:i,children:(0,J.jsx)(he.Primitive.div,{role:"group",...r,...(0,me.skdxPart)("tree","group",r.className),ref:n,children:e})}):null};M.displayName="TreeGroup";var Te=require("../utils/part.cjs"),V=require("../utils/primitive.cjs");var Ce=require("react/jsx-runtime"),z=({ref:t,...e})=>{let n=D("TreeItemIndicator"),r=K("TreeItemIndicator");return(0,Ce.jsx)(V.Primitive.span,{"aria-hidden":"true","data-state":G(r.hasChildren,r.expanded),...e,...(0,Te.skdxPart)("tree","item-indicator",e.className),ref:t,onClick:(0,V.composeEventHandlers)(e.onClick,o=>{o.stopPropagation(),r.hasChildren&&n.onExpandedChange(r.nodeId,!r.expanded)})})};z.displayName="TreeItemIndicator";var E=require("react/jsx-runtime"),it=()=>(0,E.jsx)(ye.Glyph,{name:"chevron-right"}),dt=t=>t.hasChildren??(t.children?.length??0)>0;function Q(t,e){return t.map(n=>(0,E.jsxs)(H,{nodeId:n.nodeId,disabled:n.disabled,textValue:n.textValue,hasChildren:n.hasChildren,children:[dt(n)?(0,E.jsx)(z,{children:(0,E.jsx)(it,{})}):null,e?e(n):n.label??n.nodeId,n.children&&n.children.length>0?(0,E.jsx)(M,{children:Q(n.children,e)}):null]},n.nodeId))}var B=require("react/jsx-runtime"),X='[role="treeitem"]:not([data-disabled])',Z='[role="treeitem"]';function ke(t){return`${t} loaded`}var[Ee,D]=(0,xe.createSafeContext)("Tree"),P=f.createContext({depth:1,parentId:null});function A(t,e=X){return Array.from(t.querySelectorAll(e))}function v(t){return t.getAttribute("data-skdx-tree-node-id")??""}function st(t){let e=t.getAttribute("data-text-value");if(e!==null)return e;let n="";for(let r of t.childNodes){if(r.nodeType!==1&&r.nodeType!==3)continue;let o=r.nodeType===1?r:null;o&&(o.getAttribute("role")==="group"||o.getAttribute("aria-hidden")==="true")||(n+=r.textContent??"")}return n}function ct(t){let e=new Map;for(let r of t.querySelectorAll(Z)){let o=v(r);if(!o)continue;let i=r.getAttribute("data-skdx-tree-parent-id")??"",c=e.get(i);c?c.push(o):e.set(i,[o])}let n=new Map;for(let r of e.values())r.forEach((o,i)=>{n.set(o,{posinset:i+1,setsize:r.length})});return n}function lt(t,e){return t.length===e.length&&t.every((n,r)=>n===e[r])}function ut(t,e){if(t.size!==e.size)return!1;for(let[n,r]of t){let o=e.get(n);if(!o||o.posinset!==r.posinset||o.setsize!==r.setsize)return!1}return!0}function Ae(t,e,n,r=X){let o=A(t,r),i=o.indexOf(e);if(i===-1)return;let c=o[i+n];return c?.focus(),c}function ft(t){let{selectionMode:e="single",expandedIds:n,defaultExpandedIds:r=[],onExpandedIdsChange:o,selectedIds:i,defaultSelectedIds:c=[],onSelectedIdsChange:l,checkedIds:g,defaultCheckedIds:m,onCheckedIdsChange:s,selectionPropagation:d="none",loadChildren:a,getLoadedLabel:u=ke,onLoadError:p,onActivate:h,disabledBehavior:C="all",expandOnClick:S=!0,collection:T,renderLabel:b,children:y,...x}=t;return{selectionMode:e,expandedProp:n,defaultExpandedIds:r,onExpandedIdsChange:o,selectedProp:i,defaultSelectedIds:c,onSelectedIdsChange:l,checkedProp:g,defaultCheckedIds:m,onCheckedIdsChange:s,selectionPropagation:d,loadChildren:a,getLoadedLabel:u,onLoadError:p,onActivate:h,disabledBehavior:C,expandOnClick:S,collection:T,renderLabel:b,children:y,rest:x}}function W(t,e,n){let[r=[],o]=(0,Re.useControllableState)({prop:t,defaultProp:e??[],onChange:n});return[r,o]}function pt(t){let[e,n]=f.useState(()=>new Map),r=f.useCallback((d,a)=>{n(u=>u.get(d)===a?u:new Map(u).set(d,a))},[]),o=f.useCallback(d=>{n(a=>{if(!a.has(d))return a;let u=new Map(a);return u.delete(d),u})},[]),i=f.useMemo(()=>{let d=new Map;for(let[a,u]of e){if(u===null)continue;let p=d.get(u);p?p.push(a):d.set(u,[a])}return d},[e]),[c,l]=f.useState(()=>new Map),g=f.useMemo(()=>{let d=null;for(let a of e.keys()){if(!t.has(a))continue;let u=i.get(a)??[],p=c.get(a);p&&lt(p,u)||(d??(d=new Map(c)),d.set(a,u))}return d??c},[e,t,i,c]);g!==c&&l(g);let m=f.useCallback(d=>i.get(d)??g.get(d)??[],[i,g]),s=f.useCallback(d=>{let a=[],u=new Set([d]),p=[...m(d)];for(;p.length>0;){let h=p.pop();u.has(h)||(u.add(h),a.push(h),p.push(...m(h)))}return a},[m]);return{registerNode:r,unregisterNode:o,descendantsOf:s}}function gt(t){let{expandedProp:e,defaultExpandedIds:n,onExpandedIdsChange:r,selectedProp:o,defaultSelectedIds:i,onSelectedIdsChange:c,checkedProp:l,defaultCheckedIds:g,onCheckedIdsChange:m}=t,[s,d]=W(e,n,r),[a,u]=W(o,i,c),p=l!==void 0||g!==void 0,[h,C]=W(l,g,m),S=p?C:u,T=f.useMemo(()=>new Set(s),[s]),b=f.useMemo(()=>new Set(a),[a]),y=f.useMemo(()=>new Set(h),[h]);return{expandedIds:T,selectedIds:b,checkedIds:y,checkedAxisActive:p,setExpandedArr:d,setAxisArr:S}}function mt(t){let{selectionPropagation:e,checkedAxisActive:n,checkedIds:r,selectedIds:o,descendantsOf:i}=t,c=e==="descendants",l=f.useCallback(g=>{let m=n?r:o;if(!c)return!1;let s=i(g);if(s.length===0)return m.has(g);let d=s.filter(a=>m.has(a)).length;return d===0?!1:d===s.length?!0:"mixed"},[n,c,i,r,o]);return{propagating:c,checkedState:l}}function ht(t){let{loadChildren:e,getLoadedLabel:n,onLoadError:r,descendantsOf:o}=t,[i,c]=f.useState(()=>new Set),l=f.useRef(new Set),g=f.useCallback(s=>{if(!e||l.current.has(s))return;l.current.add(s),c(a=>new Set(a).add(s));let d=()=>c(a=>{let u=new Set(a);return u.delete(s),u});Promise.resolve(e(s)).then(()=>{d(),(0,Ie.announce)(n(s))},a=>{l.current.delete(s),d(),r?.({nodeId:s,error:a})})},[e,n,r]);return{loadingIds:i,startLoad:g,invalidate:s=>{if(s===void 0){l.current.clear();return}l.current.delete(s);for(let d of o(s))l.current.delete(d)}}}function Tt(t,e){return{onExpandedChange:f.useCallback((o,i)=>{t((c=[])=>i?[...c,o]:c.filter(l=>l!==o)),i&&e(o)},[t,e]),expandMany:o=>{if(o.length!==0){t((i=[])=>[...new Set([...i,...o])]);for(let i of o)e(i)}}}}function Ct(t){let{selectionMode:e,propagating:n,checkedState:r,descendantsOf:o,setAxisArr:i}=t,c=f.useRef(null);return{onSelectedChange:f.useCallback(s=>{if(e!=="none"){if(c.current=s,e==="multiple"&&n){let d=r(s)!==!0,a=[s,...o(s)];i((u=[])=>{let p=new Set(u);for(let h of a)d?p.add(h):p.delete(h);return[...p]});return}i((d=[])=>e==="single"?[s]:d.includes(s)?d.filter(a=>a!==s):[...d,s])}},[e,n,r,o,i]),selectMany:s=>{if(e!=="multiple")return;let d=s[s.length-1];d!==void 0&&(c.current=d),i((a=[])=>[...new Set([...a,...s])])},toggleSelectAll:s=>{e!=="multiple"||s.length===0||i((d=[])=>{let a=new Set(d);return s.every(u=>a.has(u))?d.filter(u=>!s.includes(u)):[...new Set([...d,...s])]})},anchorRef:c}}function yt(t,e,n){let[r,o]=f.useState(null);return f.useLayoutEffect(()=>{let i=Array.from(t.current?.querySelectorAll(e)??[],c=>c.getAttribute("data-skdx-tree-node-id")).filter(c=>c!==null&&c!=="");i.length===0||r!==null&&i.includes(r)||o(i.find(c=>n.has(c))??i[0])}),[r,o]}function xt(t){let[e,n]=f.useState(()=>new Map);return f.useLayoutEffect(()=>{let r=t.current;if(!r)return;let o=ct(r);n(i=>ut(i,o)?i:o)}),f.useCallback(r=>e.get(r),[e])}function It(t,e,n){if(!(e.multiple&&t.shiftKey&&(n==="ArrowDown"||n==="ArrowUp")))return!1;t.preventDefault();let r=Ae(e.root,e.target,n==="ArrowDown"?1:-1,e.itemSelector);return r&&e.onSelectedChange(v(r)),!0}function St(t,e){if(!(e.multiple&&t.shiftKey&&t.key===" "))return!1;t.preventDefault();let r=A(e.root,e.itemSelector).map(v),o=e.anchorRef.current===null?-1:r.indexOf(e.anchorRef.current),i=r.indexOf(e.nodeId);return o===-1||i===-1?e.onSelectedChange(e.nodeId):e.selectMany(r.slice(Math.min(o,i),Math.max(o,i)+1)),!0}function bt(t,e){if(!(e.multiple&&t.shiftKey&&(t.key==="Home"||t.key==="End")))return!1;t.preventDefault();let n=A(e.root,e.itemSelector),r=n.indexOf(e.target),o=t.key==="Home"?0:n.length-1;return e.selectMany(n.slice(Math.min(r,o),Math.max(r,o)+1).map(v)),n[o]?.focus(),!0}function Rt(t,e){return e.multiple&&(t.ctrlKey||t.metaKey)&&t.key.toLowerCase()==="a"?(t.preventDefault(),e.toggleSelectAll(A(e.root,e.itemSelector).map(v)),!0):!1}function vt(t,e,n){return n!=="ArrowRight"?!1:(t.preventDefault(),e.hasChildren&&!e.expanded?e.onExpandedChange(e.nodeId,!0):Ae(e.root,e.target,1,e.itemSelector),!0)}function kt(t,e,n){return n!=="ArrowLeft"?!1:(t.preventDefault(),e.hasChildren&&e.expanded?e.onExpandedChange(e.nodeId,!1):e.parentId&&A(e.root,e.itemSelector).find(o=>v(o)===e.parentId)?.focus(),!0)}function Et(t,e){return t.key==="Enter"||t.key===" "?(t.preventDefault(),e.target.hasAttribute("data-disabled")||(e.onSelectedChange(e.nodeId),t.key==="Enter"&&e.activate(e.nodeId)),!0):!1}function At(t,e){return t.key!=="*"?!1:(t.preventDefault(),e.expandMany(Array.from(e.root.querySelectorAll(Z)).filter(n=>(n.getAttribute("data-skdx-tree-parent-id")||"")===e.parentId&&n.getAttribute("aria-expanded")==="false").map(v)),!0)}function Mt(t,e){if(!(0,F.isTypeaheadKey)(t))return;let n=A(e.root,e.itemSelector),r=e.matchTypeahead(t.key,n.indexOf(e.target));r!==-1&&(t.preventDefault(),n[r].focus())}function Pt(t){let{selectionMode:e,itemSelector:n,dir:r,anchorRef:o,onSelectedChange:i,selectMany:c,toggleSelectAll:l,onExpandedChange:g,activate:m,expandMany:s,matchTypeahead:d}=t;return a=>{let u=a.currentTarget,p=a.target;if(!p.matches('[role="treeitem"]'))return;let h=v(p),C=p.getAttribute("aria-expanded"),S=C!==null,T=C==="true",b=p.getAttribute("data-skdx-tree-parent-id")||"",y=e==="multiple",x=(0,q.directionalKey)(a.key,a.currentTarget,r),I={root:u,target:p,nodeId:h,hasChildren:S,expanded:T,parentId:b,multiple:y,itemSelector:n,anchorRef:o,onSelectedChange:i,selectMany:c,toggleSelectAll:l,onExpandedChange:g,activate:m,expandMany:s,matchTypeahead:d};It(a,I,x)||St(a,I)||bt(a,I)||Rt(a,I)||vt(a,I,x)||kt(a,I,x)||Et(a,I)||At(a,I)||Mt(a,I)}}var ee=t=>{let{ref:e,...n}=t,{selectionMode:r,expandedProp:o,defaultExpandedIds:i,onExpandedIdsChange:c,selectedProp:l,defaultSelectedIds:g,onSelectedIdsChange:m,checkedProp:s,defaultCheckedIds:d,onCheckedIdsChange:a,selectionPropagation:u,loadChildren:p,getLoadedLabel:h,onLoadError:C,onActivate:S,disabledBehavior:T,expandOnClick:b,collection:y,renderLabel:x,children:I,rest:_}=ft(n),k=f.useRef(null),L=T==="selection"?Z:X,Me=(0,q.useDirection)(),{expandedIds:te,selectedIds:U,checkedIds:Pe,checkedAxisActive:Ne,setExpandedArr:Le,setAxisArr:we}=gt({expandedProp:o,defaultExpandedIds:i,onExpandedIdsChange:c,selectedProp:l,defaultSelectedIds:g,onSelectedIdsChange:m,checkedProp:s,defaultCheckedIds:d,onCheckedIdsChange:a}),{registerNode:Ke,unregisterNode:He,descendantsOf:Y}=pt(te),{propagating:De,checkedState:ne}=mt({selectionPropagation:u,checkedAxisActive:Ne,checkedIds:Pe,selectedIds:U,descendantsOf:Y}),{loadingIds:Oe,startLoad:Ge,invalidate:re}=ht({loadChildren:p,getLoadedLabel:h,onLoadError:C,descendantsOf:Y}),{onExpandedChange:oe,expandMany:Ve}=Tt(Le,Ge),{onSelectedChange:ae,selectMany:ze,toggleSelectAll:Be,anchorRef:qe}=Ct({selectionMode:r,propagating:De,checkedState:ne,descendantsOf:Y,setAxisArr:we}),ie=(0,be.useCallbackRef)(S),[Fe,_e]=yt(k,L,U),Ue=xt(k),Ye=f.useMemo(()=>({depth:1,parentId:null}),[]),$e=(0,ve.useRovingFocus)({orientation:"vertical",loop:!1,itemSelector:L,includeDisabled:T==="selection",typeahead:!1});f.useImperativeHandle(e,()=>k.current?Object.assign(k.current,{invalidate:re}):{invalidate:re});let je=(0,F.useTypeahead)(f.useCallback(()=>k.current?A(k.current,L).map(st):[],[L])),Je=Pt({selectionMode:r,itemSelector:L,dir:Me,anchorRef:qe,onSelectedChange:ae,selectMany:ze,toggleSelectAll:Be,onExpandedChange:oe,activate:ie,expandMany:Ve,matchTypeahead:je});return(0,B.jsx)(Ee,{selectionMode:r,selectionPropagation:u,expandedIds:te,selectedIds:U,loadingIds:Oe,activeNodeId:Fe,setActiveNodeId:_e,disabledBehavior:T,expandOnClick:b,onExpandedChange:oe,onSelectedChange:ae,onActivate:ie,checkedState:ne,positionOf:Ue,registerNode:Ke,unregisterNode:He,children:(0,B.jsx)(P.Provider,{value:Ye,children:(0,B.jsx)(N.Primitive.div,{role:"tree","aria-multiselectable":r==="multiple"?!0:void 0,..._,...(0,Se.skdxPart)("tree","root",_.className),ref:k,onKeyDown:(0,N.composeEventHandlers)(_.onKeyDown,(0,N.useComposedEventHandlers)(Je,$e)),children:y?Q(y,x):I})})})};ee.displayName="Tree";0&&(module.exports={Tree,TreeAmbientContext,TreeGroup,TreeItem,TreeItemIndicator,TreeItemProvider,TreeProvider,defaultGetLoadedLabel,expandStateAttr,useTreeContext,useTreeItemContext});
2
+ "use strict";var Qe=Object.create;var O=Object.defineProperty;var We=Object.getOwnPropertyDescriptor;var Xe=Object.getOwnPropertyNames;var Ze=Object.getPrototypeOf,et=Object.prototype.hasOwnProperty;var tt=(t,e)=>{for(var n in e)O(t,n,{get:e[n],enumerable:!0})},de=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Xe(e))!et.call(t,o)&&o!==n&&O(t,o,{get:()=>e[o],enumerable:!(r=We(e,o))||r.enumerable});return t};var $=(t,e,n)=>(n=t!=null?Qe(Ze(t)):{},de(e||!t||!t.__esModule?O(n,"default",{value:t,enumerable:!0}):n,t)),nt=t=>de(O({},"__esModule",{value:!0}),t);var Nt={};tt(Nt,{Tree:()=>ee,TreeAmbientContext:()=>P,TreeGroup:()=>M,TreeItem:()=>H,TreeItemIndicator:()=>z,TreeItemProvider:()=>fe,TreeProvider:()=>Ee,defaultGetLoadedLabel:()=>ke,expandStateAttr:()=>G,useTreeContext:()=>D,useTreeItemContext:()=>K});module.exports=nt(Nt);var f=$(require("react"),1),xe=require("../utils/createContext.cjs"),q=require("../utils/direction.cjs"),Ie=require("../utils/liveAnnouncer.cjs"),Se=require("../utils/part.cjs"),N=require("../utils/primitive.cjs"),be=require("../utils/useCallbackRef.cjs"),Re=require("../utils/useControllableState.cjs"),ve=require("../utils/useRovingFocus.cjs"),F=require("../utils/useTypeahead.cjs");var ye=require("../utils/Glyph.cjs");var ge=$(require("react"),1),me=require("../utils/part.cjs"),he=require("../utils/primitive.cjs");var R=$(require("react"),1),ce=require("../utils/createContext.cjs"),le=require("../utils/part.cjs"),w=require("../utils/primitive.cjs"),ue=require("../utils/useRovingFocus.cjs");var j=require("react/jsx-runtime"),[fe,K]=(0,ce.createSafeContext)("TreeItem");function se(t){return t.target.closest('[role="treeitem"]')!==t.currentTarget}function G(t,e){if(t)return e?"expanded":"collapsed"}function rt(t,e,n){if(!(t==="none"||e))return n}function ot(t){if(t!==void 0)return t==="mixed"?"mixed":t}function at(t){if(t!==void 0)return t==="mixed"?"indeterminate":t?"checked":"unchecked"}function pe(t){return R.Children.toArray(t).some(e=>R.isValidElement(e)?e.type===M?!0:e.type===H?!1:pe(e.props.children):!1)}var H=({nodeId:t,disabled:e=!1,hasChildren:n,textValue:r,children:o,ref:i,...c})=>{let l=D("TreeItem"),g=R.useContext(P),m=e&&l.disabledBehavior==="all",s=n??pe(o),d=l.expandedIds.has(t),a=l.selectedIds.has(t),u=l.loadingIds.has(t),p=(0,ue.rovingTabIndex)(l.activeNodeId!==null,l.activeNodeId===t,m),{registerNode:h,unregisterNode:C}=l,S=g.parentId;R.useEffect(()=>(h(t,S),()=>C(t)),[t,S,h,C]);let T=l.selectionPropagation==="descendants"?l.checkedState(t):void 0,b=T!==void 0,y=l.positionOf(t);return(0,j.jsx)(fe,{nodeId:t,depth:g.depth,expanded:d,selected:a,disabled:e,hasChildren:s,loading:u,children:(0,j.jsx)(w.Primitive.div,{role:"treeitem","aria-level":g.depth,"aria-posinset":y?.posinset,"aria-setsize":y?.setsize,"aria-selected":rt(l.selectionMode,b,a),"aria-expanded":s?d:void 0,"aria-checked":ot(T),"aria-busy":u||void 0,"aria-disabled":e||void 0,"data-state":G(s,d),"data-checked":at(T),"data-loading":u?"":void 0,"data-disabled":e?"":void 0,"data-text-value":r,"data-skdx-tree-node-id":t,"data-skdx-tree-parent-id":g.parentId??void 0,tabIndex:p,...c,...(0,le.skdxPart)("tree","item",c.className),style:{"--skdx-tree-node-depth":g.depth,...c.style},ref:i,onClick:(0,w.composeEventHandlers)(c.onClick,x=>{e||se(x)||(l.onSelectedChange(t),l.onActivate(t),s&&l.expandOnClick&&l.onExpandedChange(t,!d))}),onFocus:(0,w.composeEventHandlers)(c.onFocus,x=>{!m&&!se(x)&&l.setActiveNodeId(t)}),children:o})})};H.displayName="TreeItem";var J=require("react/jsx-runtime"),M=({forceMount:t,children:e,ref:n,...r})=>{let o=K("TreeGroup"),i=ge.useMemo(()=>({depth:o.depth+1,parentId:o.nodeId}),[o.depth,o.nodeId]);return t||o.expanded?(0,J.jsx)(P.Provider,{value:i,children:(0,J.jsx)(he.Primitive.div,{role:"group","data-state":o.expanded?"expanded":"collapsed",...r,...(0,me.skdxPart)("tree","group",r.className),ref:n,children:e})}):null};M.displayName="TreeGroup";var Te=require("../utils/part.cjs"),V=require("../utils/primitive.cjs");var Ce=require("react/jsx-runtime"),z=({ref:t,...e})=>{let n=D("TreeItemIndicator"),r=K("TreeItemIndicator");return(0,Ce.jsx)(V.Primitive.span,{"aria-hidden":"true","data-state":G(r.hasChildren,r.expanded),...e,...(0,Te.skdxPart)("tree","item-indicator",e.className),ref:t,onClick:(0,V.composeEventHandlers)(e.onClick,o=>{o.stopPropagation(),r.hasChildren&&n.onExpandedChange(r.nodeId,!r.expanded)})})};z.displayName="TreeItemIndicator";var E=require("react/jsx-runtime"),it=()=>(0,E.jsx)(ye.Glyph,{name:"chevron-right"}),dt=t=>t.hasChildren??(t.children?.length??0)>0;function Q(t,e){return t.map(n=>(0,E.jsxs)(H,{nodeId:n.nodeId,disabled:n.disabled,textValue:n.textValue,hasChildren:n.hasChildren,children:[dt(n)?(0,E.jsx)(z,{children:(0,E.jsx)(it,{})}):null,e?e(n):n.label??n.nodeId,n.children&&n.children.length>0?(0,E.jsx)(M,{children:Q(n.children,e)}):null]},n.nodeId))}var B=require("react/jsx-runtime"),X='[role="treeitem"]:not([data-disabled])',Z='[role="treeitem"]';function ke(t){return`${t} loaded`}var[Ee,D]=(0,xe.createSafeContext)("Tree"),P=f.createContext({depth:1,parentId:null});function A(t,e=X){return Array.from(t.querySelectorAll(e))}function v(t){return t.getAttribute("data-skdx-tree-node-id")??""}function st(t){let e=t.getAttribute("data-text-value");if(e!==null)return e;let n="";for(let r of t.childNodes){if(r.nodeType!==1&&r.nodeType!==3)continue;let o=r.nodeType===1?r:null;o&&(o.getAttribute("role")==="group"||o.getAttribute("aria-hidden")==="true")||(n+=r.textContent??"")}return n}function ct(t){let e=new Map;for(let r of t.querySelectorAll(Z)){let o=v(r);if(!o)continue;let i=r.getAttribute("data-skdx-tree-parent-id")??"",c=e.get(i);c?c.push(o):e.set(i,[o])}let n=new Map;for(let r of e.values())r.forEach((o,i)=>{n.set(o,{posinset:i+1,setsize:r.length})});return n}function lt(t,e){return t.length===e.length&&t.every((n,r)=>n===e[r])}function ut(t,e){if(t.size!==e.size)return!1;for(let[n,r]of t){let o=e.get(n);if(!o||o.posinset!==r.posinset||o.setsize!==r.setsize)return!1}return!0}function Ae(t,e,n,r=X){let o=A(t,r),i=o.indexOf(e);if(i===-1)return;let c=o[i+n];return c?.focus(),c}function ft(t){let{selectionMode:e="single",expandedIds:n,defaultExpandedIds:r=[],onExpandedIdsChange:o,selectedIds:i,defaultSelectedIds:c=[],onSelectedIdsChange:l,checkedIds:g,defaultCheckedIds:m,onCheckedIdsChange:s,selectionPropagation:d="none",loadChildren:a,getLoadedLabel:u=ke,onLoadError:p,onActivate:h,disabledBehavior:C="all",expandOnClick:S=!0,collection:T,renderLabel:b,children:y,...x}=t;return{selectionMode:e,expandedProp:n,defaultExpandedIds:r,onExpandedIdsChange:o,selectedProp:i,defaultSelectedIds:c,onSelectedIdsChange:l,checkedProp:g,defaultCheckedIds:m,onCheckedIdsChange:s,selectionPropagation:d,loadChildren:a,getLoadedLabel:u,onLoadError:p,onActivate:h,disabledBehavior:C,expandOnClick:S,collection:T,renderLabel:b,children:y,rest:x}}function W(t,e,n){let[r=[],o]=(0,Re.useControllableState)({prop:t,defaultProp:e??[],onChange:n});return[r,o]}function pt(t){let[e,n]=f.useState(()=>new Map),r=f.useCallback((d,a)=>{n(u=>u.get(d)===a?u:new Map(u).set(d,a))},[]),o=f.useCallback(d=>{n(a=>{if(!a.has(d))return a;let u=new Map(a);return u.delete(d),u})},[]),i=f.useMemo(()=>{let d=new Map;for(let[a,u]of e){if(u===null)continue;let p=d.get(u);p?p.push(a):d.set(u,[a])}return d},[e]),[c,l]=f.useState(()=>new Map),g=f.useMemo(()=>{let d=null;for(let a of e.keys()){if(!t.has(a))continue;let u=i.get(a)??[],p=c.get(a);p&&lt(p,u)||(d??(d=new Map(c)),d.set(a,u))}return d??c},[e,t,i,c]);g!==c&&l(g);let m=f.useCallback(d=>i.get(d)??g.get(d)??[],[i,g]),s=f.useCallback(d=>{let a=[],u=new Set([d]),p=[...m(d)];for(;p.length>0;){let h=p.pop();u.has(h)||(u.add(h),a.push(h),p.push(...m(h)))}return a},[m]);return{registerNode:r,unregisterNode:o,descendantsOf:s}}function gt(t){let{expandedProp:e,defaultExpandedIds:n,onExpandedIdsChange:r,selectedProp:o,defaultSelectedIds:i,onSelectedIdsChange:c,checkedProp:l,defaultCheckedIds:g,onCheckedIdsChange:m}=t,[s,d]=W(e,n,r),[a,u]=W(o,i,c),p=l!==void 0||g!==void 0,[h,C]=W(l,g,m),S=p?C:u,T=f.useMemo(()=>new Set(s),[s]),b=f.useMemo(()=>new Set(a),[a]),y=f.useMemo(()=>new Set(h),[h]);return{expandedIds:T,selectedIds:b,checkedIds:y,checkedAxisActive:p,setExpandedArr:d,setAxisArr:S}}function mt(t){let{selectionPropagation:e,checkedAxisActive:n,checkedIds:r,selectedIds:o,descendantsOf:i}=t,c=e==="descendants",l=f.useCallback(g=>{let m=n?r:o;if(!c)return!1;let s=i(g);if(s.length===0)return m.has(g);let d=s.filter(a=>m.has(a)).length;return d===0?!1:d===s.length?!0:"mixed"},[n,c,i,r,o]);return{propagating:c,checkedState:l}}function ht(t){let{loadChildren:e,getLoadedLabel:n,onLoadError:r,descendantsOf:o}=t,[i,c]=f.useState(()=>new Set),l=f.useRef(new Set),g=f.useCallback(s=>{if(!e||l.current.has(s))return;l.current.add(s),c(a=>new Set(a).add(s));let d=()=>c(a=>{let u=new Set(a);return u.delete(s),u});Promise.resolve(e(s)).then(()=>{d(),(0,Ie.announce)(n(s))},a=>{l.current.delete(s),d(),r?.({nodeId:s,error:a})})},[e,n,r]);return{loadingIds:i,startLoad:g,invalidate:s=>{if(s===void 0){l.current.clear();return}l.current.delete(s);for(let d of o(s))l.current.delete(d)}}}function Tt(t,e){return{onExpandedChange:f.useCallback((o,i)=>{t((c=[])=>i?[...c,o]:c.filter(l=>l!==o)),i&&e(o)},[t,e]),expandMany:o=>{if(o.length!==0){t((i=[])=>[...new Set([...i,...o])]);for(let i of o)e(i)}}}}function Ct(t){let{selectionMode:e,propagating:n,checkedState:r,descendantsOf:o,setAxisArr:i}=t,c=f.useRef(null);return{onSelectedChange:f.useCallback(s=>{if(e!=="none"){if(c.current=s,e==="multiple"&&n){let d=r(s)!==!0,a=[s,...o(s)];i((u=[])=>{let p=new Set(u);for(let h of a)d?p.add(h):p.delete(h);return[...p]});return}i((d=[])=>e==="single"?[s]:d.includes(s)?d.filter(a=>a!==s):[...d,s])}},[e,n,r,o,i]),selectMany:s=>{if(e!=="multiple")return;let d=s[s.length-1];d!==void 0&&(c.current=d),i((a=[])=>[...new Set([...a,...s])])},toggleSelectAll:s=>{e!=="multiple"||s.length===0||i((d=[])=>{let a=new Set(d);return s.every(u=>a.has(u))?d.filter(u=>!s.includes(u)):[...new Set([...d,...s])]})},anchorRef:c}}function yt(t,e,n){let[r,o]=f.useState(null);return f.useLayoutEffect(()=>{let i=Array.from(t.current?.querySelectorAll(e)??[],c=>c.getAttribute("data-skdx-tree-node-id")).filter(c=>c!==null&&c!=="");i.length===0||r!==null&&i.includes(r)||o(i.find(c=>n.has(c))??i[0])}),[r,o]}function xt(t){let[e,n]=f.useState(()=>new Map);return f.useLayoutEffect(()=>{let r=t.current;if(!r)return;let o=ct(r);n(i=>ut(i,o)?i:o)}),f.useCallback(r=>e.get(r),[e])}function It(t,e,n){if(!(e.multiple&&t.shiftKey&&(n==="ArrowDown"||n==="ArrowUp")))return!1;t.preventDefault();let r=Ae(e.root,e.target,n==="ArrowDown"?1:-1,e.itemSelector);return r&&e.onSelectedChange(v(r)),!0}function St(t,e){if(!(e.multiple&&t.shiftKey&&t.key===" "))return!1;t.preventDefault();let r=A(e.root,e.itemSelector).map(v),o=e.anchorRef.current===null?-1:r.indexOf(e.anchorRef.current),i=r.indexOf(e.nodeId);return o===-1||i===-1?e.onSelectedChange(e.nodeId):e.selectMany(r.slice(Math.min(o,i),Math.max(o,i)+1)),!0}function bt(t,e){if(!(e.multiple&&t.shiftKey&&(t.key==="Home"||t.key==="End")))return!1;t.preventDefault();let n=A(e.root,e.itemSelector),r=n.indexOf(e.target),o=t.key==="Home"?0:n.length-1;return e.selectMany(n.slice(Math.min(r,o),Math.max(r,o)+1).map(v)),n[o]?.focus(),!0}function Rt(t,e){return e.multiple&&(t.ctrlKey||t.metaKey)&&t.key.toLowerCase()==="a"?(t.preventDefault(),e.toggleSelectAll(A(e.root,e.itemSelector).map(v)),!0):!1}function vt(t,e,n){return n!=="ArrowRight"?!1:(t.preventDefault(),e.hasChildren&&!e.expanded?e.onExpandedChange(e.nodeId,!0):Ae(e.root,e.target,1,e.itemSelector),!0)}function kt(t,e,n){return n!=="ArrowLeft"?!1:(t.preventDefault(),e.hasChildren&&e.expanded?e.onExpandedChange(e.nodeId,!1):e.parentId&&A(e.root,e.itemSelector).find(o=>v(o)===e.parentId)?.focus(),!0)}function Et(t,e){return t.key==="Enter"||t.key===" "?(t.preventDefault(),e.target.hasAttribute("data-disabled")||(e.onSelectedChange(e.nodeId),t.key==="Enter"&&e.activate(e.nodeId)),!0):!1}function At(t,e){return t.key!=="*"?!1:(t.preventDefault(),e.expandMany(Array.from(e.root.querySelectorAll(Z)).filter(n=>(n.getAttribute("data-skdx-tree-parent-id")||"")===e.parentId&&n.getAttribute("aria-expanded")==="false").map(v)),!0)}function Mt(t,e){if(!(0,F.isTypeaheadKey)(t))return;let n=A(e.root,e.itemSelector),r=e.matchTypeahead(t.key,n.indexOf(e.target));r!==-1&&(t.preventDefault(),n[r].focus())}function Pt(t){let{selectionMode:e,itemSelector:n,dir:r,anchorRef:o,onSelectedChange:i,selectMany:c,toggleSelectAll:l,onExpandedChange:g,activate:m,expandMany:s,matchTypeahead:d}=t;return a=>{let u=a.currentTarget,p=a.target;if(!p.matches('[role="treeitem"]'))return;let h=v(p),C=p.getAttribute("aria-expanded"),S=C!==null,T=C==="true",b=p.getAttribute("data-skdx-tree-parent-id")||"",y=e==="multiple",x=(0,q.directionalKey)(a.key,a.currentTarget,r),I={root:u,target:p,nodeId:h,hasChildren:S,expanded:T,parentId:b,multiple:y,itemSelector:n,anchorRef:o,onSelectedChange:i,selectMany:c,toggleSelectAll:l,onExpandedChange:g,activate:m,expandMany:s,matchTypeahead:d};It(a,I,x)||St(a,I)||bt(a,I)||Rt(a,I)||vt(a,I,x)||kt(a,I,x)||Et(a,I)||At(a,I)||Mt(a,I)}}var ee=t=>{let{ref:e,...n}=t,{selectionMode:r,expandedProp:o,defaultExpandedIds:i,onExpandedIdsChange:c,selectedProp:l,defaultSelectedIds:g,onSelectedIdsChange:m,checkedProp:s,defaultCheckedIds:d,onCheckedIdsChange:a,selectionPropagation:u,loadChildren:p,getLoadedLabel:h,onLoadError:C,onActivate:S,disabledBehavior:T,expandOnClick:b,collection:y,renderLabel:x,children:I,rest:_}=ft(n),k=f.useRef(null),L=T==="selection"?Z:X,Me=(0,q.useDirection)(),{expandedIds:te,selectedIds:U,checkedIds:Pe,checkedAxisActive:Ne,setExpandedArr:Le,setAxisArr:we}=gt({expandedProp:o,defaultExpandedIds:i,onExpandedIdsChange:c,selectedProp:l,defaultSelectedIds:g,onSelectedIdsChange:m,checkedProp:s,defaultCheckedIds:d,onCheckedIdsChange:a}),{registerNode:Ke,unregisterNode:He,descendantsOf:Y}=pt(te),{propagating:De,checkedState:ne}=mt({selectionPropagation:u,checkedAxisActive:Ne,checkedIds:Pe,selectedIds:U,descendantsOf:Y}),{loadingIds:Oe,startLoad:Ge,invalidate:re}=ht({loadChildren:p,getLoadedLabel:h,onLoadError:C,descendantsOf:Y}),{onExpandedChange:oe,expandMany:Ve}=Tt(Le,Ge),{onSelectedChange:ae,selectMany:ze,toggleSelectAll:Be,anchorRef:qe}=Ct({selectionMode:r,propagating:De,checkedState:ne,descendantsOf:Y,setAxisArr:we}),ie=(0,be.useCallbackRef)(S),[Fe,_e]=yt(k,L,U),Ue=xt(k),Ye=f.useMemo(()=>({depth:1,parentId:null}),[]),$e=(0,ve.useRovingFocus)({orientation:"vertical",loop:!1,itemSelector:L,includeDisabled:T==="selection",typeahead:!1});f.useImperativeHandle(e,()=>k.current?Object.assign(k.current,{invalidate:re}):{invalidate:re});let je=(0,F.useTypeahead)(f.useCallback(()=>k.current?A(k.current,L).map(st):[],[L])),Je=Pt({selectionMode:r,itemSelector:L,dir:Me,anchorRef:qe,onSelectedChange:ae,selectMany:ze,toggleSelectAll:Be,onExpandedChange:oe,activate:ie,expandMany:Ve,matchTypeahead:je});return(0,B.jsx)(Ee,{selectionMode:r,selectionPropagation:u,expandedIds:te,selectedIds:U,loadingIds:Oe,activeNodeId:Fe,setActiveNodeId:_e,disabledBehavior:T,expandOnClick:b,onExpandedChange:oe,onSelectedChange:ae,onActivate:ie,checkedState:ne,positionOf:Ue,registerNode:Ke,unregisterNode:He,children:(0,B.jsx)(P.Provider,{value:Ye,children:(0,B.jsx)(N.Primitive.div,{role:"tree","aria-multiselectable":r==="multiple"?!0:void 0,..._,...(0,Se.skdxPart)("tree","root",_.className),ref:k,onKeyDown:(0,N.composeEventHandlers)(_.onKeyDown,(0,N.useComposedEventHandlers)(Je,$e)),children:y?Q(y,x):I})})})};ee.displayName="Tree";0&&(module.exports={Tree,TreeAmbientContext,TreeGroup,TreeItem,TreeItemIndicator,TreeItemProvider,TreeProvider,defaultGetLoadedLabel,expandStateAttr,useTreeContext,useTreeItemContext});
package/dist/tree/Tree.js CHANGED
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- import*as f from"react";import{createSafeContext as _e}from"../utils/createContext.js";import{directionalKey as Ue,useDirection as Ye}from"../utils/direction.js";import{announce as $e}from"../utils/liveAnnouncer.js";import{skdxPart as je}from"../utils/part.js";import{composeEventHandlers as Je,Primitive as Qe,useComposedEventHandlers as We}from"../utils/primitive.js";import{useCallbackRef as Xe}from"../utils/useCallbackRef.js";import{useControllableState as Ze}from"../utils/useControllableState.js";import{useRovingFocus as et}from"../utils/useRovingFocus.js";import{isTypeaheadKey as tt,useTypeahead as nt}from"../utils/useTypeahead.js";import{Glyph as ze}from"../utils/Glyph.js";import*as ne from"react";import{skdxPart as Ke}from"../utils/part.js";import{Primitive as He}from"../utils/primitive.js";import*as R from"react";import{createSafeContext as ke}from"../utils/createContext.js";import{skdxPart as Ee}from"../utils/part.js";import{composeEventHandlers as W,Primitive as Ae}from"../utils/primitive.js";import{rovingTabIndex as Me}from"../utils/useRovingFocus.js";import{jsx as Z}from"react/jsx-runtime";var[Pe,N]=ke("TreeItem");function X(t){return t.target.closest('[role="treeitem"]')!==t.currentTarget}function G(t,e){if(t)return e?"expanded":"collapsed"}function Ne(t,e,n){if(!(t==="none"||e))return n}function Le(t){if(t!==void 0)return t==="mixed"?"mixed":t}function we(t){if(t!==void 0)return t==="mixed"?"indeterminate":t?"checked":"unchecked"}function ee(t){return R.Children.toArray(t).some(e=>R.isValidElement(e)?e.type===M?!0:e.type===L?!1:ee(e.props.children):!1)}var L=({nodeId:t,disabled:e=!1,hasChildren:n,textValue:r,children:o,ref:i,...c})=>{let l=w("TreeItem"),g=R.useContext(P),m=e&&l.disabledBehavior==="all",s=n??ee(o),d=l.expandedIds.has(t),a=l.selectedIds.has(t),u=l.loadingIds.has(t),p=Me(l.activeNodeId!==null,l.activeNodeId===t,m),{registerNode:h,unregisterNode:C}=l,S=g.parentId;R.useEffect(()=>(h(t,S),()=>C(t)),[t,S,h,C]);let T=l.selectionPropagation==="descendants"?l.checkedState(t):void 0,b=T!==void 0,y=l.positionOf(t);return Z(Pe,{nodeId:t,depth:g.depth,expanded:d,selected:a,disabled:e,hasChildren:s,loading:u,children:Z(Ae.div,{role:"treeitem","aria-level":g.depth,"aria-posinset":y?.posinset,"aria-setsize":y?.setsize,"aria-selected":Ne(l.selectionMode,b,a),"aria-expanded":s?d:void 0,"aria-checked":Le(T),"aria-busy":u||void 0,"aria-disabled":e||void 0,"data-state":G(s,d),"data-checked":we(T),"data-loading":u?"":void 0,"data-disabled":e?"":void 0,"data-text-value":r,"data-skdx-tree-node-id":t,"data-skdx-tree-parent-id":g.parentId??void 0,tabIndex:p,...c,...Ee("tree","item",c.className),style:{"--skdx-tree-node-depth":g.depth,...c.style},ref:i,onClick:W(c.onClick,x=>{e||X(x)||(l.onSelectedChange(t),l.onActivate(t),s&&l.expandOnClick&&l.onExpandedChange(t,!d))}),onFocus:W(c.onFocus,x=>{!m&&!X(x)&&l.setActiveNodeId(t)}),children:o})})};L.displayName="TreeItem";import{jsx as te}from"react/jsx-runtime";var M=({forceMount:t,children:e,ref:n,...r})=>{let o=N("TreeGroup"),i=ne.useMemo(()=>({depth:o.depth+1,parentId:o.nodeId}),[o.depth,o.nodeId]);return t||o.expanded?te(P.Provider,{value:i,children:te(He.div,{role:"group",...r,...Ke("tree","group",r.className),ref:n,children:e})}):null};M.displayName="TreeGroup";import{skdxPart as De}from"../utils/part.js";import{composeEventHandlers as Oe,Primitive as Ge}from"../utils/primitive.js";import{jsx as Ve}from"react/jsx-runtime";var V=({ref:t,...e})=>{let n=w("TreeItemIndicator"),r=N("TreeItemIndicator");return Ve(Ge.span,{"aria-hidden":"true","data-state":G(r.hasChildren,r.expanded),...e,...De("tree","item-indicator",e.className),ref:t,onClick:Oe(e.onClick,o=>{o.stopPropagation(),r.hasChildren&&n.onExpandedChange(r.nodeId,!r.expanded)})})};V.displayName="TreeItemIndicator";import{jsx as K,jsxs as Fe}from"react/jsx-runtime";var Be=()=>K(ze,{name:"chevron-right"}),qe=t=>t.hasChildren??(t.children?.length??0)>0;function z(t,e){return t.map(n=>Fe(L,{nodeId:n.nodeId,disabled:n.disabled,textValue:n.textValue,hasChildren:n.hasChildren,children:[qe(n)?K(V,{children:K(Be,{})}):null,e?e(n):n.label??n.nodeId,n.children&&n.children.length>0?K(M,{children:z(n.children,e)}):null]},n.nodeId))}import{jsx as q}from"react/jsx-runtime";var F='[role="treeitem"]:not([data-disabled])',_='[role="treeitem"]';function rt(t){return`${t} loaded`}var[ot,w]=_e("Tree"),P=f.createContext({depth:1,parentId:null});function E(t,e=F){return Array.from(t.querySelectorAll(e))}function v(t){return t.getAttribute("data-skdx-tree-node-id")??""}function at(t){let e=t.getAttribute("data-text-value");if(e!==null)return e;let n="";for(let r of t.childNodes){if(r.nodeType!==1&&r.nodeType!==3)continue;let o=r.nodeType===1?r:null;o&&(o.getAttribute("role")==="group"||o.getAttribute("aria-hidden")==="true")||(n+=r.textContent??"")}return n}function it(t){let e=new Map;for(let r of t.querySelectorAll(_)){let o=v(r);if(!o)continue;let i=r.getAttribute("data-skdx-tree-parent-id")??"",c=e.get(i);c?c.push(o):e.set(i,[o])}let n=new Map;for(let r of e.values())r.forEach((o,i)=>{n.set(o,{posinset:i+1,setsize:r.length})});return n}function dt(t,e){return t.length===e.length&&t.every((n,r)=>n===e[r])}function st(t,e){if(t.size!==e.size)return!1;for(let[n,r]of t){let o=e.get(n);if(!o||o.posinset!==r.posinset||o.setsize!==r.setsize)return!1}return!0}function re(t,e,n,r=F){let o=E(t,r),i=o.indexOf(e);if(i===-1)return;let c=o[i+n];return c?.focus(),c}function ct(t){let{selectionMode:e="single",expandedIds:n,defaultExpandedIds:r=[],onExpandedIdsChange:o,selectedIds:i,defaultSelectedIds:c=[],onSelectedIdsChange:l,checkedIds:g,defaultCheckedIds:m,onCheckedIdsChange:s,selectionPropagation:d="none",loadChildren:a,getLoadedLabel:u=rt,onLoadError:p,onActivate:h,disabledBehavior:C="all",expandOnClick:S=!0,collection:T,renderLabel:b,children:y,...x}=t;return{selectionMode:e,expandedProp:n,defaultExpandedIds:r,onExpandedIdsChange:o,selectedProp:i,defaultSelectedIds:c,onSelectedIdsChange:l,checkedProp:g,defaultCheckedIds:m,onCheckedIdsChange:s,selectionPropagation:d,loadChildren:a,getLoadedLabel:u,onLoadError:p,onActivate:h,disabledBehavior:C,expandOnClick:S,collection:T,renderLabel:b,children:y,rest:x}}function B(t,e,n){let[r=[],o]=Ze({prop:t,defaultProp:e??[],onChange:n});return[r,o]}function lt(t){let[e,n]=f.useState(()=>new Map),r=f.useCallback((d,a)=>{n(u=>u.get(d)===a?u:new Map(u).set(d,a))},[]),o=f.useCallback(d=>{n(a=>{if(!a.has(d))return a;let u=new Map(a);return u.delete(d),u})},[]),i=f.useMemo(()=>{let d=new Map;for(let[a,u]of e){if(u===null)continue;let p=d.get(u);p?p.push(a):d.set(u,[a])}return d},[e]),[c,l]=f.useState(()=>new Map),g=f.useMemo(()=>{let d=null;for(let a of e.keys()){if(!t.has(a))continue;let u=i.get(a)??[],p=c.get(a);p&&dt(p,u)||(d??(d=new Map(c)),d.set(a,u))}return d??c},[e,t,i,c]);g!==c&&l(g);let m=f.useCallback(d=>i.get(d)??g.get(d)??[],[i,g]),s=f.useCallback(d=>{let a=[],u=new Set([d]),p=[...m(d)];for(;p.length>0;){let h=p.pop();u.has(h)||(u.add(h),a.push(h),p.push(...m(h)))}return a},[m]);return{registerNode:r,unregisterNode:o,descendantsOf:s}}function ut(t){let{expandedProp:e,defaultExpandedIds:n,onExpandedIdsChange:r,selectedProp:o,defaultSelectedIds:i,onSelectedIdsChange:c,checkedProp:l,defaultCheckedIds:g,onCheckedIdsChange:m}=t,[s,d]=B(e,n,r),[a,u]=B(o,i,c),p=l!==void 0||g!==void 0,[h,C]=B(l,g,m),S=p?C:u,T=f.useMemo(()=>new Set(s),[s]),b=f.useMemo(()=>new Set(a),[a]),y=f.useMemo(()=>new Set(h),[h]);return{expandedIds:T,selectedIds:b,checkedIds:y,checkedAxisActive:p,setExpandedArr:d,setAxisArr:S}}function ft(t){let{selectionPropagation:e,checkedAxisActive:n,checkedIds:r,selectedIds:o,descendantsOf:i}=t,c=e==="descendants",l=f.useCallback(g=>{let m=n?r:o;if(!c)return!1;let s=i(g);if(s.length===0)return m.has(g);let d=s.filter(a=>m.has(a)).length;return d===0?!1:d===s.length?!0:"mixed"},[n,c,i,r,o]);return{propagating:c,checkedState:l}}function pt(t){let{loadChildren:e,getLoadedLabel:n,onLoadError:r,descendantsOf:o}=t,[i,c]=f.useState(()=>new Set),l=f.useRef(new Set),g=f.useCallback(s=>{if(!e||l.current.has(s))return;l.current.add(s),c(a=>new Set(a).add(s));let d=()=>c(a=>{let u=new Set(a);return u.delete(s),u});Promise.resolve(e(s)).then(()=>{d(),$e(n(s))},a=>{l.current.delete(s),d(),r?.({nodeId:s,error:a})})},[e,n,r]);return{loadingIds:i,startLoad:g,invalidate:s=>{if(s===void 0){l.current.clear();return}l.current.delete(s);for(let d of o(s))l.current.delete(d)}}}function gt(t,e){return{onExpandedChange:f.useCallback((o,i)=>{t((c=[])=>i?[...c,o]:c.filter(l=>l!==o)),i&&e(o)},[t,e]),expandMany:o=>{if(o.length!==0){t((i=[])=>[...new Set([...i,...o])]);for(let i of o)e(i)}}}}function mt(t){let{selectionMode:e,propagating:n,checkedState:r,descendantsOf:o,setAxisArr:i}=t,c=f.useRef(null);return{onSelectedChange:f.useCallback(s=>{if(e!=="none"){if(c.current=s,e==="multiple"&&n){let d=r(s)!==!0,a=[s,...o(s)];i((u=[])=>{let p=new Set(u);for(let h of a)d?p.add(h):p.delete(h);return[...p]});return}i((d=[])=>e==="single"?[s]:d.includes(s)?d.filter(a=>a!==s):[...d,s])}},[e,n,r,o,i]),selectMany:s=>{if(e!=="multiple")return;let d=s[s.length-1];d!==void 0&&(c.current=d),i((a=[])=>[...new Set([...a,...s])])},toggleSelectAll:s=>{e!=="multiple"||s.length===0||i((d=[])=>{let a=new Set(d);return s.every(u=>a.has(u))?d.filter(u=>!s.includes(u)):[...new Set([...d,...s])]})},anchorRef:c}}function ht(t,e,n){let[r,o]=f.useState(null);return f.useLayoutEffect(()=>{let i=Array.from(t.current?.querySelectorAll(e)??[],c=>c.getAttribute("data-skdx-tree-node-id")).filter(c=>c!==null&&c!=="");i.length===0||r!==null&&i.includes(r)||o(i.find(c=>n.has(c))??i[0])}),[r,o]}function Tt(t){let[e,n]=f.useState(()=>new Map);return f.useLayoutEffect(()=>{let r=t.current;if(!r)return;let o=it(r);n(i=>st(i,o)?i:o)}),f.useCallback(r=>e.get(r),[e])}function Ct(t,e,n){if(!(e.multiple&&t.shiftKey&&(n==="ArrowDown"||n==="ArrowUp")))return!1;t.preventDefault();let r=re(e.root,e.target,n==="ArrowDown"?1:-1,e.itemSelector);return r&&e.onSelectedChange(v(r)),!0}function yt(t,e){if(!(e.multiple&&t.shiftKey&&t.key===" "))return!1;t.preventDefault();let r=E(e.root,e.itemSelector).map(v),o=e.anchorRef.current===null?-1:r.indexOf(e.anchorRef.current),i=r.indexOf(e.nodeId);return o===-1||i===-1?e.onSelectedChange(e.nodeId):e.selectMany(r.slice(Math.min(o,i),Math.max(o,i)+1)),!0}function xt(t,e){if(!(e.multiple&&t.shiftKey&&(t.key==="Home"||t.key==="End")))return!1;t.preventDefault();let n=E(e.root,e.itemSelector),r=n.indexOf(e.target),o=t.key==="Home"?0:n.length-1;return e.selectMany(n.slice(Math.min(r,o),Math.max(r,o)+1).map(v)),n[o]?.focus(),!0}function It(t,e){return e.multiple&&(t.ctrlKey||t.metaKey)&&t.key.toLowerCase()==="a"?(t.preventDefault(),e.toggleSelectAll(E(e.root,e.itemSelector).map(v)),!0):!1}function St(t,e,n){return n!=="ArrowRight"?!1:(t.preventDefault(),e.hasChildren&&!e.expanded?e.onExpandedChange(e.nodeId,!0):re(e.root,e.target,1,e.itemSelector),!0)}function bt(t,e,n){return n!=="ArrowLeft"?!1:(t.preventDefault(),e.hasChildren&&e.expanded?e.onExpandedChange(e.nodeId,!1):e.parentId&&E(e.root,e.itemSelector).find(o=>v(o)===e.parentId)?.focus(),!0)}function Rt(t,e){return t.key==="Enter"||t.key===" "?(t.preventDefault(),e.target.hasAttribute("data-disabled")||(e.onSelectedChange(e.nodeId),t.key==="Enter"&&e.activate(e.nodeId)),!0):!1}function vt(t,e){return t.key!=="*"?!1:(t.preventDefault(),e.expandMany(Array.from(e.root.querySelectorAll(_)).filter(n=>(n.getAttribute("data-skdx-tree-parent-id")||"")===e.parentId&&n.getAttribute("aria-expanded")==="false").map(v)),!0)}function kt(t,e){if(!tt(t))return;let n=E(e.root,e.itemSelector),r=e.matchTypeahead(t.key,n.indexOf(e.target));r!==-1&&(t.preventDefault(),n[r].focus())}function Et(t){let{selectionMode:e,itemSelector:n,dir:r,anchorRef:o,onSelectedChange:i,selectMany:c,toggleSelectAll:l,onExpandedChange:g,activate:m,expandMany:s,matchTypeahead:d}=t;return a=>{let u=a.currentTarget,p=a.target;if(!p.matches('[role="treeitem"]'))return;let h=v(p),C=p.getAttribute("aria-expanded"),S=C!==null,T=C==="true",b=p.getAttribute("data-skdx-tree-parent-id")||"",y=e==="multiple",x=Ue(a.key,a.currentTarget,r),I={root:u,target:p,nodeId:h,hasChildren:S,expanded:T,parentId:b,multiple:y,itemSelector:n,anchorRef:o,onSelectedChange:i,selectMany:c,toggleSelectAll:l,onExpandedChange:g,activate:m,expandMany:s,matchTypeahead:d};Ct(a,I,x)||yt(a,I)||xt(a,I)||It(a,I)||St(a,I,x)||bt(a,I,x)||Rt(a,I)||vt(a,I)||kt(a,I)}}var oe=t=>{let{ref:e,...n}=t,{selectionMode:r,expandedProp:o,defaultExpandedIds:i,onExpandedIdsChange:c,selectedProp:l,defaultSelectedIds:g,onSelectedIdsChange:m,checkedProp:s,defaultCheckedIds:d,onCheckedIdsChange:a,selectionPropagation:u,loadChildren:p,getLoadedLabel:h,onLoadError:C,onActivate:S,disabledBehavior:T,expandOnClick:b,collection:y,renderLabel:x,children:I,rest:H}=ct(n),k=f.useRef(null),A=T==="selection"?_:F,ae=Ye(),{expandedIds:U,selectedIds:D,checkedIds:ie,checkedAxisActive:de,setExpandedArr:se,setAxisArr:ce}=ut({expandedProp:o,defaultExpandedIds:i,onExpandedIdsChange:c,selectedProp:l,defaultSelectedIds:g,onSelectedIdsChange:m,checkedProp:s,defaultCheckedIds:d,onCheckedIdsChange:a}),{registerNode:le,unregisterNode:ue,descendantsOf:O}=lt(U),{propagating:fe,checkedState:Y}=ft({selectionPropagation:u,checkedAxisActive:de,checkedIds:ie,selectedIds:D,descendantsOf:O}),{loadingIds:pe,startLoad:ge,invalidate:$}=pt({loadChildren:p,getLoadedLabel:h,onLoadError:C,descendantsOf:O}),{onExpandedChange:j,expandMany:me}=gt(se,ge),{onSelectedChange:J,selectMany:he,toggleSelectAll:Te,anchorRef:Ce}=mt({selectionMode:r,propagating:fe,checkedState:Y,descendantsOf:O,setAxisArr:ce}),Q=Xe(S),[ye,xe]=ht(k,A,D),Ie=Tt(k),Se=f.useMemo(()=>({depth:1,parentId:null}),[]),be=et({orientation:"vertical",loop:!1,itemSelector:A,includeDisabled:T==="selection",typeahead:!1});f.useImperativeHandle(e,()=>k.current?Object.assign(k.current,{invalidate:$}):{invalidate:$});let Re=nt(f.useCallback(()=>k.current?E(k.current,A).map(at):[],[A])),ve=Et({selectionMode:r,itemSelector:A,dir:ae,anchorRef:Ce,onSelectedChange:J,selectMany:he,toggleSelectAll:Te,onExpandedChange:j,activate:Q,expandMany:me,matchTypeahead:Re});return q(ot,{selectionMode:r,selectionPropagation:u,expandedIds:U,selectedIds:D,loadingIds:pe,activeNodeId:ye,setActiveNodeId:xe,disabledBehavior:T,expandOnClick:b,onExpandedChange:j,onSelectedChange:J,onActivate:Q,checkedState:Y,positionOf:Ie,registerNode:le,unregisterNode:ue,children:q(P.Provider,{value:Se,children:q(Qe.div,{role:"tree","aria-multiselectable":r==="multiple"?!0:void 0,...H,...je("tree","root",H.className),ref:k,onKeyDown:Je(H.onKeyDown,We(ve,be)),children:y?z(y,x):I})})})};oe.displayName="Tree";export{oe as Tree,P as TreeAmbientContext,M as TreeGroup,L as TreeItem,V as TreeItemIndicator,Pe as TreeItemProvider,ot as TreeProvider,rt as defaultGetLoadedLabel,G as expandStateAttr,w as useTreeContext,N as useTreeItemContext};
2
+ import*as f from"react";import{createSafeContext as _e}from"../utils/createContext.js";import{directionalKey as Ue,useDirection as Ye}from"../utils/direction.js";import{announce as $e}from"../utils/liveAnnouncer.js";import{skdxPart as je}from"../utils/part.js";import{composeEventHandlers as Je,Primitive as Qe,useComposedEventHandlers as We}from"../utils/primitive.js";import{useCallbackRef as Xe}from"../utils/useCallbackRef.js";import{useControllableState as Ze}from"../utils/useControllableState.js";import{useRovingFocus as et}from"../utils/useRovingFocus.js";import{isTypeaheadKey as tt,useTypeahead as nt}from"../utils/useTypeahead.js";import{Glyph as ze}from"../utils/Glyph.js";import*as ne from"react";import{skdxPart as Ke}from"../utils/part.js";import{Primitive as He}from"../utils/primitive.js";import*as R from"react";import{createSafeContext as ke}from"../utils/createContext.js";import{skdxPart as Ee}from"../utils/part.js";import{composeEventHandlers as W,Primitive as Ae}from"../utils/primitive.js";import{rovingTabIndex as Me}from"../utils/useRovingFocus.js";import{jsx as Z}from"react/jsx-runtime";var[Pe,N]=ke("TreeItem");function X(t){return t.target.closest('[role="treeitem"]')!==t.currentTarget}function G(t,e){if(t)return e?"expanded":"collapsed"}function Ne(t,e,n){if(!(t==="none"||e))return n}function Le(t){if(t!==void 0)return t==="mixed"?"mixed":t}function we(t){if(t!==void 0)return t==="mixed"?"indeterminate":t?"checked":"unchecked"}function ee(t){return R.Children.toArray(t).some(e=>R.isValidElement(e)?e.type===M?!0:e.type===L?!1:ee(e.props.children):!1)}var L=({nodeId:t,disabled:e=!1,hasChildren:n,textValue:r,children:o,ref:i,...c})=>{let l=w("TreeItem"),g=R.useContext(P),m=e&&l.disabledBehavior==="all",s=n??ee(o),d=l.expandedIds.has(t),a=l.selectedIds.has(t),u=l.loadingIds.has(t),p=Me(l.activeNodeId!==null,l.activeNodeId===t,m),{registerNode:h,unregisterNode:C}=l,S=g.parentId;R.useEffect(()=>(h(t,S),()=>C(t)),[t,S,h,C]);let T=l.selectionPropagation==="descendants"?l.checkedState(t):void 0,b=T!==void 0,y=l.positionOf(t);return Z(Pe,{nodeId:t,depth:g.depth,expanded:d,selected:a,disabled:e,hasChildren:s,loading:u,children:Z(Ae.div,{role:"treeitem","aria-level":g.depth,"aria-posinset":y?.posinset,"aria-setsize":y?.setsize,"aria-selected":Ne(l.selectionMode,b,a),"aria-expanded":s?d:void 0,"aria-checked":Le(T),"aria-busy":u||void 0,"aria-disabled":e||void 0,"data-state":G(s,d),"data-checked":we(T),"data-loading":u?"":void 0,"data-disabled":e?"":void 0,"data-text-value":r,"data-skdx-tree-node-id":t,"data-skdx-tree-parent-id":g.parentId??void 0,tabIndex:p,...c,...Ee("tree","item",c.className),style:{"--skdx-tree-node-depth":g.depth,...c.style},ref:i,onClick:W(c.onClick,x=>{e||X(x)||(l.onSelectedChange(t),l.onActivate(t),s&&l.expandOnClick&&l.onExpandedChange(t,!d))}),onFocus:W(c.onFocus,x=>{!m&&!X(x)&&l.setActiveNodeId(t)}),children:o})})};L.displayName="TreeItem";import{jsx as te}from"react/jsx-runtime";var M=({forceMount:t,children:e,ref:n,...r})=>{let o=N("TreeGroup"),i=ne.useMemo(()=>({depth:o.depth+1,parentId:o.nodeId}),[o.depth,o.nodeId]);return t||o.expanded?te(P.Provider,{value:i,children:te(He.div,{role:"group","data-state":o.expanded?"expanded":"collapsed",...r,...Ke("tree","group",r.className),ref:n,children:e})}):null};M.displayName="TreeGroup";import{skdxPart as De}from"../utils/part.js";import{composeEventHandlers as Oe,Primitive as Ge}from"../utils/primitive.js";import{jsx as Ve}from"react/jsx-runtime";var V=({ref:t,...e})=>{let n=w("TreeItemIndicator"),r=N("TreeItemIndicator");return Ve(Ge.span,{"aria-hidden":"true","data-state":G(r.hasChildren,r.expanded),...e,...De("tree","item-indicator",e.className),ref:t,onClick:Oe(e.onClick,o=>{o.stopPropagation(),r.hasChildren&&n.onExpandedChange(r.nodeId,!r.expanded)})})};V.displayName="TreeItemIndicator";import{jsx as K,jsxs as Fe}from"react/jsx-runtime";var Be=()=>K(ze,{name:"chevron-right"}),qe=t=>t.hasChildren??(t.children?.length??0)>0;function z(t,e){return t.map(n=>Fe(L,{nodeId:n.nodeId,disabled:n.disabled,textValue:n.textValue,hasChildren:n.hasChildren,children:[qe(n)?K(V,{children:K(Be,{})}):null,e?e(n):n.label??n.nodeId,n.children&&n.children.length>0?K(M,{children:z(n.children,e)}):null]},n.nodeId))}import{jsx as q}from"react/jsx-runtime";var F='[role="treeitem"]:not([data-disabled])',_='[role="treeitem"]';function rt(t){return`${t} loaded`}var[ot,w]=_e("Tree"),P=f.createContext({depth:1,parentId:null});function E(t,e=F){return Array.from(t.querySelectorAll(e))}function v(t){return t.getAttribute("data-skdx-tree-node-id")??""}function at(t){let e=t.getAttribute("data-text-value");if(e!==null)return e;let n="";for(let r of t.childNodes){if(r.nodeType!==1&&r.nodeType!==3)continue;let o=r.nodeType===1?r:null;o&&(o.getAttribute("role")==="group"||o.getAttribute("aria-hidden")==="true")||(n+=r.textContent??"")}return n}function it(t){let e=new Map;for(let r of t.querySelectorAll(_)){let o=v(r);if(!o)continue;let i=r.getAttribute("data-skdx-tree-parent-id")??"",c=e.get(i);c?c.push(o):e.set(i,[o])}let n=new Map;for(let r of e.values())r.forEach((o,i)=>{n.set(o,{posinset:i+1,setsize:r.length})});return n}function dt(t,e){return t.length===e.length&&t.every((n,r)=>n===e[r])}function st(t,e){if(t.size!==e.size)return!1;for(let[n,r]of t){let o=e.get(n);if(!o||o.posinset!==r.posinset||o.setsize!==r.setsize)return!1}return!0}function re(t,e,n,r=F){let o=E(t,r),i=o.indexOf(e);if(i===-1)return;let c=o[i+n];return c?.focus(),c}function ct(t){let{selectionMode:e="single",expandedIds:n,defaultExpandedIds:r=[],onExpandedIdsChange:o,selectedIds:i,defaultSelectedIds:c=[],onSelectedIdsChange:l,checkedIds:g,defaultCheckedIds:m,onCheckedIdsChange:s,selectionPropagation:d="none",loadChildren:a,getLoadedLabel:u=rt,onLoadError:p,onActivate:h,disabledBehavior:C="all",expandOnClick:S=!0,collection:T,renderLabel:b,children:y,...x}=t;return{selectionMode:e,expandedProp:n,defaultExpandedIds:r,onExpandedIdsChange:o,selectedProp:i,defaultSelectedIds:c,onSelectedIdsChange:l,checkedProp:g,defaultCheckedIds:m,onCheckedIdsChange:s,selectionPropagation:d,loadChildren:a,getLoadedLabel:u,onLoadError:p,onActivate:h,disabledBehavior:C,expandOnClick:S,collection:T,renderLabel:b,children:y,rest:x}}function B(t,e,n){let[r=[],o]=Ze({prop:t,defaultProp:e??[],onChange:n});return[r,o]}function lt(t){let[e,n]=f.useState(()=>new Map),r=f.useCallback((d,a)=>{n(u=>u.get(d)===a?u:new Map(u).set(d,a))},[]),o=f.useCallback(d=>{n(a=>{if(!a.has(d))return a;let u=new Map(a);return u.delete(d),u})},[]),i=f.useMemo(()=>{let d=new Map;for(let[a,u]of e){if(u===null)continue;let p=d.get(u);p?p.push(a):d.set(u,[a])}return d},[e]),[c,l]=f.useState(()=>new Map),g=f.useMemo(()=>{let d=null;for(let a of e.keys()){if(!t.has(a))continue;let u=i.get(a)??[],p=c.get(a);p&&dt(p,u)||(d??(d=new Map(c)),d.set(a,u))}return d??c},[e,t,i,c]);g!==c&&l(g);let m=f.useCallback(d=>i.get(d)??g.get(d)??[],[i,g]),s=f.useCallback(d=>{let a=[],u=new Set([d]),p=[...m(d)];for(;p.length>0;){let h=p.pop();u.has(h)||(u.add(h),a.push(h),p.push(...m(h)))}return a},[m]);return{registerNode:r,unregisterNode:o,descendantsOf:s}}function ut(t){let{expandedProp:e,defaultExpandedIds:n,onExpandedIdsChange:r,selectedProp:o,defaultSelectedIds:i,onSelectedIdsChange:c,checkedProp:l,defaultCheckedIds:g,onCheckedIdsChange:m}=t,[s,d]=B(e,n,r),[a,u]=B(o,i,c),p=l!==void 0||g!==void 0,[h,C]=B(l,g,m),S=p?C:u,T=f.useMemo(()=>new Set(s),[s]),b=f.useMemo(()=>new Set(a),[a]),y=f.useMemo(()=>new Set(h),[h]);return{expandedIds:T,selectedIds:b,checkedIds:y,checkedAxisActive:p,setExpandedArr:d,setAxisArr:S}}function ft(t){let{selectionPropagation:e,checkedAxisActive:n,checkedIds:r,selectedIds:o,descendantsOf:i}=t,c=e==="descendants",l=f.useCallback(g=>{let m=n?r:o;if(!c)return!1;let s=i(g);if(s.length===0)return m.has(g);let d=s.filter(a=>m.has(a)).length;return d===0?!1:d===s.length?!0:"mixed"},[n,c,i,r,o]);return{propagating:c,checkedState:l}}function pt(t){let{loadChildren:e,getLoadedLabel:n,onLoadError:r,descendantsOf:o}=t,[i,c]=f.useState(()=>new Set),l=f.useRef(new Set),g=f.useCallback(s=>{if(!e||l.current.has(s))return;l.current.add(s),c(a=>new Set(a).add(s));let d=()=>c(a=>{let u=new Set(a);return u.delete(s),u});Promise.resolve(e(s)).then(()=>{d(),$e(n(s))},a=>{l.current.delete(s),d(),r?.({nodeId:s,error:a})})},[e,n,r]);return{loadingIds:i,startLoad:g,invalidate:s=>{if(s===void 0){l.current.clear();return}l.current.delete(s);for(let d of o(s))l.current.delete(d)}}}function gt(t,e){return{onExpandedChange:f.useCallback((o,i)=>{t((c=[])=>i?[...c,o]:c.filter(l=>l!==o)),i&&e(o)},[t,e]),expandMany:o=>{if(o.length!==0){t((i=[])=>[...new Set([...i,...o])]);for(let i of o)e(i)}}}}function mt(t){let{selectionMode:e,propagating:n,checkedState:r,descendantsOf:o,setAxisArr:i}=t,c=f.useRef(null);return{onSelectedChange:f.useCallback(s=>{if(e!=="none"){if(c.current=s,e==="multiple"&&n){let d=r(s)!==!0,a=[s,...o(s)];i((u=[])=>{let p=new Set(u);for(let h of a)d?p.add(h):p.delete(h);return[...p]});return}i((d=[])=>e==="single"?[s]:d.includes(s)?d.filter(a=>a!==s):[...d,s])}},[e,n,r,o,i]),selectMany:s=>{if(e!=="multiple")return;let d=s[s.length-1];d!==void 0&&(c.current=d),i((a=[])=>[...new Set([...a,...s])])},toggleSelectAll:s=>{e!=="multiple"||s.length===0||i((d=[])=>{let a=new Set(d);return s.every(u=>a.has(u))?d.filter(u=>!s.includes(u)):[...new Set([...d,...s])]})},anchorRef:c}}function ht(t,e,n){let[r,o]=f.useState(null);return f.useLayoutEffect(()=>{let i=Array.from(t.current?.querySelectorAll(e)??[],c=>c.getAttribute("data-skdx-tree-node-id")).filter(c=>c!==null&&c!=="");i.length===0||r!==null&&i.includes(r)||o(i.find(c=>n.has(c))??i[0])}),[r,o]}function Tt(t){let[e,n]=f.useState(()=>new Map);return f.useLayoutEffect(()=>{let r=t.current;if(!r)return;let o=it(r);n(i=>st(i,o)?i:o)}),f.useCallback(r=>e.get(r),[e])}function Ct(t,e,n){if(!(e.multiple&&t.shiftKey&&(n==="ArrowDown"||n==="ArrowUp")))return!1;t.preventDefault();let r=re(e.root,e.target,n==="ArrowDown"?1:-1,e.itemSelector);return r&&e.onSelectedChange(v(r)),!0}function yt(t,e){if(!(e.multiple&&t.shiftKey&&t.key===" "))return!1;t.preventDefault();let r=E(e.root,e.itemSelector).map(v),o=e.anchorRef.current===null?-1:r.indexOf(e.anchorRef.current),i=r.indexOf(e.nodeId);return o===-1||i===-1?e.onSelectedChange(e.nodeId):e.selectMany(r.slice(Math.min(o,i),Math.max(o,i)+1)),!0}function xt(t,e){if(!(e.multiple&&t.shiftKey&&(t.key==="Home"||t.key==="End")))return!1;t.preventDefault();let n=E(e.root,e.itemSelector),r=n.indexOf(e.target),o=t.key==="Home"?0:n.length-1;return e.selectMany(n.slice(Math.min(r,o),Math.max(r,o)+1).map(v)),n[o]?.focus(),!0}function It(t,e){return e.multiple&&(t.ctrlKey||t.metaKey)&&t.key.toLowerCase()==="a"?(t.preventDefault(),e.toggleSelectAll(E(e.root,e.itemSelector).map(v)),!0):!1}function St(t,e,n){return n!=="ArrowRight"?!1:(t.preventDefault(),e.hasChildren&&!e.expanded?e.onExpandedChange(e.nodeId,!0):re(e.root,e.target,1,e.itemSelector),!0)}function bt(t,e,n){return n!=="ArrowLeft"?!1:(t.preventDefault(),e.hasChildren&&e.expanded?e.onExpandedChange(e.nodeId,!1):e.parentId&&E(e.root,e.itemSelector).find(o=>v(o)===e.parentId)?.focus(),!0)}function Rt(t,e){return t.key==="Enter"||t.key===" "?(t.preventDefault(),e.target.hasAttribute("data-disabled")||(e.onSelectedChange(e.nodeId),t.key==="Enter"&&e.activate(e.nodeId)),!0):!1}function vt(t,e){return t.key!=="*"?!1:(t.preventDefault(),e.expandMany(Array.from(e.root.querySelectorAll(_)).filter(n=>(n.getAttribute("data-skdx-tree-parent-id")||"")===e.parentId&&n.getAttribute("aria-expanded")==="false").map(v)),!0)}function kt(t,e){if(!tt(t))return;let n=E(e.root,e.itemSelector),r=e.matchTypeahead(t.key,n.indexOf(e.target));r!==-1&&(t.preventDefault(),n[r].focus())}function Et(t){let{selectionMode:e,itemSelector:n,dir:r,anchorRef:o,onSelectedChange:i,selectMany:c,toggleSelectAll:l,onExpandedChange:g,activate:m,expandMany:s,matchTypeahead:d}=t;return a=>{let u=a.currentTarget,p=a.target;if(!p.matches('[role="treeitem"]'))return;let h=v(p),C=p.getAttribute("aria-expanded"),S=C!==null,T=C==="true",b=p.getAttribute("data-skdx-tree-parent-id")||"",y=e==="multiple",x=Ue(a.key,a.currentTarget,r),I={root:u,target:p,nodeId:h,hasChildren:S,expanded:T,parentId:b,multiple:y,itemSelector:n,anchorRef:o,onSelectedChange:i,selectMany:c,toggleSelectAll:l,onExpandedChange:g,activate:m,expandMany:s,matchTypeahead:d};Ct(a,I,x)||yt(a,I)||xt(a,I)||It(a,I)||St(a,I,x)||bt(a,I,x)||Rt(a,I)||vt(a,I)||kt(a,I)}}var oe=t=>{let{ref:e,...n}=t,{selectionMode:r,expandedProp:o,defaultExpandedIds:i,onExpandedIdsChange:c,selectedProp:l,defaultSelectedIds:g,onSelectedIdsChange:m,checkedProp:s,defaultCheckedIds:d,onCheckedIdsChange:a,selectionPropagation:u,loadChildren:p,getLoadedLabel:h,onLoadError:C,onActivate:S,disabledBehavior:T,expandOnClick:b,collection:y,renderLabel:x,children:I,rest:H}=ct(n),k=f.useRef(null),A=T==="selection"?_:F,ae=Ye(),{expandedIds:U,selectedIds:D,checkedIds:ie,checkedAxisActive:de,setExpandedArr:se,setAxisArr:ce}=ut({expandedProp:o,defaultExpandedIds:i,onExpandedIdsChange:c,selectedProp:l,defaultSelectedIds:g,onSelectedIdsChange:m,checkedProp:s,defaultCheckedIds:d,onCheckedIdsChange:a}),{registerNode:le,unregisterNode:ue,descendantsOf:O}=lt(U),{propagating:fe,checkedState:Y}=ft({selectionPropagation:u,checkedAxisActive:de,checkedIds:ie,selectedIds:D,descendantsOf:O}),{loadingIds:pe,startLoad:ge,invalidate:$}=pt({loadChildren:p,getLoadedLabel:h,onLoadError:C,descendantsOf:O}),{onExpandedChange:j,expandMany:me}=gt(se,ge),{onSelectedChange:J,selectMany:he,toggleSelectAll:Te,anchorRef:Ce}=mt({selectionMode:r,propagating:fe,checkedState:Y,descendantsOf:O,setAxisArr:ce}),Q=Xe(S),[ye,xe]=ht(k,A,D),Ie=Tt(k),Se=f.useMemo(()=>({depth:1,parentId:null}),[]),be=et({orientation:"vertical",loop:!1,itemSelector:A,includeDisabled:T==="selection",typeahead:!1});f.useImperativeHandle(e,()=>k.current?Object.assign(k.current,{invalidate:$}):{invalidate:$});let Re=nt(f.useCallback(()=>k.current?E(k.current,A).map(at):[],[A])),ve=Et({selectionMode:r,itemSelector:A,dir:ae,anchorRef:Ce,onSelectedChange:J,selectMany:he,toggleSelectAll:Te,onExpandedChange:j,activate:Q,expandMany:me,matchTypeahead:Re});return q(ot,{selectionMode:r,selectionPropagation:u,expandedIds:U,selectedIds:D,loadingIds:pe,activeNodeId:ye,setActiveNodeId:xe,disabledBehavior:T,expandOnClick:b,onExpandedChange:j,onSelectedChange:J,onActivate:Q,checkedState:Y,positionOf:Ie,registerNode:le,unregisterNode:ue,children:q(P.Provider,{value:Se,children:q(Qe.div,{role:"tree","aria-multiselectable":r==="multiple"?!0:void 0,...H,...je("tree","root",H.className),ref:k,onKeyDown:Je(H.onKeyDown,We(ve,be)),children:y?z(y,x):I})})})};oe.displayName="Tree";export{oe as Tree,P as TreeAmbientContext,M as TreeGroup,L as TreeItem,V as TreeItemIndicator,Pe as TreeItemProvider,ot as TreeProvider,rt as defaultGetLoadedLabel,G as expandStateAttr,w as useTreeContext,N as useTreeItemContext};
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- "use strict";var u=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var F=Object.getOwnPropertyNames;var g=Object.prototype.hasOwnProperty;var p=(e,t)=>{for(var n in t)u(e,n,{get:t[n],enumerable:!0})},T=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of F(t))!g.call(e,r)&&r!==n&&u(e,r,{get:()=>t[r],enumerable:!(o=m(t,r))||o.enumerable});return e};var h=e=>T(u({},"__esModule",{value:!0}),e);var M={};p(M,{applyFinalFocus:()=>d,applyInitialFocus:()=>f,applyOpenAutoFocus:()=>y,initialFocusTarget:()=>L,resolveFocusSelector:()=>a,returnFocus:()=>H});module.exports=h(M);var i=require("./dismissal.cjs"),c=require("./tabbable.cjs"),E={Dialog:"the Cancel button when present, then the first tabbable element, then the panel itself",Drawer:"the first tabbable element, then the panel itself",Popover:"the first tabbable element, then the panel itself"},b={Dialog:"[data-skdx-dialog-cancel]"},v={Dialog:"the dialog panel",Drawer:"the drawer panel",Popover:"the popover panel"};function a(e,t,n,o){if(!t)return null;let r;try{r=e.querySelector(t)}catch{return console.warn(`[skdx] ${o}: ${n}="${t}" is not a valid CSS selector. Falling back to the default focus target.`),null}return r||console.warn(n==="initialFocus"?`[skdx] ${o}: initialFocus="${t}" matched no element inside ${v[o]}. Falling back to ${E[o]}.`:`[skdx] ${o}: finalFocus="${t}" matched no element in the document. Falling back to the element that was focused before it opened.`),r}function s(e,t){let n=b[t];return n?e.querySelector(n):null}function L(e,t,n){return a(e,t,"initialFocus",n)??s(e,n)??e.querySelector(c.TABBABLE_SELECTOR)??e}function f(e,t,n){let o=a(e,t,"initialFocus",n)??s(e,n);if(o){o.focus({preventScroll:!0});return}if(e.contains(document.activeElement))return;let l=e.querySelector(c.TABBABLE_SELECTOR)??e;l===e&&e.tabIndex<0&&(e.tabIndex=-1),l.focus?.({preventScroll:!0})}function d(e,t){let n=a(document,e,"finalFocus",t);return n?(n.focus({preventScroll:!0}),!0):!1}function y(e,t,n,o,r){let l=document.activeElement;return(0,i.autoFocusEvent)("open-auto-focus",o)?(f(e,t,n),!0):(document.activeElement===l&&r?.isConnected&&e.contains(l)&&r.focus({preventScroll:!0}),!1)}function H(e,t,n,o){return(0,i.autoFocusEvent)("close-auto-focus",o)?d(e,t)?!0:!n?.isConnected||n===document.body||n===document.documentElement?!1:(n.focus({preventScroll:!0}),!0):!1}0&&(module.exports={applyFinalFocus,applyInitialFocus,applyOpenAutoFocus,initialFocusTarget,resolveFocusSelector,returnFocus});
2
+ "use strict";var i=Object.defineProperty;var F=Object.getOwnPropertyDescriptor;var T=Object.getOwnPropertyNames;var g=Object.prototype.hasOwnProperty;var p=(e,t)=>{for(var n in t)i(e,n,{get:t[n],enumerable:!0})},E=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let l of T(t))!g.call(e,l)&&l!==n&&i(e,l,{get:()=>t[l],enumerable:!(o=F(t,l))||o.enumerable});return e};var h=e=>E(i({},"__esModule",{value:!0}),e);var x={};p(x,{applyFinalFocus:()=>m,applyInitialFocus:()=>d,applyOpenAutoFocus:()=>H,initialFocusTarget:()=>y,resolveFocusSelector:()=>u,returnFocus:()=>M});module.exports=h(x);var a=require("./dismissal.cjs"),c=require("./tabbable.cjs"),v={Dialog:"the Cancel button when present, then the first tabbable element, then the panel itself",Drawer:"the first tabbable element, then the panel itself",Popover:"the first tabbable element, then the panel itself"},b={Dialog:"[data-skdx-dialog-cancel]"},L={Dialog:"the dialog panel",Drawer:"the drawer panel",Popover:"the popover panel"};function u(e,t,n,o){if(!t)return null;let l;try{l=e.querySelector(t)}catch{return console.warn(`[skdx] ${o}: ${n}="${t}" is not a valid CSS selector. Falling back to the default focus target.`),null}return l||console.warn(n==="initialFocus"?`[skdx] ${o}: initialFocus="${t}" matched no element inside ${L[o]}. Falling back to ${v[o]}.`:`[skdx] ${o}: finalFocus="${t}" matched no element in the document. Falling back to the element that was focused before it opened.`),l}function s(e,t){let n=b[t];return n?e.querySelector(n):null}function y(e,t,n){return u(e,t,"initialFocus",n)??s(e,n)??e.querySelector(c.TABBABLE_SELECTOR)??e}function d(e,t,n){let o=u(e,t,"initialFocus",n)??s(e,n);if(o){o.focus({preventScroll:!0});return}if(e.contains(document.activeElement))return;let r=e.querySelector(c.TABBABLE_SELECTOR)??e;r===e&&e.tabIndex<0&&(e.tabIndex=-1),r.focus?.({preventScroll:!0})}function f(e){e.focus({preventScroll:!0}),setTimeout(()=>{let t=document.activeElement;e.isConnected&&(t===null||t===document.body)&&e.focus({preventScroll:!0})})}function m(e,t){let n=u(document,e,"finalFocus",t);return n?(f(n),!0):!1}function H(e,t,n,o,l){let r=document.activeElement;return(0,a.autoFocusEvent)("open-auto-focus",o)?(d(e,t,n),!0):(document.activeElement===r&&l?.isConnected&&e.contains(r)&&l.focus({preventScroll:!0}),!1)}function M(e,t,n,o){return(0,a.autoFocusEvent)("close-auto-focus",o)?m(e,t)?!0:!n?.isConnected||n===document.body||n===document.documentElement?!1:(f(n),!0):!1}0&&(module.exports={applyFinalFocus,applyInitialFocus,applyOpenAutoFocus,initialFocusTarget,resolveFocusSelector,returnFocus});
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- import{autoFocusEvent as u}from"./dismissal.js";import{TABBABLE_SELECTOR as i}from"./tabbable.js";var s={Dialog:"the Cancel button when present, then the first tabbable element, then the panel itself",Drawer:"the first tabbable element, then the panel itself",Popover:"the first tabbable element, then the panel itself"},f={Dialog:"[data-skdx-dialog-cancel]"},d={Dialog:"the dialog panel",Drawer:"the drawer panel",Popover:"the popover panel"};function a(e,n,t,o){if(!n)return null;let r;try{r=e.querySelector(n)}catch{return console.warn(`[skdx] ${o}: ${t}="${n}" is not a valid CSS selector. Falling back to the default focus target.`),null}return r||console.warn(t==="initialFocus"?`[skdx] ${o}: initialFocus="${n}" matched no element inside ${d[o]}. Falling back to ${s[o]}.`:`[skdx] ${o}: finalFocus="${n}" matched no element in the document. Falling back to the element that was focused before it opened.`),r}function c(e,n){let t=f[n];return t?e.querySelector(t):null}function T(e,n,t){return a(e,n,"initialFocus",t)??c(e,t)??e.querySelector(i)??e}function m(e,n,t){let o=a(e,n,"initialFocus",t)??c(e,t);if(o){o.focus({preventScroll:!0});return}if(e.contains(document.activeElement))return;let l=e.querySelector(i)??e;l===e&&e.tabIndex<0&&(e.tabIndex=-1),l.focus?.({preventScroll:!0})}function F(e,n){let t=a(document,e,"finalFocus",n);return t?(t.focus({preventScroll:!0}),!0):!1}function h(e,n,t,o,r){let l=document.activeElement;return u("open-auto-focus",o)?(m(e,n,t),!0):(document.activeElement===l&&r?.isConnected&&e.contains(l)&&r.focus({preventScroll:!0}),!1)}function E(e,n,t,o){return u("close-auto-focus",o)?F(e,n)?!0:!t?.isConnected||t===document.body||t===document.documentElement?!1:(t.focus({preventScroll:!0}),!0):!1}export{F as applyFinalFocus,m as applyInitialFocus,h as applyOpenAutoFocus,T as initialFocusTarget,a as resolveFocusSelector,E as returnFocus};
2
+ import{autoFocusEvent as i}from"./dismissal.js";import{TABBABLE_SELECTOR as a}from"./tabbable.js";var d={Dialog:"the Cancel button when present, then the first tabbable element, then the panel itself",Drawer:"the first tabbable element, then the panel itself",Popover:"the first tabbable element, then the panel itself"},f={Dialog:"[data-skdx-dialog-cancel]"},m={Dialog:"the dialog panel",Drawer:"the drawer panel",Popover:"the popover panel"};function u(e,n,t,o){if(!n)return null;let l;try{l=e.querySelector(n)}catch{return console.warn(`[skdx] ${o}: ${t}="${n}" is not a valid CSS selector. Falling back to the default focus target.`),null}return l||console.warn(t==="initialFocus"?`[skdx] ${o}: initialFocus="${n}" matched no element inside ${m[o]}. Falling back to ${d[o]}.`:`[skdx] ${o}: finalFocus="${n}" matched no element in the document. Falling back to the element that was focused before it opened.`),l}function c(e,n){let t=f[n];return t?e.querySelector(t):null}function E(e,n,t){return u(e,n,"initialFocus",t)??c(e,t)??e.querySelector(a)??e}function F(e,n,t){let o=u(e,n,"initialFocus",t)??c(e,t);if(o){o.focus({preventScroll:!0});return}if(e.contains(document.activeElement))return;let r=e.querySelector(a)??e;r===e&&e.tabIndex<0&&(e.tabIndex=-1),r.focus?.({preventScroll:!0})}function s(e){e.focus({preventScroll:!0}),setTimeout(()=>{let n=document.activeElement;e.isConnected&&(n===null||n===document.body)&&e.focus({preventScroll:!0})})}function T(e,n){let t=u(document,e,"finalFocus",n);return t?(s(t),!0):!1}function h(e,n,t,o,l){let r=document.activeElement;return i("open-auto-focus",o)?(F(e,n,t),!0):(document.activeElement===r&&l?.isConnected&&e.contains(r)&&l.focus({preventScroll:!0}),!1)}function v(e,n,t,o){return i("close-auto-focus",o)?T(e,n)?!0:!t?.isConnected||t===document.body||t===document.documentElement?!1:(s(t),!0):!1}export{T as applyFinalFocus,F as applyInitialFocus,h as applyOpenAutoFocus,E as initialFocusTarget,u as resolveFocusSelector,v as returnFocus};
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- "use strict";var l=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var s=Object.getOwnPropertyNames;var a=Object.prototype.hasOwnProperty;var f=(t,e)=>{for(var n in e)l(t,n,{get:e[n],enumerable:!0})},E=(t,e,n,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of s(e))!a.call(t,r)&&r!==n&&l(t,r,{get:()=>e[r],enumerable:!(o=u(e,r))||o.enumerable});return t};var d=t=>E(l({},"__esModule",{value:!0}),t);var h={};f(h,{activateLabelledButton:()=>p});module.exports=d(h);var i='a[href], button, input, select, textarea, [tabindex]:not([tabindex="-1"])',m="radio, checkbox, switch, menuitemcheckbox, menuitemradio",b='button, [role="radio"], [role="checkbox"], [role="switch"]';function T(t){let n=t instanceof HTMLButtonElement||m.split(", ").includes(t.getAttribute("role")??"")?t:t.querySelector(b);return!(n instanceof HTMLElement)||n instanceof HTMLInputElement||n.disabled||n.getAttribute("aria-disabled")==="true"?null:n}function L(t,e){let n=`#${CSS.escape(e)}`;for(let o=t.parentElement;o;o=o.parentElement){let r=o.querySelector(n);if(r)return r}return t.getRootNode().getElementById(e)}function p(t,e){if(e.defaultPrevented)return;let n=t.getAttribute("for");if(!n)return;let o=e.target instanceof Element?e.target:null;if(o&&o!==t&&o.closest(i)!==t.closest(i))return;let r=L(t,n),c=r&&T(r);c&&(e.preventDefault(),c.focus(),c.click())}0&&(module.exports={activateLabelledButton});
2
+ "use strict";var c=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var s=Object.getOwnPropertyNames;var a=Object.prototype.hasOwnProperty;var f=(t,e)=>{for(var n in e)c(t,n,{get:e[n],enumerable:!0})},d=(t,e,n,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of s(e))!a.call(t,r)&&r!==n&&c(t,r,{get:()=>e[r],enumerable:!(o=u(e,r))||o.enumerable});return t};var E=t=>d(c({},"__esModule",{value:!0}),t);var g={};f(g,{activateLabelledButton:()=>p});module.exports=E(g);var i='a[href], button, input, select, textarea, [tabindex]:not([tabindex="-1"])',m="radio, checkbox, switch, menuitemcheckbox, menuitemradio",b='button, [role="radio"], [role="checkbox"], [role="switch"]';function T(t){let n=t instanceof HTMLButtonElement||m.split(", ").includes(t.getAttribute("role")??"")?t:t.querySelector(b);return!(n instanceof HTMLElement)||n instanceof HTMLInputElement||n.disabled||n.getAttribute("aria-disabled")==="true"?null:n}function L(t,e){let n=`[id="${e.replace(/["\\]/g,"\\$&")}"]`;for(let o=t.parentElement;o;o=o.parentElement){let r=o.querySelector(n);if(r)return r}return t.getRootNode().getElementById(e)}function p(t,e){if(e.defaultPrevented)return;let n=t.getAttribute("for");if(!n)return;let o=e.target instanceof Element?e.target:null;if(o&&o!==t&&o.closest(i)!==t.closest(i))return;let r=L(t,n),l=r&&T(r);l&&(e.preventDefault(),l.focus(),l.click())}0&&(module.exports={activateLabelledButton});
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- var l='a[href], button, input, select, textarea, [tabindex]:not([tabindex="-1"])',i="radio, checkbox, switch, menuitemcheckbox, menuitemradio",u='button, [role="radio"], [role="checkbox"], [role="switch"]';function s(t){let e=t instanceof HTMLButtonElement||i.split(", ").includes(t.getAttribute("role")??"")?t:t.querySelector(u);return!(e instanceof HTMLElement)||e instanceof HTMLInputElement||e.disabled||e.getAttribute("aria-disabled")==="true"?null:e}function a(t,n){let e=`#${CSS.escape(n)}`;for(let o=t.parentElement;o;o=o.parentElement){let r=o.querySelector(e);if(r)return r}return t.getRootNode().getElementById(n)}function f(t,n){if(n.defaultPrevented)return;let e=t.getAttribute("for");if(!e)return;let o=n.target instanceof Element?n.target:null;if(o&&o!==t&&o.closest(l)!==t.closest(l))return;let r=a(t,e),c=r&&s(r);c&&(n.preventDefault(),c.focus(),c.click())}export{f as activateLabelledButton};
2
+ var c='a[href], button, input, select, textarea, [tabindex]:not([tabindex="-1"])',i="radio, checkbox, switch, menuitemcheckbox, menuitemradio",u='button, [role="radio"], [role="checkbox"], [role="switch"]';function s(t){let e=t instanceof HTMLButtonElement||i.split(", ").includes(t.getAttribute("role")??"")?t:t.querySelector(u);return!(e instanceof HTMLElement)||e instanceof HTMLInputElement||e.disabled||e.getAttribute("aria-disabled")==="true"?null:e}function a(t,n){let e=`[id="${n.replace(/["\\]/g,"\\$&")}"]`;for(let o=t.parentElement;o;o=o.parentElement){let r=o.querySelector(e);if(r)return r}return t.getRootNode().getElementById(n)}function f(t,n){if(n.defaultPrevented)return;let e=t.getAttribute("for");if(!e)return;let o=n.target instanceof Element?n.target:null;if(o&&o!==t&&o.closest(c)!==t.closest(c))return;let r=a(t,e),l=r&&s(r);l&&(n.preventDefault(),l.focus(),l.click())}export{f as activateLabelledButton};
@@ -35,12 +35,12 @@ export interface PopperContentProps extends PrimitivePropsWithRef<'div'> {
35
35
  side?: Side | undefined;
36
36
  /**
37
37
  * Alignment of the content along the chosen side.
38
- * @default 'center'
38
+ * @default 'center' — except on the list popups (menu, menubar, select, combobox, autocomplete, mentions, tree-select) and submenus, which align to `'start'`.
39
39
  */
40
40
  align?: Align | undefined;
41
41
  /**
42
42
  * Distance in pixels between the content and the anchor along `side`.
43
- * @default 0
43
+ * @default 0 — except on the popups that set their own: `4` on popover, date picker and the list popups, `8` on speed dial and tour.
44
44
  */
45
45
  sideOffset?: number | undefined;
46
46
  /**
@@ -35,12 +35,12 @@ export interface PopperContentProps extends PrimitivePropsWithRef<'div'> {
35
35
  side?: Side | undefined;
36
36
  /**
37
37
  * Alignment of the content along the chosen side.
38
- * @default 'center'
38
+ * @default 'center' — except on the list popups (menu, menubar, select, combobox, autocomplete, mentions, tree-select) and submenus, which align to `'start'`.
39
39
  */
40
40
  align?: Align | undefined;
41
41
  /**
42
42
  * Distance in pixels between the content and the anchor along `side`.
43
- * @default 0
43
+ * @default 0 — except on the popups that set their own: `4` on popover, date picker and the list popups, `8` on speed dial and tour.
44
44
  */
45
45
  sideOffset?: number | undefined;
46
46
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skdx/react",
3
- "version": "0.38.0",
3
+ "version": "0.39.0",
4
4
  "description": "Accessible React components for the SkandaDX design system — the core layer, styled by @skdx/skins and @skdx/tokens or by your own CSS",
5
5
  "license": "MIT",
6
6
  "publishConfig": {
@@ -1605,7 +1605,7 @@
1605
1605
  "tsup": "^8.5.1",
1606
1606
  "typescript": "^6.0.3",
1607
1607
  "vitest": "^4.1.10",
1608
- "@skdx/shared": "0.38.0"
1608
+ "@skdx/shared": "0.39.0"
1609
1609
  },
1610
1610
  "scripts": {
1611
1611
  "lint": "eslint . --cache --cache-location node_modules/.cache/eslint/",