@accelint/design-toolkit
Version:
An open-source component library to serve as part of the entire ecosystem of UX for Accelint.
2 lines • 2.01 kB
JavaScript
import {jsx,jsxs}from'react/jsx-runtime';import {Show,Hide,ChevronDown,ChevronUp,DragVert}from'@accelint/icons';import {useContext}from'react';import {TreeItemContent}from'react-aria-components';import {Button}from'../button/index.js';import {Checkbox}from'../checkbox/index.js';import {Icon}from'../icon/index.js';import {IconProvider}from'../icon/context.js';import {TreeContext,TreeItemContext}from'./context.js';import {TreeLines}from'./lines.js';import {TreeStyles}from'./styles.js';const{content:M,display:U,spacing:q,drag:F,expansion:G,visibility:J}=TreeStyles();function oe({children:s}){const{showVisibility:C,variant:t,visibleKeys:m,onVisibilityChange:I}=useContext(TreeContext),{isVisible:c,isViewable:h}=useContext(TreeItemContext),o=t==="cozy"?"medium":"small";return jsx(TreeItemContent,{children:d=>{const{id:i,allowsDragging:b,hasChildItems:p,level:f,selectionBehavior:u,selectionMode:g,state:T,isDisabled:n,isExpanded:S,isSelected:w}=d,v=!(T.collection.getItem(i)?.nextKey||p),x=u==="toggle"&&g!=="none",D=()=>{const r=new Set(m);m?.has(i)?r.delete(i):r.add(i),I?.(r);};return jsx(IconProvider,{size:o,children:jsxs("div",{className:M({variant:t}),"data-last-of-set":v,children:[C&&jsx(Button,{variant:"icon",color:"mono-bold",size:o,onPress:D,isDisabled:n,className:J(),children:jsx(Icon,{children:c?jsx(Show,{}):jsx(Hide,{})})}),f>1&&jsx(TreeLines,{level:f,isLastOfSet:v}),p?jsx(Button,{slot:"chevron",variant:"icon",size:o,className:G(),children:jsx(Icon,{children:S?jsx(ChevronDown,{}):jsx(ChevronUp,{})})}):jsx("div",{className:q({variant:t})}),jsx("div",{className:U({variant:t}),children:typeof s=="function"?s({...d,variant:t,isVisible:c,isViewable:h,defaultChildren:null}):s}),x&&jsx(Checkbox,{slot:"selection",isSelected:w,isDisabled:n}),b&&jsx(Button,{slot:"drag",variant:"icon",size:o,isDisabled:n,className:F({}),children:jsx(Icon,{children:jsx(DragVert,{})})})]})})}})}export{oe as TreeItemContent};//# sourceMappingURL=item-content.js.map
//# sourceMappingURL=item-content.js.map