llm-simple-router 0.8.2 → 0.9.0

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.
Files changed (120) hide show
  1. package/config/recommended-providers.json +33 -9
  2. package/config/recommended-retry-rules.json +9 -8
  3. package/dist/admin/providers.js +11 -9
  4. package/dist/admin/quick-setup.d.ts +13 -0
  5. package/dist/admin/quick-setup.js +169 -0
  6. package/dist/admin/recommended.js +5 -1
  7. package/dist/admin/routes.js +2 -0
  8. package/dist/config/model-context.d.ts +8 -2
  9. package/dist/config/model-context.js +17 -5
  10. package/dist/config/recommended.d.ts +1 -0
  11. package/dist/config/recommended.js +5 -9
  12. package/dist/proxy/handler/proxy-handler.js +8 -2
  13. package/dist/proxy/patch/index.d.ts +3 -0
  14. package/dist/proxy/patch/index.js +28 -0
  15. package/frontend-dist/assets/CardContent-F3K9pZNP.js +1 -0
  16. package/frontend-dist/assets/CardTitle-13anASyk.js +1 -0
  17. package/frontend-dist/assets/CascadingModelSelect-BmW89GUP.js +1 -0
  18. package/frontend-dist/assets/Checkbox-C2oSHNgP.js +1 -0
  19. package/frontend-dist/assets/CollapsibleContent-CdeCo0Ko.js +1 -0
  20. package/frontend-dist/assets/CollapsibleTrigger-CMd4wTNY.js +1 -0
  21. package/frontend-dist/assets/Collection-BulopTxo.js +1 -0
  22. package/frontend-dist/assets/Dashboard-BahJSTKV.js +3 -0
  23. package/frontend-dist/assets/DialogTitle-CnqbO2hx.js +1 -0
  24. package/frontend-dist/assets/{Input-CAnKUBBK.js → Input-RyuwzbNx.js} +1 -1
  25. package/frontend-dist/assets/Label-73u_Os4X.js +1 -0
  26. package/frontend-dist/assets/Login-CoQSrVLo.js +1 -0
  27. package/frontend-dist/assets/Logs-C2b6MPXL.js +1 -0
  28. package/frontend-dist/assets/MappingList-m2ebUmJ9.js +1 -0
  29. package/frontend-dist/assets/ModelCard-B0pjEq6W.js +1 -0
  30. package/frontend-dist/assets/ModelMappings-BazKS9T4.js +1 -0
  31. package/frontend-dist/assets/Monitor-8B_tm1NO.js +1 -0
  32. package/frontend-dist/assets/{PopoverTrigger-Bj65uUbv.js → PopoverTrigger-DSmA2dE4.js} +1 -1
  33. package/frontend-dist/assets/{PopperContent-gzzf1XHe.js → PopperContent-Bd_mpt_D.js} +1 -1
  34. package/frontend-dist/assets/Providers-TI83sF2T.js +1 -0
  35. package/frontend-dist/assets/ProxyEnhancement-CWLh-YlM.js +5 -0
  36. package/frontend-dist/assets/QuickSetup-DUZNdIvp.js +1 -0
  37. package/frontend-dist/assets/RetryRules-CzhCNQ0R.js +1 -0
  38. package/frontend-dist/assets/RouterKeys-B_C-Wp_I.js +1 -0
  39. package/frontend-dist/assets/RovingFocusItem-DwGTruuB.js +1 -0
  40. package/frontend-dist/assets/Schedules-BMB6RX9e.js +1 -0
  41. package/frontend-dist/assets/SelectValue-DRc1qira.js +1 -0
  42. package/frontend-dist/assets/Settings-Ck8CoUJC.js +6 -0
  43. package/frontend-dist/assets/Setup-dwKkHGrB.js +1 -0
  44. package/frontend-dist/assets/Switch-BE8DAylK.js +1 -0
  45. package/frontend-dist/assets/TableHeader-BqYT-eO-.js +1 -0
  46. package/frontend-dist/assets/Teleport-CLw1Jxrb.js +3 -0
  47. package/frontend-dist/assets/TooltipTrigger-bqCyq9MU.js +1 -0
  48. package/frontend-dist/assets/UnifiedRequestDialog-BDNR1wzi.js +3 -0
  49. package/frontend-dist/assets/UnifiedRequestDialog-DmpjVK9n.css +1 -0
  50. package/frontend-dist/assets/VisuallyHidden-BpDuyh8-.js +1 -0
  51. package/frontend-dist/assets/VisuallyHiddenInput-CCL5ykZW.js +1 -0
  52. package/frontend-dist/assets/alert-dialog-gprnWn1b.js +1 -0
  53. package/frontend-dist/assets/badge-CpT5q-jI.js +1 -0
  54. package/frontend-dist/assets/{button-Ul8WlrM5.js → button-zud8Qspb.js} +7 -7
  55. package/frontend-dist/assets/check-CRv7NpkT.js +1 -0
  56. package/frontend-dist/assets/constants-ncbNnOLM.js +1 -0
  57. package/frontend-dist/assets/copy-CIHn6HDL.js +1 -0
  58. package/frontend-dist/assets/dialog-Da8YFS7g.js +1 -0
  59. package/frontend-dist/assets/file-text-LfP0_JRK.js +1 -0
  60. package/frontend-dist/assets/index-BfXK7SYr.js +1 -0
  61. package/frontend-dist/assets/index-CDtb1WVq.css +1 -0
  62. package/frontend-dist/assets/lib-xfvPneK8.js +1 -0
  63. package/frontend-dist/assets/loader-circle-D8BaqxEc.js +1 -0
  64. package/frontend-dist/assets/sun-n4cC12ho.js +1 -0
  65. package/frontend-dist/assets/trash-2-oDWBOuqK.js +1 -0
  66. package/frontend-dist/assets/{useClipboard-BmmsNSGV.js → useClipboard-C2i7YvJ-.js} +1 -1
  67. package/frontend-dist/assets/{useFocusGuards-A-9V2Y-b.js → useFocusGuards-DORIgNd9.js} +1 -1
  68. package/frontend-dist/assets/useFormControl-OyxyVR_M.js +1 -0
  69. package/frontend-dist/assets/{useLogRetention-BfnBFZ5K.js → useLogRetention-DE7zYGFK.js} +1 -1
  70. package/frontend-dist/assets/useNonce-D_84NiFG.js +1 -0
  71. package/frontend-dist/assets/useTheme-BFhy-DAX.js +1 -0
  72. package/frontend-dist/assets/x-BN5AHIVk.js +1 -0
  73. package/frontend-dist/index.html +22 -20
  74. package/package.json +1 -1
  75. package/frontend-dist/assets/CardContent-BVMQ2_pg.js +0 -1
  76. package/frontend-dist/assets/CardTitle-GLv7QyIY.js +0 -1
  77. package/frontend-dist/assets/CascadingModelSelect-CBhqKFDX.js +0 -1
  78. package/frontend-dist/assets/Checkbox-HPVDmEdV.js +0 -1
  79. package/frontend-dist/assets/CollapsibleTrigger-DhxD9tpM.js +0 -1
  80. package/frontend-dist/assets/Collection-BRt7YxN8.js +0 -1
  81. package/frontend-dist/assets/Dashboard-D1Ys8Zog.js +0 -3
  82. package/frontend-dist/assets/DialogTitle-23q73lwF.js +0 -1
  83. package/frontend-dist/assets/Label-DWdYtVMI.js +0 -1
  84. package/frontend-dist/assets/Login-w5WFOinP.js +0 -1
  85. package/frontend-dist/assets/Logs-C1F1ZmWF.js +0 -1
  86. package/frontend-dist/assets/ModelMappings-BzmecWEH.js +0 -1
  87. package/frontend-dist/assets/Monitor-DrAZFTKR.js +0 -1
  88. package/frontend-dist/assets/Providers-DSgf4mb6.js +0 -1
  89. package/frontend-dist/assets/ProxyEnhancement-Bb1cCP6d.js +0 -5
  90. package/frontend-dist/assets/RetryRules-BwPfEZtm.js +0 -1
  91. package/frontend-dist/assets/RouterKeys-CzTSq1Mx.js +0 -1
  92. package/frontend-dist/assets/RovingFocusItem-CXM_Yfkm.js +0 -1
  93. package/frontend-dist/assets/Schedules-DVilCXrC.js +0 -1
  94. package/frontend-dist/assets/SelectValue-C0-LzGQY.js +0 -1
  95. package/frontend-dist/assets/Settings-Bpk53zVX.js +0 -6
  96. package/frontend-dist/assets/Setup-Dn7EgC49.js +0 -1
  97. package/frontend-dist/assets/Switch-BO8Ooae6.js +0 -1
  98. package/frontend-dist/assets/TableHeader-Bded9VTC.js +0 -1
  99. package/frontend-dist/assets/TabsTrigger-BzKMi9AF.js +0 -1
  100. package/frontend-dist/assets/Teleport-DizRK5O3.js +0 -3
  101. package/frontend-dist/assets/TooltipTrigger-EiIy2zn8.js +0 -1
  102. package/frontend-dist/assets/UnifiedRequestDialog-BABsTaGb.js +0 -3
  103. package/frontend-dist/assets/UnifiedRequestDialog-BjEigSaR.css +0 -1
  104. package/frontend-dist/assets/VisuallyHidden-5AozJQza.js +0 -1
  105. package/frontend-dist/assets/VisuallyHiddenInput-DdiZrV2i.js +0 -1
  106. package/frontend-dist/assets/alert-dialog-DlKUuTPe.js +0 -1
  107. package/frontend-dist/assets/arrow-down-CxWKmZ2I.js +0 -1
  108. package/frontend-dist/assets/badge-9KJEMa53.js +0 -1
  109. package/frontend-dist/assets/check-7ahK--N4.js +0 -1
  110. package/frontend-dist/assets/constants-D_0jiLjw.js +0 -1
  111. package/frontend-dist/assets/copy-DzU2pAMG.js +0 -1
  112. package/frontend-dist/assets/dialog-B9j-FMrd.js +0 -1
  113. package/frontend-dist/assets/file-text-Bj3ZIo-E.js +0 -1
  114. package/frontend-dist/assets/index-Bz_ZaXNn.css +0 -1
  115. package/frontend-dist/assets/index-MedWZMHB.js +0 -1
  116. package/frontend-dist/assets/lib-Hhs3NqfD.js +0 -1
  117. package/frontend-dist/assets/loader-circle-5TJUukEe.js +0 -1
  118. package/frontend-dist/assets/useFormControl-DEO19lRe.js +0 -1
  119. package/frontend-dist/assets/useNonce-BfwUJ1Ci.js +0 -1
  120. package/frontend-dist/assets/x-Cfopt3QL.js +0 -1
@@ -0,0 +1 @@
1
+ import{Ft as e,H as t,J as n,Nt as r,Ot as i,W as a,Y as o,at as s,bt as c,i as l,m as u,ot as d,rt as f,st as p,ut as m}from"./button-zud8Qspb.js";import{c as h,v as g,y as _}from"./Teleport-CLw1Jxrb.js";import{n as v,t as y}from"./Collection-BulopTxo.js";var b=`rovingFocusGroup.onEntryFocus`,x={bubbles:!1,cancelable:!0},S={ArrowLeft:`prev`,ArrowUp:`prev`,ArrowRight:`next`,ArrowDown:`next`,PageUp:`first`,Home:`first`,PageDown:`last`,End:`last`};function C(e,t){return t===`rtl`?e===`ArrowLeft`?`ArrowRight`:e===`ArrowRight`?`ArrowLeft`:e:e}function w(e,t,n){let r=C(e.key,n);if(!(t===`vertical`&&[`ArrowLeft`,`ArrowRight`].includes(r))&&!(t===`horizontal`&&[`ArrowUp`,`ArrowDown`].includes(r)))return S[r]}function T(e,t=!1){let n=g();for(let r of e)if(r===n||(r.focus({preventScroll:t}),g()!==n))return}function E(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var[D,O]=_(`RovingFocusGroup`),k=o({__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(t,{expose:o,emit:s}){let d=t,f=s,{loop:h,orientation:g,dir:_}=r(d),S=v(_),C=u(d,`currentTabStopId`,f,{defaultValue:d.defaultCurrentTabStopId,passive:d.currentTabStopId===void 0}),w=i(!1),E=i(!1),D=i(0),{getItems:k,CollectionSlot:A}=y({isProvider:!0});function j(e){let t=!E.value;if(e.currentTarget&&e.target===e.currentTarget&&t&&!w.value){let t=new CustomEvent(b,x);if(e.currentTarget.dispatchEvent(t),f(`entryFocus`,t),!t.defaultPrevented){let e=k().map(e=>e.ref).filter(e=>e.dataset.disabled!==``);T([e.find(e=>e.getAttribute(`data-active`)===``),e.find(e=>e.getAttribute(`data-highlighted`)===``),e.find(e=>e.id===C.value),...e].filter(Boolean),d.preventScrollOnEntryFocus)}}E.value=!1}function M(){setTimeout(()=>{E.value=!1},1)}return o({getItems:k}),O({loop:h,dir:S,orientation:g,currentTabStopId:C,onItemFocus:e=>{C.value=e},onItemShiftTab:()=>{w.value=!0},onFocusableItemAdd:()=>{D.value++},onFocusableItemRemove:()=>{D.value--}}),(t,r)=>(p(),a(e(A),null,{default:c(()=>[n(e(l),{tabindex:w.value||D.value===0?-1:0,"data-orientation":e(g),as:t.as,"as-child":t.asChild,dir:e(S),style:{outline:`none`},onMousedown:r[0]||=e=>E.value=!0,onMouseup:M,onFocus:j,onBlur:r[1]||=e=>w.value=!1},{default:c(()=>[m(t.$slots,`default`)]),_:3},8,[`tabindex`,`data-orientation`,`as`,`as-child`,`dir`])]),_:3}))}}),A=o({__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(r){let i=r,o=D(),u=h(),g=t(()=>i.tabStopId||u),_=t(()=>o.currentTabStopId.value===g.value),{getItems:v,CollectionItem:b}=y();s(()=>{i.focusable&&o.onFocusableItemAdd()}),d(()=>{i.focusable&&o.onFocusableItemRemove()});function x(e){if(e.key===`Tab`&&e.shiftKey){o.onItemShiftTab();return}if(e.target!==e.currentTarget)return;let t=w(e,o.orientation.value,o.dir.value);if(t!==void 0){if(e.metaKey||e.ctrlKey||e.altKey||!i.allowShiftKey&&e.shiftKey)return;e.preventDefault();let n=[...v().map(e=>e.ref).filter(e=>e.dataset.disabled!==``)];if(t===`last`)n.reverse();else if(t===`prev`||t===`next`){t===`prev`&&n.reverse();let r=n.indexOf(e.currentTarget);n=o.loop.value?E(n,r+1):n.slice(r+1)}f(()=>T(n))}}return(t,r)=>(p(),a(e(b),null,{default:c(()=>[n(e(l),{tabindex:_.value?0:-1,"data-orientation":e(o).orientation.value,"data-active":t.active?``:void 0,"data-disabled":t.focusable?void 0:``,as:t.as,"as-child":t.asChild,onMousedown:r[0]||=n=>{t.focusable?e(o).onItemFocus(g.value):n.preventDefault()},onFocus:r[1]||=t=>e(o).onItemFocus(g.value),onKeydown:x},{default:c(()=>[m(t.$slots,`default`)]),_:3},8,[`tabindex`,`data-orientation`,`data-active`,`data-disabled`,`as`,`as-child`])]),_:3}))}});export{k as n,A as t};
@@ -0,0 +1 @@
1
+ import{A as e,B as t,Bt as n,Ft as r,G as i,H as a,J as o,K as s,Lt as c,Ot as l,U as u,W as d,Y as ee,at as f,bt as p,k as m,lt as h,n as g,q as _,st as v,z as y}from"./button-zud8Qspb.js";import{a as b}from"./PopperContent-Bd_mpt_D.js";import{n as x,t as te}from"./CascadingModelSelect-BmW89GUP.js";import{a as S,i as C,n as w,r as T,t as E}from"./SelectValue-DRc1qira.js";import{t as D}from"./trash-2-oDWBOuqK.js";import{n as ne,t as re}from"./CollapsibleContent-CdeCo0Ko.js";import{t as ie}from"./CollapsibleTrigger-CMd4wTNY.js";import{a as ae,n as oe,o as se,r as ce,t as le}from"./dialog-Da8YFS7g.js";import{a as ue,c as de,i as fe,n as pe,o as me,r as he,t as ge}from"./alert-dialog-gprnWn1b.js";import{t as O}from"./Label-73u_Os4X.js";import{t as _e}from"./Switch-BE8DAylK.js";import{t as k}from"./badge-CpT5q-jI.js";import{n as A}from"./lib-xfvPneK8.js";import{t as j}from"./Input-RyuwzbNx.js";import{a as M,i as N,n as P,o as F,r as I,t as ve}from"./TableHeader-BqYT-eO-.js";import"./constants-ncbNnOLM.js";var ye={class:`p-6`},be={key:0,class:`flex items-center justify-center py-16 text-muted-foreground text-sm`},xe={class:`mb-4`},Se={class:`flex items-center justify-between mb-3`},Ce={class:`bg-card rounded-lg border overflow-hidden`},we={class:`flex flex-wrap gap-1`},Te={class:`flex items-center justify-end gap-1`},Ee={key:1,class:`text-center text-muted-foreground py-12 bg-card rounded-xl border`},De={key:0,class:`bg-destructive/10 border border-destructive/30 rounded-md px-3 py-2 text-sm text-destructive`},Oe={key:0,class:`text-sm text-destructive mt-1`},ke={class:`flex flex-wrap gap-2`},Ae={key:0,class:`text-sm text-destructive mt-1`},je={class:`grid grid-cols-2 gap-4`},Me={key:1,class:`text-sm text-destructive`},Ne={class:`space-y-2`},Pe={class:`flex-1`},Fe={key:0,class:`text-sm text-destructive mt-1`},Ie={class:`grid grid-cols-3 gap-3`},L=ee({__name:`Schedules`,setup(ee){let L=[`周日`,`周一`,`周二`,`周三`,`周四`,`周五`,`周六`],R=()=>({name:``,week:[1,2,3,4,5],start_hour:0,end_hour:24,targets:[{backend_model:``,provider_id:``}],max_concurrency:void 0,queue_timeout_ms:void 0,max_queue_size:void 0}),z=l(!1),B=l([]),V=l([]),H=l([]),U=l(``),W=l(!1),G=l(null),K=l(null),q=l(R()),J=l(!1),Y=l({}),X=l(``);function Le(e){let t=[];try{t=JSON.parse(e)}catch(e){return console.warn(`Failed to parse week JSON:`,e),[]}return t.map(e=>L[e]??String(e))}function Z(e){return String(e).padStart(2,`0`)+`:00`}async function Re(){try{B.value=await m.getMappingGroups()}catch(t){A.error(e(t,`加载映射组失败`))}}async function ze(){try{V.value=await m.getProviders()}catch(t){A.error(e(t,`加载供应商失败`))}}let Be=a(()=>V.value.map(e=>({provider:{id:e.id,name:e.name},models:(e.models??[]).map(e=>({name:e.name,contextWindow:e.context_window??2e5}))})));async function Q(){if(!U.value){H.value=[];return}try{H.value=await m.getSchedulesByGroup(U.value)}catch(t){A.error(e(t,`加载调度失败`))}}function Ve(){Q()}function $(e){let t=q.value.week.indexOf(e);t>=0?q.value.week.splice(t,1):q.value.week.push(e),delete Y.value.week}function He(){q.value.targets.push({backend_model:``,provider_id:``})}function Ue(e){q.value.targets.splice(e,1)}function We(){G.value=null,q.value=R(),J.value=!1,Y.value={},X.value=``,W.value=!0}function Ge(e){G.value=e.id,Y.value={},X.value=``;let t=[{backend_model:``,provider_id:``}];try{let n=JSON.parse(e.mapping_rule);n.targets?.length&&(t=n.targets)}catch(e){console.warn(`Failed to parse mapping_rule JSON:`,e)}let n=[1,2,3,4,5];try{n=JSON.parse(e.week)}catch(e){console.warn(`Failed to parse week JSON:`,e)}let r,i,a;if(e.concurrency_rule)try{let t=JSON.parse(e.concurrency_rule);r=t.max_concurrency,i=t.queue_timeout_ms,a=t.max_queue_size}catch(e){console.warn(`Failed to parse concurrency_rule JSON:`,e)}q.value={name:e.name,week:n,start_hour:e.start_hour,end_hour:e.end_hour,targets:t,max_concurrency:r,queue_timeout_ms:i,max_queue_size:a},J.value=!!e.concurrency_rule,W.value=!0}function Ke(){let e={};q.value.name.trim()||(e.name=`请输入名称`),q.value.week.length===0&&(e.week=`至少选择一天`),q.value.start_hour>=q.value.end_hour&&(e.time=`开始时间必须小于结束时间`);let t=``;for(let e=0;e<q.value.targets.length;e++){let n=q.value.targets[e];if(!n.provider_id||!n.backend_model){t=`每个目标必须选择模型`;break}}return t&&(e.targets=t),Y.value=e,Object.keys(e).length===0}async function qe(){if(X.value=``,Ke())try{let e=JSON.stringify({targets:q.value.targets}),t=q.value.max_concurrency||q.value.queue_timeout_ms||q.value.max_queue_size?JSON.stringify({...q.value.max_concurrency?{max_concurrency:q.value.max_concurrency}:{},...q.value.queue_timeout_ms?{queue_timeout_ms:q.value.queue_timeout_ms}:{},...q.value.max_queue_size?{max_queue_size:q.value.max_queue_size}:{}}):null,n={mapping_group_id:U.value,name:q.value.name,week:JSON.stringify(q.value.week),start_hour:q.value.start_hour,end_hour:q.value.end_hour,mapping_rule:e,concurrency_rule:t};G.value?await m.updateSchedule(G.value,n):await m.createSchedule(n),W.value=!1,await Q()}catch(t){X.value=e(t,`保存调度失败`)}}async function Je(t){try{await m.toggleSchedule(t.id),await Q()}catch(t){A.error(e(t,`切换状态失败`))}}async function Ye(){let t=K.value;if(t){K.value=null;try{await m.deleteSchedule(t.id),await Q()}catch(t){A.error(e(t,`删除调度失败`))}}}return f(async()=>{z.value=!0,await Promise.allSettled([Re(),ze()]),B.value.length>0&&(U.value=B.value[0].id,await Q()),z.value=!1}),(e,a)=>(v(),s(`div`,ye,[a[40]||=u(`div`,{class:`flex items-center justify-between mb-4`},[u(`div`,null,[u(`h2`,{class:`text-lg font-semibold text-foreground`},`调度管理`),u(`p`,{class:`text-sm text-muted-foreground mt-1`},` 为映射组配置分时段调度规则,在不同时间段使用不同的模型和并发配置 `)])],-1),z.value?(v(),s(`div`,be,` Loading... `)):i(``,!0),z.value?i(``,!0):(v(),s(t,{key:1},[u(`div`,xe,[o(r(O),{class:`block text-sm font-medium text-foreground mb-2`},{default:p(()=>[...a[14]||=[_(`选择映射组`,-1)]]),_:1}),o(r(S),{modelValue:U.value,"onUpdate:modelValue":[a[0]||=e=>U.value=e,Ve]},{default:p(()=>[o(r(w),{class:`w-80`},{default:p(()=>[o(r(E),{placeholder:`请选择映射组`})]),_:1}),o(r(C),null,{default:p(()=>[(v(!0),s(t,null,h(B.value,e=>(v(),d(r(T),{key:e.id,value:e.id},{default:p(()=>[_(n(e.client_model),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`])]),U.value?(v(),s(t,{key:0},[u(`div`,Se,[a[16]||=u(`h3`,{class:`text-sm font-medium text-foreground`},`调度规则`,-1),o(r(g),{size:`sm`,onClick:We},{default:p(()=>[o(r(x),{class:`w-4 h-4 mr-1`}),a[15]||=_(` 新建调度 `,-1)]),_:1})]),u(`div`,Ce,[o(r(F),null,{default:p(()=>[o(r(ve),null,{default:p(()=>[o(r(I),{class:`bg-muted`},{default:p(()=>[o(r(P),{class:`text-muted-foreground`},{default:p(()=>[...a[17]||=[_(`名称`,-1)]]),_:1}),o(r(P),{class:`text-muted-foreground`},{default:p(()=>[...a[18]||=[_(`状态`,-1)]]),_:1}),o(r(P),{class:`text-muted-foreground`},{default:p(()=>[...a[19]||=[_(`星期`,-1)]]),_:1}),o(r(P),{class:`text-muted-foreground`},{default:p(()=>[...a[20]||=[_(`时间段`,-1)]]),_:1}),o(r(P),{class:`text-right text-muted-foreground`},{default:p(()=>[...a[21]||=[_(`操作`,-1)]]),_:1})]),_:1})]),_:1}),o(r(M),null,{default:p(()=>[(v(!0),s(t,null,h(H.value,e=>(v(),d(r(I),{key:e.id},{default:p(()=>[o(r(N),{class:`font-medium`},{default:p(()=>[_(n(e.name),1)]),_:2},1024),o(r(N),null,{default:p(()=>[o(r(k),{variant:e.enabled?`default`:`secondary`},{default:p(()=>[_(n(e.enabled?`启用`:`禁用`),1)]),_:2},1032,[`variant`])]),_:2},1024),o(r(N),null,{default:p(()=>[u(`div`,we,[(v(!0),s(t,null,h(Le(e.week),e=>(v(),d(r(k),{key:e,variant:`outline`,class:`text-xs`},{default:p(()=>[_(n(e),1)]),_:2},1024))),128))])]),_:2},1024),o(r(N),{class:`font-mono text-sm`},{default:p(()=>[_(n(Z(e.start_hour))+`-`+n(Z(e.end_hour)),1)]),_:2},1024),o(r(N),{class:`text-right`},{default:p(()=>[u(`div`,Te,[o(r(g),{variant:`ghost`,size:`sm`,onClick:t=>Je(e)},{default:p(()=>[o(r(_e),{checked:!!e.enabled,size:`sm`},null,8,[`checked`])]),_:2},1032,[`onClick`]),o(r(g),{variant:`ghost`,size:`sm`,onClick:t=>Ge(e)},{default:p(()=>[...a[22]||=[_(`编辑`,-1)]]),_:1},8,[`onClick`]),o(r(g),{variant:`ghost`,size:`sm`,class:`text-destructive hover:text-destructive`,onClick:t=>K.value=e},{default:p(()=>[...a[23]||=[_(`删除`,-1)]]),_:1},8,[`onClick`])])]),_:2},1024)]),_:2},1024))),128)),H.value.length===0?(v(),d(r(I),{key:0},{default:p(()=>[o(r(N),{colspan:`5`,class:`text-center text-muted-foreground py-8`},{default:p(()=>[...a[24]||=[_(` 暂无调度规则,点击「新建调度」添加 `,-1)]]),_:1})]),_:1})):i(``,!0)]),_:1})]),_:1})])],64)):(v(),s(`div`,Ee,` 请先选择一个映射组 `)),o(r(se),{open:W.value,"onUpdate:open":a[12]||=e=>W.value=e},{default:p(()=>[o(r(ae),{class:`max-w-2xl max-h-[85vh] overflow-y-auto`},{default:p(()=>[o(r(oe),null,{default:p(()=>[o(r(le),null,{default:p(()=>[_(n(G.value?`编辑调度`:`新建调度`),1)]),_:1})]),_:1}),u(`form`,{onSubmit:y(qe,[`prevent`]),class:`space-y-4`},[X.value?(v(),s(`div`,De,n(X.value),1)):i(``,!0),u(`div`,null,[o(r(O),{class:`block text-sm font-medium text-foreground mb-1`},{default:p(()=>[...a[25]||=[_(`名称`,-1)]]),_:1}),o(r(j),{modelValue:q.value.name,"onUpdate:modelValue":a[1]||=e=>q.value.name=e,placeholder:`例如:工作日白天`,onInput:a[2]||=e=>delete Y.value.name},null,8,[`modelValue`]),Y.value.name?(v(),s(`p`,Oe,n(Y.value.name),1)):i(``,!0)]),u(`div`,null,[o(r(O),{class:`block text-sm font-medium text-foreground mb-1`},{default:p(()=>[...a[26]||=[_(`适用星期`,-1)]]),_:1}),u(`div`,ke,[(v(),s(t,null,h(L,(e,t)=>o(r(g),{key:t,type:`button`,variant:(q.value.week??[]).includes(t)?`default`:`outline`,size:`sm`,onClick:e=>$(t)},{default:p(()=>[_(n(e),1)]),_:2},1032,[`variant`,`onClick`])),64))]),Y.value.week?(v(),s(`p`,Ae,n(Y.value.week),1)):i(``,!0)]),u(`div`,je,[u(`div`,null,[o(r(O),{class:`text-sm font-medium text-foreground mb-1 block`},{default:p(()=>[...a[27]||=[_(`开始时间`,-1)]]),_:1}),o(r(S),{modelValue:q.value.start_hour,"onUpdate:modelValue":[a[3]||=e=>q.value.start_hour=e,a[4]||=e=>{q.value.start_hour=Number(e),delete Y.value.time}]},{default:p(()=>[o(r(w),null,{default:p(()=>[o(r(E),{placeholder:`选择小时`})]),_:1}),o(r(C),null,{default:p(()=>[(v(),s(t,null,h(24,e=>o(r(T),{key:e-1,value:e-1},{default:p(()=>[_(n(String(e-1).padStart(2,`0`))+`:00 `,1)]),_:2},1032,[`value`])),64))]),_:1})]),_:1},8,[`modelValue`])]),u(`div`,null,[o(r(O),{class:`text-sm font-medium text-foreground mb-1 block`},{default:p(()=>[...a[28]||=[_(`结束时间`,-1)]]),_:1}),o(r(S),{modelValue:q.value.end_hour,"onUpdate:modelValue":[a[5]||=e=>q.value.end_hour=e,a[6]||=e=>{q.value.end_hour=Number(e),delete Y.value.time}]},{default:p(()=>[o(r(w),null,{default:p(()=>[o(r(E),{placeholder:`选择小时`})]),_:1}),o(r(C),null,{default:p(()=>[(v(),s(t,null,h(24,e=>o(r(T),{key:e,value:e},{default:p(()=>[_(n(String(e).padStart(2,`0`))+`:00 `,1)]),_:2},1032,[`value`])),64))]),_:1})]),_:1},8,[`modelValue`])])]),Y.value.time?(v(),s(`p`,Me,n(Y.value.time),1)):i(``,!0),u(`div`,null,[o(r(O),{class:`block text-sm font-medium text-foreground mb-1`},{default:p(()=>[...a[29]||=[_(`映射目标`,-1)]]),_:1}),u(`div`,Ne,[(v(!0),s(t,null,h(q.value.targets,(e,t)=>(v(),s(`div`,{key:t,class:`flex items-center gap-2`},[u(`div`,Pe,[o(te,{providers:Be.value,"model-value":e.provider_id&&e.backend_model?{provider_id:e.provider_id,model:e.backend_model}:void 0,placeholder:`选择模型...`,"onUpdate:modelValue":t=>{e.provider_id=t.provider_id,e.backend_model=t.model,delete Y.value.targets}},null,8,[`providers`,`model-value`,`onUpdate:modelValue`])]),o(r(g),{type:`button`,variant:`ghost`,size:`sm`,disabled:q.value.targets.length<=1,onClick:e=>Ue(t)},{default:p(()=>[o(r(D),{class:`w-4 h-4`})]),_:1},8,[`disabled`,`onClick`])]))),128)),o(r(g),{type:`button`,variant:`outline`,size:`sm`,onClick:He},{default:p(()=>[o(r(x),{class:`w-3 h-3 mr-1`}),a[30]||=_(` 添加目标 `,-1)]),_:1})]),Y.value.targets?(v(),s(`p`,Fe,n(Y.value.targets),1)):i(``,!0)]),o(r(ne),{open:J.value,"onUpdate:open":a[10]||=e=>J.value=e},{default:p(()=>[o(r(ie),{"as-child":``},{default:p(()=>[o(r(g),{type:`button`,variant:`ghost`,class:`w-full justify-between px-0`},{default:p(()=>[a[31]||=u(`span`,{class:`text-sm font-medium`},`并发配置(可选)`,-1),o(r(b),{class:c([`h-4 w-4 transition-transform`,{"rotate-180":J.value}])},null,8,[`class`])]),_:1})]),_:1}),o(r(re),{class:`space-y-3 pt-2`},{default:p(()=>[u(`div`,Ie,[u(`div`,null,[o(r(O),{class:`text-xs text-muted-foreground`},{default:p(()=>[...a[32]||=[_(`最大并发`,-1)]]),_:1}),o(r(j),{modelValue:q.value.max_concurrency,"onUpdate:modelValue":a[7]||=e=>q.value.max_concurrency=e,modelModifiers:{number:!0},type:`number`,min:1,placeholder:`不限`},null,8,[`modelValue`])]),u(`div`,null,[o(r(O),{class:`text-xs text-muted-foreground`},{default:p(()=>[...a[33]||=[_(`队列超时 (ms)`,-1)]]),_:1}),o(r(j),{modelValue:q.value.queue_timeout_ms,"onUpdate:modelValue":a[8]||=e=>q.value.queue_timeout_ms=e,modelModifiers:{number:!0},type:`number`,min:1e3,placeholder:`默认`},null,8,[`modelValue`])]),u(`div`,null,[o(r(O),{class:`text-xs text-muted-foreground`},{default:p(()=>[...a[34]||=[_(`最大队列`,-1)]]),_:1}),o(r(j),{modelValue:q.value.max_queue_size,"onUpdate:modelValue":a[9]||=e=>q.value.max_queue_size=e,modelModifiers:{number:!0},type:`number`,min:0,placeholder:`默认`},null,8,[`modelValue`])])])]),_:1})]),_:1},8,[`open`]),o(r(ce),null,{default:p(()=>[o(r(g),{type:`button`,variant:`outline`,onClick:a[11]||=e=>W.value=!1},{default:p(()=>[...a[35]||=[_(`取消`,-1)]]),_:1}),o(r(g),{type:`submit`},{default:p(()=>[...a[36]||=[_(`保存`,-1)]]),_:1})]),_:1})],32)]),_:1})]),_:1},8,[`open`]),o(r(de),{open:!!K.value,"onUpdate:open":a[13]||=e=>{e||(K.value=null)}},{default:p(()=>[o(r(ue),null,{default:p(()=>[o(r(pe),null,{default:p(()=>[o(r(ge),null,{default:p(()=>[...a[37]||=[_(`确认删除`,-1)]]),_:1}),o(r(fe),null,{default:p(()=>[_(` 确定要删除调度「`+n(K.value?.name)+`」吗?此操作不可撤销。 `,1)]),_:1})]),_:1}),o(r(he),null,{default:p(()=>[o(r(me),null,{default:p(()=>[...a[38]||=[_(`取消`,-1)]]),_:1}),o(r(g),{variant:`destructive`,onClick:Ye},{default:p(()=>[...a[39]||=[_(`删除`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`])],64))]))}});export{L as default};
@@ -0,0 +1 @@
1
+ import{B as e,Bt as t,Ft as n,G as r,H as i,J as a,K as o,Lt as s,M as c,Nt as l,Ot as u,Rt as d,S as f,U as p,V as m,W as h,Y as g,Z as _,_t as v,at as y,bt as b,ft as x,i as S,it as C,lt as w,m as T,nt as E,o as D,ot as O,p as k,q as A,r as j,rt as M,st as N,u as ee,ut as P,vt as F,x as I,z as L,zt as te}from"./button-zud8Qspb.js";import{t as ne}from"./check-CRv7NpkT.js";import{a as R,i as re,r as ie,t as ae}from"./PopperContent-Bd_mpt_D.js";import{t as oe}from"./ohash.D__AXeF1-D5e5Wyzx.js";import{n as z,t as se}from"./useNonce-D_84NiFG.js";import{_ as ce,a as le,c as B,d as V,g as H,i as ue,l as de,n as U,o as fe,p as pe,t as me,u as W,v as G,y as K}from"./Teleport-CLw1Jxrb.js";import{n as he,t as q}from"./Collection-BulopTxo.js";import{t as ge}from"./useFocusGuards-DORIgNd9.js";import{t as _e}from"./useFormControl-OyxyVR_M.js";import{t as ve}from"./VisuallyHidden-BpDuyh8-.js";var ye=c(`chevron-up`,[[`path`,{d:`m18 15-6-6-6 6`,key:`153udz`}]]);function J(e){let t=f(``,1e3);return{search:t,handleTypeaheadSearch:(n,r)=>{if(t.value+=n,e)e(n);else{let e=G(),n=r.map(e=>({...e,textValue:e.value?.textValue??e.ref.textContent?.trim()??``})),i=n.find(t=>t.ref===e),a=xe(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 be(e,t){return e.map((n,r)=>e[(t+r)%e.length])}function xe(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=be(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 Se=[` `,`Enter`,`ArrowUp`,`ArrowDown`],Ce=[` `,`Enter`];function Y(e,t,n){return e===void 0?!1:Array.isArray(e)?e.some(e=>X(e,t,n)):X(e,t,n)}function X(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]:oe(e,t)}function we(e){return e==null||e===``||Array.isArray(e)&&e.length===0}var Te={key:0,value:``},[Z,Ee]=K(`SelectRoot`),De=g({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:a}){let s=t,c=a,{required:d,disabled:f,multiple:p,dir:m}=l(s),g=T(s,`modelValue`,c,{defaultValue:s.defaultValue??(p.value?[]:void 0),passive:s.modelValue===void 0,deep:!0}),_=T(s,`open`,c,{defaultValue:s.defaultOpen,passive:s.open===void 0}),v=u(),y=u(),x=u({x:0,y:0}),S=i(()=>p.value&&Array.isArray(g.value)?g.value?.length===0:H(g.value));q({isProvider:!0});let C=he(m),D=_e(v),O=u(new Set),k=i(()=>Array.from(O.value).map(e=>e.value).join(`;`));function A(e){if(p.value){let t=Array.isArray(g.value)?[...g.value]:[],n=t.findIndex(t=>X(t,e,s.by));n===-1?t.push(e):t.splice(n,1),g.value=[...t]}else g.value=e}function j(e){return Array.from(O.value).find(t=>Y(e,t.value,s.by))}return Ee({triggerElement:v,onTriggerChange:e=>{v.value=e},valueElement:y,onValueElementChange:e=>{y.value=e},contentId:``,modelValue:g,onValueChange:A,by:s.by,open:_,multiple:p,required:d,onOpenChange:e=>{_.value=e},dir:C,triggerPointerDownPosRef:x,disabled:f,isEmptyModelValue:S,optionsSet:O,onOptionAdd:e=>{let t=j(e.value);t&&O.value.delete(t),O.value.add(e)},onOptionRemove:e=>{let t=j(e.value);t&&O.value.delete(t)}}),(t,i)=>(N(),h(n(re),null,{default:b(()=>[P(t.$slots,`default`,{modelValue:n(g),open:n(_)}),n(D)&&t.name?(N(),h(Oe,{key:k.value,"aria-hidden":`true`,tabindex:`-1`,multiple:n(p),required:n(d),name:t.name,autocomplete:t.autocomplete,disabled:n(f),value:n(g)},{default:b(()=>[n(H)(n(g))?(N(),o(`option`,Te)):r(`v-if`,!0),(N(!0),o(e,null,w(Array.from(O.value),e=>(N(),o(`option`,E({key:e.value??``},{ref_for:!0},e),null,16))),128))]),_:1},8,[`multiple`,`required`,`name`,`autocomplete`,`disabled`,`value`])):r(`v-if`,!0)]),_:3}))}}),Oe=g({__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(e){let t=e,r=u(),i=Z();v(()=>t.value,(e,t)=>{let n=window.HTMLSelectElement.prototype,i=Object.getOwnPropertyDescriptor(n,`value`).set;if(e!==t&&i&&r.value){let t=new Event(`change`,{bubbles:!0});i.call(r.value,e),r.value.dispatchEvent(t)}});function a(e){i.onValueChange(e.target.value)}return(e,i)=>(N(),h(n(ve),{"as-child":``},{default:b(()=>[p(`select`,E({ref_key:`selectElement`,ref:r},t,{onInput:a}),[P(e.$slots,`default`)],16)]),_:3}))}}),ke=g({__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(e){let t=V(e);return(e,r)=>(N(),h(n(ae),E(n(t),{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:b(()=>[P(e.$slots,`default`)]),_:3},16))}}),Ae={onViewportChange:()=>{},itemTextRefCallback:()=>{},itemRefCallback:()=>{}},[Q,je]=K(`SelectContent`),Me=g({__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(e,{emit:t}){let r=e,o=t,s=Z();ge(),pe(r.bodyLock);let{CollectionSlot:c,getItems:l}=q(),d=u();de(d);let{search:f,handleTypeaheadSearch:p}=J(),m=u(),g=u(),_=u(),y=u(!1),S=u(!1),C=u(!1);function w(){g.value&&d.value&&U([g.value,d.value])}v(y,()=>{w()});let{onOpenChange:T,triggerPointerDownPosRef:D}=s;F(e=>{if(!d.value)return;let t={x:0,y:0},n=e=>{t={x:Math.abs(Math.round(e.pageX)-(D.value?.x??0)),y:Math.abs(Math.round(e.pageY)-(D.value?.y??0))}},r=e=>{e.pointerType!==`touch`&&(t.x<=10&&t.y<=10?e.preventDefault():d.value?.contains(e.target)||T(!1),document.removeEventListener(`pointermove`,n),D.value=null)};D.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 O(e){let t=e.ctrlKey||e.altKey||e.metaKey;if(e.key===`Tab`&&e.preventDefault(),!t&&e.key.length===1&&p(e.key,l()),[`ArrowUp`,`ArrowDown`,`Home`,`End`].includes(e.key)){let t=[...l().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(()=>U(t)),e.preventDefault()}}let k=V(i(()=>r.position===`popper`?r:{}).value);return je({content:d,viewport:m,onViewportChange:e=>{m.value=e},itemRefCallback:(e,t,n)=>{let r=!S.value&&!n,i=Y(s.modelValue.value,t,s.by);if(s.multiple.value){if(C.value)return;(i||r)&&(g.value=e,i&&(C.value=!0))}else (i||r)&&(g.value=e);r&&(S.value=!0)},selectedItem:g,selectedItemText:_,onItemLeave:()=>{d.value?.focus()},itemTextRefCallback:(e,t,n)=>{let r=!S.value&&!n;(Y(s.modelValue.value,t,s.by)||r)&&(_.value=e)},focusSelectedItem:w,position:r.position,isPositioned:y,searchRef:f}),(e,t)=>(N(),h(n(c),null,{default:b(()=>[a(n(ue),{"as-child":``,onMountAutoFocus:t[6]||=L(()=>{},[`prevent`]),onUnmountAutoFocus:t[7]||=e=>{o(`closeAutoFocus`,e),!e.defaultPrevented&&(n(s).triggerElement.value?.focus({preventScroll:!0}),e.preventDefault())}},{default:b(()=>[a(n(le),{"as-child":``,"disable-outside-pointer-events":e.disableOutsidePointerEvents,onFocusOutside:t[2]||=L(()=>{},[`prevent`]),onDismiss:t[3]||=e=>n(s).onOpenChange(!1),onEscapeKeyDown:t[4]||=e=>o(`escapeKeyDown`,e),onPointerDownOutside:t[5]||=e=>o(`pointerDownOutside`,e)},{default:b(()=>[(N(),h(x(e.position===`popper`?ke:Pe),E({...e.$attrs,...n(k)},{id:n(s).contentId,ref:e=>{if(!e)return;let t=n(ee)(e);t?.hasAttribute(`data-reka-popper-content-wrapper`)?d.value=t.firstElementChild:d.value=t},role:`listbox`,"data-state":n(s).open.value?`open`:`closed`,dir:n(s).dir.value,style:{display:`flex`,flexDirection:`column`,outline:`none`},onContextmenu:t[0]||=L(()=>{},[`prevent`]),onPlaced:t[1]||=e=>y.value=!0,onKeydown:O}),{default:b(()=>[P(e.$slots,`default`)]),_:3},16,[`id`,`data-state`,`dir`,`onKeydown`]))]),_:3},8,[`disable-outside-pointer-events`])]),_:3})]),_:3}))}}),[$,Ne]=K(`SelectItemAlignedPosition`),Pe=g({inheritAttrs:!1,__name:`SelectItemAlignedPosition`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`placed`],setup(e,{emit:t}){let r=e,i=t,{getItems:s}=q(),c=Z(),l=Q(),d=u(!1),f=u(!0),p=u(),{forwardRef:m,currentElement:h}=D(),{viewport:g,selectedItem:_,selectedItemText:v,focusSelectedItem:x}=l;function C(){if(c.triggerElement.value&&c.valueElement.value&&p.value&&h.value&&g?.value&&_?.value&&v?.value){let e=c.triggerElement.value.getBoundingClientRect(),t=h.value.getBoundingClientRect(),n=c.valueElement.value.getBoundingClientRect(),r=v.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=z(a,10,Math.max(10,l-c));p.value.style.minWidth=`${s}px`,p.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=z(a,10,Math.max(10,l-c));p.value.style.minWidth=`${s}px`,p.value.style.right=`${u}px`}let a=s().map(e=>e.ref),o=window.innerHeight-20,l=g.value.scrollHeight,u=window.getComputedStyle(h.value),f=Number.parseInt(u.borderTopWidth,10),m=Number.parseInt(u.paddingTop,10),y=Number.parseInt(u.borderBottomWidth,10),b=Number.parseInt(u.paddingBottom,10),x=f+m+l+b+y,S=Math.min(_.value.offsetHeight*5,x),C=window.getComputedStyle(g.value),w=Number.parseInt(C.paddingTop,10),T=Number.parseInt(C.paddingBottom,10),E=e.top+e.height/2-10,D=o-E,O=_.value.offsetHeight/2,k=_.value.offsetTop+O,A=f+m+k,j=x-A;if(A<=E){let e=_.value===a.at(-1);p.value.style.bottom=`0px`;let t=h.value.clientHeight-g.value.offsetTop-g.value.offsetHeight,n=A+Math.max(D,O+(e?T:0)+t+y);p.value.style.height=`${n}px`}else{let e=_.value===a[0];p.value.style.top=`0px`;let t=Math.max(E,f+g.value.offsetTop+(e?w:0)+O)+j;p.value.style.height=`${t}px`,g.value.scrollTop=A-E+g.value.offsetTop}p.value.style.margin=`10px 0`,p.value.style.minHeight=`${S}px`,p.value.style.maxHeight=`${o}px`,i(`placed`),requestAnimationFrame(()=>d.value=!0)}}let w=u(``);y(async()=>{await M(),C(),h.value&&(w.value=window.getComputedStyle(h.value).zIndex)});function T(e){e&&f.value===!0&&(C(),x?.(),f.value=!1)}return k(c.triggerElement,()=>{C()}),Ne({contentWrapper:p,shouldExpandOnScrollRef:d,onScrollButtonChange:T}),(e,t)=>(N(),o(`div`,{ref_key:`contentWrapperElement`,ref:p,style:te({display:`flex`,flexDirection:`column`,position:`fixed`,zIndex:w.value})},[a(n(S),E({ref:n(m),style:{boxSizing:`border-box`,maxHeight:`100%`}},{...e.$attrs,...r}),{default:b(()=>[P(e.$slots,`default`)]),_:3},16)],4))}}),Fe=g({inheritAttrs:!1,__name:`SelectProvider`,props:{context:{type:Object,required:!0}},setup(e){return Ee(e.context),je(Ae),(e,t)=>P(e.$slots,`default`)}}),Ie={key:1},Le=g({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 s=e,c=W(s,t),l=Z(),f=u();y(()=>{f.value=new DocumentFragment});let p=u(),g=i(()=>s.forceMount||l.open.value),x=u(g.value);return v(g,()=>{setTimeout(()=>x.value=g.value)}),(e,t)=>g.value||x.value||p.value?.present?(N(),h(n(fe),{key:0,ref_key:`presenceRef`,ref:p,present:g.value},{default:b(()=>[a(Me,d(_({...n(c),...e.$attrs})),{default:b(()=>[P(e.$slots,`default`)]),_:3},16)]),_:3},8,[`present`])):f.value?(N(),o(`div`,Ie,[(N(),h(m,{to:f.value},[a(Fe,{context:n(l)},{default:b(()=>[P(e.$slots,`default`)]),_:3},8,[`context`])],8,[`to`]))])):r(`v-if`,!0)}}),Re=g({__name:`SelectIcon`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){return(e,t)=>(N(),h(n(S),{"aria-hidden":`true`,as:e.as,"as-child":e.asChild},{default:b(()=>[P(e.$slots,`default`,{},()=>[t[0]||=A(`▼`)])]),_:3},8,[`as`,`as-child`]))}}),[ze,Be]=K(`SelectItem`),Ve=g({__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 r=e,o=t,{disabled:s}=l(r),c=Z(),d=Q(),{forwardRef:f,currentElement:p}=D(),{CollectionItem:m}=q(),g=i(()=>Y(c.modelValue?.value,r.value,c.by)),_=u(!1),v=u(r.textValue??``),x=B(void 0,`reka-select-item-text`);async function C(e){e.defaultPrevented||ce(`select.select`,w,{originalEvent:e,value:r.value})}async function w(e){await M(),o(`select`,e),!e.defaultPrevented&&(s.value||(c.onValueChange(r.value),c.multiple.value||c.onOpenChange(!1)))}async function T(e){await M(),!e.defaultPrevented&&(s.value?d.onItemLeave?.():e.currentTarget?.focus({preventScroll:!0}))}async function E(e){await M(),!e.defaultPrevented&&e.currentTarget===G()&&d.onItemLeave?.()}async function O(e){await M(),!e.defaultPrevented&&(d.searchRef?.value!==``&&e.key===` `||(Ce.includes(e.key)&&C(e),e.key===` `&&e.preventDefault()))}if(r.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 y(()=>{p.value&&d.itemRefCallback(p.value,r.value,r.disabled)}),Be({value:r.value,disabled:s,textId:x,isSelected:g,onItemTextChange:e=>{v.value=((v.value||e?.textContent)??``).trim()}}),(e,t)=>(N(),h(n(m),{value:{textValue:v.value}},{default:b(()=>[a(n(S),{ref:n(f),role:`option`,"aria-labelledby":n(x),"data-highlighted":_.value?``:void 0,"aria-selected":g.value,"data-state":g.value?`checked`:`unchecked`,"aria-disabled":n(s)||void 0,"data-disabled":n(s)?``:void 0,tabindex:n(s)?void 0:-1,as:e.as,"as-child":e.asChild,onFocus:t[0]||=e=>_.value=!0,onBlur:t[1]||=e=>_.value=!1,onPointerup:C,onPointerdown:t[2]||=e=>{e.currentTarget.focus({preventScroll:!0})},onTouchend:t[3]||=L(()=>{},[`prevent`,`stop`]),onPointermove:T,onPointerleave:E,onKeydown:O},{default:b(()=>[P(e.$slots,`default`)]),_:3},8,[`aria-labelledby`,`data-highlighted`,`aria-selected`,`data-state`,`aria-disabled`,`data-disabled`,`tabindex`,`as`,`as-child`])]),_:3},8,[`value`]))}}),He=g({__name:`SelectItemIndicator`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){let t=e,i=ze();return(e,a)=>n(i).isSelected.value?(N(),h(n(S),E({key:0,"aria-hidden":`true`},t),{default:b(()=>[P(e.$slots,`default`)]),_:3},16)):r(`v-if`,!0)}}),Ue=g({inheritAttrs:!1,__name:`SelectItemText`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){let t=e,r=Z(),a=Q(),o=ze(),{forwardRef:s,currentElement:c}=D(),l=i(()=>({value:o.value,disabled:o.disabled.value,textContent:c.value?.textContent??o.value?.toString()??``}));return y(()=>{c.value&&(o.onItemTextChange(c.value),a.itemTextRefCallback(c.value,o.value,o.disabled.value),r.onOptionAdd(l.value))}),O(()=>{r.onOptionRemove(l.value)}),(e,r)=>(N(),h(n(S),E({id:n(o).textId,ref:n(s)},{...t,...e.$attrs}),{default:b(()=>[P(e.$slots,`default`)]),_:3},16,[`id`]))}}),We=g({__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,r)=>(N(),h(n(me),d(_(t)),{default:b(()=>[P(e.$slots,`default`)]),_:3},16))}}),Ge=g({__name:`SelectScrollButtonImpl`,emits:[`autoScroll`],setup(e,{emit:t}){let r=t,{getItems:i}=q(),a=Q(),o=u(null);function s(){o.value!==null&&(window.clearInterval(o.value),o.value=null)}F(()=>{i().map(e=>e.ref).find(e=>e===G())?.scrollIntoView({block:`nearest`})});function c(){o.value===null&&(o.value=window.setInterval(()=>{r(`autoScroll`)},50))}function l(){a.onItemLeave?.(),o.value===null&&(o.value=window.setInterval(()=>{r(`autoScroll`)},50))}return C(()=>s()),(e,t)=>(N(),h(n(S),E({"aria-hidden":`true`,style:{flexShrink:0}},e.$parent?.$props,{onPointerdown:c,onPointermove:l,onPointerleave:t[0]||=()=>{s()}}),{default:b(()=>[P(e.$slots,`default`)]),_:3},16))}}),Ke=g({__name:`SelectScrollDownButton`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=Q(),i=t.position===`item-aligned`?$():void 0,{forwardRef:a,currentElement:o}=D(),s=u(!1);return F(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))}}),v(o,()=>{o.value&&i?.onScrollButtonChange(o.value)}),(e,i)=>s.value?(N(),h(Ge,{key:0,ref:n(a),onAutoScroll:i[0]||=()=>{let{viewport:e,selectedItem:r}=n(t);e?.value&&r?.value&&(e.value.scrollTop=e.value.scrollTop+r.value.offsetHeight)}},{default:b(()=>[P(e.$slots,`default`)]),_:3},512)):r(`v-if`,!0)}}),qe=g({__name:`SelectScrollUpButton`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=Q(),i=t.position===`item-aligned`?$():void 0,{forwardRef:a,currentElement:o}=D(),s=u(!1);return F(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))}}),v(o,()=>{o.value&&i?.onScrollButtonChange(o.value)}),(e,i)=>s.value?(N(),h(Ge,{key:0,ref:n(a),onAutoScroll:i[0]||=()=>{let{viewport:e,selectedItem:r}=n(t);e?.value&&r?.value&&(e.value.scrollTop=e.value.scrollTop-r.value.offsetHeight)}},{default:b(()=>[P(e.$slots,`default`)]),_:3},512)):r(`v-if`,!0)}}),Je=g({__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,r=Z(),{forwardRef:o,currentElement:s}=D(),c=i(()=>r.disabled?.value||t.disabled);r.contentId||=B(void 0,`reka-select-content`),y(()=>{r.onTriggerChange(s.value)});let{getItems:l}=q(),{search:u,handleTypeaheadSearch:d,resetTypeahead:f}=J();function p(){c.value||(r.onOpenChange(!0),f())}function m(e){p(),r.triggerPointerDownPosRef.value={x:Math.round(e.pageX),y:Math.round(e.pageY)}}return(e,t)=>(N(),h(n(ie),{"as-child":``,reference:e.reference},{default:b(()=>[a(n(S),{ref:n(o),role:`combobox`,type:e.as===`button`?`button`:void 0,"aria-controls":n(r).contentId,"aria-expanded":n(r).open.value||!1,"aria-required":n(r).required?.value,"aria-autocomplete":`none`,disabled:c.value,dir:n(r)?.dir.value,"data-state":n(r)?.open.value?`open`:`closed`,"data-disabled":c.value?``:void 0,"data-placeholder":n(we)(n(r).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]||=L(e=>{e.pointerType===`touch`&&m(e)},[`prevent`]),onKeydown:t[3]||=e=>{let t=n(u)!==``;!(e.ctrlKey||e.altKey||e.metaKey)&&e.key.length===1&&t&&e.key===` `||(n(d)(e.key,n(l)()),n(Se).includes(e.key)&&(p(),e.preventDefault()))}},{default:b(()=>[P(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`]))}}),Ye=g({__name:`SelectValue`,props:{placeholder:{type:String,required:!1,default:``},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){let r=e,{forwardRef:a,currentElement:o}=D(),s=Z();y(()=>{s.valueElement=o});let c=i(()=>{let e=[],t=Array.from(s.optionsSet.value),n=e=>t.find(t=>Y(e,t.value,s.by));return e=Array.isArray(s.modelValue.value)?s.modelValue.value.map(e=>n(e)?.textContent??``):[n(s.modelValue.value)?.textContent??``],e.filter(Boolean)}),l=i(()=>c.value.length?c.value.join(`, `):r.placeholder);return(e,i)=>(N(),h(n(S),{ref:n(a),as:e.as,"as-child":e.asChild,style:{pointerEvents:`none`},"data-placeholder":c.value.length?void 0:r.placeholder},{default:b(()=>[P(e.$slots,`default`,{selectedLabel:c.value,modelValue:n(s).modelValue.value},()=>[A(t(l.value),1)])]),_:3},8,[`as`,`as-child`,`data-placeholder`]))}}),Xe=g({__name:`SelectViewport`,props:{nonce:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(t){let r=t,{nonce:i}=l(r),s=se(i),c=Q(),d=c.position===`item-aligned`?$():void 0,{forwardRef:f,currentElement:p}=D();y(()=>{c?.onViewportChange(p.value)});let m=u(0);function h(e){let t=e.currentTarget,{shouldExpandOnScrollRef:n,contentWrapper:r}=d??{};if(n?.value&&r?.value){let e=Math.abs(m.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`)}}}m.value=t.scrollTop}return(t,i)=>(N(),o(e,null,[a(n(S),E({ref:n(f),"data-reka-select-viewport":``,role:`presentation`},{...t.$attrs,...r},{style:{position:`relative`,flex:1,overflow:`hidden auto`},onScroll:h}),{default:b(()=>[P(t.$slots,`default`)]),_:3},16),a(n(S),{as:`style`,nonce:n(s)},{default:b(()=>i[0]||=[A(` /* 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))}}),Ze=g({__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(e,{emit:t}){let r=W(e,t);return(e,t)=>(N(),h(n(De),E({"data-slot":`select`},n(r)),{default:b(t=>[P(e.$slots,`default`,d(_(t)))]),_:3},16))}}),Qe=g({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(e,{emit:t}){let r=e,i=t,o=W(I(r,`class`),i);return(t,i)=>(N(),h(n(We),null,{default:b(()=>[a(n(Le),E({"data-slot":`select-content`,"data-align-trigger":e.position===`item-aligned`},{...t.$attrs,...n(o)},{class:n(j)(`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`,e.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`,r.class)}),{default:b(()=>[a(n(nt)),a(n(Xe),{"data-position":e.position,class:s(n(j)(`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:b(()=>[P(t.$slots,`default`)]),_:3},8,[`data-position`,`class`]),a(n(tt))]),_:3},16,[`data-align-trigger`,`class`])]),_:3}))}}),$e={class:`pointer-events-none absolute right-2 flex size-4 items-center justify-center`},et=g({__name:`SelectItem`,props:{value:{},disabled:{type:Boolean},textValue:{},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(e){let t=e,r=V(I(t,`class`));return(e,i)=>(N(),h(n(Ve),E({"data-slot":`select-item`},n(r),{class:n(j)(`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`,t.class)}),{default:b(()=>[p(`span`,$e,[a(n(He),null,{default:b(()=>[P(e.$slots,`indicator-icon`,{},()=>[a(n(ne),{class:`pointer-events-none`})])]),_:3})]),a(n(Ue),null,{default:b(()=>[P(e.$slots,`default`)]),_:3})]),_:3},16,[`class`]))}}),tt=g({__name:`SelectScrollDownButton`,props:{asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(e){let t=e,r=V(I(t,`class`));return(e,i)=>(N(),h(n(Ke),E({"data-slot":`select-scroll-down-button`},n(r),{class:n(j)(`bg-popover z-10 flex cursor-default items-center justify-center py-1 [&_svg:not([class*=size-])]:size-4`,t.class)}),{default:b(()=>[P(e.$slots,`default`,{},()=>[a(n(R))])]),_:3},16,[`class`]))}}),nt=g({__name:`SelectScrollUpButton`,props:{asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(e){let t=e,r=V(I(t,`class`));return(e,i)=>(N(),h(n(qe),E({"data-slot":`select-scroll-up-button`},n(r),{class:n(j)(`bg-popover z-10 flex cursor-default items-center justify-center py-1 [&_svg:not([class*=size-])]:size-4`,t.class)}),{default:b(()=>[P(e.$slots,`default`,{},()=>[a(n(ye))])]),_:3},16,[`class`]))}}),rt=g({__name:`SelectTrigger`,props:{disabled:{type:Boolean},reference:{},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]},size:{default:`default`}},setup(e){let t=e,r=V(I(t,`class`,`size`));return(i,o)=>(N(),h(n(Je),E({"data-slot":`select-trigger`,"data-size":e.size},n(r),{class:n(j)(`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`,t.class)}),{default:b(()=>[P(i.$slots,`default`),a(n(Re),{"as-child":``},{default:b(()=>[a(n(R),{class:`text-muted-foreground size-4 pointer-events-none`})]),_:1})]),_:3},16,[`data-size`,`class`]))}}),it=g({__name:`SelectValue`,props:{placeholder:{},asChild:{type:Boolean},as:{}},setup(e){let t=e;return(e,r)=>(N(),h(n(Ye),E({"data-slot":`select-value`},t),{default:b(()=>[P(e.$slots,`default`)]),_:3},16))}});export{Ze as a,Qe as i,rt as n,et as r,it as t};
@@ -0,0 +1,6 @@
1
+ import{A as e,B as t,Bt as n,Ft as r,G as i,H as a,J as o,K as s,M as c,Ot as l,U as u,W as d,Y as f,_t as p,at as ee,bt as m,i as h,k as g,lt as te,m as _,n as v,nt as y,o as b,q as x,r as S,rt as C,st as w,ut as T,wt as ne,x as E,zt as D}from"./button-zud8Qspb.js";import{g as O,y as k}from"./Teleport-CLw1Jxrb.js";import{a as re,c as ie,i as ae,n as A,o as j,r as M,s as N,t as P}from"./alert-dialog-gprnWn1b.js";import{t as F}from"./Label-73u_Os4X.js";import{n as I}from"./lib-xfvPneK8.js";import{t as L}from"./Input-RyuwzbNx.js";import{t as oe}from"./useLogRetention-DE7zYGFK.js";var se=c(`download`,[[`path`,{d:`M12 15V3`,key:`m9g1x1`}],[`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`,key:`ih7n3h`}],[`path`,{d:`m7 10 5 5 5-5`,key:`brsn70`}]]),ce=c(`hard-drive`,[[`path`,{d:`M10 16h.01`,key:`1bzywj`}],[`path`,{d:`M2.212 11.577a2 2 0 0 0-.212.896V18a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-5.527a2 2 0 0 0-.212-.896L18.55 5.11A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z`,key:`18tbho`}],[`path`,{d:`M21.946 12.013H2.054`,key:`zqlbp7`}],[`path`,{d:`M6 16h.01`,key:`1pmjb7`}]]),le=c(`upload`,[[`path`,{d:`M12 3v12`,key:`1x0j5s`}],[`path`,{d:`m17 8-5-5-5 5`,key:`7q97r8`}],[`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`,key:`ih7n3h`}]]),R=100,[z,B]=k(`ProgressRoot`),V=e=>typeof e==`number`;function H(e,t){return O(e)||V(e)&&!Number.isNaN(e)&&e<=t&&e>=0?e:(console.error(`Invalid prop \`value\` of value \`${e}\` supplied to \`ProgressRoot\`. The \`value\` prop must be:
2
+ - a positive number
3
+ - less than the value passed to \`max\` (or ${R} if no \`max\` prop is set)
4
+ - \`null\` or \`undefined\` if the progress is indeterminate.
5
+
6
+ Defaulting to \`null\`.`),null)}function U(e){return V(e)&&!Number.isNaN(e)&&e>0?e:(console.error(`Invalid prop \`max\` of value \`${e}\` supplied to \`ProgressRoot\`. Only numbers greater than 0 are valid max values. Defaulting to \`${R}\`.`),R)}var W=f({__name:`ProgressRoot`,props:{modelValue:{type:[Number,null],required:!1},max:{type:Number,required:!1,default:R},getValueLabel:{type:Function,required:!1,default:(e,t)=>V(e)?`${Math.round(e/t*R)}%`:void 0},getValueText:{type:Function,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`update:modelValue`,`update:max`],setup(e,{emit:t}){let n=e,i=t;b();let o=_(n,`modelValue`,i,{passive:n.modelValue===void 0}),s=_(n,`max`,i,{passive:n.max===void 0});p(()=>o.value,async e=>{let t=H(e,n.max);t!==e&&(await C(),o.value=t)},{immediate:!0}),p(()=>n.max,e=>{let t=U(n.max);t!==e&&(s.value=t)},{immediate:!0});let c=a(()=>O(o.value)?`indeterminate`:o.value===s.value?`complete`:`loading`);return B({modelValue:o,max:s,progressState:c}),(e,t)=>(w(),d(r(h),{"as-child":e.asChild,as:e.as,"aria-valuemax":r(s),"aria-valuemin":0,"aria-valuenow":V(r(o))?r(o):void 0,"aria-valuetext":e.getValueText?.(r(o),r(s)),"aria-label":e.getValueLabel(r(o),r(s)),role:`progressbar`,"data-state":c.value,"data-value":r(o)??void 0,"data-max":r(s)},{default:m(()=>[T(e.$slots,`default`,{modelValue:r(o)})]),_:3},8,[`as-child`,`as`,`aria-valuemax`,`aria-valuenow`,`aria-valuetext`,`aria-label`,`data-state`,`data-value`,`data-max`]))}}),G=f({__name:`ProgressIndicator`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e,n=z();return b(),(e,i)=>(w(),d(r(h),y(t,{"data-state":r(n).progressState.value,"data-value":r(n).modelValue?.value??void 0,"data-max":r(n).max.value}),{default:m(()=>[T(e.$slots,`default`)]),_:3},16,[`data-state`,`data-value`,`data-max`]))}}),K=f({__name:`Progress`,props:{modelValue:{default:0},max:{},getValueLabel:{},getValueText:{},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(e){let t=e,n=E(t,`class`);return(e,i)=>(w(),d(r(W),y({"data-slot":`progress`},r(n),{class:r(S)(`bg-muted h-1 rounded-full relative flex w-full items-center overflow-x-hidden`,t.class)}),{default:m(()=>[o(r(G),{"data-slot":`progress-indicator`,class:`bg-primary size-full flex-1 transition-all`,style:D(`transform: translateX(-${100-(t.modelValue??0)}%);`)},null,8,[`style`])]),_:1},16,[`class`]))}}),ue={class:`p-6 space-y-6`},de={class:`bg-card rounded-lg border p-4 space-y-3`},fe={class:`flex items-end gap-4`},pe={class:`space-y-1`},me={key:0,class:`text-sm text-destructive mt-1`},q={class:`bg-card rounded-lg border p-4 space-y-4`},he={class:`font-medium text-sm text-foreground flex items-center gap-2`},ge={class:`space-y-1`},_e={class:`flex justify-between text-sm`},ve={class:`text-muted-foreground`},ye={class:`space-y-1`},be={class:`flex justify-between text-sm`},xe={class:`text-muted-foreground`},Se={class:`space-y-1`},Ce={class:`flex justify-between text-sm`},we={class:`text-muted-foreground`},Te={key:0,class:`text-xs text-muted-foreground`},Ee={class:`grid grid-cols-2 gap-4 pt-3 border-t`},De={class:`space-y-1`},Oe={key:0,class:`text-sm text-destructive mt-1`},ke={class:`space-y-1`},Ae={key:0,class:`text-sm text-destructive mt-1`},je={class:`bg-card rounded-lg border p-4 space-y-3`},Me={class:`flex gap-3`},Ne={key:0,class:`text-sm space-y-1 p-3 bg-muted rounded-md`},J=1048576,Y=1024,X=100,Pe=2,Fe=10,Z=0,Q=90,$=1,Ie=1024,Le=800,Re=f({__name:`Settings`,setup(a){let{retentionDays:c,saveRetention:d}=oe(),f=l(null),p=l(Ie),h=l(Le),_=l(!1),y=l(!1),b=l(null),S=l(!1),C=l(null),T=l(),E=l(``),D=l(``),O=l(``);function k(e){if(e===0)return`0 B`;let t=[`B`,`KB`,`MB`,`GB`],n=Math.min(Math.floor(Math.log(e)/Math.log(Y)),t.length-1);return`${(e/Y**+n).toFixed(1)} ${t[n]}`}async function R(){_.value=!0;try{let[e,t]=await Promise.allSettled([g.getDbSizeInfo(),g.getLogRetention()]);e.status===`fulfilled`&&(f.value=e.value,p.value=e.value.thresholds.dbMaxSizeMb,h.value=e.value.thresholds.logTableMaxSizeMb),t.status===`fulfilled`&&(c.value=t.value.days)}finally{_.value=!1}}function z(){E.value=``;let e=c.value;return Number.isInteger(e)?e<Z||e>Q?(E.value=`请输入 ${Z}-${Q} 之间的整数`,!1):!0:(E.value=`请输入整数`,!1)}async function B(){z()&&await d()}function V(){D.value=``,O.value=``;let e=!0;return(!Number.isFinite(p.value)||p.value<$)&&(D.value=`请输入不小于 ${$} 的数值`,e=!1),(!Number.isFinite(h.value)||h.value<$)&&(O.value=`请输入不小于 ${$} 的数值`,e=!1),e&&h.value>p.value&&(O.value=`日志表上限不应超过数据库上限`,e=!1),e}async function H(){if(V())try{let e=await g.setDbSizeThresholds({dbMaxSizeMb:p.value,logTableMaxSizeMb:h.value});p.value=e.dbMaxSizeMb,h.value=e.logTableMaxSizeMb,I.success(`存储阈值已更新`),await R()}catch(t){I.error(e(t,`更新失败`))}}async function U(){try{let e=await g.exportConfig(),t=new Blob([JSON.stringify(e,null,Pe)],{type:`application/json`}),n=URL.createObjectURL(t),r=document.createElement(`a`);r.href=n,r.download=`router-config-${new Date().toISOString().slice(0,Fe)}.json`,r.click(),URL.revokeObjectURL(n),I.success(`配置已导出`)}catch(t){I.error(e(t,`导出失败`))}}function W(e){let t=e.target,n=t.files?.[0];if(!n)return;let r=new FileReader;r.onload=()=>{try{let e=JSON.parse(r.result);if(!e.version||e.version!==1){I.error(`不支持的配置文件版本`);return}C.value=e,S.value=!0}catch{I.error(`无效的 JSON 文件`)}},r.readAsText(n),t.value=``}async function G(){if(C.value){y.value=!0;try{b.value=await g.importConfig(C.value),S.value=!1,I.success(`配置已导入`),await R()}catch(t){I.error(e(t,`导入失败`))}finally{y.value=!1,C.value=null}}}return ee(R),(e,a)=>(w(),s(`div`,ue,[a[27]||=u(`h2`,{class:`text-lg font-semibold text-foreground`},`系统设置`,-1),u(`div`,de,[a[10]||=u(`h3`,{class:`font-medium text-sm text-foreground`},`日志保留策略`,-1),a[11]||=u(`p`,{class:`text-sm text-muted-foreground`},`超过保留天数的日志将被自动清理`,-1),u(`div`,fe,[u(`div`,pe,[o(r(F),{for:`retention-days`},{default:m(()=>[...a[8]||=[x(`保留天数`,-1)]]),_:1}),o(r(L),{id:`retention-days`,modelValue:r(c),"onUpdate:modelValue":a[0]||=e=>ne(c)?c.value=e:null,modelModifiers:{number:!0},type:`number`,min:Z,max:Q,class:`w-32`,onInput:a[1]||=e=>E.value=``},null,8,[`modelValue`]),E.value?(w(),s(`p`,me,n(E.value),1)):i(``,!0)]),o(r(v),{size:`sm`,disabled:_.value,onClick:B},{default:m(()=>[...a[9]||=[x(`保存`,-1)]]),_:1},8,[`disabled`])])]),u(`div`,q,[u(`h3`,he,[o(r(ce),{class:`h-4 w-4`}),a[12]||=x(` 存储管理 `,-1)]),a[18]||=u(`p`,{class:`text-sm text-muted-foreground`},`监控数据库大小并配置自动清理阈值`,-1),f.value?(w(),s(t,{key:0},[u(`div`,ge,[u(`div`,_e,[a[13]||=u(`span`,null,`数据库总大小`,-1),u(`span`,ve,n(k(f.value.totalBytes))+` / `+n(p.value)+` MB `,1)]),o(r(K),{"model-value":Math.min(X,f.value.totalBytes/(p.value*J)*X)},null,8,[`model-value`])]),u(`div`,ye,[u(`div`,be,[u(`span`,null,`请求日志大小 (`+n(f.value.logCount)+` 条)`,1),u(`span`,xe,n(k(f.value.logTableBytes))+` / `+n(h.value)+` MB `,1)]),o(r(K),{"model-value":Math.min(X,f.value.logTableBytes/(h.value*J)*X)},null,8,[`model-value`])]),u(`div`,Se,[u(`div`,Ce,[a[14]||=u(`span`,null,`日志文件大小`,-1),u(`span`,we,n(k(f.value.logFileBytes??0)),1)])]),f.value.lastChecked?(w(),s(`p`,Te,` 上次检查:`+n(f.value.lastChecked),1)):i(``,!0)],64)):i(``,!0),u(`div`,Ee,[u(`div`,De,[o(r(F),{for:`db-max-size`},{default:m(()=>[...a[15]||=[x(`数据库大小上限 (MB)`,-1)]]),_:1}),o(r(L),{id:`db-max-size`,modelValue:p.value,"onUpdate:modelValue":a[2]||=e=>p.value=e,modelModifiers:{number:!0},type:`number`,min:$,onInput:a[3]||=e=>D.value=``},null,8,[`modelValue`]),D.value?(w(),s(`p`,Oe,n(D.value),1)):i(``,!0)]),u(`div`,ke,[o(r(F),{for:`log-max-size`},{default:m(()=>[...a[16]||=[x(`日志表大小上限 (MB)`,-1)]]),_:1}),o(r(L),{id:`log-max-size`,modelValue:h.value,"onUpdate:modelValue":a[4]||=e=>h.value=e,modelModifiers:{number:!0},type:`number`,min:$,onInput:a[5]||=e=>O.value=``},null,8,[`modelValue`]),O.value?(w(),s(`p`,Ae,n(O.value),1)):i(``,!0)])]),o(r(v),{size:`sm`,disabled:_.value,onClick:H},{default:m(()=>[...a[17]||=[x(`保存阈值`,-1)]]),_:1},8,[`disabled`])]),u(`div`,je,[a[22]||=u(`h3`,{class:`font-medium text-sm text-foreground`},`配置导入导出`,-1),a[23]||=u(`p`,{class:`text-sm text-muted-foreground`},`导出当前配置或从文件恢复`,-1),u(`div`,Me,[o(r(v),{variant:`outline`,size:`sm`,disabled:_.value,onClick:U},{default:m(()=>[o(r(se),{class:`mr-2 h-4 w-4`}),a[19]||=x(` 导出配置 `,-1)]),_:1},8,[`disabled`]),o(r(v),{variant:`outline`,size:`sm`,disabled:_.value,onClick:a[6]||=e=>T.value?.click()},{default:m(()=>[o(r(le),{class:`mr-2 h-4 w-4`}),a[20]||=x(` 导入配置 `,-1)]),_:1},8,[`disabled`]),u(`input`,{ref_key:`fileInput`,ref:T,type:`file`,accept:`.json`,class:`hidden`,onChange:W},null,544)]),b.value?(w(),s(`div`,Ne,[a[21]||=u(`p`,{class:`font-medium`},`导入完成:`,-1),(w(!0),s(t,null,te(b.value,(e,t)=>(w(),s(`p`,{key:t},n(t)+`: `+n(e)+` 条 `,1))),128))])):i(``,!0)]),o(r(ie),{open:S.value,"onUpdate:open":a[7]||=e=>S.value=e},{default:m(()=>[o(r(re),null,{default:m(()=>[o(r(A),null,{default:m(()=>[o(r(P),null,{default:m(()=>[...a[24]||=[x(`确认导入配置`,-1)]]),_:1}),o(r(ae),null,{default:m(()=>[...a[25]||=[x(` 导入将覆盖当前的供应商、映射、密钥等配置。安全设置(密码、JWT)将保留不变。 此操作不可撤销。 `,-1)]]),_:1})]),_:1}),o(r(M),null,{default:m(()=>[o(r(j),{disabled:y.value},{default:m(()=>[...a[26]||=[x(`取消`,-1)]]),_:1},8,[`disabled`]),o(r(N),{disabled:y.value,onClick:G},{default:m(()=>[x(n(y.value?`导入中...`:`确认导入`),1)]),_:1},8,[`disabled`])]),_:1})]),_:1})]),_:1},8,[`open`])]))}});export{Re as default};
@@ -0,0 +1 @@
1
+ import{A as e,Bt as t,Ft as n,G as r,J as i,K as a,Ot as o,P as s,U as c,W as l,Y as u,bt as d,k as f,n as p,q as m,st as h,z as g}from"./button-zud8Qspb.js";import{n as _,t as v}from"./sun-n4cC12ho.js";import{t as y}from"./Label-73u_Os4X.js";import{r as b}from"./useTheme-BFhy-DAX.js";import{n as x,t as S}from"./CardContent-F3K9pZNP.js";import{t as C}from"./Input-RyuwzbNx.js";var w={class:`min-h-screen flex items-center justify-center bg-background relative`},T={key:0,class:`text-destructive text-sm`},E=u({__name:`Setup`,setup(u){let{isDark:E,toggleTheme:D}=b(),O=s(),k=o(``),A=o(``),j=o(``),M=o(!1);async function N(){if(!k.value||!A.value){j.value=`请输入密码`;return}if(k.value!==A.value){j.value=`两次密码不一致`;return}if(k.value.length<6){j.value=`密码至少 6 位`;return}j.value=``,M.value=!0;try{await f.initializeSetup(k.value),O.push(`/admin/dashboard`)}catch(t){j.value=e(t,`设置失败`)}finally{M.value=!1}}return(e,o)=>(h(),a(`div`,w,[i(n(p),{variant:`ghost`,size:`icon`,class:`absolute top-4 right-4 text-muted-foreground hover:text-foreground`,onClick:n(D)},{default:d(()=>[n(E)?(h(),l(n(v),{key:1,class:`w-4 h-4`})):(h(),l(n(_),{key:0,class:`w-4 h-4`}))]),_:1},8,[`onClick`]),i(n(x),{class:`w-full max-w-sm shadow-lg`},{default:d(()=>[i(n(S),{class:`pt-6`},{default:d(()=>[o[4]||=c(`div`,{class:`text-center mb-6`},[c(`div`,{class:`w-12 h-12 bg-primary rounded-lg mx-auto mb-3 flex items-center justify-center`},[c(`svg`,{class:`w-7 h-7 text-white`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},[c(`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`})])]),c(`h1`,{class:`text-xl font-semibold text-foreground`},`LLM Simple Router`),c(`p`,{class:`text-sm text-muted-foreground mt-1`},`初始设置 — 设置管理员密码`)],-1),c(`form`,{onSubmit:g(N,[`prevent`]),class:`space-y-4`},[c(`div`,null,[i(n(y),{class:`block text-sm font-medium text-foreground mb-1`},{default:d(()=>[...o[2]||=[m(`密码`,-1)]]),_:1}),i(n(C),{modelValue:k.value,"onUpdate:modelValue":o[0]||=e=>k.value=e,type:`password`,placeholder:`至少 6 位`,disabled:M.value},null,8,[`modelValue`,`disabled`])]),c(`div`,null,[i(n(y),{class:`block text-sm font-medium text-foreground mb-1`},{default:d(()=>[...o[3]||=[m(`确认密码`,-1)]]),_:1}),i(n(C),{modelValue:A.value,"onUpdate:modelValue":o[1]||=e=>A.value=e,type:`password`,placeholder:`再次输入密码`,disabled:M.value},null,8,[`modelValue`,`disabled`])]),j.value?(h(),a(`p`,T,t(j.value),1)):r(``,!0),i(n(p),{type:`submit`,class:`w-full`,disabled:M.value},{default:d(()=>[m(t(M.value?`设置中...`:`完成设置`),1)]),_:1},8,[`disabled`])],32)]),_:1})]),_:1})]))}});export{E as default};
@@ -0,0 +1 @@
1
+ import{Ft as e,G as t,H as n,J as r,Nt as i,R as a,Rt as o,W as s,Y as c,Z as l,bt as u,i as d,m as f,nt as p,o as m,r as h,st as g,ut as _,x as v,z as y}from"./button-zud8Qspb.js";import{u as b,y as x}from"./Teleport-CLw1Jxrb.js";import{t as S}from"./useFormControl-OyxyVR_M.js";import{t as C}from"./VisuallyHiddenInput-CCL5ykZW.js";var[w,T]=x(`SwitchRoot`),E=c({__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(r,{emit:o}){let c=r,l=o,{disabled:h}=i(c),v=f(c,`modelValue`,l,{defaultValue:c.defaultValue??c.falseValue,passive:c.modelValue===void 0}),b=n(()=>v.value===c.trueValue);function x(){h.value||(v.value=b.value?c.falseValue:c.trueValue)}let{forwardRef:w,currentElement:E}=m(),D=S(E),O=n(()=>c.id&&E.value?document.querySelector(`[for="${c.id}"]`)?.innerText:void 0);return T({checked:b,toggleCheck:x,disabled:h}),(n,r)=>(g(),s(e(d),p(n.$attrs,{id:n.id,ref:e(w),role:`switch`,type:n.as===`button`?`button`:void 0,value:n.value,"aria-label":n.$attrs[`aria-label`]||O.value,"aria-checked":b.value,"aria-required":n.required,"data-state":b.value?`checked`:`unchecked`,"data-disabled":e(h)?``:void 0,"as-child":n.asChild,as:n.as,disabled:e(h),onClick:x,onKeydown:a(y(x,[`prevent`]),[`enter`])}),{default:u(()=>[_(n.$slots,`default`,{modelValue:e(v),checked:b.value}),e(D)&&n.name?(g(),s(e(C),{key:0,type:`checkbox`,name:n.name,disabled:e(h),required:n.required,value:n.value,checked:b.value},null,8,[`name`,`disabled`,`required`,`value`,`checked`])):t(`v-if`,!0)]),_:3},16,[`id`,`type`,`value`,`aria-label`,`aria-checked`,`aria-required`,`data-state`,`data-disabled`,`as-child`,`as`,`disabled`,`onKeydown`]))}}),D=c({__name:`SwitchThumb`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(t){let n=w();return m(),(t,r)=>(g(),s(e(d),{"data-state":e(n).checked.value?`checked`:`unchecked`,"data-disabled":e(n).disabled.value?``:void 0,"as-child":t.asChild,as:t.as},{default:u(()=>[_(t.$slots,`default`)]),_:3},8,[`data-state`,`data-disabled`,`as-child`,`as`]))}}),O=c({__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:n}){let i=t,a=n,c=b(v(i,`class`,`size`),a);return(n,a)=>(g(),s(e(E),p({"data-slot":`switch`,"data-size":t.size},e(c),{class:e(h)(`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:u(t=>[r(e(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:u(()=>[_(n.$slots,`thumb`,o(l(t)))]),_:2},1024)]),_:3},16,[`data-size`,`class`]))}});export{O as t};
@@ -0,0 +1 @@
1
+ import{Ft as e,K as t,Lt as n,U as r,Y as i,r as a,st as o,ut as s}from"./button-zud8Qspb.js";var c={"data-slot":`table-container`,class:`relative w-full overflow-x-auto`},l=i({__name:`Table`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(i){let l=i;return(i,u)=>(o(),t(`div`,c,[r(`table`,{"data-slot":`table`,class:n(e(a)(`w-full caption-bottom text-sm`,l.class))},[s(i.$slots,`default`)],2)]))}}),u=i({__name:`TableBody`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(r){let i=r;return(r,c)=>(o(),t(`tbody`,{"data-slot":`table-body`,class:n(e(a)(`[&_tr:last-child]:border-0`,i.class))},[s(r.$slots,`default`)],2))}}),d=i({__name:`TableCell`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(r){let i=r;return(r,c)=>(o(),t(`td`,{"data-slot":`table-cell`,class:n(e(a)(`p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0`,i.class))},[s(r.$slots,`default`)],2))}}),f=i({__name:`TableRow`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(r){let i=r;return(r,c)=>(o(),t(`tr`,{"data-slot":`table-row`,class:n(e(a)(`hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors has-aria-expanded:bg-muted/50`,i.class))},[s(r.$slots,`default`)],2))}}),p=i({__name:`TableHead`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(r){let i=r;return(r,c)=>(o(),t(`th`,{"data-slot":`table-head`,class:n(e(a)(`text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0`,i.class))},[s(r.$slots,`default`)],2))}}),m=i({__name:`TableHeader`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(r){let i=r;return(r,c)=>(o(),t(`thead`,{"data-slot":`table-header`,class:n(e(a)(`[&_tr]:border-b`,i.class))},[s(r.$slots,`default`)],2))}});export{u as a,d as i,p as n,l as o,f as r,m as t};
@@ -0,0 +1,3 @@
1
+ import{$ as e,C as t,Dt as n,F as r,Ft as i,G as a,H as o,It as s,Mt as c,Nt as l,Ot as u,Pt as d,Q as f,V as p,Vt as m,W as h,X as g,Y as _,_ as ee,_t as v,b as y,bt as te,c as ne,ct as re,d as ie,f as ae,ht as oe,i as b,l as se,o as x,ot as S,rt as C,s as ce,st as w,u as T,ut as E,v as le,vt as D,y as O,zt as ue}from"./button-zud8Qspb.js";function k(t,n){let r=typeof t==`string`&&!n?`${t}Context`:n,i=Symbol(r);return[n=>{let r=e(i,n);if(r||r===null)return r;throw Error(`Injection \`${i.toString()}\` not found. Component must be used within ${Array.isArray(t)?`one of the following components: ${t.join(`, `)}`:`\`${t}\``}`)},e=>(re(i,e),e)]}function A(){let e=document.activeElement;if(e==null)return null;for(;e!=null&&e.shadowRoot!=null&&e.shadowRoot.activeElement!=null;)e=e.shadowRoot.activeElement;return e}function j(e,t,n){let r=n.originalEvent.target,i=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&r.addEventListener(e,t,{once:!0}),r.dispatchEvent(i)}function M(e){return e==null}var[N,de]=k(`ConfigProvider`);function P(e){if(typeof e!=`object`||!e)return!1;let t=Object.getPrototypeOf(e);return t!==null&&t!==Object.prototype&&Object.getPrototypeOf(t)!==null||Symbol.iterator in e?!1:Symbol.toStringTag in e?Object.prototype.toString.call(e)===`[object Module]`:!0}function F(e,t,n=`.`,r){if(!P(t))return F(e,{},n,r);let i={...t};for(let t of Object.keys(e)){if(t===`__proto__`||t===`constructor`)continue;let a=e[t];a!=null&&(r&&r(i,t,a,n)||(Array.isArray(a)&&Array.isArray(i[t])?i[t]=[...a,...i[t]]:P(a)&&P(i[t])?i[t]=F(a,i[t],(n?`${n}.`:``)+t.toString(),r):i[t]=a))}return i}function fe(e){return(...t)=>t.reduce((t,n)=>F(t,n,``,e),{})}var I=fe(),pe=le(()=>{let e=u(new Map),t=u(),n=o(()=>{for(let t of e.value.values())if(t)return!0;return!1}),r=N({scrollBody:u(!0)}),i=null,a=()=>{document.body.style.paddingRight=``,document.body.style.marginRight=``,document.body.style.pointerEvents=``,document.documentElement.style.removeProperty(`--scrollbar-width`),document.body.style.overflow=t.value??``,y&&i?.(),t.value=void 0};return v(n,(e,o)=>{if(!O)return;if(!e){o&&a();return}t.value===void 0&&(t.value=document.body.style.overflow);let s=window.innerWidth-document.documentElement.clientWidth,c={padding:s,margin:0},l=r.scrollBody?.value?typeof r.scrollBody.value==`object`?I({padding:r.scrollBody.value.padding===!0?s:r.scrollBody.value.padding,margin:r.scrollBody.value.margin===!0?s:r.scrollBody.value.margin},c):c:{padding:0,margin:0};s>0&&(document.body.style.paddingRight=typeof l.padding==`number`?`${l.padding}px`:String(l.padding),document.body.style.marginRight=typeof l.margin==`number`?`${l.margin}px`:String(l.margin),document.documentElement.style.setProperty(`--scrollbar-width`,`${s}px`),document.body.style.overflow=`hidden`),y&&(i=ie(document,`touchmove`,e=>he(e),{passive:!1})),C(()=>{n.value&&(document.body.style.pointerEvents=`none`,document.body.style.overflow=`hidden`)})},{immediate:!0,flush:`sync`}),e});function me(e){let n=Math.random().toString(36).substring(2,7),r=pe();r.value.set(n,e??!1);let i=o({get:()=>r.value.get(n)??!1,set:e=>r.value.set(n,e)});return t(()=>{r.value.delete(n)}),i}function L(e){let t=window.getComputedStyle(e);if(t.overflowX===`scroll`||t.overflowY===`scroll`||t.overflowX===`auto`&&e.clientWidth<e.scrollWidth||t.overflowY===`auto`&&e.clientHeight<e.scrollHeight)return!0;{let t=e.parentNode;return!(t instanceof Element)||t.tagName===`BODY`?!1:L(t)}}function he(e){let t=e||window.event,n=t.target;return n instanceof Element&&L(n)?!1:t.touches.length>1?!0:(t.preventDefault&&t.cancelable&&t.preventDefault(),!1)}function R(e){let t=g(),n=t?.type.emits,r={};return n?.length||console.warn(`No emitted event found. Please check component: ${t?.type.__name}`),n?.forEach(t=>{r[m(s(t))]=(...n)=>e(t,...n)}),r}function z(e){let t=g(),n=Object.keys(t?.type.props??{}).reduce((e,n)=>{let r=(t?.type.props[n]).default;return r!==void 0&&(e[n]=r),e},{}),r=c(e);return o(()=>{let e={},i=t?.vnode.props??{};return Object.keys(i).forEach(t=>{e[s(t)]=i[t]}),Object.keys({...n,...e}).reduce((e,t)=>(r.value[t]!==void 0&&(e[t]=r.value[t]),e),{})})}function ge(e,t){let n=z(e),r=t?R(t):{};return o(()=>({...n.value,...r}))}var _e=function(e){return typeof document>`u`?null:(Array.isArray(e)?e[0]:e).ownerDocument.body},B=new WeakMap,V=new WeakMap,H={},U=0,W=function(e){return e&&(e.host||W(e.parentNode))},ve=function(e,t){return t.map(function(t){if(e.contains(t))return t;var n=W(t);return n&&e.contains(n)?n:(console.error(`aria-hidden`,t,`in not contained inside`,e,`. Doing nothing`),null)}).filter(function(e){return!!e})},ye=function(e,t,n,r){var i=ve(t,Array.isArray(e)?e:[e]);H[n]||(H[n]=new WeakMap);var a=H[n],o=[],s=new Set,c=new Set(i),l=function(e){!e||s.has(e)||(s.add(e),l(e.parentNode))};i.forEach(l);var u=function(e){!e||c.has(e)||Array.prototype.forEach.call(e.children,function(e){if(s.has(e))u(e);else try{var t=e.getAttribute(r),i=t!==null&&t!==`false`,c=(B.get(e)||0)+1,l=(a.get(e)||0)+1;B.set(e,c),a.set(e,l),o.push(e),c===1&&i&&V.set(e,!0),l===1&&e.setAttribute(n,`true`),i||e.setAttribute(r,`true`)}catch(t){console.error(`aria-hidden: cannot operate on `,e,t)}})};return u(t),s.clear(),U++,function(){o.forEach(function(e){var t=B.get(e)-1,i=a.get(e)-1;B.set(e,t),a.set(e,i),t||(V.has(e)||e.removeAttribute(r),V.delete(e)),i||e.removeAttribute(n)}),U--,U||(B=new WeakMap,B=new WeakMap,V=new WeakMap,H={})}},be=function(e,t,n){n===void 0&&(n=`data-aria-hidden`);var r=Array.from(Array.isArray(e)?e:[e]),i=t||_e(e);return i?(r.push.apply(r,Array.from(i.querySelectorAll(`[aria-live], script`))),ye(r,i,n,`aria-hidden`)):function(){return null}};function xe(e){let t;v(()=>T(e),e=>{let n=!1;try{n=!!e?.closest(`[popover]:not(:popover-open)`)}catch{}e&&!n?t=be(e):t&&t()}),S(()=>{t&&t()})}var Se=0;function Ce(e,t=`reka`){if(e)return e;let n;return n=`useId`in r?oe?.():N({useId:void 0}).useId?.()??`${++Se}`,t?`${t}-${n}`:n}function G(e,t){let n=u(e);function r(e){return t[n.value][e]??n.value}return{state:n,dispatch:e=>{n.value=r(e)}}}function we(e,t){let n=u({}),r=u(`none`),i=u(e),a=e.value?`mounted`:`unmounted`,s,c=t.value?.ownerDocument.defaultView??ne,{state:l,dispatch:d}=G(a,{mounted:{UNMOUNT:`unmounted`,ANIMATION_OUT:`unmountSuspended`},unmountSuspended:{MOUNT:`mounted`,ANIMATION_END:`unmounted`},unmounted:{MOUNT:`mounted`}}),f=e=>{if(O){let n=new CustomEvent(e,{bubbles:!1,cancelable:!1});t.value?.dispatchEvent(n)}};v(e,async(e,i)=>{let a=i!==e;if(await C(),a){let a=r.value,o=K(t.value);e?(d(`MOUNT`),f(`enter`),o===`none`&&f(`after-enter`)):o===`none`||o===`undefined`||n.value?.display===`none`?(d(`UNMOUNT`),f(`leave`),f(`after-leave`)):i&&a!==o?(d(`ANIMATION_OUT`),f(`leave`)):(d(`UNMOUNT`),f(`after-leave`))}},{immediate:!0});let p=e=>{let n=K(t.value),r=n.includes(CSS.escape(e.animationName)),a=l.value===`mounted`?`enter`:`leave`;if(e.target===t.value&&r&&(f(`after-${a}`),d(`ANIMATION_END`),!i.value)){let e=t.value.style.animationFillMode;t.value.style.animationFillMode=`forwards`,s=c?.setTimeout(()=>{t.value?.style.animationFillMode===`forwards`&&(t.value.style.animationFillMode=e)})}e.target===t.value&&n===`none`&&d(`ANIMATION_END`)},m=e=>{e.target===t.value&&(r.value=K(t.value))},h=v(t,(e,t)=>{e?(n.value=getComputedStyle(e),e.addEventListener(`animationstart`,m),e.addEventListener(`animationcancel`,p),e.addEventListener(`animationend`,p)):(d(`ANIMATION_END`),s!==void 0&&c?.clearTimeout(s),t?.removeEventListener(`animationstart`,m),t?.removeEventListener(`animationcancel`,p),t?.removeEventListener(`animationend`,p))},{immediate:!0}),g=v(l,()=>{let e=K(t.value);r.value=l.value===`mounted`?e:`none`});return S(()=>{h(),g()}),{isPresent:o(()=>[`mounted`,`unmountSuspended`].includes(l.value))}}function K(e){return e&&getComputedStyle(e).animationName||`none`}var Te=_({name:`Presence`,props:{present:{type:Boolean,required:!0},forceMount:{type:Boolean}},slots:{},setup(e,{slots:t,expose:n}){let{present:r,forceMount:i}=l(e),a=u(),{isPresent:o}=we(r,a);n({present:o});let s=t.default({present:o.value});s=ce(s||[]);let c=g();if(s&&s?.length>1){let e=c?.parent?.type.name?`<${c.parent.type.name} />`:`component`;throw Error([`Detected an invalid children for \`${e}\` for \`Presence\` component.`,``,"Note: Presence works similarly to `v-if` directly, but it waits for animation/transition to finished before unmounting. So it expect only one direct child of valid VNode type.",`You can apply a few solutions:`,["Provide a single child element so that `presence` directive attach correctly.",`Ensure the first child is an actual element instead of a raw text node or comment node.`].map(e=>` - ${e}`).join(`
2
+ `)].join(`
3
+ `))}return()=>i.value||r.value||o.value?f(t.default({present:o.value})[0],{ref:e=>{let t=T(e);return t?.hasAttribute===void 0||(t?.hasAttribute(`data-reka-popper-content-wrapper`)?a.value=t.firstElementChild:a.value=t),t}}):null}}),Ee=`dismissableLayer.pointerDownOutside`,De=`dismissableLayer.focusOutside`;function q(e,t){if(!(t instanceof Element))return!1;let n=t.closest(`[data-dismissable-layer]`),r=e.dataset.dismissableLayer===``?e:e.querySelector(`[data-dismissable-layer]`),i=Array.from(e.ownerDocument.querySelectorAll(`[data-dismissable-layer]`));return!!(n&&(r===n||i.indexOf(r)<i.indexOf(n)))}function Oe(e,t,n=!0){let r=t?.value?.ownerDocument??globalThis?.document,i=u(!1),a=u(()=>{});return D(o=>{if(!O||!d(n))return;let s=async n=>{let o=n.target;if(!(!t?.value||!o)){if(q(t.value,o)){i.value=!1;return}if(n.target&&!i.value){let t={originalEvent:n};function i(){j(Ee,e,t)}n.pointerType===`touch`?(r.removeEventListener(`click`,a.value),a.value=i,r.addEventListener(`click`,a.value,{once:!0})):i()}else r.removeEventListener(`click`,a.value);i.value=!1}},c=window.setTimeout(()=>{r.addEventListener(`pointerdown`,s)},0);o(()=>{window.clearTimeout(c),r.removeEventListener(`pointerdown`,s),r.removeEventListener(`click`,a.value)})}),{onPointerDownCapture:()=>{d(n)&&(i.value=!0)}}}function ke(e,t,n=!0){let r=t?.value?.ownerDocument??globalThis?.document,i=u(!1);return D(a=>{if(!O||!d(n))return;let o=async n=>{if(!t?.value)return;await C(),await C();let r=n.target;!t.value||!r||q(t.value,r)||n.target&&!i.value&&j(De,e,{originalEvent:n})};r.addEventListener(`focusin`,o),a(()=>r.removeEventListener(`focusin`,o))}),{onFocusCapture:()=>{d(n)&&(i.value=!0)},onBlurCapture:()=>{d(n)&&(i.value=!1)}}}var J=n({layersRoot:new Set,layersWithOutsidePointerEventsDisabled:new Set,originalBodyPointerEvents:void 0,branches:new Set}),Ae=_({__name:`DismissableLayer`,props:{disableOutsidePointerEvents:{type:Boolean,required:!1,default:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`dismiss`],setup(e,{emit:t}){let n=e,r=t,{forwardRef:a,currentElement:s}=x(),c=o(()=>s.value?.ownerDocument??globalThis.document),l=o(()=>J.layersRoot),u=o(()=>s.value?Array.from(l.value).indexOf(s.value):-1),d=o(()=>J.layersWithOutsidePointerEventsDisabled.size>0),f=o(()=>{let e=Array.from(l.value),[t]=[...J.layersWithOutsidePointerEventsDisabled].slice(-1),n=e.indexOf(t);return u.value>=n}),p=Oe(async e=>{let t=[...J.branches].some(t=>t?.contains(e.target));!f.value||t||(r(`pointerDownOutside`,e),r(`interactOutside`,e),await C(),e.defaultPrevented||r(`dismiss`))},s),m=ke(e=>{[...J.branches].some(t=>t?.contains(e.target))||(r(`focusOutside`,e),r(`interactOutside`,e),e.defaultPrevented||r(`dismiss`))},s);return se(`Escape`,e=>{u.value===l.value.size-1&&(r(`escapeKeyDown`,e),e.defaultPrevented||r(`dismiss`))}),D(e=>{s.value&&(n.disableOutsidePointerEvents&&(J.layersWithOutsidePointerEventsDisabled.size===0&&(J.originalBodyPointerEvents=c.value.body.style.pointerEvents,c.value.body.style.pointerEvents=`none`),J.layersWithOutsidePointerEventsDisabled.add(s.value)),l.value.add(s.value),e(()=>{n.disableOutsidePointerEvents&&J.layersWithOutsidePointerEventsDisabled.size===1&&!M(J.originalBodyPointerEvents)&&(c.value.body.style.pointerEvents=J.originalBodyPointerEvents)}))}),D(e=>{e(()=>{s.value&&(l.value.delete(s.value),J.layersWithOutsidePointerEventsDisabled.delete(s.value))})}),(e,t)=>(w(),h(i(b),{ref:i(a),"as-child":e.asChild,as:e.as,"data-dismissable-layer":``,style:ue({pointerEvents:d.value?f.value?`auto`:`none`:void 0}),onFocusCapture:i(m).onFocusCapture,onBlurCapture:i(m).onBlurCapture,onPointerdownCapture:i(p).onPointerDownCapture},{default:te(()=>[E(e.$slots,`default`)]),_:3},8,[`as-child`,`as`,`style`,`onFocusCapture`,`onBlurCapture`,`onPointerdownCapture`]))}}),je=ee(()=>u([]));function Me(){let e=je();return{add(t){let n=e.value[0];t!==n&&n?.pause(),e.value=Y(e.value,t),e.value.unshift(t)},remove(t){e.value=Y(e.value,t),e.value[0]?.resume()}}}function Y(e,t){let n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}var X=`focusScope.autoFocusOnMount`,Z=`focusScope.autoFocusOnUnmount`,Ne={bubbles:!1,cancelable:!0};function Pe(e,{select:t=!1}={}){let n=A();for(let r of e)if($(r,{select:t}),A()!==n)return!0}function Fe(e){let t=Q(e);return[Ie(t,e),Ie(t.reverse(),e)]}function Q(e){let t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>{let t=e.tagName===`INPUT`&&e.type===`hidden`;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function Ie(e,t){for(let n of e)if(!Le(n,{upTo:t}))return n}function Le(e,{upTo:t}){if(getComputedStyle(e).visibility===`hidden`)return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display===`none`)return!0;e=e.parentElement}return!1}function Re(e){return e instanceof HTMLInputElement&&`select`in e}function $(e,{select:t=!1}={}){if(e&&e.focus){let n=A();e.focus({preventScroll:!0}),e!==n&&Re(e)&&t&&e.select()}}var ze=_({__name:`FocusScope`,props:{loop:{type:Boolean,required:!1,default:!1},trapped:{type:Boolean,required:!1,default:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`mountAutoFocus`,`unmountAutoFocus`],setup(e,{emit:t}){let r=e,a=t,{currentRef:o,currentElement:s}=x(),c=u(null),l=Me(),d=n({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}});D(e=>{if(!O)return;let t=s.value;if(!r.trapped)return;function n(e){if(d.paused||!t)return;let n=e.target;t.contains(n)?c.value=n:$(c.value,{select:!0})}function i(e){if(d.paused||!t)return;let n=e.relatedTarget;n!==null&&(t.contains(n)||$(c.value,{select:!0}))}function a(e){let n=c.value;n!==null&&e.some(e=>e.removedNodes.length>0)&&(t.contains(n)||$(t))}document.addEventListener(`focusin`,n),document.addEventListener(`focusout`,i);let o=new MutationObserver(a);t&&o.observe(t,{childList:!0,subtree:!0}),e(()=>{document.removeEventListener(`focusin`,n),document.removeEventListener(`focusout`,i),o.disconnect()})}),D(async e=>{let t=s.value;if(await C(),!t)return;l.add(d);let n=A();if(!t.contains(n)){let e=new CustomEvent(X,Ne);t.addEventListener(X,e=>a(`mountAutoFocus`,e)),t.dispatchEvent(e),e.defaultPrevented||(Pe(Q(t),{select:!0}),A()===n&&$(t))}e(()=>{t.removeEventListener(X,e=>a(`mountAutoFocus`,e));let e=new CustomEvent(Z,Ne),r=e=>{a(`unmountAutoFocus`,e)};t.addEventListener(Z,r),t.dispatchEvent(e),setTimeout(()=>{e.defaultPrevented||$(n??document.body,{select:!0}),t.removeEventListener(Z,r),l.remove(d)},0)})});function f(e){if(!r.loop&&!r.trapped||d.paused)return;let t=e.key===`Tab`&&!e.altKey&&!e.ctrlKey&&!e.metaKey,n=A();if(t&&n){let t=e.currentTarget,[i,a]=Fe(t);i&&a?!e.shiftKey&&n===a?(e.preventDefault(),r.loop&&$(i,{select:!0})):e.shiftKey&&n===i&&(e.preventDefault(),r.loop&&$(a,{select:!0})):n===t&&e.preventDefault()}}return(e,t)=>(w(),h(i(b),{ref_key:`currentRef`,ref:o,tabindex:`-1`,"as-child":e.asChild,as:e.as,onKeydown:f},{default:te(()=>[E(e.$slots,`default`)]),_:3},8,[`as-child`,`as`]))}}),Be=[`Enter`,` `],Ve=[`ArrowDown`,`PageUp`,`Home`],He=[`ArrowUp`,`PageDown`,`End`];[...Ve,...He],[...Be],[...Be];function Ue(e){return e?`open`:`closed`}function We(e){let t=A();for(let n of e)if(n===t||(n.focus(),A()!==t))return}var Ge=_({__name:`Teleport`,props:{to:{type:null,required:!1,default:`body`},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(e){let t=ae();return(e,n)=>i(t)||e.forceMount?(w(),h(p,{key:0,to:e.to,disabled:e.disabled,defer:e.defer},[E(e.$slots,`default`)],8,[`to`,`disabled`,`defer`])):a(`v-if`,!0)}});export{j as _,Ae as a,Ce as c,z as d,R as f,M as g,N as h,ze as i,xe as l,I as m,We as n,Te as o,me as p,Ue as r,G as s,Ge as t,ge as u,A as v,k as y};
@@ -0,0 +1 @@
1
+ import{At as e,Bt as t,E as n,Ft as r,H as i,J as a,K as o,Nt as s,Ot as c,R as l,Rt as u,S as d,W as f,Y as p,Z as m,_t as h,at as g,bt as _,d as v,ft as y,g as b,i as x,m as S,nt as C,o as w,pt as T,q as E,r as D,st as O,ut as k,vt as A,w as ee,x as j,z as M,zt as te}from"./button-zud8Qspb.js";import{i as ne,n as N,r as re,t as ie}from"./PopperContent-Bd_mpt_D.js";import{a as ae,c as P,d as F,m as oe,o as se,t as ce,u as I,y as L}from"./Teleport-CLw1Jxrb.js";import{n as R}from"./Collection-BulopTxo.js";import{t as z}from"./VisuallyHidden-BpDuyh8-.js";import{n as B,t as V}from"./RovingFocusItem-DwGTruuB.js";function H(e,t){let n=d(!1,300);ee(()=>{n.value=!1});let r=c(null),i=b();function a(){r.value=null,n.value=!1}function o(e,t){if(!t)return;let i=e.currentTarget,a={x:e.clientX,y:e.clientY},o=W(a,U(a,i.getBoundingClientRect()),1),s=G(t.getBoundingClientRect());r.value=ue([...o,...s]),n.value=!0}return A(n=>{if(e.value&&t.value){let r=e=>o(e,t.value),i=t=>o(t,e.value);e.value.addEventListener(`pointerleave`,r),t.value.addEventListener(`pointerleave`,i),n(()=>{e.value?.removeEventListener(`pointerleave`,r),t.value?.removeEventListener(`pointerleave`,i)})}}),A(n=>{if(r.value){let o=n=>{if(!r.value||!(n.target instanceof Element))return;let o=n.target,s={x:n.clientX,y:n.clientY},c=e.value?.contains(o)||t.value?.contains(o),l=!le(s,r.value),u=!!o.closest(`[data-grace-area-trigger]`);c?a():(l||u)&&(a(),i.trigger())};e.value?.ownerDocument.addEventListener(`pointermove`,o),n(()=>e.value?.ownerDocument.removeEventListener(`pointermove`,o))}}),{isPointerInTransit:n,onPointerExit:i.on}}function U(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 W(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 G(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 le(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 ue(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)),de(t)}function de(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 fe={key:0,d:`M0 0L6 6L12 0`},pe={key:1,d:`M0 0L4.58579 4.58579C5.36683 5.36683 6.63316 5.36684 7.41421 4.58579L12 0`},me=p({__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(e){let t=e;return w(),(e,n)=>(O(),f(r(x),C(t,{width:e.width,height:e.height,viewBox:e.asChild?void 0:`0 0 12 6`,preserveAspectRatio:e.asChild?void 0:`none`}),{default:_(()=>[k(e.$slots,`default`,{},()=>[e.rounded?(O(),o(`path`,pe)):(O(),o(`path`,fe))])]),_:3},16,[`width`,`height`,`viewBox`,`preserveAspectRatio`]))}}),he={top:`bottom`,right:`left`,bottom:`top`,left:`right`},ge=p({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(e){let{forwardRef:t}=w(),n=N(),s=i(()=>he[n.placedSide.value]);return(e,i)=>(O(),o(`span`,{ref:e=>{r(n).onArrowChange(e??void 0)},style:te({position:`absolute`,left:r(n).arrowX?.value?`${r(n).arrowX?.value}px`:void 0,top:r(n).arrowY?.value?`${r(n).arrowY?.value}px`:void 0,[s.value]:0,transformOrigin:{top:``,right:`0 0`,bottom:`center 0`,left:`100% 0`}[r(n).placedSide.value],transform:{top:`translateY(100%)`,right:`translateY(50%) rotate(90deg) translateX(-50%)`,bottom:`rotate(180deg)`,left:`translateY(50%) rotate(-90deg) translateX(50%)`}[r(n).placedSide.value],visibility:r(n).shouldHideArrow.value?`hidden`:void 0})},[a(me,C(e.$attrs,{ref:r(t),style:{display:`block`},as:e.as,"as-child":e.asChild,rounded:e.rounded,width:e.width,height:e.height}),{default:_(()=>[k(e.$slots,`default`)]),_:3},16,[`as`,`as-child`,`rounded`,`width`,`height`])],4))}}),[K,_e]=L(`TabsRoot`),ve=p({__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(t,{emit:n}){let i=t,a=n,{orientation:o,unmountOnHide:l,dir:u}=s(i),d=R(u);w();let p=S(i,`modelValue`,a,{defaultValue:i.defaultValue,passive:i.modelValue===void 0}),m=c(),h=e(new Set);return _e({modelValue:p,changeModelValue:e=>{p.value=e},orientation:o,dir:d,unmountOnHide:l,activationMode:i.activationMode,baseId:P(void 0,`reka-tabs`),tabsList:m,contentIds:h,registerContent:e=>{h.value=new Set([...h.value,e])},unregisterContent:e=>{let t=new Set(h.value);t.delete(e),h.value=t}}),(e,t)=>(O(),f(r(x),{dir:r(d),"data-orientation":r(o),"as-child":e.asChild,as:e.as},{default:_(()=>[k(e.$slots,`default`,{modelValue:r(p)})]),_:3},8,[`dir`,`data-orientation`,`as-child`,`as`]))}});function q(e,t){return`${e}-trigger-${t}`}function J(e,t){return`${e}-content-${t}`}var ye=p({__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}=s(e),{forwardRef:n,currentElement:i}=w(),o=K();return o.tabsList=i,(e,i)=>(O(),f(r(B),{"as-child":``,orientation:r(o).orientation.value,dir:r(o).dir.value,loop:r(t)},{default:_(()=>[a(r(x),{ref:r(n),role:`tablist`,"as-child":e.asChild,as:e.as,"aria-orientation":r(o).orientation.value},{default:_(()=>[k(e.$slots,`default`)]),_:3},8,[`as-child`,`as`,`aria-orientation`])]),_:3},8,[`orientation`,`dir`,`loop`]))}}),be=p({__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:n}=w(),o=K(),s=i(()=>q(o.baseId,t.value)),c=i(()=>o.contentIds.value.has(t.value)?J(o.baseId,t.value):void 0),u=i(()=>t.value===o.modelValue.value);return(e,t)=>(O(),f(r(V),{"as-child":``,focusable:!e.disabled,active:u.value},{default:_(()=>[a(r(x),{id:s.value,ref:r(n),role:`tab`,type:e.as===`button`?`button`:void 0,as:e.as,"as-child":e.asChild,"aria-selected":u.value?`true`:`false`,"aria-controls":c.value,"data-state":u.value?`active`:`inactive`,disabled:e.disabled,"data-disabled":e.disabled?``:void 0,"data-orientation":r(o).orientation.value,onMousedown:t[0]||=M(t=>{!e.disabled&&t.ctrlKey===!1?r(o).changeModelValue(e.value):t.preventDefault()},[`left`]),onKeydown:t[1]||=l(t=>r(o).changeModelValue(e.value),[`enter`,`space`]),onFocus:t[2]||=()=>{let t=r(o).activationMode!==`manual`;!u.value&&!e.disabled&&t&&r(o).changeModelValue(e.value)}},{default:_(()=>[k(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`]))}}),xe=p({__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 w(),(e,n)=>(O(),f(r(ge),u(m(t)),{default:_(()=>[k(e.$slots,`default`)]),_:3},16))}}),[Y,Se]=L(`TooltipProvider`),Ce=p({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:l,content:u}=s(e);w();let d=c(!0),f=c(!1),{start:p,stop:m}=n(()=>{d.value=!0},r,{immediate:!1});return Se({isOpenDelayed:d,delayDuration:t,onOpen(){m(),d.value=!1},onClose(){p()},isPointerInTransitRef:f,disableHoverableContent:i,disableClosingTrigger:a,disabled:l,ignoreNonKeyboardFocus:o,content:u}),(e,t)=>k(e.$slots,`default`)}}),X=`tooltip.open`,[Z,we]=L(`TooltipRoot`),Te=p({__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 a=e,o=t;w();let s=Y(),l=i(()=>a.disableHoverableContent??s.disableHoverableContent.value),u=i(()=>a.disableClosingTrigger??s.disableClosingTrigger.value),d=i(()=>a.disabled??s.disabled.value),p=i(()=>a.delayDuration??s.delayDuration.value),m=i(()=>a.ignoreNonKeyboardFocus??s.ignoreNonKeyboardFocus.value),g=S(a,`open`,o,{defaultValue:a.defaultOpen,passive:a.open===void 0});h(g,e=>{s.onClose&&(e?(s.onOpen(),document.dispatchEvent(new CustomEvent(X))):s.onClose())});let v=c(!1),y=c(),b=i(()=>g.value?v.value?`delayed-open`:`instant-open`:`closed`),{start:x,stop:C}=n(()=>{v.value=!0,g.value=!0},p,{immediate:!1});function T(){C(),v.value=!1,g.value=!0}function E(){C(),g.value=!1}function D(){x()}return we({contentId:``,open:g,stateAttribute:b,trigger:y,onTriggerChange(e){y.value=e},onTriggerEnter(){s.isOpenDelayed.value?D():T()},onTriggerLeave(){l.value?E():C()},onOpen:T,onClose:E,disableHoverableContent:l,disableClosingTrigger:u,disabled:d,ignoreNonKeyboardFocus:m}),(e,t)=>(O(),f(r(ne),null,{default:_(()=>[k(e.$slots,`default`,{open:r(g)})]),_:3}))}}),Q=p({__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(e,{emit:n}){let o=e,s=n,c=Z(),l=Y(),{forwardRef:u,currentElement:d}=w(),p=i(()=>o.ariaLabel||d.value?.textContent),m=i(()=>{let{ariaLabel:e,...t}=o;return oe(t,l.content.value??{},{side:`top`,sideOffset:0,align:`center`,avoidCollisions:!0,collisionBoundary:[],collisionPadding:0,arrowPadding:0,sticky:`partial`,hideWhenDetached:!1})});return g(()=>{v(window,`scroll`,e=>{e.target?.contains(c.trigger.value)&&c.onClose()},{capture:!0}),v(window,X,c.onClose)}),(e,n)=>(O(),f(r(ae),{"as-child":``,"disable-outside-pointer-events":!1,onEscapeKeyDown:n[0]||=e=>s(`escapeKeyDown`,e),onPointerDownOutside:n[1]||=e=>{r(c).disableClosingTrigger.value&&r(c).trigger.value?.contains(e.target)&&e.preventDefault(),s(`pointerDownOutside`,e)},onFocusOutside:n[2]||=M(()=>{},[`prevent`]),onDismiss:n[3]||=e=>r(c).onClose()},{default:_(()=>[a(r(ie),C({ref:r(u),"data-state":r(c).stateAttribute.value},{...e.$attrs,...m.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:_(()=>[k(e.$slots,`default`),a(r(z),{id:r(c).contentId,role:`tooltip`},{default:_(()=>[E(t(p.value),1)]),_:1},8,[`id`])]),_:3},16,[`data-state`])]),_:3}))}}),Ee=p({__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(e){let t=F(e),{forwardRef:n,currentElement:i}=w(),{trigger:a,onClose:o}=Z(),s=Y(),{isPointerInTransit:c,onPointerExit:l}=H(a,i);return s.isPointerInTransitRef=c,l(()=>{o()}),(e,i)=>(O(),f(Q,C({ref:r(n)},r(t)),{default:_(()=>[k(e.$slots,`default`)]),_:3},16))}}),De=p({__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(e,{emit:t}){let n=e,i=t,a=Z(),o=I(n,i),{forwardRef:s}=w();return(e,t)=>(O(),f(r(se),{present:e.forceMount||r(a).open.value},{default:_(()=>[(O(),f(y(r(a).disableHoverableContent.value?Q:Ee),C({ref:r(s)},r(o)),{default:_(()=>[k(e.$slots,`default`)]),_:3},16))]),_:3},8,[`present`]))}}),$=p({__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)=>(O(),f(r(ce),u(m(t)),{default:_(()=>[k(e.$slots,`default`)]),_:3},16))}}),Oe=p({__name:`TooltipTrigger`,props:{reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`}},setup(e){let t=e,n=Z(),o=Y();n.contentId||=P(void 0,`reka-tooltip-content`);let{forwardRef:s,currentElement:l}=w(),u=c(!1),d=c(!1),p=i(()=>n.disabled.value?{}:{click:E,focus:b,pointermove:v,pointerleave:y,pointerdown:h,blur:S});g(()=>{n.onTriggerChange(l.value)});function m(){setTimeout(()=>{u.value=!1},1)}function h(){n.open&&!n.disableClosingTrigger.value&&n.onClose(),u.value=!0,document.addEventListener(`pointerup`,m,{once:!0})}function v(e){e.pointerType!==`touch`&&!d.value&&!o.isPointerInTransitRef.value&&(n.onTriggerEnter(),d.value=!0)}function y(){n.onTriggerLeave(),d.value=!1}function b(e){u.value||n.ignoreNonKeyboardFocus.value&&!e.target.matches?.(`:focus-visible`)||n.onOpen()}function S(){n.onClose()}function E(){n.disableClosingTrigger.value||n.onClose()}return(e,i)=>(O(),f(r(re),{"as-child":``,reference:e.reference},{default:_(()=>[a(r(x),C({ref:r(s),"aria-describedby":r(n).open.value?r(n).contentId:void 0,"data-state":r(n).stateAttribute.value,as:e.as,"as-child":t.asChild,"data-grace-area-trigger":``},T(p.value)),{default:_(()=>[k(e.$slots,`default`)]),_:3},16,[`aria-describedby`,`data-state`,`as`,`as-child`])]),_:3},8,[`reference`]))}}),ke=p({__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(e,{emit:t}){let n=e,i=t,a=I(j(n,`class`),i);return(e,t)=>(O(),f(r(ve),C({"data-slot":`tabs`,"data-orientation":r(a).orientation||`horizontal`},r(a),{class:r(D)(`gap-2 group/tabs flex data-[orientation=horizontal]:flex-col`,n.class)}),{default:_(t=>[k(e.$slots,`default`,u(m(t)))]),_:3},16,[`data-orientation`,`class`]))}}),Ae=p({__name:`TabsList`,props:{loop:{type:Boolean},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]},variant:{default:`default`}},setup(e){let t=e,n=j(t,`class`,`variant`);return(i,a)=>(O(),f(r(ye),C({"data-slot":`tabs-list`,"data-variant":e.variant},r(n),{class:r(D)(`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`,e.variant===`default`&&`bg-muted`,e.variant===`line`&&`gap-1 bg-transparent`,t.class)}),{default:_(()=>[k(i.$slots,`default`)]),_:3},16,[`data-variant`,`class`]))}}),je=p({__name:`TabsTrigger`,props:{value:{},disabled:{type:Boolean},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(e){let t=e,n=F(j(t,`class`));return(e,i)=>(O(),f(r(be),C({"data-slot":`tabs-trigger`,class:r(D)(`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`,t.class)},r(n)),{default:_(()=>[k(e.$slots,`default`)]),_:3},16,[`class`]))}}),Me=p({__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(e,{emit:t}){let n=I(e,t);return(e,t)=>(O(),f(r(Te),C({"data-slot":`tooltip`},r(n)),{default:_(t=>[k(e.$slots,`default`,u(m(t)))]),_:3},16))}}),Ne=p({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(e,{emit:t}){let n=e,i=t,o=I(j(n,`class`),i);return(e,t)=>(O(),f(r($),null,{default:_(()=>[a(r(De),C({"data-slot":`tooltip-content`},{...r(o),...e.$attrs},{class:r(D)(`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)`,n.class)}),{default:_(()=>[k(e.$slots,`default`),a(r(xe),{class:`size-2.5 rotate-45 rounded-[2px] bg-foreground fill-foreground z-dropdown translate-y-[calc(-50%_-_2px)]`})]),_:3},16,[`class`])]),_:3}))}}),Pe=p({__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)=>(O(),f(r(Ce),u(m(t)),{default:_(()=>[k(e.$slots,`default`)]),_:3},16))}}),Fe=p({__name:`TooltipTrigger`,props:{reference:{},asChild:{type:Boolean},as:{}},setup(e){let t=e;return(e,n)=>(O(),f(r(Oe),C({"data-slot":`tooltip-trigger`},t),{default:_(()=>[k(e.$slots,`default`)]),_:3},16))}});export{je as a,J as c,Me as i,q as l,Pe as n,Ae as o,Ne as r,ke as s,Fe as t,K as u};
@@ -0,0 +1,3 @@
1
+ import{B as e,Bt as t,D as n,Ft as r,G as i,H as a,J as o,K as s,Lt as c,M as l,Nt as u,Ot as d,Rt as f,T as p,U as m,W as h,Y as g,Z as _,_t as v,at as y,bt as b,ft as x,i as S,lt as C,n as w,nt as T,o as E,ot as D,p as O,q as k,r as A,rt as j,st as M,ut as N,vt as P,x as F,zt as I}from"./button-zud8Qspb.js";import{t as ee}from"./check-CRv7NpkT.js";import{a as te}from"./PopperContent-Bd_mpt_D.js";import{t as ne}from"./copy-CIHn6HDL.js";import{t as L}from"./file-text-LfP0_JRK.js";import{n as re,t as ie}from"./useNonce-D_84NiFG.js";import{o as R,s as ae,y as z}from"./Teleport-CLw1Jxrb.js";import{n as oe}from"./Collection-BulopTxo.js";import{a as se,o as ce,s as le}from"./TooltipTrigger-bqCyq9MU.js";import{n as ue,t as de}from"./CollapsibleContent-CdeCo0Ko.js";import{t as fe}from"./CollapsibleTrigger-CMd4wTNY.js";import{a as pe,i as me,n as he,o as ge,t as _e}from"./dialog-Da8YFS7g.js";import{t as B}from"./badge-CpT5q-jI.js";import{t as ve}from"./useClipboard-C2i7YvJ-.js";var ye=l(`arrow-down`,[[`path`,{d:`M12 5v14`,key:`s699le`}],[`path`,{d:`m19 12-7 7-7-7`,key:`1idqje`}]]),be=l(`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`}]]),xe=l(`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=l(`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`}]]),Se=l(`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`}]]),Ce=l(`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`}]]),[H,we]=z(`ScrollAreaRoot`),Te=g({__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=d(0),a=d(0),o=d(),s=d(),c=d(),l=d(),f=d(!1),p=d(!1),{type:m,dir:g,scrollHideDelay:_}=u(n),v=oe(g);function y(){o.value?.scrollTo({top:0})}function x(){o.value?.scrollTo({top:0,left:0})}t({viewport:o,scrollTop:y,scrollTopLeft:x});let{forwardRef:C,currentElement:w}=E();return we({type:m,dir:v,scrollHideDelay:_,scrollArea:w,viewport:o,onViewportChange:e=>{o.value=e||void 0},content:s,onContentChange:e=>{s.value=e},scrollbarX:c,scrollbarXEnabled:f,scrollbarY:l,scrollbarYEnabled:p,onScrollbarXChange:e=>{c.value=e||void 0},onScrollbarYChange:e=>{l.value=e||void 0},onScrollbarXEnabledChange:e=>{f.value=e},onScrollbarYEnabledChange:e=>{p.value=e},onCornerWidthChange:e=>{i.value=e},onCornerHeightChange:e=>{a.value=e}}),(e,t)=>(M(),h(r(S),{ref:r(C),"as-child":n.asChild,as:e.as,dir:r(v),style:I({position:`relative`,"--reka-scroll-area-corner-width":`${i.value}px`,"--reka-scroll-area-corner-height":`${a.value}px`})},{default:b(()=>[N(e.$slots,`default`)]),_:3},8,[`as-child`,`as`,`dir`,`style`]))}}),Ee=g({__name:`ScrollAreaCornerImpl`,setup(e){let t=H(),n=d(0),o=d(0),s=a(()=>!!n.value&&!!o.value);function c(){let e=t.scrollbarX.value?.offsetHeight||0;t.onCornerHeightChange(e),o.value=e}function l(){let e=t.scrollbarY.value?.offsetWidth||0;t.onCornerWidthChange(e),n.value=e}return O(t.scrollbarX.value,c),O(t.scrollbarY.value,l),v(()=>t.scrollbarX.value,c),v(()=>t.scrollbarY.value,l),(e,a)=>s.value?(M(),h(r(S),T({key:0,style:{width:`${n.value}px`,height:`${o.value}px`,position:`absolute`,right:r(t).dir.value===`ltr`?0:void 0,left:r(t).dir.value===`rtl`?0:void 0,bottom:0}},e.$parent?.$props),{default:b(()=>[N(e.$slots,`default`)]),_:3},16,[`style`])):i(`v-if`,!0)}}),De=g({__name:`ScrollAreaCorner`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e,{forwardRef:n}=E(),o=H(),s=a(()=>!!o.scrollbarX.value&&!!o.scrollbarY.value),c=a(()=>o.type.value!==`scroll`&&s.value);return(e,a)=>c.value?(M(),h(Ee,T({key:0},t,{ref:r(n)}),{default:b(()=>[N(e.$slots,`default`)]),_:3},16)):i(`v-if`,!0)}});function Oe(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 U(e){let t=W(e.viewport,e.content),n=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,r=(e.scrollbar.size-n)*t;return Math.max(r,18)}function W(e,t){let n=e/t;return Number.isNaN(n)?0:n}function ke(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 G(e,t,n=`ltr`){let r=U(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=re(e,c[0],c[1]);return Oe([0,o],[0,s])(l)}function K(e){return e?Number.parseInt(e,10):0}function Ae(e,t,n,r=`ltr`){let i=U(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 Oe([c,l],d)(e)}function je(e,t){return e>0&&e<t}var Me=g({__name:`ScrollAreaScrollbarX`,setup(e){let t=H(),n=Y(),{forwardRef:i,currentElement:o}=E();y(()=>{o.value&&t.onScrollbarXChange(o.value)});let s=a(()=>n.sizes.value);return(e,a)=>(M(),h(Be,{ref:r(i),"is-horizontal":!0,"data-orientation":`horizontal`,style:I({bottom:0,left:r(t).dir.value===`rtl`?`var(--reka-scroll-area-corner-width)`:0,right:r(t).dir.value===`ltr`?`var(--reka-scroll-area-corner-width)`:0,"--reka-scroll-area-thumb-width":s.value?`${r(U)(s.value)}px`:void 0}),onOnDragScroll:a[0]||=e=>r(n).onDragScroll(e.x)},{default:b(()=>[N(e.$slots,`default`)]),_:3},8,[`style`]))}}),Ne=g({__name:`ScrollAreaScrollbarY`,setup(e){let t=H(),n=Y(),{forwardRef:i,currentElement:o}=E();y(()=>{o.value&&t.onScrollbarYChange(o.value)});let s=a(()=>n.sizes.value);return(e,a)=>(M(),h(Be,{ref:r(i),"is-horizontal":!1,"data-orientation":`vertical`,style:I({top:0,right:r(t).dir.value===`ltr`?0:void 0,left:r(t).dir.value===`rtl`?0:void 0,bottom:`var(--reka-scroll-area-corner-height)`,"--reka-scroll-area-thumb-height":s.value?`${r(U)(s.value)}px`:void 0}),onOnDragScroll:a[0]||=e=>r(n).onDragScroll(e.y)},{default:b(()=>[N(e.$slots,`default`)]),_:3},8,[`style`]))}}),q=g({__name:`ScrollAreaScrollbarAuto`,props:{forceMount:{type:Boolean,required:!1}},setup(e){let t=H(),n=J(),{forwardRef:i}=E(),a=d(!1),s=p(()=>{if(t.viewport.value){let e=t.viewport.value.offsetWidth<t.viewport.value.scrollWidth,r=t.viewport.value.offsetHeight<t.viewport.value.scrollHeight;a.value=n.isHorizontal.value?e:r}},10);return y(()=>s()),O(t.viewport,s),O(t.content,s),(e,t)=>(M(),h(r(R),{present:e.forceMount||a.value},{default:b(()=>[o(X,T(e.$attrs,{ref:r(i),"data-state":a.value?`visible`:`hidden`}),{default:b(()=>[N(e.$slots,`default`)]),_:3},16,[`data-state`])]),_:3},8,[`present`]))}}),Pe=g({inheritAttrs:!1,__name:`ScrollAreaScrollbarGlimpse`,props:{forceMount:{type:Boolean,required:!1}},setup(e){let t=H(),n=J(),{forwardRef:i}=E(),{state:s,dispatch:c}=ae(`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`}}),l=a(()=>s.value!==`hidden`);function u(){c(`POINTER_ENTER`)}function d(){c(`POINTER_LEAVE`)}let f=p(()=>c(`SCROLL_END`),100);return P(e=>{if(s.value===`glimpse`){let n=window.setTimeout(c,t.scrollHideDelay.value,`HIDE`);e(()=>{window.clearTimeout(n)})}}),P(e=>{if(s.value===`idle`){let n=window.setTimeout(c,t.scrollHideDelay.value,`HIDE`);e(()=>{window.clearTimeout(n)})}}),P(e=>{let r=t.viewport.value,i=n.isHorizontal.value?`scrollLeft`:`scrollTop`;if(r){let t=r[i],n=()=>{let e=r[i];t!==e&&(c(`SCROLL`),f()),t=e};r.addEventListener(`scroll`,n),e(()=>{r.removeEventListener(`scroll`,n)})}}),y(()=>{let e=t.scrollArea.value;e&&(e.addEventListener(`pointerenter`,u),e.addEventListener(`pointerleave`,d))}),D(()=>{let e=t.scrollArea.value;e&&(e.removeEventListener(`pointerenter`,u),e.removeEventListener(`pointerleave`,d))}),(e,t)=>(M(),h(r(R),{present:e.forceMount||l.value},{default:b(()=>[o(q,T(e.$attrs,{ref:r(i),"data-state":l.value?`visible`:`hidden`}),{default:b(()=>[N(e.$slots,`default`)]),_:3},16,[`data-state`])]),_:3},8,[`present`]))}}),Fe=g({inheritAttrs:!1,__name:`ScrollAreaScrollbarHover`,props:{forceMount:{type:Boolean,required:!1}},setup(e){let t=H(),{forwardRef:n}=E(),i,a=d(!1);function s(){window.clearTimeout(i),a.value=!0}function c(){i=window.setTimeout(()=>{a.value=!1},t.scrollHideDelay.value)}return y(()=>{let e=t.scrollArea.value;e&&(e.addEventListener(`pointerenter`,s),e.addEventListener(`pointerleave`,c))}),D(()=>{let e=t.scrollArea.value;e&&(window.clearTimeout(i),e.removeEventListener(`pointerenter`,s),e.removeEventListener(`pointerleave`,c))}),(e,t)=>(M(),h(r(R),{present:e.forceMount||a.value},{default:b(()=>[o(q,T(e.$attrs,{ref:r(n),"data-state":a.value?`visible`:`hidden`}),{default:b(()=>[N(e.$slots,`default`)]),_:3},16,[`data-state`])]),_:3},8,[`present`]))}}),Ie=g({__name:`ScrollAreaScrollbarScroll`,props:{forceMount:{type:Boolean,required:!1}},setup(e){let t=H(),n=J(),{forwardRef:i}=E(),{state:s,dispatch:c}=ae(`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`}}),l=a(()=>s.value!==`hidden`);P(e=>{if(s.value===`idle`){let n=window.setTimeout(c,t.scrollHideDelay.value,`HIDE`);e(()=>{window.clearTimeout(n)})}});let u=p(()=>c(`SCROLL_END`),100);return P(e=>{let r=t.viewport.value,i=n.isHorizontal.value?`scrollLeft`:`scrollTop`;if(r){let t=r[i],n=()=>{let e=r[i];t!==e&&(c(`SCROLL`),u()),t=e};r.addEventListener(`scroll`,n),e(()=>{r.removeEventListener(`scroll`,n)})}}),(e,t)=>(M(),h(r(R),{present:e.forceMount||l.value},{default:b(()=>[o(X,T(e.$attrs,{ref:r(i),"data-state":l.value?`visible`:`hidden`}),{default:b(()=>[N(e.$slots,`default`)]),_:3},16,[`data-state`])]),_:3},8,[`present`]))}}),[J,Le]=z(`ScrollAreaScrollbar`),Re=g({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(e){let t=e,{forwardRef:n}=E(),o=H(),s=a(()=>t.orientation===`horizontal`);v(s,()=>{s.value?o.onScrollbarXEnabledChange(!0):o.onScrollbarYEnabledChange(!0)},{immediate:!0}),D(()=>{o.onScrollbarXEnabledChange(!1),o.onScrollbarYEnabledChange(!1)});let{orientation:c,forceMount:l,asChild:d,as:f}=u(t);return Le({orientation:c,forceMount:l,isHorizontal:s,as:f,asChild:d}),(e,t)=>r(o).type.value===`hover`?(M(),h(Fe,T({key:0},e.$attrs,{ref:r(n),"force-mount":r(l)}),{default:b(()=>[N(e.$slots,`default`)]),_:3},16,[`force-mount`])):r(o).type.value===`scroll`?(M(),h(Ie,T({key:1},e.$attrs,{ref:r(n),"force-mount":r(l)}),{default:b(()=>[N(e.$slots,`default`)]),_:3},16,[`force-mount`])):r(o).type.value===`glimpse`?(M(),h(Pe,T({key:2},e.$attrs,{ref:r(n),"force-mount":r(l)}),{default:b(()=>[N(e.$slots,`default`)]),_:3},16,[`force-mount`])):r(o).type.value===`auto`?(M(),h(q,T({key:3},e.$attrs,{ref:r(n),"force-mount":r(l)}),{default:b(()=>[N(e.$slots,`default`)]),_:3},16,[`force-mount`])):r(o).type.value===`always`?(M(),h(X,T({key:4},e.$attrs,{ref:r(n),"data-state":`visible`}),{default:b(()=>[N(e.$slots,`default`)]),_:3},16)):i(`v-if`,!0)}}),[Y,ze]=z(`ScrollAreaScrollbarVisible`),X=g({__name:`ScrollAreaScrollbarVisible`,setup(e){let t=H(),n=J(),{forwardRef:i}=E(),o=d({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),s=a(()=>{let e=W(o.value.viewport,o.value.content);return e>0&&e<1}),c=d(),l=d(0);function u(e,n){if(_.value){let r=t.viewport.value.scrollLeft+e.deltaY;t.viewport.value.scrollLeft=r,je(r,n)&&e.preventDefault()}else{let r=t.viewport.value.scrollTop+e.deltaY;t.viewport.value.scrollTop=r,je(r,n)&&e.preventDefault()}}function f(e,t){_.value?l.value=t.x:l.value=t.y}function p(e){l.value=0}function m(e){o.value=e}function g(e,t){return Ae(e,l.value,o.value,t)}let _=a(()=>n.isHorizontal.value);function v(e){_.value?t.viewport.value.scrollLeft=g(e,t.dir.value):t.viewport.value.scrollTop=g(e)}function y(){if(_.value){if(t.viewport.value&&c.value){let e=t.viewport.value.scrollLeft,n=G(e,o.value,t.dir.value);c.value.style.transform=`translate3d(${n}px, 0, 0)`}}else if(t.viewport.value&&c.value){let e=t.viewport.value.scrollTop,n=G(e,o.value);c.value.style.transform=`translate3d(0, ${n}px, 0)`}}function x(e){c.value=e}return ze({sizes:o,hasThumb:s,handleWheelScroll:u,handleThumbDown:f,handleThumbUp:p,handleSizeChange:m,onThumbPositionChange:y,onThumbChange:x,onDragScroll:v}),(e,t)=>_.value?(M(),h(Me,T({key:0},e.$attrs,{ref:r(i)}),{default:b(()=>[N(e.$slots,`default`)]),_:3},16)):(M(),h(Ne,T({key:1},e.$attrs,{ref:r(i)}),{default:b(()=>[N(e.$slots,`default`)]),_:3},16))}}),Be=g({__name:`ScrollAreaScrollbarImpl`,props:{isHorizontal:{type:Boolean,required:!0}},emits:[`onDragScroll`,`onWheelScroll`,`onThumbPointerDown`],setup(e,{emit:t}){let n=e,i=t,a=H(),o=Y(),s=J(),{forwardRef:c,currentElement:l}=E(),u=d(``),f=d();function p(e){f.value&&i(`onDragScroll`,{x:e.clientX-f.value?.left,y:e.clientY-f.value?.top})}function m(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 g(e){p(e)}function _(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 v(e){let t=e.target,n=l.value?.contains(t),r=o.sizes.value.content-o.sizes.value.viewport;n&&o.handleWheelScroll(e,r)}y(()=>{document.addEventListener(`wheel`,v,{passive:!1})}),D(()=>{document.removeEventListener(`wheel`,v)});function x(){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 O(l,x),O(a.content,x),(e,t)=>(M(),h(r(S),{ref:r(c),style:{position:`absolute`},"data-scrollbarimpl":``,as:r(s).as.value,"as-child":r(s).asChild.value,onPointerdown:m,onPointermove:g,onPointerup:_},{default:b(()=>[N(e.$slots,`default`)]),_:3},8,[`as`,`as-child`]))}}),Ve=g({__name:`ScrollAreaThumb`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e,i=H(),o=Y();function s(e){let t=e.target.getBoundingClientRect(),n=e.clientX-t.left,r=e.clientY-t.top;o.handleThumbDown(e,{x:n,y:r})}function c(e){o.handleThumbUp(e)}let{forwardRef:l,currentElement:u}=E(),f=d(),p=a(()=>i.viewport.value);function m(){f.value||(f.value=ke(p.value,o.onThumbPositionChange),o.onThumbPositionChange())}return n(a(()=>o.sizes.value),()=>{o.onThumbChange(u.value),p.value&&(o.onThumbPositionChange(),p.value.addEventListener(`scroll`,m))}),D(()=>{p.value.removeEventListener(`scroll`,m),i.viewport.value?.removeEventListener(`scroll`,m)}),(e,n)=>(M(),h(r(S),{ref:r(l),"data-state":r(o).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:s,onPointerup:c},{default:b(()=>[N(e.$slots,`default`)]),_:3},8,[`data-state`,`as-child`,`as`]))}}),He=g({inheritAttrs:!1,__name:`ScrollAreaViewport`,props:{nonce:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(t,{expose:n}){let i=t,{nonce:a}=u(i),c=ie(a),l=H(),f=d();y(()=>{l.onViewportChange(f.value),l.onContentChange(h.value)}),n({viewportElement:f});let{forwardRef:p,currentElement:h}=E();return(t,n)=>(M(),s(e,null,[m(`div`,T({ref_key:`viewportElement`,ref:f,"data-reka-scroll-area-viewport":``,style:{overflowX:r(l).scrollbarXEnabled.value?`scroll`:`hidden`,overflowY:r(l).scrollbarYEnabled.value?`scroll`:`hidden`}},t.$attrs,{tabindex:0}),[o(r(S),{ref:r(p),style:I({minWidth:r(l).scrollbarXEnabled.value?`fit-content`:void 0}),"as-child":i.asChild,as:t.as},{default:b(()=>[N(t.$slots,`default`)]),_:3},8,[`style`,`as-child`,`as`])],16),o(r(S),{as:`style`,nonce:r(c)},{default:b(()=>n[0]||=[k(` /* 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))}}),Ue=g({__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(e){let t=e,n=[`horizontal`,`vertical`];function i(e){return n.includes(e)}let o=a(()=>i(t.orientation)?t.orientation:`horizontal`),s=a(()=>o.value===`vertical`?t.orientation:void 0),c=a(()=>t.decorative?{role:`none`}:{"aria-orientation":s.value,role:`separator`});return(e,t)=>(M(),h(r(S),T({as:e.as,"as-child":e.asChild,"data-orientation":o.value},c.value),{default:b(()=>[N(e.$slots,`default`)]),_:3},16,[`as`,`as-child`,`data-orientation`]))}}),We=g({__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)=>(M(),h(Ue,f(_(t)),{default:b(()=>[N(e.$slots,`default`)]),_:3},16))}}),Z=g({__name:`Separator`,props:{orientation:{default:`horizontal`},decorative:{type:Boolean,default:!0},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(e){let t=e,n=F(t,`class`);return(e,i)=>(M(),h(r(We),T({"data-slot":`separator`},r(n),{class:r(A)(`shrink-0 bg-border data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:w-px data-[orientation=vertical]:self-stretch`,t.class)}),null,16,[`class`]))}}),Q=1e3;function Ge(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)/Q;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:e.clientRequest??null,upstreamRequest:e.upstreamRequest??null,responseBody:t??null,upstreamResponse:null,errorMessage:null,createdAt:null,inputTokensEstimated:!1}}function Ke(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}}var qe=[`stream_error: upstream returned 200 but body contains error`];function Je(e){return e?qe.some(t=>e.startsWith(t)):!1}function Ye(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)/Q;t>0&&(i=n/t)}let a=Ke(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===`openai`||e.api_type===`anthropic`?e.api_type:`openai`,providerName:e.provider_name,clientIp:void 0,sessionId:e.session_id??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)>=400?`failed`:`completed`,clientRequest:e.client_request,upstreamRequest:e.upstream_request,responseBody:a,upstreamResponse:e.upstream_response,errorMessage:Je(e.error_message)?null:e.error_message,createdAt:e.created_at,inputTokensEstimated:e.input_tokens_estimated===1}}var Xe=g({__name:`ScrollBar`,props:{orientation:{default:`vertical`},forceMount:{type:Boolean},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(e){let t=e,n=F(t,`class`);return(i,a)=>(M(),h(r(Re),T({"data-slot":`scroll-area-scrollbar`,"data-orientation":e.orientation},r(n),{class:r(A)(`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`,t.class)}),{default:b(()=>[o(r(Ve),{"data-slot":`scroll-area-thumb`,class:`rounded-full relative flex-1 bg-border`})]),_:1},16,[`data-orientation`,`class`]))}}),$=g({__name:`ScrollArea`,props:{type:{},dir:{},scrollHideDelay:{},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(e){let t=e,n=F(t,`class`);return(e,i)=>(M(),h(r(Te),T({"data-slot":`scroll-area`},r(n),{class:r(A)(`relative`,t.class)}),{default:b(()=>[o(r(He),{"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:b(()=>[N(e.$slots,`default`)]),_:3}),o(Xe),o(r(De))]),_:3},16,[`class`]))}});function Ze(e,t){if(!e)return t||``;try{let n=JSON.parse(e);return typeof n.statusCode==`number`&&(n.headers||n.body!==void 0)?n.body===null&&t?JSON.stringify({...n,body:t},null,2):JSON.stringify(n,null,2):e}catch{return e}}var Qe=new Set([`choices`,`content`]);function $e(e,t){if(!e&&!t)return``;let n=et(e),r=n?.headers,i=n?.body??t;if(r){let e={headers:r};return i&&(e.body=tt(i)),JSON.stringify(e,null,2)}if(i){let e=tt(i);return JSON.stringify(e,null,2)}return``}function et(e){if(!e)return null;try{let t=JSON.parse(e);return typeof t.statusCode==`number`&&(t.headers||t.body!==void 0)?{headers:t.headers??{},body:typeof t.body==`string`?t.body:t.body==null?null:JSON.stringify(t.body)}:null}catch{return null}}function tt(e){try{let t=JSON.parse(e);if(typeof t==`object`&&t){let e={};for(let[n,r]of Object.entries(t))Qe.has(n)||(e[n]=r);return e}return e}catch{return e}}var nt={class:`space-y-3`},rt={class:`flex items-center justify-between`},it={class:`p-3 text-[11px] whitespace-pre-wrap break-words`},at={class:`flex items-baseline gap-1 min-w-0`},ot={class:`font-mono text-[11px] font-semibold truncate min-w-0`},st={class:`text-[10px] text-muted-foreground flex-shrink-0`},ct={class:`flex items-center gap-1.5`},lt={key:0,class:`flex items-center gap-1.5`},ut={class:`font-mono text-[11px] text-muted-foreground truncate`},dt={class:`grid grid-cols-2 gap-1.5`},ft={class:`bg-muted/50 rounded-md px-2 py-1.5 min-w-0`},pt={class:`text-sm font-semibold truncate`},mt={class:`bg-muted/50 rounded-md px-2 py-1.5 min-w-0`},ht={class:`text-sm font-semibold truncate`},gt={class:`bg-muted/50 rounded-md px-2 py-1.5 min-w-0`},_t={class:`text-[10px] text-muted-foreground`},vt={class:`text-sm font-semibold truncate`},yt={class:`bg-muted/50 rounded-md px-2 py-1.5 min-w-0`},bt={class:`bg-muted/50 rounded-md px-2 py-1.5 min-w-0`},xt={class:`text-sm font-semibold truncate`},St={class:`bg-muted/50 rounded-md px-2 py-1.5 min-w-0`},Ct={class:`text-sm font-semibold truncate`},wt={class:`space-y-1.5`},Tt={key:0,class:`text-[11px] text-muted-foreground`},Et={class:`text-muted-foreground`},Dt={class:`text-muted-foreground`},Ot={class:`space-y-1`},kt={key:0,class:`flex items-center justify-between text-[11px]`},At={class:`font-mono`},jt={key:1,class:`flex items-center justify-between text-[11px]`},Mt={class:`font-mono truncate max-w-[160px]`},Nt=g({__name:`RequestOverviewPanel`,props:{overview:{}},setup(n){let l=n,u=d(!1),f=a(()=>$e(l.overview.upstreamResponse,l.overview.responseBody)||JSON.stringify({latencyMs:l.overview.latencyMs,ttftMs:l.overview.ttftMs,inputTokens:l.overview.inputTokens,outputTokens:l.overview.outputTokens,tokensPerSecond:l.overview.tokensPerSecond,cacheReadTokens:l.overview.cacheReadTokens,cacheWriteTokens:l.overview.cacheWriteTokens,stopReason:l.overview.stopReason,statusCode:l.overview.statusCode},null,2)),p=a(()=>{if(l.overview.status===`pending`)return`pending`;let e=l.overview.statusCode;return l.overview.status===`failed`||e!=null&&e>=400?`error`:`success`}),g=a(()=>l.overview.status===`pending`&&l.overview.outputTokens!=null),_=a(()=>{let e=l.overview.outputTokens;return e==null?`--`:g.value?`+${e}`:String(e)}),v=a(()=>l.overview.status===`pending`&&l.overview.latencyMs==null?`...`:l.overview.latencyMs==null?`--`:`${(l.overview.latencyMs/Q).toFixed(1)}s`),y=a(()=>{if(l.overview.tokensPerSecond!=null)return`${l.overview.tokensPerSecond.toFixed(1)}`;let{outputTokens:e,latencyMs:t}=l.overview;return e&&t?`${(e/t*Q).toFixed(1)}`:`--`});function S(e){return e!=null&&e>=400}return(a,l)=>(M(),s(`div`,nt,[m(`div`,rt,[l[1]||=m(`span`,{class:`text-xs font-medium text-muted-foreground`},`请求概览`,-1),o(r(w),{size:`sm`,variant:`outline`,class:`h-6 gap-1 text-xs`,onClick:l[0]||=e=>u.value=!u.value},{default:b(()=>[(M(),h(x(u.value?r(L):r(V)),{class:`h-3 w-3`})),k(` `+t(u.value?`结构化`:`原始数据`),1)]),_:1})]),u.value?(M(),h(r($),{key:0,class:`rounded-md border flex-1`},{default:b(()=>[m(`pre`,it,t(f.value),1)]),_:1})):i(``,!0),u.value?i(``,!0):(M(),s(e,{key:1},[m(`div`,at,[m(`span`,ot,t(n.overview.model),1),m(`span`,st,`@ `+t(n.overview.providerName||`unknown`),1)]),m(`div`,ct,[p.value===`pending`?(M(),h(r(B),{key:0,variant:`outline`,class:`border-warning/30 bg-warning-light text-warning-dark`},{default:b(()=>[...l[2]||=[m(`span`,{class:`w-1.5 h-1.5 rounded-full bg-warning animate-pulse`},null,-1),k(` 进行中 `,-1)]]),_:1})):p.value===`error`?(M(),h(r(B),{key:1,variant:`outline`,class:`border-danger/30 bg-danger-light text-danger-dark`},{default:b(()=>[k(t(n.overview.statusCode??`失败`),1)]),_:1})):(M(),h(r(B),{key:2,variant:`outline`,class:`border-success/30 bg-success-light text-success-dark`},{default:b(()=>[...l[3]||=[m(`span`,{class:`w-1.5 h-1.5 rounded-full bg-success`},null,-1),k(` 已完成 `,-1)]]),_:1})),o(r(B),{variant:`outline`},{default:b(()=>[k(t(n.overview.isStream?`SSE`:`非流式`),1)]),_:1}),o(r(B),{variant:`outline`},{default:b(()=>[k(t(n.overview.apiType),1)]),_:1})]),n.overview.sessionId?(M(),s(`div`,lt,[o(r(B),{variant:`secondary`,class:`text-[10px]`},{default:b(()=>[...l[4]||=[k(`Session`,-1)]]),_:1}),m(`span`,ut,t(n.overview.sessionId.slice(0,8)),1)])):i(``,!0),m(`div`,dt,[m(`div`,ft,[l[5]||=m(`div`,{class:`text-[10px] text-muted-foreground`},`耗时`,-1),m(`div`,pt,t(v.value),1)]),m(`div`,mt,[l[6]||=m(`div`,{class:`text-[10px] text-muted-foreground`},`TTFT`,-1),m(`div`,ht,t(n.overview.ttftMs==null?`--`:`${n.overview.ttftMs}ms`),1)]),m(`div`,gt,[m(`div`,_t,t(n.overview.inputTokensEstimated?`Est Input Tokens`:`Input Tokens`),1),m(`div`,vt,t(n.overview.inputTokens==null?`--`:n.overview.inputTokens),1)]),m(`div`,yt,[l[7]||=m(`div`,{class:`text-[10px] text-muted-foreground`},`Output Tokens`,-1),m(`div`,{class:c([`text-sm font-semibold truncate`,g.value?`diff-added`:``])},t(_.value),3)]),m(`div`,bt,[l[8]||=m(`div`,{class:`text-[10px] text-muted-foreground`},`速度 (tok/s)`,-1),m(`div`,xt,t(y.value),1)]),m(`div`,St,[l[9]||=m(`div`,{class:`text-[10px] text-muted-foreground`},`Cache Read`,-1),m(`div`,Ct,t(n.overview.cacheReadTokens==null?`--`:n.overview.cacheReadTokens),1)])]),o(r(Z)),m(`div`,wt,[l[10]||=m(`span`,{class:`text-[10px] text-muted-foreground uppercase tracking-wider`},`尝试历史`,-1),n.overview.attempts.length===0?(M(),s(`div`,Tt,`无重试`)):i(``,!0),(M(!0),s(e,null,C(n.overview.attempts,(e,n)=>(M(),s(`div`,{key:n,class:`flex items-center gap-1 text-[11px]`},[m(`span`,Et,`#`+t(n+1),1),m(`span`,{class:c(S(e.statusCode)?`diff-removed`:`diff-added`)},t(e.statusCode??`--`),3),m(`span`,Dt,t((e.latencyMs/r(Q)).toFixed(1))+`s`,1)]))),128))]),o(r(Z)),m(`div`,Ot,[n.overview.statusCode==null?i(``,!0):(M(),s(`div`,kt,[l[11]||=m(`span`,{class:`text-muted-foreground`},`状态码`,-1),m(`span`,At,t(n.overview.statusCode),1)])),n.overview.clientIp?(M(),s(`div`,jt,[l[12]||=m(`span`,{class:`text-muted-foreground`},`Client IP`,-1),m(`span`,Mt,t(n.overview.clientIp),1)])):i(``,!0)])],64))]))}}),Pt={key:0,class:`rounded-md border bg-card`},Ft={class:`flex items-center gap-1.5 px-2.5 py-1.5 border-b`},It={class:`px-2.5 py-2`},Lt={key:0,class:`inline-block w-1.5 h-3.5 dot-success animate-pulse ml-0.5 align-text-bottom`},Rt={class:`flex items-center gap-1.5 px-2.5 py-1.5 cursor-pointer hover:brightness-95 rounded-t-md`},zt={class:`text-xs font-medium`},Bt={key:0,class:`text-xs text-muted-foreground`},Vt={class:`px-2.5 pb-2`},Ht=g({__name:`ContentBlockRenderer`,props:{type:{},content:{},name:{default:void 0},defaultOpen:{type:Boolean,default:!0},showCursor:{type:Boolean,default:!1},autoScroll:{type:Boolean,default:!1}},setup(e){let n=e,l=d(n.type===`text`?!0:n.defaultOpen),u=d(null),f=a(()=>{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`}}),p=a(()=>{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`}}),g=a(()=>{switch(n.type){case`thinking`:return be;case`tool_use`:return Ce;case`tool_result`:return xe;default:return Se}}),_=a(()=>{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`}}),y=a(()=>{switch(n.type){case`thinking`:return`Thinking`;case`tool_use`:return`Tool Use`;case`tool_result`:return`Tool Result`;default:return``}}),S=a(()=>n.type===`tool_use`?`(等待数据...)`:n.type===`tool_result`?`(无返回数据)`:``);return v(()=>n.content,()=>{n.autoScroll&&j(()=>{let e=u.value;e&&(e.scrollTop=e.scrollHeight)})}),(n,a)=>e.type===`text`?(M(),s(`div`,Pt,[m(`div`,Ft,[o(r(Se),{class:`h-3.5 w-3.5 diff-added`}),a[1]||=m(`span`,{class:`text-xs font-medium`},`Reply`,-1)]),m(`div`,It,[m(`pre`,{ref_key:`contentRef`,ref:u,class:`text-xs overflow-y-auto whitespace-pre-wrap break-words`,style:{"max-height":`300px`}},[m(`code`,null,[k(t(e.content),1),e.showCursor?(M(),s(`span`,Lt)):i(``,!0)])],512)])])):(M(),h(r(ue),{key:1,open:l.value,"onUpdate:open":a[0]||=e=>l.value=e,class:c([`rounded-md border`,f.value])},{default:b(()=>[o(r(fe),{"as-child":``},{default:b(()=>[m(`div`,Rt,[o(r(te),{class:c([`h-3 w-3 transition-transform duration-200`,{"rotate-180":!l.value}])},null,8,[`class`]),(M(),h(x(g.value),{class:c([`h-3.5 w-3.5`,_.value])},null,8,[`class`])),m(`span`,zt,t(y.value),1),e.type===`thinking`?(M(),s(`span`,Bt,`(`+t(e.content.length)+` 字符)`,1)):i(``,!0),e.type===`tool_use`&&e.name?(M(),h(r(B),{key:1,variant:`secondary`,class:`text-xs`},{default:b(()=>[k(t(e.name),1)]),_:1})):i(``,!0)])]),_:1}),o(r(de),null,{default:b(()=>[m(`div`,Vt,[m(`pre`,{ref_key:`contentRef`,ref:u,class:c([`text-xs rounded p-2 overflow-y-auto whitespace-pre-wrap break-words`,p.value]),style:{"max-height":`300px`}},[m(`code`,null,t(e.content||S.value),1)],2)])]),_:1})]),_:1},8,[`open`,`class`]))}}),Ut=2;function Wt(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,Ut),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 Gt(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,Ut),name:String(n.name??e.name??``)})}}}return t}function Kt(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)?Wt(o.content):n===`openai`&&Array.isArray(o.choices)?Gt(o.choices):[]}var qt=5,Jt=2,Yt=3;function Xt(e,t,n){let r=a(()=>{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(qt).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:a(()=>{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,Jt))}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:a(()=>{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:a(()=>{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:a(()=>{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:a(()=>{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:a(()=>{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<Yt)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:a(()=>{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:a(()=>r.value.some(e=>e.type===`data`&&e.data.type===`message_stop`)),openaiSseRole:a(()=>{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:a(()=>{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:a(()=>{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:a(()=>{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:a(()=>{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 Zt={class:`flex flex-col gap-2 min-h-0 flex-1`},Qt={class:`flex items-center justify-between flex-shrink-0`},$t={key:0,class:`relative flex-1 min-h-0`},en={key:0,class:`flex flex-col gap-2`},tn={key:1,class:`text-xs text-muted-foreground`},nn={key:2,class:`text-xs text-muted-foreground`},rn={key:3,class:`text-xs text-muted-foreground`},an={class:`p-3 text-[11px] whitespace-pre-wrap break-words`},on=50,sn=g({__name:`ResponseViewer`,props:{source:{},apiType:{},isStream:{type:Boolean},streamContent:{default:null},nonStreamBody:{default:null},responseBody:{default:null},upstreamResponse:{default:null},status:{}},setup(n){let c=d(null),l=n,u=d(!1),f=a(()=>!!(l.responseBody||l.upstreamResponse)),{assembledBlocks:p}=Xt(a(()=>{if(l.source!==`history`)return``;let e=l.responseBody||l.upstreamResponse||``;try{return JSON.parse(e).body||e}catch{return e}}),l.isStream,l.apiType),g=a(()=>{if(l.source===`realtime`){let e=l.streamContent?.blocks;if(e&&e.length>0)return e;if(l.responseBody){let e=Kt(l.responseBody,null,l.apiType);if(e.length>0)return e}return[]}let e=Kt(l.responseBody??null,l.upstreamResponse??null,l.apiType);if(e.length>0)return e;if(l.responseBody&&l.responseBody.trim().length>0)return[{type:`text`,content:l.responseBody}];let t=[`thinking`,`text`,`tool_use`,`tool_result`];return p.value.map(e=>({type:t.includes(e.type)?e.type:`text`,content:e.content,...e.toolName?{name:e.toolName}:{}}))}),_=a(()=>l.source===`realtime`?l.streamContent?.rawChunks||l.responseBody||``:Ze(l.upstreamResponse??null,l.responseBody??null)),y=d(!1);function S(){let e=c.value;e&&(y.value=e.scrollHeight-e.scrollTop-e.clientHeight>on)}function T(){let e=c.value;e&&(e.scrollTop=e.scrollHeight)}return v(g,()=>{y.value||j(()=>T())},{deep:!0}),(n,a)=>(M(),s(`div`,Zt,[m(`div`,Qt,[a[1]||=m(`span`,{class:`text-xs font-medium text-muted-foreground`},`响应内容`,-1),o(r(w),{size:`sm`,variant:`outline`,class:`h-6 gap-1 text-xs`,onClick:a[0]||=e=>u.value=!u.value},{default:b(()=>[(M(),h(x(u.value?r(L):r(V)),{class:`h-3 w-3`})),k(` `+t(u.value?`结构化`:l.isStream?`原始 SSE`:`原始 JSON`),1)]),_:1})]),u.value?(M(),h(r($),{key:1,class:`flex-1 min-h-0 rounded-md border`},{default:b(()=>[m(`pre`,an,t(_.value),1)]),_:1})):(M(),s(`div`,$t,[m(`div`,{ref_key:`structuredRef`,ref:c,class:`flex-1 min-h-0 overflow-y-auto`,onScroll:S},[g.value.length>0?(M(),s(`div`,en,[(M(!0),s(e,null,C(g.value,(e,t)=>(M(),h(Ht,{key:t,type:e.type,content:e.content,name:e.name,"show-cursor":l.status===`pending`&&t===g.value.length-1,"auto-scroll":l.status===`pending`&&t===g.value.length-1},null,8,[`type`,`content`,`name`,`show-cursor`,`auto-scroll`]))),128))])):l.status===`pending`?(M(),s(`p`,tn,`等待响应数据...`)):l.source===`history`&&l.isStream&&!f.value?(M(),s(`p`,nn,`流式响应内容未持久化存储`)):(M(),s(`p`,rn,`无响应内容`))],544),y.value?(M(),h(r(w),{key:0,variant:`outline`,size:`icon`,class:`absolute bottom-2 right-2 h-7 w-7 rounded-full shadow-md opacity-80 hover:opacity-100`,onClick:T},{default:b(()=>[o(r(ye),{class:`h-3.5 w-3.5`})]),_:1})):i(``,!0)]))]))}}),cn={class:`relative`},ln={class:`bg-background text-foreground rounded-md p-3 text-xs overflow-auto max-h-[40vh] whitespace-pre-wrap break-all border`},un=g({__name:`JsonCopyBlock`,props:{content:{},hideCopyButton:{type:Boolean}},setup(e){let n=e,{copied:a,copy:o}=ve();async function c(){await o(n.content)}return(n,o)=>(M(),s(`div`,cn,[e.hideCopyButton?i(``,!0):(M(),h(r(w),{key:0,variant:`outline`,size:`sm`,class:`absolute top-2 right-2 h-7 text-xs`,onClick:c},{default:b(()=>[k(t(r(a)?`已复制`:`复制`),1)]),_:1})),m(`pre`,ln,t(e.content),1)]))}}),dn={class:`flex flex-col min-h-0 h-full`},fn={class:`flex justify-end mb-1 flex-shrink-0`},pn={key:0,class:`space-y-3`},mn={key:0,class:`text-[11px] text-muted-foreground py-4 text-center`},hn={key:1,class:`text-[11px] text-muted-foreground py-2 text-center`},gn={key:2,class:`space-y-4`},_n={key:0},vn={class:`flex items-center gap-2 text-[11px]`},yn={class:`font-mono text-muted-foreground`},bn={class:`font-mono text-primary font-semibold`},xn={key:1},Sn={class:`text-[11px] bg-muted/50 rounded-md border px-2.5 py-2 overflow-y-auto whitespace-pre-wrap break-words max-h-40`},Cn={key:2},wn={class:`text-[10px] uppercase tracking-wider text-muted-foreground font-medium mb-1`},Tn={class:`space-y-1.5`},En={class:`flex items-center gap-1.5 mb-1`},Dn={key:1,class:`text-[9px] text-muted-foreground`},On={key:0,class:`diff-removed line-through mb-0.5`},kn={key:1,class:`text-foreground overflow-y-auto max-h-40`},An={key:2,class:`text-muted-foreground text-[10px]`},jn={key:3},Mn={class:`text-[10px] uppercase tracking-wider text-muted-foreground font-medium mb-1`},Nn={class:`space-y-1`},Pn={class:`grid grid-cols-5 gap-1`},Fn=[`title`,`onClick`],In={key:0,class:`rounded-md border bg-background p-2.5`},Ln={class:`flex items-center gap-2 mb-1`},Rn={class:`text-[11px] font-semibold font-mono`},zn={key:0,class:`text-[11px] text-muted-foreground`},Bn={key:1,class:`mt-1 flex flex-wrap gap-1`},Vn={key:4},Hn={class:`flex items-center gap-2 text-[11px]`},Un={key:5},Wn={class:`flex items-center gap-2 text-[11px]`},Gn={class:`font-mono diff-removed line-through`},Kn={class:`font-mono diff-added font-medium`},qn=4,Jn=5,Yn=g({__name:`RequestDiffViewer`,props:{overview:{}},setup(n){let l=n,u=d(!1);function f(e){if(!e)return null;try{let t=JSON.parse(e);if(typeof t!=`object`||!t)return null;let n=typeof t.headers==`object`&&t.headers!==null?t.headers:{},r=t.body;if(typeof r==`string`)try{r=JSON.parse(r)}catch{}return{headers:n,body:r??{}}}catch{return null}}function p(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=>typeof e.text==`string`?e.text:``).join(``):String(t??``)}function g(e){if(!e)return``;let t=e.replace(/^Bearer\s+/i,``);return t.length<=qn?`***`:`${t.slice(0,qn)}***`}function _(e,t){let n=t.toLowerCase();for(let[t,r]of Object.entries(e))if(t.toLowerCase()===n)return r}let v=a(()=>f(l.overview.clientRequest)),y=a(()=>f(l.overview.upstreamRequest)),x=a(()=>{let e=v.value?.body?.model,t=y.value?.body?.model;return{hasDiff:!!e&&!!t&&e!==t,from:e??``,to:t??``}}),S=a(()=>{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 p(e)}return null}),T=a(()=>{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=p(i),s=t[r],c=s?p(s):null,l=c!==null&&o!==c,u=i.content,d=Array.isArray(u)?u:[],f=d.filter(e=>typeof e==`object`&&!!e&&e.type===`tool_use`).map(e=>e.name).filter(Boolean),m=d.filter(e=>typeof e==`object`&&!!e&&e.type===`tool_result`).length;n.push({role:a,text:o,removedText:l?c:null,modified:l,toolCalls:f,toolResultCount:m})}return n}),E=d(-1),D=a(()=>{let e=[];for(let t=0;t<O.value.length;t+=Jn)e.push({tools:O.value.slice(t,t+Jn),startIdx:t});return e}),O=a(()=>{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=>{let t=typeof e.description==`string`?e.description:``,n=e.input_schema?.properties,r=n?Object.keys(n):[];return{name:e.name,description:t,params:r}}):[]}),A=a(()=>{let e=v.value?.body?.stream_options!=null,t=y.value?.body?.stream_options!=null;return!e&&t}),j=a(()=>{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:g(e),new:g(t)}});return(a,l)=>(M(),s(`div`,dn,[m(`div`,fn,[o(r(w),{variant:`outline`,size:`xs`,class:`gap-1`,onClick:l[0]||=e=>u.value=!u.value},{default:b(()=>[u.value?(M(),h(r(V),{key:0,class:`size-3`})):(M(),h(r(L),{key:1,class:`size-3`})),k(` `+t(u.value?`Structured`:`Raw JSON`),1)]),_:1})]),o(r($),{class:`flex-1 min-h-0`},{default:b(()=>[u.value?(M(),s(`div`,pn,[m(`div`,null,[l[1]||=m(`div`,{class:`text-[10px] uppercase tracking-wider text-muted-foreground font-medium mb-1`},` Client Request `,-1),o(un,{content:n.overview.clientRequest??`{}`},null,8,[`content`])]),m(`div`,null,[l[2]||=m(`div`,{class:`text-[10px] uppercase tracking-wider text-muted-foreground font-medium mb-1`},` Upstream Request `,-1),o(un,{content:n.overview.upstreamRequest??`{}`},null,8,[`content`])])])):(M(),s(e,{key:1},[!y.value&&!v.value?(M(),s(`div`,mn,` No request data available `)):!y.value&&v.value?(M(),s(`div`,hn,` 请求进行中,上游请求内容将在映射完成后显示 `)):(M(),s(`div`,gn,[x.value.hasDiff?(M(),s(`div`,_n,[l[4]||=m(`div`,{class:`text-[10px] uppercase tracking-wider text-muted-foreground font-medium mb-1`},` Model Mapping `,-1),m(`div`,vn,[m(`span`,yn,t(x.value.from),1),l[3]||=m(`span`,{class:`text-muted-foreground`},`→`,-1),m(`span`,bn,t(x.value.to),1)])])):i(``,!0),S.value?(M(),s(`div`,xn,[l[5]||=m(`div`,{class:`text-[10px] uppercase tracking-wider text-muted-foreground font-medium mb-1`},` System `,-1),m(`pre`,Sn,t(S.value),1)])):i(``,!0),T.value.length>0?(M(),s(`div`,Cn,[m(`div`,wn,` Messages (`+t(T.value.length)+`) `,1),m(`div`,Tn,[(M(!0),s(e,null,C(T.value,(e,n)=>(M(),s(`div`,{key:n,class:c([`rounded-md border px-2.5 py-1.5 text-[11px]`,e.modified?`diff-modified`:`bg-background`])},[m(`div`,En,[o(r(B),{variant:`outline`,class:c([`text-[9px] px-1.5 py-0 border-transparent`,e.role===`user`?`bg-role-user-bg text-role-user`:e.role===`assistant`?`bg-role-assistant-bg text-role-assistant`:`bg-role-thinking-bg text-role-thinking`])},{default:b(()=>[k(t(e.role),1)]),_:2},1032,[`class`]),e.modified?(M(),h(r(B),{key:0,variant:`outline`,class:`bg-role-thinking-bg text-role-thinking text-[9px] px-1.5 py-0 border-transparent`},{default:b(()=>[...l[6]||=[k(` Modified `,-1)]]),_:1})):i(``,!0),e.toolCalls.length>0?(M(),s(`span`,Dn,` → `+t(e.toolCalls.join(`, `)),1)):i(``,!0)]),e.modified&&e.removedText?(M(),s(`div`,On,t(e.removedText),1)):i(``,!0),e.text?(M(),s(`div`,kn,t(e.text),1)):e.toolResultCount>0?(M(),s(`div`,An,t(e.toolResultCount)+` tool result(s) `,1)):i(``,!0)],2))),128))])])):i(``,!0),O.value.length>0?(M(),s(`div`,jn,[m(`div`,Mn,` Tools (`+t(O.value.length)+`) `,1),m(`div`,Nn,[(M(!0),s(e,null,C(D.value,(n,a)=>(M(),s(e,{key:a},[m(`div`,Pn,[(M(!0),s(e,null,C(n.tools,(e,r)=>(M(),s(`div`,{key:r,class:c([`cursor-pointer rounded-md border px-1.5 py-1 text-[10px] truncate text-center transition-colors`,E.value===n.startIdx+r?`bg-role-tool-bg text-role-tool border-role-tool`:`bg-background hover:bg-muted`]),title:e.name,onClick:e=>E.value=E.value===n.startIdx+r?-1:n.startIdx+r},t(e.name),11,Fn))),128))]),E.value>=n.startIdx&&E.value<n.startIdx+n.tools.length?(M(),s(`div`,In,[m(`div`,Ln,[m(`span`,Rn,t(O.value[E.value].name),1)]),O.value[E.value].description?(M(),s(`p`,zn,t(O.value[E.value].description),1)):i(``,!0),O.value[E.value].params.length>0?(M(),s(`div`,Bn,[(M(!0),s(e,null,C(O.value[E.value].params,e=>(M(),h(r(B),{key:e,variant:`outline`,class:`text-[9px] px-1 py-0`},{default:b(()=>[k(t(e),1)]),_:2},1024))),128))])):i(``,!0)])):i(``,!0)],64))),128))])])):i(``,!0),A.value?(M(),s(`div`,Vn,[l[9]||=m(`div`,{class:`text-[10px] uppercase tracking-wider text-muted-foreground font-medium mb-1`},` Stream Options `,-1),m(`div`,Hn,[o(r(B),{variant:`outline`,class:`bg-success-light text-success-dark text-[9px] px-1.5 py-0 border-transparent`},{default:b(()=>[...l[7]||=[k(`Injected`,-1)]]),_:1}),l[8]||=m(`code`,{class:`font-mono diff-added`},`{ "include_usage": true }`,-1)])])):i(``,!0),j.value.hasDiff?(M(),s(`div`,Un,[l[10]||=m(`div`,{class:`text-[10px] uppercase tracking-wider text-muted-foreground font-medium mb-1`},` Auth Replacement `,-1),m(`div`,Wn,[m(`span`,Gn,t(j.value.old),1),o(r(Z),{orientation:`vertical`,class:`h-3`}),m(`span`,Kn,t(j.value.new),1)])])):i(``,!0)]))],64))]),_:1})]))}}),Xn={class:`h-[3px] w-full overflow-hidden`},Zn={key:0,class:`h-full w-[40%] progress-active`,style:{animation:`shimmer 1.5s infinite`}},Qn={key:1,class:`h-full w-full progress-failed`},$n={key:2,class:`h-full w-full progress-active`},er={key:0,class:`font-mono text-[11px] text-muted-foreground`},tr={key:0,class:`flex gap-0 px-4 pb-4 min-h-0 h-[calc(85vh-80px)]`},nr={class:`w-[280px] border-r pr-3 flex-shrink-0 overflow-y-auto min-h-0`},rr={class:`flex-1 flex flex-col min-w-0 min-h-0 pl-3`},ir={key:0,class:`rounded-md bg-destructive/10 px-3 py-1.5 text-xs text-destructive mb-2 flex-shrink-0`},ar={key:0,class:`flex-1 min-h-0 overflow-y-auto mt-2`},or={key:1,class:`flex-1 min-h-0 mt-2`},sr={key:1,class:`flex items-center justify-center h-[calc(85vh-80px)]`},cr={class:`text-sm text-muted-foreground`},lr=((e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n})(g({__name:`UnifiedRequestDialog`,props:{open:{type:Boolean},source:{},request:{},streamContent:{},logDetailData:{},logEntry:{}},emits:[`update:open`],setup(e,{emit:n}){let{copied:c,copy:l}=ve();function u(){y.value&&l(y.value.id)}let f=e,p=n,g=d(`response`),_=d(null),y=a(()=>{if(f.source===`realtime`){if(!f.request)return null;let e=Ge(f.request,f.logDetailData?.responseBody);return f.logDetailData&&(f.logDetailData.clientRequest&&(e.clientRequest=f.logDetailData.clientRequest),f.logDetailData.upstreamRequest&&(e.upstreamRequest=f.logDetailData.upstreamRequest)),e}return _.value}),x=a(()=>y.value?y.value.status:`pending`);return v([()=>f.open,()=>f.logEntry],([e,t])=>{e&&(g.value=`response`,f.source===`history`&&t&&(_.value=Ye(t)))}),(n,a)=>(M(),h(r(ge),{open:f.open,"onUpdate:open":a[1]||=e=>p(`update:open`,e)},{default:b(()=>[o(r(pe),{class:`sm:max-w-6xl max-h-[85vh] p-0 overflow-hidden flex flex-col`},{default:b(()=>[m(`div`,Xn,[x.value===`pending`?(M(),s(`div`,Zn)):x.value===`failed`?(M(),s(`div`,Qn)):(M(),s(`div`,$n))]),o(r(he),{class:`px-4 pt-2 pb-0`},{default:b(()=>[o(r(_e),{class:`text-sm flex items-center gap-2`},{default:b(()=>[a[2]||=k(` 请求详情 `,-1),y.value?(M(),s(`span`,er,t(y.value.id),1)):i(``,!0),y.value?(M(),h(r(w),{key:1,variant:`ghost`,size:`icon-xs`,class:`shrink-0`,onClick:u},{default:b(()=>[r(c)?(M(),h(r(ee),{key:0,class:`size-3 text-success`})):(M(),h(r(ne),{key:1,class:`size-3`}))]),_:1})):i(``,!0)]),_:1}),o(r(me),{class:`sr-only`},{default:b(()=>[...a[3]||=[k(`查看请求的响应内容和请求内容`,-1)]]),_:1})]),_:1}),y.value?(M(),s(`div`,tr,[m(`div`,nr,[o(Nt,{overview:y.value},null,8,[`overview`])]),m(`div`,rr,[y.value.errorMessage?(M(),s(`div`,ir,t(y.value.errorMessage),1)):i(``,!0),o(r(le),{modelValue:g.value,"onUpdate:modelValue":a[0]||=e=>g.value=e,class:`flex-1 flex flex-col min-h-0`},{default:b(()=>[o(r(ce),{class:`flex-shrink-0`},{default:b(()=>[o(r(se),{value:`response`},{default:b(()=>[...a[4]||=[k(`响应内容`,-1)]]),_:1}),o(r(se),{value:`request`},{default:b(()=>[...a[5]||=[k(`请求内容`,-1)]]),_:1})]),_:1}),g.value===`response`?(M(),s(`div`,ar,[o(sn,{source:f.source,"api-type":y.value.apiType,"is-stream":y.value.isStream,"stream-content":f.streamContent,"non-stream-body":e.logDetailData?.responseBody,"response-body":y.value.responseBody,"upstream-response":y.value.upstreamResponse,status:y.value.status},null,8,[`source`,`api-type`,`is-stream`,`stream-content`,`non-stream-body`,`response-body`,`upstream-response`,`status`])])):i(``,!0),g.value===`request`?(M(),s(`div`,or,[o(Yn,{overview:y.value},null,8,[`overview`])])):i(``,!0)]),_:1},8,[`modelValue`])])])):(M(),s(`div`,sr,[m(`p`,cr,t(f.source===`realtime`?`加载中...`:`无选中请求`),1)]))]),_:1})]),_:1},8,[`open`]))}}),[[`__scopeId`,`data-v-62f096e6`]]);export{$ as n,Z as r,lr as t};
@@ -0,0 +1 @@
1
+ @keyframes shimmer-62f096e6{0%{transform:translate(-100%)}to{transform:translate(350%)}}
@@ -0,0 +1 @@
1
+ import{Ft as e,H as t,Ot as n,W as r,Y as i,bt as a,i as o,st as s,u as c,ut as l}from"./button-zud8Qspb.js";function u(){let e=n();return{primitiveElement:e,currentElement:t(()=>[`#text`,`#comment`].includes(e.value?.$el.nodeName)?e.value?.$el.nextElementSibling:c(e))}}var d=i({__name:`VisuallyHidden`,props:{feature:{type:String,required:!1,default:`focusable`},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(t){return(t,n)=>(s(),r(e(o),{as:t.as,"as-child":t.asChild,"aria-hidden":t.feature===`focusable`?`true`:void 0,"data-hidden":t.feature===`fully-hidden`?``:void 0,tabindex:t.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:a(()=>[l(t.$slots,`default`)]),_:3},8,[`as`,`as-child`,`aria-hidden`,`data-hidden`,`tabindex`]))}});export{u as n,d as t};
@@ -0,0 +1 @@
1
+ import{B as e,G as t,H as n,K as r,W as i,Y as a,_t as o,lt as s,nt as c,st as l}from"./button-zud8Qspb.js";import{n as u,t as d}from"./VisuallyHidden-BpDuyh8-.js";var f=a({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(e){let t=e,{primitiveElement:r,currentElement:a}=u();return o(n(()=>t.checked??t.value),(e,t)=>{if(!a.value)return;let n=a.value,r=window.HTMLInputElement.prototype,i=Object.getOwnPropertyDescriptor(r,`value`).set;if(i&&e!==t){let t=new Event(`input`,{bubbles:!0}),r=new Event(`change`,{bubbles:!0});i.call(n,e),n.dispatchEvent(t),n.dispatchEvent(r)}}),(e,n)=>(l(),i(d,c({ref_key:`primitiveElement`,ref:r},{...t,...e.$attrs},{as:`input`}),null,16))}}),p=a({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(a){let o=a,u=n(()=>typeof o.value==`object`&&Array.isArray(o.value)&&o.value.length===0&&o.required),d=n(()=>typeof o.value==`string`||typeof o.value==`number`||typeof o.value==`boolean`||o.value===null||o.value===void 0?[{name:o.name,value:o.value}]:typeof o.value==`object`&&Array.isArray(o.value)?o.value.flatMap((e,t)=>typeof e==`object`?Object.entries(e).map(([e,n])=>({name:`${o.name}[${t}][${e}]`,value:n})):{name:`${o.name}[${t}]`,value:e}):o.value!==null&&typeof o.value==`object`&&!Array.isArray(o.value)?Object.entries(o.value).map(([e,t])=>({name:`${o.name}[${e}]`,value:t})):[]);return(n,a)=>(l(),r(e,null,[t(` We render single input if it's required `),u.value?(l(),i(f,c({key:n.name},{...o,...n.$attrs},{name:n.name,value:n.value}),null,16,[`name`,`value`])):(l(!0),r(e,{key:1},s(d.value,e=>(l(),i(f,c({key:e.name},{ref_for:!0},{...o,...n.$attrs},{name:e.name,value:e.value}),null,16,[`name`,`value`]))),128))],2112))}});export{p as t};
@@ -0,0 +1 @@
1
+ import{Ft as e,J as t,K as n,Lt as r,Ot as i,Rt as a,W as o,Y as s,Z as c,at as l,bt as u,nt as d,o as f,r as p,rt as m,st as h,t as g,ut as _,x as v,z as y}from"./button-zud8Qspb.js";import{f as b,t as x,u as S,y as C}from"./Teleport-CLw1Jxrb.js";import{a as w,i as T,n as E,o as D,r as O,t as k}from"./DialogTitle-CnqbO2hx.js";var A=s({__name:`AlertDialogAction`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`}},setup(t){let n=t;return f(),(t,r)=>(h(),o(e(w),a(c(n)),{default:u(()=>[_(t.$slots,`default`)]),_:3},16))}}),[j,M]=C(`AlertDialogContent`),N=s({__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(t,{emit:n}){let r=t,a=b(n);f();let s=i();return M({onCancelElementChange:e=>{s.value=e}}),(t,n)=>(h(),o(e(T),d({...r,...e(a)},{role:`alertdialog`,onPointerDownOutside:n[0]||=y(()=>{},[`prevent`]),onInteractOutside:n[1]||=y(()=>{},[`prevent`]),onOpenAutoFocus:n[2]||=()=>{m(()=>{s.value?.focus({preventScroll:!0})})}}),{default:u(()=>[_(t.$slots,`default`)]),_:3},16))}}),P=s({__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}=f();return l(()=>{r.onCancelElementChange(a.value)}),(t,r)=>(h(),o(e(w),d(n,{ref:e(i)}),{default:u(()=>[_(t.$slots,`default`)]),_:3},16))}}),F=s({__name:`AlertDialogDescription`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`p`}},setup(t){let n=t;return f(),(t,r)=>(h(),o(e(O),a(c(n)),{default:u(()=>[_(t.$slots,`default`)]),_:3},16))}}),I=s({__name:`AlertDialogOverlay`,props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(t){let n=t;return f(),(t,r)=>(h(),o(e(E),a(c(n)),{default:u(()=>[_(t.$slots,`default`)]),_:3},16))}}),L=s({__name:`AlertDialogPortal`,props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(t){let n=t;return(t,r)=>(h(),o(e(x),a(c(n)),{default:u(()=>[_(t.$slots,`default`)]),_:3},16))}}),R=s({__name:`AlertDialogRoot`,props:{open:{type:Boolean,required:!1},defaultOpen:{type:Boolean,required:!1}},emits:[`update:open`],setup(t,{emit:n}){let r=S(t,n);return f(),(t,n)=>(h(),o(e(D),d(e(r),{modal:!0}),{default:u(e=>[_(t.$slots,`default`,a(c(e)))]),_:3},16))}}),z=s({__name:`AlertDialogTitle`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`h2`}},setup(t){let n=t;return f(),(t,r)=>(h(),o(e(k),a(c(n)),{default:u(()=>[_(t.$slots,`default`)]),_:3},16))}}),B=s({__name:`AlertDialog`,props:{open:{type:Boolean},defaultOpen:{type:Boolean}},emits:[`update:open`],setup(t,{emit:n}){let r=S(t,n);return(t,n)=>(h(),o(e(R),d({"data-slot":`alert-dialog`},e(r)),{default:u(e=>[_(t.$slots,`default`,a(c(e)))]),_:3},16))}}),V=s({__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=v(n,`class`,`variant`,`size`);return(i,a)=>(h(),o(e(A),d({"data-slot":`alert-dialog-action`},e(r),{class:e(p)(``,e(g)({variant:t.variant,size:t.size}),n.class)}),{default:u(()=>[_(i.$slots,`default`)]),_:3},16,[`class`]))}}),H=s({__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=v(n,`class`,`variant`,`size`);return(i,a)=>(h(),o(e(P),d({"data-slot":`alert-dialog-cancel`},e(r),{class:e(p)(``,e(g)({variant:t.variant,size:t.size}),n.class)}),{default:u(()=>[_(i.$slots,`default`)]),_:3},16,[`class`]))}}),U=s({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(n,{emit:r}){let i=n,a=r,s=S(v(i,`class`,`size`),a);return(r,a)=>(h(),o(e(L),null,{default:u(()=>[t(e(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`}),t(e(N),d({"data-slot":`alert-dialog-content`,"data-size":n.size},{...r.$attrs,...e(s)},{class:e(p)(`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:u(()=>[_(r.$slots,`default`)]),_:3},16,[`data-size`,`class`])]),_:3}))}}),W=s({__name:`AlertDialogDescription`,props:{asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(t){let n=t,r=v(n,`class`);return(t,i)=>(h(),o(e(F),d({"data-slot":`alert-dialog-description`},e(r),{class:e(p)(`text-muted-foreground *:[a]:hover:text-foreground text-sm text-balance md:text-pretty *:[a]:underline *:[a]:underline-offset-3`,n.class)}),{default:u(()=>[_(t.$slots,`default`)]),_:3},16,[`class`]))}}),G=s({__name:`AlertDialogFooter`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(t){let i=t;return(t,a)=>(h(),n(`div`,{"data-slot":`alert-dialog-footer`,class:r(e(p)(`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`,i.class))},[_(t.$slots,`default`)],2))}}),K=s({__name:`AlertDialogHeader`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(t){let i=t;return(t,a)=>(h(),n(`div`,{"data-slot":`alert-dialog-header`,class:r(e(p)(`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]`,i.class))},[_(t.$slots,`default`)],2))}}),q=s({__name:`AlertDialogTitle`,props:{asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(t){let n=t,r=v(n,`class`);return(t,i)=>(h(),o(e(z),d({"data-slot":`alert-dialog-title`},e(r),{class:e(p)(`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:u(()=>[_(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};
@@ -0,0 +1 @@
1
+ import{Ft as e,O as t,W as n,Y as r,bt as i,i as a,nt as o,r as s,st as c,ut as l,x as u}from"./button-zud8Qspb.js";var d=r({__name:`Badge`,props:{asChild:{type:Boolean},as:{},variant:{},class:{type:[Boolean,null,String,Object,Array]}},setup(t){let r=t,d=u(r,`class`);return(u,p)=>(c(),n(e(a),o({"data-slot":`badge`,"data-variant":t.variant,class:e(s)(e(f)({variant:t.variant}),r.class)},e(d)),{default:i(()=>[l(u.$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};