import{r as L,c as x,q as B,V,x as o,y as s,L as u,z as e,R as _,u as l,B as h,J as f,T as v,C as m,Q as g,ac as k,P as p}from"./vue-vendor-DV7DYXbz.js";import{_ as z,a as E}from"./index-BahP9Xx9.js";const N={class:"theme-toggle-container"},O={key:0,class:"flex items-center gap-2"},q={class:"relative"},D=["title"],F={key:0,class:"color-menu"},I=["title","onClick"],J={class:"color-name"},P=["title"],Q={key:"sun",class:"fas fa-sun"},R={key:"moon",class:"fas fa-moon"},U={key:"auto",class:"fas fa-circle-half-stroke"},j={key:1,class:"theme-switch-wrapper"},A={class:"relative mr-3"},G=["title"],H={key:0,class:"color-menu"},K=["title","onClick"],W={class:"color-name"},X=["title"],Y={class:"switch-handle"},Z={class:"handle-icon"},ee={key:0,class:"fas fa-sun"},te={key:1,class:"fas fa-moon"},oe={key:2,class:"fas fa-circle-half-stroke"},se={key:2,class:"theme-segmented"},ae=["title","onClick"],le={key:0,class:"ml-1 hidden sm:inline"},ne={__name:"ThemeToggle",props:{mode:{type:String,default:"compact",validator:r=>["compact","dropdown","segmented"].includes(r)},showLabel:{type:Boolean,default:!1}},setup(r){const t=E(),i=L(!1),y=[{value:"light",label:"浅色模式",shortLabel:"浅色",icon:"fas fa-sun"},{value:"dark",label:"深色模式",shortLabel:"深色",icon:"fas fa-moon"},{value:"auto",label:"跟随系统",shortLabel:"自动",icon:"fas fa-circle-half-stroke"}],b=x(()=>{const n=y.find(d=>d.value===t.themeMode);return n?`点击切换主题 - ${n.label}`:"切换主题"}),C=()=>{t.cycleThemeMode()},T=n=>{t.setThemeMode(n)},S=()=>{i.value=!i.value},w=n=>{t.setColorScheme(n),i.value=!1},M=n=>{!n.target.closest(".color-scheme-button")&&!n.target.closest(".color-scheme-button-lg")&&!n.target.closest(".color-menu")&&(i.value=!1)};return B(()=>{document.addEventListener("click",M)}),V(()=>{document.removeEventListener("click",M)}),(n,d)=>(s(),o("div",N,[r.mode==="compact"?(s(),o("div",O,[e("div",q,[e("button",{class:"color-scheme-button",title:`色系: ${l(t).currentColorScheme.name}`,onClick:S},[e("span",{class:"color-dot",style:h({background:l(t).currentColorScheme.primary})},null,4)],8,D),_(v,{name:"dropdown"},{default:f(()=>[i.value?(s(),o("div",F,[(s(!0),o(g,null,k(l(t).ColorSchemes,(a,c)=>(s(),o("button",{key:c,class:m(["color-option",{active:l(t).colorScheme===c}]),title:a.name,onClick:$=>w(c)},[e("span",{class:"color-preview",style:h({background:`linear-gradient(135deg, ${a.primary} 0%, ${a.secondary} 100%)`})},null,4),e("span",J,p(a.name),1)],10,I))),128))])):u("",!0)]),_:1})]),e("button",{class:"theme-toggle-button",title:b.value,onClick:C},[_(v,{mode:"out-in",name:"fade"},{default:f(()=>[l(t).themeMode==="light"?(s(),o("i",Q)):l(t).themeMode==="dark"?(s(),o("i",R)):(s(),o("i",U))]),_:1})],8,P)])):r.mode==="dropdown"?(s(),o("div",j,[e("div",A,[e("button",{class:"color-scheme-button-lg",title:`色系: ${l(t).currentColorScheme.name}`,onClick:S},[e("span",{class:"color-dot-lg",style:h({background:`linear-gradient(135deg, ${l(t).currentColorScheme.primary} 0%, ${l(t).currentColorScheme.secondary} 100%)`})},null,4),d[0]||(d[0]=e("i",{class:"fas fa-palette ml-1 text-xs opacity-60"},null,-1))],8,G),_(v,{name:"dropdown"},{default:f(()=>[i.value?(s(),o("div",H,[(s(!0),o(g,null,k(l(t).ColorSchemes,(a,c)=>(s(),o("button",{key:c,class:m(["color-option",{active:l(t).colorScheme===c}]),title:a.name,onClick:$=>w(c)},[e("span",{class:"color-preview",style:h({background:`linear-gradient(135deg, ${a.primary} 0%, ${a.secondary} 100%)`})},null,4),e("span",W,p(a.name),1)],10,K))),128))])):u("",!0)]),_:1})]),e("button",{class:m(["theme-switch",{"is-dark":l(t).themeMode==="dark","is-auto":l(t).themeMode==="auto"}]),title:b.value,onClick:C},[d[1]||(d[1]=e("div",{class:"switch-bg"},[e("div",{class:"stars"},[e("span"),e("span"),e("span")]),e("div",{class:"clouds"},[e("span"),e("span")])],-1)),e("div",Y,[e("div",Z,[l(t).themeMode==="light"?(s(),o("i",ee)):l(t).themeMode==="dark"?(s(),o("i",te)):(s(),o("i",oe))])])],10,X)])):r.mode==="segmented"?(s(),o("div",se,[(s(),o(g,null,k(y,a=>e("button",{key:a.value,class:m(["theme-segment",{active:l(t).themeMode===a.value}]),title:a.label,onClick:c=>T(a.value)},[e("i",{class:m(a.icon)},null,2),r.showLabel?(s(),o("span",le,p(a.shortLabel),1)):u("",!0)],10,ae)),64))])):u("",!0)]))}},ie=z(ne,[["__scopeId","data-v-d25ea0ef"]]);export{ie as T};