llm-simple-router 0.4.1 → 0.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admin/logs.js +2 -2
- package/dist/admin/routes.js +2 -0
- package/dist/admin/settings.d.ts +7 -0
- package/dist/admin/settings.js +16 -0
- package/dist/db/index.d.ts +1 -1
- package/dist/db/index.js +19 -3
- package/dist/db/log-cleaner.d.ts +10 -0
- package/dist/db/log-cleaner.js +42 -0
- package/dist/db/logs.d.ts +27 -8
- package/dist/db/logs.js +40 -6
- package/dist/db/migrations/020_drop_log_redundancy.sql +8 -0
- package/dist/db/migrations/021_merge_metrics_columns.sql +28 -0
- package/dist/db/settings.d.ts +2 -0
- package/dist/db/settings.js +7 -0
- package/dist/index.js +13 -1
- package/dist/monitor/types.d.ts +3 -0
- package/dist/proxy/log-helpers.d.ts +0 -2
- package/dist/proxy/log-helpers.js +3 -5
- package/dist/proxy/orchestrator.d.ts +2 -0
- package/dist/proxy/orchestrator.js +1 -0
- package/dist/proxy/proxy-handler.js +29 -4
- package/dist/proxy/proxy-logging.d.ts +0 -1
- package/dist/proxy/proxy-logging.js +8 -10
- package/frontend-dist/assets/{CardContent-fmM_iiuR.js → CardContent-3ytnac7B.js} +1 -1
- package/frontend-dist/assets/CardTitle-BHZE8Rty.js +1 -0
- package/frontend-dist/assets/Checkbox-CMYgDuxw.js +1 -0
- package/frontend-dist/assets/CollapsibleTrigger-DooxvEnx.js +1 -0
- package/frontend-dist/assets/Collection-GDvpW_uY.js +3 -0
- package/frontend-dist/assets/Dashboard-BJslVTg8.js +3 -0
- package/frontend-dist/assets/DialogTitle-lj6NAA5R.js +1 -0
- package/frontend-dist/assets/{Input-BhvZ-Up7.js → Input-JApdUstN.js} +1 -1
- package/frontend-dist/assets/Label-IbQFgxLe.js +1 -0
- package/frontend-dist/assets/Login-BjuVvrPV.js +1 -0
- package/frontend-dist/assets/Logs-J08HyZWA.js +1 -0
- package/frontend-dist/assets/ModelMappings-DWVmxMy6.js +1 -0
- package/frontend-dist/assets/Monitor-BTEW0evp.js +1 -0
- package/frontend-dist/assets/{PopperContent-CHNw_qb6.js → PopperContent-ZhhkKJo0.js} +1 -1
- package/frontend-dist/assets/{Providers-C9ZAqHxO.js → Providers-BqLSKXuv.js} +1 -1
- package/frontend-dist/assets/ProxyEnhancement-TAHOKnxW.js +5 -0
- package/frontend-dist/assets/RetryRules-Cn6KHzgB.js +1 -0
- package/frontend-dist/assets/RouterKeys-CBgWAJ6-.js +1 -0
- package/frontend-dist/assets/SelectValue-DS4Z8y0u.js +1 -0
- package/frontend-dist/assets/Setup-QKmeMDtB.js +1 -0
- package/frontend-dist/assets/Switch-BYebebrY.js +1 -0
- package/frontend-dist/assets/TableHeader-B2A48qgy.js +1 -0
- package/frontend-dist/assets/TabsContent-BcNBY5CB.js +1 -0
- package/frontend-dist/assets/TabsTrigger-8W_mNsGI.js +1 -0
- package/frontend-dist/assets/UnifiedRequestDialog-BmEamR1L.js +3 -0
- package/frontend-dist/assets/UnifiedRequestDialog-Dk3IIDDx.css +1 -0
- package/frontend-dist/assets/VisuallyHidden-DPKPka_x.js +1 -0
- package/frontend-dist/assets/{VisuallyHiddenInput-cjeTgyDe.js → VisuallyHiddenInput-Bnglr6yR.js} +1 -1
- package/frontend-dist/assets/{alert-dialog-BoGRIC1Q.js → alert-dialog-BzyDZnoE.js} +1 -1
- package/frontend-dist/assets/{badge-DIO8W_W9.js → badge-BTjuxlp4.js} +1 -1
- package/frontend-dist/assets/{button-qxGNBunr.js → button-BKJB3nEQ.js} +2 -2
- package/frontend-dist/assets/{createLucideIcon-jHUFhqKn.js → createLucideIcon-igIAnu_Y.js} +1 -1
- package/frontend-dist/assets/dialog-C0B-Xn-S.js +1 -0
- package/frontend-dist/assets/file-text-Ci7Mgh3F.js +1 -0
- package/frontend-dist/assets/index-BrDOp_gc.js +1 -0
- package/frontend-dist/assets/index-DMdVJThL.css +1 -0
- package/frontend-dist/assets/lib-BGW4QyKP.js +1 -0
- package/frontend-dist/assets/{ohash.D__AXeF1-nmJ7gFbh.js → ohash.D__AXeF1-CsY_LBk-.js} +1 -1
- package/frontend-dist/assets/{useClipboard-CmLp2YGk.js → useClipboard-wnGQAe3I.js} +1 -1
- package/frontend-dist/assets/{useForwardExpose-awoGXQkg.js → useForwardExpose-bqtcPo63.js} +1 -1
- package/frontend-dist/assets/useNonce-DN0Hrw3l.js +1 -0
- package/frontend-dist/assets/x-Cy_v5hrA.js +1 -0
- package/frontend-dist/index.html +8 -7
- package/package.json +1 -1
- package/frontend-dist/assets/CardHeader-BzzFzZ1B.js +0 -1
- package/frontend-dist/assets/CardTitle-09d7O-11.js +0 -1
- package/frontend-dist/assets/Checkbox-DH8iqXQd.js +0 -1
- package/frontend-dist/assets/CollapsibleTrigger-DCRRORrU.js +0 -1
- package/frontend-dist/assets/Collection-DY9-Yue9.js +0 -3
- package/frontend-dist/assets/Dashboard-BEzoZuSm.js +0 -3
- package/frontend-dist/assets/DialogTitle-BeMGJzYO.js +0 -1
- package/frontend-dist/assets/Label-DjtouWZ7.js +0 -1
- package/frontend-dist/assets/LogDetailDialog-BjRsy_FR.js +0 -3
- package/frontend-dist/assets/Login-hOCPB-34.js +0 -1
- package/frontend-dist/assets/Logs-C5c3BJsg.js +0 -1
- package/frontend-dist/assets/ModelMappings-CDjxwyyz.js +0 -1
- package/frontend-dist/assets/Monitor-CPAvIREG.js +0 -1
- package/frontend-dist/assets/ProxyEnhancement-Ct5WbiB7.js +0 -5
- package/frontend-dist/assets/RetryRules-CbgyrP6w.js +0 -1
- package/frontend-dist/assets/RouterKeys-zmqgFEKp.js +0 -1
- package/frontend-dist/assets/SelectValue-CP4Sh7LP.js +0 -1
- package/frontend-dist/assets/Setup-BXDEPt4o.js +0 -1
- package/frontend-dist/assets/Switch-DF6awXqs.js +0 -1
- package/frontend-dist/assets/TableHeader-BKE_yVML.js +0 -1
- package/frontend-dist/assets/TabsTrigger-D8R7lxaI.js +0 -1
- package/frontend-dist/assets/TooltipTrigger-BjQXeFem.js +0 -1
- package/frontend-dist/assets/VisuallyHidden-B_NnkONE.js +0 -1
- package/frontend-dist/assets/dialog-D8pIXeSs.js +0 -1
- package/frontend-dist/assets/index-C_disqMY.js +0 -1
- package/frontend-dist/assets/index-DDp6SHfg.css +0 -1
- package/frontend-dist/assets/lib-DjpgwSRA.js +0 -1
- package/frontend-dist/assets/useNonce-_2e-GL-A.js +0 -1
- package/frontend-dist/assets/x-B0G-wIAB.js +0 -1
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import{B as e,Et as t,G as n,H as r,It as i,K as a,L as o,O as s,Pt as c,U as l,V as u,W as d,at as f,ct as p,n as m,nt as h,r as g,st as _,vt as v,zt as y}from"./button-BKJB3nEQ.js";import{a as b,i as x,n as S,r as C,t as w}from"./TabsContent-BcNBY5CB.js";import{n as T,r as E,t as D}from"./CollapsibleTrigger-DooxvEnx.js";import{a as O,c as k,i as ee,n as A,o as j,r as M,s as N,t as P}from"./alert-dialog-BzyDZnoE.js";import{a as F,i as I,n as L,o as te,r as R,t as ne}from"./TableHeader-B2A48qgy.js";import{t as re}from"./Label-IbQFgxLe.js";import{t as z}from"./Switch-BYebebrY.js";import{n as B,r as V,t as H}from"./TabsTrigger-8W_mNsGI.js";import{t as U}from"./badge-BTjuxlp4.js";import{n as W}from"./lib-BGW4QyKP.js";import{n as G,t as K}from"./CardContent-3ytnac7B.js";import{n as q,t as J}from"./CardTitle-BHZE8Rty.js";import{t as Y}from"./format-CPdJtjZ5.js";var X=a({__name:`CardDescription`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(e){let t=e;return(e,n)=>(f(),l(`div`,{"data-slot":`card-description`,class:i(c(g)(`text-muted-foreground text-sm`,t.class))},[p(e.$slots,`default`)],2))}}),ie={key:0,class:`py-8 text-center text-muted-foreground`},ae={key:1,class:`py-8 text-center text-muted-foreground`},oe={class:`cursor-default font-mono text-xs`},se={class:`font-mono text-xs`},ce={key:0,class:`text-muted-foreground`},le={key:1,class:`text-muted-foreground`},ue={class:`flex items-center gap-2`},de={class:`space-y-2`},fe={class:`text-muted-foreground whitespace-nowrap`},pe={class:`text-muted-foreground`},me={class:`font-medium`},he=8,Z=6e4,Q=60,$=24,ge=a({__name:`SessionTable`,props:{sessions:{},loading:{type:Boolean},historyMap:{}},emits:[`clear`,`viewHistory`],setup(i,{emit:a}){let s=a,p=t(!1),h=t(null);function g(e){h.value=e,p.value=!0}function w(){h.value&&=(s(`clear`,h.value),null)}function T(e){return e.slice(0,he)+`...`}function E(e){let t=Date.now()-new Date(e).getTime(),n=Math.floor(t/Z);if(n<1)return`刚刚`;if(n<Q)return`${n} 分钟前`;let r=Math.floor(n/Q);return r<$?`${r} 小时前`:`${Math.floor(r/$)} 天前`}return(t,a)=>(f(),l(o,null,[i.loading?(f(),l(`div`,ie,`加载中...`)):i.sessions.length===0?(f(),l(`div`,ae,`暂无活跃 Session`)):(f(),u(c(te),{key:2},{default:v(()=>[n(c(ne),null,{default:v(()=>[n(c(R),null,{default:v(()=>[n(c(L),null,{default:v(()=>[...a[1]||=[d(`密钥名称`,-1)]]),_:1}),n(c(L),null,{default:v(()=>[...a[2]||=[d(`Session ID`,-1)]]),_:1}),n(c(L),null,{default:v(()=>[...a[3]||=[d(`当前模型`,-1)]]),_:1}),n(c(L),null,{default:v(()=>[...a[4]||=[d(`原始模型`,-1)]]),_:1}),n(c(L),null,{default:v(()=>[...a[5]||=[d(`最后活跃`,-1)]]),_:1}),n(c(L),null,{default:v(()=>[...a[6]||=[d(`操作`,-1)]]),_:1})]),_:1})]),_:1}),n(c(F),null,{default:v(()=>[(f(!0),l(o,null,_(i.sessions,s=>(f(),l(o,{key:s.id},[n(c(R),null,{default:v(()=>[n(c(I),{class:`font-medium`},{default:v(()=>[d(y(s.router_key_name),1)]),_:2},1024),n(c(I),null,{default:v(()=>[n(c(C),null,{default:v(()=>[n(c(b),null,{default:v(()=>[n(c(S),{"as-child":``},{default:v(()=>[e(`span`,oe,y(T(s.session_id)),1)]),_:2},1024),n(c(x),null,{default:v(()=>[e(`p`,se,y(s.session_id),1)]),_:2},1024)]),_:2},1024)]),_:2},1024)]),_:2},1024),n(c(I),null,{default:v(()=>[n(c(U),{variant:`secondary`},{default:v(()=>[d(y(s.current_model),1)]),_:2},1024)]),_:2},1024),n(c(I),null,{default:v(()=>[s.original_model?(f(),l(`span`,ce,y(s.original_model),1)):(f(),l(`span`,le,`-`))]),_:2},1024),n(c(I),{class:`text-muted-foreground text-sm`},{default:v(()=>[d(y(E(s.last_active_at)),1)]),_:2},1024),n(c(I),null,{default:v(()=>[e(`div`,ue,[n(c(m),{variant:`ghost`,size:`sm`,onClick:e=>t.$emit(`viewHistory`,s)},{default:v(()=>[d(y(i.historyMap[s.session_id]?`收起`:`历史`),1)]),_:2},1032,[`onClick`]),n(c(m),{variant:`ghost`,size:`sm`,class:`text-destructive hover:text-destructive`,onClick:e=>g(s)},{default:v(()=>[...a[7]||=[d(` 清除 `,-1)]]),_:1},8,[`onClick`])])]),_:2},1024)]),_:2},1024),i.historyMap[s.session_id]?(f(),u(c(R),{key:0},{default:v(()=>[n(c(I),{colspan:`6`,class:`bg-muted/50 px-6 py-3`},{default:v(()=>[e(`div`,de,[a[9]||=e(`p`,{class:`text-sm font-medium text-foreground`},`切换历史`,-1),(f(!0),l(o,null,_(i.historyMap[s.session_id],t=>(f(),l(`div`,{key:t.id,class:`flex items-center gap-3 text-sm`},[e(`span`,fe,y(c(Y)(t.created_at)),1),n(c(U),{variant:`outline`,class:`text-xs`},{default:v(()=>[d(y(t.trigger_type),1)]),_:2},1024),e(`span`,null,[e(`span`,pe,y(t.old_model||`默认`),1),a[8]||=e(`span`,{class:`mx-1`},`→`,-1),e(`span`,me,y(t.new_model),1)])]))),128))])]),_:2},1024)]),_:2},1024)):r(``,!0)],64))),128))]),_:1})]),_:1})),n(c(k),{open:p.value,"onUpdate:open":a[0]||=e=>p.value=e},{default:v(()=>[n(c(O),null,{default:v(()=>[n(c(A),null,{default:v(()=>[n(c(P),null,{default:v(()=>[...a[10]||=[d(`确认清除 Session`,-1)]]),_:1}),n(c(ee),null,{default:v(()=>[...a[11]||=[d(` 清除后,该 Session 将恢复使用默认模型映射。此操作不可撤销。 `,-1)]]),_:1})]),_:1}),n(c(M),null,{default:v(()=>[n(c(j),null,{default:v(()=>[...a[12]||=[d(`取消`,-1)]]),_:1}),n(c(N),{onClick:w},{default:v(()=>[...a[13]||=[d(`确认清除`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`])],64))}}),_e={class:`p-6`},ve={class:`flex items-center justify-between mb-4`},ye={key:0,class:`flex items-center gap-1`},be={key:1},xe={class:`flex items-center gap-3`},Se={class:`flex items-center justify-between`},Ce=`---
|
|
2
|
+
description: 切换代理路由模型
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
[router-command: select-model $ARGUMENTS]`,we=a({__name:`ProxyEnhancement`,setup(r){let a=t(!1),o=t(!1),u=t(!0),p=t([]),g=t(!1),_=t({});async function b(){try{a.value=(await s.getProxyEnhancement()).claude_code_enabled}catch(e){console.error(`Failed to load proxy enhancement config:`,e),W.error(`加载配置失败`)}}async function x(){o.value=!0;try{await s.updateProxyEnhancement({claude_code_enabled:a.value}),W.success(`保存成功`)}catch(e){console.error(`Failed to save proxy enhancement config:`,e),W.error(`保存失败`)}finally{o.value=!1}}async function S(){g.value=!0;try{p.value=await s.getSessionStates()}catch(e){console.error(`Failed to load sessions:`,e),W.error(`加载 Session 列表失败`)}finally{g.value=!1}}async function C(e){try{await s.deleteSessionState(e.router_key_id,e.session_id),W.success(`Session 已清除`),S()}catch(e){console.error(`Failed to clear session:`,e),W.error(`清除 Session 失败`)}}async function O(e){let t=e.session_id;if(_.value[t]){delete _.value[t];return}try{let n=await s.getSessionHistory(e.router_key_id,e.session_id);_.value[t]=n}catch(e){console.error(`Failed to load history:`,e),W.error(`加载历史记录失败`)}}return h(()=>{b(),S()}),(t,r)=>(f(),l(`div`,_e,[e(`div`,ve,[r[3]||=e(`h2`,{class:`text-lg font-semibold text-foreground`},`代理增强(实验性)`,-1),n(c(m),{disabled:o.value,onClick:x},{default:v(()=>[o.value?(f(),l(`span`,ye,[...r[2]||=[e(`svg`,{class:`w-4 h-4 animate-spin`,fill:`none`,viewBox:`0 0 24 24`},[e(`circle`,{class:`opacity-25`,cx:`12`,cy:`12`,r:`10`,stroke:`currentColor`,"stroke-width":`4`}),e(`path`,{class:`opacity-75`,fill:`currentColor`,d:`M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z`})],-1),d(` 保存中... `,-1)]])):(f(),l(`span`,be,`保存`))]),_:1},8,[`disabled`])]),n(c(V),{"default-value":`claude-code`},{default:v(()=>[n(c(B),null,{default:v(()=>[n(c(H),{value:`claude-code`},{default:v(()=>[...r[4]||=[d(`Claude Code`,-1)]]),_:1}),n(c(H),{value:`opencode`},{default:v(()=>[...r[5]||=[d(`OpenCode`,-1)]]),_:1})]),_:1}),n(c(w),{value:`claude-code`},{default:v(()=>[n(c(G),null,{default:v(()=>[n(c(q),null,{default:v(()=>[n(c(J),null,{default:v(()=>[...r[6]||=[d(`Claude Code 动态模型切换`,-1)]]),_:1}),n(c(X),null,{default:v(()=>[...r[7]||=[d(` 在 Claude Code 对话中通过 /select-model 命令动态切换后端模型。模型选择在当前会话内有效(24h),不影响路由配置。 `,-1)]]),_:1})]),_:1}),n(c(K),null,{default:v(()=>[e(`div`,xe,[n(c(z),{id:`claude-code-toggle`,modelValue:a.value,"onUpdate:modelValue":r[0]||=e=>a.value=e},null,8,[`modelValue`]),n(c(re),{for:`claude-code-toggle`},{default:v(()=>[d(y(a.value?`已启用`:`已禁用`),1)]),_:1})])]),_:1})]),_:1}),n(c(E),{open:u.value,"onUpdate:open":r[1]||=e=>u.value=e,class:`mt-4`},{default:v(()=>[n(c(D),{"as-child":``},{default:v(()=>[n(c(m),{variant:`ghost`,class:`w-full justify-between`},{default:v(()=>[r[9]||=e(`span`,null,`使用说明`,-1),(f(),l(`svg`,{class:i([`w-4 h-4 transition-transform`,{"rotate-180":u.value}]),fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},[...r[8]||=[e(`path`,{"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`M19 9l-7 7-7-7`},null,-1)]],2))]),_:1})]),_:1}),n(c(T),{class:`mt-2`},{default:v(()=>[n(c(G),null,{default:v(()=>[n(c(K),{class:`space-y-4 text-sm`},{default:v(()=>[e(`div`,null,[r[10]||=e(`p`,{class:`font-medium text-foreground mb-1 leading-relaxed`},`配置方法`,-1),r[11]||=e(`p`,{class:`text-muted-foreground leading-relaxed`},` 在 Claude Code 项目级或全局级目录下创建 Command 文件: `,-1),r[12]||=e(`code`,{class:`block mt-1 px-3 py-2 bg-muted rounded text-xs font-mono whitespace-pre-wrap leading-relaxed`},[d(` # 项目级 .claude/commands/select-model.md`),e(`br`),d(` # 全局级 ~/.claude/commands/select-model.md `)],-1),r[13]||=e(`p`,{class:`text-muted-foreground leading-relaxed mt-2`},` 文件内容: `,-1),e(`code`,{class:`block mt-1 px-3 py-2 bg-muted rounded text-xs font-mono whitespace-pre-wrap leading-relaxed`,textContent:Ce})]),r[14]||=e(`div`,null,[e(`p`,{class:`font-medium text-foreground mb-1 leading-relaxed`},`使用方法`),e(`p`,{class:`text-muted-foreground leading-relaxed`},` 查看可用模型列表(格式为 provider_name/backend_model): `),e(`code`,{class:`block mt-1 px-3 py-2 bg-muted rounded text-xs font-mono whitespace-pre-wrap leading-relaxed`},` /select-model `),e(`p`,{class:`text-muted-foreground leading-relaxed mt-2`},` 选择模型并记住到当前会话: `),e(`code`,{class:`block mt-1 px-3 py-2 bg-muted rounded text-xs font-mono whitespace-pre-wrap leading-relaxed`},` /select-model provider_name/backend_model `),e(`p`,{class:`text-muted-foreground leading-relaxed mt-2`},` 切换后在下方活跃 Session 表中确认状态,请求日志中可验证路由是否生效。 `)],-1)]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`]),n(c(G),{class:`mt-4`},{default:v(()=>[n(c(q),null,{default:v(()=>[e(`div`,Se,[e(`div`,null,[n(c(J),null,{default:v(()=>[...r[15]||=[d(`活跃 Session`,-1)]]),_:1}),n(c(X),null,{default:v(()=>[...r[16]||=[d(`查看和管理当前已配置模型的 session`,-1)]]),_:1})]),n(c(m),{variant:`outline`,size:`sm`,onClick:S,disabled:g.value},{default:v(()=>[...r[17]||=[d(`刷新`,-1)]]),_:1},8,[`disabled`])])]),_:1}),n(c(K),null,{default:v(()=>[n(ge,{sessions:p.value,loading:g.value,"history-map":_.value,onClear:C,onViewHistory:O},null,8,[`sessions`,`loading`,`history-map`])]),_:1})]),_:1})]),_:1}),n(c(w),{value:`opencode`},{default:v(()=>[...r[18]||=[e(`div`,{class:`flex flex-col items-center justify-center py-16 text-muted-foreground`},[e(`p`,{class:`text-lg`},`暂未支持 OpenCode 增强`)],-1)]]),_:1})]),_:1})]))}});export{we as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{B as e,Et as t,G as n,H as r,I as i,It as a,K as o,L as s,O as c,Pt as l,U as u,V as d,W as f,at as p,n as m,nt as ee,st as h,vt as g,z as _,zt as v}from"./button-BKJB3nEQ.js";import{r as te}from"./useNonce-DN0Hrw3l.js";import{a as ne,i as re,n as ie,r as y,t as ae}from"./SelectValue-DS4Z8y0u.js";import{t as b}from"./Checkbox-CMYgDuxw.js";import{n as oe,r as se,t as ce}from"./CollapsibleTrigger-DooxvEnx.js";import{a as le,n as ue,o as de,r as fe,t as pe}from"./dialog-C0B-Xn-S.js";import{a as x,c as S,i as me,n as he,o as ge,r as _e,t as ve}from"./alert-dialog-BzyDZnoE.js";import{a as C,i as w,n as T,o as E,r as D,t as O}from"./TableHeader-B2A48qgy.js";import{t as k}from"./Label-IbQFgxLe.js";import{t as A}from"./badge-BTjuxlp4.js";import{n as j}from"./lib-BGW4QyKP.js";import{n as M,t as N}from"./CardContent-3ytnac7B.js";import{n as P,t as F}from"./CardTitle-BHZE8Rty.js";import{t as I}from"./Input-JApdUstN.js";var ye={class:`p-6`},be={class:`flex items-center justify-between mb-4`},xe={class:`bg-card rounded-lg border overflow-hidden`},Se={class:`flex items-center gap-2`},Ce={class:`text-xs text-muted-foreground`},we={key:0,class:`text-sm text-destructive mt-1`},Te={key:0,class:`text-sm text-destructive mt-1`},Ee={key:0,class:`text-sm text-destructive mt-1`},De={class:`grid grid-cols-2 gap-3`},Oe={key:0,class:`text-sm text-destructive mt-1`},L={key:0,class:`text-sm text-destructive mt-1`},ke={key:0},Ae={key:0,class:`text-sm text-destructive mt-1`},je={class:`flex items-center gap-2`},Me={class:`flex items-center justify-between`},Ne={class:`flex items-center justify-between mb-3`},Pe={class:`flex items-center gap-2`},R=100,z=599,B=100,V=100,H=o({__name:`RetryRules`,setup(o){let H={name:``,status_code:429,body_pattern:``,is_active:!0,retry_strategy:`exponential`,retry_delay_ms:5e3,max_retries:10,max_delay_ms:6e4},U=t([]),W=t(!1),G=t(null),K=t(null),q=t({...H}),J=t({});function Fe(){let e={};q.value.name.trim()||(e.name=`请输入名称`);let t=Number(q.value.status_code);if((!Number.isInteger(t)||t<R||t>z)&&(e.status_code=`范围 ${R}-${z}`),!q.value.body_pattern.trim())e.body_pattern=`请输入匹配规则`;else try{new RegExp(q.value.body_pattern)}catch{e.body_pattern=`不是合法的正则表达式`}let n=Number(q.value.retry_delay_ms);(!n||n<B)&&(e.retry_delay_ms=`不能小于 ${B}ms`);let r=Number(q.value.max_retries);if((!Number.isInteger(r)||r<0||r>V)&&(e.max_retries=`范围 0-${V}`),q.value.retry_strategy===`exponential`){let t=Number(q.value.max_delay_ms);(!t||t<B)&&(e.max_delay_ms=`不能小于 ${B}ms`)}return J.value=e,Object.keys(e).length===0}async function Y(){try{U.value=await c.getRetryRules()}catch(e){console.error(`Failed to load retry rules:`,e),j.error(`加载数据失败`)}}function Ie(){G.value=null,q.value={...H},J.value={},W.value=!0}function Le(e){G.value=e.id,q.value={name:e.name,status_code:e.status_code,body_pattern:e.body_pattern,is_active:!!e.is_active,retry_strategy:e.retry_strategy,retry_delay_ms:e.retry_delay_ms,max_retries:e.max_retries,max_delay_ms:e.max_delay_ms},J.value={},W.value=!0}async function Re(){if(Fe())try{let e={name:q.value.name,status_code:Number(q.value.status_code),body_pattern:q.value.body_pattern,is_active:+!!q.value.is_active,retry_strategy:q.value.retry_strategy,retry_delay_ms:Number(q.value.retry_delay_ms),max_retries:Number(q.value.max_retries),max_delay_ms:Number(q.value.max_delay_ms)};G.value?await c.updateRetryRule(G.value,e):await c.createRetryRule(e),W.value=!1,await Y()}catch(e){console.error(`Failed to save retry rule:`,e),j.error(`保存规则失败`)}}function ze(e){K.value=e}async function Be(){let e=K.value;if(e){K.value=null;try{await c.deleteRetryRule(e.id),await Y()}catch(e){console.error(`Failed to delete retry rule:`,e),j.error(`删除规则失败`)}}}let X=t(!1),Z=t([]),Q=t(new Set),Ve=_(()=>Z.value.length>0&&Q.value.size===Z.value.length);async function $(){try{Z.value=await c.recommended.getRetryRules()}catch{Z.value=[]}}function He(e){let t=new Set(Q.value);t.has(e)?t.delete(e):t.add(e),Q.value=t}function Ue(e){Q.value=e===!0?new Set(Z.value.map(e=>e.name)):new Set}async function We(){let e=Z.value.filter(e=>Q.value.has(e.name));for(let t of e)await c.createRetryRule({name:t.name,status_code:t.status_code,body_pattern:t.body_pattern,is_active:1,retry_strategy:t.retry_strategy,retry_delay_ms:t.retry_delay_ms,max_retries:t.max_retries,max_delay_ms:t.max_delay_ms});j.success(`已添加 ${e.length} 条规则`),Q.value=new Set,await Promise.allSettled([$(),Y()])}return ee(()=>{Y(),$()}),(t,o)=>(p(),u(`div`,ye,[e(`div`,be,[o[19]||=e(`h2`,{class:`text-lg font-semibold text-foreground`},`重试规则`,-1),n(l(m),{onClick:Ie,class:`flex items-center gap-1`},{default:g(()=>[...o[18]||=[e(`svg`,{class:`w-4 h-4`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},[e(`path`,{"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`M12 4v16m8-8H4`})],-1),f(` 添加规则 `,-1)]]),_:1})]),e(`div`,xe,[n(l(E),null,{default:g(()=>[n(l(O),null,{default:g(()=>[n(l(D),{class:`bg-muted`},{default:g(()=>[n(l(T),{class:`text-muted-foreground`},{default:g(()=>[...o[20]||=[f(`名称`,-1)]]),_:1}),n(l(T),{class:`text-muted-foreground`},{default:g(()=>[...o[21]||=[f(`HTTP 状态码`,-1)]]),_:1}),n(l(T),{class:`text-muted-foreground`},{default:g(()=>[...o[22]||=[f(`响应体匹配`,-1)]]),_:1}),n(l(T),{class:`text-muted-foreground`},{default:g(()=>[...o[23]||=[f(`重试策略`,-1)]]),_:1}),n(l(T),{class:`text-muted-foreground`},{default:g(()=>[...o[24]||=[f(`状态`,-1)]]),_:1}),n(l(T),{class:`text-right text-muted-foreground`},{default:g(()=>[...o[25]||=[f(`操作`,-1)]]),_:1})]),_:1})]),_:1}),n(l(C),null,{default:g(()=>[(p(!0),u(s,null,h(U.value,t=>(p(),d(l(D),{key:t.id},{default:g(()=>[n(l(w),{class:`font-mono text-sm`},{default:g(()=>[f(v(t.name),1)]),_:2},1024),n(l(w),null,{default:g(()=>[f(v(t.status_code),1)]),_:2},1024),n(l(w),{class:`font-mono text-xs text-muted-foreground`},{default:g(()=>[f(v(t.body_pattern),1)]),_:2},1024),n(l(w),null,{default:g(()=>[e(`div`,Se,[n(l(A),{variant:`outline`},{default:g(()=>[f(v(t.retry_strategy===`fixed`?`固定间隔`:`指数退避`),1)]),_:2},1024),e(`span`,Ce,[f(v(t.retry_delay_ms/1e3)+`s · `+v(t.max_retries)+`次 `,1),t.retry_strategy===`exponential`?(p(),u(s,{key:0},[f(` · 上限`+v(t.max_delay_ms/1e3)+`s`,1)],64)):r(``,!0)])])]),_:2},1024),n(l(w),null,{default:g(()=>[n(l(A),{variant:t.is_active?`default`:`secondary`},{default:g(()=>[f(v(t.is_active?`启用`:`禁用`),1)]),_:2},1032,[`variant`])]),_:2},1024),n(l(w),{class:`text-right`},{default:g(()=>[n(l(m),{variant:`ghost`,size:`sm`,onClick:e=>Le(t),class:`mr-2`},{default:g(()=>[...o[26]||=[f(`编辑`,-1)]]),_:1},8,[`onClick`]),n(l(m),{variant:`ghost`,size:`sm`,class:`text-destructive hover:text-destructive`,onClick:e=>ze(t)},{default:g(()=>[...o[27]||=[f(`删除`,-1)]]),_:1},8,[`onClick`])]),_:2},1024)]),_:2},1024))),128)),U.value.length===0?(p(),d(l(D),{key:0},{default:g(()=>[n(l(w),{colspan:`6`,class:`text-center text-muted-foreground py-8`},{default:g(()=>[...o[28]||=[f(`暂无规则`,-1)]]),_:1})]),_:1})):r(``,!0)]),_:1})]),_:1})]),n(l(de),{open:W.value,"onUpdate:open":o[15]||=e=>W.value=e},{default:g(()=>[n(l(le),null,{default:g(()=>[n(l(ue),null,{default:g(()=>[n(l(pe),null,{default:g(()=>[f(v(G.value?`编辑规则`:`添加规则`),1)]),_:1})]),_:1}),e(`form`,{onSubmit:i(Re,[`prevent`]),class:`space-y-3`},[e(`div`,null,[n(l(k),{class:`block text-sm font-medium text-foreground mb-1`},{default:g(()=>[...o[29]||=[f(`名称`,-1)]]),_:1}),n(l(I),{modelValue:q.value.name,"onUpdate:modelValue":o[0]||=e=>q.value.name=e,type:`text`,required:``,onInput:o[1]||=e=>delete J.value.name},null,8,[`modelValue`]),J.value.name?(p(),u(`p`,we,v(J.value.name),1)):r(``,!0)]),e(`div`,null,[n(l(k),{class:`block text-sm font-medium text-foreground mb-1`},{default:g(()=>[...o[30]||=[f(`HTTP 状态码`,-1)]]),_:1}),n(l(I),{modelValue:q.value.status_code,"onUpdate:modelValue":o[2]||=e=>q.value.status_code=e,modelModifiers:{number:!0},type:`number`,required:``,onInput:o[3]||=e=>delete J.value.status_code},null,8,[`modelValue`]),J.value.status_code?(p(),u(`p`,Te,v(J.value.status_code),1)):r(``,!0)]),e(`div`,null,[n(l(k),{class:`block text-sm font-medium text-foreground mb-1`},{default:g(()=>[...o[31]||=[f(`响应体匹配`,-1)]]),_:1}),n(l(I),{modelValue:q.value.body_pattern,"onUpdate:modelValue":o[4]||=e=>q.value.body_pattern=e,type:`text`,placeholder:`正则表达式,例如 .*rate_limit.*`,required:``,onInput:o[5]||=e=>delete J.value.body_pattern},null,8,[`modelValue`]),J.value.body_pattern?(p(),u(`p`,Ee,v(J.value.body_pattern),1)):r(``,!0)]),e(`div`,null,[n(l(k),{class:`block text-sm font-medium text-foreground mb-1`},{default:g(()=>[...o[32]||=[f(`重试策略`,-1)]]),_:1}),n(l(ne),{modelValue:q.value.retry_strategy,"onUpdate:modelValue":o[6]||=e=>q.value.retry_strategy=e},{default:g(()=>[n(l(ie),{class:`w-full`},{default:g(()=>[n(l(ae),{placeholder:`选择策略`})]),_:1}),n(l(re),null,{default:g(()=>[n(l(y),{value:`exponential`},{default:g(()=>[...o[33]||=[f(`指数退避`,-1)]]),_:1}),n(l(y),{value:`fixed`},{default:g(()=>[...o[34]||=[f(`固定间隔`,-1)]]),_:1})]),_:1})]),_:1},8,[`modelValue`])]),e(`div`,De,[e(`div`,null,[n(l(k),{class:`block text-sm font-medium text-foreground mb-1`},{default:g(()=>[f(v(q.value.retry_strategy===`fixed`?`间隔时间 (ms)`:`初始延迟 (ms)`),1)]),_:1}),n(l(I),{modelValue:q.value.retry_delay_ms,"onUpdate:modelValue":o[7]||=e=>q.value.retry_delay_ms=e,modelModifiers:{number:!0},type:`number`,min:100,required:``,onInput:o[8]||=e=>delete J.value.retry_delay_ms},null,8,[`modelValue`]),J.value.retry_delay_ms?(p(),u(`p`,Oe,v(J.value.retry_delay_ms),1)):r(``,!0)]),e(`div`,null,[n(l(k),{class:`block text-sm font-medium text-foreground mb-1`},{default:g(()=>[...o[35]||=[f(`最大重试次数`,-1)]]),_:1}),n(l(I),{modelValue:q.value.max_retries,"onUpdate:modelValue":o[9]||=e=>q.value.max_retries=e,modelModifiers:{number:!0},type:`number`,min:0,max:100,required:``,onInput:o[10]||=e=>delete J.value.max_retries},null,8,[`modelValue`]),J.value.max_retries?(p(),u(`p`,L,v(J.value.max_retries),1)):r(``,!0)])]),q.value.retry_strategy===`exponential`?(p(),u(`div`,ke,[n(l(k),{class:`block text-sm font-medium text-foreground mb-1`},{default:g(()=>[...o[36]||=[f(`延迟上限 (ms)`,-1)]]),_:1}),n(l(I),{modelValue:q.value.max_delay_ms,"onUpdate:modelValue":o[11]||=e=>q.value.max_delay_ms=e,modelModifiers:{number:!0},type:`number`,min:100,required:``,onInput:o[12]||=e=>delete J.value.max_delay_ms},null,8,[`modelValue`]),J.value.max_delay_ms?(p(),u(`p`,Ae,v(J.value.max_delay_ms),1)):r(``,!0)])):r(``,!0),e(`div`,je,[n(l(b),{modelValue:q.value.is_active,"onUpdate:modelValue":o[13]||=e=>q.value.is_active=e,id:`rule-active`},null,8,[`modelValue`]),n(l(k),{for:`rule-active`,class:`text-sm text-foreground`},{default:g(()=>[...o[37]||=[f(`启用`,-1)]]),_:1})]),n(l(fe),null,{default:g(()=>[n(l(m),{type:`button`,variant:`outline`,onClick:o[14]||=e=>W.value=!1},{default:g(()=>[...o[38]||=[f(`取消`,-1)]]),_:1}),n(l(m),{type:`submit`},{default:g(()=>[...o[39]||=[f(`保存`,-1)]]),_:1})]),_:1})],32)]),_:1})]),_:1},8,[`open`]),n(l(S),{open:!!K.value,"onUpdate:open":o[16]||=e=>{e||(K.value=null)}},{default:g(()=>[n(l(x),null,{default:g(()=>[n(l(he),null,{default:g(()=>[n(l(ve),null,{default:g(()=>[...o[40]||=[f(`确认删除`,-1)]]),_:1}),n(l(me),null,{default:g(()=>[f(`确定要删除规则「`+v(K.value?.name)+`」吗?`,1)]),_:1})]),_:1}),n(l(_e),null,{default:g(()=>[n(l(ge),null,{default:g(()=>[...o[41]||=[f(`取消`,-1)]]),_:1}),n(l(m),{variant:`destructive`,onClick:Be},{default:g(()=>[...o[42]||=[f(`删除`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`]),Z.value.length>0?(p(),d(l(M),{key:0,class:`mt-6`},{default:g(()=>[n(l(se),{open:X.value,"onUpdate:open":o[17]||=e=>X.value=e},{default:g(()=>[n(l(ce),{"as-child":``},{default:g(()=>[n(l(P),{class:`cursor-pointer hover:bg-muted/50 transition-colors`},{default:g(()=>[e(`div`,Me,[n(l(F),{class:`text-sm font-medium`},{default:g(()=>[f(`推荐重试规则 (`+v(Z.value.length)+`)`,1)]),_:1}),n(l(te),{class:a([`h-4 w-4 text-muted-foreground transition-transform`,{"rotate-180":X.value}])},null,8,[`class`])])]),_:1})]),_:1}),n(l(oe),null,{default:g(()=>[n(l(N),null,{default:g(()=>[e(`div`,Ne,[e(`div`,Pe,[n(l(b),{"model-value":Ve.value,"onUpdate:modelValue":Ue},null,8,[`model-value`]),o[43]||=e(`span`,{class:`text-sm text-muted-foreground`},`全选`,-1)]),n(l(m),{size:`sm`,disabled:Q.value.size===0,onClick:We},{default:g(()=>[f(` 添加选中 (`+v(Q.value.size)+`) `,1)]),_:1},8,[`disabled`])]),n(l(E),null,{default:g(()=>[n(l(O),null,{default:g(()=>[n(l(D),null,{default:g(()=>[n(l(T),{class:`w-10`}),n(l(T),null,{default:g(()=>[...o[44]||=[f(`名称`,-1)]]),_:1}),n(l(T),null,{default:g(()=>[...o[45]||=[f(`状态码`,-1)]]),_:1}),n(l(T),null,{default:g(()=>[...o[46]||=[f(`匹配模式`,-1)]]),_:1}),n(l(T),null,{default:g(()=>[...o[47]||=[f(`策略`,-1)]]),_:1})]),_:1})]),_:1}),n(l(C),null,{default:g(()=>[(p(!0),u(s,null,h(Z.value,e=>(p(),d(l(D),{key:e.name},{default:g(()=>[n(l(w),null,{default:g(()=>[n(l(b),{"model-value":Q.value.has(e.name),"onUpdate:modelValue":()=>He(e.name)},null,8,[`model-value`,`onUpdate:modelValue`])]),_:2},1024),n(l(w),null,{default:g(()=>[f(v(e.name),1)]),_:2},1024),n(l(w),null,{default:g(()=>[f(v(e.status_code),1)]),_:2},1024),n(l(w),{class:`font-mono text-xs max-w-[200px] truncate`},{default:g(()=>[f(v(e.body_pattern),1)]),_:2},1024),n(l(w),null,{default:g(()=>[f(v(e.retry_strategy===`fixed`?`固定间隔`:`指数退避`),1)]),_:2},1024)]),_:2},1024))),128))]),_:1})]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`])]),_:1})):r(``,!0)]))}});export{H as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{B as e,Et as t,G as n,H as r,I as i,It as ee,K as a,L as o,O as s,Pt as c,U as l,V as u,W as d,at as f,n as p,nt as m,st as h,vt as g,zt as _}from"./button-BKJB3nEQ.js";import{t as v}from"./Checkbox-CMYgDuxw.js";import{a as te,n as ne,o as re,r as ie,t as ae}from"./dialog-C0B-Xn-S.js";import{a as oe,c as y,i as b,n as x,o as S,r as C,t as se}from"./alert-dialog-BzyDZnoE.js";import{a as ce,i as w,n as T,o as E,r as D,t as O}from"./TableHeader-B2A48qgy.js";import{t as k}from"./Label-IbQFgxLe.js";import{t as A}from"./badge-BTjuxlp4.js";import{n as j}from"./lib-BGW4QyKP.js";import{t as M}from"./Input-JApdUstN.js";import{t as N}from"./useClipboard-wnGQAe3I.js";var P={class:`p-6`},F={class:`flex items-center justify-between mb-4`},I={class:`bg-card rounded-lg border overflow-hidden`},L={class:`flex items-center gap-1`},R={class:`font-mono text-xs text-muted-foreground`},z={key:0,class:`w-3.5 h-3.5`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},B={key:1,class:`w-3.5 h-3.5 text-success`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},V={key:0,class:`flex flex-wrap gap-1`},H={key:0,class:`text-sm text-destructive mt-1`},U={class:`border rounded-md p-3 max-h-48 overflow-y-auto space-y-2 bg-muted`},le={class:`font-mono text-xs`},W={key:0,class:`text-muted-foreground text-sm text-center py-2`},ue={key:0,class:`flex flex-wrap gap-1 mt-2`},de={key:0,class:`flex items-center gap-2`},G=a({__name:`RouterKeys`,setup(a){let G={name:``,allowed_models:[],is_active:!0},K=t([]),q=t([]),J=t(!1),Y=t(null),X=t(null),Z=t({...G,allowed_models:[]}),Q=t({}),{copied:fe,copy:pe}=N();function me(e){return e?e.slice(0,7)+`*`.repeat(7):``}function he(e){return new Date(e).toLocaleString(`zh-CN`)}function ge(e){let t=Z.value.allowed_models.indexOf(e);t>=0&&Z.value.allowed_models.splice(t,1)}async function $(){try{let[e,t]=await Promise.allSettled([s.getRouterKeys(),s.getAvailableModels()]);e.status===`fulfilled`&&(K.value=e.value),t.status===`fulfilled`&&(q.value=t.value)}catch(e){console.error(`Failed to load data:`,e),j.error(`加载数据失败`)}}function _e(){Y.value=null,Z.value={...G,allowed_models:[]},Q.value={},J.value=!0}function ve(e){Y.value=e.id,Z.value={name:e.name,allowed_models:e.allowed_models?[...e.allowed_models]:[],is_active:!!e.is_active},Q.value={},J.value=!0}function ye(){return{name:Z.value.name,allowed_models:Z.value.allowed_models.length>0?Z.value.allowed_models:null,is_active:+!!Z.value.is_active}}function be(){return{name:Z.value.name,allowed_models:Z.value.allowed_models.length>0?Z.value.allowed_models:null}}async function xe(){let e={};if(Z.value.name.trim()||(e.name=`请输入名称`),Q.value=e,!(Object.keys(e).length>0))try{Y.value?await s.updateRouterKey(Y.value,ye()):await s.createRouterKey(be()),J.value=!1,await $()}catch(e){console.error(`Failed to save router key:`,e),j.error(`保存密钥失败`)}}function Se(e){X.value=e}async function Ce(){let e=X.value;if(e){X.value=null;try{await s.deleteRouterKey(e.id),await $()}catch(e){console.error(`Failed to delete router key:`,e),j.error(`删除密钥失败`)}}}return m($),(t,a)=>(f(),l(`div`,P,[e(`div`,F,[a[7]||=e(`h2`,{class:`text-lg font-semibold text-foreground`},`API 密钥`,-1),n(c(p),{onClick:_e,class:`flex items-center gap-1`},{default:g(()=>[...a[6]||=[e(`svg`,{class:`w-4 h-4`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},[e(`path`,{"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`M12 4v16m8-8H4`})],-1),d(` 创建密钥 `,-1)]]),_:1})]),e(`div`,I,[n(c(E),null,{default:g(()=>[n(c(O),null,{default:g(()=>[n(c(D),{class:`bg-muted`},{default:g(()=>[n(c(T),{class:`text-muted-foreground`},{default:g(()=>[...a[8]||=[d(`名称`,-1)]]),_:1}),n(c(T),{class:`text-muted-foreground`},{default:g(()=>[...a[9]||=[d(`密钥`,-1)]]),_:1}),n(c(T),{class:`text-muted-foreground`},{default:g(()=>[...a[10]||=[d(`白名单模型`,-1)]]),_:1}),n(c(T),{class:`text-muted-foreground`},{default:g(()=>[...a[11]||=[d(`状态`,-1)]]),_:1}),n(c(T),{class:`text-muted-foreground`},{default:g(()=>[...a[12]||=[d(`创建时间`,-1)]]),_:1}),n(c(T),{class:`text-right text-muted-foreground`},{default:g(()=>[...a[13]||=[d(`操作`,-1)]]),_:1})]),_:1})]),_:1}),n(c(ce),null,{default:g(()=>[(f(!0),l(o,null,h(K.value,t=>(f(),u(c(D),{key:t.id,class:ee({"opacity-60":!t.is_active})},{default:g(()=>[n(c(w),{class:`font-medium`},{default:g(()=>[d(_(t.name),1)]),_:2},1024),n(c(w),null,{default:g(()=>[e(`div`,L,[e(`span`,R,_(me(t.key)),1),n(c(p),{variant:`ghost`,size:`sm`,class:`h-6 w-6 p-0`,onClick:e=>t.key&&c(pe)(t.key)},{default:g(()=>[c(fe)?(f(),l(`svg`,B,[...a[15]||=[e(`path`,{"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`M5 13l4 4L19 7`},null,-1)]])):(f(),l(`svg`,z,[...a[14]||=[e(`path`,{"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z`},null,-1)]]))]),_:1},8,[`onClick`])])]),_:2},1024),n(c(w),null,{default:g(()=>[t.allowed_models&&t.allowed_models.length>0?(f(),l(`div`,V,[(f(!0),l(o,null,h(t.allowed_models,e=>(f(),u(c(A),{key:e,variant:`outline`,class:`text-xs`},{default:g(()=>[d(_(e),1)]),_:2},1024))),128))])):(f(),u(c(A),{key:1,variant:`secondary`},{default:g(()=>[...a[16]||=[d(`全部模型`,-1)]]),_:1}))]),_:2},1024),n(c(w),null,{default:g(()=>[n(c(A),{variant:t.is_active?`default`:`secondary`},{default:g(()=>[d(_(t.is_active?`启用`:`禁用`),1)]),_:2},1032,[`variant`])]),_:2},1024),n(c(w),{class:`text-muted-foreground text-sm`},{default:g(()=>[d(_(he(t.created_at)),1)]),_:2},1024),n(c(w),{class:`text-right`},{default:g(()=>[n(c(p),{variant:`ghost`,size:`sm`,onClick:e=>ve(t),class:`text-muted-foreground hover:text-primary mr-2`},{default:g(()=>[...a[17]||=[d(`编辑`,-1)]]),_:1},8,[`onClick`]),n(c(p),{variant:`ghost`,size:`sm`,onClick:e=>Se(t),class:`text-muted-foreground hover:text-destructive`},{default:g(()=>[...a[18]||=[d(`删除`,-1)]]),_:1},8,[`onClick`])]),_:2},1024)]),_:2},1032,[`class`]))),128)),K.value.length===0?(f(),u(c(D),{key:0},{default:g(()=>[n(c(w),{colspan:`6`,class:`text-center text-muted-foreground py-8`},{default:g(()=>[...a[19]||=[d(`暂无密钥`,-1)]]),_:1})]),_:1})):r(``,!0)]),_:1})]),_:1})]),n(c(re),{open:J.value,"onUpdate:open":a[4]||=e=>J.value=e},{default:g(()=>[n(c(te),{class:`sm:max-w-lg`},{default:g(()=>[n(c(ne),null,{default:g(()=>[n(c(ae),null,{default:g(()=>[d(_(Y.value?`编辑密钥`:`创建密钥`),1)]),_:1})]),_:1}),e(`form`,{onSubmit:i(xe,[`prevent`]),class:`space-y-4`},[e(`div`,null,[n(c(k),{class:`block text-sm font-medium text-foreground mb-1`},{default:g(()=>[...a[20]||=[d(`名称`,-1)]]),_:1}),n(c(M),{modelValue:Z.value.name,"onUpdate:modelValue":a[0]||=e=>Z.value.name=e,type:`text`,required:``,placeholder:`例如:生产环境`,onInput:a[1]||=e=>delete Q.value.name},null,8,[`modelValue`]),Q.value.name?(f(),l(`p`,H,_(Q.value.name),1)):r(``,!0)]),e(`div`,null,[n(c(k),{class:`block text-sm font-medium text-foreground mb-1`},{default:g(()=>[...a[21]||=[d(`白名单模型`,-1)]]),_:1}),a[23]||=e(`div`,{class:`text-xs text-muted-foreground mb-2`},`不选择 = 允许所有模型`,-1),e(`div`,U,[(f(!0),l(o,null,h(q.value,t=>(f(),u(c(k),{key:t,class:`flex items-center gap-2 cursor-pointer text-sm font-normal`},{default:g(()=>[n(c(v),{"model-value":Z.value.allowed_models.includes(t),"onUpdate:modelValue":e=>{if(e&&e!==`indeterminate`&&!Z.value.allowed_models.includes(t))Z.value.allowed_models.push(t);else if(!e){let e=Z.value.allowed_models.indexOf(t);e>=0&&Z.value.allowed_models.splice(e,1)}}},null,8,[`model-value`,`onUpdate:modelValue`]),e(`span`,le,_(t),1)]),_:2},1024))),128)),q.value.length===0?(f(),l(`div`,W,` 暂无可用模型,请先配置模型映射 `)):r(``,!0)]),Z.value.allowed_models.length>0?(f(),l(`div`,ue,[(f(!0),l(o,null,h(Z.value.allowed_models,e=>(f(),u(c(A),{key:e,variant:`outline`,class:`text-xs`},{default:g(()=>[d(_(e)+` `,1),n(c(p),{type:`button`,variant:`ghost`,size:`sm`,class:`ml-1 h-4 w-4 p-0 text-muted-foreground hover:text-destructive`,onClick:t=>ge(e)},{default:g(()=>[...a[22]||=[d(`×`,-1)]]),_:1},8,[`onClick`])]),_:2},1024))),128))])):r(``,!0)]),Y.value?(f(),l(`div`,de,[n(c(v),{modelValue:Z.value.is_active,"onUpdate:modelValue":a[2]||=e=>Z.value.is_active=e,id:`key-active`},null,8,[`modelValue`]),n(c(k),{for:`key-active`,class:`text-sm text-foreground`},{default:g(()=>[...a[24]||=[d(`启用`,-1)]]),_:1})])):r(``,!0),n(c(ie),null,{default:g(()=>[n(c(p),{type:`button`,variant:`outline`,onClick:a[3]||=e=>J.value=!1},{default:g(()=>[...a[25]||=[d(`取消`,-1)]]),_:1}),n(c(p),{type:`submit`},{default:g(()=>[...a[26]||=[d(`保存`,-1)]]),_:1})]),_:1})],32)]),_:1})]),_:1},8,[`open`]),n(c(y),{open:!!X.value,"onUpdate:open":a[5]||=e=>{e||(X.value=null)}},{default:g(()=>[n(c(oe),null,{default:g(()=>[n(c(x),null,{default:g(()=>[n(c(se),null,{default:g(()=>[...a[27]||=[d(`确认删除`,-1)]]),_:1}),n(c(b),null,{default:g(()=>[d(`确定要删除密钥「`+_(X.value?.name)+`」吗?使用此密钥的所有请求将被拒绝,此操作不可撤销。`,1)]),_:1})]),_:1}),n(c(C),null,{default:g(()=>[n(c(S),null,{default:g(()=>[...a[28]||=[d(`取消`,-1)]]),_:1}),n(c(p),{variant:`destructive`,onClick:Ce},{default:g(()=>[...a[29]||=[d(`删除`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`])]))}});export{G as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{$ as e,B as t,Et as n,G as r,H as i,I as a,It as o,J as s,K as c,L as l,Lt as u,Pt as d,R as f,Rt as p,U as m,V as h,W as g,at as _,b as v,ct as y,et as b,f as x,gt as S,ht as C,i as w,jt as T,l as E,nt as D,p as O,r as k,rt as A,st as j,tt as ee,ut as te,v as ne,vt as M,x as re,z as N,zt as ie}from"./button-BKJB3nEQ.js";import{t as ae}from"./createLucideIcon-igIAnu_Y.js";import{n as oe,t as se}from"./ohash.D__AXeF1-CsY_LBk-.js";import{n as P,r as F,t as ce}from"./useNonce-DN0Hrw3l.js";import{S as I,a as le,b as ue,c as de,d as fe,f as L,g as pe,h as me,n as he,o as ge,p as R,r as z,t as B,u as V,x as H,y as U}from"./Collection-GDvpW_uY.js";import{n as _e,t as ve}from"./VisuallyHidden-DPKPka_x.js";import{t as W}from"./useForwardExpose-bqtcPo63.js";import{i as ye,r as be,t as xe}from"./PopperContent-ZhhkKJo0.js";var Se=ae(`chevron-up`,[[`path`,{d:`m18 15-6-6-6 6`,key:`153udz`}]]),G=0;function Ce(){S(e=>{if(!ne)return;let t=document.querySelectorAll(`[data-reka-focus-guard]`);document.body.insertAdjacentElement(`afterbegin`,t[0]??K()),document.body.insertAdjacentElement(`beforeend`,t[1]??K()),G++,e(()=>{G===1&&document.querySelectorAll(`[data-reka-focus-guard]`).forEach(e=>e.remove()),G--})})}function K(){let e=document.createElement(`span`);return e.setAttribute(`data-reka-focus-guard`,``),e.tabIndex=0,e.style.outline=`none`,e.style.opacity=`0`,e.style.position=`fixed`,e.style.pointerEvents=`none`,e}function q(e){let t=re(``,1e3);return{search:t,handleTypeaheadSearch:(n,r)=>{if(t.value+=n,e)e(n);else{let e=H(),n=r.map(e=>({...e,textValue:e.value?.textValue??e.ref.textContent?.trim()??``})),i=n.find(t=>t.ref===e),a=Te(n.map(e=>e.textValue),t.value,i?.textValue),o=n.find(e=>e.textValue===a);return o&&o.ref.focus(),o?.ref}},resetTypeahead:()=>{t.value=``}}}function we(e,t){return e.map((n,r)=>e[(t+r)%e.length])}function Te(e,t,n){let r=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,i=n?e.indexOf(n):-1,a=we(e,Math.max(i,0));r.length===1&&(a=a.filter(e=>e!==n));let o=a.find(e=>e.toLowerCase().startsWith(r.toLowerCase()));return o===n?void 0:o}var Ee=[` `,`Enter`,`ArrowUp`,`ArrowDown`],De=[` `,`Enter`];function J(e,t,n){return e===void 0?!1:Array.isArray(e)?e.some(e=>Y(e,t,n)):Y(e,t,n)}function Y(e,t,n){return e===void 0||t===void 0?!1:typeof e==`string`?e===t:typeof n==`function`?n(e,t):typeof n==`string`?e?.[n]===t?.[n]:se(e,t)}function Oe(e){return e==null||e===``||Array.isArray(e)&&e.length===0}var ke={key:0,value:``},[X,Ae]=I(`SelectRoot`),je=c({inheritAttrs:!1,__name:`SelectRoot`,props:{open:{type:Boolean,required:!1,default:void 0},defaultOpen:{type:Boolean,required:!1},defaultValue:{type:null,required:!1},modelValue:{type:null,required:!1,default:void 0},by:{type:[String,Function],required:!1},dir:{type:String,required:!1},multiple:{type:Boolean,required:!1},autocomplete:{type:String,required:!1},disabled:{type:Boolean,required:!1},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:[`update:modelValue`,`update:open`],setup(t,{emit:r}){let a=t,o=r,{required:s,disabled:c,multiple:u,dir:f}=T(a),p=O(a,`modelValue`,o,{defaultValue:a.defaultValue??(u.value?[]:void 0),passive:a.modelValue===void 0,deep:!0}),g=O(a,`open`,o,{defaultValue:a.defaultOpen,passive:a.open===void 0}),v=n(),b=n(),x=n({x:0,y:0}),S=N(()=>u.value&&Array.isArray(p.value)?p.value?.length===0:U(p.value));B({isProvider:!0});let C=me(f),w=_e(v),E=n(new Set),D=N(()=>Array.from(E.value).map(e=>e.value).join(`;`));function k(e){if(u.value){let t=Array.isArray(p.value)?[...p.value]:[],n=t.findIndex(t=>Y(t,e,a.by));n===-1?t.push(e):t.splice(n,1),p.value=[...t]}else p.value=e}function A(e){return Array.from(E.value).find(t=>J(e,t.value,a.by))}return Ae({triggerElement:v,onTriggerChange:e=>{v.value=e},valueElement:b,onValueElementChange:e=>{b.value=e},contentId:``,modelValue:p,onValueChange:k,by:a.by,open:g,multiple:u,required:s,onOpenChange:e=>{g.value=e},dir:C,triggerPointerDownPosRef:x,disabled:c,isEmptyModelValue:S,optionsSet:E,onOptionAdd:e=>{let t=A(e.value);t&&E.value.delete(t),E.value.add(e)},onOptionRemove:e=>{let t=A(e.value);t&&E.value.delete(t)}}),(t,n)=>(_(),h(d(ye),null,{default:M(()=>[y(t.$slots,`default`,{modelValue:d(p),open:d(g)}),d(w)&&t.name?(_(),h(Me,{key:D.value,"aria-hidden":`true`,tabindex:`-1`,multiple:d(u),required:d(s),name:t.name,autocomplete:t.autocomplete,disabled:d(c),value:d(p)},{default:M(()=>[d(U)(d(p))?(_(),m(`option`,ke)):i(`v-if`,!0),(_(!0),m(l,null,j(Array.from(E.value),t=>(_(),m(`option`,e({key:t.value??``},{ref_for:!0},t),null,16))),128))]),_:1},8,[`multiple`,`required`,`name`,`autocomplete`,`disabled`,`value`])):i(`v-if`,!0)]),_:3}))}}),Me=c({__name:`BubbleSelect`,props:{autocomplete:{type:String,required:!1},autofocus:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},form:{type:String,required:!1},multiple:{type:Boolean,required:!1},name:{type:String,required:!1},required:{type:Boolean,required:!1},size:{type:Number,required:!1},value:{type:null,required:!1}},setup(r){let i=r,a=n(),o=X();C(()=>i.value,(e,t)=>{let n=window.HTMLSelectElement.prototype,r=Object.getOwnPropertyDescriptor(n,`value`).set;if(e!==t&&r&&a.value){let t=new Event(`change`,{bubbles:!0});r.call(a.value,e),a.value.dispatchEvent(t)}});function s(e){o.onValueChange(e.target.value)}return(n,r)=>(_(),h(d(ve),{"as-child":``},{default:M(()=>[t(`select`,e({ref_key:`selectElement`,ref:a},i,{onInput:s}),[y(n.$slots,`default`)],16)]),_:3}))}}),Ne=c({__name:`SelectPopperPosition`,props:{side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1,default:`start`},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1,default:10},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(t){let n=R(t);return(t,r)=>(_(),h(d(xe),e(d(n),{style:{boxSizing:`border-box`,"--reka-select-content-transform-origin":`var(--reka-popper-transform-origin)`,"--reka-select-content-available-width":`var(--reka-popper-available-width)`,"--reka-select-content-available-height":`var(--reka-popper-available-height)`,"--reka-select-trigger-width":`var(--reka-popper-anchor-width)`,"--reka-select-trigger-height":`var(--reka-popper-anchor-height)`}}),{default:M(()=>[y(t.$slots,`default`)]),_:3},16))}}),Pe={onViewportChange:()=>{},itemTextRefCallback:()=>{},itemRefCallback:()=>{}},[Z,Fe]=I(`SelectContent`),Ie=c({__name:`SelectContentImpl`,props:{position:{type:String,required:!1,default:`item-aligned`},bodyLock:{type:Boolean,required:!1,default:!0},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1,default:`start`},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1,default:!0}},emits:[`closeAutoFocus`,`escapeKeyDown`,`pointerDownOutside`],setup(t,{emit:i}){let o=t,s=i,c=X();Ce(),pe(o.bodyLock);let{CollectionSlot:l,getItems:u}=B(),f=n();fe(f);let{search:p,handleTypeaheadSearch:m}=q(),g=n(),v=n(),b=n(),x=n(!1),w=n(!1),T=n(!1);function D(){v.value&&f.value&&z([v.value,f.value])}C(x,()=>{D()});let{onOpenChange:O,triggerPointerDownPosRef:k}=c;S(e=>{if(!f.value)return;let t={x:0,y:0},n=e=>{t={x:Math.abs(Math.round(e.pageX)-(k.value?.x??0)),y:Math.abs(Math.round(e.pageY)-(k.value?.y??0))}},r=e=>{e.pointerType!==`touch`&&(t.x<=10&&t.y<=10?e.preventDefault():f.value?.contains(e.target)||O(!1),document.removeEventListener(`pointermove`,n),k.value=null)};k.value!==null&&(document.addEventListener(`pointermove`,n),document.addEventListener(`pointerup`,r,{capture:!0,once:!0})),e(()=>{document.removeEventListener(`pointermove`,n),document.removeEventListener(`pointerup`,r,{capture:!0})})});function A(e){let t=e.ctrlKey||e.altKey||e.metaKey;if(e.key===`Tab`&&e.preventDefault(),!t&&e.key.length===1&&m(e.key,u()),[`ArrowUp`,`ArrowDown`,`Home`,`End`].includes(e.key)){let t=[...u().map(e=>e.ref)];if([`ArrowUp`,`End`].includes(e.key)&&(t=t.slice().reverse()),[`ArrowUp`,`ArrowDown`].includes(e.key)){let n=e.target,r=t.indexOf(n);t=t.slice(r+1)}setTimeout(()=>z(t)),e.preventDefault()}}let j=R(N(()=>o.position===`popper`?o:{}).value);return Fe({content:f,viewport:g,onViewportChange:e=>{g.value=e},itemRefCallback:(e,t,n)=>{let r=!w.value&&!n,i=J(c.modelValue.value,t,c.by);if(c.multiple.value){if(T.value)return;(i||r)&&(v.value=e,i&&(T.value=!0))}else (i||r)&&(v.value=e);r&&(w.value=!0)},selectedItem:v,selectedItemText:b,onItemLeave:()=>{f.value?.focus()},itemTextRefCallback:(e,t,n)=>{let r=!w.value&&!n;(J(c.modelValue.value,t,c.by)||r)&&(b.value=e)},focusSelectedItem:D,position:o.position,isPositioned:x,searchRef:p}),(t,n)=>(_(),h(d(l),null,{default:M(()=>[r(d(le),{"as-child":``,onMountAutoFocus:n[6]||=a(()=>{},[`prevent`]),onUnmountAutoFocus:n[7]||=e=>{s(`closeAutoFocus`,e),!e.defaultPrevented&&(d(c).triggerElement.value?.focus({preventScroll:!0}),e.preventDefault())}},{default:M(()=>[r(d(ge),{"as-child":``,"disable-outside-pointer-events":t.disableOutsidePointerEvents,onFocusOutside:n[2]||=a(()=>{},[`prevent`]),onDismiss:n[3]||=e=>d(c).onOpenChange(!1),onEscapeKeyDown:n[4]||=e=>s(`escapeKeyDown`,e),onPointerDownOutside:n[5]||=e=>s(`pointerDownOutside`,e)},{default:M(()=>[(_(),h(te(t.position===`popper`?Ne:Re),e({...t.$attrs,...d(j)},{id:d(c).contentId,ref:e=>{if(!e)return;let t=d(E)(e);t?.hasAttribute(`data-reka-popper-content-wrapper`)?f.value=t.firstElementChild:f.value=t},role:`listbox`,"data-state":d(c).open.value?`open`:`closed`,dir:d(c).dir.value,style:{display:`flex`,flexDirection:`column`,outline:`none`},onContextmenu:n[0]||=a(()=>{},[`prevent`]),onPlaced:n[1]||=e=>x.value=!0,onKeydown:A}),{default:M(()=>[y(t.$slots,`default`)]),_:3},16,[`id`,`data-state`,`dir`,`onKeydown`]))]),_:3},8,[`disable-outside-pointer-events`])]),_:3})]),_:3}))}}),[Q,Le]=I(`SelectItemAlignedPosition`),Re=c({inheritAttrs:!1,__name:`SelectItemAlignedPosition`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`placed`],setup(t,{emit:i}){let a=t,o=i,{getItems:s}=B(),c=X(),l=Z(),u=n(!1),f=n(!0),h=n(),{forwardRef:g,currentElement:v}=W(),{viewport:S,selectedItem:C,selectedItemText:T,focusSelectedItem:E}=l;function O(){if(c.triggerElement.value&&c.valueElement.value&&h.value&&v.value&&S?.value&&C?.value&&T?.value){let e=c.triggerElement.value.getBoundingClientRect(),t=v.value.getBoundingClientRect(),n=c.valueElement.value.getBoundingClientRect(),r=T.value.getBoundingClientRect();if(c.dir.value!==`rtl`){let i=r.left-t.left,a=n.left-i,o=e.left-a,s=e.width+o,c=Math.max(s,t.width),l=window.innerWidth-10,u=P(a,10,Math.max(10,l-c));h.value.style.minWidth=`${s}px`,h.value.style.left=`${u}px`}else{let i=t.right-r.right,a=window.innerWidth-n.right-i,o=window.innerWidth-e.right-a,s=e.width+o,c=Math.max(s,t.width),l=window.innerWidth-10,u=P(a,10,Math.max(10,l-c));h.value.style.minWidth=`${s}px`,h.value.style.right=`${u}px`}let i=s().map(e=>e.ref),a=window.innerHeight-20,l=S.value.scrollHeight,d=window.getComputedStyle(v.value),f=Number.parseInt(d.borderTopWidth,10),p=Number.parseInt(d.paddingTop,10),m=Number.parseInt(d.borderBottomWidth,10),g=Number.parseInt(d.paddingBottom,10),_=f+p+l+g+m,y=Math.min(C.value.offsetHeight*5,_),b=window.getComputedStyle(S.value),x=Number.parseInt(b.paddingTop,10),w=Number.parseInt(b.paddingBottom,10),E=e.top+e.height/2-10,D=a-E,O=C.value.offsetHeight/2,k=C.value.offsetTop+O,A=f+p+k,j=_-A;if(A<=E){let e=C.value===i.at(-1);h.value.style.bottom=`0px`;let t=v.value.clientHeight-S.value.offsetTop-S.value.offsetHeight,n=A+Math.max(D,O+(e?w:0)+t+m);h.value.style.height=`${n}px`}else{let e=C.value===i[0];h.value.style.top=`0px`;let t=Math.max(E,f+S.value.offsetTop+(e?x:0)+O)+j;h.value.style.height=`${t}px`,S.value.scrollTop=A-E+S.value.offsetTop}h.value.style.margin=`10px 0`,h.value.style.minHeight=`${y}px`,h.value.style.maxHeight=`${a}px`,o(`placed`),requestAnimationFrame(()=>u.value=!0)}}let k=n(``);D(async()=>{await b(),O(),v.value&&(k.value=window.getComputedStyle(v.value).zIndex)});function A(e){e&&f.value===!0&&(O(),E?.(),f.value=!1)}return x(c.triggerElement,()=>{O()}),Le({contentWrapper:h,shouldExpandOnScrollRef:u,onScrollButtonChange:A}),(t,n)=>(_(),m(`div`,{ref_key:`contentWrapperElement`,ref:h,style:p({display:`flex`,flexDirection:`column`,position:`fixed`,zIndex:k.value})},[r(d(w),e({ref:d(g),style:{boxSizing:`border-box`,maxHeight:`100%`}},{...t.$attrs,...a}),{default:M(()=>[y(t.$slots,`default`)]),_:3},16)],4))}}),ze=c({inheritAttrs:!1,__name:`SelectProvider`,props:{context:{type:Object,required:!0}},setup(e){return Ae(e.context),Fe(Pe),(e,t)=>y(e.$slots,`default`)}}),Be={key:1},Ve=c({inheritAttrs:!1,__name:`SelectContent`,props:{forceMount:{type:Boolean,required:!1},position:{type:String,required:!1},bodyLock:{type:Boolean,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1}},emits:[`closeAutoFocus`,`escapeKeyDown`,`pointerDownOutside`],setup(e,{emit:t}){let a=e,o=L(a,t),c=X(),l=n();D(()=>{l.value=new DocumentFragment});let p=n(),g=N(()=>a.forceMount||c.open.value),v=n(g.value);return C(g,()=>{setTimeout(()=>v.value=g.value)}),(e,t)=>g.value||v.value||p.value?.present?(_(),h(d(de),{key:0,ref_key:`presenceRef`,ref:p,present:g.value},{default:M(()=>[r(Ie,u(s({...d(o),...e.$attrs})),{default:M(()=>[y(e.$slots,`default`)]),_:3},16)]),_:3},8,[`present`])):l.value?(_(),m(`div`,Be,[(_(),h(f,{to:l.value},[r(ze,{context:d(c)},{default:M(()=>[y(e.$slots,`default`)]),_:3},8,[`context`])],8,[`to`]))])):i(`v-if`,!0)}}),He=c({__name:`SelectIcon`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){return(e,t)=>(_(),h(d(w),{"aria-hidden":`true`,as:e.as,"as-child":e.asChild},{default:M(()=>[y(e.$slots,`default`,{},()=>[t[0]||=g(`▼`)])]),_:3},8,[`as`,`as-child`]))}}),[Ue,We]=I(`SelectItem`),Ge=c({__name:`SelectItem`,props:{value:{type:null,required:!0},disabled:{type:Boolean,required:!1},textValue:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`select`],setup(e,{emit:t}){let i=e,o=t,{disabled:s}=T(i),c=X(),l=Z(),{forwardRef:u,currentElement:f}=W(),{CollectionItem:p}=B(),m=N(()=>J(c.modelValue?.value,i.value,c.by)),g=n(!1),v=n(i.textValue??``),x=V(void 0,`reka-select-item-text`);async function S(e){e.defaultPrevented||ue(`select.select`,C,{originalEvent:e,value:i.value})}async function C(e){await b(),o(`select`,e),!e.defaultPrevented&&(s.value||(c.onValueChange(i.value),c.multiple.value||c.onOpenChange(!1)))}async function E(e){await b(),!e.defaultPrevented&&(s.value?l.onItemLeave?.():e.currentTarget?.focus({preventScroll:!0}))}async function O(e){await b(),!e.defaultPrevented&&e.currentTarget===H()&&l.onItemLeave?.()}async function k(e){await b(),!e.defaultPrevented&&(l.searchRef?.value!==``&&e.key===` `||(De.includes(e.key)&&S(e),e.key===` `&&e.preventDefault()))}if(i.value===``)throw Error(`A <SelectItem /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.`);return D(()=>{f.value&&l.itemRefCallback(f.value,i.value,i.disabled)}),We({value:i.value,disabled:s,textId:x,isSelected:m,onItemTextChange:e=>{v.value=((v.value||e?.textContent)??``).trim()}}),(e,t)=>(_(),h(d(p),{value:{textValue:v.value}},{default:M(()=>[r(d(w),{ref:d(u),role:`option`,"aria-labelledby":d(x),"data-highlighted":g.value?``:void 0,"aria-selected":m.value,"data-state":m.value?`checked`:`unchecked`,"aria-disabled":d(s)||void 0,"data-disabled":d(s)?``:void 0,tabindex:d(s)?void 0:-1,as:e.as,"as-child":e.asChild,onFocus:t[0]||=e=>g.value=!0,onBlur:t[1]||=e=>g.value=!1,onPointerup:S,onPointerdown:t[2]||=e=>{e.currentTarget.focus({preventScroll:!0})},onTouchend:t[3]||=a(()=>{},[`prevent`,`stop`]),onPointermove:E,onPointerleave:O,onKeydown:k},{default:M(()=>[y(e.$slots,`default`)]),_:3},8,[`aria-labelledby`,`data-highlighted`,`aria-selected`,`data-state`,`aria-disabled`,`data-disabled`,`tabindex`,`as`,`as-child`])]),_:3},8,[`value`]))}}),Ke=c({__name:`SelectItemIndicator`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(t){let n=t,r=Ue();return(t,a)=>d(r).isSelected.value?(_(),h(d(w),e({key:0,"aria-hidden":`true`},n),{default:M(()=>[y(t.$slots,`default`)]),_:3},16)):i(`v-if`,!0)}}),qe=c({inheritAttrs:!1,__name:`SelectItemText`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(t){let n=t,r=X(),i=Z(),a=Ue(),{forwardRef:o,currentElement:s}=W(),c=N(()=>({value:a.value,disabled:a.disabled.value,textContent:s.value?.textContent??a.value?.toString()??``}));return D(()=>{s.value&&(a.onItemTextChange(s.value),i.itemTextRefCallback(s.value,a.value,a.disabled.value),r.onOptionAdd(c.value))}),A(()=>{r.onOptionRemove(c.value)}),(t,r)=>(_(),h(d(w),e({id:d(a).textId,ref:d(o)},{...n,...t.$attrs}),{default:M(()=>[y(t.$slots,`default`)]),_:3},16,[`id`]))}}),Je=c({__name:`SelectPortal`,props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(e){let t=e;return(e,n)=>(_(),h(d(he),u(s(t)),{default:M(()=>[y(e.$slots,`default`)]),_:3},16))}}),$=c({__name:`SelectScrollButtonImpl`,emits:[`autoScroll`],setup(t,{emit:r}){let i=r,{getItems:a}=B(),o=Z(),s=n(null);function c(){s.value!==null&&(window.clearInterval(s.value),s.value=null)}S(()=>{a().map(e=>e.ref).find(e=>e===H())?.scrollIntoView({block:`nearest`})});function l(){s.value===null&&(s.value=window.setInterval(()=>{i(`autoScroll`)},50))}function u(){o.onItemLeave?.(),s.value===null&&(s.value=window.setInterval(()=>{i(`autoScroll`)},50))}return ee(()=>c()),(t,n)=>(_(),h(d(w),e({"aria-hidden":`true`,style:{flexShrink:0}},t.$parent?.$props,{onPointerdown:l,onPointermove:u,onPointerleave:n[0]||=()=>{c()}}),{default:M(()=>[y(t.$slots,`default`)]),_:3},16))}}),Ye=c({__name:`SelectScrollDownButton`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=Z(),r=t.position===`item-aligned`?Q():void 0,{forwardRef:a,currentElement:o}=W(),s=n(!1);return S(e=>{if(t.viewport?.value&&t.isPositioned?.value){let n=t.viewport.value;function r(){let e=n.scrollHeight-n.clientHeight;s.value=Math.ceil(n.scrollTop)<e}r(),n.addEventListener(`scroll`,r),e(()=>n.removeEventListener(`scroll`,r))}}),C(o,()=>{o.value&&r?.onScrollButtonChange(o.value)}),(e,n)=>s.value?(_(),h($,{key:0,ref:d(a),onAutoScroll:n[0]||=()=>{let{viewport:e,selectedItem:n}=d(t);e?.value&&n?.value&&(e.value.scrollTop=e.value.scrollTop+n.value.offsetHeight)}},{default:M(()=>[y(e.$slots,`default`)]),_:3},512)):i(`v-if`,!0)}}),Xe=c({__name:`SelectScrollUpButton`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=Z(),r=t.position===`item-aligned`?Q():void 0,{forwardRef:a,currentElement:o}=W(),s=n(!1);return S(e=>{if(t.viewport?.value&&t.isPositioned?.value){let n=t.viewport.value;function r(){s.value=n.scrollTop>0}r(),n.addEventListener(`scroll`,r),e(()=>n.removeEventListener(`scroll`,r))}}),C(o,()=>{o.value&&r?.onScrollButtonChange(o.value)}),(e,n)=>s.value?(_(),h($,{key:0,ref:d(a),onAutoScroll:n[0]||=()=>{let{viewport:e,selectedItem:n}=d(t);e?.value&&n?.value&&(e.value.scrollTop=e.value.scrollTop-n.value.offsetHeight)}},{default:M(()=>[y(e.$slots,`default`)]),_:3},512)):i(`v-if`,!0)}}),Ze=c({__name:`SelectTrigger`,props:{disabled:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`}},setup(e){let t=e,n=X(),{forwardRef:i,currentElement:o}=W(),s=N(()=>n.disabled?.value||t.disabled);n.contentId||=V(void 0,`reka-select-content`),D(()=>{n.onTriggerChange(o.value)});let{getItems:c}=B(),{search:l,handleTypeaheadSearch:u,resetTypeahead:f}=q();function p(){s.value||(n.onOpenChange(!0),f())}function m(e){p(),n.triggerPointerDownPosRef.value={x:Math.round(e.pageX),y:Math.round(e.pageY)}}return(e,t)=>(_(),h(d(be),{"as-child":``,reference:e.reference},{default:M(()=>[r(d(w),{ref:d(i),role:`combobox`,type:e.as===`button`?`button`:void 0,"aria-controls":d(n).contentId,"aria-expanded":d(n).open.value||!1,"aria-required":d(n).required?.value,"aria-autocomplete":`none`,disabled:s.value,dir:d(n)?.dir.value,"data-state":d(n)?.open.value?`open`:`closed`,"data-disabled":s.value?``:void 0,"data-placeholder":d(Oe)(d(n).modelValue?.value)?``:void 0,"as-child":e.asChild,as:e.as,onClick:t[0]||=e=>{(e?.currentTarget)?.focus()},onPointerdown:t[1]||=e=>{if(e.pointerType===`touch`)return e.preventDefault();let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),e.button===0&&e.ctrlKey===!1&&(m(e),e.preventDefault())},onPointerup:t[2]||=a(e=>{e.pointerType===`touch`&&m(e)},[`prevent`]),onKeydown:t[3]||=e=>{let t=d(l)!==``;!(e.ctrlKey||e.altKey||e.metaKey)&&e.key.length===1&&t&&e.key===` `||(d(u)(e.key,d(c)()),d(Ee).includes(e.key)&&(p(),e.preventDefault()))}},{default:M(()=>[y(e.$slots,`default`)]),_:3},8,[`type`,`aria-controls`,`aria-expanded`,`aria-required`,`disabled`,`dir`,`data-state`,`data-disabled`,`data-placeholder`,`as-child`,`as`])]),_:3},8,[`reference`]))}}),Qe=c({__name:`SelectValue`,props:{placeholder:{type:String,required:!1,default:``},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){let t=e,{forwardRef:n,currentElement:r}=W(),i=X();D(()=>{i.valueElement=r});let a=N(()=>{let e=[],t=Array.from(i.optionsSet.value),n=e=>t.find(t=>J(e,t.value,i.by));return e=Array.isArray(i.modelValue.value)?i.modelValue.value.map(e=>n(e)?.textContent??``):[n(i.modelValue.value)?.textContent??``],e.filter(Boolean)}),o=N(()=>a.value.length?a.value.join(`, `):t.placeholder);return(e,r)=>(_(),h(d(w),{ref:d(n),as:e.as,"as-child":e.asChild,style:{pointerEvents:`none`},"data-placeholder":a.value.length?void 0:t.placeholder},{default:M(()=>[y(e.$slots,`default`,{selectedLabel:a.value,modelValue:d(i).modelValue.value},()=>[g(ie(o.value),1)])]),_:3},8,[`as`,`as-child`,`data-placeholder`]))}}),$e=c({__name:`SelectViewport`,props:{nonce:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(t){let i=t,{nonce:a}=T(i),o=ce(a),s=Z(),c=s.position===`item-aligned`?Q():void 0,{forwardRef:u,currentElement:f}=W();D(()=>{s?.onViewportChange(f.value)});let p=n(0);function h(e){let t=e.currentTarget,{shouldExpandOnScrollRef:n,contentWrapper:r}=c??{};if(n?.value&&r?.value){let e=Math.abs(p.value-t.scrollTop);if(e>0){let n=window.innerHeight-20,i=Number.parseFloat(r.value.style.minHeight),a=Number.parseFloat(r.value.style.height),o=Math.max(i,a);if(o<n){let i=o+e,a=Math.min(n,i),s=i-a;r.value.style.height=`${a}px`,r.value.style.bottom===`0px`&&(t.scrollTop=s>0?s:0,r.value.style.justifyContent=`flex-end`)}}}p.value=t.scrollTop}return(t,n)=>(_(),m(l,null,[r(d(w),e({ref:d(u),"data-reka-select-viewport":``,role:`presentation`},{...t.$attrs,...i},{style:{position:`relative`,flex:1,overflow:`hidden auto`},onScroll:h}),{default:M(()=>[y(t.$slots,`default`)]),_:3},16),r(d(w),{as:`style`,nonce:d(o)},{default:M(()=>n[0]||=[g(` /* Hide scrollbars cross-browser and enable momentum scroll for touch devices */ [data-reka-select-viewport] { scrollbar-width:none; -ms-overflow-style: none; -webkit-overflow-scrolling: touch; } [data-reka-select-viewport]::-webkit-scrollbar { display: none; } `)]),_:1,__:[0]},8,[`nonce`])],64))}}),et=c({__name:`Select`,props:{open:{type:Boolean},defaultOpen:{type:Boolean},defaultValue:{},modelValue:{},by:{type:[String,Function]},dir:{},multiple:{type:Boolean},autocomplete:{},disabled:{type:Boolean},name:{},required:{type:Boolean}},emits:[`update:modelValue`,`update:open`],setup(t,{emit:n}){let r=L(t,n);return(t,n)=>(_(),h(d(je),e({"data-slot":`select`},d(r)),{default:M(e=>[y(t.$slots,`default`,u(s(e)))]),_:3},16))}}),tt=c({inheritAttrs:!1,__name:`SelectContent`,props:{forceMount:{type:Boolean},position:{default:`item-aligned`},bodyLock:{type:Boolean},side:{},sideOffset:{},sideFlip:{type:Boolean},align:{default:`center`},alignOffset:{},alignFlip:{type:Boolean},avoidCollisions:{type:Boolean},collisionBoundary:{},collisionPadding:{},arrowPadding:{},hideShiftedArrow:{type:Boolean},sticky:{},hideWhenDetached:{type:Boolean},positionStrategy:{},updatePositionStrategy:{},disableUpdateOnLayoutShift:{type:Boolean},prioritizePosition:{type:Boolean},reference:{},asChild:{type:Boolean},as:{},disableOutsidePointerEvents:{type:Boolean},class:{type:[Boolean,null,String,Object,Array]}},emits:[`closeAutoFocus`,`escapeKeyDown`,`pointerDownOutside`],setup(t,{emit:n}){let i=t,a=n,s=L(v(i,`class`),a);return(n,a)=>(_(),h(d(Je),null,{default:M(()=>[r(d(Ve),e({"data-slot":`select-content`,"data-align-trigger":t.position===`item-aligned`},{...n.$attrs,...d(s)},{class:d(k)(`bg-popover text-popover-foreground data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 ring-foreground/10 min-w-36 rounded-lg shadow-md ring-1 duration-100 data-[side=inline-start]:slide-in-from-right-2 data-[side=inline-end]:slide-in-from-left-2 cn-menu-translucent relative z-dropdown max-h-(--reka-select-content-available-height) origin-(--reka-select-content-transform-origin) overflow-x-hidden overflow-y-auto data-[align-trigger=true]:animate-none`,t.position===`popper`&&`data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1`,i.class)}),{default:M(()=>[r(d(at)),r(d($e),{"data-position":t.position,class:o(d(k)(`data-[position=popper]:h-[var(--reka-select-trigger-height)] data-[position=popper]:w-full data-[position=popper]:min-w-[var(--reka-select-trigger-width)]`))},{default:M(()=>[y(n.$slots,`default`)]),_:3},8,[`data-position`,`class`]),r(d(it))]),_:3},16,[`data-align-trigger`,`class`])]),_:3}))}}),nt={class:`pointer-events-none absolute right-2 flex size-4 items-center justify-center`},rt=c({__name:`SelectItem`,props:{value:{},disabled:{type:Boolean},textValue:{},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(n){let i=n,a=R(v(i,`class`));return(n,o)=>(_(),h(d(Ge),e({"data-slot":`select-item`},d(a),{class:d(k)(`focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm [&_svg:not([class*=size-])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2 relative flex w-full cursor-default items-center outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0`,i.class)}),{default:M(()=>[t(`span`,nt,[r(d(Ke),null,{default:M(()=>[y(n.$slots,`indicator-icon`,{},()=>[r(d(oe),{class:`pointer-events-none`})])]),_:3})]),r(d(qe),null,{default:M(()=>[y(n.$slots,`default`)]),_:3})]),_:3},16,[`class`]))}}),it=c({__name:`SelectScrollDownButton`,props:{asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(t){let n=t,i=R(v(n,`class`));return(t,a)=>(_(),h(d(Ye),e({"data-slot":`select-scroll-down-button`},d(i),{class:d(k)(`bg-popover z-10 flex cursor-default items-center justify-center py-1 [&_svg:not([class*=size-])]:size-4`,n.class)}),{default:M(()=>[y(t.$slots,`default`,{},()=>[r(d(F))])]),_:3},16,[`class`]))}}),at=c({__name:`SelectScrollUpButton`,props:{asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(t){let n=t,i=R(v(n,`class`));return(t,a)=>(_(),h(d(Xe),e({"data-slot":`select-scroll-up-button`},d(i),{class:d(k)(`bg-popover z-10 flex cursor-default items-center justify-center py-1 [&_svg:not([class*=size-])]:size-4`,n.class)}),{default:M(()=>[y(t.$slots,`default`,{},()=>[r(d(Se))])]),_:3},16,[`class`]))}}),ot=c({__name:`SelectTrigger`,props:{disabled:{type:Boolean},reference:{},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]},size:{default:`default`}},setup(t){let n=t,i=R(v(n,`class`,`size`));return(a,o)=>(_(),h(d(Ze),e({"data-slot":`select-trigger`,"data-size":t.size},d(i),{class:d(k)(`border-input data-placeholder:text-muted-foreground dark:bg-input/30 dark:hover:bg-input/50 focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 gap-1.5 rounded-lg border bg-transparent py-2 pr-2 pl-2.5 text-sm transition-colors select-none focus-visible:ring-3 aria-invalid:ring-3 data-[size=default]:h-8 data-[size=sm]:h-7 data-[size=sm]:rounded-md *:data-[slot=select-value]:gap-1.5 [&_svg:not([class*=size-])]:size-4 flex w-fit items-center justify-between whitespace-nowrap outline-none disabled:cursor-not-allowed disabled:opacity-50 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center [&_svg]:pointer-events-none [&_svg]:shrink-0`,n.class)}),{default:M(()=>[y(a.$slots,`default`),r(d(He),{"as-child":``},{default:M(()=>[r(d(F),{class:`text-muted-foreground size-4 pointer-events-none`})]),_:1})]),_:3},16,[`data-size`,`class`]))}}),st=c({__name:`SelectValue`,props:{placeholder:{},asChild:{type:Boolean},as:{}},setup(t){let n=t;return(t,r)=>(_(),h(d(Qe),e({"data-slot":`select-value`},n),{default:M(()=>[y(t.$slots,`default`)]),_:3},16))}});export{et as a,tt as i,ot as n,rt as r,st as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{B as e,Et as t,G as n,H as r,I as i,K as a,O as o,Pt as s,U as c,W as l,at as u,j as d,n as f,vt as p,zt as m}from"./button-BKJB3nEQ.js";import{t as h}from"./Label-IbQFgxLe.js";import{n as g,t as _}from"./CardContent-3ytnac7B.js";import{t as v}from"./Input-JApdUstN.js";var y={class:`min-h-screen flex items-center justify-center bg-background`},b={key:0,class:`text-destructive text-sm`},x=a({__name:`Setup`,setup(a){let x=d(),S=t(``),C=t(``),w=t(``),T=t(!1);async function E(){if(!S.value||!C.value){w.value=`请输入密码`;return}if(S.value!==C.value){w.value=`两次密码不一致`;return}if(S.value.length<6){w.value=`密码至少 6 位`;return}w.value=``,T.value=!0;try{await o.initializeSetup(S.value),x.push(`/admin/dashboard`)}catch(e){w.value=e.response?.data?.error?.message||`设置失败`}finally{T.value=!1}}return(t,a)=>(u(),c(`div`,y,[n(s(g),{class:`w-full max-w-sm shadow-lg`},{default:p(()=>[n(s(_),{class:`pt-6`},{default:p(()=>[a[4]||=e(`div`,{class:`text-center mb-6`},[e(`div`,{class:`w-12 h-12 bg-primary rounded-lg mx-auto mb-3 flex items-center justify-center`},[e(`svg`,{class:`w-7 h-7 text-white`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},[e(`path`,{"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`M8 9l3 3-3 3m5 0h3M5 20h14a2 2 0 002-2V6a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z`})])]),e(`h1`,{class:`text-xl font-semibold text-foreground`},`LLM Simple Router`),e(`p`,{class:`text-sm text-muted-foreground mt-1`},`初始设置 — 设置管理员密码`)],-1),e(`form`,{onSubmit:i(E,[`prevent`]),class:`space-y-4`},[e(`div`,null,[n(s(h),{class:`block text-sm font-medium text-foreground mb-1`},{default:p(()=>[...a[2]||=[l(`密码`,-1)]]),_:1}),n(s(v),{modelValue:S.value,"onUpdate:modelValue":a[0]||=e=>S.value=e,type:`password`,placeholder:`至少 6 位`,disabled:T.value},null,8,[`modelValue`,`disabled`])]),e(`div`,null,[n(s(h),{class:`block text-sm font-medium text-foreground mb-1`},{default:p(()=>[...a[3]||=[l(`确认密码`,-1)]]),_:1}),n(s(v),{modelValue:C.value,"onUpdate:modelValue":a[1]||=e=>C.value=e,type:`password`,placeholder:`再次输入密码`,disabled:T.value},null,8,[`modelValue`,`disabled`])]),w.value?(u(),c(`p`,b,m(w.value),1)):r(``,!0),n(s(f),{type:`submit`,class:`w-full`,disabled:T.value},{default:p(()=>[l(m(T.value?`设置中...`:`完成设置`),1)]),_:1},8,[`disabled`])],32)]),_:1})]),_:1})]))}});export{x as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{$ as e,F as t,G as n,H as r,I as i,J as a,K as o,Lt as s,Pt as c,V as l,at as u,b as d,ct as f,i as p,jt as m,p as h,r as g,vt as _,z as v}from"./button-BKJB3nEQ.js";import{S as y,f as b}from"./Collection-GDvpW_uY.js";import{n as x}from"./VisuallyHidden-DPKPka_x.js";import{t as S}from"./useForwardExpose-bqtcPo63.js";import{t as C}from"./VisuallyHiddenInput-Bnglr6yR.js";var[w,T]=y(`SwitchRoot`),E=o({__name:`SwitchRoot`,props:{defaultValue:{type:null,required:!1},modelValue:{type:null,required:!1,default:void 0},disabled:{type:Boolean,required:!1},id:{type:String,required:!1},value:{type:String,required:!1,default:`on`},trueValue:{type:null,required:!1,default:()=>!0},falseValue:{type:null,required:!1,default:()=>!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:[`update:modelValue`],setup(n,{emit:a}){let o=n,s=a,{disabled:d}=m(o),g=h(o,`modelValue`,s,{defaultValue:o.defaultValue??o.falseValue,passive:o.modelValue===void 0}),y=v(()=>g.value===o.trueValue);function b(){d.value||(g.value=y.value?o.falseValue:o.trueValue)}let{forwardRef:w,currentElement:E}=S(),D=x(E),O=v(()=>o.id&&E.value?document.querySelector(`[for="${o.id}"]`)?.innerText:void 0);return T({checked:y,toggleCheck:b,disabled:d}),(n,a)=>(u(),l(c(p),e(n.$attrs,{id:n.id,ref:c(w),role:`switch`,type:n.as===`button`?`button`:void 0,value:n.value,"aria-label":n.$attrs[`aria-label`]||O.value,"aria-checked":y.value,"aria-required":n.required,"data-state":y.value?`checked`:`unchecked`,"data-disabled":c(d)?``:void 0,"as-child":n.asChild,as:n.as,disabled:c(d),onClick:b,onKeydown:t(i(b,[`prevent`]),[`enter`])}),{default:_(()=>[f(n.$slots,`default`,{modelValue:c(g),checked:y.value}),c(D)&&n.name?(u(),l(c(C),{key:0,type:`checkbox`,name:n.name,disabled:c(d),required:n.required,value:n.value,checked:y.value},null,8,[`name`,`disabled`,`required`,`value`,`checked`])):r(`v-if`,!0)]),_:3},16,[`id`,`type`,`value`,`aria-label`,`aria-checked`,`aria-required`,`data-state`,`data-disabled`,`as-child`,`as`,`disabled`,`onKeydown`]))}}),D=o({__name:`SwitchThumb`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){let t=w();return S(),(e,n)=>(u(),l(c(p),{"data-state":c(t).checked.value?`checked`:`unchecked`,"data-disabled":c(t).disabled.value?``:void 0,"as-child":e.asChild,as:e.as},{default:_(()=>[f(e.$slots,`default`)]),_:3},8,[`data-state`,`data-disabled`,`as-child`,`as`]))}}),O=o({__name:`Switch`,props:{defaultValue:{},modelValue:{},disabled:{type:Boolean},id:{},value:{},trueValue:{},falseValue:{},asChild:{type:Boolean},as:{},name:{},required:{type:Boolean},class:{type:[Boolean,null,String,Object,Array]},size:{default:`default`}},emits:[`update:modelValue`],setup(t,{emit:r}){let i=t,o=r,p=b(d(i,`class`,`size`),o);return(r,o)=>(u(),l(c(E),e({"data-slot":`switch`,"data-size":t.size},c(p),{class:c(g)(`data-[state=checked]:bg-primary data-[state=unchecked]:bg-input focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 dark:data-[state=unchecked]:bg-input/80 shrink-0 rounded-full border border-transparent focus-visible:ring-3 aria-invalid:ring-3 data-[size=default]:h-[18.4px] data-[size=default]:w-[32px] data-[size=sm]:h-[14px] data-[size=sm]:w-[24px] peer group/switch relative inline-flex items-center transition-all outline-none after:absolute after:-inset-x-3 after:-inset-y-2 data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50`,i.class)}),{default:_(e=>[n(c(D),{"data-slot":`switch-thumb`,class:`bg-background dark:data-[state=unchecked]:bg-foreground dark:data-[state=checked]:bg-primary-foreground rounded-full group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 group-data-[size=default]/switch:data-[state=checked]:translate-x-[calc(100%-2px)] group-data-[size=sm]/switch:data-[state=checked]:translate-x-[calc(100%-2px)] group-data-[size=default]/switch:data-[state=unchecked]:translate-x-0 group-data-[size=sm]/switch:data-[state=unchecked]:translate-x-0 pointer-events-none block ring-0 transition-transform`},{default:_(()=>[f(r.$slots,`thumb`,s(a(e)))]),_:2},1024)]),_:3},16,[`data-size`,`class`]))}});export{O as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{B as e,Et as t,G as n,It as r,K as i,Pt as a,U as o,V as s,at as c,ct as l,et as u,i as d,jt as f,nt as p,p as m,r as h,rt as g,vt as _,z as v}from"./button-BKJB3nEQ.js";import{S as y,h as b,t as x,u as S,x as C}from"./Collection-GDvpW_uY.js";var w=`rovingFocusGroup.onEntryFocus`,T={bubbles:!1,cancelable:!0},E={ArrowLeft:`prev`,ArrowUp:`prev`,ArrowRight:`next`,ArrowDown:`next`,PageUp:`first`,Home:`first`,PageDown:`last`,End:`last`};function D(e,t){return t===`rtl`?e===`ArrowLeft`?`ArrowRight`:e===`ArrowRight`?`ArrowLeft`:e:e}function O(e,t,n){let r=D(e.key,n);if(!(t===`vertical`&&[`ArrowLeft`,`ArrowRight`].includes(r))&&!(t===`horizontal`&&[`ArrowUp`,`ArrowDown`].includes(r)))return E[r]}function k(e,t=!1){let n=C();for(let r of e)if(r===n||(r.focus({preventScroll:t}),C()!==n))return}function A(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var[j,M]=y(`RovingFocusGroup`),N=i({__name:`RovingFocusGroup`,props:{orientation:{type:String,required:!1,default:void 0},dir:{type:String,required:!1},loop:{type:Boolean,required:!1,default:!1},currentTabStopId:{type:[String,null],required:!1},defaultCurrentTabStopId:{type:String,required:!1},preventScrollOnEntryFocus:{type:Boolean,required:!1,default:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`entryFocus`,`update:currentTabStopId`],setup(e,{expose:r,emit:i}){let o=e,u=i,{loop:p,orientation:h,dir:g}=f(o),v=b(g),y=m(o,`currentTabStopId`,u,{defaultValue:o.defaultCurrentTabStopId,passive:o.currentTabStopId===void 0}),S=t(!1),C=t(!1),E=t(0),{getItems:D,CollectionSlot:O}=x({isProvider:!0});function A(e){let t=!C.value;if(e.currentTarget&&e.target===e.currentTarget&&t&&!S.value){let t=new CustomEvent(w,T);if(e.currentTarget.dispatchEvent(t),u(`entryFocus`,t),!t.defaultPrevented){let e=D().map(e=>e.ref).filter(e=>e.dataset.disabled!==``);k([e.find(e=>e.getAttribute(`data-active`)===``),e.find(e=>e.getAttribute(`data-highlighted`)===``),e.find(e=>e.id===y.value),...e].filter(Boolean),o.preventScrollOnEntryFocus)}}C.value=!1}function j(){setTimeout(()=>{C.value=!1},1)}return r({getItems:D}),M({loop:p,dir:v,orientation:h,currentTabStopId:y,onItemFocus:e=>{y.value=e},onItemShiftTab:()=>{S.value=!0},onFocusableItemAdd:()=>{E.value++},onFocusableItemRemove:()=>{E.value--}}),(e,t)=>(c(),s(a(O),null,{default:_(()=>[n(a(d),{tabindex:S.value||E.value===0?-1:0,"data-orientation":a(h),as:e.as,"as-child":e.asChild,dir:a(v),style:{outline:`none`},onMousedown:t[0]||=e=>C.value=!0,onMouseup:j,onFocus:A,onBlur:t[1]||=e=>S.value=!1},{default:_(()=>[l(e.$slots,`default`)]),_:3},8,[`tabindex`,`data-orientation`,`as`,`as-child`,`dir`])]),_:3}))}}),P=i({__name:`RovingFocusItem`,props:{tabStopId:{type:String,required:!1},focusable:{type:Boolean,required:!1,default:!0},active:{type:Boolean,required:!1},allowShiftKey:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){let t=e,r=j(),i=S(),o=v(()=>t.tabStopId||i),f=v(()=>r.currentTabStopId.value===o.value),{getItems:m,CollectionItem:h}=x();p(()=>{t.focusable&&r.onFocusableItemAdd()}),g(()=>{t.focusable&&r.onFocusableItemRemove()});function y(e){if(e.key===`Tab`&&e.shiftKey){r.onItemShiftTab();return}if(e.target!==e.currentTarget)return;let n=O(e,r.orientation.value,r.dir.value);if(n!==void 0){if(e.metaKey||e.ctrlKey||e.altKey||!t.allowShiftKey&&e.shiftKey)return;e.preventDefault();let i=[...m().map(e=>e.ref).filter(e=>e.dataset.disabled!==``)];if(n===`last`)i.reverse();else if(n===`prev`||n===`next`){n===`prev`&&i.reverse();let t=i.indexOf(e.currentTarget);i=r.loop.value?A(i,t+1):i.slice(t+1)}u(()=>k(i))}}return(e,t)=>(c(),s(a(h),null,{default:_(()=>[n(a(d),{tabindex:f.value?0:-1,"data-orientation":a(r).orientation.value,"data-active":e.active?``:void 0,"data-disabled":e.focusable?void 0:``,as:e.as,"as-child":e.asChild,onMousedown:t[0]||=t=>{e.focusable?a(r).onItemFocus(o.value):t.preventDefault()},onFocus:t[1]||=e=>a(r).onItemFocus(o.value),onKeydown:y},{default:_(()=>[l(e.$slots,`default`)]),_:3},8,[`tabindex`,`data-orientation`,`data-active`,`data-disabled`,`as`,`as-child`])]),_:3}))}}),F={"data-slot":`table-container`,class:`relative w-full overflow-x-auto`},I=i({__name:`Table`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(t){let n=t;return(t,i)=>(c(),o(`div`,F,[e(`table`,{"data-slot":`table`,class:r(a(h)(`w-full caption-bottom text-sm`,n.class))},[l(t.$slots,`default`)],2)]))}}),L=i({__name:`TableBody`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(e){let t=e;return(e,n)=>(c(),o(`tbody`,{"data-slot":`table-body`,class:r(a(h)(`[&_tr:last-child]:border-0`,t.class))},[l(e.$slots,`default`)],2))}}),R=i({__name:`TableCell`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(e){let t=e;return(e,n)=>(c(),o(`td`,{"data-slot":`table-cell`,class:r(a(h)(`p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0`,t.class))},[l(e.$slots,`default`)],2))}}),z=i({__name:`TableRow`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(e){let t=e;return(e,n)=>(c(),o(`tr`,{"data-slot":`table-row`,class:r(a(h)(`hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors has-aria-expanded:bg-muted/50`,t.class))},[l(e.$slots,`default`)],2))}}),B=i({__name:`TableHead`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(e){let t=e;return(e,n)=>(c(),o(`th`,{"data-slot":`table-head`,class:r(a(h)(`text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0`,t.class))},[l(e.$slots,`default`)],2))}}),V=i({__name:`TableHeader`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(e){let t=e;return(e,n)=>(c(),o(`thead`,{"data-slot":`table-header`,class:r(a(h)(`[&_tr]:border-b`,t.class))},[l(e.$slots,`default`)],2))}});export{L as a,N as c,R as i,B as n,I as o,z as r,P as s,V as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{$ as e,C as t,Et as n,G as r,H as i,I as a,J as o,K as s,Lt as c,Pt as l,Rt as u,T as d,U as f,V as p,W as m,at as h,b as g,ct as _,dt as v,gt as y,h as b,ht as x,i as S,jt as C,nt as w,p as T,r as E,tt as ee,u as D,ut as te,vt as O,x as ne,z as k,zt as A}from"./button-BKJB3nEQ.js";import{S as j,_ as re,c as M,f as N,n as ie,o as ae,p as P,u as F}from"./Collection-GDvpW_uY.js";import{t as I}from"./VisuallyHidden-DPKPka_x.js";import{t as L}from"./useForwardExpose-bqtcPo63.js";import{i as R,n as z,r as B,t as V}from"./PopperContent-ZhhkKJo0.js";import{a as H,i as U,o as W}from"./TabsTrigger-8W_mNsGI.js";function G(e,r){let i=ne(!1,300);t(()=>{i.value=!1});let a=n(null),o=b();function s(){a.value=null,i.value=!1}function c(e,t){if(!t)return;let n=e.currentTarget,r={x:e.clientX,y:e.clientY},o=q(r,K(r,n.getBoundingClientRect()),1),s=J(t.getBoundingClientRect());a.value=se([...o,...s]),i.value=!0}return y(t=>{if(e.value&&r.value){let n=e=>c(e,r.value),i=t=>c(t,e.value);e.value.addEventListener(`pointerleave`,n),r.value.addEventListener(`pointerleave`,i),t(()=>{e.value?.removeEventListener(`pointerleave`,n),r.value?.removeEventListener(`pointerleave`,i)})}}),y(t=>{if(a.value){let n=t=>{if(!a.value||!(t.target instanceof Element))return;let n=t.target,i={x:t.clientX,y:t.clientY},c=e.value?.contains(n)||r.value?.contains(n),l=!oe(i,a.value),u=!!n.closest(`[data-grace-area-trigger]`);c?s():(l||u)&&(s(),o.trigger())};e.value?.ownerDocument.addEventListener(`pointermove`,n),t(()=>e.value?.ownerDocument.removeEventListener(`pointermove`,n))}}),{isPointerInTransit:i,onPointerExit:o.on}}function K(e,t){let n=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),i=Math.abs(t.right-e.x),a=Math.abs(t.left-e.x);switch(Math.min(n,r,i,a)){case a:return`left`;case i:return`right`;case n:return`top`;case r:return`bottom`;default:throw Error(`unreachable`)}}function q(e,t,n=5){let r=[];switch(t){case`top`:r.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case`bottom`:r.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case`left`:r.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case`right`:r.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n});break}return r}function J(e){let{top:t,right:n,bottom:r,left:i}=e;return[{x:i,y:t},{x:n,y:t},{x:n,y:r},{x:i,y:r}]}function oe(e,t){let{x:n,y:r}=e,i=!1;for(let e=0,a=t.length-1;e<t.length;a=e++){let o=t[e].x,s=t[e].y,c=t[a].x,l=t[a].y;s>r!=l>r&&n<(c-o)*(r-s)/(l-s)+o&&(i=!i)}return i}function se(e){let t=e.slice();return t.sort((e,t)=>e.x<t.x?-1:e.x>t.x?1:e.y<t.y?-1:+(e.y>t.y)),ce(t)}function ce(e){if(e.length<=1)return e.slice();let t=[];for(let n=0;n<e.length;n++){let r=e[n];for(;t.length>=2;){let e=t.at(-1),n=t[t.length-2];if((e.x-n.x)*(r.y-n.y)>=(e.y-n.y)*(r.x-n.x))t.pop();else break}t.push(r)}t.pop();let n=[];for(let t=e.length-1;t>=0;t--){let r=e[t];for(;n.length>=2;){let e=n.at(-1),t=n[n.length-2];if((e.x-t.x)*(r.y-t.y)>=(e.y-t.y)*(r.x-t.x))n.pop();else break}n.push(r)}return n.pop(),t.length===1&&n.length===1&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}var le={key:0,d:`M0 0L6 6L12 0`},ue={key:1,d:`M0 0L4.58579 4.58579C5.36683 5.36683 6.63316 5.36684 7.41421 4.58579L12 0`},de=s({__name:`Arrow`,props:{width:{type:Number,required:!1,default:10},height:{type:Number,required:!1,default:5},rounded:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`svg`}},setup(t){let n=t;return L(),(t,r)=>(h(),p(l(S),e(n,{width:t.width,height:t.height,viewBox:t.asChild?void 0:`0 0 12 6`,preserveAspectRatio:t.asChild?void 0:`none`}),{default:O(()=>[_(t.$slots,`default`,{},()=>[t.rounded?(h(),f(`path`,ue)):(h(),f(`path`,le))])]),_:3},16,[`width`,`height`,`viewBox`,`preserveAspectRatio`]))}}),fe={top:`bottom`,right:`left`,bottom:`top`,left:`right`},pe=s({inheritAttrs:!1,__name:`PopperArrow`,props:{width:{type:Number,required:!1},height:{type:Number,required:!1},rounded:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`svg`}},setup(t){let{forwardRef:n}=L(),i=z(),a=k(()=>fe[i.placedSide.value]);return(t,o)=>(h(),f(`span`,{ref:e=>{l(i).onArrowChange(e??void 0)},style:u({position:`absolute`,left:l(i).arrowX?.value?`${l(i).arrowX?.value}px`:void 0,top:l(i).arrowY?.value?`${l(i).arrowY?.value}px`:void 0,[a.value]:0,transformOrigin:{top:``,right:`0 0`,bottom:`center 0`,left:`100% 0`}[l(i).placedSide.value],transform:{top:`translateY(100%)`,right:`translateY(50%) rotate(90deg) translateX(-50%)`,bottom:`rotate(180deg)`,left:`translateY(50%) rotate(-90deg) translateX(50%)`}[l(i).placedSide.value],visibility:l(i).shouldHideArrow.value?`hidden`:void 0})},[r(de,e(t.$attrs,{ref:l(n),style:{display:`block`},as:t.as,"as-child":t.asChild,rounded:t.rounded,width:t.width,height:t.height}),{default:O(()=>[_(t.$slots,`default`)]),_:3},16,[`as`,`as-child`,`rounded`,`width`,`height`])],4))}}),me=s({__name:`TabsContent`,props:{value:{type:[String,Number],required:!0},forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e,{forwardRef:a}=L(),o=W(),s=k(()=>H(o.baseId,t.value)),c=k(()=>U(o.baseId,t.value)),d=k(()=>t.value===o.modelValue.value),f=n(d.value);return w(()=>{o.registerContent(t.value),requestAnimationFrame(()=>{f.value=!1})}),ee(()=>{o.unregisterContent(t.value)}),(e,t)=>(h(),p(l(M),{present:e.forceMount||d.value,"force-mount":``},{default:O(({present:t})=>[r(l(S),{id:c.value,ref:l(a),"as-child":e.asChild,as:e.as,role:`tabpanel`,"data-state":d.value?`active`:`inactive`,"data-orientation":l(o).orientation.value,"aria-labelledby":s.value,hidden:!t,tabindex:`0`,style:u({animationDuration:f.value?`0s`:void 0})},{default:O(()=>[!l(o).unmountOnHide.value||t?_(e.$slots,`default`,{key:0}):i(`v-if`,!0)]),_:2},1032,[`id`,`as-child`,`as`,`data-state`,`data-orientation`,`aria-labelledby`,`hidden`,`style`])]),_:3},8,[`present`]))}}),he=s({__name:`TooltipArrow`,props:{width:{type:Number,required:!1,default:10},height:{type:Number,required:!1,default:5},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`svg`}},setup(e){let t=e;return L(),(e,n)=>(h(),p(l(pe),c(o(t)),{default:O(()=>[_(e.$slots,`default`)]),_:3},16))}}),[Y,ge]=j(`TooltipProvider`),_e=s({inheritAttrs:!1,__name:`TooltipProvider`,props:{delayDuration:{type:Number,required:!1,default:700},skipDelayDuration:{type:Number,required:!1,default:300},disableHoverableContent:{type:Boolean,required:!1,default:!1},disableClosingTrigger:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},ignoreNonKeyboardFocus:{type:Boolean,required:!1,default:!1},content:{type:Object,required:!1}},setup(e){let{delayDuration:t,skipDelayDuration:r,disableHoverableContent:i,disableClosingTrigger:a,ignoreNonKeyboardFocus:o,disabled:s,content:c}=C(e);L();let l=n(!0),u=n(!1),{start:f,stop:p}=d(()=>{l.value=!0},r,{immediate:!1});return ge({isOpenDelayed:l,delayDuration:t,onOpen(){p(),l.value=!1},onClose(){f()},isPointerInTransitRef:u,disableHoverableContent:i,disableClosingTrigger:a,disabled:s,ignoreNonKeyboardFocus:o,content:c}),(e,t)=>_(e.$slots,`default`)}}),X=`tooltip.open`,[Z,ve]=j(`TooltipRoot`),ye=s({__name:`TooltipRoot`,props:{defaultOpen:{type:Boolean,required:!1,default:!1},open:{type:Boolean,required:!1,default:void 0},delayDuration:{type:Number,required:!1,default:void 0},disableHoverableContent:{type:Boolean,required:!1,default:void 0},disableClosingTrigger:{type:Boolean,required:!1,default:void 0},disabled:{type:Boolean,required:!1,default:void 0},ignoreNonKeyboardFocus:{type:Boolean,required:!1,default:void 0}},emits:[`update:open`],setup(e,{emit:t}){let r=e,i=t;L();let a=Y(),o=k(()=>r.disableHoverableContent??a.disableHoverableContent.value),s=k(()=>r.disableClosingTrigger??a.disableClosingTrigger.value),c=k(()=>r.disabled??a.disabled.value),u=k(()=>r.delayDuration??a.delayDuration.value),f=k(()=>r.ignoreNonKeyboardFocus??a.ignoreNonKeyboardFocus.value),m=T(r,`open`,i,{defaultValue:r.defaultOpen,passive:r.open===void 0});x(m,e=>{a.onClose&&(e?(a.onOpen(),document.dispatchEvent(new CustomEvent(X))):a.onClose())});let g=n(!1),v=n(),y=k(()=>m.value?g.value?`delayed-open`:`instant-open`:`closed`),{start:b,stop:S}=d(()=>{g.value=!0,m.value=!0},u,{immediate:!1});function C(){S(),g.value=!1,m.value=!0}function w(){S(),m.value=!1}function E(){b()}return ve({contentId:``,open:m,stateAttribute:y,trigger:v,onTriggerChange(e){v.value=e},onTriggerEnter(){a.isOpenDelayed.value?E():C()},onTriggerLeave(){o.value?w():S()},onOpen:C,onClose:w,disableHoverableContent:o,disableClosingTrigger:s,disabled:c,ignoreNonKeyboardFocus:f}),(e,t)=>(h(),p(l(R),null,{default:O(()=>[_(e.$slots,`default`,{open:l(m)})]),_:3}))}}),Q=s({__name:`TooltipContentImpl`,props:{ariaLabel:{type:String,required:!1},asChild:{type:Boolean,required:!1,default:void 0},as:{type:null,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},avoidCollisions:{type:Boolean,required:!1,default:void 0},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1,default:void 0},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`],setup(t,{emit:n}){let i=t,o=n,s=Z(),c=Y(),{forwardRef:u,currentElement:d}=L(),f=k(()=>i.ariaLabel||d.value?.textContent),g=k(()=>{let{ariaLabel:e,...t}=i;return re(t,c.content.value??{},{side:`top`,sideOffset:0,align:`center`,avoidCollisions:!0,collisionBoundary:[],collisionPadding:0,arrowPadding:0,sticky:`partial`,hideWhenDetached:!1})});return w(()=>{D(window,`scroll`,e=>{e.target?.contains(s.trigger.value)&&s.onClose()},{capture:!0}),D(window,X,s.onClose)}),(t,n)=>(h(),p(l(ae),{"as-child":``,"disable-outside-pointer-events":!1,onEscapeKeyDown:n[0]||=e=>o(`escapeKeyDown`,e),onPointerDownOutside:n[1]||=e=>{l(s).disableClosingTrigger.value&&l(s).trigger.value?.contains(e.target)&&e.preventDefault(),o(`pointerDownOutside`,e)},onFocusOutside:n[2]||=a(()=>{},[`prevent`]),onDismiss:n[3]||=e=>l(s).onClose()},{default:O(()=>[r(l(V),e({ref:l(u),"data-state":l(s).stateAttribute.value},{...t.$attrs,...g.value},{style:{"--reka-tooltip-content-transform-origin":`var(--reka-popper-transform-origin)`,"--reka-tooltip-content-available-width":`var(--reka-popper-available-width)`,"--reka-tooltip-content-available-height":`var(--reka-popper-available-height)`,"--reka-tooltip-trigger-width":`var(--reka-popper-anchor-width)`,"--reka-tooltip-trigger-height":`var(--reka-popper-anchor-height)`}}),{default:O(()=>[_(t.$slots,`default`),r(l(I),{id:l(s).contentId,role:`tooltip`},{default:O(()=>[m(A(f.value),1)]),_:1},8,[`id`])]),_:3},16,[`data-state`])]),_:3}))}}),be=s({__name:`TooltipContentHoverable`,props:{ariaLabel:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1}},setup(t){let n=P(t),{forwardRef:r,currentElement:i}=L(),{trigger:a,onClose:o}=Z(),s=Y(),{isPointerInTransit:c,onPointerExit:u}=G(a,i);return s.isPointerInTransitRef=c,u(()=>{o()}),(t,i)=>(h(),p(Q,e({ref:l(r)},l(n)),{default:O(()=>[_(t.$slots,`default`)]),_:3},16))}}),$=s({__name:`TooltipContent`,props:{forceMount:{type:Boolean,required:!1},ariaLabel:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`],setup(t,{emit:n}){let r=t,i=n,a=Z(),o=N(r,i),{forwardRef:s}=L();return(t,n)=>(h(),p(l(M),{present:t.forceMount||l(a).open.value},{default:O(()=>[(h(),p(te(l(a).disableHoverableContent.value?Q:be),e({ref:l(s)},l(o)),{default:O(()=>[_(t.$slots,`default`)]),_:3},16))]),_:3},8,[`present`]))}}),xe=s({__name:`TooltipPortal`,props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(e){let t=e;return(e,n)=>(h(),p(l(ie),c(o(t)),{default:O(()=>[_(e.$slots,`default`)]),_:3},16))}}),Se=s({__name:`TooltipTrigger`,props:{reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`}},setup(t){let i=t,a=Z(),o=Y();a.contentId||=F(void 0,`reka-tooltip-content`);let{forwardRef:s,currentElement:c}=L(),u=n(!1),d=n(!1),f=k(()=>a.disabled.value?{}:{click:T,focus:x,pointermove:y,pointerleave:b,pointerdown:g,blur:C});w(()=>{a.onTriggerChange(c.value)});function m(){setTimeout(()=>{u.value=!1},1)}function g(){a.open&&!a.disableClosingTrigger.value&&a.onClose(),u.value=!0,document.addEventListener(`pointerup`,m,{once:!0})}function y(e){e.pointerType!==`touch`&&!d.value&&!o.isPointerInTransitRef.value&&(a.onTriggerEnter(),d.value=!0)}function b(){a.onTriggerLeave(),d.value=!1}function x(e){u.value||a.ignoreNonKeyboardFocus.value&&!e.target.matches?.(`:focus-visible`)||a.onOpen()}function C(){a.onClose()}function T(){a.disableClosingTrigger.value||a.onClose()}return(t,n)=>(h(),p(l(B),{"as-child":``,reference:t.reference},{default:O(()=>[r(l(S),e({ref:l(s),"aria-describedby":l(a).open.value?l(a).contentId:void 0,"data-state":l(a).stateAttribute.value,as:t.as,"as-child":i.asChild,"data-grace-area-trigger":``},v(f.value)),{default:O(()=>[_(t.$slots,`default`)]),_:3},16,[`aria-describedby`,`data-state`,`as`,`as-child`])]),_:3},8,[`reference`]))}}),Ce=s({__name:`Tooltip`,props:{defaultOpen:{type:Boolean},open:{type:Boolean},delayDuration:{},disableHoverableContent:{type:Boolean},disableClosingTrigger:{type:Boolean},disabled:{type:Boolean},ignoreNonKeyboardFocus:{type:Boolean}},emits:[`update:open`],setup(t,{emit:n}){let r=N(t,n);return(t,n)=>(h(),p(l(ye),e({"data-slot":`tooltip`},l(r)),{default:O(e=>[_(t.$slots,`default`,c(o(e)))]),_:3},16))}}),we=s({inheritAttrs:!1,__name:`TooltipContent`,props:{forceMount:{type:Boolean},ariaLabel:{},asChild:{type:Boolean},as:{},side:{},sideOffset:{default:0},align:{},alignOffset:{},avoidCollisions:{type:Boolean},collisionBoundary:{},collisionPadding:{},arrowPadding:{},sticky:{},hideWhenDetached:{type:Boolean},positionStrategy:{},updatePositionStrategy:{},class:{type:[Boolean,null,String,Object,Array]}},emits:[`escapeKeyDown`,`pointerDownOutside`],setup(t,{emit:n}){let i=t,a=n,o=N(g(i,`class`),a);return(t,n)=>(h(),p(l(xe),null,{default:O(()=>[r(l($),e({"data-slot":`tooltip-content`},{...l(o),...t.$attrs},{class:l(E)(`data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 inline-flex items-center gap-1.5 rounded-md px-3 py-1.5 text-xs has-data-[slot=kbd]:pr-1.5 **:data-[slot=kbd]:relative **:data-[slot=kbd]:isolate **:data-[slot=kbd]:z-dropdown **:data-[slot=kbd]:rounded-sm bg-foreground text-background z-dropdown w-fit max-w-xs origin-(--reka-tooltip-content-transform-origin)`,i.class)}),{default:O(()=>[_(t.$slots,`default`),r(l(he),{class:`size-2.5 rotate-45 rounded-[2px] bg-foreground fill-foreground z-dropdown translate-y-[calc(-50%_-_2px)]`})]),_:3},16,[`class`])]),_:3}))}}),Te=s({__name:`TooltipProvider`,props:{delayDuration:{default:0},skipDelayDuration:{},disableHoverableContent:{type:Boolean},disableClosingTrigger:{type:Boolean},disabled:{type:Boolean},ignoreNonKeyboardFocus:{type:Boolean},content:{}},setup(e){let t=e;return(e,n)=>(h(),p(l(_e),c(o(t)),{default:O(()=>[_(e.$slots,`default`)]),_:3},16))}}),Ee=s({__name:`TooltipTrigger`,props:{reference:{},asChild:{type:Boolean},as:{}},setup(t){let n=t;return(t,r)=>(h(),p(l(Se),e({"data-slot":`tooltip-trigger`},n),{default:O(()=>[_(t.$slots,`default`)]),_:3},16))}}),De=s({__name:`TabsContent`,props:{value:{},forceMount:{type:Boolean},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(t){let n=t,r=g(n,`class`);return(t,i)=>(h(),p(l(me),e({"data-slot":`tabs-content`,class:l(E)(`text-sm flex-1 outline-none`,n.class)},l(r)),{default:O(()=>[_(t.$slots,`default`)]),_:3},16,[`class`]))}});export{Ce as a,we as i,Ee as n,Te as r,De as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{$ as e,Et as t,F as n,G as r,I as i,J as a,K as o,Lt as s,Ot as c,Pt as l,V as u,at as d,b as f,ct as p,i as m,jt as h,p as g,r as _,vt as v,z as y}from"./button-BKJB3nEQ.js";import{S as b,f as x,h as S,p as C,u as w}from"./Collection-GDvpW_uY.js";import{t as T}from"./useForwardExpose-bqtcPo63.js";import{c as E,s as D}from"./TableHeader-B2A48qgy.js";var[O,k]=b(`TabsRoot`),A=o({__name:`TabsRoot`,props:{defaultValue:{type:null,required:!1},orientation:{type:String,required:!1,default:`horizontal`},dir:{type:String,required:!1},activationMode:{type:String,required:!1,default:`automatic`},modelValue:{type:null,required:!1},unmountOnHide:{type:Boolean,required:!1,default:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`update:modelValue`],setup(e,{emit:n}){let r=e,i=n,{orientation:a,unmountOnHide:o,dir:s}=h(r),f=S(s);T();let _=g(r,`modelValue`,i,{defaultValue:r.defaultValue,passive:r.modelValue===void 0}),y=t(),b=c(new Set);return k({modelValue:_,changeModelValue:e=>{_.value=e},orientation:a,dir:f,unmountOnHide:o,activationMode:r.activationMode,baseId:w(void 0,`reka-tabs`),tabsList:y,contentIds:b,registerContent:e=>{b.value=new Set([...b.value,e])},unregisterContent:e=>{let t=new Set(b.value);t.delete(e),b.value=t}}),(e,t)=>(d(),u(l(m),{dir:l(f),"data-orientation":l(a),"as-child":e.asChild,as:e.as},{default:v(()=>[p(e.$slots,`default`,{modelValue:l(_)})]),_:3},8,[`dir`,`data-orientation`,`as-child`,`as`]))}});function j(e,t){return`${e}-trigger-${t}`}function M(e,t){return`${e}-content-${t}`}var N=o({__name:`TabsList`,props:{loop:{type:Boolean,required:!1,default:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let{loop:t}=h(e),{forwardRef:n,currentElement:i}=T(),a=O();return a.tabsList=i,(e,i)=>(d(),u(l(E),{"as-child":``,orientation:l(a).orientation.value,dir:l(a).dir.value,loop:l(t)},{default:v(()=>[r(l(m),{ref:l(n),role:`tablist`,"as-child":e.asChild,as:e.as,"aria-orientation":l(a).orientation.value},{default:v(()=>[p(e.$slots,`default`)]),_:3},8,[`as-child`,`as`,`aria-orientation`])]),_:3},8,[`orientation`,`dir`,`loop`]))}}),P=o({__name:`TabsTrigger`,props:{value:{type:[String,Number],required:!0},disabled:{type:Boolean,required:!1,default:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`}},setup(e){let t=e,{forwardRef:a}=T(),o=O(),s=y(()=>j(o.baseId,t.value)),c=y(()=>o.contentIds.value.has(t.value)?M(o.baseId,t.value):void 0),f=y(()=>t.value===o.modelValue.value);return(e,t)=>(d(),u(l(D),{"as-child":``,focusable:!e.disabled,active:f.value},{default:v(()=>[r(l(m),{id:s.value,ref:l(a),role:`tab`,type:e.as===`button`?`button`:void 0,as:e.as,"as-child":e.asChild,"aria-selected":f.value?`true`:`false`,"aria-controls":c.value,"data-state":f.value?`active`:`inactive`,disabled:e.disabled,"data-disabled":e.disabled?``:void 0,"data-orientation":l(o).orientation.value,onMousedown:t[0]||=i(t=>{!e.disabled&&t.ctrlKey===!1?l(o).changeModelValue(e.value):t.preventDefault()},[`left`]),onKeydown:t[1]||=n(t=>l(o).changeModelValue(e.value),[`enter`,`space`]),onFocus:t[2]||=()=>{let t=l(o).activationMode!==`manual`;!f.value&&!e.disabled&&t&&l(o).changeModelValue(e.value)}},{default:v(()=>[p(e.$slots,`default`)]),_:3},8,[`id`,`type`,`as`,`as-child`,`aria-selected`,`aria-controls`,`data-state`,`disabled`,`data-disabled`,`data-orientation`])]),_:3},8,[`focusable`,`active`]))}}),F=o({__name:`Tabs`,props:{defaultValue:{},orientation:{},dir:{},activationMode:{},modelValue:{},unmountOnHide:{type:Boolean},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},emits:[`update:modelValue`],setup(t,{emit:n}){let r=t,i=n,o=x(f(r,`class`),i);return(t,n)=>(d(),u(l(A),e({"data-slot":`tabs`,"data-orientation":l(o).orientation||`horizontal`},l(o),{class:l(_)(`gap-2 group/tabs flex data-[orientation=horizontal]:flex-col`,r.class)}),{default:v(e=>[p(t.$slots,`default`,s(a(e)))]),_:3},16,[`data-orientation`,`class`]))}}),I=o({__name:`TabsList`,props:{loop:{type:Boolean},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]},variant:{default:`default`}},setup(t){let n=t,r=f(n,`class`,`variant`);return(i,a)=>(d(),u(l(N),e({"data-slot":`tabs-list`,"data-variant":t.variant},l(r),{class:l(_)(`rounded-lg p-[3px] group-data-[orientation=horizontal]/tabs:h-8 data-[variant=line]:rounded-none group/tabs-list inline-flex w-fit items-center justify-center text-muted-foreground group-data-[orientation=vertical]/tabs:h-fit group-data-[orientation=vertical]/tabs:flex-col`,t.variant===`default`&&`bg-muted`,t.variant===`line`&&`gap-1 bg-transparent`,n.class)}),{default:v(()=>[p(i.$slots,`default`)]),_:3},16,[`data-variant`,`class`]))}}),L=o({__name:`TabsTrigger`,props:{value:{},disabled:{type:Boolean},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(t){let n=t,r=C(f(n,`class`));return(t,i)=>(d(),u(l(P),e({"data-slot":`tabs-trigger`,class:l(_)(`gap-1.5 rounded-md border border-transparent px-1.5 py-0.5 text-sm font-medium group-data-[variant=default]/tabs-list:data-[state=active]:shadow-sm group-data-[variant=line]/tabs-list:data-[state=active]:shadow-none [&_svg:not([class*=size-])]:size-4 has-data-[icon=inline-end]:pr-1 has-data-[icon=inline-start]:pl-1 relative inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center whitespace-nowrap text-foreground/60 transition-all group-data-[orientation=vertical]/tabs:w-full group-data-[orientation=vertical]/tabs:justify-start hover:text-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1 focus-visible:outline-ring disabled:pointer-events-none disabled:opacity-50 dark:text-muted-foreground dark:hover:text-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0`,`group-data-[variant=line]/tabs-list:bg-transparent group-data-[variant=line]/tabs-list:data-[state=active]:bg-transparent dark:group-data-[variant=line]/tabs-list:data-[state=active]:border-transparent dark:group-data-[variant=line]/tabs-list:data-[state=active]:bg-transparent`,`data-[state=active]:bg-background data-[state=active]:text-foreground dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 dark:data-[state=active]:text-foreground`,`after:absolute after:bg-foreground after:opacity-0 after:transition-opacity group-data-[orientation=horizontal]/tabs:after:inset-x-0 group-data-[orientation=horizontal]/tabs:after:bottom-[-5px] group-data-[orientation=horizontal]/tabs:after:h-0.5 group-data-[orientation=vertical]/tabs:after:inset-y-0 group-data-[orientation=vertical]/tabs:after:-right-1 group-data-[orientation=vertical]/tabs:after:w-0.5 group-data-[variant=line]/tabs-list:data-[state=active]:after:opacity-100`,n.class)},l(r)),{default:v(()=>[p(t.$slots,`default`)]),_:3},16,[`class`]))}});export{j as a,M as i,I as n,O as o,F as r,L as t};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import{$ as e,B as t,E as n,Et as r,G as i,H as a,It as o,J as s,K as c,L as l,Lt as u,Pt as d,Rt as f,U as p,V as m,W as h,at as g,b as _,ct as v,f as y,gt as b,ht as x,i as S,jt as C,n as w,nt as T,r as E,rt as D,st as O,ut as k,vt as A,w as j,z as M,zt as N}from"./button-BKJB3nEQ.js";import{t as P}from"./createLucideIcon-igIAnu_Y.js";import{n as ee,r as te,t as ne}from"./useNonce-DN0Hrw3l.js";import{t as re}from"./file-text-Ci7Mgh3F.js";import{S as F,c as I,h as ie,l as L}from"./Collection-GDvpW_uY.js";import{t as R}from"./useForwardExpose-bqtcPo63.js";import{n as ae,r as oe,t as se}from"./CollapsibleTrigger-DooxvEnx.js";import{a as ce,i as le,n as ue,o as de,t as fe}from"./dialog-C0B-Xn-S.js";import{n as pe,r as me,t as z}from"./TabsTrigger-8W_mNsGI.js";import{t as B}from"./badge-BTjuxlp4.js";import{t as he}from"./useClipboard-wnGQAe3I.js";var ge=P(`brain`,[[`path`,{d:`M12 18V5`,key:`adv99a`}],[`path`,{d:`M15 13a4.17 4.17 0 0 1-3-4 4.17 4.17 0 0 1-3 4`,key:`1e3is1`}],[`path`,{d:`M17.598 6.5A3 3 0 1 0 12 5a3 3 0 1 0-5.598 1.5`,key:`1gqd8o`}],[`path`,{d:`M17.997 5.125a4 4 0 0 1 2.526 5.77`,key:`iwvgf7`}],[`path`,{d:`M18 18a4 4 0 0 0 2-7.464`,key:`efp6ie`}],[`path`,{d:`M19.967 17.483A4 4 0 1 1 12 18a4 4 0 1 1-7.967-.517`,key:`1gq6am`}],[`path`,{d:`M6 18a4 4 0 0 1-2-7.464`,key:`k1g0md`}],[`path`,{d:`M6.003 5.125a4 4 0 0 0-2.526 5.77`,key:`q97ue3`}]]),_e=P(`circle-check-big`,[[`path`,{d:`M21.801 10A10 10 0 1 1 17 3.335`,key:`yps3ct`}],[`path`,{d:`m9 11 3 3L22 4`,key:`1pflzl`}]]),V=P(`file-braces`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M10 12a1 1 0 0 0-1 1v1a1 1 0 0 1-1 1 1 1 0 0 1 1 1v1a1 1 0 0 0 1 1`,key:`1oajmo`}],[`path`,{d:`M14 18a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1 1 1 0 0 1-1-1v-1a1 1 0 0 0-1-1`,key:`mpwhp6`}]]),H=P(`message-square`,[[`path`,{d:`M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z`,key:`18887p`}]]),ve=P(`wrench`,[[`path`,{d:`M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z`,key:`1ngwbx`}]]),[U,ye]=F(`ScrollAreaRoot`),be=c({__name:`ScrollAreaRoot`,props:{type:{type:String,required:!1,default:`hover`},dir:{type:String,required:!1},scrollHideDelay:{type:Number,required:!1,default:600},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e,{expose:t}){let n=e,i=r(0),a=r(0),o=r(),s=r(),c=r(),l=r(),u=r(!1),p=r(!1),{type:h,dir:_,scrollHideDelay:y}=C(n),b=ie(_);function x(){o.value?.scrollTo({top:0})}function w(){o.value?.scrollTo({top:0,left:0})}t({viewport:o,scrollTop:x,scrollTopLeft:w});let{forwardRef:T,currentElement:E}=R();return ye({type:h,dir:b,scrollHideDelay:y,scrollArea:E,viewport:o,onViewportChange:e=>{o.value=e||void 0},content:s,onContentChange:e=>{s.value=e},scrollbarX:c,scrollbarXEnabled:u,scrollbarY:l,scrollbarYEnabled:p,onScrollbarXChange:e=>{c.value=e||void 0},onScrollbarYChange:e=>{l.value=e||void 0},onScrollbarXEnabledChange:e=>{u.value=e},onScrollbarYEnabledChange:e=>{p.value=e},onCornerWidthChange:e=>{i.value=e},onCornerHeightChange:e=>{a.value=e}}),(e,t)=>(g(),m(d(S),{ref:d(T),"as-child":n.asChild,as:e.as,dir:d(b),style:f({position:`relative`,"--reka-scroll-area-corner-width":`${i.value}px`,"--reka-scroll-area-corner-height":`${a.value}px`})},{default:A(()=>[v(e.$slots,`default`)]),_:3},8,[`as-child`,`as`,`dir`,`style`]))}}),xe=c({__name:`ScrollAreaCornerImpl`,setup(t){let n=U(),i=r(0),o=r(0),s=M(()=>!!i.value&&!!o.value);function c(){let e=n.scrollbarX.value?.offsetHeight||0;n.onCornerHeightChange(e),o.value=e}function l(){let e=n.scrollbarY.value?.offsetWidth||0;n.onCornerWidthChange(e),i.value=e}return y(n.scrollbarX.value,c),y(n.scrollbarY.value,l),x(()=>n.scrollbarX.value,c),x(()=>n.scrollbarY.value,l),(t,r)=>s.value?(g(),m(d(S),e({key:0,style:{width:`${i.value}px`,height:`${o.value}px`,position:`absolute`,right:d(n).dir.value===`ltr`?0:void 0,left:d(n).dir.value===`rtl`?0:void 0,bottom:0}},t.$parent?.$props),{default:A(()=>[v(t.$slots,`default`)]),_:3},16,[`style`])):a(`v-if`,!0)}}),Se=c({__name:`ScrollAreaCorner`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(t){let n=t,{forwardRef:r}=R(),i=U(),o=M(()=>!!i.scrollbarX.value&&!!i.scrollbarY.value),s=M(()=>i.type.value!==`scroll`&&o.value);return(t,i)=>s.value?(g(),m(xe,e({key:0},n,{ref:d(r)}),{default:A(()=>[v(t.$slots,`default`)]),_:3},16)):a(`v-if`,!0)}});function W(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];let r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}function G(e){let t=Ce(e.viewport,e.content),n=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,r=(e.scrollbar.size-n)*t;return Math.max(r,18)}function Ce(e,t){let n=e/t;return Number.isNaN(n)?0:n}function we(e,t=()=>{}){let n={left:e.scrollLeft,top:e.scrollTop},r=0;return(function i(){let a={left:e.scrollLeft,top:e.scrollTop},o=n.left!==a.left,s=n.top!==a.top;(o||s)&&t(),n=a,r=window.requestAnimationFrame(i)})(),()=>window.cancelAnimationFrame(r)}function Te(e,t,n=`ltr`){let r=G(t),i=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,a=t.scrollbar.size-i,o=t.content-t.viewport,s=a-r,c=n===`ltr`?[0,o]:[o*-1,0],l=ee(e,c[0],c[1]);return W([0,o],[0,s])(l)}function K(e){return e?Number.parseInt(e,10):0}function Ee(e,t,n,r=`ltr`){let i=G(n),a=i/2,o=t||a,s=i-o,c=n.scrollbar.paddingStart+o,l=n.scrollbar.size-n.scrollbar.paddingEnd-s,u=n.content-n.viewport,d=r===`ltr`?[0,u]:[u*-1,0];return W([c,l],d)(e)}function De(e,t){return e>0&&e<t}var Oe=c({__name:`ScrollAreaScrollbarX`,setup(e){let t=U(),n=Y(),{forwardRef:r,currentElement:i}=R();T(()=>{i.value&&t.onScrollbarXChange(i.value)});let a=M(()=>n.sizes.value);return(e,i)=>(g(),m(Ie,{ref:d(r),"is-horizontal":!0,"data-orientation":`horizontal`,style:f({bottom:0,left:d(t).dir.value===`rtl`?`var(--reka-scroll-area-corner-width)`:0,right:d(t).dir.value===`ltr`?`var(--reka-scroll-area-corner-width)`:0,"--reka-scroll-area-thumb-width":a.value?`${d(G)(a.value)}px`:void 0}),onOnDragScroll:i[0]||=e=>d(n).onDragScroll(e.x)},{default:A(()=>[v(e.$slots,`default`)]),_:3},8,[`style`]))}}),ke=c({__name:`ScrollAreaScrollbarY`,setup(e){let t=U(),n=Y(),{forwardRef:r,currentElement:i}=R();T(()=>{i.value&&t.onScrollbarYChange(i.value)});let a=M(()=>n.sizes.value);return(e,i)=>(g(),m(Ie,{ref:d(r),"is-horizontal":!1,"data-orientation":`vertical`,style:f({top:0,right:d(t).dir.value===`ltr`?0:void 0,left:d(t).dir.value===`rtl`?0:void 0,bottom:`var(--reka-scroll-area-corner-height)`,"--reka-scroll-area-thumb-height":a.value?`${d(G)(a.value)}px`:void 0}),onOnDragScroll:i[0]||=e=>d(n).onDragScroll(e.y)},{default:A(()=>[v(e.$slots,`default`)]),_:3},8,[`style`]))}}),q=c({__name:`ScrollAreaScrollbarAuto`,props:{forceMount:{type:Boolean,required:!1}},setup(t){let n=U(),a=J(),{forwardRef:o}=R(),s=r(!1),c=j(()=>{if(n.viewport.value){let e=n.viewport.value.offsetWidth<n.viewport.value.scrollWidth,t=n.viewport.value.offsetHeight<n.viewport.value.scrollHeight;s.value=a.isHorizontal.value?e:t}},10);return T(()=>c()),y(n.viewport,c),y(n.content,c),(t,n)=>(g(),m(d(I),{present:t.forceMount||s.value},{default:A(()=>[i(X,e(t.$attrs,{ref:d(o),"data-state":s.value?`visible`:`hidden`}),{default:A(()=>[v(t.$slots,`default`)]),_:3},16,[`data-state`])]),_:3},8,[`present`]))}}),Ae=c({inheritAttrs:!1,__name:`ScrollAreaScrollbarGlimpse`,props:{forceMount:{type:Boolean,required:!1}},setup(t){let n=U(),r=J(),{forwardRef:a}=R(),{state:o,dispatch:s}=L(`hidden`,{hidden:{POINTER_ENTER:`glimpse`,SCROLL:`scrolling`},glimpse:{HIDE:`hidden`,POINTER_LEAVE:`hidden`,SCROLL:`scrolling`,POINTER_ENTER:`glimpse`},scrolling:{SCROLL_END:`idle`,POINTER_ENTER:`interacting`},interacting:{SCROLL:`interacting`,POINTER_LEAVE:`idle`},idle:{HIDE:`hidden`,SCROLL:`scrolling`,POINTER_ENTER:`interacting`}}),c=M(()=>o.value!==`hidden`);function l(){s(`POINTER_ENTER`)}function u(){s(`POINTER_LEAVE`)}let f=j(()=>s(`SCROLL_END`),100);return b(e=>{if(o.value===`glimpse`){let t=window.setTimeout(s,n.scrollHideDelay.value,`HIDE`);e(()=>{window.clearTimeout(t)})}}),b(e=>{if(o.value===`idle`){let t=window.setTimeout(s,n.scrollHideDelay.value,`HIDE`);e(()=>{window.clearTimeout(t)})}}),b(e=>{let t=n.viewport.value,i=r.isHorizontal.value?`scrollLeft`:`scrollTop`;if(t){let n=t[i],r=()=>{let e=t[i];n!==e&&(s(`SCROLL`),f()),n=e};t.addEventListener(`scroll`,r),e(()=>{t.removeEventListener(`scroll`,r)})}}),T(()=>{let e=n.scrollArea.value;e&&(e.addEventListener(`pointerenter`,l),e.addEventListener(`pointerleave`,u))}),D(()=>{let e=n.scrollArea.value;e&&(e.removeEventListener(`pointerenter`,l),e.removeEventListener(`pointerleave`,u))}),(t,n)=>(g(),m(d(I),{present:t.forceMount||c.value},{default:A(()=>[i(q,e(t.$attrs,{ref:d(a),"data-state":c.value?`visible`:`hidden`}),{default:A(()=>[v(t.$slots,`default`)]),_:3},16,[`data-state`])]),_:3},8,[`present`]))}}),je=c({inheritAttrs:!1,__name:`ScrollAreaScrollbarHover`,props:{forceMount:{type:Boolean,required:!1}},setup(t){let n=U(),{forwardRef:a}=R(),o,s=r(!1);function c(){window.clearTimeout(o),s.value=!0}function l(){o=window.setTimeout(()=>{s.value=!1},n.scrollHideDelay.value)}return T(()=>{let e=n.scrollArea.value;e&&(e.addEventListener(`pointerenter`,c),e.addEventListener(`pointerleave`,l))}),D(()=>{let e=n.scrollArea.value;e&&(window.clearTimeout(o),e.removeEventListener(`pointerenter`,c),e.removeEventListener(`pointerleave`,l))}),(t,n)=>(g(),m(d(I),{present:t.forceMount||s.value},{default:A(()=>[i(q,e(t.$attrs,{ref:d(a),"data-state":s.value?`visible`:`hidden`}),{default:A(()=>[v(t.$slots,`default`)]),_:3},16,[`data-state`])]),_:3},8,[`present`]))}}),Me=c({__name:`ScrollAreaScrollbarScroll`,props:{forceMount:{type:Boolean,required:!1}},setup(t){let n=U(),r=J(),{forwardRef:a}=R(),{state:o,dispatch:s}=L(`hidden`,{hidden:{SCROLL:`scrolling`},scrolling:{SCROLL_END:`idle`,POINTER_ENTER:`interacting`},interacting:{SCROLL:`interacting`,POINTER_LEAVE:`idle`},idle:{HIDE:`hidden`,SCROLL:`scrolling`,POINTER_ENTER:`interacting`}}),c=M(()=>o.value!==`hidden`);b(e=>{if(o.value===`idle`){let t=window.setTimeout(s,n.scrollHideDelay.value,`HIDE`);e(()=>{window.clearTimeout(t)})}});let l=j(()=>s(`SCROLL_END`),100);return b(e=>{let t=n.viewport.value,i=r.isHorizontal.value?`scrollLeft`:`scrollTop`;if(t){let n=t[i],r=()=>{let e=t[i];n!==e&&(s(`SCROLL`),l()),n=e};t.addEventListener(`scroll`,r),e(()=>{t.removeEventListener(`scroll`,r)})}}),(t,n)=>(g(),m(d(I),{present:t.forceMount||c.value},{default:A(()=>[i(X,e(t.$attrs,{ref:d(a),"data-state":c.value?`visible`:`hidden`}),{default:A(()=>[v(t.$slots,`default`)]),_:3},16,[`data-state`])]),_:3},8,[`present`]))}}),[J,Ne]=F(`ScrollAreaScrollbar`),Pe=c({inheritAttrs:!1,__name:`ScrollAreaScrollbar`,props:{orientation:{type:String,required:!1,default:`vertical`},forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`div`}},setup(t){let n=t,{forwardRef:r}=R(),i=U(),o=M(()=>n.orientation===`horizontal`);x(o,()=>{o.value?i.onScrollbarXEnabledChange(!0):i.onScrollbarYEnabledChange(!0)},{immediate:!0}),D(()=>{i.onScrollbarXEnabledChange(!1),i.onScrollbarYEnabledChange(!1)});let{orientation:s,forceMount:c,asChild:l,as:u}=C(n);return Ne({orientation:s,forceMount:c,isHorizontal:o,as:u,asChild:l}),(t,n)=>d(i).type.value===`hover`?(g(),m(je,e({key:0},t.$attrs,{ref:d(r),"force-mount":d(c)}),{default:A(()=>[v(t.$slots,`default`)]),_:3},16,[`force-mount`])):d(i).type.value===`scroll`?(g(),m(Me,e({key:1},t.$attrs,{ref:d(r),"force-mount":d(c)}),{default:A(()=>[v(t.$slots,`default`)]),_:3},16,[`force-mount`])):d(i).type.value===`glimpse`?(g(),m(Ae,e({key:2},t.$attrs,{ref:d(r),"force-mount":d(c)}),{default:A(()=>[v(t.$slots,`default`)]),_:3},16,[`force-mount`])):d(i).type.value===`auto`?(g(),m(q,e({key:3},t.$attrs,{ref:d(r),"force-mount":d(c)}),{default:A(()=>[v(t.$slots,`default`)]),_:3},16,[`force-mount`])):d(i).type.value===`always`?(g(),m(X,e({key:4},t.$attrs,{ref:d(r),"data-state":`visible`}),{default:A(()=>[v(t.$slots,`default`)]),_:3},16)):a(`v-if`,!0)}}),[Y,Fe]=F(`ScrollAreaScrollbarVisible`),X=c({__name:`ScrollAreaScrollbarVisible`,setup(t){let n=U(),i=J(),{forwardRef:a}=R(),o=r({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),s=M(()=>{let e=Ce(o.value.viewport,o.value.content);return e>0&&e<1}),c=r(),l=r(0);function u(e,t){if(y.value){let r=n.viewport.value.scrollLeft+e.deltaY;n.viewport.value.scrollLeft=r,De(r,t)&&e.preventDefault()}else{let r=n.viewport.value.scrollTop+e.deltaY;n.viewport.value.scrollTop=r,De(r,t)&&e.preventDefault()}}function f(e,t){y.value?l.value=t.x:l.value=t.y}function p(e){l.value=0}function h(e){o.value=e}function _(e,t){return Ee(e,l.value,o.value,t)}let y=M(()=>i.isHorizontal.value);function b(e){y.value?n.viewport.value.scrollLeft=_(e,n.dir.value):n.viewport.value.scrollTop=_(e)}function x(){if(y.value){if(n.viewport.value&&c.value){let e=n.viewport.value.scrollLeft,t=Te(e,o.value,n.dir.value);c.value.style.transform=`translate3d(${t}px, 0, 0)`}}else if(n.viewport.value&&c.value){let e=n.viewport.value.scrollTop,t=Te(e,o.value);c.value.style.transform=`translate3d(0, ${t}px, 0)`}}function S(e){c.value=e}return Fe({sizes:o,hasThumb:s,handleWheelScroll:u,handleThumbDown:f,handleThumbUp:p,handleSizeChange:h,onThumbPositionChange:x,onThumbChange:S,onDragScroll:b}),(t,n)=>y.value?(g(),m(Oe,e({key:0},t.$attrs,{ref:d(a)}),{default:A(()=>[v(t.$slots,`default`)]),_:3},16)):(g(),m(ke,e({key:1},t.$attrs,{ref:d(a)}),{default:A(()=>[v(t.$slots,`default`)]),_:3},16))}}),Ie=c({__name:`ScrollAreaScrollbarImpl`,props:{isHorizontal:{type:Boolean,required:!0}},emits:[`onDragScroll`,`onWheelScroll`,`onThumbPointerDown`],setup(e,{emit:t}){let n=e,i=t,a=U(),o=Y(),s=J(),{forwardRef:c,currentElement:l}=R(),u=r(``),f=r();function p(e){f.value&&i(`onDragScroll`,{x:e.clientX-f.value?.left,y:e.clientY-f.value?.top})}function h(e){e.button===0&&(e.target.setPointerCapture(e.pointerId),f.value=l.value.getBoundingClientRect(),u.value=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect=`none`,a.viewport&&(a.viewport.value.style.scrollBehavior=`auto`),p(e))}function _(e){p(e)}function b(e){let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),document.body.style.webkitUserSelect=u.value,a.viewport&&(a.viewport.value.style.scrollBehavior=``),f.value=void 0}function x(e){let t=e.target,n=l.value?.contains(t),r=o.sizes.value.content-o.sizes.value.viewport;n&&o.handleWheelScroll(e,r)}T(()=>{document.addEventListener(`wheel`,x,{passive:!1})}),D(()=>{document.removeEventListener(`wheel`,x)});function C(){l.value&&(n.isHorizontal?o.handleSizeChange({content:a.viewport.value?.scrollWidth??0,viewport:a.viewport.value?.offsetWidth??0,scrollbar:{size:l.value.clientWidth??0,paddingStart:K(getComputedStyle(l.value).paddingLeft),paddingEnd:K(getComputedStyle(l.value).paddingRight)}}):o.handleSizeChange({content:a.viewport.value?.scrollHeight??0,viewport:a.viewport.value?.offsetHeight??0,scrollbar:{size:l.value?.clientHeight??0,paddingStart:K(getComputedStyle(l.value).paddingTop),paddingEnd:K(getComputedStyle(l.value).paddingBottom)}}),o.onThumbPositionChange())}return y(l,C),y(a.content,C),(e,t)=>(g(),m(d(S),{ref:d(c),style:{position:`absolute`},"data-scrollbarimpl":``,as:d(s).as.value,"as-child":d(s).asChild.value,onPointerdown:h,onPointermove:_,onPointerup:b},{default:A(()=>[v(e.$slots,`default`)]),_:3},8,[`as`,`as-child`]))}}),Le=c({__name:`ScrollAreaThumb`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e,i=U(),a=Y();function o(e){let t=e.target.getBoundingClientRect(),n=e.clientX-t.left,r=e.clientY-t.top;a.handleThumbDown(e,{x:n,y:r})}function s(e){a.handleThumbUp(e)}let{forwardRef:c,currentElement:l}=R(),u=r(),f=M(()=>i.viewport.value);function p(){u.value||(u.value=we(f.value,a.onThumbPositionChange),a.onThumbPositionChange())}return n(M(()=>a.sizes.value),()=>{a.onThumbChange(l.value),f.value&&(a.onThumbPositionChange(),f.value.addEventListener(`scroll`,p))}),D(()=>{f.value.removeEventListener(`scroll`,p),i.viewport.value?.removeEventListener(`scroll`,p)}),(e,n)=>(g(),m(d(S),{ref:d(c),"data-state":d(a).hasThumb?`visible`:`hidden`,style:{width:`var(--reka-scroll-area-thumb-width)`,height:`var(--reka-scroll-area-thumb-height)`},"as-child":t.asChild,as:e.as,onPointerdown:o,onPointerup:s},{default:A(()=>[v(e.$slots,`default`)]),_:3},8,[`data-state`,`as-child`,`as`]))}}),Re=c({inheritAttrs:!1,__name:`ScrollAreaViewport`,props:{nonce:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(n,{expose:a}){let o=n,{nonce:s}=C(o),c=ne(s),u=U(),m=r();T(()=>{u.onViewportChange(m.value),u.onContentChange(y.value)}),a({viewportElement:m});let{forwardRef:_,currentElement:y}=R();return(n,r)=>(g(),p(l,null,[t(`div`,e({ref_key:`viewportElement`,ref:m,"data-reka-scroll-area-viewport":``,style:{overflowX:d(u).scrollbarXEnabled.value?`scroll`:`hidden`,overflowY:d(u).scrollbarYEnabled.value?`scroll`:`hidden`}},n.$attrs,{tabindex:0}),[i(d(S),{ref:d(_),style:f({minWidth:d(u).scrollbarXEnabled.value?`fit-content`:void 0}),"as-child":o.asChild,as:n.as},{default:A(()=>[v(n.$slots,`default`)]),_:3},8,[`style`,`as-child`,`as`])],16),i(d(S),{as:`style`,nonce:d(c)},{default:A(()=>r[0]||=[h(` /* Hide scrollbars cross-browser and enable momentum scroll for touch devices */ [data-reka-scroll-area-viewport] { scrollbar-width:none; -ms-overflow-style:none; -webkit-overflow-scrolling:touch; } [data-reka-scroll-area-viewport]::-webkit-scrollbar { display:none; } `)]),_:1,__:[0]},8,[`nonce`])],64))}}),ze=c({__name:`BaseSeparator`,props:{orientation:{type:String,required:!1,default:`horizontal`},decorative:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(t){let n=t,r=[`horizontal`,`vertical`];function i(e){return r.includes(e)}let a=M(()=>i(n.orientation)?n.orientation:`horizontal`),o=M(()=>a.value===`vertical`?n.orientation:void 0),s=M(()=>n.decorative?{role:`none`}:{"aria-orientation":o.value,role:`separator`});return(t,n)=>(g(),m(d(S),e({as:t.as,"as-child":t.asChild,"data-orientation":a.value},s.value),{default:A(()=>[v(t.$slots,`default`)]),_:3},16,[`as`,`as-child`,`data-orientation`]))}}),Be=c({__name:`Separator`,props:{orientation:{type:String,required:!1,default:`horizontal`},decorative:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e;return(e,n)=>(g(),m(ze,u(s(t)),{default:A(()=>[v(e.$slots,`default`)]),_:3},16))}}),Z=c({__name:`Separator`,props:{orientation:{default:`horizontal`},decorative:{type:Boolean,default:!0},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(t){let n=t,r=_(n,`class`);return(t,i)=>(g(),m(d(Be),e({"data-slot":`separator`},d(r),{class:d(E)(`shrink-0 bg-border data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:w-px data-[orientation=vertical]:self-stretch`,n.class)}),null,16,[`class`]))}}),Ve={class:`w-[280px] border-r pr-3 flex-shrink-0 overflow-y-auto space-y-3`},He={class:`flex items-baseline gap-1 min-w-0`},Ue={class:`font-mono text-[11px] font-semibold truncate min-w-0`},We={key:0,class:`text-[10px] text-muted-foreground flex-shrink-0`},Ge={class:`flex items-center gap-1.5`},Ke={key:0,class:`flex items-center gap-1.5`},qe={class:`font-mono text-[11px] text-muted-foreground truncate`},Je={class:`grid grid-cols-2 gap-1.5`},Ye={class:`bg-muted/50 rounded-md px-2 py-1.5 min-w-0`},Xe={class:`text-sm font-semibold truncate`},Ze={class:`bg-muted/50 rounded-md px-2 py-1.5 min-w-0`},Qe={class:`text-sm font-semibold truncate`},$e={class:`bg-muted/50 rounded-md px-2 py-1.5 min-w-0`},et={class:`text-sm font-semibold truncate`},tt={class:`bg-muted/50 rounded-md px-2 py-1.5 min-w-0`},nt={class:`bg-muted/50 rounded-md px-2 py-1.5 min-w-0`},rt={class:`text-sm font-semibold truncate`},it={class:`bg-muted/50 rounded-md px-2 py-1.5 min-w-0`},at={class:`text-sm font-semibold truncate`},ot={class:`space-y-1.5`},st={key:0,class:`text-[11px] text-muted-foreground`},ct={class:`text-muted-foreground`},lt={class:`text-muted-foreground`},ut={class:`space-y-1`},dt={key:0,class:`flex items-center justify-between text-[11px]`},ft={class:`font-mono`},pt={key:1,class:`flex items-center justify-between text-[11px]`},mt={class:`font-mono truncate max-w-[160px]`},Q=1e3,ht=400,gt=c({__name:`RequestOverviewPanel`,props:{overview:{}},setup(e){let n=e,r=M(()=>{if(n.overview.status===`pending`)return`pending`;let e=n.overview.statusCode;return n.overview.status===`failed`||e!=null&&e>=ht?`error`:`success`}),s=M(()=>n.overview.status===`pending`&&n.overview.outputTokens!=null),c=M(()=>{let e=n.overview.outputTokens;return e==null?`--`:s.value?`+${e}`:String(e)}),u=M(()=>n.overview.status===`pending`&&n.overview.latencyMs==null?`...`:n.overview.latencyMs==null?`--`:`${(n.overview.latencyMs/Q).toFixed(1)}s`),f=M(()=>{if(n.overview.tokensPerSecond!=null)return`${n.overview.tokensPerSecond.toFixed(1)}`;let{outputTokens:e,latencyMs:t}=n.overview;return e&&t?`${(e/t*Q).toFixed(1)}`:`--`});function _(e){return e!=null&&e>=ht}return(n,v)=>(g(),p(`div`,Ve,[t(`div`,He,[t(`span`,Ue,N(e.overview.model),1),e.overview.providerName?(g(),p(`span`,We,`@ `+N(e.overview.providerName),1)):a(``,!0)]),t(`div`,Ge,[r.value===`pending`?(g(),m(d(B),{key:0,class:`badge-pending`},{default:A(()=>[...v[0]||=[t(`span`,{class:`w-1.5 h-1.5 rounded-full dot-pending animate-pulse`},null,-1),h(` 进行中 `,-1)]]),_:1})):r.value===`error`?(g(),m(d(B),{key:1,class:`badge-error`},{default:A(()=>[h(N(e.overview.statusCode??`失败`),1)]),_:1})):(g(),m(d(B),{key:2,class:`badge-success`},{default:A(()=>[...v[1]||=[t(`span`,{class:`w-1.5 h-1.5 rounded-full dot-success`},null,-1),h(` 已完成 `,-1)]]),_:1})),i(d(B),{variant:`outline`},{default:A(()=>[h(N(e.overview.isStream?`SSE`:`非流式`),1)]),_:1}),i(d(B),{variant:`outline`},{default:A(()=>[h(N(e.overview.apiType),1)]),_:1})]),e.overview.sessionId?(g(),p(`div`,Ke,[i(d(B),{variant:`secondary`,class:`text-[10px]`},{default:A(()=>[...v[2]||=[h(`Session`,-1)]]),_:1}),t(`span`,qe,N(e.overview.sessionId.slice(0,8)),1)])):a(``,!0),t(`div`,Je,[t(`div`,Ye,[v[3]||=t(`div`,{class:`text-[10px] text-muted-foreground`},`延迟`,-1),t(`div`,Xe,N(u.value),1)]),t(`div`,Ze,[v[4]||=t(`div`,{class:`text-[10px] text-muted-foreground`},`TTFT`,-1),t(`div`,Qe,N(e.overview.ttftMs==null?`--`:`${e.overview.ttftMs}ms`),1)]),t(`div`,$e,[v[5]||=t(`div`,{class:`text-[10px] text-muted-foreground`},`Input Tokens`,-1),t(`div`,et,N(e.overview.inputTokens==null?`--`:e.overview.inputTokens),1)]),t(`div`,tt,[v[6]||=t(`div`,{class:`text-[10px] text-muted-foreground`},`Output Tokens`,-1),t(`div`,{class:o([`text-sm font-semibold truncate`,s.value?`diff-added`:``])},N(c.value),3)]),t(`div`,nt,[v[7]||=t(`div`,{class:`text-[10px] text-muted-foreground`},`速度 (tok/s)`,-1),t(`div`,rt,N(f.value),1)]),t(`div`,it,[v[8]||=t(`div`,{class:`text-[10px] text-muted-foreground`},`Cache Read`,-1),t(`div`,at,N(e.overview.cacheReadTokens==null?`--`:e.overview.cacheReadTokens),1)])]),i(d(Z)),t(`div`,ot,[v[9]||=t(`span`,{class:`text-[10px] text-muted-foreground uppercase tracking-wider`},`尝试历史`,-1),e.overview.attempts.length===0?(g(),p(`div`,st,`无重试`)):a(``,!0),(g(!0),p(l,null,O(e.overview.attempts,(e,n)=>(g(),p(`div`,{key:n,class:`flex items-center gap-1 text-[11px]`},[t(`span`,ct,`#`+N(n+1),1),t(`span`,{class:o(_(e.statusCode)?`diff-removed`:`diff-added`)},N(e.statusCode??`--`),3),t(`span`,lt,N((e.latencyMs/Q).toFixed(1))+`s`,1)]))),128))]),i(d(Z)),t(`div`,ut,[e.overview.statusCode==null?a(``,!0):(g(),p(`div`,dt,[v[10]||=t(`span`,{class:`text-muted-foreground`},`状态码`,-1),t(`span`,ft,N(e.overview.statusCode),1)])),e.overview.clientIp?(g(),p(`div`,pt,[v[11]||=t(`span`,{class:`text-muted-foreground`},`Client IP`,-1),t(`span`,mt,N(e.overview.clientIp),1)])):a(``,!0)])]))}}),_t=c({__name:`ScrollBar`,props:{orientation:{default:`vertical`},forceMount:{type:Boolean},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(t){let n=t,r=_(n,`class`);return(a,o)=>(g(),m(d(Pe),e({"data-slot":`scroll-area-scrollbar`,"data-orientation":t.orientation},d(r),{class:d(E)(`data-[orientation=horizontal]:h-2.5 data-[orientation=horizontal]:flex-col data-[orientation=horizontal]:border-t data-[orientation=horizontal]:border-t-transparent data-[orientation=vertical]:h-full data-[orientation=vertical]:w-2.5 data-[orientation=vertical]:border-l data-[orientation=vertical]:border-l-transparent flex touch-none p-px transition-colors select-none`,n.class)}),{default:A(()=>[i(d(Le),{"data-slot":`scroll-area-thumb`,class:`rounded-full relative flex-1 bg-border`})]),_:1},16,[`data-orientation`,`class`]))}}),$=c({__name:`ScrollArea`,props:{type:{},dir:{},scrollHideDelay:{},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(t){let n=t,r=_(n,`class`);return(t,a)=>(g(),m(d(be),e({"data-slot":`scroll-area`},d(r),{class:d(E)(`relative`,n.class)}),{default:A(()=>[i(d(Re),{"data-slot":`scroll-area-viewport`,class:`size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1`},{default:A(()=>[v(t.$slots,`default`)]),_:3}),i(_t),i(d(Se))]),_:3},16,[`class`]))}}),vt={key:0,class:`rounded-md border bg-card`},yt={class:`flex items-center gap-1.5 px-2.5 py-1.5 border-b`},bt={class:`px-2.5 py-2`},xt={class:`text-xs overflow-y-auto whitespace-pre-wrap break-words max-h-60`},St={key:0,class:`inline-block w-1.5 h-3.5 dot-success animate-pulse ml-0.5 align-text-bottom`},Ct={class:`flex items-center gap-1.5 px-2.5 py-1.5 cursor-pointer hover:brightness-95 rounded-t-md`},wt={class:`text-xs font-medium`},Tt={key:0,class:`text-xs text-muted-foreground`},Et={class:`px-2.5 pb-2`},Dt=c({__name:`ContentBlockRenderer`,props:{type:{},content:{},name:{default:void 0},defaultOpen:{type:Boolean,default:!0},showCursor:{type:Boolean,default:!1}},setup(e){let n=e,s=r(n.type===`text`?!0:n.defaultOpen),c=M(()=>{switch(n.type){case`thinking`:return`block-thinking`;case`tool_use`:return`block-tool-use`;case`tool_result`:return`block-tool-result`;default:return`bg-card`}}),l=M(()=>{switch(n.type){case`thinking`:return`block-thinking-content italic`;case`tool_use`:return`block-tool-use-content`;case`tool_result`:return`block-tool-result-content`;default:return`bg-muted/50`}}),u=M(()=>{switch(n.type){case`thinking`:return ge;case`tool_use`:return ve;case`tool_result`:return _e;default:return H}}),f=M(()=>{switch(n.type){case`thinking`:return`text-[var(--color-role-thinking)]`;case`tool_use`:return`text-[var(--color-role-tool)]`;case`tool_result`:return`text-[var(--color-role-user)]`;default:return`text-muted-foreground`}}),_=M(()=>{switch(n.type){case`thinking`:return`Thinking`;case`tool_use`:return`Tool Use`;case`tool_result`:return`Tool Result`;default:return``}}),v=M(()=>n.type===`tool_use`?`(等待数据...)`:n.type===`tool_result`?`(无返回数据)`:``);return(n,r)=>e.type===`text`?(g(),p(`div`,vt,[t(`div`,yt,[i(d(H),{class:`h-3.5 w-3.5 diff-added`}),r[1]||=t(`span`,{class:`text-xs font-medium`},`Reply`,-1)]),t(`div`,bt,[t(`pre`,xt,[t(`code`,null,[h(N(e.content),1),e.showCursor?(g(),p(`span`,St)):a(``,!0)])])])])):(g(),m(d(oe),{key:1,open:s.value,"onUpdate:open":r[0]||=e=>s.value=e,class:o([`rounded-md border`,c.value])},{default:A(()=>[i(d(se),{"as-child":``},{default:A(()=>[t(`div`,Ct,[i(d(te),{class:o([`h-3 w-3 transition-transform duration-200`,{"rotate-180":!s.value}])},null,8,[`class`]),(g(),m(k(u.value),{class:o([`h-3.5 w-3.5`,f.value])},null,8,[`class`])),t(`span`,wt,N(_.value),1),e.type===`thinking`?(g(),p(`span`,Tt,`(`+N(e.content.length)+` 字符)`,1)):a(``,!0),e.type===`tool_use`&&e.name?(g(),m(d(B),{key:1,variant:`secondary`,class:`text-xs`},{default:A(()=>[h(N(e.name),1)]),_:1})):a(``,!0)])]),_:1}),i(d(ae),null,{default:A(()=>[t(`div`,Et,[t(`pre`,{class:o([`text-xs rounded p-2 overflow-y-auto whitespace-pre-wrap break-words max-h-60`,l.value])},[t(`code`,null,N(e.content||v.value),1)],2)])]),_:1})]),_:1},8,[`open`,`class`]))}}),Ot=2;function kt(e){return e.map(e=>{let t=e;return t.type===`thinking`?{type:`thinking`,content:String(t.thinking??``)}:t.type===`text`?{type:`text`,content:String(t.text??``)}:t.type===`tool_use`?{type:`tool_use`,content:JSON.stringify(t.input??{},null,Ot),name:String(t.name??``)}:t.type===`tool_result`?{type:`tool_result`,content:typeof t.content==`string`?t.content:JSON.stringify(t.content)}:{type:`text`,content:JSON.stringify(t)}})}function At(e){let t=[];for(let n of e){let e=n.message;if(!e)continue;let r=e.content;if(typeof r==`string`&&r)t.push({type:`text`,content:r});else if(Array.isArray(r))for(let e of r){let n=e;if(n.type===`text`)t.push({type:`text`,content:String(n.text??``)});else if(n.type===`tool_use`||n.type===`function`){let e=n.function??n.input??{};t.push({type:`tool_use`,content:JSON.stringify(e,null,Ot),name:String(n.name??e.name??``)})}}}return t}function jt(e,t,n){let r=e||t;if(!r)return[];let i;try{i=JSON.parse(r)}catch{return[]}let a=i;if(typeof a.body==`string`)try{i=JSON.parse(a.body)}catch{i=i}let o=i;return n===`anthropic`&&Array.isArray(o.content)?kt(o.content):n===`openai`&&Array.isArray(o.choices)?At(o.choices):[]}var Mt=5,Nt=2,Pt=3;function Ft(e,t,n){let r=M(()=>{if(!t||!e.value)return[];let n=e.value.split(`
|
|
2
|
+
`),r=[];for(let e of n){let t=e.trim();if(!t.startsWith(`data:`))continue;let n=t.slice(Mt).trim();if(n===`[DONE]`){r.push({type:`done`,data:n});continue}try{let e=JSON.parse(n);r.push({type:`data`,data:e})}catch{r.push({type:`raw`,data:n})}}return r});return{sseEvents:r,assembledBlocks:M(()=>{if(!t||!e.value)return[];let n=[],i=null;for(let e of r.value){if(e.type!==`data`)continue;let t=e.data;if(t.type===`content_block_start`){let e=t.content_block;if(i={type:String(e?.type||``),content:``,eventCount:0,toolName:e?.name?String(e.name):void 0},i.type===`tool_use`&&e?.input){let t=e.input;Object.keys(t).length>0&&(i.content=JSON.stringify(t,null,Nt))}continue}if(t.type===`content_block_delta`&&i){let e=t.delta;i.content+=e.thinking||e.text||e.partial_json||``,i.eventCount++;continue}t.type===`content_block_stop`&&i&&(n.push(i),i=null)}return i&&n.push(i),n}),sseMeta:M(()=>{let e=``,t=``,n=0,i=0,a=``;for(let o of r.value){if(o.type!==`data`)continue;let r=o.data;if(r.type===`message_start`){let i=r.message;e=String(i?.id||``),t=String(i?.model||``),n=Number(i?.usage?.input_tokens??0)}if(r.type===`message_delta`){let e=r.delta,t=r.usage;a=String(e?.stop_reason||``),i=Number(t?.output_tokens??0)}}return{id:e,model:t,inputTokens:n,outputTokens:i,stopReason:a}}),openaiAssembled:M(()=>{if(n!==`openai`||!t)return null;let e=``,i=``,a=``,o=null,s=0;for(let t of r.value){if(t.type!==`data`)continue;let n=t.data,r=n.choices||[],c=r[0]?.delta;c?.role&&(e=String(c.role)),c?.content&&(i+=String(c.content),s++),r[0]?.finish_reason&&(a=String(r[0].finish_reason)),n.usage&&(o=n.usage)}return{role:e,content:i,contentEventCount:s,finishReason:a,usage:o}}),anthropicMessageStart:M(()=>{for(let e of r.value){if(e.type!==`data`)continue;let t=e.data;if(t.type===`message_start`){let e=t.message;return{id:String(e?.id||``),model:String(e?.model||``),input_tokens:Number(e?.usage?.input_tokens??0)}}}return null}),anthropicContentBlockStarts:M(()=>{let e=[];for(let t of r.value){if(t.type!==`data`)continue;let n=t.data;if(n.type===`content_block_start`){let t=n.content_block;e.push({index:Number(n.index??0),type:String(t?.type||``)})}}return e}),anthropicDeltaGroups:M(()=>{let e={};for(let t of r.value){if(t.type!==`data`)continue;let n=t.data;if(n.type!==`content_block_delta`)continue;let r=n.delta,i=String(r?.type||`unknown`);e[i]||(e[i]={deltaType:i,kept:0,folded:0,foldedChars:0});let a=e[i];if(a.kept<Pt)a.kept++;else{a.folded++;let e=r,t=String(e.thinking||e.text||e.partial_json||``);a.foldedChars+=t.length}}return Object.values(e).filter(e=>e.kept>0||e.folded>0)}),anthropicMessageDelta:M(()=>{for(let e of r.value){if(e.type!==`data`)continue;let t=e.data;if(t.type===`message_delta`){let e=t.delta,n=t.usage;return{output_tokens:Number(n?.output_tokens??0),stop_reason:String(e?.stop_reason||``)}}}return null}),anthropicMessageStop:M(()=>r.value.some(e=>e.type===`data`&&e.data.type===`message_stop`)),openaiSseRole:M(()=>{for(let e of r.value){if(e.type!==`data`)continue;let t=(e.data.choices||[])[0]?.delta;if(t?.role)return String(t.role)}return null}),openaiSseFirstContent:M(()=>{for(let e of r.value){if(e.type!==`data`)continue;let t=(e.data.choices||[])[0]?.delta;if(t?.content)return String(t.content)}return null}),openaiSseFinishReason:M(()=>{for(let e of r.value){if(e.type!==`data`)continue;let t=(e.data.choices||[])[0]?.finish_reason;if(t)return String(t)}return null}),openaiSseCollapsedCount:M(()=>{let e=0,t=!1;for(let n of r.value){if(n.type!==`data`)continue;let r=(n.data.choices||[])[0]?.delta;if(!t){r?.content&&(t=!0);continue}(r?.content||r?.role)&&e++}return e}),openaiSseUsage:M(()=>{for(let e=r.value.length-1;e>=0;e--){let t=r.value[e];if(t.type!==`data`)continue;let n=t.data.usage;if(n)return{prompt_tokens:n.prompt_tokens,completion_tokens:n.completion_tokens,total_tokens:n.total_tokens,cached_tokens:n.cached_tokens??n.prompt_tokens_details?.cached_tokens}}return null})}}var It={class:`flex flex-col gap-2`},Lt={class:`flex items-center justify-between`},Rt={key:0},zt={key:0,class:`flex flex-col gap-2`},Bt={key:1,class:`text-xs text-muted-foreground`},Vt={key:2,class:`text-xs text-muted-foreground`},Ht={key:3,class:`text-xs text-muted-foreground`},Ut={class:`p-3 text-[11px] whitespace-pre-wrap break-words`},Wt=c({__name:`ResponseViewer`,props:{source:{},apiType:{},isStream:{type:Boolean},streamContent:{default:null},nonStreamBody:{default:null},responseBody:{default:null},upstreamResponse:{default:null},status:{}},setup(e){let n=e,a=r(!1),o=M(()=>!!(n.responseBody||n.upstreamResponse)),{assembledBlocks:s}=Ft(M(()=>{if(n.source!==`history`)return``;let e=n.responseBody||n.upstreamResponse||``;try{return JSON.parse(e).body||e}catch{return e}}),n.isStream,n.apiType),c=M(()=>{if(n.source===`realtime`){let e=n.streamContent?.blocks;if(e&&e.length>0)return e;if(n.responseBody){let e=jt(n.responseBody,null,n.apiType);if(e.length>0)return e}return[]}let e=jt(n.responseBody??null,n.upstreamResponse??null,n.apiType);return e.length>0?e:n.responseBody&&n.responseBody.trim().length>0?[{type:`text`,content:n.responseBody}]:s.value.map(e=>({type:[`thinking`,`text`,`tool_use`].includes(e.type)?e.type:`text`,content:e.content,...e.toolName?{name:e.toolName}:{}}))}),u=M(()=>n.source===`realtime`?n.streamContent?.rawChunks||n.responseBody||``:n.responseBody||n.upstreamResponse||``);return(e,r)=>(g(),p(`div`,It,[t(`div`,Lt,[r[1]||=t(`span`,{class:`text-xs font-medium text-muted-foreground`},`响应内容`,-1),i(d(w),{size:`sm`,variant:`outline`,class:`h-6 gap-1 text-xs`,onClick:r[0]||=e=>a.value=!a.value},{default:A(()=>[(g(),m(k(a.value?d(re):d(V)),{class:`h-3 w-3`})),h(` `+N(a.value?`结构化`:n.isStream?`原始 SSE`:`原始 JSON`),1)]),_:1})]),a.value?(g(),m(d($),{key:1,class:`max-h-96 rounded-md border`},{default:A(()=>[t(`pre`,Ut,N(u.value),1)]),_:1})):(g(),p(`div`,Rt,[c.value.length>0?(g(),p(`div`,zt,[(g(!0),p(l,null,O(c.value,(e,t)=>(g(),m(Dt,{key:t,type:e.type,content:e.content,name:e.name,"show-cursor":n.status===`pending`&&t===c.value.length-1},null,8,[`type`,`content`,`name`,`show-cursor`]))),128))])):n.status===`pending`?(g(),p(`p`,Bt,`等待响应数据...`)):n.source===`history`&&n.isStream&&!o.value?(g(),p(`p`,Vt,`流式响应内容未持久化存储`)):(g(),p(`p`,Ht,`无响应内容`))]))]))}}),Gt={class:`relative`},Kt={class:`bg-background text-foreground rounded-md p-3 text-xs overflow-auto max-h-[40vh] whitespace-pre-wrap break-all border`},qt=c({__name:`JsonCopyBlock`,props:{content:{},hideCopyButton:{type:Boolean}},setup(e){let n=e,{copied:r,copy:i}=he();async function o(){await i(n.content)}return(n,i)=>(g(),p(`div`,Gt,[e.hideCopyButton?a(``,!0):(g(),m(d(w),{key:0,variant:`outline`,size:`sm`,class:`absolute top-2 right-2 h-7 text-xs`,onClick:o},{default:A(()=>[h(N(d(r)?`已复制`:`复制`),1)]),_:1})),t(`pre`,Kt,N(e.content),1)]))}}),Jt={class:`flex flex-col min-h-0 h-full`},Yt={class:`flex justify-end mb-1 flex-shrink-0`},Xt={key:0,class:`space-y-3`},Zt={key:0,class:`text-[11px] text-muted-foreground py-4 text-center`},Qt={key:1,class:`space-y-4`},$t={key:0},en={class:`flex items-center gap-2 text-[11px]`},tn={class:`font-mono text-muted-foreground`},nn={class:`font-mono text-primary font-semibold`},rn={key:1},an={class:`text-[11px] bg-muted/50 rounded-md px-2.5 py-2 overflow-y-auto whitespace-pre-wrap break-words max-h-40`},on={key:2},sn={class:`text-[10px] uppercase tracking-wider text-muted-foreground font-medium mb-1`},cn={class:`space-y-1.5`},ln={class:`flex items-center gap-1.5 mb-1`},un={key:0,class:`diff-removed line-through mb-0.5`},dn={class:`text-foreground overflow-y-auto max-h-40`},fn={key:3},pn={class:`text-[10px] uppercase tracking-wider text-muted-foreground font-medium mb-1`},mn={class:`space-y-1`},hn={key:4},gn={class:`flex items-center gap-2 text-[11px]`},_n={key:5},vn={class:`flex items-center gap-2 text-[11px]`},yn={class:`font-mono diff-removed line-through`},bn={class:`font-mono diff-added font-medium`},xn=4,Sn=c({__name:`RequestDiffViewer`,props:{overview:{}},setup(e){let n=e,s=r(!1);function c(e){if(!e)return null;try{let t=JSON.parse(e),n=t.headers??{},r=t.body;if(typeof r==`string`)try{r=JSON.parse(r)}catch{}return{headers:n,body:r??{}}}catch{return null}}function u(e){let t=e.content;return typeof t==`string`?t:Array.isArray(t)?t.filter(e=>typeof e==`object`&&!!e&&`text`in e).map(e=>e.text).join(``):String(t??``)}function f(e){if(!e)return``;let t=e.replace(/^Bearer\s+/i,``);return t.length<=xn?`***`:`${t.slice(0,xn)}***`}function _(e,t){let n=t.toLowerCase();for(let[t,r]of Object.entries(e))if(t.toLowerCase()===n)return r}let v=M(()=>c(n.overview.clientRequest)),y=M(()=>c(n.overview.upstreamRequest)),b=M(()=>{let e=v.value?.body?.model,t=y.value?.body?.model;return{hasDiff:!!e&&!!t&&e!==t,from:e??``,to:t??``}}),x=M(()=>{let e=y.value?.body;if(!e)return null;let t=e.system;if(typeof t==`string`)return t;if(Array.isArray(t))return t.filter(e=>typeof e==`object`&&!!e&&`text`in e).map(e=>e.text).join(`
|
|
3
|
+
`);let n=e.messages;if(Array.isArray(n)){let e=n.find(e=>e.role===`system`);if(e)return u(e)}return null}),S=M(()=>{let e=y.value?.body?.messages??[],t=v.value?.body?.messages??[];if(e.length===0)return[];let n=[];for(let r=0;r<e.length;r++){let i=e[r],a=String(i.role??`unknown`);if(a===`system`)continue;let o=u(i),s=t[r],c=s?u(s):null,l=c!==null&&o!==c;n.push({role:a,text:o,removedText:l?c:null,modified:l})}return n}),C=M(()=>{let e=y.value?.body;if(!e)return[];let t=e.tools;return Array.isArray(t)?t.filter(e=>typeof e?.name==`string`).map(e=>({name:e.name})):[]}),T=M(()=>{let e=v.value?.body?.stream_options!=null,t=y.value?.body?.stream_options!=null;return!e&&t}),E=M(()=>{if(!v.value?.headers||!y.value?.headers)return{hasDiff:!1,old:``,new:``};let e=_(v.value.headers,`authorization`),t=_(y.value.headers,`authorization`);return{hasDiff:!!e&&!!t&&e!==t,old:f(e),new:f(t)}});return(n,r)=>(g(),p(`div`,Jt,[t(`div`,Yt,[i(d(w),{variant:`outline`,size:`xs`,class:`gap-1`,onClick:r[0]||=e=>s.value=!s.value},{default:A(()=>[s.value?(g(),m(d(V),{key:0,class:`size-3`})):(g(),m(d(re),{key:1,class:`size-3`})),h(` `+N(s.value?`Structured`:`Raw JSON`),1)]),_:1})]),i(d($),{class:`flex-1 min-h-0`},{default:A(()=>[s.value?(g(),p(`div`,Xt,[t(`div`,null,[r[1]||=t(`div`,{class:`text-[10px] uppercase tracking-wider text-muted-foreground font-medium mb-1`},` Client Request `,-1),i(qt,{content:e.overview.clientRequest??`{}`},null,8,[`content`])]),t(`div`,null,[r[2]||=t(`div`,{class:`text-[10px] uppercase tracking-wider text-muted-foreground font-medium mb-1`},` Upstream Request `,-1),i(qt,{content:e.overview.upstreamRequest??`{}`},null,8,[`content`])])])):(g(),p(l,{key:1},[y.value?(g(),p(`div`,Qt,[b.value.hasDiff?(g(),p(`div`,$t,[r[4]||=t(`div`,{class:`text-[10px] uppercase tracking-wider text-muted-foreground font-medium mb-1`},` Model Mapping `,-1),t(`div`,en,[t(`span`,tn,N(b.value.from),1),r[3]||=t(`span`,{class:`text-muted-foreground`},`→`,-1),t(`span`,nn,N(b.value.to),1)])])):a(``,!0),x.value?(g(),p(`div`,rn,[r[5]||=t(`div`,{class:`text-[10px] uppercase tracking-wider text-muted-foreground font-medium mb-1`},` System `,-1),t(`pre`,an,N(x.value),1)])):a(``,!0),S.value.length>0?(g(),p(`div`,on,[t(`div`,sn,` Messages (`+N(S.value.length)+`) `,1),t(`div`,cn,[(g(!0),p(l,null,O(S.value,(e,n)=>(g(),p(`div`,{key:n,class:o([`rounded-md border px-2.5 py-1.5 text-[11px]`,e.modified?`diff-modified`:`bg-background`])},[t(`div`,ln,[i(d(B),{class:o([`text-[9px] px-1.5 py-0`,e.role===`user`?`badge-role-user`:e.role===`assistant`?`badge-role-assistant`:`badge-role-thinking`])},{default:A(()=>[h(N(e.role),1)]),_:2},1032,[`class`]),e.modified?(g(),m(d(B),{key:0,class:`badge-role-thinking text-[9px] px-1.5 py-0`},{default:A(()=>[...r[6]||=[h(` Modified `,-1)]]),_:1})):a(``,!0)]),e.modified&&e.removedText?(g(),p(`div`,un,N(e.removedText),1)):a(``,!0),t(`div`,dn,N(e.text),1)],2))),128))])])):a(``,!0),C.value.length>0?(g(),p(`div`,fn,[t(`div`,pn,` Tools (`+N(C.value.length)+`) `,1),t(`div`,mn,[(g(!0),p(l,null,O(C.value,(e,t)=>(g(),p(`div`,{key:t,class:`rounded-md border bg-background px-2.5 py-1.5 text-[11px]`},[i(d(B),{class:`text-[9px] px-1.5 py-0 badge-role-tool`},{default:A(()=>[h(N(e.name),1)]),_:2},1024)]))),128))])])):a(``,!0),T.value?(g(),p(`div`,hn,[r[9]||=t(`div`,{class:`text-[10px] uppercase tracking-wider text-muted-foreground font-medium mb-1`},` Stream Options `,-1),t(`div`,gn,[i(d(B),{class:`badge-success text-[9px] px-1.5 py-0`},{default:A(()=>[...r[7]||=[h(`Injected`,-1)]]),_:1}),r[8]||=t(`code`,{class:`font-mono diff-added`},`{ "include_usage": true }`,-1)])])):a(``,!0),E.value.hasDiff?(g(),p(`div`,_n,[r[10]||=t(`div`,{class:`text-[10px] uppercase tracking-wider text-muted-foreground font-medium mb-1`},` Auth Replacement `,-1),t(`div`,vn,[t(`span`,yn,N(E.value.old),1),i(d(Z),{orientation:`vertical`,class:`h-3`}),t(`span`,bn,N(E.value.new),1)])])):a(``,!0)])):(g(),p(`div`,Zt,` No request data available `))],64))]),_:1})]))}}),Cn=1e3,wn=400;function Tn(e,t){let n=e.attempts.length>0?e.attempts[e.attempts.length-1]:void 0,r=e.streamMetrics,i=r?.tokensPerSecond??null;if(!i&&r&&r.outputTokens&&r.ttftMs&&e.completedAt){let t=(e.completedAt-e.startTime-r.ttftMs)/Cn;t>0&&(i=r.outputTokens/t)}return{id:e.id,model:e.model,backendModel:null,originalModel:null,statusCode:e.status===`completed`?n?.statusCode??null:null,isStream:e.isStream,apiType:e.apiType,providerName:e.providerName,clientIp:e.clientIp,sessionId:e.sessionId??null,latencyMs:e.completedAt?e.completedAt-e.startTime:null,ttftMs:r?.ttftMs??null,inputTokens:r?.inputTokens??null,outputTokens:r?.outputTokens??null,tokensPerSecond:i,cacheReadTokens:r?.cacheReadTokens??null,cacheWriteTokens:null,stopReason:r?.stopReason??null,isComplete:r?.isComplete??!1,attempts:e.attempts.map(e=>({statusCode:e.statusCode,error:e.error,latencyMs:e.latencyMs,providerId:e.providerId})),status:e.status,clientRequest:null,upstreamRequest:null,responseBody:t??null,upstreamResponse:null,errorMessage:null,createdAt:null}}function En(e){if(!e)return null;try{let t=JSON.parse(e);return typeof t.statusCode==`number`&&t.headers&&!t.content&&!t.choices?typeof t.body==`string`?t.body:null:e}catch{return e}}function Dn(e){let t=e.input_tokens??null,n=e.output_tokens??null,r=e.ttft_ms??null,i=e.tokens_per_second??null;if(!i&&n&&r&&e.latency_ms){let t=(e.latency_ms-r)/Cn;t>0&&(i=n/t)}let a=En(e.upstream_response)??e.stream_text_content??null;return{id:e.id,model:e.original_model??e.model??`unknown`,backendModel:e.backend_model,originalModel:e.original_model,statusCode:e.status_code,isStream:!!e.is_stream,apiType:e.api_type,providerName:e.provider_name,clientIp:void 0,sessionId:null,latencyMs:e.latency_ms,ttftMs:r,inputTokens:t,outputTokens:n,tokensPerSecond:i,cacheReadTokens:e.cache_read_tokens??null,cacheWriteTokens:null,stopReason:e.stop_reason??null,isComplete:!!e.metrics_complete,attempts:[],status:(e.status_code??0)>=wn?`failed`:`completed`,clientRequest:e.client_request,upstreamRequest:e.upstream_request,responseBody:a,upstreamResponse:e.upstream_response,errorMessage:e.error_message,createdAt:e.created_at}}var On={class:`h-[3px] w-full overflow-hidden`},kn={key:0,class:`h-full w-[40%] progress-active`,style:{animation:`shimmer 1.5s infinite`}},An={key:1,class:`h-full w-full progress-failed`},jn={key:2,class:`h-full w-full progress-active`},Mn={key:0,class:`font-mono text-[11px] text-muted-foreground`},Nn={key:0,class:`flex gap-0 px-4 pb-4`,style:{height:`calc(85vh - 80px)`}},Pn={key:0,class:`px-3 pb-2`},Fn={class:`rounded-md bg-destructive/10 px-3 py-2 text-xs text-destructive`},In={class:`flex-1 flex flex-col min-w-0 pl-3`},Ln={key:0,class:`flex-1 overflow-y-auto mt-2`},Rn={key:1,class:`flex-1 overflow-y-auto mt-2`},zn={key:1,class:`flex items-center justify-center`,style:{height:`calc(85vh - 80px)`}},Bn={class:`text-sm text-muted-foreground`},Vn=((e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n})(c({__name:`UnifiedRequestDialog`,props:{open:{type:Boolean},source:{},request:{},streamContent:{},logDetailData:{},logEntry:{}},emits:[`update:open`],setup(e,{emit:n}){let o=e,s=n,c=r(`response`),l=r(null),u=M(()=>{if(o.source===`realtime`){if(!o.request)return null;let e=Tn(o.request,o.logDetailData?.responseBody);return o.logDetailData&&(o.logDetailData.clientRequest&&(e.clientRequest=o.logDetailData.clientRequest),o.logDetailData.upstreamRequest&&(e.upstreamRequest=o.logDetailData.upstreamRequest)),e}return l.value}),f=M(()=>u.value?u.value.status:`pending`);return x([()=>o.open,()=>o.logEntry],([e,t])=>{e&&(c.value=`response`,o.source===`history`&&t&&(l.value=Dn(t)))}),(n,r)=>(g(),m(d(de),{open:o.open,"onUpdate:open":r[1]||=e=>s(`update:open`,e)},{default:A(()=>[i(d(ce),{class:`sm:max-w-6xl max-h-[85vh] p-0 overflow-hidden`},{default:A(()=>[t(`div`,On,[f.value===`pending`?(g(),p(`div`,kn)):f.value===`failed`?(g(),p(`div`,An)):(g(),p(`div`,jn))]),i(d(ue),{class:`px-4 pt-2 pb-0`},{default:A(()=>[i(d(fe),{class:`text-sm flex items-center gap-2`},{default:A(()=>[r[2]||=h(` 请求详情 `,-1),u.value?(g(),p(`span`,Mn,N(u.value.id.slice(0,8)),1)):a(``,!0)]),_:1}),i(d(le),{class:`sr-only`},{default:A(()=>[...r[3]||=[h(`查看请求的响应内容和请求内容`,-1)]]),_:1})]),_:1}),u.value?(g(),p(`div`,Nn,[i(gt,{overview:u.value},null,8,[`overview`]),u.value.errorMessage?(g(),p(`div`,Pn,[t(`div`,Fn,N(u.value.errorMessage),1)])):a(``,!0),t(`div`,In,[i(d(me),{modelValue:c.value,"onUpdate:modelValue":r[0]||=e=>c.value=e},{default:A(()=>[i(d(pe),null,{default:A(()=>[i(d(z),{value:`response`},{default:A(()=>[...r[4]||=[h(`响应内容`,-1)]]),_:1}),i(d(z),{value:`request`},{default:A(()=>[...r[5]||=[h(`请求内容`,-1)]]),_:1})]),_:1}),c.value===`response`?(g(),p(`div`,Ln,[i(Wt,{source:o.source,"api-type":u.value.apiType,"is-stream":u.value.isStream,"stream-content":o.streamContent,"non-stream-body":e.logDetailData?.responseBody,"response-body":u.value.responseBody,"upstream-response":u.value.upstreamResponse,status:u.value.status},null,8,[`source`,`api-type`,`is-stream`,`stream-content`,`non-stream-body`,`response-body`,`upstream-response`,`status`])])):a(``,!0),c.value===`request`?(g(),p(`div`,Rn,[i(Sn,{overview:u.value},null,8,[`overview`])])):a(``,!0)]),_:1},8,[`modelValue`])])])):(g(),p(`div`,zn,[t(`p`,Bn,N(o.source===`realtime`?`加载中...`:`无选中请求`),1)]))]),_:1})]),_:1},8,[`open`]))}}),[[`__scopeId`,`data-v-df869ab5`]]);export{$ as n,Z as r,Vn as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@keyframes shimmer-df869ab5{0%{transform:translate(-100%)}to{transform:translate(350%)}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{K as e,Mt as t,Pt as n,V as r,at as i,ct as a,i as o,l as s,vt as c,z as l}from"./button-BKJB3nEQ.js";function u(e){return l(()=>t(e)?!!s(e)?.closest(`form`):!0)}var d=e({__name:`VisuallyHidden`,props:{feature:{type:String,required:!1,default:`focusable`},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){return(e,t)=>(i(),r(n(o),{as:e.as,"as-child":e.asChild,"aria-hidden":e.feature===`focusable`?`true`:void 0,"data-hidden":e.feature===`fully-hidden`?``:void 0,tabindex:e.feature===`fully-hidden`?`-1`:void 0,style:{position:`absolute`,border:0,width:`1px`,height:`1px`,padding:0,margin:`-1px`,overflow:`hidden`,clip:`rect(0, 0, 0, 0)`,clipPath:`inset(50%)`,whiteSpace:`nowrap`,wordWrap:`normal`,top:`-1px`,left:`-1px`}},{default:c(()=>[a(e.$slots,`default`)]),_:3},8,[`as`,`as-child`,`aria-hidden`,`data-hidden`,`tabindex`]))}});export{u as n,d as t};
|
package/frontend-dist/assets/{VisuallyHiddenInput-cjeTgyDe.js → VisuallyHiddenInput-Bnglr6yR.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$ as e,H as t,K as n,L as r,U as i,V as a,at as o,
|
|
1
|
+
import{$ as e,H as t,K as n,L as r,U as i,V as a,at as o,ht as s,st as c,z as l}from"./button-BKJB3nEQ.js";import{s as u}from"./Collection-GDvpW_uY.js";import{t as d}from"./VisuallyHidden-DPKPka_x.js";var f=n({inheritAttrs:!1,__name:`VisuallyHiddenInputBubble`,props:{name:{type:String,required:!0},value:{type:null,required:!0},checked:{type:Boolean,required:!1,default:void 0},required:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},feature:{type:String,required:!1,default:`fully-hidden`}},setup(t){let n=t,{primitiveElement:r,currentElement:i}=u();return s(l(()=>n.checked??n.value),(e,t)=>{if(!i.value)return;let n=i.value,r=window.HTMLInputElement.prototype,a=Object.getOwnPropertyDescriptor(r,`value`).set;if(a&&e!==t){let t=new Event(`input`,{bubbles:!0}),r=new Event(`change`,{bubbles:!0});a.call(n,e),n.dispatchEvent(t),n.dispatchEvent(r)}}),(t,i)=>(o(),a(d,e({ref_key:`primitiveElement`,ref:r},{...n,...t.$attrs},{as:`input`}),null,16))}}),p=n({inheritAttrs:!1,__name:`VisuallyHiddenInput`,props:{name:{type:String,required:!0},value:{type:null,required:!0},checked:{type:Boolean,required:!1,default:void 0},required:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},feature:{type:String,required:!1,default:`fully-hidden`}},setup(n){let s=n,u=l(()=>typeof s.value==`object`&&Array.isArray(s.value)&&s.value.length===0&&s.required),d=l(()=>typeof s.value==`string`||typeof s.value==`number`||typeof s.value==`boolean`||s.value===null||s.value===void 0?[{name:s.name,value:s.value}]:typeof s.value==`object`&&Array.isArray(s.value)?s.value.flatMap((e,t)=>typeof e==`object`?Object.entries(e).map(([e,n])=>({name:`${s.name}[${t}][${e}]`,value:n})):{name:`${s.name}[${t}]`,value:e}):s.value!==null&&typeof s.value==`object`&&!Array.isArray(s.value)?Object.entries(s.value).map(([e,t])=>({name:`${s.name}[${e}]`,value:t})):[]);return(n,l)=>(o(),i(r,null,[t(` We render single input if it's required `),u.value?(o(),a(f,e({key:n.name},{...s,...n.$attrs},{name:n.name,value:n.value}),null,16,[`name`,`value`])):(o(!0),i(r,{key:1},c(d.value,t=>(o(),a(f,e({key:t.name},{ref_for:!0},{...s,...n.$attrs},{name:t.name,value:t.value}),null,16,[`name`,`value`]))),128))],2112))}});export{p as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$ as e,
|
|
1
|
+
import{$ as e,Et as t,G as n,I as r,It as i,J as a,K as o,Lt as s,Pt as c,U as l,V as u,at as d,b as f,ct as p,et as m,nt as h,r as g,t as _,vt as v}from"./button-BKJB3nEQ.js";import{S as y,f as b,m as x,n as S}from"./Collection-GDvpW_uY.js";import{t as C}from"./useForwardExpose-bqtcPo63.js";import{a as w,i as T,n as E,o as D,r as O,t as k}from"./DialogTitle-lj6NAA5R.js";var A=o({__name:`AlertDialogAction`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`}},setup(e){let t=e;return C(),(e,n)=>(d(),u(c(w),s(a(t)),{default:v(()=>[p(e.$slots,`default`)]),_:3},16))}}),[j,M]=y(`AlertDialogContent`),N=o({__name:`AlertDialogContent`,props:{forceMount:{type:Boolean,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(n,{emit:i}){let a=n,o=x(i);C();let s=t();return M({onCancelElementChange:e=>{s.value=e}}),(t,n)=>(d(),u(c(T),e({...a,...c(o)},{role:`alertdialog`,onPointerDownOutside:n[0]||=r(()=>{},[`prevent`]),onInteractOutside:n[1]||=r(()=>{},[`prevent`]),onOpenAutoFocus:n[2]||=()=>{m(()=>{s.value?.focus({preventScroll:!0})})}}),{default:v(()=>[p(t.$slots,`default`)]),_:3},16))}}),P=o({__name:`AlertDialogCancel`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`}},setup(t){let n=t,r=j(),{forwardRef:i,currentElement:a}=C();return h(()=>{r.onCancelElementChange(a.value)}),(t,r)=>(d(),u(c(w),e(n,{ref:c(i)}),{default:v(()=>[p(t.$slots,`default`)]),_:3},16))}}),F=o({__name:`AlertDialogDescription`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`p`}},setup(e){let t=e;return C(),(e,n)=>(d(),u(c(O),s(a(t)),{default:v(()=>[p(e.$slots,`default`)]),_:3},16))}}),I=o({__name:`AlertDialogOverlay`,props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e;return C(),(e,n)=>(d(),u(c(E),s(a(t)),{default:v(()=>[p(e.$slots,`default`)]),_:3},16))}}),L=o({__name:`AlertDialogPortal`,props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(e){let t=e;return(e,n)=>(d(),u(c(S),s(a(t)),{default:v(()=>[p(e.$slots,`default`)]),_:3},16))}}),R=o({__name:`AlertDialogRoot`,props:{open:{type:Boolean,required:!1},defaultOpen:{type:Boolean,required:!1}},emits:[`update:open`],setup(t,{emit:n}){let r=b(t,n);return C(),(t,n)=>(d(),u(c(D),e(c(r),{modal:!0}),{default:v(e=>[p(t.$slots,`default`,s(a(e)))]),_:3},16))}}),z=o({__name:`AlertDialogTitle`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`h2`}},setup(e){let t=e;return C(),(e,n)=>(d(),u(c(k),s(a(t)),{default:v(()=>[p(e.$slots,`default`)]),_:3},16))}}),B=o({__name:`AlertDialog`,props:{open:{type:Boolean},defaultOpen:{type:Boolean}},emits:[`update:open`],setup(t,{emit:n}){let r=b(t,n);return(t,n)=>(d(),u(c(R),e({"data-slot":`alert-dialog`},c(r)),{default:v(e=>[p(t.$slots,`default`,s(a(e)))]),_:3},16))}}),V=o({__name:`AlertDialogAction`,props:{asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]},variant:{default:`default`},size:{default:`default`}},setup(t){let n=t,r=f(n,`class`,`variant`,`size`);return(i,a)=>(d(),u(c(A),e({"data-slot":`alert-dialog-action`},c(r),{class:c(g)(``,c(_)({variant:t.variant,size:t.size}),n.class)}),{default:v(()=>[p(i.$slots,`default`)]),_:3},16,[`class`]))}}),H=o({__name:`AlertDialogCancel`,props:{asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]},variant:{default:`outline`},size:{default:`default`}},setup(t){let n=t,r=f(n,`class`,`variant`,`size`);return(i,a)=>(d(),u(c(P),e({"data-slot":`alert-dialog-cancel`},c(r),{class:c(g)(``,c(_)({variant:t.variant,size:t.size}),n.class)}),{default:v(()=>[p(i.$slots,`default`)]),_:3},16,[`class`]))}}),U=o({inheritAttrs:!1,__name:`AlertDialogContent`,props:{forceMount:{type:Boolean},disableOutsidePointerEvents:{type:Boolean},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]},size:{default:`default`}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(t,{emit:r}){let i=t,a=r,o=b(f(i,`class`,`size`),a);return(r,a)=>(d(),u(c(L),null,{default:v(()=>[n(c(I),{"data-slot":`alert-dialog-overlay`,class:`data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 bg-overlay-light duration-fast supports-backdrop-filter:backdrop-blur-xs fixed inset-0 z-modal`}),n(c(N),e({"data-slot":`alert-dialog-content`,"data-size":t.size},{...r.$attrs,...c(o)},{class:c(g)(`data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 bg-popover text-popover-foreground ring-foreground/10 gap-4 rounded-xl p-4 ring-1 duration-fast data-[size=default]:max-w-xs data-[size=sm]:max-w-xs data-[size=default]:sm:max-w-sm group/alert-dialog-content fixed top-1/2 left-1/2 z-modal grid w-full -translate-x-1/2 -translate-y-1/2 outline-none`,i.class)}),{default:v(()=>[p(r.$slots,`default`)]),_:3},16,[`data-size`,`class`])]),_:3}))}}),W=o({__name:`AlertDialogDescription`,props:{asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(t){let n=t,r=f(n,`class`);return(t,i)=>(d(),u(c(F),e({"data-slot":`alert-dialog-description`},c(r),{class:c(g)(`text-muted-foreground *:[a]:hover:text-foreground text-sm text-balance md:text-pretty *:[a]:underline *:[a]:underline-offset-3`,n.class)}),{default:v(()=>[p(t.$slots,`default`)]),_:3},16,[`class`]))}}),G=o({__name:`AlertDialogFooter`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(e){let t=e;return(e,n)=>(d(),l(`div`,{"data-slot":`alert-dialog-footer`,class:i(c(g)(`bg-muted/50 -mx-4 -mb-4 rounded-b-xl border-t p-4 flex flex-col-reverse gap-2 group-data-[size=sm]/alert-dialog-content:grid group-data-[size=sm]/alert-dialog-content:grid-cols-2 sm:flex-row sm:justify-end`,t.class))},[p(e.$slots,`default`)],2))}}),K=o({__name:`AlertDialogHeader`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(e){let t=e;return(e,n)=>(d(),l(`div`,{"data-slot":`alert-dialog-header`,class:i(c(g)(`grid grid-rows-[auto_1fr] place-items-center gap-1.5 text-center has-data-[slot=alert-dialog-media]:grid-rows-[auto_auto_1fr] has-data-[slot=alert-dialog-media]:gap-x-4 sm:group-data-[size=default]/alert-dialog-content:place-items-start sm:group-data-[size=default]/alert-dialog-content:text-left sm:group-data-[size=default]/alert-dialog-content:has-data-[slot=alert-dialog-media]:grid-rows-[auto_1fr]`,t.class))},[p(e.$slots,`default`)],2))}}),q=o({__name:`AlertDialogTitle`,props:{asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(t){let n=t,r=f(n,`class`);return(t,i)=>(d(),u(c(z),e({"data-slot":`alert-dialog-title`},c(r),{class:c(g)(`text-base font-medium sm:group-data-[size=default]/alert-dialog-content:group-has-data-[slot=alert-dialog-media]/alert-dialog-content:col-start-2 cn-font-heading`,n.class)}),{default:v(()=>[p(t.$slots,`default`)]),_:3},16,[`class`]))}});export{U as a,B as c,W as i,K as n,H as o,G as r,V as s,q as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$ as e,D as t,
|
|
1
|
+
import{$ as e,D as t,K as n,Pt as r,V as i,at as a,b as o,ct as s,i as c,r as l,vt as u}from"./button-BKJB3nEQ.js";var d=n({__name:`Badge`,props:{asChild:{type:Boolean},as:{},variant:{},class:{type:[Boolean,null,String,Object,Array]}},setup(t){let n=t,d=o(n,`class`);return(o,p)=>(a(),i(r(c),e({"data-slot":`badge`,"data-variant":t.variant,class:r(l)(r(f)({variant:t.variant}),n.class)},r(d)),{default:u(()=>[s(o.$slots,`default`)]),_:3},16,[`data-variant`,`class`]))}}),f=t(`h-5 gap-1 rounded-4xl border border-transparent px-2 py-0.5 text-xs font-medium transition-all has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&>svg]:size-3! group/badge inline-flex w-fit shrink-0 items-center justify-center overflow-hidden whitespace-nowrap focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none`,{variants:{variant:{default:`bg-primary text-primary-foreground [a]:hover:bg-primary/80`,secondary:`bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80`,destructive:`bg-destructive/10 [a]:hover:bg-destructive/20 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 text-destructive dark:bg-destructive/20`,outline:`border-border text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground`,ghost:`hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50`,link:`text-primary underline-offset-4 hover:underline`}},defaultVariants:{variant:`default`}});export{d as t};
|