UNPKG

@bothub-chat/ui

Version:

Bothub UI Components

2 lines (1 loc) 1.44 kB
import{jsx as t,jsxs as o}from"react/jsx-runtime";import{useState as r,useCallback as e}from"react";import{DarkIcon as i}from"../../icons/dark/index.js";import{LightIcon as s}from"../../icons/light/index.js";import{SystemIcon as m}from"../../icons/system/index.js";import"tslib";import{IconProvider as l}from"../icon/context.js";import"../icon/styled.js";import"@react-spring/web";import"react-dom";import"../portal/styled.js";import"../tooltip/styled.js";import"../tooltip/arrow/styled.js";import"../../theme/index.js";import"../tooltip/context.js";import{ThemeSwitcherStyled as n,ThemeSwitcherList as c,ThemeSwitcherItemBackground as a,ThemeSwitcherItem as d,ThemeSwitcherItemContent as p}from"./styled.js";import{useTheme as h}from"../../theme/hook.js";const j=["light","dark","system"],y=({mode:y,defaultMode:f="dark",onChange:k,onSystemClick:x})=>{const g=h(),[u,b]=r(null!=y?y:f),w=e((t=>{b(t),"system"!==t?null==k||k(t):null==x||x()}),[]);return t(n,{children:o(c,{children:[t(a,{$mode:u}),j.map((o=>{let r,e;switch(r=o===u?g.colors.base.white:g.colors.grayScale.gray1,o){case"dark":e=t(i,{});break;case"light":e=t(s,{});break;case"system":e=t(m,{})}return t(d,{onClick:()=>w(o),"data-test":`theme-${o}`,children:t(p,{children:t(l,{size:20,fill:r,children:e})})},o)}))]})})};export{y as ThemeSwitcher,d as ThemeSwitcherItem,a as ThemeSwitcherItemBackground,p as ThemeSwitcherItemContent,c as ThemeSwitcherList,n as ThemeSwitcherStyled};