@bothub-chat/ui
Version:
Bothub UI Components
2 lines (1 loc) • 2.18 kB
JavaScript
import{__rest as t}from"tslib";import{jsx as o,jsxs as r}from"react/jsx-runtime";import{useRef as e,useState as i,useEffect as n}from"react";import{useTransition as l}from"@react-spring/web";import{SidebarDropdownStyled as s,SidebarDropdownToggler as c,SidebarDropdownTogglerIcon as m,SidebarDropdownContent as a}from"./styled.js";export{SidebarDropdownList,SidebarDropdownTogglerArrow,SidebarDropdownTogglerText}from"./styled.js";import{SidebarDropdownProvider as p}from"./context.js";import{IconProvider as d}from"../../icon/context.js";import"../../icon/styled.js";import{Portal as u}from"../../portal/index.js";import"../../tooltip/styled.js";import"../../tooltip/arrow/styled.js";import"../../../theme/index.js";import"../../tooltip/context.js";import"unified";import"remark-parse";import"remark-gfm";import"mdast-util-to-markdown";import{isBright as f}from"../../../utils/colors/isBright.js";import"../../../utils/colors/calculateGrayScale.js";import"../../../utils/colors/calculateAccentColors.js";import"./item/styled.js";import{useTheme as g}from"../../../theme/hook.js";const j=j=>{var b,h,{children:y}=j,w=t(j,["children"]);const v=g(),x=e(null),[k,L]=i(!1),S=e(null);n((()=>{const t=x.current;if(null!==t){const o=o=>{t.contains(o.target)||L(!1)},r=()=>L(!1);return document.addEventListener("click",o,!0),window.addEventListener("blur",r,!0),()=>{document.removeEventListener("click",o,!0),window.removeEventListener("blur",r,!0)}}}),[]);const E=null!==(h=null===(b=x.current)||void 0===b?void 0:b.getBoundingClientRect())&&void 0!==h?h:{right:0,bottom:0},O=l(k,{from:{opacity:0},enter:{opacity:1},leave:{opacity:0},config:{duration:150}});return o(p,{setIsOpen:L,children:r(s,Object.assign({},w,{ref:x,children:[o(d,{fill:f(v.colors.grayScale.gray4)?v.default.colors.base.black:v.default.colors.base.white,children:o(c,{$open:k,onClick:t=>{t.stopPropagation(),L((t=>!t))},children:o(m,{})})}),o(u,{children:O(((t,r)=>r&&o(a,{ref:S,style:Object.assign(Object.assign({},t),{left:E.right,top:E.bottom}),children:y})))})]}))})};export{j as SidebarDropdown,a as SidebarDropdownContent,s as SidebarDropdownStyled,c as SidebarDropdownToggler,m as SidebarDropdownTogglerIcon};