@nexusui/components
Version:
These are custom components specially-developed for NexusUI applications. They will make your life easier by giving you out-of-the-box implementations for various high-level UI elements that you can drop directly into your application.
3 lines (2 loc) • 1.82 kB
JavaScript
"use client";
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("react"),a=require("@mui/material/Stack"),l=require("@mui/material/Typography"),i=require("@mui/material/ClickAwayListener"),r=require("@mui/material/TextField"),s=require("@mui/material/Box"),n=require("@mui/material/Tooltip");function u(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var o=u(a),d=u(l),c=u(i),m=u(r),p=u(s),f=u(n);const x="NexusAssemblyTreeItemLabel";exports.AssemblyTreeItemLabel=({itemId:a,children:l,actions:i,onNodeChanged:r,icon:s,editable:n})=>{const[u,h]=t.useState(!1),[y,b]=t.useState(l),[v,g]=t.useState(!1),j=t.useCallback((e=>{g(null!==e&&e.offsetWidth<e.scrollWidth)}),[]),k=t.useCallback((e=>{2===e.detail&&(u||h((e=>!0)))}),[u]),w=t.useCallback((e=>{"Enter"===e.key?(e.preventDefault(),r?.(a,e.target.value),h(!1)):"Escape"===e.key&&(e.preventDefault(),b(l),h(!1))}),[r,a,l]),q=e.jsx(d.default,{ref:j,onClick:n?k:void 0,sx:{flex:"1 1 0px",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:"0.75rem"},"data-testid":`${x}-label`,className:`${x}-label`,children:l});return e.jsxs(o.default,{direction:"row",alignItems:"center","data-testid":`${x}-root`,className:`${x}-root`,children:[s?e.jsx(p.default,{component:s,color:"inherit",sx:{mr:1,height:20,width:20}}):null,"string"==typeof l?u?e.jsx(c.default,{onClickAway:()=>h(!1),children:e.jsx(m.default,{onChange:e=>b(e.target.value),onKeyDown:w,margin:"none",size:"small",value:y,"data-testid":`${x}-textField`,className:`${x}-textField`,sx:{flex:1,"& .MuiInputBase-input":{py:0}},slotProps:{input:{inputProps:{"data-testid":`${x}-input`}}}})}):v&&"string"==typeof l?e.jsx(f.default,{title:l,enterDelay:1e3,enterNextDelay:1e3,children:q}):q:l,i&&!u?e.jsx(i,{itemId:a}):null]})};